diff --git a/CHANGELOG.md b/CHANGELOG.md index 7832e2f6..2c2881ec 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [2.15.2](https://github.com/HSF/phoenix/compare/v2.15.1...v2.15.2) (2024-03-22) + +**Note:** Version bump only for package root + + + + + ## 2.15.1 (2024-03-22) **Note:** Version bump only for package root diff --git a/docs/103.72f5d6d3338d9eeb.js b/docs/103.587e3e65fd9d4705.js similarity index 59% rename from docs/103.72f5d6d3338d9eeb.js rename to docs/103.587e3e65fd9d4705.js index 391cc575..aac5b075 100644 --- a/docs/103.72f5d6d3338d9eeb.js +++ b/docs/103.587e3e65fd9d4705.js @@ -1,2 +1,2 @@ -"use strict";(self.webpackChunkphoenix_app=self.webpackChunkphoenix_app||[]).push([[103],{6103:(O,E,h)=>{h.r(E),h.d(E,{TRatioPlotPainter:()=>m});var x=h(4882),p=h(8872),w=h(1922),L=h(4483),X=h(801);class m extends w.JW{setGridsRange(a,i){const d=this.getObject();if(a===i){const n=this.getPadPainter()?.findPainterFor(d.fLowerPad,"lower_pad",p.clTPad)?.getFramePainter()?.x_handle;if(!n)return;a=n.full_min,i=n.full_max}d.fGridlines.forEach(n=>{n.fX1=a,n.fX2=i})}redraw(){var a=this;return(0,x.A)(function*(){const i=a.getObject(),d=a.getPadPainter(),n=d.findPainterFor(i.fTopPad,"top_pad",p.clTPad);n&&n.disablePadDrawing();const f=d.findPainterFor(i.fUpperPad,"upper_pad",p.clTPad),P=f?.getMainPainter(),e=f?.getFramePainter(),u=d.findPainterFor(i.fLowerPad,"lower_pad",p.clTPad),z=u?.getMainPainter(),o=u?.getFramePainter();let s=20,D=Promise.resolve(!0);if(f&&P&&e&&o&&!f._ratio_configured){f._ratio_configured=!0,P.options.Axis=0,s=P.getHisto().fYaxis.fLabelSize,s<1&&(s=Math.round(s*Math.min(f.getPadWidth(),f.getPadHeight())));const _=P.getHisto();_.fXaxis.fLabelSize=0,_.fXaxis.fTitle="",_.fYaxis.fLabelSize=s,_.fYaxis.fTitleSize=s,f.getRootPad().fTicky=1,D=f.redrawPad().then(()=>(e.o_zoom=e.zoom,e._ratio_low_fp=o,e._ratio_painter=a,e.zoom=function(c,g,r,l,t,C){return this.o_zoom(c,g,r,l,t,C).then(T=>(this._ratio_painter.setGridsRange(e.scale_xmin,e.scale_xmax),this._ratio_low_fp.o_zoom(e.scale_xmin,e.scale_xmax),T))},e.o_sizeChanged=e.sizeChanged,e.sizeChanged=function(){this.o_sizeChanged(),this._ratio_low_fp.fX1NDC=this.fX1NDC,this._ratio_low_fp.fX2NDC=this.fX2NDC,this._ratio_low_fp.o_sizeChanged()},!0))}return D.then(()=>{if(!u||!z||!o||!e||u._ratio_configured)return a;u._ratio_configured=!0,z.options.Axis=0;const _=z.getHisto();_.fXaxis.fTitle="x",_.fXaxis.fLabelSize=s,_.fXaxis.fTitleSize=s,_.fYaxis.fLabelSize=s,_.fYaxis.fTitleSize=s,u.getRootPad().fTicky=1,u.forEachPainterInPad(r=>{(0,p.isFunc)(r?.testEditable)&&r.testEditable(!1)});const c=[];let g;return i.fGridlinePositions.length>0&&i.fGridlines.length{let l=!1;if(i.fGridlines.forEach(t=>{t.fY1===t.fY2&&Math.abs(t.fY1-r)<1e-6&&(l=!0)}),!l){const t=(0,p.create)(p.clTLine);t.fX1=e.scale_xmin,t.fX2=e.scale_xmax,t.fY1=t.fY2=r,t.fLineStyle=2,i.fGridlines.push(t),void 0===g&&(g=a.selectCurrentPad(i.fLowerPad.fName)),c.push(X.TLinePainter.draw(a.getDom(),t))}}),Promise.all(c).then(()=>o.zoom(e.scale_xmin,e.scale_xmax)).then(()=>(o.o_zoom=o.zoom,o._ratio_up_fp=e,o._ratio_painter=a,o.zoom=function(r,l,t,C,T,M){return this._ratio_painter.setGridsRange(r,l),this._ratio_up_fp.o_zoom(r,l),this.o_zoom(r,l,t,C,T,M)},o.o_sizeChanged=o.sizeChanged,o.sizeChanged=function(){this.o_sizeChanged(),this._ratio_up_fp.fX1NDC=this.fX1NDC,this._ratio_up_fp.fX2NDC=this.fX2NDC,this._ratio_up_fp.o_sizeChanged()},a))})})()}static draw(a,i,d){return(0,x.A)(function*(){const n=new m(a,i,d);return(0,L.ensureTCanvas)(n,!1).then(()=>n.redraw())})()}}}}]); -//# sourceMappingURL=103.72f5d6d3338d9eeb.js.map \ No newline at end of file +"use strict";(self.webpackChunkphoenix_app=self.webpackChunkphoenix_app||[]).push([[103],{6103:(O,D,h)=>{h.r(D),h.d(D,{TRatioPlotPainter:()=>m});var E=h(4882),p=h(8872),L=h(1922),w=h(4483),X=h(801);class m extends L.JW{setGridsRange(a,i){const d=this.getObject();if(a===i){const o=this.getPadPainter()?.findPainterFor(d.fLowerPad,"lower_pad",p.clTPad)?.getFramePainter()?.x_handle;if(!o)return;a=o.full_min,i=o.full_max}d.fGridlines.forEach(o=>{o.fX1=a,o.fX2=i})}redraw(){var a=this;return(0,E.A)(function*(){const i=a.getObject(),d=a.getPadPainter(),o=d.findPainterFor(i.fTopPad,"top_pad",p.clTPad);o&&o.disablePadDrawing();const f=d.findPainterFor(i.fUpperPad,"upper_pad",p.clTPad),P=f?.getMainPainter(),e=f?.getFramePainter(),u=d.findPainterFor(i.fLowerPad,"lower_pad",p.clTPad),z=u?.getMainPainter(),n=u?.getFramePainter();let s=20,x=Promise.resolve(!0);if(f&&P&&e&&n&&!f._ratio_configured){f._ratio_configured=!0,P.options.Axis=0,s=P.getHisto().fYaxis.fLabelSize,s<1&&(s=Math.round(s*Math.min(f.getPadWidth(),f.getPadHeight())));const _=P.getHisto();_.fXaxis.fLabelSize=0,_.fXaxis.fTitle="",_.fYaxis.fLabelSize=s,_.fYaxis.fTitleSize=s,f.getRootPad().fTicky=1,x=f.redrawPad().then(()=>(e.o_zoom=e.zoom,e._ratio_low_fp=n,e._ratio_painter=a,e.zoom=function(c,g,r,l,t,C){return this.o_zoom(c,g,r,l,t,C).then(T=>(this._ratio_painter.setGridsRange(e.scale_xmin,e.scale_xmax),this._ratio_low_fp.o_zoom(e.scale_xmin,e.scale_xmax),T))},e.o_sizeChanged=e.sizeChanged,e.sizeChanged=function(){this.o_sizeChanged(),this._ratio_low_fp.fX1NDC=this.fX1NDC,this._ratio_low_fp.fX2NDC=this.fX2NDC,this._ratio_low_fp.o_sizeChanged()},!0))}return x.then(()=>{if(!u||!z||!n||!e||u._ratio_configured)return a;u._ratio_configured=!0,z.options.Axis=0;const _=z.getHisto();_.fXaxis.fTitle="x",_.fXaxis.fLabelSize=s,_.fXaxis.fTitleSize=s,_.fYaxis.fLabelSize=s,_.fYaxis.fTitleSize=s,u.getRootPad().fTicky=1,u.forEachPainterInPad(r=>{(0,p.isFunc)(r?.testEditable)&&r.testEditable(!1)});const c=[];let g;return i.fGridlinePositions.length>0&&i.fGridlines.length{let l=!1;if(i.fGridlines.forEach(t=>{t.fY1===t.fY2&&Math.abs(t.fY1-r)<1e-6&&(l=!0)}),!l){const t=(0,p.create)(p.clTLine);t.fX1=e.scale_xmin,t.fX2=e.scale_xmax,t.fY1=t.fY2=r,t.fLineStyle=2,i.fGridlines.push(t),void 0===g&&(g=a.selectCurrentPad(i.fLowerPad.fName)),c.push(X.TLinePainter.draw(a.getDom(),t))}}),Promise.all(c).then(()=>n.zoom(e.scale_xmin,e.scale_xmax)).then(()=>(n.o_zoom=n.zoom,n._ratio_up_fp=e,n._ratio_painter=a,n.zoom=function(r,l,t,C,T,M){return this._ratio_painter.setGridsRange(r,l),this._ratio_up_fp.o_zoom(r,l),this.o_zoom(r,l,t,C,T,M)},n.o_sizeChanged=n.sizeChanged,n.sizeChanged=function(){this.o_sizeChanged(),this._ratio_up_fp.fX1NDC=this.fX1NDC,this._ratio_up_fp.fX2NDC=this.fX2NDC,this._ratio_up_fp.o_sizeChanged()},a))})})()}static draw(a,i,d){return(0,E.A)(function*(){const o=new m(a,i,d);return(0,w.ensureTCanvas)(o,!1).then(()=>o.redraw())})()}}}}]); +//# sourceMappingURL=103.587e3e65fd9d4705.js.map \ No newline at end of file diff --git a/docs/103.72f5d6d3338d9eeb.js.map b/docs/103.587e3e65fd9d4705.js.map similarity index 99% rename from docs/103.72f5d6d3338d9eeb.js.map rename to docs/103.587e3e65fd9d4705.js.map index a0a20b9b..ebff21d5 100644 --- a/docs/103.72f5d6d3338d9eeb.js.map +++ b/docs/103.587e3e65fd9d4705.js.map @@ -1 +1 @@ -{"version":3,"file":"103.72f5d6d3338d9eeb.js","mappings":"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","names":["TRatioPlotPainter","ObjectPainter","setGridsRange","xmin","xmax","ratio","this","getObject","x_handle","getPadPainter","findPainterFor","fLowerPad","clTPad","getFramePainter","full_min","full_max","fGridlines","forEach","line","fX1","fX2","redraw","_this","_asyncToGenerator","pp","top_p","fTopPad","disablePadDrawing","up_p","fUpperPad","up_main","getMainPainter","up_fp","low_p","low_main","low_fp","lbl_size","promise_up","Promise","resolve","_ratio_configured","options","Axis","getHisto","fYaxis","fLabelSize","Math","round","min","getPadWidth","getPadHeight","h","fXaxis","fTitle","fTitleSize","getRootPad","fTicky","redrawPad","then","o_zoom","zoom","_ratio_low_fp","_ratio_painter","ymin","ymax","zmin","zmax","res","scale_xmin","scale_xmax","o_sizeChanged","sizeChanged","fX1NDC","fX2NDC","forEachPainterInPad","objp","isFunc","testEditable","arr","currpad","fGridlinePositions","length","gridy","found","fY1","fY2","abs","create","clTLine","fLineStyle","push","undefined","selectCurrentPad","fName","TLinePainter","draw","getDom","all","_ratio_up_fp","dom","opt","painter","ensureTCanvas"],"ignoreList":[],"sourceRoot":"webpack:///","sources":["../node_modules/jsroot/modules/draw/TRatioPlotPainter.mjs"],"sourcesContent":["import { create, clTPad, clTLine, isFunc } from '../core.mjs';\nimport { ObjectPainter } from '../base/ObjectPainter.mjs';\nimport { ensureTCanvas } from '../gpad/TCanvasPainter.mjs';\nimport { TLinePainter } from './TLinePainter.mjs';\n\n\n/**\n * @summary Painter class for TRatioPlot\n *\n * @private\n */\n\nclass TRatioPlotPainter extends ObjectPainter {\n\n /** @summary Set grids range */\n setGridsRange(xmin, xmax) {\n const ratio = this.getObject();\n if (xmin === xmax) {\n const x_handle = this.getPadPainter()?.findPainterFor(ratio.fLowerPad, 'lower_pad', clTPad)?.getFramePainter()?.x_handle;\n if (!x_handle) return;\n xmin = x_handle.full_min;\n xmax = x_handle.full_max;\n }\n\n ratio.fGridlines.forEach(line => {\n line.fX1 = xmin;\n line.fX2 = xmax;\n });\n }\n\n /** @summary Redraw TRatioPlot */\n async redraw() {\n const ratio = this.getObject(),\n pp = this.getPadPainter(),\n top_p = pp.findPainterFor(ratio.fTopPad, 'top_pad', clTPad);\n if (top_p) top_p.disablePadDrawing();\n\n const up_p = pp.findPainterFor(ratio.fUpperPad, 'upper_pad', clTPad),\n up_main = up_p?.getMainPainter(),\n up_fp = up_p?.getFramePainter(),\n low_p = pp.findPainterFor(ratio.fLowerPad, 'lower_pad', clTPad),\n low_main = low_p?.getMainPainter(),\n low_fp = low_p?.getFramePainter();\n let lbl_size = 20, promise_up = Promise.resolve(true);\n\n if (up_p && up_main && up_fp && low_fp && !up_p._ratio_configured) {\n up_p._ratio_configured = true;\n up_main.options.Axis = 0; // draw both axes\n\n lbl_size = up_main.getHisto().fYaxis.fLabelSize;\n if (lbl_size < 1) lbl_size = Math.round(lbl_size*Math.min(up_p.getPadWidth(), up_p.getPadHeight()));\n\n const h = up_main.getHisto();\n h.fXaxis.fLabelSize = 0; // do not draw X axis labels\n h.fXaxis.fTitle = ''; // do not draw X axis title\n h.fYaxis.fLabelSize = lbl_size;\n h.fYaxis.fTitleSize = lbl_size;\n\n up_p.getRootPad().fTicky = 1;\n\n promise_up = up_p.redrawPad().then(() => {\n up_fp.o_zoom = up_fp.zoom;\n up_fp._ratio_low_fp = low_fp;\n up_fp._ratio_painter = this;\n\n up_fp.zoom = function(xmin, xmax, ymin, ymax, zmin, zmax) {\n return this.o_zoom(xmin, xmax, ymin, ymax, zmin, zmax).then(res => {\n this._ratio_painter.setGridsRange(up_fp.scale_xmin, up_fp.scale_xmax);\n this._ratio_low_fp.o_zoom(up_fp.scale_xmin, up_fp.scale_xmax);\n return res;\n });\n };\n\n up_fp.o_sizeChanged = up_fp.sizeChanged;\n up_fp.sizeChanged = function() {\n this.o_sizeChanged();\n this._ratio_low_fp.fX1NDC = this.fX1NDC;\n this._ratio_low_fp.fX2NDC = this.fX2NDC;\n this._ratio_low_fp.o_sizeChanged();\n };\n return true;\n });\n }\n\n return promise_up.then(() => {\n if (!low_p || !low_main || !low_fp || !up_fp || low_p._ratio_configured)\n return this;\n\n low_p._ratio_configured = true;\n low_main.options.Axis = 0; // draw both axes\n const h = low_main.getHisto();\n h.fXaxis.fTitle = 'x';\n h.fXaxis.fLabelSize = lbl_size;\n h.fXaxis.fTitleSize = lbl_size;\n h.fYaxis.fLabelSize = lbl_size;\n h.fYaxis.fTitleSize = lbl_size;\n low_p.getRootPad().fTicky = 1;\n\n low_p.forEachPainterInPad(objp => {\n if (isFunc(objp?.testEditable))\n objp.testEditable(false);\n });\n\n const arr = [];\n let currpad;\n\n if ((ratio.fGridlinePositions.length > 0) && (ratio.fGridlines.length < ratio.fGridlinePositions.length)) {\n ratio.fGridlinePositions.forEach(gridy => {\n let found = false;\n ratio.fGridlines.forEach(line => {\n if ((line.fY1 === line.fY2) && (Math.abs(line.fY1 - gridy) < 1e-6)) found = true;\n });\n if (!found) {\n const line = create(clTLine);\n line.fX1 = up_fp.scale_xmin;\n line.fX2 = up_fp.scale_xmax;\n line.fY1 = line.fY2 = gridy;\n line.fLineStyle = 2;\n ratio.fGridlines.push(line);\n if (currpad === undefined)\n currpad = this.selectCurrentPad(ratio.fLowerPad.fName);\n arr.push(TLinePainter.draw(this.getDom(), line));\n }\n });\n }\n\n return Promise.all(arr).then(() => low_fp.zoom(up_fp.scale_xmin, up_fp.scale_xmax)).then(() => {\n low_fp.o_zoom = low_fp.zoom;\n low_fp._ratio_up_fp = up_fp;\n low_fp._ratio_painter = this;\n\n low_fp.zoom = function(xmin, xmax, ymin, ymax, zmin, zmax) {\n this._ratio_painter.setGridsRange(xmin, xmax);\n this._ratio_up_fp.o_zoom(xmin, xmax);\n return this.o_zoom(xmin, xmax, ymin, ymax, zmin, zmax);\n };\n\n low_fp.o_sizeChanged = low_fp.sizeChanged;\n low_fp.sizeChanged = function() {\n this.o_sizeChanged();\n this._ratio_up_fp.fX1NDC = this.fX1NDC;\n this._ratio_up_fp.fX2NDC = this.fX2NDC;\n this._ratio_up_fp.o_sizeChanged();\n };\n return this;\n });\n });\n }\n\n /** @summary Draw TRatioPlot */\n static async draw(dom, ratio, opt) {\n const painter = new TRatioPlotPainter(dom, ratio, opt);\n\n return ensureTCanvas(painter, false).then(() => painter.redraw());\n }\n\n} // class TRatioPlotPainter\n\nexport { TRatioPlotPainter };\n"],"x_google_ignoreList":[0]} \ No newline at end of file +{"version":3,"file":"103.587e3e65fd9d4705.js","mappings":"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","names":["TRatioPlotPainter","ObjectPainter","setGridsRange","xmin","xmax","ratio","this","getObject","x_handle","getPadPainter","findPainterFor","fLowerPad","clTPad","getFramePainter","full_min","full_max","fGridlines","forEach","line","fX1","fX2","redraw","_this","_asyncToGenerator","pp","top_p","fTopPad","disablePadDrawing","up_p","fUpperPad","up_main","getMainPainter","up_fp","low_p","low_main","low_fp","lbl_size","promise_up","Promise","resolve","_ratio_configured","options","Axis","getHisto","fYaxis","fLabelSize","Math","round","min","getPadWidth","getPadHeight","h","fXaxis","fTitle","fTitleSize","getRootPad","fTicky","redrawPad","then","o_zoom","zoom","_ratio_low_fp","_ratio_painter","ymin","ymax","zmin","zmax","res","scale_xmin","scale_xmax","o_sizeChanged","sizeChanged","fX1NDC","fX2NDC","forEachPainterInPad","objp","isFunc","testEditable","arr","currpad","fGridlinePositions","length","gridy","found","fY1","fY2","abs","create","clTLine","fLineStyle","push","undefined","selectCurrentPad","fName","TLinePainter","draw","getDom","all","_ratio_up_fp","dom","opt","painter","ensureTCanvas"],"ignoreList":[],"sourceRoot":"webpack:///","sources":["../node_modules/jsroot/modules/draw/TRatioPlotPainter.mjs"],"sourcesContent":["import { create, clTPad, clTLine, isFunc } from '../core.mjs';\nimport { ObjectPainter } from '../base/ObjectPainter.mjs';\nimport { ensureTCanvas } from '../gpad/TCanvasPainter.mjs';\nimport { TLinePainter } from './TLinePainter.mjs';\n\n\n/**\n * @summary Painter class for TRatioPlot\n *\n * @private\n */\n\nclass TRatioPlotPainter extends ObjectPainter {\n\n /** @summary Set grids range */\n setGridsRange(xmin, xmax) {\n const ratio = this.getObject();\n if (xmin === xmax) {\n const x_handle = this.getPadPainter()?.findPainterFor(ratio.fLowerPad, 'lower_pad', clTPad)?.getFramePainter()?.x_handle;\n if (!x_handle) return;\n xmin = x_handle.full_min;\n xmax = x_handle.full_max;\n }\n\n ratio.fGridlines.forEach(line => {\n line.fX1 = xmin;\n line.fX2 = xmax;\n });\n }\n\n /** @summary Redraw TRatioPlot */\n async redraw() {\n const ratio = this.getObject(),\n pp = this.getPadPainter(),\n top_p = pp.findPainterFor(ratio.fTopPad, 'top_pad', clTPad);\n if (top_p) top_p.disablePadDrawing();\n\n const up_p = pp.findPainterFor(ratio.fUpperPad, 'upper_pad', clTPad),\n up_main = up_p?.getMainPainter(),\n up_fp = up_p?.getFramePainter(),\n low_p = pp.findPainterFor(ratio.fLowerPad, 'lower_pad', clTPad),\n low_main = low_p?.getMainPainter(),\n low_fp = low_p?.getFramePainter();\n let lbl_size = 20, promise_up = Promise.resolve(true);\n\n if (up_p && up_main && up_fp && low_fp && !up_p._ratio_configured) {\n up_p._ratio_configured = true;\n up_main.options.Axis = 0; // draw both axes\n\n lbl_size = up_main.getHisto().fYaxis.fLabelSize;\n if (lbl_size < 1) lbl_size = Math.round(lbl_size*Math.min(up_p.getPadWidth(), up_p.getPadHeight()));\n\n const h = up_main.getHisto();\n h.fXaxis.fLabelSize = 0; // do not draw X axis labels\n h.fXaxis.fTitle = ''; // do not draw X axis title\n h.fYaxis.fLabelSize = lbl_size;\n h.fYaxis.fTitleSize = lbl_size;\n\n up_p.getRootPad().fTicky = 1;\n\n promise_up = up_p.redrawPad().then(() => {\n up_fp.o_zoom = up_fp.zoom;\n up_fp._ratio_low_fp = low_fp;\n up_fp._ratio_painter = this;\n\n up_fp.zoom = function(xmin, xmax, ymin, ymax, zmin, zmax) {\n return this.o_zoom(xmin, xmax, ymin, ymax, zmin, zmax).then(res => {\n this._ratio_painter.setGridsRange(up_fp.scale_xmin, up_fp.scale_xmax);\n this._ratio_low_fp.o_zoom(up_fp.scale_xmin, up_fp.scale_xmax);\n return res;\n });\n };\n\n up_fp.o_sizeChanged = up_fp.sizeChanged;\n up_fp.sizeChanged = function() {\n this.o_sizeChanged();\n this._ratio_low_fp.fX1NDC = this.fX1NDC;\n this._ratio_low_fp.fX2NDC = this.fX2NDC;\n this._ratio_low_fp.o_sizeChanged();\n };\n return true;\n });\n }\n\n return promise_up.then(() => {\n if (!low_p || !low_main || !low_fp || !up_fp || low_p._ratio_configured)\n return this;\n\n low_p._ratio_configured = true;\n low_main.options.Axis = 0; // draw both axes\n const h = low_main.getHisto();\n h.fXaxis.fTitle = 'x';\n h.fXaxis.fLabelSize = lbl_size;\n h.fXaxis.fTitleSize = lbl_size;\n h.fYaxis.fLabelSize = lbl_size;\n h.fYaxis.fTitleSize = lbl_size;\n low_p.getRootPad().fTicky = 1;\n\n low_p.forEachPainterInPad(objp => {\n if (isFunc(objp?.testEditable))\n objp.testEditable(false);\n });\n\n const arr = [];\n let currpad;\n\n if ((ratio.fGridlinePositions.length > 0) && (ratio.fGridlines.length < ratio.fGridlinePositions.length)) {\n ratio.fGridlinePositions.forEach(gridy => {\n let found = false;\n ratio.fGridlines.forEach(line => {\n if ((line.fY1 === line.fY2) && (Math.abs(line.fY1 - gridy) < 1e-6)) found = true;\n });\n if (!found) {\n const line = create(clTLine);\n line.fX1 = up_fp.scale_xmin;\n line.fX2 = up_fp.scale_xmax;\n line.fY1 = line.fY2 = gridy;\n line.fLineStyle = 2;\n ratio.fGridlines.push(line);\n if (currpad === undefined)\n currpad = this.selectCurrentPad(ratio.fLowerPad.fName);\n arr.push(TLinePainter.draw(this.getDom(), line));\n }\n });\n }\n\n return Promise.all(arr).then(() => low_fp.zoom(up_fp.scale_xmin, up_fp.scale_xmax)).then(() => {\n low_fp.o_zoom = low_fp.zoom;\n low_fp._ratio_up_fp = up_fp;\n low_fp._ratio_painter = this;\n\n low_fp.zoom = function(xmin, xmax, ymin, ymax, zmin, zmax) {\n this._ratio_painter.setGridsRange(xmin, xmax);\n this._ratio_up_fp.o_zoom(xmin, xmax);\n return this.o_zoom(xmin, xmax, ymin, ymax, zmin, zmax);\n };\n\n low_fp.o_sizeChanged = low_fp.sizeChanged;\n low_fp.sizeChanged = function() {\n this.o_sizeChanged();\n this._ratio_up_fp.fX1NDC = this.fX1NDC;\n this._ratio_up_fp.fX2NDC = this.fX2NDC;\n this._ratio_up_fp.o_sizeChanged();\n };\n return this;\n });\n });\n }\n\n /** @summary Draw TRatioPlot */\n static async draw(dom, ratio, opt) {\n const painter = new TRatioPlotPainter(dom, ratio, opt);\n\n return ensureTCanvas(painter, false).then(() => painter.redraw());\n }\n\n} // class TRatioPlotPainter\n\nexport { TRatioPlotPainter };\n"],"x_google_ignoreList":[0]} \ No newline at end of file diff --git a/docs/122.72555e34fbca494e.js b/docs/122.8763cbe2ecb78938.js similarity index 85% rename from docs/122.72555e34fbca494e.js rename to docs/122.8763cbe2ecb78938.js index 20cbed91..7fdf3133 100644 --- a/docs/122.72555e34fbca494e.js +++ b/docs/122.8763cbe2ecb78938.js @@ -1,2 +1,2 @@ -"use strict";(self.webpackChunkphoenix_app=self.webpackChunkphoenix_app||[]).push([[122],{1122:(V,O,o)=>{o.r(O),o.d(O,{drawLeafPlayer:()=>k,drawTree:()=>U,drawTreePlayer:()=>P,drawTreePlayerKey:()=>W});var m=o(4882),n=o(8872),L=o(8362),x=o(4369),u=o(1949),E=o(2843),f=o(1922),B=o(8142),C=o(4355),M=o(1828),A=o(7917),K=o(643),y=o(5992);function b(i,r,e){return T.apply(this,arguments)}function T(){return(T=(0,m.A)(function*(i,r,e){const s=r?._typename;return s&&(0,n.isStr)(s)?0===s.indexOf(n.clTH1)?B.TH1Painter.draw(i,r,e):0===s.indexOf(n.clTH2)?C.TH2Painter.draw(i,r,e):0===s.indexOf(n.clTH3)?M.TH3Painter.draw(i,r,e):0===s.indexOf(n.clTGraph)?A.k.draw(i,r,e):s===n.clTPolyMarker3D&&r.$hist?M.TH3Painter.draw(i,r.$hist,e).then(()=>{const t=new f.JW(i,r,e);return t.addToPadPrimitives(),t.redraw=K.Y,t.redraw()}):Promise.reject(Error(`Object of type ${s} cannot be draw with TTree`)):Promise.reject(Error("Object without type cannot be draw with TTree"))})).apply(this,arguments)}function $(i,r){return g.apply(this,arguments)}function g(){return(g=(0,m.A)(function*(i,r){if(r||this.last_pr){if(this.dump||this.testio){if(!r)return;if((0,n.isBatchMode)()){const s=new E.b8(this.drawid);return s.selectDom().property("_json_object_",i),s}if((0,n.isFunc)(n.internals.drawInspector))return n.internals.drawInspector(this.drawid,i);const e=(0,n.create)(n.clTObjString);return e.fString=(0,n.toJSON)(i,2),(0,f.as)(this.drawid,e)}return this.last_pr||(this.last_pr=Promise.resolve(!0)),this.last_pr.then(()=>(this.obj_painter?this.last_pr=this.obj_painter.redrawObject(i).then(()=>this.obj_painter):i?this.last_pr=b(this.drawid,i).then(e=>(this.obj_painter=e,r||(this.last_pr=null),e)):(r&&console.log("no result after tree drawing"),this.last_pr=!1),r?this.last_pr:null))}})).apply(this,arguments)}function I(i){return i.draw_first=!0,i.configureOnline=function(r,e,s,t,a){this.setItemName(r,"",this),this.url=e,this.root_version=t,this.askey=s,this.draw_expr=a},i.configureTree=function(r){this.local_tree=r},i.showExtraButtons=function(r){const e=this.selectDom(),s=this.local_tree?.fEntries||0;e.select(".treedraw_more").remove(),e.select(".treedraw_buttons").node().innerHTML+=`Cut: Opt: Num: First: `,e.select(".treedraw_exe").on("click",()=>this.performDraw()),e.select(".treedraw_cut").property("value",r?.parse_cut||"").on("change",()=>this.performDraw()),e.select(".treedraw_opt").property("value",r?.drawopt||"").on("change",()=>this.performDraw()),e.select(".treedraw_number").attr("value",r?.numentries||""),e.select(".treedraw_first").attr("value",r?.firstentry||""),e.select(".treedraw_clear").on("click",()=>(0,f.tP)(this.drawid))},i.showPlayer=function(r){const e=this.selectDom();this.drawid="jsroot_tree_player_"+n.internals.id_counter+++"_draw";const s=r?.parse_cut||r?.numentries||r?.firstentry;e.html(`
Expr:

`),this.setTopPainter(),this.local_tree&&e.select(".treedraw_buttons").attr("title","Tree draw player for: "+this.local_tree.fName),e.select(".treedraw_exe").on("click",()=>this.performDraw()),e.select(".treedraw_varexp").attr("value",r?.parse_expr||this.draw_expr||"px:py").on("change",()=>this.performDraw()),e.select(".treedraw_varexp_info").attr("title","Example of valid draw expressions:\n px - 1-dim draw\n px:py - 2-dim draw\n px:py:pz - 3-dim draw\n px+py:px-py - use any expressions\n px:py>>Graph - create and draw TGraph\n px:py>>dump - dump extracted variables\n px:py>>h(50,-5,5,50,-5,5) - custom histogram\n px:py;hbins:100 - custom number of bins"),s?this.showExtraButtons(r):e.select(".treedraw_more").on("click",()=>this.showExtraButtons(r)),this.checkResize(),(0,y.d7)(this)},i.getValue=function(r){const e=this.selectDom().select(r);if(e.empty())return;const s=e.property("value");return void 0!==s?s:e.attr("value")},i.performLocalDraw=function(){if(!this.local_tree)return;const r=this.selectDom(),e={expr:this.getValue(".treedraw_varexp")};r.select(".treedraw_more").empty()&&(e.cut=this.getValue(".treedraw_cut"),e.cut||delete e.cut,e.drawopt=this.getValue(".treedraw_opt"),"dump"===e.drawopt&&(e.dump=!0,e.drawopt=""),e.drawopt||delete e.drawopt,e.numentries=parseInt(this.getValue(".treedraw_number")),Number.isInteger(e.numentries)||delete e.numentries,e.firstentry=parseInt(this.getValue(".treedraw_first")),Number.isInteger(e.firstentry)||delete e.firstentry),(0,f.tP)(this.drawid),e.drawid=this.drawid,e.progress=$.bind(e),(0,u.treeDraw)(this.local_tree,e).then(s=>e.progress(s,!0))},i.getDrawOpt=function(){let r="player";const e=this.getValue(".treedraw_varexp");return e&&(r+=":"+e),r},i.performDraw=function(){if(this.local_tree)return this.performLocalDraw();const r=this.selectDom();let e=this.url+"/exe.json.gz?compact=3&method=Draw",s=this.getValue(".treedraw_varexp"),t="h_tree_draw",a="";const d=s.indexOf(">>");if(d<0)s+=`>>${t}`;else{t=s.slice(d+2),"+"===t[0]&&(t=t.slice(1));const _=t.indexOf("(");_>0&&(t=t.slice(0,_))}if(r.select(".treedraw_more").empty()){const _=this.getValue(".treedraw_cut");let p=this.getValue(".treedraw_number"),c=this.getValue(".treedraw_first");a=this.getValue(".treedraw_opt"),e+=`&prototype="const char*,const char*,Option_t*,Long64_t,Long64_t"&varexp="${s}"&selection="${_}"`,p||(p="TTree::kMaxEntries"),c||(c="0"),e+=`&option="${a}"&nentries=${p}&firstentry=${c}`}else e+=`&prototype="Option_t*"&opt="${s}"`;e+=`&_ret_object_=${t}`;const l=()=>{(0,n.httpRequest)(e,"object").then(_=>{(0,f.tP)(this.drawid),b(this.drawid,_,a)})};this.draw_expr=s,this.askey?(this.askey=!1,(0,n.httpRequest)(this.url+"/root.json.gz?compact=3","text").then(l)):l()},i.checkResize=function(){(0,f.XR)(this.drawid)},i}function P(i,r,e,s){let t=i.findItem(r),a="",d=0;const l=i.getTopOnlineItem(t);if(!t||!l)return null;if(s){for(a=t._name;t&&!t._ttree;)t=t._parent;if(!t)return null;r=i.itemFullName(t)}const _=i.getOnlineItemUrl(r);if(!_)return null;const p=l._root_version||400129,c=i.getDisplay();if(!c)return null;const R=c.findFrame(r,!0);if(!R)return null;const S=(0,L.Lt)(R).attr("id"),h=new E.b8(S);if(t._childs&&!s)for(let v=0;v0&&(a+=":"),a+=w._name)}return I(h),h.configureOnline(r,_,e,p,a),h.showPlayer(),h}function W(i,r){return P(i,r,!0)}function k(i,r){return P(i,r,!1,!0)}function U(i,r,e){return D.apply(this,arguments)}function D(){return(D=(0,m.A)(function*(i,r,e){let a,d,s=r,t=e;if(r._typename===u.clTBranchFunc?(t={expr:`.${r.func}()`,branch:r.branch},e&&0===e.indexOf("dump")?t.expr+=">>"+e:e&&(t.expr+=e),s=r.branch.$tree):r.$branch?(t={expr:`.${r.fName}${e||""}`,branch:r.$branch},(t.branch.fType===u.kClonesNode||t.branch.fType===u.kSTLNode)&&(t.expr=e,t.direct_branch=!0),s=r.$branch.$tree):r.$tree?(!e&&r.fStreamerType&&r.fStreamerType!==x.V$&&r.fStreamerType>=x.Ph&&r.fStreamerType<=x.Ql&&(e="dump"),t={expr:e,branch:r},s=r.$tree):(t||(t="player"),(0,n.isStr)(t)&&(t={expr:t})),!s)throw Error("No TTree object available for TTree::Draw");if((0,n.isStr)(t.expr)){const l=t.expr.indexOf("player");0===l?(t.player=!0,t.expr=t.expr.slice(6),":"===t.expr[0]&&(t.expr=t.expr.slice(1))):l>=0&&l===t.expr.length-6&&(t.player=!0,t.expr=t.expr.slice(0,l),l>0&&";"===t.expr[l-1]&&(t.expr=t.expr.slice(0,l-1)))}if(t.player?(a=new f.JW(i,r,e),I(a),a.configureTree(s),a.showPlayer(t),t.drawid=a.drawid):t.drawid=i,t.progress=$.bind(t),"testio"===t.expr)t.testio=!0,t.showProgress=l=>(0,y.Rh)(l,-1,()=>{t._break=1}),d=(0,u.treeIOTest)(s,t);else{if(!t.expr&&!t.branch)return a;d=(0,u.treeDraw)(s,t)}return d.then(l=>t.progress(l,!0))})).apply(this,arguments)}u.TDrawSelector.prototype.ShowProgress=function(i){let r,e;if(void 0!==i&&Number.isFinite(i))if(this._break)r="Breaking ... ",e="break";else{if(this.last_progress!==i){const t=i-this.last_progress;this.aver_diff||(this.aver_diff=t),this.aver_diff=.3*t+.7*this.aver_diff}this.last_progress=i;let s=0;this.aver_diff<=0?s=0:this.aver_diff<1e-4?s=3:this.aver_diff<.001?s=2:this.aver_diff<.01&&(s=1),r=`TTree draw ${(100*i).toFixed(s)} % `}else r=e="";return(0,y.Rh)(r,-1,()=>{this._break=1}),e}}}]); -//# sourceMappingURL=122.72555e34fbca494e.js.map \ No newline at end of file +"use strict";(self.webpackChunkphoenix_app=self.webpackChunkphoenix_app||[]).push([[122],{1122:(V,O,o)=>{o.r(O),o.d(O,{drawLeafPlayer:()=>W,drawTree:()=>k,drawTreePlayer:()=>P,drawTreePlayerKey:()=>U});var m=o(4882),n=o(8872),R=o(8362),x=o(4369),_=o(1949),E=o(2843),f=o(1922),B=o(8142),C=o(4355),M=o(1828),A=o(7917),K=o(643),y=o(5992);function b(i,r,e){return T.apply(this,arguments)}function T(){return(T=(0,m.A)(function*(i,r,e){const s=r?._typename;return s&&(0,n.isStr)(s)?0===s.indexOf(n.clTH1)?B.TH1Painter.draw(i,r,e):0===s.indexOf(n.clTH2)?C.TH2Painter.draw(i,r,e):0===s.indexOf(n.clTH3)?M.TH3Painter.draw(i,r,e):0===s.indexOf(n.clTGraph)?A.k.draw(i,r,e):s===n.clTPolyMarker3D&&r.$hist?M.TH3Painter.draw(i,r.$hist,e).then(()=>{const t=new f.JW(i,r,e);return t.addToPadPrimitives(),t.redraw=K.Y,t.redraw()}):Promise.reject(Error(`Object of type ${s} cannot be draw with TTree`)):Promise.reject(Error("Object without type cannot be draw with TTree"))})).apply(this,arguments)}function $(i,r){return g.apply(this,arguments)}function g(){return(g=(0,m.A)(function*(i,r){if(r||this.last_pr){if(this.dump||this.testio){if(!r)return;if((0,n.isBatchMode)()){const s=new E.b8(this.drawid);return s.selectDom().property("_json_object_",i),s}if((0,n.isFunc)(n.internals.drawInspector))return n.internals.drawInspector(this.drawid,i);const e=(0,n.create)(n.clTObjString);return e.fString=(0,n.toJSON)(i,2),(0,f.as)(this.drawid,e)}return this.last_pr||(this.last_pr=Promise.resolve(!0)),this.last_pr.then(()=>(this.obj_painter?this.last_pr=this.obj_painter.redrawObject(i).then(()=>this.obj_painter):i?this.last_pr=b(this.drawid,i).then(e=>(this.obj_painter=e,r||(this.last_pr=null),e)):(r&&console.log("no result after tree drawing"),this.last_pr=!1),r?this.last_pr:null))}})).apply(this,arguments)}function I(i){return i.draw_first=!0,i.configureOnline=function(r,e,s,t,a){this.setItemName(r,"",this),this.url=e,this.root_version=t,this.askey=s,this.draw_expr=a},i.configureTree=function(r){this.local_tree=r},i.showExtraButtons=function(r){const e=this.selectDom(),s=this.local_tree?.fEntries||0;e.select(".treedraw_more").remove(),e.select(".treedraw_buttons").node().innerHTML+=`Cut: Opt: Num: First: `,e.select(".treedraw_exe").on("click",()=>this.performDraw()),e.select(".treedraw_cut").property("value",r?.parse_cut||"").on("change",()=>this.performDraw()),e.select(".treedraw_opt").property("value",r?.drawopt||"").on("change",()=>this.performDraw()),e.select(".treedraw_number").attr("value",r?.numentries||""),e.select(".treedraw_first").attr("value",r?.firstentry||""),e.select(".treedraw_clear").on("click",()=>(0,f.tP)(this.drawid))},i.showPlayer=function(r){const e=this.selectDom();this.drawid="jsroot_tree_player_"+n.internals.id_counter+++"_draw";const s=r?.parse_cut||r?.numentries||r?.firstentry;e.html(`
Expr:

`),this.setTopPainter(),this.local_tree&&e.select(".treedraw_buttons").attr("title","Tree draw player for: "+this.local_tree.fName),e.select(".treedraw_exe").on("click",()=>this.performDraw()),e.select(".treedraw_varexp").attr("value",r?.parse_expr||this.draw_expr||"px:py").on("change",()=>this.performDraw()),e.select(".treedraw_varexp_info").attr("title","Example of valid draw expressions:\n px - 1-dim draw\n px:py - 2-dim draw\n px:py:pz - 3-dim draw\n px+py:px-py - use any expressions\n px:py>>Graph - create and draw TGraph\n px:py>>dump - dump extracted variables\n px:py>>h(50,-5,5,50,-5,5) - custom histogram\n px:py;hbins:100 - custom number of bins"),s?this.showExtraButtons(r):e.select(".treedraw_more").on("click",()=>this.showExtraButtons(r)),this.checkResize(),(0,y.d7)(this)},i.getValue=function(r){const e=this.selectDom().select(r);if(e.empty())return;const s=e.property("value");return void 0!==s?s:e.attr("value")},i.performLocalDraw=function(){if(!this.local_tree)return;const r=this.selectDom(),e={expr:this.getValue(".treedraw_varexp")};r.select(".treedraw_more").empty()&&(e.cut=this.getValue(".treedraw_cut"),e.cut||delete e.cut,e.drawopt=this.getValue(".treedraw_opt"),"dump"===e.drawopt&&(e.dump=!0,e.drawopt=""),e.drawopt||delete e.drawopt,e.numentries=parseInt(this.getValue(".treedraw_number")),Number.isInteger(e.numentries)||delete e.numentries,e.firstentry=parseInt(this.getValue(".treedraw_first")),Number.isInteger(e.firstentry)||delete e.firstentry),(0,f.tP)(this.drawid),e.drawid=this.drawid,e.progress=$.bind(e),(0,_.treeDraw)(this.local_tree,e).then(s=>e.progress(s,!0))},i.getDrawOpt=function(){let r="player";const e=this.getValue(".treedraw_varexp");return e&&(r+=":"+e),r},i.performDraw=function(){if(this.local_tree)return this.performLocalDraw();const r=this.selectDom();let e=this.url+"/exe.json.gz?compact=3&method=Draw",s=this.getValue(".treedraw_varexp"),t="h_tree_draw",a="";const d=s.indexOf(">>");if(d<0)s+=`>>${t}`;else{t=s.slice(d+2),"+"===t[0]&&(t=t.slice(1));const u=t.indexOf("(");u>0&&(t=t.slice(0,u))}if(r.select(".treedraw_more").empty()){const u=this.getValue(".treedraw_cut");let p=this.getValue(".treedraw_number"),c=this.getValue(".treedraw_first");a=this.getValue(".treedraw_opt"),e+=`&prototype="const char*,const char*,Option_t*,Long64_t,Long64_t"&varexp="${s}"&selection="${u}"`,p||(p="TTree::kMaxEntries"),c||(c="0"),e+=`&option="${a}"&nentries=${p}&firstentry=${c}`}else e+=`&prototype="Option_t*"&opt="${s}"`;e+=`&_ret_object_=${t}`;const l=()=>{(0,n.httpRequest)(e,"object").then(u=>{(0,f.tP)(this.drawid),b(this.drawid,u,a)})};this.draw_expr=s,this.askey?(this.askey=!1,(0,n.httpRequest)(this.url+"/root.json.gz?compact=3","text").then(l)):l()},i.checkResize=function(){(0,f.XR)(this.drawid)},i}function P(i,r,e,s){let t=i.findItem(r),a="",d=0;const l=i.getTopOnlineItem(t);if(!t||!l)return null;if(s){for(a=t._name;t&&!t._ttree;)t=t._parent;if(!t)return null;r=i.itemFullName(t)}const u=i.getOnlineItemUrl(r);if(!u)return null;const p=l._root_version||400129,c=i.getDisplay();if(!c)return null;const L=c.findFrame(r,!0);if(!L)return null;const S=(0,R.Lt)(L).attr("id"),h=new E.b8(S);if(t._childs&&!s)for(let v=0;v0&&(a+=":"),a+=w._name)}return I(h),h.configureOnline(r,u,e,p,a),h.showPlayer(),h}function U(i,r){return P(i,r,!0)}function W(i,r){return P(i,r,!1,!0)}function k(i,r,e){return D.apply(this,arguments)}function D(){return(D=(0,m.A)(function*(i,r,e){let a,d,s=r,t=e;if(r._typename===_.clTBranchFunc?(t={expr:`.${r.func}()`,branch:r.branch},e&&0===e.indexOf("dump")?t.expr+=">>"+e:e&&(t.expr+=e),s=r.branch.$tree):r.$branch?(t={expr:`.${r.fName}${e||""}`,branch:r.$branch},(t.branch.fType===_.kClonesNode||t.branch.fType===_.kSTLNode)&&(t.expr=e,t.direct_branch=!0),s=r.$branch.$tree):r.$tree?(!e&&r.fStreamerType&&r.fStreamerType!==x.V$&&r.fStreamerType>=x.Ph&&r.fStreamerType<=x.Ql&&(e="dump"),t={expr:e,branch:r},s=r.$tree):(t||(t="player"),(0,n.isStr)(t)&&(t={expr:t})),!s)throw Error("No TTree object available for TTree::Draw");if((0,n.isStr)(t.expr)){const l=t.expr.indexOf("player");0===l?(t.player=!0,t.expr=t.expr.slice(6),":"===t.expr[0]&&(t.expr=t.expr.slice(1))):l>=0&&l===t.expr.length-6&&(t.player=!0,t.expr=t.expr.slice(0,l),l>0&&";"===t.expr[l-1]&&(t.expr=t.expr.slice(0,l-1)))}if(t.player?(a=new f.JW(i,r,e),I(a),a.configureTree(s),a.showPlayer(t),t.drawid=a.drawid):t.drawid=i,t.progress=$.bind(t),"testio"===t.expr)t.testio=!0,t.showProgress=l=>(0,y.Rh)(l,-1,()=>{t._break=1}),d=(0,_.treeIOTest)(s,t);else{if(!t.expr&&!t.branch)return a;d=(0,_.treeDraw)(s,t)}return d.then(l=>t.progress(l,!0))})).apply(this,arguments)}_.TDrawSelector.prototype.ShowProgress=function(i){let r,e;if(void 0!==i&&Number.isFinite(i))if(this._break)r="Breaking ... ",e="break";else{if(this.last_progress!==i){const t=i-this.last_progress;this.aver_diff||(this.aver_diff=t),this.aver_diff=.3*t+.7*this.aver_diff}this.last_progress=i;let s=0;this.aver_diff<=0?s=0:this.aver_diff<1e-4?s=3:this.aver_diff<.001?s=2:this.aver_diff<.01&&(s=1),r=`TTree draw ${(100*i).toFixed(s)} % `}else r=e="";return(0,y.Rh)(r,-1,()=>{this._break=1}),e}}}]); +//# sourceMappingURL=122.8763cbe2ecb78938.js.map \ No newline at end of file diff --git a/docs/122.72555e34fbca494e.js.map b/docs/122.8763cbe2ecb78938.js.map similarity index 99% rename from docs/122.72555e34fbca494e.js.map rename to docs/122.8763cbe2ecb78938.js.map index 44844ef6..bf64218e 100644 --- a/docs/122.72555e34fbca494e.js.map +++ b/docs/122.8763cbe2ecb78938.js.map @@ -1 +1 @@ -{"version":3,"file":"122.72555e34fbca494e.js","mappings":"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","names":["drawTreeDrawResult","_x","_x2","_x3","_drawTreeDrawResult","apply","this","arguments","_asyncToGenerator","dom","obj","opt","typ","_typename","isStr","indexOf","clTH1","TH1Painter","draw","clTH2","TH2Painter","clTH3","TH3Painter","clTGraph","TGraphPainter","clTPolyMarker3D","$hist","then","p2","ObjectPainter","addToPadPrimitives","redraw","drawPolyMarker3D","Promise","reject","Error","treeDrawProgress","_x4","_x5","_treeDrawProgress","final","last_pr","dump","testio","isBatchMode","painter","BasePainter","drawid","selectDom","property","isFunc","internals","drawInspector","str","create","clTObjString","fString","toJSON","drawRawText","resolve","obj_painter","redrawObject","p","console","log","createTreePlayer","player","draw_first","configureOnline","itemname","url","askey","root_version","expr","setItemName","draw_expr","configureTree","tree","local_tree","showExtraButtons","args","main","numentries","fEntries","select","remove","node","innerHTML","on","performDraw","parse_cut","drawopt","attr","firstentry","cleanup","showPlayer","id_counter","show_extra","html","setTopPainter","fName","parse_expr","checkResize","registerForResize","getValue","sel","elem","empty","val","undefined","performLocalDraw","frame","cut","parseInt","Number","isInteger","progress","bind","treeDraw","getDrawOpt","res","hname","option","pos","slice","pos2","nentries","submitDrawRequest","httpRequest","resize","drawTreePlayer","hpainter","asleaf","item","findItem","leaf_cnt","top","getTopOnlineItem","_name","_ttree","_parent","itemFullName","getOnlineItemUrl","_root_version","mdi","getDisplay","findFrame","divid","d3_select","_childs","n","length","leaf","_kind","prROOT","drawTreePlayerKey","drawLeafPlayer","drawTree","_x6","_x7","_x8","_drawTree","pr","clTBranchFunc","func","branch","$tree","$branch","fType","kClonesNode","kSTLNode","direct_branch","fStreamerType","kTString","kObject","kAnyP","showProgress","msg","_break","treeIOTest","TDrawSelector","prototype","ShowProgress","value","ret","isFinite","last_progress","diff","aver_diff","ndig","toFixed"],"ignoreList":[],"sourceRoot":"webpack:///","sources":["../node_modules/jsroot/modules/draw/TTree.mjs"],"sourcesContent":["import { internals, settings, httpRequest, isBatchMode, isFunc, isStr, create, toJSON,\n prROOT, clTObjString, clTGraph, clTPolyMarker3D, clTH1, clTH2, clTH3 } from '../core.mjs';\nimport { select as d3_select } from '../d3.mjs';\nimport { kTString, kObject, kAnyP } from '../io.mjs';\nimport { kClonesNode, kSTLNode, clTBranchFunc, treeDraw, treeIOTest, TDrawSelector } from '../tree.mjs';\nimport { BasePainter } from '../base/BasePainter.mjs';\nimport { cleanup, resize, drawRawText, ObjectPainter } from '../base/ObjectPainter.mjs';\nimport { TH1Painter } from '../hist/TH1Painter.mjs';\nimport { TH2Painter } from '../hist/TH2Painter.mjs';\nimport { TH3Painter } from '../hist/TH3Painter.mjs';\nimport { TGraphPainter } from '../hist/TGraphPainter.mjs';\nimport { drawPolyMarker3D } from '../draw/TPolyMarker3D.mjs';\nimport { showProgress, registerForResize } from '../gui/utils.mjs';\n\n\n/** @summary Show TTree::Draw progress during processing\n * @private */\nTDrawSelector.prototype.ShowProgress = function(value) {\n let msg, ret;\n if ((value === undefined) || !Number.isFinite(value))\n msg = ret = '';\n else if (this._break) {\n msg = 'Breaking ... ';\n ret = 'break';\n } else {\n if (this.last_progress !== value) {\n const diff = value - this.last_progress;\n if (!this.aver_diff) this.aver_diff = diff;\n this.aver_diff = diff * 0.3 + this.aver_diff * 0.7;\n }\n\n this.last_progress = value;\n\n let ndig = 0;\n if (this.aver_diff <= 0)\n ndig = 0;\n else if (this.aver_diff < 0.0001)\n ndig = 3;\n else if (this.aver_diff < 0.001)\n ndig = 2;\n else if (this.aver_diff < 0.01)\n ndig = 1;\n msg = `TTree draw ${(value * 100).toFixed(ndig)} % `;\n }\n\n showProgress(msg, -1, () => { this._break = 1; });\n return ret;\n};\n\n/** @summary Draw result of tree drawing\n * @private */\nasync function drawTreeDrawResult(dom, obj, opt) {\n const typ = obj?._typename;\n\n if (!typ || !isStr(typ))\n return Promise.reject(Error('Object without type cannot be draw with TTree'));\n\n if (typ.indexOf(clTH1) === 0)\n return TH1Painter.draw(dom, obj, opt);\n if (typ.indexOf(clTH2) === 0)\n return TH2Painter.draw(dom, obj, opt);\n if (typ.indexOf(clTH3) === 0)\n return TH3Painter.draw(dom, obj, opt);\n if (typ.indexOf(clTGraph) === 0)\n return TGraphPainter.draw(dom, obj, opt);\n if ((typ === clTPolyMarker3D) && obj.$hist) {\n return TH3Painter.draw(dom, obj.$hist, opt).then(() => {\n const p2 = new ObjectPainter(dom, obj, opt);\n p2.addToPadPrimitives();\n p2.redraw = drawPolyMarker3D;\n return p2.redraw();\n });\n }\n\n return Promise.reject(Error(`Object of type ${typ} cannot be draw with TTree`));\n}\n\n\n/** @summary Handle callback function with progress of tree draw\n * @private */\nasync function treeDrawProgress(obj, final) {\n // no need to update drawing if previous is not yet completed\n if (!final && !this.last_pr)\n return;\n\n if (this.dump || this.testio) {\n if (!final) return;\n if (isBatchMode()) {\n const painter = new BasePainter(this.drawid);\n painter.selectDom().property('_json_object_', obj);\n return painter;\n }\n if (isFunc(internals.drawInspector))\n return internals.drawInspector(this.drawid, obj);\n const str = create(clTObjString);\n str.fString = toJSON(obj, 2);\n return drawRawText(this.drawid, str);\n }\n\n // complex logic with intermediate update\n // while TTree reading not synchronized with drawing,\n // next portion can appear before previous is drawn\n // critical is last drawing which should wait for previous one\n // therefore last_pr is kept as inidication that promise is not yet processed\n\n if (!this.last_pr) this.last_pr = Promise.resolve(true);\n\n return this.last_pr.then(() => {\n if (this.obj_painter)\n this.last_pr = this.obj_painter.redrawObject(obj).then(() => this.obj_painter);\n else if (!obj) {\n if (final) console.log('no result after tree drawing');\n this.last_pr = false; // return false indicating no drawing is done\n } else {\n this.last_pr = drawTreeDrawResult(this.drawid, obj).then(p => {\n this.obj_painter = p;\n if (!final) this.last_pr = null;\n return p; // return painter for histogram\n });\n }\n\n return final ? this.last_pr : null;\n });\n}\n\n\n/** @summary Create painter to perform tree drawing on server side\n * @private */\nfunction createTreePlayer(player) {\n player.draw_first = true;\n\n player.configureOnline = function(itemname, url, askey, root_version, expr) {\n this.setItemName(itemname, '', this);\n this.url = url;\n this.root_version = root_version;\n this.askey = askey;\n this.draw_expr = expr;\n };\n\n player.configureTree = function(tree) {\n this.local_tree = tree;\n };\n\n player.showExtraButtons = function(args) {\n const main = this.selectDom(),\n numentries = this.local_tree?.fEntries || 0;\n\n main.select('.treedraw_more').remove(); // remove more button first\n\n main.select('.treedraw_buttons').node().innerHTML +=\n 'Cut: '+\n 'Opt: '+\n `Num: `+\n `First: `+\n '';\n\n main.select('.treedraw_exe').on('click', () => this.performDraw());\n main.select('.treedraw_cut').property('value', args?.parse_cut || '').on('change', () => this.performDraw());\n main.select('.treedraw_opt').property('value', args?.drawopt || '').on('change', () => this.performDraw());\n main.select('.treedraw_number').attr('value', args?.numentries || ''); // .on('change', () => this.performDraw());\n main.select('.treedraw_first').attr('value', args?.firstentry || ''); // .on('change', () => this.performDraw());\n main.select('.treedraw_clear').on('click', () => cleanup(this.drawid));\n };\n\n player.showPlayer = function(args) {\n const main = this.selectDom();\n\n this.drawid = 'jsroot_tree_player_' + internals.id_counter++ + '_draw';\n\n const show_extra = args?.parse_cut || args?.numentries || args?.firstentry;\n\n main.html('
'+\n '
' +\n '' +\n 'Expr:'+\n '' +\n '' +\n '
' +\n '

' +\n `
` +\n '
');\n\n // only when main html element created, one can set painter\n // ObjectPainter allow such usage of methods from BasePainter\n this.setTopPainter();\n\n if (this.local_tree) {\n main.select('.treedraw_buttons')\n .attr('title', 'Tree draw player for: ' + this.local_tree.fName);\n }\n main.select('.treedraw_exe').on('click', () => this.performDraw());\n main.select('.treedraw_varexp')\n .attr('value', args?.parse_expr || this.draw_expr || 'px:py')\n .on('change', () => this.performDraw());\n main.select('.treedraw_varexp_info')\n .attr('title', 'Example of valid draw expressions:\\n' +\n ' px - 1-dim draw\\n' +\n ' px:py - 2-dim draw\\n' +\n ' px:py:pz - 3-dim draw\\n' +\n ' px+py:px-py - use any expressions\\n' +\n ' px:py>>Graph - create and draw TGraph\\n' +\n ' px:py>>dump - dump extracted variables\\n' +\n ' px:py>>h(50,-5,5,50,-5,5) - custom histogram\\n' +\n ' px:py;hbins:100 - custom number of bins');\n\n if (show_extra)\n this.showExtraButtons(args);\n else\n main.select('.treedraw_more').on('click', () => this.showExtraButtons(args));\n\n this.checkResize();\n\n registerForResize(this);\n };\n\n player.getValue = function(sel) {\n const elem = this.selectDom().select(sel);\n if (elem.empty()) return;\n const val = elem.property('value');\n if (val !== undefined) return val;\n return elem.attr('value');\n };\n\n player.performLocalDraw = function() {\n if (!this.local_tree) return;\n\n const frame = this.selectDom(),\n args = { expr: this.getValue('.treedraw_varexp') };\n\n if (frame.select('.treedraw_more').empty()) {\n args.cut = this.getValue('.treedraw_cut');\n if (!args.cut) delete args.cut;\n\n args.drawopt = this.getValue('.treedraw_opt');\n if (args.drawopt === 'dump') { args.dump = true; args.drawopt = ''; }\n if (!args.drawopt) delete args.drawopt;\n\n args.numentries = parseInt(this.getValue('.treedraw_number'));\n if (!Number.isInteger(args.numentries)) delete args.numentries;\n\n args.firstentry = parseInt(this.getValue('.treedraw_first'));\n if (!Number.isInteger(args.firstentry)) delete args.firstentry;\n }\n\n /* if (args.drawopt) */ cleanup(this.drawid);\n\n args.drawid = this.drawid;\n\n args.progress = treeDrawProgress.bind(args);\n\n treeDraw(this.local_tree, args).then(obj => args.progress(obj, true));\n };\n\n player.getDrawOpt = function() {\n let res = 'player';\n const expr = this.getValue('.treedraw_varexp');\n if (expr) res += ':' + expr;\n return res;\n };\n\n player.performDraw = function() {\n if (this.local_tree)\n return this.performLocalDraw();\n\n const frame = this.selectDom();\n let url = this.url + '/exe.json.gz?compact=3&method=Draw',\n expr = this.getValue('.treedraw_varexp'),\n hname = 'h_tree_draw', option = '';\n const pos = expr.indexOf('>>');\n\n if (pos < 0)\n expr += `>>${hname}`;\n else {\n hname = expr.slice(pos+2);\n if (hname[0] === '+') hname = hname.slice(1);\n const pos2 = hname.indexOf('(');\n if (pos2 > 0) hname = hname.slice(0, pos2);\n }\n\n if (frame.select('.treedraw_more').empty()) {\n const cut = this.getValue('.treedraw_cut');\n let nentries = this.getValue('.treedraw_number'),\n firstentry = this.getValue('.treedraw_first');\n\n option = this.getValue('.treedraw_opt');\n\n url += `&prototype=\"const char*,const char*,Option_t*,Long64_t,Long64_t\"&varexp=\"${expr}\"&selection=\"${cut}\"`;\n\n // provide all optional arguments - default value kMaxEntries not works properly in ROOT6\n if (!nentries) nentries = 'TTree::kMaxEntries'; // kMaxEntries available since ROOT 6.05/03\n if (!firstentry) firstentry = '0';\n url += `&option=\"${option}\"&nentries=${nentries}&firstentry=${firstentry}`;\n } else\n url += `&prototype=\"Option_t*\"&opt=\"${expr}\"`;\n\n url += `&_ret_object_=${hname}`;\n\n const submitDrawRequest = () => {\n httpRequest(url, 'object').then(res => {\n cleanup(this.drawid);\n drawTreeDrawResult(this.drawid, res, option);\n });\n };\n\n this.draw_expr = expr;\n\n if (this.askey) {\n // first let read tree from the file\n this.askey = false;\n httpRequest(this.url + '/root.json.gz?compact=3', 'text').then(submitDrawRequest);\n } else\n submitDrawRequest();\n };\n\n player.checkResize = function(/* arg */) {\n resize(this.drawid);\n };\n\n return player;\n}\n\n\n/** @summary function used with THttpServer to assign player for the TTree object\n * @private */\nfunction drawTreePlayer(hpainter, itemname, askey, asleaf) {\n let item = hpainter.findItem(itemname),\n expr = '', leaf_cnt = 0;\n const top = hpainter.getTopOnlineItem(item);\n if (!item || !top) return null;\n\n if (asleaf) {\n expr = item._name;\n while (item && !item._ttree) item = item._parent;\n if (!item) return null;\n itemname = hpainter.itemFullName(item);\n }\n\n const url = hpainter.getOnlineItemUrl(itemname);\n if (!url) return null;\n\n const root_version = top._root_version || 400129, // by default use version number 6-27-01\n\n mdi = hpainter.getDisplay();\n if (!mdi) return null;\n\n const frame = mdi.findFrame(itemname, true);\n if (!frame) return null;\n\n const divid = d3_select(frame).attr('id'),\n player = new BasePainter(divid);\n\n if (item._childs && !asleaf) {\n for (let n = 0; n < item._childs.length; ++n) {\n const leaf = item._childs[n];\n if (leaf && leaf._kind && (leaf._kind.indexOf(prROOT + 'TLeaf') === 0) && (leaf_cnt < 2)) {\n if (leaf_cnt++ > 0) expr += ':';\n expr += leaf._name;\n }\n }\n }\n\n createTreePlayer(player);\n player.configureOnline(itemname, url, askey, root_version, expr);\n player.showPlayer();\n\n return player;\n}\n\n/** @summary function used with THttpServer when tree is not yet loaded\n * @private */\nfunction drawTreePlayerKey(hpainter, itemname) {\n return drawTreePlayer(hpainter, itemname, true);\n}\n\n/** @summary function used with THttpServer when tree is not yet loaded\n * @private */\nfunction drawLeafPlayer(hpainter, itemname) {\n return drawTreePlayer(hpainter, itemname, false, true);\n}\n\n/** @summary function called from draw()\n * @desc just envelope for real TTree::Draw method which do the main job\n * Can be also used for the branch and leaf object\n * @private */\nasync function drawTree(dom, obj, opt) {\n let tree = obj, args = opt;\n\n if (obj._typename === clTBranchFunc) {\n // fictional object, created only in browser\n args = { expr: `.${obj.func}()`, branch: obj.branch };\n if (opt && opt.indexOf('dump') === 0)\n args.expr += '>>' + opt;\n else if (opt)\n args.expr += opt;\n tree = obj.branch.$tree;\n } else if (obj.$branch) {\n // this is drawing of the single leaf from the branch\n args = { expr: `.${obj.fName}${opt || ''}`, branch: obj.$branch };\n if ((args.branch.fType === kClonesNode) || (args.branch.fType === kSTLNode)) {\n // special case of size\n args.expr = opt;\n args.direct_branch = true;\n }\n\n tree = obj.$branch.$tree;\n } else if (obj.$tree) {\n // this is drawing of the branch\n\n // if generic object tried to be drawn without specifying any options, it will be just dump\n if (!opt && obj.fStreamerType && (obj.fStreamerType !== kTString) &&\n (obj.fStreamerType >= kObject) && (obj.fStreamerType <= kAnyP)) opt = 'dump';\n\n args = { expr: opt, branch: obj };\n tree = obj.$tree;\n } else {\n if (!args) args = 'player';\n if (isStr(args)) args = { expr: args };\n }\n\n if (!tree)\n throw Error('No TTree object available for TTree::Draw');\n\n if (isStr(args.expr)) {\n const p = args.expr.indexOf('player');\n if (p === 0) {\n args.player = true;\n args.expr = args.expr.slice(6);\n if (args.expr[0] === ':') args.expr = args.expr.slice(1);\n } else if ((p >= 0) && (p === args.expr.length-6)) {\n args.player = true;\n args.expr = args.expr.slice(0, p);\n if ((p > 0) && (args.expr[p-1] === ';')) args.expr = args.expr.slice(0, p-1);\n }\n }\n\n let painter;\n\n if (args.player) {\n painter = new ObjectPainter(dom, obj, opt);\n createTreePlayer(painter);\n painter.configureTree(tree);\n painter.showPlayer(args);\n args.drawid = painter.drawid;\n } else\n args.drawid = dom;\n\n\n // use in result handling same function as for progress handling\n\n args.progress = treeDrawProgress.bind(args);\n\n let pr;\n if (args.expr === 'testio') {\n args.testio = true;\n args.showProgress = msg => showProgress(msg, -1, () => { args._break = 1; });\n pr = treeIOTest(tree, args);\n } else if (args.expr || args.branch)\n pr = treeDraw(tree, args);\n else\n return painter;\n\n return pr.then(res => args.progress(res, true));\n}\n\nexport { drawTree, drawTreePlayer, drawTreePlayerKey, drawLeafPlayer };\n"],"x_google_ignoreList":[0]} \ No newline at end of file +{"version":3,"file":"122.8763cbe2ecb78938.js","mappings":"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","names":["drawTreeDrawResult","_x","_x2","_x3","_drawTreeDrawResult","apply","this","arguments","_asyncToGenerator","dom","obj","opt","typ","_typename","isStr","indexOf","clTH1","TH1Painter","draw","clTH2","TH2Painter","clTH3","TH3Painter","clTGraph","TGraphPainter","clTPolyMarker3D","$hist","then","p2","ObjectPainter","addToPadPrimitives","redraw","drawPolyMarker3D","Promise","reject","Error","treeDrawProgress","_x4","_x5","_treeDrawProgress","final","last_pr","dump","testio","isBatchMode","painter","BasePainter","drawid","selectDom","property","isFunc","internals","drawInspector","str","create","clTObjString","fString","toJSON","drawRawText","resolve","obj_painter","redrawObject","p","console","log","createTreePlayer","player","draw_first","configureOnline","itemname","url","askey","root_version","expr","setItemName","draw_expr","configureTree","tree","local_tree","showExtraButtons","args","main","numentries","fEntries","select","remove","node","innerHTML","on","performDraw","parse_cut","drawopt","attr","firstentry","cleanup","showPlayer","id_counter","show_extra","html","setTopPainter","fName","parse_expr","checkResize","registerForResize","getValue","sel","elem","empty","val","undefined","performLocalDraw","frame","cut","parseInt","Number","isInteger","progress","bind","treeDraw","getDrawOpt","res","hname","option","pos","slice","pos2","nentries","submitDrawRequest","httpRequest","resize","drawTreePlayer","hpainter","asleaf","item","findItem","leaf_cnt","top","getTopOnlineItem","_name","_ttree","_parent","itemFullName","getOnlineItemUrl","_root_version","mdi","getDisplay","findFrame","divid","d3_select","_childs","n","length","leaf","_kind","prROOT","drawTreePlayerKey","drawLeafPlayer","drawTree","_x6","_x7","_x8","_drawTree","pr","clTBranchFunc","func","branch","$tree","$branch","fType","kClonesNode","kSTLNode","direct_branch","fStreamerType","kTString","kObject","kAnyP","showProgress","msg","_break","treeIOTest","TDrawSelector","prototype","ShowProgress","value","ret","isFinite","last_progress","diff","aver_diff","ndig","toFixed"],"ignoreList":[],"sourceRoot":"webpack:///","sources":["../node_modules/jsroot/modules/draw/TTree.mjs"],"sourcesContent":["import { internals, settings, httpRequest, isBatchMode, isFunc, isStr, create, toJSON,\n prROOT, clTObjString, clTGraph, clTPolyMarker3D, clTH1, clTH2, clTH3 } from '../core.mjs';\nimport { select as d3_select } from '../d3.mjs';\nimport { kTString, kObject, kAnyP } from '../io.mjs';\nimport { kClonesNode, kSTLNode, clTBranchFunc, treeDraw, treeIOTest, TDrawSelector } from '../tree.mjs';\nimport { BasePainter } from '../base/BasePainter.mjs';\nimport { cleanup, resize, drawRawText, ObjectPainter } from '../base/ObjectPainter.mjs';\nimport { TH1Painter } from '../hist/TH1Painter.mjs';\nimport { TH2Painter } from '../hist/TH2Painter.mjs';\nimport { TH3Painter } from '../hist/TH3Painter.mjs';\nimport { TGraphPainter } from '../hist/TGraphPainter.mjs';\nimport { drawPolyMarker3D } from '../draw/TPolyMarker3D.mjs';\nimport { showProgress, registerForResize } from '../gui/utils.mjs';\n\n\n/** @summary Show TTree::Draw progress during processing\n * @private */\nTDrawSelector.prototype.ShowProgress = function(value) {\n let msg, ret;\n if ((value === undefined) || !Number.isFinite(value))\n msg = ret = '';\n else if (this._break) {\n msg = 'Breaking ... ';\n ret = 'break';\n } else {\n if (this.last_progress !== value) {\n const diff = value - this.last_progress;\n if (!this.aver_diff) this.aver_diff = diff;\n this.aver_diff = diff * 0.3 + this.aver_diff * 0.7;\n }\n\n this.last_progress = value;\n\n let ndig = 0;\n if (this.aver_diff <= 0)\n ndig = 0;\n else if (this.aver_diff < 0.0001)\n ndig = 3;\n else if (this.aver_diff < 0.001)\n ndig = 2;\n else if (this.aver_diff < 0.01)\n ndig = 1;\n msg = `TTree draw ${(value * 100).toFixed(ndig)} % `;\n }\n\n showProgress(msg, -1, () => { this._break = 1; });\n return ret;\n};\n\n/** @summary Draw result of tree drawing\n * @private */\nasync function drawTreeDrawResult(dom, obj, opt) {\n const typ = obj?._typename;\n\n if (!typ || !isStr(typ))\n return Promise.reject(Error('Object without type cannot be draw with TTree'));\n\n if (typ.indexOf(clTH1) === 0)\n return TH1Painter.draw(dom, obj, opt);\n if (typ.indexOf(clTH2) === 0)\n return TH2Painter.draw(dom, obj, opt);\n if (typ.indexOf(clTH3) === 0)\n return TH3Painter.draw(dom, obj, opt);\n if (typ.indexOf(clTGraph) === 0)\n return TGraphPainter.draw(dom, obj, opt);\n if ((typ === clTPolyMarker3D) && obj.$hist) {\n return TH3Painter.draw(dom, obj.$hist, opt).then(() => {\n const p2 = new ObjectPainter(dom, obj, opt);\n p2.addToPadPrimitives();\n p2.redraw = drawPolyMarker3D;\n return p2.redraw();\n });\n }\n\n return Promise.reject(Error(`Object of type ${typ} cannot be draw with TTree`));\n}\n\n\n/** @summary Handle callback function with progress of tree draw\n * @private */\nasync function treeDrawProgress(obj, final) {\n // no need to update drawing if previous is not yet completed\n if (!final && !this.last_pr)\n return;\n\n if (this.dump || this.testio) {\n if (!final) return;\n if (isBatchMode()) {\n const painter = new BasePainter(this.drawid);\n painter.selectDom().property('_json_object_', obj);\n return painter;\n }\n if (isFunc(internals.drawInspector))\n return internals.drawInspector(this.drawid, obj);\n const str = create(clTObjString);\n str.fString = toJSON(obj, 2);\n return drawRawText(this.drawid, str);\n }\n\n // complex logic with intermediate update\n // while TTree reading not synchronized with drawing,\n // next portion can appear before previous is drawn\n // critical is last drawing which should wait for previous one\n // therefore last_pr is kept as inidication that promise is not yet processed\n\n if (!this.last_pr) this.last_pr = Promise.resolve(true);\n\n return this.last_pr.then(() => {\n if (this.obj_painter)\n this.last_pr = this.obj_painter.redrawObject(obj).then(() => this.obj_painter);\n else if (!obj) {\n if (final) console.log('no result after tree drawing');\n this.last_pr = false; // return false indicating no drawing is done\n } else {\n this.last_pr = drawTreeDrawResult(this.drawid, obj).then(p => {\n this.obj_painter = p;\n if (!final) this.last_pr = null;\n return p; // return painter for histogram\n });\n }\n\n return final ? this.last_pr : null;\n });\n}\n\n\n/** @summary Create painter to perform tree drawing on server side\n * @private */\nfunction createTreePlayer(player) {\n player.draw_first = true;\n\n player.configureOnline = function(itemname, url, askey, root_version, expr) {\n this.setItemName(itemname, '', this);\n this.url = url;\n this.root_version = root_version;\n this.askey = askey;\n this.draw_expr = expr;\n };\n\n player.configureTree = function(tree) {\n this.local_tree = tree;\n };\n\n player.showExtraButtons = function(args) {\n const main = this.selectDom(),\n numentries = this.local_tree?.fEntries || 0;\n\n main.select('.treedraw_more').remove(); // remove more button first\n\n main.select('.treedraw_buttons').node().innerHTML +=\n 'Cut: '+\n 'Opt: '+\n `Num: `+\n `First: `+\n '';\n\n main.select('.treedraw_exe').on('click', () => this.performDraw());\n main.select('.treedraw_cut').property('value', args?.parse_cut || '').on('change', () => this.performDraw());\n main.select('.treedraw_opt').property('value', args?.drawopt || '').on('change', () => this.performDraw());\n main.select('.treedraw_number').attr('value', args?.numentries || ''); // .on('change', () => this.performDraw());\n main.select('.treedraw_first').attr('value', args?.firstentry || ''); // .on('change', () => this.performDraw());\n main.select('.treedraw_clear').on('click', () => cleanup(this.drawid));\n };\n\n player.showPlayer = function(args) {\n const main = this.selectDom();\n\n this.drawid = 'jsroot_tree_player_' + internals.id_counter++ + '_draw';\n\n const show_extra = args?.parse_cut || args?.numentries || args?.firstentry;\n\n main.html('
'+\n '
' +\n '' +\n 'Expr:'+\n '' +\n '' +\n '
' +\n '

' +\n `
` +\n '
');\n\n // only when main html element created, one can set painter\n // ObjectPainter allow such usage of methods from BasePainter\n this.setTopPainter();\n\n if (this.local_tree) {\n main.select('.treedraw_buttons')\n .attr('title', 'Tree draw player for: ' + this.local_tree.fName);\n }\n main.select('.treedraw_exe').on('click', () => this.performDraw());\n main.select('.treedraw_varexp')\n .attr('value', args?.parse_expr || this.draw_expr || 'px:py')\n .on('change', () => this.performDraw());\n main.select('.treedraw_varexp_info')\n .attr('title', 'Example of valid draw expressions:\\n' +\n ' px - 1-dim draw\\n' +\n ' px:py - 2-dim draw\\n' +\n ' px:py:pz - 3-dim draw\\n' +\n ' px+py:px-py - use any expressions\\n' +\n ' px:py>>Graph - create and draw TGraph\\n' +\n ' px:py>>dump - dump extracted variables\\n' +\n ' px:py>>h(50,-5,5,50,-5,5) - custom histogram\\n' +\n ' px:py;hbins:100 - custom number of bins');\n\n if (show_extra)\n this.showExtraButtons(args);\n else\n main.select('.treedraw_more').on('click', () => this.showExtraButtons(args));\n\n this.checkResize();\n\n registerForResize(this);\n };\n\n player.getValue = function(sel) {\n const elem = this.selectDom().select(sel);\n if (elem.empty()) return;\n const val = elem.property('value');\n if (val !== undefined) return val;\n return elem.attr('value');\n };\n\n player.performLocalDraw = function() {\n if (!this.local_tree) return;\n\n const frame = this.selectDom(),\n args = { expr: this.getValue('.treedraw_varexp') };\n\n if (frame.select('.treedraw_more').empty()) {\n args.cut = this.getValue('.treedraw_cut');\n if (!args.cut) delete args.cut;\n\n args.drawopt = this.getValue('.treedraw_opt');\n if (args.drawopt === 'dump') { args.dump = true; args.drawopt = ''; }\n if (!args.drawopt) delete args.drawopt;\n\n args.numentries = parseInt(this.getValue('.treedraw_number'));\n if (!Number.isInteger(args.numentries)) delete args.numentries;\n\n args.firstentry = parseInt(this.getValue('.treedraw_first'));\n if (!Number.isInteger(args.firstentry)) delete args.firstentry;\n }\n\n /* if (args.drawopt) */ cleanup(this.drawid);\n\n args.drawid = this.drawid;\n\n args.progress = treeDrawProgress.bind(args);\n\n treeDraw(this.local_tree, args).then(obj => args.progress(obj, true));\n };\n\n player.getDrawOpt = function() {\n let res = 'player';\n const expr = this.getValue('.treedraw_varexp');\n if (expr) res += ':' + expr;\n return res;\n };\n\n player.performDraw = function() {\n if (this.local_tree)\n return this.performLocalDraw();\n\n const frame = this.selectDom();\n let url = this.url + '/exe.json.gz?compact=3&method=Draw',\n expr = this.getValue('.treedraw_varexp'),\n hname = 'h_tree_draw', option = '';\n const pos = expr.indexOf('>>');\n\n if (pos < 0)\n expr += `>>${hname}`;\n else {\n hname = expr.slice(pos+2);\n if (hname[0] === '+') hname = hname.slice(1);\n const pos2 = hname.indexOf('(');\n if (pos2 > 0) hname = hname.slice(0, pos2);\n }\n\n if (frame.select('.treedraw_more').empty()) {\n const cut = this.getValue('.treedraw_cut');\n let nentries = this.getValue('.treedraw_number'),\n firstentry = this.getValue('.treedraw_first');\n\n option = this.getValue('.treedraw_opt');\n\n url += `&prototype=\"const char*,const char*,Option_t*,Long64_t,Long64_t\"&varexp=\"${expr}\"&selection=\"${cut}\"`;\n\n // provide all optional arguments - default value kMaxEntries not works properly in ROOT6\n if (!nentries) nentries = 'TTree::kMaxEntries'; // kMaxEntries available since ROOT 6.05/03\n if (!firstentry) firstentry = '0';\n url += `&option=\"${option}\"&nentries=${nentries}&firstentry=${firstentry}`;\n } else\n url += `&prototype=\"Option_t*\"&opt=\"${expr}\"`;\n\n url += `&_ret_object_=${hname}`;\n\n const submitDrawRequest = () => {\n httpRequest(url, 'object').then(res => {\n cleanup(this.drawid);\n drawTreeDrawResult(this.drawid, res, option);\n });\n };\n\n this.draw_expr = expr;\n\n if (this.askey) {\n // first let read tree from the file\n this.askey = false;\n httpRequest(this.url + '/root.json.gz?compact=3', 'text').then(submitDrawRequest);\n } else\n submitDrawRequest();\n };\n\n player.checkResize = function(/* arg */) {\n resize(this.drawid);\n };\n\n return player;\n}\n\n\n/** @summary function used with THttpServer to assign player for the TTree object\n * @private */\nfunction drawTreePlayer(hpainter, itemname, askey, asleaf) {\n let item = hpainter.findItem(itemname),\n expr = '', leaf_cnt = 0;\n const top = hpainter.getTopOnlineItem(item);\n if (!item || !top) return null;\n\n if (asleaf) {\n expr = item._name;\n while (item && !item._ttree) item = item._parent;\n if (!item) return null;\n itemname = hpainter.itemFullName(item);\n }\n\n const url = hpainter.getOnlineItemUrl(itemname);\n if (!url) return null;\n\n const root_version = top._root_version || 400129, // by default use version number 6-27-01\n\n mdi = hpainter.getDisplay();\n if (!mdi) return null;\n\n const frame = mdi.findFrame(itemname, true);\n if (!frame) return null;\n\n const divid = d3_select(frame).attr('id'),\n player = new BasePainter(divid);\n\n if (item._childs && !asleaf) {\n for (let n = 0; n < item._childs.length; ++n) {\n const leaf = item._childs[n];\n if (leaf && leaf._kind && (leaf._kind.indexOf(prROOT + 'TLeaf') === 0) && (leaf_cnt < 2)) {\n if (leaf_cnt++ > 0) expr += ':';\n expr += leaf._name;\n }\n }\n }\n\n createTreePlayer(player);\n player.configureOnline(itemname, url, askey, root_version, expr);\n player.showPlayer();\n\n return player;\n}\n\n/** @summary function used with THttpServer when tree is not yet loaded\n * @private */\nfunction drawTreePlayerKey(hpainter, itemname) {\n return drawTreePlayer(hpainter, itemname, true);\n}\n\n/** @summary function used with THttpServer when tree is not yet loaded\n * @private */\nfunction drawLeafPlayer(hpainter, itemname) {\n return drawTreePlayer(hpainter, itemname, false, true);\n}\n\n/** @summary function called from draw()\n * @desc just envelope for real TTree::Draw method which do the main job\n * Can be also used for the branch and leaf object\n * @private */\nasync function drawTree(dom, obj, opt) {\n let tree = obj, args = opt;\n\n if (obj._typename === clTBranchFunc) {\n // fictional object, created only in browser\n args = { expr: `.${obj.func}()`, branch: obj.branch };\n if (opt && opt.indexOf('dump') === 0)\n args.expr += '>>' + opt;\n else if (opt)\n args.expr += opt;\n tree = obj.branch.$tree;\n } else if (obj.$branch) {\n // this is drawing of the single leaf from the branch\n args = { expr: `.${obj.fName}${opt || ''}`, branch: obj.$branch };\n if ((args.branch.fType === kClonesNode) || (args.branch.fType === kSTLNode)) {\n // special case of size\n args.expr = opt;\n args.direct_branch = true;\n }\n\n tree = obj.$branch.$tree;\n } else if (obj.$tree) {\n // this is drawing of the branch\n\n // if generic object tried to be drawn without specifying any options, it will be just dump\n if (!opt && obj.fStreamerType && (obj.fStreamerType !== kTString) &&\n (obj.fStreamerType >= kObject) && (obj.fStreamerType <= kAnyP)) opt = 'dump';\n\n args = { expr: opt, branch: obj };\n tree = obj.$tree;\n } else {\n if (!args) args = 'player';\n if (isStr(args)) args = { expr: args };\n }\n\n if (!tree)\n throw Error('No TTree object available for TTree::Draw');\n\n if (isStr(args.expr)) {\n const p = args.expr.indexOf('player');\n if (p === 0) {\n args.player = true;\n args.expr = args.expr.slice(6);\n if (args.expr[0] === ':') args.expr = args.expr.slice(1);\n } else if ((p >= 0) && (p === args.expr.length-6)) {\n args.player = true;\n args.expr = args.expr.slice(0, p);\n if ((p > 0) && (args.expr[p-1] === ';')) args.expr = args.expr.slice(0, p-1);\n }\n }\n\n let painter;\n\n if (args.player) {\n painter = new ObjectPainter(dom, obj, opt);\n createTreePlayer(painter);\n painter.configureTree(tree);\n painter.showPlayer(args);\n args.drawid = painter.drawid;\n } else\n args.drawid = dom;\n\n\n // use in result handling same function as for progress handling\n\n args.progress = treeDrawProgress.bind(args);\n\n let pr;\n if (args.expr === 'testio') {\n args.testio = true;\n args.showProgress = msg => showProgress(msg, -1, () => { args._break = 1; });\n pr = treeIOTest(tree, args);\n } else if (args.expr || args.branch)\n pr = treeDraw(tree, args);\n else\n return painter;\n\n return pr.then(res => args.progress(res, true));\n}\n\nexport { drawTree, drawTreePlayer, drawTreePlayerKey, drawLeafPlayer };\n"],"x_google_ignoreList":[0]} \ No newline at end of file diff --git a/docs/15.68a7ec0c4c875865.js b/docs/15.cfb627b49d0facc2.js similarity index 93% rename from docs/15.68a7ec0c4c875865.js rename to docs/15.cfb627b49d0facc2.js index 61374c37..34e6b11f 100644 --- a/docs/15.68a7ec0c4c875865.js +++ b/docs/15.cfb627b49d0facc2.js @@ -1,2 +1,2 @@ -"use strict";(self.webpackChunkphoenix_app=self.webpackChunkphoenix_app||[]).push([[15],{4015:(Y,d,r)=>{r.r(d),r.d(d,{TGaxisPainter:()=>u});var m=r(4882),l=r(8872),v=r(8362),P=r(2843),E=r(2866),T=r(4483),M=r(5992),O=r(7900),y=r(6157),X=r(8868);class u extends E.TB{convertTo(i){const e=this.getObject(),a=this.axisToSvg("x",e.fX1),s=this.axisToSvg("y",e.fY1),t=this.axisToSvg("x",e.fX2),h=this.axisToSvg("y",e.fY2);if("ndc"===i){const n=this.getPadPainter().getPadWidth(),_=this.getPadPainter().getPadHeight();e.fX1=a/n,e.fX2=t/n,e.fY1=(_-s)/_,e.fY2=(_-h)/_,this.use_ndc=!0}else if("frame"===i){const n=this.getFramePainter().getFrameRect();e.fX1=(a-n.x)/n.width,e.fX2=(t-n.x)/n.width,e.fY1=(s-n.y)/n.height,e.fY2=(h-n.y)/n.height,this.bind_frame=!0}}moveDrag(i,e){this.gaxis_x+=i,this.gaxis_y+=e,(0,P.bk)(this.getG(),this.gaxis_x,this.gaxis_y)}moveEnd(i){if(i)return;const e=this.getObject();let a,s;if(this.bind_frame){const t=this.getFramePainter().getFrameRect();a=(this.gaxis_x-t.x)/t.width,s=(this.gaxis_y-t.y)/t.height}else a=this.svgToAxis("x",this.gaxis_x,this.use_ndc),s=this.svgToAxis("y",this.gaxis_y,this.use_ndc);this.vertical?(e.fX1=e.fX2=a,this.reverse?(e.fY2=s+(e.fY2-e.fY1),e.fY1=s):(e.fY1=s+(e.fY1-e.fY2),e.fY2=s)):(this.reverse?(e.fX1=a+(e.fX1-e.fX2),e.fX2=a):(e.fX2=a+(e.fX2-e.fX1),e.fX1=a),e.fY1=e.fY2=s),this.submitAxisExec(`SetX1(${e.fX1});;SetX2(${e.fX2});;SetY1(${e.fY1});;SetY2(${e.fY2})`,!0)}redraw(){const i=this.getObject(),e=i.fWmin,a=i.fWmax;let s,t,h,n;if(this.bind_frame){const f=this.getFramePainter().getFrameRect();s=Math.round(f.x+i.fX1*f.width),h=Math.round(f.x+i.fX2*f.width),t=Math.round(f.y+i.fY1*f.height),n=Math.round(f.y+i.fY2*f.height)}else s=this.axisToSvg("x",i.fX1,this.use_ndc),t=this.axisToSvg("y",i.fY1,this.use_ndc),h=this.axisToSvg("x",i.fX2,this.use_ndc),n=this.axisToSvg("y",i.fY2,this.use_ndc);const _=h-s,c=t-n,o=Math.abs(_)=0,log:i.fChopt.indexOf("G")>=0?1:0,reverse:g,swap_side:g,axis_func:this.axis_func}),this.createG(),this.gaxis_x=s,this.gaxis_y=n,this.drawAxis(this.getG(),Math.abs(_),Math.abs(c),(0,P.bk)(this.gaxis_x,this.gaxis_y)||"").then(()=>((0,M.X2)(this),(0,O.wh)(this),this))}fillContextMenu(i){i.addTAxisMenu(E.rb,this,this.getObject(),"")}checkFuncion(){var i=this;return(0,m.A)(function*(){const e=i.getObject();if(!e.fFunctionName)return void(i.axis_func=null);const a=i.getPadPainter()?.findInPrimitives(e.fFunctionName,l.clTF1);let s=Promise.resolve(a);if(!a){const t=(0,y.gZ)(),h=t?.findItem({name:e.fFunctionName,check_keys:!0});h&&(s=t.getObject({item:h}).then(n=>n?.obj?._typename===l.clTF1?n.obj:null))}return s.then(t=>{i.axis_func=t,t&&(0,X.proivdeEvalPar)(t)})})()}createFuncHandle(i,e,a,s){const t=function(_){return t.toGraph(_)};t._func=i,t._domain=[a,s],t._scale=e?(0,v.ZE)().base(e):(0,v.m4)(),t._scale.domain(t._domain).range([0,100]),t.eval=function(_){try{_=t._func.evalPar(_)}catch{_=0}return Number.isFinite(_)?_:0};const h=t.eval(a),n=t.eval(s);return h(a&&s.convertTo(a),s.checkFuncion())).then(()=>s.redraw())})()}}}}]); -//# sourceMappingURL=15.68a7ec0c4c875865.js.map \ No newline at end of file +"use strict";(self.webpackChunkphoenix_app=self.webpackChunkphoenix_app||[]).push([[15],{4015:(Y,d,r)=>{r.r(d),r.d(d,{TGaxisPainter:()=>u});var m=r(4882),l=r(8872),v=r(8362),P=r(2843),E=r(2866),T=r(4483),M=r(5992),y=r(7900),O=r(6157),X=r(8868);class u extends E.TB{convertTo(i){const e=this.getObject(),a=this.axisToSvg("x",e.fX1),s=this.axisToSvg("y",e.fY1),t=this.axisToSvg("x",e.fX2),h=this.axisToSvg("y",e.fY2);if("ndc"===i){const n=this.getPadPainter().getPadWidth(),_=this.getPadPainter().getPadHeight();e.fX1=a/n,e.fX2=t/n,e.fY1=(_-s)/_,e.fY2=(_-h)/_,this.use_ndc=!0}else if("frame"===i){const n=this.getFramePainter().getFrameRect();e.fX1=(a-n.x)/n.width,e.fX2=(t-n.x)/n.width,e.fY1=(s-n.y)/n.height,e.fY2=(h-n.y)/n.height,this.bind_frame=!0}}moveDrag(i,e){this.gaxis_x+=i,this.gaxis_y+=e,(0,P.bk)(this.getG(),this.gaxis_x,this.gaxis_y)}moveEnd(i){if(i)return;const e=this.getObject();let a,s;if(this.bind_frame){const t=this.getFramePainter().getFrameRect();a=(this.gaxis_x-t.x)/t.width,s=(this.gaxis_y-t.y)/t.height}else a=this.svgToAxis("x",this.gaxis_x,this.use_ndc),s=this.svgToAxis("y",this.gaxis_y,this.use_ndc);this.vertical?(e.fX1=e.fX2=a,this.reverse?(e.fY2=s+(e.fY2-e.fY1),e.fY1=s):(e.fY1=s+(e.fY1-e.fY2),e.fY2=s)):(this.reverse?(e.fX1=a+(e.fX1-e.fX2),e.fX2=a):(e.fX2=a+(e.fX2-e.fX1),e.fX1=a),e.fY1=e.fY2=s),this.submitAxisExec(`SetX1(${e.fX1});;SetX2(${e.fX2});;SetY1(${e.fY1});;SetY2(${e.fY2})`,!0)}redraw(){const i=this.getObject(),e=i.fWmin,a=i.fWmax;let s,t,h,n;if(this.bind_frame){const f=this.getFramePainter().getFrameRect();s=Math.round(f.x+i.fX1*f.width),h=Math.round(f.x+i.fX2*f.width),t=Math.round(f.y+i.fY1*f.height),n=Math.round(f.y+i.fY2*f.height)}else s=this.axisToSvg("x",i.fX1,this.use_ndc),t=this.axisToSvg("y",i.fY1,this.use_ndc),h=this.axisToSvg("x",i.fX2,this.use_ndc),n=this.axisToSvg("y",i.fY2,this.use_ndc);const _=h-s,c=t-n,o=Math.abs(_)=0,log:i.fChopt.indexOf("G")>=0?1:0,reverse:g,swap_side:g,axis_func:this.axis_func}),this.createG(),this.gaxis_x=s,this.gaxis_y=n,this.drawAxis(this.getG(),Math.abs(_),Math.abs(c),(0,P.bk)(this.gaxis_x,this.gaxis_y)||"").then(()=>((0,M.X2)(this),(0,y.wh)(this),this))}fillContextMenu(i){i.addTAxisMenu(E.rb,this,this.getObject(),"")}checkFuncion(){var i=this;return(0,m.A)(function*(){const e=i.getObject();if(!e.fFunctionName)return void(i.axis_func=null);const a=i.getPadPainter()?.findInPrimitives(e.fFunctionName,l.clTF1);let s=Promise.resolve(a);if(!a){const t=(0,O.gZ)(),h=t?.findItem({name:e.fFunctionName,check_keys:!0});h&&(s=t.getObject({item:h}).then(n=>n?.obj?._typename===l.clTF1?n.obj:null))}return s.then(t=>{i.axis_func=t,t&&(0,X.proivdeEvalPar)(t)})})()}createFuncHandle(i,e,a,s){const t=function(_){return t.toGraph(_)};t._func=i,t._domain=[a,s],t._scale=e?(0,v.ZE)().base(e):(0,v.m4)(),t._scale.domain(t._domain).range([0,100]),t.eval=function(_){try{_=t._func.evalPar(_)}catch{_=0}return Number.isFinite(_)?_:0};const h=t.eval(a),n=t.eval(s);return h(a&&s.convertTo(a),s.checkFuncion())).then(()=>s.redraw())})()}}}}]); +//# sourceMappingURL=15.cfb627b49d0facc2.js.map \ No newline at end of file diff --git a/docs/15.68a7ec0c4c875865.js.map b/docs/15.cfb627b49d0facc2.js.map similarity index 99% rename from docs/15.68a7ec0c4c875865.js.map rename to docs/15.cfb627b49d0facc2.js.map index 86e3ae62..65851f71 100644 --- a/docs/15.68a7ec0c4c875865.js.map +++ b/docs/15.cfb627b49d0facc2.js.map @@ -1 +1 @@ -{"version":3,"file":"15.68a7ec0c4c875865.js","mappings":"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","names":["TGaxisPainter","TAxisPainter","convertTo","opt","gaxis","this","getObject","x1","axisToSvg","fX1","y1","fY1","x2","fX2","y2","fY2","pw","getPadPainter","getPadWidth","ph","getPadHeight","use_ndc","rect","getFramePainter","getFrameRect","x","width","y","height","bind_frame","moveDrag","dx","dy","gaxis_x","gaxis_y","makeTranslate","getG","moveEnd","not_changed","fx","fy","svgToAxis","vertical","reverse","submitAxisExec","redraw","min","fWmin","max","fWmax","Math","round","w","h","abs","sz","configureAxis","time_scale","fChopt","indexOf","log","swap_side","axis_func","createG","drawAxis","then","addMoveHandler","assignContextMenu","fillContextMenu","menu","addTAxisMenu","EAxisBits","checkFuncion","_this","_asyncToGenerator","fFunctionName","func","findInPrimitives","clTF1","promise","Promise","resolve","getHPainter","item","findItem","name","check_keys","res","obj","_typename","f","proivdeEvalPar","createFuncHandle","logbase","smin","smax","v","toGraph","_func","_domain","_scale","d3_scaleLog","base","d3_scaleLinear","domain","range","eval","evalPar","Number","isFinite","vmin","vmax","_vmin","_vk","_range","arr","rel","ticks","arg","draw","dom","painter","ensureTCanvas"],"ignoreList":[],"sourceRoot":"webpack:///","sources":["../node_modules/jsroot/modules/draw/TGaxisPainter.mjs"],"sourcesContent":["import { clTF1 } from '../core.mjs';\nimport { scaleLinear as d3_scaleLinear, scaleLog as d3_scaleLog } from '../d3.mjs';\nimport { makeTranslate } from '../base/BasePainter.mjs';\nimport { EAxisBits, TAxisPainter } from '../gpad/TAxisPainter.mjs';\nimport { ensureTCanvas } from '../gpad/TCanvasPainter.mjs';\nimport { addMoveHandler } from '../gui/utils.mjs';\nimport { assignContextMenu } from '../gui/menu.mjs';\nimport { getHPainter } from '../gui/display.mjs';\nimport { proivdeEvalPar } from '../hist/TF1Painter.mjs';\n\n\n/** @summary Drawing TGaxis\n * @private */\nclass TGaxisPainter extends TAxisPainter {\n\n /** @summary Convert TGaxis position into NDC to fix it when frame zoomed */\n convertTo(opt) {\n const gaxis = this.getObject(),\n x1 = this.axisToSvg('x', gaxis.fX1),\n y1 = this.axisToSvg('y', gaxis.fY1),\n x2 = this.axisToSvg('x', gaxis.fX2),\n y2 = this.axisToSvg('y', gaxis.fY2);\n\n if (opt === 'ndc') {\n const pw = this.getPadPainter().getPadWidth(),\n ph = this.getPadPainter().getPadHeight();\n\n gaxis.fX1 = x1 / pw;\n gaxis.fX2 = x2 / pw;\n gaxis.fY1 = (ph - y1) / ph;\n gaxis.fY2 = (ph - y2)/ ph;\n this.use_ndc = true;\n } else if (opt === 'frame') {\n const rect = this.getFramePainter().getFrameRect();\n gaxis.fX1 = (x1 - rect.x) / rect.width;\n gaxis.fX2 = (x2 - rect.x) / rect.width;\n gaxis.fY1 = (y1 - rect.y) / rect.height;\n gaxis.fY2 = (y2 - rect.y) / rect.height;\n this.bind_frame = true;\n }\n }\n\n /** @summary Drag moving handle */\n moveDrag(dx, dy) {\n this.gaxis_x += dx;\n this.gaxis_y += dy;\n makeTranslate(this.getG(), this.gaxis_x, this.gaxis_y);\n }\n\n /** @summary Drag end handle */\n moveEnd(not_changed) {\n if (not_changed) return;\n\n const gaxis = this.getObject();\n\n let fx, fy;\n if (this.bind_frame) {\n const rect = this.getFramePainter().getFrameRect();\n fx = (this.gaxis_x - rect.x) / rect.width;\n fy = (this.gaxis_y - rect.y) / rect.height;\n } else {\n fx = this.svgToAxis('x', this.gaxis_x, this.use_ndc);\n fy = this.svgToAxis('y', this.gaxis_y, this.use_ndc);\n }\n\n if (this.vertical) {\n gaxis.fX1 = gaxis.fX2 = fx;\n if (this.reverse) {\n gaxis.fY2 = fy + (gaxis.fY2 - gaxis.fY1);\n gaxis.fY1 = fy;\n } else {\n gaxis.fY1 = fy + (gaxis.fY1 - gaxis.fY2);\n gaxis.fY2 = fy;\n }\n } else {\n if (this.reverse) {\n gaxis.fX1 = fx + (gaxis.fX1 - gaxis.fX2);\n gaxis.fX2 = fx;\n } else {\n gaxis.fX2 = fx + (gaxis.fX2 - gaxis.fX1);\n gaxis.fX1 = fx;\n }\n gaxis.fY1 = gaxis.fY2 = fy;\n }\n\n this.submitAxisExec(`SetX1(${gaxis.fX1});;SetX2(${gaxis.fX2});;SetY1(${gaxis.fY1});;SetY2(${gaxis.fY2})`, true);\n }\n\n /** @summary Redraw axis, used in standalone mode for TGaxis */\n redraw() {\n const gaxis = this.getObject(),\n min = gaxis.fWmin,\n max = gaxis.fWmax;\n let x1, y1, x2, y2;\n\n if (this.bind_frame) {\n const rect = this.getFramePainter().getFrameRect();\n x1 = Math.round(rect.x + gaxis.fX1 * rect.width);\n x2 = Math.round(rect.x + gaxis.fX2 * rect.width);\n y1 = Math.round(rect.y + gaxis.fY1 * rect.height);\n y2 = Math.round(rect.y + gaxis.fY2 * rect.height);\n } else {\n x1 = this.axisToSvg('x', gaxis.fX1, this.use_ndc);\n y1 = this.axisToSvg('y', gaxis.fY1, this.use_ndc);\n x2 = this.axisToSvg('x', gaxis.fX2, this.use_ndc);\n y2 = this.axisToSvg('y', gaxis.fY2, this.use_ndc);\n }\n\n const w = x2 - x1, h = y1 - y2,\n vertical = Math.abs(w) < Math.abs(h);\n let sz = vertical ? h : w, reverse = false;\n\n if (sz < 0) {\n reverse = true;\n sz = -sz;\n if (vertical)\n y2 = y1;\n else\n x1 = x2;\n }\n\n this.configureAxis(vertical ? 'yaxis' : 'xaxis', min, max, min, max, vertical, [0, sz], {\n time_scale: gaxis.fChopt.indexOf('t') >= 0,\n log: (gaxis.fChopt.indexOf('G') >= 0) ? 1 : 0,\n reverse,\n swap_side: reverse,\n axis_func: this.axis_func\n });\n\n this.createG();\n\n this.gaxis_x = x1;\n this.gaxis_y = y2;\n\n return this.drawAxis(this.getG(), Math.abs(w), Math.abs(h), makeTranslate(this.gaxis_x, this.gaxis_y) || '').then(() => {\n addMoveHandler(this);\n assignContextMenu(this);\n return this;\n });\n }\n\n /** @summary Fill TGaxis context */\n fillContextMenu(menu) {\n menu.addTAxisMenu(EAxisBits, this, this.getObject(), '');\n }\n\n /** @summary Check if there is function for TGaxis can be found */\n async checkFuncion() {\n const gaxis = this.getObject();\n if (!gaxis.fFunctionName) {\n this.axis_func = null;\n return;\n }\n const func = this.getPadPainter()?.findInPrimitives(gaxis.fFunctionName, clTF1);\n\n let promise = Promise.resolve(func);\n if (!func) {\n const h = getHPainter(),\n item = h?.findItem({ name: gaxis.fFunctionName, check_keys: true });\n if (item) {\n promise = h.getObject({ item }).then(res => {\n return res?.obj?._typename === clTF1 ? res.obj : null;\n });\n }\n }\n\n return promise.then(f => {\n this.axis_func = f;\n if (f)\n proivdeEvalPar(f);\n });\n }\n\n /** @summary Create handle for custom function in the axis */\n createFuncHandle(func, logbase, smin, smax) {\n const res = function(v) { return res.toGraph(v); };\n res._func = func;\n res._domain = [smin, smax];\n res._scale = logbase ? d3_scaleLog().base(logbase) : d3_scaleLinear();\n res._scale.domain(res._domain).range([0, 100]);\n res.eval = function(v) {\n try {\n v = res._func.evalPar(v);\n } catch (err) {\n v = 0;\n }\n return Number.isFinite(v) ? v : 0;\n };\n\n const vmin = res.eval(smin), vmax = res.eval(smax);\n if ((vmin < vmax) === (smin < smax)) {\n res._vmin = vmin;\n res._vk = 1/(vmax - vmin);\n } else if (vmin === vmax) {\n res._vmin = 0;\n res._vk = 1;\n } else {\n res._vmin = vmax;\n res._vk = 1/(vmin - vmax);\n }\n res._range = [0, 100];\n res.range = function(arr) {\n if (arr) {\n res._range = arr;\n return res;\n }\n return res._range;\n };\n\n res.domain = function() { return res._domain; };\n\n res.toGraph = function(v) {\n const rel = (res.eval(v) - res._vmin) * res._vk;\n return res._range[0] * (1 - rel) + res._range[1] * rel;\n };\n\n res.ticks = function(arg) { return res._scale.ticks(arg); };\n\n return res;\n }\n\n /** @summary Draw TGaxis object */\n static async draw(dom, obj, opt) {\n const painter = new TGaxisPainter(dom, obj, false);\n\n return ensureTCanvas(painter, false).then(() => {\n if (opt) painter.convertTo(opt);\n return painter.checkFuncion();\n }).then(() => painter.redraw());\n }\n\n} // class TGaxisPainter\n\nexport { TGaxisPainter };\n"],"x_google_ignoreList":[0]} \ No newline at end of file +{"version":3,"file":"15.cfb627b49d0facc2.js","mappings":"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","names":["TGaxisPainter","TAxisPainter","convertTo","opt","gaxis","this","getObject","x1","axisToSvg","fX1","y1","fY1","x2","fX2","y2","fY2","pw","getPadPainter","getPadWidth","ph","getPadHeight","use_ndc","rect","getFramePainter","getFrameRect","x","width","y","height","bind_frame","moveDrag","dx","dy","gaxis_x","gaxis_y","makeTranslate","getG","moveEnd","not_changed","fx","fy","svgToAxis","vertical","reverse","submitAxisExec","redraw","min","fWmin","max","fWmax","Math","round","w","h","abs","sz","configureAxis","time_scale","fChopt","indexOf","log","swap_side","axis_func","createG","drawAxis","then","addMoveHandler","assignContextMenu","fillContextMenu","menu","addTAxisMenu","EAxisBits","checkFuncion","_this","_asyncToGenerator","fFunctionName","func","findInPrimitives","clTF1","promise","Promise","resolve","getHPainter","item","findItem","name","check_keys","res","obj","_typename","f","proivdeEvalPar","createFuncHandle","logbase","smin","smax","v","toGraph","_func","_domain","_scale","d3_scaleLog","base","d3_scaleLinear","domain","range","eval","evalPar","Number","isFinite","vmin","vmax","_vmin","_vk","_range","arr","rel","ticks","arg","draw","dom","painter","ensureTCanvas"],"ignoreList":[],"sourceRoot":"webpack:///","sources":["../node_modules/jsroot/modules/draw/TGaxisPainter.mjs"],"sourcesContent":["import { clTF1 } from '../core.mjs';\nimport { scaleLinear as d3_scaleLinear, scaleLog as d3_scaleLog } from '../d3.mjs';\nimport { makeTranslate } from '../base/BasePainter.mjs';\nimport { EAxisBits, TAxisPainter } from '../gpad/TAxisPainter.mjs';\nimport { ensureTCanvas } from '../gpad/TCanvasPainter.mjs';\nimport { addMoveHandler } from '../gui/utils.mjs';\nimport { assignContextMenu } from '../gui/menu.mjs';\nimport { getHPainter } from '../gui/display.mjs';\nimport { proivdeEvalPar } from '../hist/TF1Painter.mjs';\n\n\n/** @summary Drawing TGaxis\n * @private */\nclass TGaxisPainter extends TAxisPainter {\n\n /** @summary Convert TGaxis position into NDC to fix it when frame zoomed */\n convertTo(opt) {\n const gaxis = this.getObject(),\n x1 = this.axisToSvg('x', gaxis.fX1),\n y1 = this.axisToSvg('y', gaxis.fY1),\n x2 = this.axisToSvg('x', gaxis.fX2),\n y2 = this.axisToSvg('y', gaxis.fY2);\n\n if (opt === 'ndc') {\n const pw = this.getPadPainter().getPadWidth(),\n ph = this.getPadPainter().getPadHeight();\n\n gaxis.fX1 = x1 / pw;\n gaxis.fX2 = x2 / pw;\n gaxis.fY1 = (ph - y1) / ph;\n gaxis.fY2 = (ph - y2)/ ph;\n this.use_ndc = true;\n } else if (opt === 'frame') {\n const rect = this.getFramePainter().getFrameRect();\n gaxis.fX1 = (x1 - rect.x) / rect.width;\n gaxis.fX2 = (x2 - rect.x) / rect.width;\n gaxis.fY1 = (y1 - rect.y) / rect.height;\n gaxis.fY2 = (y2 - rect.y) / rect.height;\n this.bind_frame = true;\n }\n }\n\n /** @summary Drag moving handle */\n moveDrag(dx, dy) {\n this.gaxis_x += dx;\n this.gaxis_y += dy;\n makeTranslate(this.getG(), this.gaxis_x, this.gaxis_y);\n }\n\n /** @summary Drag end handle */\n moveEnd(not_changed) {\n if (not_changed) return;\n\n const gaxis = this.getObject();\n\n let fx, fy;\n if (this.bind_frame) {\n const rect = this.getFramePainter().getFrameRect();\n fx = (this.gaxis_x - rect.x) / rect.width;\n fy = (this.gaxis_y - rect.y) / rect.height;\n } else {\n fx = this.svgToAxis('x', this.gaxis_x, this.use_ndc);\n fy = this.svgToAxis('y', this.gaxis_y, this.use_ndc);\n }\n\n if (this.vertical) {\n gaxis.fX1 = gaxis.fX2 = fx;\n if (this.reverse) {\n gaxis.fY2 = fy + (gaxis.fY2 - gaxis.fY1);\n gaxis.fY1 = fy;\n } else {\n gaxis.fY1 = fy + (gaxis.fY1 - gaxis.fY2);\n gaxis.fY2 = fy;\n }\n } else {\n if (this.reverse) {\n gaxis.fX1 = fx + (gaxis.fX1 - gaxis.fX2);\n gaxis.fX2 = fx;\n } else {\n gaxis.fX2 = fx + (gaxis.fX2 - gaxis.fX1);\n gaxis.fX1 = fx;\n }\n gaxis.fY1 = gaxis.fY2 = fy;\n }\n\n this.submitAxisExec(`SetX1(${gaxis.fX1});;SetX2(${gaxis.fX2});;SetY1(${gaxis.fY1});;SetY2(${gaxis.fY2})`, true);\n }\n\n /** @summary Redraw axis, used in standalone mode for TGaxis */\n redraw() {\n const gaxis = this.getObject(),\n min = gaxis.fWmin,\n max = gaxis.fWmax;\n let x1, y1, x2, y2;\n\n if (this.bind_frame) {\n const rect = this.getFramePainter().getFrameRect();\n x1 = Math.round(rect.x + gaxis.fX1 * rect.width);\n x2 = Math.round(rect.x + gaxis.fX2 * rect.width);\n y1 = Math.round(rect.y + gaxis.fY1 * rect.height);\n y2 = Math.round(rect.y + gaxis.fY2 * rect.height);\n } else {\n x1 = this.axisToSvg('x', gaxis.fX1, this.use_ndc);\n y1 = this.axisToSvg('y', gaxis.fY1, this.use_ndc);\n x2 = this.axisToSvg('x', gaxis.fX2, this.use_ndc);\n y2 = this.axisToSvg('y', gaxis.fY2, this.use_ndc);\n }\n\n const w = x2 - x1, h = y1 - y2,\n vertical = Math.abs(w) < Math.abs(h);\n let sz = vertical ? h : w, reverse = false;\n\n if (sz < 0) {\n reverse = true;\n sz = -sz;\n if (vertical)\n y2 = y1;\n else\n x1 = x2;\n }\n\n this.configureAxis(vertical ? 'yaxis' : 'xaxis', min, max, min, max, vertical, [0, sz], {\n time_scale: gaxis.fChopt.indexOf('t') >= 0,\n log: (gaxis.fChopt.indexOf('G') >= 0) ? 1 : 0,\n reverse,\n swap_side: reverse,\n axis_func: this.axis_func\n });\n\n this.createG();\n\n this.gaxis_x = x1;\n this.gaxis_y = y2;\n\n return this.drawAxis(this.getG(), Math.abs(w), Math.abs(h), makeTranslate(this.gaxis_x, this.gaxis_y) || '').then(() => {\n addMoveHandler(this);\n assignContextMenu(this);\n return this;\n });\n }\n\n /** @summary Fill TGaxis context */\n fillContextMenu(menu) {\n menu.addTAxisMenu(EAxisBits, this, this.getObject(), '');\n }\n\n /** @summary Check if there is function for TGaxis can be found */\n async checkFuncion() {\n const gaxis = this.getObject();\n if (!gaxis.fFunctionName) {\n this.axis_func = null;\n return;\n }\n const func = this.getPadPainter()?.findInPrimitives(gaxis.fFunctionName, clTF1);\n\n let promise = Promise.resolve(func);\n if (!func) {\n const h = getHPainter(),\n item = h?.findItem({ name: gaxis.fFunctionName, check_keys: true });\n if (item) {\n promise = h.getObject({ item }).then(res => {\n return res?.obj?._typename === clTF1 ? res.obj : null;\n });\n }\n }\n\n return promise.then(f => {\n this.axis_func = f;\n if (f)\n proivdeEvalPar(f);\n });\n }\n\n /** @summary Create handle for custom function in the axis */\n createFuncHandle(func, logbase, smin, smax) {\n const res = function(v) { return res.toGraph(v); };\n res._func = func;\n res._domain = [smin, smax];\n res._scale = logbase ? d3_scaleLog().base(logbase) : d3_scaleLinear();\n res._scale.domain(res._domain).range([0, 100]);\n res.eval = function(v) {\n try {\n v = res._func.evalPar(v);\n } catch (err) {\n v = 0;\n }\n return Number.isFinite(v) ? v : 0;\n };\n\n const vmin = res.eval(smin), vmax = res.eval(smax);\n if ((vmin < vmax) === (smin < smax)) {\n res._vmin = vmin;\n res._vk = 1/(vmax - vmin);\n } else if (vmin === vmax) {\n res._vmin = 0;\n res._vk = 1;\n } else {\n res._vmin = vmax;\n res._vk = 1/(vmin - vmax);\n }\n res._range = [0, 100];\n res.range = function(arr) {\n if (arr) {\n res._range = arr;\n return res;\n }\n return res._range;\n };\n\n res.domain = function() { return res._domain; };\n\n res.toGraph = function(v) {\n const rel = (res.eval(v) - res._vmin) * res._vk;\n return res._range[0] * (1 - rel) + res._range[1] * rel;\n };\n\n res.ticks = function(arg) { return res._scale.ticks(arg); };\n\n return res;\n }\n\n /** @summary Draw TGaxis object */\n static async draw(dom, obj, opt) {\n const painter = new TGaxisPainter(dom, obj, false);\n\n return ensureTCanvas(painter, false).then(() => {\n if (opt) painter.convertTo(opt);\n return painter.checkFuncion();\n }).then(() => painter.redraw());\n }\n\n} // class TGaxisPainter\n\nexport { TGaxisPainter };\n"],"x_google_ignoreList":[0]} \ No newline at end of file diff --git a/docs/165.46601258b959ab65.js b/docs/165.b6f28a236917b317.js similarity index 59% rename from docs/165.46601258b959ab65.js rename to docs/165.b6f28a236917b317.js index bd9d585d..2283c952 100644 --- a/docs/165.46601258b959ab65.js +++ b/docs/165.b6f28a236917b317.js @@ -1,2 +1,2 @@ -"use strict";(self.webpackChunkphoenix_app=self.webpackChunkphoenix_app||[]).push([[165],{1165:(E,p,o)=>{o.r(p),o.d(p,{TScatterPainter:()=>M});var h=o(4882),_=o(8872),P=o(2985),d=o(2586),c=o(2679),D=o(4615),x=o(9997);class M extends c.TGraphPainter{constructor(e,t){super(e,t),this._need_2dhist=!0,this._not_adjust_hrange=!0}getGraph(){return this.getObject()?.fGraph}getHistRangeMargin(){return this.getObject()?.fMargin??.1}drawAxisHisto(){var e=this;return(0,h.A)(function*(){const t=e.createHistogram();return x.AJ.draw(e.getDom(),t,e.options.Axis)})()}getPalette(){const e=this.getGraph();let t=e?.fFunctions?.arr?.find(f=>f._typename===_.clTPaletteAxis);if(t)return t;if(e){t=(0,_.create)(_.clTPaletteAxis);const f=this.get_main();Object.assign(t,{fX1NDC:f.fX2NDC+.005,fX2NDC:f.fX2NDC+.05,fY1NDC:f.fY1NDC,fY2NDC:f.fY2NDC,fInit:1,$can_move:!0}),Object.assign(t.fAxis,{fChopt:"+",fLineColor:1,fLineSyle:1,fLineWidth:1,fTextAngle:0,fTextAlign:11,fNdiv:510}),e.fFunctions.AddFirst(t,"")}return t}_updateMembers(e,t){e.fBits=t.fBits,e.fTitle=t.fTitle,e.fNpoints=t.fNpoints,e.fColor=t.fColor,e.fSize=t.fSize,e.fMargin=t.fMargin,e.fMinMarkerSize=t.fMinMarkerSize,e.fMaxMarkerSize=t.fMaxMarkerSize,super._updateMembers(e.fGraph,t.fGraph)}drawGraph(){var e=this;return(0,h.A)(function*(){const t=e.get_main(),f=e.getMainPainter(),r=e.getObject();let g=1,C=0;if(!t||!f||!r)return;if(r.fColor){const n=e.getPalette();n&&(n.$main_painter=e);const a=e.getPadPainter();!e._color_palette&&(0,_.isFunc)(a?.getCustomPalette)&&(e._color_palette=a.getCustomPalette()),e._color_palette||(e._color_palette=(0,P.jh)(e.options.Palette,a?.isGrayscale()));let i=r.fColor[0],s=r.fColor[0];for(let l=1;l0?1.1*i:1),e.fContour=new D.Z8(i,s),e.fContour.createNormal(30),e.fContour.configIndicies(0,0),t.zmin=i,t.zmax=s}if(r.fSize){let n=r.fSize[0],a=r.fSize[0];for(let i=1;i0?1.1*n:1),g=(r.fMaxMarkerSize-r.fMinMarkerSize)/(a-n),C=n}e.createG(!t.pad_layer);const u=t.getGrFuncs();for(let n=0;n{o.r(c),o.d(c,{TScatterPainter:()=>M});var h=o(4882),_=o(8872),P=o(2985),d=o(2586),p=o(2679),D=o(4615),x=o(9997);class M extends p.TGraphPainter{constructor(e,t){super(e,t),this._need_2dhist=!0,this._not_adjust_hrange=!0}getGraph(){return this.getObject()?.fGraph}getHistRangeMargin(){return this.getObject()?.fMargin??.1}drawAxisHisto(){var e=this;return(0,h.A)(function*(){const t=e.createHistogram();return x.AJ.draw(e.getDom(),t,e.options.Axis)})()}getPalette(){const e=this.getGraph();let t=e?.fFunctions?.arr?.find(f=>f._typename===_.clTPaletteAxis);if(t)return t;if(e){t=(0,_.create)(_.clTPaletteAxis);const f=this.get_main();Object.assign(t,{fX1NDC:f.fX2NDC+.005,fX2NDC:f.fX2NDC+.05,fY1NDC:f.fY1NDC,fY2NDC:f.fY2NDC,fInit:1,$can_move:!0}),Object.assign(t.fAxis,{fChopt:"+",fLineColor:1,fLineSyle:1,fLineWidth:1,fTextAngle:0,fTextAlign:11,fNdiv:510}),e.fFunctions.AddFirst(t,"")}return t}_updateMembers(e,t){e.fBits=t.fBits,e.fTitle=t.fTitle,e.fNpoints=t.fNpoints,e.fColor=t.fColor,e.fSize=t.fSize,e.fMargin=t.fMargin,e.fMinMarkerSize=t.fMinMarkerSize,e.fMaxMarkerSize=t.fMaxMarkerSize,super._updateMembers(e.fGraph,t.fGraph)}drawGraph(){var e=this;return(0,h.A)(function*(){const t=e.get_main(),f=e.getMainPainter(),r=e.getObject();let g=1,C=0;if(!t||!f||!r)return;if(r.fColor){const n=e.getPalette();n&&(n.$main_painter=e);const i=e.getPadPainter();!e._color_palette&&(0,_.isFunc)(i?.getCustomPalette)&&(e._color_palette=i.getCustomPalette()),e._color_palette||(e._color_palette=(0,P.jh)(e.options.Palette,i?.isGrayscale()));let a=r.fColor[0],s=r.fColor[0];for(let l=1;l0?1.1*a:1),e.fContour=new D.Z8(a,s),e.fContour.createNormal(30),e.fContour.configIndicies(0,0),t.zmin=a,t.zmax=s}if(r.fSize){let n=r.fSize[0],i=r.fSize[0];for(let a=1;a0?1.1*n:1),g=(r.fMaxMarkerSize-r.fMinMarkerSize)/(i-n),C=n}e.createG(!t.pad_layer);const u=t.getGrFuncs();for(let n=0;n (func._typename === clTPaletteAxis));\n\n if (pal) return pal;\n\n if (gr) {\n pal = create(clTPaletteAxis);\n\n const fp = this.get_main();\n Object.assign(pal, { fX1NDC: fp.fX2NDC + 0.005, fX2NDC: fp.fX2NDC + 0.05, fY1NDC: fp.fY1NDC, fY2NDC: fp.fY2NDC, fInit: 1, $can_move: true });\n Object.assign(pal.fAxis, { fChopt: '+', fLineColor: 1, fLineSyle: 1, fLineWidth: 1, fTextAngle: 0, fTextAlign: 11, fNdiv: 510 });\n gr.fFunctions.AddFirst(pal, '');\n }\n\n return pal;\n }\n\n /** @summary Update TScatter members */\n _updateMembers(scatter, obj) {\n scatter.fBits = obj.fBits;\n scatter.fTitle = obj.fTitle;\n scatter.fNpoints = obj.fNpoints;\n scatter.fColor = obj.fColor;\n scatter.fSize = obj.fSize;\n scatter.fMargin = obj.fMargin;\n scatter.fMinMarkerSize = obj.fMinMarkerSize;\n scatter.fMaxMarkerSize = obj.fMaxMarkerSize;\n super._updateMembers(scatter.fGraph, obj.fGraph);\n }\n\n /** @summary Actual drawing of TScatter */\n async drawGraph() {\n const fpainter = this.get_main(),\n hpainter = this.getMainPainter(),\n scatter = this.getObject();\n let scale = 1, offset = 0;\n if (!fpainter || !hpainter || !scatter) return;\n\n if (scatter.fColor) {\n const pal = this.getPalette();\n if (pal)\n pal.$main_painter = this;\n\n const pp = this.getPadPainter();\n if (!this._color_palette && isFunc(pp?.getCustomPalette))\n this._color_palette = pp.getCustomPalette();\n if (!this._color_palette)\n this._color_palette = getColorPalette(this.options.Palette, pp?.isGrayscale());\n\n let minc = scatter.fColor[0], maxc = scatter.fColor[0];\n for (let i = 1; i < scatter.fColor.length; ++i) {\n minc = Math.min(minc, scatter.fColor[i]);\n maxc = Math.max(maxc, scatter.fColor[i]);\n }\n if (maxc <= minc)\n maxc = minc < 0 ? 0.9*minc : (minc > 0 ? 1.1*minc : 1);\n this.fContour = new HistContour(minc, maxc);\n this.fContour.createNormal(30);\n this.fContour.configIndicies(0, 0);\n\n fpainter.zmin = minc;\n fpainter.zmax = maxc;\n }\n\n if (scatter.fSize) {\n let mins = scatter.fSize[0], maxs = scatter.fSize[0];\n\n for (let i = 1; i < scatter.fSize.length; ++i) {\n mins = Math.min(mins, scatter.fSize[i]);\n maxs = Math.max(maxs, scatter.fSize[i]);\n }\n\n if (maxs <= mins)\n maxs = mins < 0 ? 0.9*mins : (mins > 0 ? 1.1*mins : 1);\n\n scale = (scatter.fMaxMarkerSize - scatter.fMinMarkerSize) / (maxs - mins);\n offset = mins;\n }\n\n this.createG(!fpainter.pad_layer);\n\n const funcs = fpainter.getGrFuncs();\n\n for (let i = 0; i < this.bins.length; ++i) {\n const pnt = this.bins[i],\n grx = funcs.grx(pnt.x),\n gry = funcs.gry(pnt.y),\n size = scatter.fSize ? scatter.fMinMarkerSize + scale * (scatter.fSize[i] - offset) : scatter.fMarkerSize,\n color = scatter.fColor ? this.fContour.getPaletteColor(this._color_palette, scatter.fColor[i]) : this.getColor(scatter.fMarkerColor),\n handle = new TAttMarkerHandler({ color, size, style: scatter.fMarkerStyle });\n\n this.draw_g.append('svg:path')\n .attr('d', handle.create(grx, gry))\n .call(handle.func);\n }\n\n return this;\n }\n\n static async draw(dom, obj, opt) {\n return TGraphPainter._drawGraph(new TScatterPainter(dom, obj), opt);\n }\n\n} // class TScatterPainter\n\nexport { TScatterPainter };\n"],"x_google_ignoreList":[0]} \ No newline at end of file +{"version":3,"file":"165.b6f28a236917b317.js","mappings":"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","names":["TScatterPainter","TGraphPainter","constructor","dom","obj","super","this","_need_2dhist","_not_adjust_hrange","getGraph","getObject","fGraph","getHistRangeMargin","fMargin","drawAxisHisto","_this","_asyncToGenerator","histo","createHistogram","TH2Painter","draw","getDom","options","Axis","getPalette","gr","pal","fFunctions","arr","find","func","_typename","clTPaletteAxis","create","fp","get_main","Object","assign","fX1NDC","fX2NDC","fY1NDC","fY2NDC","fInit","$can_move","fAxis","fChopt","fLineColor","fLineSyle","fLineWidth","fTextAngle","fTextAlign","fNdiv","AddFirst","_updateMembers","scatter","fBits","fTitle","fNpoints","fColor","fSize","fMinMarkerSize","fMaxMarkerSize","drawGraph","_this2","fpainter","hpainter","getMainPainter","scale","offset","$main_painter","pp","getPadPainter","_color_palette","isFunc","getCustomPalette","getColorPalette","Palette","isGrayscale","minc","maxc","i","length","Math","min","max","fContour","HistContour","createNormal","configIndicies","zmin","zmax","mins","maxs","createG","pad_layer","funcs","getGrFuncs","bins","pnt","grx","x","gry","y","size","fMarkerSize","color","getPaletteColor","getColor","fMarkerColor","handle","TAttMarkerHandler","style","fMarkerStyle","draw_g","append","attr","call","opt","_drawGraph"],"ignoreList":[],"sourceRoot":"webpack:///","sources":["../node_modules/jsroot/modules/hist2d/TScatterPainter.mjs"],"sourcesContent":["import { clTPaletteAxis, isFunc, create } from '../core.mjs';\nimport { getColorPalette } from '../base/colors.mjs';\nimport { TAttMarkerHandler } from '../base/TAttMarkerHandler.mjs';\nimport { TGraphPainter } from './TGraphPainter.mjs';\nimport { HistContour } from './THistPainter.mjs';\nimport { TH2Painter } from './TH2Painter.mjs';\n\n\nclass TScatterPainter extends TGraphPainter {\n\n constructor(dom, obj) {\n super(dom, obj);\n this._need_2dhist = true;\n this._not_adjust_hrange = true;\n }\n\n /** @summary Return drawn graph object */\n getGraph() { return this.getObject()?.fGraph; }\n\n /** @summary Return margins for histogram ranges */\n getHistRangeMargin() { return this.getObject()?.fMargin ?? 0.1; }\n\n /** @summary Draw axis histogram\n * @private */\n async drawAxisHisto() {\n const histo = this.createHistogram();\n return TH2Painter.draw(this.getDom(), histo, this.options.Axis);\n }\n\n /** @summary Provide palette, create if necessary\n * @private */\n getPalette() {\n const gr = this.getGraph();\n let pal = gr?.fFunctions?.arr?.find(func => (func._typename === clTPaletteAxis));\n\n if (pal) return pal;\n\n if (gr) {\n pal = create(clTPaletteAxis);\n\n const fp = this.get_main();\n Object.assign(pal, { fX1NDC: fp.fX2NDC + 0.005, fX2NDC: fp.fX2NDC + 0.05, fY1NDC: fp.fY1NDC, fY2NDC: fp.fY2NDC, fInit: 1, $can_move: true });\n Object.assign(pal.fAxis, { fChopt: '+', fLineColor: 1, fLineSyle: 1, fLineWidth: 1, fTextAngle: 0, fTextAlign: 11, fNdiv: 510 });\n gr.fFunctions.AddFirst(pal, '');\n }\n\n return pal;\n }\n\n /** @summary Update TScatter members */\n _updateMembers(scatter, obj) {\n scatter.fBits = obj.fBits;\n scatter.fTitle = obj.fTitle;\n scatter.fNpoints = obj.fNpoints;\n scatter.fColor = obj.fColor;\n scatter.fSize = obj.fSize;\n scatter.fMargin = obj.fMargin;\n scatter.fMinMarkerSize = obj.fMinMarkerSize;\n scatter.fMaxMarkerSize = obj.fMaxMarkerSize;\n super._updateMembers(scatter.fGraph, obj.fGraph);\n }\n\n /** @summary Actual drawing of TScatter */\n async drawGraph() {\n const fpainter = this.get_main(),\n hpainter = this.getMainPainter(),\n scatter = this.getObject();\n let scale = 1, offset = 0;\n if (!fpainter || !hpainter || !scatter) return;\n\n if (scatter.fColor) {\n const pal = this.getPalette();\n if (pal)\n pal.$main_painter = this;\n\n const pp = this.getPadPainter();\n if (!this._color_palette && isFunc(pp?.getCustomPalette))\n this._color_palette = pp.getCustomPalette();\n if (!this._color_palette)\n this._color_palette = getColorPalette(this.options.Palette, pp?.isGrayscale());\n\n let minc = scatter.fColor[0], maxc = scatter.fColor[0];\n for (let i = 1; i < scatter.fColor.length; ++i) {\n minc = Math.min(minc, scatter.fColor[i]);\n maxc = Math.max(maxc, scatter.fColor[i]);\n }\n if (maxc <= minc)\n maxc = minc < 0 ? 0.9*minc : (minc > 0 ? 1.1*minc : 1);\n this.fContour = new HistContour(minc, maxc);\n this.fContour.createNormal(30);\n this.fContour.configIndicies(0, 0);\n\n fpainter.zmin = minc;\n fpainter.zmax = maxc;\n }\n\n if (scatter.fSize) {\n let mins = scatter.fSize[0], maxs = scatter.fSize[0];\n\n for (let i = 1; i < scatter.fSize.length; ++i) {\n mins = Math.min(mins, scatter.fSize[i]);\n maxs = Math.max(maxs, scatter.fSize[i]);\n }\n\n if (maxs <= mins)\n maxs = mins < 0 ? 0.9*mins : (mins > 0 ? 1.1*mins : 1);\n\n scale = (scatter.fMaxMarkerSize - scatter.fMinMarkerSize) / (maxs - mins);\n offset = mins;\n }\n\n this.createG(!fpainter.pad_layer);\n\n const funcs = fpainter.getGrFuncs();\n\n for (let i = 0; i < this.bins.length; ++i) {\n const pnt = this.bins[i],\n grx = funcs.grx(pnt.x),\n gry = funcs.gry(pnt.y),\n size = scatter.fSize ? scatter.fMinMarkerSize + scale * (scatter.fSize[i] - offset) : scatter.fMarkerSize,\n color = scatter.fColor ? this.fContour.getPaletteColor(this._color_palette, scatter.fColor[i]) : this.getColor(scatter.fMarkerColor),\n handle = new TAttMarkerHandler({ color, size, style: scatter.fMarkerStyle });\n\n this.draw_g.append('svg:path')\n .attr('d', handle.create(grx, gry))\n .call(handle.func);\n }\n\n return this;\n }\n\n static async draw(dom, obj, opt) {\n return TGraphPainter._drawGraph(new TScatterPainter(dom, obj), opt);\n }\n\n} // class TScatterPainter\n\nexport { TScatterPainter };\n"],"x_google_ignoreList":[0]} \ No newline at end of file diff --git a/docs/217.33e0101bfbf3c911.js b/docs/217.f84206a0731bc22f.js similarity index 96% rename from docs/217.33e0101bfbf3c911.js rename to docs/217.f84206a0731bc22f.js index 860b7830..4d73af2b 100644 --- a/docs/217.33e0101bfbf3c911.js +++ b/docs/217.f84206a0731bc22f.js @@ -1,2 +1,2 @@ -"use strict";(self.webpackChunkphoenix_app=self.webpackChunkphoenix_app||[]).push([[217],{217:(D,X,l)=>{l.r(X),l.d(X,{THStackPainter:()=>P});var T=l(4882),m=l(8872),b=l(2843),H=l(1922),C=l(8142),v=l(4355),A=l(4483);class P extends H.JW{constructor(n,s,e){super(n,s,e),this.firstpainter=null,this.painters=[]}cleanup(){this.getPadPainter()?.cleanPrimitives(n=>n===this.firstpainter||this.painters.indexOf(n)>=0),delete this.firstpainter,delete this.painters,super.cleanup()}buildStack(n){if(!n.fHists)return!1;const s=n.fHists.arr.length;if(s<=0)return!1;const e=(0,m.create)(m.clTList);e.Add((0,m.clone)(n.fHists.arr[0]),n.fHists.opt[0]);for(let i=1;i0&&f.fNbins{const d={min:0,max:0};let M=!0,k=!0;if(r.fMinimum!==m.kNoZoom&&(d.min=r.fMinimum,M=!1),r.fMaximum!==m.kNoZoom&&(d.max=r.fMaximum,k=!1),!M&&!k)return d;let S=1,N=r.fXaxis.fNbins,E=1,O=1,w=!0;r.fXaxis.TestBit(H.rb.kAxisRange)&&(S=r.fXaxis.fFirst,N=r.fXaxis.fLast),0===r._typename.indexOf(m.clTH2)&&(O=r.fYaxis.fNbins,r.fYaxis.TestBit(H.rb.kAxisRange)&&(E=r.fYaxis.fFirst,O=r.fYaxis.fLast));for(let u=E;u<=O;++u)for(let x=S;x<=N;++x){const g=r.getBinContent(x,u),_=c?r.getBinError(r.getBin(x,u)):0;M&&(w||g-_d.max)&&(d.max=g+_),w=!1}return d};if(this.options.nostack)for(let r=0;r{if(e&&(e.fLogv??(1===this.options.ndim?e.fLogy:e.fLogz))){t<=0&&(t=1),i<=0&&(i=1e-4*t);const r=1/(1+.5*Math.log10(t/i)),c=1+.2*Math.log10(t/i);i*=r,t*=c}else i>0&&i<.05*t&&(i=0)};t*=1+m.gStyle.fHistTopMargin,o();let f=t,h=i,p=!1;return s.fMaximum!==m.kNoZoom&&(t=s.fMaximum,f=Math.max(t,f),p=!0),s.fMinimum!==m.kNoZoom&&(i=s.fMinimum,h=Math.min(i,h),p=!0),p?o():i=t=m.kNoZoom,{min:i,max:t,min0:h,max0:f,zoomed:p,hopt:`hmin:${h};hmax:${f};minimum:${i};maximum:${t}`}}getHistDrawOption(n,s){let e=s||n.fOption||this.options.hopt;return e.toUpperCase().indexOf(this.options.hopt)<0&&(e+=" "+this.options.hopt),this.options.draw_errors&&!e&&(e="E"),this.options.pads||(e+=" same nostat"+this.options.auto),e}drawNextHisto(n,s){var e=this;return(0,T.A)(function*(){const i=e.getObject(),t=e.options.nostack?i.fHists:i.fStack,a=t?.arr?.length||0;if(n>=a)return e;const o=e.options.horder?n:a-n-1,f=e.options.nostack?`hists_${o}`:`stack_${o}`,h=t.arr[o],p=e.getHistDrawOption(h,t.opt[o]);if(s){const r=s.getSubPadPainter(n+1);if(!r)return e;const c=r.selectCurrentPad(r.this_pad_name);return e.hdraw_func(r.getDom(),h,p).then(d=>(d&&(d.setSecondaryId(e,f),e.painters.push(d)),r.selectCurrentPad(c),e.drawNextHisto(n+1,s)))}return o>0&&!e.options.nostack&&(h.$baseh=t.arr[o-1]),e.options.auto&&(h.$num_histos=a),e.hdraw_func(e.getDom(),h,p).then(r=>(r.setSecondaryId(e,f),e.painters.push(r),e.drawNextHisto(n+1,s)))})()}decodeOptions(n){this.options||(this.options={}),Object.assign(this.options,{ndim:1,nostack:!1,same:!1,horder:!0,has_errors:!1,draw_errors:!1,hopt:"",auto:""});const s=this.getObject(),e=s.fHistogram||(s.fHists?s.fHists.arr[0]:null)||(s.fStack?s.fStack.arr[0]:null),i=o=>{if(o.fSumw2&&o.fSumw2.length>0)for(let f=0;f0)return!0;return!1};if(e&&0===e._typename.indexOf(m.clTH2)&&(this.options.ndim=2),2===this.options.ndim&&!n&&(n="lego1"),s.fHists&&!this.options.nostack)for(let o=0;o{t.check(o)&&(this.options.auto+=" "+o)}),this.options.pads=t.check("PADS"),this.options.pads&&(this.options.nostack=!0),this.options.hopt=t.remain();const a=t.check("LEGO");this.options.errors=t.check("E"),!this.options.nostack&&this.options.has_errors&&!a&&!t.check("HIST")&&this.options.hopt.indexOf("E")<0&&(this.options.draw_errors=!0),this.options.horder=this.options.nostack||a}createHistogram(n){const s=n.fHists,e=s?s.arr.length:0;if(!e){const a=(0,m.createHistogram)(m.clTH1I,100);return(0,m.setHistogramTitle)(a,n.fTitle),a.fBits|=m.kNoStats,a}const i=s.arr[0],t=(0,m.createHistogram)(1===this.options.ndim?m.clTH1I:m.clTH2I,i.fXaxis.fNbins,i.fYaxis.fNbins);t.fName="axis_hist",t.fBits|=m.kNoStats,Object.assign(t.fXaxis,i.fXaxis),2===this.options.ndim&&Object.assign(t.fYaxis,i.fYaxis);for(let a=1;athis.painters.indexOf(t)>=0),this.painters=[];else{this.did_update=2;for(let t=0;te>=this.painters.length?Promise.resolve(this):this.painters[e].redraw(n).then(()=>s(e+1));return s(0)}}fillContextMenuItems(n){n.addchk(this.options.draw_errors,"Draw errors",s=>{this.options.draw_errors=s;const e=this.getObject(),i=this.options.nostack?e.fHists:e.fStack,t=i?.arr?.length??0;for(let a=0;a{if(i.decodeOptions(e),i.hdraw_func=1===i.options.ndim?C.TH1Painter.draw:v.TH2Painter.draw,i.options.pads)return t=i.getPadPainter(),t.doingDraw()&&t.pad?.fPrimitives&&t.pad.fPrimitives.arr.length>1&&0===t.pad.fPrimitives.arr.indexOf(s)?(a=!0,void console.log("special case with THStack with is already rendered - do nothing")):(t.cleanPrimitives(p=>p!==i),t.divide(i.options.nhist));if(i.options.nostack||(i.options.nostack=!i.buildStack(s)),i.options.same)return;!s.fHistogram&&(s.fHistogram=i.createHistogram(s));const f=i.getMinMax(i.options.errors||i.options.draw_errors);return i.hdraw_func(n,s.fHistogram,i.options.hopt+";"+f.hopt).then(p=>{i.addToPadPrimitives(),i.firstpainter=p,p.setSecondaryId(i,"hist")})}).then(()=>a?i:i.drawNextHisto(0,t))})()}}}}]); -//# sourceMappingURL=217.33e0101bfbf3c911.js.map \ No newline at end of file +"use strict";(self.webpackChunkphoenix_app=self.webpackChunkphoenix_app||[]).push([[217],{217:(D,w,l)=>{l.r(w),l.d(w,{THStackPainter:()=>P});var T=l(4882),m=l(8872),b=l(2843),H=l(1922),C=l(8142),v=l(4355),A=l(4483);class P extends H.JW{constructor(n,s,e){super(n,s,e),this.firstpainter=null,this.painters=[]}cleanup(){this.getPadPainter()?.cleanPrimitives(n=>n===this.firstpainter||this.painters.indexOf(n)>=0),delete this.firstpainter,delete this.painters,super.cleanup()}buildStack(n){if(!n.fHists)return!1;const s=n.fHists.arr.length;if(s<=0)return!1;const e=(0,m.create)(m.clTList);e.Add((0,m.clone)(n.fHists.arr[0]),n.fHists.opt[0]);for(let i=1;i0&&f.fNbins{const d={min:0,max:0};let M=!0,k=!0;if(r.fMinimum!==m.kNoZoom&&(d.min=r.fMinimum,M=!1),r.fMaximum!==m.kNoZoom&&(d.max=r.fMaximum,k=!1),!M&&!k)return d;let S=1,N=r.fXaxis.fNbins,E=1,O=1,X=!0;r.fXaxis.TestBit(H.rb.kAxisRange)&&(S=r.fXaxis.fFirst,N=r.fXaxis.fLast),0===r._typename.indexOf(m.clTH2)&&(O=r.fYaxis.fNbins,r.fYaxis.TestBit(H.rb.kAxisRange)&&(E=r.fYaxis.fFirst,O=r.fYaxis.fLast));for(let u=E;u<=O;++u)for(let x=S;x<=N;++x){const g=r.getBinContent(x,u),_=c?r.getBinError(r.getBin(x,u)):0;M&&(X||g-_d.max)&&(d.max=g+_),X=!1}return d};if(this.options.nostack)for(let r=0;r{if(e&&(e.fLogv??(1===this.options.ndim?e.fLogy:e.fLogz))){t<=0&&(t=1),i<=0&&(i=1e-4*t);const r=1/(1+.5*Math.log10(t/i)),c=1+.2*Math.log10(t/i);i*=r,t*=c}else i>0&&i<.05*t&&(i=0)};t*=1+m.gStyle.fHistTopMargin,o();let f=t,h=i,p=!1;return s.fMaximum!==m.kNoZoom&&(t=s.fMaximum,f=Math.max(t,f),p=!0),s.fMinimum!==m.kNoZoom&&(i=s.fMinimum,h=Math.min(i,h),p=!0),p?o():i=t=m.kNoZoom,{min:i,max:t,min0:h,max0:f,zoomed:p,hopt:`hmin:${h};hmax:${f};minimum:${i};maximum:${t}`}}getHistDrawOption(n,s){let e=s||n.fOption||this.options.hopt;return e.toUpperCase().indexOf(this.options.hopt)<0&&(e+=" "+this.options.hopt),this.options.draw_errors&&!e&&(e="E"),this.options.pads||(e+=" same nostat"+this.options.auto),e}drawNextHisto(n,s){var e=this;return(0,T.A)(function*(){const i=e.getObject(),t=e.options.nostack?i.fHists:i.fStack,a=t?.arr?.length||0;if(n>=a)return e;const o=e.options.horder?n:a-n-1,f=e.options.nostack?`hists_${o}`:`stack_${o}`,h=t.arr[o],p=e.getHistDrawOption(h,t.opt[o]);if(s){const r=s.getSubPadPainter(n+1);if(!r)return e;const c=r.selectCurrentPad(r.this_pad_name);return e.hdraw_func(r.getDom(),h,p).then(d=>(d&&(d.setSecondaryId(e,f),e.painters.push(d)),r.selectCurrentPad(c),e.drawNextHisto(n+1,s)))}return o>0&&!e.options.nostack&&(h.$baseh=t.arr[o-1]),e.options.auto&&(h.$num_histos=a),e.hdraw_func(e.getDom(),h,p).then(r=>(r.setSecondaryId(e,f),e.painters.push(r),e.drawNextHisto(n+1,s)))})()}decodeOptions(n){this.options||(this.options={}),Object.assign(this.options,{ndim:1,nostack:!1,same:!1,horder:!0,has_errors:!1,draw_errors:!1,hopt:"",auto:""});const s=this.getObject(),e=s.fHistogram||(s.fHists?s.fHists.arr[0]:null)||(s.fStack?s.fStack.arr[0]:null),i=o=>{if(o.fSumw2&&o.fSumw2.length>0)for(let f=0;f0)return!0;return!1};if(e&&0===e._typename.indexOf(m.clTH2)&&(this.options.ndim=2),2===this.options.ndim&&!n&&(n="lego1"),s.fHists&&!this.options.nostack)for(let o=0;o{t.check(o)&&(this.options.auto+=" "+o)}),this.options.pads=t.check("PADS"),this.options.pads&&(this.options.nostack=!0),this.options.hopt=t.remain();const a=t.check("LEGO");this.options.errors=t.check("E"),!this.options.nostack&&this.options.has_errors&&!a&&!t.check("HIST")&&this.options.hopt.indexOf("E")<0&&(this.options.draw_errors=!0),this.options.horder=this.options.nostack||a}createHistogram(n){const s=n.fHists,e=s?s.arr.length:0;if(!e){const a=(0,m.createHistogram)(m.clTH1I,100);return(0,m.setHistogramTitle)(a,n.fTitle),a.fBits|=m.kNoStats,a}const i=s.arr[0],t=(0,m.createHistogram)(1===this.options.ndim?m.clTH1I:m.clTH2I,i.fXaxis.fNbins,i.fYaxis.fNbins);t.fName="axis_hist",t.fBits|=m.kNoStats,Object.assign(t.fXaxis,i.fXaxis),2===this.options.ndim&&Object.assign(t.fYaxis,i.fYaxis);for(let a=1;athis.painters.indexOf(t)>=0),this.painters=[];else{this.did_update=2;for(let t=0;te>=this.painters.length?Promise.resolve(this):this.painters[e].redraw(n).then(()=>s(e+1));return s(0)}}fillContextMenuItems(n){n.addchk(this.options.draw_errors,"Draw errors",s=>{this.options.draw_errors=s;const e=this.getObject(),i=this.options.nostack?e.fHists:e.fStack,t=i?.arr?.length??0;for(let a=0;a{if(i.decodeOptions(e),i.hdraw_func=1===i.options.ndim?C.TH1Painter.draw:v.TH2Painter.draw,i.options.pads)return t=i.getPadPainter(),t.doingDraw()&&t.pad?.fPrimitives&&t.pad.fPrimitives.arr.length>1&&0===t.pad.fPrimitives.arr.indexOf(s)?(a=!0,void console.log("special case with THStack with is already rendered - do nothing")):(t.cleanPrimitives(p=>p!==i),t.divide(i.options.nhist));if(i.options.nostack||(i.options.nostack=!i.buildStack(s)),i.options.same)return;!s.fHistogram&&(s.fHistogram=i.createHistogram(s));const f=i.getMinMax(i.options.errors||i.options.draw_errors);return i.hdraw_func(n,s.fHistogram,i.options.hopt+";"+f.hopt).then(p=>{i.addToPadPrimitives(),i.firstpainter=p,p.setSecondaryId(i,"hist")})}).then(()=>a?i:i.drawNextHisto(0,t))})()}}}}]); +//# sourceMappingURL=217.f84206a0731bc22f.js.map \ No newline at end of file diff --git a/docs/217.33e0101bfbf3c911.js.map b/docs/217.f84206a0731bc22f.js.map similarity index 99% rename from docs/217.33e0101bfbf3c911.js.map rename to docs/217.f84206a0731bc22f.js.map index dbae54fc..78a0f54e 100644 --- a/docs/217.33e0101bfbf3c911.js.map +++ b/docs/217.f84206a0731bc22f.js.map @@ -1 +1 @@ -{"version":3,"file":"217.33e0101bfbf3c911.js","mappings":"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","names":["THStackPainter","ObjectPainter","constructor","dom","stack","opt","super","this","firstpainter","painters","cleanup","getPadPainter","cleanPrimitives","objp","indexOf","buildStack","fHists","nhists","arr","length","lst","create","clTList","Add","clone","i","hnext","hnextopt","hprev","xnext","fXaxis","xprev","match","fNbins","fXmin","fXmax","Math","abs","Array","fNcells","fill","n","fArray","Object","assign","console","warn","fName","Clear","fStack","getMinMax","iserr","getObject","pad","getRootPad","min","max","getHistMinMax","hist","witherr","res","domin","domax","fMinimum","kNoZoom","fMaximum","i1","i2","j1","j2","first","TestBit","EAxisBits","kAxisRange","fFirst","fLast","_typename","clTH2","fYaxis","j","val","getBinContent","err","getBinError","getBin","options","nostack","resh","adjustRange","fLogv","ndim","fLogy","fLogz","kmin","log10","kmax","gStyle","fHistTopMargin","max0","min0","zoomed","hopt","getHistDrawOption","fOption","toUpperCase","draw_errors","pads","auto","drawNextHisto","indx","pad_painter","_this","_asyncToGenerator","hlst","rindx","horder","subid","subpad_painter","getSubPadPainter","prev_name","selectCurrentPad","this_pad_name","hdraw_func","getDom","then","subp","setSecondaryId","push","$baseh","$num_histos","decodeOptions","same","has_errors","fHistogram","hasErrors","fSumw2","k","nhist","d","DrawOptions","check","forEach","f","remain","dolego","errors","createHistogram","histos","numhistos","histo","clTH1I","setHistogramTitle","fTitle","fBits","kNoStats","h0","clTH2I","h","fLabels","updateObject","obj","matchObjectType","src","mm","minimum","maximum","_checked_zooming","ymin","ymax","zmin","zmax","did_update","redraw","reason","redrawSub","Promise","resolve","fillContextMenuItems","menu","addchk","flag","redrawPad","draw","painter","skip_drawing","ensureTCanvas","TH1Painter","TH2Painter","doingDraw","fPrimitives","log","p","divide","addToPadPrimitives"],"ignoreList":[],"sourceRoot":"webpack:///","sources":["../node_modules/jsroot/modules/hist/THStackPainter.mjs"],"sourcesContent":["import { clone, create, createHistogram, setHistogramTitle, gStyle, clTList, clTH1I, clTH2, clTH2I, kNoZoom, kNoStats } from '../core.mjs';\nimport { DrawOptions } from '../base/BasePainter.mjs';\nimport { ObjectPainter, EAxisBits } from '../base/ObjectPainter.mjs';\nimport { TH1Painter } from './TH1Painter.mjs';\nimport { TH2Painter } from './TH2Painter.mjs';\nimport { ensureTCanvas } from '../gpad/TCanvasPainter.mjs';\n\n\n/**\n * @summary Painter class for THStack\n *\n * @private\n */\n\nclass THStackPainter extends ObjectPainter {\n\n /** @summary constructor\n * @param {object|string} dom - DOM element for drawing or element id\n * @param {object} stack - THStack object\n * @param {string} [opt] - draw options */\n constructor(dom, stack, opt) {\n super(dom, stack, opt);\n this.firstpainter = null;\n this.painters = []; // keep painters to be able update objects\n }\n\n /** @summary Cleanup THStack painter */\n cleanup() {\n this.getPadPainter()?.cleanPrimitives(objp => { return (objp === this.firstpainter) || (this.painters.indexOf(objp) >= 0); });\n delete this.firstpainter;\n delete this.painters;\n super.cleanup();\n }\n\n /** @summary Build sum of all histograms\n * @desc Build a separate list fStack containing the running sum of all histograms */\n buildStack(stack) {\n if (!stack.fHists) return false;\n const nhists = stack.fHists.arr.length;\n if (nhists <= 0) return false;\n const lst = create(clTList);\n lst.Add(clone(stack.fHists.arr[0]), stack.fHists.opt[0]);\n for (let i = 1; i < nhists; ++i) {\n const hnext = clone(stack.fHists.arr[i]),\n hnextopt = stack.fHists.opt[i],\n hprev = lst.arr[i-1],\n xnext = hnext.fXaxis, xprev = hprev.fXaxis;\n\n let match = (xnext.fNbins === xprev.fNbins) &&\n (xnext.fXmin === xprev.fXmin) &&\n (xnext.fXmax === xprev.fXmax);\n\n if (!match && (xnext.fNbins > 0) && (xnext.fNbins < xprev.fNbins) && (xnext.fXmin === xprev.fXmin) &&\n (Math.abs((xnext.fXmax - xnext.fXmin)/xnext.fNbins - (xprev.fXmax - xprev.fXmin)/xprev.fNbins) < 0.0001)) {\n // simple extension of histogram to make sum\n const arr = new Array(hprev.fNcells).fill(0);\n for (let n = 1; n <= xnext.fNbins; ++n)\n arr[n] = hnext.fArray[n];\n hnext.fNcells = hprev.fNcells;\n Object.assign(xnext, xprev);\n hnext.fArray = arr;\n match = true;\n }\n if (!match) {\n console.warn(`When drawing THStack, cannot sum-up histograms ${hnext.fName} and ${hprev.fName}`);\n lst.Clear();\n return false;\n }\n\n // trivial sum of histograms\n for (let n = 0; n < hnext.fArray.length; ++n)\n hnext.fArray[n] += hprev.fArray[n];\n\n lst.Add(hnext, hnextopt);\n }\n stack.fStack = lst;\n return true;\n }\n\n /** @summary Returns stack min/max values */\n getMinMax(iserr) {\n const stack = this.getObject(),\n pad = this.getPadPainter().getRootPad(true);\n let min = 0, max = 0;\n\n const getHistMinMax = (hist, witherr) => {\n const res = { min: 0, max: 0 };\n let domin = true, domax = true;\n if (hist.fMinimum !== kNoZoom) {\n res.min = hist.fMinimum;\n domin = false;\n }\n if (hist.fMaximum !== kNoZoom) {\n res.max = hist.fMaximum;\n domax = false;\n }\n\n if (!domin && !domax) return res;\n\n let i1 = 1, i2 = hist.fXaxis.fNbins, j1 = 1, j2 = 1, first = true;\n\n if (hist.fXaxis.TestBit(EAxisBits.kAxisRange)) {\n i1 = hist.fXaxis.fFirst;\n i2 = hist.fXaxis.fLast;\n }\n\n if (hist._typename.indexOf(clTH2) === 0) {\n j2 = hist.fYaxis.fNbins;\n if (hist.fYaxis.TestBit(EAxisBits.kAxisRange)) {\n j1 = hist.fYaxis.fFirst;\n j2 = hist.fYaxis.fLast;\n }\n }\n for (let j = j1; j <= j2; ++j) {\n for (let i = i1; i <= i2; ++i) {\n const val = hist.getBinContent(i, j),\n err = witherr ? hist.getBinError(hist.getBin(i, j)) : 0;\n if (domin && (first || (val-err < res.min))) res.min = val-err;\n if (domax && (first || (val+err > res.max))) res.max = val+err;\n first = false;\n }\n }\n\n return res;\n };\n\n if (this.options.nostack) {\n for (let i = 0; i < stack.fHists.arr.length; ++i) {\n const resh = getHistMinMax(stack.fHists.arr[i], iserr);\n if (i === 0) {\n min = resh.min; max = resh.max;\n } else {\n min = Math.min(min, resh.min);\n max = Math.max(max, resh.max);\n }\n }\n } else {\n min = getHistMinMax(stack.fStack.arr[0], iserr).min;\n max = getHistMinMax(stack.fStack.arr[stack.fStack.arr.length-1], iserr).max;\n }\n\n const adjustRange = () => {\n if (pad && (pad.fLogv ?? (this.options.ndim === 1 ? pad.fLogy : pad.fLogz))) {\n if (max <= 0) max = 1;\n if (min <= 0) min = 1e-4*max;\n const kmin = 1/(1 + 0.5*Math.log10(max / min)),\n kmax = 1 + 0.2*Math.log10(max / min);\n min *= kmin;\n max *= kmax;\n } else if ((min > 0) && (min < 0.05*max))\n min = 0;\n };\n\n max *= (1 + gStyle.fHistTopMargin);\n\n adjustRange();\n\n let max0 = max, min0 = min, zoomed = false;\n\n if (stack.fMaximum !== kNoZoom) {\n max = stack.fMaximum;\n max0 = Math.max(max, max0);\n zoomed = true;\n }\n\n if (stack.fMinimum !== kNoZoom) {\n min = stack.fMinimum;\n min0 = Math.min(min, min0);\n zoomed = true;\n }\n\n if (zoomed)\n adjustRange();\n else\n min = max = kNoZoom;\n\n return { min, max, min0, max0, zoomed, hopt: `hmin:${min0};hmax:${max0};minimum:${min};maximum:${max}` };\n }\n\n /** @summary Provide draw options for the histogram */\n getHistDrawOption(hist, opt) {\n let hopt = opt || hist.fOption || this.options.hopt;\n if (hopt.toUpperCase().indexOf(this.options.hopt) < 0)\n hopt += ' ' + this.options.hopt;\n if (this.options.draw_errors && !hopt)\n hopt = 'E';\n if (!this.options.pads)\n hopt += ' same nostat' + this.options.auto;\n return hopt;\n }\n\n /** @summary Draw next stack histogram */\n async drawNextHisto(indx, pad_painter) {\n const stack = this.getObject(),\n hlst = this.options.nostack ? stack.fHists : stack.fStack,\n nhists = hlst?.arr?.length || 0;\n\n if (indx >= nhists)\n return this;\n\n const rindx = this.options.horder ? indx : nhists-indx-1,\n subid = this.options.nostack ? `hists_${rindx}` : `stack_${rindx}`,\n hist = hlst.arr[rindx],\n hopt = this.getHistDrawOption(hist, hlst.opt[rindx]);\n\n // handling of 'pads' draw option\n if (pad_painter) {\n const subpad_painter = pad_painter.getSubPadPainter(indx+1);\n if (!subpad_painter)\n return this;\n\n const prev_name = subpad_painter.selectCurrentPad(subpad_painter.this_pad_name);\n\n return this.hdraw_func(subpad_painter.getDom(), hist, hopt).then(subp => {\n if (subp) {\n subp.setSecondaryId(this, subid);\n this.painters.push(subp);\n }\n subpad_painter.selectCurrentPad(prev_name);\n return this.drawNextHisto(indx+1, pad_painter);\n });\n }\n\n // special handling of stacked histograms - set $baseh object for correct drawing\n // also used to provide tooltips\n if ((rindx > 0) && !this.options.nostack)\n hist.$baseh = hlst.arr[rindx - 1];\n // this number used for auto colors creation\n if (this.options.auto)\n hist.$num_histos = nhists;\n\n return this.hdraw_func(this.getDom(), hist, hopt).then(subp => {\n subp.setSecondaryId(this, subid);\n this.painters.push(subp);\n return this.drawNextHisto(indx+1, pad_painter);\n });\n }\n\n /** @summary Decode draw options of THStack painter */\n decodeOptions(opt) {\n if (!this.options) this.options = {};\n Object.assign(this.options, { ndim: 1, nostack: false, same: false, horder: true, has_errors: false, draw_errors: false, hopt: '', auto: '' });\n\n const stack = this.getObject(),\n hist = stack.fHistogram || (stack.fHists ? stack.fHists.arr[0] : null) || (stack.fStack ? stack.fStack.arr[0] : null),\n\n hasErrors = hist => {\n if (hist.fSumw2 && (hist.fSumw2.length > 0)) {\n for (let n = 0; n < hist.fSumw2.length; ++n)\n if (hist.fSumw2[n] > 0) return true;\n }\n return false;\n };\n\n if (hist && (hist._typename.indexOf(clTH2) === 0))\n this.options.ndim = 2;\n\n if ((this.options.ndim === 2) && !opt)\n opt = 'lego1';\n\n if (stack.fHists && !this.options.nostack) {\n for (let k = 0; k < stack.fHists.arr.length; ++k)\n this.options.has_errors = this.options.has_errors || hasErrors(stack.fHists.arr[k]);\n }\n\n this.options.nhist = stack.fHists?.arr?.length ?? 1;\n\n const d = new DrawOptions(opt);\n\n this.options.nostack = d.check('NOSTACK');\n if (d.check('STACK')) this.options.nostack = false;\n this.options.same = d.check('SAME');\n\n d.check('NOCLEAR'); // ignore noclear option\n\n ['PFC', 'PLC', 'PMC'].forEach(f => { if (d.check(f)) this.options.auto += ' ' + f; });\n\n this.options.pads = d.check('PADS');\n if (this.options.pads) this.options.nostack = true;\n\n this.options.hopt = d.remain(); // use remaining draw options for histogram draw\n\n const dolego = d.check('LEGO');\n\n this.options.errors = d.check('E');\n\n // if any histogram appears with pre-calculated errors, use E for all histograms\n if (!this.options.nostack && this.options.has_errors && !dolego && !d.check('HIST') && (this.options.hopt.indexOf('E') < 0))\n this.options.draw_errors = true;\n\n this.options.horder = this.options.nostack || dolego;\n }\n\n /** @summary Create main histogram for THStack axis drawing */\n createHistogram(stack) {\n const histos = stack.fHists,\n numhistos = histos ? histos.arr.length : 0;\n\n if (!numhistos) {\n const histo = createHistogram(clTH1I, 100);\n setHistogramTitle(histo, stack.fTitle);\n histo.fBits |= kNoStats;\n return histo;\n }\n\n const h0 = histos.arr[0],\n histo = createHistogram((this.options.ndim === 1) ? clTH1I : clTH2I, h0.fXaxis.fNbins, h0.fYaxis.fNbins);\n histo.fName = 'axis_hist';\n histo.fBits |= kNoStats;\n Object.assign(histo.fXaxis, h0.fXaxis);\n if (this.options.ndim === 2)\n Object.assign(histo.fYaxis, h0.fYaxis);\n\n // this code is not exists in ROOT painter, can be skipped?\n for (let n = 1; n < numhistos; ++n) {\n const h = histos.arr[n];\n\n if (!histo.fXaxis.fLabels) {\n histo.fXaxis.fXmin = Math.min(histo.fXaxis.fXmin, h.fXaxis.fXmin);\n histo.fXaxis.fXmax = Math.max(histo.fXaxis.fXmax, h.fXaxis.fXmax);\n }\n\n if ((this.options.ndim === 2) && !histo.fYaxis.fLabels) {\n histo.fYaxis.fXmin = Math.min(histo.fYaxis.fXmin, h.fYaxis.fXmin);\n histo.fYaxis.fXmax = Math.max(histo.fYaxis.fXmax, h.fYaxis.fXmax);\n }\n }\n\n histo.fTitle = stack.fTitle;\n\n return histo;\n }\n\n /** @summary Update thstack object */\n updateObject(obj) {\n if (!this.matchObjectType(obj)) return false;\n\n const stack = this.getObject();\n\n stack.fHists = obj.fHists;\n stack.fStack = obj.fStack;\n stack.fTitle = obj.fTitle;\n stack.fMinimum = obj.fMinimum;\n stack.fMaximum = obj.fMaximum;\n\n if (!this.options.nostack)\n this.options.nostack = !this.buildStack(stack);\n\n if (this.firstpainter) {\n let src = obj.fHistogram;\n if (!src)\n src = stack.fHistogram = this.createHistogram(stack);\n\n const mm = this.getMinMax(this.options.errors || this.options.draw_errors);\n\n this.firstpainter.options.minimum = mm.min;\n this.firstpainter.options.maximum = mm.max;\n this.firstpainter._checked_zooming = false; // force to check 3d zooming\n\n if (this.options.ndim === 1) {\n this.firstpainter.ymin = mm.min0;\n this.firstpainter.ymax = mm.max0;\n } else {\n this.firstpainter.zmin = mm.min0;\n this.firstpainter.zmax = mm.max0;\n }\n\n this.firstpainter.updateObject(src);\n }\n\n // and now update histograms\n const hlst = this.options.nostack ? stack.fHists : stack.fStack,\n nhists = hlst?.arr?.length ?? 0;\n\n if (nhists !== this.painters.length) {\n this.did_update = 1;\n this.getPadPainter()?.cleanPrimitives(objp => this.painters.indexOf(objp) >= 0);\n this.painters = [];\n } else {\n this.did_update = 2;\n for (let indx = 0; indx < nhists; ++indx) {\n const rindx = this.options.horder ? indx : nhists - indx - 1,\n hist = hlst.arr[rindx];\n this.painters[indx].updateObject(hist, this.getHistDrawOption(hist, hlst.opt[rindx]));\n }\n }\n\n return true;\n }\n\n /** @summary Redraw THStack\n * @desc Do something if previous update had changed number of histograms */\n redraw(reason) {\n if (this.did_update === 1) {\n delete this.did_update;\n return this.drawNextHisto(0, this.options.pads ? this.getPadPainter() : null);\n } else if (this.did_update === 2) {\n delete this.did_update;\n const redrawSub = indx => {\n if (indx >= this.painters.length)\n return Promise.resolve(this);\n return this.painters[indx].redraw(reason).then(() => redrawSub(indx+1));\n };\n return redrawSub(0);\n }\n }\n\n /** @summary Fill hstack context menu */\n fillContextMenuItems(menu) {\n menu.addchk(this.options.draw_errors, 'Draw errors', flag => {\n this.options.draw_errors = flag;\n const stack = this.getObject(),\n hlst = this.options.nostack ? stack.fHists : stack.fStack,\n nhists = hlst?.arr?.length ?? 0;\n for (let indx = 0; indx < nhists; ++indx) {\n const rindx = this.options.horder ? indx : nhists - indx - 1,\n hist = hlst.arr[rindx];\n this.painters[indx].decodeOptions(this.getHistDrawOption(hist, hlst.opt[rindx]));\n }\n this.redrawPad();\n }, 'Change draw erros in the stack');\n }\n\n /** @summary draw THStack object */\n static async draw(dom, stack, opt) {\n if (!stack.fHists || !stack.fHists.arr)\n return null; // drawing not needed\n\n const painter = new THStackPainter(dom, stack, opt);\n let pad_painter = null, skip_drawing = false;\n\n return ensureTCanvas(painter, false).then(() => {\n painter.decodeOptions(opt);\n\n painter.hdraw_func = (painter.options.ndim === 1) ? TH1Painter.draw : TH2Painter.draw;\n\n if (painter.options.pads) {\n pad_painter = painter.getPadPainter();\n if (pad_painter.doingDraw() && pad_painter.pad?.fPrimitives &&\n (pad_painter.pad.fPrimitives.arr.length > 1) && (pad_painter.pad.fPrimitives.arr.indexOf(stack) === 0)) {\n skip_drawing = true;\n console.log('special case with THStack with is already rendered - do nothing');\n return;\n }\n\n pad_painter.cleanPrimitives(p => p !== painter);\n return pad_painter.divide(painter.options.nhist);\n }\n\n if (!painter.options.nostack)\n painter.options.nostack = !painter.buildStack(stack);\n\n if (painter.options.same) return;\n\n const no_histogram = !stack.fHistogram;\n\n if (no_histogram)\n stack.fHistogram = painter.createHistogram(stack);\n\n const mm = painter.getMinMax(painter.options.errors || painter.options.draw_errors),\n hopt = painter.options.hopt + ';' + mm.hopt;\n\n return painter.hdraw_func(dom, stack.fHistogram, hopt).then(subp => {\n painter.addToPadPrimitives();\n painter.firstpainter = subp;\n subp.setSecondaryId(painter, 'hist'); // mark hist painter as created by hstack\n });\n }).then(() => skip_drawing ? painter : painter.drawNextHisto(0, pad_painter));\n }\n\n} // class THStackPainter\n\nexport { THStackPainter };\n"],"x_google_ignoreList":[0]} \ No newline at end of file +{"version":3,"file":"217.f84206a0731bc22f.js","mappings":"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","names":["THStackPainter","ObjectPainter","constructor","dom","stack","opt","super","this","firstpainter","painters","cleanup","getPadPainter","cleanPrimitives","objp","indexOf","buildStack","fHists","nhists","arr","length","lst","create","clTList","Add","clone","i","hnext","hnextopt","hprev","xnext","fXaxis","xprev","match","fNbins","fXmin","fXmax","Math","abs","Array","fNcells","fill","n","fArray","Object","assign","console","warn","fName","Clear","fStack","getMinMax","iserr","getObject","pad","getRootPad","min","max","getHistMinMax","hist","witherr","res","domin","domax","fMinimum","kNoZoom","fMaximum","i1","i2","j1","j2","first","TestBit","EAxisBits","kAxisRange","fFirst","fLast","_typename","clTH2","fYaxis","j","val","getBinContent","err","getBinError","getBin","options","nostack","resh","adjustRange","fLogv","ndim","fLogy","fLogz","kmin","log10","kmax","gStyle","fHistTopMargin","max0","min0","zoomed","hopt","getHistDrawOption","fOption","toUpperCase","draw_errors","pads","auto","drawNextHisto","indx","pad_painter","_this","_asyncToGenerator","hlst","rindx","horder","subid","subpad_painter","getSubPadPainter","prev_name","selectCurrentPad","this_pad_name","hdraw_func","getDom","then","subp","setSecondaryId","push","$baseh","$num_histos","decodeOptions","same","has_errors","fHistogram","hasErrors","fSumw2","k","nhist","d","DrawOptions","check","forEach","f","remain","dolego","errors","createHistogram","histos","numhistos","histo","clTH1I","setHistogramTitle","fTitle","fBits","kNoStats","h0","clTH2I","h","fLabels","updateObject","obj","matchObjectType","src","mm","minimum","maximum","_checked_zooming","ymin","ymax","zmin","zmax","did_update","redraw","reason","redrawSub","Promise","resolve","fillContextMenuItems","menu","addchk","flag","redrawPad","draw","painter","skip_drawing","ensureTCanvas","TH1Painter","TH2Painter","doingDraw","fPrimitives","log","p","divide","addToPadPrimitives"],"ignoreList":[],"sourceRoot":"webpack:///","sources":["../node_modules/jsroot/modules/hist/THStackPainter.mjs"],"sourcesContent":["import { clone, create, createHistogram, setHistogramTitle, gStyle, clTList, clTH1I, clTH2, clTH2I, kNoZoom, kNoStats } from '../core.mjs';\nimport { DrawOptions } from '../base/BasePainter.mjs';\nimport { ObjectPainter, EAxisBits } from '../base/ObjectPainter.mjs';\nimport { TH1Painter } from './TH1Painter.mjs';\nimport { TH2Painter } from './TH2Painter.mjs';\nimport { ensureTCanvas } from '../gpad/TCanvasPainter.mjs';\n\n\n/**\n * @summary Painter class for THStack\n *\n * @private\n */\n\nclass THStackPainter extends ObjectPainter {\n\n /** @summary constructor\n * @param {object|string} dom - DOM element for drawing or element id\n * @param {object} stack - THStack object\n * @param {string} [opt] - draw options */\n constructor(dom, stack, opt) {\n super(dom, stack, opt);\n this.firstpainter = null;\n this.painters = []; // keep painters to be able update objects\n }\n\n /** @summary Cleanup THStack painter */\n cleanup() {\n this.getPadPainter()?.cleanPrimitives(objp => { return (objp === this.firstpainter) || (this.painters.indexOf(objp) >= 0); });\n delete this.firstpainter;\n delete this.painters;\n super.cleanup();\n }\n\n /** @summary Build sum of all histograms\n * @desc Build a separate list fStack containing the running sum of all histograms */\n buildStack(stack) {\n if (!stack.fHists) return false;\n const nhists = stack.fHists.arr.length;\n if (nhists <= 0) return false;\n const lst = create(clTList);\n lst.Add(clone(stack.fHists.arr[0]), stack.fHists.opt[0]);\n for (let i = 1; i < nhists; ++i) {\n const hnext = clone(stack.fHists.arr[i]),\n hnextopt = stack.fHists.opt[i],\n hprev = lst.arr[i-1],\n xnext = hnext.fXaxis, xprev = hprev.fXaxis;\n\n let match = (xnext.fNbins === xprev.fNbins) &&\n (xnext.fXmin === xprev.fXmin) &&\n (xnext.fXmax === xprev.fXmax);\n\n if (!match && (xnext.fNbins > 0) && (xnext.fNbins < xprev.fNbins) && (xnext.fXmin === xprev.fXmin) &&\n (Math.abs((xnext.fXmax - xnext.fXmin)/xnext.fNbins - (xprev.fXmax - xprev.fXmin)/xprev.fNbins) < 0.0001)) {\n // simple extension of histogram to make sum\n const arr = new Array(hprev.fNcells).fill(0);\n for (let n = 1; n <= xnext.fNbins; ++n)\n arr[n] = hnext.fArray[n];\n hnext.fNcells = hprev.fNcells;\n Object.assign(xnext, xprev);\n hnext.fArray = arr;\n match = true;\n }\n if (!match) {\n console.warn(`When drawing THStack, cannot sum-up histograms ${hnext.fName} and ${hprev.fName}`);\n lst.Clear();\n return false;\n }\n\n // trivial sum of histograms\n for (let n = 0; n < hnext.fArray.length; ++n)\n hnext.fArray[n] += hprev.fArray[n];\n\n lst.Add(hnext, hnextopt);\n }\n stack.fStack = lst;\n return true;\n }\n\n /** @summary Returns stack min/max values */\n getMinMax(iserr) {\n const stack = this.getObject(),\n pad = this.getPadPainter().getRootPad(true);\n let min = 0, max = 0;\n\n const getHistMinMax = (hist, witherr) => {\n const res = { min: 0, max: 0 };\n let domin = true, domax = true;\n if (hist.fMinimum !== kNoZoom) {\n res.min = hist.fMinimum;\n domin = false;\n }\n if (hist.fMaximum !== kNoZoom) {\n res.max = hist.fMaximum;\n domax = false;\n }\n\n if (!domin && !domax) return res;\n\n let i1 = 1, i2 = hist.fXaxis.fNbins, j1 = 1, j2 = 1, first = true;\n\n if (hist.fXaxis.TestBit(EAxisBits.kAxisRange)) {\n i1 = hist.fXaxis.fFirst;\n i2 = hist.fXaxis.fLast;\n }\n\n if (hist._typename.indexOf(clTH2) === 0) {\n j2 = hist.fYaxis.fNbins;\n if (hist.fYaxis.TestBit(EAxisBits.kAxisRange)) {\n j1 = hist.fYaxis.fFirst;\n j2 = hist.fYaxis.fLast;\n }\n }\n for (let j = j1; j <= j2; ++j) {\n for (let i = i1; i <= i2; ++i) {\n const val = hist.getBinContent(i, j),\n err = witherr ? hist.getBinError(hist.getBin(i, j)) : 0;\n if (domin && (first || (val-err < res.min))) res.min = val-err;\n if (domax && (first || (val+err > res.max))) res.max = val+err;\n first = false;\n }\n }\n\n return res;\n };\n\n if (this.options.nostack) {\n for (let i = 0; i < stack.fHists.arr.length; ++i) {\n const resh = getHistMinMax(stack.fHists.arr[i], iserr);\n if (i === 0) {\n min = resh.min; max = resh.max;\n } else {\n min = Math.min(min, resh.min);\n max = Math.max(max, resh.max);\n }\n }\n } else {\n min = getHistMinMax(stack.fStack.arr[0], iserr).min;\n max = getHistMinMax(stack.fStack.arr[stack.fStack.arr.length-1], iserr).max;\n }\n\n const adjustRange = () => {\n if (pad && (pad.fLogv ?? (this.options.ndim === 1 ? pad.fLogy : pad.fLogz))) {\n if (max <= 0) max = 1;\n if (min <= 0) min = 1e-4*max;\n const kmin = 1/(1 + 0.5*Math.log10(max / min)),\n kmax = 1 + 0.2*Math.log10(max / min);\n min *= kmin;\n max *= kmax;\n } else if ((min > 0) && (min < 0.05*max))\n min = 0;\n };\n\n max *= (1 + gStyle.fHistTopMargin);\n\n adjustRange();\n\n let max0 = max, min0 = min, zoomed = false;\n\n if (stack.fMaximum !== kNoZoom) {\n max = stack.fMaximum;\n max0 = Math.max(max, max0);\n zoomed = true;\n }\n\n if (stack.fMinimum !== kNoZoom) {\n min = stack.fMinimum;\n min0 = Math.min(min, min0);\n zoomed = true;\n }\n\n if (zoomed)\n adjustRange();\n else\n min = max = kNoZoom;\n\n return { min, max, min0, max0, zoomed, hopt: `hmin:${min0};hmax:${max0};minimum:${min};maximum:${max}` };\n }\n\n /** @summary Provide draw options for the histogram */\n getHistDrawOption(hist, opt) {\n let hopt = opt || hist.fOption || this.options.hopt;\n if (hopt.toUpperCase().indexOf(this.options.hopt) < 0)\n hopt += ' ' + this.options.hopt;\n if (this.options.draw_errors && !hopt)\n hopt = 'E';\n if (!this.options.pads)\n hopt += ' same nostat' + this.options.auto;\n return hopt;\n }\n\n /** @summary Draw next stack histogram */\n async drawNextHisto(indx, pad_painter) {\n const stack = this.getObject(),\n hlst = this.options.nostack ? stack.fHists : stack.fStack,\n nhists = hlst?.arr?.length || 0;\n\n if (indx >= nhists)\n return this;\n\n const rindx = this.options.horder ? indx : nhists-indx-1,\n subid = this.options.nostack ? `hists_${rindx}` : `stack_${rindx}`,\n hist = hlst.arr[rindx],\n hopt = this.getHistDrawOption(hist, hlst.opt[rindx]);\n\n // handling of 'pads' draw option\n if (pad_painter) {\n const subpad_painter = pad_painter.getSubPadPainter(indx+1);\n if (!subpad_painter)\n return this;\n\n const prev_name = subpad_painter.selectCurrentPad(subpad_painter.this_pad_name);\n\n return this.hdraw_func(subpad_painter.getDom(), hist, hopt).then(subp => {\n if (subp) {\n subp.setSecondaryId(this, subid);\n this.painters.push(subp);\n }\n subpad_painter.selectCurrentPad(prev_name);\n return this.drawNextHisto(indx+1, pad_painter);\n });\n }\n\n // special handling of stacked histograms - set $baseh object for correct drawing\n // also used to provide tooltips\n if ((rindx > 0) && !this.options.nostack)\n hist.$baseh = hlst.arr[rindx - 1];\n // this number used for auto colors creation\n if (this.options.auto)\n hist.$num_histos = nhists;\n\n return this.hdraw_func(this.getDom(), hist, hopt).then(subp => {\n subp.setSecondaryId(this, subid);\n this.painters.push(subp);\n return this.drawNextHisto(indx+1, pad_painter);\n });\n }\n\n /** @summary Decode draw options of THStack painter */\n decodeOptions(opt) {\n if (!this.options) this.options = {};\n Object.assign(this.options, { ndim: 1, nostack: false, same: false, horder: true, has_errors: false, draw_errors: false, hopt: '', auto: '' });\n\n const stack = this.getObject(),\n hist = stack.fHistogram || (stack.fHists ? stack.fHists.arr[0] : null) || (stack.fStack ? stack.fStack.arr[0] : null),\n\n hasErrors = hist => {\n if (hist.fSumw2 && (hist.fSumw2.length > 0)) {\n for (let n = 0; n < hist.fSumw2.length; ++n)\n if (hist.fSumw2[n] > 0) return true;\n }\n return false;\n };\n\n if (hist && (hist._typename.indexOf(clTH2) === 0))\n this.options.ndim = 2;\n\n if ((this.options.ndim === 2) && !opt)\n opt = 'lego1';\n\n if (stack.fHists && !this.options.nostack) {\n for (let k = 0; k < stack.fHists.arr.length; ++k)\n this.options.has_errors = this.options.has_errors || hasErrors(stack.fHists.arr[k]);\n }\n\n this.options.nhist = stack.fHists?.arr?.length ?? 1;\n\n const d = new DrawOptions(opt);\n\n this.options.nostack = d.check('NOSTACK');\n if (d.check('STACK')) this.options.nostack = false;\n this.options.same = d.check('SAME');\n\n d.check('NOCLEAR'); // ignore noclear option\n\n ['PFC', 'PLC', 'PMC'].forEach(f => { if (d.check(f)) this.options.auto += ' ' + f; });\n\n this.options.pads = d.check('PADS');\n if (this.options.pads) this.options.nostack = true;\n\n this.options.hopt = d.remain(); // use remaining draw options for histogram draw\n\n const dolego = d.check('LEGO');\n\n this.options.errors = d.check('E');\n\n // if any histogram appears with pre-calculated errors, use E for all histograms\n if (!this.options.nostack && this.options.has_errors && !dolego && !d.check('HIST') && (this.options.hopt.indexOf('E') < 0))\n this.options.draw_errors = true;\n\n this.options.horder = this.options.nostack || dolego;\n }\n\n /** @summary Create main histogram for THStack axis drawing */\n createHistogram(stack) {\n const histos = stack.fHists,\n numhistos = histos ? histos.arr.length : 0;\n\n if (!numhistos) {\n const histo = createHistogram(clTH1I, 100);\n setHistogramTitle(histo, stack.fTitle);\n histo.fBits |= kNoStats;\n return histo;\n }\n\n const h0 = histos.arr[0],\n histo = createHistogram((this.options.ndim === 1) ? clTH1I : clTH2I, h0.fXaxis.fNbins, h0.fYaxis.fNbins);\n histo.fName = 'axis_hist';\n histo.fBits |= kNoStats;\n Object.assign(histo.fXaxis, h0.fXaxis);\n if (this.options.ndim === 2)\n Object.assign(histo.fYaxis, h0.fYaxis);\n\n // this code is not exists in ROOT painter, can be skipped?\n for (let n = 1; n < numhistos; ++n) {\n const h = histos.arr[n];\n\n if (!histo.fXaxis.fLabels) {\n histo.fXaxis.fXmin = Math.min(histo.fXaxis.fXmin, h.fXaxis.fXmin);\n histo.fXaxis.fXmax = Math.max(histo.fXaxis.fXmax, h.fXaxis.fXmax);\n }\n\n if ((this.options.ndim === 2) && !histo.fYaxis.fLabels) {\n histo.fYaxis.fXmin = Math.min(histo.fYaxis.fXmin, h.fYaxis.fXmin);\n histo.fYaxis.fXmax = Math.max(histo.fYaxis.fXmax, h.fYaxis.fXmax);\n }\n }\n\n histo.fTitle = stack.fTitle;\n\n return histo;\n }\n\n /** @summary Update thstack object */\n updateObject(obj) {\n if (!this.matchObjectType(obj)) return false;\n\n const stack = this.getObject();\n\n stack.fHists = obj.fHists;\n stack.fStack = obj.fStack;\n stack.fTitle = obj.fTitle;\n stack.fMinimum = obj.fMinimum;\n stack.fMaximum = obj.fMaximum;\n\n if (!this.options.nostack)\n this.options.nostack = !this.buildStack(stack);\n\n if (this.firstpainter) {\n let src = obj.fHistogram;\n if (!src)\n src = stack.fHistogram = this.createHistogram(stack);\n\n const mm = this.getMinMax(this.options.errors || this.options.draw_errors);\n\n this.firstpainter.options.minimum = mm.min;\n this.firstpainter.options.maximum = mm.max;\n this.firstpainter._checked_zooming = false; // force to check 3d zooming\n\n if (this.options.ndim === 1) {\n this.firstpainter.ymin = mm.min0;\n this.firstpainter.ymax = mm.max0;\n } else {\n this.firstpainter.zmin = mm.min0;\n this.firstpainter.zmax = mm.max0;\n }\n\n this.firstpainter.updateObject(src);\n }\n\n // and now update histograms\n const hlst = this.options.nostack ? stack.fHists : stack.fStack,\n nhists = hlst?.arr?.length ?? 0;\n\n if (nhists !== this.painters.length) {\n this.did_update = 1;\n this.getPadPainter()?.cleanPrimitives(objp => this.painters.indexOf(objp) >= 0);\n this.painters = [];\n } else {\n this.did_update = 2;\n for (let indx = 0; indx < nhists; ++indx) {\n const rindx = this.options.horder ? indx : nhists - indx - 1,\n hist = hlst.arr[rindx];\n this.painters[indx].updateObject(hist, this.getHistDrawOption(hist, hlst.opt[rindx]));\n }\n }\n\n return true;\n }\n\n /** @summary Redraw THStack\n * @desc Do something if previous update had changed number of histograms */\n redraw(reason) {\n if (this.did_update === 1) {\n delete this.did_update;\n return this.drawNextHisto(0, this.options.pads ? this.getPadPainter() : null);\n } else if (this.did_update === 2) {\n delete this.did_update;\n const redrawSub = indx => {\n if (indx >= this.painters.length)\n return Promise.resolve(this);\n return this.painters[indx].redraw(reason).then(() => redrawSub(indx+1));\n };\n return redrawSub(0);\n }\n }\n\n /** @summary Fill hstack context menu */\n fillContextMenuItems(menu) {\n menu.addchk(this.options.draw_errors, 'Draw errors', flag => {\n this.options.draw_errors = flag;\n const stack = this.getObject(),\n hlst = this.options.nostack ? stack.fHists : stack.fStack,\n nhists = hlst?.arr?.length ?? 0;\n for (let indx = 0; indx < nhists; ++indx) {\n const rindx = this.options.horder ? indx : nhists - indx - 1,\n hist = hlst.arr[rindx];\n this.painters[indx].decodeOptions(this.getHistDrawOption(hist, hlst.opt[rindx]));\n }\n this.redrawPad();\n }, 'Change draw erros in the stack');\n }\n\n /** @summary draw THStack object */\n static async draw(dom, stack, opt) {\n if (!stack.fHists || !stack.fHists.arr)\n return null; // drawing not needed\n\n const painter = new THStackPainter(dom, stack, opt);\n let pad_painter = null, skip_drawing = false;\n\n return ensureTCanvas(painter, false).then(() => {\n painter.decodeOptions(opt);\n\n painter.hdraw_func = (painter.options.ndim === 1) ? TH1Painter.draw : TH2Painter.draw;\n\n if (painter.options.pads) {\n pad_painter = painter.getPadPainter();\n if (pad_painter.doingDraw() && pad_painter.pad?.fPrimitives &&\n (pad_painter.pad.fPrimitives.arr.length > 1) && (pad_painter.pad.fPrimitives.arr.indexOf(stack) === 0)) {\n skip_drawing = true;\n console.log('special case with THStack with is already rendered - do nothing');\n return;\n }\n\n pad_painter.cleanPrimitives(p => p !== painter);\n return pad_painter.divide(painter.options.nhist);\n }\n\n if (!painter.options.nostack)\n painter.options.nostack = !painter.buildStack(stack);\n\n if (painter.options.same) return;\n\n const no_histogram = !stack.fHistogram;\n\n if (no_histogram)\n stack.fHistogram = painter.createHistogram(stack);\n\n const mm = painter.getMinMax(painter.options.errors || painter.options.draw_errors),\n hopt = painter.options.hopt + ';' + mm.hopt;\n\n return painter.hdraw_func(dom, stack.fHistogram, hopt).then(subp => {\n painter.addToPadPrimitives();\n painter.firstpainter = subp;\n subp.setSecondaryId(painter, 'hist'); // mark hist painter as created by hstack\n });\n }).then(() => skip_drawing ? painter : painter.drawNextHisto(0, pad_painter));\n }\n\n} // class THStackPainter\n\nexport { THStackPainter };\n"],"x_google_ignoreList":[0]} \ No newline at end of file diff --git a/docs/246.d10caa6d3248d2cb.js b/docs/246.00ef7c008b2c7680.js similarity index 95% rename from docs/246.d10caa6d3248d2cb.js rename to docs/246.00ef7c008b2c7680.js index e7556083..7815465e 100644 --- a/docs/246.d10caa6d3248d2cb.js +++ b/docs/246.00ef7c008b2c7680.js @@ -1,2 +1,2 @@ -"use strict";(self.webpackChunkphoenix_app=self.webpackChunkphoenix_app||[]).push([[246],{5246:(P,x,m)=>{m.r(x),m.d(x,{TSplinePainter:()=>u});var d=m(4882),c=m(8872),_=m(2843),y=m(1922),M=m(8142);class u extends y.JW{updateObject(t,i){const e=this.getObject();return e._typename===t._typename&&(e!==t&&Object.assign(e,t),void 0!==i&&this.decodeOptions(i),!0)}eval(t,i){const e=i-t.fX;return"TSplinePoly3"===t._typename?t.fY+e*(t.fB+e*(t.fC+e*t.fD)):"TSplinePoly5"===t._typename?t.fY+e*(t.fB+e*(t.fC+e*(t.fD+e*(t.fE+e*t.fF)))):t.fY+e}findX(t){const i=this.getObject();let e=0,n=i.fNp-1;if(t<=i.fXmin)return 0;if(t>=i.fXmax)return n;if(i.fKstep)e=Math.round((t-i.fXmin)/i.fDelta),ti.fPoly[e+1].fX&&++e;else for(;n-e>1;){const a=Math.round((e+n)/2);t>i.fPoly[a].fX?e=a:n=a}return e}createDummyHisto(){const t=this.getObject();let i=0,e=1,n=0,a=1;t.fPoly&&(i=e=t.fPoly[0].fX,n=a=t.fPoly[0].fY,t.fPoly.forEach(s=>{i=Math.min(s.fX,i),e=Math.max(s.fX,e),n=Math.min(s.fY,n),a=Math.max(s.fY,a)}),a>0&&(a*=1+c.gStyle.fHistTopMargin),n<0&&(n*=1+c.gStyle.fHistTopMargin));const r=(0,c.createHistogram)(c.clTH1I,10);return r.fName=t.fName+"_hist",r.fTitle=t.fTitle,r.fBits|=c.kNoStats,r.fXaxis.fXmin=i,r.fXaxis.fXmax=e,r.fYaxis.fXmin=n,r.fYaxis.fXmax=a,r}processTooltipEvent(t){const i=this.getObject(),e=this.getFramePainter()?.getGrFuncs(this.options.second_x,this.options.second_y);let a,r,n=!1,s=null,f=0;null!==t&&i&&e?(a=e.revertAxis("x",t.x),f=this.findX(a),s=i.fPoly[f],r=this.eval(s,a),fi.fXmax)&&(n=!0))):n=!0;let l=this.draw_g?.selectChild(".tooltip_bin");const h=this.lineatt.width+3;if(n||!this.draw_g)return l?.remove(),null;l.empty()&&(l=this.draw_g.append("svg:circle").attr("class","tooltip_bin").style("pointer-events","none").attr("r",h).style("fill","none").call(this.lineatt.func));const o={name:this.getObject().fName,title:this.getObject().fTitle,x:e.grx(a),y:e.gry(r),color1:this.lineatt.color,lines:[],exact:null!==s||Math.abs(e.gry(r)-t.y)t.fPoly[h+1].fX;)++h;const g=this.eval(t.fPoly[h],p);s.push({x:p,y:g,grx:e.grx(p),gry:e.gry(g)})}this.draw_g.append("svg:path").attr("class","line").attr("d",(0,_.Mw)(s)).style("fill","none").call(this.lineatt.func)}if(this.options.Mark){let r="";this.createAttMarker({attr:t}),this.markeratt.resetPos(),this.knot_size=this.markeratt.getFullSize();for(let s=0;s-this.knot_size&&l-this.knot_size&&h(n.addToPadPrimitives(),n.redraw(),n))})()}}}}]); -//# sourceMappingURL=246.d10caa6d3248d2cb.js.map \ No newline at end of file +"use strict";(self.webpackChunkphoenix_app=self.webpackChunkphoenix_app||[]).push([[246],{5246:(P,g,m)=>{m.r(g),m.d(g,{TSplinePainter:()=>u});var d=m(4882),c=m(8872),_=m(2843),y=m(1922),M=m(8142);class u extends y.JW{updateObject(t,i){const e=this.getObject();return e._typename===t._typename&&(e!==t&&Object.assign(e,t),void 0!==i&&this.decodeOptions(i),!0)}eval(t,i){const e=i-t.fX;return"TSplinePoly3"===t._typename?t.fY+e*(t.fB+e*(t.fC+e*t.fD)):"TSplinePoly5"===t._typename?t.fY+e*(t.fB+e*(t.fC+e*(t.fD+e*(t.fE+e*t.fF)))):t.fY+e}findX(t){const i=this.getObject();let e=0,n=i.fNp-1;if(t<=i.fXmin)return 0;if(t>=i.fXmax)return n;if(i.fKstep)e=Math.round((t-i.fXmin)/i.fDelta),ti.fPoly[e+1].fX&&++e;else for(;n-e>1;){const a=Math.round((e+n)/2);t>i.fPoly[a].fX?e=a:n=a}return e}createDummyHisto(){const t=this.getObject();let i=0,e=1,n=0,a=1;t.fPoly&&(i=e=t.fPoly[0].fX,n=a=t.fPoly[0].fY,t.fPoly.forEach(s=>{i=Math.min(s.fX,i),e=Math.max(s.fX,e),n=Math.min(s.fY,n),a=Math.max(s.fY,a)}),a>0&&(a*=1+c.gStyle.fHistTopMargin),n<0&&(n*=1+c.gStyle.fHistTopMargin));const r=(0,c.createHistogram)(c.clTH1I,10);return r.fName=t.fName+"_hist",r.fTitle=t.fTitle,r.fBits|=c.kNoStats,r.fXaxis.fXmin=i,r.fXaxis.fXmax=e,r.fYaxis.fXmin=n,r.fYaxis.fXmax=a,r}processTooltipEvent(t){const i=this.getObject(),e=this.getFramePainter()?.getGrFuncs(this.options.second_x,this.options.second_y);let a,r,n=!1,s=null,f=0;null!==t&&i&&e?(a=e.revertAxis("x",t.x),f=this.findX(a),s=i.fPoly[f],r=this.eval(s,a),fi.fXmax)&&(n=!0))):n=!0;let l=this.draw_g?.selectChild(".tooltip_bin");const h=this.lineatt.width+3;if(n||!this.draw_g)return l?.remove(),null;l.empty()&&(l=this.draw_g.append("svg:circle").attr("class","tooltip_bin").style("pointer-events","none").attr("r",h).style("fill","none").call(this.lineatt.func));const o={name:this.getObject().fName,title:this.getObject().fTitle,x:e.grx(a),y:e.gry(r),color1:this.lineatt.color,lines:[],exact:null!==s||Math.abs(e.gry(r)-t.y)t.fPoly[h+1].fX;)++h;const x=this.eval(t.fPoly[h],p);s.push({x:p,y:x,grx:e.grx(p),gry:e.gry(x)})}this.draw_g.append("svg:path").attr("class","line").attr("d",(0,_.Mw)(s)).style("fill","none").call(this.lineatt.func)}if(this.options.Mark){let r="";this.createAttMarker({attr:t}),this.markeratt.resetPos(),this.knot_size=this.markeratt.getFullSize();for(let s=0;s-this.knot_size&&l-this.knot_size&&h(n.addToPadPrimitives(),n.redraw(),n))})()}}}}]); +//# sourceMappingURL=246.00ef7c008b2c7680.js.map \ No newline at end of file diff --git a/docs/246.d10caa6d3248d2cb.js.map b/docs/246.00ef7c008b2c7680.js.map similarity index 99% rename from docs/246.d10caa6d3248d2cb.js.map rename to docs/246.00ef7c008b2c7680.js.map index d6933e1e..443bf9dd 100644 --- a/docs/246.d10caa6d3248d2cb.js.map +++ b/docs/246.00ef7c008b2c7680.js.map @@ -1 +1 @@ -{"version":3,"file":"246.d10caa6d3248d2cb.js","mappings":"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","names":["TSplinePainter","ObjectPainter","updateObject","obj","opt","spline","this","getObject","_typename","Object","assign","undefined","decodeOptions","eval","knot","x","dx","fX","fY","fB","fC","fD","fE","fF","findX","klow","khig","fNp","fXmin","fXmax","fKstep","Math","round","fDelta","fPoly","max","khalf","createDummyHisto","xmin","xmax","ymin","ymax","forEach","min","gStyle","fHistTopMargin","histo","createHistogram","clTH1I","fName","fTitle","fBits","kNoStats","fXaxis","fYaxis","processTooltipEvent","pnt","funcs","getFramePainter","getGrFuncs","options","second_x","second_y","xx","yy","cleanup","indx","revertAxis","fN","abs","grx","knot_size","gbin","draw_g","selectChild","radius","lineatt","width","remove","empty","append","attr","style","call","func","res","name","title","y","gry","color1","color","lines","exact","changed","property","menu","menu_dist","sqrt","getObjectHint","push","axisAsText","floatToString","fStatFormat","redraw","pmain","w","getFrameWidth","h","getFrameHeight","createG","createAttLine","Line","Curve","npx","fNpx","bins","scale_xmin","scale_xmax","logx","log","n","exp","buildSvgCurve","Mark","path","createAttMarker","markeratt","resetPos","getFullSize","length","create","canZoomInside","axis","d","DrawOptions","has_main","getMainPainter","Same","check","Hopt","storeDrawOpt","draw","dom","_asyncToGenerator","painter","no_main","promise","Promise","resolve","console","warn","TH1Painter","then","addToPadPrimitives"],"ignoreList":[],"sourceRoot":"webpack:///","sources":["../node_modules/jsroot/modules/draw/TSplinePainter.mjs"],"sourcesContent":["import { gStyle, clTH1I, kNoStats, createHistogram } from '../core.mjs';\nimport { DrawOptions, floatToString, buildSvgCurve } from '../base/BasePainter.mjs';\nimport { ObjectPainter } from '../base/ObjectPainter.mjs';\nimport { TH1Painter } from '../hist/TH1Painter.mjs';\n\n\n/**\n * @summary Painter for TSpline objects.\n *\n * @private\n */\n\nclass TSplinePainter extends ObjectPainter {\n\n /** @summary Update TSpline object\n * @private */\n updateObject(obj, opt) {\n const spline = this.getObject();\n\n if (spline._typename !== obj._typename) return false;\n\n if (spline !== obj) Object.assign(spline, obj);\n\n if (opt !== undefined) this.decodeOptions(opt);\n\n return true;\n }\n\n /** @summary Evaluate spline at given position\n * @private */\n eval(knot, x) {\n const dx = x - knot.fX;\n\n if (knot._typename === 'TSplinePoly3')\n return knot.fY + dx*(knot.fB + dx*(knot.fC + dx*knot.fD));\n\n if (knot._typename === 'TSplinePoly5')\n return knot.fY + dx*(knot.fB + dx*(knot.fC + dx*(knot.fD + dx*(knot.fE + dx*knot.fF))));\n\n return knot.fY + dx;\n }\n\n /** @summary Find idex for x value\n * @private */\n findX(x) {\n const spline = this.getObject();\n let klow = 0, khig = spline.fNp - 1;\n\n if (x <= spline.fXmin) return 0;\n if (x >= spline.fXmax) return khig;\n\n if (spline.fKstep) {\n // Equidistant knots, use histogramming\n klow = Math.round((x - spline.fXmin)/spline.fDelta);\n // Correction for rounding errors\n if (x < spline.fPoly[klow].fX)\n klow = Math.max(klow-1, 0);\n else if (klow < khig)\n if (x > spline.fPoly[klow+1].fX) ++klow;\n } else {\n // Non equidistant knots, binary search\n while (khig - klow > 1) {\n const khalf = Math.round((klow + khig)/2);\n if (x > spline.fPoly[khalf].fX) klow = khalf;\n else khig = khalf;\n }\n }\n return klow;\n }\n\n /** @summary Create histogram for axes drawing\n * @private */\n createDummyHisto() {\n const spline = this.getObject();\n let xmin = 0, xmax = 1, ymin = 0, ymax = 1;\n\n if (spline.fPoly) {\n xmin = xmax = spline.fPoly[0].fX;\n ymin = ymax = spline.fPoly[0].fY;\n\n spline.fPoly.forEach(knot => {\n xmin = Math.min(knot.fX, xmin);\n xmax = Math.max(knot.fX, xmax);\n ymin = Math.min(knot.fY, ymin);\n ymax = Math.max(knot.fY, ymax);\n });\n\n if (ymax > 0) ymax *= (1 + gStyle.fHistTopMargin);\n if (ymin < 0) ymin *= (1 + gStyle.fHistTopMargin);\n }\n\n const histo = createHistogram(clTH1I, 10);\n\n histo.fName = spline.fName + '_hist';\n histo.fTitle = spline.fTitle;\n histo.fBits |= kNoStats;\n\n histo.fXaxis.fXmin = xmin;\n histo.fXaxis.fXmax = xmax;\n histo.fYaxis.fXmin = ymin;\n histo.fYaxis.fXmax = ymax;\n\n return histo;\n }\n\n /** @summary Process tooltip event\n * @private */\n processTooltipEvent(pnt) {\n const spline = this.getObject(),\n funcs = this.getFramePainter()?.getGrFuncs(this.options.second_x, this.options.second_y);\n let cleanup = false, xx, yy, knot = null, indx = 0;\n\n if ((pnt === null) || !spline || !funcs)\n cleanup = true;\n else {\n xx = funcs.revertAxis('x', pnt.x);\n indx = this.findX(xx);\n knot = spline.fPoly[indx];\n yy = this.eval(knot, xx);\n\n if ((indx < spline.fN-1) && (Math.abs(spline.fPoly[indx+1].fX-xx) < Math.abs(xx-knot.fX))) knot = spline.fPoly[++indx];\n\n if (Math.abs(funcs.grx(knot.fX) - pnt.x) < 0.5*this.knot_size) {\n xx = knot.fX; yy = knot.fY;\n } else {\n knot = null;\n if ((xx < spline.fXmin) || (xx > spline.fXmax)) cleanup = true;\n }\n }\n\n let gbin = this.draw_g?.selectChild('.tooltip_bin');\n const radius = this.lineatt.width + 3;\n\n if (cleanup || !this.draw_g) {\n gbin?.remove();\n return null;\n }\n\n if (gbin.empty()) {\n gbin = this.draw_g.append('svg:circle')\n .attr('class', 'tooltip_bin')\n .style('pointer-events', 'none')\n .attr('r', radius)\n .style('fill', 'none')\n .call(this.lineatt.func);\n }\n\n const res = { name: this.getObject().fName,\n title: this.getObject().fTitle,\n x: funcs.grx(xx),\n y: funcs.gry(yy),\n color1: this.lineatt.color,\n lines: [],\n exact: (knot !== null) || (Math.abs(funcs.gry(yy) - pnt.y) < radius) };\n\n res.changed = gbin.property('current_xx') !== xx;\n res.menu = res.exact;\n res.menu_dist = Math.sqrt((res.x-pnt.x)**2 + (res.y-pnt.y)**2);\n\n if (res.changed) {\n gbin.attr('cx', Math.round(res.x))\n .attr('cy', Math.round(res.y))\n .property('current_xx', xx);\n }\n\n const name = this.getObjectHint();\n if (name) res.lines.push(name);\n res.lines.push(`x = ${funcs.axisAsText('x', xx)}`,\n `y = ${funcs.axisAsText('y', yy)}`);\n if (knot !== null) {\n res.lines.push(`knot = ${indx}`,\n `B = ${floatToString(knot.fB, gStyle.fStatFormat)}`,\n `C = ${floatToString(knot.fC, gStyle.fStatFormat)}`,\n `D = ${floatToString(knot.fD, gStyle.fStatFormat)}`);\n if ((knot.fE !== undefined) && (knot.fF !== undefined)) {\n res.lines.push(`E = ${floatToString(knot.fE, gStyle.fStatFormat)}`,\n `F = ${floatToString(knot.fF, gStyle.fStatFormat)}`);\n }\n }\n\n return res;\n }\n\n /** @summary Redraw object\n * @private */\n redraw() {\n const spline = this.getObject(),\n pmain = this.getFramePainter(),\n funcs = pmain.getGrFuncs(this.options.second_x, this.options.second_y),\n w = pmain.getFrameWidth(),\n h = pmain.getFrameHeight();\n\n this.createG(true);\n\n this.knot_size = 5; // used in tooltip handling\n\n this.createAttLine({ attr: spline });\n\n if (this.options.Line || this.options.Curve) {\n const npx = Math.max(10, spline.fNpx), bins = []; // index of current knot\n let xmin = Math.max(pmain.scale_xmin, spline.fXmin),\n xmax = Math.min(pmain.scale_xmax, spline.fXmax),\n indx = this.findX(xmin);\n\n if (pmain.logx) {\n xmin = Math.log(xmin);\n xmax = Math.log(xmax);\n }\n\n for (let n = 0; n < npx; ++n) {\n let x = xmin + (xmax-xmin)/npx*(n-1);\n if (pmain.logx) x = Math.exp(x);\n\n while ((indx < spline.fNp-1) && (x > spline.fPoly[indx+1].fX)) ++indx;\n\n const y = this.eval(spline.fPoly[indx], x);\n\n bins.push({ x, y, grx: funcs.grx(x), gry: funcs.gry(y) });\n }\n\n this.draw_g.append('svg:path')\n .attr('class', 'line')\n .attr('d', buildSvgCurve(bins))\n .style('fill', 'none')\n .call(this.lineatt.func);\n }\n\n if (this.options.Mark) {\n // for tooltips use markers only if nodes where not created\n let path = '';\n\n this.createAttMarker({ attr: spline });\n\n this.markeratt.resetPos();\n\n this.knot_size = this.markeratt.getFullSize();\n\n for (let n = 0; n < spline.fPoly.length; n++) {\n const knot = spline.fPoly[n],\n grx = funcs.grx(knot.fX);\n if ((grx > -this.knot_size) && (grx < w + this.knot_size)) {\n const gry = funcs.gry(knot.fY);\n if ((gry > -this.knot_size) && (gry < h + this.knot_size))\n path += this.markeratt.create(grx, gry);\n }\n }\n\n if (path) {\n this.draw_g.append('svg:path')\n .attr('d', path)\n .call(this.markeratt.func);\n }\n }\n }\n\n /** @summary Checks if it makes sense to zoom inside specified axis range */\n canZoomInside(axis /* , min, max */) {\n if (axis !== 'x') return false;\n\n // spline can always be calculated and therefore one can zoom inside\n return !!this.getObject();\n }\n\n /** @summary Decode options for TSpline drawing */\n decodeOptions(opt) {\n const d = new DrawOptions(opt);\n\n if (!this.options) this.options = {};\n\n const has_main = !!this.getMainPainter();\n\n Object.assign(this.options, {\n Same: d.check('SAME'),\n Line: d.check('L'),\n Curve: d.check('C'),\n Mark: d.check('P'),\n Hopt: '',\n second_x: false,\n second_y: false\n });\n\n if (!this.options.Line && !this.options.Curve && !this.options.Mark)\n this.options.Curve = true;\n\n if (d.check('X+')) { this.options.Hopt += 'X+'; this.options.second_x = has_main; }\n if (d.check('Y+')) { this.options.Hopt += 'Y+'; this.options.second_y = has_main; }\n\n this.storeDrawOpt(opt);\n }\n\n /** @summary Draw TSpline */\n static async draw(dom, spline, opt) {\n const painter = new TSplinePainter(dom, spline);\n painter.decodeOptions(opt);\n\n const no_main = !painter.getMainPainter();\n let promise = Promise.resolve();\n if (no_main || painter.options.second_x || painter.options.second_y) {\n if (painter.options.Same && no_main) {\n console.warn('TSpline painter requires histogram to be drawn');\n return null;\n }\n const histo = painter.createDummyHisto();\n promise = TH1Painter.draw(dom, histo, painter.options.Hopt);\n }\n\n return promise.then(() => {\n painter.addToPadPrimitives();\n painter.redraw();\n return painter;\n });\n }\n\n} // class TSplinePainter\n\nexport { TSplinePainter };\n"],"x_google_ignoreList":[0]} \ No newline at end of file +{"version":3,"file":"246.00ef7c008b2c7680.js","mappings":"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","names":["TSplinePainter","ObjectPainter","updateObject","obj","opt","spline","this","getObject","_typename","Object","assign","undefined","decodeOptions","eval","knot","x","dx","fX","fY","fB","fC","fD","fE","fF","findX","klow","khig","fNp","fXmin","fXmax","fKstep","Math","round","fDelta","fPoly","max","khalf","createDummyHisto","xmin","xmax","ymin","ymax","forEach","min","gStyle","fHistTopMargin","histo","createHistogram","clTH1I","fName","fTitle","fBits","kNoStats","fXaxis","fYaxis","processTooltipEvent","pnt","funcs","getFramePainter","getGrFuncs","options","second_x","second_y","xx","yy","cleanup","indx","revertAxis","fN","abs","grx","knot_size","gbin","draw_g","selectChild","radius","lineatt","width","remove","empty","append","attr","style","call","func","res","name","title","y","gry","color1","color","lines","exact","changed","property","menu","menu_dist","sqrt","getObjectHint","push","axisAsText","floatToString","fStatFormat","redraw","pmain","w","getFrameWidth","h","getFrameHeight","createG","createAttLine","Line","Curve","npx","fNpx","bins","scale_xmin","scale_xmax","logx","log","n","exp","buildSvgCurve","Mark","path","createAttMarker","markeratt","resetPos","getFullSize","length","create","canZoomInside","axis","d","DrawOptions","has_main","getMainPainter","Same","check","Hopt","storeDrawOpt","draw","dom","_asyncToGenerator","painter","no_main","promise","Promise","resolve","console","warn","TH1Painter","then","addToPadPrimitives"],"ignoreList":[],"sourceRoot":"webpack:///","sources":["../node_modules/jsroot/modules/draw/TSplinePainter.mjs"],"sourcesContent":["import { gStyle, clTH1I, kNoStats, createHistogram } from '../core.mjs';\nimport { DrawOptions, floatToString, buildSvgCurve } from '../base/BasePainter.mjs';\nimport { ObjectPainter } from '../base/ObjectPainter.mjs';\nimport { TH1Painter } from '../hist/TH1Painter.mjs';\n\n\n/**\n * @summary Painter for TSpline objects.\n *\n * @private\n */\n\nclass TSplinePainter extends ObjectPainter {\n\n /** @summary Update TSpline object\n * @private */\n updateObject(obj, opt) {\n const spline = this.getObject();\n\n if (spline._typename !== obj._typename) return false;\n\n if (spline !== obj) Object.assign(spline, obj);\n\n if (opt !== undefined) this.decodeOptions(opt);\n\n return true;\n }\n\n /** @summary Evaluate spline at given position\n * @private */\n eval(knot, x) {\n const dx = x - knot.fX;\n\n if (knot._typename === 'TSplinePoly3')\n return knot.fY + dx*(knot.fB + dx*(knot.fC + dx*knot.fD));\n\n if (knot._typename === 'TSplinePoly5')\n return knot.fY + dx*(knot.fB + dx*(knot.fC + dx*(knot.fD + dx*(knot.fE + dx*knot.fF))));\n\n return knot.fY + dx;\n }\n\n /** @summary Find idex for x value\n * @private */\n findX(x) {\n const spline = this.getObject();\n let klow = 0, khig = spline.fNp - 1;\n\n if (x <= spline.fXmin) return 0;\n if (x >= spline.fXmax) return khig;\n\n if (spline.fKstep) {\n // Equidistant knots, use histogramming\n klow = Math.round((x - spline.fXmin)/spline.fDelta);\n // Correction for rounding errors\n if (x < spline.fPoly[klow].fX)\n klow = Math.max(klow-1, 0);\n else if (klow < khig)\n if (x > spline.fPoly[klow+1].fX) ++klow;\n } else {\n // Non equidistant knots, binary search\n while (khig - klow > 1) {\n const khalf = Math.round((klow + khig)/2);\n if (x > spline.fPoly[khalf].fX) klow = khalf;\n else khig = khalf;\n }\n }\n return klow;\n }\n\n /** @summary Create histogram for axes drawing\n * @private */\n createDummyHisto() {\n const spline = this.getObject();\n let xmin = 0, xmax = 1, ymin = 0, ymax = 1;\n\n if (spline.fPoly) {\n xmin = xmax = spline.fPoly[0].fX;\n ymin = ymax = spline.fPoly[0].fY;\n\n spline.fPoly.forEach(knot => {\n xmin = Math.min(knot.fX, xmin);\n xmax = Math.max(knot.fX, xmax);\n ymin = Math.min(knot.fY, ymin);\n ymax = Math.max(knot.fY, ymax);\n });\n\n if (ymax > 0) ymax *= (1 + gStyle.fHistTopMargin);\n if (ymin < 0) ymin *= (1 + gStyle.fHistTopMargin);\n }\n\n const histo = createHistogram(clTH1I, 10);\n\n histo.fName = spline.fName + '_hist';\n histo.fTitle = spline.fTitle;\n histo.fBits |= kNoStats;\n\n histo.fXaxis.fXmin = xmin;\n histo.fXaxis.fXmax = xmax;\n histo.fYaxis.fXmin = ymin;\n histo.fYaxis.fXmax = ymax;\n\n return histo;\n }\n\n /** @summary Process tooltip event\n * @private */\n processTooltipEvent(pnt) {\n const spline = this.getObject(),\n funcs = this.getFramePainter()?.getGrFuncs(this.options.second_x, this.options.second_y);\n let cleanup = false, xx, yy, knot = null, indx = 0;\n\n if ((pnt === null) || !spline || !funcs)\n cleanup = true;\n else {\n xx = funcs.revertAxis('x', pnt.x);\n indx = this.findX(xx);\n knot = spline.fPoly[indx];\n yy = this.eval(knot, xx);\n\n if ((indx < spline.fN-1) && (Math.abs(spline.fPoly[indx+1].fX-xx) < Math.abs(xx-knot.fX))) knot = spline.fPoly[++indx];\n\n if (Math.abs(funcs.grx(knot.fX) - pnt.x) < 0.5*this.knot_size) {\n xx = knot.fX; yy = knot.fY;\n } else {\n knot = null;\n if ((xx < spline.fXmin) || (xx > spline.fXmax)) cleanup = true;\n }\n }\n\n let gbin = this.draw_g?.selectChild('.tooltip_bin');\n const radius = this.lineatt.width + 3;\n\n if (cleanup || !this.draw_g) {\n gbin?.remove();\n return null;\n }\n\n if (gbin.empty()) {\n gbin = this.draw_g.append('svg:circle')\n .attr('class', 'tooltip_bin')\n .style('pointer-events', 'none')\n .attr('r', radius)\n .style('fill', 'none')\n .call(this.lineatt.func);\n }\n\n const res = { name: this.getObject().fName,\n title: this.getObject().fTitle,\n x: funcs.grx(xx),\n y: funcs.gry(yy),\n color1: this.lineatt.color,\n lines: [],\n exact: (knot !== null) || (Math.abs(funcs.gry(yy) - pnt.y) < radius) };\n\n res.changed = gbin.property('current_xx') !== xx;\n res.menu = res.exact;\n res.menu_dist = Math.sqrt((res.x-pnt.x)**2 + (res.y-pnt.y)**2);\n\n if (res.changed) {\n gbin.attr('cx', Math.round(res.x))\n .attr('cy', Math.round(res.y))\n .property('current_xx', xx);\n }\n\n const name = this.getObjectHint();\n if (name) res.lines.push(name);\n res.lines.push(`x = ${funcs.axisAsText('x', xx)}`,\n `y = ${funcs.axisAsText('y', yy)}`);\n if (knot !== null) {\n res.lines.push(`knot = ${indx}`,\n `B = ${floatToString(knot.fB, gStyle.fStatFormat)}`,\n `C = ${floatToString(knot.fC, gStyle.fStatFormat)}`,\n `D = ${floatToString(knot.fD, gStyle.fStatFormat)}`);\n if ((knot.fE !== undefined) && (knot.fF !== undefined)) {\n res.lines.push(`E = ${floatToString(knot.fE, gStyle.fStatFormat)}`,\n `F = ${floatToString(knot.fF, gStyle.fStatFormat)}`);\n }\n }\n\n return res;\n }\n\n /** @summary Redraw object\n * @private */\n redraw() {\n const spline = this.getObject(),\n pmain = this.getFramePainter(),\n funcs = pmain.getGrFuncs(this.options.second_x, this.options.second_y),\n w = pmain.getFrameWidth(),\n h = pmain.getFrameHeight();\n\n this.createG(true);\n\n this.knot_size = 5; // used in tooltip handling\n\n this.createAttLine({ attr: spline });\n\n if (this.options.Line || this.options.Curve) {\n const npx = Math.max(10, spline.fNpx), bins = []; // index of current knot\n let xmin = Math.max(pmain.scale_xmin, spline.fXmin),\n xmax = Math.min(pmain.scale_xmax, spline.fXmax),\n indx = this.findX(xmin);\n\n if (pmain.logx) {\n xmin = Math.log(xmin);\n xmax = Math.log(xmax);\n }\n\n for (let n = 0; n < npx; ++n) {\n let x = xmin + (xmax-xmin)/npx*(n-1);\n if (pmain.logx) x = Math.exp(x);\n\n while ((indx < spline.fNp-1) && (x > spline.fPoly[indx+1].fX)) ++indx;\n\n const y = this.eval(spline.fPoly[indx], x);\n\n bins.push({ x, y, grx: funcs.grx(x), gry: funcs.gry(y) });\n }\n\n this.draw_g.append('svg:path')\n .attr('class', 'line')\n .attr('d', buildSvgCurve(bins))\n .style('fill', 'none')\n .call(this.lineatt.func);\n }\n\n if (this.options.Mark) {\n // for tooltips use markers only if nodes where not created\n let path = '';\n\n this.createAttMarker({ attr: spline });\n\n this.markeratt.resetPos();\n\n this.knot_size = this.markeratt.getFullSize();\n\n for (let n = 0; n < spline.fPoly.length; n++) {\n const knot = spline.fPoly[n],\n grx = funcs.grx(knot.fX);\n if ((grx > -this.knot_size) && (grx < w + this.knot_size)) {\n const gry = funcs.gry(knot.fY);\n if ((gry > -this.knot_size) && (gry < h + this.knot_size))\n path += this.markeratt.create(grx, gry);\n }\n }\n\n if (path) {\n this.draw_g.append('svg:path')\n .attr('d', path)\n .call(this.markeratt.func);\n }\n }\n }\n\n /** @summary Checks if it makes sense to zoom inside specified axis range */\n canZoomInside(axis /* , min, max */) {\n if (axis !== 'x') return false;\n\n // spline can always be calculated and therefore one can zoom inside\n return !!this.getObject();\n }\n\n /** @summary Decode options for TSpline drawing */\n decodeOptions(opt) {\n const d = new DrawOptions(opt);\n\n if (!this.options) this.options = {};\n\n const has_main = !!this.getMainPainter();\n\n Object.assign(this.options, {\n Same: d.check('SAME'),\n Line: d.check('L'),\n Curve: d.check('C'),\n Mark: d.check('P'),\n Hopt: '',\n second_x: false,\n second_y: false\n });\n\n if (!this.options.Line && !this.options.Curve && !this.options.Mark)\n this.options.Curve = true;\n\n if (d.check('X+')) { this.options.Hopt += 'X+'; this.options.second_x = has_main; }\n if (d.check('Y+')) { this.options.Hopt += 'Y+'; this.options.second_y = has_main; }\n\n this.storeDrawOpt(opt);\n }\n\n /** @summary Draw TSpline */\n static async draw(dom, spline, opt) {\n const painter = new TSplinePainter(dom, spline);\n painter.decodeOptions(opt);\n\n const no_main = !painter.getMainPainter();\n let promise = Promise.resolve();\n if (no_main || painter.options.second_x || painter.options.second_y) {\n if (painter.options.Same && no_main) {\n console.warn('TSpline painter requires histogram to be drawn');\n return null;\n }\n const histo = painter.createDummyHisto();\n promise = TH1Painter.draw(dom, histo, painter.options.Hopt);\n }\n\n return promise.then(() => {\n painter.addToPadPrimitives();\n painter.redraw();\n return painter;\n });\n }\n\n} // class TSplinePainter\n\nexport { TSplinePainter };\n"],"x_google_ignoreList":[0]} \ No newline at end of file diff --git a/docs/289.1b82cc7eb8ab9cba.js b/docs/289.1b82cc7eb8ab9cba.js new file mode 100644 index 00000000..988afb12 --- /dev/null +++ b/docs/289.1b82cc7eb8ab9cba.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkphoenix_app=self.webpackChunkphoenix_app||[]).push([[289],{4289:(d,_,o)=>{o.r(_),o.d(_,{drawPolyLine3D:()=>y,drawPolyMarker3D:()=>P});var l=o(4882),m=o(8872),f=o(3847),c=o(2454),D=o(643);function g(n){const t=n.getFramePainter();if(!t?.mode3d||!n.getObject())return null;if(t?.toplevel)return t;const e=n.getMainPainter();return e&&!(0,m.isFunc)(e.drawExtras)?null:(e?Promise.resolve(e):(0,c.drawDummy3DGeom)(n)).then(s=>{const i=n.getPadPainter();return i&&(i._disable_dragging=!0),s._dummy&&(0,m.isFunc)(n.get3DBox)&&s.extendCustomBoundingBox(n.get3DBox()),s.drawExtras(n.getObject(),"",!0,!0)})}function h(){const n=this.getObject();if(!n?.fP.length)return null;const t={min:{x:0,y:0,z:0},max:{x:0,y:0,z:0}};for(let e=0;e {\n const pp = painter.getPadPainter();\n if (pp) pp._disable_dragging = true;\n\n if (geop._dummy && isFunc(painter.get3DBox))\n geop.extendCustomBoundingBox(painter.get3DBox());\n return geop.drawExtras(painter.getObject(), '', true, true);\n });\n}\n\n/** @summary Function to extract 3DBox for poly marker and line\n * @private */\nfunction get3DBox() {\n const obj = this.getObject();\n if (!obj?.fP.length)\n return null;\n const box = { min: { x: 0, y: 0, z: 0 }, max: { x: 0, y: 0, z: 0 } };\n\n for (let k = 0; k < obj.fP.length; k += 3) {\n const x = obj.fP[k],\n y = obj.fP[k + 1],\n z = obj.fP[k + 2];\n if (k === 0) {\n box.min.x = box.max.x = x;\n box.min.y = box.max.y = y;\n box.min.z = box.max.z = z;\n } else {\n box.min.x = Math.min(x, box.min.x);\n box.max.x = Math.max(x, box.max.x);\n box.min.y = Math.min(y, box.min.y);\n box.max.y = Math.max(y, box.max.y);\n box.min.z = Math.min(z, box.min.z);\n box.max.z = Math.max(z, box.max.z);\n }\n }\n\n return box;\n}\n\n\n/** @summary direct draw function for TPolyMarker3D object (optionally with geo painter)\n * @private */\nasync function drawPolyMarker3D() {\n this.get3DBox = get3DBox;\n\n const fp = before3DDraw(this);\n\n if (!isObject(fp) || !fp.grx || !fp.gry || !fp.grz)\n return fp;\n\n this.$fp = fp;\n\n return drawPolyMarker3Dplain.bind(this)();\n}\n\n/** @summary Direct draw function for TPolyLine3D object\n * @desc Takes into account dashed properties\n * @private */\nasync function drawPolyLine3D() {\n this.get3DBox = get3DBox;\n\n const line = this.getObject(),\n fp = before3DDraw(this);\n\n if (!isObject(fp) || !fp.grx || !fp.gry || !fp.grz)\n return fp;\n\n const limit = 3*line.fN, p = line.fP, pnts = [];\n\n for (let n = 3; n < limit; n += 3) {\n pnts.push(fp.grx(p[n-3]), fp.gry(p[n-2]), fp.grz(p[n-1]),\n fp.grx(p[n]), fp.gry(p[n+1]), fp.grz(p[n+2]));\n }\n\n const lines = createLineSegments(pnts, create3DLineMaterial(this, line));\n\n fp.add3DMesh(lines, this, true);\n\n fp.render3D(100);\n\n return true;\n}\n\nexport { drawPolyMarker3D, drawPolyLine3D };\n"],"x_google_ignoreList":[0]} \ No newline at end of file +{"version":3,"file":"289.1b82cc7eb8ab9cba.js","mappings":"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","names":["before3DDraw","painter","fp","getFramePainter","mode3d","getObject","toplevel","main","getMainPainter","isFunc","drawExtras","Promise","resolve","drawDummy3DGeom","then","geop","pp","getPadPainter","_disable_dragging","_dummy","get3DBox","extendCustomBoundingBox","obj","this","fP","length","box","min","x","y","z","max","k","Math","drawPolyMarker3D","_drawPolyMarker3D","apply","arguments","_asyncToGenerator","isObject","grx","gry","grz","$fp","drawPolyMarker3Dplain","bind","drawPolyLine3D","_drawPolyLine3D","line","limit","fN","p","pnts","n","push","lines","createLineSegments","create3DLineMaterial","add3DMesh","render3D"],"ignoreList":[],"sourceRoot":"webpack:///","sources":["../node_modules/jsroot/modules/draw/draw3d.mjs"],"sourcesContent":["import { isObject, isFunc } from '../core.mjs';\nimport { createLineSegments, create3DLineMaterial } from '../base/base3d.mjs';\nimport { drawDummy3DGeom } from '../geom/TGeoPainter.mjs';\nimport { drawPolyMarker3D as drawPolyMarker3Dplain } from './TPolyMarker3D.mjs';\n\n\n/** @summary Prepare frame painter for 3D drawing\n * @private */\nfunction before3DDraw(painter) {\n const fp = painter.getFramePainter();\n\n if (!fp?.mode3d || !painter.getObject())\n return null;\n\n if (fp?.toplevel)\n return fp;\n\n const main = painter.getMainPainter();\n\n if (main && !isFunc(main.drawExtras))\n return null;\n\n const pr = main ? Promise.resolve(main) : drawDummy3DGeom(painter);\n\n return pr.then(geop => {\n const pp = painter.getPadPainter();\n if (pp) pp._disable_dragging = true;\n\n if (geop._dummy && isFunc(painter.get3DBox))\n geop.extendCustomBoundingBox(painter.get3DBox());\n return geop.drawExtras(painter.getObject(), '', true, true);\n });\n}\n\n/** @summary Function to extract 3DBox for poly marker and line\n * @private */\nfunction get3DBox() {\n const obj = this.getObject();\n if (!obj?.fP.length)\n return null;\n const box = { min: { x: 0, y: 0, z: 0 }, max: { x: 0, y: 0, z: 0 } };\n\n for (let k = 0; k < obj.fP.length; k += 3) {\n const x = obj.fP[k],\n y = obj.fP[k + 1],\n z = obj.fP[k + 2];\n if (k === 0) {\n box.min.x = box.max.x = x;\n box.min.y = box.max.y = y;\n box.min.z = box.max.z = z;\n } else {\n box.min.x = Math.min(x, box.min.x);\n box.max.x = Math.max(x, box.max.x);\n box.min.y = Math.min(y, box.min.y);\n box.max.y = Math.max(y, box.max.y);\n box.min.z = Math.min(z, box.min.z);\n box.max.z = Math.max(z, box.max.z);\n }\n }\n\n return box;\n}\n\n\n/** @summary direct draw function for TPolyMarker3D object (optionally with geo painter)\n * @private */\nasync function drawPolyMarker3D() {\n this.get3DBox = get3DBox;\n\n const fp = before3DDraw(this);\n\n if (!isObject(fp) || !fp.grx || !fp.gry || !fp.grz)\n return fp;\n\n this.$fp = fp;\n\n return drawPolyMarker3Dplain.bind(this)();\n}\n\n/** @summary Direct draw function for TPolyLine3D object\n * @desc Takes into account dashed properties\n * @private */\nasync function drawPolyLine3D() {\n this.get3DBox = get3DBox;\n\n const line = this.getObject(),\n fp = before3DDraw(this);\n\n if (!isObject(fp) || !fp.grx || !fp.gry || !fp.grz)\n return fp;\n\n const limit = 3*line.fN, p = line.fP, pnts = [];\n\n for (let n = 3; n < limit; n += 3) {\n pnts.push(fp.grx(p[n-3]), fp.gry(p[n-2]), fp.grz(p[n-1]),\n fp.grx(p[n]), fp.gry(p[n+1]), fp.grz(p[n+2]));\n }\n\n const lines = createLineSegments(pnts, create3DLineMaterial(this, line));\n\n fp.add3DMesh(lines, this, true);\n\n fp.render3D(100);\n\n return true;\n}\n\nexport { drawPolyMarker3D, drawPolyLine3D };\n"],"x_google_ignoreList":[0]} \ No newline at end of file diff --git a/docs/289.450227db0063687b.js b/docs/289.450227db0063687b.js deleted file mode 100644 index 11c71244..00000000 --- a/docs/289.450227db0063687b.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkphoenix_app=self.webpackChunkphoenix_app||[]).push([[289],{4289:(y,_,o)=>{o.r(_),o.d(_,{drawPolyLine3D:()=>d,drawPolyMarker3D:()=>c});var l=o(4882),m=o(8872),h=o(3847),D=o(2454),P=o(643);function f(n){const t=n.getFramePainter();if(!t?.mode3d||!n.getObject())return null;if(t?.toplevel)return t;const r=n.getMainPainter();return r&&!(0,m.isFunc)(r.drawExtras)?null:(r?Promise.resolve(r):(0,D.drawDummy3DGeom)(n)).then(s=>{const i=n.getPadPainter();return i&&(i._disable_dragging=!0),s._dummy&&(0,m.isFunc)(n.get3DBox)&&s.extendCustomBoundingBox(n.get3DBox()),s.drawExtras(n.getObject(),"",!0,!0)})}function g(){const n=this.getObject();if(!n?.fP.length)return null;const t={min:{x:0,y:0,z:0},max:{x:0,y:0,z:0}};for(let r=0;r{a.r(r),a.d(r,{TArrowPainter:()=>d});var o=a(4882),l=a(801),f=a(4483);class d extends l.TLinePainter{rotate(t,i,s){let e=this.wsize*Math.cos(t),h=this.wsize*Math.sin(t),n="";return void 0!==i&&void 0!==s?n=`M${Math.round(i-e)},${Math.round(s-h)}`:(e=-e,h=-h),n+=`l${Math.round(e)},${Math.round(h)}`,i&&void 0===s&&(n+="z"),n}createPath(){const t=Math.atan2(this.y2-this.y1,this.x2-this.x1),i=this.wsize*Math.cos(this.angle2),s=i*Math.cos(t),e=i*Math.sin(t);let h="";return this.beg&&(h+=this.rotate(t-Math.PI-this.angle2,this.x1,this.y1)+this.rotate(t-Math.PI+this.angle2,this.beg>10)),this.mid%10==2&&(h+=this.rotate(t-Math.PI-this.angle2,(this.x1+this.x2-s)/2,(this.y1+this.y2-e)/2)+this.rotate(t-Math.PI+this.angle2,this.mid>10)),this.mid%10==1&&(h+=this.rotate(t-this.angle2,(this.x1+this.x2+s)/2,(this.y1+this.y2+e)/2)+this.rotate(t+this.angle2,this.mid>10)),this.end&&(h+=this.rotate(t-this.angle2,this.x2,this.y2)+this.rotate(t+this.angle2,this.end>10)),`M${Math.round(this.x1+(this.beg>10?s:0))},${Math.round(this.y1+(this.beg>10?e:0))}L${Math.round(this.x2-(this.end>10?s:0))},${Math.round(this.y2-(this.end>10?e:0))}`+h}prepareDraw(){super.prepareDraw();const t=this.getObject(),i=t.fOption,s=this.getPadPainter().getPadRect();this.wsize=Math.max(3,Math.round(Math.max(s.width,s.height)*t.fArrowSize*.8)),this.angle2=t.fAngle/2/180*Math.PI,this.beg=this.mid=this.end=0,0===i.indexOf("<")&&(this.beg=0===i.indexOf("<|")?12:2),i.indexOf("->-")>=0?this.mid=1:i.indexOf("-|>-")>=0?this.mid=11:i.indexOf("-<-")>=0?this.mid=2:i.indexOf("-<|-")>=0&&(this.mid=12);const e=i.lastIndexOf(">"),h=i.lastIndexOf("|>"),n=i.length;e>=0&&e===n-1&&(this.end=h>=0&&h===n-2?11:1),this.createAttFill({attr:t})}addExtras(t){this.beg>10||this.end>10?t.call(this.fillatt.func):t.style("fill","none")}static draw(t,i,s){return(0,o.A)(function*(){const e=new d(t,i,s);return(0,f.ensureTCanvas)(e,!1).then(()=>e.redraw())})()}}}}]); -//# sourceMappingURL=302.28e124cc9f714a2c.js.map \ No newline at end of file diff --git a/docs/302.847e2acc57ac5da8.js b/docs/302.847e2acc57ac5da8.js new file mode 100644 index 00000000..ae32c240 --- /dev/null +++ b/docs/302.847e2acc57ac5da8.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkphoenix_app=self.webpackChunkphoenix_app||[]).push([[302],{3302:(M,r,n)=>{n.r(r),n.d(r,{TArrowPainter:()=>d});var o=n(4882),l=n(801),f=n(4483);class d extends l.TLinePainter{rotate(t,i,e){let s=this.wsize*Math.cos(t),h=this.wsize*Math.sin(t),a="";return void 0!==i&&void 0!==e?a=`M${Math.round(i-s)},${Math.round(e-h)}`:(s=-s,h=-h),a+=`l${Math.round(s)},${Math.round(h)}`,i&&void 0===e&&(a+="z"),a}createPath(){const t=Math.atan2(this.y2-this.y1,this.x2-this.x1),i=this.wsize*Math.cos(this.angle2),e=i*Math.cos(t),s=i*Math.sin(t);let h="";return this.beg&&(h+=this.rotate(t-Math.PI-this.angle2,this.x1,this.y1)+this.rotate(t-Math.PI+this.angle2,this.beg>10)),this.mid%10==2&&(h+=this.rotate(t-Math.PI-this.angle2,(this.x1+this.x2-e)/2,(this.y1+this.y2-s)/2)+this.rotate(t-Math.PI+this.angle2,this.mid>10)),this.mid%10==1&&(h+=this.rotate(t-this.angle2,(this.x1+this.x2+e)/2,(this.y1+this.y2+s)/2)+this.rotate(t+this.angle2,this.mid>10)),this.end&&(h+=this.rotate(t-this.angle2,this.x2,this.y2)+this.rotate(t+this.angle2,this.end>10)),`M${Math.round(this.x1+(this.beg>10?e:0))},${Math.round(this.y1+(this.beg>10?s:0))}L${Math.round(this.x2-(this.end>10?e:0))},${Math.round(this.y2-(this.end>10?s:0))}`+h}prepareDraw(){super.prepareDraw();const t=this.getObject(),i=t.fOption,e=this.getPadPainter().getPadRect();this.wsize=Math.max(3,Math.round(Math.max(e.width,e.height)*t.fArrowSize*.8)),this.angle2=t.fAngle/2/180*Math.PI,this.beg=this.mid=this.end=0,0===i.indexOf("<")&&(this.beg=0===i.indexOf("<|")?12:2),i.indexOf("->-")>=0?this.mid=1:i.indexOf("-|>-")>=0?this.mid=11:i.indexOf("-<-")>=0?this.mid=2:i.indexOf("-<|-")>=0&&(this.mid=12);const s=i.lastIndexOf(">"),h=i.lastIndexOf("|>"),a=i.length;s>=0&&s===a-1&&(this.end=h>=0&&h===a-2?11:1),this.createAttFill({attr:t})}addExtras(t){this.beg>10||this.end>10?t.call(this.fillatt.func):t.style("fill","none")}static draw(t,i,e){return(0,o.A)(function*(){const s=new d(t,i,e);return(0,f.ensureTCanvas)(s,!1).then(()=>s.redraw())})()}}}}]); +//# sourceMappingURL=302.847e2acc57ac5da8.js.map \ No newline at end of file diff --git a/docs/302.28e124cc9f714a2c.js.map b/docs/302.847e2acc57ac5da8.js.map similarity index 99% rename from docs/302.28e124cc9f714a2c.js.map rename to docs/302.847e2acc57ac5da8.js.map index aea51c87..cbe24f35 100644 --- a/docs/302.28e124cc9f714a2c.js.map +++ b/docs/302.847e2acc57ac5da8.js.map @@ -1 +1 @@ -{"version":3,"file":"302.28e124cc9f714a2c.js","mappings":"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","names":["TArrowPainter","TLinePainter","rotate","angle","x0","y0","dx","this","wsize","Math","cos","dy","sin","res","undefined","round","createPath","atan2","y2","y1","x2","x1","dlen","angle2","path","beg","PI","mid","end","prepareDraw","super","arrow","getObject","oo","fOption","rect","getPadPainter","getPadRect","max","width","height","fArrowSize","fAngle","indexOf","p1","lastIndexOf","p2","len","length","createAttFill","attr","addExtras","elem","call","fillatt","func","style","draw","dom","obj","opt","_asyncToGenerator","painter","ensureTCanvas","then","redraw"],"ignoreList":[],"sourceRoot":"webpack:///","sources":["../node_modules/jsroot/modules/draw/TArrowPainter.mjs"],"sourcesContent":["import { TLinePainter } from './TLinePainter.mjs';\nimport { ensureTCanvas } from '../gpad/TCanvasPainter.mjs';\n\n\n/** @summary Drawing TArrow\n * @private */\nclass TArrowPainter extends TLinePainter {\n\n /** @summary Create line segment with rotation */\n rotate(angle, x0, y0) {\n let dx = this.wsize * Math.cos(angle), dy = this.wsize * Math.sin(angle), res = '';\n if ((x0 !== undefined) && (y0 !== undefined))\n res = `M${Math.round(x0-dx)},${Math.round(y0-dy)}`;\n else {\n dx = -dx; dy = -dy;\n }\n res += `l${Math.round(dx)},${Math.round(dy)}`;\n if (x0 && (y0 === undefined)) res += 'z';\n return res;\n }\n\n /** @summary Create SVG path for the arrow */\n createPath() {\n const angle = Math.atan2(this.y2 - this.y1, this.x2 - this.x1),\n dlen = this.wsize * Math.cos(this.angle2),\n dx = dlen*Math.cos(angle), dy = dlen*Math.sin(angle);\n\n let path = '';\n if (this.beg) {\n path += this.rotate(angle - Math.PI - this.angle2, this.x1, this.y1) +\n this.rotate(angle - Math.PI + this.angle2, this.beg > 10);\n }\n\n if (this.mid % 10 === 2) {\n path += this.rotate(angle - Math.PI - this.angle2, (this.x1+this.x2-dx)/2, (this.y1+this.y2-dy)/2) +\n this.rotate(angle - Math.PI + this.angle2, this.mid > 10);\n }\n\n if (this.mid % 10 === 1) {\n path += this.rotate(angle - this.angle2, (this.x1+this.x2+dx)/2, (this.y1+this.y2+dy)/2) +\n this.rotate(angle + this.angle2, this.mid > 10);\n }\n\n if (this.end) {\n path += this.rotate(angle - this.angle2, this.x2, this.y2) +\n this.rotate(angle + this.angle2, this.end > 10);\n }\n\n return `M${Math.round(this.x1 + (this.beg > 10 ? dx : 0))},${Math.round(this.y1 + (this.beg > 10 ? dy : 0))}` +\n `L${Math.round(this.x2 - (this.end > 10 ? dx : 0))},${Math.round(this.y2 - (this.end > 10 ? dy : 0))}` +\n path;\n }\n\n /** @summary calculate all TArrow coordinates */\n prepareDraw() {\n super.prepareDraw();\n\n const arrow = this.getObject(),\n oo = arrow.fOption,\n rect = this.getPadPainter().getPadRect();\n\n this.wsize = Math.max(3, Math.round(Math.max(rect.width, rect.height) * arrow.fArrowSize * 0.8));\n this.angle2 = arrow.fAngle/2/180 * Math.PI;\n this.beg = this.mid = this.end = 0;\n\n if (oo.indexOf('<') === 0)\n this.beg = (oo.indexOf('<|') === 0) ? 12 : 2;\n if (oo.indexOf('->-') >= 0)\n this.mid = 1;\n else if (oo.indexOf('-|>-') >= 0)\n this.mid = 11;\n else if (oo.indexOf('-<-') >= 0)\n this.mid = 2;\n else if (oo.indexOf('-<|-') >= 0)\n this.mid = 12;\n\n const p1 = oo.lastIndexOf('>'), p2 = oo.lastIndexOf('|>'), len = oo.length;\n if ((p1 >= 0) && (p1 === len-1))\n this.end = ((p2 >= 0) && (p2 === len-2)) ? 11 : 1;\n\n this.createAttFill({ attr: arrow });\n }\n\n /** @summary Add extras to path for TArrow */\n addExtras(elem) {\n if ((this.beg > 10) || (this.end > 10))\n elem.call(this.fillatt.func);\n else\n elem.style('fill', 'none');\n }\n\n /** @summary Draw TArrow object */\n static async draw(dom, obj, opt) {\n const painter = new TArrowPainter(dom, obj, opt);\n return ensureTCanvas(painter, false).then(() => painter.redraw());\n }\n\n} // class TArrowPainter\n\nexport { TArrowPainter };\n"],"x_google_ignoreList":[0]} \ No newline at end of file +{"version":3,"file":"302.847e2acc57ac5da8.js","mappings":"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","names":["TArrowPainter","TLinePainter","rotate","angle","x0","y0","dx","this","wsize","Math","cos","dy","sin","res","undefined","round","createPath","atan2","y2","y1","x2","x1","dlen","angle2","path","beg","PI","mid","end","prepareDraw","super","arrow","getObject","oo","fOption","rect","getPadPainter","getPadRect","max","width","height","fArrowSize","fAngle","indexOf","p1","lastIndexOf","p2","len","length","createAttFill","attr","addExtras","elem","call","fillatt","func","style","draw","dom","obj","opt","_asyncToGenerator","painter","ensureTCanvas","then","redraw"],"ignoreList":[],"sourceRoot":"webpack:///","sources":["../node_modules/jsroot/modules/draw/TArrowPainter.mjs"],"sourcesContent":["import { TLinePainter } from './TLinePainter.mjs';\nimport { ensureTCanvas } from '../gpad/TCanvasPainter.mjs';\n\n\n/** @summary Drawing TArrow\n * @private */\nclass TArrowPainter extends TLinePainter {\n\n /** @summary Create line segment with rotation */\n rotate(angle, x0, y0) {\n let dx = this.wsize * Math.cos(angle), dy = this.wsize * Math.sin(angle), res = '';\n if ((x0 !== undefined) && (y0 !== undefined))\n res = `M${Math.round(x0-dx)},${Math.round(y0-dy)}`;\n else {\n dx = -dx; dy = -dy;\n }\n res += `l${Math.round(dx)},${Math.round(dy)}`;\n if (x0 && (y0 === undefined)) res += 'z';\n return res;\n }\n\n /** @summary Create SVG path for the arrow */\n createPath() {\n const angle = Math.atan2(this.y2 - this.y1, this.x2 - this.x1),\n dlen = this.wsize * Math.cos(this.angle2),\n dx = dlen*Math.cos(angle), dy = dlen*Math.sin(angle);\n\n let path = '';\n if (this.beg) {\n path += this.rotate(angle - Math.PI - this.angle2, this.x1, this.y1) +\n this.rotate(angle - Math.PI + this.angle2, this.beg > 10);\n }\n\n if (this.mid % 10 === 2) {\n path += this.rotate(angle - Math.PI - this.angle2, (this.x1+this.x2-dx)/2, (this.y1+this.y2-dy)/2) +\n this.rotate(angle - Math.PI + this.angle2, this.mid > 10);\n }\n\n if (this.mid % 10 === 1) {\n path += this.rotate(angle - this.angle2, (this.x1+this.x2+dx)/2, (this.y1+this.y2+dy)/2) +\n this.rotate(angle + this.angle2, this.mid > 10);\n }\n\n if (this.end) {\n path += this.rotate(angle - this.angle2, this.x2, this.y2) +\n this.rotate(angle + this.angle2, this.end > 10);\n }\n\n return `M${Math.round(this.x1 + (this.beg > 10 ? dx : 0))},${Math.round(this.y1 + (this.beg > 10 ? dy : 0))}` +\n `L${Math.round(this.x2 - (this.end > 10 ? dx : 0))},${Math.round(this.y2 - (this.end > 10 ? dy : 0))}` +\n path;\n }\n\n /** @summary calculate all TArrow coordinates */\n prepareDraw() {\n super.prepareDraw();\n\n const arrow = this.getObject(),\n oo = arrow.fOption,\n rect = this.getPadPainter().getPadRect();\n\n this.wsize = Math.max(3, Math.round(Math.max(rect.width, rect.height) * arrow.fArrowSize * 0.8));\n this.angle2 = arrow.fAngle/2/180 * Math.PI;\n this.beg = this.mid = this.end = 0;\n\n if (oo.indexOf('<') === 0)\n this.beg = (oo.indexOf('<|') === 0) ? 12 : 2;\n if (oo.indexOf('->-') >= 0)\n this.mid = 1;\n else if (oo.indexOf('-|>-') >= 0)\n this.mid = 11;\n else if (oo.indexOf('-<-') >= 0)\n this.mid = 2;\n else if (oo.indexOf('-<|-') >= 0)\n this.mid = 12;\n\n const p1 = oo.lastIndexOf('>'), p2 = oo.lastIndexOf('|>'), len = oo.length;\n if ((p1 >= 0) && (p1 === len-1))\n this.end = ((p2 >= 0) && (p2 === len-2)) ? 11 : 1;\n\n this.createAttFill({ attr: arrow });\n }\n\n /** @summary Add extras to path for TArrow */\n addExtras(elem) {\n if ((this.beg > 10) || (this.end > 10))\n elem.call(this.fillatt.func);\n else\n elem.style('fill', 'none');\n }\n\n /** @summary Draw TArrow object */\n static async draw(dom, obj, opt) {\n const painter = new TArrowPainter(dom, obj, opt);\n return ensureTCanvas(painter, false).then(() => painter.redraw());\n }\n\n} // class TArrowPainter\n\nexport { TArrowPainter };\n"],"x_google_ignoreList":[0]} \ No newline at end of file diff --git a/docs/404.html b/docs/404.html index 2949e705..de24d461 100644 --- a/docs/404.html +++ b/docs/404.html @@ -30,5 +30,5 @@ - + diff --git a/docs/409.35de7ce6bc33e267.js b/docs/409.f35403a21d4c0a35.js similarity index 93% rename from docs/409.35de7ce6bc33e267.js rename to docs/409.f35403a21d4c0a35.js index be44d249..6a71467b 100644 --- a/docs/409.35de7ce6bc33e267.js +++ b/docs/409.f35403a21d4c0a35.js @@ -1,2 +1,2 @@ -"use strict";(self.webpackChunkphoenix_app=self.webpackChunkphoenix_app||[]).push([[409],{4409:(F,S,p)=>{p.r(S),p.d(S,{RHistStatsPainter:()=>b,RLegendPainter:()=>T,RPavePainter:()=>k,RPaveTextPainter:()=>y});var w=p(4882),x=p(8872),C=p(2843),R=p(1985),E=p(1990),A=p(5638),O=p(7900);class k extends R.D{drawContent(){var t=this;return(0,w.A)(function*(){return t})()}drawPave(){var t=this;return(0,w.A)(function*(){const e=t.getPadPainter().getPadRect(),i=t.getFramePainter();t.onFrame=i&&t.v7EvalAttr("onFrame",!0),t.corner=t.v7EvalAttr("corner",2);const a=t.v7EvalAttr("visible",!0),s=t.v7EvalLength("offsetX",e.width,.02),d=t.v7EvalLength("offsetY",e.height,.02),o=t.v7EvalLength("width",e.width,.3),n=t.v7EvalLength("height",e.height,.3);if(t.createG(),t.draw_g.classed("most_upper_primitives",!0),!a)return t;t.createv7AttLine("border_"),t.createv7AttFill();const r=t.onFrame?i.getFrameRect():e;let l=0,c=0;switch(t.corner){case 1:l=r.x+s,c=r.y+d;break;case 3:l=r.x+s,c=r.y+r.height-d-n;break;case 4:l=r.x+r.width-s-o,c=r.y+r.height-d-n;break;default:l=r.x+r.width-s-o,c=r.y+d}return(0,C.bk)(t.draw_g,l,c),t.draw_g.append("svg:rect").attr("x",0).attr("width",o).attr("y",0).attr("height",n).call(t.lineatt.func).call(t.fillatt.func),t.pave_width=o,t.pave_height=n,t.drawContent().then(()=>(t.isBatchMode()||(x.settings.ContextMenu&&t.paveContextMenu&&t.draw_g.on("contextmenu",g=>t.paveContextMenu(g)),(0,A.WJ)(t,{x:l,y:c,width:o,height:n,minwidth:20,minheight:20,redraw:g=>t.sizeChanged(g)})),t))})()}sizeChanged(t){this.pave_width=t.width,this.pave_height=t.height;const e=t.x,i=t.y,a=this.getPadPainter().getPadRect(),s=this.onFrame?this.getFramePainter().getFrameRect():a,d={};let o=0,n=0;switch(this.corner){case 1:o=e-s.x,n=i-s.y;break;case 3:o=e-s.x,n=s.y+s.height-i-this.pave_height;break;case 4:o=s.x+s.width-e-this.pave_width,n=s.y+s.height-i-this.pave_height;break;default:o=s.x+s.width-e-this.pave_width,n=i-s.y}this.v7AttrChange(d,"offsetX",o/a.width),this.v7AttrChange(d,"offsetY",n/a.height),this.v7AttrChange(d,"width",this.pave_width/a.width),this.v7AttrChange(d,"height",this.pave_height/a.height),this.v7SendAttrChanges(d,!1),this.draw_g.selectChild("rect").attr("width",this.pave_width).attr("height",this.pave_height),this.drawContent()}redraw(){var t=this;return(0,w.A)(function*(){return t.drawPave()})()}static draw(t,e,i){return(0,w.A)(function*(){const a=new k(t,e,i,"pave");return(0,E.ensureRCanvas)(a,!1).then(()=>a.drawPave())})()}}class T extends k{drawContent(){var t=this;return(0,w.A)(function*(){const e=t.getObject(),i=t.v7EvalFont("text",{size:12,color:"black",align:22}),a=t.pave_width,s=t.pave_height,d=t.getPadPainter();let o=e.fEntries.length;if(e.fTitle&&o++,!o||!d)return t;const n=s/o,r=.02*a;let l=0;i.setSize(s/(1.2*o)),t.startTextDrawing(i,"font"),e.fTitle&&(t.drawText({latex:1,width:a-2*r,height:n,x:r,y:l,text:e.fTitle}),l+=n);for(let c=0;ca.drawPave())})()}}class y extends k{drawContent(){const t=this.getObject(),e=this.v7EvalFont("text",{size:12,color:"black",align:22}),i=this.pave_width,a=this.pave_height,s=t.fText.length;if(!s)return;const d=a/s,o=.02*i;let n=0;e.setSize(a/(1.2*s)),this.startTextDrawing(e,"font");for(let r=0;ra.drawPave())})()}}class b extends k{clearStat(){this.stats_lines=[]}addText(t){this.stats_lines.push(t)}updateStatistic(t){this.stats_lines=t.lines,this.drawStatistic(this.stats_lines)}fillStatistic(){if(this.getPadPainter()?._fast_drawing)return!1;const e=this.getObject();if(void 0!==e.fLines)return this.stats_lines=e.fLines,delete e.fLines,!0;if(this.v7OfflineMode()){const i=this.getMainPainter();return!!(0,x.isFunc)(i?.fillStatistic)&&i.fillStatistic(this,x.gStyle.fOptStat,x.gStyle.fOptFit)}return void 0!==this.stats_lines}format(t,e){switch(e||(e="stat"),e){case"stat":e=x.gStyle.fStatFormat;break;case"fit":e=x.gStyle.fFitFormat;break;case"entries":if(Math.abs(t)<1e9&&Math.round(t)===t)return t.toFixed(0);e="14.7g";break;case"last":e=this.lastformat}const i=(0,C.lg)(t,e||"6.4g",!0);return this.lastformat=i[1],i[0]}drawContent(){var t=this;return(0,w.A)(function*(){return t.fillStatistic()?t.drawStatistic(t.stats_lines):t})()}changeMask(t){const e=this.getObject(),i=1<{const i=this.getObject(),a=this.changeMask.bind(this);e.add("header: StatBox");for(let s=0;se.show())}drawStatistic(t){var e=this;return(0,w.A)(function*(){if(!t)return e;const i=e.v7EvalFont("stats_text",{size:12,color:"black",align:22}),a=e.pave_width,s=e.pave_height,d=t.length;let o=0,n=0,r=0;for(let h=0;h0&&(r=Math.max(r,P.length)),0===h||P.indexOf("|")<0)continue;0===o&&(o=h);const u=P.split("|");u.length>n&&(n=u.length)}const l=s/d,c=.02*a;let g=!1,_=e.draw_g.selectChild(".statlines");if(_.empty()?_=e.draw_g.append("svg:g").attr("class","statlines"):_.selectAll("*").remove(),i.setSize(s/(1.2*d)),e.startTextDrawing(i,"font",_),1===d)e.drawText({width:a,height:s,text:t[0],latex:1,draw_g:_});else for(let h=0;h=o){const u=t[h].split("|");for(let M=0;M0&&n>1){for(let h=o;he.updateStatistic(a))}return e.drawPave()})()}static draw(t,e,i){return(0,w.A)(function*(){const a=new b(t,e,i,e);return(0,E.ensureRCanvas)(a,!1).then(()=>a.drawPave())})()}}}}]); -//# sourceMappingURL=409.35de7ce6bc33e267.js.map \ No newline at end of file +"use strict";(self.webpackChunkphoenix_app=self.webpackChunkphoenix_app||[]).push([[409],{4409:(F,S,p)=>{p.r(S),p.d(S,{RHistStatsPainter:()=>b,RLegendPainter:()=>y,RPavePainter:()=>k,RPaveTextPainter:()=>T});var w=p(4882),x=p(8872),C=p(2843),R=p(1985),E=p(1990),A=p(5638),D=p(7900);class k extends R.D{drawContent(){var t=this;return(0,w.A)(function*(){return t})()}drawPave(){var t=this;return(0,w.A)(function*(){const e=t.getPadPainter().getPadRect(),i=t.getFramePainter();t.onFrame=i&&t.v7EvalAttr("onFrame",!0),t.corner=t.v7EvalAttr("corner",2);const a=t.v7EvalAttr("visible",!0),s=t.v7EvalLength("offsetX",e.width,.02),d=t.v7EvalLength("offsetY",e.height,.02),o=t.v7EvalLength("width",e.width,.3),n=t.v7EvalLength("height",e.height,.3);if(t.createG(),t.draw_g.classed("most_upper_primitives",!0),!a)return t;t.createv7AttLine("border_"),t.createv7AttFill();const r=t.onFrame?i.getFrameRect():e;let l=0,c=0;switch(t.corner){case 1:l=r.x+s,c=r.y+d;break;case 3:l=r.x+s,c=r.y+r.height-d-n;break;case 4:l=r.x+r.width-s-o,c=r.y+r.height-d-n;break;default:l=r.x+r.width-s-o,c=r.y+d}return(0,C.bk)(t.draw_g,l,c),t.draw_g.append("svg:rect").attr("x",0).attr("width",o).attr("y",0).attr("height",n).call(t.lineatt.func).call(t.fillatt.func),t.pave_width=o,t.pave_height=n,t.drawContent().then(()=>(t.isBatchMode()||(x.settings.ContextMenu&&t.paveContextMenu&&t.draw_g.on("contextmenu",g=>t.paveContextMenu(g)),(0,A.WJ)(t,{x:l,y:c,width:o,height:n,minwidth:20,minheight:20,redraw:g=>t.sizeChanged(g)})),t))})()}sizeChanged(t){this.pave_width=t.width,this.pave_height=t.height;const e=t.x,i=t.y,a=this.getPadPainter().getPadRect(),s=this.onFrame?this.getFramePainter().getFrameRect():a,d={};let o=0,n=0;switch(this.corner){case 1:o=e-s.x,n=i-s.y;break;case 3:o=e-s.x,n=s.y+s.height-i-this.pave_height;break;case 4:o=s.x+s.width-e-this.pave_width,n=s.y+s.height-i-this.pave_height;break;default:o=s.x+s.width-e-this.pave_width,n=i-s.y}this.v7AttrChange(d,"offsetX",o/a.width),this.v7AttrChange(d,"offsetY",n/a.height),this.v7AttrChange(d,"width",this.pave_width/a.width),this.v7AttrChange(d,"height",this.pave_height/a.height),this.v7SendAttrChanges(d,!1),this.draw_g.selectChild("rect").attr("width",this.pave_width).attr("height",this.pave_height),this.drawContent()}redraw(){var t=this;return(0,w.A)(function*(){return t.drawPave()})()}static draw(t,e,i){return(0,w.A)(function*(){const a=new k(t,e,i,"pave");return(0,E.ensureRCanvas)(a,!1).then(()=>a.drawPave())})()}}class y extends k{drawContent(){var t=this;return(0,w.A)(function*(){const e=t.getObject(),i=t.v7EvalFont("text",{size:12,color:"black",align:22}),a=t.pave_width,s=t.pave_height,d=t.getPadPainter();let o=e.fEntries.length;if(e.fTitle&&o++,!o||!d)return t;const n=s/o,r=.02*a;let l=0;i.setSize(s/(1.2*o)),t.startTextDrawing(i,"font"),e.fTitle&&(t.drawText({latex:1,width:a-2*r,height:n,x:r,y:l,text:e.fTitle}),l+=n);for(let c=0;ca.drawPave())})()}}class T extends k{drawContent(){const t=this.getObject(),e=this.v7EvalFont("text",{size:12,color:"black",align:22}),i=this.pave_width,a=this.pave_height,s=t.fText.length;if(!s)return;const d=a/s,o=.02*i;let n=0;e.setSize(a/(1.2*s)),this.startTextDrawing(e,"font");for(let r=0;ra.drawPave())})()}}class b extends k{clearStat(){this.stats_lines=[]}addText(t){this.stats_lines.push(t)}updateStatistic(t){this.stats_lines=t.lines,this.drawStatistic(this.stats_lines)}fillStatistic(){if(this.getPadPainter()?._fast_drawing)return!1;const e=this.getObject();if(void 0!==e.fLines)return this.stats_lines=e.fLines,delete e.fLines,!0;if(this.v7OfflineMode()){const i=this.getMainPainter();return!!(0,x.isFunc)(i?.fillStatistic)&&i.fillStatistic(this,x.gStyle.fOptStat,x.gStyle.fOptFit)}return void 0!==this.stats_lines}format(t,e){switch(e||(e="stat"),e){case"stat":e=x.gStyle.fStatFormat;break;case"fit":e=x.gStyle.fFitFormat;break;case"entries":if(Math.abs(t)<1e9&&Math.round(t)===t)return t.toFixed(0);e="14.7g";break;case"last":e=this.lastformat}const i=(0,C.lg)(t,e||"6.4g",!0);return this.lastformat=i[1],i[0]}drawContent(){var t=this;return(0,w.A)(function*(){return t.fillStatistic()?t.drawStatistic(t.stats_lines):t})()}changeMask(t){const e=this.getObject(),i=1<{const i=this.getObject(),a=this.changeMask.bind(this);e.add("header: StatBox");for(let s=0;se.show())}drawStatistic(t){var e=this;return(0,w.A)(function*(){if(!t)return e;const i=e.v7EvalFont("stats_text",{size:12,color:"black",align:22}),a=e.pave_width,s=e.pave_height,d=t.length;let o=0,n=0,r=0;for(let h=0;h0&&(r=Math.max(r,P.length)),0===h||P.indexOf("|")<0)continue;0===o&&(o=h);const u=P.split("|");u.length>n&&(n=u.length)}const l=s/d,c=.02*a;let g=!1,_=e.draw_g.selectChild(".statlines");if(_.empty()?_=e.draw_g.append("svg:g").attr("class","statlines"):_.selectAll("*").remove(),i.setSize(s/(1.2*d)),e.startTextDrawing(i,"font",_),1===d)e.drawText({width:a,height:s,text:t[0],latex:1,draw_g:_});else for(let h=0;h=o){const u=t[h].split("|");for(let M=0;M0&&n>1){for(let h=o;he.updateStatistic(a))}return e.drawPave()})()}static draw(t,e,i){return(0,w.A)(function*(){const a=new b(t,e,i,e);return(0,E.ensureRCanvas)(a,!1).then(()=>a.drawPave())})()}}}}]); +//# sourceMappingURL=409.f35403a21d4c0a35.js.map \ No newline at end of file diff --git a/docs/409.35de7ce6bc33e267.js.map b/docs/409.f35403a21d4c0a35.js.map similarity index 99% rename from docs/409.35de7ce6bc33e267.js.map rename to docs/409.f35403a21d4c0a35.js.map index 071085f5..dc1e07f8 100644 --- a/docs/409.35de7ce6bc33e267.js.map +++ b/docs/409.f35403a21d4c0a35.js.map @@ -1 +1 @@ -{"version":3,"file":"409.35de7ce6bc33e267.js","mappings":"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","names":["RPavePainter","RObjectPainter","drawContent","_this","this","_asyncToGenerator","drawPave","_this2","rect","getPadPainter","getPadRect","fp","getFramePainter","onFrame","v7EvalAttr","corner","visible","offsetx","v7EvalLength","width","offsety","height","pave_width","pave_height","createG","draw_g","classed","createv7AttLine","createv7AttFill","fr","getFrameRect","pave_x","pave_y","x","y","makeTranslate","append","attr","call","lineatt","func","fillatt","then","isBatchMode","settings","ContextMenu","paveContextMenu","on","evnt","addDragHandler","minwidth","minheight","redraw","d","sizeChanged","drag","changes","v7AttrChange","v7SendAttrChanges","selectChild","_this3","draw","dom","pave","opt","painter","ensureRCanvas","RLegendPainter","_this4","legend","getObject","textFont","v7EvalFont","size","color","align","pp","nlines","fEntries","length","fTitle","stepy","margin_x","posy","setSize","startTextDrawing","drawText","latex","text","i","entry","w4","Math","round","objp","fLabel","fDrawableId","findSnap","fDrawable","fIO","getDom","fLine","fFill","fMarker","createv7AttMarker","fError","markeratt","create","finishTextDrawing","RPaveTextPainter","pavetext","fText","undefined","RHistStatsPainter","clearStat","stats_lines","addText","line","push","updateStatistic","reply","lines","drawStatistic","fillStatistic","_fast_drawing","obj","fLines","v7OfflineMode","main","getMainPainter","isFunc","gStyle","fOptStat","fOptFit","format","value","fmt","fStatFormat","fFitFormat","abs","toFixed","lastformat","res","floatToString","_this5","changeMask","nbit","mask","fShowMask","statsContextMenu","preventDefault","stopPropagation","createMenu","menu","action","bind","add","n","addchk","fillObjectExecMenu","show","_this6","first_stat","num_cols","maxlen","j","max","indexOf","parts","split","has_head","text_g","empty","selectAll","remove","max_hlen","slice","args","_expected_width","_args","post_process","ready","scaleTextDrawing","result_width","__expected_width","lpath","nrow","ncol","reason","_this7","isStr","v7NormalMode","req","_typename","nsREX","v7SubmitRequest","stats"],"ignoreList":[],"sourceRoot":"webpack:///","sources":["../node_modules/jsroot/modules/hist/RPavePainter.mjs"],"sourcesContent":["import { settings, isFunc, isStr, gStyle, nsREX } from '../core.mjs';\nimport { floatToString, makeTranslate } from '../base/BasePainter.mjs';\nimport { RObjectPainter } from '../base/RObjectPainter.mjs';\nimport { ensureRCanvas } from '../gpad/RCanvasPainter.mjs';\nimport { addDragHandler } from '../gpad/TFramePainter.mjs';\nimport { createMenu } from '../gui/menu.mjs';\n\n\nconst ECorner = { kTopLeft: 1, kTopRight: 2, kBottomLeft: 3, kBottomRight: 4 };\n\n/**\n * @summary Painter for RPave class\n *\n * @private\n */\n\nclass RPavePainter extends RObjectPainter {\n\n /** @summary Draw pave content\n * @desc assigned depending on pave class */\n async drawContent() { return this; }\n\n /** @summary Draw pave */\n async drawPave() {\n const rect = this.getPadPainter().getPadRect(),\n fp = this.getFramePainter();\n\n this.onFrame = fp && this.v7EvalAttr('onFrame', true);\n this.corner = this.v7EvalAttr('corner', ECorner.kTopRight);\n\n const visible = this.v7EvalAttr('visible', true),\n offsetx = this.v7EvalLength('offsetX', rect.width, 0.02),\n offsety = this.v7EvalLength('offsetY', rect.height, 0.02),\n pave_width = this.v7EvalLength('width', rect.width, 0.3),\n pave_height = this.v7EvalLength('height', rect.height, 0.3);\n\n this.createG();\n\n this.draw_g.classed('most_upper_primitives', true); // this primitive will remain on top of list\n\n if (!visible)\n return this;\n\n this.createv7AttLine('border_');\n\n this.createv7AttFill();\n\n const fr = this.onFrame ? fp.getFrameRect() : rect;\n let pave_x = 0, pave_y = 0;\n switch (this.corner) {\n case ECorner.kTopLeft:\n pave_x = fr.x + offsetx;\n pave_y = fr.y + offsety;\n break;\n case ECorner.kBottomLeft:\n pave_x = fr.x + offsetx;\n pave_y = fr.y + fr.height - offsety - pave_height;\n break;\n case ECorner.kBottomRight:\n pave_x = fr.x + fr.width - offsetx - pave_width;\n pave_y = fr.y + fr.height - offsety - pave_height;\n break;\n case ECorner.kTopRight:\n default:\n pave_x = fr.x + fr.width - offsetx - pave_width;\n pave_y = fr.y + offsety;\n }\n\n makeTranslate(this.draw_g, pave_x, pave_y);\n\n this.draw_g.append('svg:rect')\n .attr('x', 0)\n .attr('width', pave_width)\n .attr('y', 0)\n .attr('height', pave_height)\n .call(this.lineatt.func)\n .call(this.fillatt.func);\n\n this.pave_width = pave_width;\n this.pave_height = pave_height;\n\n // here should be fill and draw of text\n\n return this.drawContent().then(() => {\n if (!this.isBatchMode()) {\n // TODO: provide pave context menu as in v6\n if (settings.ContextMenu && this.paveContextMenu)\n this.draw_g.on('contextmenu', evnt => this.paveContextMenu(evnt));\n\n addDragHandler(this, { x: pave_x, y: pave_y, width: pave_width, height: pave_height,\n minwidth: 20, minheight: 20, redraw: d => this.sizeChanged(d) });\n }\n\n return this;\n });\n }\n\n /** @summary Process interactive moving of the stats box */\n sizeChanged(drag) {\n this.pave_width = drag.width;\n this.pave_height = drag.height;\n\n const pave_x = drag.x,\n pave_y = drag.y,\n rect = this.getPadPainter().getPadRect(),\n fr = this.onFrame ? this.getFramePainter().getFrameRect() : rect,\n changes = {};\n let offsetx = 0, offsety = 0;\n\n switch (this.corner) {\n case ECorner.kTopLeft:\n offsetx = pave_x - fr.x;\n offsety = pave_y - fr.y;\n break;\n case ECorner.kBottomLeft:\n offsetx = pave_x - fr.x;\n offsety = fr.y + fr.height - pave_y - this.pave_height;\n break;\n case ECorner.kBottomRight:\n offsetx = fr.x + fr.width - pave_x - this.pave_width;\n offsety = fr.y + fr.height - pave_y - this.pave_height;\n break;\n case ECorner.kTopRight:\n default:\n offsetx = fr.x + fr.width - pave_x - this.pave_width;\n offsety = pave_y - fr.y;\n }\n\n this.v7AttrChange(changes, 'offsetX', offsetx / rect.width);\n this.v7AttrChange(changes, 'offsetY', offsety / rect.height);\n this.v7AttrChange(changes, 'width', this.pave_width / rect.width);\n this.v7AttrChange(changes, 'height', this.pave_height / rect.height);\n this.v7SendAttrChanges(changes, false); // do not invoke canvas update on the server\n\n this.draw_g.selectChild('rect')\n .attr('width', this.pave_width)\n .attr('height', this.pave_height);\n\n this.drawContent();\n }\n\n /** @summary Redraw RPave object */\n async redraw(/* reason */) {\n return this.drawPave();\n }\n\n /** @summary draw RPave object */\n static async draw(dom, pave, opt) {\n const painter = new RPavePainter(dom, pave, opt, 'pave');\n return ensureRCanvas(painter, false).then(() => painter.drawPave());\n }\n\n}\n\n\n/**\n * @summary Painter for RLegend class\n *\n * @private\n */\n\nclass RLegendPainter extends RPavePainter {\n\n /** @summary draw RLegend content */\n async drawContent() {\n const legend = this.getObject(),\n textFont = this.v7EvalFont('text', { size: 12, color: 'black', align: 22 }),\n width = this.pave_width,\n height = this.pave_height,\n pp = this.getPadPainter();\n\n let nlines = legend.fEntries.length;\n if (legend.fTitle) nlines++;\n\n if (!nlines || !pp) return this;\n\n const stepy = height / nlines, margin_x = 0.02 * width;\n let posy = 0;\n\n textFont.setSize(height/(nlines * 1.2));\n this.startTextDrawing(textFont, 'font');\n\n if (legend.fTitle) {\n this.drawText({ latex: 1, width: width - 2*margin_x, height: stepy, x: margin_x, y: posy, text: legend.fTitle });\n posy += stepy;\n }\n\n for (let i = 0; i < legend.fEntries.length; ++i) {\n const entry = legend.fEntries[i], w4 = Math.round(width/4);\n let objp = null;\n\n this.drawText({ latex: 1, width: 0.75*width - 3*margin_x, height: stepy, x: 2*margin_x + w4, y: posy, text: entry.fLabel });\n\n if (entry.fDrawableId !== 'custom')\n objp = pp.findSnap(entry.fDrawableId, true);\n else if (entry.fDrawable.fIO) {\n objp = new RObjectPainter(this.getDom(), entry.fDrawable.fIO);\n if (entry.fLine) objp.createv7AttLine();\n if (entry.fFill) objp.createv7AttFill();\n if (entry.fMarker) objp.createv7AttMarker();\n }\n\n if (entry.fFill && objp?.fillatt) {\n this.draw_g\n .append('svg:path')\n .attr('d', `M${Math.round(margin_x)},${Math.round(posy + stepy*0.1)}h${w4}v${Math.round(stepy*0.8)}h${-w4}z`)\n .call(objp.fillatt.func);\n }\n\n if (entry.fLine && objp?.lineatt) {\n this.draw_g\n .append('svg:path')\n .attr('d', `M${Math.round(margin_x)},${Math.round(posy + stepy/2)}h${w4}`)\n .call(objp.lineatt.func);\n }\n\n if (entry.fError && objp?.lineatt) {\n this.draw_g\n .append('svg:path')\n .attr('d', `M${Math.round(margin_x + width/8)},${Math.round(posy + stepy*0.2)}v${Math.round(stepy*0.6)}`)\n .call(objp.lineatt.func);\n }\n\n if (entry.fMarker && objp?.markeratt) {\n this.draw_g.append('svg:path')\n .attr('d', objp.markeratt.create(margin_x + width/8, posy + stepy/2))\n .call(objp.markeratt.func);\n }\n\n posy += stepy;\n }\n\n return this.finishTextDrawing();\n }\n\n /** @summary draw RLegend object */\n static async draw(dom, legend, opt) {\n const painter = new RLegendPainter(dom, legend, opt, 'legend');\n return ensureRCanvas(painter, false).then(() => painter.drawPave());\n }\n\n} // class RLegendPainter\n\n\n/**\n * @summary Painter for RPaveText class\n *\n * @private\n */\n\nclass RPaveTextPainter extends RPavePainter {\n\n /** @summary draw RPaveText content */\n drawContent() {\n const pavetext = this.getObject(),\n textFont = this.v7EvalFont('text', { size: 12, color: 'black', align: 22 }),\n width = this.pave_width,\n height = this.pave_height,\n nlines = pavetext.fText.length;\n\n if (!nlines) return;\n\n const stepy = height / nlines, margin_x = 0.02 * width;\n let posy = 0;\n\n textFont.setSize(height/(nlines * 1.2));\n\n this.startTextDrawing(textFont, 'font');\n\n for (let i = 0; i < pavetext.fText.length; ++i) {\n const line = pavetext.fText[i];\n\n this.drawText({ latex: 1, width: width - 2*margin_x, height: stepy, x: margin_x, y: posy, text: line });\n posy += stepy;\n }\n\n return this.finishTextDrawing(undefined, true);\n }\n\n /** @summary draw RPaveText object */\n static async draw(dom, pave, opt) {\n const painter = new RPaveTextPainter(dom, pave, opt, 'pavetext');\n return ensureRCanvas(painter, false).then(() => painter.drawPave());\n }\n\n} // class RPaveTextPainter\n\n/**\n * @summary Painter for RHistStats class\n *\n * @private\n */\n\nclass RHistStatsPainter extends RPavePainter {\n\n /** @summary clear entries from stat box */\n clearStat() {\n this.stats_lines = [];\n }\n\n /** @summary add text entry to stat box */\n addText(line) {\n this.stats_lines.push(line);\n }\n\n /** @summary update statistic from the server */\n updateStatistic(reply) {\n this.stats_lines = reply.lines;\n this.drawStatistic(this.stats_lines);\n }\n\n /** @summary fill statistic */\n fillStatistic() {\n const pp = this.getPadPainter();\n if (pp?._fast_drawing) return false;\n\n const obj = this.getObject();\n if (obj.fLines !== undefined) {\n this.stats_lines = obj.fLines;\n delete obj.fLines;\n return true;\n }\n\n if (this.v7OfflineMode()) {\n const main = this.getMainPainter();\n if (!isFunc(main?.fillStatistic)) return false;\n // we take statistic from main painter\n return main.fillStatistic(this, gStyle.fOptStat, gStyle.fOptFit);\n }\n\n // show lines which are exists, maybe server request will be recieved later\n return (this.stats_lines !== undefined);\n }\n\n /** @summary format float value as string\n * @private */\n format(value, fmt) {\n if (!fmt) fmt = 'stat';\n\n switch (fmt) {\n case 'stat' : fmt = gStyle.fStatFormat; break;\n case 'fit': fmt = gStyle.fFitFormat; break;\n case 'entries': if ((Math.abs(value) < 1e9) && (Math.round(value) === value)) return value.toFixed(0); fmt = '14.7g'; break;\n case 'last': fmt = this.lastformat; break;\n }\n\n const res = floatToString(value, fmt || '6.4g', true);\n\n this.lastformat = res[1];\n\n return res[0];\n }\n\n /** @summary Draw content */\n async drawContent() {\n if (this.fillStatistic())\n return this.drawStatistic(this.stats_lines);\n\n return this;\n }\n\n /** @summary Change mask */\n changeMask(nbit) {\n const obj = this.getObject(), mask = (1< {\n const obj = this.getObject(),\n action = this.changeMask.bind(this);\n\n menu.add('header: StatBox');\n\n for (let n=0; n menu.show());\n }\n\n /** @summary Draw statistic */\n async drawStatistic(lines) {\n if (!lines) return this;\n const textFont = this.v7EvalFont('stats_text', { size: 12, color: 'black', align: 22 }),\n width = this.pave_width,\n height = this.pave_height,\n nlines = lines.length;\n let first_stat = 0, num_cols = 0, maxlen = 0;\n\n // adjust font size\n for (let j = 0; j < nlines; ++j) {\n const line = lines[j];\n if (j > 0) maxlen = Math.max(maxlen, line.length);\n if ((j === 0) || (line.indexOf('|') < 0)) continue;\n if (first_stat === 0) first_stat = j;\n const parts = line.split('|');\n if (parts.length > num_cols)\n num_cols = parts.length;\n }\n\n // for characters like 'p' or 'y' several more pixels required to stay in the box when drawn in last line\n const stepy = height / nlines, margin_x = 0.02 * width;\n let has_head = false,\n text_g = this.draw_g.selectChild('.statlines');\n if (text_g.empty())\n text_g = this.draw_g.append('svg:g').attr('class', 'statlines');\n else\n text_g.selectAll('*').remove();\n\n textFont.setSize(height/(nlines * 1.2));\n this.startTextDrawing(textFont, 'font', text_g);\n\n if (nlines === 1)\n this.drawText({ width, height, text: lines[0], latex: 1, draw_g: text_g });\n else {\n for (let j = 0; j < nlines; ++j) {\n const posy = j*stepy;\n\n if (first_stat && (j >= first_stat)) {\n const parts = lines[j].split('|');\n for (let n = 0; n < parts.length; ++n) {\n this.drawText({ align: 'middle', x: width * n / num_cols, y: posy, latex: 0,\n width: width/num_cols, height: stepy, text: parts[n], draw_g: text_g });\n }\n } else if (lines[j].indexOf('=') < 0) {\n if (j === 0) {\n has_head = true;\n const max_hlen = Math.max(maxlen, Math.round((width-2*margin_x)/stepy/0.65));\n if (lines[j].length > max_hlen + 5)\n lines[j] = lines[j].slice(0, max_hlen+2) + '...';\n }\n this.drawText({ align: (j === 0) ? 'middle' : 'start', x: margin_x, y: posy,\n width: width - 2*margin_x, height: stepy, text: lines[j], draw_g: text_g });\n } else {\n const parts = lines[j].split('='), args = [];\n\n for (let n = 0; n < 2; ++n) {\n const arg = {\n align: (n === 0) ? 'start' : 'end', x: margin_x, y: posy,\n width: width-2*margin_x, height: stepy, text: parts[n], draw_g: text_g,\n _expected_width: width-2*margin_x, _args: args,\n post_process(painter) {\n if (this._args[0].ready && this._args[1].ready)\n painter.scaleTextDrawing(1.05*(this._args[0].result_width && this._args[1].result_width)/this.__expected_width, this.draw_g);\n }\n };\n args.push(arg);\n }\n\n for (let n = 0; n < 2; ++n)\n this.drawText(args[n]);\n }\n }\n }\n\n let lpath = '';\n\n if (has_head)\n lpath += 'M0,' + Math.round(stepy) + 'h' + width;\n\n if ((first_stat > 0) && (num_cols > 1)) {\n for (let nrow = first_stat; nrow < nlines; ++nrow)\n lpath += 'M0,' + Math.round(nrow * stepy) + 'h' + width;\n for (let ncol = 0; ncol < num_cols - 1; ++ncol)\n lpath += 'M' + Math.round(width / num_cols * (ncol + 1)) + ',' + Math.round(first_stat * stepy) + 'V' + height;\n }\n\n if (lpath) this.draw_g.append('svg:path').attr('d', lpath);\n\n return this.finishTextDrawing(text_g);\n }\n\n /** @summary Redraw stats box */\n async redraw(reason) {\n if (reason && isStr(reason) && (reason.indexOf('zoom') === 0) && this.v7NormalMode()) {\n const req = {\n _typename: `${nsREX}RHistStatBoxBase::RRequest`,\n mask: this.getObject().fShowMask // lines to show in stat box\n };\n\n this.v7SubmitRequest('stat', req, reply => this.updateStatistic(reply));\n }\n\n return this.drawPave();\n }\n\n /** @summary draw RHistStats object */\n static async draw(dom, stats, opt) {\n const painter = new RHistStatsPainter(dom, stats, opt, stats);\n return ensureRCanvas(painter, false).then(() => painter.drawPave());\n }\n\n} // class RHistStatsPainter\n\nexport { RPavePainter, RLegendPainter, RPaveTextPainter, RHistStatsPainter };\n"],"x_google_ignoreList":[0]} \ No newline at end of file +{"version":3,"file":"409.f35403a21d4c0a35.js","mappings":"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","names":["RPavePainter","RObjectPainter","drawContent","_this","this","_asyncToGenerator","drawPave","_this2","rect","getPadPainter","getPadRect","fp","getFramePainter","onFrame","v7EvalAttr","corner","visible","offsetx","v7EvalLength","width","offsety","height","pave_width","pave_height","createG","draw_g","classed","createv7AttLine","createv7AttFill","fr","getFrameRect","pave_x","pave_y","x","y","makeTranslate","append","attr","call","lineatt","func","fillatt","then","isBatchMode","settings","ContextMenu","paveContextMenu","on","evnt","addDragHandler","minwidth","minheight","redraw","d","sizeChanged","drag","changes","v7AttrChange","v7SendAttrChanges","selectChild","_this3","draw","dom","pave","opt","painter","ensureRCanvas","RLegendPainter","_this4","legend","getObject","textFont","v7EvalFont","size","color","align","pp","nlines","fEntries","length","fTitle","stepy","margin_x","posy","setSize","startTextDrawing","drawText","latex","text","i","entry","w4","Math","round","objp","fLabel","fDrawableId","findSnap","fDrawable","fIO","getDom","fLine","fFill","fMarker","createv7AttMarker","fError","markeratt","create","finishTextDrawing","RPaveTextPainter","pavetext","fText","undefined","RHistStatsPainter","clearStat","stats_lines","addText","line","push","updateStatistic","reply","lines","drawStatistic","fillStatistic","_fast_drawing","obj","fLines","v7OfflineMode","main","getMainPainter","isFunc","gStyle","fOptStat","fOptFit","format","value","fmt","fStatFormat","fFitFormat","abs","toFixed","lastformat","res","floatToString","_this5","changeMask","nbit","mask","fShowMask","statsContextMenu","preventDefault","stopPropagation","createMenu","menu","action","bind","add","n","addchk","fillObjectExecMenu","show","_this6","first_stat","num_cols","maxlen","j","max","indexOf","parts","split","has_head","text_g","empty","selectAll","remove","max_hlen","slice","args","_expected_width","_args","post_process","ready","scaleTextDrawing","result_width","__expected_width","lpath","nrow","ncol","reason","_this7","isStr","v7NormalMode","req","_typename","nsREX","v7SubmitRequest","stats"],"ignoreList":[],"sourceRoot":"webpack:///","sources":["../node_modules/jsroot/modules/hist/RPavePainter.mjs"],"sourcesContent":["import { settings, isFunc, isStr, gStyle, nsREX } from '../core.mjs';\nimport { floatToString, makeTranslate } from '../base/BasePainter.mjs';\nimport { RObjectPainter } from '../base/RObjectPainter.mjs';\nimport { ensureRCanvas } from '../gpad/RCanvasPainter.mjs';\nimport { addDragHandler } from '../gpad/TFramePainter.mjs';\nimport { createMenu } from '../gui/menu.mjs';\n\n\nconst ECorner = { kTopLeft: 1, kTopRight: 2, kBottomLeft: 3, kBottomRight: 4 };\n\n/**\n * @summary Painter for RPave class\n *\n * @private\n */\n\nclass RPavePainter extends RObjectPainter {\n\n /** @summary Draw pave content\n * @desc assigned depending on pave class */\n async drawContent() { return this; }\n\n /** @summary Draw pave */\n async drawPave() {\n const rect = this.getPadPainter().getPadRect(),\n fp = this.getFramePainter();\n\n this.onFrame = fp && this.v7EvalAttr('onFrame', true);\n this.corner = this.v7EvalAttr('corner', ECorner.kTopRight);\n\n const visible = this.v7EvalAttr('visible', true),\n offsetx = this.v7EvalLength('offsetX', rect.width, 0.02),\n offsety = this.v7EvalLength('offsetY', rect.height, 0.02),\n pave_width = this.v7EvalLength('width', rect.width, 0.3),\n pave_height = this.v7EvalLength('height', rect.height, 0.3);\n\n this.createG();\n\n this.draw_g.classed('most_upper_primitives', true); // this primitive will remain on top of list\n\n if (!visible)\n return this;\n\n this.createv7AttLine('border_');\n\n this.createv7AttFill();\n\n const fr = this.onFrame ? fp.getFrameRect() : rect;\n let pave_x = 0, pave_y = 0;\n switch (this.corner) {\n case ECorner.kTopLeft:\n pave_x = fr.x + offsetx;\n pave_y = fr.y + offsety;\n break;\n case ECorner.kBottomLeft:\n pave_x = fr.x + offsetx;\n pave_y = fr.y + fr.height - offsety - pave_height;\n break;\n case ECorner.kBottomRight:\n pave_x = fr.x + fr.width - offsetx - pave_width;\n pave_y = fr.y + fr.height - offsety - pave_height;\n break;\n case ECorner.kTopRight:\n default:\n pave_x = fr.x + fr.width - offsetx - pave_width;\n pave_y = fr.y + offsety;\n }\n\n makeTranslate(this.draw_g, pave_x, pave_y);\n\n this.draw_g.append('svg:rect')\n .attr('x', 0)\n .attr('width', pave_width)\n .attr('y', 0)\n .attr('height', pave_height)\n .call(this.lineatt.func)\n .call(this.fillatt.func);\n\n this.pave_width = pave_width;\n this.pave_height = pave_height;\n\n // here should be fill and draw of text\n\n return this.drawContent().then(() => {\n if (!this.isBatchMode()) {\n // TODO: provide pave context menu as in v6\n if (settings.ContextMenu && this.paveContextMenu)\n this.draw_g.on('contextmenu', evnt => this.paveContextMenu(evnt));\n\n addDragHandler(this, { x: pave_x, y: pave_y, width: pave_width, height: pave_height,\n minwidth: 20, minheight: 20, redraw: d => this.sizeChanged(d) });\n }\n\n return this;\n });\n }\n\n /** @summary Process interactive moving of the stats box */\n sizeChanged(drag) {\n this.pave_width = drag.width;\n this.pave_height = drag.height;\n\n const pave_x = drag.x,\n pave_y = drag.y,\n rect = this.getPadPainter().getPadRect(),\n fr = this.onFrame ? this.getFramePainter().getFrameRect() : rect,\n changes = {};\n let offsetx = 0, offsety = 0;\n\n switch (this.corner) {\n case ECorner.kTopLeft:\n offsetx = pave_x - fr.x;\n offsety = pave_y - fr.y;\n break;\n case ECorner.kBottomLeft:\n offsetx = pave_x - fr.x;\n offsety = fr.y + fr.height - pave_y - this.pave_height;\n break;\n case ECorner.kBottomRight:\n offsetx = fr.x + fr.width - pave_x - this.pave_width;\n offsety = fr.y + fr.height - pave_y - this.pave_height;\n break;\n case ECorner.kTopRight:\n default:\n offsetx = fr.x + fr.width - pave_x - this.pave_width;\n offsety = pave_y - fr.y;\n }\n\n this.v7AttrChange(changes, 'offsetX', offsetx / rect.width);\n this.v7AttrChange(changes, 'offsetY', offsety / rect.height);\n this.v7AttrChange(changes, 'width', this.pave_width / rect.width);\n this.v7AttrChange(changes, 'height', this.pave_height / rect.height);\n this.v7SendAttrChanges(changes, false); // do not invoke canvas update on the server\n\n this.draw_g.selectChild('rect')\n .attr('width', this.pave_width)\n .attr('height', this.pave_height);\n\n this.drawContent();\n }\n\n /** @summary Redraw RPave object */\n async redraw(/* reason */) {\n return this.drawPave();\n }\n\n /** @summary draw RPave object */\n static async draw(dom, pave, opt) {\n const painter = new RPavePainter(dom, pave, opt, 'pave');\n return ensureRCanvas(painter, false).then(() => painter.drawPave());\n }\n\n}\n\n\n/**\n * @summary Painter for RLegend class\n *\n * @private\n */\n\nclass RLegendPainter extends RPavePainter {\n\n /** @summary draw RLegend content */\n async drawContent() {\n const legend = this.getObject(),\n textFont = this.v7EvalFont('text', { size: 12, color: 'black', align: 22 }),\n width = this.pave_width,\n height = this.pave_height,\n pp = this.getPadPainter();\n\n let nlines = legend.fEntries.length;\n if (legend.fTitle) nlines++;\n\n if (!nlines || !pp) return this;\n\n const stepy = height / nlines, margin_x = 0.02 * width;\n let posy = 0;\n\n textFont.setSize(height/(nlines * 1.2));\n this.startTextDrawing(textFont, 'font');\n\n if (legend.fTitle) {\n this.drawText({ latex: 1, width: width - 2*margin_x, height: stepy, x: margin_x, y: posy, text: legend.fTitle });\n posy += stepy;\n }\n\n for (let i = 0; i < legend.fEntries.length; ++i) {\n const entry = legend.fEntries[i], w4 = Math.round(width/4);\n let objp = null;\n\n this.drawText({ latex: 1, width: 0.75*width - 3*margin_x, height: stepy, x: 2*margin_x + w4, y: posy, text: entry.fLabel });\n\n if (entry.fDrawableId !== 'custom')\n objp = pp.findSnap(entry.fDrawableId, true);\n else if (entry.fDrawable.fIO) {\n objp = new RObjectPainter(this.getDom(), entry.fDrawable.fIO);\n if (entry.fLine) objp.createv7AttLine();\n if (entry.fFill) objp.createv7AttFill();\n if (entry.fMarker) objp.createv7AttMarker();\n }\n\n if (entry.fFill && objp?.fillatt) {\n this.draw_g\n .append('svg:path')\n .attr('d', `M${Math.round(margin_x)},${Math.round(posy + stepy*0.1)}h${w4}v${Math.round(stepy*0.8)}h${-w4}z`)\n .call(objp.fillatt.func);\n }\n\n if (entry.fLine && objp?.lineatt) {\n this.draw_g\n .append('svg:path')\n .attr('d', `M${Math.round(margin_x)},${Math.round(posy + stepy/2)}h${w4}`)\n .call(objp.lineatt.func);\n }\n\n if (entry.fError && objp?.lineatt) {\n this.draw_g\n .append('svg:path')\n .attr('d', `M${Math.round(margin_x + width/8)},${Math.round(posy + stepy*0.2)}v${Math.round(stepy*0.6)}`)\n .call(objp.lineatt.func);\n }\n\n if (entry.fMarker && objp?.markeratt) {\n this.draw_g.append('svg:path')\n .attr('d', objp.markeratt.create(margin_x + width/8, posy + stepy/2))\n .call(objp.markeratt.func);\n }\n\n posy += stepy;\n }\n\n return this.finishTextDrawing();\n }\n\n /** @summary draw RLegend object */\n static async draw(dom, legend, opt) {\n const painter = new RLegendPainter(dom, legend, opt, 'legend');\n return ensureRCanvas(painter, false).then(() => painter.drawPave());\n }\n\n} // class RLegendPainter\n\n\n/**\n * @summary Painter for RPaveText class\n *\n * @private\n */\n\nclass RPaveTextPainter extends RPavePainter {\n\n /** @summary draw RPaveText content */\n drawContent() {\n const pavetext = this.getObject(),\n textFont = this.v7EvalFont('text', { size: 12, color: 'black', align: 22 }),\n width = this.pave_width,\n height = this.pave_height,\n nlines = pavetext.fText.length;\n\n if (!nlines) return;\n\n const stepy = height / nlines, margin_x = 0.02 * width;\n let posy = 0;\n\n textFont.setSize(height/(nlines * 1.2));\n\n this.startTextDrawing(textFont, 'font');\n\n for (let i = 0; i < pavetext.fText.length; ++i) {\n const line = pavetext.fText[i];\n\n this.drawText({ latex: 1, width: width - 2*margin_x, height: stepy, x: margin_x, y: posy, text: line });\n posy += stepy;\n }\n\n return this.finishTextDrawing(undefined, true);\n }\n\n /** @summary draw RPaveText object */\n static async draw(dom, pave, opt) {\n const painter = new RPaveTextPainter(dom, pave, opt, 'pavetext');\n return ensureRCanvas(painter, false).then(() => painter.drawPave());\n }\n\n} // class RPaveTextPainter\n\n/**\n * @summary Painter for RHistStats class\n *\n * @private\n */\n\nclass RHistStatsPainter extends RPavePainter {\n\n /** @summary clear entries from stat box */\n clearStat() {\n this.stats_lines = [];\n }\n\n /** @summary add text entry to stat box */\n addText(line) {\n this.stats_lines.push(line);\n }\n\n /** @summary update statistic from the server */\n updateStatistic(reply) {\n this.stats_lines = reply.lines;\n this.drawStatistic(this.stats_lines);\n }\n\n /** @summary fill statistic */\n fillStatistic() {\n const pp = this.getPadPainter();\n if (pp?._fast_drawing) return false;\n\n const obj = this.getObject();\n if (obj.fLines !== undefined) {\n this.stats_lines = obj.fLines;\n delete obj.fLines;\n return true;\n }\n\n if (this.v7OfflineMode()) {\n const main = this.getMainPainter();\n if (!isFunc(main?.fillStatistic)) return false;\n // we take statistic from main painter\n return main.fillStatistic(this, gStyle.fOptStat, gStyle.fOptFit);\n }\n\n // show lines which are exists, maybe server request will be recieved later\n return (this.stats_lines !== undefined);\n }\n\n /** @summary format float value as string\n * @private */\n format(value, fmt) {\n if (!fmt) fmt = 'stat';\n\n switch (fmt) {\n case 'stat' : fmt = gStyle.fStatFormat; break;\n case 'fit': fmt = gStyle.fFitFormat; break;\n case 'entries': if ((Math.abs(value) < 1e9) && (Math.round(value) === value)) return value.toFixed(0); fmt = '14.7g'; break;\n case 'last': fmt = this.lastformat; break;\n }\n\n const res = floatToString(value, fmt || '6.4g', true);\n\n this.lastformat = res[1];\n\n return res[0];\n }\n\n /** @summary Draw content */\n async drawContent() {\n if (this.fillStatistic())\n return this.drawStatistic(this.stats_lines);\n\n return this;\n }\n\n /** @summary Change mask */\n changeMask(nbit) {\n const obj = this.getObject(), mask = (1< {\n const obj = this.getObject(),\n action = this.changeMask.bind(this);\n\n menu.add('header: StatBox');\n\n for (let n=0; n menu.show());\n }\n\n /** @summary Draw statistic */\n async drawStatistic(lines) {\n if (!lines) return this;\n const textFont = this.v7EvalFont('stats_text', { size: 12, color: 'black', align: 22 }),\n width = this.pave_width,\n height = this.pave_height,\n nlines = lines.length;\n let first_stat = 0, num_cols = 0, maxlen = 0;\n\n // adjust font size\n for (let j = 0; j < nlines; ++j) {\n const line = lines[j];\n if (j > 0) maxlen = Math.max(maxlen, line.length);\n if ((j === 0) || (line.indexOf('|') < 0)) continue;\n if (first_stat === 0) first_stat = j;\n const parts = line.split('|');\n if (parts.length > num_cols)\n num_cols = parts.length;\n }\n\n // for characters like 'p' or 'y' several more pixels required to stay in the box when drawn in last line\n const stepy = height / nlines, margin_x = 0.02 * width;\n let has_head = false,\n text_g = this.draw_g.selectChild('.statlines');\n if (text_g.empty())\n text_g = this.draw_g.append('svg:g').attr('class', 'statlines');\n else\n text_g.selectAll('*').remove();\n\n textFont.setSize(height/(nlines * 1.2));\n this.startTextDrawing(textFont, 'font', text_g);\n\n if (nlines === 1)\n this.drawText({ width, height, text: lines[0], latex: 1, draw_g: text_g });\n else {\n for (let j = 0; j < nlines; ++j) {\n const posy = j*stepy;\n\n if (first_stat && (j >= first_stat)) {\n const parts = lines[j].split('|');\n for (let n = 0; n < parts.length; ++n) {\n this.drawText({ align: 'middle', x: width * n / num_cols, y: posy, latex: 0,\n width: width/num_cols, height: stepy, text: parts[n], draw_g: text_g });\n }\n } else if (lines[j].indexOf('=') < 0) {\n if (j === 0) {\n has_head = true;\n const max_hlen = Math.max(maxlen, Math.round((width-2*margin_x)/stepy/0.65));\n if (lines[j].length > max_hlen + 5)\n lines[j] = lines[j].slice(0, max_hlen+2) + '...';\n }\n this.drawText({ align: (j === 0) ? 'middle' : 'start', x: margin_x, y: posy,\n width: width - 2*margin_x, height: stepy, text: lines[j], draw_g: text_g });\n } else {\n const parts = lines[j].split('='), args = [];\n\n for (let n = 0; n < 2; ++n) {\n const arg = {\n align: (n === 0) ? 'start' : 'end', x: margin_x, y: posy,\n width: width-2*margin_x, height: stepy, text: parts[n], draw_g: text_g,\n _expected_width: width-2*margin_x, _args: args,\n post_process(painter) {\n if (this._args[0].ready && this._args[1].ready)\n painter.scaleTextDrawing(1.05*(this._args[0].result_width && this._args[1].result_width)/this.__expected_width, this.draw_g);\n }\n };\n args.push(arg);\n }\n\n for (let n = 0; n < 2; ++n)\n this.drawText(args[n]);\n }\n }\n }\n\n let lpath = '';\n\n if (has_head)\n lpath += 'M0,' + Math.round(stepy) + 'h' + width;\n\n if ((first_stat > 0) && (num_cols > 1)) {\n for (let nrow = first_stat; nrow < nlines; ++nrow)\n lpath += 'M0,' + Math.round(nrow * stepy) + 'h' + width;\n for (let ncol = 0; ncol < num_cols - 1; ++ncol)\n lpath += 'M' + Math.round(width / num_cols * (ncol + 1)) + ',' + Math.round(first_stat * stepy) + 'V' + height;\n }\n\n if (lpath) this.draw_g.append('svg:path').attr('d', lpath);\n\n return this.finishTextDrawing(text_g);\n }\n\n /** @summary Redraw stats box */\n async redraw(reason) {\n if (reason && isStr(reason) && (reason.indexOf('zoom') === 0) && this.v7NormalMode()) {\n const req = {\n _typename: `${nsREX}RHistStatBoxBase::RRequest`,\n mask: this.getObject().fShowMask // lines to show in stat box\n };\n\n this.v7SubmitRequest('stat', req, reply => this.updateStatistic(reply));\n }\n\n return this.drawPave();\n }\n\n /** @summary draw RHistStats object */\n static async draw(dom, stats, opt) {\n const painter = new RHistStatsPainter(dom, stats, opt, stats);\n return ensureRCanvas(painter, false).then(() => painter.drawPave());\n }\n\n} // class RHistStatsPainter\n\nexport { RPavePainter, RLegendPainter, RPaveTextPainter, RHistStatsPainter };\n"],"x_google_ignoreList":[0]} \ No newline at end of file diff --git a/docs/445.0bd149367b81e640.js b/docs/445.0bd149367b81e640.js new file mode 100644 index 00000000..5dfcc5f4 --- /dev/null +++ b/docs/445.0bd149367b81e640.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkphoenix_app=self.webpackChunkphoenix_app||[]).push([[445],{9445:(S,P,g)=>{g.r(P),g.d(P,{TWebPaintingPainter:()=>m});var O=g(4882),B=g(2985),M=g(1922);class m extends M.JW{updateObject(e){return!!this.matchObjectType(e)&&(this.assignObject(e),!0)}redraw(){var e=this;return(0,O.A)(function*(){const r=e.getObject(),n=e.getAxisToSvgFunc();if(!r?.fOper||!n)return;let x,T,a,i=0,f={},p=null,b="none",_="";const c=r.fOper.split(";"),u=t=>{if(t!==b&&(p&&(p.attr("d",_),_="",p=null,b="none"),t))switch(b=t,p=e.draw_g.append("svg:path"),t){case"f":p.call(e.fillatt.func);break;case"l":p.call(e.lineatt.func).style("fill","none");break;case"m":p.call(e.markeratt.func)}},y=(t,h)=>{let s=0;const o={_typename:"any"};for(let l=0;ls?d:void 0)),s=d}return o},A=t=>{for(;++t0?"L":"M"}${n.x(r.fBuf[i++])},${n.y(r.fBuf[i++])}`;"f"===x&&(_+="Z");continue;case"m":for(u(x),T=parseInt(c[t].slice(1)),e.markeratt.resetPos(),a=0;a1?f.fTextSize:e.getPadPainter().getPadHeight()*f.fTextSize,s=e.draw_g.append("svg:g");let o=f.fTextAngle,l=c[t].slice(1);if(o>=360&&(o-=360*Math.floor(o/360)),e.startTextDrawing(f.fTextFont,h,s),"h"===x){let d="";for(a=0;aA(t))}continue;default:console.log(`unsupported operation ${x}`)}return Promise.resolve(!0)};return e.createG(),A(-1).then(()=>(u(),e))})()}static draw(e,r){return(0,O.A)(function*(){const n=new m(e,r);return n.addToPadPrimitives(),n.redraw()})()}}}}]); +//# sourceMappingURL=445.0bd149367b81e640.js.map \ No newline at end of file diff --git a/docs/445.aae8e411c010fff4.js.map b/docs/445.0bd149367b81e640.js.map similarity index 99% rename from docs/445.aae8e411c010fff4.js.map rename to docs/445.0bd149367b81e640.js.map index 6068592f..1c0a7174 100644 --- a/docs/445.aae8e411c010fff4.js.map +++ b/docs/445.0bd149367b81e640.js.map @@ -1 +1 @@ -{"version":3,"file":"445.aae8e411c010fff4.js","mappings":"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","names":["TWebPaintingPainter","ObjectPainter","updateObject","obj","this","matchObjectType","assignObject","redraw","_this","_asyncToGenerator","getObject","func","getAxisToSvgFunc","fOper","oper","npoints","n","indx","attr","lastpath","lastkind","d","arr","split","check_attributes","kind","draw_g","append","call","fillatt","lineatt","style","markeratt","read_attr","str","names","lastp","_typename","k","length","p","indexOf","parseInt","slice","undefined","process","createAttLine","force","createAttFill","createAttMarker","fTextSize","x1","x","fBuf","y1","y","x2","y2","resetPos","create","height","getPadPainter","getPadHeight","group","angle","fTextAngle","txt","Math","floor","startTextDrawing","fTextFont","res","String","fromCharCode","drawText","align","fTextAlign","rotate","text","color","getColor","fTextColor","latex","finishTextDrawing","then","console","log","Promise","resolve","createG","draw","dom","painter","addToPadPrimitives"],"ignoreList":[],"sourceRoot":"webpack:///","sources":["../node_modules/jsroot/modules/draw/TWebPaintingPainter.mjs"],"sourcesContent":["import { getColor } from '../base/colors.mjs';\nimport { ObjectPainter } from '../base/ObjectPainter.mjs';\n\n\n/** @summary Draw direct TVirtualX commands into SVG\n * @private */\n\nclass TWebPaintingPainter extends ObjectPainter {\n\n /** @summary Update TWebPainting object */\n updateObject(obj) {\n if (!this.matchObjectType(obj)) return false;\n this.assignObject(obj);\n return true;\n }\n\n /** @summary draw TWebPainting object */\n async redraw() {\n const obj = this.getObject(), func = this.getAxisToSvgFunc();\n\n if (!obj?.fOper || !func) return;\n\n let indx = 0, attr = {}, lastpath = null, lastkind = 'none', d = '',\n oper, npoints, n;\n\n const arr = obj.fOper.split(';'),\n check_attributes = kind => {\n if (kind === lastkind) return;\n\n if (lastpath) {\n lastpath.attr('d', d); // flush previous\n d = ''; lastpath = null; lastkind = 'none';\n }\n\n if (!kind) return;\n\n lastkind = kind;\n lastpath = this.draw_g.append('svg:path');\n switch (kind) {\n case 'f': lastpath.call(this.fillatt.func); break;\n case 'l': lastpath.call(this.lineatt.func).style('fill', 'none'); break;\n case 'm': lastpath.call(this.markeratt.func); break;\n }\n }, read_attr = (str, names) => {\n let lastp = 0;\n const obj = { _typename: 'any' };\n for (let k = 0; k < names.length; ++k) {\n const p = str.indexOf(':', lastp+1);\n obj[names[k]] = parseInt(str.slice(lastp+1, (p > lastp) ? p : undefined));\n lastp = p;\n }\n return obj;\n }, process = k => {\n while (++k < arr.length) {\n oper = arr[k][0];\n switch (oper) {\n case 'z':\n this.createAttLine({ attr: read_attr(arr[k], ['fLineColor', 'fLineStyle', 'fLineWidth']), force: true });\n check_attributes();\n continue;\n case 'y':\n this.createAttFill({ attr: read_attr(arr[k], ['fFillColor', 'fFillStyle']), force: true });\n check_attributes();\n continue;\n case 'x':\n this.createAttMarker({ attr: read_attr(arr[k], ['fMarkerColor', 'fMarkerStyle', 'fMarkerSize']), force: true });\n check_attributes();\n continue;\n case 'o':\n attr = read_attr(arr[k], ['fTextColor', 'fTextFont', 'fTextSize', 'fTextAlign', 'fTextAngle']);\n if (attr.fTextSize < 0) attr.fTextSize *= -0.001;\n check_attributes();\n continue;\n case 'r':\n case 'b': {\n check_attributes((oper === 'b') ? 'f' : 'l');\n\n const x1 = func.x(obj.fBuf[indx++]),\n y1 = func.y(obj.fBuf[indx++]),\n x2 = func.x(obj.fBuf[indx++]),\n y2 = func.y(obj.fBuf[indx++]);\n\n d += `M${x1},${y1}h${x2-x1}v${y2-y1}h${x1-x2}z`;\n\n continue;\n }\n case 'l':\n case 'f': {\n check_attributes(oper);\n\n npoints = parseInt(arr[k].slice(1));\n\n for (n = 0; n < npoints; ++n)\n d += `${(n>0)?'L':'M'}${func.x(obj.fBuf[indx++])},${func.y(obj.fBuf[indx++])}`;\n\n if (oper === 'f') d += 'Z';\n\n continue;\n }\n\n case 'm': {\n check_attributes(oper);\n\n npoints = parseInt(arr[k].slice(1));\n\n this.markeratt.resetPos();\n for (n = 0; n < npoints; ++n)\n d += this.markeratt.create(func.x(obj.fBuf[indx++]), func.y(obj.fBuf[indx++]));\n\n continue;\n }\n\n case 'h':\n case 't': {\n if (attr.fTextSize) {\n check_attributes();\n\n const height = (attr.fTextSize > 1) ? attr.fTextSize : this.getPadPainter().getPadHeight() * attr.fTextSize,\n group = this.draw_g.append('svg:g');\n let angle = attr.fTextAngle,\n txt = arr[k].slice(1);\n\n if (angle >= 360) angle -= Math.floor(angle/360) * 360;\n\n this.startTextDrawing(attr.fTextFont, height, group);\n\n if (oper === 'h') {\n let res = '';\n for (n = 0; n < txt.length; n += 2)\n res += String.fromCharCode(parseInt(txt.slice(n, n+2), 16));\n txt = res;\n }\n\n // todo - correct support of angle\n this.drawText({ align: attr.fTextAlign,\n x: func.x(obj.fBuf[indx++]),\n y: func.y(obj.fBuf[indx++]),\n rotate: -angle,\n text: txt,\n color: getColor(attr.fTextColor),\n latex: 0, draw_g: group });\n\n return this.finishTextDrawing(group).then(() => process(k));\n }\n continue;\n }\n\n default:\n console.log(`unsupported operation ${oper}`);\n }\n }\n\n return Promise.resolve(true);\n };\n\n this.createG();\n\n return process(-1).then(() => { check_attributes(); return this; });\n }\n\n static async draw(dom, obj) {\n const painter = new TWebPaintingPainter(dom, obj);\n painter.addToPadPrimitives();\n return painter.redraw();\n }\n\n} // class TWebPaintingPainter\n\nexport { TWebPaintingPainter };\n"],"x_google_ignoreList":[0]} \ No newline at end of file +{"version":3,"file":"445.0bd149367b81e640.js","mappings":"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","names":["TWebPaintingPainter","ObjectPainter","updateObject","obj","this","matchObjectType","assignObject","redraw","_this","_asyncToGenerator","getObject","func","getAxisToSvgFunc","fOper","oper","npoints","n","indx","attr","lastpath","lastkind","d","arr","split","check_attributes","kind","draw_g","append","call","fillatt","lineatt","style","markeratt","read_attr","str","names","lastp","_typename","k","length","p","indexOf","parseInt","slice","undefined","process","createAttLine","force","createAttFill","createAttMarker","fTextSize","x1","x","fBuf","y1","y","x2","y2","resetPos","create","height","getPadPainter","getPadHeight","group","angle","fTextAngle","txt","Math","floor","startTextDrawing","fTextFont","res","String","fromCharCode","drawText","align","fTextAlign","rotate","text","color","getColor","fTextColor","latex","finishTextDrawing","then","console","log","Promise","resolve","createG","draw","dom","painter","addToPadPrimitives"],"ignoreList":[],"sourceRoot":"webpack:///","sources":["../node_modules/jsroot/modules/draw/TWebPaintingPainter.mjs"],"sourcesContent":["import { getColor } from '../base/colors.mjs';\nimport { ObjectPainter } from '../base/ObjectPainter.mjs';\n\n\n/** @summary Draw direct TVirtualX commands into SVG\n * @private */\n\nclass TWebPaintingPainter extends ObjectPainter {\n\n /** @summary Update TWebPainting object */\n updateObject(obj) {\n if (!this.matchObjectType(obj)) return false;\n this.assignObject(obj);\n return true;\n }\n\n /** @summary draw TWebPainting object */\n async redraw() {\n const obj = this.getObject(), func = this.getAxisToSvgFunc();\n\n if (!obj?.fOper || !func) return;\n\n let indx = 0, attr = {}, lastpath = null, lastkind = 'none', d = '',\n oper, npoints, n;\n\n const arr = obj.fOper.split(';'),\n check_attributes = kind => {\n if (kind === lastkind) return;\n\n if (lastpath) {\n lastpath.attr('d', d); // flush previous\n d = ''; lastpath = null; lastkind = 'none';\n }\n\n if (!kind) return;\n\n lastkind = kind;\n lastpath = this.draw_g.append('svg:path');\n switch (kind) {\n case 'f': lastpath.call(this.fillatt.func); break;\n case 'l': lastpath.call(this.lineatt.func).style('fill', 'none'); break;\n case 'm': lastpath.call(this.markeratt.func); break;\n }\n }, read_attr = (str, names) => {\n let lastp = 0;\n const obj = { _typename: 'any' };\n for (let k = 0; k < names.length; ++k) {\n const p = str.indexOf(':', lastp+1);\n obj[names[k]] = parseInt(str.slice(lastp+1, (p > lastp) ? p : undefined));\n lastp = p;\n }\n return obj;\n }, process = k => {\n while (++k < arr.length) {\n oper = arr[k][0];\n switch (oper) {\n case 'z':\n this.createAttLine({ attr: read_attr(arr[k], ['fLineColor', 'fLineStyle', 'fLineWidth']), force: true });\n check_attributes();\n continue;\n case 'y':\n this.createAttFill({ attr: read_attr(arr[k], ['fFillColor', 'fFillStyle']), force: true });\n check_attributes();\n continue;\n case 'x':\n this.createAttMarker({ attr: read_attr(arr[k], ['fMarkerColor', 'fMarkerStyle', 'fMarkerSize']), force: true });\n check_attributes();\n continue;\n case 'o':\n attr = read_attr(arr[k], ['fTextColor', 'fTextFont', 'fTextSize', 'fTextAlign', 'fTextAngle']);\n if (attr.fTextSize < 0) attr.fTextSize *= -0.001;\n check_attributes();\n continue;\n case 'r':\n case 'b': {\n check_attributes((oper === 'b') ? 'f' : 'l');\n\n const x1 = func.x(obj.fBuf[indx++]),\n y1 = func.y(obj.fBuf[indx++]),\n x2 = func.x(obj.fBuf[indx++]),\n y2 = func.y(obj.fBuf[indx++]);\n\n d += `M${x1},${y1}h${x2-x1}v${y2-y1}h${x1-x2}z`;\n\n continue;\n }\n case 'l':\n case 'f': {\n check_attributes(oper);\n\n npoints = parseInt(arr[k].slice(1));\n\n for (n = 0; n < npoints; ++n)\n d += `${(n>0)?'L':'M'}${func.x(obj.fBuf[indx++])},${func.y(obj.fBuf[indx++])}`;\n\n if (oper === 'f') d += 'Z';\n\n continue;\n }\n\n case 'm': {\n check_attributes(oper);\n\n npoints = parseInt(arr[k].slice(1));\n\n this.markeratt.resetPos();\n for (n = 0; n < npoints; ++n)\n d += this.markeratt.create(func.x(obj.fBuf[indx++]), func.y(obj.fBuf[indx++]));\n\n continue;\n }\n\n case 'h':\n case 't': {\n if (attr.fTextSize) {\n check_attributes();\n\n const height = (attr.fTextSize > 1) ? attr.fTextSize : this.getPadPainter().getPadHeight() * attr.fTextSize,\n group = this.draw_g.append('svg:g');\n let angle = attr.fTextAngle,\n txt = arr[k].slice(1);\n\n if (angle >= 360) angle -= Math.floor(angle/360) * 360;\n\n this.startTextDrawing(attr.fTextFont, height, group);\n\n if (oper === 'h') {\n let res = '';\n for (n = 0; n < txt.length; n += 2)\n res += String.fromCharCode(parseInt(txt.slice(n, n+2), 16));\n txt = res;\n }\n\n // todo - correct support of angle\n this.drawText({ align: attr.fTextAlign,\n x: func.x(obj.fBuf[indx++]),\n y: func.y(obj.fBuf[indx++]),\n rotate: -angle,\n text: txt,\n color: getColor(attr.fTextColor),\n latex: 0, draw_g: group });\n\n return this.finishTextDrawing(group).then(() => process(k));\n }\n continue;\n }\n\n default:\n console.log(`unsupported operation ${oper}`);\n }\n }\n\n return Promise.resolve(true);\n };\n\n this.createG();\n\n return process(-1).then(() => { check_attributes(); return this; });\n }\n\n static async draw(dom, obj) {\n const painter = new TWebPaintingPainter(dom, obj);\n painter.addToPadPrimitives();\n return painter.redraw();\n }\n\n} // class TWebPaintingPainter\n\nexport { TWebPaintingPainter };\n"],"x_google_ignoreList":[0]} \ No newline at end of file diff --git a/docs/445.aae8e411c010fff4.js b/docs/445.aae8e411c010fff4.js deleted file mode 100644 index dd3b6691..00000000 --- a/docs/445.aae8e411c010fff4.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkphoenix_app=self.webpackChunkphoenix_app||[]).push([[445],{9445:(M,P,g)=>{g.r(P),g.d(P,{TWebPaintingPainter:()=>b});var O=g(4882),A=g(2985),B=g(1922);class b extends B.JW{updateObject(e){return!!this.matchObjectType(e)&&(this.assignObject(e),!0)}redraw(){var e=this;return(0,O.A)(function*(){const r=e.getObject(),n=e.getAxisToSvgFunc();if(!r?.fOper||!n)return;let x,T,a,s=0,f={},p=null,m="none",_="";const c=r.fOper.split(";"),u=t=>{if(t!==m&&(p&&(p.attr("d",_),_="",p=null,m="none"),t))switch(m=t,p=e.draw_g.append("svg:path"),t){case"f":p.call(e.fillatt.func);break;case"l":p.call(e.lineatt.func).style("fill","none");break;case"m":p.call(e.markeratt.func)}},y=(t,h)=>{let i=0;const o={_typename:"any"};for(let l=0;li?d:void 0)),i=d}return o},w=t=>{for(;++t0?"L":"M"}${n.x(r.fBuf[s++])},${n.y(r.fBuf[s++])}`;"f"===x&&(_+="Z");continue;case"m":for(u(x),T=parseInt(c[t].slice(1)),e.markeratt.resetPos(),a=0;a1?f.fTextSize:e.getPadPainter().getPadHeight()*f.fTextSize,i=e.draw_g.append("svg:g");let o=f.fTextAngle,l=c[t].slice(1);if(o>=360&&(o-=360*Math.floor(o/360)),e.startTextDrawing(f.fTextFont,h,i),"h"===x){let d="";for(a=0;aw(t))}continue;default:console.log(`unsupported operation ${x}`)}return Promise.resolve(!0)};return e.createG(),w(-1).then(()=>(u(),e))})()}static draw(e,r){return(0,O.A)(function*(){const n=new b(e,r);return n.addToPadPrimitives(),n.redraw()})()}}}}]); -//# sourceMappingURL=445.aae8e411c010fff4.js.map \ No newline at end of file diff --git a/docs/508.b61c4b3ff633840c.js b/docs/508.04708c136a42ee44.js similarity index 84% rename from docs/508.b61c4b3ff633840c.js rename to docs/508.04708c136a42ee44.js index d54eb128..dbe1eb76 100644 --- a/docs/508.b61c4b3ff633840c.js +++ b/docs/508.04708c136a42ee44.js @@ -1,2 +1,2 @@ -"use strict";(self.webpackChunkphoenix_app=self.webpackChunkphoenix_app||[]).push([[508],{1508:(D,y,o)=>{o.r(y),o.d(y,{TEfficiencyPainter:()=>E});var H=o(4882),l=o(8872),A=o(1922),p=o(2679),M=o(8868),x=o(9997),C=o(6983);const T=(0,l.BIT)(14),L=(0,l.BIT)(15),B=(0,l.BIT)(17),w=(0,l.BIT)(18),m=(_,t)=>_.fBeta_bin_params.length>t?_.fBeta_bin_params[t].first:_.fBeta_alpha,u=(_,t)=>_.fBeta_bin_params.length>t?_.fBeta_bin_params[t].second:_.fBeta_beta;class E extends A.JW{getEfficiency(t,a){const r=t.fTotalHistogram.fArray[a],f=t.fPassedHistogram.fArray[a];if(t.TestBit(T)){const e=t.TestBit(B)?m(t,a):t.fBeta_alpha,n=t.TestBit(B)?u(t,a):t.fBeta_beta;let c,h;if(t.TestBit(w)){const g=r,P=t.fTotalHistogram.fSumw2?t.fTotalHistogram.fSumw2[a]:Math.abs(r);if(P<=0)return f/g;const O=g/P;c=f*O+e,h=(g-f)*O+n}else c=f+e,h=r-f+n;return t.TestBit(L)?((e,n)=>{if(e<=0||n<=0)return 0;if(e<=1||n<=1){if(en)return 1;if(e===n)return.5}return(e-1)/(e+n-2)})(c,h):((e,n)=>e<=0||n<=0?0:e/(e+n))(c,h)}return r?f/r:0}getEfficiencyErrorLow(t,a,i){const s=t.fTotalHistogram.fArray[a],r=t.fPassedHistogram.fArray[a];let f=0,e=0;return t.TestBit(T)&&(f=t.TestBit(B)?m(t,a):t.fBeta_alpha,e=t.TestBit(B)?u(t,a):t.fBeta_beta),i-this.fBoundary(s,r,t.fConfLevel,!1,f,e)}getEfficiencyErrorUp(t,a,i){const s=t.fTotalHistogram.fArray[a],r=t.fPassedHistogram.fArray[a];let f=0,e=0;return t.TestBit(T)&&(f=t.TestBit(B)?m(t,a):t.fBeta_alpha,e=t.TestBit(B)?u(t,a):t.fBeta_beta),this.fBoundary(s,r,t.fConfLevel,!0,f,e)-i}copyAttributes(t,a){["fLineColor","fLineStyle","fLineWidth","fFillColor","fFillStyle","fMarkerColor","fMarkerStyle","fMarkerSize"].forEach(i=>{t[i]=a[i]})}createGraph(){const t=(0,l.create)(p.clTGraphAsymmErrors);return t.fName="eff_graph",t}createHisto(t){const s=(0,l.createHistogram)(l.clTH2F,t.fTotalHistogram.fXaxis.fNbins,t.fTotalHistogram.fYaxis.fNbins);return Object.assign(s.fXaxis,t.fTotalHistogram.fXaxis),Object.assign(s.fYaxis,t.fTotalHistogram.fYaxis),s.fName="eff_histo",s}fillGraph(t,a){const i=this.getObject(),s=i.fTotalHistogram.fXaxis,r=s.fNbins,f=a.indexOf("e0")>=0;for(let e=0,n=0;e=a.fFunctions.arr.length?this:M.TF1Painter.draw(this.getDom(),a.fFunctions.arr[t],a.fFunctions.opt[t]).then(()=>this.drawFunction(t+1))}static draw(t,a,i){return(0,H.A)(function*(){if(!a||!a.fTotalHistogram)return null;(!i||!(0,l.isStr)(i))&&(i=""),i=i.toLowerCase();let s=0;if(0===a.fTotalHistogram._typename.indexOf(l.clTH1))s=1;else{if(0!==a.fTotalHistogram._typename.indexOf(l.clTH2))return null;s=2}const r=new E(t,a);let f;if(r.ndim=s,r.fBoundary=(0,C.getTEfficiencyBoundaryFunc)(a.fStatisticOption,a.TestBit(T)),1===s){i||(i="ap"),i.indexOf("same")<0&&i.indexOf("a")<0&&(i+="a"),i.indexOf("p")<0&&(i+="p");const e=r.createGraph(a);r.fillGraph(e,i),f=p.TGraphPainter.draw(t,e,i)}else{i||(i="col");const e=r.createHisto(a);r.fillHisto(e,i),f=x.AJ.draw(t,e,i)}return f.then(()=>(r.addToPadPrimitives(),r.drawFunction(0)))})()}}}}]); -//# sourceMappingURL=508.b61c4b3ff633840c.js.map \ No newline at end of file +"use strict";(self.webpackChunkphoenix_app=self.webpackChunkphoenix_app||[]).push([[508],{1508:(w,y,o)=>{o.r(y),o.d(y,{TEfficiencyPainter:()=>E});var H=o(4882),l=o(8872),A=o(1922),P=o(2679),M=o(8868),x=o(9997),C=o(6983);const T=(0,l.BIT)(14),L=(0,l.BIT)(15),B=(0,l.BIT)(17),D=(0,l.BIT)(18),m=(_,t)=>_.fBeta_bin_params.length>t?_.fBeta_bin_params[t].first:_.fBeta_alpha,u=(_,t)=>_.fBeta_bin_params.length>t?_.fBeta_bin_params[t].second:_.fBeta_beta;class E extends A.JW{getEfficiency(t,a){const r=t.fTotalHistogram.fArray[a],f=t.fPassedHistogram.fArray[a];if(t.TestBit(T)){const e=t.TestBit(B)?m(t,a):t.fBeta_alpha,n=t.TestBit(B)?u(t,a):t.fBeta_beta;let c,h;if(t.TestBit(D)){const g=r,p=t.fTotalHistogram.fSumw2?t.fTotalHistogram.fSumw2[a]:Math.abs(r);if(p<=0)return f/g;const O=g/p;c=f*O+e,h=(g-f)*O+n}else c=f+e,h=r-f+n;return t.TestBit(L)?((e,n)=>{if(e<=0||n<=0)return 0;if(e<=1||n<=1){if(en)return 1;if(e===n)return.5}return(e-1)/(e+n-2)})(c,h):((e,n)=>e<=0||n<=0?0:e/(e+n))(c,h)}return r?f/r:0}getEfficiencyErrorLow(t,a,i){const s=t.fTotalHistogram.fArray[a],r=t.fPassedHistogram.fArray[a];let f=0,e=0;return t.TestBit(T)&&(f=t.TestBit(B)?m(t,a):t.fBeta_alpha,e=t.TestBit(B)?u(t,a):t.fBeta_beta),i-this.fBoundary(s,r,t.fConfLevel,!1,f,e)}getEfficiencyErrorUp(t,a,i){const s=t.fTotalHistogram.fArray[a],r=t.fPassedHistogram.fArray[a];let f=0,e=0;return t.TestBit(T)&&(f=t.TestBit(B)?m(t,a):t.fBeta_alpha,e=t.TestBit(B)?u(t,a):t.fBeta_beta),this.fBoundary(s,r,t.fConfLevel,!0,f,e)-i}copyAttributes(t,a){["fLineColor","fLineStyle","fLineWidth","fFillColor","fFillStyle","fMarkerColor","fMarkerStyle","fMarkerSize"].forEach(i=>{t[i]=a[i]})}createGraph(){const t=(0,l.create)(P.clTGraphAsymmErrors);return t.fName="eff_graph",t}createHisto(t){const s=(0,l.createHistogram)(l.clTH2F,t.fTotalHistogram.fXaxis.fNbins,t.fTotalHistogram.fYaxis.fNbins);return Object.assign(s.fXaxis,t.fTotalHistogram.fXaxis),Object.assign(s.fYaxis,t.fTotalHistogram.fYaxis),s.fName="eff_histo",s}fillGraph(t,a){const i=this.getObject(),s=i.fTotalHistogram.fXaxis,r=s.fNbins,f=a.indexOf("e0")>=0;for(let e=0,n=0;e=a.fFunctions.arr.length?this:M.TF1Painter.draw(this.getDom(),a.fFunctions.arr[t],a.fFunctions.opt[t]).then(()=>this.drawFunction(t+1))}static draw(t,a,i){return(0,H.A)(function*(){if(!a||!a.fTotalHistogram)return null;(!i||!(0,l.isStr)(i))&&(i=""),i=i.toLowerCase();let s=0;if(0===a.fTotalHistogram._typename.indexOf(l.clTH1))s=1;else{if(0!==a.fTotalHistogram._typename.indexOf(l.clTH2))return null;s=2}const r=new E(t,a);let f;if(r.ndim=s,r.fBoundary=(0,C.getTEfficiencyBoundaryFunc)(a.fStatisticOption,a.TestBit(T)),1===s){i||(i="ap"),i.indexOf("same")<0&&i.indexOf("a")<0&&(i+="a"),i.indexOf("p")<0&&(i+="p");const e=r.createGraph(a);r.fillGraph(e,i),f=P.TGraphPainter.draw(t,e,i)}else{i||(i="col");const e=r.createHisto(a);r.fillHisto(e,i),f=x.AJ.draw(t,e,i)}return f.then(()=>(r.addToPadPrimitives(),r.drawFunction(0)))})()}}}}]); +//# sourceMappingURL=508.04708c136a42ee44.js.map \ No newline at end of file diff --git a/docs/508.b61c4b3ff633840c.js.map b/docs/508.04708c136a42ee44.js.map similarity index 99% rename from docs/508.b61c4b3ff633840c.js.map rename to docs/508.04708c136a42ee44.js.map index 0f623549..a4080abd 100644 --- a/docs/508.b61c4b3ff633840c.js.map +++ b/docs/508.04708c136a42ee44.js.map @@ -1 +1 @@ -{"version":3,"file":"508.b61c4b3ff633840c.js","mappings":"4NAQA,MAAMA,KAAcC,OAAI,IAClBC,KAAiBD,OAAI,IAErBE,KAAeF,OAAI,IACnBG,KAAcH,OAAI,IAClBI,EAAeA,CAACC,EAAKC,IAASD,EAAIE,iBAAiBC,OAASF,EAAOD,EAAIE,iBAAiBD,GAAKG,MAAQJ,EAAIK,YACzGC,EAAcA,CAACN,EAAKC,IAASD,EAAIE,iBAAiBC,OAASF,EAAOD,EAAIE,iBAAiBD,GAAKM,OAASP,EAAIQ,WAQ/G,MAAMC,UAA2BC,KAG9BC,cAAcX,EAAKC,GAChB,MAUAW,EAAQZ,EAAIa,gBAAgBC,OAAOb,GACnCc,EAASf,EAAIgB,iBAAiBF,OAAOb,GAErC,GAAID,EAAIiB,QAAQvB,GAAc,CAE3B,MAAMwB,EAAQlB,EAAIiB,QAAQpB,GAAgBE,EAAaC,EAAKC,GAAOD,EAAIK,YACjEc,EAAOnB,EAAIiB,QAAQpB,GAAgBS,EAAYN,EAAKC,GAAOD,EAAIQ,WAErE,IAAIY,EAAIC,EACR,GAAIrB,EAAIiB,QAAQnB,GAAc,CAC3B,MAAMwB,EAAKV,EACPW,EAAMvB,EAAIa,gBAAgBW,OAASxB,EAAIa,gBAAgBW,OAAOvB,GAAOwB,KAAKC,IAAId,GAGlF,GAAIW,GAAO,EAAG,OAFLR,EAEeO,EAGxB,MAAMK,EAAOL,EAAGC,EAChBH,EANSL,EAMCY,EAAOT,EACjBG,GAAMC,EAPGP,GAOQY,EAAOR,CAC3B,MACGC,EAAKL,EAASG,EACdG,EAAKT,EAAQG,EAASI,EAGzB,OAAKnB,EAAIiB,QAAQrB,GAlCHgC,EAACC,EAAGC,KAClB,GAAID,GAAK,GAAKC,GAAK,EAAG,OAAO,EAC7B,GAAID,GAAK,GAAKC,GAAK,EAAG,CACnB,GAAID,EAAIC,EAAG,OAAO,EAClB,GAAID,EAAIC,EAAG,OAAO,EAClB,GAAID,IAAMC,EAAG,MAAO,EACvB,CACA,OAAQD,EAAI,IAAQA,EAAIC,EAAG,IA8BjBF,CAASR,EAAIC,GAtCTU,EAACF,EAAGC,IAAOD,GAAK,GAAKC,GAAK,EAAK,EAAID,GAAKA,EAAIC,GAoChDC,CAASX,EAAIC,EAG1B,CAEA,OAAOT,EAAQG,EAAOH,EAAQ,CACjC,CAGAoB,sBAAsBhC,EAAKC,EAAKgC,GAC7B,MAAMrB,EAAQZ,EAAIa,gBAAgBC,OAAOb,GACnCc,EAASf,EAAIgB,iBAAiBF,OAAOb,GAC3C,IAAIiB,EAAQ,EAAGC,EAAO,EACtB,OAAInB,EAAIiB,QAAQvB,KACbwB,EAAQlB,EAAIiB,QAAQpB,GAAgBE,EAAaC,EAAKC,GAAOD,EAAIK,YACjEc,EAAOnB,EAAIiB,QAAQpB,GAAgBS,EAAYN,EAAKC,GAAOD,EAAIQ,YAG3DyB,EAAQC,KAAKC,UAAUvB,EAAOG,EAAQf,EAAIoC,YAAY,EAAOlB,EAAOC,EAC9E,CAGAkB,qBAAqBrC,EAAKC,EAAKgC,GAC5B,MAAMrB,EAAQZ,EAAIa,gBAAgBC,OAAOb,GACnCc,EAASf,EAAIgB,iBAAiBF,OAAOb,GAC3C,IAAIiB,EAAQ,EAAGC,EAAO,EACtB,OAAInB,EAAIiB,QAAQvB,KACbwB,EAAQlB,EAAIiB,QAAQpB,GAAgBE,EAAaC,EAAKC,GAAOD,EAAIK,YACjEc,EAAOnB,EAAIiB,QAAQpB,GAAgBS,EAAYN,EAAKC,GAAOD,EAAIQ,YAG3D0B,KAAKC,UAAUvB,EAAOG,EAAQf,EAAIoC,YAAY,EAAMlB,EAAOC,GAAQc,CAC7E,CAGAK,eAAetC,EAAKuC,GACjB,CAAC,aAAc,aAAc,aAAc,aAAc,aAAc,eAAgB,eAAgB,eAAeC,QAAQC,IAAUzC,EAAIyC,GAAQF,EAAIE,EAAI,EAC/J,CAGAC,cACG,MAAMC,KAAKC,UAAOC,uBAClBF,SAAGG,MAAQ,YACJH,CACV,CAGAI,YAAYR,GACT,MAEMS,KAAOC,mBAAgBC,SAFdX,EAAI1B,gBAAgBsC,OAAOC,OAC3Bb,EAAI1B,gBAAgBwC,OAAOD,QAE1CE,cAAOC,OAAOP,EAAKG,OAAQZ,EAAI1B,gBAAgBsC,QAC/CG,OAAOC,OAAOP,EAAKK,OAAQd,EAAI1B,gBAAgBwC,QAC/CL,EAAKF,MAAQ,YACNE,CACV,CAGAQ,UAAUb,EAAIc,GACX,MAAMlB,EAAML,KAAKwB,YACXC,EAAQpB,EAAI1B,gBAAgBsC,OAC5BS,EAAUD,EAAMP,OAChBS,EAAaJ,EAAIK,QAAQ,OAAS,EAExC,QAASC,EAAI,EAAGC,EAAI,EAAGD,EAAIH,IAAWG,EAAG,CACtC,IAAKF,GAAwD,IAA3CtB,EAAI1B,gBAAgBoD,cAAcF,EAAE,GAAU,SAEhE,MAAM9B,EAAQC,KAAKvB,cAAc4B,EAAKwB,EAAE,GAExCpB,EAAGuB,GAAGF,GAAKL,EAAMQ,aAAaJ,EAAE,GAChCpB,EAAGyB,GAAGJ,GAAK/B,EACXU,EAAG0B,OAAOL,GAAKL,EAAMQ,aAAaJ,EAAE,GAAKJ,EAAMW,cAAcP,EAAE,GAC/DpB,EAAG4B,QAAQP,GAAKL,EAAMW,cAAcP,EAAE,GAAKJ,EAAMQ,aAAaJ,EAAE,GAChEpB,EAAG6B,OAAOR,GAAK9B,KAAKF,sBAAsBO,EAAKwB,EAAE,EAAG9B,GACpDU,EAAG8B,QAAQT,GAAK9B,KAAKG,qBAAqBE,EAAKwB,EAAE,EAAG9B,GAEpDU,EAAG+B,WAAaV,CACnB,CAEArB,EAAGgC,OAASpC,EAAIoC,OAChBzC,KAAKI,eAAeK,EAAIJ,EAC3B,CAGAqC,UAAU5B,GACP,MAAMT,EAAML,KAAKwB,YACXmB,EAAS7B,EAAKG,OAAOC,OACrB0B,EAAS9B,EAAKK,OAAOD,OAE3B,QAAS2B,EAAI,EAAGA,EAAIF,EAAO,IAAKE,EAC7B,QAASf,EAAI,EAAGA,EAAIc,EAAO,IAAKd,EAAG,CAChC,MAAM/D,EAAM+C,EAAKgC,OAAOD,EAAGf,GACvB/B,EAAQC,KAAKvB,cAAc4B,EAAKtC,GACpC+C,EAAKlC,OAAOb,GAAOgC,CACtB,CAGHe,EAAK2B,OAASpC,EAAIoC,OAClB3B,EAAKiC,MAAQjC,EAAKiC,MAAQC,WAC1BhD,KAAKI,eAAeU,EAAMT,EAC7B,CAGA4C,aAAaC,GACV,MAAM7C,EAAML,KAAKwB,YAEjB,OAAKnB,GAAK8C,YAAeD,GAAQ7C,EAAI8C,WAAWC,IAAInF,OAC1C+B,KAEFqD,aAAWC,KAAKtD,KAAKuD,SAAUlD,EAAI8C,WAAWC,IAAIF,GAAO7C,EAAI8C,WAAW5B,IAAI2B,IAAOM,KAAK,IAAMxD,KAAKiD,aAAaC,EAAK,GAChI,CAGA,WAAaI,CAAKG,EAAKpD,EAAKkB,GAAK,SAAAmC,KAAA,YAC9B,IAAKrD,IAAQA,EAAI1B,gBACd,OAAO,OAEL4C,KAAO,EAACoC,SAAMpC,MAAMA,EAAM,IAC/BA,EAAMA,EAAIqC,cAEV,IAAIC,EAAO,EACX,GAAqD,IAAjDxD,EAAI1B,gBAAgBmF,UAAUlC,QAAQmC,SACvCF,EAAO,UACgD,IAAjDxD,EAAI1B,gBAAgBmF,UAAUlC,QAAQoC,SAG5C,OAAO,KAFPH,EAAO,CAEA,CAEV,MAAMI,EAAU,IAAI1F,EAAmBkF,EAAKpD,GAK5C,IAAI6D,EAEJ,GANAD,EAAQJ,KAAOA,EAEfI,EAAQhE,aAAYkE,8BAA2B9D,EAAI+D,iBAAkB/D,EAAItB,QAAQvB,IAIpE,IAATqG,EAAY,CACRtC,IAAKA,EAAM,MACXA,EAAIK,QAAQ,QAAU,GAAOL,EAAIK,QAAQ,KAAO,IAAIL,GAAO,KAC5DA,EAAIK,QAAQ,KAAO,IAAGL,GAAO,KAEjC,MAAMd,EAAKwD,EAAQzD,YAAYH,GAC/B4D,EAAQ3C,UAAUb,EAAIc,GACtB2C,EAAUG,gBAAcf,KAAKG,EAAKhD,EAAIc,EACzC,KAAO,CACCA,IAAKA,EAAM,OAChB,MAAMT,EAAOmD,EAAQpD,YAAYR,GACjC4D,EAAQvB,UAAU5B,EAAMS,GACxB2C,EAAUI,KAAWhB,KAAKG,EAAK3C,EAAMS,EACxC,CAEA,OAAO2C,EAAQV,KAAK,KACjBS,EAAQM,qBACDN,EAAQhB,aAAa,IAC5B,EAxC2B,EAyCjC","names":["kIsBayesian","BIT","kPosteriorMode","kUseBinPrior","kUseWeights","getBetaAlpha","obj","bin","fBeta_bin_params","length","first","fBeta_alpha","getBetaBeta","second","fBeta_beta","TEfficiencyPainter","ObjectPainter","getEfficiency","total","fTotalHistogram","fArray","passed","fPassedHistogram","TestBit","alpha","beta","aa","bb","tw","tw2","fSumw2","Math","abs","norm","BetaMode","a","b","BetaMean","getEfficiencyErrorLow","value","this","fBoundary","fConfLevel","getEfficiencyErrorUp","copyAttributes","eff","forEach","name","createGraph","gr","create","clTGraphAsymmErrors","fName","createHisto","hist","createHistogram","clTH2F","fXaxis","fNbins","fYaxis","Object","assign","fillGraph","opt","getObject","xaxis","npoints","plot0Bins","indexOf","n","j","getBinContent","fX","GetBinCenter","fY","fEXlow","GetBinLowEdge","fEXhigh","fEYlow","fEYhigh","fNpoints","fTitle","fillHisto","nbinsx","nbinsy","i","getBin","fBits","kNoStats","drawFunction","indx","fFunctions","arr","TF1Painter","draw","getDom","then","dom","_asyncToGenerator","isStr","toLowerCase","ndim","_typename","clTH1","clTH2","painter","promise","getTEfficiencyBoundaryFunc","fStatisticOption","TGraphPainter","TH2Painter","addToPadPrimitives"],"ignoreList":[],"sourceRoot":"webpack:///","sources":["../node_modules/jsroot/modules/hist/TEfficiencyPainter.mjs"],"sourcesContent":["import { BIT, create, createHistogram, isStr, clTH1, clTH2, clTH2F, kNoStats } from '../core.mjs';\nimport { ObjectPainter } from '../base/ObjectPainter.mjs';\nimport { TGraphPainter, clTGraphAsymmErrors } from '../hist2d/TGraphPainter.mjs';\nimport { TF1Painter } from '../hist/TF1Painter.mjs';\nimport { TH2Painter } from '../hist2d/TH2Painter.mjs';\nimport { getTEfficiencyBoundaryFunc } from '../base/math.mjs';\n\n\nconst kIsBayesian = BIT(14), // Bayesian statistics are used\n kPosteriorMode = BIT(15), // Use posterior mean for best estimate (Bayesian statistics)\n // kShortestInterval = BIT(16), // Use shortest interval, not implemented - too complicated\n kUseBinPrior = BIT(17), // Use a different prior for each bin\n kUseWeights = BIT(18), // Use weights\n getBetaAlpha = (obj, bin) => (obj.fBeta_bin_params.length > bin) ? obj.fBeta_bin_params[bin].first : obj.fBeta_alpha,\n getBetaBeta = (obj, bin) => (obj.fBeta_bin_params.length > bin) ? obj.fBeta_bin_params[bin].second : obj.fBeta_beta;\n\n/**\n * @summary Painter for TEfficiency object\n *\n * @private\n */\n\nclass TEfficiencyPainter extends ObjectPainter {\n\n /** @summary Caluclate efficiency */\n getEfficiency(obj, bin) {\n const BetaMean = (a, b) => (a <= 0 || b <= 0) ? 0 : a / (a + b),\n BetaMode = (a, b) => {\n if (a <= 0 || b <= 0) return 0;\n if (a <= 1 || b <= 1) {\n if (a < b) return 0;\n if (a > b) return 1;\n if (a === b) return 0.5; // cannot do otherwise\n }\n return (a - 1.0) / (a + b -2.0);\n },\n total = obj.fTotalHistogram.fArray[bin], // should work for both 1-d and 2-d\n passed = obj.fPassedHistogram.fArray[bin]; // should work for both 1-d and 2-d\n\n if (obj.TestBit(kIsBayesian)) {\n // parameters for the beta prior distribution\n const alpha = obj.TestBit(kUseBinPrior) ? getBetaAlpha(obj, bin) : obj.fBeta_alpha,\n beta = obj.TestBit(kUseBinPrior) ? getBetaBeta(obj, bin) : obj.fBeta_beta;\n\n let aa, bb;\n if (obj.TestBit(kUseWeights)) {\n const tw = total, // fTotalHistogram->GetBinContent(bin);\n tw2 = obj.fTotalHistogram.fSumw2 ? obj.fTotalHistogram.fSumw2[bin] : Math.abs(total),\n pw = passed; // fPassedHistogram->GetBinContent(bin);\n\n if (tw2 <= 0) return pw/tw;\n\n // tw/tw2 renormalize the weights\n const norm = tw/tw2;\n aa = pw * norm + alpha;\n bb = (tw - pw) * norm + beta;\n } else {\n aa = passed + alpha;\n bb = total - passed + beta;\n }\n\n if (!obj.TestBit(kPosteriorMode))\n return BetaMean(aa, bb);\n else\n return BetaMode(aa, bb);\n }\n\n return total ? passed/total : 0;\n }\n\n /** @summary Caluclate efficiency error low */\n getEfficiencyErrorLow(obj, bin, value) {\n const total = obj.fTotalHistogram.fArray[bin],\n passed = obj.fPassedHistogram.fArray[bin];\n let alpha = 0, beta = 0;\n if (obj.TestBit(kIsBayesian)) {\n alpha = obj.TestBit(kUseBinPrior) ? getBetaAlpha(obj, bin) : obj.fBeta_alpha;\n beta = obj.TestBit(kUseBinPrior) ? getBetaBeta(obj, bin) : obj.fBeta_beta;\n }\n\n return value - this.fBoundary(total, passed, obj.fConfLevel, false, alpha, beta);\n }\n\n /** @summary Caluclate efficiency error low up */\n getEfficiencyErrorUp(obj, bin, value) {\n const total = obj.fTotalHistogram.fArray[bin],\n passed = obj.fPassedHistogram.fArray[bin];\n let alpha = 0, beta = 0;\n if (obj.TestBit(kIsBayesian)) {\n alpha = obj.TestBit(kUseBinPrior) ? getBetaAlpha(obj, bin) : obj.fBeta_alpha;\n beta = obj.TestBit(kUseBinPrior) ? getBetaBeta(obj, bin) : obj.fBeta_beta;\n }\n\n return this.fBoundary(total, passed, obj.fConfLevel, true, alpha, beta) - value;\n }\n\n /** @summary Copy drawning attributes */\n copyAttributes(obj, eff) {\n ['fLineColor', 'fLineStyle', 'fLineWidth', 'fFillColor', 'fFillStyle', 'fMarkerColor', 'fMarkerStyle', 'fMarkerSize'].forEach(name => { obj[name] = eff[name]; });\n }\n\n /** @summary Create graph for the drawing of 1-dim TEfficiency */\n createGraph(/* eff */) {\n const gr = create(clTGraphAsymmErrors);\n gr.fName = 'eff_graph';\n return gr;\n }\n\n /** @summary Create histogram for the drawing of 2-dim TEfficiency */\n createHisto(eff) {\n const nbinsx = eff.fTotalHistogram.fXaxis.fNbins,\n nbinsy = eff.fTotalHistogram.fYaxis.fNbins,\n hist = createHistogram(clTH2F, nbinsx, nbinsy);\n Object.assign(hist.fXaxis, eff.fTotalHistogram.fXaxis);\n Object.assign(hist.fYaxis, eff.fTotalHistogram.fYaxis);\n hist.fName = 'eff_histo';\n return hist;\n }\n\n /** @summary Fill graph with points from efficiency object */\n fillGraph(gr, opt) {\n const eff = this.getObject(),\n xaxis = eff.fTotalHistogram.fXaxis,\n npoints = xaxis.fNbins,\n plot0Bins = (opt.indexOf('e0') >= 0);\n\n for (let n = 0, j = 0; n < npoints; ++n) {\n if (!plot0Bins && eff.fTotalHistogram.getBinContent(n+1) === 0) continue;\n\n const value = this.getEfficiency(eff, n+1);\n\n gr.fX[j] = xaxis.GetBinCenter(n+1);\n gr.fY[j] = value;\n gr.fEXlow[j] = xaxis.GetBinCenter(n+1) - xaxis.GetBinLowEdge(n+1);\n gr.fEXhigh[j] = xaxis.GetBinLowEdge(n+2) - xaxis.GetBinCenter(n+1);\n gr.fEYlow[j] = this.getEfficiencyErrorLow(eff, n+1, value);\n gr.fEYhigh[j] = this.getEfficiencyErrorUp(eff, n+1, value);\n\n gr.fNpoints = ++j;\n }\n\n gr.fTitle = eff.fTitle;\n this.copyAttributes(gr, eff);\n }\n\n /** @summary Fill graph with points from efficiency object */\n fillHisto(hist) {\n const eff = this.getObject(),\n nbinsx = hist.fXaxis.fNbins,\n nbinsy = hist.fYaxis.fNbins;\n\n for (let i = 0; i < nbinsx+2; ++i) {\n for (let j = 0; j < nbinsy+2; ++j) {\n const bin = hist.getBin(i, j),\n value = this.getEfficiency(eff, bin);\n hist.fArray[bin] = value;\n }\n }\n\n hist.fTitle = eff.fTitle;\n hist.fBits = hist.fBits | kNoStats;\n this.copyAttributes(hist, eff);\n }\n\n /** @summary Draw function */\n drawFunction(indx) {\n const eff = this.getObject();\n\n if (!eff?.fFunctions || (indx >= eff.fFunctions.arr.length))\n return this;\n\n return TF1Painter.draw(this.getDom(), eff.fFunctions.arr[indx], eff.fFunctions.opt[indx]).then(() => this.drawFunction(indx+1));\n }\n\n /** @summary Draw TEfficiency object */\n static async draw(dom, eff, opt) {\n if (!eff || !eff.fTotalHistogram)\n return null;\n\n if (!opt || !isStr(opt)) opt = '';\n opt = opt.toLowerCase();\n\n let ndim = 0;\n if (eff.fTotalHistogram._typename.indexOf(clTH1) === 0)\n ndim = 1;\n else if (eff.fTotalHistogram._typename.indexOf(clTH2) === 0)\n ndim = 2;\n else\n return null;\n\n const painter = new TEfficiencyPainter(dom, eff);\n painter.ndim = ndim;\n\n painter.fBoundary = getTEfficiencyBoundaryFunc(eff.fStatisticOption, eff.TestBit(kIsBayesian));\n\n let promise;\n\n if (ndim === 1) {\n if (!opt) opt = 'ap';\n if ((opt.indexOf('same') < 0) && (opt.indexOf('a') < 0)) opt += 'a';\n if (opt.indexOf('p') < 0) opt += 'p';\n\n const gr = painter.createGraph(eff);\n painter.fillGraph(gr, opt);\n promise = TGraphPainter.draw(dom, gr, opt);\n } else {\n if (!opt) opt = 'col';\n const hist = painter.createHisto(eff);\n painter.fillHisto(hist, opt);\n promise = TH2Painter.draw(dom, hist, opt);\n }\n\n return promise.then(() => {\n painter.addToPadPrimitives();\n return painter.drawFunction(0);\n });\n }\n\n} // class TEfficiencyPainter\n\nexport { TEfficiencyPainter };\n"],"x_google_ignoreList":[0]} \ No newline at end of file +{"version":3,"file":"508.04708c136a42ee44.js","mappings":"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","names":["kIsBayesian","BIT","kPosteriorMode","kUseBinPrior","kUseWeights","getBetaAlpha","obj","bin","fBeta_bin_params","length","first","fBeta_alpha","getBetaBeta","second","fBeta_beta","TEfficiencyPainter","ObjectPainter","getEfficiency","total","fTotalHistogram","fArray","passed","fPassedHistogram","TestBit","alpha","beta","aa","bb","tw","tw2","fSumw2","Math","abs","norm","BetaMode","a","b","BetaMean","getEfficiencyErrorLow","value","this","fBoundary","fConfLevel","getEfficiencyErrorUp","copyAttributes","eff","forEach","name","createGraph","gr","create","clTGraphAsymmErrors","fName","createHisto","hist","createHistogram","clTH2F","fXaxis","fNbins","fYaxis","Object","assign","fillGraph","opt","getObject","xaxis","npoints","plot0Bins","indexOf","n","j","getBinContent","fX","GetBinCenter","fY","fEXlow","GetBinLowEdge","fEXhigh","fEYlow","fEYhigh","fNpoints","fTitle","fillHisto","nbinsx","nbinsy","i","getBin","fBits","kNoStats","drawFunction","indx","fFunctions","arr","TF1Painter","draw","getDom","then","dom","_asyncToGenerator","isStr","toLowerCase","ndim","_typename","clTH1","clTH2","painter","promise","getTEfficiencyBoundaryFunc","fStatisticOption","TGraphPainter","TH2Painter","addToPadPrimitives"],"ignoreList":[],"sourceRoot":"webpack:///","sources":["../node_modules/jsroot/modules/hist/TEfficiencyPainter.mjs"],"sourcesContent":["import { BIT, create, createHistogram, isStr, clTH1, clTH2, clTH2F, kNoStats } from '../core.mjs';\nimport { ObjectPainter } from '../base/ObjectPainter.mjs';\nimport { TGraphPainter, clTGraphAsymmErrors } from '../hist2d/TGraphPainter.mjs';\nimport { TF1Painter } from '../hist/TF1Painter.mjs';\nimport { TH2Painter } from '../hist2d/TH2Painter.mjs';\nimport { getTEfficiencyBoundaryFunc } from '../base/math.mjs';\n\n\nconst kIsBayesian = BIT(14), // Bayesian statistics are used\n kPosteriorMode = BIT(15), // Use posterior mean for best estimate (Bayesian statistics)\n // kShortestInterval = BIT(16), // Use shortest interval, not implemented - too complicated\n kUseBinPrior = BIT(17), // Use a different prior for each bin\n kUseWeights = BIT(18), // Use weights\n getBetaAlpha = (obj, bin) => (obj.fBeta_bin_params.length > bin) ? obj.fBeta_bin_params[bin].first : obj.fBeta_alpha,\n getBetaBeta = (obj, bin) => (obj.fBeta_bin_params.length > bin) ? obj.fBeta_bin_params[bin].second : obj.fBeta_beta;\n\n/**\n * @summary Painter for TEfficiency object\n *\n * @private\n */\n\nclass TEfficiencyPainter extends ObjectPainter {\n\n /** @summary Caluclate efficiency */\n getEfficiency(obj, bin) {\n const BetaMean = (a, b) => (a <= 0 || b <= 0) ? 0 : a / (a + b),\n BetaMode = (a, b) => {\n if (a <= 0 || b <= 0) return 0;\n if (a <= 1 || b <= 1) {\n if (a < b) return 0;\n if (a > b) return 1;\n if (a === b) return 0.5; // cannot do otherwise\n }\n return (a - 1.0) / (a + b -2.0);\n },\n total = obj.fTotalHistogram.fArray[bin], // should work for both 1-d and 2-d\n passed = obj.fPassedHistogram.fArray[bin]; // should work for both 1-d and 2-d\n\n if (obj.TestBit(kIsBayesian)) {\n // parameters for the beta prior distribution\n const alpha = obj.TestBit(kUseBinPrior) ? getBetaAlpha(obj, bin) : obj.fBeta_alpha,\n beta = obj.TestBit(kUseBinPrior) ? getBetaBeta(obj, bin) : obj.fBeta_beta;\n\n let aa, bb;\n if (obj.TestBit(kUseWeights)) {\n const tw = total, // fTotalHistogram->GetBinContent(bin);\n tw2 = obj.fTotalHistogram.fSumw2 ? obj.fTotalHistogram.fSumw2[bin] : Math.abs(total),\n pw = passed; // fPassedHistogram->GetBinContent(bin);\n\n if (tw2 <= 0) return pw/tw;\n\n // tw/tw2 renormalize the weights\n const norm = tw/tw2;\n aa = pw * norm + alpha;\n bb = (tw - pw) * norm + beta;\n } else {\n aa = passed + alpha;\n bb = total - passed + beta;\n }\n\n if (!obj.TestBit(kPosteriorMode))\n return BetaMean(aa, bb);\n else\n return BetaMode(aa, bb);\n }\n\n return total ? passed/total : 0;\n }\n\n /** @summary Caluclate efficiency error low */\n getEfficiencyErrorLow(obj, bin, value) {\n const total = obj.fTotalHistogram.fArray[bin],\n passed = obj.fPassedHistogram.fArray[bin];\n let alpha = 0, beta = 0;\n if (obj.TestBit(kIsBayesian)) {\n alpha = obj.TestBit(kUseBinPrior) ? getBetaAlpha(obj, bin) : obj.fBeta_alpha;\n beta = obj.TestBit(kUseBinPrior) ? getBetaBeta(obj, bin) : obj.fBeta_beta;\n }\n\n return value - this.fBoundary(total, passed, obj.fConfLevel, false, alpha, beta);\n }\n\n /** @summary Caluclate efficiency error low up */\n getEfficiencyErrorUp(obj, bin, value) {\n const total = obj.fTotalHistogram.fArray[bin],\n passed = obj.fPassedHistogram.fArray[bin];\n let alpha = 0, beta = 0;\n if (obj.TestBit(kIsBayesian)) {\n alpha = obj.TestBit(kUseBinPrior) ? getBetaAlpha(obj, bin) : obj.fBeta_alpha;\n beta = obj.TestBit(kUseBinPrior) ? getBetaBeta(obj, bin) : obj.fBeta_beta;\n }\n\n return this.fBoundary(total, passed, obj.fConfLevel, true, alpha, beta) - value;\n }\n\n /** @summary Copy drawning attributes */\n copyAttributes(obj, eff) {\n ['fLineColor', 'fLineStyle', 'fLineWidth', 'fFillColor', 'fFillStyle', 'fMarkerColor', 'fMarkerStyle', 'fMarkerSize'].forEach(name => { obj[name] = eff[name]; });\n }\n\n /** @summary Create graph for the drawing of 1-dim TEfficiency */\n createGraph(/* eff */) {\n const gr = create(clTGraphAsymmErrors);\n gr.fName = 'eff_graph';\n return gr;\n }\n\n /** @summary Create histogram for the drawing of 2-dim TEfficiency */\n createHisto(eff) {\n const nbinsx = eff.fTotalHistogram.fXaxis.fNbins,\n nbinsy = eff.fTotalHistogram.fYaxis.fNbins,\n hist = createHistogram(clTH2F, nbinsx, nbinsy);\n Object.assign(hist.fXaxis, eff.fTotalHistogram.fXaxis);\n Object.assign(hist.fYaxis, eff.fTotalHistogram.fYaxis);\n hist.fName = 'eff_histo';\n return hist;\n }\n\n /** @summary Fill graph with points from efficiency object */\n fillGraph(gr, opt) {\n const eff = this.getObject(),\n xaxis = eff.fTotalHistogram.fXaxis,\n npoints = xaxis.fNbins,\n plot0Bins = (opt.indexOf('e0') >= 0);\n\n for (let n = 0, j = 0; n < npoints; ++n) {\n if (!plot0Bins && eff.fTotalHistogram.getBinContent(n+1) === 0) continue;\n\n const value = this.getEfficiency(eff, n+1);\n\n gr.fX[j] = xaxis.GetBinCenter(n+1);\n gr.fY[j] = value;\n gr.fEXlow[j] = xaxis.GetBinCenter(n+1) - xaxis.GetBinLowEdge(n+1);\n gr.fEXhigh[j] = xaxis.GetBinLowEdge(n+2) - xaxis.GetBinCenter(n+1);\n gr.fEYlow[j] = this.getEfficiencyErrorLow(eff, n+1, value);\n gr.fEYhigh[j] = this.getEfficiencyErrorUp(eff, n+1, value);\n\n gr.fNpoints = ++j;\n }\n\n gr.fTitle = eff.fTitle;\n this.copyAttributes(gr, eff);\n }\n\n /** @summary Fill graph with points from efficiency object */\n fillHisto(hist) {\n const eff = this.getObject(),\n nbinsx = hist.fXaxis.fNbins,\n nbinsy = hist.fYaxis.fNbins;\n\n for (let i = 0; i < nbinsx+2; ++i) {\n for (let j = 0; j < nbinsy+2; ++j) {\n const bin = hist.getBin(i, j),\n value = this.getEfficiency(eff, bin);\n hist.fArray[bin] = value;\n }\n }\n\n hist.fTitle = eff.fTitle;\n hist.fBits = hist.fBits | kNoStats;\n this.copyAttributes(hist, eff);\n }\n\n /** @summary Draw function */\n drawFunction(indx) {\n const eff = this.getObject();\n\n if (!eff?.fFunctions || (indx >= eff.fFunctions.arr.length))\n return this;\n\n return TF1Painter.draw(this.getDom(), eff.fFunctions.arr[indx], eff.fFunctions.opt[indx]).then(() => this.drawFunction(indx+1));\n }\n\n /** @summary Draw TEfficiency object */\n static async draw(dom, eff, opt) {\n if (!eff || !eff.fTotalHistogram)\n return null;\n\n if (!opt || !isStr(opt)) opt = '';\n opt = opt.toLowerCase();\n\n let ndim = 0;\n if (eff.fTotalHistogram._typename.indexOf(clTH1) === 0)\n ndim = 1;\n else if (eff.fTotalHistogram._typename.indexOf(clTH2) === 0)\n ndim = 2;\n else\n return null;\n\n const painter = new TEfficiencyPainter(dom, eff);\n painter.ndim = ndim;\n\n painter.fBoundary = getTEfficiencyBoundaryFunc(eff.fStatisticOption, eff.TestBit(kIsBayesian));\n\n let promise;\n\n if (ndim === 1) {\n if (!opt) opt = 'ap';\n if ((opt.indexOf('same') < 0) && (opt.indexOf('a') < 0)) opt += 'a';\n if (opt.indexOf('p') < 0) opt += 'p';\n\n const gr = painter.createGraph(eff);\n painter.fillGraph(gr, opt);\n promise = TGraphPainter.draw(dom, gr, opt);\n } else {\n if (!opt) opt = 'col';\n const hist = painter.createHisto(eff);\n painter.fillHisto(hist, opt);\n promise = TH2Painter.draw(dom, hist, opt);\n }\n\n return promise.then(() => {\n painter.addToPadPrimitives();\n return painter.drawFunction(0);\n });\n }\n\n} // class TEfficiencyPainter\n\nexport { TEfficiencyPainter };\n"],"x_google_ignoreList":[0]} \ No newline at end of file diff --git a/docs/653.0cb1cff6681a3100.js b/docs/653.a285108ef0ba342d.js similarity index 55% rename from docs/653.0cb1cff6681a3100.js rename to docs/653.a285108ef0ba342d.js index 34d730a6..82e22612 100644 --- a/docs/653.0cb1cff6681a3100.js +++ b/docs/653.a285108ef0ba342d.js @@ -1,2 +1,2 @@ -"use strict";(self.webpackChunkphoenix_app=self.webpackChunkphoenix_app||[]).push([[653],{7653:(F,E,p)=>{p.r(E),p.d(E,{drawBox:()=>I,drawEllipse:()=>L,drawJSImage:()=>R,drawMarker:()=>C,drawPie:()=>k,drawPolyLine:()=>O,drawPolyMarker:()=>B,drawText:()=>Y});var D=p(4882),M=p(8872),S=p(8362),g=p(2843),m=p(5992),x=p(7900);function Y(){return X.apply(this,arguments)}function X(){return(X=(0,D.A)(function*(){const t=this.getObject(),d=this.getPadPainter(),l=d.getPadWidth(),r=d.getPadHeight(),s=this.getFramePainter();let h=t.fX,i=t.fY,o=1,n=this.matchObjectType(M.clTAnnotation);if(this.createAttText({attr:t}),n&&s?.mode3d&&(0,M.isFunc)(s?.convert3DtoPadNDC)){const e=s.convert3DtoPadNDC(t.fX,t.fY,t.fZ);h=e.x,i=e.y,this.isndc=!0,n="3d"}else t.TestBit((0,M.BIT)(14))?this.isndc=!0:d.getRootPad(!0)||(this.isndc=!0,h=i=.5,t.fTextAlign=22);this.createG(),this.draw_g.attr("transform",null),this.pos_x=this.axisToSvg("x",h,this.isndc),this.pos_y=this.axisToSvg("y",i,this.isndc);const a=this.textatt.createArg({x:this.pos_x,y:this.pos_y,text:t.fTitle,latex:0});return t._typename===M.clTLatex||n?(a.latex=1,o=.9):t._typename===M.clTMathText&&(a.latex=2,o=.8),this.startTextDrawing(this.textatt.font,this.textatt.getSize(l,r,o,.05)),this.drawText(a),this.finishTextDrawing().then(()=>(this.isBatchMode()||(this.pos_dx=this.pos_dy=0,this.moveDrag||(this.moveDrag=function(e,f){this.pos_dx+=e,this.pos_dy+=f,(0,g.bk)(this.draw_g,this.pos_dx,this.pos_dy)}),this.moveEnd||(this.moveEnd=function(e){if(e)return;const f=this.getObject();f.fX=this.svgToAxis("x",this.pos_x+this.pos_dx,this.isndc),f.fY=this.svgToAxis("y",this.pos_y+this.pos_dy,this.isndc),this.submitCanvExec(`SetX(${f.fX});;SetY(${f.fY});;`)}),"3d"!==n?(0,m.X2)(this):(s.processRender3D=!0,this.handleRender3D=()=>{const e=s.convert3DtoPadNDC(t.fX,t.fY,t.fZ),f=this.axisToSvg("x",e.x,!0),c=this.axisToSvg("y",e.y,!0);(0,g.bk)(this.draw_g,f-this.pos_x,c-this.pos_y)}),(0,x.wh)(this,x.Ew)),this))})).apply(this,arguments)}function O(){this.createG();const t=this.getObject(),d=(0,M.BIT)(14),l=t.TestBit(d),r=this.getDrawOpt()||t.fOption,s=t._typename===M.clTPolyLine&&("f"===r||"F"===r),h=this.getAxisToSvgFunc(l);this.createAttLine({attr:t}),this.createAttFill({attr:t});let i="";for(let n=0;n<=t.fLastPoint;++n)i+=`${n>0?"L":"M"}${h.x(t.fX[n])},${h.y(t.fY[n])}`;s&&(i+="Z");const o=this.draw_g.append("svg:path").attr("d",i);s?o.call(this.fillatt.func):o.call(this.lineatt.func).style("fill","none"),(0,x.wh)(this,x.Ew),(0,m.X2)(this),this.dx=this.dy=0,this.isndc=l,this.moveDrag=function(n,a){this.dx+=n,this.dy+=a,(0,g.bk)(this.draw_g.select("path"),this.dx,this.dy)},this.moveEnd=function(n){if(n)return;const a=this.getObject(),e=this.getAxisToSvgFunc(this.isndc);let f="";for(let c=0;c<=a.fLastPoint;++c){const y=this.svgToAxis("x",e.x(a.fX[c])+this.dx,this.isndc),_=this.svgToAxis("y",e.y(a.fY[c])+this.dy,this.isndc);a.fX[c]=y,a.fY[c]=_,f+=`SetPoint(${c},${y},${_});;`}this.submitCanvExec(f+"Notify();;"),this.redraw()}}function L(){const t=this.getObject(),d=0===t.fPhimin&&360===t.fPhimax,l="TCrown"===t._typename;this.createAttLine({attr:t}),this.createAttFill({attr:t}),this.createG();const r=this.getAxisToSvgFunc(),s=r.x(t.fX1),h=r.y(t.fY1),i=l&&t.fR1<=0?r.x(t.fX1+t.fR2)-s:r.x(t.fX1+t.fR1)-s,o=h-r.y(t.fY1+t.fR2);let n="";if(l&&t.fR1>0){const a=i,e=o,f=h-r.y(t.fY1+t.fR1),c=r.x(t.fX1+t.fR2)-s;if(d)n=`M${-a},0A${a},${f},0,1,0,${a},0A${a},${f},0,1,0,${-a},0M${-c},0A${c},${e},0,1,0,${c},0A${c},${e},0,1,0,${-c},0`;else{const y=t.fPhimax-t.fPhimin>=180?1:0,_=t.fPhimin*Math.PI/180,u=t.fPhimax*Math.PI/180,T=Math.round(a*Math.cos(_)),P=Math.round(f*Math.sin(_));n=`M${Math.round(a*Math.cos(u))},${Math.round(f*Math.sin(u))}A${a},${f},0,${y},0,${T},${P}L${Math.round(c*Math.cos(_))},${Math.round(e*Math.sin(_))}A${c},${e},0,${y},1,${Math.round(c*Math.cos(u))},${Math.round(e*Math.sin(u))}Z`}}else if(0===t.fTheta)n=d?`M${-i},0A${i},${o},0,1,0,${i},0A${i},${o},0,1,0,${-i},0Z`:`M0,0L${Math.round(i*Math.cos(t.fPhimin*Math.PI/180))},${Math.round(o*Math.sin(t.fPhimin*Math.PI/180))}A${i},${o},0,1,1,${Math.round(i*Math.cos(t.fPhimax*Math.PI/180))},${Math.round(o*Math.sin(t.fPhimax*Math.PI/180))}Z`;else{const a=Math.cos(t.fTheta*Math.PI/180),e=Math.sin(t.fTheta*Math.PI/180),f=t.fPhimin*Math.PI/180,y=200,_=(t.fPhimax*Math.PI/180-f)/(y-(d?0:1));let u=0,T=0;d||(n="M0,0");for(let P=0;P=0;this.createAttLine({attr:t}),this.createAttFill({attr:t}),!this.fillatt.empty()&&!l&&(this.lineatt.color="none"),this.createG(),this.x1=this.axisToSvg("x",t.fX1),this.x2=this.axisToSvg("x",t.fX2),this.y1=this.axisToSvg("y",t.fY1),this.y2=this.axisToSvg("y",t.fY2),this.borderMode=t.fBorderMode&&t.fBorderSize&&this.fillatt.hasColor()?t.fBorderMode:0,this.borderSize=t.fBorderSize,this.getPathes=()=>{const s=Math.min(this.x1,this.x2),h=Math.min(this.y1,this.y2),i=Math.abs(this.x2-this.x1),o=Math.abs(this.y1-this.y2),n=`M${s},${h}h${i}v${o}h${-i}z`;if(!this.borderMode)return[n];const a=this.borderSize,e=this.borderSize,f=`M${s},${h}h${i}l${-a},${e}h${2*a-i}v${o-2*e}l${-a},${e}z`,c=`M${s+i},${h+o}v${-o}l${-a},${e}v${o-2*e}h${2*a-i}l${-a},${e}z`;return this.borderMode>0?[n,f,c]:[n,c,f]};const r=this.getPathes();this.draw_g.append("svg:path").attr("d",r[0]).call(this.lineatt.func).call(this.fillatt.func),this.borderMode&&(this.draw_g.append("svg:path").attr("d",r[1]).call(this.fillatt.func).style("fill",(0,S.Qh)(this.fillatt.color).brighter(.5).formatHex()),this.draw_g.append("svg:path").attr("d",r[2]).call(this.fillatt.func).style("fill",(0,S.Qh)(this.fillatt.color).darker(.5).formatHex())),(0,x.wh)(this,x.Ew),(0,m.X2)(this),this.moveStart=function(s,h){const i=Math.abs(this.x2-this.x1),o=Math.abs(this.y1-this.y2);this.c_x1=Math.abs(s-this.x2)>.1*i,this.c_x2=Math.abs(s-this.x1)>.1*i,this.c_y1=Math.abs(h-this.y2)>.1*o,this.c_y2=Math.abs(h-this.y1)>.1*o,this.c_x1!==this.c_x2&&this.c_y1&&this.c_y2&&(this.c_y1=this.c_y2=!1),this.c_y1!==this.c_y2&&this.c_x1&&this.c_x2&&(this.c_x1=this.c_x2=!1)},this.moveDrag=function(s,h){this.c_x1&&(this.x1+=s),this.c_x2&&(this.x2+=s),this.c_y1&&(this.y1+=h),this.c_y2&&(this.y2+=h);const i=this.draw_g.selectAll("path").nodes();this.getPathes().forEach((n,a)=>(0,S.Lt)(i[a]).attr("d",n))},this.moveEnd=function(s){if(s)return;const h=this.getObject();let i="";this.c_x1&&(h.fX1=this.svgToAxis("x",this.x1),i+=`SetX1(${h.fX1});;`),this.c_x2&&(h.fX2=this.svgToAxis("x",this.x2),i+=`SetX2(${h.fX2});;`),this.c_y1&&(h.fY1=this.svgToAxis("y",this.y1),i+=`SetY1(${h.fY1});;`),this.c_y2&&(h.fY2=this.svgToAxis("y",this.y2),i+=`SetY2(${h.fY2});;`),this.submitCanvExec(i+"Notify();;")}}function C(){const t=this.getObject(),d=(0,M.BIT)(14);this.isndc=t.TestBit(d),this.createAttMarker({attr:t}),this.createG();const l=this.axisToSvg("x",t.fX,this.isndc),r=this.axisToSvg("y",t.fY,this.isndc),s=this.markeratt.create(l,r);s&&this.draw_g.append("svg:path").attr("d",s).call(this.markeratt.func),(0,x.wh)(this,x.Ew),(0,m.X2)(this),this.dx=this.dy=0,this.moveDrag=function(h,i){this.dx+=h,this.dy+=i,(0,g.bk)(this.draw_g.select("path"),this.dx,this.dy)},this.moveEnd=function(h){if(h)return;const i=this.getObject();i.fX=this.svgToAxis("x",this.axisToSvg("x",i.fX,this.isndc)+this.dx,this.isndc),i.fY=this.svgToAxis("y",this.axisToSvg("y",i.fY,this.isndc)+this.dy,this.isndc),this.submitCanvExec(`SetX(${i.fX});;SetY(${i.fY});;Notify();;`),this.redraw()}}function B(){const t=this.getObject(),d=this.getAxisToSvgFunc();this.createAttMarker({attr:t}),this.createG();let l="";for(let r=0;r<=t.fLastPoint;++r)l+=this.markeratt.create(d.x(t.fX[r]),d.y(t.fY[r]));l&&this.draw_g.append("svg:path").attr("d",l).call(this.markeratt.func),(0,x.wh)(this,x.Ew),(0,m.X2)(this),this.dx=this.dy=0,this.moveDrag=function(r,s){this.dx+=r,this.dy+=s,(0,g.bk)(this.draw_g.select("path"),this.dx,this.dy)},this.moveEnd=function(r){if(r)return;const s=this.getObject(),h=this.getAxisToSvgFunc();let i="";for(let o=0;o<=s.fLastPoint;++o){const n=this.svgToAxis("x",h.x(s.fX[o])+this.dx),a=this.svgToAxis("y",h.y(s.fY[o])+this.dy);s.fX[o]=n,s.fY[o]=a,i+=`SetPoint(${o},${n},${a});;`}this.submitCanvExec(i+"Notify();;"),this.redraw()}}function R(t,d,l){const r=new g.b8(t),s=r.selectDom(),h=s.append("img").attr("src",d.fName).attr("title",d.fTitle||d.fName);return l&&l.indexOf("scale")>=0?h.style("width","100%").style("height","100%"):l&&l.indexOf("center")>=0&&(s.style("position","relative"),h.attr("style","margin: 0; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);")),r.setTopPainter(),r}}}]); -//# sourceMappingURL=653.0cb1cff6681a3100.js.map \ No newline at end of file +"use strict";(self.webpackChunkphoenix_app=self.webpackChunkphoenix_app||[]).push([[653],{7653:(F,E,p)=>{p.r(E),p.d(E,{drawBox:()=>k,drawEllipse:()=>L,drawJSImage:()=>R,drawMarker:()=>C,drawPie:()=>I,drawPolyLine:()=>O,drawPolyMarker:()=>B,drawText:()=>Y});var D=p(4882),M=p(8872),S=p(8362),g=p(2843),m=p(5992),x=p(7900);function Y(){return X.apply(this,arguments)}function X(){return(X=(0,D.A)(function*(){const t=this.getObject(),d=this.getPadPainter(),l=d.getPadWidth(),r=d.getPadHeight(),i=this.getFramePainter();let h=t.fX,s=t.fY,o=1,n=this.matchObjectType(M.clTAnnotation);if(this.createAttText({attr:t}),n&&i?.mode3d&&(0,M.isFunc)(i?.convert3DtoPadNDC)){const e=i.convert3DtoPadNDC(t.fX,t.fY,t.fZ);h=e.x,s=e.y,this.isndc=!0,n="3d"}else t.TestBit((0,M.BIT)(14))?this.isndc=!0:d.getRootPad(!0)||(this.isndc=!0,h=s=.5,t.fTextAlign=22);this.createG(),this.draw_g.attr("transform",null),this.pos_x=this.axisToSvg("x",h,this.isndc),this.pos_y=this.axisToSvg("y",s,this.isndc);const a=this.textatt.createArg({x:this.pos_x,y:this.pos_y,text:t.fTitle,latex:0});return t._typename===M.clTLatex||n?(a.latex=1,o=.9):t._typename===M.clTMathText&&(a.latex=2,o=.8),this.startTextDrawing(this.textatt.font,this.textatt.getSize(l,r,o,.05)),this.drawText(a),this.finishTextDrawing().then(()=>(this.isBatchMode()||(this.pos_dx=this.pos_dy=0,this.moveDrag||(this.moveDrag=function(e,f){this.pos_dx+=e,this.pos_dy+=f,(0,g.bk)(this.draw_g,this.pos_dx,this.pos_dy)}),this.moveEnd||(this.moveEnd=function(e){if(e)return;const f=this.getObject();f.fX=this.svgToAxis("x",this.pos_x+this.pos_dx,this.isndc),f.fY=this.svgToAxis("y",this.pos_y+this.pos_dy,this.isndc),this.submitCanvExec(`SetX(${f.fX});;SetY(${f.fY});;`)}),"3d"!==n?(0,m.X2)(this):(i.processRender3D=!0,this.handleRender3D=()=>{const e=i.convert3DtoPadNDC(t.fX,t.fY,t.fZ),f=this.axisToSvg("x",e.x,!0),c=this.axisToSvg("y",e.y,!0);(0,g.bk)(this.draw_g,f-this.pos_x,c-this.pos_y)}),(0,x.wh)(this,x.Ew)),this))})).apply(this,arguments)}function O(){this.createG();const t=this.getObject(),d=(0,M.BIT)(14),l=t.TestBit(d),r=this.getDrawOpt()||t.fOption,i=t._typename===M.clTPolyLine&&("f"===r||"F"===r),h=this.getAxisToSvgFunc(l);this.createAttLine({attr:t}),this.createAttFill({attr:t});let s="";for(let n=0;n<=t.fLastPoint;++n)s+=`${n>0?"L":"M"}${h.x(t.fX[n])},${h.y(t.fY[n])}`;i&&(s+="Z");const o=this.draw_g.append("svg:path").attr("d",s);i?o.call(this.fillatt.func):o.call(this.lineatt.func).style("fill","none"),(0,x.wh)(this,x.Ew),(0,m.X2)(this),this.dx=this.dy=0,this.isndc=l,this.moveDrag=function(n,a){this.dx+=n,this.dy+=a,(0,g.bk)(this.draw_g.select("path"),this.dx,this.dy)},this.moveEnd=function(n){if(n)return;const a=this.getObject(),e=this.getAxisToSvgFunc(this.isndc);let f="";for(let c=0;c<=a.fLastPoint;++c){const y=this.svgToAxis("x",e.x(a.fX[c])+this.dx,this.isndc),_=this.svgToAxis("y",e.y(a.fY[c])+this.dy,this.isndc);a.fX[c]=y,a.fY[c]=_,f+=`SetPoint(${c},${y},${_});;`}this.submitCanvExec(f+"Notify();;"),this.redraw()}}function L(){const t=this.getObject(),d=0===t.fPhimin&&360===t.fPhimax,l="TCrown"===t._typename;this.createAttLine({attr:t}),this.createAttFill({attr:t}),this.createG();const r=this.getAxisToSvgFunc(),i=r.x(t.fX1),h=r.y(t.fY1),s=l&&t.fR1<=0?r.x(t.fX1+t.fR2)-i:r.x(t.fX1+t.fR1)-i,o=h-r.y(t.fY1+t.fR2);let n="";if(l&&t.fR1>0){const a=s,e=o,f=h-r.y(t.fY1+t.fR1),c=r.x(t.fX1+t.fR2)-i;if(d)n=`M${-a},0A${a},${f},0,1,0,${a},0A${a},${f},0,1,0,${-a},0M${-c},0A${c},${e},0,1,0,${c},0A${c},${e},0,1,0,${-c},0`;else{const y=t.fPhimax-t.fPhimin>=180?1:0,_=t.fPhimin*Math.PI/180,u=t.fPhimax*Math.PI/180,T=Math.round(a*Math.cos(_)),P=Math.round(f*Math.sin(_));n=`M${Math.round(a*Math.cos(u))},${Math.round(f*Math.sin(u))}A${a},${f},0,${y},0,${T},${P}L${Math.round(c*Math.cos(_))},${Math.round(e*Math.sin(_))}A${c},${e},0,${y},1,${Math.round(c*Math.cos(u))},${Math.round(e*Math.sin(u))}Z`}}else if(0===t.fTheta)n=d?`M${-s},0A${s},${o},0,1,0,${s},0A${s},${o},0,1,0,${-s},0Z`:`M0,0L${Math.round(s*Math.cos(t.fPhimin*Math.PI/180))},${Math.round(o*Math.sin(t.fPhimin*Math.PI/180))}A${s},${o},0,1,1,${Math.round(s*Math.cos(t.fPhimax*Math.PI/180))},${Math.round(o*Math.sin(t.fPhimax*Math.PI/180))}Z`;else{const a=Math.cos(t.fTheta*Math.PI/180),e=Math.sin(t.fTheta*Math.PI/180),f=t.fPhimin*Math.PI/180,y=200,_=(t.fPhimax*Math.PI/180-f)/(y-(d?0:1));let u=0,T=0;d||(n="M0,0");for(let P=0;P=0;this.createAttLine({attr:t}),this.createAttFill({attr:t}),!this.fillatt.empty()&&!l&&(this.lineatt.color="none"),this.createG(),this.x1=this.axisToSvg("x",t.fX1),this.x2=this.axisToSvg("x",t.fX2),this.y1=this.axisToSvg("y",t.fY1),this.y2=this.axisToSvg("y",t.fY2),this.borderMode=t.fBorderMode&&t.fBorderSize&&this.fillatt.hasColor()?t.fBorderMode:0,this.borderSize=t.fBorderSize,this.getPathes=()=>{const i=Math.min(this.x1,this.x2),h=Math.min(this.y1,this.y2),s=Math.abs(this.x2-this.x1),o=Math.abs(this.y1-this.y2),n=`M${i},${h}h${s}v${o}h${-s}z`;if(!this.borderMode)return[n];const a=this.borderSize,e=this.borderSize,f=`M${i},${h}h${s}l${-a},${e}h${2*a-s}v${o-2*e}l${-a},${e}z`,c=`M${i+s},${h+o}v${-o}l${-a},${e}v${o-2*e}h${2*a-s}l${-a},${e}z`;return this.borderMode>0?[n,f,c]:[n,c,f]};const r=this.getPathes();this.draw_g.append("svg:path").attr("d",r[0]).call(this.lineatt.func).call(this.fillatt.func),this.borderMode&&(this.draw_g.append("svg:path").attr("d",r[1]).call(this.fillatt.func).style("fill",(0,S.Qh)(this.fillatt.color).brighter(.5).formatHex()),this.draw_g.append("svg:path").attr("d",r[2]).call(this.fillatt.func).style("fill",(0,S.Qh)(this.fillatt.color).darker(.5).formatHex())),(0,x.wh)(this,x.Ew),(0,m.X2)(this),this.moveStart=function(i,h){const s=Math.abs(this.x2-this.x1),o=Math.abs(this.y1-this.y2);this.c_x1=Math.abs(i-this.x2)>.1*s,this.c_x2=Math.abs(i-this.x1)>.1*s,this.c_y1=Math.abs(h-this.y2)>.1*o,this.c_y2=Math.abs(h-this.y1)>.1*o,this.c_x1!==this.c_x2&&this.c_y1&&this.c_y2&&(this.c_y1=this.c_y2=!1),this.c_y1!==this.c_y2&&this.c_x1&&this.c_x2&&(this.c_x1=this.c_x2=!1)},this.moveDrag=function(i,h){this.c_x1&&(this.x1+=i),this.c_x2&&(this.x2+=i),this.c_y1&&(this.y1+=h),this.c_y2&&(this.y2+=h);const s=this.draw_g.selectAll("path").nodes();this.getPathes().forEach((n,a)=>(0,S.Lt)(s[a]).attr("d",n))},this.moveEnd=function(i){if(i)return;const h=this.getObject();let s="";this.c_x1&&(h.fX1=this.svgToAxis("x",this.x1),s+=`SetX1(${h.fX1});;`),this.c_x2&&(h.fX2=this.svgToAxis("x",this.x2),s+=`SetX2(${h.fX2});;`),this.c_y1&&(h.fY1=this.svgToAxis("y",this.y1),s+=`SetY1(${h.fY1});;`),this.c_y2&&(h.fY2=this.svgToAxis("y",this.y2),s+=`SetY2(${h.fY2});;`),this.submitCanvExec(s+"Notify();;")}}function C(){const t=this.getObject(),d=(0,M.BIT)(14);this.isndc=t.TestBit(d),this.createAttMarker({attr:t}),this.createG();const l=this.axisToSvg("x",t.fX,this.isndc),r=this.axisToSvg("y",t.fY,this.isndc),i=this.markeratt.create(l,r);i&&this.draw_g.append("svg:path").attr("d",i).call(this.markeratt.func),(0,x.wh)(this,x.Ew),(0,m.X2)(this),this.dx=this.dy=0,this.moveDrag=function(h,s){this.dx+=h,this.dy+=s,(0,g.bk)(this.draw_g.select("path"),this.dx,this.dy)},this.moveEnd=function(h){if(h)return;const s=this.getObject();s.fX=this.svgToAxis("x",this.axisToSvg("x",s.fX,this.isndc)+this.dx,this.isndc),s.fY=this.svgToAxis("y",this.axisToSvg("y",s.fY,this.isndc)+this.dy,this.isndc),this.submitCanvExec(`SetX(${s.fX});;SetY(${s.fY});;Notify();;`),this.redraw()}}function B(){const t=this.getObject(),d=this.getAxisToSvgFunc();this.createAttMarker({attr:t}),this.createG();let l="";for(let r=0;r<=t.fLastPoint;++r)l+=this.markeratt.create(d.x(t.fX[r]),d.y(t.fY[r]));l&&this.draw_g.append("svg:path").attr("d",l).call(this.markeratt.func),(0,x.wh)(this,x.Ew),(0,m.X2)(this),this.dx=this.dy=0,this.moveDrag=function(r,i){this.dx+=r,this.dy+=i,(0,g.bk)(this.draw_g.select("path"),this.dx,this.dy)},this.moveEnd=function(r){if(r)return;const i=this.getObject(),h=this.getAxisToSvgFunc();let s="";for(let o=0;o<=i.fLastPoint;++o){const n=this.svgToAxis("x",h.x(i.fX[o])+this.dx),a=this.svgToAxis("y",h.y(i.fY[o])+this.dy);i.fX[o]=n,i.fY[o]=a,s+=`SetPoint(${o},${n},${a});;`}this.submitCanvExec(s+"Notify();;"),this.redraw()}}function R(t,d,l){const r=new g.b8(t),i=r.selectDom(),h=i.append("img").attr("src",d.fName).attr("title",d.fTitle||d.fName);return l&&l.indexOf("scale")>=0?h.style("width","100%").style("height","100%"):l&&l.indexOf("center")>=0&&(i.style("position","relative"),h.attr("style","margin: 0; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);")),r.setTopPainter(),r}}}]); +//# sourceMappingURL=653.a285108ef0ba342d.js.map \ No newline at end of file diff --git a/docs/653.0cb1cff6681a3100.js.map b/docs/653.a285108ef0ba342d.js.map similarity index 99% rename from docs/653.0cb1cff6681a3100.js.map rename to docs/653.a285108ef0ba342d.js.map index 63e53189..b8ea036b 100644 --- a/docs/653.0cb1cff6681a3100.js.map +++ b/docs/653.a285108ef0ba342d.js.map @@ -1 +1 @@ -{"version":3,"file":"653.0cb1cff6681a3100.js","mappings":"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","names":["drawText","_drawText","apply","this","arguments","_asyncToGenerator","text","getObject","pp","getPadPainter","w","getPadWidth","h","getPadHeight","fp","getFramePainter","pos_x","fX","pos_y","fY","fact","annot","matchObjectType","clTAnnotation","createAttText","attr","mode3d","isFunc","convert3DtoPadNDC","pos","fZ","x","y","isndc","TestBit","BIT","getRootPad","fTextAlign","createG","draw_g","axisToSvg","arg","textatt","createArg","fTitle","latex","_typename","clTLatex","clTMathText","startTextDrawing","font","getSize","finishTextDrawing","then","isBatchMode","pos_dx","pos_dy","moveDrag","dx","dy","makeTranslate","moveEnd","not_changed","svgToAxis","submitCanvExec","addMoveHandler","processRender3D","handleRender3D","new_x","new_y","assignContextMenu","kToFront","drawPolyLine","polyline","kPolyLineNDC","opt","getDrawOpt","fOption","dofill","clTPolyLine","func","getAxisToSvgFunc","createAttLine","createAttFill","cmd","n","fLastPoint","elem","append","call","fillatt","lineatt","style","select","exec","redraw","drawEllipse","ellipse","closed_ellipse","fPhimin","fPhimax","is_crown","funcs","fX1","fY1","rx","fR1","fR2","ry","path","rx1","ry2","ry1","rx2","large_arc","a1","Math","PI","a2","dx1","round","cos","dy1","sin","fTheta","ct","st","phi1","np","dphi","lastx","lasty","angle","px","py","drawPie","pie","nb","fPieSlices","length","xc","yc","fRadius","total","af","fAngularOffset","x1","y1","fValue","slice","x2","y2","drawBox","box","draw_line","toUpperCase","indexOf","empty","color","fX2","fY2","borderMode","fBorderMode","fBorderSize","hasColor","borderSize","getPathes","xx","min","yy","ww","abs","hh","pww","phh","side1","side2","paths","d3_rgb","brighter","formatHex","darker","moveStart","c_x1","c_x2","c_y1","c_y2","nodes","selectAll","forEach","i","d3_select","drawMarker","marker","kMarkerNDC","createAttMarker","markeratt","create","drawPolyMarker","poly","drawJSImage","dom","obj","painter","BasePainter","main","selectDom","img","fName","setTopPainter"],"ignoreList":[],"sourceRoot":"webpack:///","sources":["../node_modules/jsroot/modules/draw/more.mjs"],"sourcesContent":["import { BIT, isFunc, clTLatex, clTMathText, clTAnnotation, clTPolyLine } from '../core.mjs';\nimport { rgb as d3_rgb, select as d3_select } from '../d3.mjs';\nimport { BasePainter, makeTranslate } from '../base/BasePainter.mjs';\nimport { addMoveHandler } from '../gui/utils.mjs';\nimport { assignContextMenu, kToFront } from '../gui/menu.mjs';\n\n\n/** @summary Draw TText\n * @private */\nasync function drawText() {\n const text = this.getObject(),\n pp = this.getPadPainter(),\n w = pp.getPadWidth(),\n h = pp.getPadHeight(),\n fp = this.getFramePainter();\n let pos_x = text.fX, pos_y = text.fY,\n fact = 1,\n annot = this.matchObjectType(clTAnnotation);\n\n this.createAttText({ attr: text });\n\n if (annot && fp?.mode3d && isFunc(fp?.convert3DtoPadNDC)) {\n const pos = fp.convert3DtoPadNDC(text.fX, text.fY, text.fZ);\n pos_x = pos.x;\n pos_y = pos.y;\n this.isndc = true;\n annot = '3d';\n } else if (text.TestBit(BIT(14))) {\n // NDC coordinates\n this.isndc = true;\n } else if (pp.getRootPad(true)) {\n // force pad coordiantes\n } else {\n // place in the middle\n this.isndc = true;\n pos_x = pos_y = 0.5;\n text.fTextAlign = 22;\n }\n\n this.createG();\n\n this.draw_g.attr('transform', null); // remove transofrm from interactive changes\n\n this.pos_x = this.axisToSvg('x', pos_x, this.isndc);\n this.pos_y = this.axisToSvg('y', pos_y, this.isndc);\n\n const arg = this.textatt.createArg({ x: this.pos_x, y: this.pos_y, text: text.fTitle, latex: 0 });\n\n if ((text._typename === clTLatex) || annot) {\n arg.latex = 1;\n fact = 0.9;\n } else if (text._typename === clTMathText) {\n arg.latex = 2;\n fact = 0.8;\n }\n\n this.startTextDrawing(this.textatt.font, this.textatt.getSize(w, h, fact, 0.05));\n\n this.drawText(arg);\n\n return this.finishTextDrawing().then(() => {\n if (this.isBatchMode()) return this;\n\n this.pos_dx = this.pos_dy = 0;\n\n if (!this.moveDrag) {\n this.moveDrag = function(dx, dy) {\n this.pos_dx += dx;\n this.pos_dy += dy;\n makeTranslate(this.draw_g, this.pos_dx, this.pos_dy);\n };\n }\n\n if (!this.moveEnd) {\n this.moveEnd = function(not_changed) {\n if (not_changed) return;\n const text = this.getObject();\n text.fX = this.svgToAxis('x', this.pos_x + this.pos_dx, this.isndc);\n text.fY = this.svgToAxis('y', this.pos_y + this.pos_dy, this.isndc);\n this.submitCanvExec(`SetX(${text.fX});;SetY(${text.fY});;`);\n };\n }\n\n if (annot !== '3d')\n addMoveHandler(this);\n else {\n fp.processRender3D = true;\n this.handleRender3D = () => {\n const pos = fp.convert3DtoPadNDC(text.fX, text.fY, text.fZ),\n new_x = this.axisToSvg('x', pos.x, true),\n new_y = this.axisToSvg('y', pos.y, true);\n makeTranslate(this.draw_g, new_x - this.pos_x, new_y - this.pos_y);\n };\n }\n\n assignContextMenu(this, kToFront);\n\n return this;\n });\n}\n\n\n/** @summary Draw TPolyLine\n * @private */\nfunction drawPolyLine() {\n this.createG();\n\n const polyline = this.getObject(),\n kPolyLineNDC = BIT(14),\n isndc = polyline.TestBit(kPolyLineNDC),\n opt = this.getDrawOpt() || polyline.fOption,\n dofill = (polyline._typename === clTPolyLine) && ((opt === 'f') || (opt === 'F')),\n func = this.getAxisToSvgFunc(isndc);\n\n this.createAttLine({ attr: polyline });\n this.createAttFill({ attr: polyline });\n\n let cmd = '';\n for (let n = 0; n <= polyline.fLastPoint; ++n)\n cmd += `${n>0?'L':'M'}${func.x(polyline.fX[n])},${func.y(polyline.fY[n])}`;\n\n if (dofill)\n cmd += 'Z';\n\n const elem = this.draw_g.append('svg:path').attr('d', cmd);\n\n if (dofill)\n elem.call(this.fillatt.func);\n else\n elem.call(this.lineatt.func).style('fill', 'none');\n\n assignContextMenu(this, kToFront);\n\n addMoveHandler(this);\n\n this.dx = this.dy = 0;\n this.isndc = isndc;\n\n this.moveDrag = function(dx, dy) {\n this.dx += dx;\n this.dy += dy;\n makeTranslate(this.draw_g.select('path'), this.dx, this.dy);\n };\n\n this.moveEnd = function(not_changed) {\n if (not_changed) return;\n const polyline = this.getObject(),\n func = this.getAxisToSvgFunc(this.isndc);\n let exec = '';\n\n for (let n = 0; n <= polyline.fLastPoint; ++n) {\n const x = this.svgToAxis('x', func.x(polyline.fX[n]) + this.dx, this.isndc),\n y = this.svgToAxis('y', func.y(polyline.fY[n]) + this.dy, this.isndc);\n polyline.fX[n] = x;\n polyline.fY[n] = y;\n exec += `SetPoint(${n},${x},${y});;`;\n }\n this.submitCanvExec(exec + 'Notify();;');\n this.redraw();\n };\n}\n\n/** @summary Draw TEllipse\n * @private */\nfunction drawEllipse() {\n const ellipse = this.getObject(),\n closed_ellipse = (ellipse.fPhimin === 0) && (ellipse.fPhimax === 360),\n is_crown = (ellipse._typename === 'TCrown');\n\n this.createAttLine({ attr: ellipse });\n this.createAttFill({ attr: ellipse });\n\n this.createG();\n\n const funcs = this.getAxisToSvgFunc(),\n x = funcs.x(ellipse.fX1),\n y = funcs.y(ellipse.fY1),\n rx = is_crown && (ellipse.fR1 <= 0) ? (funcs.x(ellipse.fX1 + ellipse.fR2) - x) : (funcs.x(ellipse.fX1 + ellipse.fR1) - x),\n ry = y - funcs.y(ellipse.fY1 + ellipse.fR2);\n\n let path = '';\n\n if (is_crown && (ellipse.fR1 > 0)) {\n const rx1 = rx, ry2 = ry,\n ry1 = y - funcs.y(ellipse.fY1 + ellipse.fR1),\n rx2 = funcs.x(ellipse.fX1 + ellipse.fR2) - x;\n\n if (closed_ellipse) {\n path = `M${-rx1},0A${rx1},${ry1},0,1,0,${rx1},0A${rx1},${ry1},0,1,0,${-rx1},0` +\n `M${-rx2},0A${rx2},${ry2},0,1,0,${rx2},0A${rx2},${ry2},0,1,0,${-rx2},0`;\n } else {\n const large_arc = (ellipse.fPhimax-ellipse.fPhimin>=180) ? 1 : 0,\n a1 = ellipse.fPhimin*Math.PI/180, a2 = ellipse.fPhimax*Math.PI/180,\n dx1 = Math.round(rx1*Math.cos(a1)), dy1 = Math.round(ry1*Math.sin(a1)),\n dx2 = Math.round(rx1*Math.cos(a2)), dy2 = Math.round(ry1*Math.sin(a2)),\n dx3 = Math.round(rx2*Math.cos(a1)), dy3 = Math.round(ry2*Math.sin(a1)),\n dx4 = Math.round(rx2*Math.cos(a2)), dy4 = Math.round(ry2*Math.sin(a2));\n\n path = `M${dx2},${dy2}A${rx1},${ry1},0,${large_arc},0,${dx1},${dy1}` +\n `L${dx3},${dy3}A${rx2},${ry2},0,${large_arc},1,${dx4},${dy4}Z`;\n }\n } else if (ellipse.fTheta === 0) {\n if (closed_ellipse)\n path = `M${-rx},0A${rx},${ry},0,1,0,${rx},0A${rx},${ry},0,1,0,${-rx},0Z`;\n else {\n const x1 = Math.round(rx * Math.cos(ellipse.fPhimin*Math.PI/180)),\n y1 = Math.round(ry * Math.sin(ellipse.fPhimin*Math.PI/180)),\n x2 = Math.round(rx * Math.cos(ellipse.fPhimax*Math.PI/180)),\n y2 = Math.round(ry * Math.sin(ellipse.fPhimax*Math.PI/180));\n path = `M0,0L${x1},${y1}A${rx},${ry},0,1,1,${x2},${y2}Z`;\n }\n } else {\n const ct = Math.cos(ellipse.fTheta*Math.PI/180),\n st = Math.sin(ellipse.fTheta*Math.PI/180),\n phi1 = ellipse.fPhimin*Math.PI/180,\n phi2 = ellipse.fPhimax*Math.PI/180,\n np = 200,\n dphi = (phi2-phi1) / (np - (closed_ellipse ? 0 : 1));\n let lastx = 0, lasty = 0;\n if (!closed_ellipse) path = 'M0,0';\n for (let n = 0; n < np; ++n) {\n const angle = phi1 + n*dphi,\n dx = ellipse.fR1 * Math.cos(angle),\n dy = ellipse.fR2 * Math.sin(angle),\n px = funcs.x(ellipse.fX1 + dx*ct - dy*st) - x,\n py = funcs.y(ellipse.fY1 + dx*st + dy*ct) - y;\n if (!path)\n path = `M${px},${py}`;\n else if (lastx === px)\n path += `v${py-lasty}`;\n else if (lasty === py)\n path += `h${px-lastx}`;\n else\n path += `l${px-lastx},${py-lasty}`;\n lastx = px; lasty = py;\n }\n path += 'Z';\n }\n\n this.x = x;\n this.y = y;\n\n makeTranslate(this.draw_g.append('svg:path'), x, y)\n .attr('d', path)\n .call(this.lineatt.func)\n .call(this.fillatt.func);\n\n assignContextMenu(this, kToFront);\n\n addMoveHandler(this);\n\n this.moveDrag = function(dx, dy) {\n this.x += dx;\n this.y += dy;\n makeTranslate(this.draw_g.select('path'), this.x, this.y);\n };\n\n this.moveEnd = function(not_changed) {\n if (not_changed) return;\n const ellipse = this.getObject();\n ellipse.fX1 = this.svgToAxis('x', this.x);\n ellipse.fY1 = this.svgToAxis('y', this.y);\n this.submitCanvExec(`SetX1(${ellipse.fX1});;SetY1(${ellipse.fY1});;Notify();;`);\n };\n}\n\n/** @summary Draw TPie\n * @private */\nfunction drawPie() {\n this.createG();\n\n const pie = this.getObject(),\n nb = pie.fPieSlices.length,\n xc = this.axisToSvg('x', pie.fX),\n yc = this.axisToSvg('y', pie.fY),\n rx = this.axisToSvg('x', pie.fX + pie.fRadius) - xc,\n ry = this.axisToSvg('y', pie.fY + pie.fRadius) - yc;\n\n makeTranslate(this.draw_g, xc, yc);\n\n // Draw the slices\n let total = 0,\n af = (pie.fAngularOffset*Math.PI)/180,\n x1 = Math.round(rx*Math.cos(af)),\n y1 = Math.round(ry*Math.sin(af));\n\n for (let n = 0; n < nb; n++)\n total += pie.fPieSlices[n].fValue;\n\n for (let n = 0; n < nb; n++) {\n const slice = pie.fPieSlices[n];\n\n this.createAttLine({ attr: slice });\n this.createAttFill({ attr: slice });\n\n af += slice.fValue/total*2*Math.PI;\n const x2 = Math.round(rx*Math.cos(af)),\n y2 = Math.round(ry*Math.sin(af));\n\n this.draw_g\n .append('svg:path')\n .attr('d', `M0,0L${x1},${y1}A${rx},${ry},0,0,0,${x2},${y2}z`)\n .call(this.lineatt.func)\n .call(this.fillatt.func);\n x1 = x2; y1 = y2;\n }\n}\n\n/** @summary Draw TBox\n * @private */\nfunction drawBox() {\n const box = this.getObject(),\n opt = this.getDrawOpt(),\n draw_line = (opt.toUpperCase().indexOf('L') >= 0);\n\n this.createAttLine({ attr: box });\n this.createAttFill({ attr: box });\n\n // if box filled, contour line drawn only with 'L' draw option:\n if (!this.fillatt.empty() && !draw_line)\n this.lineatt.color = 'none';\n\n this.createG();\n\n this.x1 = this.axisToSvg('x', box.fX1);\n this.x2 = this.axisToSvg('x', box.fX2);\n this.y1 = this.axisToSvg('y', box.fY1);\n this.y2 = this.axisToSvg('y', box.fY2);\n this.borderMode = (box.fBorderMode && box.fBorderSize && this.fillatt.hasColor()) ? box.fBorderMode : 0;\n this.borderSize = box.fBorderSize;\n\n this.getPathes = () => {\n const xx = Math.min(this.x1, this.x2), yy = Math.min(this.y1, this.y2),\n ww = Math.abs(this.x2 - this.x1), hh = Math.abs(this.y1 - this.y2),\n path = `M${xx},${yy}h${ww}v${hh}h${-ww}z`;\n if (!this.borderMode)\n return [path];\n const pww = this.borderSize, phh = this.borderSize,\n side1 = `M${xx},${yy}h${ww}l${-pww},${phh}h${2*pww-ww}v${hh-2*phh}l${-pww},${phh}z`,\n side2 = `M${xx+ww},${yy+hh}v${-hh}l${-pww},${phh}v${hh-2*phh}h${2*pww-ww}l${-pww},${phh}z`;\n\n return (this.borderMode > 0) ? [path, side1, side2] : [path, side2, side1];\n };\n\n const paths = this.getPathes();\n\n this.draw_g\n .append('svg:path')\n .attr('d', paths[0])\n .call(this.lineatt.func)\n .call(this.fillatt.func);\n\n if (this.borderMode) {\n this.draw_g.append('svg:path')\n .attr('d', paths[1])\n .call(this.fillatt.func)\n .style('fill', d3_rgb(this.fillatt.color).brighter(0.5).formatHex());\n\n this.draw_g.append('svg:path')\n .attr('d', paths[2])\n .call(this.fillatt.func)\n .style('fill', d3_rgb(this.fillatt.color).darker(0.5).formatHex());\n }\n\n assignContextMenu(this, kToFront);\n\n addMoveHandler(this);\n\n this.moveStart = function(x, y) {\n const ww = Math.abs(this.x2 - this.x1), hh = Math.abs(this.y1 - this.y2);\n\n this.c_x1 = Math.abs(x - this.x2) > ww*0.1;\n this.c_x2 = Math.abs(x - this.x1) > ww*0.1;\n this.c_y1 = Math.abs(y - this.y2) > hh*0.1;\n this.c_y2 = Math.abs(y - this.y1) > hh*0.1;\n if (this.c_x1 !== this.c_x2 && this.c_y1 && this.c_y2)\n this.c_y1 = this.c_y2 = false;\n if (this.c_y1 !== this.c_y2 && this.c_x1 && this.c_x2)\n this.c_x1 = this.c_x2 = false;\n };\n\n this.moveDrag = function(dx, dy) {\n if (this.c_x1) this.x1 += dx;\n if (this.c_x2) this.x2 += dx;\n if (this.c_y1) this.y1 += dy;\n if (this.c_y2) this.y2 += dy;\n\n const nodes = this.draw_g.selectAll('path').nodes(),\n pathes = this.getPathes();\n\n pathes.forEach((path, i) => d3_select(nodes[i]).attr('d', path));\n };\n\n this.moveEnd = function(not_changed) {\n if (not_changed) return;\n const box = this.getObject();\n let exec = '';\n if (this.c_x1) { box.fX1 = this.svgToAxis('x', this.x1); exec += `SetX1(${box.fX1});;`; }\n if (this.c_x2) { box.fX2 = this.svgToAxis('x', this.x2); exec += `SetX2(${box.fX2});;`; }\n if (this.c_y1) { box.fY1 = this.svgToAxis('y', this.y1); exec += `SetY1(${box.fY1});;`; }\n if (this.c_y2) { box.fY2 = this.svgToAxis('y', this.y2); exec += `SetY2(${box.fY2});;`; }\n this.submitCanvExec(exec + 'Notify();;');\n };\n}\n\n/** @summary Draw TMarker\n * @private */\nfunction drawMarker() {\n const marker = this.getObject(),\n kMarkerNDC = BIT(14);\n\n this.isndc = marker.TestBit(kMarkerNDC);\n\n this.createAttMarker({ attr: marker });\n\n this.createG();\n\n const x = this.axisToSvg('x', marker.fX, this.isndc),\n y = this.axisToSvg('y', marker.fY, this.isndc),\n path = this.markeratt.create(x, y);\n\n if (path) {\n this.draw_g.append('svg:path')\n .attr('d', path)\n .call(this.markeratt.func);\n }\n\n assignContextMenu(this, kToFront);\n\n addMoveHandler(this);\n\n this.dx = this.dy = 0;\n\n this.moveDrag = function(dx, dy) {\n this.dx += dx;\n this.dy += dy;\n makeTranslate(this.draw_g.select('path'), this.dx, this.dy);\n };\n\n this.moveEnd = function(not_changed) {\n if (not_changed) return;\n const marker = this.getObject();\n marker.fX = this.svgToAxis('x', this.axisToSvg('x', marker.fX, this.isndc) + this.dx, this.isndc);\n marker.fY = this.svgToAxis('y', this.axisToSvg('y', marker.fY, this.isndc) + this.dy, this.isndc);\n this.submitCanvExec(`SetX(${marker.fX});;SetY(${marker.fY});;Notify();;`);\n this.redraw();\n };\n}\n\n/** @summary Draw TPolyMarker\n * @private */\nfunction drawPolyMarker() {\n const poly = this.getObject(),\n func = this.getAxisToSvgFunc();\n\n this.createAttMarker({ attr: poly });\n\n this.createG();\n\n let path = '';\n for (let n = 0; n <= poly.fLastPoint; ++n)\n path += this.markeratt.create(func.x(poly.fX[n]), func.y(poly.fY[n]));\n\n if (path) {\n this.draw_g.append('svg:path')\n .attr('d', path)\n .call(this.markeratt.func);\n }\n\n assignContextMenu(this, kToFront);\n\n addMoveHandler(this);\n\n this.dx = this.dy = 0;\n\n this.moveDrag = function(dx, dy) {\n this.dx += dx;\n this.dy += dy;\n makeTranslate(this.draw_g.select('path'), this.dx, this.dy);\n };\n\n this.moveEnd = function(not_changed) {\n if (not_changed) return;\n const poly = this.getObject(),\n func = this.getAxisToSvgFunc();\n\n let exec = '';\n for (let n = 0; n <= poly.fLastPoint; ++n) {\n const x = this.svgToAxis('x', func.x(poly.fX[n]) + this.dx),\n y = this.svgToAxis('y', func.y(poly.fY[n]) + this.dy);\n poly.fX[n] = x;\n poly.fY[n] = y;\n exec += `SetPoint(${n},${x},${y});;`;\n }\n this.submitCanvExec(exec + 'Notify();;');\n this.redraw();\n };\n}\n\n/** @summary Draw JS image\n * @private */\nfunction drawJSImage(dom, obj, opt) {\n const painter = new BasePainter(dom),\n main = painter.selectDom(),\n img = main.append('img').attr('src', obj.fName).attr('title', obj.fTitle || obj.fName);\n\n if (opt && opt.indexOf('scale') >= 0)\n img.style('width', '100%').style('height', '100%');\n else if (opt && opt.indexOf('center') >= 0) {\n main.style('position', 'relative');\n img.attr('style', 'margin: 0; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);');\n }\n\n painter.setTopPainter();\n\n return painter;\n}\n\nexport { drawText, drawPolyLine, drawEllipse, drawPie, drawBox,\n drawMarker, drawPolyMarker, drawJSImage };\n"],"x_google_ignoreList":[0]} \ No newline at end of file +{"version":3,"file":"653.a285108ef0ba342d.js","mappings":"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","names":["drawText","_drawText","apply","this","arguments","_asyncToGenerator","text","getObject","pp","getPadPainter","w","getPadWidth","h","getPadHeight","fp","getFramePainter","pos_x","fX","pos_y","fY","fact","annot","matchObjectType","clTAnnotation","createAttText","attr","mode3d","isFunc","convert3DtoPadNDC","pos","fZ","x","y","isndc","TestBit","BIT","getRootPad","fTextAlign","createG","draw_g","axisToSvg","arg","textatt","createArg","fTitle","latex","_typename","clTLatex","clTMathText","startTextDrawing","font","getSize","finishTextDrawing","then","isBatchMode","pos_dx","pos_dy","moveDrag","dx","dy","makeTranslate","moveEnd","not_changed","svgToAxis","submitCanvExec","addMoveHandler","processRender3D","handleRender3D","new_x","new_y","assignContextMenu","kToFront","drawPolyLine","polyline","kPolyLineNDC","opt","getDrawOpt","fOption","dofill","clTPolyLine","func","getAxisToSvgFunc","createAttLine","createAttFill","cmd","n","fLastPoint","elem","append","call","fillatt","lineatt","style","select","exec","redraw","drawEllipse","ellipse","closed_ellipse","fPhimin","fPhimax","is_crown","funcs","fX1","fY1","rx","fR1","fR2","ry","path","rx1","ry2","ry1","rx2","large_arc","a1","Math","PI","a2","dx1","round","cos","dy1","sin","fTheta","ct","st","phi1","np","dphi","lastx","lasty","angle","px","py","drawPie","pie","nb","fPieSlices","length","xc","yc","fRadius","total","af","fAngularOffset","x1","y1","fValue","slice","x2","y2","drawBox","box","draw_line","toUpperCase","indexOf","empty","color","fX2","fY2","borderMode","fBorderMode","fBorderSize","hasColor","borderSize","getPathes","xx","min","yy","ww","abs","hh","pww","phh","side1","side2","paths","d3_rgb","brighter","formatHex","darker","moveStart","c_x1","c_x2","c_y1","c_y2","nodes","selectAll","forEach","i","d3_select","drawMarker","marker","kMarkerNDC","createAttMarker","markeratt","create","drawPolyMarker","poly","drawJSImage","dom","obj","painter","BasePainter","main","selectDom","img","fName","setTopPainter"],"ignoreList":[],"sourceRoot":"webpack:///","sources":["../node_modules/jsroot/modules/draw/more.mjs"],"sourcesContent":["import { BIT, isFunc, clTLatex, clTMathText, clTAnnotation, clTPolyLine } from '../core.mjs';\nimport { rgb as d3_rgb, select as d3_select } from '../d3.mjs';\nimport { BasePainter, makeTranslate } from '../base/BasePainter.mjs';\nimport { addMoveHandler } from '../gui/utils.mjs';\nimport { assignContextMenu, kToFront } from '../gui/menu.mjs';\n\n\n/** @summary Draw TText\n * @private */\nasync function drawText() {\n const text = this.getObject(),\n pp = this.getPadPainter(),\n w = pp.getPadWidth(),\n h = pp.getPadHeight(),\n fp = this.getFramePainter();\n let pos_x = text.fX, pos_y = text.fY,\n fact = 1,\n annot = this.matchObjectType(clTAnnotation);\n\n this.createAttText({ attr: text });\n\n if (annot && fp?.mode3d && isFunc(fp?.convert3DtoPadNDC)) {\n const pos = fp.convert3DtoPadNDC(text.fX, text.fY, text.fZ);\n pos_x = pos.x;\n pos_y = pos.y;\n this.isndc = true;\n annot = '3d';\n } else if (text.TestBit(BIT(14))) {\n // NDC coordinates\n this.isndc = true;\n } else if (pp.getRootPad(true)) {\n // force pad coordiantes\n } else {\n // place in the middle\n this.isndc = true;\n pos_x = pos_y = 0.5;\n text.fTextAlign = 22;\n }\n\n this.createG();\n\n this.draw_g.attr('transform', null); // remove transofrm from interactive changes\n\n this.pos_x = this.axisToSvg('x', pos_x, this.isndc);\n this.pos_y = this.axisToSvg('y', pos_y, this.isndc);\n\n const arg = this.textatt.createArg({ x: this.pos_x, y: this.pos_y, text: text.fTitle, latex: 0 });\n\n if ((text._typename === clTLatex) || annot) {\n arg.latex = 1;\n fact = 0.9;\n } else if (text._typename === clTMathText) {\n arg.latex = 2;\n fact = 0.8;\n }\n\n this.startTextDrawing(this.textatt.font, this.textatt.getSize(w, h, fact, 0.05));\n\n this.drawText(arg);\n\n return this.finishTextDrawing().then(() => {\n if (this.isBatchMode()) return this;\n\n this.pos_dx = this.pos_dy = 0;\n\n if (!this.moveDrag) {\n this.moveDrag = function(dx, dy) {\n this.pos_dx += dx;\n this.pos_dy += dy;\n makeTranslate(this.draw_g, this.pos_dx, this.pos_dy);\n };\n }\n\n if (!this.moveEnd) {\n this.moveEnd = function(not_changed) {\n if (not_changed) return;\n const text = this.getObject();\n text.fX = this.svgToAxis('x', this.pos_x + this.pos_dx, this.isndc);\n text.fY = this.svgToAxis('y', this.pos_y + this.pos_dy, this.isndc);\n this.submitCanvExec(`SetX(${text.fX});;SetY(${text.fY});;`);\n };\n }\n\n if (annot !== '3d')\n addMoveHandler(this);\n else {\n fp.processRender3D = true;\n this.handleRender3D = () => {\n const pos = fp.convert3DtoPadNDC(text.fX, text.fY, text.fZ),\n new_x = this.axisToSvg('x', pos.x, true),\n new_y = this.axisToSvg('y', pos.y, true);\n makeTranslate(this.draw_g, new_x - this.pos_x, new_y - this.pos_y);\n };\n }\n\n assignContextMenu(this, kToFront);\n\n return this;\n });\n}\n\n\n/** @summary Draw TPolyLine\n * @private */\nfunction drawPolyLine() {\n this.createG();\n\n const polyline = this.getObject(),\n kPolyLineNDC = BIT(14),\n isndc = polyline.TestBit(kPolyLineNDC),\n opt = this.getDrawOpt() || polyline.fOption,\n dofill = (polyline._typename === clTPolyLine) && ((opt === 'f') || (opt === 'F')),\n func = this.getAxisToSvgFunc(isndc);\n\n this.createAttLine({ attr: polyline });\n this.createAttFill({ attr: polyline });\n\n let cmd = '';\n for (let n = 0; n <= polyline.fLastPoint; ++n)\n cmd += `${n>0?'L':'M'}${func.x(polyline.fX[n])},${func.y(polyline.fY[n])}`;\n\n if (dofill)\n cmd += 'Z';\n\n const elem = this.draw_g.append('svg:path').attr('d', cmd);\n\n if (dofill)\n elem.call(this.fillatt.func);\n else\n elem.call(this.lineatt.func).style('fill', 'none');\n\n assignContextMenu(this, kToFront);\n\n addMoveHandler(this);\n\n this.dx = this.dy = 0;\n this.isndc = isndc;\n\n this.moveDrag = function(dx, dy) {\n this.dx += dx;\n this.dy += dy;\n makeTranslate(this.draw_g.select('path'), this.dx, this.dy);\n };\n\n this.moveEnd = function(not_changed) {\n if (not_changed) return;\n const polyline = this.getObject(),\n func = this.getAxisToSvgFunc(this.isndc);\n let exec = '';\n\n for (let n = 0; n <= polyline.fLastPoint; ++n) {\n const x = this.svgToAxis('x', func.x(polyline.fX[n]) + this.dx, this.isndc),\n y = this.svgToAxis('y', func.y(polyline.fY[n]) + this.dy, this.isndc);\n polyline.fX[n] = x;\n polyline.fY[n] = y;\n exec += `SetPoint(${n},${x},${y});;`;\n }\n this.submitCanvExec(exec + 'Notify();;');\n this.redraw();\n };\n}\n\n/** @summary Draw TEllipse\n * @private */\nfunction drawEllipse() {\n const ellipse = this.getObject(),\n closed_ellipse = (ellipse.fPhimin === 0) && (ellipse.fPhimax === 360),\n is_crown = (ellipse._typename === 'TCrown');\n\n this.createAttLine({ attr: ellipse });\n this.createAttFill({ attr: ellipse });\n\n this.createG();\n\n const funcs = this.getAxisToSvgFunc(),\n x = funcs.x(ellipse.fX1),\n y = funcs.y(ellipse.fY1),\n rx = is_crown && (ellipse.fR1 <= 0) ? (funcs.x(ellipse.fX1 + ellipse.fR2) - x) : (funcs.x(ellipse.fX1 + ellipse.fR1) - x),\n ry = y - funcs.y(ellipse.fY1 + ellipse.fR2);\n\n let path = '';\n\n if (is_crown && (ellipse.fR1 > 0)) {\n const rx1 = rx, ry2 = ry,\n ry1 = y - funcs.y(ellipse.fY1 + ellipse.fR1),\n rx2 = funcs.x(ellipse.fX1 + ellipse.fR2) - x;\n\n if (closed_ellipse) {\n path = `M${-rx1},0A${rx1},${ry1},0,1,0,${rx1},0A${rx1},${ry1},0,1,0,${-rx1},0` +\n `M${-rx2},0A${rx2},${ry2},0,1,0,${rx2},0A${rx2},${ry2},0,1,0,${-rx2},0`;\n } else {\n const large_arc = (ellipse.fPhimax-ellipse.fPhimin>=180) ? 1 : 0,\n a1 = ellipse.fPhimin*Math.PI/180, a2 = ellipse.fPhimax*Math.PI/180,\n dx1 = Math.round(rx1*Math.cos(a1)), dy1 = Math.round(ry1*Math.sin(a1)),\n dx2 = Math.round(rx1*Math.cos(a2)), dy2 = Math.round(ry1*Math.sin(a2)),\n dx3 = Math.round(rx2*Math.cos(a1)), dy3 = Math.round(ry2*Math.sin(a1)),\n dx4 = Math.round(rx2*Math.cos(a2)), dy4 = Math.round(ry2*Math.sin(a2));\n\n path = `M${dx2},${dy2}A${rx1},${ry1},0,${large_arc},0,${dx1},${dy1}` +\n `L${dx3},${dy3}A${rx2},${ry2},0,${large_arc},1,${dx4},${dy4}Z`;\n }\n } else if (ellipse.fTheta === 0) {\n if (closed_ellipse)\n path = `M${-rx},0A${rx},${ry},0,1,0,${rx},0A${rx},${ry},0,1,0,${-rx},0Z`;\n else {\n const x1 = Math.round(rx * Math.cos(ellipse.fPhimin*Math.PI/180)),\n y1 = Math.round(ry * Math.sin(ellipse.fPhimin*Math.PI/180)),\n x2 = Math.round(rx * Math.cos(ellipse.fPhimax*Math.PI/180)),\n y2 = Math.round(ry * Math.sin(ellipse.fPhimax*Math.PI/180));\n path = `M0,0L${x1},${y1}A${rx},${ry},0,1,1,${x2},${y2}Z`;\n }\n } else {\n const ct = Math.cos(ellipse.fTheta*Math.PI/180),\n st = Math.sin(ellipse.fTheta*Math.PI/180),\n phi1 = ellipse.fPhimin*Math.PI/180,\n phi2 = ellipse.fPhimax*Math.PI/180,\n np = 200,\n dphi = (phi2-phi1) / (np - (closed_ellipse ? 0 : 1));\n let lastx = 0, lasty = 0;\n if (!closed_ellipse) path = 'M0,0';\n for (let n = 0; n < np; ++n) {\n const angle = phi1 + n*dphi,\n dx = ellipse.fR1 * Math.cos(angle),\n dy = ellipse.fR2 * Math.sin(angle),\n px = funcs.x(ellipse.fX1 + dx*ct - dy*st) - x,\n py = funcs.y(ellipse.fY1 + dx*st + dy*ct) - y;\n if (!path)\n path = `M${px},${py}`;\n else if (lastx === px)\n path += `v${py-lasty}`;\n else if (lasty === py)\n path += `h${px-lastx}`;\n else\n path += `l${px-lastx},${py-lasty}`;\n lastx = px; lasty = py;\n }\n path += 'Z';\n }\n\n this.x = x;\n this.y = y;\n\n makeTranslate(this.draw_g.append('svg:path'), x, y)\n .attr('d', path)\n .call(this.lineatt.func)\n .call(this.fillatt.func);\n\n assignContextMenu(this, kToFront);\n\n addMoveHandler(this);\n\n this.moveDrag = function(dx, dy) {\n this.x += dx;\n this.y += dy;\n makeTranslate(this.draw_g.select('path'), this.x, this.y);\n };\n\n this.moveEnd = function(not_changed) {\n if (not_changed) return;\n const ellipse = this.getObject();\n ellipse.fX1 = this.svgToAxis('x', this.x);\n ellipse.fY1 = this.svgToAxis('y', this.y);\n this.submitCanvExec(`SetX1(${ellipse.fX1});;SetY1(${ellipse.fY1});;Notify();;`);\n };\n}\n\n/** @summary Draw TPie\n * @private */\nfunction drawPie() {\n this.createG();\n\n const pie = this.getObject(),\n nb = pie.fPieSlices.length,\n xc = this.axisToSvg('x', pie.fX),\n yc = this.axisToSvg('y', pie.fY),\n rx = this.axisToSvg('x', pie.fX + pie.fRadius) - xc,\n ry = this.axisToSvg('y', pie.fY + pie.fRadius) - yc;\n\n makeTranslate(this.draw_g, xc, yc);\n\n // Draw the slices\n let total = 0,\n af = (pie.fAngularOffset*Math.PI)/180,\n x1 = Math.round(rx*Math.cos(af)),\n y1 = Math.round(ry*Math.sin(af));\n\n for (let n = 0; n < nb; n++)\n total += pie.fPieSlices[n].fValue;\n\n for (let n = 0; n < nb; n++) {\n const slice = pie.fPieSlices[n];\n\n this.createAttLine({ attr: slice });\n this.createAttFill({ attr: slice });\n\n af += slice.fValue/total*2*Math.PI;\n const x2 = Math.round(rx*Math.cos(af)),\n y2 = Math.round(ry*Math.sin(af));\n\n this.draw_g\n .append('svg:path')\n .attr('d', `M0,0L${x1},${y1}A${rx},${ry},0,0,0,${x2},${y2}z`)\n .call(this.lineatt.func)\n .call(this.fillatt.func);\n x1 = x2; y1 = y2;\n }\n}\n\n/** @summary Draw TBox\n * @private */\nfunction drawBox() {\n const box = this.getObject(),\n opt = this.getDrawOpt(),\n draw_line = (opt.toUpperCase().indexOf('L') >= 0);\n\n this.createAttLine({ attr: box });\n this.createAttFill({ attr: box });\n\n // if box filled, contour line drawn only with 'L' draw option:\n if (!this.fillatt.empty() && !draw_line)\n this.lineatt.color = 'none';\n\n this.createG();\n\n this.x1 = this.axisToSvg('x', box.fX1);\n this.x2 = this.axisToSvg('x', box.fX2);\n this.y1 = this.axisToSvg('y', box.fY1);\n this.y2 = this.axisToSvg('y', box.fY2);\n this.borderMode = (box.fBorderMode && box.fBorderSize && this.fillatt.hasColor()) ? box.fBorderMode : 0;\n this.borderSize = box.fBorderSize;\n\n this.getPathes = () => {\n const xx = Math.min(this.x1, this.x2), yy = Math.min(this.y1, this.y2),\n ww = Math.abs(this.x2 - this.x1), hh = Math.abs(this.y1 - this.y2),\n path = `M${xx},${yy}h${ww}v${hh}h${-ww}z`;\n if (!this.borderMode)\n return [path];\n const pww = this.borderSize, phh = this.borderSize,\n side1 = `M${xx},${yy}h${ww}l${-pww},${phh}h${2*pww-ww}v${hh-2*phh}l${-pww},${phh}z`,\n side2 = `M${xx+ww},${yy+hh}v${-hh}l${-pww},${phh}v${hh-2*phh}h${2*pww-ww}l${-pww},${phh}z`;\n\n return (this.borderMode > 0) ? [path, side1, side2] : [path, side2, side1];\n };\n\n const paths = this.getPathes();\n\n this.draw_g\n .append('svg:path')\n .attr('d', paths[0])\n .call(this.lineatt.func)\n .call(this.fillatt.func);\n\n if (this.borderMode) {\n this.draw_g.append('svg:path')\n .attr('d', paths[1])\n .call(this.fillatt.func)\n .style('fill', d3_rgb(this.fillatt.color).brighter(0.5).formatHex());\n\n this.draw_g.append('svg:path')\n .attr('d', paths[2])\n .call(this.fillatt.func)\n .style('fill', d3_rgb(this.fillatt.color).darker(0.5).formatHex());\n }\n\n assignContextMenu(this, kToFront);\n\n addMoveHandler(this);\n\n this.moveStart = function(x, y) {\n const ww = Math.abs(this.x2 - this.x1), hh = Math.abs(this.y1 - this.y2);\n\n this.c_x1 = Math.abs(x - this.x2) > ww*0.1;\n this.c_x2 = Math.abs(x - this.x1) > ww*0.1;\n this.c_y1 = Math.abs(y - this.y2) > hh*0.1;\n this.c_y2 = Math.abs(y - this.y1) > hh*0.1;\n if (this.c_x1 !== this.c_x2 && this.c_y1 && this.c_y2)\n this.c_y1 = this.c_y2 = false;\n if (this.c_y1 !== this.c_y2 && this.c_x1 && this.c_x2)\n this.c_x1 = this.c_x2 = false;\n };\n\n this.moveDrag = function(dx, dy) {\n if (this.c_x1) this.x1 += dx;\n if (this.c_x2) this.x2 += dx;\n if (this.c_y1) this.y1 += dy;\n if (this.c_y2) this.y2 += dy;\n\n const nodes = this.draw_g.selectAll('path').nodes(),\n pathes = this.getPathes();\n\n pathes.forEach((path, i) => d3_select(nodes[i]).attr('d', path));\n };\n\n this.moveEnd = function(not_changed) {\n if (not_changed) return;\n const box = this.getObject();\n let exec = '';\n if (this.c_x1) { box.fX1 = this.svgToAxis('x', this.x1); exec += `SetX1(${box.fX1});;`; }\n if (this.c_x2) { box.fX2 = this.svgToAxis('x', this.x2); exec += `SetX2(${box.fX2});;`; }\n if (this.c_y1) { box.fY1 = this.svgToAxis('y', this.y1); exec += `SetY1(${box.fY1});;`; }\n if (this.c_y2) { box.fY2 = this.svgToAxis('y', this.y2); exec += `SetY2(${box.fY2});;`; }\n this.submitCanvExec(exec + 'Notify();;');\n };\n}\n\n/** @summary Draw TMarker\n * @private */\nfunction drawMarker() {\n const marker = this.getObject(),\n kMarkerNDC = BIT(14);\n\n this.isndc = marker.TestBit(kMarkerNDC);\n\n this.createAttMarker({ attr: marker });\n\n this.createG();\n\n const x = this.axisToSvg('x', marker.fX, this.isndc),\n y = this.axisToSvg('y', marker.fY, this.isndc),\n path = this.markeratt.create(x, y);\n\n if (path) {\n this.draw_g.append('svg:path')\n .attr('d', path)\n .call(this.markeratt.func);\n }\n\n assignContextMenu(this, kToFront);\n\n addMoveHandler(this);\n\n this.dx = this.dy = 0;\n\n this.moveDrag = function(dx, dy) {\n this.dx += dx;\n this.dy += dy;\n makeTranslate(this.draw_g.select('path'), this.dx, this.dy);\n };\n\n this.moveEnd = function(not_changed) {\n if (not_changed) return;\n const marker = this.getObject();\n marker.fX = this.svgToAxis('x', this.axisToSvg('x', marker.fX, this.isndc) + this.dx, this.isndc);\n marker.fY = this.svgToAxis('y', this.axisToSvg('y', marker.fY, this.isndc) + this.dy, this.isndc);\n this.submitCanvExec(`SetX(${marker.fX});;SetY(${marker.fY});;Notify();;`);\n this.redraw();\n };\n}\n\n/** @summary Draw TPolyMarker\n * @private */\nfunction drawPolyMarker() {\n const poly = this.getObject(),\n func = this.getAxisToSvgFunc();\n\n this.createAttMarker({ attr: poly });\n\n this.createG();\n\n let path = '';\n for (let n = 0; n <= poly.fLastPoint; ++n)\n path += this.markeratt.create(func.x(poly.fX[n]), func.y(poly.fY[n]));\n\n if (path) {\n this.draw_g.append('svg:path')\n .attr('d', path)\n .call(this.markeratt.func);\n }\n\n assignContextMenu(this, kToFront);\n\n addMoveHandler(this);\n\n this.dx = this.dy = 0;\n\n this.moveDrag = function(dx, dy) {\n this.dx += dx;\n this.dy += dy;\n makeTranslate(this.draw_g.select('path'), this.dx, this.dy);\n };\n\n this.moveEnd = function(not_changed) {\n if (not_changed) return;\n const poly = this.getObject(),\n func = this.getAxisToSvgFunc();\n\n let exec = '';\n for (let n = 0; n <= poly.fLastPoint; ++n) {\n const x = this.svgToAxis('x', func.x(poly.fX[n]) + this.dx),\n y = this.svgToAxis('y', func.y(poly.fY[n]) + this.dy);\n poly.fX[n] = x;\n poly.fY[n] = y;\n exec += `SetPoint(${n},${x},${y});;`;\n }\n this.submitCanvExec(exec + 'Notify();;');\n this.redraw();\n };\n}\n\n/** @summary Draw JS image\n * @private */\nfunction drawJSImage(dom, obj, opt) {\n const painter = new BasePainter(dom),\n main = painter.selectDom(),\n img = main.append('img').attr('src', obj.fName).attr('title', obj.fTitle || obj.fName);\n\n if (opt && opt.indexOf('scale') >= 0)\n img.style('width', '100%').style('height', '100%');\n else if (opt && opt.indexOf('center') >= 0) {\n main.style('position', 'relative');\n img.attr('style', 'margin: 0; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);');\n }\n\n painter.setTopPainter();\n\n return painter;\n}\n\nexport { drawText, drawPolyLine, drawEllipse, drawPie, drawBox,\n drawMarker, drawPolyMarker, drawJSImage };\n"],"x_google_ignoreList":[0]} \ No newline at end of file diff --git a/docs/666.1bff488e4190532e.js b/docs/666.53bccfb1d785b524.js similarity index 68% rename from docs/666.1bff488e4190532e.js rename to docs/666.53bccfb1d785b524.js index 6164aa6e..469564f6 100644 --- a/docs/666.1bff488e4190532e.js +++ b/docs/666.53bccfb1d785b524.js @@ -1,2 +1,2 @@ -"use strict";(self.webpackChunkphoenix_app=self.webpackChunkphoenix_app||[]).push([[666],{6666:(O,B,u)=>{u.r(B),u.d(B,{TASImagePainter:()=>p});var b=u(4882),g=u(8872),x=u(2985),y=u(7900),v=u(2843),A=u(1922),w=u(5891),E=u(4483);class p extends A.JW{decodeOptions(a){const t=new v.nC(a);this.options={Zscale:!1};const e=this.getObject();t.check("CONST")&&(this.options.constRatio=!0,e&&(e.fConstRatio=!0),console.log("use const")),t.check("Z")&&(this.options.Zscale=!0)}createRGBA(a){const t=this.getObject(),e=t?.fPalette;if(!e)return null;const r=new Array(4*(a+1)).fill(0);for(let l=0,o=1;l<=a;++l){const n=l/a;for(;e.fPoints[o]=o&&(o=l+1);const n=e.getImageZoomRange(t,a.fConstRatio,a.fWidth,a.fHeight);return((0,g.isNodeJs)()?u.e(364).then(u.t.bind(u,8364,19)).then(i=>i.default.createCanvas(n.xmax-n.xmin,n.ymax-n.ymin)):new Promise(i=>{const f=document.createElement("canvas");f.width=n.xmax-n.xmin,f.height=n.ymax-n.ymin,i(f)})).then(i=>{const f=i.getContext("2d"),c=f.getImageData(0,0,i.width,i.height),h=c.data;for(let m=n.ymin;mc){const h=r/c;o=Math.round((h-e)/2),s=Math.round(h)}else{const h=c*e;n=Math.round((h-r)/2),i=Math.round(h)}}return a.zoom_xmin!==a.zoom_xmax&&(l.xmin=Math.min(e,Math.max(0,Math.round(a.zoom_xmin*s)-o)),l.xmax=Math.min(e,Math.max(0,Math.round(a.zoom_xmax*s)-o))),a.zoom_ymin!==a.zoom_ymax&&(l.ymin=Math.min(r,Math.max(0,Math.round(a.zoom_ymin*i)-n)),l.ymax=Math.min(r,Math.max(0,Math.round(a.zoom_ymax*i)-n))),l}makeUrlFromPngBuf(a,t){var e=this;return(0,b.A)(function*(){const r=a.fPngBuf;let l="";if((0,g.isStr)(r))l=r;else for(let s=0;s{const i=n.createElement("img");i.onload=()=>{const f=n.createElement("canvas");f.width=i.width,f.height=i.height;const c=f.getContext("2d");c.drawImage(i,0,0);const h=c.getImageData(0,0,i.width,i.height).data,m=e.getImageZoomRange(t,o.constRatio,i.width,i.height),d=n.createElement("canvas");d.width=m.xmax-m.xmin,d.height=m.ymax-m.ymin;const C=d.getContext("2d"),P=C.getImageData(0,0,d.width,d.height),_=P.data;for(let M=m.ymin;Ms(o),i.src=o.url})})()}drawImage(){var a=this;return(0,b.A)(function*(){const t=a.getObject(),e=a.getFramePainter(),r=e?.getFrameRect()??a.getPadPainter().getPadRect();let l;return a.wheel_zoomy=!0,t._blob&&(15!==t._blob.length||t._blob[0]?3===t._blob.length&&t._blob[0]?(t.fPngBuf=t._blob[2],t.fPngBuf?.length!==t._blob[1]&&(console.error(`TASImage with png buffer _blob error ${t._blob[1]} != ${t.fPngBuf?.length}`),delete t.fPngBuf)):console.error(`TASImage _blob len ${t._blob.length} not recognized`):(t.fImageQuality=t._blob[1],t.fImageCompression=t._blob[2],t.fConstRatio=t._blob[3],t.fPalette={_typename:g.clTImagePalette,fUniqueID:t._blob[4],fBits:t._blob[5],fNumPoints:t._blob[6],fPoints:t._blob[7],fColorRed:t._blob[8],fColorGreen:t._blob[9],fColorBlue:t._blob[10],fColorAlpha:t._blob[11]},t.fWidth=t._blob[12],t.fHeight=t._blob[13],t.fImgBuf=t._blob[14],(t.fWidth*t.fHeight!==t.fImgBuf.length||t.fPalette.fNumPoints!==t.fPalette.fPoints.length)&&(console.error(`TASImage _blob decoding error ${t.fWidth*t.fHeight} != ${t.fImgBuf.length} ${t.fPalette.fNumPoints} != ${t.fPalette.fPoints.length}`),delete t.fImgBuf,delete t.fPalette)),delete t._blob),l=t.fImgBuf&&t.fPalette?a.makeUrlFromImageBuf(t,e):t.fPngBuf?a.makeUrlFromPngBuf(t,e):Promise.resolve(null),l.then(o=>{if(!o?.url)return a;const n=a.createG(!!e).append("image").attr("href",o.url).attr("width",r.width).attr("height",r.height).attr("preserveAspectRatio",o.constRatio?null:"none");return a.isBatchMode()||((g.settings.MoveResize||g.settings.ContextMenu)&&n.style("pointer-events","visibleFill"),o.can_zoom&&n.style("cursor","pointer")),(0,y.wh)(a),e&&o.can_zoom?a.drawColorPalette(a.options.Zscale,!0).then(()=>(e.setAxesRanges((0,g.create)(g.clTAxis),0,1,(0,g.create)(g.clTAxis),0,1,null,0,0),e.createXY({ndim:2,check_pad_range:!1}),e.addInteractivity())):a})})()}fillContextMenuItems(a){const t=this.getObject();t&&a.addchk(t.fConstRatio,"Const ratio",e=>{t.fConstRatio=e,this.interactiveRedraw("pad",`exec:SetConstRatio(${e})`)},"Change const ratio flag of image"),t?.fPalette&&a.addchk(this.options.Zscale,"Color palette",e=>{this.options.Zscale=e,this.drawColorPalette(e,!0)},"Toggle color palette")}canZoomInside(a,t,e){return!!this.getObject()&&("x"===a||"y"===a)&&e-t>.01}drawColorPalette(a,t){var e=this;return(0,b.A)(function*(){if(!e.isMainPainter())return null;if(!e.draw_palette){const n=(0,g.create)(g.clTPaletteAxis);Object.assign(n,{fX1NDC:.91,fX2NDC:.95,fY1NDC:.1,fY2NDC:.9,fInit:1}),n.fAxis.fChopt="+",e.draw_palette=n,e._color_palette=!0}let r=e.getPadPainter().findPainterFor(e.draw_palette);if(!a)return r&&(r.Enabled=!1,r.removeG()),null;const l=e.getFramePainter();if(t&&l){const n=e.draw_palette;n.fX2NDC=l.fX2NDC+.01+(n.fX2NDC-n.fX1NDC),n.fX1NDC=l.fX2NDC+.01,n.fY1NDC=l.fY1NDC,n.fY2NDC=l.fY2NDC}if(r)return r.Enabled=!0,r.drawPave("");const o=e.selectCurrentPad(e.getPadName());return w.TPavePainter.draw(e.getDom(),e.draw_palette).then(n=>{r=n,e.selectCurrentPad(o),r.setSecondary(e),r.redraw=function(){}})})()}toggleColz(){if(this.getObject()?.fPalette)return this.options.Zscale=!this.options.Zscale,this.drawColorPalette(this.options.Zscale,!0)}redraw(){return this.drawImage()}clickButton(a){return!(!this.isMainPainter()||"ToggleColorZ"!==a)&&this.toggleColz()}fillToolbar(){const a=this.getPadPainter();a&&this.getObject()?.fPalette&&(a.addPadButton("th2colorz","Toggle color palette","ToggleColorZ"),a.showPadButtons())}static draw(a,t,e){return(0,b.A)(function*(){const r=new p(a,t,e);return r.setAsMainPainter(),r.decodeOptions(e),(0,E.ensureTCanvas)(r,!1).then(()=>r.drawImage()).then(()=>(r.fillToolbar(),r))})()}}}}]); -//# sourceMappingURL=666.1bff488e4190532e.js.map \ No newline at end of file +"use strict";(self.webpackChunkphoenix_app=self.webpackChunkphoenix_app||[]).push([[666],{6666:(O,p,u)=>{u.r(p),u.d(p,{TASImagePainter:()=>B});var b=u(4882),g=u(8872),x=u(2985),y=u(7900),v=u(2843),A=u(1922),E=u(5891),w=u(4483);class B extends A.JW{decodeOptions(a){const t=new v.nC(a);this.options={Zscale:!1};const e=this.getObject();t.check("CONST")&&(this.options.constRatio=!0,e&&(e.fConstRatio=!0),console.log("use const")),t.check("Z")&&(this.options.Zscale=!0)}createRGBA(a){const t=this.getObject(),e=t?.fPalette;if(!e)return null;const r=new Array(4*(a+1)).fill(0);for(let s=0,o=1;s<=a;++s){const n=s/a;for(;e.fPoints[o]=o&&(o=s+1);const n=e.getImageZoomRange(t,a.fConstRatio,a.fWidth,a.fHeight);return((0,g.isNodeJs)()?u.e(364).then(u.t.bind(u,8364,19)).then(i=>i.default.createCanvas(n.xmax-n.xmin,n.ymax-n.ymin)):new Promise(i=>{const f=document.createElement("canvas");f.width=n.xmax-n.xmin,f.height=n.ymax-n.ymin,i(f)})).then(i=>{const f=i.getContext("2d"),c=f.getImageData(0,0,i.width,i.height),h=c.data;for(let m=n.ymin;mc){const h=r/c;o=Math.round((h-e)/2),l=Math.round(h)}else{const h=c*e;n=Math.round((h-r)/2),i=Math.round(h)}}return a.zoom_xmin!==a.zoom_xmax&&(s.xmin=Math.min(e,Math.max(0,Math.round(a.zoom_xmin*l)-o)),s.xmax=Math.min(e,Math.max(0,Math.round(a.zoom_xmax*l)-o))),a.zoom_ymin!==a.zoom_ymax&&(s.ymin=Math.min(r,Math.max(0,Math.round(a.zoom_ymin*i)-n)),s.ymax=Math.min(r,Math.max(0,Math.round(a.zoom_ymax*i)-n))),s}makeUrlFromPngBuf(a,t){var e=this;return(0,b.A)(function*(){const r=a.fPngBuf;let s="";if((0,g.isStr)(r))s=r;else for(let l=0;l{const i=n.createElement("img");i.onload=()=>{const f=n.createElement("canvas");f.width=i.width,f.height=i.height;const c=f.getContext("2d");c.drawImage(i,0,0);const h=c.getImageData(0,0,i.width,i.height).data,m=e.getImageZoomRange(t,o.constRatio,i.width,i.height),d=n.createElement("canvas");d.width=m.xmax-m.xmin,d.height=m.ymax-m.ymin;const C=d.getContext("2d"),P=C.getImageData(0,0,d.width,d.height),_=P.data;for(let M=m.ymin;Ml(o),i.src=o.url})})()}drawImage(){var a=this;return(0,b.A)(function*(){const t=a.getObject(),e=a.getFramePainter(),r=e?.getFrameRect()??a.getPadPainter().getPadRect();let s;return a.wheel_zoomy=!0,t._blob&&(15!==t._blob.length||t._blob[0]?3===t._blob.length&&t._blob[0]?(t.fPngBuf=t._blob[2],t.fPngBuf?.length!==t._blob[1]&&(console.error(`TASImage with png buffer _blob error ${t._blob[1]} != ${t.fPngBuf?.length}`),delete t.fPngBuf)):console.error(`TASImage _blob len ${t._blob.length} not recognized`):(t.fImageQuality=t._blob[1],t.fImageCompression=t._blob[2],t.fConstRatio=t._blob[3],t.fPalette={_typename:g.clTImagePalette,fUniqueID:t._blob[4],fBits:t._blob[5],fNumPoints:t._blob[6],fPoints:t._blob[7],fColorRed:t._blob[8],fColorGreen:t._blob[9],fColorBlue:t._blob[10],fColorAlpha:t._blob[11]},t.fWidth=t._blob[12],t.fHeight=t._blob[13],t.fImgBuf=t._blob[14],(t.fWidth*t.fHeight!==t.fImgBuf.length||t.fPalette.fNumPoints!==t.fPalette.fPoints.length)&&(console.error(`TASImage _blob decoding error ${t.fWidth*t.fHeight} != ${t.fImgBuf.length} ${t.fPalette.fNumPoints} != ${t.fPalette.fPoints.length}`),delete t.fImgBuf,delete t.fPalette)),delete t._blob),s=t.fImgBuf&&t.fPalette?a.makeUrlFromImageBuf(t,e):t.fPngBuf?a.makeUrlFromPngBuf(t,e):Promise.resolve(null),s.then(o=>{if(!o?.url)return a;const n=a.createG(!!e).append("image").attr("href",o.url).attr("width",r.width).attr("height",r.height).attr("preserveAspectRatio",o.constRatio?null:"none");return a.isBatchMode()||((g.settings.MoveResize||g.settings.ContextMenu)&&n.style("pointer-events","visibleFill"),o.can_zoom&&n.style("cursor","pointer")),(0,y.wh)(a),e&&o.can_zoom?a.drawColorPalette(a.options.Zscale,!0).then(()=>(e.setAxesRanges((0,g.create)(g.clTAxis),0,1,(0,g.create)(g.clTAxis),0,1,null,0,0),e.createXY({ndim:2,check_pad_range:!1}),e.addInteractivity())):a})})()}fillContextMenuItems(a){const t=this.getObject();t&&a.addchk(t.fConstRatio,"Const ratio",e=>{t.fConstRatio=e,this.interactiveRedraw("pad",`exec:SetConstRatio(${e})`)},"Change const ratio flag of image"),t?.fPalette&&a.addchk(this.options.Zscale,"Color palette",e=>{this.options.Zscale=e,this.drawColorPalette(e,!0)},"Toggle color palette")}canZoomInside(a,t,e){return!!this.getObject()&&("x"===a||"y"===a)&&e-t>.01}drawColorPalette(a,t){var e=this;return(0,b.A)(function*(){if(!e.isMainPainter())return null;if(!e.draw_palette){const n=(0,g.create)(g.clTPaletteAxis);Object.assign(n,{fX1NDC:.91,fX2NDC:.95,fY1NDC:.1,fY2NDC:.9,fInit:1}),n.fAxis.fChopt="+",e.draw_palette=n,e._color_palette=!0}let r=e.getPadPainter().findPainterFor(e.draw_palette);if(!a)return r&&(r.Enabled=!1,r.removeG()),null;const s=e.getFramePainter();if(t&&s){const n=e.draw_palette;n.fX2NDC=s.fX2NDC+.01+(n.fX2NDC-n.fX1NDC),n.fX1NDC=s.fX2NDC+.01,n.fY1NDC=s.fY1NDC,n.fY2NDC=s.fY2NDC}if(r)return r.Enabled=!0,r.drawPave("");const o=e.selectCurrentPad(e.getPadName());return E.TPavePainter.draw(e.getDom(),e.draw_palette).then(n=>{r=n,e.selectCurrentPad(o),r.setSecondary(e),r.redraw=function(){}})})()}toggleColz(){if(this.getObject()?.fPalette)return this.options.Zscale=!this.options.Zscale,this.drawColorPalette(this.options.Zscale,!0)}redraw(){return this.drawImage()}clickButton(a){return!(!this.isMainPainter()||"ToggleColorZ"!==a)&&this.toggleColz()}fillToolbar(){const a=this.getPadPainter();a&&this.getObject()?.fPalette&&(a.addPadButton("th2colorz","Toggle color palette","ToggleColorZ"),a.showPadButtons())}static draw(a,t,e){return(0,b.A)(function*(){const r=new B(a,t,e);return r.setAsMainPainter(),r.decodeOptions(e),(0,w.ensureTCanvas)(r,!1).then(()=>r.drawImage()).then(()=>(r.fillToolbar(),r))})()}}}}]); +//# sourceMappingURL=666.53bccfb1d785b524.js.map \ No newline at end of file diff --git a/docs/666.1bff488e4190532e.js.map b/docs/666.53bccfb1d785b524.js.map similarity index 99% rename from docs/666.1bff488e4190532e.js.map rename to docs/666.53bccfb1d785b524.js.map index 091deeea..201c7f68 100644 --- a/docs/666.1bff488e4190532e.js.map +++ b/docs/666.53bccfb1d785b524.js.map @@ -1 +1 @@ -{"version":3,"file":"666.1bff488e4190532e.js","mappings":"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","names":["TASImagePainter","ObjectPainter","decodeOptions","opt","d","DrawOptions","this","options","Zscale","obj","getObject","check","constRatio","fConstRatio","console","log","createRGBA","nlevels","pal","fPalette","rgba","Array","fill","lvl","indx","l","fPoints","length","r1","r2","Math","min","round","fColorRed","fColorGreen","fColorBlue","fColorAlpha","makeUrlFromImageBuf","fp","_this","_asyncToGenerator","fImgBuf","max","k","v","fContour","arr","getLevels","getPaletteColor","zval","toHex","z","getImageZoomRange","fWidth","fHeight","isNodeJs","__webpack_require__","e","then","t","bind","h","default","createCanvas","xmax","xmin","ymax","ymin","Promise","resolveFunc","c","document","createElement","width","height","canvas","context","getContext","imageData","getImageData","data","i","dst","row","j","iii","putImageData","url","toDataURL","can_zoom","res","offx","offy","sizex","sizey","image_ratio","frame_ratio","getFrameHeight","getFrameWidth","w2","h2","zoom_xmin","zoom_xmax","zoom_ymin","zoom_ymax","makeUrlFromPngBuf","_this2","buf","fPngBuf","pngbuf","isStr","String","fromCharCode","btoa_func","doc","getDocument","image","onload","drawImage","canvas2","context2","imageData2","arr2","src","onerror","_this3","getFramePainter","rect","getFrameRect","getPadPainter","getPadRect","promise","wheel_zoomy","_blob","error","fImageQuality","fImageCompression","_typename","clTImagePalette","fUniqueID","fBits","fNumPoints","resolve","img","createG","append","attr","isBatchMode","settings","MoveResize","ContextMenu","style","assignContextMenu","drawColorPalette","setAxesRanges","create","clTAxis","createXY","ndim","check_pad_range","addInteractivity","fillContextMenuItems","menu","addchk","flag","interactiveRedraw","canZoomInside","axis","enabled","can_move","_this4","isMainPainter","draw_palette","clTPaletteAxis","Object","assign","fX1NDC","fX2NDC","fY1NDC","fY2NDC","fInit","fAxis","fChopt","_color_palette","pal_painter","findPainterFor","Enabled","removeG","drawPave","prev_name","selectCurrentPad","getPadName","TPavePainter","draw","getDom","p","setSecondary","redraw","toggleColz","clickButton","funcname","fillToolbar","pp","addPadButton","showPadButtons","dom","painter","setAsMainPainter","ensureTCanvas"],"ignoreList":[],"sourceRoot":"webpack:///","sources":["../node_modules/jsroot/modules/draw/TASImagePainter.mjs"],"sourcesContent":["import { create, settings, isNodeJs, isStr, btoa_func, clTAxis, clTPaletteAxis, clTImagePalette, getDocument } from '../core.mjs';\nimport { toHex } from '../base/colors.mjs';\nimport { assignContextMenu } from '../gui/menu.mjs';\nimport { DrawOptions } from '../base/BasePainter.mjs';\nimport { ObjectPainter } from '../base/ObjectPainter.mjs';\nimport { TPavePainter } from '../hist/TPavePainter.mjs';\nimport { ensureTCanvas } from '../gpad/TCanvasPainter.mjs';\n\n/**\n * @summary Painter for TASImage object.\n *\n * @private\n */\n\nclass TASImagePainter extends ObjectPainter {\n\n /** @summary Decode options string */\n decodeOptions(opt) {\n const d = new DrawOptions(opt);\n\n this.options = { Zscale: false };\n\n const obj = this.getObject();\n\n if (d.check('CONST')) {\n this.options.constRatio = true;\n if (obj) obj.fConstRatio = true;\n console.log('use const');\n }\n if (d.check('Z')) this.options.Zscale = true;\n }\n\n /** @summary Create RGBA buffers */\n createRGBA(nlevels) {\n const obj = this.getObject(),\n pal = obj?.fPalette;\n if (!pal) return null;\n\n const rgba = new Array((nlevels+1) * 4).fill(0); // precaclucated colors\n\n for (let lvl = 0, indx = 1; lvl <= nlevels; ++lvl) {\n const l = lvl/nlevels;\n while ((pal.fPoints[indx] < l) && (indx < pal.fPoints.length-1)) indx++;\n\n const r1 = (pal.fPoints[indx] - l) / (pal.fPoints[indx] - pal.fPoints[indx-1]),\n r2 = (l - pal.fPoints[indx-1]) / (pal.fPoints[indx] - pal.fPoints[indx-1]);\n\n rgba[lvl*4] = Math.min(255, Math.round((pal.fColorRed[indx-1] * r1 + pal.fColorRed[indx] * r2) / 256));\n rgba[lvl*4+1] = Math.min(255, Math.round((pal.fColorGreen[indx-1] * r1 + pal.fColorGreen[indx] * r2) / 256));\n rgba[lvl*4+2] = Math.min(255, Math.round((pal.fColorBlue[indx-1] * r1 + pal.fColorBlue[indx] * r2) / 256));\n rgba[lvl*4+3] = Math.min(255, Math.round((pal.fColorAlpha[indx-1] * r1 + pal.fColorAlpha[indx] * r2) / 256));\n }\n\n return rgba;\n }\n\n /** @summary Create url using image buffer\n * @private */\n async makeUrlFromImageBuf(obj, fp) {\n const nlevels = 1000;\n this.rgba = this.createRGBA(nlevels); // precaclucated colors\n\n let min = obj.fImgBuf[0], max = obj.fImgBuf[0];\n for (let k = 1; k < obj.fImgBuf.length; ++k) {\n const v = obj.fImgBuf[k];\n min = Math.min(v, min);\n max = Math.max(v, max);\n }\n\n // does not work properly in Node.js, causes 'Maximum call stack size exceeded' error\n // min = Math.min.apply(null, obj.fImgBuf),\n // max = Math.max.apply(null, obj.fImgBuf);\n\n // create countor like in hist painter to allow palette drawing\n this.fContour = {\n arr: new Array(200),\n rgba: this.rgba,\n getLevels() { return this.arr; },\n getPaletteColor(pal, zval) {\n if (!this.arr || !this.rgba) return 'white';\n const indx = Math.round((zval - this.arr[0]) / (this.arr[this.arr.length-1] - this.arr[0]) * (this.rgba.length-4)/4) * 4;\n return '#' + toHex(this.rgba[indx], 1) + toHex(this.rgba[indx+1], 1) + toHex(this.rgba[indx+2], 1) + toHex(this.rgba[indx+3], 1);\n }\n };\n for (let k = 0; k < 200; k++)\n this.fContour.arr[k] = min + (max-min)/(200-1)*k;\n\n if (min >= max) max = min + 1;\n\n const z = this.getImageZoomRange(fp, obj.fConstRatio, obj.fWidth, obj.fHeight),\n pr = isNodeJs()\n ? import('canvas').then(h => h.default.createCanvas(z.xmax - z.xmin, z.ymax - z.ymin))\n : new Promise(resolveFunc => {\n const c = document.createElement('canvas');\n c.width = z.xmax - z.xmin;\n c.height = z.ymax - z.ymin;\n resolveFunc(c);\n });\n\n return pr.then(canvas => {\n const context = canvas.getContext('2d'),\n imageData = context.getImageData(0, 0, canvas.width, canvas.height),\n arr = imageData.data;\n\n for (let i = z.ymin; i < z.ymax; ++i) {\n let dst = (z.ymax - i - 1) * (z.xmax - z.xmin) * 4;\n const row = i * obj.fWidth;\n for (let j = z.xmin; j < z.xmax; ++j) {\n let iii = Math.round((obj.fImgBuf[row + j] - min) / (max - min) * nlevels) * 4;\n // copy rgba value for specified point\n arr[dst++] = this.rgba[iii++];\n arr[dst++] = this.rgba[iii++];\n arr[dst++] = this.rgba[iii++];\n arr[dst++] = this.rgba[iii++];\n }\n }\n\n context.putImageData(imageData, 0, 0);\n\n return { url: canvas.toDataURL(), constRatio: obj.fConstRatio, can_zoom: true };\n });\n }\n\n getImageZoomRange(fp, constRatio, width, height) {\n const res = { xmin: 0, xmax: width, ymin: 0, ymax: height };\n if (!fp) return res;\n\n let offx = 0, offy = 0, sizex = width, sizey = height;\n\n if (constRatio) {\n const image_ratio = height/width,\n frame_ratio = fp.getFrameHeight() / fp.getFrameWidth();\n\n if (image_ratio > frame_ratio) {\n const w2 = height / frame_ratio;\n offx = Math.round((w2 - width)/2);\n sizex = Math.round(w2);\n } else {\n const h2 = frame_ratio * width;\n offy = Math.round((h2 - height)/2);\n sizey = Math.round(h2);\n }\n }\n\n if (fp.zoom_xmin !== fp.zoom_xmax) {\n res.xmin = Math.min(width, Math.max(0, Math.round(fp.zoom_xmin * sizex) - offx));\n res.xmax = Math.min(width, Math.max(0, Math.round(fp.zoom_xmax * sizex) - offx));\n }\n if (fp.zoom_ymin !== fp.zoom_ymax) {\n res.ymin = Math.min(height, Math.max(0, Math.round(fp.zoom_ymin * sizey) - offy));\n res.ymax = Math.min(height, Math.max(0, Math.round(fp.zoom_ymax * sizey) - offy));\n }\n return res;\n }\n\n /** @summary Produce data url from png buffer */\n async makeUrlFromPngBuf(obj, fp) {\n const buf = obj.fPngBuf;\n let pngbuf = '';\n\n if (isStr(buf))\n pngbuf = buf;\n else {\n for (let k = 0; k < buf.length; ++k)\n pngbuf += String.fromCharCode(buf[k] < 0 ? 256 + buf[k] : buf[k]);\n }\n\n const res = { url: 'data:image/png;base64,' + btoa_func(pngbuf), constRatio: obj.fConstRatio, can_zoom: fp && !isNodeJs() },\n doc = getDocument();\n\n if (!res.can_zoom || ((fp?.zoom_xmin === fp?.zoom_xmax) && (fp?.zoom_ymin === fp?.zoom_ymax)))\n return res;\n\n return new Promise(resolveFunc => {\n const image = doc.createElement('img');\n\n image.onload = () => {\n const canvas = doc.createElement('canvas');\n canvas.width = image.width;\n canvas.height = image.height;\n\n const context = canvas.getContext('2d');\n context.drawImage(image, 0, 0);\n\n const arr = context.getImageData(0, 0, image.width, image.height).data,\n z = this.getImageZoomRange(fp, res.constRatio, image.width, image.height),\n canvas2 = doc.createElement('canvas');\n canvas2.width = z.xmax - z.xmin;\n canvas2.height = z.ymax - z.ymin;\n\n const context2 = canvas2.getContext('2d'),\n imageData2 = context2.getImageData(0, 0, canvas2.width, canvas2.height),\n arr2 = imageData2.data;\n\n for (let i = z.ymin; i < z.ymax; ++i) {\n let dst = (z.ymax - i - 1) * (z.xmax - z.xmin) * 4,\n src = ((image.height - i - 1) * image.width + z.xmin) * 4;\n for (let j = z.xmin; j < z.xmax; ++j) {\n // copy rgba value for specified point\n arr2[dst++] = arr[src++];\n arr2[dst++] = arr[src++];\n arr2[dst++] = arr[src++];\n arr2[dst++] = arr[src++];\n }\n }\n\n context2.putImageData(imageData2, 0, 0);\n\n res.url = canvas2.toDataURL();\n\n resolveFunc(res);\n };\n\n image.onerror = () => resolveFunc(res);\n\n image.src = res.url;\n });\n }\n\n /** @summary Draw image */\n async drawImage() {\n const obj = this.getObject(),\n fp = this.getFramePainter(),\n rect = fp?.getFrameRect() ?? this.getPadPainter().getPadRect();\n\n this.wheel_zoomy = true;\n\n if (obj._blob) {\n // try to process blob data due to custom streamer\n if ((obj._blob.length === 15) && !obj._blob[0]) {\n obj.fImageQuality = obj._blob[1];\n obj.fImageCompression = obj._blob[2];\n obj.fConstRatio = obj._blob[3];\n obj.fPalette = {\n _typename: clTImagePalette,\n fUniqueID: obj._blob[4],\n fBits: obj._blob[5],\n fNumPoints: obj._blob[6],\n fPoints: obj._blob[7],\n fColorRed: obj._blob[8],\n fColorGreen: obj._blob[9],\n fColorBlue: obj._blob[10],\n fColorAlpha: obj._blob[11]\n };\n\n obj.fWidth = obj._blob[12];\n obj.fHeight = obj._blob[13];\n obj.fImgBuf = obj._blob[14];\n\n if ((obj.fWidth * obj.fHeight !== obj.fImgBuf.length) ||\n (obj.fPalette.fNumPoints !== obj.fPalette.fPoints.length)) {\n console.error(`TASImage _blob decoding error ${obj.fWidth * obj.fHeight} != ${obj.fImgBuf.length} ${obj.fPalette.fNumPoints} != ${obj.fPalette.fPoints.length}`);\n delete obj.fImgBuf;\n delete obj.fPalette;\n }\n } else if ((obj._blob.length === 3) && obj._blob[0]) {\n obj.fPngBuf = obj._blob[2];\n if (obj.fPngBuf?.length !== obj._blob[1]) {\n console.error(`TASImage with png buffer _blob error ${obj._blob[1]} != ${obj.fPngBuf?.length}`);\n delete obj.fPngBuf;\n }\n } else\n console.error(`TASImage _blob len ${obj._blob.length} not recognized`);\n\n delete obj._blob;\n }\n\n let promise;\n\n if (obj.fImgBuf && obj.fPalette)\n promise = this.makeUrlFromImageBuf(obj, fp);\n else if (obj.fPngBuf)\n promise = this.makeUrlFromPngBuf(obj, fp);\n else\n promise = Promise.resolve(null);\n\n return promise.then(res => {\n if (!res?.url)\n return this;\n\n const img = this.createG(!!fp)\n .append('image')\n .attr('href', res.url)\n .attr('width', rect.width)\n .attr('height', rect.height)\n .attr('preserveAspectRatio', res.constRatio ? null : 'none');\n\n if (!this.isBatchMode()) {\n if (settings.MoveResize || settings.ContextMenu)\n img.style('pointer-events', 'visibleFill');\n\n if (res.can_zoom)\n img.style('cursor', 'pointer');\n }\n\n assignContextMenu(this);\n\n if (!fp || !res.can_zoom)\n return this;\n\n return this.drawColorPalette(this.options.Zscale, true).then(() => {\n fp.setAxesRanges(create(clTAxis), 0, 1, create(clTAxis), 0, 1, null, 0, 0);\n fp.createXY({ ndim: 2, check_pad_range: false });\n return fp.addInteractivity();\n });\n });\n }\n\n /** @summary Fill TASImage context */\n fillContextMenuItems(menu) {\n const obj = this.getObject();\n if (obj) {\n menu.addchk(obj.fConstRatio, 'Const ratio', flag => {\n obj.fConstRatio = flag;\n this.interactiveRedraw('pad', `exec:SetConstRatio(${flag})`);\n }, 'Change const ratio flag of image');\n }\n if (obj?.fPalette) {\n menu.addchk(this.options.Zscale, 'Color palette', flag => {\n this.options.Zscale = flag;\n this.drawColorPalette(flag, true);\n }, 'Toggle color palette');\n }\n }\n\n /** @summary Checks if it makes sense to zoom inside specified axis range */\n canZoomInside(axis, min, max) {\n const obj = this.getObject();\n\n if (!obj)\n return false;\n\n if (((axis === 'x') || (axis === 'y')) && (max - min > 0.01)) return true;\n\n return false;\n }\n\n /** @summary Draw color palette\n * @private */\n async drawColorPalette(enabled, can_move) {\n if (!this.isMainPainter())\n return null;\n\n if (!this.draw_palette) {\n const pal = create(clTPaletteAxis);\n Object.assign(pal, { fX1NDC: 0.91, fX2NDC: 0.95, fY1NDC: 0.1, fY2NDC: 0.9, fInit: 1 });\n pal.fAxis.fChopt = '+';\n this.draw_palette = pal;\n this._color_palette = true; // to emulate behaviour of hist painter\n }\n\n let pal_painter = this.getPadPainter().findPainterFor(this.draw_palette);\n\n if (!enabled) {\n if (pal_painter) {\n pal_painter.Enabled = false;\n pal_painter.removeG(); // completely remove drawing without need to redraw complete pad\n }\n return null;\n }\n\n const fp = this.getFramePainter();\n\n // keep palette width\n if (can_move && fp) {\n const pal = this.draw_palette;\n pal.fX2NDC = fp.fX2NDC + 0.01 + (pal.fX2NDC - pal.fX1NDC);\n pal.fX1NDC = fp.fX2NDC + 0.01;\n pal.fY1NDC = fp.fY1NDC;\n pal.fY2NDC = fp.fY2NDC;\n }\n\n if (pal_painter) {\n pal_painter.Enabled = true;\n return pal_painter.drawPave('');\n }\n\n const prev_name = this.selectCurrentPad(this.getPadName());\n\n return TPavePainter.draw(this.getDom(), this.draw_palette).then(p => {\n pal_painter = p;\n\n this.selectCurrentPad(prev_name);\n // mark painter as secondary - not in list of TCanvas primitives\n pal_painter.setSecondary(this);\n\n // make dummy redraw, palette will be updated only from histogram painter\n pal_painter.redraw = function() {};\n });\n }\n\n /** @summary Toggle colz draw option\n * @private */\n toggleColz() {\n if (this.getObject()?.fPalette) {\n this.options.Zscale = !this.options.Zscale;\n return this.drawColorPalette(this.options.Zscale, true);\n }\n }\n\n /** @summary Redraw image */\n redraw() {\n return this.drawImage();\n }\n\n /** @summary Process click on TASImage-defined buttons\n * @desc may return promise or simply false */\n clickButton(funcname) {\n if (this.isMainPainter() && funcname === 'ToggleColorZ')\n return this.toggleColz();\n\n return false;\n }\n\n /** @summary Fill pad toolbar for TASImage */\n fillToolbar() {\n const pp = this.getPadPainter();\n if (pp && this.getObject()?.fPalette) {\n pp.addPadButton('th2colorz', 'Toggle color palette', 'ToggleColorZ');\n pp.showPadButtons();\n }\n }\n\n /** @summary Draw TASImage object */\n static async draw(dom, obj, opt) {\n const painter = new TASImagePainter(dom, obj, opt);\n painter.setAsMainPainter();\n painter.decodeOptions(opt);\n return ensureTCanvas(painter, false)\n .then(() => painter.drawImage())\n .then(() => {\n painter.fillToolbar();\n return painter;\n });\n }\n\n} // class TASImagePainter\n\nexport { TASImagePainter };\n"],"x_google_ignoreList":[0]} \ No newline at end of file +{"version":3,"file":"666.53bccfb1d785b524.js","mappings":"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","names":["TASImagePainter","ObjectPainter","decodeOptions","opt","d","DrawOptions","this","options","Zscale","obj","getObject","check","constRatio","fConstRatio","console","log","createRGBA","nlevels","pal","fPalette","rgba","Array","fill","lvl","indx","l","fPoints","length","r1","r2","Math","min","round","fColorRed","fColorGreen","fColorBlue","fColorAlpha","makeUrlFromImageBuf","fp","_this","_asyncToGenerator","fImgBuf","max","k","v","fContour","arr","getLevels","getPaletteColor","zval","toHex","z","getImageZoomRange","fWidth","fHeight","isNodeJs","__webpack_require__","e","then","t","bind","h","default","createCanvas","xmax","xmin","ymax","ymin","Promise","resolveFunc","c","document","createElement","width","height","canvas","context","getContext","imageData","getImageData","data","i","dst","row","j","iii","putImageData","url","toDataURL","can_zoom","res","offx","offy","sizex","sizey","image_ratio","frame_ratio","getFrameHeight","getFrameWidth","w2","h2","zoom_xmin","zoom_xmax","zoom_ymin","zoom_ymax","makeUrlFromPngBuf","_this2","buf","fPngBuf","pngbuf","isStr","String","fromCharCode","btoa_func","doc","getDocument","image","onload","drawImage","canvas2","context2","imageData2","arr2","src","onerror","_this3","getFramePainter","rect","getFrameRect","getPadPainter","getPadRect","promise","wheel_zoomy","_blob","error","fImageQuality","fImageCompression","_typename","clTImagePalette","fUniqueID","fBits","fNumPoints","resolve","img","createG","append","attr","isBatchMode","settings","MoveResize","ContextMenu","style","assignContextMenu","drawColorPalette","setAxesRanges","create","clTAxis","createXY","ndim","check_pad_range","addInteractivity","fillContextMenuItems","menu","addchk","flag","interactiveRedraw","canZoomInside","axis","enabled","can_move","_this4","isMainPainter","draw_palette","clTPaletteAxis","Object","assign","fX1NDC","fX2NDC","fY1NDC","fY2NDC","fInit","fAxis","fChopt","_color_palette","pal_painter","findPainterFor","Enabled","removeG","drawPave","prev_name","selectCurrentPad","getPadName","TPavePainter","draw","getDom","p","setSecondary","redraw","toggleColz","clickButton","funcname","fillToolbar","pp","addPadButton","showPadButtons","dom","painter","setAsMainPainter","ensureTCanvas"],"ignoreList":[],"sourceRoot":"webpack:///","sources":["../node_modules/jsroot/modules/draw/TASImagePainter.mjs"],"sourcesContent":["import { create, settings, isNodeJs, isStr, btoa_func, clTAxis, clTPaletteAxis, clTImagePalette, getDocument } from '../core.mjs';\nimport { toHex } from '../base/colors.mjs';\nimport { assignContextMenu } from '../gui/menu.mjs';\nimport { DrawOptions } from '../base/BasePainter.mjs';\nimport { ObjectPainter } from '../base/ObjectPainter.mjs';\nimport { TPavePainter } from '../hist/TPavePainter.mjs';\nimport { ensureTCanvas } from '../gpad/TCanvasPainter.mjs';\n\n/**\n * @summary Painter for TASImage object.\n *\n * @private\n */\n\nclass TASImagePainter extends ObjectPainter {\n\n /** @summary Decode options string */\n decodeOptions(opt) {\n const d = new DrawOptions(opt);\n\n this.options = { Zscale: false };\n\n const obj = this.getObject();\n\n if (d.check('CONST')) {\n this.options.constRatio = true;\n if (obj) obj.fConstRatio = true;\n console.log('use const');\n }\n if (d.check('Z')) this.options.Zscale = true;\n }\n\n /** @summary Create RGBA buffers */\n createRGBA(nlevels) {\n const obj = this.getObject(),\n pal = obj?.fPalette;\n if (!pal) return null;\n\n const rgba = new Array((nlevels+1) * 4).fill(0); // precaclucated colors\n\n for (let lvl = 0, indx = 1; lvl <= nlevels; ++lvl) {\n const l = lvl/nlevels;\n while ((pal.fPoints[indx] < l) && (indx < pal.fPoints.length-1)) indx++;\n\n const r1 = (pal.fPoints[indx] - l) / (pal.fPoints[indx] - pal.fPoints[indx-1]),\n r2 = (l - pal.fPoints[indx-1]) / (pal.fPoints[indx] - pal.fPoints[indx-1]);\n\n rgba[lvl*4] = Math.min(255, Math.round((pal.fColorRed[indx-1] * r1 + pal.fColorRed[indx] * r2) / 256));\n rgba[lvl*4+1] = Math.min(255, Math.round((pal.fColorGreen[indx-1] * r1 + pal.fColorGreen[indx] * r2) / 256));\n rgba[lvl*4+2] = Math.min(255, Math.round((pal.fColorBlue[indx-1] * r1 + pal.fColorBlue[indx] * r2) / 256));\n rgba[lvl*4+3] = Math.min(255, Math.round((pal.fColorAlpha[indx-1] * r1 + pal.fColorAlpha[indx] * r2) / 256));\n }\n\n return rgba;\n }\n\n /** @summary Create url using image buffer\n * @private */\n async makeUrlFromImageBuf(obj, fp) {\n const nlevels = 1000;\n this.rgba = this.createRGBA(nlevels); // precaclucated colors\n\n let min = obj.fImgBuf[0], max = obj.fImgBuf[0];\n for (let k = 1; k < obj.fImgBuf.length; ++k) {\n const v = obj.fImgBuf[k];\n min = Math.min(v, min);\n max = Math.max(v, max);\n }\n\n // does not work properly in Node.js, causes 'Maximum call stack size exceeded' error\n // min = Math.min.apply(null, obj.fImgBuf),\n // max = Math.max.apply(null, obj.fImgBuf);\n\n // create countor like in hist painter to allow palette drawing\n this.fContour = {\n arr: new Array(200),\n rgba: this.rgba,\n getLevels() { return this.arr; },\n getPaletteColor(pal, zval) {\n if (!this.arr || !this.rgba) return 'white';\n const indx = Math.round((zval - this.arr[0]) / (this.arr[this.arr.length-1] - this.arr[0]) * (this.rgba.length-4)/4) * 4;\n return '#' + toHex(this.rgba[indx], 1) + toHex(this.rgba[indx+1], 1) + toHex(this.rgba[indx+2], 1) + toHex(this.rgba[indx+3], 1);\n }\n };\n for (let k = 0; k < 200; k++)\n this.fContour.arr[k] = min + (max-min)/(200-1)*k;\n\n if (min >= max) max = min + 1;\n\n const z = this.getImageZoomRange(fp, obj.fConstRatio, obj.fWidth, obj.fHeight),\n pr = isNodeJs()\n ? import('canvas').then(h => h.default.createCanvas(z.xmax - z.xmin, z.ymax - z.ymin))\n : new Promise(resolveFunc => {\n const c = document.createElement('canvas');\n c.width = z.xmax - z.xmin;\n c.height = z.ymax - z.ymin;\n resolveFunc(c);\n });\n\n return pr.then(canvas => {\n const context = canvas.getContext('2d'),\n imageData = context.getImageData(0, 0, canvas.width, canvas.height),\n arr = imageData.data;\n\n for (let i = z.ymin; i < z.ymax; ++i) {\n let dst = (z.ymax - i - 1) * (z.xmax - z.xmin) * 4;\n const row = i * obj.fWidth;\n for (let j = z.xmin; j < z.xmax; ++j) {\n let iii = Math.round((obj.fImgBuf[row + j] - min) / (max - min) * nlevels) * 4;\n // copy rgba value for specified point\n arr[dst++] = this.rgba[iii++];\n arr[dst++] = this.rgba[iii++];\n arr[dst++] = this.rgba[iii++];\n arr[dst++] = this.rgba[iii++];\n }\n }\n\n context.putImageData(imageData, 0, 0);\n\n return { url: canvas.toDataURL(), constRatio: obj.fConstRatio, can_zoom: true };\n });\n }\n\n getImageZoomRange(fp, constRatio, width, height) {\n const res = { xmin: 0, xmax: width, ymin: 0, ymax: height };\n if (!fp) return res;\n\n let offx = 0, offy = 0, sizex = width, sizey = height;\n\n if (constRatio) {\n const image_ratio = height/width,\n frame_ratio = fp.getFrameHeight() / fp.getFrameWidth();\n\n if (image_ratio > frame_ratio) {\n const w2 = height / frame_ratio;\n offx = Math.round((w2 - width)/2);\n sizex = Math.round(w2);\n } else {\n const h2 = frame_ratio * width;\n offy = Math.round((h2 - height)/2);\n sizey = Math.round(h2);\n }\n }\n\n if (fp.zoom_xmin !== fp.zoom_xmax) {\n res.xmin = Math.min(width, Math.max(0, Math.round(fp.zoom_xmin * sizex) - offx));\n res.xmax = Math.min(width, Math.max(0, Math.round(fp.zoom_xmax * sizex) - offx));\n }\n if (fp.zoom_ymin !== fp.zoom_ymax) {\n res.ymin = Math.min(height, Math.max(0, Math.round(fp.zoom_ymin * sizey) - offy));\n res.ymax = Math.min(height, Math.max(0, Math.round(fp.zoom_ymax * sizey) - offy));\n }\n return res;\n }\n\n /** @summary Produce data url from png buffer */\n async makeUrlFromPngBuf(obj, fp) {\n const buf = obj.fPngBuf;\n let pngbuf = '';\n\n if (isStr(buf))\n pngbuf = buf;\n else {\n for (let k = 0; k < buf.length; ++k)\n pngbuf += String.fromCharCode(buf[k] < 0 ? 256 + buf[k] : buf[k]);\n }\n\n const res = { url: 'data:image/png;base64,' + btoa_func(pngbuf), constRatio: obj.fConstRatio, can_zoom: fp && !isNodeJs() },\n doc = getDocument();\n\n if (!res.can_zoom || ((fp?.zoom_xmin === fp?.zoom_xmax) && (fp?.zoom_ymin === fp?.zoom_ymax)))\n return res;\n\n return new Promise(resolveFunc => {\n const image = doc.createElement('img');\n\n image.onload = () => {\n const canvas = doc.createElement('canvas');\n canvas.width = image.width;\n canvas.height = image.height;\n\n const context = canvas.getContext('2d');\n context.drawImage(image, 0, 0);\n\n const arr = context.getImageData(0, 0, image.width, image.height).data,\n z = this.getImageZoomRange(fp, res.constRatio, image.width, image.height),\n canvas2 = doc.createElement('canvas');\n canvas2.width = z.xmax - z.xmin;\n canvas2.height = z.ymax - z.ymin;\n\n const context2 = canvas2.getContext('2d'),\n imageData2 = context2.getImageData(0, 0, canvas2.width, canvas2.height),\n arr2 = imageData2.data;\n\n for (let i = z.ymin; i < z.ymax; ++i) {\n let dst = (z.ymax - i - 1) * (z.xmax - z.xmin) * 4,\n src = ((image.height - i - 1) * image.width + z.xmin) * 4;\n for (let j = z.xmin; j < z.xmax; ++j) {\n // copy rgba value for specified point\n arr2[dst++] = arr[src++];\n arr2[dst++] = arr[src++];\n arr2[dst++] = arr[src++];\n arr2[dst++] = arr[src++];\n }\n }\n\n context2.putImageData(imageData2, 0, 0);\n\n res.url = canvas2.toDataURL();\n\n resolveFunc(res);\n };\n\n image.onerror = () => resolveFunc(res);\n\n image.src = res.url;\n });\n }\n\n /** @summary Draw image */\n async drawImage() {\n const obj = this.getObject(),\n fp = this.getFramePainter(),\n rect = fp?.getFrameRect() ?? this.getPadPainter().getPadRect();\n\n this.wheel_zoomy = true;\n\n if (obj._blob) {\n // try to process blob data due to custom streamer\n if ((obj._blob.length === 15) && !obj._blob[0]) {\n obj.fImageQuality = obj._blob[1];\n obj.fImageCompression = obj._blob[2];\n obj.fConstRatio = obj._blob[3];\n obj.fPalette = {\n _typename: clTImagePalette,\n fUniqueID: obj._blob[4],\n fBits: obj._blob[5],\n fNumPoints: obj._blob[6],\n fPoints: obj._blob[7],\n fColorRed: obj._blob[8],\n fColorGreen: obj._blob[9],\n fColorBlue: obj._blob[10],\n fColorAlpha: obj._blob[11]\n };\n\n obj.fWidth = obj._blob[12];\n obj.fHeight = obj._blob[13];\n obj.fImgBuf = obj._blob[14];\n\n if ((obj.fWidth * obj.fHeight !== obj.fImgBuf.length) ||\n (obj.fPalette.fNumPoints !== obj.fPalette.fPoints.length)) {\n console.error(`TASImage _blob decoding error ${obj.fWidth * obj.fHeight} != ${obj.fImgBuf.length} ${obj.fPalette.fNumPoints} != ${obj.fPalette.fPoints.length}`);\n delete obj.fImgBuf;\n delete obj.fPalette;\n }\n } else if ((obj._blob.length === 3) && obj._blob[0]) {\n obj.fPngBuf = obj._blob[2];\n if (obj.fPngBuf?.length !== obj._blob[1]) {\n console.error(`TASImage with png buffer _blob error ${obj._blob[1]} != ${obj.fPngBuf?.length}`);\n delete obj.fPngBuf;\n }\n } else\n console.error(`TASImage _blob len ${obj._blob.length} not recognized`);\n\n delete obj._blob;\n }\n\n let promise;\n\n if (obj.fImgBuf && obj.fPalette)\n promise = this.makeUrlFromImageBuf(obj, fp);\n else if (obj.fPngBuf)\n promise = this.makeUrlFromPngBuf(obj, fp);\n else\n promise = Promise.resolve(null);\n\n return promise.then(res => {\n if (!res?.url)\n return this;\n\n const img = this.createG(!!fp)\n .append('image')\n .attr('href', res.url)\n .attr('width', rect.width)\n .attr('height', rect.height)\n .attr('preserveAspectRatio', res.constRatio ? null : 'none');\n\n if (!this.isBatchMode()) {\n if (settings.MoveResize || settings.ContextMenu)\n img.style('pointer-events', 'visibleFill');\n\n if (res.can_zoom)\n img.style('cursor', 'pointer');\n }\n\n assignContextMenu(this);\n\n if (!fp || !res.can_zoom)\n return this;\n\n return this.drawColorPalette(this.options.Zscale, true).then(() => {\n fp.setAxesRanges(create(clTAxis), 0, 1, create(clTAxis), 0, 1, null, 0, 0);\n fp.createXY({ ndim: 2, check_pad_range: false });\n return fp.addInteractivity();\n });\n });\n }\n\n /** @summary Fill TASImage context */\n fillContextMenuItems(menu) {\n const obj = this.getObject();\n if (obj) {\n menu.addchk(obj.fConstRatio, 'Const ratio', flag => {\n obj.fConstRatio = flag;\n this.interactiveRedraw('pad', `exec:SetConstRatio(${flag})`);\n }, 'Change const ratio flag of image');\n }\n if (obj?.fPalette) {\n menu.addchk(this.options.Zscale, 'Color palette', flag => {\n this.options.Zscale = flag;\n this.drawColorPalette(flag, true);\n }, 'Toggle color palette');\n }\n }\n\n /** @summary Checks if it makes sense to zoom inside specified axis range */\n canZoomInside(axis, min, max) {\n const obj = this.getObject();\n\n if (!obj)\n return false;\n\n if (((axis === 'x') || (axis === 'y')) && (max - min > 0.01)) return true;\n\n return false;\n }\n\n /** @summary Draw color palette\n * @private */\n async drawColorPalette(enabled, can_move) {\n if (!this.isMainPainter())\n return null;\n\n if (!this.draw_palette) {\n const pal = create(clTPaletteAxis);\n Object.assign(pal, { fX1NDC: 0.91, fX2NDC: 0.95, fY1NDC: 0.1, fY2NDC: 0.9, fInit: 1 });\n pal.fAxis.fChopt = '+';\n this.draw_palette = pal;\n this._color_palette = true; // to emulate behaviour of hist painter\n }\n\n let pal_painter = this.getPadPainter().findPainterFor(this.draw_palette);\n\n if (!enabled) {\n if (pal_painter) {\n pal_painter.Enabled = false;\n pal_painter.removeG(); // completely remove drawing without need to redraw complete pad\n }\n return null;\n }\n\n const fp = this.getFramePainter();\n\n // keep palette width\n if (can_move && fp) {\n const pal = this.draw_palette;\n pal.fX2NDC = fp.fX2NDC + 0.01 + (pal.fX2NDC - pal.fX1NDC);\n pal.fX1NDC = fp.fX2NDC + 0.01;\n pal.fY1NDC = fp.fY1NDC;\n pal.fY2NDC = fp.fY2NDC;\n }\n\n if (pal_painter) {\n pal_painter.Enabled = true;\n return pal_painter.drawPave('');\n }\n\n const prev_name = this.selectCurrentPad(this.getPadName());\n\n return TPavePainter.draw(this.getDom(), this.draw_palette).then(p => {\n pal_painter = p;\n\n this.selectCurrentPad(prev_name);\n // mark painter as secondary - not in list of TCanvas primitives\n pal_painter.setSecondary(this);\n\n // make dummy redraw, palette will be updated only from histogram painter\n pal_painter.redraw = function() {};\n });\n }\n\n /** @summary Toggle colz draw option\n * @private */\n toggleColz() {\n if (this.getObject()?.fPalette) {\n this.options.Zscale = !this.options.Zscale;\n return this.drawColorPalette(this.options.Zscale, true);\n }\n }\n\n /** @summary Redraw image */\n redraw() {\n return this.drawImage();\n }\n\n /** @summary Process click on TASImage-defined buttons\n * @desc may return promise or simply false */\n clickButton(funcname) {\n if (this.isMainPainter() && funcname === 'ToggleColorZ')\n return this.toggleColz();\n\n return false;\n }\n\n /** @summary Fill pad toolbar for TASImage */\n fillToolbar() {\n const pp = this.getPadPainter();\n if (pp && this.getObject()?.fPalette) {\n pp.addPadButton('th2colorz', 'Toggle color palette', 'ToggleColorZ');\n pp.showPadButtons();\n }\n }\n\n /** @summary Draw TASImage object */\n static async draw(dom, obj, opt) {\n const painter = new TASImagePainter(dom, obj, opt);\n painter.setAsMainPainter();\n painter.decodeOptions(opt);\n return ensureTCanvas(painter, false)\n .then(() => painter.drawImage())\n .then(() => {\n painter.fillToolbar();\n return painter;\n });\n }\n\n} // class TASImagePainter\n\nexport { TASImagePainter };\n"],"x_google_ignoreList":[0]} \ No newline at end of file diff --git a/docs/679.63489e0326785cc5.js b/docs/679.ff9d576f88a20f40.js similarity index 94% rename from docs/679.63489e0326785cc5.js rename to docs/679.ff9d576f88a20f40.js index 7d0045cd..c96d7d1b 100644 --- a/docs/679.63489e0326785cc5.js +++ b/docs/679.ff9d576f88a20f40.js @@ -1,2 +1,2 @@ -"use strict";(self.webpackChunkphoenix_app=self.webpackChunkphoenix_app||[]).push([[679],{2679:(R,L,k)=>{k.r(L),k.d(L,{TGraphPainter:()=>F,clTGraphAsymmErrors:()=>S});var T=k(4882),u=k(8872),C=k(8362),w=k(2843),z=k(1922),G=k(4615),Y=k(212),P=k(2985),H=k(5992),D=k(7900);const v=(0,u.BIT)(18),X="TGraphErrors",S="TGraphAsymmErrors",N="TGraphBentErrors",B="TGraphMultiErrors";class F extends z.JW{constructor(t,i){super(t,i),this.axes_draw=!1,this.bins=null,this.xmin=this.ymin=this.xmax=this.ymax=0,this.wheel_zoomy=!0,this.is_bent=i._typename===N,this.has_errors=i._typename===X||i._typename===B||i._typename===S||this.is_bent||i._typename.match(/^RooHist/)}getGraph(){return this.getObject()}getHistogram(){return this.getObject()?.fHistogram}setHistogram(t){const i=this.getObject();i&&(i.fHistogram=t)}redraw(){var t=this;return(0,T.A)(function*(){let i=Promise.resolve(!0);if(t.$redraw_hist){delete t.$redraw_hist;const s=t.getMainPainter();s?.isSecondary(t)&&t.axes_draw&&(i=s.redraw())}return i.then(()=>t.drawGraph()).then(()=>{const s=t._funcHandler?.drawNext(0)??t;return delete t._funcHandler,s})})()}cleanup(){delete this.interactive_bin,delete this.bins,super.cleanup()}get_gme(){const t=this.getGraph();return t?._typename===B?t:null}decodeOptions(t,i){(0,u.isStr)(t)&&0===t.indexOf("same ")&&(t=t.slice(5));const s=this.getGraph(),a=!!this.get_gme(),n=i?!!this.getMainPainter():!this.axes_draw;let l=[];this.options||(this.options={});const m=(x,e)=>{Object.assign(e,{Line:0,Curve:0,Rect:0,Mark:0,Bar:0,OutRange:0,EF:0,Fill:0,MainError:1,Ends:1,ScaleErrX:1}),a&&x.check("S=",!0)&&(e.ScaleErrX=x.partAsFloat()),x.check("L")&&(e.Line=1),x.check("F")&&(e.Fill=1),x.check("CC")&&(e.Curve=2),x.check("C")&&(e.Curve=1),x.check("*")&&(e.Mark=103),x.check("P0")&&(e.Mark=104),x.check("P")&&(e.Mark=1),x.check("B")&&(e.Bar=1,e.Errors=0),x.check("Z")&&(e.Errors=1,e.Ends=0),x.check("||")&&(e.Errors=1,e.MainError=0,e.Ends=1),x.check("[]")&&(e.Errors=1,e.MainError=0,e.Ends=2),x.check("|>")&&(e.Errors=1,e.Ends=3),x.check(">")&&(e.Errors=1,e.Ends=4),x.check("0")&&(e.Mark=1,e.Errors=1,e.OutRange=1),x.check("1")&&1===e.Bar&&(e.Bar=2),x.check("2")&&(e.Rect=1,e.Errors=0),x.check("3")&&(e.EF=1,e.Errors=0),x.check("4")&&(e.EF=2,e.Errors=0),x.check("5")&&(e.Rect=2,e.Errors=0),x.check("X")&&(e.Errors=0)};Object.assign(this.options,{Axis:"",NoOpt:0,PadStats:!1,PadPalette:!1,original:t,second_x:!1,second_y:!1,individual_styles:!1}),a&&t&&(t.indexOf(";")>0?(l=t.split(";"),t=l.shift()):t.indexOf("_")>0&&(l=t.split("_"),t=l.shift()));const r=this.options,y="AXIS;FORCE_TITLE;";let c=new w.nC(t),f="";if(Y.c.forEach(x=>{c.check(x)&&(f+=";"+x)}),c.check("XAXIS_",!0)&&(f+=";XAXIS_"+c.part),c.check("YAXIS_",!0)&&(f+=";YAXIS_"+c.part),c.empty()&&(r.original=n?"lp":"alp",c=new w.nC(r.original)),c.check("NOOPT")&&(r.NoOpt=1),c.check("POS3D_",!0)&&(r.pos3d=c.partAsInt()-.5),c.check("PFC")&&!r._pfc&&(r._pfc=2),c.check("PLC")&&!r._plc&&(r._plc=2),c.check("PMC")&&!r._pmc&&(r._pmc=2),c.check("A")&&(r.Axis=c.check("I")?"A;":y),c.check("X+")&&(r.Axis+="X+",r.second_x=n),c.check("Y+")&&(r.Axis+="Y+",r.second_y=n),c.check("RX")&&(r.Axis+="RX"),c.check("RY")&&(r.Axis+="RY"),a&&(r.blocks=[],r.skip_errors_x0=r.skip_errors_y0=!1,c.check("X0")&&(r.skip_errors_x0=!0),c.check("Y0")&&(r.skip_errors_y0=!0)),m(c,r),a&&c.check("S")&&(r.individual_styles=!0),void 0===r.Errors&&(r.Errors=!this.has_errors||a&&l.length?0:1),1===r.Mark&&1===s.fMarkerStyle&&(r.Mark=101),r.Line+r.Fill+r.Curve+r.Mark+r.Bar+r.EF+r.Rect+r.Errors===0&&c.empty()&&(r.Line=1),this.matchObjectType(X)){const x=s.fEX.length;let e=0;for(let h=0;h3&&s.fX[0]===s.fX[s.fNpoints-1]&&s.fY[0]===s.fY[s.fNpoints-1],r.Axis)r.Axis.indexOf("A")<0&&(r.Axis=y+r.Axis);else{const x=this.getPadPainter()?.getRootPad(!0);(!x||x?.fPrimitives?.arr[0]===this.getObject())&&(r.Axis=y)}r.Axis+=f;for(let x=0;x{s.eylow=i.fEyL[t][s.indx],s.eyhigh=i.fEyH[t][s.indx]})}createBins(){const t=this.getGraph();if(!t)return;let i=0,s=t.fNpoints;this._cutg&&this._cutg_lastsame&&s--,t._typename===X?i=1:t._typename===B?i=2:(t._typename===S||t._typename===N||t._typename.match(/^RooHist/))&&(i=3),this.bins=new Array(s);for(let a=0;a0?(this.xmin=Math.min(this.xmin,n.x-n.exlow,n.x+n.exhigh),this.xmax=Math.max(this.xmax,n.x-n.exlow,n.x+n.exhigh),this.ymin=Math.min(this.ymin,n.y-n.eylow,n.y+n.eyhigh),this.ymax=Math.max(this.ymax,n.y-n.eylow,n.y+n.eyhigh)):(this.xmin=Math.min(this.xmin,n.x),this.xmax=Math.max(this.xmax,n.x),this.ymin=Math.min(this.ymin,n.y),this.ymax=Math.max(this.ymax,n.y))}}getHistRangeMargin(){return.1}createHistogram(t,i){!t&&!i&&(t=i=!0);const s=this.getGraph(),a=this.xmin,n=this.getHistRangeMargin();let l=this.xmax,m=this.ymin,r=this.ymax;a>=l&&(l=a+1),m>=r&&(r=m+1);const y=(l-a)*n,c=(r-m)*n;let f=a-y,x=l+y,e=m-c,h=r+c;this._not_adjust_hrange||(f<0&&a>=0&&(f=a*(1-n)),x>0&&l<=0&&(x=0));const g=e,d=h;let o=this.getHistogram();return o?o.fMaximum!==u.kNoZoom&&o.fMinimum!==u.kNoZoom&&(e=o.fMinimum,h=o.fMaximum):(o=this._need_2dhist?(0,u.createHistogram)(u.clTH2I,30,30):(0,u.createHistogram)(u.clTH1I,100),o.fName=s.fName+"_h",o.fBits|=u.kNoStats,this._own_histogram=!0,this.setHistogram(o)),s.fMinimum!==u.kNoZoom&&(e=m=s.fMinimum),s.fMaximum!==u.kNoZoom&&(h=s.fMaximum),e<0&&m>=0&&(e=(1-n)*m),(0,u.setHistogramTitle)(o,this.getObject().fTitle),t&&(o.fXaxis.fXmin=f,o.fXaxis.fXmax=x),i&&(o.fYaxis.fXmin=Math.min(g,e),o.fYaxis.fXmax=Math.max(d,h),o.fMinimum=e,o.fMaximum=h),o}unzoomUserRange(t,i){const s=this.getGraph();if(this._own_histogram||!s)return!1;const a=this.getHistogram();return i=i&&a&&(a.fYaxis.fXmin>this.ymin||a.fYaxis.fXmaxthis.xmin||a.fXaxis.fXmax0&&!this.options.NoOpt}optimizeBins(t,i){if(this.bins.length<30&&!i)return this.bins;let s=null;if((0,u.isFunc)(i))for(let l=0;l0)&&"normal"===a.y_handle.kind&&(t.eylow||t.eyhigh)&&s.push("error y = -"+a.axisAsText("y",t.eylow)+"/+"+a.axisAsText("y",t.eyhigh));return s}get_main(){let t=this.getFramePainter();if(t?.grx&&t?.gry)return t;const i=this.getPadPainter(),s=i?.getPadRect()||{width:800,height:600};return t={pad_layer:!0,pad:i?.getRootPad(!0)??(0,u.create)(u.clTPad),pw:s.width,ph:s.height,fX1NDC:.1,fX2NDC:.9,fY1NDC:.1,fY2NDC:.9,getFrameWidth(){return this.pw},getFrameHeight(){return this.ph},grx(a){return(a=this.pad.fLogx?a>0?Math.log10(a):this.pad.fUxmin:(a-this.pad.fX1)/(this.pad.fX2-this.pad.fX1))*this.pw},gry(a){return(1-(a=this.pad.fLogv??this.pad.fLogy?a>0?Math.log10(a):this.pad.fUymin:(a-this.pad.fY1)/(this.pad.fY2-this.pad.fY1)))*this.ph},revertAxis(a,n){return"x"===a?n/this.pw*(this.pad.fX2-this.pad.fX1)+this.pad.fX1:"y"===a?(1-n/this.ph)*(this.pad.fY2-this.pad.fY1)+this.pad.fY1:n},getGrFuncs(){return this}},t.pad?t:null}appendExclusion(t,i,s,a){const n=[];for(let m=s.length-1;m>=0;--m){const r=s[m],y=Math.sqrt(r.dgrx**2+r.dgry**2);y>1e-10&&(r.grx+=a*r.dgry/y,r.gry-=a*r.dgrx/y),n.push(r)}const l=(0,w.Mw)(n,{cmd:"L",line:!t});this.draw_g.append("svg:path").attr("d",i+l+"Z").call(this.fillatt.func).style("opacity",.75)}drawBins(t,i,s,a,n,l,m,r){const y=this.getGraph();if(!y?.fNpoints)return;let c=0,f=null;if(r&&l.excl_side&&(c=l.excl_width,l.width>0&&!i.Line&&!i.Curve&&(i.Line=1)),i.EF){f=this.optimizeBins(i.EF>1?2e4:0);for(let d=0;d=0;--d){const o=f[d];o.gry=t.gry(o.y+o.eyhigh),h.push(o)}const g=(0,w.Mw)(h,{line:i.EF<2,cmd:"L",qubic:!0});s.append("svg:path").attr("d",e+g+"Z").call(m.func),r&&(this.draw_kind="lines")}if(i.Line||i.Fill){let e="";this._cutg&&(e="Z",i.original||(i.Fill=1)),i.Fill&&(e="Z",c=0),f||(f=this.optimizeBins(0));for(let d=0;d2e4){e=this.optimizeBins(1===i.Curve?2e4:0);for(let g=0;g{const g=t.grx(e.x);if(!i.Bar&&(g<0||g>a))return!0;const d=t.gry(e.y);return!i.Bar&&!i.OutRange&&(d<0||d>n)||(e.grx1=Math.round(g),e.gry1=Math.round(d),this.has_errors&&(e.grx0=Math.round(t.grx(e.x-i.ScaleErrX*e.exlow)-g),e.grx2=Math.round(t.grx(e.x+i.ScaleErrX*e.exhigh)-g),e.gry0=Math.round(t.gry(e.y-e.eylow)-d),e.gry2=Math.round(t.gry(e.y+e.eyhigh)-d),this.is_bent?(e.grdx0=Math.round(t.gry(e.y+y.fEXlowd[h])-d),e.grdx2=Math.round(t.gry(e.y+y.fEXhighd[h])-d),e.grdy0=Math.round(t.grx(e.x+y.fEYlowd[h])-g),e.grdy2=Math.round(t.grx(e.x+y.fEYhighd[h])-g)):e.grdx0=e.grdx2=e.grdy0=e.grdy2=0),!1)}),r&&(this.draw_kind="nodes"),x=s.selectAll(".grpoint").data(f).enter().append("svg:g").attr("class","grpoint").attr("transform",e=>(0,w.bk)(e.grx1,e.gry1))),i.Bar){let e=0,h=0;for(let o=0;o{o.bar=!0;const p=o.width>1?Math.round(-o.width/2):0,M=o.width>1?Math.round(o.width):1;return`M${p},${1!==i.Bar?0:o.gry1>g?g-o.gry1:0}h${M}v${1!==i.Bar?n>o.gry1?n-o.gry1:0:Math.abs(g-o.gry1)}h${-M}z`}).call(d.func)}if(i.Rect&&x.filter(e=>e.exlow>0&&e.exhigh>0&&e.eylow>0&&e.eyhigh>0).append("svg:path").attr("d",e=>(e.rect=!0,`M${e.grx0},${e.gry0}H${e.grx2}V${e.gry2}H${e.grx0}Z`)).call(m.func).call(2===i.Rect?l.func:()=>{}),this.error_size=0,i.Errors){let e=l.width+u.gStyle.fEndErrorSize,h=0;const g=i.Ends?`m0,${e}v${-2*e}`:"",d=i.Ends?`m${e},0h${-2*e}`:"";let o=g,p=g,M=d,b=d;const E=(_,A)=>{if(!i.MainError)return`M${_},${A}`;const O="M0,0";return _?O+(A?`L${_},${A}`:`H${_}`):A?O+`V${A}`:O};switch(i.Ends){case 2:h=Math.max(l.width+1,Math.round(.66*e)),o=`m${h},${e}h${-h}v${-2*e}h${h}`,p=`m${-h},${e}h${h}v${-2*e}h${-h}`,M=`m${-e},${h}v${-h}h${2*e}v${h}`,b=`m${-e},${-h}v${h}h${2*e}v${-h}`;break;case 3:e=Math.max(e,Math.round(8*y.fMarkerSize*.66)),h=Math.max(l.width+1,Math.round(.66*e)),o=`l${h},${e}v${-2*e}l${-h},${e}`,p=`l${-h},${e}v${-2*e}l${h},${e}`,M=`l${-e},${h}h${2*e}l${-e},${-h}`,b=`l${-e},${-h}h${2*e}l${-e},${h}`;break;case 4:e=Math.max(e,Math.round(8*y.fMarkerSize*.66)),h=Math.max(l.width+1,Math.round(.66*e)),o=`l${h},${e}m0,${-2*e}l${-h},${e}`,p=`l${-h},${e}m0,${-2*e}l${h},${e}`,M=`l${-e},${h}m${2*e},0l${-e},${-h}`,b=`l${-e},${-h}m${2*e},0l${-e},${h}`}this.error_size=e,e=Math.floor((l.width-1)/2);let $=x.filter(_=>_.exlow>0||_.exhigh>0||_.eylow>0||_.eyhigh>0);(i.skip_errors_x0||i.skip_errors_y0)&&($=$.filter(_=>!(0===_.x&&i.skip_errors_x0||0===_.y&&i.skip_errors_y0))),!this.isBatchMode()&&u.settings.Tooltip&&r&&$.append("svg:path").style("fill","none").style("pointer-events","visibleFill").attr("d",_=>`M${_.grx0},${_.gry0}h${_.grx2-_.grx0}v${_.gry2-_.gry0}h${_.grx0-_.grx2}z`),$.append("svg:path").call(l.func).style("fill","none").attr("d",_=>(_.error=!0,(_.exlow>0?E(_.grx0+e,_.grdx0)+o:"")+(_.exhigh>0?E(_.grx2-e,_.grdx2)+p:"")+(_.eylow>0?E(_.grdy0,_.gry0-e)+b:"")+(_.eyhigh>0?E(_.grdy2,_.gry2+e)+M:"")))}if(i.Mark){this.createAttMarker({attr:y,style:i.Mark-100}),this.marker_size=this.markeratt.getFullSize(),this.markeratt.resetPos();const e=!this.isBatchMode()&&u.settings.Tooltip&&(!this.markeratt.fill||this.marker_size<7)&&!x&&r,h=Math.max(5,Math.round(.7*this.marker_size)),g=1e6/(this.markeratt.getMarkerLength()+7);let o,p,M,d="",b="",E=1;f?this.canOptimize()&&f.length>1.5*g&&(E=Math.min(2,Math.round(f.length/g))):f=this.optimizeBins(g);for(let $=0;$-this.marker_size&&p-this.marker_size&&M`M${t.grx(e)},${t.gry(h)}L${t.grx(g)},${t.gry(d)}`,r=(i.fYq2-i.fYq1)*(t.scale_xmin-i.fXq1)/(i.fXq2-i.fXq1)+i.fYq1,y=(i.fYq2-i.fYq1)*(t.scale_xmax-i.fXq1)/(i.fXq2-i.fXq1)+i.fYq1;let c="";c=rt.scale_ymax?m(a,l,(i.fXq2-i.fXq1)*(t.scale_ymax-i.fYq1)/(i.fYq2-i.fYq1)+i.fXq1,t.scale_ymax):m(a,l,t.scale_xmax,y);const f=this.createAttLine({style:1,width:1,color:P.tA,std:!1}),x=this.createAttLine({style:2,width:1,color:P.tA,std:!1});this.draw_g.append("path").attr("d",m(s,n,a,l)).call(f.func).style("fill","none"),this.draw_g.append("path").attr("d",c).call(x.func).style("fill","none")}drawBins3D(){console.log("Load ./hist/TGraphPainter.mjs to draw graph in 3D")}createGraphDrawAttributes(t){const i=this.getGraph(),s=this.options;if(s._pfc>1||s._plc>1||s._pmc>1){const a=this.getPadPainter();if((0,u.isFunc)(a?.getAutoColor)){const n=a.getAutoColor(i.$num_graphs);this._auto_exec="",s._pfc>1&&(s._pfc=1,i.fFillColor=n,this._auto_exec+=`SetFillColor(${n});;`,delete this.fillatt),s._plc>1&&(s._plc=1,i.fLineColor=n,this._auto_exec+=`SetLineColor(${n});;`,delete this.lineatt),s._pmc>1&&(s._pmc=1,i.fMarkerColor=n,this._auto_exec+=`SetMarkerColor(${n});;`,delete this.markeratt)}}t?this.deleteAttr():(this.createAttLine({attr:i,can_excl:!0}),this.createAttFill({attr:i}))}drawGraph(){const t=this.get_main(),i=this.getGraph();if(!t)return;if(this.options.pos3d)return this.drawBins3D(t,i);const s=!!this.get_gme(),a=t.getGrFuncs(this.options.second_x,this.options.second_y),n=t.getFrameWidth(),l=t.getFrameHeight();this.createG(!t.pad_layer),this.createGraphDrawAttributes(),this.fillatt.used=!1,this.draw_kind="none",this.marker_size=0;const m=s?this.draw_g.append("svg:g"):this.draw_g;if(this.drawBins(a,this.options,m,n,l,this.lineatt,this.fillatt,!0),"TGraphQQ"===i._typename&&this.appendQQ(a,i),s){for(let r=0;r=y)return;if(h.error||h.rect||h.marker)d={x1:Math.min(-a,h.grx0,-m),x2:Math.max(a,h.grx2,m),y1:Math.min(-a,h.gry2,-m),y2:Math.max(a,h.gry0,m)};else if(h.bar){if(d={x1:-h.width/2,x2:h.width/2,y1:0,y2:s-h.gry1},n){const M=l.gry(0);d.y1=h.gry1>M?M-h.gry1:0,d.y2=h.gry1>M?0:M-h.gry1}}else d={x1:-5,x2:5,y1:-5,y2:5};const p=t.y>=h.gry1+d.y1&&t.y<=h.gry1+d.y2;t.x>=h.grx1+d.x1&&t.x<=h.grx1+d.x2&&(p||t.nproc>1)&&(y=g,r=this,c=d,c.exact=p)}),null===r)return null;const f=(0,C.Lt)(r).datum(),x=this.getGraph(),e={name:x.fName,title:x.fTitle,x:f.grx1,y:f.gry1,color1:this.lineatt.color,lines:this.getTooltips(f),rect:c,d3bin:r};return e.user_info={obj:x,name:x.fName,bin:f.indx,cont:f.y,grx:f.grx1,gry:f.gry1},this.fillatt?.used&&!this.fillatt?.empty()&&(e.color2=this.fillatt.getFillColor()),c.exact&&(e.exact=!0),e.menu=e.exact,e.menu_dist=3,e.bin=f,e.binindx=f.indx,e}showTooltip(t){let i=this.draw_g?.selectChild(".tooltip_bin");if(!t||!this.draw_g)return void i?.remove();if(t.usepath)return this.showTooltipForPath(t);const s=(0,C.Lt)(t.d3bin).datum();i.empty()&&(i=this.draw_g.append("svg:rect").attr("class","tooltip_bin").style("pointer-events","none").call(w.Ru)),t.changed=i.property("current_bin")!==t.d3bin,t.changed&&i.attr("x",s.grx1+t.rect.x1).attr("width",t.rect.x2-t.rect.x1).attr("y",s.gry1+t.rect.y1).attr("height",t.rect.y2-t.rect.y1).style("opacity","0.3").property("current_bin",t.d3bin)}processTooltipEvent(t){const i=this.extractTooltip(t);return(!t||!t.disabled)&&this.showTooltip(i),i}findBestBin(t){if(!this.bins)return null;const i="lines"===this.draw_kind,s=this.get_main().getGrFuncs(this.options.second_x,this.options.second_y);let m,r,y,c,f,a=-1,n=null,l=1e10;for(c=0;c100&&i&&(n=null);let x=Math.max(this.lineatt.width+3,4);this.marker_size>0&&(x=Math.max(this.marker_size,x)),n&&(l=Math.sqrt((t.x-s.grx(n.x))**2+(t.y-s.gry(n.y))**2)),!i&&l>x&&(n=null),n||(a=-1);const e={bin:n,indx:a,dist:l,radius:Math.round(x)};if(!n&&i){l=1e10;const h=(M,b,E)=>b>=M&&M>=E||b<=M&&M<=E;let o,g=this.bins[0],d=s.grx(g.x),p=0;for(c=1;c1&&i.append("svg:circle").attr("cy",Math.round(t.gry2));const s=i.selectAll("circle").attr("r",t.radius).attr("cx",Math.round(t.x));t.islines?(this.options.Line||this.options.Curve?s.call(this.lineatt.func):s.style("stroke","black"),this.options.Fill?s.call(this.fillatt.func):s.style("fill","none")):s.style("stroke","black"===t.color1?"green":"black").style("fill","none")}}else i?.remove()}moveEnabled(){return this.testEditable()}moveStart(t,i){this.pos_dx=this.pos_dy=0,this.move_funcs=this.get_main().getGrFuncs(this.options.second_x,this.options.second_y);const s=this.extractTooltip({x:t,y:i});s&&s.exact&&void 0!==s.binindx?(this.move_binindx=s.binindx,this.move_bin=s.bin,this.move_x0=this.move_funcs.grx(this.move_bin.x),this.move_y0=this.move_funcs.gry(this.move_bin.y)):delete this.move_binindx}moveDrag(t,i){this.pos_dx+=t,this.pos_dy+=i,void 0===this.move_binindx?(0,w.bk)(this.draw_g,this.pos_dx,this.pos_dy):this.move_funcs&&this.move_bin&&(this.move_bin.x=this.move_funcs.revertAxis("x",this.move_x0+this.pos_dx),this.move_bin.y=this.move_funcs.revertAxis("y",this.move_y0+this.pos_dy),this.drawGraph())}moveEnd(t){const i=this.getGraph(),s=i?.fNpoints-1;let a="";const n=l=>{a+=`SetPoint(${l.indx},${l.x},${l.y});;`,i.fX[l.indx]=l.x,i.fY[l.indx]=l.y,0===l.indx&&this._cutg_lastsame&&(a+=`SetPoint(${s},${l.x},${l.y});;`,i.fX[s]=l.x,i.fY[s]=l.y)};if(void 0===this.move_binindx){if(this.draw_g.attr("transform",null),this.move_funcs&&this.bins&&!t){for(let l=0;l{this.testEditable("toggle"),this.drawGraph()})}executeMenuCommand(t,i){if(super.executeMenuCommand(t,i))return!0;const s=this.getCanvPainter(),a=this.get_main();if("RemovePoint"===t.fName||"InsertPoint"===t.fName){if(!s||s._readonly)return!0;const n=(0,u.isFunc)(a?.getLastEventPos)?a.getLastEventPos():null,l=this.extractTooltip(n);if("InsertPoint"===t.fName){if(n){const m=a.getGrFuncs(this.options.second_x,this.options.second_y),r=m.revertAxis("x",n.x)??0,y=m.revertAxis("y",n.y)??0;this.submitCanvExec(`AddPoint(${r.toFixed(3)}, ${y.toFixed(3)})`,t.$execid)}}else t.$execid&&void 0!==l?.binindx&&this.submitCanvExec(`RemovePoint(${l.binindx})`,t.$execid);return!0}return!1}_updateMembers(t,i){t.fBits=i.fBits,t.fTitle=i.fTitle,t.fX=i.fX,t.fY=i.fY,t.fNpoints=i.fNpoints,t.fMinimum=i.fMinimum,t.fMaximum=i.fMaximum;const s=this.options;void 0!==this.snapid&&(s._pfc=s._plc=s._pmc=0),s._pfc||(t.fFillColor=i.fFillColor),t.fFillStyle=i.fFillStyle,s._plc||(t.fLineColor=i.fLineColor),t.fLineStyle=i.fLineStyle,t.fLineWidth=i.fLineWidth,s._pmc||(t.fMarkerColor=i.fMarkerColor),t.fMarkerSize=i.fMarkerSize,t.fMarkerStyle=i.fMarkerStyle}updateObject(t,i){if(!this.matchObjectType(t))return!1;if(i&&i!==this.options.original&&this.decodeOptions(i),this._updateMembers(this.getObject(),t),this.createBins(),delete this.$redraw_hist,this.axes_draw){const s=this.createHistogram(),a=this.getMainPainter();a?.isSecondary(this)&&(a.updateObject(s,this.options.Axis),this.$redraw_hist=!0)}return this._funcHandler=new G.eP(this,this.getPadPainter(),t.fFunctions),!0}canZoomInside(t,i,s){const a=this.getGraph();if(!a||t!==(this.options.pos3d?"y":"x"))return!1;for(let n=0;nt._typename===u.clTF1||t._typename===u.clTF2)}findStat(){return this.getGraph()?.fFunctions?.arr?.find(t=>t._typename===u.clTPaveStats&&"stats"===t.fName)}createStat(){const t=this.findFunc();if(!t)return null;let i=this.findStat();if(i)return i;if(this.getCanvPainter()?.normal_canvas)return null;this.create_stats=!0;const s=u.gStyle;return i=(0,u.create)(u.clTPaveStats),Object.assign(i,{fName:"stats",fOptStat:0,fOptFit:s.fOptFit||111,fBorderSize:1,fX1NDC:s.fStatX-s.fStatW,fY1NDC:s.fStatY-s.fStatH,fX2NDC:s.fStatX,fY2NDC:s.fStatY,fFillColor:s.fStatColor,fFillStyle:s.fStatStyle}),i.fTextAngle=0,i.fTextSize=s.fStatFontSize,i.fTextAlign=12,i.fTextColor=s.fStatTextColor,i.fTextFont=s.fStatFont,i.AddText(t.fName),this.getGraph().fFunctions.Add(i),i}fillStatistic(t,i,s){const a=this.findFunc();return!(!a||!s||(t.clearPave(),t.fillFunctionStat(a,1===s?111:s,1),0))}drawAxisHisto(){var t=this;return(0,T.A)(function*(){const i=t.createHistogram();return Y.N.draw(t.getDom(),i,t.options.Axis)})()}static _drawGraph(t,i){return(0,T.A)(function*(){t.decodeOptions(i,!0),t.createBins(),t.createStat();const s=t.getGraph();!u.settings.DragGraphs&&s&&!s.TestBit(v)&&s.InvertBit(v);let a=Promise.resolve();return(!t.getMainPainter()||t.options.second_x||t.options.second_y)&&t.options.Axis&&(a=t.drawAxisHisto().then(n=>{n?.setSecondaryId(t,"hist"),t.axes_draw=!!n})),a.then(()=>(t.addToPadPrimitives(),t.drawGraph())).then(()=>new G.eP(t,t.getPadPainter(),s.fFunctions,!0).drawNext(0))})()}static draw(t,i,s){return(0,T.A)(function*(){return F._drawGraph(new F(t,i),s)})()}}}}]); -//# sourceMappingURL=679.63489e0326785cc5.js.map \ No newline at end of file +"use strict";(self.webpackChunkphoenix_app=self.webpackChunkphoenix_app||[]).push([[679],{2679:(R,L,k)=>{k.r(L),k.d(L,{TGraphPainter:()=>F,clTGraphAsymmErrors:()=>S});var T=k(4882),u=k(8872),C=k(8362),E=k(2843),z=k(1922),G=k(4615),Y=k(212),P=k(2985),D=k(5992),H=k(7900);const v=(0,u.BIT)(18),X="TGraphErrors",S="TGraphAsymmErrors",N="TGraphBentErrors",B="TGraphMultiErrors";class F extends z.JW{constructor(t,i){super(t,i),this.axes_draw=!1,this.bins=null,this.xmin=this.ymin=this.xmax=this.ymax=0,this.wheel_zoomy=!0,this.is_bent=i._typename===N,this.has_errors=i._typename===X||i._typename===B||i._typename===S||this.is_bent||i._typename.match(/^RooHist/)}getGraph(){return this.getObject()}getHistogram(){return this.getObject()?.fHistogram}setHistogram(t){const i=this.getObject();i&&(i.fHistogram=t)}redraw(){var t=this;return(0,T.A)(function*(){let i=Promise.resolve(!0);if(t.$redraw_hist){delete t.$redraw_hist;const s=t.getMainPainter();s?.isSecondary(t)&&t.axes_draw&&(i=s.redraw())}return i.then(()=>t.drawGraph()).then(()=>{const s=t._funcHandler?.drawNext(0)??t;return delete t._funcHandler,s})})()}cleanup(){delete this.interactive_bin,delete this.bins,super.cleanup()}get_gme(){const t=this.getGraph();return t?._typename===B?t:null}decodeOptions(t,i){(0,u.isStr)(t)&&0===t.indexOf("same ")&&(t=t.slice(5));const s=this.getGraph(),a=!!this.get_gme(),n=i?!!this.getMainPainter():!this.axes_draw;let l=[];this.options||(this.options={});const m=(x,e)=>{Object.assign(e,{Line:0,Curve:0,Rect:0,Mark:0,Bar:0,OutRange:0,EF:0,Fill:0,MainError:1,Ends:1,ScaleErrX:1}),a&&x.check("S=",!0)&&(e.ScaleErrX=x.partAsFloat()),x.check("L")&&(e.Line=1),x.check("F")&&(e.Fill=1),x.check("CC")&&(e.Curve=2),x.check("C")&&(e.Curve=1),x.check("*")&&(e.Mark=103),x.check("P0")&&(e.Mark=104),x.check("P")&&(e.Mark=1),x.check("B")&&(e.Bar=1,e.Errors=0),x.check("Z")&&(e.Errors=1,e.Ends=0),x.check("||")&&(e.Errors=1,e.MainError=0,e.Ends=1),x.check("[]")&&(e.Errors=1,e.MainError=0,e.Ends=2),x.check("|>")&&(e.Errors=1,e.Ends=3),x.check(">")&&(e.Errors=1,e.Ends=4),x.check("0")&&(e.Mark=1,e.Errors=1,e.OutRange=1),x.check("1")&&1===e.Bar&&(e.Bar=2),x.check("2")&&(e.Rect=1,e.Errors=0),x.check("3")&&(e.EF=1,e.Errors=0),x.check("4")&&(e.EF=2,e.Errors=0),x.check("5")&&(e.Rect=2,e.Errors=0),x.check("X")&&(e.Errors=0)};Object.assign(this.options,{Axis:"",NoOpt:0,PadStats:!1,PadPalette:!1,original:t,second_x:!1,second_y:!1,individual_styles:!1}),a&&t&&(t.indexOf(";")>0?(l=t.split(";"),t=l.shift()):t.indexOf("_")>0&&(l=t.split("_"),t=l.shift()));const r=this.options,y="AXIS;FORCE_TITLE;";let c=new E.nC(t),f="";if(Y.c.forEach(x=>{c.check(x)&&(f+=";"+x)}),c.check("XAXIS_",!0)&&(f+=";XAXIS_"+c.part),c.check("YAXIS_",!0)&&(f+=";YAXIS_"+c.part),c.empty()&&(r.original=n?"lp":"alp",c=new E.nC(r.original)),c.check("NOOPT")&&(r.NoOpt=1),c.check("POS3D_",!0)&&(r.pos3d=c.partAsInt()-.5),c.check("PFC")&&!r._pfc&&(r._pfc=2),c.check("PLC")&&!r._plc&&(r._plc=2),c.check("PMC")&&!r._pmc&&(r._pmc=2),c.check("A")&&(r.Axis=c.check("I")?"A;":y),c.check("X+")&&(r.Axis+="X+",r.second_x=n),c.check("Y+")&&(r.Axis+="Y+",r.second_y=n),c.check("RX")&&(r.Axis+="RX"),c.check("RY")&&(r.Axis+="RY"),a&&(r.blocks=[],r.skip_errors_x0=r.skip_errors_y0=!1,c.check("X0")&&(r.skip_errors_x0=!0),c.check("Y0")&&(r.skip_errors_y0=!0)),m(c,r),a&&c.check("S")&&(r.individual_styles=!0),void 0===r.Errors&&(r.Errors=!this.has_errors||a&&l.length?0:1),1===r.Mark&&1===s.fMarkerStyle&&(r.Mark=101),r.Line+r.Fill+r.Curve+r.Mark+r.Bar+r.EF+r.Rect+r.Errors===0&&c.empty()&&(r.Line=1),this.matchObjectType(X)){const x=s.fEX.length;let e=0;for(let h=0;h3&&s.fX[0]===s.fX[s.fNpoints-1]&&s.fY[0]===s.fY[s.fNpoints-1],r.Axis)r.Axis.indexOf("A")<0&&(r.Axis=y+r.Axis);else{const x=this.getPadPainter()?.getRootPad(!0);(!x||x?.fPrimitives?.arr[0]===this.getObject())&&(r.Axis=y)}r.Axis+=f;for(let x=0;x{s.eylow=i.fEyL[t][s.indx],s.eyhigh=i.fEyH[t][s.indx]})}createBins(){const t=this.getGraph();if(!t)return;let i=0,s=t.fNpoints;this._cutg&&this._cutg_lastsame&&s--,t._typename===X?i=1:t._typename===B?i=2:(t._typename===S||t._typename===N||t._typename.match(/^RooHist/))&&(i=3),this.bins=new Array(s);for(let a=0;a0?(this.xmin=Math.min(this.xmin,n.x-n.exlow,n.x+n.exhigh),this.xmax=Math.max(this.xmax,n.x-n.exlow,n.x+n.exhigh),this.ymin=Math.min(this.ymin,n.y-n.eylow,n.y+n.eyhigh),this.ymax=Math.max(this.ymax,n.y-n.eylow,n.y+n.eyhigh)):(this.xmin=Math.min(this.xmin,n.x),this.xmax=Math.max(this.xmax,n.x),this.ymin=Math.min(this.ymin,n.y),this.ymax=Math.max(this.ymax,n.y))}}getHistRangeMargin(){return.1}createHistogram(t,i){!t&&!i&&(t=i=!0);const s=this.getGraph(),a=this.xmin,n=this.getHistRangeMargin();let l=this.xmax,m=this.ymin,r=this.ymax;a>=l&&(l=a+1),m>=r&&(r=m+1);const y=(l-a)*n,c=(r-m)*n;let f=a-y,x=l+y,e=m-c,h=r+c;this._not_adjust_hrange||(f<0&&a>=0&&(f=a*(1-n)),x>0&&l<=0&&(x=0));const g=e,d=h;let o=this.getHistogram();return o?o.fMaximum!==u.kNoZoom&&o.fMinimum!==u.kNoZoom&&(e=o.fMinimum,h=o.fMaximum):(o=this._need_2dhist?(0,u.createHistogram)(u.clTH2I,30,30):(0,u.createHistogram)(u.clTH1I,100),o.fName=s.fName+"_h",o.fBits|=u.kNoStats,this._own_histogram=!0,this.setHistogram(o)),s.fMinimum!==u.kNoZoom&&(e=m=s.fMinimum),s.fMaximum!==u.kNoZoom&&(h=s.fMaximum),e<0&&m>=0&&(e=(1-n)*m),(0,u.setHistogramTitle)(o,this.getObject().fTitle),t&&(o.fXaxis.fXmin=f,o.fXaxis.fXmax=x),i&&(o.fYaxis.fXmin=Math.min(g,e),o.fYaxis.fXmax=Math.max(d,h),o.fMinimum=e,o.fMaximum=h),o}unzoomUserRange(t,i){const s=this.getGraph();if(this._own_histogram||!s)return!1;const a=this.getHistogram();return i=i&&a&&(a.fYaxis.fXmin>this.ymin||a.fYaxis.fXmaxthis.xmin||a.fXaxis.fXmax0&&!this.options.NoOpt}optimizeBins(t,i){if(this.bins.length<30&&!i)return this.bins;let s=null;if((0,u.isFunc)(i))for(let l=0;l0)&&"normal"===a.y_handle.kind&&(t.eylow||t.eyhigh)&&s.push("error y = -"+a.axisAsText("y",t.eylow)+"/+"+a.axisAsText("y",t.eyhigh));return s}get_main(){let t=this.getFramePainter();if(t?.grx&&t?.gry)return t;const i=this.getPadPainter(),s=i?.getPadRect()||{width:800,height:600};return t={pad_layer:!0,pad:i?.getRootPad(!0)??(0,u.create)(u.clTPad),pw:s.width,ph:s.height,fX1NDC:.1,fX2NDC:.9,fY1NDC:.1,fY2NDC:.9,getFrameWidth(){return this.pw},getFrameHeight(){return this.ph},grx(a){return(a=this.pad.fLogx?a>0?Math.log10(a):this.pad.fUxmin:(a-this.pad.fX1)/(this.pad.fX2-this.pad.fX1))*this.pw},gry(a){return(1-(a=this.pad.fLogv??this.pad.fLogy?a>0?Math.log10(a):this.pad.fUymin:(a-this.pad.fY1)/(this.pad.fY2-this.pad.fY1)))*this.ph},revertAxis(a,n){return"x"===a?n/this.pw*(this.pad.fX2-this.pad.fX1)+this.pad.fX1:"y"===a?(1-n/this.ph)*(this.pad.fY2-this.pad.fY1)+this.pad.fY1:n},getGrFuncs(){return this}},t.pad?t:null}appendExclusion(t,i,s,a){const n=[];for(let m=s.length-1;m>=0;--m){const r=s[m],y=Math.sqrt(r.dgrx**2+r.dgry**2);y>1e-10&&(r.grx+=a*r.dgry/y,r.gry-=a*r.dgrx/y),n.push(r)}const l=(0,E.Mw)(n,{cmd:"L",line:!t});this.draw_g.append("svg:path").attr("d",i+l+"Z").call(this.fillatt.func).style("opacity",.75)}drawBins(t,i,s,a,n,l,m,r){const y=this.getGraph();if(!y?.fNpoints)return;let c=0,f=null;if(r&&l.excl_side&&(c=l.excl_width,l.width>0&&!i.Line&&!i.Curve&&(i.Line=1)),i.EF){f=this.optimizeBins(i.EF>1?2e4:0);for(let d=0;d=0;--d){const o=f[d];o.gry=t.gry(o.y+o.eyhigh),h.push(o)}const g=(0,E.Mw)(h,{line:i.EF<2,cmd:"L",qubic:!0});s.append("svg:path").attr("d",e+g+"Z").call(m.func),r&&(this.draw_kind="lines")}if(i.Line||i.Fill){let e="";this._cutg&&(e="Z",i.original||(i.Fill=1)),i.Fill&&(e="Z",c=0),f||(f=this.optimizeBins(0));for(let d=0;d2e4){e=this.optimizeBins(1===i.Curve?2e4:0);for(let g=0;g{const g=t.grx(e.x);if(!i.Bar&&(g<0||g>a))return!0;const d=t.gry(e.y);return!i.Bar&&!i.OutRange&&(d<0||d>n)||(e.grx1=Math.round(g),e.gry1=Math.round(d),this.has_errors&&(e.grx0=Math.round(t.grx(e.x-i.ScaleErrX*e.exlow)-g),e.grx2=Math.round(t.grx(e.x+i.ScaleErrX*e.exhigh)-g),e.gry0=Math.round(t.gry(e.y-e.eylow)-d),e.gry2=Math.round(t.gry(e.y+e.eyhigh)-d),this.is_bent?(e.grdx0=Math.round(t.gry(e.y+y.fEXlowd[h])-d),e.grdx2=Math.round(t.gry(e.y+y.fEXhighd[h])-d),e.grdy0=Math.round(t.grx(e.x+y.fEYlowd[h])-g),e.grdy2=Math.round(t.grx(e.x+y.fEYhighd[h])-g)):e.grdx0=e.grdx2=e.grdy0=e.grdy2=0),!1)}),r&&(this.draw_kind="nodes"),x=s.selectAll(".grpoint").data(f).enter().append("svg:g").attr("class","grpoint").attr("transform",e=>(0,E.bk)(e.grx1,e.gry1))),i.Bar){let e=0,h=0;for(let o=0;o{o.bar=!0;const p=o.width>1?Math.round(-o.width/2):0,M=o.width>1?Math.round(o.width):1;return`M${p},${1!==i.Bar?0:o.gry1>g?g-o.gry1:0}h${M}v${1!==i.Bar?n>o.gry1?n-o.gry1:0:Math.abs(g-o.gry1)}h${-M}z`}).call(d.func)}if(i.Rect&&x.filter(e=>e.exlow>0&&e.exhigh>0&&e.eylow>0&&e.eyhigh>0).append("svg:path").attr("d",e=>(e.rect=!0,`M${e.grx0},${e.gry0}H${e.grx2}V${e.gry2}H${e.grx0}Z`)).call(m.func).call(2===i.Rect?l.func:()=>{}),this.error_size=0,i.Errors){let e=l.width+u.gStyle.fEndErrorSize,h=0;const g=i.Ends?`m0,${e}v${-2*e}`:"",d=i.Ends?`m${e},0h${-2*e}`:"";let o=g,p=g,M=d,b=d;const w=(_,A)=>{if(!i.MainError)return`M${_},${A}`;const O="M0,0";return _?O+(A?`L${_},${A}`:`H${_}`):A?O+`V${A}`:O};switch(i.Ends){case 2:h=Math.max(l.width+1,Math.round(.66*e)),o=`m${h},${e}h${-h}v${-2*e}h${h}`,p=`m${-h},${e}h${h}v${-2*e}h${-h}`,M=`m${-e},${h}v${-h}h${2*e}v${h}`,b=`m${-e},${-h}v${h}h${2*e}v${-h}`;break;case 3:e=Math.max(e,Math.round(8*y.fMarkerSize*.66)),h=Math.max(l.width+1,Math.round(.66*e)),o=`l${h},${e}v${-2*e}l${-h},${e}`,p=`l${-h},${e}v${-2*e}l${h},${e}`,M=`l${-e},${h}h${2*e}l${-e},${-h}`,b=`l${-e},${-h}h${2*e}l${-e},${h}`;break;case 4:e=Math.max(e,Math.round(8*y.fMarkerSize*.66)),h=Math.max(l.width+1,Math.round(.66*e)),o=`l${h},${e}m0,${-2*e}l${-h},${e}`,p=`l${-h},${e}m0,${-2*e}l${h},${e}`,M=`l${-e},${h}m${2*e},0l${-e},${-h}`,b=`l${-e},${-h}m${2*e},0l${-e},${h}`}this.error_size=e,e=Math.floor((l.width-1)/2);let $=x.filter(_=>_.exlow>0||_.exhigh>0||_.eylow>0||_.eyhigh>0);(i.skip_errors_x0||i.skip_errors_y0)&&($=$.filter(_=>!(0===_.x&&i.skip_errors_x0||0===_.y&&i.skip_errors_y0))),!this.isBatchMode()&&u.settings.Tooltip&&r&&$.append("svg:path").style("fill","none").style("pointer-events","visibleFill").attr("d",_=>`M${_.grx0},${_.gry0}h${_.grx2-_.grx0}v${_.gry2-_.gry0}h${_.grx0-_.grx2}z`),$.append("svg:path").call(l.func).style("fill","none").attr("d",_=>(_.error=!0,(_.exlow>0?w(_.grx0+e,_.grdx0)+o:"")+(_.exhigh>0?w(_.grx2-e,_.grdx2)+p:"")+(_.eylow>0?w(_.grdy0,_.gry0-e)+b:"")+(_.eyhigh>0?w(_.grdy2,_.gry2+e)+M:"")))}if(i.Mark){this.createAttMarker({attr:y,style:i.Mark-100}),this.marker_size=this.markeratt.getFullSize(),this.markeratt.resetPos();const e=!this.isBatchMode()&&u.settings.Tooltip&&(!this.markeratt.fill||this.marker_size<7)&&!x&&r,h=Math.max(5,Math.round(.7*this.marker_size)),g=1e6/(this.markeratt.getMarkerLength()+7);let o,p,M,d="",b="",w=1;f?this.canOptimize()&&f.length>1.5*g&&(w=Math.min(2,Math.round(f.length/g))):f=this.optimizeBins(g);for(let $=0;$-this.marker_size&&p-this.marker_size&&M`M${t.grx(e)},${t.gry(h)}L${t.grx(g)},${t.gry(d)}`,r=(i.fYq2-i.fYq1)*(t.scale_xmin-i.fXq1)/(i.fXq2-i.fXq1)+i.fYq1,y=(i.fYq2-i.fYq1)*(t.scale_xmax-i.fXq1)/(i.fXq2-i.fXq1)+i.fYq1;let c="";c=rt.scale_ymax?m(a,l,(i.fXq2-i.fXq1)*(t.scale_ymax-i.fYq1)/(i.fYq2-i.fYq1)+i.fXq1,t.scale_ymax):m(a,l,t.scale_xmax,y);const f=this.createAttLine({style:1,width:1,color:P.tA,std:!1}),x=this.createAttLine({style:2,width:1,color:P.tA,std:!1});this.draw_g.append("path").attr("d",m(s,n,a,l)).call(f.func).style("fill","none"),this.draw_g.append("path").attr("d",c).call(x.func).style("fill","none")}drawBins3D(){console.log("Load ./hist/TGraphPainter.mjs to draw graph in 3D")}createGraphDrawAttributes(t){const i=this.getGraph(),s=this.options;if(s._pfc>1||s._plc>1||s._pmc>1){const a=this.getPadPainter();if((0,u.isFunc)(a?.getAutoColor)){const n=a.getAutoColor(i.$num_graphs);this._auto_exec="",s._pfc>1&&(s._pfc=1,i.fFillColor=n,this._auto_exec+=`SetFillColor(${n});;`,delete this.fillatt),s._plc>1&&(s._plc=1,i.fLineColor=n,this._auto_exec+=`SetLineColor(${n});;`,delete this.lineatt),s._pmc>1&&(s._pmc=1,i.fMarkerColor=n,this._auto_exec+=`SetMarkerColor(${n});;`,delete this.markeratt)}}t?this.deleteAttr():(this.createAttLine({attr:i,can_excl:!0}),this.createAttFill({attr:i}))}drawGraph(){const t=this.get_main(),i=this.getGraph();if(!t)return;if(this.options.pos3d)return this.drawBins3D(t,i);const s=!!this.get_gme(),a=t.getGrFuncs(this.options.second_x,this.options.second_y),n=t.getFrameWidth(),l=t.getFrameHeight();this.createG(!t.pad_layer),this.createGraphDrawAttributes(),this.fillatt.used=!1,this.draw_kind="none",this.marker_size=0;const m=s?this.draw_g.append("svg:g"):this.draw_g;if(this.drawBins(a,this.options,m,n,l,this.lineatt,this.fillatt,!0),"TGraphQQ"===i._typename&&this.appendQQ(a,i),s){for(let r=0;r=y)return;if(h.error||h.rect||h.marker)d={x1:Math.min(-a,h.grx0,-m),x2:Math.max(a,h.grx2,m),y1:Math.min(-a,h.gry2,-m),y2:Math.max(a,h.gry0,m)};else if(h.bar){if(d={x1:-h.width/2,x2:h.width/2,y1:0,y2:s-h.gry1},n){const M=l.gry(0);d.y1=h.gry1>M?M-h.gry1:0,d.y2=h.gry1>M?0:M-h.gry1}}else d={x1:-5,x2:5,y1:-5,y2:5};const p=t.y>=h.gry1+d.y1&&t.y<=h.gry1+d.y2;t.x>=h.grx1+d.x1&&t.x<=h.grx1+d.x2&&(p||t.nproc>1)&&(y=g,r=this,c=d,c.exact=p)}),null===r)return null;const f=(0,C.Lt)(r).datum(),x=this.getGraph(),e={name:x.fName,title:x.fTitle,x:f.grx1,y:f.gry1,color1:this.lineatt.color,lines:this.getTooltips(f),rect:c,d3bin:r};return e.user_info={obj:x,name:x.fName,bin:f.indx,cont:f.y,grx:f.grx1,gry:f.gry1},this.fillatt?.used&&!this.fillatt?.empty()&&(e.color2=this.fillatt.getFillColor()),c.exact&&(e.exact=!0),e.menu=e.exact,e.menu_dist=3,e.bin=f,e.binindx=f.indx,e}showTooltip(t){let i=this.draw_g?.selectChild(".tooltip_bin");if(!t||!this.draw_g)return void i?.remove();if(t.usepath)return this.showTooltipForPath(t);const s=(0,C.Lt)(t.d3bin).datum();i.empty()&&(i=this.draw_g.append("svg:rect").attr("class","tooltip_bin").style("pointer-events","none").call(E.Ru)),t.changed=i.property("current_bin")!==t.d3bin,t.changed&&i.attr("x",s.grx1+t.rect.x1).attr("width",t.rect.x2-t.rect.x1).attr("y",s.gry1+t.rect.y1).attr("height",t.rect.y2-t.rect.y1).style("opacity","0.3").property("current_bin",t.d3bin)}processTooltipEvent(t){const i=this.extractTooltip(t);return(!t||!t.disabled)&&this.showTooltip(i),i}findBestBin(t){if(!this.bins)return null;const i="lines"===this.draw_kind,s=this.get_main().getGrFuncs(this.options.second_x,this.options.second_y);let m,r,y,c,f,a=-1,n=null,l=1e10;for(c=0;c100&&i&&(n=null);let x=Math.max(this.lineatt.width+3,4);this.marker_size>0&&(x=Math.max(this.marker_size,x)),n&&(l=Math.sqrt((t.x-s.grx(n.x))**2+(t.y-s.gry(n.y))**2)),!i&&l>x&&(n=null),n||(a=-1);const e={bin:n,indx:a,dist:l,radius:Math.round(x)};if(!n&&i){l=1e10;const h=(M,b,w)=>b>=M&&M>=w||b<=M&&M<=w;let o,g=this.bins[0],d=s.grx(g.x),p=0;for(c=1;c1&&i.append("svg:circle").attr("cy",Math.round(t.gry2));const s=i.selectAll("circle").attr("r",t.radius).attr("cx",Math.round(t.x));t.islines?(this.options.Line||this.options.Curve?s.call(this.lineatt.func):s.style("stroke","black"),this.options.Fill?s.call(this.fillatt.func):s.style("fill","none")):s.style("stroke","black"===t.color1?"green":"black").style("fill","none")}}else i?.remove()}moveEnabled(){return this.testEditable()}moveStart(t,i){this.pos_dx=this.pos_dy=0,this.move_funcs=this.get_main().getGrFuncs(this.options.second_x,this.options.second_y);const s=this.extractTooltip({x:t,y:i});s&&s.exact&&void 0!==s.binindx?(this.move_binindx=s.binindx,this.move_bin=s.bin,this.move_x0=this.move_funcs.grx(this.move_bin.x),this.move_y0=this.move_funcs.gry(this.move_bin.y)):delete this.move_binindx}moveDrag(t,i){this.pos_dx+=t,this.pos_dy+=i,void 0===this.move_binindx?(0,E.bk)(this.draw_g,this.pos_dx,this.pos_dy):this.move_funcs&&this.move_bin&&(this.move_bin.x=this.move_funcs.revertAxis("x",this.move_x0+this.pos_dx),this.move_bin.y=this.move_funcs.revertAxis("y",this.move_y0+this.pos_dy),this.drawGraph())}moveEnd(t){const i=this.getGraph(),s=i?.fNpoints-1;let a="";const n=l=>{a+=`SetPoint(${l.indx},${l.x},${l.y});;`,i.fX[l.indx]=l.x,i.fY[l.indx]=l.y,0===l.indx&&this._cutg_lastsame&&(a+=`SetPoint(${s},${l.x},${l.y});;`,i.fX[s]=l.x,i.fY[s]=l.y)};if(void 0===this.move_binindx){if(this.draw_g.attr("transform",null),this.move_funcs&&this.bins&&!t){for(let l=0;l{this.testEditable("toggle"),this.drawGraph()})}executeMenuCommand(t,i){if(super.executeMenuCommand(t,i))return!0;const s=this.getCanvPainter(),a=this.get_main();if("RemovePoint"===t.fName||"InsertPoint"===t.fName){if(!s||s._readonly)return!0;const n=(0,u.isFunc)(a?.getLastEventPos)?a.getLastEventPos():null,l=this.extractTooltip(n);if("InsertPoint"===t.fName){if(n){const m=a.getGrFuncs(this.options.second_x,this.options.second_y),r=m.revertAxis("x",n.x)??0,y=m.revertAxis("y",n.y)??0;this.submitCanvExec(`AddPoint(${r.toFixed(3)}, ${y.toFixed(3)})`,t.$execid)}}else t.$execid&&void 0!==l?.binindx&&this.submitCanvExec(`RemovePoint(${l.binindx})`,t.$execid);return!0}return!1}_updateMembers(t,i){t.fBits=i.fBits,t.fTitle=i.fTitle,t.fX=i.fX,t.fY=i.fY,t.fNpoints=i.fNpoints,t.fMinimum=i.fMinimum,t.fMaximum=i.fMaximum;const s=this.options;void 0!==this.snapid&&(s._pfc=s._plc=s._pmc=0),s._pfc||(t.fFillColor=i.fFillColor),t.fFillStyle=i.fFillStyle,s._plc||(t.fLineColor=i.fLineColor),t.fLineStyle=i.fLineStyle,t.fLineWidth=i.fLineWidth,s._pmc||(t.fMarkerColor=i.fMarkerColor),t.fMarkerSize=i.fMarkerSize,t.fMarkerStyle=i.fMarkerStyle}updateObject(t,i){if(!this.matchObjectType(t))return!1;if(i&&i!==this.options.original&&this.decodeOptions(i),this._updateMembers(this.getObject(),t),this.createBins(),delete this.$redraw_hist,this.axes_draw){const s=this.createHistogram(),a=this.getMainPainter();a?.isSecondary(this)&&(a.updateObject(s,this.options.Axis),this.$redraw_hist=!0)}return this._funcHandler=new G.eP(this,this.getPadPainter(),t.fFunctions),!0}canZoomInside(t,i,s){const a=this.getGraph();if(!a||t!==(this.options.pos3d?"y":"x"))return!1;for(let n=0;nt._typename===u.clTF1||t._typename===u.clTF2)}findStat(){return this.getGraph()?.fFunctions?.arr?.find(t=>t._typename===u.clTPaveStats&&"stats"===t.fName)}createStat(){const t=this.findFunc();if(!t)return null;let i=this.findStat();if(i)return i;if(this.getCanvPainter()?.normal_canvas)return null;this.create_stats=!0;const s=u.gStyle;return i=(0,u.create)(u.clTPaveStats),Object.assign(i,{fName:"stats",fOptStat:0,fOptFit:s.fOptFit||111,fBorderSize:1,fX1NDC:s.fStatX-s.fStatW,fY1NDC:s.fStatY-s.fStatH,fX2NDC:s.fStatX,fY2NDC:s.fStatY,fFillColor:s.fStatColor,fFillStyle:s.fStatStyle}),i.fTextAngle=0,i.fTextSize=s.fStatFontSize,i.fTextAlign=12,i.fTextColor=s.fStatTextColor,i.fTextFont=s.fStatFont,i.AddText(t.fName),this.getGraph().fFunctions.Add(i),i}fillStatistic(t,i,s){const a=this.findFunc();return!(!a||!s||(t.clearPave(),t.fillFunctionStat(a,1===s?111:s,1),0))}drawAxisHisto(){var t=this;return(0,T.A)(function*(){const i=t.createHistogram();return Y.N.draw(t.getDom(),i,t.options.Axis)})()}static _drawGraph(t,i){return(0,T.A)(function*(){t.decodeOptions(i,!0),t.createBins(),t.createStat();const s=t.getGraph();!u.settings.DragGraphs&&s&&!s.TestBit(v)&&s.InvertBit(v);let a=Promise.resolve();return(!t.getMainPainter()||t.options.second_x||t.options.second_y)&&t.options.Axis&&(a=t.drawAxisHisto().then(n=>{n?.setSecondaryId(t,"hist"),t.axes_draw=!!n})),a.then(()=>(t.addToPadPrimitives(),t.drawGraph())).then(()=>new G.eP(t,t.getPadPainter(),s.fFunctions,!0).drawNext(0))})()}static draw(t,i,s){return(0,T.A)(function*(){return F._drawGraph(new F(t,i),s)})()}}}}]); +//# sourceMappingURL=679.ff9d576f88a20f40.js.map \ No newline at end of file diff --git a/docs/679.63489e0326785cc5.js.map b/docs/679.ff9d576f88a20f40.js.map similarity index 99% rename from docs/679.63489e0326785cc5.js.map rename to docs/679.ff9d576f88a20f40.js.map index 4a52162e..7e8a1595 100644 --- a/docs/679.63489e0326785cc5.js.map +++ b/docs/679.ff9d576f88a20f40.js.map @@ -1 +1 @@ -{"version":3,"file":"679.63489e0326785cc5.js","mappings":"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","names":["kNotEditable","BIT","clTGraphErrors","clTGraphAsymmErrors","clTGraphBentErrors","clTGraphMultiErrors","TGraphPainter","ObjectPainter","constructor","dom","graph","super","this","axes_draw","bins","xmin","ymin","xmax","ymax","wheel_zoomy","is_bent","_typename","has_errors","match","getGraph","getObject","getHistogram","fHistogram","setHistogram","histo","obj","redraw","_this","_asyncToGenerator","promise","Promise","resolve","$redraw_hist","hist_painter","getMainPainter","isSecondary","then","drawGraph","res","_funcHandler","drawNext","cleanup","interactive_bin","get_gme","decodeOptions","opt","first_time","isStr","indexOf","slice","is_gme","has_main","blocks_gme","options","decodeBlock","d","Object","assign","Line","Curve","Rect","Mark","Bar","OutRange","EF","Fill","MainError","Ends","ScaleErrX","check","partAsFloat","Errors","Axis","NoOpt","PadStats","PadPalette","original","second_x","second_y","individual_styles","split","shift","_a","DrawOptions","hopt","PadDrawOptions","forEach","name","part","empty","pos3d","partAsInt","_pfc","_plc","_pmc","blocks","skip_errors_x0","skip_errors_y0","undefined","length","fMarkerStyle","matchObjectType","len","fEX","m","k","Math","max","fEY","_cutg","clTCutG","_cutg_lastsame","fNpoints","fX","fY","pad","getPadPainter","getRootPad","fPrimitives","arr","bl","subres","push","extractGmeErrors","nblock","gr","bin","eylow","fEyL","indx","eyhigh","fEyH","createBins","kind","npoints","Array","p","x","y","exlow","exhigh","fExL","fExH","fEXlow","fEXhigh","fEYlow","fEYhigh","min","getHistRangeMargin","createHistogram","set_x","set_y","margin","dx","dy","uxmin","uxmax","minimum","maximum","_not_adjust_hrange","minimum0","maximum0","fMaximum","kNoZoom","fMinimum","_need_2dhist","clTH2I","clTH1I","fName","fBits","kNoStats","_own_histogram","setHistogramTitle","fTitle","fXaxis","fXmin","fXmax","fYaxis","unzoomUserRange","dox","doy","extractAxesProperties","canOptimize","settings","OptimizeDraw","optimizeBins","maxpnt","filter_func","selbins","isFunc","n","step","floor","optbins","needDrawFunc","func","clTPaveStats","TestBit","clTF1","clTF2","getTooltips","lines","funcs","get_main","getGrFuncs","gme","getObjectHint","axisAsText","x_handle","ny","fNYErrors","y_handle","pmain","getFramePainter","grx","gry","pp","rect","getPadRect","width","height","pad_layer","create","clTPad","pw","ph","fX1NDC","fX2NDC","fY1NDC","fY2NDC","getFrameWidth","getFrameHeight","value","fLogx","log10","fUxmin","fX1","fX2","fLogv","fLogy","fUymin","fY1","fY2","revertAxis","v","appendExclusion","is_curve","path","drawbins","excl_width","extrabins","dlen","sqrt","dgrx","dgry","path2","buildSvgCurve","cmd","line","draw_g","append","attr","call","fillatt","style","drawBins","w","h","lineatt","main_block","excl_side","path1","qubic","bins2","draw_kind","close_symbol","calc","elem","curvebins","nodes","pnt","i","grx1","round","gry1","grx0","grx2","gry0","gry2","grdx0","fEXlowd","grdx2","fEXhighd","grdy0","fEYlowd","grdy2","fEYhighd","selectAll","data","enter","makeTranslate","gStyle","fBarWidth","yy0","usefill","fp","fpcol","getFillColor","createAttFill","color","kBlack","kWhite","pattern","std","bar","dw","abs","filter","error_size","lw","fEndErrorSize","bb","vv","hh","vleft","vright","htop","hbottom","mainLine","fMarkerSize","visible","isBatchMode","Tooltip","error","createAttMarker","marker_size","markeratt","getFullSize","resetPos","want_tooltip","fill","hsz","maxnummarker","getMarkerLength","hints_marker","appendQQ","xqmin","scale_xmin","fXq1","xqmax","scale_xmax","fXq2","yqmin","scale_ymin","fYq1","yqmax","scale_ymax","fYq2","makeLine","x1","y1","x2","y2","yxmin","yxmax","latt1","createAttLine","latt2","drawBins3D","console","log","createGraphDrawAttributes","only_check_auto","o","getAutoColor","icolor","$num_graphs","_auto_exec","fFillColor","fLineColor","fMarkerColor","deleteAttr","can_excl","createG","used","fAttLine","fAttFill","sub_g","addMoveHandler","testEditable","assignContextMenu","extractTooltip","extractTooltipForPath","esz","isbar1","msize","findbin","best_dist2","best","each","d3_select","datum","dist2","nproc","marker","matchy","exact","title","color1","d3bin","user_info","cont","color2","menu","menu_dist","binindx","showTooltip","hint","ttrect","selectChild","remove","usepath","showTooltipForPath","addHighlightStyle","changed","property","processTooltipEvent","disabled","findBestBin","islines","dist","bestindx","bestbin","bestdist","radius","IsInside","bin0","posy","linex","liney","linedist","closeline","arg","InvertBit","ismark","getColor","ttbin","moveEnabled","moveStart","pos_dx","pos_dy","move_funcs","move_binindx","move_bin","move_x0","move_y0","moveDrag","moveEnd","not_changed","last","exec","changeBin","$redraw_pad","redrawPad","submitCanvExec","fillWebObjectOptions","fcust","fillContextMenuItems","snapid","addchk","executeMenuCommand","method","args","canp","getCanvPainter","_readonly","getLastEventPos","userx","usery","toFixed","$execid","_updateMembers","fFillStyle","fLineStyle","fLineWidth","updateObject","FunctionsHandler","fFunctions","canZoomInside","axis","clickButton","funcname","zoom","findFunc","find","findStat","createStat","stats","normal_canvas","create_stats","st","fOptStat","fOptFit","fBorderSize","fStatX","fStatW","fStatY","fStatH","fStatColor","fStatStyle","fTextAngle","fTextSize","fStatFontSize","fTextAlign","fTextColor","fStatTextColor","fTextFont","fStatFont","AddText","Add","fillStatistic","stat","_dostat","dofit","clearPave","fillFunctionStat","drawAxisHisto","_this2","TH1Painter","draw","getDom","_drawGraph","painter","DragGraphs","setSecondaryId","addToPadPrimitives"],"ignoreList":[],"sourceRoot":"webpack:///","sources":["../node_modules/jsroot/modules/hist2d/TGraphPainter.mjs"],"sourcesContent":["import { gStyle, BIT, settings, create, createHistogram, setHistogramTitle, isFunc, isStr,\n clTPaveStats, clTCutG, clTH1I, clTH2I, clTF1, clTF2, clTPad, kNoZoom, kNoStats } from '../core.mjs';\nimport { select as d3_select } from '../d3.mjs';\nimport { DrawOptions, buildSvgCurve, makeTranslate, addHighlightStyle } from '../base/BasePainter.mjs';\nimport { ObjectPainter } from '../base/ObjectPainter.mjs';\nimport { FunctionsHandler } from './THistPainter.mjs';\nimport { TH1Painter, PadDrawOptions } from './TH1Painter.mjs';\nimport { kBlack, kWhite } from '../base/colors.mjs';\nimport { addMoveHandler } from '../gui/utils.mjs';\nimport { assignContextMenu } from '../gui/menu.mjs';\n\n\nconst kNotEditable = BIT(18), // bit set if graph is non editable\n clTGraphErrors = 'TGraphErrors',\n clTGraphAsymmErrors = 'TGraphAsymmErrors',\n clTGraphBentErrors = 'TGraphBentErrors',\n clTGraphMultiErrors = 'TGraphMultiErrors';\n\n/**\n * @summary Painter for TGraph object.\n *\n * @private\n */\n\n\nclass TGraphPainter extends ObjectPainter {\n\n constructor(dom, graph) {\n super(dom, graph);\n this.axes_draw = false; // indicate if graph histogram was drawn for axes\n this.bins = null;\n this.xmin = this.ymin = this.xmax = this.ymax = 0;\n this.wheel_zoomy = true;\n this.is_bent = (graph._typename === clTGraphBentErrors);\n this.has_errors = (graph._typename === clTGraphErrors) ||\n (graph._typename === clTGraphMultiErrors) ||\n (graph._typename === clTGraphAsymmErrors) ||\n this.is_bent || graph._typename.match(/^RooHist/);\n }\n\n /** @summary Return drawn graph object */\n getGraph() { return this.getObject(); }\n\n /** @summary Return histogram object used for axis drawings */\n getHistogram() { return this.getObject()?.fHistogram; }\n\n /** @summary Set histogram object to graph */\n setHistogram(histo) {\n const obj = this.getObject();\n if (obj) obj.fHistogram = histo;\n }\n\n /** @summary Redraw graph\n * @desc may redraw histogram which was used to draw axes\n * @return {Promise} for ready */\n async redraw() {\n let promise = Promise.resolve(true);\n\n if (this.$redraw_hist) {\n delete this.$redraw_hist;\n const hist_painter = this.getMainPainter();\n if (hist_painter?.isSecondary(this) && this.axes_draw)\n promise = hist_painter.redraw();\n }\n\n return promise.then(() => this.drawGraph()).then(() => {\n const res = this._funcHandler?.drawNext(0) ?? this;\n delete this._funcHandler;\n return res;\n });\n }\n\n /** @summary Cleanup graph painter */\n cleanup() {\n delete this.interactive_bin; // break mouse handling\n delete this.bins;\n super.cleanup();\n }\n\n /** @summary Returns object if this drawing TGraphMultiErrors object */\n get_gme() {\n const graph = this.getGraph();\n return graph?._typename === clTGraphMultiErrors ? graph : null;\n }\n\n /** @summary Decode options */\n decodeOptions(opt, first_time) {\n if (isStr(opt) && (opt.indexOf('same ') === 0))\n opt = opt.slice(5);\n\n const graph = this.getGraph(),\n is_gme = !!this.get_gme(),\n has_main = first_time ? !!this.getMainPainter() : !this.axes_draw;\n let blocks_gme = [];\n\n if (!this.options) this.options = {};\n\n // decode main draw options for the graph\n const decodeBlock = (d, res) => {\n Object.assign(res, { Line: 0, Curve: 0, Rect: 0, Mark: 0, Bar: 0, OutRange: 0, EF: 0, Fill: 0, MainError: 1, Ends: 1, ScaleErrX: 1 });\n\n if (is_gme && d.check('S=', true)) res.ScaleErrX = d.partAsFloat();\n\n if (d.check('L')) res.Line = 1;\n if (d.check('F')) res.Fill = 1;\n if (d.check('CC')) res.Curve = 2; // draw all points without reduction\n if (d.check('C')) res.Curve = 1;\n if (d.check('*')) res.Mark = 103;\n if (d.check('P0')) res.Mark = 104;\n if (d.check('P')) res.Mark = 1;\n if (d.check('B')) { res.Bar = 1; res.Errors = 0; }\n if (d.check('Z')) { res.Errors = 1; res.Ends = 0; }\n if (d.check('||')) { res.Errors = 1; res.MainError = 0; res.Ends = 1; }\n if (d.check('[]')) { res.Errors = 1; res.MainError = 0; res.Ends = 2; }\n if (d.check('|>')) { res.Errors = 1; res.Ends = 3; }\n if (d.check('>')) { res.Errors = 1; res.Ends = 4; }\n if (d.check('0')) { res.Mark = 1; res.Errors = 1; res.OutRange = 1; }\n if (d.check('1')) if (res.Bar === 1) res.Bar = 2;\n if (d.check('2')) { res.Rect = 1; res.Errors = 0; }\n if (d.check('3')) { res.EF = 1; res.Errors = 0; }\n if (d.check('4')) { res.EF = 2; res.Errors = 0; }\n if (d.check('5')) { res.Rect = 2; res.Errors = 0; }\n if (d.check('X')) res.Errors = 0;\n };\n\n Object.assign(this.options, { Axis: '', NoOpt: 0, PadStats: false, PadPalette: false, original: opt, second_x: false, second_y: false, individual_styles: false });\n\n if (is_gme && opt) {\n if (opt.indexOf(';') > 0) {\n blocks_gme = opt.split(';');\n opt = blocks_gme.shift();\n } else if (opt.indexOf('_') > 0) {\n blocks_gme = opt.split('_');\n opt = blocks_gme.shift();\n }\n }\n\n const res = this.options, _a = 'AXIS;FORCE_TITLE;';\n let d = new DrawOptions(opt), hopt = '';\n\n PadDrawOptions.forEach(name => { if (d.check(name)) hopt += ';' + name; });\n if (d.check('XAXIS_', true)) hopt += ';XAXIS_' + d.part;\n if (d.check('YAXIS_', true)) hopt += ';YAXIS_' + d.part;\n\n if (d.empty()) {\n res.original = has_main ? 'lp' : 'alp';\n d = new DrawOptions(res.original);\n }\n\n if (d.check('NOOPT')) res.NoOpt = 1;\n\n if (d.check('POS3D_', true)) res.pos3d = d.partAsInt() - 0.5;\n\n if (d.check('PFC') && !res._pfc)\n res._pfc = 2;\n if (d.check('PLC') && !res._plc)\n res._plc = 2;\n if (d.check('PMC') && !res._pmc)\n res._pmc = 2;\n\n if (d.check('A')) res.Axis = d.check('I') ? 'A;' : _a; // I means invisible axis\n if (d.check('X+')) { res.Axis += 'X+'; res.second_x = has_main; }\n if (d.check('Y+')) { res.Axis += 'Y+'; res.second_y = has_main; }\n if (d.check('RX')) res.Axis += 'RX';\n if (d.check('RY')) res.Axis += 'RY';\n\n if (is_gme) {\n res.blocks = [];\n res.skip_errors_x0 = res.skip_errors_y0 = false;\n if (d.check('X0')) res.skip_errors_x0 = true;\n if (d.check('Y0')) res.skip_errors_y0 = true;\n }\n\n decodeBlock(d, res);\n\n if (is_gme)\n if (d.check('S')) res.individual_styles = true;\n\n\n // if (d.check('E')) res.Errors = 1; // E option only defined for TGraphPolar\n\n if (res.Errors === undefined)\n res.Errors = this.has_errors && (!is_gme || !blocks_gme.length) ? 1 : 0;\n\n // special case - one could use svg:path to draw many pixels (\n if ((res.Mark === 1) && (graph.fMarkerStyle === 1)) res.Mark = 101;\n\n // if no drawing option is selected and if opt === '' nothing is done.\n if (res.Line + res.Fill + res.Curve + res.Mark + res.Bar + res.EF + res.Rect + res.Errors === 0)\n if (d.empty()) res.Line = 1;\n\n\n if (this.matchObjectType(clTGraphErrors)) {\n const len = graph.fEX.length;\n let m = 0;\n for (let k = 0; k < len; ++k)\n m = Math.max(m, graph.fEX[k], graph.fEY[k]);\n if (m < 1e-100)\n res.Errors = 0;\n }\n\n this._cutg = this.matchObjectType(clTCutG);\n this._cutg_lastsame = this._cutg && (graph.fNpoints > 3) &&\n (graph.fX[0] === graph.fX[graph.fNpoints-1]) && (graph.fY[0] === graph.fY[graph.fNpoints-1]);\n\n if (!res.Axis) {\n // check if axis should be drawn\n // either graph drawn directly or\n // graph is first object in list of primitives\n const pad = this.getPadPainter()?.getRootPad(true);\n if (!pad || (pad?.fPrimitives?.arr[0] === this.getObject())) res.Axis = _a;\n } else if (res.Axis.indexOf('A') < 0)\n res.Axis = _a + res.Axis;\n\n res.Axis += hopt;\n\n for (let bl = 0; bl < blocks_gme.length; ++bl) {\n const subd = new DrawOptions(blocks_gme[bl]), subres = {};\n decodeBlock(subd, subres);\n subres.skip_errors_x0 = res.skip_errors_x0;\n subres.skip_errors_y0 = res.skip_errors_y0;\n res.blocks.push(subres);\n }\n }\n\n /** @summary Extract errors for TGraphMultiErrors */\n extractGmeErrors(nblock) {\n if (!this.bins) return;\n const gr = this.getGraph();\n this.bins.forEach(bin => {\n bin.eylow = gr.fEyL[nblock][bin.indx];\n bin.eyhigh = gr.fEyH[nblock][bin.indx];\n });\n }\n\n /** @summary Create bins for TF1 drawing */\n createBins() {\n const gr = this.getGraph();\n if (!gr) return;\n\n let kind = 0, npoints = gr.fNpoints;\n if (this._cutg && this._cutg_lastsame)\n npoints--;\n\n if (gr._typename === clTGraphErrors)\n kind = 1;\n else if (gr._typename === clTGraphMultiErrors)\n kind = 2;\n else if (gr._typename === clTGraphAsymmErrors || gr._typename === clTGraphBentErrors || gr._typename.match(/^RooHist/))\n kind = 3;\n\n this.bins = new Array(npoints);\n\n for (let p = 0; p < npoints; ++p) {\n const bin = this.bins[p] = { x: gr.fX[p], y: gr.fY[p], indx: p };\n switch (kind) {\n case 1:\n bin.exlow = bin.exhigh = gr.fEX[p];\n bin.eylow = bin.eyhigh = gr.fEY[p];\n break;\n case 2:\n bin.exlow = gr.fExL[p];\n bin.exhigh = gr.fExH[p];\n bin.eylow = gr.fEyL[0][p];\n bin.eyhigh = gr.fEyH[0][p];\n break;\n case 3:\n bin.exlow = gr.fEXlow[p];\n bin.exhigh = gr.fEXhigh[p];\n bin.eylow = gr.fEYlow[p];\n bin.eyhigh = gr.fEYhigh[p];\n break;\n }\n\n if (p === 0) {\n this.xmin = this.xmax = bin.x;\n this.ymin = this.ymax = bin.y;\n }\n\n if (kind > 0) {\n this.xmin = Math.min(this.xmin, bin.x - bin.exlow, bin.x + bin.exhigh);\n this.xmax = Math.max(this.xmax, bin.x - bin.exlow, bin.x + bin.exhigh);\n this.ymin = Math.min(this.ymin, bin.y - bin.eylow, bin.y + bin.eyhigh);\n this.ymax = Math.max(this.ymax, bin.y - bin.eylow, bin.y + bin.eyhigh);\n } else {\n this.xmin = Math.min(this.xmin, bin.x);\n this.xmax = Math.max(this.xmax, bin.x);\n this.ymin = Math.min(this.ymin, bin.y);\n this.ymax = Math.max(this.ymax, bin.y);\n }\n }\n }\n\n /** @summary Return margins for histogram ranges */\n getHistRangeMargin() { return 0.1; }\n\n /** @summary Create histogram for graph\n * @desc graph bins should be created when calling this function\n * @param {boolean} [set_x] - set X axis range\n * @param {boolean} [set_y] - set Y axis range */\n createHistogram(set_x, set_y) {\n if (!set_x && !set_y)\n set_x = set_y = true;\n\n const graph = this.getGraph(),\n xmin = this.xmin,\n margin = this.getHistRangeMargin();\n let xmax = this.xmax, ymin = this.ymin, ymax = this.ymax;\n\n if (xmin >= xmax) xmax = xmin + 1;\n if (ymin >= ymax) ymax = ymin + 1;\n const dx = (xmax - xmin) * margin, dy = (ymax - ymin) * margin;\n let uxmin = xmin - dx, uxmax = xmax + dx,\n minimum = ymin - dy, maximum = ymax + dy;\n\n if (!this._not_adjust_hrange) {\n if ((uxmin < 0) && (xmin >= 0))\n uxmin = xmin * (1 - margin);\n if ((uxmax > 0) && (xmax <= 0))\n uxmax = 0;\n }\n\n const minimum0 = minimum, maximum0 = maximum;\n let histo = this.getHistogram();\n\n if (!histo) {\n histo = this._need_2dhist ? createHistogram(clTH2I, 30, 30) : createHistogram(clTH1I, 100);\n histo.fName = graph.fName + '_h';\n histo.fBits |= kNoStats;\n this._own_histogram = true;\n this.setHistogram(histo);\n } else if ((histo.fMaximum !== kNoZoom) && (histo.fMinimum !== kNoZoom)) {\n minimum = histo.fMinimum;\n maximum = histo.fMaximum;\n }\n\n if (graph.fMinimum !== kNoZoom) minimum = ymin = graph.fMinimum;\n if (graph.fMaximum !== kNoZoom) maximum = graph.fMaximum;\n if ((minimum < 0) && (ymin >= 0)) minimum = (1 - margin)*ymin;\n\n setHistogramTitle(histo, this.getObject().fTitle);\n\n if (set_x) {\n histo.fXaxis.fXmin = uxmin;\n histo.fXaxis.fXmax = uxmax;\n }\n\n if (set_y) {\n histo.fYaxis.fXmin = Math.min(minimum0, minimum);\n histo.fYaxis.fXmax = Math.max(maximum0, maximum);\n histo.fMinimum = minimum;\n histo.fMaximum = maximum;\n }\n\n return histo;\n }\n\n /** @summary Check if user range can be unzommed\n * @desc Used when graph points covers larger range than provided histogram */\n unzoomUserRange(dox, doy /*, doz */) {\n const graph = this.getGraph();\n if (this._own_histogram || !graph) return false;\n\n const histo = this.getHistogram();\n\n dox = dox && histo && ((histo.fXaxis.fXmin > this.xmin) || (histo.fXaxis.fXmax < this.xmax));\n doy = doy && histo && ((histo.fYaxis.fXmin > this.ymin) || (histo.fYaxis.fXmax < this.ymax));\n if (!dox && !doy) return false;\n\n this.createHistogram(dox, doy);\n this.getMainPainter()?.extractAxesProperties(1); // just to enforce ranges extraction\n\n return true;\n }\n\n /** @summary Returns true if graph drawing can be optimize */\n canOptimize() {\n return (settings.OptimizeDraw > 0) && !this.options.NoOpt;\n }\n\n /** @summary Returns optimized bins - if optimization enabled */\n optimizeBins(maxpnt, filter_func) {\n if ((this.bins.length < 30) && !filter_func)\n return this.bins;\n\n let selbins = null;\n if (isFunc(filter_func)) {\n for (let n = 0; n < this.bins.length; ++n) {\n if (filter_func(this.bins[n], n)) {\n if (!selbins) selbins = (n === 0) ? [] : this.bins.slice(0, n);\n } else\n if (selbins) selbins.push(this.bins[n]);\n }\n }\n if (!selbins) selbins = this.bins;\n\n if (!maxpnt) maxpnt = 500000;\n\n if ((selbins.length < maxpnt) || !this.canOptimize()) return selbins;\n let step = Math.floor(selbins.length / maxpnt);\n if (step < 2) step = 2;\n const optbins = [];\n for (let n = 0; n < selbins.length; n+=step)\n optbins.push(selbins[n]);\n\n return optbins;\n }\n\n /** @summary Check if such function should be drawn directly */\n needDrawFunc(graph, func) {\n if (func._typename === clTPaveStats)\n return (func.fName !== 'stats') || !graph.TestBit(kNoStats); // kNoStats is same for graph and histogram\n\n if ((func._typename === clTF1) || (func._typename === clTF2))\n return !func.TestBit(BIT(9)); // TF1::kNotDraw\n\n return true;\n }\n\n /** @summary Returns tooltip for specified bin */\n getTooltips(d) {\n const pmain = this.get_main(), lines = [],\n funcs = pmain.getGrFuncs(this.options.second_x, this.options.second_y),\n gme = this.get_gme();\n\n lines.push(this.getObjectHint());\n\n if (d && funcs) {\n if (d.indx !== undefined)\n lines.push('p = ' + d.indx);\n lines.push('x = ' + funcs.axisAsText('x', d.x), 'y = ' + funcs.axisAsText('y', d.y));\n if (gme)\n lines.push('error x = -' + funcs.axisAsText('x', gme.fExL[d.indx]) + '/+' + funcs.axisAsText('x', gme.fExH[d.indx]));\n else if (this.options.Errors && (funcs.x_handle.kind === 'normal') && (d.exlow || d.exhigh))\n lines.push('error x = -' + funcs.axisAsText('x', d.exlow) + '/+' + funcs.axisAsText('x', d.exhigh));\n\n if (gme) {\n for (let ny = 0; ny < gme.fNYErrors; ++ny)\n lines.push(`error y${ny} = -${funcs.axisAsText('y', gme.fEyL[ny][d.indx])}/+${funcs.axisAsText('y', gme.fEyH[ny][d.indx])}`);\n } else if ((this.options.Errors || (this.options.EF > 0)) && (funcs.y_handle.kind === 'normal') && (d.eylow || d.eyhigh))\n lines.push('error y = -' + funcs.axisAsText('y', d.eylow) + '/+' + funcs.axisAsText('y', d.eyhigh));\n }\n return lines;\n }\n\n /** @summary Provide frame painter for graph\n * @desc If not exists, emulate its behaviour */\n get_main() {\n let pmain = this.getFramePainter();\n\n if (pmain?.grx && pmain?.gry) return pmain;\n\n // FIXME: check if needed, can be removed easily\n const pp = this.getPadPainter(),\n rect = pp?.getPadRect() || { width: 800, height: 600 };\n\n pmain = {\n pad_layer: true,\n pad: pp?.getRootPad(true) ?? create(clTPad),\n pw: rect.width,\n ph: rect.height,\n fX1NDC: 0.1, fX2NDC: 0.9, fY1NDC: 0.1, fY2NDC: 0.9,\n getFrameWidth() { return this.pw; },\n getFrameHeight() { return this.ph; },\n grx(value) {\n if (this.pad.fLogx)\n value = (value > 0) ? Math.log10(value) : this.pad.fUxmin;\n else\n value = (value - this.pad.fX1) / (this.pad.fX2 - this.pad.fX1);\n return value * this.pw;\n },\n gry(value) {\n if (this.pad.fLogv ?? this.pad.fLogy)\n value = (value > 0) ? Math.log10(value) : this.pad.fUymin;\n else\n value = (value - this.pad.fY1) / (this.pad.fY2 - this.pad.fY1);\n return (1 - value) * this.ph;\n },\n revertAxis(name, v) {\n if (name === 'x')\n return v / this.pw * (this.pad.fX2 - this.pad.fX1) + this.pad.fX1;\n if (name === 'y')\n return (1 - v / this.ph) * (this.pad.fY2 - this.pad.fY1) + this.pad.fY1;\n return v;\n },\n getGrFuncs() { return this; }\n };\n\n return pmain.pad ? pmain : null;\n }\n\n /** @summary append exclusion area to created path */\n appendExclusion(is_curve, path, drawbins, excl_width) {\n const extrabins = [];\n for (let n = drawbins.length-1; n >= 0; --n) {\n const bin = drawbins[n],\n dlen = Math.sqrt(bin.dgrx**2 + bin.dgry**2);\n if (dlen > 1e-10) {\n // shift point\n bin.grx += excl_width*bin.dgry/dlen;\n bin.gry -= excl_width*bin.dgrx/dlen;\n }\n extrabins.push(bin);\n }\n\n const path2 = buildSvgCurve(extrabins, { cmd: 'L', line: !is_curve });\n\n this.draw_g.append('svg:path')\n .attr('d', path + path2 + 'Z')\n .call(this.fillatt.func)\n .style('opacity', 0.75);\n }\n\n /** @summary draw TGraph bins with specified options\n * @desc Can be called several times */\n drawBins(funcs, options, draw_g, w, h, lineatt, fillatt, main_block) {\n const graph = this.getGraph();\n if (!graph?.fNpoints) return;\n\n let excl_width = 0, drawbins = null;\n\n if (main_block && lineatt.excl_side) {\n excl_width = lineatt.excl_width;\n if ((lineatt.width > 0) && !options.Line && !options.Curve) options.Line = 1;\n }\n\n if (options.EF) {\n drawbins = this.optimizeBins((options.EF > 1) ? 20000 : 0);\n\n // build lower part\n for (let n = 0; n < drawbins.length; ++n) {\n const bin = drawbins[n];\n bin.grx = funcs.grx(bin.x);\n bin.gry = funcs.gry(bin.y - bin.eylow);\n }\n\n const path1 = buildSvgCurve(drawbins, { line: options.EF < 2, qubic: true }),\n bins2 = [];\n\n for (let n = drawbins.length-1; n >= 0; --n) {\n const bin = drawbins[n];\n bin.gry = funcs.gry(bin.y + bin.eyhigh);\n bins2.push(bin);\n }\n\n // build upper part (in reverse direction)\n const path2 = buildSvgCurve(bins2, { line: options.EF < 2, cmd: 'L', qubic: true });\n\n draw_g.append('svg:path')\n .attr('d', path1 + path2 + 'Z')\n .call(fillatt.func);\n if (main_block)\n this.draw_kind = 'lines';\n }\n\n if (options.Line || options.Fill) {\n let close_symbol = '';\n if (this._cutg) {\n close_symbol = 'Z';\n if (!options.original) options.Fill = 1;\n }\n\n if (options.Fill) {\n close_symbol = 'Z'; // always close area if we want to fill it\n excl_width = 0;\n }\n\n if (!drawbins) drawbins = this.optimizeBins(0);\n\n for (let n = 0; n < drawbins.length; ++n) {\n const bin = drawbins[n];\n bin.grx = funcs.grx(bin.x);\n bin.gry = funcs.gry(bin.y);\n }\n\n const path = buildSvgCurve(drawbins, { line: true, calc: excl_width });\n\n if (excl_width)\n this.appendExclusion(false, path, drawbins, excl_width);\n\n const elem = draw_g.append('svg:path').attr('d', path + close_symbol);\n if (options.Line)\n elem.call(lineatt.func);\n\n if (options.Fill)\n elem.call(fillatt.func);\n else\n elem.style('fill', 'none');\n\n if (main_block)\n this.draw_kind = 'lines';\n }\n\n if (options.Curve) {\n let curvebins = drawbins;\n if ((this.draw_kind !== 'lines') || !curvebins || ((options.Curve === 1) && (curvebins.length > 20000))) {\n curvebins = this.optimizeBins((options.Curve === 1) ? 20000 : 0);\n for (let n = 0; n < curvebins.length; ++n) {\n const bin = curvebins[n];\n bin.grx = funcs.grx(bin.x);\n bin.gry = funcs.gry(bin.y);\n }\n }\n\n const path = buildSvgCurve(curvebins, { qubic: !excl_width });\n if (excl_width)\n this.appendExclusion(true, path, curvebins, excl_width);\n\n draw_g.append('svg:path')\n .attr('d', path)\n .call(lineatt.func)\n .style('fill', 'none');\n if (main_block)\n this.draw_kind = 'lines'; // handled same way as lines\n }\n\n let nodes = null;\n\n if (options.Errors || options.Rect || options.Bar) {\n drawbins = this.optimizeBins(5000, (pnt, i) => {\n const grx = funcs.grx(pnt.x);\n\n // when drawing bars, take all points\n if (!options.Bar && ((grx < 0) || (grx > w))) return true;\n\n const gry = funcs.gry(pnt.y);\n\n if (!options.Bar && !options.OutRange && ((gry < 0) || (gry > h))) return true;\n\n pnt.grx1 = Math.round(grx);\n pnt.gry1 = Math.round(gry);\n\n if (this.has_errors) {\n pnt.grx0 = Math.round(funcs.grx(pnt.x - options.ScaleErrX*pnt.exlow) - grx);\n pnt.grx2 = Math.round(funcs.grx(pnt.x + options.ScaleErrX*pnt.exhigh) - grx);\n pnt.gry0 = Math.round(funcs.gry(pnt.y - pnt.eylow) - gry);\n pnt.gry2 = Math.round(funcs.gry(pnt.y + pnt.eyhigh) - gry);\n\n if (this.is_bent) {\n pnt.grdx0 = Math.round(funcs.gry(pnt.y + graph.fEXlowd[i]) - gry);\n pnt.grdx2 = Math.round(funcs.gry(pnt.y + graph.fEXhighd[i]) - gry);\n pnt.grdy0 = Math.round(funcs.grx(pnt.x + graph.fEYlowd[i]) - grx);\n pnt.grdy2 = Math.round(funcs.grx(pnt.x + graph.fEYhighd[i]) - grx);\n } else\n pnt.grdx0 = pnt.grdx2 = pnt.grdy0 = pnt.grdy2 = 0;\n }\n\n return false;\n });\n\n if (main_block)\n this.draw_kind = 'nodes';\n\n nodes = draw_g.selectAll('.grpoint')\n .data(drawbins)\n .enter()\n .append('svg:g')\n .attr('class', 'grpoint')\n .attr('transform', d => makeTranslate(d.grx1, d.gry1));\n }\n\n if (options.Bar) {\n // calculate bar width\n\n let xmin = 0, xmax = 0;\n for (let i = 0; i < drawbins.length; ++i) {\n if (i === 0)\n xmin = xmax = drawbins[i].grx1;\n else {\n xmin = Math.min(xmin, drawbins[i].grx1);\n xmax = Math.max(xmax, drawbins[i].grx1);\n }\n }\n\n if (drawbins.length === 1)\n drawbins[0].width = w/4; // pathologic case of single bin\n else {\n for (let i = 0; i < drawbins.length; ++i)\n drawbins[i].width = (xmax - xmin) / drawbins.length * gStyle.fBarWidth;\n }\n\n const yy0 = Math.round(funcs.gry(0));\n let usefill = fillatt;\n\n if (main_block) {\n const fp = this.getFramePainter(),\n fpcol = !fp?.fillatt?.empty() ? fp.fillatt.getFillColor() : -1;\n\n if (fpcol === fillatt.getFillColor())\n usefill = this.createAttFill({ color: fpcol === 'white' ? kBlack : kWhite, pattern: 1001, std: false });\n }\n\n nodes.append('svg:path')\n .attr('d', d => {\n d.bar = true; // element drawn as bar\n const dx = d.width > 1 ? Math.round(-d.width/2) : 0,\n dw = d.width > 1 ? Math.round(d.width) : 1,\n dy = (options.Bar !== 1) ? 0 : ((d.gry1 > yy0) ? yy0-d.gry1 : 0),\n dh = (options.Bar !== 1) ? (h > d.gry1 ? h - d.gry1 : 0) : Math.abs(yy0 - d.gry1);\n return `M${dx},${dy}h${dw}v${dh}h${-dw}z`;\n })\n .call(usefill.func);\n }\n\n if (options.Rect) {\n nodes.filter(d => (d.exlow > 0) && (d.exhigh > 0) && (d.eylow > 0) && (d.eyhigh > 0))\n .append('svg:path')\n .attr('d', d => {\n d.rect = true;\n return `M${d.grx0},${d.gry0}H${d.grx2}V${d.gry2}H${d.grx0}Z`;\n })\n .call(fillatt.func)\n .call(options.Rect === 2 ? lineatt.func : () => {});\n }\n\n this.error_size = 0;\n\n if (options.Errors) {\n // to show end of error markers, use line width attribute\n let lw = lineatt.width + gStyle.fEndErrorSize, bb = 0;\n const vv = options.Ends ? `m0,${lw}v${-2*lw}` : '',\n hh = options.Ends ? `m${lw},0h${-2*lw}` : '';\n let vleft = vv, vright = vv, htop = hh, hbottom = hh;\n\n const mainLine = (dx, dy) => {\n if (!options.MainError) return `M${dx},${dy}`;\n const res = 'M0,0';\n if (dx) return res + (dy ? `L${dx},${dy}` : `H${dx}`);\n return dy ? res + `V${dy}` : res;\n };\n\n switch (options.Ends) {\n case 2: // option []\n bb = Math.max(lineatt.width+1, Math.round(lw*0.66));\n vleft = `m${bb},${lw}h${-bb}v${-2*lw}h${bb}`;\n vright = `m${-bb},${lw}h${bb}v${-2*lw}h${-bb}`;\n htop = `m${-lw},${bb}v${-bb}h${2*lw}v${bb}`;\n hbottom = `m${-lw},${-bb}v${bb}h${2*lw}v${-bb}`;\n break;\n case 3: // option |>\n lw = Math.max(lw, Math.round(graph.fMarkerSize*8*0.66));\n bb = Math.max(lineatt.width+1, Math.round(lw*0.66));\n vleft = `l${bb},${lw}v${-2*lw}l${-bb},${lw}`;\n vright = `l${-bb},${lw}v${-2*lw}l${bb},${lw}`;\n htop = `l${-lw},${bb}h${2*lw}l${-lw},${-bb}`;\n hbottom = `l${-lw},${-bb}h${2*lw}l${-lw},${bb}`;\n break;\n case 4: // option >\n lw = Math.max(lw, Math.round(graph.fMarkerSize*8*0.66));\n bb = Math.max(lineatt.width+1, Math.round(lw*0.66));\n vleft = `l${bb},${lw}m0,${-2*lw}l${-bb},${lw}`;\n vright = `l${-bb},${lw}m0,${-2*lw}l${bb},${lw}`;\n htop = `l${-lw},${bb}m${2*lw},0l${-lw},${-bb}`;\n hbottom = `l${-lw},${-bb}m${2*lw},0l${-lw},${bb}`;\n break;\n }\n\n this.error_size = lw;\n\n lw = Math.floor((lineatt.width-1)/2); // one should take into account half of end-cup line width\n\n let visible = nodes.filter(d => (d.exlow > 0) || (d.exhigh > 0) || (d.eylow > 0) || (d.eyhigh > 0));\n if (options.skip_errors_x0 || options.skip_errors_y0)\n visible = visible.filter(d => ((d.x !== 0) || !options.skip_errors_x0) && ((d.y !== 0) || !options.skip_errors_y0));\n\n if (!this.isBatchMode() && settings.Tooltip && main_block) {\n visible.append('svg:path')\n .style('fill', 'none')\n .style('pointer-events', 'visibleFill')\n .attr('d', d => `M${d.grx0},${d.gry0}h${d.grx2-d.grx0}v${d.gry2-d.gry0}h${d.grx0-d.grx2}z`);\n }\n\n visible.append('svg:path')\n .call(lineatt.func)\n .style('fill', 'none')\n .attr('d', d => {\n d.error = true;\n return ((d.exlow > 0) ? mainLine(d.grx0+lw, d.grdx0) + vleft : '') +\n ((d.exhigh > 0) ? mainLine(d.grx2-lw, d.grdx2) + vright : '') +\n ((d.eylow > 0) ? mainLine(d.grdy0, d.gry0-lw) + hbottom : '') +\n ((d.eyhigh > 0) ? mainLine(d.grdy2, d.gry2+lw) + htop : '');\n });\n }\n\n if (options.Mark) {\n // for tooltips use markers only if nodes were not created\n this.createAttMarker({ attr: graph, style: options.Mark - 100 });\n\n this.marker_size = this.markeratt.getFullSize();\n\n this.markeratt.resetPos();\n\n const want_tooltip = !this.isBatchMode() && settings.Tooltip && (!this.markeratt.fill || (this.marker_size < 7)) && !nodes && main_block,\n hsz = Math.max(5, Math.round(this.marker_size*0.7)),\n maxnummarker = 1000000 / (this.markeratt.getMarkerLength() + 7); // let produce SVG at maximum 1MB\n\n let path = '', pnt, grx, gry,\n hints_marker = '', step = 1;\n\n if (!drawbins)\n drawbins = this.optimizeBins(maxnummarker);\n else if (this.canOptimize() && (drawbins.length > 1.5*maxnummarker))\n step = Math.min(2, Math.round(drawbins.length/maxnummarker));\n\n for (let n = 0; n < drawbins.length; n += step) {\n pnt = drawbins[n];\n grx = funcs.grx(pnt.x);\n if ((grx > -this.marker_size) && (grx < w + this.marker_size)) {\n gry = funcs.gry(pnt.y);\n if ((gry > -this.marker_size) && (gry < h + this.marker_size)) {\n path += this.markeratt.create(grx, gry);\n if (want_tooltip) hints_marker += `M${grx-hsz},${gry-hsz}h${2*hsz}v${2*hsz}h${-2*hsz}z`;\n }\n }\n }\n\n if (path) {\n draw_g.append('svg:path')\n .attr('d', path)\n .call(this.markeratt.func);\n if ((nodes === null) && (this.draw_kind === 'none') && main_block)\n this.draw_kind = (options.Mark === 101) ? 'path' : 'mark';\n }\n if (want_tooltip && hints_marker) {\n draw_g.append('svg:path')\n .attr('d', hints_marker)\n .style('fill', 'none')\n .style('pointer-events', 'visibleFill');\n }\n }\n }\n\n /** @summary append TGraphQQ part */\n appendQQ(funcs, graph) {\n const xqmin = Math.max(funcs.scale_xmin, graph.fXq1),\n xqmax = Math.min(funcs.scale_xmax, graph.fXq2),\n yqmin = Math.max(funcs.scale_ymin, graph.fYq1),\n yqmax = Math.min(funcs.scale_ymax, graph.fYq2),\n makeLine = (x1, y1, x2, y2) => `M${funcs.grx(x1)},${funcs.gry(y1)}L${funcs.grx(x2)},${funcs.gry(y2)}`,\n yxmin = (graph.fYq2 - graph.fYq1)*(funcs.scale_xmin-graph.fXq1)/(graph.fXq2-graph.fXq1) + graph.fYq1,\n yxmax = (graph.fYq2-graph.fYq1)*(funcs.scale_xmax-graph.fXq1)/(graph.fXq2-graph.fXq1) + graph.fYq1;\n\n let path2 = '';\n if (yxmin < funcs.scale_ymin) {\n const xymin = (graph.fXq2 - graph.fXq1)*(funcs.scale_ymin-graph.fYq1)/(graph.fYq2-graph.fYq1) + graph.fXq1;\n path2 = makeLine(xymin, funcs.scale_ymin, xqmin, yqmin);\n } else\n path2 = makeLine(funcs.scale_xmin, yxmin, xqmin, yqmin);\n\n\n if (yxmax > funcs.scale_ymax) {\n const xymax = (graph.fXq2-graph.fXq1)*(funcs.scale_ymax-graph.fYq1)/(graph.fYq2-graph.fYq1) + graph.fXq1;\n path2 += makeLine(xqmax, yqmax, xymax, funcs.scale_ymax);\n } else\n path2 += makeLine(xqmax, yqmax, funcs.scale_xmax, yxmax);\n\n\n const latt1 = this.createAttLine({ style: 1, width: 1, color: kBlack, std: false }),\n latt2 = this.createAttLine({ style: 2, width: 1, color: kBlack, std: false });\n\n this.draw_g.append('path')\n .attr('d', makeLine(xqmin, yqmin, xqmax, yqmax))\n .call(latt1.func)\n .style('fill', 'none');\n\n this.draw_g.append('path')\n .attr('d', path2)\n .call(latt2.func)\n .style('fill', 'none');\n }\n\n drawBins3D(/* fp, graph */) {\n console.log('Load ./hist/TGraphPainter.mjs to draw graph in 3D');\n }\n\n /** @summary Create necessary histogram draw attributes */\n createGraphDrawAttributes(only_check_auto) {\n const graph = this.getGraph(), o = this.options;\n if (o._pfc > 1 || o._plc > 1 || o._pmc > 1) {\n const pp = this.getPadPainter();\n if (isFunc(pp?.getAutoColor)) {\n const icolor = pp.getAutoColor(graph.$num_graphs);\n this._auto_exec = ''; // can be reused when sending option back to server\n if (o._pfc > 1) { o._pfc = 1; graph.fFillColor = icolor; this._auto_exec += `SetFillColor(${icolor});;`; delete this.fillatt; }\n if (o._plc > 1) { o._plc = 1; graph.fLineColor = icolor; this._auto_exec += `SetLineColor(${icolor});;`; delete this.lineatt; }\n if (o._pmc > 1) { o._pmc = 1; graph.fMarkerColor = icolor; this._auto_exec += `SetMarkerColor(${icolor});;`; delete this.markeratt; }\n }\n }\n\n if (only_check_auto)\n this.deleteAttr();\n else {\n this.createAttLine({ attr: graph, can_excl: true });\n this.createAttFill({ attr: graph });\n }\n }\n\n /** @summary draw TGraph */\n drawGraph() {\n const pmain = this.get_main(),\n graph = this.getGraph();\n if (!pmain) return;\n\n // special mode for TMultiGraph 3d drawing\n if (this.options.pos3d)\n return this.drawBins3D(pmain, graph);\n\n const is_gme = !!this.get_gme(),\n funcs = pmain.getGrFuncs(this.options.second_x, this.options.second_y),\n w = pmain.getFrameWidth(),\n h = pmain.getFrameHeight();\n\n this.createG(!pmain.pad_layer);\n\n this.createGraphDrawAttributes();\n\n this.fillatt.used = false; // mark used only when really used\n\n this.draw_kind = 'none'; // indicate if special svg:g were created for each bin\n this.marker_size = 0; // indicate if markers are drawn\n const draw_g = is_gme ? this.draw_g.append('svg:g') : this.draw_g;\n\n this.drawBins(funcs, this.options, draw_g, w, h, this.lineatt, this.fillatt, true);\n\n if (graph._typename === 'TGraphQQ')\n this.appendQQ(funcs, graph);\n\n if (is_gme) {\n for (let k = 0; k < graph.fNYErrors; ++k) {\n let lineatt = this.lineatt, fillatt = this.fillatt;\n if (this.options.individual_styles) {\n lineatt = this.createAttLine({ attr: graph.fAttLine[k], std: false });\n fillatt = this.createAttFill({ attr: graph.fAttFill[k], std: false });\n }\n const sub_g = this.draw_g.append('svg:g'),\n options = (k < this.options.blocks.length) ? this.options.blocks[k] : this.options;\n this.extractGmeErrors(k);\n this.drawBins(funcs, options, sub_g, w, h, lineatt, fillatt);\n }\n this.extractGmeErrors(0); // ensure that first block kept at the end\n }\n\n if (!this.isBatchMode()) {\n addMoveHandler(this, this.testEditable());\n assignContextMenu(this);\n }\n }\n\n /** @summary Provide tooltip at specified point */\n extractTooltip(pnt) {\n if (!pnt) return null;\n\n if ((this.draw_kind === 'lines') || (this.draw_kind === 'path') || (this.draw_kind === 'mark'))\n return this.extractTooltipForPath(pnt);\n\n if (this.draw_kind !== 'nodes') return null;\n\n const pmain = this.get_main(),\n height = pmain.getFrameHeight(),\n esz = this.error_size,\n isbar1 = (this.options.Bar === 1),\n funcs = isbar1 ? pmain.getGrFuncs(this.options.second_x, this.options.second_y) : null,\n msize = this.marker_size ? Math.round(this.marker_size/2 + 1.5) : 0;\n let findbin = null, best_dist2 = 1e10, best = null;\n\n this.draw_g.selectAll('.grpoint').each(function() {\n const d = d3_select(this).datum();\n if (d === undefined) return;\n let dist2 = (pnt.x - d.grx1) ** 2;\n if (pnt.nproc === 1) dist2 += (pnt.y - d.gry1) ** 2;\n if (dist2 >= best_dist2) return;\n\n let rect;\n\n if (d.error || d.rect || d.marker) {\n rect = { x1: Math.min(-esz, d.grx0, -msize),\n x2: Math.max(esz, d.grx2, msize),\n y1: Math.min(-esz, d.gry2, -msize),\n y2: Math.max(esz, d.gry0, msize) };\n } else if (d.bar) {\n rect = { x1: -d.width/2, x2: d.width/2, y1: 0, y2: height - d.gry1 };\n\n if (isbar1) {\n const yy0 = funcs.gry(0);\n rect.y1 = (d.gry1 > yy0) ? yy0-d.gry1 : 0;\n rect.y2 = (d.gry1 > yy0) ? 0 : yy0-d.gry1;\n }\n } else\n rect = { x1: -5, x2: 5, y1: -5, y2: 5 };\n\n const matchx = (pnt.x >= d.grx1 + rect.x1) && (pnt.x <= d.grx1 + rect.x2),\n matchy = (pnt.y >= d.gry1 + rect.y1) && (pnt.y <= d.gry1 + rect.y2);\n\n if (matchx && (matchy || (pnt.nproc > 1))) {\n best_dist2 = dist2;\n findbin = this;\n best = rect;\n best.exact = /* matchx && */ matchy;\n }\n });\n\n if (findbin === null) return null;\n\n const d = d3_select(findbin).datum(),\n gr = this.getGraph(),\n res = { name: gr.fName, title: gr.fTitle,\n x: d.grx1, y: d.gry1,\n color1: this.lineatt.color,\n lines: this.getTooltips(d),\n rect: best, d3bin: findbin };\n\n res.user_info = { obj: gr, name: gr.fName, bin: d.indx, cont: d.y, grx: d.grx1, gry: d.gry1 };\n\n if (this.fillatt?.used && !this.fillatt?.empty())\n res.color2 = this.fillatt.getFillColor();\n\n if (best.exact) res.exact = true;\n res.menu = res.exact; // activate menu only when exactly locate bin\n res.menu_dist = 3; // distance always fixed\n res.bin = d;\n res.binindx = d.indx;\n\n return res;\n }\n\n /** @summary Show tooltip */\n showTooltip(hint) {\n let ttrect = this.draw_g?.selectChild('.tooltip_bin');\n\n if (!hint || !this.draw_g) {\n ttrect?.remove();\n return;\n }\n\n if (hint.usepath)\n return this.showTooltipForPath(hint);\n\n const d = d3_select(hint.d3bin).datum();\n\n if (ttrect.empty()) {\n ttrect = this.draw_g.append('svg:rect')\n .attr('class', 'tooltip_bin')\n .style('pointer-events', 'none')\n .call(addHighlightStyle);\n }\n\n hint.changed = ttrect.property('current_bin') !== hint.d3bin;\n\n if (hint.changed) {\n ttrect.attr('x', d.grx1 + hint.rect.x1)\n .attr('width', hint.rect.x2 - hint.rect.x1)\n .attr('y', d.gry1 + hint.rect.y1)\n .attr('height', hint.rect.y2 - hint.rect.y1)\n .style('opacity', '0.3')\n .property('current_bin', hint.d3bin);\n }\n }\n\n /** @summary Process tooltip event */\n processTooltipEvent(pnt) {\n const hint = this.extractTooltip(pnt);\n if (!pnt || !pnt.disabled) this.showTooltip(hint);\n return hint;\n }\n\n /** @summary Find best bin index for specified point */\n findBestBin(pnt) {\n if (!this.bins) return null;\n\n const islines = (this.draw_kind === 'lines'),\n funcs = this.get_main().getGrFuncs(this.options.second_x, this.options.second_y);\n let bestindx = -1,\n bestbin = null,\n bestdist = 1e10,\n dist, grx, gry, n, bin;\n\n for (n = 0; n < this.bins.length; ++n) {\n bin = this.bins[n];\n\n grx = funcs.grx(bin.x);\n gry = funcs.gry(bin.y);\n\n dist = (pnt.x-grx)**2 + (pnt.y-gry)**2;\n\n if (dist < bestdist) {\n bestdist = dist;\n bestbin = bin;\n bestindx = n;\n }\n }\n\n // check last point\n if ((bestdist > 100) && islines) bestbin = null;\n\n let radius = Math.max(this.lineatt.width + 3, 4);\n\n if (this.marker_size > 0) radius = Math.max(this.marker_size, radius);\n\n if (bestbin)\n bestdist = Math.sqrt((pnt.x-funcs.grx(bestbin.x))**2 + (pnt.y-funcs.gry(bestbin.y))**2);\n\n if (!islines && (bestdist > radius)) bestbin = null;\n\n if (!bestbin) bestindx = -1;\n\n const res = { bin: bestbin, indx: bestindx, dist: bestdist, radius: Math.round(radius) };\n\n if (!bestbin && islines) {\n bestdist = 1e10;\n\n const IsInside = (x, x1, x2) => ((x1 >= x) && (x >= x2)) || ((x1 <= x) && (x <= x2));\n\n let bin0 = this.bins[0], grx0 = funcs.grx(bin0.x), gry0, posy = 0;\n for (n = 1; n < this.bins.length; ++n) {\n bin = this.bins[n];\n grx = funcs.grx(bin.x);\n\n if (IsInside(pnt.x, grx0, grx)) {\n // if inside interval, check Y distance\n gry0 = funcs.gry(bin0.y);\n gry = funcs.gry(bin.y);\n\n if (Math.abs(grx - grx0) < 1) {\n // very close x - check only y\n posy = pnt.y;\n dist = IsInside(pnt.y, gry0, gry) ? 0 : Math.min(Math.abs(pnt.y-gry0), Math.abs(pnt.y-gry));\n } else {\n posy = gry0 + (pnt.x - grx0) / (grx - grx0) * (gry - gry0);\n dist = Math.abs(posy - pnt.y);\n }\n\n if (dist < bestdist) {\n bestdist = dist;\n res.linex = pnt.x;\n res.liney = posy;\n }\n }\n\n bin0 = bin;\n grx0 = grx;\n }\n\n if (bestdist < radius*0.5) {\n res.linedist = bestdist;\n res.closeline = true;\n }\n }\n\n return res;\n }\n\n /** @summary Check editable flag for TGraph\n * @desc if arg specified changes or toggles editable flag */\n testEditable(arg) {\n const obj = this.getGraph();\n if (!obj) return false;\n if ((arg === 'toggle') || ((arg !== undefined) && (!arg !== obj.TestBit(kNotEditable))))\n obj.InvertBit(kNotEditable);\n return !obj.TestBit(kNotEditable);\n }\n\n /** @summary Provide tooltip at specified point for path-based drawing */\n extractTooltipForPath(pnt) {\n if (this.bins === null) return null;\n\n const best = this.findBestBin(pnt);\n\n if (!best || (!best.bin && !best.closeline)) return null;\n\n const islines = (this.draw_kind === 'lines'),\n ismark = (this.draw_kind === 'mark'),\n pmain = this.get_main(),\n funcs = pmain.getGrFuncs(this.options.second_x, this.options.second_y),\n gr = this.getGraph(),\n res = { name: gr.fName, title: gr.fTitle,\n x: best.bin ? funcs.grx(best.bin.x) : best.linex,\n y: best.bin ? funcs.gry(best.bin.y) : best.liney,\n color1: this.lineatt.color,\n lines: this.getTooltips(best.bin),\n usepath: true };\n\n res.user_info = { obj: gr, name: gr.fName, bin: 0, cont: 0, grx: res.x, gry: res.y };\n\n res.ismark = ismark;\n res.islines = islines;\n\n if (best.closeline) {\n res.menu = res.exact = true;\n res.menu_dist = best.linedist;\n } else if (best.bin) {\n if (this.options.EF && islines) {\n res.gry1 = funcs.gry(best.bin.y - best.bin.eylow);\n res.gry2 = funcs.gry(best.bin.y + best.bin.eyhigh);\n } else\n res.gry1 = res.gry2 = funcs.gry(best.bin.y);\n\n\n res.binindx = best.indx;\n res.bin = best.bin;\n res.radius = best.radius;\n res.user_info.bin = best.indx;\n res.user_info.cont = best.bin.y;\n\n res.exact = (Math.abs(pnt.x - res.x) <= best.radius) &&\n ((Math.abs(pnt.y - res.gry1) <= best.radius) || (Math.abs(pnt.y - res.gry2) <= best.radius));\n\n res.menu = res.exact;\n res.menu_dist = Math.sqrt((pnt.x-res.x)**2 + Math.min(Math.abs(pnt.y-res.gry1), Math.abs(pnt.y-res.gry2))**2);\n }\n\n if (this.fillatt?.used && !this.fillatt?.empty())\n res.color2 = this.fillatt.getFillColor();\n\n if (!islines) {\n res.color1 = this.getColor(gr.fMarkerColor);\n if (!res.color2) res.color2 = res.color1;\n }\n\n return res;\n }\n\n /** @summary Show tooltip for path drawing */\n showTooltipForPath(hint) {\n let ttbin = this.draw_g?.selectChild('.tooltip_bin');\n\n if (!hint?.bin || !this.draw_g) {\n ttbin?.remove();\n return;\n }\n\n if (ttbin.empty())\n ttbin = this.draw_g.append('svg:g').attr('class', 'tooltip_bin');\n\n hint.changed = ttbin.property('current_bin') !== hint.bin;\n\n if (hint.changed) {\n ttbin.selectAll('*').remove(); // first delete all children\n ttbin.property('current_bin', hint.bin);\n\n if (hint.ismark) {\n ttbin.append('svg:rect')\n .style('pointer-events', 'none')\n .call(addHighlightStyle)\n .style('opacity', '0.3')\n .attr('x', Math.round(hint.x - hint.radius))\n .attr('y', Math.round(hint.y - hint.radius))\n .attr('width', 2*hint.radius)\n .attr('height', 2*hint.radius);\n } else {\n ttbin.append('svg:circle').attr('cy', Math.round(hint.gry1));\n if (Math.abs(hint.gry1-hint.gry2) > 1)\n ttbin.append('svg:circle').attr('cy', Math.round(hint.gry2));\n\n const elem = ttbin.selectAll('circle')\n .attr('r', hint.radius)\n .attr('cx', Math.round(hint.x));\n\n if (!hint.islines)\n elem.style('stroke', hint.color1 === 'black' ? 'green' : 'black').style('fill', 'none');\n else {\n if (this.options.Line || this.options.Curve)\n elem.call(this.lineatt.func);\n else\n elem.style('stroke', 'black');\n if (this.options.Fill)\n elem.call(this.fillatt.func);\n else\n elem.style('fill', 'none');\n }\n }\n }\n }\n\n /** @summary Check if graph moving is enabled */\n moveEnabled() {\n return this.testEditable();\n }\n\n /** @summary Start moving of TGraph */\n moveStart(x, y) {\n this.pos_dx = this.pos_dy = 0;\n this.move_funcs = this.get_main().getGrFuncs(this.options.second_x, this.options.second_y);\n const hint = this.extractTooltip({ x, y });\n if (hint && hint.exact && (hint.binindx !== undefined)) {\n this.move_binindx = hint.binindx;\n this.move_bin = hint.bin;\n this.move_x0 = this.move_funcs.grx(this.move_bin.x);\n this.move_y0 = this.move_funcs.gry(this.move_bin.y);\n } else\n delete this.move_binindx;\n }\n\n /** @summary Perform moving */\n moveDrag(dx, dy) {\n this.pos_dx += dx;\n this.pos_dy += dy;\n\n if (this.move_binindx === undefined)\n makeTranslate(this.draw_g, this.pos_dx, this.pos_dy);\n else if (this.move_funcs && this.move_bin) {\n this.move_bin.x = this.move_funcs.revertAxis('x', this.move_x0 + this.pos_dx);\n this.move_bin.y = this.move_funcs.revertAxis('y', this.move_y0 + this.pos_dy);\n this.drawGraph();\n }\n }\n\n /** @summary Complete moving */\n moveEnd(not_changed) {\n const graph = this.getGraph(), last = graph?.fNpoints-1;\n let exec = '';\n\n const changeBin = bin => {\n exec += `SetPoint(${bin.indx},${bin.x},${bin.y});;`;\n graph.fX[bin.indx] = bin.x;\n graph.fY[bin.indx] = bin.y;\n if ((bin.indx === 0) && this._cutg_lastsame) {\n exec += `SetPoint(${last},${bin.x},${bin.y});;`;\n graph.fX[last] = bin.x;\n graph.fY[last] = bin.y;\n }\n };\n\n if (this.move_binindx === undefined) {\n this.draw_g.attr('transform', null);\n\n if (this.move_funcs && this.bins && !not_changed) {\n for (let k = 0; k < this.bins.length; ++k) {\n const bin = this.bins[k];\n bin.x = this.move_funcs.revertAxis('x', this.move_funcs.grx(bin.x) + this.pos_dx);\n bin.y = this.move_funcs.revertAxis('y', this.move_funcs.gry(bin.y) + this.pos_dy);\n changeBin(bin);\n }\n if (graph.$redraw_pad)\n this.redrawPad();\n else\n this.drawGraph();\n }\n } else {\n changeBin(this.move_bin);\n delete this.move_binindx;\n if (graph.$redraw_pad)\n this.redrawPad();\n }\n\n delete this.move_funcs;\n\n if (exec && !not_changed)\n this.submitCanvExec(exec);\n }\n\n /** @summary Fill option object used in TWebCanvas */\n fillWebObjectOptions(res) {\n if (this._auto_exec && res) {\n res.fcust = 'auto_exec:' + this._auto_exec;\n delete this._auto_exec;\n }\n }\n\n /** @summary Fill context menu */\n fillContextMenuItems(menu) {\n if (!this.snapid)\n menu.addchk(this.testEditable(), 'Editable', () => { this.testEditable('toggle'); this.drawGraph(); });\n }\n\n /** @summary Execute menu command\n * @private */\n executeMenuCommand(method, args) {\n if (super.executeMenuCommand(method, args)) return true;\n\n const canp = this.getCanvPainter(), pmain = this.get_main();\n\n if ((method.fName === 'RemovePoint') || (method.fName === 'InsertPoint')) {\n if (!canp || canp._readonly) return true; // ignore function\n\n const pnt = isFunc(pmain?.getLastEventPos) ? pmain.getLastEventPos() : null,\n hint = this.extractTooltip(pnt);\n\n if (method.fName === 'InsertPoint') {\n if (pnt) {\n const funcs = pmain.getGrFuncs(this.options.second_x, this.options.second_y),\n userx = funcs.revertAxis('x', pnt.x) ?? 0,\n usery = funcs.revertAxis('y', pnt.y) ?? 0;\n this.submitCanvExec(`AddPoint(${userx.toFixed(3)}, ${usery.toFixed(3)})`, method.$execid);\n }\n } else if (method.$execid && (hint?.binindx !== undefined))\n this.submitCanvExec(`RemovePoint(${hint.binindx})`, method.$execid);\n\n\n return true; // call is processed\n }\n\n return false;\n }\n\n /** @summary Update object members\n * @private */\n _updateMembers(graph, obj) {\n graph.fBits = obj.fBits;\n graph.fTitle = obj.fTitle;\n graph.fX = obj.fX;\n graph.fY = obj.fY;\n graph.fNpoints = obj.fNpoints;\n graph.fMinimum = obj.fMinimum;\n graph.fMaximum = obj.fMaximum;\n\n const o = this.options;\n\n if (this.snapid !== undefined)\n o._pfc = o._plc = o._pmc = 0; // auto colors should be processed in web canvas\n\n if (!o._pfc)\n graph.fFillColor = obj.fFillColor;\n graph.fFillStyle = obj.fFillStyle;\n if (!o._plc)\n graph.fLineColor = obj.fLineColor;\n graph.fLineStyle = obj.fLineStyle;\n graph.fLineWidth = obj.fLineWidth;\n if (!o._pmc)\n graph.fMarkerColor = obj.fMarkerColor;\n graph.fMarkerSize = obj.fMarkerSize;\n graph.fMarkerStyle = obj.fMarkerStyle;\n }\n\n /** @summary Update TGraph object */\n updateObject(obj, opt) {\n if (!this.matchObjectType(obj)) return false;\n\n if (opt && (opt !== this.options.original))\n this.decodeOptions(opt);\n\n this._updateMembers(this.getObject(), obj);\n\n this.createBins();\n\n delete this.$redraw_hist;\n\n // if our own histogram was used as axis drawing, we need update histogram as well\n if (this.axes_draw) {\n const histo = this.createHistogram(),\n hist_painter = this.getMainPainter();\n if (hist_painter?.isSecondary(this)) {\n hist_painter.updateObject(histo, this.options.Axis);\n this.$redraw_hist = true;\n }\n }\n\n this._funcHandler = new FunctionsHandler(this, this.getPadPainter(), obj.fFunctions);\n\n return true;\n }\n\n /** @summary Checks if it makes sense to zoom inside specified axis range\n * @desc allow to zoom TGraph only when at least one point in the range */\n canZoomInside(axis, min, max) {\n const gr = this.getGraph();\n if (!gr || (axis !== (this.options.pos3d ? 'y' : 'x'))) return false;\n\n for (let n = 0; n < gr.fNpoints; ++n)\n if ((min < gr.fX[n]) && (gr.fX[n] < max)) return true;\n\n return false;\n }\n\n /** @summary Process click on graph-defined buttons */\n clickButton(funcname) {\n if (funcname !== 'ToggleZoom') return false;\n\n if ((this.xmin === this.xmax) && (this.ymin === this.ymax)) return false;\n\n return this.getFramePainter()?.zoom(this.xmin, this.xmax, this.ymin, this.ymax);\n }\n\n /** @summary Find TF1/TF2 in TGraph list of functions */\n findFunc() {\n return this.getGraph()?.fFunctions?.arr?.find(func => (func._typename === clTF1) || (func._typename === clTF2));\n }\n\n /** @summary Find stat box in TGraph list of functions */\n findStat() {\n return this.getGraph()?.fFunctions?.arr?.find(func => (func._typename === clTPaveStats) && (func.fName === 'stats'));\n }\n\n /** @summary Create stat box */\n createStat() {\n const func = this.findFunc();\n if (!func) return null;\n\n let stats = this.findStat();\n if (stats) return stats;\n\n // do not create stats box when drawing canvas\n if (this.getCanvPainter()?.normal_canvas) return null;\n\n this.create_stats = true;\n\n const st = gStyle;\n\n stats = create(clTPaveStats);\n Object.assign(stats, { fName: 'stats', fOptStat: 0, fOptFit: st.fOptFit || 111, fBorderSize: 1,\n fX1NDC: st.fStatX - st.fStatW, fY1NDC: st.fStatY - st.fStatH, fX2NDC: st.fStatX, fY2NDC: st.fStatY,\n fFillColor: st.fStatColor, fFillStyle: st.fStatStyle });\n\n stats.fTextAngle = 0;\n stats.fTextSize = st.fStatFontSize; // 9 ??\n stats.fTextAlign = 12;\n stats.fTextColor = st.fStatTextColor;\n stats.fTextFont = st.fStatFont;\n\n stats.AddText(func.fName);\n\n // while TF1 was found, one can be sure that stats is existing\n this.getGraph().fFunctions.Add(stats);\n\n return stats;\n }\n\n /** @summary Fill statistic */\n fillStatistic(stat, _dostat, dofit) {\n const func = this.findFunc();\n\n if (!func || !dofit) return false;\n\n stat.clearPave();\n\n stat.fillFunctionStat(func, (dofit === 1) ? 111 : dofit, 1);\n\n return true;\n }\n\n /** @summary Draw axis histogram\n * @private */\n async drawAxisHisto() {\n const histo = this.createHistogram();\n return TH1Painter.draw(this.getDom(), histo, this.options.Axis);\n }\n\n /** @summary Draw TGraph\n * @private */\n static async _drawGraph(painter, opt) {\n painter.decodeOptions(opt, true);\n painter.createBins();\n painter.createStat();\n const graph = painter.getGraph();\n if (!settings.DragGraphs && graph && !graph.TestBit(kNotEditable))\n graph.InvertBit(kNotEditable);\n\n let promise = Promise.resolve();\n\n if ((!painter.getMainPainter() || painter.options.second_x || painter.options.second_y) && painter.options.Axis) {\n promise = painter.drawAxisHisto().then(hist_painter => {\n hist_painter?.setSecondaryId(painter, 'hist');\n painter.axes_draw = !!hist_painter;\n });\n }\n\n return promise.then(() => {\n painter.addToPadPrimitives();\n return painter.drawGraph();\n }).then(() => {\n const handler = new FunctionsHandler(painter, painter.getPadPainter(), graph.fFunctions, true);\n return handler.drawNext(0); // returns painter\n });\n }\n\n static async draw(dom, graph, opt) {\n return TGraphPainter._drawGraph(new TGraphPainter(dom, graph), opt);\n }\n\n} // class TGraphPainter\n\nexport { clTGraphAsymmErrors, TGraphPainter };\n"],"x_google_ignoreList":[0]} \ No newline at end of file +{"version":3,"file":"679.ff9d576f88a20f40.js","mappings":"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","names":["kNotEditable","BIT","clTGraphErrors","clTGraphAsymmErrors","clTGraphBentErrors","clTGraphMultiErrors","TGraphPainter","ObjectPainter","constructor","dom","graph","super","this","axes_draw","bins","xmin","ymin","xmax","ymax","wheel_zoomy","is_bent","_typename","has_errors","match","getGraph","getObject","getHistogram","fHistogram","setHistogram","histo","obj","redraw","_this","_asyncToGenerator","promise","Promise","resolve","$redraw_hist","hist_painter","getMainPainter","isSecondary","then","drawGraph","res","_funcHandler","drawNext","cleanup","interactive_bin","get_gme","decodeOptions","opt","first_time","isStr","indexOf","slice","is_gme","has_main","blocks_gme","options","decodeBlock","d","Object","assign","Line","Curve","Rect","Mark","Bar","OutRange","EF","Fill","MainError","Ends","ScaleErrX","check","partAsFloat","Errors","Axis","NoOpt","PadStats","PadPalette","original","second_x","second_y","individual_styles","split","shift","_a","DrawOptions","hopt","PadDrawOptions","forEach","name","part","empty","pos3d","partAsInt","_pfc","_plc","_pmc","blocks","skip_errors_x0","skip_errors_y0","undefined","length","fMarkerStyle","matchObjectType","len","fEX","m","k","Math","max","fEY","_cutg","clTCutG","_cutg_lastsame","fNpoints","fX","fY","pad","getPadPainter","getRootPad","fPrimitives","arr","bl","subres","push","extractGmeErrors","nblock","gr","bin","eylow","fEyL","indx","eyhigh","fEyH","createBins","kind","npoints","Array","p","x","y","exlow","exhigh","fExL","fExH","fEXlow","fEXhigh","fEYlow","fEYhigh","min","getHistRangeMargin","createHistogram","set_x","set_y","margin","dx","dy","uxmin","uxmax","minimum","maximum","_not_adjust_hrange","minimum0","maximum0","fMaximum","kNoZoom","fMinimum","_need_2dhist","clTH2I","clTH1I","fName","fBits","kNoStats","_own_histogram","setHistogramTitle","fTitle","fXaxis","fXmin","fXmax","fYaxis","unzoomUserRange","dox","doy","extractAxesProperties","canOptimize","settings","OptimizeDraw","optimizeBins","maxpnt","filter_func","selbins","isFunc","n","step","floor","optbins","needDrawFunc","func","clTPaveStats","TestBit","clTF1","clTF2","getTooltips","lines","funcs","get_main","getGrFuncs","gme","getObjectHint","axisAsText","x_handle","ny","fNYErrors","y_handle","pmain","getFramePainter","grx","gry","pp","rect","getPadRect","width","height","pad_layer","create","clTPad","pw","ph","fX1NDC","fX2NDC","fY1NDC","fY2NDC","getFrameWidth","getFrameHeight","value","fLogx","log10","fUxmin","fX1","fX2","fLogv","fLogy","fUymin","fY1","fY2","revertAxis","v","appendExclusion","is_curve","path","drawbins","excl_width","extrabins","dlen","sqrt","dgrx","dgry","path2","buildSvgCurve","cmd","line","draw_g","append","attr","call","fillatt","style","drawBins","w","h","lineatt","main_block","excl_side","path1","qubic","bins2","draw_kind","close_symbol","calc","elem","curvebins","nodes","pnt","i","grx1","round","gry1","grx0","grx2","gry0","gry2","grdx0","fEXlowd","grdx2","fEXhighd","grdy0","fEYlowd","grdy2","fEYhighd","selectAll","data","enter","makeTranslate","gStyle","fBarWidth","yy0","usefill","fp","fpcol","getFillColor","createAttFill","color","kBlack","kWhite","pattern","std","bar","dw","abs","filter","error_size","lw","fEndErrorSize","bb","vv","hh","vleft","vright","htop","hbottom","mainLine","fMarkerSize","visible","isBatchMode","Tooltip","error","createAttMarker","marker_size","markeratt","getFullSize","resetPos","want_tooltip","fill","hsz","maxnummarker","getMarkerLength","hints_marker","appendQQ","xqmin","scale_xmin","fXq1","xqmax","scale_xmax","fXq2","yqmin","scale_ymin","fYq1","yqmax","scale_ymax","fYq2","makeLine","x1","y1","x2","y2","yxmin","yxmax","latt1","createAttLine","latt2","drawBins3D","console","log","createGraphDrawAttributes","only_check_auto","o","getAutoColor","icolor","$num_graphs","_auto_exec","fFillColor","fLineColor","fMarkerColor","deleteAttr","can_excl","createG","used","fAttLine","fAttFill","sub_g","addMoveHandler","testEditable","assignContextMenu","extractTooltip","extractTooltipForPath","esz","isbar1","msize","findbin","best_dist2","best","each","d3_select","datum","dist2","nproc","marker","matchy","exact","title","color1","d3bin","user_info","cont","color2","menu","menu_dist","binindx","showTooltip","hint","ttrect","selectChild","remove","usepath","showTooltipForPath","addHighlightStyle","changed","property","processTooltipEvent","disabled","findBestBin","islines","dist","bestindx","bestbin","bestdist","radius","IsInside","bin0","posy","linex","liney","linedist","closeline","arg","InvertBit","ismark","getColor","ttbin","moveEnabled","moveStart","pos_dx","pos_dy","move_funcs","move_binindx","move_bin","move_x0","move_y0","moveDrag","moveEnd","not_changed","last","exec","changeBin","$redraw_pad","redrawPad","submitCanvExec","fillWebObjectOptions","fcust","fillContextMenuItems","snapid","addchk","executeMenuCommand","method","args","canp","getCanvPainter","_readonly","getLastEventPos","userx","usery","toFixed","$execid","_updateMembers","fFillStyle","fLineStyle","fLineWidth","updateObject","FunctionsHandler","fFunctions","canZoomInside","axis","clickButton","funcname","zoom","findFunc","find","findStat","createStat","stats","normal_canvas","create_stats","st","fOptStat","fOptFit","fBorderSize","fStatX","fStatW","fStatY","fStatH","fStatColor","fStatStyle","fTextAngle","fTextSize","fStatFontSize","fTextAlign","fTextColor","fStatTextColor","fTextFont","fStatFont","AddText","Add","fillStatistic","stat","_dostat","dofit","clearPave","fillFunctionStat","drawAxisHisto","_this2","TH1Painter","draw","getDom","_drawGraph","painter","DragGraphs","setSecondaryId","addToPadPrimitives"],"ignoreList":[],"sourceRoot":"webpack:///","sources":["../node_modules/jsroot/modules/hist2d/TGraphPainter.mjs"],"sourcesContent":["import { gStyle, BIT, settings, create, createHistogram, setHistogramTitle, isFunc, isStr,\n clTPaveStats, clTCutG, clTH1I, clTH2I, clTF1, clTF2, clTPad, kNoZoom, kNoStats } from '../core.mjs';\nimport { select as d3_select } from '../d3.mjs';\nimport { DrawOptions, buildSvgCurve, makeTranslate, addHighlightStyle } from '../base/BasePainter.mjs';\nimport { ObjectPainter } from '../base/ObjectPainter.mjs';\nimport { FunctionsHandler } from './THistPainter.mjs';\nimport { TH1Painter, PadDrawOptions } from './TH1Painter.mjs';\nimport { kBlack, kWhite } from '../base/colors.mjs';\nimport { addMoveHandler } from '../gui/utils.mjs';\nimport { assignContextMenu } from '../gui/menu.mjs';\n\n\nconst kNotEditable = BIT(18), // bit set if graph is non editable\n clTGraphErrors = 'TGraphErrors',\n clTGraphAsymmErrors = 'TGraphAsymmErrors',\n clTGraphBentErrors = 'TGraphBentErrors',\n clTGraphMultiErrors = 'TGraphMultiErrors';\n\n/**\n * @summary Painter for TGraph object.\n *\n * @private\n */\n\n\nclass TGraphPainter extends ObjectPainter {\n\n constructor(dom, graph) {\n super(dom, graph);\n this.axes_draw = false; // indicate if graph histogram was drawn for axes\n this.bins = null;\n this.xmin = this.ymin = this.xmax = this.ymax = 0;\n this.wheel_zoomy = true;\n this.is_bent = (graph._typename === clTGraphBentErrors);\n this.has_errors = (graph._typename === clTGraphErrors) ||\n (graph._typename === clTGraphMultiErrors) ||\n (graph._typename === clTGraphAsymmErrors) ||\n this.is_bent || graph._typename.match(/^RooHist/);\n }\n\n /** @summary Return drawn graph object */\n getGraph() { return this.getObject(); }\n\n /** @summary Return histogram object used for axis drawings */\n getHistogram() { return this.getObject()?.fHistogram; }\n\n /** @summary Set histogram object to graph */\n setHistogram(histo) {\n const obj = this.getObject();\n if (obj) obj.fHistogram = histo;\n }\n\n /** @summary Redraw graph\n * @desc may redraw histogram which was used to draw axes\n * @return {Promise} for ready */\n async redraw() {\n let promise = Promise.resolve(true);\n\n if (this.$redraw_hist) {\n delete this.$redraw_hist;\n const hist_painter = this.getMainPainter();\n if (hist_painter?.isSecondary(this) && this.axes_draw)\n promise = hist_painter.redraw();\n }\n\n return promise.then(() => this.drawGraph()).then(() => {\n const res = this._funcHandler?.drawNext(0) ?? this;\n delete this._funcHandler;\n return res;\n });\n }\n\n /** @summary Cleanup graph painter */\n cleanup() {\n delete this.interactive_bin; // break mouse handling\n delete this.bins;\n super.cleanup();\n }\n\n /** @summary Returns object if this drawing TGraphMultiErrors object */\n get_gme() {\n const graph = this.getGraph();\n return graph?._typename === clTGraphMultiErrors ? graph : null;\n }\n\n /** @summary Decode options */\n decodeOptions(opt, first_time) {\n if (isStr(opt) && (opt.indexOf('same ') === 0))\n opt = opt.slice(5);\n\n const graph = this.getGraph(),\n is_gme = !!this.get_gme(),\n has_main = first_time ? !!this.getMainPainter() : !this.axes_draw;\n let blocks_gme = [];\n\n if (!this.options) this.options = {};\n\n // decode main draw options for the graph\n const decodeBlock = (d, res) => {\n Object.assign(res, { Line: 0, Curve: 0, Rect: 0, Mark: 0, Bar: 0, OutRange: 0, EF: 0, Fill: 0, MainError: 1, Ends: 1, ScaleErrX: 1 });\n\n if (is_gme && d.check('S=', true)) res.ScaleErrX = d.partAsFloat();\n\n if (d.check('L')) res.Line = 1;\n if (d.check('F')) res.Fill = 1;\n if (d.check('CC')) res.Curve = 2; // draw all points without reduction\n if (d.check('C')) res.Curve = 1;\n if (d.check('*')) res.Mark = 103;\n if (d.check('P0')) res.Mark = 104;\n if (d.check('P')) res.Mark = 1;\n if (d.check('B')) { res.Bar = 1; res.Errors = 0; }\n if (d.check('Z')) { res.Errors = 1; res.Ends = 0; }\n if (d.check('||')) { res.Errors = 1; res.MainError = 0; res.Ends = 1; }\n if (d.check('[]')) { res.Errors = 1; res.MainError = 0; res.Ends = 2; }\n if (d.check('|>')) { res.Errors = 1; res.Ends = 3; }\n if (d.check('>')) { res.Errors = 1; res.Ends = 4; }\n if (d.check('0')) { res.Mark = 1; res.Errors = 1; res.OutRange = 1; }\n if (d.check('1')) if (res.Bar === 1) res.Bar = 2;\n if (d.check('2')) { res.Rect = 1; res.Errors = 0; }\n if (d.check('3')) { res.EF = 1; res.Errors = 0; }\n if (d.check('4')) { res.EF = 2; res.Errors = 0; }\n if (d.check('5')) { res.Rect = 2; res.Errors = 0; }\n if (d.check('X')) res.Errors = 0;\n };\n\n Object.assign(this.options, { Axis: '', NoOpt: 0, PadStats: false, PadPalette: false, original: opt, second_x: false, second_y: false, individual_styles: false });\n\n if (is_gme && opt) {\n if (opt.indexOf(';') > 0) {\n blocks_gme = opt.split(';');\n opt = blocks_gme.shift();\n } else if (opt.indexOf('_') > 0) {\n blocks_gme = opt.split('_');\n opt = blocks_gme.shift();\n }\n }\n\n const res = this.options, _a = 'AXIS;FORCE_TITLE;';\n let d = new DrawOptions(opt), hopt = '';\n\n PadDrawOptions.forEach(name => { if (d.check(name)) hopt += ';' + name; });\n if (d.check('XAXIS_', true)) hopt += ';XAXIS_' + d.part;\n if (d.check('YAXIS_', true)) hopt += ';YAXIS_' + d.part;\n\n if (d.empty()) {\n res.original = has_main ? 'lp' : 'alp';\n d = new DrawOptions(res.original);\n }\n\n if (d.check('NOOPT')) res.NoOpt = 1;\n\n if (d.check('POS3D_', true)) res.pos3d = d.partAsInt() - 0.5;\n\n if (d.check('PFC') && !res._pfc)\n res._pfc = 2;\n if (d.check('PLC') && !res._plc)\n res._plc = 2;\n if (d.check('PMC') && !res._pmc)\n res._pmc = 2;\n\n if (d.check('A')) res.Axis = d.check('I') ? 'A;' : _a; // I means invisible axis\n if (d.check('X+')) { res.Axis += 'X+'; res.second_x = has_main; }\n if (d.check('Y+')) { res.Axis += 'Y+'; res.second_y = has_main; }\n if (d.check('RX')) res.Axis += 'RX';\n if (d.check('RY')) res.Axis += 'RY';\n\n if (is_gme) {\n res.blocks = [];\n res.skip_errors_x0 = res.skip_errors_y0 = false;\n if (d.check('X0')) res.skip_errors_x0 = true;\n if (d.check('Y0')) res.skip_errors_y0 = true;\n }\n\n decodeBlock(d, res);\n\n if (is_gme)\n if (d.check('S')) res.individual_styles = true;\n\n\n // if (d.check('E')) res.Errors = 1; // E option only defined for TGraphPolar\n\n if (res.Errors === undefined)\n res.Errors = this.has_errors && (!is_gme || !blocks_gme.length) ? 1 : 0;\n\n // special case - one could use svg:path to draw many pixels (\n if ((res.Mark === 1) && (graph.fMarkerStyle === 1)) res.Mark = 101;\n\n // if no drawing option is selected and if opt === '' nothing is done.\n if (res.Line + res.Fill + res.Curve + res.Mark + res.Bar + res.EF + res.Rect + res.Errors === 0)\n if (d.empty()) res.Line = 1;\n\n\n if (this.matchObjectType(clTGraphErrors)) {\n const len = graph.fEX.length;\n let m = 0;\n for (let k = 0; k < len; ++k)\n m = Math.max(m, graph.fEX[k], graph.fEY[k]);\n if (m < 1e-100)\n res.Errors = 0;\n }\n\n this._cutg = this.matchObjectType(clTCutG);\n this._cutg_lastsame = this._cutg && (graph.fNpoints > 3) &&\n (graph.fX[0] === graph.fX[graph.fNpoints-1]) && (graph.fY[0] === graph.fY[graph.fNpoints-1]);\n\n if (!res.Axis) {\n // check if axis should be drawn\n // either graph drawn directly or\n // graph is first object in list of primitives\n const pad = this.getPadPainter()?.getRootPad(true);\n if (!pad || (pad?.fPrimitives?.arr[0] === this.getObject())) res.Axis = _a;\n } else if (res.Axis.indexOf('A') < 0)\n res.Axis = _a + res.Axis;\n\n res.Axis += hopt;\n\n for (let bl = 0; bl < blocks_gme.length; ++bl) {\n const subd = new DrawOptions(blocks_gme[bl]), subres = {};\n decodeBlock(subd, subres);\n subres.skip_errors_x0 = res.skip_errors_x0;\n subres.skip_errors_y0 = res.skip_errors_y0;\n res.blocks.push(subres);\n }\n }\n\n /** @summary Extract errors for TGraphMultiErrors */\n extractGmeErrors(nblock) {\n if (!this.bins) return;\n const gr = this.getGraph();\n this.bins.forEach(bin => {\n bin.eylow = gr.fEyL[nblock][bin.indx];\n bin.eyhigh = gr.fEyH[nblock][bin.indx];\n });\n }\n\n /** @summary Create bins for TF1 drawing */\n createBins() {\n const gr = this.getGraph();\n if (!gr) return;\n\n let kind = 0, npoints = gr.fNpoints;\n if (this._cutg && this._cutg_lastsame)\n npoints--;\n\n if (gr._typename === clTGraphErrors)\n kind = 1;\n else if (gr._typename === clTGraphMultiErrors)\n kind = 2;\n else if (gr._typename === clTGraphAsymmErrors || gr._typename === clTGraphBentErrors || gr._typename.match(/^RooHist/))\n kind = 3;\n\n this.bins = new Array(npoints);\n\n for (let p = 0; p < npoints; ++p) {\n const bin = this.bins[p] = { x: gr.fX[p], y: gr.fY[p], indx: p };\n switch (kind) {\n case 1:\n bin.exlow = bin.exhigh = gr.fEX[p];\n bin.eylow = bin.eyhigh = gr.fEY[p];\n break;\n case 2:\n bin.exlow = gr.fExL[p];\n bin.exhigh = gr.fExH[p];\n bin.eylow = gr.fEyL[0][p];\n bin.eyhigh = gr.fEyH[0][p];\n break;\n case 3:\n bin.exlow = gr.fEXlow[p];\n bin.exhigh = gr.fEXhigh[p];\n bin.eylow = gr.fEYlow[p];\n bin.eyhigh = gr.fEYhigh[p];\n break;\n }\n\n if (p === 0) {\n this.xmin = this.xmax = bin.x;\n this.ymin = this.ymax = bin.y;\n }\n\n if (kind > 0) {\n this.xmin = Math.min(this.xmin, bin.x - bin.exlow, bin.x + bin.exhigh);\n this.xmax = Math.max(this.xmax, bin.x - bin.exlow, bin.x + bin.exhigh);\n this.ymin = Math.min(this.ymin, bin.y - bin.eylow, bin.y + bin.eyhigh);\n this.ymax = Math.max(this.ymax, bin.y - bin.eylow, bin.y + bin.eyhigh);\n } else {\n this.xmin = Math.min(this.xmin, bin.x);\n this.xmax = Math.max(this.xmax, bin.x);\n this.ymin = Math.min(this.ymin, bin.y);\n this.ymax = Math.max(this.ymax, bin.y);\n }\n }\n }\n\n /** @summary Return margins for histogram ranges */\n getHistRangeMargin() { return 0.1; }\n\n /** @summary Create histogram for graph\n * @desc graph bins should be created when calling this function\n * @param {boolean} [set_x] - set X axis range\n * @param {boolean} [set_y] - set Y axis range */\n createHistogram(set_x, set_y) {\n if (!set_x && !set_y)\n set_x = set_y = true;\n\n const graph = this.getGraph(),\n xmin = this.xmin,\n margin = this.getHistRangeMargin();\n let xmax = this.xmax, ymin = this.ymin, ymax = this.ymax;\n\n if (xmin >= xmax) xmax = xmin + 1;\n if (ymin >= ymax) ymax = ymin + 1;\n const dx = (xmax - xmin) * margin, dy = (ymax - ymin) * margin;\n let uxmin = xmin - dx, uxmax = xmax + dx,\n minimum = ymin - dy, maximum = ymax + dy;\n\n if (!this._not_adjust_hrange) {\n if ((uxmin < 0) && (xmin >= 0))\n uxmin = xmin * (1 - margin);\n if ((uxmax > 0) && (xmax <= 0))\n uxmax = 0;\n }\n\n const minimum0 = minimum, maximum0 = maximum;\n let histo = this.getHistogram();\n\n if (!histo) {\n histo = this._need_2dhist ? createHistogram(clTH2I, 30, 30) : createHistogram(clTH1I, 100);\n histo.fName = graph.fName + '_h';\n histo.fBits |= kNoStats;\n this._own_histogram = true;\n this.setHistogram(histo);\n } else if ((histo.fMaximum !== kNoZoom) && (histo.fMinimum !== kNoZoom)) {\n minimum = histo.fMinimum;\n maximum = histo.fMaximum;\n }\n\n if (graph.fMinimum !== kNoZoom) minimum = ymin = graph.fMinimum;\n if (graph.fMaximum !== kNoZoom) maximum = graph.fMaximum;\n if ((minimum < 0) && (ymin >= 0)) minimum = (1 - margin)*ymin;\n\n setHistogramTitle(histo, this.getObject().fTitle);\n\n if (set_x) {\n histo.fXaxis.fXmin = uxmin;\n histo.fXaxis.fXmax = uxmax;\n }\n\n if (set_y) {\n histo.fYaxis.fXmin = Math.min(minimum0, minimum);\n histo.fYaxis.fXmax = Math.max(maximum0, maximum);\n histo.fMinimum = minimum;\n histo.fMaximum = maximum;\n }\n\n return histo;\n }\n\n /** @summary Check if user range can be unzommed\n * @desc Used when graph points covers larger range than provided histogram */\n unzoomUserRange(dox, doy /*, doz */) {\n const graph = this.getGraph();\n if (this._own_histogram || !graph) return false;\n\n const histo = this.getHistogram();\n\n dox = dox && histo && ((histo.fXaxis.fXmin > this.xmin) || (histo.fXaxis.fXmax < this.xmax));\n doy = doy && histo && ((histo.fYaxis.fXmin > this.ymin) || (histo.fYaxis.fXmax < this.ymax));\n if (!dox && !doy) return false;\n\n this.createHistogram(dox, doy);\n this.getMainPainter()?.extractAxesProperties(1); // just to enforce ranges extraction\n\n return true;\n }\n\n /** @summary Returns true if graph drawing can be optimize */\n canOptimize() {\n return (settings.OptimizeDraw > 0) && !this.options.NoOpt;\n }\n\n /** @summary Returns optimized bins - if optimization enabled */\n optimizeBins(maxpnt, filter_func) {\n if ((this.bins.length < 30) && !filter_func)\n return this.bins;\n\n let selbins = null;\n if (isFunc(filter_func)) {\n for (let n = 0; n < this.bins.length; ++n) {\n if (filter_func(this.bins[n], n)) {\n if (!selbins) selbins = (n === 0) ? [] : this.bins.slice(0, n);\n } else\n if (selbins) selbins.push(this.bins[n]);\n }\n }\n if (!selbins) selbins = this.bins;\n\n if (!maxpnt) maxpnt = 500000;\n\n if ((selbins.length < maxpnt) || !this.canOptimize()) return selbins;\n let step = Math.floor(selbins.length / maxpnt);\n if (step < 2) step = 2;\n const optbins = [];\n for (let n = 0; n < selbins.length; n+=step)\n optbins.push(selbins[n]);\n\n return optbins;\n }\n\n /** @summary Check if such function should be drawn directly */\n needDrawFunc(graph, func) {\n if (func._typename === clTPaveStats)\n return (func.fName !== 'stats') || !graph.TestBit(kNoStats); // kNoStats is same for graph and histogram\n\n if ((func._typename === clTF1) || (func._typename === clTF2))\n return !func.TestBit(BIT(9)); // TF1::kNotDraw\n\n return true;\n }\n\n /** @summary Returns tooltip for specified bin */\n getTooltips(d) {\n const pmain = this.get_main(), lines = [],\n funcs = pmain.getGrFuncs(this.options.second_x, this.options.second_y),\n gme = this.get_gme();\n\n lines.push(this.getObjectHint());\n\n if (d && funcs) {\n if (d.indx !== undefined)\n lines.push('p = ' + d.indx);\n lines.push('x = ' + funcs.axisAsText('x', d.x), 'y = ' + funcs.axisAsText('y', d.y));\n if (gme)\n lines.push('error x = -' + funcs.axisAsText('x', gme.fExL[d.indx]) + '/+' + funcs.axisAsText('x', gme.fExH[d.indx]));\n else if (this.options.Errors && (funcs.x_handle.kind === 'normal') && (d.exlow || d.exhigh))\n lines.push('error x = -' + funcs.axisAsText('x', d.exlow) + '/+' + funcs.axisAsText('x', d.exhigh));\n\n if (gme) {\n for (let ny = 0; ny < gme.fNYErrors; ++ny)\n lines.push(`error y${ny} = -${funcs.axisAsText('y', gme.fEyL[ny][d.indx])}/+${funcs.axisAsText('y', gme.fEyH[ny][d.indx])}`);\n } else if ((this.options.Errors || (this.options.EF > 0)) && (funcs.y_handle.kind === 'normal') && (d.eylow || d.eyhigh))\n lines.push('error y = -' + funcs.axisAsText('y', d.eylow) + '/+' + funcs.axisAsText('y', d.eyhigh));\n }\n return lines;\n }\n\n /** @summary Provide frame painter for graph\n * @desc If not exists, emulate its behaviour */\n get_main() {\n let pmain = this.getFramePainter();\n\n if (pmain?.grx && pmain?.gry) return pmain;\n\n // FIXME: check if needed, can be removed easily\n const pp = this.getPadPainter(),\n rect = pp?.getPadRect() || { width: 800, height: 600 };\n\n pmain = {\n pad_layer: true,\n pad: pp?.getRootPad(true) ?? create(clTPad),\n pw: rect.width,\n ph: rect.height,\n fX1NDC: 0.1, fX2NDC: 0.9, fY1NDC: 0.1, fY2NDC: 0.9,\n getFrameWidth() { return this.pw; },\n getFrameHeight() { return this.ph; },\n grx(value) {\n if (this.pad.fLogx)\n value = (value > 0) ? Math.log10(value) : this.pad.fUxmin;\n else\n value = (value - this.pad.fX1) / (this.pad.fX2 - this.pad.fX1);\n return value * this.pw;\n },\n gry(value) {\n if (this.pad.fLogv ?? this.pad.fLogy)\n value = (value > 0) ? Math.log10(value) : this.pad.fUymin;\n else\n value = (value - this.pad.fY1) / (this.pad.fY2 - this.pad.fY1);\n return (1 - value) * this.ph;\n },\n revertAxis(name, v) {\n if (name === 'x')\n return v / this.pw * (this.pad.fX2 - this.pad.fX1) + this.pad.fX1;\n if (name === 'y')\n return (1 - v / this.ph) * (this.pad.fY2 - this.pad.fY1) + this.pad.fY1;\n return v;\n },\n getGrFuncs() { return this; }\n };\n\n return pmain.pad ? pmain : null;\n }\n\n /** @summary append exclusion area to created path */\n appendExclusion(is_curve, path, drawbins, excl_width) {\n const extrabins = [];\n for (let n = drawbins.length-1; n >= 0; --n) {\n const bin = drawbins[n],\n dlen = Math.sqrt(bin.dgrx**2 + bin.dgry**2);\n if (dlen > 1e-10) {\n // shift point\n bin.grx += excl_width*bin.dgry/dlen;\n bin.gry -= excl_width*bin.dgrx/dlen;\n }\n extrabins.push(bin);\n }\n\n const path2 = buildSvgCurve(extrabins, { cmd: 'L', line: !is_curve });\n\n this.draw_g.append('svg:path')\n .attr('d', path + path2 + 'Z')\n .call(this.fillatt.func)\n .style('opacity', 0.75);\n }\n\n /** @summary draw TGraph bins with specified options\n * @desc Can be called several times */\n drawBins(funcs, options, draw_g, w, h, lineatt, fillatt, main_block) {\n const graph = this.getGraph();\n if (!graph?.fNpoints) return;\n\n let excl_width = 0, drawbins = null;\n\n if (main_block && lineatt.excl_side) {\n excl_width = lineatt.excl_width;\n if ((lineatt.width > 0) && !options.Line && !options.Curve) options.Line = 1;\n }\n\n if (options.EF) {\n drawbins = this.optimizeBins((options.EF > 1) ? 20000 : 0);\n\n // build lower part\n for (let n = 0; n < drawbins.length; ++n) {\n const bin = drawbins[n];\n bin.grx = funcs.grx(bin.x);\n bin.gry = funcs.gry(bin.y - bin.eylow);\n }\n\n const path1 = buildSvgCurve(drawbins, { line: options.EF < 2, qubic: true }),\n bins2 = [];\n\n for (let n = drawbins.length-1; n >= 0; --n) {\n const bin = drawbins[n];\n bin.gry = funcs.gry(bin.y + bin.eyhigh);\n bins2.push(bin);\n }\n\n // build upper part (in reverse direction)\n const path2 = buildSvgCurve(bins2, { line: options.EF < 2, cmd: 'L', qubic: true });\n\n draw_g.append('svg:path')\n .attr('d', path1 + path2 + 'Z')\n .call(fillatt.func);\n if (main_block)\n this.draw_kind = 'lines';\n }\n\n if (options.Line || options.Fill) {\n let close_symbol = '';\n if (this._cutg) {\n close_symbol = 'Z';\n if (!options.original) options.Fill = 1;\n }\n\n if (options.Fill) {\n close_symbol = 'Z'; // always close area if we want to fill it\n excl_width = 0;\n }\n\n if (!drawbins) drawbins = this.optimizeBins(0);\n\n for (let n = 0; n < drawbins.length; ++n) {\n const bin = drawbins[n];\n bin.grx = funcs.grx(bin.x);\n bin.gry = funcs.gry(bin.y);\n }\n\n const path = buildSvgCurve(drawbins, { line: true, calc: excl_width });\n\n if (excl_width)\n this.appendExclusion(false, path, drawbins, excl_width);\n\n const elem = draw_g.append('svg:path').attr('d', path + close_symbol);\n if (options.Line)\n elem.call(lineatt.func);\n\n if (options.Fill)\n elem.call(fillatt.func);\n else\n elem.style('fill', 'none');\n\n if (main_block)\n this.draw_kind = 'lines';\n }\n\n if (options.Curve) {\n let curvebins = drawbins;\n if ((this.draw_kind !== 'lines') || !curvebins || ((options.Curve === 1) && (curvebins.length > 20000))) {\n curvebins = this.optimizeBins((options.Curve === 1) ? 20000 : 0);\n for (let n = 0; n < curvebins.length; ++n) {\n const bin = curvebins[n];\n bin.grx = funcs.grx(bin.x);\n bin.gry = funcs.gry(bin.y);\n }\n }\n\n const path = buildSvgCurve(curvebins, { qubic: !excl_width });\n if (excl_width)\n this.appendExclusion(true, path, curvebins, excl_width);\n\n draw_g.append('svg:path')\n .attr('d', path)\n .call(lineatt.func)\n .style('fill', 'none');\n if (main_block)\n this.draw_kind = 'lines'; // handled same way as lines\n }\n\n let nodes = null;\n\n if (options.Errors || options.Rect || options.Bar) {\n drawbins = this.optimizeBins(5000, (pnt, i) => {\n const grx = funcs.grx(pnt.x);\n\n // when drawing bars, take all points\n if (!options.Bar && ((grx < 0) || (grx > w))) return true;\n\n const gry = funcs.gry(pnt.y);\n\n if (!options.Bar && !options.OutRange && ((gry < 0) || (gry > h))) return true;\n\n pnt.grx1 = Math.round(grx);\n pnt.gry1 = Math.round(gry);\n\n if (this.has_errors) {\n pnt.grx0 = Math.round(funcs.grx(pnt.x - options.ScaleErrX*pnt.exlow) - grx);\n pnt.grx2 = Math.round(funcs.grx(pnt.x + options.ScaleErrX*pnt.exhigh) - grx);\n pnt.gry0 = Math.round(funcs.gry(pnt.y - pnt.eylow) - gry);\n pnt.gry2 = Math.round(funcs.gry(pnt.y + pnt.eyhigh) - gry);\n\n if (this.is_bent) {\n pnt.grdx0 = Math.round(funcs.gry(pnt.y + graph.fEXlowd[i]) - gry);\n pnt.grdx2 = Math.round(funcs.gry(pnt.y + graph.fEXhighd[i]) - gry);\n pnt.grdy0 = Math.round(funcs.grx(pnt.x + graph.fEYlowd[i]) - grx);\n pnt.grdy2 = Math.round(funcs.grx(pnt.x + graph.fEYhighd[i]) - grx);\n } else\n pnt.grdx0 = pnt.grdx2 = pnt.grdy0 = pnt.grdy2 = 0;\n }\n\n return false;\n });\n\n if (main_block)\n this.draw_kind = 'nodes';\n\n nodes = draw_g.selectAll('.grpoint')\n .data(drawbins)\n .enter()\n .append('svg:g')\n .attr('class', 'grpoint')\n .attr('transform', d => makeTranslate(d.grx1, d.gry1));\n }\n\n if (options.Bar) {\n // calculate bar width\n\n let xmin = 0, xmax = 0;\n for (let i = 0; i < drawbins.length; ++i) {\n if (i === 0)\n xmin = xmax = drawbins[i].grx1;\n else {\n xmin = Math.min(xmin, drawbins[i].grx1);\n xmax = Math.max(xmax, drawbins[i].grx1);\n }\n }\n\n if (drawbins.length === 1)\n drawbins[0].width = w/4; // pathologic case of single bin\n else {\n for (let i = 0; i < drawbins.length; ++i)\n drawbins[i].width = (xmax - xmin) / drawbins.length * gStyle.fBarWidth;\n }\n\n const yy0 = Math.round(funcs.gry(0));\n let usefill = fillatt;\n\n if (main_block) {\n const fp = this.getFramePainter(),\n fpcol = !fp?.fillatt?.empty() ? fp.fillatt.getFillColor() : -1;\n\n if (fpcol === fillatt.getFillColor())\n usefill = this.createAttFill({ color: fpcol === 'white' ? kBlack : kWhite, pattern: 1001, std: false });\n }\n\n nodes.append('svg:path')\n .attr('d', d => {\n d.bar = true; // element drawn as bar\n const dx = d.width > 1 ? Math.round(-d.width/2) : 0,\n dw = d.width > 1 ? Math.round(d.width) : 1,\n dy = (options.Bar !== 1) ? 0 : ((d.gry1 > yy0) ? yy0-d.gry1 : 0),\n dh = (options.Bar !== 1) ? (h > d.gry1 ? h - d.gry1 : 0) : Math.abs(yy0 - d.gry1);\n return `M${dx},${dy}h${dw}v${dh}h${-dw}z`;\n })\n .call(usefill.func);\n }\n\n if (options.Rect) {\n nodes.filter(d => (d.exlow > 0) && (d.exhigh > 0) && (d.eylow > 0) && (d.eyhigh > 0))\n .append('svg:path')\n .attr('d', d => {\n d.rect = true;\n return `M${d.grx0},${d.gry0}H${d.grx2}V${d.gry2}H${d.grx0}Z`;\n })\n .call(fillatt.func)\n .call(options.Rect === 2 ? lineatt.func : () => {});\n }\n\n this.error_size = 0;\n\n if (options.Errors) {\n // to show end of error markers, use line width attribute\n let lw = lineatt.width + gStyle.fEndErrorSize, bb = 0;\n const vv = options.Ends ? `m0,${lw}v${-2*lw}` : '',\n hh = options.Ends ? `m${lw},0h${-2*lw}` : '';\n let vleft = vv, vright = vv, htop = hh, hbottom = hh;\n\n const mainLine = (dx, dy) => {\n if (!options.MainError) return `M${dx},${dy}`;\n const res = 'M0,0';\n if (dx) return res + (dy ? `L${dx},${dy}` : `H${dx}`);\n return dy ? res + `V${dy}` : res;\n };\n\n switch (options.Ends) {\n case 2: // option []\n bb = Math.max(lineatt.width+1, Math.round(lw*0.66));\n vleft = `m${bb},${lw}h${-bb}v${-2*lw}h${bb}`;\n vright = `m${-bb},${lw}h${bb}v${-2*lw}h${-bb}`;\n htop = `m${-lw},${bb}v${-bb}h${2*lw}v${bb}`;\n hbottom = `m${-lw},${-bb}v${bb}h${2*lw}v${-bb}`;\n break;\n case 3: // option |>\n lw = Math.max(lw, Math.round(graph.fMarkerSize*8*0.66));\n bb = Math.max(lineatt.width+1, Math.round(lw*0.66));\n vleft = `l${bb},${lw}v${-2*lw}l${-bb},${lw}`;\n vright = `l${-bb},${lw}v${-2*lw}l${bb},${lw}`;\n htop = `l${-lw},${bb}h${2*lw}l${-lw},${-bb}`;\n hbottom = `l${-lw},${-bb}h${2*lw}l${-lw},${bb}`;\n break;\n case 4: // option >\n lw = Math.max(lw, Math.round(graph.fMarkerSize*8*0.66));\n bb = Math.max(lineatt.width+1, Math.round(lw*0.66));\n vleft = `l${bb},${lw}m0,${-2*lw}l${-bb},${lw}`;\n vright = `l${-bb},${lw}m0,${-2*lw}l${bb},${lw}`;\n htop = `l${-lw},${bb}m${2*lw},0l${-lw},${-bb}`;\n hbottom = `l${-lw},${-bb}m${2*lw},0l${-lw},${bb}`;\n break;\n }\n\n this.error_size = lw;\n\n lw = Math.floor((lineatt.width-1)/2); // one should take into account half of end-cup line width\n\n let visible = nodes.filter(d => (d.exlow > 0) || (d.exhigh > 0) || (d.eylow > 0) || (d.eyhigh > 0));\n if (options.skip_errors_x0 || options.skip_errors_y0)\n visible = visible.filter(d => ((d.x !== 0) || !options.skip_errors_x0) && ((d.y !== 0) || !options.skip_errors_y0));\n\n if (!this.isBatchMode() && settings.Tooltip && main_block) {\n visible.append('svg:path')\n .style('fill', 'none')\n .style('pointer-events', 'visibleFill')\n .attr('d', d => `M${d.grx0},${d.gry0}h${d.grx2-d.grx0}v${d.gry2-d.gry0}h${d.grx0-d.grx2}z`);\n }\n\n visible.append('svg:path')\n .call(lineatt.func)\n .style('fill', 'none')\n .attr('d', d => {\n d.error = true;\n return ((d.exlow > 0) ? mainLine(d.grx0+lw, d.grdx0) + vleft : '') +\n ((d.exhigh > 0) ? mainLine(d.grx2-lw, d.grdx2) + vright : '') +\n ((d.eylow > 0) ? mainLine(d.grdy0, d.gry0-lw) + hbottom : '') +\n ((d.eyhigh > 0) ? mainLine(d.grdy2, d.gry2+lw) + htop : '');\n });\n }\n\n if (options.Mark) {\n // for tooltips use markers only if nodes were not created\n this.createAttMarker({ attr: graph, style: options.Mark - 100 });\n\n this.marker_size = this.markeratt.getFullSize();\n\n this.markeratt.resetPos();\n\n const want_tooltip = !this.isBatchMode() && settings.Tooltip && (!this.markeratt.fill || (this.marker_size < 7)) && !nodes && main_block,\n hsz = Math.max(5, Math.round(this.marker_size*0.7)),\n maxnummarker = 1000000 / (this.markeratt.getMarkerLength() + 7); // let produce SVG at maximum 1MB\n\n let path = '', pnt, grx, gry,\n hints_marker = '', step = 1;\n\n if (!drawbins)\n drawbins = this.optimizeBins(maxnummarker);\n else if (this.canOptimize() && (drawbins.length > 1.5*maxnummarker))\n step = Math.min(2, Math.round(drawbins.length/maxnummarker));\n\n for (let n = 0; n < drawbins.length; n += step) {\n pnt = drawbins[n];\n grx = funcs.grx(pnt.x);\n if ((grx > -this.marker_size) && (grx < w + this.marker_size)) {\n gry = funcs.gry(pnt.y);\n if ((gry > -this.marker_size) && (gry < h + this.marker_size)) {\n path += this.markeratt.create(grx, gry);\n if (want_tooltip) hints_marker += `M${grx-hsz},${gry-hsz}h${2*hsz}v${2*hsz}h${-2*hsz}z`;\n }\n }\n }\n\n if (path) {\n draw_g.append('svg:path')\n .attr('d', path)\n .call(this.markeratt.func);\n if ((nodes === null) && (this.draw_kind === 'none') && main_block)\n this.draw_kind = (options.Mark === 101) ? 'path' : 'mark';\n }\n if (want_tooltip && hints_marker) {\n draw_g.append('svg:path')\n .attr('d', hints_marker)\n .style('fill', 'none')\n .style('pointer-events', 'visibleFill');\n }\n }\n }\n\n /** @summary append TGraphQQ part */\n appendQQ(funcs, graph) {\n const xqmin = Math.max(funcs.scale_xmin, graph.fXq1),\n xqmax = Math.min(funcs.scale_xmax, graph.fXq2),\n yqmin = Math.max(funcs.scale_ymin, graph.fYq1),\n yqmax = Math.min(funcs.scale_ymax, graph.fYq2),\n makeLine = (x1, y1, x2, y2) => `M${funcs.grx(x1)},${funcs.gry(y1)}L${funcs.grx(x2)},${funcs.gry(y2)}`,\n yxmin = (graph.fYq2 - graph.fYq1)*(funcs.scale_xmin-graph.fXq1)/(graph.fXq2-graph.fXq1) + graph.fYq1,\n yxmax = (graph.fYq2-graph.fYq1)*(funcs.scale_xmax-graph.fXq1)/(graph.fXq2-graph.fXq1) + graph.fYq1;\n\n let path2 = '';\n if (yxmin < funcs.scale_ymin) {\n const xymin = (graph.fXq2 - graph.fXq1)*(funcs.scale_ymin-graph.fYq1)/(graph.fYq2-graph.fYq1) + graph.fXq1;\n path2 = makeLine(xymin, funcs.scale_ymin, xqmin, yqmin);\n } else\n path2 = makeLine(funcs.scale_xmin, yxmin, xqmin, yqmin);\n\n\n if (yxmax > funcs.scale_ymax) {\n const xymax = (graph.fXq2-graph.fXq1)*(funcs.scale_ymax-graph.fYq1)/(graph.fYq2-graph.fYq1) + graph.fXq1;\n path2 += makeLine(xqmax, yqmax, xymax, funcs.scale_ymax);\n } else\n path2 += makeLine(xqmax, yqmax, funcs.scale_xmax, yxmax);\n\n\n const latt1 = this.createAttLine({ style: 1, width: 1, color: kBlack, std: false }),\n latt2 = this.createAttLine({ style: 2, width: 1, color: kBlack, std: false });\n\n this.draw_g.append('path')\n .attr('d', makeLine(xqmin, yqmin, xqmax, yqmax))\n .call(latt1.func)\n .style('fill', 'none');\n\n this.draw_g.append('path')\n .attr('d', path2)\n .call(latt2.func)\n .style('fill', 'none');\n }\n\n drawBins3D(/* fp, graph */) {\n console.log('Load ./hist/TGraphPainter.mjs to draw graph in 3D');\n }\n\n /** @summary Create necessary histogram draw attributes */\n createGraphDrawAttributes(only_check_auto) {\n const graph = this.getGraph(), o = this.options;\n if (o._pfc > 1 || o._plc > 1 || o._pmc > 1) {\n const pp = this.getPadPainter();\n if (isFunc(pp?.getAutoColor)) {\n const icolor = pp.getAutoColor(graph.$num_graphs);\n this._auto_exec = ''; // can be reused when sending option back to server\n if (o._pfc > 1) { o._pfc = 1; graph.fFillColor = icolor; this._auto_exec += `SetFillColor(${icolor});;`; delete this.fillatt; }\n if (o._plc > 1) { o._plc = 1; graph.fLineColor = icolor; this._auto_exec += `SetLineColor(${icolor});;`; delete this.lineatt; }\n if (o._pmc > 1) { o._pmc = 1; graph.fMarkerColor = icolor; this._auto_exec += `SetMarkerColor(${icolor});;`; delete this.markeratt; }\n }\n }\n\n if (only_check_auto)\n this.deleteAttr();\n else {\n this.createAttLine({ attr: graph, can_excl: true });\n this.createAttFill({ attr: graph });\n }\n }\n\n /** @summary draw TGraph */\n drawGraph() {\n const pmain = this.get_main(),\n graph = this.getGraph();\n if (!pmain) return;\n\n // special mode for TMultiGraph 3d drawing\n if (this.options.pos3d)\n return this.drawBins3D(pmain, graph);\n\n const is_gme = !!this.get_gme(),\n funcs = pmain.getGrFuncs(this.options.second_x, this.options.second_y),\n w = pmain.getFrameWidth(),\n h = pmain.getFrameHeight();\n\n this.createG(!pmain.pad_layer);\n\n this.createGraphDrawAttributes();\n\n this.fillatt.used = false; // mark used only when really used\n\n this.draw_kind = 'none'; // indicate if special svg:g were created for each bin\n this.marker_size = 0; // indicate if markers are drawn\n const draw_g = is_gme ? this.draw_g.append('svg:g') : this.draw_g;\n\n this.drawBins(funcs, this.options, draw_g, w, h, this.lineatt, this.fillatt, true);\n\n if (graph._typename === 'TGraphQQ')\n this.appendQQ(funcs, graph);\n\n if (is_gme) {\n for (let k = 0; k < graph.fNYErrors; ++k) {\n let lineatt = this.lineatt, fillatt = this.fillatt;\n if (this.options.individual_styles) {\n lineatt = this.createAttLine({ attr: graph.fAttLine[k], std: false });\n fillatt = this.createAttFill({ attr: graph.fAttFill[k], std: false });\n }\n const sub_g = this.draw_g.append('svg:g'),\n options = (k < this.options.blocks.length) ? this.options.blocks[k] : this.options;\n this.extractGmeErrors(k);\n this.drawBins(funcs, options, sub_g, w, h, lineatt, fillatt);\n }\n this.extractGmeErrors(0); // ensure that first block kept at the end\n }\n\n if (!this.isBatchMode()) {\n addMoveHandler(this, this.testEditable());\n assignContextMenu(this);\n }\n }\n\n /** @summary Provide tooltip at specified point */\n extractTooltip(pnt) {\n if (!pnt) return null;\n\n if ((this.draw_kind === 'lines') || (this.draw_kind === 'path') || (this.draw_kind === 'mark'))\n return this.extractTooltipForPath(pnt);\n\n if (this.draw_kind !== 'nodes') return null;\n\n const pmain = this.get_main(),\n height = pmain.getFrameHeight(),\n esz = this.error_size,\n isbar1 = (this.options.Bar === 1),\n funcs = isbar1 ? pmain.getGrFuncs(this.options.second_x, this.options.second_y) : null,\n msize = this.marker_size ? Math.round(this.marker_size/2 + 1.5) : 0;\n let findbin = null, best_dist2 = 1e10, best = null;\n\n this.draw_g.selectAll('.grpoint').each(function() {\n const d = d3_select(this).datum();\n if (d === undefined) return;\n let dist2 = (pnt.x - d.grx1) ** 2;\n if (pnt.nproc === 1) dist2 += (pnt.y - d.gry1) ** 2;\n if (dist2 >= best_dist2) return;\n\n let rect;\n\n if (d.error || d.rect || d.marker) {\n rect = { x1: Math.min(-esz, d.grx0, -msize),\n x2: Math.max(esz, d.grx2, msize),\n y1: Math.min(-esz, d.gry2, -msize),\n y2: Math.max(esz, d.gry0, msize) };\n } else if (d.bar) {\n rect = { x1: -d.width/2, x2: d.width/2, y1: 0, y2: height - d.gry1 };\n\n if (isbar1) {\n const yy0 = funcs.gry(0);\n rect.y1 = (d.gry1 > yy0) ? yy0-d.gry1 : 0;\n rect.y2 = (d.gry1 > yy0) ? 0 : yy0-d.gry1;\n }\n } else\n rect = { x1: -5, x2: 5, y1: -5, y2: 5 };\n\n const matchx = (pnt.x >= d.grx1 + rect.x1) && (pnt.x <= d.grx1 + rect.x2),\n matchy = (pnt.y >= d.gry1 + rect.y1) && (pnt.y <= d.gry1 + rect.y2);\n\n if (matchx && (matchy || (pnt.nproc > 1))) {\n best_dist2 = dist2;\n findbin = this;\n best = rect;\n best.exact = /* matchx && */ matchy;\n }\n });\n\n if (findbin === null) return null;\n\n const d = d3_select(findbin).datum(),\n gr = this.getGraph(),\n res = { name: gr.fName, title: gr.fTitle,\n x: d.grx1, y: d.gry1,\n color1: this.lineatt.color,\n lines: this.getTooltips(d),\n rect: best, d3bin: findbin };\n\n res.user_info = { obj: gr, name: gr.fName, bin: d.indx, cont: d.y, grx: d.grx1, gry: d.gry1 };\n\n if (this.fillatt?.used && !this.fillatt?.empty())\n res.color2 = this.fillatt.getFillColor();\n\n if (best.exact) res.exact = true;\n res.menu = res.exact; // activate menu only when exactly locate bin\n res.menu_dist = 3; // distance always fixed\n res.bin = d;\n res.binindx = d.indx;\n\n return res;\n }\n\n /** @summary Show tooltip */\n showTooltip(hint) {\n let ttrect = this.draw_g?.selectChild('.tooltip_bin');\n\n if (!hint || !this.draw_g) {\n ttrect?.remove();\n return;\n }\n\n if (hint.usepath)\n return this.showTooltipForPath(hint);\n\n const d = d3_select(hint.d3bin).datum();\n\n if (ttrect.empty()) {\n ttrect = this.draw_g.append('svg:rect')\n .attr('class', 'tooltip_bin')\n .style('pointer-events', 'none')\n .call(addHighlightStyle);\n }\n\n hint.changed = ttrect.property('current_bin') !== hint.d3bin;\n\n if (hint.changed) {\n ttrect.attr('x', d.grx1 + hint.rect.x1)\n .attr('width', hint.rect.x2 - hint.rect.x1)\n .attr('y', d.gry1 + hint.rect.y1)\n .attr('height', hint.rect.y2 - hint.rect.y1)\n .style('opacity', '0.3')\n .property('current_bin', hint.d3bin);\n }\n }\n\n /** @summary Process tooltip event */\n processTooltipEvent(pnt) {\n const hint = this.extractTooltip(pnt);\n if (!pnt || !pnt.disabled) this.showTooltip(hint);\n return hint;\n }\n\n /** @summary Find best bin index for specified point */\n findBestBin(pnt) {\n if (!this.bins) return null;\n\n const islines = (this.draw_kind === 'lines'),\n funcs = this.get_main().getGrFuncs(this.options.second_x, this.options.second_y);\n let bestindx = -1,\n bestbin = null,\n bestdist = 1e10,\n dist, grx, gry, n, bin;\n\n for (n = 0; n < this.bins.length; ++n) {\n bin = this.bins[n];\n\n grx = funcs.grx(bin.x);\n gry = funcs.gry(bin.y);\n\n dist = (pnt.x-grx)**2 + (pnt.y-gry)**2;\n\n if (dist < bestdist) {\n bestdist = dist;\n bestbin = bin;\n bestindx = n;\n }\n }\n\n // check last point\n if ((bestdist > 100) && islines) bestbin = null;\n\n let radius = Math.max(this.lineatt.width + 3, 4);\n\n if (this.marker_size > 0) radius = Math.max(this.marker_size, radius);\n\n if (bestbin)\n bestdist = Math.sqrt((pnt.x-funcs.grx(bestbin.x))**2 + (pnt.y-funcs.gry(bestbin.y))**2);\n\n if (!islines && (bestdist > radius)) bestbin = null;\n\n if (!bestbin) bestindx = -1;\n\n const res = { bin: bestbin, indx: bestindx, dist: bestdist, radius: Math.round(radius) };\n\n if (!bestbin && islines) {\n bestdist = 1e10;\n\n const IsInside = (x, x1, x2) => ((x1 >= x) && (x >= x2)) || ((x1 <= x) && (x <= x2));\n\n let bin0 = this.bins[0], grx0 = funcs.grx(bin0.x), gry0, posy = 0;\n for (n = 1; n < this.bins.length; ++n) {\n bin = this.bins[n];\n grx = funcs.grx(bin.x);\n\n if (IsInside(pnt.x, grx0, grx)) {\n // if inside interval, check Y distance\n gry0 = funcs.gry(bin0.y);\n gry = funcs.gry(bin.y);\n\n if (Math.abs(grx - grx0) < 1) {\n // very close x - check only y\n posy = pnt.y;\n dist = IsInside(pnt.y, gry0, gry) ? 0 : Math.min(Math.abs(pnt.y-gry0), Math.abs(pnt.y-gry));\n } else {\n posy = gry0 + (pnt.x - grx0) / (grx - grx0) * (gry - gry0);\n dist = Math.abs(posy - pnt.y);\n }\n\n if (dist < bestdist) {\n bestdist = dist;\n res.linex = pnt.x;\n res.liney = posy;\n }\n }\n\n bin0 = bin;\n grx0 = grx;\n }\n\n if (bestdist < radius*0.5) {\n res.linedist = bestdist;\n res.closeline = true;\n }\n }\n\n return res;\n }\n\n /** @summary Check editable flag for TGraph\n * @desc if arg specified changes or toggles editable flag */\n testEditable(arg) {\n const obj = this.getGraph();\n if (!obj) return false;\n if ((arg === 'toggle') || ((arg !== undefined) && (!arg !== obj.TestBit(kNotEditable))))\n obj.InvertBit(kNotEditable);\n return !obj.TestBit(kNotEditable);\n }\n\n /** @summary Provide tooltip at specified point for path-based drawing */\n extractTooltipForPath(pnt) {\n if (this.bins === null) return null;\n\n const best = this.findBestBin(pnt);\n\n if (!best || (!best.bin && !best.closeline)) return null;\n\n const islines = (this.draw_kind === 'lines'),\n ismark = (this.draw_kind === 'mark'),\n pmain = this.get_main(),\n funcs = pmain.getGrFuncs(this.options.second_x, this.options.second_y),\n gr = this.getGraph(),\n res = { name: gr.fName, title: gr.fTitle,\n x: best.bin ? funcs.grx(best.bin.x) : best.linex,\n y: best.bin ? funcs.gry(best.bin.y) : best.liney,\n color1: this.lineatt.color,\n lines: this.getTooltips(best.bin),\n usepath: true };\n\n res.user_info = { obj: gr, name: gr.fName, bin: 0, cont: 0, grx: res.x, gry: res.y };\n\n res.ismark = ismark;\n res.islines = islines;\n\n if (best.closeline) {\n res.menu = res.exact = true;\n res.menu_dist = best.linedist;\n } else if (best.bin) {\n if (this.options.EF && islines) {\n res.gry1 = funcs.gry(best.bin.y - best.bin.eylow);\n res.gry2 = funcs.gry(best.bin.y + best.bin.eyhigh);\n } else\n res.gry1 = res.gry2 = funcs.gry(best.bin.y);\n\n\n res.binindx = best.indx;\n res.bin = best.bin;\n res.radius = best.radius;\n res.user_info.bin = best.indx;\n res.user_info.cont = best.bin.y;\n\n res.exact = (Math.abs(pnt.x - res.x) <= best.radius) &&\n ((Math.abs(pnt.y - res.gry1) <= best.radius) || (Math.abs(pnt.y - res.gry2) <= best.radius));\n\n res.menu = res.exact;\n res.menu_dist = Math.sqrt((pnt.x-res.x)**2 + Math.min(Math.abs(pnt.y-res.gry1), Math.abs(pnt.y-res.gry2))**2);\n }\n\n if (this.fillatt?.used && !this.fillatt?.empty())\n res.color2 = this.fillatt.getFillColor();\n\n if (!islines) {\n res.color1 = this.getColor(gr.fMarkerColor);\n if (!res.color2) res.color2 = res.color1;\n }\n\n return res;\n }\n\n /** @summary Show tooltip for path drawing */\n showTooltipForPath(hint) {\n let ttbin = this.draw_g?.selectChild('.tooltip_bin');\n\n if (!hint?.bin || !this.draw_g) {\n ttbin?.remove();\n return;\n }\n\n if (ttbin.empty())\n ttbin = this.draw_g.append('svg:g').attr('class', 'tooltip_bin');\n\n hint.changed = ttbin.property('current_bin') !== hint.bin;\n\n if (hint.changed) {\n ttbin.selectAll('*').remove(); // first delete all children\n ttbin.property('current_bin', hint.bin);\n\n if (hint.ismark) {\n ttbin.append('svg:rect')\n .style('pointer-events', 'none')\n .call(addHighlightStyle)\n .style('opacity', '0.3')\n .attr('x', Math.round(hint.x - hint.radius))\n .attr('y', Math.round(hint.y - hint.radius))\n .attr('width', 2*hint.radius)\n .attr('height', 2*hint.radius);\n } else {\n ttbin.append('svg:circle').attr('cy', Math.round(hint.gry1));\n if (Math.abs(hint.gry1-hint.gry2) > 1)\n ttbin.append('svg:circle').attr('cy', Math.round(hint.gry2));\n\n const elem = ttbin.selectAll('circle')\n .attr('r', hint.radius)\n .attr('cx', Math.round(hint.x));\n\n if (!hint.islines)\n elem.style('stroke', hint.color1 === 'black' ? 'green' : 'black').style('fill', 'none');\n else {\n if (this.options.Line || this.options.Curve)\n elem.call(this.lineatt.func);\n else\n elem.style('stroke', 'black');\n if (this.options.Fill)\n elem.call(this.fillatt.func);\n else\n elem.style('fill', 'none');\n }\n }\n }\n }\n\n /** @summary Check if graph moving is enabled */\n moveEnabled() {\n return this.testEditable();\n }\n\n /** @summary Start moving of TGraph */\n moveStart(x, y) {\n this.pos_dx = this.pos_dy = 0;\n this.move_funcs = this.get_main().getGrFuncs(this.options.second_x, this.options.second_y);\n const hint = this.extractTooltip({ x, y });\n if (hint && hint.exact && (hint.binindx !== undefined)) {\n this.move_binindx = hint.binindx;\n this.move_bin = hint.bin;\n this.move_x0 = this.move_funcs.grx(this.move_bin.x);\n this.move_y0 = this.move_funcs.gry(this.move_bin.y);\n } else\n delete this.move_binindx;\n }\n\n /** @summary Perform moving */\n moveDrag(dx, dy) {\n this.pos_dx += dx;\n this.pos_dy += dy;\n\n if (this.move_binindx === undefined)\n makeTranslate(this.draw_g, this.pos_dx, this.pos_dy);\n else if (this.move_funcs && this.move_bin) {\n this.move_bin.x = this.move_funcs.revertAxis('x', this.move_x0 + this.pos_dx);\n this.move_bin.y = this.move_funcs.revertAxis('y', this.move_y0 + this.pos_dy);\n this.drawGraph();\n }\n }\n\n /** @summary Complete moving */\n moveEnd(not_changed) {\n const graph = this.getGraph(), last = graph?.fNpoints-1;\n let exec = '';\n\n const changeBin = bin => {\n exec += `SetPoint(${bin.indx},${bin.x},${bin.y});;`;\n graph.fX[bin.indx] = bin.x;\n graph.fY[bin.indx] = bin.y;\n if ((bin.indx === 0) && this._cutg_lastsame) {\n exec += `SetPoint(${last},${bin.x},${bin.y});;`;\n graph.fX[last] = bin.x;\n graph.fY[last] = bin.y;\n }\n };\n\n if (this.move_binindx === undefined) {\n this.draw_g.attr('transform', null);\n\n if (this.move_funcs && this.bins && !not_changed) {\n for (let k = 0; k < this.bins.length; ++k) {\n const bin = this.bins[k];\n bin.x = this.move_funcs.revertAxis('x', this.move_funcs.grx(bin.x) + this.pos_dx);\n bin.y = this.move_funcs.revertAxis('y', this.move_funcs.gry(bin.y) + this.pos_dy);\n changeBin(bin);\n }\n if (graph.$redraw_pad)\n this.redrawPad();\n else\n this.drawGraph();\n }\n } else {\n changeBin(this.move_bin);\n delete this.move_binindx;\n if (graph.$redraw_pad)\n this.redrawPad();\n }\n\n delete this.move_funcs;\n\n if (exec && !not_changed)\n this.submitCanvExec(exec);\n }\n\n /** @summary Fill option object used in TWebCanvas */\n fillWebObjectOptions(res) {\n if (this._auto_exec && res) {\n res.fcust = 'auto_exec:' + this._auto_exec;\n delete this._auto_exec;\n }\n }\n\n /** @summary Fill context menu */\n fillContextMenuItems(menu) {\n if (!this.snapid)\n menu.addchk(this.testEditable(), 'Editable', () => { this.testEditable('toggle'); this.drawGraph(); });\n }\n\n /** @summary Execute menu command\n * @private */\n executeMenuCommand(method, args) {\n if (super.executeMenuCommand(method, args)) return true;\n\n const canp = this.getCanvPainter(), pmain = this.get_main();\n\n if ((method.fName === 'RemovePoint') || (method.fName === 'InsertPoint')) {\n if (!canp || canp._readonly) return true; // ignore function\n\n const pnt = isFunc(pmain?.getLastEventPos) ? pmain.getLastEventPos() : null,\n hint = this.extractTooltip(pnt);\n\n if (method.fName === 'InsertPoint') {\n if (pnt) {\n const funcs = pmain.getGrFuncs(this.options.second_x, this.options.second_y),\n userx = funcs.revertAxis('x', pnt.x) ?? 0,\n usery = funcs.revertAxis('y', pnt.y) ?? 0;\n this.submitCanvExec(`AddPoint(${userx.toFixed(3)}, ${usery.toFixed(3)})`, method.$execid);\n }\n } else if (method.$execid && (hint?.binindx !== undefined))\n this.submitCanvExec(`RemovePoint(${hint.binindx})`, method.$execid);\n\n\n return true; // call is processed\n }\n\n return false;\n }\n\n /** @summary Update object members\n * @private */\n _updateMembers(graph, obj) {\n graph.fBits = obj.fBits;\n graph.fTitle = obj.fTitle;\n graph.fX = obj.fX;\n graph.fY = obj.fY;\n graph.fNpoints = obj.fNpoints;\n graph.fMinimum = obj.fMinimum;\n graph.fMaximum = obj.fMaximum;\n\n const o = this.options;\n\n if (this.snapid !== undefined)\n o._pfc = o._plc = o._pmc = 0; // auto colors should be processed in web canvas\n\n if (!o._pfc)\n graph.fFillColor = obj.fFillColor;\n graph.fFillStyle = obj.fFillStyle;\n if (!o._plc)\n graph.fLineColor = obj.fLineColor;\n graph.fLineStyle = obj.fLineStyle;\n graph.fLineWidth = obj.fLineWidth;\n if (!o._pmc)\n graph.fMarkerColor = obj.fMarkerColor;\n graph.fMarkerSize = obj.fMarkerSize;\n graph.fMarkerStyle = obj.fMarkerStyle;\n }\n\n /** @summary Update TGraph object */\n updateObject(obj, opt) {\n if (!this.matchObjectType(obj)) return false;\n\n if (opt && (opt !== this.options.original))\n this.decodeOptions(opt);\n\n this._updateMembers(this.getObject(), obj);\n\n this.createBins();\n\n delete this.$redraw_hist;\n\n // if our own histogram was used as axis drawing, we need update histogram as well\n if (this.axes_draw) {\n const histo = this.createHistogram(),\n hist_painter = this.getMainPainter();\n if (hist_painter?.isSecondary(this)) {\n hist_painter.updateObject(histo, this.options.Axis);\n this.$redraw_hist = true;\n }\n }\n\n this._funcHandler = new FunctionsHandler(this, this.getPadPainter(), obj.fFunctions);\n\n return true;\n }\n\n /** @summary Checks if it makes sense to zoom inside specified axis range\n * @desc allow to zoom TGraph only when at least one point in the range */\n canZoomInside(axis, min, max) {\n const gr = this.getGraph();\n if (!gr || (axis !== (this.options.pos3d ? 'y' : 'x'))) return false;\n\n for (let n = 0; n < gr.fNpoints; ++n)\n if ((min < gr.fX[n]) && (gr.fX[n] < max)) return true;\n\n return false;\n }\n\n /** @summary Process click on graph-defined buttons */\n clickButton(funcname) {\n if (funcname !== 'ToggleZoom') return false;\n\n if ((this.xmin === this.xmax) && (this.ymin === this.ymax)) return false;\n\n return this.getFramePainter()?.zoom(this.xmin, this.xmax, this.ymin, this.ymax);\n }\n\n /** @summary Find TF1/TF2 in TGraph list of functions */\n findFunc() {\n return this.getGraph()?.fFunctions?.arr?.find(func => (func._typename === clTF1) || (func._typename === clTF2));\n }\n\n /** @summary Find stat box in TGraph list of functions */\n findStat() {\n return this.getGraph()?.fFunctions?.arr?.find(func => (func._typename === clTPaveStats) && (func.fName === 'stats'));\n }\n\n /** @summary Create stat box */\n createStat() {\n const func = this.findFunc();\n if (!func) return null;\n\n let stats = this.findStat();\n if (stats) return stats;\n\n // do not create stats box when drawing canvas\n if (this.getCanvPainter()?.normal_canvas) return null;\n\n this.create_stats = true;\n\n const st = gStyle;\n\n stats = create(clTPaveStats);\n Object.assign(stats, { fName: 'stats', fOptStat: 0, fOptFit: st.fOptFit || 111, fBorderSize: 1,\n fX1NDC: st.fStatX - st.fStatW, fY1NDC: st.fStatY - st.fStatH, fX2NDC: st.fStatX, fY2NDC: st.fStatY,\n fFillColor: st.fStatColor, fFillStyle: st.fStatStyle });\n\n stats.fTextAngle = 0;\n stats.fTextSize = st.fStatFontSize; // 9 ??\n stats.fTextAlign = 12;\n stats.fTextColor = st.fStatTextColor;\n stats.fTextFont = st.fStatFont;\n\n stats.AddText(func.fName);\n\n // while TF1 was found, one can be sure that stats is existing\n this.getGraph().fFunctions.Add(stats);\n\n return stats;\n }\n\n /** @summary Fill statistic */\n fillStatistic(stat, _dostat, dofit) {\n const func = this.findFunc();\n\n if (!func || !dofit) return false;\n\n stat.clearPave();\n\n stat.fillFunctionStat(func, (dofit === 1) ? 111 : dofit, 1);\n\n return true;\n }\n\n /** @summary Draw axis histogram\n * @private */\n async drawAxisHisto() {\n const histo = this.createHistogram();\n return TH1Painter.draw(this.getDom(), histo, this.options.Axis);\n }\n\n /** @summary Draw TGraph\n * @private */\n static async _drawGraph(painter, opt) {\n painter.decodeOptions(opt, true);\n painter.createBins();\n painter.createStat();\n const graph = painter.getGraph();\n if (!settings.DragGraphs && graph && !graph.TestBit(kNotEditable))\n graph.InvertBit(kNotEditable);\n\n let promise = Promise.resolve();\n\n if ((!painter.getMainPainter() || painter.options.second_x || painter.options.second_y) && painter.options.Axis) {\n promise = painter.drawAxisHisto().then(hist_painter => {\n hist_painter?.setSecondaryId(painter, 'hist');\n painter.axes_draw = !!hist_painter;\n });\n }\n\n return promise.then(() => {\n painter.addToPadPrimitives();\n return painter.drawGraph();\n }).then(() => {\n const handler = new FunctionsHandler(painter, painter.getPadPainter(), graph.fFunctions, true);\n return handler.drawNext(0); // returns painter\n });\n }\n\n static async draw(dom, graph, opt) {\n return TGraphPainter._drawGraph(new TGraphPainter(dom, graph), opt);\n }\n\n} // class TGraphPainter\n\nexport { clTGraphAsymmErrors, TGraphPainter };\n"],"x_google_ignoreList":[0]} \ No newline at end of file diff --git a/docs/696.56744466b7fd4f39.js b/docs/696.96bd697c173d28a0.js similarity index 93% rename from docs/696.56744466b7fd4f39.js rename to docs/696.96bd697c173d28a0.js index 2957c0e5..1178691a 100644 --- a/docs/696.56744466b7fd4f39.js +++ b/docs/696.96bd697c173d28a0.js @@ -1,2 +1,2 @@ -"use strict";(self.webpackChunkphoenix_app=self.webpackChunkphoenix_app||[]).push([[696],{8696:(X,T,p)=>{p.r(T),p.d(T,{RPalettePainter:()=>b,drawBox:()=>U,drawLine:()=>S,drawMarker:()=>Z,drawText:()=>K});var j=p(4882),P=p(8872),f=p(8362),F=p(2843),k=p(1985),B=p(5638),H=p(1990),I=p(7900);function K(){const _=this.getObject(),e=this.getPadPainter(),i=this.v7EvalAttr("onFrame",!1)?e.getFramePainter():null,n=!!i&&this.v7EvalAttr("clipping",!1),t=e.getCoordinate(_.fPos,i),r=this.v7EvalFont("text",{size:12,color:"black",align:22});return this.createG(n?"main_layer":!!i&&"upper_layer"),this.startTextDrawing(r,"font"),this.drawText({x:t.x,y:t.y,text:_.fText,latex:1}),this.finishTextDrawing()}function S(){const _=this.getObject(),e=this.getPadPainter(),i=this.v7EvalAttr("onFrame",!1)?e.getFramePainter():null,n=!!i&&this.v7EvalAttr("clipping",!1),t=e.getCoordinate(_.fP1,i),r=e.getCoordinate(_.fP2,i);this.createG(n?"main_layer":!!i&&"upper_layer"),this.createv7AttLine(),this.draw_g.append("svg:path").attr("d",`M${t.x},${t.y}L${r.x},${r.y}`).call(this.lineatt.func)}function U(){const _=this.getObject(),e=this.getPadPainter(),i=this.v7EvalAttr("onFrame",!1)?e.getFramePainter():null,n=!!i&&this.v7EvalAttr("clipping",!1),t=e.getCoordinate(_.fP1,i),r=e.getCoordinate(_.fP2,i);this.createG(n?"main_layer":!!i&&"upper_layer"),this.createv7AttLine("border_"),this.createv7AttFill(),this.draw_g.append("svg:path").attr("d",`M${t.x},${t.y}H${r.x}V${r.y}H${t.x}Z`).call(this.lineatt.func).call(this.fillatt.func)}function Z(){const _=this.getObject(),e=this.getPadPainter(),i=this.v7EvalAttr("onFrame",!1)?e.getFramePainter():null,n=!!i&&this.v7EvalAttr("clipping",!1),t=e.getCoordinate(_.fP,i);this.createG(n?"main_layer":!!i&&"upper_layer"),this.createv7AttMarker();const r=this.markeratt.create(t.x,t.y);r&&this.draw_g.append("svg:path").attr("d",r).call(this.markeratt.func)}class b extends k.D{getHistPalette(){const e=this.getObject()?.fPalette;return e&&!(0,P.isFunc)(e.getColor)&&(0,P.addMethods)(e,`${P.nsREX}RPalette`),e}drawPalette(e){const i=this.getHistPalette(),n=i.getContour(),t=this.getFramePainter();if(!n)return console.log("no contour - no palette");if(!t)return console.log("no frame painter - no palette");const r=n[0],R=n[n.length-1],c=t.getFrameRect(),y=this.getPadPainter().getPadWidth(),O=this.getPadPainter().getPadHeight(),G=this.v7EvalAttr("visible",!0),l=this.v7EvalAttr("vertical",!0);let C,L,o,d,E=i.full_min,A=i.full_max;if(e){o=e.width,d=e.height;const a={};l?(this.v7AttrChange(a,"margin",(e.x-c.x-c.width)/y),this.v7AttrChange(a,"width",o/y)):(this.v7AttrChange(a,"margin",(e.y-c.y-c.height)/y),this.v7AttrChange(a,"width",d/O)),this.v7SendAttrChanges(a,!1)}else{if(l){const a=this.v7EvalLength("margin",y,.02);C=Math.round(c.x+c.width+a),o=this.v7EvalLength("width",y,.05),L=c.y,d=c.height}else{const a=this.v7EvalLength("margin",O,.02);C=c.x,o=c.width,L=Math.round(c.y+c.height+a),d=this.v7EvalLength("width",O,.05)}(0,F.bk)(this.draw_g,C,L)}let w=this.draw_g.selectChild(".colbtns");if(w.empty()?w=this.draw_g.append("svg:g").attr("class","colbtns"):w.selectAll("*").remove(),!G)return;w.append("svg:path").attr("d",`M0,0H${o}V${d}H0Z`).style("stroke","black").style("fill","none"),(void 0===E||void 0===A)&&(E=r,A=R),l?t.z_handle.configureAxis("zaxis",E,A,r,R,!0,[d,0],-d,{reverse:!1}):t.z_handle.configureAxis("zaxis",E,A,r,R,!1,[0,o],o,{reverse:!1});for(let a=0;at.unzoom("z"))}t.z_handle.maxTickSize=Math.round(.3*o);const $=t.z_handle.drawAxis(this.draw_g,(0,F.bk)(l?o:0,d),l?-1:1);return this.isBatchMode()||e?$:$.then(()=>{if(P.settings.ContextMenu&&this.draw_g.on("contextmenu",s=>{s.stopPropagation(),s.preventDefault(),(0,I.ES)(s,this).then(h=>{h.add("header:Palette"),h.addchk(l,"Vertical",z=>{this.v7SetAttr("vertical",z),this.redrawPad()}),t.z_handle.fillAxisContextMenu(h,"z"),h.show()})}),(0,B.WJ)(this,{x:C,y:L,width:o,height:d,minwidth:20,minheight:20,no_change_x:!l,no_change_y:l,redraw:s=>this.drawPalette(s)}),!P.settings.Zooming)return;let g,x,D,v,a=!1,m=0,u=0;const V=s=>{if(!a)return;if(s.preventDefault(),v=(0,f.Wn)(s,this.draw_g.node()),D)return t.z_handle.processLabelsMove("move",v);u=l?Math.min(Math.max(v[1],0),d):Math.min(Math.max(v[0],0),o);const h=Math.abs(u-m);!x&&h>1&&(g.style("display",null),x=!0),l?g.attr("y",Math.min(m,u)).attr("height",h):g.attr("x",Math.min(m,u)).attr("width",h)},J=s=>{if(a)if(s.preventDefault(),(0,f.Lt)(window).on("mousemove.colzoomRect",null).on("mouseup.colzoomRect",null),g.remove(),g=null,a=!1,D)t.z_handle.processLabelsMove("stop",v);else{const h=t.z_handle.func,z=h.invert(m),M=h.invert(u);this.getFramePainter().zoom("z",Math.min(z,M),Math.max(z,M))}},Q=s=>{a||(a=!0,s.preventDefault(),s.stopPropagation(),v=(0,f.Wn)(s,this.draw_g.node()),m=u=v[l?1:0],x=!1,D=!1,g=w.append("svg:rect").attr("class","zoom").attr("id","colzoomRect").style("display","none"),l?g.attr("x",0).attr("width",o).attr("y",m).attr("height",1):g.attr("x",m).attr("width",1).attr("y",0).attr("height",d),(0,f.Lt)(window).on("mousemove.colzoomRect",V).on("mouseup.colzoomRect",J,!0),setTimeout(()=>{!x&&a&&(D=t.z_handle.processLabelsMove("start",v))},500))},W=()=>{this.draw_g.selectAll(".axis_zoom, .axis_labels").on("mousedown",Q).on("dblclick",()=>t.unzoom("z")),P.settings.ZoomWheel&&this.draw_g.on("wheel",s=>{s.stopPropagation(),s.preventDefault();const h=(0,f.Wn)(s,this.draw_g.node()),M=t.z_handle.analyzeWheelEvent(s,l?1-h[1]/d:h[0]/o);M.changed&&t.zoom("z",M.min,M.max)})};t.z_handle.setAfterDrawHandler(W),W()})}static draw(e,i,n){return(0,j.A)(function*(){const t=new b(e,i,n,"palette");return(0,H.ensureRCanvas)(t,!1).then(()=>(t.createG(),t))})()}}}}]); -//# sourceMappingURL=696.56744466b7fd4f39.js.map \ No newline at end of file +"use strict";(self.webpackChunkphoenix_app=self.webpackChunkphoenix_app||[]).push([[696],{8696:(X,T,p)=>{p.r(T),p.d(T,{RPalettePainter:()=>b,drawBox:()=>S,drawLine:()=>K,drawMarker:()=>Z,drawText:()=>I});var j=p(4882),P=p(8872),f=p(8362),F=p(2843),k=p(1985),B=p(5638),H=p(1990),U=p(7900);function I(){const _=this.getObject(),e=this.getPadPainter(),i=this.v7EvalAttr("onFrame",!1)?e.getFramePainter():null,n=!!i&&this.v7EvalAttr("clipping",!1),t=e.getCoordinate(_.fPos,i),r=this.v7EvalFont("text",{size:12,color:"black",align:22});return this.createG(n?"main_layer":!!i&&"upper_layer"),this.startTextDrawing(r,"font"),this.drawText({x:t.x,y:t.y,text:_.fText,latex:1}),this.finishTextDrawing()}function K(){const _=this.getObject(),e=this.getPadPainter(),i=this.v7EvalAttr("onFrame",!1)?e.getFramePainter():null,n=!!i&&this.v7EvalAttr("clipping",!1),t=e.getCoordinate(_.fP1,i),r=e.getCoordinate(_.fP2,i);this.createG(n?"main_layer":!!i&&"upper_layer"),this.createv7AttLine(),this.draw_g.append("svg:path").attr("d",`M${t.x},${t.y}L${r.x},${r.y}`).call(this.lineatt.func)}function S(){const _=this.getObject(),e=this.getPadPainter(),i=this.v7EvalAttr("onFrame",!1)?e.getFramePainter():null,n=!!i&&this.v7EvalAttr("clipping",!1),t=e.getCoordinate(_.fP1,i),r=e.getCoordinate(_.fP2,i);this.createG(n?"main_layer":!!i&&"upper_layer"),this.createv7AttLine("border_"),this.createv7AttFill(),this.draw_g.append("svg:path").attr("d",`M${t.x},${t.y}H${r.x}V${r.y}H${t.x}Z`).call(this.lineatt.func).call(this.fillatt.func)}function Z(){const _=this.getObject(),e=this.getPadPainter(),i=this.v7EvalAttr("onFrame",!1)?e.getFramePainter():null,n=!!i&&this.v7EvalAttr("clipping",!1),t=e.getCoordinate(_.fP,i);this.createG(n?"main_layer":!!i&&"upper_layer"),this.createv7AttMarker();const r=this.markeratt.create(t.x,t.y);r&&this.draw_g.append("svg:path").attr("d",r).call(this.markeratt.func)}class b extends k.D{getHistPalette(){const e=this.getObject()?.fPalette;return e&&!(0,P.isFunc)(e.getColor)&&(0,P.addMethods)(e,`${P.nsREX}RPalette`),e}drawPalette(e){const i=this.getHistPalette(),n=i.getContour(),t=this.getFramePainter();if(!n)return console.log("no contour - no palette");if(!t)return console.log("no frame painter - no palette");const r=n[0],R=n[n.length-1],c=t.getFrameRect(),y=this.getPadPainter().getPadWidth(),O=this.getPadPainter().getPadHeight(),G=this.v7EvalAttr("visible",!0),l=this.v7EvalAttr("vertical",!0);let C,L,o,d,E=i.full_min,A=i.full_max;if(e){o=e.width,d=e.height;const a={};l?(this.v7AttrChange(a,"margin",(e.x-c.x-c.width)/y),this.v7AttrChange(a,"width",o/y)):(this.v7AttrChange(a,"margin",(e.y-c.y-c.height)/y),this.v7AttrChange(a,"width",d/O)),this.v7SendAttrChanges(a,!1)}else{if(l){const a=this.v7EvalLength("margin",y,.02);C=Math.round(c.x+c.width+a),o=this.v7EvalLength("width",y,.05),L=c.y,d=c.height}else{const a=this.v7EvalLength("margin",O,.02);C=c.x,o=c.width,L=Math.round(c.y+c.height+a),d=this.v7EvalLength("width",O,.05)}(0,F.bk)(this.draw_g,C,L)}let w=this.draw_g.selectChild(".colbtns");if(w.empty()?w=this.draw_g.append("svg:g").attr("class","colbtns"):w.selectAll("*").remove(),!G)return;w.append("svg:path").attr("d",`M0,0H${o}V${d}H0Z`).style("stroke","black").style("fill","none"),(void 0===E||void 0===A)&&(E=r,A=R),l?t.z_handle.configureAxis("zaxis",E,A,r,R,!0,[d,0],-d,{reverse:!1}):t.z_handle.configureAxis("zaxis",E,A,r,R,!1,[0,o],o,{reverse:!1});for(let a=0;at.unzoom("z"))}t.z_handle.maxTickSize=Math.round(.3*o);const $=t.z_handle.drawAxis(this.draw_g,(0,F.bk)(l?o:0,d),l?-1:1);return this.isBatchMode()||e?$:$.then(()=>{if(P.settings.ContextMenu&&this.draw_g.on("contextmenu",s=>{s.stopPropagation(),s.preventDefault(),(0,U.ES)(s,this).then(h=>{h.add("header:Palette"),h.addchk(l,"Vertical",z=>{this.v7SetAttr("vertical",z),this.redrawPad()}),t.z_handle.fillAxisContextMenu(h,"z"),h.show()})}),(0,B.WJ)(this,{x:C,y:L,width:o,height:d,minwidth:20,minheight:20,no_change_x:!l,no_change_y:l,redraw:s=>this.drawPalette(s)}),!P.settings.Zooming)return;let g,x,D,v,a=!1,m=0,u=0;const V=s=>{if(!a)return;if(s.preventDefault(),v=(0,f.Wn)(s,this.draw_g.node()),D)return t.z_handle.processLabelsMove("move",v);u=l?Math.min(Math.max(v[1],0),d):Math.min(Math.max(v[0],0),o);const h=Math.abs(u-m);!x&&h>1&&(g.style("display",null),x=!0),l?g.attr("y",Math.min(m,u)).attr("height",h):g.attr("x",Math.min(m,u)).attr("width",h)},J=s=>{if(a)if(s.preventDefault(),(0,f.Lt)(window).on("mousemove.colzoomRect",null).on("mouseup.colzoomRect",null),g.remove(),g=null,a=!1,D)t.z_handle.processLabelsMove("stop",v);else{const h=t.z_handle.func,z=h.invert(m),M=h.invert(u);this.getFramePainter().zoom("z",Math.min(z,M),Math.max(z,M))}},Q=s=>{a||(a=!0,s.preventDefault(),s.stopPropagation(),v=(0,f.Wn)(s,this.draw_g.node()),m=u=v[l?1:0],x=!1,D=!1,g=w.append("svg:rect").attr("class","zoom").attr("id","colzoomRect").style("display","none"),l?g.attr("x",0).attr("width",o).attr("y",m).attr("height",1):g.attr("x",m).attr("width",1).attr("y",0).attr("height",d),(0,f.Lt)(window).on("mousemove.colzoomRect",V).on("mouseup.colzoomRect",J,!0),setTimeout(()=>{!x&&a&&(D=t.z_handle.processLabelsMove("start",v))},500))},W=()=>{this.draw_g.selectAll(".axis_zoom, .axis_labels").on("mousedown",Q).on("dblclick",()=>t.unzoom("z")),P.settings.ZoomWheel&&this.draw_g.on("wheel",s=>{s.stopPropagation(),s.preventDefault();const h=(0,f.Wn)(s,this.draw_g.node()),M=t.z_handle.analyzeWheelEvent(s,l?1-h[1]/d:h[0]/o);M.changed&&t.zoom("z",M.min,M.max)})};t.z_handle.setAfterDrawHandler(W),W()})}static draw(e,i,n){return(0,j.A)(function*(){const t=new b(e,i,n,"palette");return(0,H.ensureRCanvas)(t,!1).then(()=>(t.createG(),t))})()}}}}]); +//# sourceMappingURL=696.96bd697c173d28a0.js.map \ No newline at end of file diff --git a/docs/696.56744466b7fd4f39.js.map b/docs/696.96bd697c173d28a0.js.map similarity index 99% rename from docs/696.56744466b7fd4f39.js.map rename to docs/696.96bd697c173d28a0.js.map index f4a3e903..cfd52f4d 100644 --- a/docs/696.56744466b7fd4f39.js.map +++ b/docs/696.96bd697c173d28a0.js.map @@ -1 +1 @@ -{"version":3,"file":"696.56744466b7fd4f39.js","mappings":"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","names":["drawText","text","this","getObject","pp","getPadPainter","onframe","v7EvalAttr","getFramePainter","clipping","p","getCoordinate","fPos","textFont","v7EvalFont","size","color","align","createG","startTextDrawing","x","y","fText","latex","finishTextDrawing","drawLine","line","p1","fP1","p2","fP2","createv7AttLine","draw_g","append","attr","call","lineatt","func","drawBox","box","createv7AttFill","fillatt","drawMarker","marker","fP","createv7AttMarker","path","markeratt","create","RPalettePainter","RObjectPainter","getHistPalette","pal","fPalette","isFunc","getColor","addMethods","nsREX","drawPalette","drag","palette","contour","getContour","framep","console","log","zmin","zmax","length","rect","getFrameRect","pad_width","getPadWidth","pad_height","getPadHeight","visible","vertical","palette_x","palette_y","palette_width","palette_height","gmin","full_min","gmax","full_max","width","height","changes","v7AttrChange","v7SendAttrChanges","margin","v7EvalLength","Math","round","makeTranslate","g_btns","selectChild","empty","selectAll","remove","style","undefined","z_handle","configureAxis","reverse","i","z0","gr","z1","col","getContourColor","r","property","d3_rgb","darker","toString","isTooltipAllowed","on","d3_select","transition","duration","toFixed","settings","Zooming","unzoom","maxTickSize","promise","drawAxis","isBatchMode","then","ContextMenu","evnt","stopPropagation","preventDefault","createMenu","menu","add","addchk","flag","v7SetAttr","redrawPad","fillAxisContextMenu","show","addDragHandler","minwidth","minheight","no_change_x","no_change_y","redraw","d","zoom_rect","zoom_rect_visible","moving_labels","last_pos","doing_zoom","sel1","sel2","moveRectSel","d3_pointer","node","processLabelsMove","min","max","sz","abs","endRectSel","window","z","invert","z2","zoom","startRectSel","setTimeout","assignHandlers","ZoomWheel","pos","item","analyzeWheelEvent","changed","setAfterDrawHandler","draw","dom","opt","_asyncToGenerator","painter","ensureRCanvas"],"ignoreList":[],"sourceRoot":"webpack:///","sources":["../node_modules/jsroot/modules/draw/v7more.mjs"],"sourcesContent":["import { addMethods, settings, nsREX, isFunc } from '../core.mjs';\nimport { select as d3_select, rgb as d3_rgb, pointer as d3_pointer } from '../d3.mjs';\nimport { makeTranslate } from '../base/BasePainter.mjs';\nimport { RObjectPainter } from '../base/RObjectPainter.mjs';\nimport { addDragHandler } from '../gpad/TFramePainter.mjs';\nimport { ensureRCanvas } from '../gpad/RCanvasPainter.mjs';\nimport { createMenu } from '../gui/menu.mjs';\n\n\n/** @summary draw RText object\n * @private */\nfunction drawText() {\n const text = this.getObject(),\n pp = this.getPadPainter(),\n onframe = this.v7EvalAttr('onFrame', false) ? pp.getFramePainter() : null,\n clipping = onframe ? this.v7EvalAttr('clipping', false) : false,\n p = pp.getCoordinate(text.fPos, onframe),\n textFont = this.v7EvalFont('text', { size: 12, color: 'black', align: 22 });\n\n this.createG(clipping ? 'main_layer' : (onframe ? 'upper_layer' : false));\n\n this.startTextDrawing(textFont, 'font');\n\n this.drawText({ x: p.x, y: p.y, text: text.fText, latex: 1 });\n\n return this.finishTextDrawing();\n}\n\n/** @summary draw RLine object\n * @private */\nfunction drawLine() {\n const line = this.getObject(),\n pp = this.getPadPainter(),\n onframe = this.v7EvalAttr('onFrame', false) ? pp.getFramePainter() : null,\n clipping = onframe ? this.v7EvalAttr('clipping', false) : false,\n p1 = pp.getCoordinate(line.fP1, onframe),\n p2 = pp.getCoordinate(line.fP2, onframe);\n\n this.createG(clipping ? 'main_layer' : (onframe ? 'upper_layer' : false));\n\n this.createv7AttLine();\n\n this.draw_g\n .append('svg:path')\n .attr('d', `M${p1.x},${p1.y}L${p2.x},${p2.y}`)\n .call(this.lineatt.func);\n}\n\n/** @summary draw RBox object\n * @private */\nfunction drawBox() {\n const box = this.getObject(),\n pp = this.getPadPainter(),\n onframe = this.v7EvalAttr('onFrame', false) ? pp.getFramePainter() : null,\n clipping = onframe ? this.v7EvalAttr('clipping', false) : false,\n p1 = pp.getCoordinate(box.fP1, onframe),\n p2 = pp.getCoordinate(box.fP2, onframe);\n\n this.createG(clipping ? 'main_layer' : (onframe ? 'upper_layer' : false));\n\n this.createv7AttLine('border_');\n\n this.createv7AttFill();\n\n this.draw_g\n .append('svg:path')\n .attr('d', `M${p1.x},${p1.y}H${p2.x}V${p2.y}H${p1.x}Z`)\n .call(this.lineatt.func)\n .call(this.fillatt.func);\n}\n\n/** @summary draw RMarker object\n * @private */\nfunction drawMarker() {\n const marker = this.getObject(),\n pp = this.getPadPainter(),\n onframe = this.v7EvalAttr('onFrame', false) ? pp.getFramePainter() : null,\n clipping = onframe ? this.v7EvalAttr('clipping', false) : false,\n p = pp.getCoordinate(marker.fP, onframe);\n\n this.createG(clipping ? 'main_layer' : (onframe ? 'upper_layer' : false));\n\n this.createv7AttMarker();\n\n const path = this.markeratt.create(p.x, p.y);\n\n if (path) {\n this.draw_g.append('svg:path')\n .attr('d', path)\n .call(this.markeratt.func);\n }\n}\n\n/** @summary painter for RPalette\n *\n * @private\n */\n\nclass RPalettePainter extends RObjectPainter {\n\n /** @summary get palette */\n getHistPalette() {\n const pal = this.getObject()?.fPalette;\n\n if (pal && !isFunc(pal.getColor))\n addMethods(pal, `${nsREX}RPalette`);\n\n return pal;\n }\n\n /** @summary Draw palette */\n drawPalette(drag) {\n const palette = this.getHistPalette(),\n contour = palette.getContour(),\n framep = this.getFramePainter();\n\n if (!contour)\n return console.log('no contour - no palette');\n\n // frame painter must be there\n if (!framep)\n return console.log('no frame painter - no palette');\n\n const zmin = contour[0],\n zmax = contour[contour.length-1],\n rect = framep.getFrameRect(),\n pad_width = this.getPadPainter().getPadWidth(),\n pad_height = this.getPadPainter().getPadHeight(),\n visible = this.v7EvalAttr('visible', true),\n vertical = this.v7EvalAttr('vertical', true);\n let gmin = palette.full_min,\n gmax = palette.full_max,\n palette_x, palette_y, palette_width, palette_height;\n\n if (drag) {\n palette_width = drag.width;\n palette_height = drag.height;\n\n const changes = {};\n if (vertical) {\n this.v7AttrChange(changes, 'margin', (drag.x - rect.x - rect.width) / pad_width);\n this.v7AttrChange(changes, 'width', palette_width / pad_width);\n } else {\n this.v7AttrChange(changes, 'margin', (drag.y - rect.y - rect.height) / pad_width);\n this.v7AttrChange(changes, 'width', palette_height / pad_height);\n }\n this.v7SendAttrChanges(changes, false); // do not invoke canvas update on the server\n } else {\n if (vertical) {\n const margin = this.v7EvalLength('margin', pad_width, 0.02);\n palette_x = Math.round(rect.x + rect.width + margin);\n palette_width = this.v7EvalLength('width', pad_width, 0.05);\n palette_y = rect.y;\n palette_height = rect.height;\n } else {\n const margin = this.v7EvalLength('margin', pad_height, 0.02);\n palette_x = rect.x;\n palette_width = rect.width;\n palette_y = Math.round(rect.y + rect.height + margin);\n palette_height = this.v7EvalLength('width', pad_height, 0.05);\n }\n\n // x,y,width,height attributes used for drag functionality\n makeTranslate(this.draw_g, palette_x, palette_y);\n }\n\n let g_btns = this.draw_g.selectChild('.colbtns');\n if (g_btns.empty())\n g_btns = this.draw_g.append('svg:g').attr('class', 'colbtns');\n else\n g_btns.selectAll('*').remove();\n\n if (!visible) return;\n\n g_btns.append('svg:path')\n .attr('d', `M0,0H${palette_width}V${palette_height}H0Z`)\n .style('stroke', 'black')\n .style('fill', 'none');\n\n if ((gmin === undefined) || (gmax === undefined)) { gmin = zmin; gmax = zmax; }\n\n if (vertical)\n framep.z_handle.configureAxis('zaxis', gmin, gmax, zmin, zmax, true, [palette_height, 0], -palette_height, { reverse: false });\n else\n framep.z_handle.configureAxis('zaxis', gmin, gmax, zmin, zmax, false, [0, palette_width], palette_width, { reverse: false });\n\n for (let i = 0; i < contour.length-1; ++i) {\n const z0 = Math.round(framep.z_handle.gr(contour[i])),\n z1 = Math.round(framep.z_handle.gr(contour[i+1])),\n col = palette.getContourColor((contour[i]+contour[i+1])/2),\n\n r = g_btns.append('svg:path')\n .attr('d', vertical ? `M0,${z1}H${palette_width}V${z0}H0Z` : `M${z0},0V${palette_height}H${z1}V0Z`)\n .style('fill', col)\n .style('stroke', col)\n .property('fill0', col)\n .property('fill1', d3_rgb(col).darker(0.5).toString());\n\n if (this.isTooltipAllowed()) {\n r.on('mouseover', function() {\n d3_select(this).transition().duration(100).style('fill', d3_select(this).property('fill1'));\n }).on('mouseout', function() {\n d3_select(this).transition().duration(100).style('fill', d3_select(this).property('fill0'));\n }).append('svg:title').text(contour[i].toFixed(2) + ' - ' + contour[i+1].toFixed(2));\n }\n\n if (settings.Zooming)\n r.on('dblclick', () => framep.unzoom('z'));\n }\n\n framep.z_handle.maxTickSize = Math.round(palette_width*0.3);\n\n const promise = framep.z_handle.drawAxis(this.draw_g, makeTranslate(vertical ? palette_width : 0, palette_height), vertical ? -1 : 1);\n\n if (this.isBatchMode() || drag)\n return promise;\n\n return promise.then(() => {\n if (settings.ContextMenu) {\n this.draw_g.on('contextmenu', evnt => {\n evnt.stopPropagation(); // disable main context menu\n evnt.preventDefault(); // disable browser context menu\n createMenu(evnt, this).then(menu => {\n menu.add('header:Palette');\n menu.addchk(vertical, 'Vertical', flag => { this.v7SetAttr('vertical', flag); this.redrawPad(); });\n framep.z_handle.fillAxisContextMenu(menu, 'z');\n menu.show();\n });\n });\n }\n\n addDragHandler(this, { x: palette_x, y: palette_y, width: palette_width, height: palette_height,\n minwidth: 20, minheight: 20, no_change_x: !vertical, no_change_y: vertical, redraw: d => this.drawPalette(d) });\n\n if (!settings.Zooming) return;\n\n let doing_zoom = false, sel1 = 0, sel2 = 0, zoom_rect, zoom_rect_visible, moving_labels, last_pos;\n\n const moveRectSel = evnt => {\n if (!doing_zoom) return;\n evnt.preventDefault();\n\n last_pos = d3_pointer(evnt, this.draw_g.node());\n\n if (moving_labels)\n return framep.z_handle.processLabelsMove('move', last_pos);\n\n if (vertical)\n sel2 = Math.min(Math.max(last_pos[1], 0), palette_height);\n else\n sel2 = Math.min(Math.max(last_pos[0], 0), palette_width);\n\n const sz = Math.abs(sel2-sel1);\n\n if (!zoom_rect_visible && (sz > 1)) {\n zoom_rect.style('display', null);\n zoom_rect_visible = true;\n }\n\n if (vertical)\n zoom_rect.attr('y', Math.min(sel1, sel2)).attr('height', sz);\n else\n zoom_rect.attr('x', Math.min(sel1, sel2)).attr('width', sz);\n }, endRectSel = evnt => {\n if (!doing_zoom) return;\n\n evnt.preventDefault();\n d3_select(window).on('mousemove.colzoomRect', null)\n .on('mouseup.colzoomRect', null);\n zoom_rect.remove();\n zoom_rect = null;\n doing_zoom = false;\n\n if (moving_labels)\n framep.z_handle.processLabelsMove('stop', last_pos);\n else {\n const z = framep.z_handle.func, z1 = z.invert(sel1), z2 = z.invert(sel2);\n this.getFramePainter().zoom('z', Math.min(z1, z2), Math.max(z1, z2));\n }\n }, startRectSel = evnt => {\n // ignore when touch selection is activated\n if (doing_zoom) return;\n doing_zoom = true;\n\n evnt.preventDefault();\n evnt.stopPropagation();\n\n last_pos = d3_pointer(evnt, this.draw_g.node());\n sel1 = sel2 = last_pos[vertical ? 1 : 0];\n zoom_rect_visible = false;\n moving_labels = false;\n zoom_rect = g_btns\n .append('svg:rect')\n .attr('class', 'zoom')\n .attr('id', 'colzoomRect')\n .style('display', 'none');\n if (vertical)\n zoom_rect.attr('x', 0).attr('width', palette_width).attr('y', sel1).attr('height', 1);\n else\n zoom_rect.attr('x', sel1).attr('width', 1).attr('y', 0).attr('height', palette_height);\n\n d3_select(window).on('mousemove.colzoomRect', moveRectSel)\n .on('mouseup.colzoomRect', endRectSel, true);\n\n setTimeout(() => {\n if (!zoom_rect_visible && doing_zoom)\n moving_labels = framep.z_handle.processLabelsMove('start', last_pos);\n }, 500);\n }, assignHandlers = () => {\n this.draw_g.selectAll('.axis_zoom, .axis_labels')\n .on('mousedown', startRectSel)\n .on('dblclick', () => framep.unzoom('z'));\n\n if (settings.ZoomWheel) {\n this.draw_g.on('wheel', evnt => {\n evnt.stopPropagation();\n evnt.preventDefault();\n\n const pos = d3_pointer(evnt, this.draw_g.node()),\n coord = vertical ? (1 - pos[1] / palette_height) : pos[0] / palette_width,\n\n item = framep.z_handle.analyzeWheelEvent(evnt, coord);\n if (item.changed)\n framep.zoom('z', item.min, item.max);\n });\n }\n };\n\n framep.z_handle.setAfterDrawHandler(assignHandlers);\n\n assignHandlers();\n });\n }\n\n /** @summary draw RPalette object */\n static async draw(dom, palette, opt) {\n const painter = new RPalettePainter(dom, palette, opt, 'palette');\n return ensureRCanvas(painter, false).then(() => {\n painter.createG(); // just create container, real drawing will be done by histogram\n return painter;\n });\n }\n\n} // class RPalettePainter\n\nexport { RPalettePainter, drawText, drawLine, drawBox, drawMarker };\n"],"x_google_ignoreList":[0]} \ No newline at end of file +{"version":3,"file":"696.96bd697c173d28a0.js","mappings":"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","names":["drawText","text","this","getObject","pp","getPadPainter","onframe","v7EvalAttr","getFramePainter","clipping","p","getCoordinate","fPos","textFont","v7EvalFont","size","color","align","createG","startTextDrawing","x","y","fText","latex","finishTextDrawing","drawLine","line","p1","fP1","p2","fP2","createv7AttLine","draw_g","append","attr","call","lineatt","func","drawBox","box","createv7AttFill","fillatt","drawMarker","marker","fP","createv7AttMarker","path","markeratt","create","RPalettePainter","RObjectPainter","getHistPalette","pal","fPalette","isFunc","getColor","addMethods","nsREX","drawPalette","drag","palette","contour","getContour","framep","console","log","zmin","zmax","length","rect","getFrameRect","pad_width","getPadWidth","pad_height","getPadHeight","visible","vertical","palette_x","palette_y","palette_width","palette_height","gmin","full_min","gmax","full_max","width","height","changes","v7AttrChange","v7SendAttrChanges","margin","v7EvalLength","Math","round","makeTranslate","g_btns","selectChild","empty","selectAll","remove","style","undefined","z_handle","configureAxis","reverse","i","z0","gr","z1","col","getContourColor","r","property","d3_rgb","darker","toString","isTooltipAllowed","on","d3_select","transition","duration","toFixed","settings","Zooming","unzoom","maxTickSize","promise","drawAxis","isBatchMode","then","ContextMenu","evnt","stopPropagation","preventDefault","createMenu","menu","add","addchk","flag","v7SetAttr","redrawPad","fillAxisContextMenu","show","addDragHandler","minwidth","minheight","no_change_x","no_change_y","redraw","d","zoom_rect","zoom_rect_visible","moving_labels","last_pos","doing_zoom","sel1","sel2","moveRectSel","d3_pointer","node","processLabelsMove","min","max","sz","abs","endRectSel","window","z","invert","z2","zoom","startRectSel","setTimeout","assignHandlers","ZoomWheel","pos","item","analyzeWheelEvent","changed","setAfterDrawHandler","draw","dom","opt","_asyncToGenerator","painter","ensureRCanvas"],"ignoreList":[],"sourceRoot":"webpack:///","sources":["../node_modules/jsroot/modules/draw/v7more.mjs"],"sourcesContent":["import { addMethods, settings, nsREX, isFunc } from '../core.mjs';\nimport { select as d3_select, rgb as d3_rgb, pointer as d3_pointer } from '../d3.mjs';\nimport { makeTranslate } from '../base/BasePainter.mjs';\nimport { RObjectPainter } from '../base/RObjectPainter.mjs';\nimport { addDragHandler } from '../gpad/TFramePainter.mjs';\nimport { ensureRCanvas } from '../gpad/RCanvasPainter.mjs';\nimport { createMenu } from '../gui/menu.mjs';\n\n\n/** @summary draw RText object\n * @private */\nfunction drawText() {\n const text = this.getObject(),\n pp = this.getPadPainter(),\n onframe = this.v7EvalAttr('onFrame', false) ? pp.getFramePainter() : null,\n clipping = onframe ? this.v7EvalAttr('clipping', false) : false,\n p = pp.getCoordinate(text.fPos, onframe),\n textFont = this.v7EvalFont('text', { size: 12, color: 'black', align: 22 });\n\n this.createG(clipping ? 'main_layer' : (onframe ? 'upper_layer' : false));\n\n this.startTextDrawing(textFont, 'font');\n\n this.drawText({ x: p.x, y: p.y, text: text.fText, latex: 1 });\n\n return this.finishTextDrawing();\n}\n\n/** @summary draw RLine object\n * @private */\nfunction drawLine() {\n const line = this.getObject(),\n pp = this.getPadPainter(),\n onframe = this.v7EvalAttr('onFrame', false) ? pp.getFramePainter() : null,\n clipping = onframe ? this.v7EvalAttr('clipping', false) : false,\n p1 = pp.getCoordinate(line.fP1, onframe),\n p2 = pp.getCoordinate(line.fP2, onframe);\n\n this.createG(clipping ? 'main_layer' : (onframe ? 'upper_layer' : false));\n\n this.createv7AttLine();\n\n this.draw_g\n .append('svg:path')\n .attr('d', `M${p1.x},${p1.y}L${p2.x},${p2.y}`)\n .call(this.lineatt.func);\n}\n\n/** @summary draw RBox object\n * @private */\nfunction drawBox() {\n const box = this.getObject(),\n pp = this.getPadPainter(),\n onframe = this.v7EvalAttr('onFrame', false) ? pp.getFramePainter() : null,\n clipping = onframe ? this.v7EvalAttr('clipping', false) : false,\n p1 = pp.getCoordinate(box.fP1, onframe),\n p2 = pp.getCoordinate(box.fP2, onframe);\n\n this.createG(clipping ? 'main_layer' : (onframe ? 'upper_layer' : false));\n\n this.createv7AttLine('border_');\n\n this.createv7AttFill();\n\n this.draw_g\n .append('svg:path')\n .attr('d', `M${p1.x},${p1.y}H${p2.x}V${p2.y}H${p1.x}Z`)\n .call(this.lineatt.func)\n .call(this.fillatt.func);\n}\n\n/** @summary draw RMarker object\n * @private */\nfunction drawMarker() {\n const marker = this.getObject(),\n pp = this.getPadPainter(),\n onframe = this.v7EvalAttr('onFrame', false) ? pp.getFramePainter() : null,\n clipping = onframe ? this.v7EvalAttr('clipping', false) : false,\n p = pp.getCoordinate(marker.fP, onframe);\n\n this.createG(clipping ? 'main_layer' : (onframe ? 'upper_layer' : false));\n\n this.createv7AttMarker();\n\n const path = this.markeratt.create(p.x, p.y);\n\n if (path) {\n this.draw_g.append('svg:path')\n .attr('d', path)\n .call(this.markeratt.func);\n }\n}\n\n/** @summary painter for RPalette\n *\n * @private\n */\n\nclass RPalettePainter extends RObjectPainter {\n\n /** @summary get palette */\n getHistPalette() {\n const pal = this.getObject()?.fPalette;\n\n if (pal && !isFunc(pal.getColor))\n addMethods(pal, `${nsREX}RPalette`);\n\n return pal;\n }\n\n /** @summary Draw palette */\n drawPalette(drag) {\n const palette = this.getHistPalette(),\n contour = palette.getContour(),\n framep = this.getFramePainter();\n\n if (!contour)\n return console.log('no contour - no palette');\n\n // frame painter must be there\n if (!framep)\n return console.log('no frame painter - no palette');\n\n const zmin = contour[0],\n zmax = contour[contour.length-1],\n rect = framep.getFrameRect(),\n pad_width = this.getPadPainter().getPadWidth(),\n pad_height = this.getPadPainter().getPadHeight(),\n visible = this.v7EvalAttr('visible', true),\n vertical = this.v7EvalAttr('vertical', true);\n let gmin = palette.full_min,\n gmax = palette.full_max,\n palette_x, palette_y, palette_width, palette_height;\n\n if (drag) {\n palette_width = drag.width;\n palette_height = drag.height;\n\n const changes = {};\n if (vertical) {\n this.v7AttrChange(changes, 'margin', (drag.x - rect.x - rect.width) / pad_width);\n this.v7AttrChange(changes, 'width', palette_width / pad_width);\n } else {\n this.v7AttrChange(changes, 'margin', (drag.y - rect.y - rect.height) / pad_width);\n this.v7AttrChange(changes, 'width', palette_height / pad_height);\n }\n this.v7SendAttrChanges(changes, false); // do not invoke canvas update on the server\n } else {\n if (vertical) {\n const margin = this.v7EvalLength('margin', pad_width, 0.02);\n palette_x = Math.round(rect.x + rect.width + margin);\n palette_width = this.v7EvalLength('width', pad_width, 0.05);\n palette_y = rect.y;\n palette_height = rect.height;\n } else {\n const margin = this.v7EvalLength('margin', pad_height, 0.02);\n palette_x = rect.x;\n palette_width = rect.width;\n palette_y = Math.round(rect.y + rect.height + margin);\n palette_height = this.v7EvalLength('width', pad_height, 0.05);\n }\n\n // x,y,width,height attributes used for drag functionality\n makeTranslate(this.draw_g, palette_x, palette_y);\n }\n\n let g_btns = this.draw_g.selectChild('.colbtns');\n if (g_btns.empty())\n g_btns = this.draw_g.append('svg:g').attr('class', 'colbtns');\n else\n g_btns.selectAll('*').remove();\n\n if (!visible) return;\n\n g_btns.append('svg:path')\n .attr('d', `M0,0H${palette_width}V${palette_height}H0Z`)\n .style('stroke', 'black')\n .style('fill', 'none');\n\n if ((gmin === undefined) || (gmax === undefined)) { gmin = zmin; gmax = zmax; }\n\n if (vertical)\n framep.z_handle.configureAxis('zaxis', gmin, gmax, zmin, zmax, true, [palette_height, 0], -palette_height, { reverse: false });\n else\n framep.z_handle.configureAxis('zaxis', gmin, gmax, zmin, zmax, false, [0, palette_width], palette_width, { reverse: false });\n\n for (let i = 0; i < contour.length-1; ++i) {\n const z0 = Math.round(framep.z_handle.gr(contour[i])),\n z1 = Math.round(framep.z_handle.gr(contour[i+1])),\n col = palette.getContourColor((contour[i]+contour[i+1])/2),\n\n r = g_btns.append('svg:path')\n .attr('d', vertical ? `M0,${z1}H${palette_width}V${z0}H0Z` : `M${z0},0V${palette_height}H${z1}V0Z`)\n .style('fill', col)\n .style('stroke', col)\n .property('fill0', col)\n .property('fill1', d3_rgb(col).darker(0.5).toString());\n\n if (this.isTooltipAllowed()) {\n r.on('mouseover', function() {\n d3_select(this).transition().duration(100).style('fill', d3_select(this).property('fill1'));\n }).on('mouseout', function() {\n d3_select(this).transition().duration(100).style('fill', d3_select(this).property('fill0'));\n }).append('svg:title').text(contour[i].toFixed(2) + ' - ' + contour[i+1].toFixed(2));\n }\n\n if (settings.Zooming)\n r.on('dblclick', () => framep.unzoom('z'));\n }\n\n framep.z_handle.maxTickSize = Math.round(palette_width*0.3);\n\n const promise = framep.z_handle.drawAxis(this.draw_g, makeTranslate(vertical ? palette_width : 0, palette_height), vertical ? -1 : 1);\n\n if (this.isBatchMode() || drag)\n return promise;\n\n return promise.then(() => {\n if (settings.ContextMenu) {\n this.draw_g.on('contextmenu', evnt => {\n evnt.stopPropagation(); // disable main context menu\n evnt.preventDefault(); // disable browser context menu\n createMenu(evnt, this).then(menu => {\n menu.add('header:Palette');\n menu.addchk(vertical, 'Vertical', flag => { this.v7SetAttr('vertical', flag); this.redrawPad(); });\n framep.z_handle.fillAxisContextMenu(menu, 'z');\n menu.show();\n });\n });\n }\n\n addDragHandler(this, { x: palette_x, y: palette_y, width: palette_width, height: palette_height,\n minwidth: 20, minheight: 20, no_change_x: !vertical, no_change_y: vertical, redraw: d => this.drawPalette(d) });\n\n if (!settings.Zooming) return;\n\n let doing_zoom = false, sel1 = 0, sel2 = 0, zoom_rect, zoom_rect_visible, moving_labels, last_pos;\n\n const moveRectSel = evnt => {\n if (!doing_zoom) return;\n evnt.preventDefault();\n\n last_pos = d3_pointer(evnt, this.draw_g.node());\n\n if (moving_labels)\n return framep.z_handle.processLabelsMove('move', last_pos);\n\n if (vertical)\n sel2 = Math.min(Math.max(last_pos[1], 0), palette_height);\n else\n sel2 = Math.min(Math.max(last_pos[0], 0), palette_width);\n\n const sz = Math.abs(sel2-sel1);\n\n if (!zoom_rect_visible && (sz > 1)) {\n zoom_rect.style('display', null);\n zoom_rect_visible = true;\n }\n\n if (vertical)\n zoom_rect.attr('y', Math.min(sel1, sel2)).attr('height', sz);\n else\n zoom_rect.attr('x', Math.min(sel1, sel2)).attr('width', sz);\n }, endRectSel = evnt => {\n if (!doing_zoom) return;\n\n evnt.preventDefault();\n d3_select(window).on('mousemove.colzoomRect', null)\n .on('mouseup.colzoomRect', null);\n zoom_rect.remove();\n zoom_rect = null;\n doing_zoom = false;\n\n if (moving_labels)\n framep.z_handle.processLabelsMove('stop', last_pos);\n else {\n const z = framep.z_handle.func, z1 = z.invert(sel1), z2 = z.invert(sel2);\n this.getFramePainter().zoom('z', Math.min(z1, z2), Math.max(z1, z2));\n }\n }, startRectSel = evnt => {\n // ignore when touch selection is activated\n if (doing_zoom) return;\n doing_zoom = true;\n\n evnt.preventDefault();\n evnt.stopPropagation();\n\n last_pos = d3_pointer(evnt, this.draw_g.node());\n sel1 = sel2 = last_pos[vertical ? 1 : 0];\n zoom_rect_visible = false;\n moving_labels = false;\n zoom_rect = g_btns\n .append('svg:rect')\n .attr('class', 'zoom')\n .attr('id', 'colzoomRect')\n .style('display', 'none');\n if (vertical)\n zoom_rect.attr('x', 0).attr('width', palette_width).attr('y', sel1).attr('height', 1);\n else\n zoom_rect.attr('x', sel1).attr('width', 1).attr('y', 0).attr('height', palette_height);\n\n d3_select(window).on('mousemove.colzoomRect', moveRectSel)\n .on('mouseup.colzoomRect', endRectSel, true);\n\n setTimeout(() => {\n if (!zoom_rect_visible && doing_zoom)\n moving_labels = framep.z_handle.processLabelsMove('start', last_pos);\n }, 500);\n }, assignHandlers = () => {\n this.draw_g.selectAll('.axis_zoom, .axis_labels')\n .on('mousedown', startRectSel)\n .on('dblclick', () => framep.unzoom('z'));\n\n if (settings.ZoomWheel) {\n this.draw_g.on('wheel', evnt => {\n evnt.stopPropagation();\n evnt.preventDefault();\n\n const pos = d3_pointer(evnt, this.draw_g.node()),\n coord = vertical ? (1 - pos[1] / palette_height) : pos[0] / palette_width,\n\n item = framep.z_handle.analyzeWheelEvent(evnt, coord);\n if (item.changed)\n framep.zoom('z', item.min, item.max);\n });\n }\n };\n\n framep.z_handle.setAfterDrawHandler(assignHandlers);\n\n assignHandlers();\n });\n }\n\n /** @summary draw RPalette object */\n static async draw(dom, palette, opt) {\n const painter = new RPalettePainter(dom, palette, opt, 'palette');\n return ensureRCanvas(painter, false).then(() => {\n painter.createG(); // just create container, real drawing will be done by histogram\n return painter;\n });\n }\n\n} // class RPalettePainter\n\nexport { RPalettePainter, drawText, drawLine, drawBox, drawMarker };\n"],"x_google_ignoreList":[0]} \ No newline at end of file diff --git a/docs/734.034da95a4df76dcc.js b/docs/734.034da95a4df76dcc.js new file mode 100644 index 00000000..828231e7 --- /dev/null +++ b/docs/734.034da95a4df76dcc.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkphoenix_app=self.webpackChunkphoenix_app||[]).push([[734],{4734:(W,L,x)=>{x.r(L),x.d(L,{TF3Painter:()=>O});var X=x(4882),_=x(8872),H=x(4355),C=x(8868),N=x(1922),b=x(2843),w=x(4615);function B(A,t,e=0){for(let a=A.length-2;a>=0;--a){const n=t[a],l=t[a+1],d=A[a],y=A[a+1];if(n===e)return d;if(l===e)return y;if(n0&&(_.settings.PreferSavedPoints||this.force_saved);const n=this.getFramePainter(),l=this.getPadPainter()?.getRootPad(!0),d=l?.fLogx,y=l?.fLogy,i=n?.getGrFuncs(this.second_x,this.second_y);let r=t.fXmin,P=t.fXmax,z=t.fYmin,S=t.fYmax,M=t.fZmin,c=t.fZmax;i?.zoom_xmin!==i?.zoom_xmax&&(r=Math.min(r,i.zoom_xmin),P=Math.max(P,i.zoom_xmax)),i?.zoom_ymin!==i?.zoom_ymax&&(z=Math.min(z,i.zoom_ymin),S=Math.max(S,i.zoom_ymax)),i?.zoom_zmin!==i?.zoom_zmax&&(M=Math.min(M,i.zoom_zmin),c=Math.max(c,i.zoom_zmax));const D=(m,f)=>{e.fNcells!==(m+2)*(f+2)&&(e.fNcells=(m+2)*(f+2),e.fArray=new Float32Array(e.fNcells)),e.fArray.fill(0),e.fXaxis.fNbins=m,e.fXaxis.fXbins=[],e.fYaxis.fNbins=f,e.fYaxis.fXbins=[],e.fXaxis.fXmin=r,e.fXaxis.fXmax=P,e.fYaxis.fXmin=z,e.fYaxis.fXmax=S,e.fMinimum=M,e.fMaximum=c};if(delete this._fail_eval,!this._use_saved_points){const m=Math.max(t.fNpx,20),f=Math.max(t.fNpy,20),o=Math.max(t.fNpz,20);let h=!1;!t.evalPar&&!(0,C.proivdeEvalPar)(t)&&(h=!0),D(m,f),d&&(0,C.produceTAxisLogScale)(e.fXaxis,m,r,P),y&&(0,C.produceTAxisLogScale)(e.fYaxis,f,z,S);const T=new Array(o),g=new Array(o);for(let s=0;s0&&(this._use_saved_points=!0)}if(this._use_saved_points){r=t.fSave[a],P=t.fSave[a+1],z=t.fSave[a+2],S=t.fSave[a+3],M=t.fSave[a+4],c=t.fSave[a+5];const m=Math.round(t.fSave[a+6]),f=Math.round(t.fSave[a+7]),o=Math.round(t.fSave[a+8]),h=(c-M)/o;D(m+1,f+1);const T=new Array(o+1),g=new Array(o+1);for(let s=0;s<=o;s++)g[s]=M+s*h;for(let s=0;s<=m;++s)for(let v=0;v<=f;++v){for(let u=0;u<=o;u++)T[u]=t.fSave[s+(m+1)*(v+(f+1)*u)];const E=B(g,T);e.setBinContent(e.getBin(s+1,v+1),Number.isFinite(E)?E:0)}}return e.fName="Func",(0,_.setHistogramTitle)(e,t.fTitle),e.fLineColor=t.fLineColor,e.fLineStyle=t.fLineStyle,e.fLineWidth=t.fLineWidth,e.fFillColor=t.fFillColor,e.fFillStyle=t.fFillStyle,e.fMarkerColor=t.fMarkerColor,e.fMarkerStyle=t.fMarkerStyle,e.fMarkerSize=t.fMarkerSize,e.fBits|=_.kNoStats,e}extractAxesProperties(t){super.extractAxesProperties(t);const e=this.$func,a=e?.fSave.length??0;a>9&&this._use_saved_points&&(this.xmin=Math.min(this.xmin,e.fSave[a-9]),this.xmax=Math.max(this.xmax,e.fSave[a-8]),this.ymin=Math.min(this.ymin,e.fSave[a-7]),this.ymax=Math.max(this.ymax,e.fSave[a-6]),this.zmin=Math.min(this.zmin,e.fSave[a-5]),this.zmax=Math.max(this.zmax,e.fSave[a-4])),e&&(this.xmin=Math.min(this.xmin,e.fXmin),this.xmax=Math.max(this.xmax,e.fXmax),this.ymin=Math.min(this.ymin,e.fYmin),this.ymax=Math.max(this.ymax,e.fYmax),this.zmin=Math.min(this.zmin,e.fZmin),this.zmax=Math.max(this.zmax,e.fZmax))}fillWebObjectOptions(t){t.fcust=this._fail_eval?"func_fail":""}static draw(t,e,a){return(0,X.A)(function*(){(0,_.isStr)(a)||(a="");let n=a.indexOf(";webcanv_hist"),l=!1,d=!1;n>=0&&(l=!0,a=a.slice(0,n)),n=a.indexOf(";force_saved"),n>=0&&(d=!0,a=a.slice(0,n));const y=new b.nC(a);let i;y.empty()||"gl"===a?a="surf1":"SAME"===y.opt&&(a="surf1 same"),(0===a.indexOf("same")||0===a.indexOf("SAME"))&&((0,N.Nn)(t)||(a="A_ADJUST_FRAME_"+a.slice(4))),l&&(i=new N.JW(t).getPadPainter()?.findInPrimitives("Func",_.clTH2F)),i||(i=(0,_.createHistogram)(_.clTH2F,20,20),i.fBits|=_.kNoStats);const r=new O(t,i);return r.$func=e,r.webcanv_hist=l,r.force_saved=d,r.createTF3Histogram(e,i),w.mf._drawHist(r,a)})()}}}}]); +//# sourceMappingURL=734.034da95a4df76dcc.js.map \ No newline at end of file diff --git a/docs/734.885e51d90758813b.js.map b/docs/734.034da95a4df76dcc.js.map similarity index 99% rename from docs/734.885e51d90758813b.js.map rename to docs/734.034da95a4df76dcc.js.map index 977fce6d..20033031 100644 --- a/docs/734.885e51d90758813b.js.map +++ b/docs/734.034da95a4df76dcc.js.map @@ -1 +1 @@ -{"version":3,"file":"734.885e51d90758813b.js","mappings":"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","names":["findZValue","arrz","arrv","cross","i","length","v1","v2","z1","z2","TF3Painter","TH2Painter","getObjectName","this","$func","fName","getClassName","_typename","clTF3","isTF1","getPrimaryObject","updateObject","obj","evalPar","histo","getHisto","webcanv_hist","h0","getPadPainter","findInPrimitives","clTH2F","updateAxes","getFramePainter","createTF3Histogram","scanContent","redraw","reason","_use_saved_points","super","func","hist","nsave","fSave","settings","PreferSavedPoints","force_saved","fp","pad","getRootPad","logx","fLogx","logy","fLogy","gr","getGrFuncs","second_x","second_y","xmin","fXmin","xmax","fXmax","ymin","fYmin","ymax","fYmax","zmin","fZmin","zmax","fZmax","zoom_xmin","zoom_xmax","Math","min","max","zoom_ymin","zoom_ymax","zoom_zmin","zoom_zmax","ensureBins","nx","ny","fNcells","fArray","Float32Array","fill","fXaxis","fNbins","fXbins","fYaxis","fMinimum","fMaximum","_fail_eval","npx","fNpx","npy","fNpy","npz","fNpz","iserror","proivdeEvalPar","produceTAxisLogScale","Array","k","j","x","GetBinCenter","y","z","setBinContent","getBin","Number","isFinite","round","dz","setHistogramTitle","fTitle","fLineColor","fLineStyle","fLineWidth","fFillColor","fFillStyle","fMarkerColor","fMarkerStyle","fMarkerSize","fBits","kNoStats","extractAxesProperties","ndim","fillWebObjectOptions","opt","fcust","draw","dom","tf3","_asyncToGenerator","isStr","p","indexOf","slice","d","DrawOptions","empty","getElementMainPainter","ObjectPainter","createHistogram","painter","THistPainter","_drawHist"],"ignoreList":[],"sourceRoot":"webpack:///","sources":["../node_modules/jsroot/modules/hist/TF3Painter.mjs"],"sourcesContent":["import { createHistogram, setHistogramTitle, kNoStats, settings, clTF3, clTH2F, isStr } from '../core.mjs';\nimport { TH2Painter } from '../hist/TH2Painter.mjs';\nimport { proivdeEvalPar, produceTAxisLogScale } from '../hist/TF1Painter.mjs';\nimport { ObjectPainter, getElementMainPainter } from '../base/ObjectPainter.mjs';\nimport { DrawOptions } from '../base/BasePainter.mjs';\nimport { THistPainter } from '../hist2d/THistPainter.mjs';\n\n\nfunction findZValue(arrz, arrv, cross = 0) {\n for (let i = arrz.length - 2; i >= 0; --i) {\n const v1 = arrv[i], v2 = arrv[i + 1],\n z1 = arrz[i], z2 = arrz[i + 1];\n if (v1 === cross) return z1;\n if (v2 === cross) return z2;\n if ((v1 < cross) !== (v2 < cross))\n return z1 + (cross - v1) / (v2 - v1) * (z2 - z1);\n }\n\n return arrz[0] - 1;\n}\n\n\n/**\n * @summary Painter for TF3 object\n *\n * @private\n */\n\nclass TF3Painter extends TH2Painter {\n\n /** @summary Returns drawn object name */\n getObjectName() { return this.$func?.fName ?? 'func'; }\n\n /** @summary Returns drawn object class name */\n getClassName() { return this.$func?._typename ?? clTF3; }\n\n /** @summary Returns true while function is drawn */\n isTF1() { return true; }\n\n /** @summary Returns primary function which was then drawn as histogram */\n getPrimaryObject() { return this.$func; }\n\n /** @summary Update histogram */\n updateObject(obj /*, opt */) {\n if (!obj || (this.getClassName() !== obj._typename)) return false;\n delete obj.evalPar;\n const histo = this.getHisto();\n\n if (this.webcanv_hist) {\n const h0 = this.getPadPainter()?.findInPrimitives('Func', clTH2F);\n if (h0) this.updateAxes(histo, h0, this.getFramePainter());\n }\n\n this.$func = obj;\n this.createTF3Histogram(obj, histo);\n this.scanContent();\n return true;\n }\n\n /** @summary Redraw TF2\n * @private */\n redraw(reason) {\n if (!this._use_saved_points && (reason === 'logx' || reason === 'logy' || reason === 'logy' || reason === 'zoom')) {\n this.createTF3Histogram(this.$func, this.getHisto());\n this.scanContent();\n }\n\n return super.redraw(reason);\n }\n\n /** @summary Create histogram for TF3 drawing\n * @private */\n createTF3Histogram(func, hist) {\n const nsave = func.fSave.length - 9;\n\n this._use_saved_points = (nsave > 0) && (settings.PreferSavedPoints || this.force_saved);\n\n const fp = this.getFramePainter(),\n pad = this.getPadPainter()?.getRootPad(true),\n logx = pad?.fLogx, logy = pad?.fLogy,\n gr = fp?.getGrFuncs(this.second_x, this.second_y);\n let xmin = func.fXmin, xmax = func.fXmax,\n ymin = func.fYmin, ymax = func.fYmax,\n zmin = func.fZmin, zmax = func.fZmax;\n\n if (gr?.zoom_xmin !== gr?.zoom_xmax) {\n xmin = Math.min(xmin, gr.zoom_xmin);\n xmax = Math.max(xmax, gr.zoom_xmax);\n }\n\n if (gr?.zoom_ymin !== gr?.zoom_ymax) {\n ymin = Math.min(ymin, gr.zoom_ymin);\n ymax = Math.max(ymax, gr.zoom_ymax);\n }\n\n if (gr?.zoom_zmin !== gr?.zoom_zmax) {\n zmin = Math.min(zmin, gr.zoom_zmin);\n zmax = Math.max(zmax, gr.zoom_zmax);\n }\n\n const ensureBins = (nx, ny) => {\n if (hist.fNcells !== (nx + 2) * (ny + 2)) {\n hist.fNcells = (nx + 2) * (ny + 2);\n hist.fArray = new Float32Array(hist.fNcells);\n }\n hist.fArray.fill(0);\n hist.fXaxis.fNbins = nx;\n hist.fXaxis.fXbins = [];\n hist.fYaxis.fNbins = ny;\n hist.fYaxis.fXbins = [];\n hist.fXaxis.fXmin = xmin;\n hist.fXaxis.fXmax = xmax;\n hist.fYaxis.fXmin = ymin;\n hist.fYaxis.fXmax = ymax;\n hist.fMinimum = zmin;\n hist.fMaximum = zmax;\n };\n\n delete this._fail_eval;\n\n if (!this._use_saved_points) {\n const npx = Math.max(func.fNpx, 20),\n npy = Math.max(func.fNpy, 20),\n npz = Math.max(func.fNpz, 20);\n let iserror = false;\n\n if (!func.evalPar && !proivdeEvalPar(func))\n iserror = true;\n\n ensureBins(npx, npy);\n\n if (logx)\n produceTAxisLogScale(hist.fXaxis, npx, xmin, xmax);\n if (logy)\n produceTAxisLogScale(hist.fYaxis, npy, ymin, ymax);\n\n const arrv = new Array(npz), arrz = new Array(npz);\n for (let k = 0; k < npz; ++k)\n arrz[k] = zmin + k / (npz - 1) * (zmax - zmin);\n\n for (let j = 0; (j < npy) && !iserror; ++j) {\n for (let i = 0; (i < npx) && !iserror; ++i) {\n const x = hist.fXaxis.GetBinCenter(i+1),\n y = hist.fYaxis.GetBinCenter(j+1);\n let z = 0;\n\n try {\n for (let k = 0; k < npz; ++k)\n arrv[k] = func.evalPar(x, y, arrz[k]);\n\n z = findZValue(arrz, arrv);\n } catch {\n iserror = true;\n }\n\n if (!iserror)\n hist.setBinContent(hist.getBin(i + 1, j + 1), Number.isFinite(z) ? z : 0);\n }\n }\n\n if (iserror)\n this._fail_eval = true;\n\n if (iserror && (nsave > 0))\n this._use_saved_points = true;\n }\n\n if (this._use_saved_points) {\n xmin = func.fSave[nsave]; xmax = func.fSave[nsave+1];\n ymin = func.fSave[nsave+2]; ymax = func.fSave[nsave+3];\n zmin = func.fSave[nsave+4]; zmax = func.fSave[nsave+5];\n const npx = Math.round(func.fSave[nsave+6]),\n npy = Math.round(func.fSave[nsave+7]),\n npz = Math.round(func.fSave[nsave+8]),\n // dx = (xmax - xmin) / npx,\n // dy = (ymax - ymin) / npy,\n dz = (zmax - zmin) / npz;\n\n ensureBins(npx + 1, npy + 1);\n\n const arrv = new Array(npz + 1), arrz = new Array(npz + 1);\n for (let k = 0; k <= npz; k++)\n arrz[k] = zmin + k*dz;\n\n for (let i = 0; i <= npx; ++i) {\n for (let j = 0; j <= npy; ++j) {\n for (let k = 0; k <= npz; k++)\n arrv[k] = func.fSave[i + (npx + 1)*(j + (npy + 1)*k)];\n const z = findZValue(arrz, arrv);\n hist.setBinContent(hist.getBin(i + 1, j + 1), Number.isFinite(z) ? z : 0);\n }\n }\n }\n\n hist.fName = 'Func';\n setHistogramTitle(hist, func.fTitle);\n\n\n // hist.fMinimum = func.fMinimum;\n // hist.fMaximum = func.fMaximum;\n // fHistogram->SetContour(fContour.fN, levels);\n hist.fLineColor = func.fLineColor;\n hist.fLineStyle = func.fLineStyle;\n hist.fLineWidth = func.fLineWidth;\n hist.fFillColor = func.fFillColor;\n hist.fFillStyle = func.fFillStyle;\n hist.fMarkerColor = func.fMarkerColor;\n hist.fMarkerStyle = func.fMarkerStyle;\n hist.fMarkerSize = func.fMarkerSize;\n hist.fBits |= kNoStats;\n\n return hist;\n }\n\n /** @summary Extract function ranges */\n extractAxesProperties(ndim) {\n super.extractAxesProperties(ndim);\n\n const func = this.$func, nsave = func?.fSave.length ?? 0;\n\n if (nsave > 9 && this._use_saved_points) {\n this.xmin = Math.min(this.xmin, func.fSave[nsave-9]);\n this.xmax = Math.max(this.xmax, func.fSave[nsave-8]);\n this.ymin = Math.min(this.ymin, func.fSave[nsave-7]);\n this.ymax = Math.max(this.ymax, func.fSave[nsave-6]);\n this.zmin = Math.min(this.zmin, func.fSave[nsave-5]);\n this.zmax = Math.max(this.zmax, func.fSave[nsave-4]);\n }\n if (func) {\n this.xmin = Math.min(this.xmin, func.fXmin);\n this.xmax = Math.max(this.xmax, func.fXmax);\n this.ymin = Math.min(this.ymin, func.fYmin);\n this.ymax = Math.max(this.ymax, func.fYmax);\n this.zmin = Math.min(this.zmin, func.fZmin);\n this.zmax = Math.max(this.zmax, func.fZmax);\n }\n }\n\n /** @summary fill information for TWebCanvas\n * @private */\n fillWebObjectOptions(opt) {\n // mark that saved points are used or evaluation failed\n opt.fcust = this._fail_eval ? 'func_fail' : '';\n }\n\n /** @summary draw TF3 object */\n static async draw(dom, tf3, opt) {\n if (!isStr(opt)) opt = '';\n let p = opt.indexOf(';webcanv_hist'), webcanv_hist = false, force_saved = false;\n if (p >= 0) {\n webcanv_hist = true;\n opt = opt.slice(0, p);\n }\n p = opt.indexOf(';force_saved');\n if (p >= 0) {\n force_saved = true;\n opt = opt.slice(0, p);\n }\n\n const d = new DrawOptions(opt);\n if (d.empty() || (opt === 'gl'))\n opt = 'surf1';\n else if (d.opt === 'SAME')\n opt = 'surf1 same';\n\n if ((opt.indexOf('same') === 0) || (opt.indexOf('SAME') === 0)) {\n if (!getElementMainPainter(dom))\n opt = 'A_ADJUST_FRAME_' + opt.slice(4);\n }\n\n let hist;\n\n if (webcanv_hist) {\n const dummy = new ObjectPainter(dom);\n hist = dummy.getPadPainter()?.findInPrimitives('Func', clTH2F);\n }\n\n if (!hist) {\n hist = createHistogram(clTH2F, 20, 20);\n hist.fBits |= kNoStats;\n }\n\n const painter = new TF3Painter(dom, hist);\n\n painter.$func = tf3;\n painter.webcanv_hist = webcanv_hist;\n painter.force_saved = force_saved;\n painter.createTF3Histogram(tf3, hist);\n return THistPainter._drawHist(painter, opt);\n }\n\n} // class TF3Painter\n\nexport { TF3Painter };\n"],"x_google_ignoreList":[0]} \ No newline at end of file +{"version":3,"file":"734.034da95a4df76dcc.js","mappings":"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","names":["findZValue","arrz","arrv","cross","i","length","v1","v2","z1","z2","TF3Painter","TH2Painter","getObjectName","this","$func","fName","getClassName","_typename","clTF3","isTF1","getPrimaryObject","updateObject","obj","evalPar","histo","getHisto","webcanv_hist","h0","getPadPainter","findInPrimitives","clTH2F","updateAxes","getFramePainter","createTF3Histogram","scanContent","redraw","reason","_use_saved_points","super","func","hist","nsave","fSave","settings","PreferSavedPoints","force_saved","fp","pad","getRootPad","logx","fLogx","logy","fLogy","gr","getGrFuncs","second_x","second_y","xmin","fXmin","xmax","fXmax","ymin","fYmin","ymax","fYmax","zmin","fZmin","zmax","fZmax","zoom_xmin","zoom_xmax","Math","min","max","zoom_ymin","zoom_ymax","zoom_zmin","zoom_zmax","ensureBins","nx","ny","fNcells","fArray","Float32Array","fill","fXaxis","fNbins","fXbins","fYaxis","fMinimum","fMaximum","_fail_eval","npx","fNpx","npy","fNpy","npz","fNpz","iserror","proivdeEvalPar","produceTAxisLogScale","Array","k","j","x","GetBinCenter","y","z","setBinContent","getBin","Number","isFinite","round","dz","setHistogramTitle","fTitle","fLineColor","fLineStyle","fLineWidth","fFillColor","fFillStyle","fMarkerColor","fMarkerStyle","fMarkerSize","fBits","kNoStats","extractAxesProperties","ndim","fillWebObjectOptions","opt","fcust","draw","dom","tf3","_asyncToGenerator","isStr","p","indexOf","slice","d","DrawOptions","empty","getElementMainPainter","ObjectPainter","createHistogram","painter","THistPainter","_drawHist"],"ignoreList":[],"sourceRoot":"webpack:///","sources":["../node_modules/jsroot/modules/hist/TF3Painter.mjs"],"sourcesContent":["import { createHistogram, setHistogramTitle, kNoStats, settings, clTF3, clTH2F, isStr } from '../core.mjs';\nimport { TH2Painter } from '../hist/TH2Painter.mjs';\nimport { proivdeEvalPar, produceTAxisLogScale } from '../hist/TF1Painter.mjs';\nimport { ObjectPainter, getElementMainPainter } from '../base/ObjectPainter.mjs';\nimport { DrawOptions } from '../base/BasePainter.mjs';\nimport { THistPainter } from '../hist2d/THistPainter.mjs';\n\n\nfunction findZValue(arrz, arrv, cross = 0) {\n for (let i = arrz.length - 2; i >= 0; --i) {\n const v1 = arrv[i], v2 = arrv[i + 1],\n z1 = arrz[i], z2 = arrz[i + 1];\n if (v1 === cross) return z1;\n if (v2 === cross) return z2;\n if ((v1 < cross) !== (v2 < cross))\n return z1 + (cross - v1) / (v2 - v1) * (z2 - z1);\n }\n\n return arrz[0] - 1;\n}\n\n\n/**\n * @summary Painter for TF3 object\n *\n * @private\n */\n\nclass TF3Painter extends TH2Painter {\n\n /** @summary Returns drawn object name */\n getObjectName() { return this.$func?.fName ?? 'func'; }\n\n /** @summary Returns drawn object class name */\n getClassName() { return this.$func?._typename ?? clTF3; }\n\n /** @summary Returns true while function is drawn */\n isTF1() { return true; }\n\n /** @summary Returns primary function which was then drawn as histogram */\n getPrimaryObject() { return this.$func; }\n\n /** @summary Update histogram */\n updateObject(obj /*, opt */) {\n if (!obj || (this.getClassName() !== obj._typename)) return false;\n delete obj.evalPar;\n const histo = this.getHisto();\n\n if (this.webcanv_hist) {\n const h0 = this.getPadPainter()?.findInPrimitives('Func', clTH2F);\n if (h0) this.updateAxes(histo, h0, this.getFramePainter());\n }\n\n this.$func = obj;\n this.createTF3Histogram(obj, histo);\n this.scanContent();\n return true;\n }\n\n /** @summary Redraw TF2\n * @private */\n redraw(reason) {\n if (!this._use_saved_points && (reason === 'logx' || reason === 'logy' || reason === 'logy' || reason === 'zoom')) {\n this.createTF3Histogram(this.$func, this.getHisto());\n this.scanContent();\n }\n\n return super.redraw(reason);\n }\n\n /** @summary Create histogram for TF3 drawing\n * @private */\n createTF3Histogram(func, hist) {\n const nsave = func.fSave.length - 9;\n\n this._use_saved_points = (nsave > 0) && (settings.PreferSavedPoints || this.force_saved);\n\n const fp = this.getFramePainter(),\n pad = this.getPadPainter()?.getRootPad(true),\n logx = pad?.fLogx, logy = pad?.fLogy,\n gr = fp?.getGrFuncs(this.second_x, this.second_y);\n let xmin = func.fXmin, xmax = func.fXmax,\n ymin = func.fYmin, ymax = func.fYmax,\n zmin = func.fZmin, zmax = func.fZmax;\n\n if (gr?.zoom_xmin !== gr?.zoom_xmax) {\n xmin = Math.min(xmin, gr.zoom_xmin);\n xmax = Math.max(xmax, gr.zoom_xmax);\n }\n\n if (gr?.zoom_ymin !== gr?.zoom_ymax) {\n ymin = Math.min(ymin, gr.zoom_ymin);\n ymax = Math.max(ymax, gr.zoom_ymax);\n }\n\n if (gr?.zoom_zmin !== gr?.zoom_zmax) {\n zmin = Math.min(zmin, gr.zoom_zmin);\n zmax = Math.max(zmax, gr.zoom_zmax);\n }\n\n const ensureBins = (nx, ny) => {\n if (hist.fNcells !== (nx + 2) * (ny + 2)) {\n hist.fNcells = (nx + 2) * (ny + 2);\n hist.fArray = new Float32Array(hist.fNcells);\n }\n hist.fArray.fill(0);\n hist.fXaxis.fNbins = nx;\n hist.fXaxis.fXbins = [];\n hist.fYaxis.fNbins = ny;\n hist.fYaxis.fXbins = [];\n hist.fXaxis.fXmin = xmin;\n hist.fXaxis.fXmax = xmax;\n hist.fYaxis.fXmin = ymin;\n hist.fYaxis.fXmax = ymax;\n hist.fMinimum = zmin;\n hist.fMaximum = zmax;\n };\n\n delete this._fail_eval;\n\n if (!this._use_saved_points) {\n const npx = Math.max(func.fNpx, 20),\n npy = Math.max(func.fNpy, 20),\n npz = Math.max(func.fNpz, 20);\n let iserror = false;\n\n if (!func.evalPar && !proivdeEvalPar(func))\n iserror = true;\n\n ensureBins(npx, npy);\n\n if (logx)\n produceTAxisLogScale(hist.fXaxis, npx, xmin, xmax);\n if (logy)\n produceTAxisLogScale(hist.fYaxis, npy, ymin, ymax);\n\n const arrv = new Array(npz), arrz = new Array(npz);\n for (let k = 0; k < npz; ++k)\n arrz[k] = zmin + k / (npz - 1) * (zmax - zmin);\n\n for (let j = 0; (j < npy) && !iserror; ++j) {\n for (let i = 0; (i < npx) && !iserror; ++i) {\n const x = hist.fXaxis.GetBinCenter(i+1),\n y = hist.fYaxis.GetBinCenter(j+1);\n let z = 0;\n\n try {\n for (let k = 0; k < npz; ++k)\n arrv[k] = func.evalPar(x, y, arrz[k]);\n\n z = findZValue(arrz, arrv);\n } catch {\n iserror = true;\n }\n\n if (!iserror)\n hist.setBinContent(hist.getBin(i + 1, j + 1), Number.isFinite(z) ? z : 0);\n }\n }\n\n if (iserror)\n this._fail_eval = true;\n\n if (iserror && (nsave > 0))\n this._use_saved_points = true;\n }\n\n if (this._use_saved_points) {\n xmin = func.fSave[nsave]; xmax = func.fSave[nsave+1];\n ymin = func.fSave[nsave+2]; ymax = func.fSave[nsave+3];\n zmin = func.fSave[nsave+4]; zmax = func.fSave[nsave+5];\n const npx = Math.round(func.fSave[nsave+6]),\n npy = Math.round(func.fSave[nsave+7]),\n npz = Math.round(func.fSave[nsave+8]),\n // dx = (xmax - xmin) / npx,\n // dy = (ymax - ymin) / npy,\n dz = (zmax - zmin) / npz;\n\n ensureBins(npx + 1, npy + 1);\n\n const arrv = new Array(npz + 1), arrz = new Array(npz + 1);\n for (let k = 0; k <= npz; k++)\n arrz[k] = zmin + k*dz;\n\n for (let i = 0; i <= npx; ++i) {\n for (let j = 0; j <= npy; ++j) {\n for (let k = 0; k <= npz; k++)\n arrv[k] = func.fSave[i + (npx + 1)*(j + (npy + 1)*k)];\n const z = findZValue(arrz, arrv);\n hist.setBinContent(hist.getBin(i + 1, j + 1), Number.isFinite(z) ? z : 0);\n }\n }\n }\n\n hist.fName = 'Func';\n setHistogramTitle(hist, func.fTitle);\n\n\n // hist.fMinimum = func.fMinimum;\n // hist.fMaximum = func.fMaximum;\n // fHistogram->SetContour(fContour.fN, levels);\n hist.fLineColor = func.fLineColor;\n hist.fLineStyle = func.fLineStyle;\n hist.fLineWidth = func.fLineWidth;\n hist.fFillColor = func.fFillColor;\n hist.fFillStyle = func.fFillStyle;\n hist.fMarkerColor = func.fMarkerColor;\n hist.fMarkerStyle = func.fMarkerStyle;\n hist.fMarkerSize = func.fMarkerSize;\n hist.fBits |= kNoStats;\n\n return hist;\n }\n\n /** @summary Extract function ranges */\n extractAxesProperties(ndim) {\n super.extractAxesProperties(ndim);\n\n const func = this.$func, nsave = func?.fSave.length ?? 0;\n\n if (nsave > 9 && this._use_saved_points) {\n this.xmin = Math.min(this.xmin, func.fSave[nsave-9]);\n this.xmax = Math.max(this.xmax, func.fSave[nsave-8]);\n this.ymin = Math.min(this.ymin, func.fSave[nsave-7]);\n this.ymax = Math.max(this.ymax, func.fSave[nsave-6]);\n this.zmin = Math.min(this.zmin, func.fSave[nsave-5]);\n this.zmax = Math.max(this.zmax, func.fSave[nsave-4]);\n }\n if (func) {\n this.xmin = Math.min(this.xmin, func.fXmin);\n this.xmax = Math.max(this.xmax, func.fXmax);\n this.ymin = Math.min(this.ymin, func.fYmin);\n this.ymax = Math.max(this.ymax, func.fYmax);\n this.zmin = Math.min(this.zmin, func.fZmin);\n this.zmax = Math.max(this.zmax, func.fZmax);\n }\n }\n\n /** @summary fill information for TWebCanvas\n * @private */\n fillWebObjectOptions(opt) {\n // mark that saved points are used or evaluation failed\n opt.fcust = this._fail_eval ? 'func_fail' : '';\n }\n\n /** @summary draw TF3 object */\n static async draw(dom, tf3, opt) {\n if (!isStr(opt)) opt = '';\n let p = opt.indexOf(';webcanv_hist'), webcanv_hist = false, force_saved = false;\n if (p >= 0) {\n webcanv_hist = true;\n opt = opt.slice(0, p);\n }\n p = opt.indexOf(';force_saved');\n if (p >= 0) {\n force_saved = true;\n opt = opt.slice(0, p);\n }\n\n const d = new DrawOptions(opt);\n if (d.empty() || (opt === 'gl'))\n opt = 'surf1';\n else if (d.opt === 'SAME')\n opt = 'surf1 same';\n\n if ((opt.indexOf('same') === 0) || (opt.indexOf('SAME') === 0)) {\n if (!getElementMainPainter(dom))\n opt = 'A_ADJUST_FRAME_' + opt.slice(4);\n }\n\n let hist;\n\n if (webcanv_hist) {\n const dummy = new ObjectPainter(dom);\n hist = dummy.getPadPainter()?.findInPrimitives('Func', clTH2F);\n }\n\n if (!hist) {\n hist = createHistogram(clTH2F, 20, 20);\n hist.fBits |= kNoStats;\n }\n\n const painter = new TF3Painter(dom, hist);\n\n painter.$func = tf3;\n painter.webcanv_hist = webcanv_hist;\n painter.force_saved = force_saved;\n painter.createTF3Histogram(tf3, hist);\n return THistPainter._drawHist(painter, opt);\n }\n\n} // class TF3Painter\n\nexport { TF3Painter };\n"],"x_google_ignoreList":[0]} \ No newline at end of file diff --git a/docs/734.885e51d90758813b.js b/docs/734.885e51d90758813b.js deleted file mode 100644 index de4e93f4..00000000 --- a/docs/734.885e51d90758813b.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkphoenix_app=self.webpackChunkphoenix_app||[]).push([[734],{4734:(W,N,x)=>{x.r(N),x.d(N,{TF3Painter:()=>O});var D=x(4882),_=x(8872),H=x(4355),C=x(8868),B=x(1922),w=x(2843),b=x(4615);function L(A,i,e=0){for(let t=A.length-2;t>=0;--t){const n=i[t],l=i[t+1],d=A[t],y=A[t+1];if(n===e)return d;if(l===e)return y;if(n0&&(_.settings.PreferSavedPoints||this.force_saved);const n=this.getFramePainter(),l=this.getPadPainter()?.getRootPad(!0),d=l?.fLogx,y=l?.fLogy,a=n?.getGrFuncs(this.second_x,this.second_y);let r=i.fXmin,P=i.fXmax,z=i.fYmin,S=i.fYmax,M=i.fZmin,c=i.fZmax;a?.zoom_xmin!==a?.zoom_xmax&&(r=Math.min(r,a.zoom_xmin),P=Math.max(P,a.zoom_xmax)),a?.zoom_ymin!==a?.zoom_ymax&&(z=Math.min(z,a.zoom_ymin),S=Math.max(S,a.zoom_ymax)),a?.zoom_zmin!==a?.zoom_zmax&&(M=Math.min(M,a.zoom_zmin),c=Math.max(c,a.zoom_zmax));const X=(m,f)=>{e.fNcells!==(m+2)*(f+2)&&(e.fNcells=(m+2)*(f+2),e.fArray=new Float32Array(e.fNcells)),e.fArray.fill(0),e.fXaxis.fNbins=m,e.fXaxis.fXbins=[],e.fYaxis.fNbins=f,e.fYaxis.fXbins=[],e.fXaxis.fXmin=r,e.fXaxis.fXmax=P,e.fYaxis.fXmin=z,e.fYaxis.fXmax=S,e.fMinimum=M,e.fMaximum=c};if(delete this._fail_eval,!this._use_saved_points){const m=Math.max(i.fNpx,20),f=Math.max(i.fNpy,20),o=Math.max(i.fNpz,20);let h=!1;!i.evalPar&&!(0,C.proivdeEvalPar)(i)&&(h=!0),X(m,f),d&&(0,C.produceTAxisLogScale)(e.fXaxis,m,r,P),y&&(0,C.produceTAxisLogScale)(e.fYaxis,f,z,S);const T=new Array(o),g=new Array(o);for(let s=0;s0&&(this._use_saved_points=!0)}if(this._use_saved_points){r=i.fSave[t],P=i.fSave[t+1],z=i.fSave[t+2],S=i.fSave[t+3],M=i.fSave[t+4],c=i.fSave[t+5];const m=Math.round(i.fSave[t+6]),f=Math.round(i.fSave[t+7]),o=Math.round(i.fSave[t+8]),h=(c-M)/o;X(m+1,f+1);const T=new Array(o+1),g=new Array(o+1);for(let s=0;s<=o;s++)g[s]=M+s*h;for(let s=0;s<=m;++s)for(let v=0;v<=f;++v){for(let u=0;u<=o;u++)T[u]=i.fSave[s+(m+1)*(v+(f+1)*u)];const E=L(g,T);e.setBinContent(e.getBin(s+1,v+1),Number.isFinite(E)?E:0)}}return e.fName="Func",(0,_.setHistogramTitle)(e,i.fTitle),e.fLineColor=i.fLineColor,e.fLineStyle=i.fLineStyle,e.fLineWidth=i.fLineWidth,e.fFillColor=i.fFillColor,e.fFillStyle=i.fFillStyle,e.fMarkerColor=i.fMarkerColor,e.fMarkerStyle=i.fMarkerStyle,e.fMarkerSize=i.fMarkerSize,e.fBits|=_.kNoStats,e}extractAxesProperties(i){super.extractAxesProperties(i);const e=this.$func,t=e?.fSave.length??0;t>9&&this._use_saved_points&&(this.xmin=Math.min(this.xmin,e.fSave[t-9]),this.xmax=Math.max(this.xmax,e.fSave[t-8]),this.ymin=Math.min(this.ymin,e.fSave[t-7]),this.ymax=Math.max(this.ymax,e.fSave[t-6]),this.zmin=Math.min(this.zmin,e.fSave[t-5]),this.zmax=Math.max(this.zmax,e.fSave[t-4])),e&&(this.xmin=Math.min(this.xmin,e.fXmin),this.xmax=Math.max(this.xmax,e.fXmax),this.ymin=Math.min(this.ymin,e.fYmin),this.ymax=Math.max(this.ymax,e.fYmax),this.zmin=Math.min(this.zmin,e.fZmin),this.zmax=Math.max(this.zmax,e.fZmax))}fillWebObjectOptions(i){i.fcust=this._fail_eval?"func_fail":""}static draw(i,e,t){return(0,D.A)(function*(){(0,_.isStr)(t)||(t="");let n=t.indexOf(";webcanv_hist"),l=!1,d=!1;n>=0&&(l=!0,t=t.slice(0,n)),n=t.indexOf(";force_saved"),n>=0&&(d=!0,t=t.slice(0,n));const y=new w.nC(t);let a;y.empty()||"gl"===t?t="surf1":"SAME"===y.opt&&(t="surf1 same"),(0===t.indexOf("same")||0===t.indexOf("SAME"))&&((0,B.Nn)(i)||(t="A_ADJUST_FRAME_"+t.slice(4))),l&&(a=new B.JW(i).getPadPainter()?.findInPrimitives("Func",_.clTH2F)),a||(a=(0,_.createHistogram)(_.clTH2F,20,20),a.fBits|=_.kNoStats);const r=new O(i,a);return r.$func=e,r.webcanv_hist=l,r.force_saved=d,r.createTF3Histogram(e,a),b.mf._drawHist(r,t)})()}}}}]); -//# sourceMappingURL=734.885e51d90758813b.js.map \ No newline at end of file diff --git a/docs/746.45fb610fbb305933.js b/docs/746.b390eb60128dc9ff.js similarity index 69% rename from docs/746.45fb610fbb305933.js rename to docs/746.b390eb60128dc9ff.js index 28138593..62ec5c2c 100644 --- a/docs/746.45fb610fbb305933.js +++ b/docs/746.b390eb60128dc9ff.js @@ -1,2 +1,2 @@ -"use strict";(self.webpackChunkphoenix_app=self.webpackChunkphoenix_app||[]).push([[746],{8746:(Dt,xt,k)=>{k.r(xt),k.d(xt,{RH3Painter:()=>q,drawHistDisplayItem:()=>Ct});var ft=k(4882),X=k(8872),K=k(2923),ct=k(2843),bt=k(1990),zt=k(3804),Bt=k(2521),L=k(3847),At=k(7908),wt=k(2125),Mt=k(8537);class q extends Bt.G{getDimension(){return 3}scanContent(t){if(t&&this.nbinsx&&this.nbinsy&&this.nbinsz)return;const e=this.getHisto();if(e){if(this.extractAxesProperties(3),this.isDisplayItem())this.gminbin=e.fContMin,this.gminposbin=e.fContMinPos>0?e.fContMinPos:null,this.gmaxbin=e.fContMax;else{this.gminbin=this.gmaxbin=e.getBinContent(1,1,1);for(let i=0;ithis.gmaxbin&&(this.gmaxbin=a)}}this.draw_content=0!==this.gmaxbin||0!==this.gminbin}}countStat(){const t=this.getHisto(),e=this.getAxis("x"),i=this.getAxis("y"),n=this.getAxis("z"),x=this.getSelectIndex("x","left"),a=this.getSelectIndex("x","right"),m=this.getSelectIndex("y","left"),f=this.getSelectIndex("y","right"),g=this.getSelectIndex("z","left"),h=this.getSelectIndex("z","right"),l={name:t.fName,entries:0,integral:0,meanx:0,meany:0,meanz:0,rmsx:0,rmsy:0,rmsz:0};let y,z,E,j,G,I,Z,W,$,S,d=0,D=0,A=0,w=0,u=0,c=0,p=0;for(y=1;y<=this.nbinsx;++y)for(j=e.GetBinCoord(y-.5),G=y<=x+1?0:y>a+1?2:1,z=1;z<=this.nbinsy;++z)for(I=i.GetBinCoord(z-.5),Z=z<=m+1?0:z>f+1?2:1,E=1;E<=this.nbinsz;++E)W=n.GetBinCoord(E-.5),$=E<=g+1?0:E>h+1?2:1,S=t.getBinContent(y,z,E),l.entries+=S,1===G&&1===Z&&1===$&&(d+=S,D+=j*S,A+=I*S,w+=W*S,u+=j**2*S,c+=I**2*S,p+=W**2*S);return Math.abs(d)>1e-300&&(l.meanx=D/d,l.meany=A/d,l.meanz=w/d,l.rmsx=Math.sqrt(Math.abs(u/d-l.meanx**2)),l.rmsy=Math.sqrt(Math.abs(c/d-l.meany**2)),l.rmsz=Math.sqrt(Math.abs(p/d-l.meanz**2))),l.integral=d,t.fEntries>1&&(l.entries=t.fEntries),l}fillStatistic(t,e){const i=this.countStat(),n=e%10,x=Math.floor(e/10)%10,a=Math.floor(e/100)%10,m=Math.floor(e/1e3)%10,f=Math.floor(e/1e6)%10;return t.clearStat(),n>0&&t.addText(i.name),x>0&&t.addText("Entries = "+t.format(i.entries,"entries")),a>0&&(t.addText("Mean x = "+t.format(i.meanx)),t.addText("Mean y = "+t.format(i.meany)),t.addText("Mean z = "+t.format(i.meanz))),m>0&&(t.addText("Std Dev x = "+t.format(i.rmsx)),t.addText("Std Dev y = "+t.format(i.rmsy)),t.addText("Std Dev z = "+t.format(i.rmsz))),f>0&&t.addText("Integral = "+t.format(i.integral,"entries")),!0}getBinTooltips(t,e,i){const n=[],x=this.getHisto();let a=1,m=1,f=1;this.isDisplayItem()&&(a=x.stepx||1,m=x.stepy||1,f=x.stepz||1),n.push(this.getObjectHint(),`x = ${this.getAxisBinTip("x",t,a)} xbin=${t+1}`,`y = ${this.getAxisBinTip("y",e,m)} ybin=${e+1}`,`z = ${this.getAxisBinTip("z",i,f)} zbin=${i+1}`);const g=x.getBinContent(t+1,e+1,i+1),h="entries = "+(a>1||m>1||f>1?"~":"");return g===Math.round(g)?n.push(h+g):n.push(h+(0,ct.lg)(g,X.gStyle.fStatFormat)),n}draw3DScatter(t){var e=this;return(0,ft.A)(function*(){const i=e.getHisto(),n=e.getFramePainter(),x=t.i1,a=t.i2,m=t.stepi,f=t.j1,g=t.j2,h=t.stepj,l=t.k1,d=t.k2,D=t.stepk;if(a<=x||g<=f||d<=l)return!0;const A=e.gmaxbin>1e3?1e3/e.gmaxbin:1,w=Math.max(0,e.gminbin);let u,c,p,y,z=0,E=0;for(u=x;u(n.webgl?1e5:3e4))return!1;const j=new L._l(z,n.webgl,n.size_x3d/200),G=new Int32Array(z),I=e.getAxis("x"),Z=e.getAxis("y"),W=e.getAxis("z"),$=new ct.YF(E);let S=0;for(u=x;u(n.add3DMesh(H),H.bins=G,H.painter=e,H.tip_color=65280,H.tooltip=function(T){const b=Math.floor(T.index/this.nvertex);if(b<0||b>=this.bins.length)return null;const B=this.painter,P=B.getFramePainter(),_=B.get3DToolTip(this.bins[b]);return _.x1=P.grx(B.getAxis("x").GetBinLowEdge(_.ix)),_.x2=P.grx(B.getAxis("x").GetBinLowEdge(_.ix+m)),_.y1=P.gry(B.getAxis("y").GetBinLowEdge(_.iy)),_.y2=P.gry(B.getAxis("y").GetBinLowEdge(_.iy+h)),_.z1=P.grz(B.getAxis("z").GetBinLowEdge(_.iz)),_.z2=P.grz(B.getAxis("z").GetBinLowEdge(_.iz+D)),_.color=this.tip_color,_.opacity=.3,_},!0))})()}draw3DBins(t){const e=this.getFramePainter();let h,l,i=this.v7EvalColor("fill_color","red"),n=0,x=!1,a=!1,m=!1,f=1,g=!0,d=.5;if(this.options.Sphere){d=.4,x=!0,11===this.options.Sphere&&(m=!0);const o=e.webgl?new K.Gu$(.5,16,12):new K.Gu$(.5,8,6);o.applyMatrix4((new K.kn4).makeRotationX(Math.PI/2)),o.computeVertexNormals();const r=o.getIndex().array,F=o.getAttribute("position").array,M=o.getAttribute("normal").array;n=3*r.length,h=new Float32Array(n),l=new Float32Array(n);for(let s=0;s=0?(void 0===T[o]&&(T[o]=0,Q[o]=N++),T[o]+=1):console.error(`not found color for value = ${U}`)}m||(T.push(b),N=1,Q=[0]);const it=new Array(N),tt=new Array(N),nt=new Array(N),st=new Array(N),V=new Array(N),rt=new Array(N),ot=new Array(N);for(let o=0;o65520?2:1),tt[r]=new Float32Array(b*n),nt[r]=new Float32Array(b*n),st[r]=new Int32Array(b),1===V[r]&&(rt[r]=new Uint16Array(b*L.DJ.MeshSegments.length)),2===V[r]&&(ot[r]=new Float32Array(b*L.DJ.Segments.length*3))}let dt,at,mt,lt,ut,ht;for(I=this.getAxis("x"),Z=this.getAxis("y"),W=this.getAxis("z"),B=A;B=this.bins.length)return null;const v=this.painter,gt=v.getFramePainter(),R=v.get3DToolTip(this.bins[O]),_t=gt.grx(v.getAxis("x").GetBinCoord(R.ix-.5)),pt=gt.gry(v.getAxis("y").GetBinCoord(R.iy-.5)),yt=gt.grz(v.getAxis("z").GetBinCoord(R.iz-.5)),Y=this.use_scale?Math.pow(Math.abs(R.value*this.use_scale),.3333):1;return R.x1=_t-this.scalex*Y,R.x2=_t+this.scalex*Y,R.y1=pt-this.scaley*Y,R.y2=pt+this.scaley*Y,R.z1=yt-this.scalez*Y,R.z2=yt+this.scalez*Y,R.color=this.tip_color,R},e.add3DMesh(s),V[r]>0){const C=this.v7EvalColor("line_color","lightblue"),O=new K.mrM({color:C}),v=1===V[r]?(0,L.Fc)(tt[r],O,rt[r]):(0,L.Fc)(ot[r],O);e.add3DMesh(v)}}m&&this.updatePaletteDraw()}draw3D(){if(!this.draw_content)return!1;const t=this.prepareDraw({only_indexes:!0,extra:-.5,right_extra:-1});return(this.options.Scatter?this.draw3DScatter(t):Promise.resolve(!1)).then(i=>i||this.draw3DBins(t))}redraw(t){const e=this.getFramePainter();return"resize"===t?(e.resize3D()&&e.render3D(),this):((0,Mt.wx)(e),e.create3DScene(this.options.Render3D).then(()=>(e.setAxesRanges(this.getAxis("x"),this.xmin,this.xmax,this.getAxis("y"),this.ymin,this.ymax,this.getAxis("z"),this.zmin,this.zmax),e.set3DOptions(this.options),e.drawXYZ(e.toplevel,zt.R,{zoom:X.settings.Zooming,ndim:3,draw:!0,v7:!0}),this.drawingBins(t))).then(()=>this.draw3D()).then(()=>(e.render3D(),e.addKeysHandler(),this)))}fillToolbar(){const t=this.getPadPainter();t&&(t.addPadButton("auto_zoom","Unzoom all axes","ToggleZoom","Ctrl *"),this.draw_content&&t.addPadButton("statbox","Toggle stat box","ToggleStatBox"),t.showPadButtons())}canZoomInside(t,e,i){let n=this.getHisto();return n&&(n=n["f"+t.toUpperCase()+"axis"]),!n||n.FindBin(i,.5)-n.FindBin(e,0)>1}autoZoom(){const t=this.getSelectIndex("x","left"),e=this.getSelectIndex("x","right"),i=this.getSelectIndex("y","left"),n=this.getSelectIndex("y","right"),x=this.getSelectIndex("z","left"),a=this.getSelectIndex("z","right"),m=this.getHisto();let f,g,h;if(t===e||i===n||x===a)return;let l=m.getBinContent(t+1,i+1,x+1);for(f=t;f0)return;let d=e,D=t,A=n,w=i,u=a,c=x;for(f=t;fl&&(f=D&&(D=f+1),g=w&&(w=g+1),h=c&&(c=h+1));let p,y,z,E,j,G,I=!1;return d===D-1&&d>t+1&&Di+1&&wx+1&&ct||Di||wx||c{if(0===i.indexOf(X.kInspect))return this.showInspector(i);this.decodeOptions(i),this.interactiveRedraw(!0,"drawopt")})}static draw(t,e){return(0,ft.A)(function*(){const i=new q(t,e);return i.mode3d=!0,(0,bt.ensureRCanvas)(i,"3d").then(()=>{i.setAsMainPainter(),i.options={Box:0,Scatter:!1,Sphere:0,Color:!1,minimum:X.kNoZoom,maximum:X.kNoZoom,FrontBox:!1,BackBox:!1};const n=i.v7EvalAttr("kind",""),x=i.v7EvalAttr("sub",0),a=i.options;switch(n){case"box":a.Box=10+x;break;case"sphere":a.Sphere=10+x;break;case"col":a.Color=!0;break;case"scat":a.Scatter=!0;break;default:a.Box=10}return i.scanContent(),i.redraw()})})()}}function Ct(et,t,e){return t?1===t.fAxes.length?At.RH1Painter.draw(et,t,e):2===t.fAxes.length?wt.RH2Painter.draw(et,t,e):3===t.fAxes.length?q.draw(et,t,e):null:null}}}]); -//# sourceMappingURL=746.45fb610fbb305933.js.map \ No newline at end of file +"use strict";(self.webpackChunkphoenix_app=self.webpackChunkphoenix_app||[]).push([[746],{8746:(Dt,xt,k)=>{k.r(xt),k.d(xt,{RH3Painter:()=>q,drawHistDisplayItem:()=>Ct});var ft=k(4882),X=k(8872),K=k(2923),ct=k(2843),bt=k(1990),zt=k(3804),Bt=k(2521),R=k(3847),At=k(7908),wt=k(2125),Mt=k(8537);class q extends Bt.G{getDimension(){return 3}scanContent(t){if(t&&this.nbinsx&&this.nbinsy&&this.nbinsz)return;const e=this.getHisto();if(e){if(this.extractAxesProperties(3),this.isDisplayItem())this.gminbin=e.fContMin,this.gminposbin=e.fContMinPos>0?e.fContMinPos:null,this.gmaxbin=e.fContMax;else{this.gminbin=this.gmaxbin=e.getBinContent(1,1,1);for(let i=0;ithis.gmaxbin&&(this.gmaxbin=a)}}this.draw_content=0!==this.gmaxbin||0!==this.gminbin}}countStat(){const t=this.getHisto(),e=this.getAxis("x"),i=this.getAxis("y"),n=this.getAxis("z"),x=this.getSelectIndex("x","left"),a=this.getSelectIndex("x","right"),d=this.getSelectIndex("y","left"),f=this.getSelectIndex("y","right"),g=this.getSelectIndex("z","left"),h=this.getSelectIndex("z","right"),l={name:t.fName,entries:0,integral:0,meanx:0,meany:0,meanz:0,rmsx:0,rmsy:0,rmsz:0};let y,z,E,j,G,I,Z,W,$,S,m=0,D=0,A=0,w=0,u=0,c=0,p=0;for(y=1;y<=this.nbinsx;++y)for(j=e.GetBinCoord(y-.5),G=y<=x+1?0:y>a+1?2:1,z=1;z<=this.nbinsy;++z)for(I=i.GetBinCoord(z-.5),Z=z<=d+1?0:z>f+1?2:1,E=1;E<=this.nbinsz;++E)W=n.GetBinCoord(E-.5),$=E<=g+1?0:E>h+1?2:1,S=t.getBinContent(y,z,E),l.entries+=S,1===G&&1===Z&&1===$&&(m+=S,D+=j*S,A+=I*S,w+=W*S,u+=j**2*S,c+=I**2*S,p+=W**2*S);return Math.abs(m)>1e-300&&(l.meanx=D/m,l.meany=A/m,l.meanz=w/m,l.rmsx=Math.sqrt(Math.abs(u/m-l.meanx**2)),l.rmsy=Math.sqrt(Math.abs(c/m-l.meany**2)),l.rmsz=Math.sqrt(Math.abs(p/m-l.meanz**2))),l.integral=m,t.fEntries>1&&(l.entries=t.fEntries),l}fillStatistic(t,e){const i=this.countStat(),n=e%10,x=Math.floor(e/10)%10,a=Math.floor(e/100)%10,d=Math.floor(e/1e3)%10,f=Math.floor(e/1e6)%10;return t.clearStat(),n>0&&t.addText(i.name),x>0&&t.addText("Entries = "+t.format(i.entries,"entries")),a>0&&(t.addText("Mean x = "+t.format(i.meanx)),t.addText("Mean y = "+t.format(i.meany)),t.addText("Mean z = "+t.format(i.meanz))),d>0&&(t.addText("Std Dev x = "+t.format(i.rmsx)),t.addText("Std Dev y = "+t.format(i.rmsy)),t.addText("Std Dev z = "+t.format(i.rmsz))),f>0&&t.addText("Integral = "+t.format(i.integral,"entries")),!0}getBinTooltips(t,e,i){const n=[],x=this.getHisto();let a=1,d=1,f=1;this.isDisplayItem()&&(a=x.stepx||1,d=x.stepy||1,f=x.stepz||1),n.push(this.getObjectHint(),`x = ${this.getAxisBinTip("x",t,a)} xbin=${t+1}`,`y = ${this.getAxisBinTip("y",e,d)} ybin=${e+1}`,`z = ${this.getAxisBinTip("z",i,f)} zbin=${i+1}`);const g=x.getBinContent(t+1,e+1,i+1),h="entries = "+(a>1||d>1||f>1?"~":"");return g===Math.round(g)?n.push(h+g):n.push(h+(0,ct.lg)(g,X.gStyle.fStatFormat)),n}draw3DScatter(t){var e=this;return(0,ft.A)(function*(){const i=e.getHisto(),n=e.getFramePainter(),x=t.i1,a=t.i2,d=t.stepi,f=t.j1,g=t.j2,h=t.stepj,l=t.k1,m=t.k2,D=t.stepk;if(a<=x||g<=f||m<=l)return!0;const A=e.gmaxbin>1e3?1e3/e.gmaxbin:1,w=Math.max(0,e.gminbin);let u,c,p,y,z=0,E=0;for(u=x;u(n.webgl?1e5:3e4))return!1;const j=new R._l(z,n.webgl,n.size_x3d/200),G=new Int32Array(z),I=e.getAxis("x"),Z=e.getAxis("y"),W=e.getAxis("z"),$=new ct.YF(E);let S=0;for(u=x;u(n.add3DMesh(H),H.bins=G,H.painter=e,H.tip_color=65280,H.tooltip=function(T){const b=Math.floor(T.index/this.nvertex);if(b<0||b>=this.bins.length)return null;const B=this.painter,P=B.getFramePainter(),_=B.get3DToolTip(this.bins[b]);return _.x1=P.grx(B.getAxis("x").GetBinLowEdge(_.ix)),_.x2=P.grx(B.getAxis("x").GetBinLowEdge(_.ix+d)),_.y1=P.gry(B.getAxis("y").GetBinLowEdge(_.iy)),_.y2=P.gry(B.getAxis("y").GetBinLowEdge(_.iy+h)),_.z1=P.grz(B.getAxis("z").GetBinLowEdge(_.iz)),_.z2=P.grz(B.getAxis("z").GetBinLowEdge(_.iz+D)),_.color=this.tip_color,_.opacity=.3,_},!0))})()}draw3DBins(t){const e=this.getFramePainter();let h,l,i=this.v7EvalColor("fill_color","red"),n=0,x=!1,a=!1,d=!1,f=1,g=!0,m=.5;if(this.options.Sphere){m=.4,x=!0,11===this.options.Sphere&&(d=!0);const o=e.webgl?new K.Gu$(.5,16,12):new K.Gu$(.5,8,6);o.applyMatrix4((new K.kn4).makeRotationX(Math.PI/2)),o.computeVertexNormals();const r=o.getIndex().array,F=o.getAttribute("position").array,M=o.getAttribute("normal").array;n=3*r.length,h=new Float32Array(n),l=new Float32Array(n);for(let s=0;s=0?(void 0===T[o]&&(T[o]=0,Q[o]=N++),T[o]+=1):console.error(`not found color for value = ${U}`)}d||(T.push(b),N=1,Q=[0]);const it=new Array(N),tt=new Array(N),nt=new Array(N),st=new Array(N),V=new Array(N),rt=new Array(N),ot=new Array(N);for(let o=0;o65520?2:1),tt[r]=new Float32Array(b*n),nt[r]=new Float32Array(b*n),st[r]=new Int32Array(b),1===V[r]&&(rt[r]=new Uint16Array(b*R.DJ.MeshSegments.length)),2===V[r]&&(ot[r]=new Float32Array(b*R.DJ.Segments.length*3))}let mt,at,dt,lt,ut,ht;for(I=this.getAxis("x"),Z=this.getAxis("y"),W=this.getAxis("z"),B=A;B=this.bins.length)return null;const v=this.painter,gt=v.getFramePainter(),L=v.get3DToolTip(this.bins[O]),_t=gt.grx(v.getAxis("x").GetBinCoord(L.ix-.5)),pt=gt.gry(v.getAxis("y").GetBinCoord(L.iy-.5)),yt=gt.grz(v.getAxis("z").GetBinCoord(L.iz-.5)),Y=this.use_scale?Math.pow(Math.abs(L.value*this.use_scale),.3333):1;return L.x1=_t-this.scalex*Y,L.x2=_t+this.scalex*Y,L.y1=pt-this.scaley*Y,L.y2=pt+this.scaley*Y,L.z1=yt-this.scalez*Y,L.z2=yt+this.scalez*Y,L.color=this.tip_color,L},e.add3DMesh(s),V[r]>0){const C=this.v7EvalColor("line_color","lightblue"),O=new K.mrM({color:C}),v=1===V[r]?(0,R.Fc)(tt[r],O,rt[r]):(0,R.Fc)(ot[r],O);e.add3DMesh(v)}}d&&this.updatePaletteDraw()}draw3D(){if(!this.draw_content)return!1;const t=this.prepareDraw({only_indexes:!0,extra:-.5,right_extra:-1});return(this.options.Scatter?this.draw3DScatter(t):Promise.resolve(!1)).then(i=>i||this.draw3DBins(t))}redraw(t){const e=this.getFramePainter();return"resize"===t?(e.resize3D()&&e.render3D(),this):((0,Mt.wx)(e),e.create3DScene(this.options.Render3D).then(()=>(e.setAxesRanges(this.getAxis("x"),this.xmin,this.xmax,this.getAxis("y"),this.ymin,this.ymax,this.getAxis("z"),this.zmin,this.zmax),e.set3DOptions(this.options),e.drawXYZ(e.toplevel,zt.R,{zoom:X.settings.Zooming,ndim:3,draw:!0,v7:!0}),this.drawingBins(t))).then(()=>this.draw3D()).then(()=>(e.render3D(),e.addKeysHandler(),this)))}fillToolbar(){const t=this.getPadPainter();t&&(t.addPadButton("auto_zoom","Unzoom all axes","ToggleZoom","Ctrl *"),this.draw_content&&t.addPadButton("statbox","Toggle stat box","ToggleStatBox"),t.showPadButtons())}canZoomInside(t,e,i){let n=this.getHisto();return n&&(n=n["f"+t.toUpperCase()+"axis"]),!n||n.FindBin(i,.5)-n.FindBin(e,0)>1}autoZoom(){const t=this.getSelectIndex("x","left"),e=this.getSelectIndex("x","right"),i=this.getSelectIndex("y","left"),n=this.getSelectIndex("y","right"),x=this.getSelectIndex("z","left"),a=this.getSelectIndex("z","right"),d=this.getHisto();let f,g,h;if(t===e||i===n||x===a)return;let l=d.getBinContent(t+1,i+1,x+1);for(f=t;f0)return;let m=e,D=t,A=n,w=i,u=a,c=x;for(f=t;fl&&(f=D&&(D=f+1),g=w&&(w=g+1),h=c&&(c=h+1));let p,y,z,E,j,G,I=!1;return m===D-1&&m>t+1&&Di+1&&wx+1&&ct||Di||wx||c{if(0===i.indexOf(X.kInspect))return this.showInspector(i);this.decodeOptions(i),this.interactiveRedraw(!0,"drawopt")})}static draw(t,e){return(0,ft.A)(function*(){const i=new q(t,e);return i.mode3d=!0,(0,bt.ensureRCanvas)(i,"3d").then(()=>{i.setAsMainPainter(),i.options={Box:0,Scatter:!1,Sphere:0,Color:!1,minimum:X.kNoZoom,maximum:X.kNoZoom,FrontBox:!1,BackBox:!1};const n=i.v7EvalAttr("kind",""),x=i.v7EvalAttr("sub",0),a=i.options;switch(n){case"box":a.Box=10+x;break;case"sphere":a.Sphere=10+x;break;case"col":a.Color=!0;break;case"scat":a.Scatter=!0;break;default:a.Box=10}return i.scanContent(),i.redraw()})})()}}function Ct(et,t,e){return t?1===t.fAxes.length?At.RH1Painter.draw(et,t,e):2===t.fAxes.length?wt.RH2Painter.draw(et,t,e):3===t.fAxes.length?q.draw(et,t,e):null:null}}}]); +//# sourceMappingURL=746.b390eb60128dc9ff.js.map \ No newline at end of file diff --git a/docs/746.45fb610fbb305933.js.map b/docs/746.b390eb60128dc9ff.js.map similarity index 99% rename from docs/746.45fb610fbb305933.js.map rename to docs/746.b390eb60128dc9ff.js.map index 49bb3b4f..b1106ee9 100644 --- a/docs/746.45fb610fbb305933.js.map +++ b/docs/746.b390eb60128dc9ff.js.map @@ -1 +1 @@ -{"version":3,"file":"746.45fb610fbb305933.js","mappings":"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","names":["RH3Painter","RHistPainter","getDimension","scanContent","when_axis_changed","this","nbinsx","nbinsy","nbinsz","histo","getHisto","extractAxesProperties","isDisplayItem","gminbin","fContMin","gminposbin","fContMinPos","gmaxbin","fContMax","getBinContent","i","j","k","bin_content","draw_content","countStat","xaxis","getAxis","yaxis","zaxis","i1","getSelectIndex","i2","j1","j2","k1","k2","res","name","fName","entries","integral","meanx","meany","meanz","rmsx","rmsy","rmsz","xi","yi","zi","xx","xside","yy","yside","zz","zside","cont","stat_sum0","stat_sumx1","stat_sumy1","stat_sumz1","stat_sumx2","stat_sumy2","stat_sumz2","GetBinCoord","Math","abs","sqrt","fEntries","fillStatistic","stat","dostat","data","print_name","print_entries","floor","print_mean","print_rms","print_integral","clearStat","addText","format","getBinTooltips","ix","iy","iz","lines","dx","dy","dz","stepx","stepy","stepz","push","getObjectHint","getAxisBinTip","binz","lbl","round","floatToString","gStyle","fStatFormat","draw3DScatter","handle","_this","_asyncToGenerator","main","getFramePainter","di","stepi","dj","stepj","dk","stepk","coef","content_lmt","max","numpixels","sumz","webgl","pnts","PointsCreator","size_x3d","bins","Int32Array","rnd","TRandom","nbin","num","n","binx","random","biny","getBin","addPoint","grx","gry","grz","createPoints","color","v7EvalColor","then","mesh","add3DMesh","painter","tip_color","tooltip","intersect","indx","index","nvertex","length","p","tip","get3DToolTip","x1","GetBinLowEdge","x2","y1","y2","z1","z2","opacity","draw3DBins","single_bin_verts","single_bin_norms","fillcolor","buffer_size","use_lambert","use_helper","use_colors","use_opacity","use_scale","tipscale","options","Sphere","geom","SphereGeometry","applyMatrix4","Matrix4","makeRotationX","PI","computeVertexNormals","getIndex","array","pos","getAttribute","norm","Float32Array","iii","indicies","Box3D","Indexes","normals","Normals","vertices","Vertices","nn","vert","x","y","z","Box","Color","palette","getHistPalette","createContour","scalex","scaley","scalez","cols_size","wei","nbins","num_colors","cols_sequence","pow","colindx","getContourIndex","undefined","console","error","cols_nbins","Array","bin_verts","bin_norms","bin_tooltips","helper_kind","helper_indexes","helper_positions","ncol","nseq","Uint16Array","MeshSegments","Segments","GetBinCenter","vvv","bin_v","bin_n","vi","helper_segments","shift","helper_i","helper_p","all_bins_buffgeom","BufferGeometry","setAttribute","BufferAttribute","getColor","material","MeshLambertMaterial","transparent","vertexColors","MeshBasicMaterial","combined_bins","Mesh","bins_faces","faceIndex","value","lcolor","helper_material","LineBasicMaterial","createLineSegments","updatePaletteDraw","draw3D","prepareDraw","only_indexes","extra","right_extra","Scatter","Promise","resolve","redraw","reason","resize3D","render3D","assignFrame3DMethods","create3DScene","Render3D","setAxesRanges","xmin","xmax","ymin","ymax","zmin","zmax","set3DOptions","drawXYZ","toplevel","RAxisPainter","zoom","settings","Zooming","ndim","draw","v7","drawingBins","addKeysHandler","fillToolbar","pp","getPadPainter","addPadButton","showPadButtons","canZoomInside","axis","min","obj","toUpperCase","FindBin","autoZoom","ileft","iright","jleft","jright","kleft","kright","isany","fillHistContextMenu","menu","opts","getSupportedDrawOptions","addDrawMenu","arg","indexOf","kInspect","showInspector","decodeOptions","interactiveRedraw","dom","mode3d","ensureRCanvas","setAsMainPainter","minimum","kNoZoom","maximum","FrontBox","BackBox","kind","v7EvalAttr","sub","o","drawHistDisplayItem","opt","fAxes","RH1Painter","RH2Painter"],"ignoreList":[],"sourceRoot":"webpack:///","sources":["../node_modules/jsroot/modules/hist/RH3Painter.mjs"],"sourcesContent":["import { gStyle, settings, kNoZoom, kInspect } from '../core.mjs';\nimport { Matrix4, Mesh, MeshBasicMaterial, MeshLambertMaterial, SphereGeometry,\n LineBasicMaterial, BufferAttribute, BufferGeometry } from '../three.mjs';\nimport { floatToString, TRandom } from '../base/BasePainter.mjs';\nimport { ensureRCanvas } from '../gpad/RCanvasPainter.mjs';\nimport { RAxisPainter } from '../gpad/RAxisPainter.mjs';\nimport { RHistPainter } from '../hist2d/RHistPainter.mjs';\nimport { createLineSegments, PointsCreator, Box3D } from '../base/base3d.mjs';\nimport { RH1Painter } from './RH1Painter.mjs';\nimport { RH2Painter } from './RH2Painter.mjs';\nimport { assignFrame3DMethods } from './hist3d.mjs';\n\n/**\n * @summary Painter for RH3 classes\n *\n * @private\n */\n\nclass RH3Painter extends RHistPainter {\n\n /** @summary Returns histogram dimension */\n getDimension() { return 3; }\n\n scanContent(when_axis_changed) {\n // no need to rescan histogram while result does not depend from axis selection\n if (when_axis_changed && this.nbinsx && this.nbinsy && this.nbinsz) return;\n\n const histo = this.getHisto();\n if (!histo) return;\n\n this.extractAxesProperties(3);\n\n // global min/max, used at the moment in 3D drawing\n\n if (this.isDisplayItem()) {\n // take min/max values from the display item\n this.gminbin = histo.fContMin;\n this.gminposbin = histo.fContMinPos > 0 ? histo.fContMinPos : null;\n this.gmaxbin = histo.fContMax;\n } else {\n this.gminbin = this.gmaxbin = histo.getBinContent(1, 1, 1);\n\n for (let i = 0; i < this.nbinsx; ++i) {\n for (let j = 0; j < this.nbinsy; ++j) {\n for (let k = 0; k < this.nbinsz; ++k) {\n const bin_content = histo.getBinContent(i+1, j+1, k+1);\n if (bin_content < this.gminbin) this.gminbin = bin_content; else\n if (bin_content > this.gmaxbin) this.gmaxbin = bin_content;\n }\n }\n }\n }\n\n this.draw_content = (this.gmaxbin !== 0) || (this.gminbin !== 0);\n }\n\n /** @summary Count histogram statistic */\n countStat() {\n const histo = this.getHisto(),\n xaxis = this.getAxis('x'),\n yaxis = this.getAxis('y'),\n zaxis = this.getAxis('z'),\n i1 = this.getSelectIndex('x', 'left'),\n i2 = this.getSelectIndex('x', 'right'),\n j1 = this.getSelectIndex('y', 'left'),\n j2 = this.getSelectIndex('y', 'right'),\n k1 = this.getSelectIndex('z', 'left'),\n k2 = this.getSelectIndex('z', 'right'),\n res = { name: histo.fName, entries: 0, integral: 0, meanx: 0, meany: 0, meanz: 0, rmsx: 0, rmsy: 0, rmsz: 0 };\n let stat_sum0 = 0, stat_sumx1 = 0, stat_sumy1 = 0,\n stat_sumz1 = 0, stat_sumx2 = 0, stat_sumy2 = 0, stat_sumz2 = 0,\n xi, yi, zi, xx, xside, yy, yside, zz, zside, cont;\n\n for (xi = 1; xi <= this.nbinsx; ++xi) {\n xx = xaxis.GetBinCoord(xi - 0.5);\n xside = (xi <= i1+1) ? 0 : (xi > i2+1 ? 2 : 1);\n\n for (yi = 1; yi <= this.nbinsy; ++yi) {\n yy = yaxis.GetBinCoord(yi - 0.5);\n yside = (yi <= j1+1) ? 0 : (yi > j2+1 ? 2 : 1);\n\n for (zi = 1; zi <= this.nbinsz; ++zi) {\n zz = zaxis.GetBinCoord(zi - 0.5);\n zside = (zi <= k1+1) ? 0 : (zi > k2+1 ? 2 : 1);\n\n cont = histo.getBinContent(xi, yi, zi);\n res.entries += cont;\n\n if ((xside === 1) && (yside === 1) && (zside === 1)) {\n stat_sum0 += cont;\n stat_sumx1 += xx * cont;\n stat_sumy1 += yy * cont;\n stat_sumz1 += zz * cont;\n stat_sumx2 += xx**2 * cont;\n stat_sumy2 += yy**2 * cont;\n stat_sumz2 += zz**2 * cont;\n }\n }\n }\n }\n\n if (Math.abs(stat_sum0) > 1e-300) {\n res.meanx = stat_sumx1 / stat_sum0;\n res.meany = stat_sumy1 / stat_sum0;\n res.meanz = stat_sumz1 / stat_sum0;\n res.rmsx = Math.sqrt(Math.abs(stat_sumx2 / stat_sum0 - res.meanx**2));\n res.rmsy = Math.sqrt(Math.abs(stat_sumy2 / stat_sum0 - res.meany**2));\n res.rmsz = Math.sqrt(Math.abs(stat_sumz2 / stat_sum0 - res.meanz**2));\n }\n\n res.integral = stat_sum0;\n\n if (histo.fEntries > 1)\n res.entries = histo.fEntries;\n\n return res;\n }\n\n /** @summary Fill statistic */\n fillStatistic(stat, dostat /*, dofit */) {\n const data = this.countStat(),\n print_name = dostat % 10,\n print_entries = Math.floor(dostat / 10) % 10,\n print_mean = Math.floor(dostat / 100) % 10,\n print_rms = Math.floor(dostat / 1000) % 10,\n // print_under = Math.floor(dostat / 10000) % 10,\n // print_over = Math.floor(dostat / 100000) % 10,\n print_integral = Math.floor(dostat / 1000000) % 10;\n // print_skew = Math.floor(dostat / 10000000) % 10;\n // print_kurt = Math.floor(dostat / 100000000) % 10;\n\n stat.clearStat();\n\n if (print_name > 0)\n stat.addText(data.name);\n\n if (print_entries > 0)\n stat.addText('Entries = ' + stat.format(data.entries, 'entries'));\n\n if (print_mean > 0) {\n stat.addText('Mean x = ' + stat.format(data.meanx));\n stat.addText('Mean y = ' + stat.format(data.meany));\n stat.addText('Mean z = ' + stat.format(data.meanz));\n }\n\n if (print_rms > 0) {\n stat.addText('Std Dev x = ' + stat.format(data.rmsx));\n stat.addText('Std Dev y = ' + stat.format(data.rmsy));\n stat.addText('Std Dev z = ' + stat.format(data.rmsz));\n }\n\n if (print_integral > 0)\n stat.addText('Integral = ' + stat.format(data.integral, 'entries'));\n\n\n return true;\n }\n\n /** @summary Provide text information (tooltips) for histogram bin */\n getBinTooltips(ix, iy, iz) {\n const lines = [], histo = this.getHisto();\n let dx = 1, dy = 1, dz = 1;\n\n if (this.isDisplayItem()) {\n dx = histo.stepx || 1;\n dy = histo.stepy || 1;\n dz = histo.stepz || 1;\n }\n\n lines.push(this.getObjectHint(),\n `x = ${this.getAxisBinTip('x', ix, dx)} xbin=${ix+1}`,\n `y = ${this.getAxisBinTip('y', iy, dy)} ybin=${iy+1}`,\n `z = ${this.getAxisBinTip('z', iz, dz)} zbin=${iz+1}`);\n\n const binz = histo.getBinContent(ix+1, iy+1, iz+1),\n lbl = 'entries = '+ ((dx > 1) || (dy > 1) || (dz > 1) ? '~' : '');\n if (binz === Math.round(binz))\n lines.push(lbl + binz);\n else\n lines.push(lbl + floatToString(binz, gStyle.fStatFormat));\n\n return lines;\n }\n\n /** @summary Try to draw 3D histogram as scatter plot\n * @desc If there are too many points, returns promise with false */\n async draw3DScatter(handle) {\n const histo = this.getHisto(),\n main = this.getFramePainter(),\n i1 = handle.i1, i2 = handle.i2, di = handle.stepi,\n j1 = handle.j1, j2 = handle.j2, dj = handle.stepj,\n k1 = handle.k1, k2 = handle.k2, dk = handle.stepk;\n\n if ((i2 <= i1) || (j2 <= j1) || (k2 <= k1))\n return true;\n\n // scale down factor if too large values\n const coef = (this.gmaxbin > 1000) ? 1000/this.gmaxbin : 1,\n content_lmt = Math.max(0, this.gminbin);\n let i, j, k, bin_content, numpixels = 0, sumz = 0;\n\n for (i = i1; i < i2; i += di) {\n for (j = j1; j < j2; j += dj) {\n for (k = k1; k < k2; k += dk) {\n bin_content = histo.getBinContent(i+1, j+1, k+1);\n sumz += bin_content;\n if (bin_content <= content_lmt) continue;\n numpixels += Math.round(bin_content*coef);\n }\n }\n }\n\n // too many pixels - use box drawing\n if (numpixels > (main.webgl ? 100000 : 30000))\n return false;\n\n const pnts = new PointsCreator(numpixels, main.webgl, main.size_x3d/200),\n bins = new Int32Array(numpixels),\n xaxis = this.getAxis('x'), yaxis = this.getAxis('y'), zaxis = this.getAxis('z'),\n rnd = new TRandom(sumz);\n let nbin = 0;\n\n for (i = i1; i < i2; i += di) {\n for (j = j1; j < j2; j += dj) {\n for (k = k1; k < k2; k += dk) {\n bin_content = histo.getBinContent(i+1, j+1, k+1);\n if (bin_content <= content_lmt) continue;\n const num = Math.round(bin_content*coef);\n\n for (let n=0; n {\n main.add3DMesh(mesh);\n\n mesh.bins = bins;\n mesh.painter = this;\n mesh.tip_color = 0x00FF00;\n\n mesh.tooltip = function(intersect) {\n const indx = Math.floor(intersect.index / this.nvertex);\n if ((indx < 0) || (indx >= this.bins.length)) return null;\n\n const p = this.painter,\n main = p.getFramePainter(),\n tip = p.get3DToolTip(this.bins[indx]);\n\n tip.x1 = main.grx(p.getAxis('x').GetBinLowEdge(tip.ix));\n tip.x2 = main.grx(p.getAxis('x').GetBinLowEdge(tip.ix+di));\n tip.y1 = main.gry(p.getAxis('y').GetBinLowEdge(tip.iy));\n tip.y2 = main.gry(p.getAxis('y').GetBinLowEdge(tip.iy+dj));\n tip.z1 = main.grz(p.getAxis('z').GetBinLowEdge(tip.iz));\n tip.z2 = main.grz(p.getAxis('z').GetBinLowEdge(tip.iz+dk));\n tip.color = this.tip_color;\n tip.opacity = 0.3;\n\n return tip;\n };\n\n return true;\n });\n }\n\n /** @summary Drawing of 3D histogram */\n draw3DBins(handle) {\n const main = this.getFramePainter();\n let fillcolor = this.v7EvalColor('fill_color', 'red'),\n buffer_size = 0, use_lambert = false,\n use_helper = false, use_colors = false, use_opacity = 1, use_scale = true,\n single_bin_verts, single_bin_norms,\n tipscale = 0.5;\n\n if (this.options.Sphere) {\n // drawing spheres\n tipscale = 0.4;\n use_lambert = true;\n if (this.options.Sphere === 11) use_colors = true;\n\n const geom = main.webgl ? new SphereGeometry(0.5, 16, 12) : new SphereGeometry(0.5, 8, 6);\n geom.applyMatrix4(new Matrix4().makeRotationX(Math.PI/2));\n geom.computeVertexNormals();\n\n const indx = geom.getIndex().array,\n pos = geom.getAttribute('position').array,\n norm = geom.getAttribute('normal').array;\n\n buffer_size = indx.length*3;\n single_bin_verts = new Float32Array(buffer_size);\n single_bin_norms = new Float32Array(buffer_size);\n\n for (let k=0; k= 0) {\n if (cols_size[colindx] === undefined) {\n cols_size[colindx] = 0;\n cols_sequence[colindx] = num_colors++;\n }\n cols_size[colindx]+=1;\n } else\n console.error(`not found color for value = ${bin_content}`);\n }\n }\n }\n\n if (!use_colors) {\n cols_size.push(nbins);\n num_colors = 1;\n cols_sequence = [0];\n }\n\n const cols_nbins = new Array(num_colors),\n bin_verts = new Array(num_colors),\n bin_norms = new Array(num_colors),\n bin_tooltips = new Array(num_colors),\n helper_kind = new Array(num_colors),\n helper_indexes = new Array(num_colors), // helper_kind === 1, use original vertices\n helper_positions = new Array(num_colors); // helper_kind === 2, all vertices copied into separate buffer\n\n for (let ncol = 0; ncol < cols_size.length; ++ncol) {\n if (!cols_size[ncol]) continue; // ignore dummy colors\n\n nbins = cols_size[ncol]; // how many bins with specified color\n const nseq = cols_sequence[ncol];\n\n cols_nbins[nseq] = 0; // counter for the filled bins\n\n helper_kind[nseq] = 0;\n\n // 1 - use same vertices to create helper, one can use maximal 64K vertices\n // 2 - all vertices copied into separate buffer\n if (use_helper)\n helper_kind[nseq] = (nbins * buffer_size / 3 > 0xFFF0) ? 2 : 1;\n\n bin_verts[nseq] = new Float32Array(nbins * buffer_size);\n bin_norms[nseq] = new Float32Array(nbins * buffer_size);\n bin_tooltips[nseq] = new Int32Array(nbins);\n\n if (helper_kind[nseq] === 1)\n helper_indexes[nseq] = new Uint16Array(nbins * Box3D.MeshSegments.length);\n\n if (helper_kind[nseq] === 2)\n helper_positions[nseq] = new Float32Array(nbins * Box3D.Segments.length * 3);\n }\n\n let binx, grx, biny, gry, binz, grz;\n xaxis = this.getAxis('x');\n yaxis = this.getAxis('y');\n zaxis = this.getAxis('z');\n\n for (i = i1; i < i2; i += di) {\n binx = xaxis.GetBinCenter(i+1); grx = main.grx(binx);\n for (j = j1; j < j2; j += dj) {\n biny = yaxis.GetBinCenter(j+1); gry = main.gry(biny);\n for (k = k1; k < k2; k +=dk) {\n bin_content = histo.getBinContent(i+1, j+1, k+1);\n if (!this.options.Color && ((bin_content === 0) || (bin_content < this.gminbin))) continue;\n\n wei = use_scale ? Math.pow(Math.abs(bin_content*use_scale), 0.3333) : 1;\n if (wei < 1e-3) continue; // do not show very small bins\n\n let nseq = 0;\n if (use_colors) {\n const colindx = palette.getContourIndex(bin_content);\n if (colindx < 0) continue;\n nseq = cols_sequence[colindx];\n }\n\n nbins = cols_nbins[nseq];\n\n binz = zaxis.GetBinCenter(k+1); grz = main.grz(binz);\n\n // remember bin index for tooltip\n bin_tooltips[nseq][nbins] = histo.getBin(i+1, j+1, k+1);\n\n let vvv = nbins * buffer_size;\n const bin_v = bin_verts[nseq], bin_n = bin_norms[nseq];\n\n // Grab the coordinates and scale that are being assigned to each bin\n for (let vi = 0; vi < buffer_size; vi+=3, vvv+=3) {\n bin_v[vvv] = grx + single_bin_verts[vi]*scalex*wei;\n bin_v[vvv+1] = gry + single_bin_verts[vi+1]*scaley*wei;\n bin_v[vvv+2] = grz + single_bin_verts[vi+2]*scalez*wei;\n\n bin_n[vvv] = single_bin_norms[vi];\n bin_n[vvv+1] = single_bin_norms[vi+1];\n bin_n[vvv+2] = single_bin_norms[vi+2];\n }\n\n if (helper_kind[nseq] === 1) {\n // reuse vertices created for the mesh\n const helper_segments = Box3D.MeshSegments;\n vvv = nbins * helper_segments.length;\n const shift = Math.round(nbins * buffer_size/3),\n helper_i = helper_indexes[nseq];\n for (let n = 0; n < helper_segments.length; ++n)\n helper_i[vvv+n] = shift + helper_segments[n];\n }\n\n if (helper_kind[nseq] === 2) {\n const helper_segments = Box3D.Segments,\n helper_p = helper_positions[nseq];\n vvv = nbins * helper_segments.length * 3;\n for (let n = 0; n < helper_segments.length; ++n, vvv += 3) {\n const vert = Box3D.Vertices[helper_segments[n]];\n helper_p[vvv] = grx + (vert.x-0.5)*scalex*wei;\n helper_p[vvv+1] = gry + (vert.y-0.5)*scaley*wei;\n helper_p[vvv+2] = grz + (vert.z-0.5)*scalez*wei;\n }\n }\n\n cols_nbins[nseq] = nbins+1;\n }\n }\n }\n\n for (let ncol = 0; ncol < cols_size.length; ++ncol) {\n if (!cols_size[ncol]) continue; // ignore dummy colors\n\n const nseq = cols_sequence[ncol],\n // BufferGeometries that store geometry of all bins\n all_bins_buffgeom = new BufferGeometry();\n\n // Create mesh from bin buffergeometry\n all_bins_buffgeom.setAttribute('position', new BufferAttribute(bin_verts[nseq], 3));\n all_bins_buffgeom.setAttribute('normal', new BufferAttribute(bin_norms[nseq], 3));\n\n if (use_colors) fillcolor = palette.getColor(ncol);\n\n const material = use_lambert\n ? new MeshLambertMaterial({ color: fillcolor, opacity: use_opacity, transparent: use_opacity < 1, vertexColors: false })\n : new MeshBasicMaterial({ color: fillcolor, opacity: use_opacity, transparent: use_opacity < 1, vertexColors: false }),\n combined_bins = new Mesh(all_bins_buffgeom, material);\n\n combined_bins.bins = bin_tooltips[nseq];\n combined_bins.bins_faces = buffer_size/9;\n combined_bins.painter = this;\n\n combined_bins.scalex = tipscale*scalex;\n combined_bins.scaley = tipscale*scaley;\n combined_bins.scalez = tipscale*scalez;\n combined_bins.tip_color = 0x00FF00;\n combined_bins.use_scale = use_scale;\n\n combined_bins.tooltip = function(intersect) {\n const indx = Math.floor(intersect.faceIndex / this.bins_faces);\n if ((indx < 0) || (indx >= this.bins.length)) return null;\n\n const p = this.painter,\n main = p.getFramePainter(),\n tip = p.get3DToolTip(this.bins[indx]),\n grx = main.grx(p.getAxis('x').GetBinCoord(tip.ix-0.5)),\n gry = main.gry(p.getAxis('y').GetBinCoord(tip.iy-0.5)),\n grz = main.grz(p.getAxis('z').GetBinCoord(tip.iz-0.5)),\n wei = this.use_scale ? Math.pow(Math.abs(tip.value*this.use_scale), 0.3333) : 1;\n\n tip.x1 = grx - this.scalex*wei; tip.x2 = grx + this.scalex*wei;\n tip.y1 = gry - this.scaley*wei; tip.y2 = gry + this.scaley*wei;\n tip.z1 = grz - this.scalez*wei; tip.z2 = grz + this.scalez*wei;\n\n tip.color = this.tip_color;\n\n return tip;\n };\n\n main.add3DMesh(combined_bins);\n\n if (helper_kind[nseq] > 0) {\n const lcolor = this.v7EvalColor('line_color', 'lightblue'),\n helper_material = new LineBasicMaterial({ color: lcolor }),\n lines = (helper_kind[nseq] === 1)\n // reuse positions from the mesh - only special index was created\n ? createLineSegments(bin_verts[nseq], helper_material, helper_indexes[nseq])\n : createLineSegments(helper_positions[nseq], helper_material);\n\n main.add3DMesh(lines);\n }\n }\n\n if (use_colors)\n this.updatePaletteDraw();\n }\n\n draw3D() {\n if (!this.draw_content)\n return false;\n\n // this.options.Scatter = false;\n // this.options.Box = true;\n\n const handle = this.prepareDraw({ only_indexes: true, extra: -0.5, right_extra: -1 }),\n pr = this.options.Scatter ? this.draw3DScatter(handle) : Promise.resolve(false);\n\n return pr.then(res => {\n return res || this.draw3DBins(handle);\n });\n }\n\n /** @summary Redraw histogram */\n redraw(reason) {\n const main = this.getFramePainter(); // who makes axis and 3D drawing\n\n if (reason === 'resize') {\n if (main.resize3D()) main.render3D();\n return this;\n }\n\n assignFrame3DMethods(main);\n return main.create3DScene(this.options.Render3D).then(() => {\n main.setAxesRanges(this.getAxis('x'), this.xmin, this.xmax, this.getAxis('y'), this.ymin, this.ymax, this.getAxis('z'), this.zmin, this.zmax);\n main.set3DOptions(this.options);\n main.drawXYZ(main.toplevel, RAxisPainter, { zoom: settings.Zooming, ndim: 3, draw: true, v7: true });\n return this.drawingBins(reason);\n }).then(() => this.draw3D()).then(() => {\n main.render3D();\n main.addKeysHandler();\n return this;\n });\n }\n\n /** @summary Fill pad toolbar with RH3-related functions */\n fillToolbar() {\n const pp = this.getPadPainter();\n if (!pp) return;\n\n pp.addPadButton('auto_zoom', 'Unzoom all axes', 'ToggleZoom', 'Ctrl *');\n if (this.draw_content)\n pp.addPadButton('statbox', 'Toggle stat box', 'ToggleStatBox');\n pp.showPadButtons();\n }\n\n /** @summary Checks if it makes sense to zoom inside specified axis range */\n canZoomInside(axis, min, max) {\n let obj = this.getHisto();\n if (obj) obj = obj['f'+axis.toUpperCase()+'axis'];\n return !obj || (obj.FindBin(max, 0.5) - obj.FindBin(min, 0) > 1);\n }\n\n /** @summary Perform automatic zoom inside non-zero region of histogram */\n autoZoom() {\n const i1 = this.getSelectIndex('x', 'left'),\n i2 = this.getSelectIndex('x', 'right'),\n j1 = this.getSelectIndex('y', 'left'),\n j2 = this.getSelectIndex('y', 'right'),\n k1 = this.getSelectIndex('z', 'left'),\n k2 = this.getSelectIndex('z', 'right'),\n histo = this.getHisto();\n let i, j, k;\n\n if ((i1 === i2) || (j1 === j2) || (k1 === k2)) return;\n\n // first find minimum\n let min = histo.getBinContent(i1 + 1, j1 + 1, k1+1);\n for (i = i1; i < i2; ++i) {\n for (j = j1; j < j2; ++j) {\n for (k = k1; k < k2; ++k)\n min = Math.min(min, histo.getBinContent(i+1, j+1, k+1));\n }\n }\n\n if (min > 0) return; // if all points positive, no chance for autoscale\n\n let ileft = i2, iright = i1, jleft = j2, jright = j1, kleft = k2, kright = k1;\n\n for (i = i1; i < i2; ++i) {\n for (j = j1; j < j2; ++j) {\n for (k = k1; k < k2; ++k) {\n if (histo.getBinContent(i+1, j+1, k+1) > min) {\n if (i < ileft) ileft = i;\n if (i >= iright) iright = i + 1;\n if (j < jleft) jleft = j;\n if (j >= jright) jright = j + 1;\n if (k < kleft) kleft = k;\n if (k >= kright) kright = k + 1;\n }\n }\n }\n }\n\n let xmin, xmax, ymin, ymax, zmin, zmax, isany = false;\n\n if ((ileft === iright-1) && (ileft > i1+1) && (iright < i2-1)) { ileft--; iright++; }\n if ((jleft === jright-1) && (jleft > j1+1) && (jright < j2-1)) { jleft--; jright++; }\n if ((kleft === kright-1) && (kleft > k1+1) && (kright < k2-1)) { kleft--; kright++; }\n\n if ((ileft > i1 || iright < i2) && (ileft < iright - 1)) {\n xmin = this.getAxis('x').GetBinLowEdge(ileft+1);\n xmax = this.getAxis('x').GetBinLowEdge(iright+1);\n isany = true;\n }\n\n if ((jleft > j1 || jright < j2) && (jleft < jright - 1)) {\n ymin = this.getAxis('y').GetBinLowEdge(jleft+1);\n ymax = this.getAxis('y').GetBinLowEdge(jright+1);\n isany = true;\n }\n\n if ((kleft > k1 || kright < k2) && (kleft < kright - 1)) {\n zmin = this.getAxis('z').GetBinLowEdge(kleft+1);\n zmax = this.getAxis('z').GetBinLowEdge(kright+1);\n isany = true;\n }\n\n if (isany)\n return this.getFramePainter().zoom(xmin, xmax, ymin, ymax, zmin, zmax);\n }\n\n /** @summary Fill histogram context menu */\n fillHistContextMenu(menu) {\n const opts = this.getSupportedDrawOptions();\n\n menu.addDrawMenu('Draw with', opts, arg => {\n if (arg.indexOf(kInspect) === 0)\n return this.showInspector(arg);\n\n this.decodeOptions(arg);\n\n this.interactiveRedraw(true, 'drawopt');\n });\n }\n\n /** @summary draw RH3 object */\n static async draw(dom, histo /* ,opt */) {\n const painter = new RH3Painter(dom, histo);\n painter.mode3d = true;\n\n return ensureRCanvas(painter, '3d').then(() => {\n painter.setAsMainPainter();\n\n painter.options = { Box: 0, Scatter: false, Sphere: 0, Color: false, minimum: kNoZoom, maximum: kNoZoom, FrontBox: false, BackBox: false };\n\n const kind = painter.v7EvalAttr('kind', ''),\n sub = painter.v7EvalAttr('sub', 0),\n o = painter.options;\n\n switch (kind) {\n case 'box': o.Box = 10 + sub; break;\n case 'sphere': o.Sphere = 10 + sub; break;\n case 'col': o.Color = true; break;\n case 'scat': o.Scatter = true; break;\n default: o.Box = 10;\n }\n\n painter.scanContent();\n return painter.redraw();\n });\n }\n\n} // class RH3Painter\n\n/** @summary draw RHistDisplayItem object\n * @private */\nfunction drawHistDisplayItem(dom, obj, opt) {\n if (!obj)\n return null;\n\n if (obj.fAxes.length === 1)\n return RH1Painter.draw(dom, obj, opt);\n\n if (obj.fAxes.length === 2)\n return RH2Painter.draw(dom, obj, opt);\n\n if (obj.fAxes.length === 3)\n return RH3Painter.draw(dom, obj, opt);\n\n return null;\n}\n\nexport { RH3Painter, drawHistDisplayItem };\n"],"x_google_ignoreList":[0]} \ No newline at end of file +{"version":3,"file":"746.b390eb60128dc9ff.js","mappings":"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","names":["RH3Painter","RHistPainter","getDimension","scanContent","when_axis_changed","this","nbinsx","nbinsy","nbinsz","histo","getHisto","extractAxesProperties","isDisplayItem","gminbin","fContMin","gminposbin","fContMinPos","gmaxbin","fContMax","getBinContent","i","j","k","bin_content","draw_content","countStat","xaxis","getAxis","yaxis","zaxis","i1","getSelectIndex","i2","j1","j2","k1","k2","res","name","fName","entries","integral","meanx","meany","meanz","rmsx","rmsy","rmsz","xi","yi","zi","xx","xside","yy","yside","zz","zside","cont","stat_sum0","stat_sumx1","stat_sumy1","stat_sumz1","stat_sumx2","stat_sumy2","stat_sumz2","GetBinCoord","Math","abs","sqrt","fEntries","fillStatistic","stat","dostat","data","print_name","print_entries","floor","print_mean","print_rms","print_integral","clearStat","addText","format","getBinTooltips","ix","iy","iz","lines","dx","dy","dz","stepx","stepy","stepz","push","getObjectHint","getAxisBinTip","binz","lbl","round","floatToString","gStyle","fStatFormat","draw3DScatter","handle","_this","_asyncToGenerator","main","getFramePainter","di","stepi","dj","stepj","dk","stepk","coef","content_lmt","max","numpixels","sumz","webgl","pnts","PointsCreator","size_x3d","bins","Int32Array","rnd","TRandom","nbin","num","n","binx","random","biny","getBin","addPoint","grx","gry","grz","createPoints","color","v7EvalColor","then","mesh","add3DMesh","painter","tip_color","tooltip","intersect","indx","index","nvertex","length","p","tip","get3DToolTip","x1","GetBinLowEdge","x2","y1","y2","z1","z2","opacity","draw3DBins","single_bin_verts","single_bin_norms","fillcolor","buffer_size","use_lambert","use_helper","use_colors","use_opacity","use_scale","tipscale","options","Sphere","geom","SphereGeometry","applyMatrix4","Matrix4","makeRotationX","PI","computeVertexNormals","getIndex","array","pos","getAttribute","norm","Float32Array","iii","indicies","Box3D","Indexes","normals","Normals","vertices","Vertices","nn","vert","x","y","z","Box","Color","palette","getHistPalette","createContour","scalex","scaley","scalez","cols_size","wei","nbins","num_colors","cols_sequence","pow","colindx","getContourIndex","undefined","console","error","cols_nbins","Array","bin_verts","bin_norms","bin_tooltips","helper_kind","helper_indexes","helper_positions","ncol","nseq","Uint16Array","MeshSegments","Segments","GetBinCenter","vvv","bin_v","bin_n","vi","helper_segments","shift","helper_i","helper_p","all_bins_buffgeom","BufferGeometry","setAttribute","BufferAttribute","getColor","material","MeshLambertMaterial","transparent","vertexColors","MeshBasicMaterial","combined_bins","Mesh","bins_faces","faceIndex","value","lcolor","helper_material","LineBasicMaterial","createLineSegments","updatePaletteDraw","draw3D","prepareDraw","only_indexes","extra","right_extra","Scatter","Promise","resolve","redraw","reason","resize3D","render3D","assignFrame3DMethods","create3DScene","Render3D","setAxesRanges","xmin","xmax","ymin","ymax","zmin","zmax","set3DOptions","drawXYZ","toplevel","RAxisPainter","zoom","settings","Zooming","ndim","draw","v7","drawingBins","addKeysHandler","fillToolbar","pp","getPadPainter","addPadButton","showPadButtons","canZoomInside","axis","min","obj","toUpperCase","FindBin","autoZoom","ileft","iright","jleft","jright","kleft","kright","isany","fillHistContextMenu","menu","opts","getSupportedDrawOptions","addDrawMenu","arg","indexOf","kInspect","showInspector","decodeOptions","interactiveRedraw","dom","mode3d","ensureRCanvas","setAsMainPainter","minimum","kNoZoom","maximum","FrontBox","BackBox","kind","v7EvalAttr","sub","o","drawHistDisplayItem","opt","fAxes","RH1Painter","RH2Painter"],"ignoreList":[],"sourceRoot":"webpack:///","sources":["../node_modules/jsroot/modules/hist/RH3Painter.mjs"],"sourcesContent":["import { gStyle, settings, kNoZoom, kInspect } from '../core.mjs';\nimport { Matrix4, Mesh, MeshBasicMaterial, MeshLambertMaterial, SphereGeometry,\n LineBasicMaterial, BufferAttribute, BufferGeometry } from '../three.mjs';\nimport { floatToString, TRandom } from '../base/BasePainter.mjs';\nimport { ensureRCanvas } from '../gpad/RCanvasPainter.mjs';\nimport { RAxisPainter } from '../gpad/RAxisPainter.mjs';\nimport { RHistPainter } from '../hist2d/RHistPainter.mjs';\nimport { createLineSegments, PointsCreator, Box3D } from '../base/base3d.mjs';\nimport { RH1Painter } from './RH1Painter.mjs';\nimport { RH2Painter } from './RH2Painter.mjs';\nimport { assignFrame3DMethods } from './hist3d.mjs';\n\n/**\n * @summary Painter for RH3 classes\n *\n * @private\n */\n\nclass RH3Painter extends RHistPainter {\n\n /** @summary Returns histogram dimension */\n getDimension() { return 3; }\n\n scanContent(when_axis_changed) {\n // no need to rescan histogram while result does not depend from axis selection\n if (when_axis_changed && this.nbinsx && this.nbinsy && this.nbinsz) return;\n\n const histo = this.getHisto();\n if (!histo) return;\n\n this.extractAxesProperties(3);\n\n // global min/max, used at the moment in 3D drawing\n\n if (this.isDisplayItem()) {\n // take min/max values from the display item\n this.gminbin = histo.fContMin;\n this.gminposbin = histo.fContMinPos > 0 ? histo.fContMinPos : null;\n this.gmaxbin = histo.fContMax;\n } else {\n this.gminbin = this.gmaxbin = histo.getBinContent(1, 1, 1);\n\n for (let i = 0; i < this.nbinsx; ++i) {\n for (let j = 0; j < this.nbinsy; ++j) {\n for (let k = 0; k < this.nbinsz; ++k) {\n const bin_content = histo.getBinContent(i+1, j+1, k+1);\n if (bin_content < this.gminbin) this.gminbin = bin_content; else\n if (bin_content > this.gmaxbin) this.gmaxbin = bin_content;\n }\n }\n }\n }\n\n this.draw_content = (this.gmaxbin !== 0) || (this.gminbin !== 0);\n }\n\n /** @summary Count histogram statistic */\n countStat() {\n const histo = this.getHisto(),\n xaxis = this.getAxis('x'),\n yaxis = this.getAxis('y'),\n zaxis = this.getAxis('z'),\n i1 = this.getSelectIndex('x', 'left'),\n i2 = this.getSelectIndex('x', 'right'),\n j1 = this.getSelectIndex('y', 'left'),\n j2 = this.getSelectIndex('y', 'right'),\n k1 = this.getSelectIndex('z', 'left'),\n k2 = this.getSelectIndex('z', 'right'),\n res = { name: histo.fName, entries: 0, integral: 0, meanx: 0, meany: 0, meanz: 0, rmsx: 0, rmsy: 0, rmsz: 0 };\n let stat_sum0 = 0, stat_sumx1 = 0, stat_sumy1 = 0,\n stat_sumz1 = 0, stat_sumx2 = 0, stat_sumy2 = 0, stat_sumz2 = 0,\n xi, yi, zi, xx, xside, yy, yside, zz, zside, cont;\n\n for (xi = 1; xi <= this.nbinsx; ++xi) {\n xx = xaxis.GetBinCoord(xi - 0.5);\n xside = (xi <= i1+1) ? 0 : (xi > i2+1 ? 2 : 1);\n\n for (yi = 1; yi <= this.nbinsy; ++yi) {\n yy = yaxis.GetBinCoord(yi - 0.5);\n yside = (yi <= j1+1) ? 0 : (yi > j2+1 ? 2 : 1);\n\n for (zi = 1; zi <= this.nbinsz; ++zi) {\n zz = zaxis.GetBinCoord(zi - 0.5);\n zside = (zi <= k1+1) ? 0 : (zi > k2+1 ? 2 : 1);\n\n cont = histo.getBinContent(xi, yi, zi);\n res.entries += cont;\n\n if ((xside === 1) && (yside === 1) && (zside === 1)) {\n stat_sum0 += cont;\n stat_sumx1 += xx * cont;\n stat_sumy1 += yy * cont;\n stat_sumz1 += zz * cont;\n stat_sumx2 += xx**2 * cont;\n stat_sumy2 += yy**2 * cont;\n stat_sumz2 += zz**2 * cont;\n }\n }\n }\n }\n\n if (Math.abs(stat_sum0) > 1e-300) {\n res.meanx = stat_sumx1 / stat_sum0;\n res.meany = stat_sumy1 / stat_sum0;\n res.meanz = stat_sumz1 / stat_sum0;\n res.rmsx = Math.sqrt(Math.abs(stat_sumx2 / stat_sum0 - res.meanx**2));\n res.rmsy = Math.sqrt(Math.abs(stat_sumy2 / stat_sum0 - res.meany**2));\n res.rmsz = Math.sqrt(Math.abs(stat_sumz2 / stat_sum0 - res.meanz**2));\n }\n\n res.integral = stat_sum0;\n\n if (histo.fEntries > 1)\n res.entries = histo.fEntries;\n\n return res;\n }\n\n /** @summary Fill statistic */\n fillStatistic(stat, dostat /*, dofit */) {\n const data = this.countStat(),\n print_name = dostat % 10,\n print_entries = Math.floor(dostat / 10) % 10,\n print_mean = Math.floor(dostat / 100) % 10,\n print_rms = Math.floor(dostat / 1000) % 10,\n // print_under = Math.floor(dostat / 10000) % 10,\n // print_over = Math.floor(dostat / 100000) % 10,\n print_integral = Math.floor(dostat / 1000000) % 10;\n // print_skew = Math.floor(dostat / 10000000) % 10;\n // print_kurt = Math.floor(dostat / 100000000) % 10;\n\n stat.clearStat();\n\n if (print_name > 0)\n stat.addText(data.name);\n\n if (print_entries > 0)\n stat.addText('Entries = ' + stat.format(data.entries, 'entries'));\n\n if (print_mean > 0) {\n stat.addText('Mean x = ' + stat.format(data.meanx));\n stat.addText('Mean y = ' + stat.format(data.meany));\n stat.addText('Mean z = ' + stat.format(data.meanz));\n }\n\n if (print_rms > 0) {\n stat.addText('Std Dev x = ' + stat.format(data.rmsx));\n stat.addText('Std Dev y = ' + stat.format(data.rmsy));\n stat.addText('Std Dev z = ' + stat.format(data.rmsz));\n }\n\n if (print_integral > 0)\n stat.addText('Integral = ' + stat.format(data.integral, 'entries'));\n\n\n return true;\n }\n\n /** @summary Provide text information (tooltips) for histogram bin */\n getBinTooltips(ix, iy, iz) {\n const lines = [], histo = this.getHisto();\n let dx = 1, dy = 1, dz = 1;\n\n if (this.isDisplayItem()) {\n dx = histo.stepx || 1;\n dy = histo.stepy || 1;\n dz = histo.stepz || 1;\n }\n\n lines.push(this.getObjectHint(),\n `x = ${this.getAxisBinTip('x', ix, dx)} xbin=${ix+1}`,\n `y = ${this.getAxisBinTip('y', iy, dy)} ybin=${iy+1}`,\n `z = ${this.getAxisBinTip('z', iz, dz)} zbin=${iz+1}`);\n\n const binz = histo.getBinContent(ix+1, iy+1, iz+1),\n lbl = 'entries = '+ ((dx > 1) || (dy > 1) || (dz > 1) ? '~' : '');\n if (binz === Math.round(binz))\n lines.push(lbl + binz);\n else\n lines.push(lbl + floatToString(binz, gStyle.fStatFormat));\n\n return lines;\n }\n\n /** @summary Try to draw 3D histogram as scatter plot\n * @desc If there are too many points, returns promise with false */\n async draw3DScatter(handle) {\n const histo = this.getHisto(),\n main = this.getFramePainter(),\n i1 = handle.i1, i2 = handle.i2, di = handle.stepi,\n j1 = handle.j1, j2 = handle.j2, dj = handle.stepj,\n k1 = handle.k1, k2 = handle.k2, dk = handle.stepk;\n\n if ((i2 <= i1) || (j2 <= j1) || (k2 <= k1))\n return true;\n\n // scale down factor if too large values\n const coef = (this.gmaxbin > 1000) ? 1000/this.gmaxbin : 1,\n content_lmt = Math.max(0, this.gminbin);\n let i, j, k, bin_content, numpixels = 0, sumz = 0;\n\n for (i = i1; i < i2; i += di) {\n for (j = j1; j < j2; j += dj) {\n for (k = k1; k < k2; k += dk) {\n bin_content = histo.getBinContent(i+1, j+1, k+1);\n sumz += bin_content;\n if (bin_content <= content_lmt) continue;\n numpixels += Math.round(bin_content*coef);\n }\n }\n }\n\n // too many pixels - use box drawing\n if (numpixels > (main.webgl ? 100000 : 30000))\n return false;\n\n const pnts = new PointsCreator(numpixels, main.webgl, main.size_x3d/200),\n bins = new Int32Array(numpixels),\n xaxis = this.getAxis('x'), yaxis = this.getAxis('y'), zaxis = this.getAxis('z'),\n rnd = new TRandom(sumz);\n let nbin = 0;\n\n for (i = i1; i < i2; i += di) {\n for (j = j1; j < j2; j += dj) {\n for (k = k1; k < k2; k += dk) {\n bin_content = histo.getBinContent(i+1, j+1, k+1);\n if (bin_content <= content_lmt) continue;\n const num = Math.round(bin_content*coef);\n\n for (let n=0; n {\n main.add3DMesh(mesh);\n\n mesh.bins = bins;\n mesh.painter = this;\n mesh.tip_color = 0x00FF00;\n\n mesh.tooltip = function(intersect) {\n const indx = Math.floor(intersect.index / this.nvertex);\n if ((indx < 0) || (indx >= this.bins.length)) return null;\n\n const p = this.painter,\n main = p.getFramePainter(),\n tip = p.get3DToolTip(this.bins[indx]);\n\n tip.x1 = main.grx(p.getAxis('x').GetBinLowEdge(tip.ix));\n tip.x2 = main.grx(p.getAxis('x').GetBinLowEdge(tip.ix+di));\n tip.y1 = main.gry(p.getAxis('y').GetBinLowEdge(tip.iy));\n tip.y2 = main.gry(p.getAxis('y').GetBinLowEdge(tip.iy+dj));\n tip.z1 = main.grz(p.getAxis('z').GetBinLowEdge(tip.iz));\n tip.z2 = main.grz(p.getAxis('z').GetBinLowEdge(tip.iz+dk));\n tip.color = this.tip_color;\n tip.opacity = 0.3;\n\n return tip;\n };\n\n return true;\n });\n }\n\n /** @summary Drawing of 3D histogram */\n draw3DBins(handle) {\n const main = this.getFramePainter();\n let fillcolor = this.v7EvalColor('fill_color', 'red'),\n buffer_size = 0, use_lambert = false,\n use_helper = false, use_colors = false, use_opacity = 1, use_scale = true,\n single_bin_verts, single_bin_norms,\n tipscale = 0.5;\n\n if (this.options.Sphere) {\n // drawing spheres\n tipscale = 0.4;\n use_lambert = true;\n if (this.options.Sphere === 11) use_colors = true;\n\n const geom = main.webgl ? new SphereGeometry(0.5, 16, 12) : new SphereGeometry(0.5, 8, 6);\n geom.applyMatrix4(new Matrix4().makeRotationX(Math.PI/2));\n geom.computeVertexNormals();\n\n const indx = geom.getIndex().array,\n pos = geom.getAttribute('position').array,\n norm = geom.getAttribute('normal').array;\n\n buffer_size = indx.length*3;\n single_bin_verts = new Float32Array(buffer_size);\n single_bin_norms = new Float32Array(buffer_size);\n\n for (let k=0; k= 0) {\n if (cols_size[colindx] === undefined) {\n cols_size[colindx] = 0;\n cols_sequence[colindx] = num_colors++;\n }\n cols_size[colindx]+=1;\n } else\n console.error(`not found color for value = ${bin_content}`);\n }\n }\n }\n\n if (!use_colors) {\n cols_size.push(nbins);\n num_colors = 1;\n cols_sequence = [0];\n }\n\n const cols_nbins = new Array(num_colors),\n bin_verts = new Array(num_colors),\n bin_norms = new Array(num_colors),\n bin_tooltips = new Array(num_colors),\n helper_kind = new Array(num_colors),\n helper_indexes = new Array(num_colors), // helper_kind === 1, use original vertices\n helper_positions = new Array(num_colors); // helper_kind === 2, all vertices copied into separate buffer\n\n for (let ncol = 0; ncol < cols_size.length; ++ncol) {\n if (!cols_size[ncol]) continue; // ignore dummy colors\n\n nbins = cols_size[ncol]; // how many bins with specified color\n const nseq = cols_sequence[ncol];\n\n cols_nbins[nseq] = 0; // counter for the filled bins\n\n helper_kind[nseq] = 0;\n\n // 1 - use same vertices to create helper, one can use maximal 64K vertices\n // 2 - all vertices copied into separate buffer\n if (use_helper)\n helper_kind[nseq] = (nbins * buffer_size / 3 > 0xFFF0) ? 2 : 1;\n\n bin_verts[nseq] = new Float32Array(nbins * buffer_size);\n bin_norms[nseq] = new Float32Array(nbins * buffer_size);\n bin_tooltips[nseq] = new Int32Array(nbins);\n\n if (helper_kind[nseq] === 1)\n helper_indexes[nseq] = new Uint16Array(nbins * Box3D.MeshSegments.length);\n\n if (helper_kind[nseq] === 2)\n helper_positions[nseq] = new Float32Array(nbins * Box3D.Segments.length * 3);\n }\n\n let binx, grx, biny, gry, binz, grz;\n xaxis = this.getAxis('x');\n yaxis = this.getAxis('y');\n zaxis = this.getAxis('z');\n\n for (i = i1; i < i2; i += di) {\n binx = xaxis.GetBinCenter(i+1); grx = main.grx(binx);\n for (j = j1; j < j2; j += dj) {\n biny = yaxis.GetBinCenter(j+1); gry = main.gry(biny);\n for (k = k1; k < k2; k +=dk) {\n bin_content = histo.getBinContent(i+1, j+1, k+1);\n if (!this.options.Color && ((bin_content === 0) || (bin_content < this.gminbin))) continue;\n\n wei = use_scale ? Math.pow(Math.abs(bin_content*use_scale), 0.3333) : 1;\n if (wei < 1e-3) continue; // do not show very small bins\n\n let nseq = 0;\n if (use_colors) {\n const colindx = palette.getContourIndex(bin_content);\n if (colindx < 0) continue;\n nseq = cols_sequence[colindx];\n }\n\n nbins = cols_nbins[nseq];\n\n binz = zaxis.GetBinCenter(k+1); grz = main.grz(binz);\n\n // remember bin index for tooltip\n bin_tooltips[nseq][nbins] = histo.getBin(i+1, j+1, k+1);\n\n let vvv = nbins * buffer_size;\n const bin_v = bin_verts[nseq], bin_n = bin_norms[nseq];\n\n // Grab the coordinates and scale that are being assigned to each bin\n for (let vi = 0; vi < buffer_size; vi+=3, vvv+=3) {\n bin_v[vvv] = grx + single_bin_verts[vi]*scalex*wei;\n bin_v[vvv+1] = gry + single_bin_verts[vi+1]*scaley*wei;\n bin_v[vvv+2] = grz + single_bin_verts[vi+2]*scalez*wei;\n\n bin_n[vvv] = single_bin_norms[vi];\n bin_n[vvv+1] = single_bin_norms[vi+1];\n bin_n[vvv+2] = single_bin_norms[vi+2];\n }\n\n if (helper_kind[nseq] === 1) {\n // reuse vertices created for the mesh\n const helper_segments = Box3D.MeshSegments;\n vvv = nbins * helper_segments.length;\n const shift = Math.round(nbins * buffer_size/3),\n helper_i = helper_indexes[nseq];\n for (let n = 0; n < helper_segments.length; ++n)\n helper_i[vvv+n] = shift + helper_segments[n];\n }\n\n if (helper_kind[nseq] === 2) {\n const helper_segments = Box3D.Segments,\n helper_p = helper_positions[nseq];\n vvv = nbins * helper_segments.length * 3;\n for (let n = 0; n < helper_segments.length; ++n, vvv += 3) {\n const vert = Box3D.Vertices[helper_segments[n]];\n helper_p[vvv] = grx + (vert.x-0.5)*scalex*wei;\n helper_p[vvv+1] = gry + (vert.y-0.5)*scaley*wei;\n helper_p[vvv+2] = grz + (vert.z-0.5)*scalez*wei;\n }\n }\n\n cols_nbins[nseq] = nbins+1;\n }\n }\n }\n\n for (let ncol = 0; ncol < cols_size.length; ++ncol) {\n if (!cols_size[ncol]) continue; // ignore dummy colors\n\n const nseq = cols_sequence[ncol],\n // BufferGeometries that store geometry of all bins\n all_bins_buffgeom = new BufferGeometry();\n\n // Create mesh from bin buffergeometry\n all_bins_buffgeom.setAttribute('position', new BufferAttribute(bin_verts[nseq], 3));\n all_bins_buffgeom.setAttribute('normal', new BufferAttribute(bin_norms[nseq], 3));\n\n if (use_colors) fillcolor = palette.getColor(ncol);\n\n const material = use_lambert\n ? new MeshLambertMaterial({ color: fillcolor, opacity: use_opacity, transparent: use_opacity < 1, vertexColors: false })\n : new MeshBasicMaterial({ color: fillcolor, opacity: use_opacity, transparent: use_opacity < 1, vertexColors: false }),\n combined_bins = new Mesh(all_bins_buffgeom, material);\n\n combined_bins.bins = bin_tooltips[nseq];\n combined_bins.bins_faces = buffer_size/9;\n combined_bins.painter = this;\n\n combined_bins.scalex = tipscale*scalex;\n combined_bins.scaley = tipscale*scaley;\n combined_bins.scalez = tipscale*scalez;\n combined_bins.tip_color = 0x00FF00;\n combined_bins.use_scale = use_scale;\n\n combined_bins.tooltip = function(intersect) {\n const indx = Math.floor(intersect.faceIndex / this.bins_faces);\n if ((indx < 0) || (indx >= this.bins.length)) return null;\n\n const p = this.painter,\n main = p.getFramePainter(),\n tip = p.get3DToolTip(this.bins[indx]),\n grx = main.grx(p.getAxis('x').GetBinCoord(tip.ix-0.5)),\n gry = main.gry(p.getAxis('y').GetBinCoord(tip.iy-0.5)),\n grz = main.grz(p.getAxis('z').GetBinCoord(tip.iz-0.5)),\n wei = this.use_scale ? Math.pow(Math.abs(tip.value*this.use_scale), 0.3333) : 1;\n\n tip.x1 = grx - this.scalex*wei; tip.x2 = grx + this.scalex*wei;\n tip.y1 = gry - this.scaley*wei; tip.y2 = gry + this.scaley*wei;\n tip.z1 = grz - this.scalez*wei; tip.z2 = grz + this.scalez*wei;\n\n tip.color = this.tip_color;\n\n return tip;\n };\n\n main.add3DMesh(combined_bins);\n\n if (helper_kind[nseq] > 0) {\n const lcolor = this.v7EvalColor('line_color', 'lightblue'),\n helper_material = new LineBasicMaterial({ color: lcolor }),\n lines = (helper_kind[nseq] === 1)\n // reuse positions from the mesh - only special index was created\n ? createLineSegments(bin_verts[nseq], helper_material, helper_indexes[nseq])\n : createLineSegments(helper_positions[nseq], helper_material);\n\n main.add3DMesh(lines);\n }\n }\n\n if (use_colors)\n this.updatePaletteDraw();\n }\n\n draw3D() {\n if (!this.draw_content)\n return false;\n\n // this.options.Scatter = false;\n // this.options.Box = true;\n\n const handle = this.prepareDraw({ only_indexes: true, extra: -0.5, right_extra: -1 }),\n pr = this.options.Scatter ? this.draw3DScatter(handle) : Promise.resolve(false);\n\n return pr.then(res => {\n return res || this.draw3DBins(handle);\n });\n }\n\n /** @summary Redraw histogram */\n redraw(reason) {\n const main = this.getFramePainter(); // who makes axis and 3D drawing\n\n if (reason === 'resize') {\n if (main.resize3D()) main.render3D();\n return this;\n }\n\n assignFrame3DMethods(main);\n return main.create3DScene(this.options.Render3D).then(() => {\n main.setAxesRanges(this.getAxis('x'), this.xmin, this.xmax, this.getAxis('y'), this.ymin, this.ymax, this.getAxis('z'), this.zmin, this.zmax);\n main.set3DOptions(this.options);\n main.drawXYZ(main.toplevel, RAxisPainter, { zoom: settings.Zooming, ndim: 3, draw: true, v7: true });\n return this.drawingBins(reason);\n }).then(() => this.draw3D()).then(() => {\n main.render3D();\n main.addKeysHandler();\n return this;\n });\n }\n\n /** @summary Fill pad toolbar with RH3-related functions */\n fillToolbar() {\n const pp = this.getPadPainter();\n if (!pp) return;\n\n pp.addPadButton('auto_zoom', 'Unzoom all axes', 'ToggleZoom', 'Ctrl *');\n if (this.draw_content)\n pp.addPadButton('statbox', 'Toggle stat box', 'ToggleStatBox');\n pp.showPadButtons();\n }\n\n /** @summary Checks if it makes sense to zoom inside specified axis range */\n canZoomInside(axis, min, max) {\n let obj = this.getHisto();\n if (obj) obj = obj['f'+axis.toUpperCase()+'axis'];\n return !obj || (obj.FindBin(max, 0.5) - obj.FindBin(min, 0) > 1);\n }\n\n /** @summary Perform automatic zoom inside non-zero region of histogram */\n autoZoom() {\n const i1 = this.getSelectIndex('x', 'left'),\n i2 = this.getSelectIndex('x', 'right'),\n j1 = this.getSelectIndex('y', 'left'),\n j2 = this.getSelectIndex('y', 'right'),\n k1 = this.getSelectIndex('z', 'left'),\n k2 = this.getSelectIndex('z', 'right'),\n histo = this.getHisto();\n let i, j, k;\n\n if ((i1 === i2) || (j1 === j2) || (k1 === k2)) return;\n\n // first find minimum\n let min = histo.getBinContent(i1 + 1, j1 + 1, k1+1);\n for (i = i1; i < i2; ++i) {\n for (j = j1; j < j2; ++j) {\n for (k = k1; k < k2; ++k)\n min = Math.min(min, histo.getBinContent(i+1, j+1, k+1));\n }\n }\n\n if (min > 0) return; // if all points positive, no chance for autoscale\n\n let ileft = i2, iright = i1, jleft = j2, jright = j1, kleft = k2, kright = k1;\n\n for (i = i1; i < i2; ++i) {\n for (j = j1; j < j2; ++j) {\n for (k = k1; k < k2; ++k) {\n if (histo.getBinContent(i+1, j+1, k+1) > min) {\n if (i < ileft) ileft = i;\n if (i >= iright) iright = i + 1;\n if (j < jleft) jleft = j;\n if (j >= jright) jright = j + 1;\n if (k < kleft) kleft = k;\n if (k >= kright) kright = k + 1;\n }\n }\n }\n }\n\n let xmin, xmax, ymin, ymax, zmin, zmax, isany = false;\n\n if ((ileft === iright-1) && (ileft > i1+1) && (iright < i2-1)) { ileft--; iright++; }\n if ((jleft === jright-1) && (jleft > j1+1) && (jright < j2-1)) { jleft--; jright++; }\n if ((kleft === kright-1) && (kleft > k1+1) && (kright < k2-1)) { kleft--; kright++; }\n\n if ((ileft > i1 || iright < i2) && (ileft < iright - 1)) {\n xmin = this.getAxis('x').GetBinLowEdge(ileft+1);\n xmax = this.getAxis('x').GetBinLowEdge(iright+1);\n isany = true;\n }\n\n if ((jleft > j1 || jright < j2) && (jleft < jright - 1)) {\n ymin = this.getAxis('y').GetBinLowEdge(jleft+1);\n ymax = this.getAxis('y').GetBinLowEdge(jright+1);\n isany = true;\n }\n\n if ((kleft > k1 || kright < k2) && (kleft < kright - 1)) {\n zmin = this.getAxis('z').GetBinLowEdge(kleft+1);\n zmax = this.getAxis('z').GetBinLowEdge(kright+1);\n isany = true;\n }\n\n if (isany)\n return this.getFramePainter().zoom(xmin, xmax, ymin, ymax, zmin, zmax);\n }\n\n /** @summary Fill histogram context menu */\n fillHistContextMenu(menu) {\n const opts = this.getSupportedDrawOptions();\n\n menu.addDrawMenu('Draw with', opts, arg => {\n if (arg.indexOf(kInspect) === 0)\n return this.showInspector(arg);\n\n this.decodeOptions(arg);\n\n this.interactiveRedraw(true, 'drawopt');\n });\n }\n\n /** @summary draw RH3 object */\n static async draw(dom, histo /* ,opt */) {\n const painter = new RH3Painter(dom, histo);\n painter.mode3d = true;\n\n return ensureRCanvas(painter, '3d').then(() => {\n painter.setAsMainPainter();\n\n painter.options = { Box: 0, Scatter: false, Sphere: 0, Color: false, minimum: kNoZoom, maximum: kNoZoom, FrontBox: false, BackBox: false };\n\n const kind = painter.v7EvalAttr('kind', ''),\n sub = painter.v7EvalAttr('sub', 0),\n o = painter.options;\n\n switch (kind) {\n case 'box': o.Box = 10 + sub; break;\n case 'sphere': o.Sphere = 10 + sub; break;\n case 'col': o.Color = true; break;\n case 'scat': o.Scatter = true; break;\n default: o.Box = 10;\n }\n\n painter.scanContent();\n return painter.redraw();\n });\n }\n\n} // class RH3Painter\n\n/** @summary draw RHistDisplayItem object\n * @private */\nfunction drawHistDisplayItem(dom, obj, opt) {\n if (!obj)\n return null;\n\n if (obj.fAxes.length === 1)\n return RH1Painter.draw(dom, obj, opt);\n\n if (obj.fAxes.length === 2)\n return RH2Painter.draw(dom, obj, opt);\n\n if (obj.fAxes.length === 3)\n return RH3Painter.draw(dom, obj, opt);\n\n return null;\n}\n\nexport { RH3Painter, drawHistDisplayItem };\n"],"x_google_ignoreList":[0]} \ No newline at end of file diff --git a/docs/763.691ddb9286c103a3.js b/docs/763.0049a9e724764c1d.js similarity index 72% rename from docs/763.691ddb9286c103a3.js rename to docs/763.0049a9e724764c1d.js index a6d8a8c8..8b69870c 100644 --- a/docs/763.691ddb9286c103a3.js +++ b/docs/763.0049a9e724764c1d.js @@ -1,2 +1,2 @@ -"use strict";(self.webpackChunkphoenix_app=self.webpackChunkphoenix_app||[]).push([[763],{5763:(pt,V,D)=>{D.r(V),D.d(V,{TGraph2DPainter:()=>K});var W=D(4882),O=D(8872),C=D(2923),ct=D(2843),dt=D(1922),ut=D(4355),Xt=D(9997),v=D(3847),tt=D(8537);function it(z){let i=z[0];for(let h=1;h=n||r[X]=n)&&N[Y]+(n-r[Y])/(r[X]-r[Y])*(N[X]-N[Y])r&&(N=r,r=o,o=N,t=!0),n>o&&(N=o,o=n,n=N,t=!0)}while(t);this.fNdt++,this.fPTried.push(r),this.fNTried.push(o),this.fMTried.push(n)}FindAllTriangles(){if(this.fAllTri)return;this.fAllTri=!0;let i,h,s,t,N,r,o,n,Y,X,M,a,e,l,d,f,c,T,y,u,m,_,x,E,g,P=0,p=0,w=0;const I=[!1,!1,!1],F=1e-4;for(this.Initialize(),i=0,h=0,g=1;g<=this.fNhull;g++)i+=this.fXN[this.fHullPoints[g-1]],h+=this.fYN[this.fHullPoints[g-1]];for(i=i/this.fNhull+F,h=h/this.fNhull+F,this.Interpolate(i,h),f=1;f<=this.fNdt;){for(T=this.fPTried[f-1],y=this.fNTried[f-1],u=this.fMTried[f-1],I[0]=!1,I[1]=!1,I[2]=!1,c=1;c<=this.fNdt;c++)c!==f&&(m=this.fPTried[c-1],_=this.fNTried[c-1],x=this.fMTried[c-1],T===m&&y===_||T===m&&y===x||T===_&&y===x?I[0]=!0:T===m&&u===_||T===m&&u===x||T===_&&u===x?I[1]=!0:(y===m&&u===_||y===m&&u===x||y===_&&u===x)&&(I[2]=!0));for(E=1;E<=3;E++)I[E-1]||(1===E?(P=T,p=y,w=u):2===E?(P=T,p=u,w=y):3===E&&(P=y,p=u,w=T),s=(this.fXN[P]+this.fXN[p])/2,t=(this.fYN[P]+this.fYN[p])/2,o=this.fXN[P]-this.fXN[p],n=this.fYN[P]-this.fYN[p],Y=n,X=-o,l=Math.sqrt(Y*Y+X*X),Y/=l,X/=l,M=this.fXN[w]-s,a=this.fYN[w]-t,e=M*Y+a*X,e>0&&(Y=-Y,X=-X),d=Math.abs(Math.max(F*s,F*t)),N=s+Y*d,r=t+X*d,this.Interpolate(N,r));f++}}FindHull(){this.fHullPoints||(this.fHullPoints=new Array(this.fNpoints));let i=0;for(let h=1;h<=this.fNpoints;h++)this.InHull(h,h)||(i++,this.fHullPoints[i-1]=h);this.fNhull=i}InHull(i,h){let s,t,N,r,o,n,Y,X,M,a,e,l,d,f,c,T,y,u,m,_,x,P=!1;const p=this.fXN[i],E=this.fYN[i];for(o=this.fNhull>0?this.fNhull:this.fNpoints,s=1,t=2,s===h?(s=t,t++):t===h&&t++,M=p-this.fXN[s],l=E-this.fYN[s],a=p-this.fXN[t],d=E-this.fYN[t],m=Math.atan2(l,M),_=Math.atan2(d,a),x=m-_-Math.floor((m-_)/(2*Math.PI))*Math.PI*2,x<0&&(x+=2*Math.PI),n=x,N=1;N<=o;N++)if(r=this.fNhull>0?this.fHullPoints[N-1]:N,r!==s&&r!==t&&r!==h&&(M=p-this.fXN[s],l=E-this.fYN[s],a=p-this.fXN[t],d=E-this.fYN[t],e=p-this.fXN[r],f=E-this.fYN[r],Y=a*l-M*d,X=M*d-a*l,Y*X!=0&&(c=(a*f-e*d)/Y,T=(M*f-e*l)/X,c<0||T<0))){if(y=(M*e+l*f)/Math.sqrt(M*M+l*l),u=(a*e+d*f)/Math.sqrt(a*a+d*d),y>u?(s=r,m=Math.atan2(f,e),_=Math.atan2(d,a)):(t=r,m=Math.atan2(l,M),_=Math.atan2(f,e)),x=m-_-Math.floor((m-_)/(2*Math.PI))*Math.PI*2,x<0&&(x+=2*Math.PI),(x-Math.PI)*(n-Math.PI)<0)return P=!0,P;n=x}return P}InterpolateOnPlane(i,h,s,t){let N,r,o=i,n=h,Y=s;do{r=!1,n>o&&(N=o,o=n,n=N,r=!0),Y>n&&(N=n,n=Y,Y=N,r=!0)}while(r);const X=this.fXN[o],M=this.fXN[n],a=this.fXN[Y],e=this.fYN[o],l=this.fYN[n],d=this.fYN[Y],f=this.fZ[o-1],c=this.fZ[n-1],T=this.fZ[Y-1],y=(f*(l-d)+c*(d-e)+T*(e-l))/(X*(l-d)+M*(d-e)+a*(e-l)),u=(f*(M-a)+c*(a-X)+T*(X-M))/(e*(M-a)+l*(a-X)+d*(X-M));return y*this.fXN[t]+u*this.fYN[t]+(f-y*X-u*e)}Interpolate(i,h){let s,t,N,r,o,n,Y,X,M,a,e,l,d,f,c,T,y,u,m,_,w,I,F,b,S,j,H,et,ft,ht,rt,U,q,nt,at,L,B,Q,G,R,J,lt,ot,x=0,P=0,p=0,E=0,g=0;const Z=[0,0,0],k=[0,0,0];if(this.Initialize(),this.fOrder||(this.fOrder=new Array(this.fNpoints),this.fDist=new Array(this.fNpoints)),this.fXN[0]=i,this.fYN[0]=h,s=this.fZout,N=0,i>this.fXNmax||ithis.fYNmax||ht.vN.v?1:0);for(let t=0;tthis.fMaxIter)return s;if(N++,F=Math.sqrt((this.fXN[r]-this.fXN[o])**2+(this.fYN[r]-this.fYN[o])**2),b=Math.sqrt((this.fXN[r]-this.fXN[n])**2+(this.fYN[r]-this.fYN[n])**2),S=Math.sqrt((this.fXN[o]-this.fXN[n])**2+(this.fYN[o]-this.fYN[n])**2),!(F+b<=S||F+S<=b||b+S<=F)&&this.Enclose(r,o,n,0)){for(x=0,e=1;e<=this.fNpoints;e++)if(e!==r&&e!==o&&e!==n){for(a=1;a<=this.fNpoints;a++)if(this.fOrder[a-1]===e){if(!(a=0&&ot>=0){1===a?(l=n,f=r,c=o):2===a?(l=r,f=o,c=n):(l=o,f=n,c=r);break}if(q=((this.fXN[l]-this.fXN[f])*(this.fXN[e]-this.fXN[f])+(this.fYN[l]-this.fYN[f])*(this.fYN[e]-this.fYN[f]))/Math.sqrt(((this.fXN[l]-this.fXN[f])*(this.fXN[l]-this.fXN[f])+(this.fYN[l]-this.fYN[f])*(this.fYN[l]-this.fYN[f]))*((this.fXN[e]-this.fXN[f])*(this.fXN[e]-this.fXN[f])+(this.fYN[e]-this.fYN[f])*(this.fYN[e]-this.fYN[f]))),nt=((this.fXN[c]-this.fXN[f])*(this.fXN[e]-this.fXN[f])+(this.fYN[c]-this.fYN[f])*(this.fYN[e]-this.fYN[f]))/Math.sqrt(((this.fXN[c]-this.fXN[f])*(this.fXN[c]-this.fXN[f])+(this.fYN[c]-this.fYN[f])*(this.fYN[c]-this.fYN[f]))*((this.fXN[e]-this.fXN[f])*(this.fXN[e]-this.fXN[f])+(this.fYN[e]-this.fYN[f])*(this.fYN[e]-this.fYN[f]))),at=((this.fXN[c]-this.fXN[f])*(this.fXN[l]-this.fXN[f])+(this.fYN[c]-this.fYN[f])*(this.fYN[l]-this.fYN[f]))/Math.sqrt(((this.fXN[c]-this.fXN[f])*(this.fXN[c]-this.fXN[f])+(this.fYN[c]-this.fYN[f])*(this.fYN[c]-this.fYN[f]))*((this.fXN[l]-this.fXN[f])*(this.fXN[l]-this.fXN[f])+(this.fYN[l]-this.fYN[f])*(this.fYN[l]-this.fYN[f]))),!(q>nt||q>at)){if(et=Math.sqrt((this.fXN[e]-this.fXN[f])*(this.fXN[e]-this.fXN[f])+(this.fYN[e]-this.fYN[f])*(this.fYN[e]-this.fYN[f])),ft=Math.sqrt((this.fXN[e]-this.fXN[c])*(this.fXN[e]-this.fXN[c])+(this.fYN[e]-this.fYN[c])*(this.fYN[e]-this.fYN[c])),ht=Math.sqrt((this.fXN[l]-this.fXN[f])*(this.fXN[l]-this.fXN[f])+(this.fYN[l]-this.fYN[f])*(this.fYN[l]-this.fYN[f])),rt=Math.sqrt((this.fXN[l]-this.fXN[c])*(this.fXN[l]-this.fXN[c])+(this.fYN[l]-this.fYN[c])*(this.fYN[l]-this.fYN[c])),j=((this.fXN[e]-this.fXN[f])*(this.fXN[e]-this.fXN[c])+(this.fYN[e]-this.fYN[f])*(this.fYN[e]-this.fYN[c]))/et/ft,H=((this.fXN[l]-this.fXN[f])*(this.fXN[l]-this.fXN[c])+(this.fYN[l]-this.fYN[f])*(this.fYN[l]-this.fYN[c]))/ht/rt,U=j*Math.sqrt(1-H*H)+H*Math.sqrt(1-j*j),U<-1e-6){A=!0;break}Math.abs(U)<=1e-6&&(x++,P=e,p=l,E=f,g=c)}}if(!A)return x>0?(d=P,l=p,f=E,c=g,this.fZ[f-1]+this.fZ[c-1]>this.fZ[d-1]+this.fZ[l-1]?(u=r,m=o,_=n,this.FileIt(r,o,n),this.FileIt(d,f,c)):(u=l,m=d,_=this.Enclose(l,d,f,0)?f:c,this.FileIt(l,d,f),this.FileIt(l,d,c))):(this.FileIt(r,o,n),u=r,m=o,_=n),s=this.InterpolateOnPlane(u,m,_,0),s}}return Nt&&console.error(`Interpolate Point outside hull when expected inside: this point could be dodgy ${i} ${h} ${N}`),s}SetMaxIter(i=1e5){this.fAllTri=!1,this.fMaxIter=i}SetMarginBinsContent(i){this.fZout=i}}function $(z){let i=Math.floor(z.index/this.nvertex);if(i<0||i>=this.index.length)return null;const h=n=>n*n;i=this.index[i];const s=this.fp,t=this.graph;let N=s.grx(t.fX[i]),r=s.gry(t.fY[i]),o=s.grz(t.fZ[i]);if(this.check_next&&i+1=10)&&(t.Zscale=s.check("Z")),t.isAny=function(){return this.Markers||this.Error||this.Circles||this.Line||this.Triangles},t.isAny()?(t.Axis="lego2",t.Zscale&&(t.Axis+="z")):t.Axis=i,this.storeDrawOpt(i)}createHistogram(){const i=this.getObject(),h=this.matchObjectType(O.clTGraph2DAsymmErrors);let s=i.fX[0],t=s,N=i.fY[0],r=N,o=i.fZ[0],n=o;for(let m=0;m=0&&(e=.98*s),l>0&&t<=0&&(l=0),d<0&&N>=0&&(d=.98*N),f>0&&r<=0&&(f=0),c<0&&o>=0&&(c=.98*o),T>0&&n<=0&&(T=0);const y=this.getObject();y.fMinimum!==O.kNoZoom&&(c=y.fMinimum),y.fMaximum!==O.kNoZoom&&(T=y.fMaximum),this._own_histogram=!0;const u=(0,O.createHistogram)(O.clTH2F,y.fNpx,y.fNpy);if(u.fName=y.fName+"_h",(0,O.setHistogramTitle)(u,y.fTitle),u.fXaxis.fXmin=e,u.fXaxis.fXmax=l,u.fYaxis.fXmin=d,u.fYaxis.fXmax=f,u.fZaxis.fXmin=c,u.fZaxis.fXmax=T,u.fMinimum=c,u.fMaximum=T,u.fBits|=O.kNoStats,!this.options.isAny()){const m=this.buildDelaunay(y);if(m)for(let _=0;_X=10,n=this.options.Triangles%10==1,Y=new Xt.N7(s,r,0,2*i.size_z3d,n);for(Y.loop=0;Y.loop<2;++Y.loop){Y.createBuffers();for(let X=0;Xi.scale_xmax||h.fY[d]i.scale_ymax)&&(e=!1)}o&&e&&Y.addMainTriangle(...a),n&&e&&(Y.addLineSegment(a[0],a[1],a[2],a[3],a[4],a[5]),Y.addLineSegment(a[3],a[4],a[5],a[6],a[7],a[8]),Y.addLineSegment(a[6],a[7],a[8],a[0],a[1],a[2]))}}Y.callFuncs((X,M)=>{const a=(0,tt.cD)(this.getMainPainter(),M,null,100,100),e=t.calcColor(X,s.length),l=new C.V9B((0,v.Bx)(e,{side:C.$EB,vertexColors:!1})),d=new C.eaF(a,l);i.add3DMesh(d,this),d.painter=this},(X,M)=>{const a=this.getColor(h.fLineColor),e=new C.mrM({color:new C.Q1f(a),linewidth:h.fLineWidth}),l=(0,v.Fc)((0,tt.QK)(this.getMainPainter(),M,100,100),e);i.add3DMesh(l,this)})}updateObject(i,h){if(!this.matchObjectType(i))return!1;if(h&&h!==this.options.original&&this.decodeOptions(h,i),Object.assign(this.getObject(),i),delete this._delaunay,delete this.$redraw_hist,this.axes_draw){const s=this.getMainPainter();s?.updateObject(this.createHistogram(),this.options.Axis),this.$redraw_hist=s}return!0}redraw(){var i=this;return(0,W.A)(function*(){let h=Promise.resolve(!0);return i.$redraw_hist&&(h=i.$redraw_hist.redraw(),delete i.$redraw_hist),h.then(()=>i.drawGraph2D())})()}drawGraph2D(){var i=this;return(0,W.A)(function*(){const h=i.getMainPainter(),s=i.getFramePainter(),t=i.getObject();if(!(t&&h&&s&&s.mode3d))return i;if(s.remove3DMeshes(i),!i.options.isAny()){if(h.draw_content)return i;1===t.fMarkerSize&&1===t.fMarkerStyle?i.options.Circles=!0:i.options.Markers=!0}const N=(a,e)=>{let l=0;for(let d=0;ds.scale_xmax||t.fY[d]s.scale_ymax||t.fZ[d]=e||++l;return l};let r=1;if(O.settings.OptimizeDraw>0&&!s.webgl){const a=N(s.scale_zmin,s.scale_zmax),e=5e4;a>e&&(r=Math.floor(a/e),r<=2&&(r=2))}const o=i.createAttMarker({attr:t,std:!1}),n=[];let Y=null,X=[s.scale_zmin,s.scale_zmax],M=s.size_x3d/100*o.getFullSize();i.options.Circles&&(M=.06*s.size_x3d),s.usesvg&&(M*=.3),M*=7*Math.max(s.size_x3d/s.getFrameWidth(),s.size_z3d/s.getFrameHeight()),(i.options.Color||i.options.Triangles)&&(X=h.getContourLevels(!0),Y=h.getHistPalette()),i.options.Triangles&&i.drawTriangles(s,t,X,Y);for(let a=0;a=l)continue;const d=Math.floor(N(e,l)/r),f=new Int32Array(d);let c=null,T=0,y=0,u=null,m=!1,_=null,x=0,P=0;(i.options.Markers||i.options.Circles)&&(c=new v._l(d,s.webgl,M/3)),i.options.Error&&(u=new Float32Array(6*d*3),m=i.matchObjectType(O.clTGraph2DAsymmErrors)),i.options.Line&&(_=new Float32Array(6*(d-1)));for(let p=0;ps.scale_xmax||t.fY[p]s.scale_ymax||t.fZ[p]=l||r>1&&(T=(T+1)%r,0!==T))continue;f[y++]=p;const E=s.grx(t.fX[p]),g=s.gry(t.fY[p]),w=s.grz(t.fZ[p]);c&&c.addPoint(E,g,w),u&&(u[x]=s.grx(t.fX[p]-(m?t.fEXlow[p]:t.fEX[p])),u[x+1]=g,u[x+2]=w,u[x+3]=s.grx(t.fX[p]+(m?t.fEXhigh[p]:t.fEX[p])),u[x+4]=g,u[x+5]=w,x+=6,u[x]=E,u[x+1]=s.gry(t.fY[p]-(m?t.fEYlow[p]:t.fEY[p])),u[x+2]=w,u[x+3]=E,u[x+4]=s.gry(t.fY[p]+(m?t.fEYhigh[p]:t.fEY[p])),u[x+5]=w,x+=6,u[x]=E,u[x+1]=g,u[x+2]=s.grz(t.fZ[p]-(m?t.fEZlow[p]:t.fEZ[p])),u[x+3]=E,u[x+4]=g,u[x+5]=s.grz(t.fZ[p]+(m?t.fEZhigh[p]:t.fEZ[p])),x+=6),_&&(P>=6&&(_[P]=_[P-3],_[P+1]=_[P-2],_[P+2]=_[P-1],P+=3),_[P]=E,_[P+1]=g,_[P+2]=w,P+=3)}if(_&&P>3&&_.length===P){const p=i.getColor(t.fLineColor),E=new C.mrM({color:new C.Q1f(p),linewidth:t.fLineWidth}),g=(0,v.Fc)(_,E);s.add3DMesh(g,i),g.graph=t,g.index=f,g.fp=s,g.scale0=.7*M,g.tip_name=i.getObjectHint(),g.tip_color=3===t.fMarkerColor?16711680:65280,g.nvertex=2,g.check_next=!0,g.tooltip=$}if(u){const p=i.getColor(t.fLineColor),E=new C.mrM({color:new C.Q1f(p),linewidth:t.fLineWidth}),g=(0,v.Fc)(u,E);s.add3DMesh(g,i),g.graph=t,g.index=f,g.fp=s,g.scale0=.7*M,g.tip_name=i.getObjectHint(),g.tip_color=3===t.fMarkerColor?16711680:65280,g.nvertex=6,g.tooltip=$}if(c){let p="blue";(!i.options.Circles||i.options.Color)&&(p=Y?.calcColor(a,X.length)??i.getColor(t.fMarkerColor));const E=c.createPoints({color:p,style:i.options.Circles?4:t.fMarkerStyle}).then(g=>{g.graph=t,g.fp=s,g.tip_color=3===t.fMarkerColor?16711680:65280,g.scale0=.3*M,g.index=f,g.tip_name=i.getObjectHint(),g.tooltip=$,s.add3DMesh(g,i)});n.push(E)}}return Promise.all(n).then(()=>{if(i.options.Zscale&&i.axes_draw){const a=i.getMainPainter()?.findFunction(O.clTPaletteAxis);return i.getPadPainter()?.findPainterFor(a)?.drawPave()}}).then(()=>(s.render3D(100),i))})()}static draw(i,h,s){return(0,W.A)(function*(){const t=new K(i,h);t.decodeOptions(s,h);let N=Promise.resolve(null);return t.getMainPainter()||(N=ut.TH2Painter.draw(i,t.createHistogram(),t.options.Axis),t.axes_draw=!0),N.then(()=>(t.addToPadPrimitives(),t.drawGraph2D()))})()}}}}]); -//# sourceMappingURL=763.691ddb9286c103a3.js.map \ No newline at end of file +"use strict";(self.webpackChunkphoenix_app=self.webpackChunkphoenix_app||[]).push([[763],{5763:(pt,V,O)=>{O.r(V),O.d(V,{TGraph2DPainter:()=>K});var W=O(4882),D=O(8872),C=O(2923),ct=O(2843),dt=O(1922),ut=O(4355),Xt=O(9997),v=O(3847),tt=O(8537);function it(z){let i=z[0];for(let h=1;h=n||r[X]=n)&&N[m]+(n-r[m])/(r[X]-r[m])*(N[X]-N[m])r&&(N=r,r=o,o=N,t=!0),n>o&&(N=o,o=n,n=N,t=!0)}while(t);this.fNdt++,this.fPTried.push(r),this.fNTried.push(o),this.fMTried.push(n)}FindAllTriangles(){if(this.fAllTri)return;this.fAllTri=!0;let i,h,s,t,N,r,o,n,m,X,M,a,e,l,d,f,c,T,y,u,Y,_,x,E,g,P=0,p=0,w=0;const I=[!1,!1,!1],F=1e-4;for(this.Initialize(),i=0,h=0,g=1;g<=this.fNhull;g++)i+=this.fXN[this.fHullPoints[g-1]],h+=this.fYN[this.fHullPoints[g-1]];for(i=i/this.fNhull+F,h=h/this.fNhull+F,this.Interpolate(i,h),f=1;f<=this.fNdt;){for(T=this.fPTried[f-1],y=this.fNTried[f-1],u=this.fMTried[f-1],I[0]=!1,I[1]=!1,I[2]=!1,c=1;c<=this.fNdt;c++)c!==f&&(Y=this.fPTried[c-1],_=this.fNTried[c-1],x=this.fMTried[c-1],T===Y&&y===_||T===Y&&y===x||T===_&&y===x?I[0]=!0:T===Y&&u===_||T===Y&&u===x||T===_&&u===x?I[1]=!0:(y===Y&&u===_||y===Y&&u===x||y===_&&u===x)&&(I[2]=!0));for(E=1;E<=3;E++)I[E-1]||(1===E?(P=T,p=y,w=u):2===E?(P=T,p=u,w=y):3===E&&(P=y,p=u,w=T),s=(this.fXN[P]+this.fXN[p])/2,t=(this.fYN[P]+this.fYN[p])/2,o=this.fXN[P]-this.fXN[p],n=this.fYN[P]-this.fYN[p],m=n,X=-o,l=Math.sqrt(m*m+X*X),m/=l,X/=l,M=this.fXN[w]-s,a=this.fYN[w]-t,e=M*m+a*X,e>0&&(m=-m,X=-X),d=Math.abs(Math.max(F*s,F*t)),N=s+m*d,r=t+X*d,this.Interpolate(N,r));f++}}FindHull(){this.fHullPoints||(this.fHullPoints=new Array(this.fNpoints));let i=0;for(let h=1;h<=this.fNpoints;h++)this.InHull(h,h)||(i++,this.fHullPoints[i-1]=h);this.fNhull=i}InHull(i,h){let s,t,N,r,o,n,m,X,M,a,e,l,d,f,c,T,y,u,Y,_,x,P=!1;const p=this.fXN[i],E=this.fYN[i];for(o=this.fNhull>0?this.fNhull:this.fNpoints,s=1,t=2,s===h?(s=t,t++):t===h&&t++,M=p-this.fXN[s],l=E-this.fYN[s],a=p-this.fXN[t],d=E-this.fYN[t],Y=Math.atan2(l,M),_=Math.atan2(d,a),x=Y-_-Math.floor((Y-_)/(2*Math.PI))*Math.PI*2,x<0&&(x+=2*Math.PI),n=x,N=1;N<=o;N++)if(r=this.fNhull>0?this.fHullPoints[N-1]:N,r!==s&&r!==t&&r!==h&&(M=p-this.fXN[s],l=E-this.fYN[s],a=p-this.fXN[t],d=E-this.fYN[t],e=p-this.fXN[r],f=E-this.fYN[r],m=a*l-M*d,X=M*d-a*l,m*X!=0&&(c=(a*f-e*d)/m,T=(M*f-e*l)/X,c<0||T<0))){if(y=(M*e+l*f)/Math.sqrt(M*M+l*l),u=(a*e+d*f)/Math.sqrt(a*a+d*d),y>u?(s=r,Y=Math.atan2(f,e),_=Math.atan2(d,a)):(t=r,Y=Math.atan2(l,M),_=Math.atan2(f,e)),x=Y-_-Math.floor((Y-_)/(2*Math.PI))*Math.PI*2,x<0&&(x+=2*Math.PI),(x-Math.PI)*(n-Math.PI)<0)return P=!0,P;n=x}return P}InterpolateOnPlane(i,h,s,t){let N,r,o=i,n=h,m=s;do{r=!1,n>o&&(N=o,o=n,n=N,r=!0),m>n&&(N=n,n=m,m=N,r=!0)}while(r);const X=this.fXN[o],M=this.fXN[n],a=this.fXN[m],e=this.fYN[o],l=this.fYN[n],d=this.fYN[m],f=this.fZ[o-1],c=this.fZ[n-1],T=this.fZ[m-1],y=(f*(l-d)+c*(d-e)+T*(e-l))/(X*(l-d)+M*(d-e)+a*(e-l)),u=(f*(M-a)+c*(a-X)+T*(X-M))/(e*(M-a)+l*(a-X)+d*(X-M));return y*this.fXN[t]+u*this.fYN[t]+(f-y*X-u*e)}Interpolate(i,h){let s,t,N,r,o,n,m,X,M,a,e,l,d,f,c,T,y,u,Y,_,w,I,F,b,S,j,H,et,ft,ht,rt,U,q,nt,at,L,B,Q,G,R,J,lt,ot,x=0,P=0,p=0,E=0,g=0;const Z=[0,0,0],k=[0,0,0];if(this.Initialize(),this.fOrder||(this.fOrder=new Array(this.fNpoints),this.fDist=new Array(this.fNpoints)),this.fXN[0]=i,this.fYN[0]=h,s=this.fZout,N=0,i>this.fXNmax||ithis.fYNmax||ht.vN.v?1:0);for(let t=0;tthis.fMaxIter)return s;if(N++,F=Math.sqrt((this.fXN[r]-this.fXN[o])**2+(this.fYN[r]-this.fYN[o])**2),b=Math.sqrt((this.fXN[r]-this.fXN[n])**2+(this.fYN[r]-this.fYN[n])**2),S=Math.sqrt((this.fXN[o]-this.fXN[n])**2+(this.fYN[o]-this.fYN[n])**2),!(F+b<=S||F+S<=b||b+S<=F)&&this.Enclose(r,o,n,0)){for(x=0,e=1;e<=this.fNpoints;e++)if(e!==r&&e!==o&&e!==n){for(a=1;a<=this.fNpoints;a++)if(this.fOrder[a-1]===e){if(!(a=0&&ot>=0){1===a?(l=n,f=r,c=o):2===a?(l=r,f=o,c=n):(l=o,f=n,c=r);break}if(q=((this.fXN[l]-this.fXN[f])*(this.fXN[e]-this.fXN[f])+(this.fYN[l]-this.fYN[f])*(this.fYN[e]-this.fYN[f]))/Math.sqrt(((this.fXN[l]-this.fXN[f])*(this.fXN[l]-this.fXN[f])+(this.fYN[l]-this.fYN[f])*(this.fYN[l]-this.fYN[f]))*((this.fXN[e]-this.fXN[f])*(this.fXN[e]-this.fXN[f])+(this.fYN[e]-this.fYN[f])*(this.fYN[e]-this.fYN[f]))),nt=((this.fXN[c]-this.fXN[f])*(this.fXN[e]-this.fXN[f])+(this.fYN[c]-this.fYN[f])*(this.fYN[e]-this.fYN[f]))/Math.sqrt(((this.fXN[c]-this.fXN[f])*(this.fXN[c]-this.fXN[f])+(this.fYN[c]-this.fYN[f])*(this.fYN[c]-this.fYN[f]))*((this.fXN[e]-this.fXN[f])*(this.fXN[e]-this.fXN[f])+(this.fYN[e]-this.fYN[f])*(this.fYN[e]-this.fYN[f]))),at=((this.fXN[c]-this.fXN[f])*(this.fXN[l]-this.fXN[f])+(this.fYN[c]-this.fYN[f])*(this.fYN[l]-this.fYN[f]))/Math.sqrt(((this.fXN[c]-this.fXN[f])*(this.fXN[c]-this.fXN[f])+(this.fYN[c]-this.fYN[f])*(this.fYN[c]-this.fYN[f]))*((this.fXN[l]-this.fXN[f])*(this.fXN[l]-this.fXN[f])+(this.fYN[l]-this.fYN[f])*(this.fYN[l]-this.fYN[f]))),!(q>nt||q>at)){if(et=Math.sqrt((this.fXN[e]-this.fXN[f])*(this.fXN[e]-this.fXN[f])+(this.fYN[e]-this.fYN[f])*(this.fYN[e]-this.fYN[f])),ft=Math.sqrt((this.fXN[e]-this.fXN[c])*(this.fXN[e]-this.fXN[c])+(this.fYN[e]-this.fYN[c])*(this.fYN[e]-this.fYN[c])),ht=Math.sqrt((this.fXN[l]-this.fXN[f])*(this.fXN[l]-this.fXN[f])+(this.fYN[l]-this.fYN[f])*(this.fYN[l]-this.fYN[f])),rt=Math.sqrt((this.fXN[l]-this.fXN[c])*(this.fXN[l]-this.fXN[c])+(this.fYN[l]-this.fYN[c])*(this.fYN[l]-this.fYN[c])),j=((this.fXN[e]-this.fXN[f])*(this.fXN[e]-this.fXN[c])+(this.fYN[e]-this.fYN[f])*(this.fYN[e]-this.fYN[c]))/et/ft,H=((this.fXN[l]-this.fXN[f])*(this.fXN[l]-this.fXN[c])+(this.fYN[l]-this.fYN[f])*(this.fYN[l]-this.fYN[c]))/ht/rt,U=j*Math.sqrt(1-H*H)+H*Math.sqrt(1-j*j),U<-1e-6){A=!0;break}Math.abs(U)<=1e-6&&(x++,P=e,p=l,E=f,g=c)}}if(!A)return x>0?(d=P,l=p,f=E,c=g,this.fZ[f-1]+this.fZ[c-1]>this.fZ[d-1]+this.fZ[l-1]?(u=r,Y=o,_=n,this.FileIt(r,o,n),this.FileIt(d,f,c)):(u=l,Y=d,_=this.Enclose(l,d,f,0)?f:c,this.FileIt(l,d,f),this.FileIt(l,d,c))):(this.FileIt(r,o,n),u=r,Y=o,_=n),s=this.InterpolateOnPlane(u,Y,_,0),s}}return Nt&&console.error(`Interpolate Point outside hull when expected inside: this point could be dodgy ${i} ${h} ${N}`),s}SetMaxIter(i=1e5){this.fAllTri=!1,this.fMaxIter=i}SetMarginBinsContent(i){this.fZout=i}}function $(z){let i=Math.floor(z.index/this.nvertex);if(i<0||i>=this.index.length)return null;const h=n=>n*n;i=this.index[i];const s=this.fp,t=this.graph;let N=s.grx(t.fX[i]),r=s.gry(t.fY[i]),o=s.grz(t.fZ[i]);if(this.check_next&&i+1=10)&&(t.Zscale=s.check("Z")),t.isAny=function(){return this.Markers||this.Error||this.Circles||this.Line||this.Triangles},t.isAny()?(t.Axis="lego2",t.Zscale&&(t.Axis+="z")):t.Axis=i,this.storeDrawOpt(i)}createHistogram(){const i=this.getObject(),h=this.matchObjectType(D.clTGraph2DAsymmErrors);let s=i.fX[0],t=s,N=i.fY[0],r=N,o=i.fZ[0],n=o;for(let Y=0;Y=0&&(e=.98*s),l>0&&t<=0&&(l=0),d<0&&N>=0&&(d=.98*N),f>0&&r<=0&&(f=0),c<0&&o>=0&&(c=.98*o),T>0&&n<=0&&(T=0);const y=this.getObject();y.fMinimum!==D.kNoZoom&&(c=y.fMinimum),y.fMaximum!==D.kNoZoom&&(T=y.fMaximum),this._own_histogram=!0;const u=(0,D.createHistogram)(D.clTH2F,y.fNpx,y.fNpy);if(u.fName=y.fName+"_h",(0,D.setHistogramTitle)(u,y.fTitle),u.fXaxis.fXmin=e,u.fXaxis.fXmax=l,u.fYaxis.fXmin=d,u.fYaxis.fXmax=f,u.fZaxis.fXmin=c,u.fZaxis.fXmax=T,u.fMinimum=c,u.fMaximum=T,u.fBits|=D.kNoStats,!this.options.isAny()){const Y=this.buildDelaunay(y);if(Y)for(let _=0;_X=10,n=this.options.Triangles%10==1,m=new Xt.N7(s,r,0,2*i.size_z3d,n);for(m.loop=0;m.loop<2;++m.loop){m.createBuffers();for(let X=0;Xi.scale_xmax||h.fY[d]i.scale_ymax)&&(e=!1)}o&&e&&m.addMainTriangle(...a),n&&e&&(m.addLineSegment(a[0],a[1],a[2],a[3],a[4],a[5]),m.addLineSegment(a[3],a[4],a[5],a[6],a[7],a[8]),m.addLineSegment(a[6],a[7],a[8],a[0],a[1],a[2]))}}m.callFuncs((X,M)=>{const a=(0,tt.cD)(this.getMainPainter(),M,null,100,100),e=t.calcColor(X,s.length),l=new C.V9B((0,v.Bx)(e,{side:C.$EB,vertexColors:!1})),d=new C.eaF(a,l);i.add3DMesh(d,this),d.painter=this},(X,M)=>{const a=this.getColor(h.fLineColor),e=new C.mrM({color:new C.Q1f(a),linewidth:h.fLineWidth}),l=(0,v.Fc)((0,tt.QK)(this.getMainPainter(),M,100,100),e);i.add3DMesh(l,this)})}updateObject(i,h){if(!this.matchObjectType(i))return!1;if(h&&h!==this.options.original&&this.decodeOptions(h,i),Object.assign(this.getObject(),i),delete this._delaunay,delete this.$redraw_hist,this.axes_draw){const s=this.getMainPainter();s?.updateObject(this.createHistogram(),this.options.Axis),this.$redraw_hist=s}return!0}redraw(){var i=this;return(0,W.A)(function*(){let h=Promise.resolve(!0);return i.$redraw_hist&&(h=i.$redraw_hist.redraw(),delete i.$redraw_hist),h.then(()=>i.drawGraph2D())})()}drawGraph2D(){var i=this;return(0,W.A)(function*(){const h=i.getMainPainter(),s=i.getFramePainter(),t=i.getObject();if(!(t&&h&&s&&s.mode3d))return i;if(s.remove3DMeshes(i),!i.options.isAny()){if(h.draw_content)return i;1===t.fMarkerSize&&1===t.fMarkerStyle?i.options.Circles=!0:i.options.Markers=!0}const N=(a,e)=>{let l=0;for(let d=0;ds.scale_xmax||t.fY[d]s.scale_ymax||t.fZ[d]=e||++l;return l};let r=1;if(D.settings.OptimizeDraw>0&&!s.webgl){const a=N(s.scale_zmin,s.scale_zmax),e=5e4;a>e&&(r=Math.floor(a/e),r<=2&&(r=2))}const o=i.createAttMarker({attr:t,std:!1}),n=[];let m=null,X=[s.scale_zmin,s.scale_zmax],M=s.size_x3d/100*o.getFullSize();i.options.Circles&&(M=.06*s.size_x3d),s.usesvg&&(M*=.3),M*=7*Math.max(s.size_x3d/s.getFrameWidth(),s.size_z3d/s.getFrameHeight()),(i.options.Color||i.options.Triangles)&&(X=h.getContourLevels(!0),m=h.getHistPalette()),i.options.Triangles&&i.drawTriangles(s,t,X,m);for(let a=0;a=l)continue;const d=Math.floor(N(e,l)/r),f=new Int32Array(d);let c=null,T=0,y=0,u=null,Y=!1,_=null,x=0,P=0;(i.options.Markers||i.options.Circles)&&(c=new v._l(d,s.webgl,M/3)),i.options.Error&&(u=new Float32Array(6*d*3),Y=i.matchObjectType(D.clTGraph2DAsymmErrors)),i.options.Line&&(_=new Float32Array(6*(d-1)));for(let p=0;ps.scale_xmax||t.fY[p]s.scale_ymax||t.fZ[p]=l||r>1&&(T=(T+1)%r,0!==T))continue;f[y++]=p;const E=s.grx(t.fX[p]),g=s.gry(t.fY[p]),w=s.grz(t.fZ[p]);c&&c.addPoint(E,g,w),u&&(u[x]=s.grx(t.fX[p]-(Y?t.fEXlow[p]:t.fEX[p])),u[x+1]=g,u[x+2]=w,u[x+3]=s.grx(t.fX[p]+(Y?t.fEXhigh[p]:t.fEX[p])),u[x+4]=g,u[x+5]=w,x+=6,u[x]=E,u[x+1]=s.gry(t.fY[p]-(Y?t.fEYlow[p]:t.fEY[p])),u[x+2]=w,u[x+3]=E,u[x+4]=s.gry(t.fY[p]+(Y?t.fEYhigh[p]:t.fEY[p])),u[x+5]=w,x+=6,u[x]=E,u[x+1]=g,u[x+2]=s.grz(t.fZ[p]-(Y?t.fEZlow[p]:t.fEZ[p])),u[x+3]=E,u[x+4]=g,u[x+5]=s.grz(t.fZ[p]+(Y?t.fEZhigh[p]:t.fEZ[p])),x+=6),_&&(P>=6&&(_[P]=_[P-3],_[P+1]=_[P-2],_[P+2]=_[P-1],P+=3),_[P]=E,_[P+1]=g,_[P+2]=w,P+=3)}if(_&&P>3&&_.length===P){const p=i.getColor(t.fLineColor),E=new C.mrM({color:new C.Q1f(p),linewidth:t.fLineWidth}),g=(0,v.Fc)(_,E);s.add3DMesh(g,i),g.graph=t,g.index=f,g.fp=s,g.scale0=.7*M,g.tip_name=i.getObjectHint(),g.tip_color=3===t.fMarkerColor?16711680:65280,g.nvertex=2,g.check_next=!0,g.tooltip=$}if(u){const p=i.getColor(t.fLineColor),E=new C.mrM({color:new C.Q1f(p),linewidth:t.fLineWidth}),g=(0,v.Fc)(u,E);s.add3DMesh(g,i),g.graph=t,g.index=f,g.fp=s,g.scale0=.7*M,g.tip_name=i.getObjectHint(),g.tip_color=3===t.fMarkerColor?16711680:65280,g.nvertex=6,g.tooltip=$}if(c){let p="blue";(!i.options.Circles||i.options.Color)&&(p=m?.calcColor(a,X.length)??i.getColor(t.fMarkerColor));const E=c.createPoints({color:p,style:i.options.Circles?4:t.fMarkerStyle}).then(g=>{g.graph=t,g.fp=s,g.tip_color=3===t.fMarkerColor?16711680:65280,g.scale0=.3*M,g.index=f,g.tip_name=i.getObjectHint(),g.tooltip=$,s.add3DMesh(g,i)});n.push(E)}}return Promise.all(n).then(()=>{if(i.options.Zscale&&i.axes_draw){const a=i.getMainPainter()?.findFunction(D.clTPaletteAxis);return i.getPadPainter()?.findPainterFor(a)?.drawPave()}}).then(()=>(s.render3D(100),i))})()}static draw(i,h,s){return(0,W.A)(function*(){const t=new K(i,h);t.decodeOptions(s,h);let N=Promise.resolve(null);return t.getMainPainter()||(N=ut.TH2Painter.draw(i,t.createHistogram(),t.options.Axis),t.axes_draw=!0),N.then(()=>(t.addToPadPrimitives(),t.drawGraph2D()))})()}}}}]); +//# sourceMappingURL=763.0049a9e724764c1d.js.map \ No newline at end of file diff --git a/docs/763.691ddb9286c103a3.js.map b/docs/763.0049a9e724764c1d.js.map similarity index 99% rename from docs/763.691ddb9286c103a3.js.map rename to docs/763.0049a9e724764c1d.js.map index 5a7eb899..2e6fe2ff 100644 --- a/docs/763.691ddb9286c103a3.js.map +++ b/docs/763.0049a9e724764c1d.js.map @@ -1 +1 @@ -{"version":3,"file":"763.691ddb9286c103a3.js","mappings":"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","names":["getMax","arr","v","i","length","Math","max","getMin","min","TGraphDelaunay","constructor","g","this","fGraph2D","fX","fY","fZ","fNpoints","fZout","fNdt","fNhull","fHullPoints","fXN","fYN","fOrder","fDist","fPTried","fNTried","fMTried","fInit","fXNmin","fXNmax","fYNmin","fYNmax","fXoffset","fYoffset","fXScaleFactor","fYScaleFactor","SetMaxIter","Initialize","CreateTrianglesDataStructure","FindHull","ComputeZ","x","y","xx","yy","zz","Interpolate","xmax","ymax","xmin","ymin","Array","n","Enclose","t1","t2","t3","e","xp","yp","j","oddNodes","FileIt","p","m","swap","tmp","ps","ns","ms","push","FindAllTriangles","fAllTri","xcntr","ycntr","xm","ym","sx","sy","nx","ny","mx","my","mdotn","nn","a","pa","na","ma","pb","nb","mb","p1","p2","p3","s","alittlebit","sqrt","abs","nhull_tmp","InHull","n1","n2","ntry","lastdphi","dd1","dd2","dx1","dx2","dx3","dy1","dy2","dy3","u","vNv1","vNv2","phi1","phi2","dphi","deTinhull","atan2","floor","PI","InterpolateOnPlane","TI1","TI2","TI3","x1","x2","x3","y1","y2","y3","f1","f2","f3","thevalue","it","ntris_tried","k","l","z","f","d","o1","o2","b","vxN","vyN","d1","d2","d3","c1","c2","dko1","dko2","dfo1","dfo2","sin_sum","cfo1k","co2o1k","co2o1f","ndegen","degen","fdegen","o1degen","o2degen","dxz","dyz","shouldbein","TMath_Sort","np","values","indicies","sort","skip_this_triangle","fMaxIter","console","warn","error","SetMarginBinsContent","graph2DTooltip","intersect","indx","index","nvertex","sqr","fp","gr","graph","grx","gry","grz","check_next","point","grx1","gry1","grz1","scale0","z1","z2","color","tip_color","lines","tip_name","axisAsText","TGraph2DPainter","ObjectPainter","decodeOptions","opt","_gr","DrawOptions","options","res","check","Triangles","Line","Error","matchObjectType","clTGraph2DErrors","clTGraph2DAsymmErrors","Color","Circles","Markers","Zscale","isAny","Axis","storeDrawOpt","createHistogram","getObject","asymm","zmin","zmax","fEXlow","fEX","fEXhigh","fEYlow","fEY","fEYhigh","fEZlow","fEZ","fEZhigh","calc_delta","margin","dx","fMargin","dy","dz","uxmin","uxmax","uymin","uymax","uzmin","uzmax","fMinimum","kNoZoom","fMaximum","_own_histogram","histo","clTH2F","fNpx","fNpy","fName","setHistogramTitle","fTitle","fXaxis","fXmin","fXmax","fYaxis","fZaxis","fBits","kNoStats","dulaunay","buildDelaunay","fArray","getBin","_delaunay","drawTriangles","levels","palette","main_grz","logz","value","scale_zmin","do_faces","do_lines","triangles","Triangles3DHandler","size_z3d","loop","createBuffers","t","points","coord","use_triangle","pnt","scale_xmin","scale_xmax","scale_ymin","scale_ymax","addMainTriangle","addLineSegment","callFuncs","lvl","pos","geometry","createLegoGeom","getMainPainter","calcColor","material","MeshBasicMaterial","getMaterialArgs","side","DoubleSide","vertexColors","mesh","Mesh","add3DMesh","painter","_isgrid","lpos","lcolor","getColor","fLineColor","LineBasicMaterial","linewidth","fLineWidth","linemesh","createLineSegments","convertLegoBuf","updateObject","obj","original","Object","assign","$redraw_hist","axes_draw","hist_painter","redraw","_this","_asyncToGenerator","promise","Promise","resolve","then","drawGraph2D","_this2","main","getFramePainter","mode3d","remove3DMeshes","draw_content","fMarkerSize","fMarkerStyle","countSelected","cnt","step","settings","OptimizeDraw","webgl","numselected","scale_zmax","sizelimit","markeratt","createAttMarker","attr","std","promises","scale","size_x3d","getFullSize","usesvg","getFrameWidth","getFrameHeight","getContourLevels","getHistPalette","lvl_zmin","lvl_zmax","size","Int32Array","pnts","select","icnt","err","line","ierr","iline","PointsCreator","Float32Array","addPoint","getObjectHint","fMarkerColor","tooltip","errmesh","pr","createPoints","style","all","pal","findFunction","clTPaletteAxis","getPadPainter","findPainterFor","drawPave","render3D","draw","dom","TH2Painter","addToPadPrimitives"],"ignoreList":[],"sourceRoot":"webpack:///","sources":["../node_modules/jsroot/modules/hist/TGraph2DPainter.mjs"],"sourcesContent":["import { settings, createHistogram, setHistogramTitle, kNoZoom,\n clTH2F, clTGraph2DErrors, clTGraph2DAsymmErrors, clTPaletteAxis, kNoStats } from '../core.mjs';\nimport { Color, DoubleSide, LineBasicMaterial, MeshBasicMaterial, Mesh } from '../three.mjs';\nimport { DrawOptions } from '../base/BasePainter.mjs';\nimport { ObjectPainter } from '../base/ObjectPainter.mjs';\nimport { TH2Painter } from './TH2Painter.mjs';\nimport { Triangles3DHandler } from '../hist2d/TH2Painter.mjs';\nimport { createLineSegments, PointsCreator, getMaterialArgs } from '../base/base3d.mjs';\nimport { convertLegoBuf, createLegoGeom } from './hist3d.mjs';\n\nfunction getMax(arr) {\n let v = arr[0];\n for (let i = 1; i < arr.length; ++i)\n v = Math.max(v, arr[i]);\n return v;\n}\n\nfunction getMin(arr) {\n let v = arr[0];\n for (let i = 1; i < arr.length; ++i)\n v = Math.min(v, arr[i]);\n return v;\n}\n\nfunction TMath_Sort(np, values, indicies /*, down */) {\n const arr = new Array(np);\n for (let i = 0; i < np; ++i)\n arr[i] = { v: values[i], i };\n\n arr.sort((a, b) => { return a.v < b.v ? -1 : (a.v > b.v ? 1 : 0); });\n\n for (let i = 0; i < np; ++i)\n indicies[i] = arr[i].i;\n}\n\nclass TGraphDelaunay {\n\n constructor(g) {\n this.fGraph2D = g;\n this.fX = g.fX;\n this.fY = g.fY;\n this.fZ = g.fZ;\n this.fNpoints = g.fNpoints;\n this.fZout = 0.0;\n this.fNdt = 0;\n this.fNhull = 0;\n this.fHullPoints = null;\n this.fXN = null;\n this.fYN = null;\n this.fOrder = null;\n this.fDist = null;\n this.fPTried = null;\n this.fNTried = null;\n this.fMTried = null;\n this.fInit = false;\n this.fXNmin = 0.0;\n this.fXNmax = 0.0;\n this.fYNmin = 0.0;\n this.fYNmax = 0.0;\n this.fXoffset = 0.0;\n this.fYoffset = 0.0;\n this.fXScaleFactor = 0.0;\n this.fYScaleFactor = 0.0;\n\n this.SetMaxIter();\n }\n\n\n Initialize() {\n if (!this.fInit) {\n this.CreateTrianglesDataStructure();\n this.FindHull();\n this.fInit = true;\n }\n }\n\n ComputeZ(x, y) {\n // Initialise the Delaunay algorithm if needed.\n // CreateTrianglesDataStructure computes fXoffset, fYoffset,\n // fXScaleFactor and fYScaleFactor;\n // needed in this function.\n this.Initialize();\n\n // Find the z value corresponding to the point (x,y).\n const xx = (x+this.fXoffset)*this.fXScaleFactor,\n yy = (y+this.fYoffset)*this.fYScaleFactor;\n let zz = this.Interpolate(xx, yy);\n\n // Wrong zeros may appear when points sit on a regular grid.\n // The following line try to avoid this problem.\n if (zz === 0) zz = this.Interpolate(xx+0.0001, yy);\n\n return zz;\n }\n\n\n CreateTrianglesDataStructure() {\n // Offset fX and fY so they average zero, and scale so the average\n // of the X and Y ranges is one. The normalized version of fX and fY used\n // in Interpolate.\n const xmax = getMax(this.fGraph2D.fX),\n ymax = getMax(this.fGraph2D.fY),\n xmin = getMin(this.fGraph2D.fX),\n ymin = getMin(this.fGraph2D.fY);\n this.fXoffset = -(xmax+xmin)/2;\n this.fYoffset = -(ymax+ymin)/2;\n this.fXScaleFactor = 1/(xmax-xmin);\n this.fYScaleFactor = 1/(ymax-ymin);\n this.fXNmax = (xmax+this.fXoffset)*this.fXScaleFactor;\n this.fXNmin = (xmin+this.fXoffset)*this.fXScaleFactor;\n this.fYNmax = (ymax+this.fYoffset)*this.fYScaleFactor;\n this.fYNmin = (ymin+this.fYoffset)*this.fYScaleFactor;\n this.fXN = new Array(this.fNpoints+1);\n this.fYN = new Array(this.fNpoints+1);\n for (let n = 0; n < this.fNpoints; n++) {\n this.fXN[n+1] = (this.fX[n]+this.fXoffset)*this.fXScaleFactor;\n this.fYN[n+1] = (this.fY[n]+this.fYoffset)*this.fYScaleFactor;\n }\n\n // If needed, creates the arrays to hold the Delaunay triangles.\n // A maximum number of 2*fNpoints is guessed. If more triangles will be\n // find, FillIt will automatically enlarge these arrays.\n this.fPTried = [];\n this.fNTried = [];\n this.fMTried = [];\n }\n\n\n /// Is point e inside the triangle t1-t2-t3 ?\n\n Enclose(t1, t2, t3, e) {\n const x = [this.fXN[t1], this.fXN[t2], this.fXN[t3], this.fXN[t1]],\n y = [this.fYN[t1], this.fYN[t2], this.fYN[t3], this.fYN[t1]],\n xp = this.fXN[e],\n yp = this.fYN[e];\n let i = 0, j = x.length - 1, oddNodes = false;\n\n for (; i < x.length; ++i) {\n if ((y[i]=yp) || (y[j]=yp)) {\n if (x[i]+(yp-y[i])/(y[j]-y[i])*(x[j]-x[i]) ps) { tmp = ps; ps = ns; ns = tmp; swap = true; }\n if (ms > ns) { tmp = ns; ns = ms; ms = tmp; swap = true; }\n } while (swap);\n\n // store a new Delaunay triangle\n this.fNdt++;\n this.fPTried.push(ps);\n this.fNTried.push(ns);\n this.fMTried.push(ms);\n }\n\n\n /// Attempt to find all the Delaunay triangles of the point set. It is not\n /// guaranteed that it will fully succeed, and no check is made that it has\n /// fully succeeded (such a check would be possible by referencing the points\n /// that make up the convex hull). The method is to check if each triangle\n /// shares all three of its sides with other triangles. If not, a point is\n /// generated just outside the triangle on the side(s) not shared, and a new\n /// triangle is found for that point. If this method is not working properly\n /// (many triangles are not being found) it's probably because the new points\n /// are too far beyond or too close to the non-shared sides. Fiddling with\n /// the size of the `alittlebit' parameter may help.\n\n FindAllTriangles() {\n if (this.fAllTri) return;\n\n this.fAllTri = true;\n\n let xcntr, ycntr, xm, ym, xx, yy,\n sx, sy, nx, ny, mx, my, mdotn, nn, a,\n t1, t2, pa, na, ma, pb, nb, mb, p1=0, p2=0, m, n, p3=0;\n const s = [false, false, false],\n alittlebit = 0.0001;\n\n this.Initialize();\n\n // start with a point that is guaranteed to be inside the hull (the\n // centre of the hull). The starting point is shifted \"a little bit\"\n // otherwise, in case of triangles aligned on a regular grid, we may\n // found none of them.\n xcntr = 0;\n ycntr = 0;\n for (n = 1; n <= this.fNhull; n++) {\n xcntr += this.fXN[this.fHullPoints[n-1]];\n ycntr += this.fYN[this.fHullPoints[n-1]];\n }\n xcntr = xcntr/this.fNhull+alittlebit;\n ycntr = ycntr/this.fNhull+alittlebit;\n // and calculate it's triangle\n this.Interpolate(xcntr, ycntr);\n\n // loop over all Delaunay triangles (including those constantly being\n // produced within the loop) and check to see if their 3 sides also\n // correspond to the sides of other Delaunay triangles, i.e. that they\n // have all their neighbours.\n t1 = 1;\n while (t1 <= this.fNdt) {\n // get the three points that make up this triangle\n pa = this.fPTried[t1-1];\n na = this.fNTried[t1-1];\n ma = this.fMTried[t1-1];\n\n // produce three integers which will represent the three sides\n s[0] = false;\n s[1] = false;\n s[2] = false;\n // loop over all other Delaunay triangles\n for (t2=1; t2<=this.fNdt; t2++) {\n if (t2 !== t1) {\n // get the points that make up this triangle\n pb = this.fPTried[t2-1];\n nb = this.fNTried[t2-1];\n mb = this.fMTried[t2-1];\n // do triangles t1 and t2 share a side?\n if ((pa === pb && na === nb) || (pa === pb && na === mb) || (pa === nb && na === mb)) {\n // they share side 1\n s[0] = true;\n } else if ((pa === pb && ma === nb) || (pa === pb && ma === mb) || (pa === nb && ma === mb)) {\n // they share side 2\n s[1] = true;\n } else if ((na === pb && ma === nb) || (na === pb && ma === mb) || (na === nb && ma === mb)) {\n // they share side 3\n s[2] = true;\n }\n }\n // if t1 shares all its sides with other Delaunay triangles then\n // forget about it\n if (s[0] && s[1] && s[2]) continue;\n }\n // Looks like t1 is missing a neighbour on at least one side.\n // For each side, take a point a little bit beyond it and calculate\n // the Delaunay triangle for that point, this should be the triangle\n // which shares the side.\n for (m=1; m<=3; m++) {\n if (!s[m-1]) {\n // get the two points that make up this side\n if (m === 1) {\n p1 = pa;\n p2 = na;\n p3 = ma;\n } else if (m === 2) {\n p1 = pa;\n p2 = ma;\n p3 = na;\n } else if (m === 3) {\n p1 = na;\n p2 = ma;\n p3 = pa;\n }\n // get the coordinates of the centre of this side\n xm = (this.fXN[p1]+this.fXN[p2])/2.0;\n ym = (this.fYN[p1]+this.fYN[p2])/2.0;\n // we want to add a little to these coordinates to get a point just\n // outside the triangle; (sx,sy) will be the vector that represents\n // the side\n sx = this.fXN[p1]-this.fXN[p2];\n sy = this.fYN[p1]-this.fYN[p2];\n // (nx,ny) will be the normal to the side, but don't know if it's\n // pointing in or out yet\n nx = sy;\n ny = -sx;\n nn = Math.sqrt(nx*nx+ny*ny);\n nx = nx/nn;\n ny = ny/nn;\n mx = this.fXN[p3]-xm;\n my = this.fYN[p3]-ym;\n mdotn = mx*nx+my*ny;\n if (mdotn > 0) {\n // (nx,ny) is pointing in, we want it pointing out\n nx = -nx;\n ny = -ny;\n }\n // increase/decrease xm and ym a little to produce a point\n // just outside the triangle (ensuring that the amount added will\n // be large enough such that it won't be lost in rounding errors)\n a = Math.abs(Math.max(alittlebit*xm, alittlebit*ym));\n xx = xm+nx*a;\n yy = ym+ny*a;\n // try and find a new Delaunay triangle for this point\n this.Interpolate(xx, yy);\n\n // this side of t1 should now, hopefully, if it's not part of the\n // hull, be shared with a new Delaunay triangle just calculated by Interpolate\n }\n }\n t1++;\n }\n }\n\n /// Finds those points which make up the convex hull of the set. If the xy\n /// plane were a sheet of wood, and the points were nails hammered into it\n /// at the respective coordinates, then if an elastic band were stretched\n /// over all the nails it would form the shape of the convex hull. Those\n /// nails in contact with it are the points that make up the hull.\n\n FindHull() {\n if (!this.fHullPoints)\n this.fHullPoints = new Array(this.fNpoints);\n\n let nhull_tmp = 0;\n for (let n=1; n<=this.fNpoints; n++) {\n // if the point is not inside the hull of the set of all points\n // bar it, then it is part of the hull of the set of all points\n // including it\n const is_in = this.InHull(n, n);\n if (!is_in) {\n // cannot increment fNhull directly - InHull needs to know that\n // the hull has not yet been completely found\n nhull_tmp++;\n this.fHullPoints[nhull_tmp-1] = n;\n }\n }\n this.fNhull = nhull_tmp;\n }\n\n\n /// Is point e inside the hull defined by all points apart from x ?\n\n InHull(e, x) {\n let n1, n2, n, m, ntry,\n lastdphi, dd1, dd2, dx1, dx2, dx3, dy1, dy2, dy3,\n u, v, vNv1, vNv2, phi1, phi2, dphi,\n deTinhull = false;\n\n const xx = this.fXN[e],\n yy = this.fYN[e];\n\n if (this.fNhull > 0) {\n // The hull has been found - no need to use any points other than\n // those that make up the hull\n ntry = this.fNhull;\n } else {\n // The hull has not yet been found, will have to try every point\n ntry = this.fNpoints;\n }\n\n // n1 and n2 will represent the two points most separated by angle\n // from point e. Initially the angle between them will be <180 degs.\n // But subsequent points will increase the n1-e-n2 angle. If it\n // increases above 180 degrees then point e must be surrounded by\n // points - it is not part of the hull.\n n1 = 1;\n n2 = 2;\n if (n1 === x) {\n n1 = n2;\n n2++;\n } else if (n2 === x)\n n2++;\n\n\n // Get the angle n1-e-n2 and set it to lastdphi\n dx1 = xx-this.fXN[n1];\n dy1 = yy-this.fYN[n1];\n dx2 = xx-this.fXN[n2];\n dy2 = yy-this.fYN[n2];\n phi1 = Math.atan2(dy1, dx1);\n phi2 = Math.atan2(dy2, dx2);\n dphi = (phi1-phi2)-(Math.floor((phi1-phi2)/(Math.PI*2))*Math.PI*2);\n if (dphi < 0) dphi += Math.PI*2;\n lastdphi = dphi;\n for (n=1; n<=ntry; n++) {\n if (this.fNhull > 0) {\n // Try hull point n\n m = this.fHullPoints[n-1];\n } else\n m = n;\n\n if ((m !== n1) && (m !== n2) && (m !== x)) {\n // Can the vector e->m be represented as a sum with positive\n // coefficients of vectors e->n1 and e->n2?\n dx1 = xx-this.fXN[n1];\n dy1 = yy-this.fYN[n1];\n dx2 = xx-this.fXN[n2];\n dy2 = yy-this.fYN[n2];\n dx3 = xx-this.fXN[m];\n dy3 = yy-this.fYN[m];\n\n dd1 = (dx2*dy1-dx1*dy2);\n dd2 = (dx1*dy2-dx2*dy1);\n\n if (dd1*dd2 !== 0) {\n u = (dx2*dy3-dx3*dy2)/dd1;\n v = (dx1*dy3-dx3*dy1)/dd2;\n if ((u < 0) || (v < 0)) {\n // No, it cannot - point m does not lie in-between n1 and n2 as\n // viewed from e. Replace either n1 or n2 to increase the\n // n1-e-n2 angle. The one to replace is the one which makes the\n // smallest angle with e->m\n vNv1 = (dx1*dx3+dy1*dy3)/Math.sqrt(dx1*dx1+dy1*dy1);\n vNv2 = (dx2*dx3+dy2*dy3)/Math.sqrt(dx2*dx2+dy2*dy2);\n if (vNv1 > vNv2) {\n n1 = m;\n phi1 = Math.atan2(dy3, dx3);\n phi2 = Math.atan2(dy2, dx2);\n } else {\n n2 = m;\n phi1 = Math.atan2(dy1, dx1);\n phi2 = Math.atan2(dy3, dx3);\n }\n dphi = (phi1-phi2)-(Math.floor((phi1-phi2)/(Math.PI*2))*Math.PI*2);\n if (dphi < 0) dphi += Math.PI*2;\n if ((dphi - Math.PI)*(lastdphi - Math.PI) < 0) {\n // The addition of point m means the angle n1-e-n2 has risen\n // above 180 degs, the point is in the hull.\n deTinhull = true;\n return deTinhull;\n }\n lastdphi = dphi;\n }\n }\n }\n }\n // Point e is not surrounded by points - it is not in the hull.\n return deTinhull;\n }\n\n\n /// Finds the z-value at point e given that it lies\n /// on the plane defined by t1,t2,t3\n\n InterpolateOnPlane(TI1, TI2, TI3, e) {\n let tmp, swap, t1 = TI1, t2 = TI2, t3 = TI3;\n\n // order the vertices\n do {\n swap = false;\n if (t2 > t1) { tmp = t1; t1 = t2; t2 = tmp; swap = true; }\n if (t3 > t2) { tmp = t2; t2 = t3; t3 = tmp; swap = true; }\n } while (swap);\n\n const x1 = this.fXN[t1],\n x2 = this.fXN[t2],\n x3 = this.fXN[t3],\n y1 = this.fYN[t1],\n y2 = this.fYN[t2],\n y3 = this.fYN[t3],\n f1 = this.fZ[t1-1],\n f2 = this.fZ[t2-1],\n f3 = this.fZ[t3-1],\n u = (f1*(y2-y3)+f2*(y3-y1)+f3*(y1-y2))/(x1*(y2-y3)+x2*(y3-y1)+x3*(y1-y2)),\n v = (f1*(x2-x3)+f2*(x3-x1)+f3*(x1-x2))/(y1*(x2-x3)+y2*(x3-x1)+y3*(x1-x2)),\n w = f1-u*x1-v*y1;\n\n return u*this.fXN[e] + v*this.fYN[e] + w;\n }\n\n /// Finds the Delaunay triangle that the point (xi,yi) sits in (if any) and\n /// calculate a z-value for it by linearly interpolating the z-values that\n /// make up that triangle.\n\n Interpolate(xx, yy) {\n let thevalue,\n it, ntris_tried, p, n, m,\n i, j, k, l, z, f, d, o1, o2, a, b, t1, t2, t3,\n ndegen = 0, degen = 0, fdegen = 0, o1degen = 0, o2degen = 0,\n vxN, vyN,\n d1, d2, d3, c1, c2, dko1, dko2, dfo1,\n dfo2, sin_sum, cfo1k, co2o1k, co2o1f,\n dx1, dx2, dx3, dy1, dy2, dy3, u, v;\n const dxz = [0, 0, 0], dyz = [0, 0, 0];\n\n // initialise the Delaunay algorithm if needed\n this.Initialize();\n\n // create vectors needed for sorting\n if (!this.fOrder) {\n this.fOrder = new Array(this.fNpoints);\n this.fDist = new Array(this.fNpoints);\n }\n\n // the input point will be point zero.\n this.fXN[0] = xx;\n this.fYN[0] = yy;\n\n // set the output value to the default value for now\n thevalue = this.fZout;\n\n // some counting\n ntris_tried = 0;\n\n // no point in proceeding if xx or yy are silly\n if ((xx > this.fXNmax) || (xx < this.fXNmin) || (yy > this.fYNmax) || (yy < this.fYNmin))\n return thevalue;\n\n // check existing Delaunay triangles for a good one\n for (it=1; it<=this.fNdt; it++) {\n p = this.fPTried[it-1];\n n = this.fNTried[it-1];\n m = this.fMTried[it-1];\n // p, n and m form a previously found Delaunay triangle, does it\n // enclose the point?\n if (this.Enclose(p, n, m, 0)) {\n // yes, we have the triangle\n thevalue = this.InterpolateOnPlane(p, n, m, 0);\n return thevalue;\n }\n }\n\n // is this point inside the convex hull?\n const shouldbein = this.InHull(0, -1);\n if (!shouldbein)\n return thevalue;\n\n // it must be in a Delaunay triangle - find it...\n\n // order mass points by distance in mass plane from desired point\n for (it=1; it<=this.fNpoints; it++) {\n vxN = this.fXN[it];\n vyN = this.fYN[it];\n this.fDist[it-1] = Math.sqrt((xx-vxN)*(xx-vxN)+(yy-vyN)*(yy-vyN));\n }\n\n // sort array 'fDist' to find closest points\n TMath_Sort(this.fNpoints, this.fDist, this.fOrder /*, false */);\n for (it=0; it this.fMaxIter) {\n // perhaps this point isn't in the hull after all\n /// Warning(\"Interpolate\",\n /// \"Abandoning the effort to find a Delaunay triangle (and thus interpolated z-value) for point %g %g\"\n /// ,xx,yy);\n return thevalue;\n }\n ntris_tried++;\n // check the points aren't colinear\n d1 = Math.sqrt((this.fXN[p]-this.fXN[n])**2+(this.fYN[p]-this.fYN[n])**2);\n d2 = Math.sqrt((this.fXN[p]-this.fXN[m])**2+(this.fYN[p]-this.fYN[m])**2);\n d3 = Math.sqrt((this.fXN[n]-this.fXN[m])**2+(this.fYN[n]-this.fYN[m])**2);\n if ((d1+d2 <= d3) || (d1+d3 <= d2) || (d2+d3 <= d1))\n continue;\n\n // does the triangle enclose the point?\n if (!this.Enclose(p, n, m, 0))\n continue;\n\n // is it a Delaunay triangle? (ie. are there any other points\n // inside the circle that is defined by its vertices?)\n\n // test the triangle for Delaunay'ness\n\n // loop over all other points testing each to see if it's\n // inside the triangle's circle\n ndegen = 0;\n for (z = 1; z <= this.fNpoints; z++) {\n if ((z === p) || (z === n) || (z === m))\n continue; // goto L50;\n // An easy first check is to see if point z is inside the triangle\n // (if it's in the triangle it's also in the circle)\n\n // point z cannot be inside the triangle if it's further from (xx,yy)\n // than the furthest pointing making up the triangle - test this\n for (l=1; l<=this.fNpoints; l++) {\n if (this.fOrder[l-1] === z) {\n if ((l= 0) && (v >= 0)) {\n // vector (dx3,dy3) is expressible as a sum of the other two vectors\n // with positive coefficients -> i.e. it lies between the other two vectors\n if (l === 1) {\n f = m; o1 = p; o2 = n; // deepscan-disable-line\n } else if (l === 2) {\n f = p; o1 = n; o2 = m;\n } else {\n f = n; o1 = m; o2 = p;\n }\n break; // goto L2;\n }\n }\n // L2:\n // this is not a valid quadrilateral if the diagonals don't cross,\n // check that points f and z lie on opposite side of the line o1-o2,\n // this is true if the angle f-o1-z is greater than o2-o1-z and o2-o1-f\n cfo1k = ((this.fXN[f]-this.fXN[o1])*(this.fXN[z]-this.fXN[o1])+(this.fYN[f]-this.fYN[o1])*(this.fYN[z]-this.fYN[o1]))/\n Math.sqrt(((this.fXN[f]-this.fXN[o1])*(this.fXN[f]-this.fXN[o1])+(this.fYN[f]-this.fYN[o1])*(this.fYN[f]-this.fYN[o1]))*\n ((this.fXN[z]-this.fXN[o1])*(this.fXN[z]-this.fXN[o1])+(this.fYN[z]-this.fYN[o1])*(this.fYN[z]-this.fYN[o1])));\n co2o1k = ((this.fXN[o2]-this.fXN[o1])*(this.fXN[z]-this.fXN[o1])+(this.fYN[o2]-this.fYN[o1])*(this.fYN[z]-this.fYN[o1]))/\n Math.sqrt(((this.fXN[o2]-this.fXN[o1])*(this.fXN[o2]-this.fXN[o1])+(this.fYN[o2]-this.fYN[o1])*(this.fYN[o2]-this.fYN[o1]))*\n ((this.fXN[z]-this.fXN[o1])*(this.fXN[z]-this.fXN[o1]) + (this.fYN[z]-this.fYN[o1])*(this.fYN[z]-this.fYN[o1])));\n co2o1f = ((this.fXN[o2]-this.fXN[o1])*(this.fXN[f]-this.fXN[o1])+(this.fYN[o2]-this.fYN[o1])*(this.fYN[f]-this.fYN[o1]))/\n Math.sqrt(((this.fXN[o2]-this.fXN[o1])*(this.fXN[o2]-this.fXN[o1])+(this.fYN[o2]-this.fYN[o1])*(this.fYN[o2]-this.fYN[o1]))*\n ((this.fXN[f]-this.fXN[o1])*(this.fXN[f]-this.fXN[o1]) + (this.fYN[f]-this.fYN[o1])*(this.fYN[f]-this.fYN[o1])));\n if ((cfo1k > co2o1k) || (cfo1k > co2o1f)) {\n // not a valid quadrilateral - point z is definitely outside the circle\n continue; // goto L50;\n }\n // calculate the 2 internal angles of the quadrangle formed by joining\n // points z and f to points o1 and o2, at z and f. If they sum to less\n // than 180 degrees then z lies outside the circle\n dko1 = Math.sqrt((this.fXN[z]-this.fXN[o1])*(this.fXN[z]-this.fXN[o1])+(this.fYN[z]-this.fYN[o1])*(this.fYN[z]-this.fYN[o1]));\n dko2 = Math.sqrt((this.fXN[z]-this.fXN[o2])*(this.fXN[z]-this.fXN[o2])+(this.fYN[z]-this.fYN[o2])*(this.fYN[z]-this.fYN[o2]));\n dfo1 = Math.sqrt((this.fXN[f]-this.fXN[o1])*(this.fXN[f]-this.fXN[o1])+(this.fYN[f]-this.fYN[o1])*(this.fYN[f]-this.fYN[o1]));\n dfo2 = Math.sqrt((this.fXN[f]-this.fXN[o2])*(this.fXN[f]-this.fXN[o2])+(this.fYN[f]-this.fYN[o2])*(this.fYN[f]-this.fYN[o2]));\n c1 = ((this.fXN[z]-this.fXN[o1])*(this.fXN[z]-this.fXN[o2])+(this.fYN[z]-this.fYN[o1])*(this.fYN[z]-this.fYN[o2]))/dko1/dko2;\n c2 = ((this.fXN[f]-this.fXN[o1])*(this.fXN[f]-this.fXN[o2])+(this.fYN[f]-this.fYN[o1])*(this.fYN[f]-this.fYN[o2]))/dfo1/dfo2;\n sin_sum = c1*Math.sqrt(1-c2*c2)+c2*Math.sqrt(1-c1*c1);\n\n // sin_sum doesn't always come out as zero when it should do.\n if (sin_sum < -1.e-6) {\n // z is inside the circle, this is not a Delaunay triangle\n skip_this_triangle = true;\n break;\n // goto L90;\n } else if (Math.abs(sin_sum) <= 1.e-6) {\n // point z lies on the circumference of the circle (within rounding errors)\n // defined by the triangle, so there is potential for degeneracy in the\n // triangle set (Delaunay triangulation does not give a unique way to split\n // a polygon whose points lie on a circle into constituent triangles). Make\n // a note of the additional point number.\n ndegen++;\n degen = z;\n fdegen = f;\n o1degen = o1;\n o2degen = o2;\n }\n\n // L50: continue;\n } // end of for ( z = 1 ...) loop\n\n if (skip_this_triangle) continue;\n\n // This is a good triangle\n if (ndegen > 0) {\n // but is degenerate with at least one other,\n // haven't figured out what to do if more than 4 points are involved\n /// if (ndegen > 1) {\n /// Error(\"Interpolate\",\n /// \"More than 4 points lying on a circle. No decision making process formulated for triangulating this region in a non-arbitrary way %d %d %d %d\",\n /// p,n,m,degen);\n /// return thevalue;\n /// }\n\n // we have a quadrilateral which can be split down either diagonal\n // (d<->f or o1<->o2) to form valid Delaunay triangles. Choose diagonal\n // with highest average z-value. Whichever we choose we will have\n // verified two triangles as good and two as bad, only note the good ones\n d = degen;\n f = fdegen;\n o1 = o1degen;\n o2 = o2degen;\n if ((this.fZ[o1-1] + this.fZ[o2-1]) > (this.fZ[d-1] + this.fZ[f-1])) {\n // best diagonalisation of quadrilateral is current one, we have\n // the triangle\n t1 = p;\n t2 = n;\n t3 = m;\n // file the good triangles\n this.FileIt(p, n, m);\n this.FileIt(d, o1, o2);\n } else {\n // use other diagonal to split quadrilateral, use triangle formed by\n // point f, the degnerate point d and whichever of o1 and o2 create\n // an enclosing triangle\n t1 = f;\n t2 = d;\n if (this.Enclose(f, d, o1, 0))\n t3 = o1;\n else\n t3 = o2;\n\n // file the good triangles\n this.FileIt(f, d, o1);\n this.FileIt(f, d, o2);\n }\n } else {\n // this is a Delaunay triangle, file it\n this.FileIt(p, n, m);\n t1 = p;\n t2 = n;\n t3 = m;\n }\n // do the interpolation\n thevalue = this.InterpolateOnPlane(t1, t2, t3, 0);\n return thevalue;\n\n // L90: continue;\n }\n }\n }\n if (shouldbein) // deepscan-disable-line\n console.error(`Interpolate Point outside hull when expected inside: this point could be dodgy ${xx} ${yy} ${ntris_tried}`);\n return thevalue;\n }\n\n /// Defines the number of triangles tested for a Delaunay triangle\n /// (number of iterations) before abandoning the search\n\n SetMaxIter(n = 100000) {\n this.fAllTri = false;\n this.fMaxIter = n;\n }\n\n /// Sets the histogram bin height for points lying outside the convex hull ie:\n /// the bins in the margin.\n\n SetMarginBinsContent(z) {\n this.fZout = z;\n }\n\n}\n\n /** @summary Function handles tooltips in the mesh */\nfunction graph2DTooltip(intersect) {\n let indx = Math.floor(intersect.index / this.nvertex);\n if ((indx < 0) || (indx >= this.index.length)) return null;\n const sqr = v => v*v;\n\n indx = this.index[indx];\n\n const fp = this.fp, gr = this.graph;\n let grx = fp.grx(gr.fX[indx]),\n gry = fp.gry(gr.fY[indx]),\n grz = fp.grz(gr.fZ[indx]);\n\n if (this.check_next && indx+1= 10)\n res.Zscale = d.check('Z');\n\n res.isAny = function() {\n return this.Markers || this.Error || this.Circles || this.Line || this.Triangles;\n };\n\n if (res.isAny()) {\n res.Axis = 'lego2';\n if (res.Zscale) res.Axis += 'z';\n } else\n res.Axis = opt;\n\n this.storeDrawOpt(opt);\n }\n\n /** @summary Create histogram for axes drawing */\n createHistogram() {\n const gr = this.getObject(),\n asymm = this.matchObjectType(clTGraph2DAsymmErrors);\n let xmin = gr.fX[0], xmax = xmin,\n ymin = gr.fY[0], ymax = ymin,\n zmin = gr.fZ[0], zmax = zmin;\n\n for (let p = 0; p < gr.fNpoints; ++p) {\n const x = gr.fX[p], y = gr.fY[p], z = gr.fZ[p];\n\n if (this.options.Error) {\n xmin = Math.min(xmin, x - (asymm ? gr.fEXlow[p] : gr.fEX[p]));\n xmax = Math.max(xmax, x + (asymm ? gr.fEXhigh[p] : gr.fEX[p]));\n ymin = Math.min(ymin, y - (asymm ? gr.fEYlow[p] : gr.fEY[p]));\n ymax = Math.max(ymax, y + (asymm ? gr.fEYhigh[p] : gr.fEY[p]));\n zmin = Math.min(zmin, z - (asymm ? gr.fEZlow[p] : gr.fEZ[p]));\n zmax = Math.max(zmax, z + (asymm ? gr.fEZhigh[p] : gr.fEZ[p]));\n } else {\n xmin = Math.min(xmin, x);\n xmax = Math.max(xmax, x);\n ymin = Math.min(ymin, y);\n ymax = Math.max(ymax, y);\n zmin = Math.min(zmin, z);\n zmax = Math.max(zmax, z);\n }\n }\n\n function calc_delta(min, max, margin) {\n if (min < max) return margin * (max - min);\n return Math.abs(min) < 1e5 ? 0.02 : 0.02 * Math.abs(min);\n }\n const dx = calc_delta(xmin, xmax, gr.fMargin),\n dy = calc_delta(ymin, ymax, gr.fMargin),\n dz = calc_delta(zmin, zmax, 0);\n let uxmin = xmin - dx, uxmax = xmax + dx,\n uymin = ymin - dy, uymax = ymax + dy,\n uzmin = zmin - dz, uzmax = zmax + dz;\n\n if ((uxmin < 0) && (xmin >= 0)) uxmin = xmin*0.98;\n if ((uxmax > 0) && (xmax <= 0)) uxmax = 0;\n\n if ((uymin < 0) && (ymin >= 0)) uymin = ymin*0.98;\n if ((uymax > 0) && (ymax <= 0)) uymax = 0;\n\n if ((uzmin < 0) && (zmin >= 0)) uzmin = zmin*0.98;\n if ((uzmax > 0) && (zmax <= 0)) uzmax = 0;\n\n const graph = this.getObject();\n\n if (graph.fMinimum !== kNoZoom) uzmin = graph.fMinimum;\n if (graph.fMaximum !== kNoZoom) uzmax = graph.fMaximum;\n\n this._own_histogram = true; // when histogram created on client side\n\n const histo = createHistogram(clTH2F, graph.fNpx, graph.fNpy);\n histo.fName = graph.fName + '_h';\n setHistogramTitle(histo, graph.fTitle);\n histo.fXaxis.fXmin = uxmin;\n histo.fXaxis.fXmax = uxmax;\n histo.fYaxis.fXmin = uymin;\n histo.fYaxis.fXmax = uymax;\n histo.fZaxis.fXmin = uzmin;\n histo.fZaxis.fXmax = uzmax;\n histo.fMinimum = uzmin;\n histo.fMaximum = uzmax;\n histo.fBits |= kNoStats;\n\n if (!this.options.isAny()) {\n const dulaunay = this.buildDelaunay(graph);\n if (dulaunay) {\n for (let i = 0; i < graph.fNpx; ++i) {\n const xx = uxmin + (i + 0.5) / graph.fNpx * (uxmax - uxmin);\n for (let j = 0; j < graph.fNpy; ++j) {\n const yy = uymin + (j + 0.5) / graph.fNpy * (uymax - uymin),\n zz = dulaunay.ComputeZ(xx, yy);\n histo.fArray[histo.getBin(i+1, j+1)] = zz;\n }\n }\n }\n }\n\n return histo;\n }\n\n buildDelaunay(graph) {\n if (!this._delaunay) {\n this._delaunay = new TGraphDelaunay(graph);\n this._delaunay.FindAllTriangles();\n if (!this._delaunay.fNdt)\n delete this._delaunay;\n }\n return this._delaunay;\n }\n\n drawTriangles(fp, graph, levels, palette) {\n const dulaunay = this.buildDelaunay(graph);\n if (!dulaunay) return;\n\n const main_grz = !fp.logz ? fp.grz : value => (value < fp.scale_zmin) ? -0.1 : fp.grz(value),\n do_faces = this.options.Triangles >= 10,\n do_lines = this.options.Triangles % 10 === 1,\n triangles = new Triangles3DHandler(levels, main_grz, 0, 2*fp.size_z3d, do_lines);\n\n for (triangles.loop = 0; triangles.loop < 2; ++triangles.loop) {\n triangles.createBuffers();\n\n for (let t = 0; t < dulaunay.fNdt; ++t) {\n const points = [dulaunay.fPTried[t], dulaunay.fNTried[t], dulaunay.fMTried[t]],\n coord = [];\n let use_triangle = true;\n for (let i = 0; i < 3; ++i) {\n const pnt = points[i] - 1;\n coord.push(fp.grx(graph.fX[pnt]), fp.gry(graph.fY[pnt]), main_grz(graph.fZ[pnt]));\n\n if ((graph.fX[pnt] < fp.scale_xmin) || (graph.fX[pnt] > fp.scale_xmax) ||\n (graph.fY[pnt] < fp.scale_ymin) || (graph.fY[pnt] > fp.scale_ymax))\n use_triangle = false;\n }\n\n if (do_faces && use_triangle)\n triangles.addMainTriangle(...coord);\n\n if (do_lines && use_triangle) {\n triangles.addLineSegment(coord[0], coord[1], coord[2], coord[3], coord[4], coord[5]);\n\n triangles.addLineSegment(coord[3], coord[4], coord[5], coord[6], coord[7], coord[8]);\n\n triangles.addLineSegment(coord[6], coord[7], coord[8], coord[0], coord[1], coord[2]);\n }\n }\n }\n\n triangles.callFuncs((lvl, pos) => {\n const geometry = createLegoGeom(this.getMainPainter(), pos, null, 100, 100),\n color = palette.calcColor(lvl, levels.length),\n material = new MeshBasicMaterial(getMaterialArgs(color, { side: DoubleSide, vertexColors: false })),\n\n mesh = new Mesh(geometry, material);\n\n fp.add3DMesh(mesh, this);\n\n mesh.painter = this; // to let use it with context menu\n }, (_isgrid, lpos) => {\n const lcolor = this.getColor(graph.fLineColor),\n material = new LineBasicMaterial({ color: new Color(lcolor), linewidth: graph.fLineWidth }),\n linemesh = createLineSegments(convertLegoBuf(this.getMainPainter(), lpos, 100, 100), material);\n fp.add3DMesh(linemesh, this);\n });\n }\n\n /** @summary Update TGraph2D object */\n updateObject(obj, opt) {\n if (!this.matchObjectType(obj)) return false;\n\n if (opt && (opt !== this.options.original))\n this.decodeOptions(opt, obj);\n\n Object.assign(this.getObject(), obj);\n\n delete this._delaunay; // rebuild triangles\n\n delete this.$redraw_hist;\n\n // if our own histogram was used as axis drawing, we need update histogram as well\n if (this.axes_draw) {\n const hist_painter = this.getMainPainter();\n hist_painter?.updateObject(this.createHistogram(), this.options.Axis);\n this.$redraw_hist = hist_painter;\n }\n\n return true;\n }\n\n /** @summary Redraw TGraph2D object\n * @desc Update histogram drawing if necessary\n * @return {Promise} for drawing ready */\n async redraw() {\n let promise = Promise.resolve(true);\n\n if (this.$redraw_hist) {\n promise = this.$redraw_hist.redraw();\n delete this.$redraw_hist;\n }\n\n return promise.then(() => this.drawGraph2D());\n }\n\n /** @summary Actual drawing of TGraph2D object\n * @return {Promise} for drawing ready */\n async drawGraph2D() {\n const main = this.getMainPainter(),\n fp = this.getFramePainter(),\n graph = this.getObject();\n\n if (!graph || !main || !fp || !fp.mode3d)\n return this;\n\n fp.remove3DMeshes(this);\n\n if (!this.options.isAny()) {\n // no need to draw somthing if histogram content was drawn\n if (main.draw_content)\n return this;\n if ((graph.fMarkerSize === 1) && (graph.fMarkerStyle === 1))\n this.options.Circles = true;\n else\n this.options.Markers = true;\n }\n\n const countSelected = (zmin, zmax) => {\n let cnt = 0;\n for (let i = 0; i < graph.fNpoints; ++i) {\n if ((graph.fX[i] < fp.scale_xmin) || (graph.fX[i] > fp.scale_xmax) ||\n (graph.fY[i] < fp.scale_ymin) || (graph.fY[i] > fp.scale_ymax) ||\n (graph.fZ[i] < zmin) || (graph.fZ[i] >= zmax)) continue;\n\n ++cnt;\n }\n return cnt;\n };\n\n // try to define scale-down factor\n let step = 1;\n if ((settings.OptimizeDraw > 0) && !fp.webgl) {\n const numselected = countSelected(fp.scale_zmin, fp.scale_zmax),\n sizelimit = 50000;\n\n if (numselected > sizelimit) {\n step = Math.floor(numselected / sizelimit);\n if (step <= 2) step = 2;\n }\n }\n\n const markeratt = this.createAttMarker({ attr: graph, std: false }),\n promises = [];\n let palette = null,\n levels = [fp.scale_zmin, fp.scale_zmax],\n scale = fp.size_x3d / 100 * markeratt.getFullSize();\n\n if (this.options.Circles)\n scale = 0.06 * fp.size_x3d;\n\n if (fp.usesvg) scale *= 0.3;\n\n scale *= 7 * Math.max(fp.size_x3d / fp.getFrameWidth(), fp.size_z3d / fp.getFrameHeight());\n\n if (this.options.Color || this.options.Triangles) {\n levels = main.getContourLevels(true);\n palette = main.getHistPalette();\n }\n\n if (this.options.Triangles)\n this.drawTriangles(fp, graph, levels, palette);\n\n for (let lvl = 0; lvl < levels.length-1; ++lvl) {\n const lvl_zmin = Math.max(levels[lvl], fp.scale_zmin),\n lvl_zmax = Math.min(levels[lvl+1], fp.scale_zmax);\n\n if (lvl_zmin >= lvl_zmax) continue;\n\n const size = Math.floor(countSelected(lvl_zmin, lvl_zmax) / step),\n index = new Int32Array(size);\n let pnts = null, select = 0, icnt = 0,\n err = null, asymm = false, line = null, ierr = 0, iline = 0;\n\n if (this.options.Markers || this.options.Circles)\n pnts = new PointsCreator(size, fp.webgl, scale/3);\n\n if (this.options.Error) {\n err = new Float32Array(size*6*3);\n asymm = this.matchObjectType(clTGraph2DAsymmErrors);\n }\n\n if (this.options.Line)\n line = new Float32Array((size-1)*6);\n\n for (let i = 0; i < graph.fNpoints; ++i) {\n if ((graph.fX[i] < fp.scale_xmin) || (graph.fX[i] > fp.scale_xmax) ||\n (graph.fY[i] < fp.scale_ymin) || (graph.fY[i] > fp.scale_ymax) ||\n (graph.fZ[i] < lvl_zmin) || (graph.fZ[i] >= lvl_zmax)) continue;\n\n if (step > 1) {\n select = (select+1) % step;\n if (select !== 0) continue;\n }\n\n index[icnt++] = i; // remember point index for tooltip\n\n const x = fp.grx(graph.fX[i]),\n y = fp.gry(graph.fY[i]),\n z = fp.grz(graph.fZ[i]);\n\n if (pnts) pnts.addPoint(x, y, z);\n\n if (err) {\n err[ierr] = fp.grx(graph.fX[i] - (asymm ? graph.fEXlow[i] : graph.fEX[i]));\n err[ierr+1] = y;\n err[ierr+2] = z;\n err[ierr+3] = fp.grx(graph.fX[i] + (asymm ? graph.fEXhigh[i] : graph.fEX[i]));\n err[ierr+4] = y;\n err[ierr+5] = z;\n ierr+=6;\n err[ierr] = x;\n err[ierr+1] = fp.gry(graph.fY[i] - (asymm ? graph.fEYlow[i] : graph.fEY[i]));\n err[ierr+2] = z;\n err[ierr+3] = x;\n err[ierr+4] = fp.gry(graph.fY[i] + (asymm ? graph.fEYhigh[i] : graph.fEY[i]));\n err[ierr+5] = z;\n ierr+=6;\n err[ierr] = x;\n err[ierr+1] = y;\n err[ierr+2] = fp.grz(graph.fZ[i] - (asymm ? graph.fEZlow[i] : graph.fEZ[i]));\n err[ierr+3] = x;\n err[ierr+4] = y;\n err[ierr+5] = fp.grz(graph.fZ[i] + (asymm ? graph.fEZhigh[i] : graph.fEZ[i]));\n ierr+=6;\n }\n\n if (line) {\n if (iline>=6) {\n line[iline] = line[iline-3];\n line[iline+1] = line[iline-2];\n line[iline+2] = line[iline-1];\n iline+=3;\n }\n line[iline] = x;\n line[iline+1] = y;\n line[iline+2] = z;\n iline+=3;\n }\n }\n\n if (line && (iline > 3) && (line.length === iline)) {\n const lcolor = this.getColor(graph.fLineColor),\n material = new LineBasicMaterial({ color: new Color(lcolor), linewidth: graph.fLineWidth }),\n linemesh = createLineSegments(line, material);\n fp.add3DMesh(linemesh, this);\n\n linemesh.graph = graph;\n linemesh.index = index;\n linemesh.fp = fp;\n linemesh.scale0 = 0.7*scale;\n linemesh.tip_name = this.getObjectHint();\n linemesh.tip_color = (graph.fMarkerColor === 3) ? 0xFF0000 : 0x00FF00;\n linemesh.nvertex = 2;\n linemesh.check_next = true;\n\n linemesh.tooltip = graph2DTooltip;\n }\n\n if (err) {\n const lcolor = this.getColor(graph.fLineColor),\n material = new LineBasicMaterial({ color: new Color(lcolor), linewidth: graph.fLineWidth }),\n errmesh = createLineSegments(err, material);\n fp.add3DMesh(errmesh, this);\n\n errmesh.graph = graph;\n errmesh.index = index;\n errmesh.fp = fp;\n errmesh.scale0 = 0.7*scale;\n errmesh.tip_name = this.getObjectHint();\n errmesh.tip_color = (graph.fMarkerColor === 3) ? 0xFF0000 : 0x00FF00;\n errmesh.nvertex = 6;\n\n errmesh.tooltip = graph2DTooltip;\n }\n\n if (pnts) {\n let color = 'blue';\n\n if (!this.options.Circles || this.options.Color)\n color = palette?.calcColor(lvl, levels.length) ?? this.getColor(graph.fMarkerColor);\n\n const pr = pnts.createPoints({ color, style: this.options.Circles ? 4 : graph.fMarkerStyle }).then(mesh => {\n mesh.graph = graph;\n mesh.fp = fp;\n mesh.tip_color = (graph.fMarkerColor === 3) ? 0xFF0000 : 0x00FF00;\n mesh.scale0 = 0.3*scale;\n mesh.index = index;\n\n mesh.tip_name = this.getObjectHint();\n mesh.tooltip = graph2DTooltip;\n fp.add3DMesh(mesh, this);\n });\n\n promises.push(pr);\n }\n }\n\n return Promise.all(promises).then(() => {\n if (this.options.Zscale && this.axes_draw) {\n const pal = this.getMainPainter()?.findFunction(clTPaletteAxis),\n pal_painter = this.getPadPainter()?.findPainterFor(pal);\n return pal_painter?.drawPave();\n }\n }).then(() => {\n fp.render3D(100);\n return this;\n });\n }\n\n /** @summary draw TGraph2D object */\n static async draw(dom, gr, opt) {\n const painter = new TGraph2DPainter(dom, gr);\n painter.decodeOptions(opt, gr);\n\n let promise = Promise.resolve(null);\n\n if (!painter.getMainPainter()) {\n // histogram is not preserved in TGraph2D\n promise = TH2Painter.draw(dom, painter.createHistogram(), painter.options.Axis);\n painter.axes_draw = true;\n }\n\n return promise.then(() => {\n painter.addToPadPrimitives();\n return painter.drawGraph2D();\n });\n }\n\n} // class TGraph2DPainter\n\nexport { TGraph2DPainter };\n"],"x_google_ignoreList":[0]} \ No newline at end of file +{"version":3,"file":"763.0049a9e724764c1d.js","mappings":"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","names":["getMax","arr","v","i","length","Math","max","getMin","min","TGraphDelaunay","constructor","g","this","fGraph2D","fX","fY","fZ","fNpoints","fZout","fNdt","fNhull","fHullPoints","fXN","fYN","fOrder","fDist","fPTried","fNTried","fMTried","fInit","fXNmin","fXNmax","fYNmin","fYNmax","fXoffset","fYoffset","fXScaleFactor","fYScaleFactor","SetMaxIter","Initialize","CreateTrianglesDataStructure","FindHull","ComputeZ","x","y","xx","yy","zz","Interpolate","xmax","ymax","xmin","ymin","Array","n","Enclose","t1","t2","t3","e","xp","yp","j","oddNodes","FileIt","p","m","swap","tmp","ps","ns","ms","push","FindAllTriangles","fAllTri","xcntr","ycntr","xm","ym","sx","sy","nx","ny","mx","my","mdotn","nn","a","pa","na","ma","pb","nb","mb","p1","p2","p3","s","alittlebit","sqrt","abs","nhull_tmp","InHull","n1","n2","ntry","lastdphi","dd1","dd2","dx1","dx2","dx3","dy1","dy2","dy3","u","vNv1","vNv2","phi1","phi2","dphi","deTinhull","atan2","floor","PI","InterpolateOnPlane","TI1","TI2","TI3","x1","x2","x3","y1","y2","y3","f1","f2","f3","thevalue","it","ntris_tried","k","l","z","f","d","o1","o2","b","vxN","vyN","d1","d2","d3","c1","c2","dko1","dko2","dfo1","dfo2","sin_sum","cfo1k","co2o1k","co2o1f","ndegen","degen","fdegen","o1degen","o2degen","dxz","dyz","shouldbein","TMath_Sort","np","values","indicies","sort","skip_this_triangle","fMaxIter","console","warn","error","SetMarginBinsContent","graph2DTooltip","intersect","indx","index","nvertex","sqr","fp","gr","graph","grx","gry","grz","check_next","point","grx1","gry1","grz1","scale0","z1","z2","color","tip_color","lines","tip_name","axisAsText","TGraph2DPainter","ObjectPainter","decodeOptions","opt","_gr","DrawOptions","options","res","check","Triangles","Line","Error","matchObjectType","clTGraph2DErrors","clTGraph2DAsymmErrors","Color","Circles","Markers","Zscale","isAny","Axis","storeDrawOpt","createHistogram","getObject","asymm","zmin","zmax","fEXlow","fEX","fEXhigh","fEYlow","fEY","fEYhigh","fEZlow","fEZ","fEZhigh","calc_delta","margin","dx","fMargin","dy","dz","uxmin","uxmax","uymin","uymax","uzmin","uzmax","fMinimum","kNoZoom","fMaximum","_own_histogram","histo","clTH2F","fNpx","fNpy","fName","setHistogramTitle","fTitle","fXaxis","fXmin","fXmax","fYaxis","fZaxis","fBits","kNoStats","dulaunay","buildDelaunay","fArray","getBin","_delaunay","drawTriangles","levels","palette","main_grz","logz","value","scale_zmin","do_faces","do_lines","triangles","Triangles3DHandler","size_z3d","loop","createBuffers","t","points","coord","use_triangle","pnt","scale_xmin","scale_xmax","scale_ymin","scale_ymax","addMainTriangle","addLineSegment","callFuncs","lvl","pos","geometry","createLegoGeom","getMainPainter","calcColor","material","MeshBasicMaterial","getMaterialArgs","side","DoubleSide","vertexColors","mesh","Mesh","add3DMesh","painter","_isgrid","lpos","lcolor","getColor","fLineColor","LineBasicMaterial","linewidth","fLineWidth","linemesh","createLineSegments","convertLegoBuf","updateObject","obj","original","Object","assign","$redraw_hist","axes_draw","hist_painter","redraw","_this","_asyncToGenerator","promise","Promise","resolve","then","drawGraph2D","_this2","main","getFramePainter","mode3d","remove3DMeshes","draw_content","fMarkerSize","fMarkerStyle","countSelected","cnt","step","settings","OptimizeDraw","webgl","numselected","scale_zmax","sizelimit","markeratt","createAttMarker","attr","std","promises","scale","size_x3d","getFullSize","usesvg","getFrameWidth","getFrameHeight","getContourLevels","getHistPalette","lvl_zmin","lvl_zmax","size","Int32Array","pnts","select","icnt","err","line","ierr","iline","PointsCreator","Float32Array","addPoint","getObjectHint","fMarkerColor","tooltip","errmesh","pr","createPoints","style","all","pal","findFunction","clTPaletteAxis","getPadPainter","findPainterFor","drawPave","render3D","draw","dom","TH2Painter","addToPadPrimitives"],"ignoreList":[],"sourceRoot":"webpack:///","sources":["../node_modules/jsroot/modules/hist/TGraph2DPainter.mjs"],"sourcesContent":["import { settings, createHistogram, setHistogramTitle, kNoZoom,\n clTH2F, clTGraph2DErrors, clTGraph2DAsymmErrors, clTPaletteAxis, kNoStats } from '../core.mjs';\nimport { Color, DoubleSide, LineBasicMaterial, MeshBasicMaterial, Mesh } from '../three.mjs';\nimport { DrawOptions } from '../base/BasePainter.mjs';\nimport { ObjectPainter } from '../base/ObjectPainter.mjs';\nimport { TH2Painter } from './TH2Painter.mjs';\nimport { Triangles3DHandler } from '../hist2d/TH2Painter.mjs';\nimport { createLineSegments, PointsCreator, getMaterialArgs } from '../base/base3d.mjs';\nimport { convertLegoBuf, createLegoGeom } from './hist3d.mjs';\n\nfunction getMax(arr) {\n let v = arr[0];\n for (let i = 1; i < arr.length; ++i)\n v = Math.max(v, arr[i]);\n return v;\n}\n\nfunction getMin(arr) {\n let v = arr[0];\n for (let i = 1; i < arr.length; ++i)\n v = Math.min(v, arr[i]);\n return v;\n}\n\nfunction TMath_Sort(np, values, indicies /*, down */) {\n const arr = new Array(np);\n for (let i = 0; i < np; ++i)\n arr[i] = { v: values[i], i };\n\n arr.sort((a, b) => { return a.v < b.v ? -1 : (a.v > b.v ? 1 : 0); });\n\n for (let i = 0; i < np; ++i)\n indicies[i] = arr[i].i;\n}\n\nclass TGraphDelaunay {\n\n constructor(g) {\n this.fGraph2D = g;\n this.fX = g.fX;\n this.fY = g.fY;\n this.fZ = g.fZ;\n this.fNpoints = g.fNpoints;\n this.fZout = 0.0;\n this.fNdt = 0;\n this.fNhull = 0;\n this.fHullPoints = null;\n this.fXN = null;\n this.fYN = null;\n this.fOrder = null;\n this.fDist = null;\n this.fPTried = null;\n this.fNTried = null;\n this.fMTried = null;\n this.fInit = false;\n this.fXNmin = 0.0;\n this.fXNmax = 0.0;\n this.fYNmin = 0.0;\n this.fYNmax = 0.0;\n this.fXoffset = 0.0;\n this.fYoffset = 0.0;\n this.fXScaleFactor = 0.0;\n this.fYScaleFactor = 0.0;\n\n this.SetMaxIter();\n }\n\n\n Initialize() {\n if (!this.fInit) {\n this.CreateTrianglesDataStructure();\n this.FindHull();\n this.fInit = true;\n }\n }\n\n ComputeZ(x, y) {\n // Initialise the Delaunay algorithm if needed.\n // CreateTrianglesDataStructure computes fXoffset, fYoffset,\n // fXScaleFactor and fYScaleFactor;\n // needed in this function.\n this.Initialize();\n\n // Find the z value corresponding to the point (x,y).\n const xx = (x+this.fXoffset)*this.fXScaleFactor,\n yy = (y+this.fYoffset)*this.fYScaleFactor;\n let zz = this.Interpolate(xx, yy);\n\n // Wrong zeros may appear when points sit on a regular grid.\n // The following line try to avoid this problem.\n if (zz === 0) zz = this.Interpolate(xx+0.0001, yy);\n\n return zz;\n }\n\n\n CreateTrianglesDataStructure() {\n // Offset fX and fY so they average zero, and scale so the average\n // of the X and Y ranges is one. The normalized version of fX and fY used\n // in Interpolate.\n const xmax = getMax(this.fGraph2D.fX),\n ymax = getMax(this.fGraph2D.fY),\n xmin = getMin(this.fGraph2D.fX),\n ymin = getMin(this.fGraph2D.fY);\n this.fXoffset = -(xmax+xmin)/2;\n this.fYoffset = -(ymax+ymin)/2;\n this.fXScaleFactor = 1/(xmax-xmin);\n this.fYScaleFactor = 1/(ymax-ymin);\n this.fXNmax = (xmax+this.fXoffset)*this.fXScaleFactor;\n this.fXNmin = (xmin+this.fXoffset)*this.fXScaleFactor;\n this.fYNmax = (ymax+this.fYoffset)*this.fYScaleFactor;\n this.fYNmin = (ymin+this.fYoffset)*this.fYScaleFactor;\n this.fXN = new Array(this.fNpoints+1);\n this.fYN = new Array(this.fNpoints+1);\n for (let n = 0; n < this.fNpoints; n++) {\n this.fXN[n+1] = (this.fX[n]+this.fXoffset)*this.fXScaleFactor;\n this.fYN[n+1] = (this.fY[n]+this.fYoffset)*this.fYScaleFactor;\n }\n\n // If needed, creates the arrays to hold the Delaunay triangles.\n // A maximum number of 2*fNpoints is guessed. If more triangles will be\n // find, FillIt will automatically enlarge these arrays.\n this.fPTried = [];\n this.fNTried = [];\n this.fMTried = [];\n }\n\n\n /// Is point e inside the triangle t1-t2-t3 ?\n\n Enclose(t1, t2, t3, e) {\n const x = [this.fXN[t1], this.fXN[t2], this.fXN[t3], this.fXN[t1]],\n y = [this.fYN[t1], this.fYN[t2], this.fYN[t3], this.fYN[t1]],\n xp = this.fXN[e],\n yp = this.fYN[e];\n let i = 0, j = x.length - 1, oddNodes = false;\n\n for (; i < x.length; ++i) {\n if ((y[i]=yp) || (y[j]=yp)) {\n if (x[i]+(yp-y[i])/(y[j]-y[i])*(x[j]-x[i]) ps) { tmp = ps; ps = ns; ns = tmp; swap = true; }\n if (ms > ns) { tmp = ns; ns = ms; ms = tmp; swap = true; }\n } while (swap);\n\n // store a new Delaunay triangle\n this.fNdt++;\n this.fPTried.push(ps);\n this.fNTried.push(ns);\n this.fMTried.push(ms);\n }\n\n\n /// Attempt to find all the Delaunay triangles of the point set. It is not\n /// guaranteed that it will fully succeed, and no check is made that it has\n /// fully succeeded (such a check would be possible by referencing the points\n /// that make up the convex hull). The method is to check if each triangle\n /// shares all three of its sides with other triangles. If not, a point is\n /// generated just outside the triangle on the side(s) not shared, and a new\n /// triangle is found for that point. If this method is not working properly\n /// (many triangles are not being found) it's probably because the new points\n /// are too far beyond or too close to the non-shared sides. Fiddling with\n /// the size of the `alittlebit' parameter may help.\n\n FindAllTriangles() {\n if (this.fAllTri) return;\n\n this.fAllTri = true;\n\n let xcntr, ycntr, xm, ym, xx, yy,\n sx, sy, nx, ny, mx, my, mdotn, nn, a,\n t1, t2, pa, na, ma, pb, nb, mb, p1=0, p2=0, m, n, p3=0;\n const s = [false, false, false],\n alittlebit = 0.0001;\n\n this.Initialize();\n\n // start with a point that is guaranteed to be inside the hull (the\n // centre of the hull). The starting point is shifted \"a little bit\"\n // otherwise, in case of triangles aligned on a regular grid, we may\n // found none of them.\n xcntr = 0;\n ycntr = 0;\n for (n = 1; n <= this.fNhull; n++) {\n xcntr += this.fXN[this.fHullPoints[n-1]];\n ycntr += this.fYN[this.fHullPoints[n-1]];\n }\n xcntr = xcntr/this.fNhull+alittlebit;\n ycntr = ycntr/this.fNhull+alittlebit;\n // and calculate it's triangle\n this.Interpolate(xcntr, ycntr);\n\n // loop over all Delaunay triangles (including those constantly being\n // produced within the loop) and check to see if their 3 sides also\n // correspond to the sides of other Delaunay triangles, i.e. that they\n // have all their neighbours.\n t1 = 1;\n while (t1 <= this.fNdt) {\n // get the three points that make up this triangle\n pa = this.fPTried[t1-1];\n na = this.fNTried[t1-1];\n ma = this.fMTried[t1-1];\n\n // produce three integers which will represent the three sides\n s[0] = false;\n s[1] = false;\n s[2] = false;\n // loop over all other Delaunay triangles\n for (t2=1; t2<=this.fNdt; t2++) {\n if (t2 !== t1) {\n // get the points that make up this triangle\n pb = this.fPTried[t2-1];\n nb = this.fNTried[t2-1];\n mb = this.fMTried[t2-1];\n // do triangles t1 and t2 share a side?\n if ((pa === pb && na === nb) || (pa === pb && na === mb) || (pa === nb && na === mb)) {\n // they share side 1\n s[0] = true;\n } else if ((pa === pb && ma === nb) || (pa === pb && ma === mb) || (pa === nb && ma === mb)) {\n // they share side 2\n s[1] = true;\n } else if ((na === pb && ma === nb) || (na === pb && ma === mb) || (na === nb && ma === mb)) {\n // they share side 3\n s[2] = true;\n }\n }\n // if t1 shares all its sides with other Delaunay triangles then\n // forget about it\n if (s[0] && s[1] && s[2]) continue;\n }\n // Looks like t1 is missing a neighbour on at least one side.\n // For each side, take a point a little bit beyond it and calculate\n // the Delaunay triangle for that point, this should be the triangle\n // which shares the side.\n for (m=1; m<=3; m++) {\n if (!s[m-1]) {\n // get the two points that make up this side\n if (m === 1) {\n p1 = pa;\n p2 = na;\n p3 = ma;\n } else if (m === 2) {\n p1 = pa;\n p2 = ma;\n p3 = na;\n } else if (m === 3) {\n p1 = na;\n p2 = ma;\n p3 = pa;\n }\n // get the coordinates of the centre of this side\n xm = (this.fXN[p1]+this.fXN[p2])/2.0;\n ym = (this.fYN[p1]+this.fYN[p2])/2.0;\n // we want to add a little to these coordinates to get a point just\n // outside the triangle; (sx,sy) will be the vector that represents\n // the side\n sx = this.fXN[p1]-this.fXN[p2];\n sy = this.fYN[p1]-this.fYN[p2];\n // (nx,ny) will be the normal to the side, but don't know if it's\n // pointing in or out yet\n nx = sy;\n ny = -sx;\n nn = Math.sqrt(nx*nx+ny*ny);\n nx = nx/nn;\n ny = ny/nn;\n mx = this.fXN[p3]-xm;\n my = this.fYN[p3]-ym;\n mdotn = mx*nx+my*ny;\n if (mdotn > 0) {\n // (nx,ny) is pointing in, we want it pointing out\n nx = -nx;\n ny = -ny;\n }\n // increase/decrease xm and ym a little to produce a point\n // just outside the triangle (ensuring that the amount added will\n // be large enough such that it won't be lost in rounding errors)\n a = Math.abs(Math.max(alittlebit*xm, alittlebit*ym));\n xx = xm+nx*a;\n yy = ym+ny*a;\n // try and find a new Delaunay triangle for this point\n this.Interpolate(xx, yy);\n\n // this side of t1 should now, hopefully, if it's not part of the\n // hull, be shared with a new Delaunay triangle just calculated by Interpolate\n }\n }\n t1++;\n }\n }\n\n /// Finds those points which make up the convex hull of the set. If the xy\n /// plane were a sheet of wood, and the points were nails hammered into it\n /// at the respective coordinates, then if an elastic band were stretched\n /// over all the nails it would form the shape of the convex hull. Those\n /// nails in contact with it are the points that make up the hull.\n\n FindHull() {\n if (!this.fHullPoints)\n this.fHullPoints = new Array(this.fNpoints);\n\n let nhull_tmp = 0;\n for (let n=1; n<=this.fNpoints; n++) {\n // if the point is not inside the hull of the set of all points\n // bar it, then it is part of the hull of the set of all points\n // including it\n const is_in = this.InHull(n, n);\n if (!is_in) {\n // cannot increment fNhull directly - InHull needs to know that\n // the hull has not yet been completely found\n nhull_tmp++;\n this.fHullPoints[nhull_tmp-1] = n;\n }\n }\n this.fNhull = nhull_tmp;\n }\n\n\n /// Is point e inside the hull defined by all points apart from x ?\n\n InHull(e, x) {\n let n1, n2, n, m, ntry,\n lastdphi, dd1, dd2, dx1, dx2, dx3, dy1, dy2, dy3,\n u, v, vNv1, vNv2, phi1, phi2, dphi,\n deTinhull = false;\n\n const xx = this.fXN[e],\n yy = this.fYN[e];\n\n if (this.fNhull > 0) {\n // The hull has been found - no need to use any points other than\n // those that make up the hull\n ntry = this.fNhull;\n } else {\n // The hull has not yet been found, will have to try every point\n ntry = this.fNpoints;\n }\n\n // n1 and n2 will represent the two points most separated by angle\n // from point e. Initially the angle between them will be <180 degs.\n // But subsequent points will increase the n1-e-n2 angle. If it\n // increases above 180 degrees then point e must be surrounded by\n // points - it is not part of the hull.\n n1 = 1;\n n2 = 2;\n if (n1 === x) {\n n1 = n2;\n n2++;\n } else if (n2 === x)\n n2++;\n\n\n // Get the angle n1-e-n2 and set it to lastdphi\n dx1 = xx-this.fXN[n1];\n dy1 = yy-this.fYN[n1];\n dx2 = xx-this.fXN[n2];\n dy2 = yy-this.fYN[n2];\n phi1 = Math.atan2(dy1, dx1);\n phi2 = Math.atan2(dy2, dx2);\n dphi = (phi1-phi2)-(Math.floor((phi1-phi2)/(Math.PI*2))*Math.PI*2);\n if (dphi < 0) dphi += Math.PI*2;\n lastdphi = dphi;\n for (n=1; n<=ntry; n++) {\n if (this.fNhull > 0) {\n // Try hull point n\n m = this.fHullPoints[n-1];\n } else\n m = n;\n\n if ((m !== n1) && (m !== n2) && (m !== x)) {\n // Can the vector e->m be represented as a sum with positive\n // coefficients of vectors e->n1 and e->n2?\n dx1 = xx-this.fXN[n1];\n dy1 = yy-this.fYN[n1];\n dx2 = xx-this.fXN[n2];\n dy2 = yy-this.fYN[n2];\n dx3 = xx-this.fXN[m];\n dy3 = yy-this.fYN[m];\n\n dd1 = (dx2*dy1-dx1*dy2);\n dd2 = (dx1*dy2-dx2*dy1);\n\n if (dd1*dd2 !== 0) {\n u = (dx2*dy3-dx3*dy2)/dd1;\n v = (dx1*dy3-dx3*dy1)/dd2;\n if ((u < 0) || (v < 0)) {\n // No, it cannot - point m does not lie in-between n1 and n2 as\n // viewed from e. Replace either n1 or n2 to increase the\n // n1-e-n2 angle. The one to replace is the one which makes the\n // smallest angle with e->m\n vNv1 = (dx1*dx3+dy1*dy3)/Math.sqrt(dx1*dx1+dy1*dy1);\n vNv2 = (dx2*dx3+dy2*dy3)/Math.sqrt(dx2*dx2+dy2*dy2);\n if (vNv1 > vNv2) {\n n1 = m;\n phi1 = Math.atan2(dy3, dx3);\n phi2 = Math.atan2(dy2, dx2);\n } else {\n n2 = m;\n phi1 = Math.atan2(dy1, dx1);\n phi2 = Math.atan2(dy3, dx3);\n }\n dphi = (phi1-phi2)-(Math.floor((phi1-phi2)/(Math.PI*2))*Math.PI*2);\n if (dphi < 0) dphi += Math.PI*2;\n if ((dphi - Math.PI)*(lastdphi - Math.PI) < 0) {\n // The addition of point m means the angle n1-e-n2 has risen\n // above 180 degs, the point is in the hull.\n deTinhull = true;\n return deTinhull;\n }\n lastdphi = dphi;\n }\n }\n }\n }\n // Point e is not surrounded by points - it is not in the hull.\n return deTinhull;\n }\n\n\n /// Finds the z-value at point e given that it lies\n /// on the plane defined by t1,t2,t3\n\n InterpolateOnPlane(TI1, TI2, TI3, e) {\n let tmp, swap, t1 = TI1, t2 = TI2, t3 = TI3;\n\n // order the vertices\n do {\n swap = false;\n if (t2 > t1) { tmp = t1; t1 = t2; t2 = tmp; swap = true; }\n if (t3 > t2) { tmp = t2; t2 = t3; t3 = tmp; swap = true; }\n } while (swap);\n\n const x1 = this.fXN[t1],\n x2 = this.fXN[t2],\n x3 = this.fXN[t3],\n y1 = this.fYN[t1],\n y2 = this.fYN[t2],\n y3 = this.fYN[t3],\n f1 = this.fZ[t1-1],\n f2 = this.fZ[t2-1],\n f3 = this.fZ[t3-1],\n u = (f1*(y2-y3)+f2*(y3-y1)+f3*(y1-y2))/(x1*(y2-y3)+x2*(y3-y1)+x3*(y1-y2)),\n v = (f1*(x2-x3)+f2*(x3-x1)+f3*(x1-x2))/(y1*(x2-x3)+y2*(x3-x1)+y3*(x1-x2)),\n w = f1-u*x1-v*y1;\n\n return u*this.fXN[e] + v*this.fYN[e] + w;\n }\n\n /// Finds the Delaunay triangle that the point (xi,yi) sits in (if any) and\n /// calculate a z-value for it by linearly interpolating the z-values that\n /// make up that triangle.\n\n Interpolate(xx, yy) {\n let thevalue,\n it, ntris_tried, p, n, m,\n i, j, k, l, z, f, d, o1, o2, a, b, t1, t2, t3,\n ndegen = 0, degen = 0, fdegen = 0, o1degen = 0, o2degen = 0,\n vxN, vyN,\n d1, d2, d3, c1, c2, dko1, dko2, dfo1,\n dfo2, sin_sum, cfo1k, co2o1k, co2o1f,\n dx1, dx2, dx3, dy1, dy2, dy3, u, v;\n const dxz = [0, 0, 0], dyz = [0, 0, 0];\n\n // initialise the Delaunay algorithm if needed\n this.Initialize();\n\n // create vectors needed for sorting\n if (!this.fOrder) {\n this.fOrder = new Array(this.fNpoints);\n this.fDist = new Array(this.fNpoints);\n }\n\n // the input point will be point zero.\n this.fXN[0] = xx;\n this.fYN[0] = yy;\n\n // set the output value to the default value for now\n thevalue = this.fZout;\n\n // some counting\n ntris_tried = 0;\n\n // no point in proceeding if xx or yy are silly\n if ((xx > this.fXNmax) || (xx < this.fXNmin) || (yy > this.fYNmax) || (yy < this.fYNmin))\n return thevalue;\n\n // check existing Delaunay triangles for a good one\n for (it=1; it<=this.fNdt; it++) {\n p = this.fPTried[it-1];\n n = this.fNTried[it-1];\n m = this.fMTried[it-1];\n // p, n and m form a previously found Delaunay triangle, does it\n // enclose the point?\n if (this.Enclose(p, n, m, 0)) {\n // yes, we have the triangle\n thevalue = this.InterpolateOnPlane(p, n, m, 0);\n return thevalue;\n }\n }\n\n // is this point inside the convex hull?\n const shouldbein = this.InHull(0, -1);\n if (!shouldbein)\n return thevalue;\n\n // it must be in a Delaunay triangle - find it...\n\n // order mass points by distance in mass plane from desired point\n for (it=1; it<=this.fNpoints; it++) {\n vxN = this.fXN[it];\n vyN = this.fYN[it];\n this.fDist[it-1] = Math.sqrt((xx-vxN)*(xx-vxN)+(yy-vyN)*(yy-vyN));\n }\n\n // sort array 'fDist' to find closest points\n TMath_Sort(this.fNpoints, this.fDist, this.fOrder /*, false */);\n for (it=0; it this.fMaxIter) {\n // perhaps this point isn't in the hull after all\n /// Warning(\"Interpolate\",\n /// \"Abandoning the effort to find a Delaunay triangle (and thus interpolated z-value) for point %g %g\"\n /// ,xx,yy);\n return thevalue;\n }\n ntris_tried++;\n // check the points aren't colinear\n d1 = Math.sqrt((this.fXN[p]-this.fXN[n])**2+(this.fYN[p]-this.fYN[n])**2);\n d2 = Math.sqrt((this.fXN[p]-this.fXN[m])**2+(this.fYN[p]-this.fYN[m])**2);\n d3 = Math.sqrt((this.fXN[n]-this.fXN[m])**2+(this.fYN[n]-this.fYN[m])**2);\n if ((d1+d2 <= d3) || (d1+d3 <= d2) || (d2+d3 <= d1))\n continue;\n\n // does the triangle enclose the point?\n if (!this.Enclose(p, n, m, 0))\n continue;\n\n // is it a Delaunay triangle? (ie. are there any other points\n // inside the circle that is defined by its vertices?)\n\n // test the triangle for Delaunay'ness\n\n // loop over all other points testing each to see if it's\n // inside the triangle's circle\n ndegen = 0;\n for (z = 1; z <= this.fNpoints; z++) {\n if ((z === p) || (z === n) || (z === m))\n continue; // goto L50;\n // An easy first check is to see if point z is inside the triangle\n // (if it's in the triangle it's also in the circle)\n\n // point z cannot be inside the triangle if it's further from (xx,yy)\n // than the furthest pointing making up the triangle - test this\n for (l=1; l<=this.fNpoints; l++) {\n if (this.fOrder[l-1] === z) {\n if ((l= 0) && (v >= 0)) {\n // vector (dx3,dy3) is expressible as a sum of the other two vectors\n // with positive coefficients -> i.e. it lies between the other two vectors\n if (l === 1) {\n f = m; o1 = p; o2 = n; // deepscan-disable-line\n } else if (l === 2) {\n f = p; o1 = n; o2 = m;\n } else {\n f = n; o1 = m; o2 = p;\n }\n break; // goto L2;\n }\n }\n // L2:\n // this is not a valid quadrilateral if the diagonals don't cross,\n // check that points f and z lie on opposite side of the line o1-o2,\n // this is true if the angle f-o1-z is greater than o2-o1-z and o2-o1-f\n cfo1k = ((this.fXN[f]-this.fXN[o1])*(this.fXN[z]-this.fXN[o1])+(this.fYN[f]-this.fYN[o1])*(this.fYN[z]-this.fYN[o1]))/\n Math.sqrt(((this.fXN[f]-this.fXN[o1])*(this.fXN[f]-this.fXN[o1])+(this.fYN[f]-this.fYN[o1])*(this.fYN[f]-this.fYN[o1]))*\n ((this.fXN[z]-this.fXN[o1])*(this.fXN[z]-this.fXN[o1])+(this.fYN[z]-this.fYN[o1])*(this.fYN[z]-this.fYN[o1])));\n co2o1k = ((this.fXN[o2]-this.fXN[o1])*(this.fXN[z]-this.fXN[o1])+(this.fYN[o2]-this.fYN[o1])*(this.fYN[z]-this.fYN[o1]))/\n Math.sqrt(((this.fXN[o2]-this.fXN[o1])*(this.fXN[o2]-this.fXN[o1])+(this.fYN[o2]-this.fYN[o1])*(this.fYN[o2]-this.fYN[o1]))*\n ((this.fXN[z]-this.fXN[o1])*(this.fXN[z]-this.fXN[o1]) + (this.fYN[z]-this.fYN[o1])*(this.fYN[z]-this.fYN[o1])));\n co2o1f = ((this.fXN[o2]-this.fXN[o1])*(this.fXN[f]-this.fXN[o1])+(this.fYN[o2]-this.fYN[o1])*(this.fYN[f]-this.fYN[o1]))/\n Math.sqrt(((this.fXN[o2]-this.fXN[o1])*(this.fXN[o2]-this.fXN[o1])+(this.fYN[o2]-this.fYN[o1])*(this.fYN[o2]-this.fYN[o1]))*\n ((this.fXN[f]-this.fXN[o1])*(this.fXN[f]-this.fXN[o1]) + (this.fYN[f]-this.fYN[o1])*(this.fYN[f]-this.fYN[o1])));\n if ((cfo1k > co2o1k) || (cfo1k > co2o1f)) {\n // not a valid quadrilateral - point z is definitely outside the circle\n continue; // goto L50;\n }\n // calculate the 2 internal angles of the quadrangle formed by joining\n // points z and f to points o1 and o2, at z and f. If they sum to less\n // than 180 degrees then z lies outside the circle\n dko1 = Math.sqrt((this.fXN[z]-this.fXN[o1])*(this.fXN[z]-this.fXN[o1])+(this.fYN[z]-this.fYN[o1])*(this.fYN[z]-this.fYN[o1]));\n dko2 = Math.sqrt((this.fXN[z]-this.fXN[o2])*(this.fXN[z]-this.fXN[o2])+(this.fYN[z]-this.fYN[o2])*(this.fYN[z]-this.fYN[o2]));\n dfo1 = Math.sqrt((this.fXN[f]-this.fXN[o1])*(this.fXN[f]-this.fXN[o1])+(this.fYN[f]-this.fYN[o1])*(this.fYN[f]-this.fYN[o1]));\n dfo2 = Math.sqrt((this.fXN[f]-this.fXN[o2])*(this.fXN[f]-this.fXN[o2])+(this.fYN[f]-this.fYN[o2])*(this.fYN[f]-this.fYN[o2]));\n c1 = ((this.fXN[z]-this.fXN[o1])*(this.fXN[z]-this.fXN[o2])+(this.fYN[z]-this.fYN[o1])*(this.fYN[z]-this.fYN[o2]))/dko1/dko2;\n c2 = ((this.fXN[f]-this.fXN[o1])*(this.fXN[f]-this.fXN[o2])+(this.fYN[f]-this.fYN[o1])*(this.fYN[f]-this.fYN[o2]))/dfo1/dfo2;\n sin_sum = c1*Math.sqrt(1-c2*c2)+c2*Math.sqrt(1-c1*c1);\n\n // sin_sum doesn't always come out as zero when it should do.\n if (sin_sum < -1.e-6) {\n // z is inside the circle, this is not a Delaunay triangle\n skip_this_triangle = true;\n break;\n // goto L90;\n } else if (Math.abs(sin_sum) <= 1.e-6) {\n // point z lies on the circumference of the circle (within rounding errors)\n // defined by the triangle, so there is potential for degeneracy in the\n // triangle set (Delaunay triangulation does not give a unique way to split\n // a polygon whose points lie on a circle into constituent triangles). Make\n // a note of the additional point number.\n ndegen++;\n degen = z;\n fdegen = f;\n o1degen = o1;\n o2degen = o2;\n }\n\n // L50: continue;\n } // end of for ( z = 1 ...) loop\n\n if (skip_this_triangle) continue;\n\n // This is a good triangle\n if (ndegen > 0) {\n // but is degenerate with at least one other,\n // haven't figured out what to do if more than 4 points are involved\n /// if (ndegen > 1) {\n /// Error(\"Interpolate\",\n /// \"More than 4 points lying on a circle. No decision making process formulated for triangulating this region in a non-arbitrary way %d %d %d %d\",\n /// p,n,m,degen);\n /// return thevalue;\n /// }\n\n // we have a quadrilateral which can be split down either diagonal\n // (d<->f or o1<->o2) to form valid Delaunay triangles. Choose diagonal\n // with highest average z-value. Whichever we choose we will have\n // verified two triangles as good and two as bad, only note the good ones\n d = degen;\n f = fdegen;\n o1 = o1degen;\n o2 = o2degen;\n if ((this.fZ[o1-1] + this.fZ[o2-1]) > (this.fZ[d-1] + this.fZ[f-1])) {\n // best diagonalisation of quadrilateral is current one, we have\n // the triangle\n t1 = p;\n t2 = n;\n t3 = m;\n // file the good triangles\n this.FileIt(p, n, m);\n this.FileIt(d, o1, o2);\n } else {\n // use other diagonal to split quadrilateral, use triangle formed by\n // point f, the degnerate point d and whichever of o1 and o2 create\n // an enclosing triangle\n t1 = f;\n t2 = d;\n if (this.Enclose(f, d, o1, 0))\n t3 = o1;\n else\n t3 = o2;\n\n // file the good triangles\n this.FileIt(f, d, o1);\n this.FileIt(f, d, o2);\n }\n } else {\n // this is a Delaunay triangle, file it\n this.FileIt(p, n, m);\n t1 = p;\n t2 = n;\n t3 = m;\n }\n // do the interpolation\n thevalue = this.InterpolateOnPlane(t1, t2, t3, 0);\n return thevalue;\n\n // L90: continue;\n }\n }\n }\n if (shouldbein) // deepscan-disable-line\n console.error(`Interpolate Point outside hull when expected inside: this point could be dodgy ${xx} ${yy} ${ntris_tried}`);\n return thevalue;\n }\n\n /// Defines the number of triangles tested for a Delaunay triangle\n /// (number of iterations) before abandoning the search\n\n SetMaxIter(n = 100000) {\n this.fAllTri = false;\n this.fMaxIter = n;\n }\n\n /// Sets the histogram bin height for points lying outside the convex hull ie:\n /// the bins in the margin.\n\n SetMarginBinsContent(z) {\n this.fZout = z;\n }\n\n}\n\n /** @summary Function handles tooltips in the mesh */\nfunction graph2DTooltip(intersect) {\n let indx = Math.floor(intersect.index / this.nvertex);\n if ((indx < 0) || (indx >= this.index.length)) return null;\n const sqr = v => v*v;\n\n indx = this.index[indx];\n\n const fp = this.fp, gr = this.graph;\n let grx = fp.grx(gr.fX[indx]),\n gry = fp.gry(gr.fY[indx]),\n grz = fp.grz(gr.fZ[indx]);\n\n if (this.check_next && indx+1= 10)\n res.Zscale = d.check('Z');\n\n res.isAny = function() {\n return this.Markers || this.Error || this.Circles || this.Line || this.Triangles;\n };\n\n if (res.isAny()) {\n res.Axis = 'lego2';\n if (res.Zscale) res.Axis += 'z';\n } else\n res.Axis = opt;\n\n this.storeDrawOpt(opt);\n }\n\n /** @summary Create histogram for axes drawing */\n createHistogram() {\n const gr = this.getObject(),\n asymm = this.matchObjectType(clTGraph2DAsymmErrors);\n let xmin = gr.fX[0], xmax = xmin,\n ymin = gr.fY[0], ymax = ymin,\n zmin = gr.fZ[0], zmax = zmin;\n\n for (let p = 0; p < gr.fNpoints; ++p) {\n const x = gr.fX[p], y = gr.fY[p], z = gr.fZ[p];\n\n if (this.options.Error) {\n xmin = Math.min(xmin, x - (asymm ? gr.fEXlow[p] : gr.fEX[p]));\n xmax = Math.max(xmax, x + (asymm ? gr.fEXhigh[p] : gr.fEX[p]));\n ymin = Math.min(ymin, y - (asymm ? gr.fEYlow[p] : gr.fEY[p]));\n ymax = Math.max(ymax, y + (asymm ? gr.fEYhigh[p] : gr.fEY[p]));\n zmin = Math.min(zmin, z - (asymm ? gr.fEZlow[p] : gr.fEZ[p]));\n zmax = Math.max(zmax, z + (asymm ? gr.fEZhigh[p] : gr.fEZ[p]));\n } else {\n xmin = Math.min(xmin, x);\n xmax = Math.max(xmax, x);\n ymin = Math.min(ymin, y);\n ymax = Math.max(ymax, y);\n zmin = Math.min(zmin, z);\n zmax = Math.max(zmax, z);\n }\n }\n\n function calc_delta(min, max, margin) {\n if (min < max) return margin * (max - min);\n return Math.abs(min) < 1e5 ? 0.02 : 0.02 * Math.abs(min);\n }\n const dx = calc_delta(xmin, xmax, gr.fMargin),\n dy = calc_delta(ymin, ymax, gr.fMargin),\n dz = calc_delta(zmin, zmax, 0);\n let uxmin = xmin - dx, uxmax = xmax + dx,\n uymin = ymin - dy, uymax = ymax + dy,\n uzmin = zmin - dz, uzmax = zmax + dz;\n\n if ((uxmin < 0) && (xmin >= 0)) uxmin = xmin*0.98;\n if ((uxmax > 0) && (xmax <= 0)) uxmax = 0;\n\n if ((uymin < 0) && (ymin >= 0)) uymin = ymin*0.98;\n if ((uymax > 0) && (ymax <= 0)) uymax = 0;\n\n if ((uzmin < 0) && (zmin >= 0)) uzmin = zmin*0.98;\n if ((uzmax > 0) && (zmax <= 0)) uzmax = 0;\n\n const graph = this.getObject();\n\n if (graph.fMinimum !== kNoZoom) uzmin = graph.fMinimum;\n if (graph.fMaximum !== kNoZoom) uzmax = graph.fMaximum;\n\n this._own_histogram = true; // when histogram created on client side\n\n const histo = createHistogram(clTH2F, graph.fNpx, graph.fNpy);\n histo.fName = graph.fName + '_h';\n setHistogramTitle(histo, graph.fTitle);\n histo.fXaxis.fXmin = uxmin;\n histo.fXaxis.fXmax = uxmax;\n histo.fYaxis.fXmin = uymin;\n histo.fYaxis.fXmax = uymax;\n histo.fZaxis.fXmin = uzmin;\n histo.fZaxis.fXmax = uzmax;\n histo.fMinimum = uzmin;\n histo.fMaximum = uzmax;\n histo.fBits |= kNoStats;\n\n if (!this.options.isAny()) {\n const dulaunay = this.buildDelaunay(graph);\n if (dulaunay) {\n for (let i = 0; i < graph.fNpx; ++i) {\n const xx = uxmin + (i + 0.5) / graph.fNpx * (uxmax - uxmin);\n for (let j = 0; j < graph.fNpy; ++j) {\n const yy = uymin + (j + 0.5) / graph.fNpy * (uymax - uymin),\n zz = dulaunay.ComputeZ(xx, yy);\n histo.fArray[histo.getBin(i+1, j+1)] = zz;\n }\n }\n }\n }\n\n return histo;\n }\n\n buildDelaunay(graph) {\n if (!this._delaunay) {\n this._delaunay = new TGraphDelaunay(graph);\n this._delaunay.FindAllTriangles();\n if (!this._delaunay.fNdt)\n delete this._delaunay;\n }\n return this._delaunay;\n }\n\n drawTriangles(fp, graph, levels, palette) {\n const dulaunay = this.buildDelaunay(graph);\n if (!dulaunay) return;\n\n const main_grz = !fp.logz ? fp.grz : value => (value < fp.scale_zmin) ? -0.1 : fp.grz(value),\n do_faces = this.options.Triangles >= 10,\n do_lines = this.options.Triangles % 10 === 1,\n triangles = new Triangles3DHandler(levels, main_grz, 0, 2*fp.size_z3d, do_lines);\n\n for (triangles.loop = 0; triangles.loop < 2; ++triangles.loop) {\n triangles.createBuffers();\n\n for (let t = 0; t < dulaunay.fNdt; ++t) {\n const points = [dulaunay.fPTried[t], dulaunay.fNTried[t], dulaunay.fMTried[t]],\n coord = [];\n let use_triangle = true;\n for (let i = 0; i < 3; ++i) {\n const pnt = points[i] - 1;\n coord.push(fp.grx(graph.fX[pnt]), fp.gry(graph.fY[pnt]), main_grz(graph.fZ[pnt]));\n\n if ((graph.fX[pnt] < fp.scale_xmin) || (graph.fX[pnt] > fp.scale_xmax) ||\n (graph.fY[pnt] < fp.scale_ymin) || (graph.fY[pnt] > fp.scale_ymax))\n use_triangle = false;\n }\n\n if (do_faces && use_triangle)\n triangles.addMainTriangle(...coord);\n\n if (do_lines && use_triangle) {\n triangles.addLineSegment(coord[0], coord[1], coord[2], coord[3], coord[4], coord[5]);\n\n triangles.addLineSegment(coord[3], coord[4], coord[5], coord[6], coord[7], coord[8]);\n\n triangles.addLineSegment(coord[6], coord[7], coord[8], coord[0], coord[1], coord[2]);\n }\n }\n }\n\n triangles.callFuncs((lvl, pos) => {\n const geometry = createLegoGeom(this.getMainPainter(), pos, null, 100, 100),\n color = palette.calcColor(lvl, levels.length),\n material = new MeshBasicMaterial(getMaterialArgs(color, { side: DoubleSide, vertexColors: false })),\n\n mesh = new Mesh(geometry, material);\n\n fp.add3DMesh(mesh, this);\n\n mesh.painter = this; // to let use it with context menu\n }, (_isgrid, lpos) => {\n const lcolor = this.getColor(graph.fLineColor),\n material = new LineBasicMaterial({ color: new Color(lcolor), linewidth: graph.fLineWidth }),\n linemesh = createLineSegments(convertLegoBuf(this.getMainPainter(), lpos, 100, 100), material);\n fp.add3DMesh(linemesh, this);\n });\n }\n\n /** @summary Update TGraph2D object */\n updateObject(obj, opt) {\n if (!this.matchObjectType(obj)) return false;\n\n if (opt && (opt !== this.options.original))\n this.decodeOptions(opt, obj);\n\n Object.assign(this.getObject(), obj);\n\n delete this._delaunay; // rebuild triangles\n\n delete this.$redraw_hist;\n\n // if our own histogram was used as axis drawing, we need update histogram as well\n if (this.axes_draw) {\n const hist_painter = this.getMainPainter();\n hist_painter?.updateObject(this.createHistogram(), this.options.Axis);\n this.$redraw_hist = hist_painter;\n }\n\n return true;\n }\n\n /** @summary Redraw TGraph2D object\n * @desc Update histogram drawing if necessary\n * @return {Promise} for drawing ready */\n async redraw() {\n let promise = Promise.resolve(true);\n\n if (this.$redraw_hist) {\n promise = this.$redraw_hist.redraw();\n delete this.$redraw_hist;\n }\n\n return promise.then(() => this.drawGraph2D());\n }\n\n /** @summary Actual drawing of TGraph2D object\n * @return {Promise} for drawing ready */\n async drawGraph2D() {\n const main = this.getMainPainter(),\n fp = this.getFramePainter(),\n graph = this.getObject();\n\n if (!graph || !main || !fp || !fp.mode3d)\n return this;\n\n fp.remove3DMeshes(this);\n\n if (!this.options.isAny()) {\n // no need to draw somthing if histogram content was drawn\n if (main.draw_content)\n return this;\n if ((graph.fMarkerSize === 1) && (graph.fMarkerStyle === 1))\n this.options.Circles = true;\n else\n this.options.Markers = true;\n }\n\n const countSelected = (zmin, zmax) => {\n let cnt = 0;\n for (let i = 0; i < graph.fNpoints; ++i) {\n if ((graph.fX[i] < fp.scale_xmin) || (graph.fX[i] > fp.scale_xmax) ||\n (graph.fY[i] < fp.scale_ymin) || (graph.fY[i] > fp.scale_ymax) ||\n (graph.fZ[i] < zmin) || (graph.fZ[i] >= zmax)) continue;\n\n ++cnt;\n }\n return cnt;\n };\n\n // try to define scale-down factor\n let step = 1;\n if ((settings.OptimizeDraw > 0) && !fp.webgl) {\n const numselected = countSelected(fp.scale_zmin, fp.scale_zmax),\n sizelimit = 50000;\n\n if (numselected > sizelimit) {\n step = Math.floor(numselected / sizelimit);\n if (step <= 2) step = 2;\n }\n }\n\n const markeratt = this.createAttMarker({ attr: graph, std: false }),\n promises = [];\n let palette = null,\n levels = [fp.scale_zmin, fp.scale_zmax],\n scale = fp.size_x3d / 100 * markeratt.getFullSize();\n\n if (this.options.Circles)\n scale = 0.06 * fp.size_x3d;\n\n if (fp.usesvg) scale *= 0.3;\n\n scale *= 7 * Math.max(fp.size_x3d / fp.getFrameWidth(), fp.size_z3d / fp.getFrameHeight());\n\n if (this.options.Color || this.options.Triangles) {\n levels = main.getContourLevels(true);\n palette = main.getHistPalette();\n }\n\n if (this.options.Triangles)\n this.drawTriangles(fp, graph, levels, palette);\n\n for (let lvl = 0; lvl < levels.length-1; ++lvl) {\n const lvl_zmin = Math.max(levels[lvl], fp.scale_zmin),\n lvl_zmax = Math.min(levels[lvl+1], fp.scale_zmax);\n\n if (lvl_zmin >= lvl_zmax) continue;\n\n const size = Math.floor(countSelected(lvl_zmin, lvl_zmax) / step),\n index = new Int32Array(size);\n let pnts = null, select = 0, icnt = 0,\n err = null, asymm = false, line = null, ierr = 0, iline = 0;\n\n if (this.options.Markers || this.options.Circles)\n pnts = new PointsCreator(size, fp.webgl, scale/3);\n\n if (this.options.Error) {\n err = new Float32Array(size*6*3);\n asymm = this.matchObjectType(clTGraph2DAsymmErrors);\n }\n\n if (this.options.Line)\n line = new Float32Array((size-1)*6);\n\n for (let i = 0; i < graph.fNpoints; ++i) {\n if ((graph.fX[i] < fp.scale_xmin) || (graph.fX[i] > fp.scale_xmax) ||\n (graph.fY[i] < fp.scale_ymin) || (graph.fY[i] > fp.scale_ymax) ||\n (graph.fZ[i] < lvl_zmin) || (graph.fZ[i] >= lvl_zmax)) continue;\n\n if (step > 1) {\n select = (select+1) % step;\n if (select !== 0) continue;\n }\n\n index[icnt++] = i; // remember point index for tooltip\n\n const x = fp.grx(graph.fX[i]),\n y = fp.gry(graph.fY[i]),\n z = fp.grz(graph.fZ[i]);\n\n if (pnts) pnts.addPoint(x, y, z);\n\n if (err) {\n err[ierr] = fp.grx(graph.fX[i] - (asymm ? graph.fEXlow[i] : graph.fEX[i]));\n err[ierr+1] = y;\n err[ierr+2] = z;\n err[ierr+3] = fp.grx(graph.fX[i] + (asymm ? graph.fEXhigh[i] : graph.fEX[i]));\n err[ierr+4] = y;\n err[ierr+5] = z;\n ierr+=6;\n err[ierr] = x;\n err[ierr+1] = fp.gry(graph.fY[i] - (asymm ? graph.fEYlow[i] : graph.fEY[i]));\n err[ierr+2] = z;\n err[ierr+3] = x;\n err[ierr+4] = fp.gry(graph.fY[i] + (asymm ? graph.fEYhigh[i] : graph.fEY[i]));\n err[ierr+5] = z;\n ierr+=6;\n err[ierr] = x;\n err[ierr+1] = y;\n err[ierr+2] = fp.grz(graph.fZ[i] - (asymm ? graph.fEZlow[i] : graph.fEZ[i]));\n err[ierr+3] = x;\n err[ierr+4] = y;\n err[ierr+5] = fp.grz(graph.fZ[i] + (asymm ? graph.fEZhigh[i] : graph.fEZ[i]));\n ierr+=6;\n }\n\n if (line) {\n if (iline>=6) {\n line[iline] = line[iline-3];\n line[iline+1] = line[iline-2];\n line[iline+2] = line[iline-1];\n iline+=3;\n }\n line[iline] = x;\n line[iline+1] = y;\n line[iline+2] = z;\n iline+=3;\n }\n }\n\n if (line && (iline > 3) && (line.length === iline)) {\n const lcolor = this.getColor(graph.fLineColor),\n material = new LineBasicMaterial({ color: new Color(lcolor), linewidth: graph.fLineWidth }),\n linemesh = createLineSegments(line, material);\n fp.add3DMesh(linemesh, this);\n\n linemesh.graph = graph;\n linemesh.index = index;\n linemesh.fp = fp;\n linemesh.scale0 = 0.7*scale;\n linemesh.tip_name = this.getObjectHint();\n linemesh.tip_color = (graph.fMarkerColor === 3) ? 0xFF0000 : 0x00FF00;\n linemesh.nvertex = 2;\n linemesh.check_next = true;\n\n linemesh.tooltip = graph2DTooltip;\n }\n\n if (err) {\n const lcolor = this.getColor(graph.fLineColor),\n material = new LineBasicMaterial({ color: new Color(lcolor), linewidth: graph.fLineWidth }),\n errmesh = createLineSegments(err, material);\n fp.add3DMesh(errmesh, this);\n\n errmesh.graph = graph;\n errmesh.index = index;\n errmesh.fp = fp;\n errmesh.scale0 = 0.7*scale;\n errmesh.tip_name = this.getObjectHint();\n errmesh.tip_color = (graph.fMarkerColor === 3) ? 0xFF0000 : 0x00FF00;\n errmesh.nvertex = 6;\n\n errmesh.tooltip = graph2DTooltip;\n }\n\n if (pnts) {\n let color = 'blue';\n\n if (!this.options.Circles || this.options.Color)\n color = palette?.calcColor(lvl, levels.length) ?? this.getColor(graph.fMarkerColor);\n\n const pr = pnts.createPoints({ color, style: this.options.Circles ? 4 : graph.fMarkerStyle }).then(mesh => {\n mesh.graph = graph;\n mesh.fp = fp;\n mesh.tip_color = (graph.fMarkerColor === 3) ? 0xFF0000 : 0x00FF00;\n mesh.scale0 = 0.3*scale;\n mesh.index = index;\n\n mesh.tip_name = this.getObjectHint();\n mesh.tooltip = graph2DTooltip;\n fp.add3DMesh(mesh, this);\n });\n\n promises.push(pr);\n }\n }\n\n return Promise.all(promises).then(() => {\n if (this.options.Zscale && this.axes_draw) {\n const pal = this.getMainPainter()?.findFunction(clTPaletteAxis),\n pal_painter = this.getPadPainter()?.findPainterFor(pal);\n return pal_painter?.drawPave();\n }\n }).then(() => {\n fp.render3D(100);\n return this;\n });\n }\n\n /** @summary draw TGraph2D object */\n static async draw(dom, gr, opt) {\n const painter = new TGraph2DPainter(dom, gr);\n painter.decodeOptions(opt, gr);\n\n let promise = Promise.resolve(null);\n\n if (!painter.getMainPainter()) {\n // histogram is not preserved in TGraph2D\n promise = TH2Painter.draw(dom, painter.createHistogram(), painter.options.Axis);\n painter.axes_draw = true;\n }\n\n return promise.then(() => {\n painter.addToPadPrimitives();\n return painter.drawGraph2D();\n });\n }\n\n} // class TGraph2DPainter\n\nexport { TGraph2DPainter };\n"],"x_google_ignoreList":[0]} \ No newline at end of file diff --git a/docs/781.c6950c256d5d2675.js b/docs/781.ee45f512a0f2367e.js similarity index 87% rename from docs/781.c6950c256d5d2675.js rename to docs/781.ee45f512a0f2367e.js index fa178a5a..0fe1253d 100644 --- a/docs/781.c6950c256d5d2675.js +++ b/docs/781.ee45f512a0f2367e.js @@ -1,2 +1,2 @@ -"use strict";(self.webpackChunkphoenix_app=self.webpackChunkphoenix_app||[]).push([[781],{2781:(k,N,h)=>{h.r(N),h.d(N,{TF2Painter:()=>X});var H=h(4882),a=h(8872),D=h(4355),A=h(8868),L=h(1922),b=h(2843),Y=h(4615);class X extends D.TH2Painter{getObjectName(){return this.$func?.fName??"func"}getClassName(){return this.$func?._typename??a.clTF2}isTF1(){return!0}getPrimaryObject(){return this.$func}updateObject(e){if(!e||this.getClassName()!==e._typename)return!1;delete e.evalPar;const t=this.getHisto();if(this.webcanv_hist){const i=this.getPadPainter()?.findInPrimitives("Func",a.clTH2F);i&&this.updateAxes(t,i,this.getFramePainter())}return this.$func=e,this.createTF2Histogram(e,t),this.scanContent(),!0}redraw(e){return!this._use_saved_points&&("logx"===e||"logy"===e||"zoom"===e)&&(this.createTF2Histogram(this.$func,this.getHisto()),this.scanContent()),super.redraw(e)}createTF2Histogram(e,t){let i=e.fSave.length-6;i>0&&i!==(e.fSave[i+4]+1)*(e.fSave[i+5]+1)&&(i=0),this._use_saved_points=i>0&&(a.settings.PreferSavedPoints||this.force_saved);const o=this.getFramePainter(),c=this.getPadPainter()?.getRootPad(!0),y=c?.fLogx,u=c?.fLogy,s=o?.getGrFuncs(this.second_x,this.second_y);let f=e.fXmin,m=e.fXmax,T=e.fYmin,C=e.fYmax;s?.zoom_xmin!==s?.zoom_xmax&&(f=Math.min(f,s.zoom_xmin),m=Math.max(m,s.zoom_xmax)),s?.zoom_ymin!==s?.zoom_ymax&&(T=Math.min(T,s.zoom_ymin),C=Math.max(C,s.zoom_ymax));const B=(r,x)=>{t.fNcells!==(r+2)*(x+2)&&(t.fNcells=(r+2)*(x+2),t.fArray=new Float32Array(t.fNcells)),t.fArray.fill(0),t.fXaxis.fNbins=r,t.fXaxis.fXbins=[],t.fYaxis.fNbins=x,t.fYaxis.fXbins=[]};if(delete this._fail_eval,!this._use_saved_points){const r=Math.max(e.fNpx,20),x=Math.max(e.fNpy,20);let n=!1;!e.evalPar&&!(0,A.proivdeEvalPar)(e)&&(n=!0),B(r,x),t.fXaxis.fXmin=f,t.fXaxis.fXmax=m,t.fYaxis.fXmin=T,t.fYaxis.fXmax=C,y&&(0,A.produceTAxisLogScale)(t.fXaxis,r,f,m),u&&(0,A.produceTAxisLogScale)(t.fYaxis,x,T,C);for(let M=0;M6&&(this._use_saved_points=!0)}if(this._use_saved_points){let w=function(v,S){if(vx||P<=0||SM||d<=0)return 0;const _=Math.min(l-1,Math.floor((v-r)/P)),g=Math.min(F-1,Math.floor((S-n)/d)),E=(v-(r+_*P))/P,O=(S-(n+g*d))/d;return(1-E)*(1-O)*e.fSave[g*(l+1)+_]+E*(1-O)*e.fSave[g*(l+1)+_+1]+E*O*e.fSave[(g+1)*(l+1)+_+1]+(1-E)*O*e.fSave[(g+1)*(l+1)+_]};const r=e.fSave[i],x=e.fSave[i+1],n=e.fSave[i+2],M=e.fSave[i+3],l=Math.round(e.fSave[i+4]),F=Math.round(e.fSave[i+5]),P=(x-r)/l,d=(M-n)/F;B(e.fNpx,e.fNpy),t.fXaxis.fXmin=e.fXmin,t.fXaxis.fXmax=e.fXmax,t.fYaxis.fXmin=e.fYmin,t.fYaxis.fXmax=e.fYmax;for(let v=0;v6&&this._use_saved_points&&(this.xmin=Math.min(this.xmin,t.fSave[i-6]),this.xmax=Math.max(this.xmax,t.fSave[i-5]),this.ymin=Math.min(this.ymin,t.fSave[i-4]),this.ymax=Math.max(this.ymax,t.fSave[i-3])),t&&(this.xmin=Math.min(this.xmin,t.fXmin),this.xmax=Math.max(this.xmax,t.fXmax),this.ymin=Math.min(this.ymin,t.fYmin),this.ymax=Math.max(this.ymax,t.fYmax))}getTF2Tooltips(e){const t=[this.getObjectHint()],i=this.getFramePainter()?.getGrFuncs(this.options.second_x,this.options.second_y);if(!i||!(0,a.isFunc)(this.$func?.evalPar))return t.push("grx = "+e.x,"gry = "+e.y),t;const o=i.revertAxis("x",e.x),c=i.revertAxis("y",e.y);let y=0,u=!1;try{y=this.$func.evalPar(o,c)}catch{u=!0}return t.push("x = "+i.axisAsText("x",o),"y = "+i.axisAsText("y",c),"value = "+(u?"":(0,b.lg)(y,a.gStyle.fStatFormat))),t}processTooltipEvent(e){if(this._use_saved_points)return super.processTooltipEvent(e);let t=this.draw_g?.selectChild(".tooltip_bin");if(!this.draw_g||!e)return t?.remove(),null;const i={name:this.$func?.fName,title:this.$func?.fTitle,x:e.x,y:e.y,color1:this.lineatt?.color??"green",color2:this.fillatt?.getFillColorAlt("blue")??"blue",lines:this.getTF2Tooltips(e),exact:!0,menu:!0};return e.disabled?t.remove():(t.empty()&&(t=this.draw_g.append("svg:circle").attr("class","tooltip_bin").style("pointer-events","none").style("fill","none").attr("r",(this.lineatt?.width??1)+4)),t.attr("cx",e.x).attr("cy",e.y).call(this.lineatt?.func)),i}fillWebObjectOptions(e){e.fcust=this._fail_eval?"func_fail":""}static draw(e,t,i){return(0,H.A)(function*(){(0,a.isStr)(i)||(i="");let o=i.indexOf(";webcanv_hist"),c=!1,y=!1;o>=0&&(c=!0,i=i.slice(0,o)),o=i.indexOf(";force_saved"),o>=0&&(y=!0,i=i.slice(0,o));const u=new b.nC(i);u.empty()?i="cont3":"SAME"===u.opt&&(i="cont2 same");const s=(0,a.isStr)(i)?i.toUpperCase():"";let f;("SAMECOLORZ"===s||"SAMECOLOR"===s||"SAMECOLZ"===s)&&(i="samecol"),(0===i.indexOf("same")||0===i.indexOf("SAME"))&&((0,L.Nn)(e)||(i="A_ADJUST_FRAME_"+i.slice(4))),c&&(f=new L.JW(e).getPadPainter()?.findInPrimitives("Func",a.clTH2F)),f||(f=(0,a.createHistogram)(a.clTH2F,20,20),f.fBits|=a.kNoStats);const m=new X(e,f);return m.$func=t,m.webcanv_hist=c,m.force_saved=y,m.createTF2Histogram(t,f),Y.mf._drawHist(m,i)})()}}}}]); -//# sourceMappingURL=781.c6950c256d5d2675.js.map \ No newline at end of file +"use strict";(self.webpackChunkphoenix_app=self.webpackChunkphoenix_app||[]).push([[781],{2781:(U,N,h)=>{h.r(N),h.d(N,{TF2Painter:()=>X});var D=h(4882),a=h(8872),H=h(4355),A=h(8868),L=h(1922),b=h(2843),Y=h(4615);class X extends H.TH2Painter{getObjectName(){return this.$func?.fName??"func"}getClassName(){return this.$func?._typename??a.clTF2}isTF1(){return!0}getPrimaryObject(){return this.$func}updateObject(e){if(!e||this.getClassName()!==e._typename)return!1;delete e.evalPar;const t=this.getHisto();if(this.webcanv_hist){const i=this.getPadPainter()?.findInPrimitives("Func",a.clTH2F);i&&this.updateAxes(t,i,this.getFramePainter())}return this.$func=e,this.createTF2Histogram(e,t),this.scanContent(),!0}redraw(e){return!this._use_saved_points&&("logx"===e||"logy"===e||"zoom"===e)&&(this.createTF2Histogram(this.$func,this.getHisto()),this.scanContent()),super.redraw(e)}createTF2Histogram(e,t){let i=e.fSave.length-6;i>0&&i!==(e.fSave[i+4]+1)*(e.fSave[i+5]+1)&&(i=0),this._use_saved_points=i>0&&(a.settings.PreferSavedPoints||this.force_saved);const o=this.getFramePainter(),c=this.getPadPainter()?.getRootPad(!0),y=c?.fLogx,u=c?.fLogy,s=o?.getGrFuncs(this.second_x,this.second_y);let f=e.fXmin,m=e.fXmax,T=e.fYmin,C=e.fYmax;s?.zoom_xmin!==s?.zoom_xmax&&(f=Math.min(f,s.zoom_xmin),m=Math.max(m,s.zoom_xmax)),s?.zoom_ymin!==s?.zoom_ymax&&(T=Math.min(T,s.zoom_ymin),C=Math.max(C,s.zoom_ymax));const B=(r,x)=>{t.fNcells!==(r+2)*(x+2)&&(t.fNcells=(r+2)*(x+2),t.fArray=new Float32Array(t.fNcells)),t.fArray.fill(0),t.fXaxis.fNbins=r,t.fXaxis.fXbins=[],t.fYaxis.fNbins=x,t.fYaxis.fXbins=[]};if(delete this._fail_eval,!this._use_saved_points){const r=Math.max(e.fNpx,20),x=Math.max(e.fNpy,20);let n=!1;!e.evalPar&&!(0,A.proivdeEvalPar)(e)&&(n=!0),B(r,x),t.fXaxis.fXmin=f,t.fXaxis.fXmax=m,t.fYaxis.fXmin=T,t.fYaxis.fXmax=C,y&&(0,A.produceTAxisLogScale)(t.fXaxis,r,f,m),u&&(0,A.produceTAxisLogScale)(t.fYaxis,x,T,C);for(let M=0;M6&&(this._use_saved_points=!0)}if(this._use_saved_points){let z=function(v,S){if(vx||P<=0||SM||d<=0)return 0;const _=Math.min(l-1,Math.floor((v-r)/P)),g=Math.min(F-1,Math.floor((S-n)/d)),O=(v-(r+_*P))/P,p=(S-(n+g*d))/d;return(1-O)*(1-p)*e.fSave[g*(l+1)+_]+O*(1-p)*e.fSave[g*(l+1)+_+1]+O*p*e.fSave[(g+1)*(l+1)+_+1]+(1-O)*p*e.fSave[(g+1)*(l+1)+_]};const r=e.fSave[i],x=e.fSave[i+1],n=e.fSave[i+2],M=e.fSave[i+3],l=Math.round(e.fSave[i+4]),F=Math.round(e.fSave[i+5]),P=(x-r)/l,d=(M-n)/F;B(e.fNpx,e.fNpy),t.fXaxis.fXmin=e.fXmin,t.fXaxis.fXmax=e.fXmax,t.fYaxis.fXmin=e.fYmin,t.fYaxis.fXmax=e.fYmax;for(let v=0;v6&&this._use_saved_points&&(this.xmin=Math.min(this.xmin,t.fSave[i-6]),this.xmax=Math.max(this.xmax,t.fSave[i-5]),this.ymin=Math.min(this.ymin,t.fSave[i-4]),this.ymax=Math.max(this.ymax,t.fSave[i-3])),t&&(this.xmin=Math.min(this.xmin,t.fXmin),this.xmax=Math.max(this.xmax,t.fXmax),this.ymin=Math.min(this.ymin,t.fYmin),this.ymax=Math.max(this.ymax,t.fYmax))}getTF2Tooltips(e){const t=[this.getObjectHint()],i=this.getFramePainter()?.getGrFuncs(this.options.second_x,this.options.second_y);if(!i||!(0,a.isFunc)(this.$func?.evalPar))return t.push("grx = "+e.x,"gry = "+e.y),t;const o=i.revertAxis("x",e.x),c=i.revertAxis("y",e.y);let y=0,u=!1;try{y=this.$func.evalPar(o,c)}catch{u=!0}return t.push("x = "+i.axisAsText("x",o),"y = "+i.axisAsText("y",c),"value = "+(u?"":(0,b.lg)(y,a.gStyle.fStatFormat))),t}processTooltipEvent(e){if(this._use_saved_points)return super.processTooltipEvent(e);let t=this.draw_g?.selectChild(".tooltip_bin");if(!this.draw_g||!e)return t?.remove(),null;const i={name:this.$func?.fName,title:this.$func?.fTitle,x:e.x,y:e.y,color1:this.lineatt?.color??"green",color2:this.fillatt?.getFillColorAlt("blue")??"blue",lines:this.getTF2Tooltips(e),exact:!0,menu:!0};return e.disabled?t.remove():(t.empty()&&(t=this.draw_g.append("svg:circle").attr("class","tooltip_bin").style("pointer-events","none").style("fill","none").attr("r",(this.lineatt?.width??1)+4)),t.attr("cx",e.x).attr("cy",e.y).call(this.lineatt?.func)),i}fillWebObjectOptions(e){e.fcust=this._fail_eval?"func_fail":""}static draw(e,t,i){return(0,D.A)(function*(){(0,a.isStr)(i)||(i="");let o=i.indexOf(";webcanv_hist"),c=!1,y=!1;o>=0&&(c=!0,i=i.slice(0,o)),o=i.indexOf(";force_saved"),o>=0&&(y=!0,i=i.slice(0,o));const u=new b.nC(i);u.empty()?i="cont3":"SAME"===u.opt&&(i="cont2 same");const s=(0,a.isStr)(i)?i.toUpperCase():"";let f;("SAMECOLORZ"===s||"SAMECOLOR"===s||"SAMECOLZ"===s)&&(i="samecol"),(0===i.indexOf("same")||0===i.indexOf("SAME"))&&((0,L.Nn)(e)||(i="A_ADJUST_FRAME_"+i.slice(4))),c&&(f=new L.JW(e).getPadPainter()?.findInPrimitives("Func",a.clTH2F)),f||(f=(0,a.createHistogram)(a.clTH2F,20,20),f.fBits|=a.kNoStats);const m=new X(e,f);return m.$func=t,m.webcanv_hist=c,m.force_saved=y,m.createTF2Histogram(t,f),Y.mf._drawHist(m,i)})()}}}}]); +//# sourceMappingURL=781.ee45f512a0f2367e.js.map \ No newline at end of file diff --git a/docs/781.c6950c256d5d2675.js.map b/docs/781.ee45f512a0f2367e.js.map similarity index 99% rename from docs/781.c6950c256d5d2675.js.map rename to docs/781.ee45f512a0f2367e.js.map index 4834413d..215fe81e 100644 --- a/docs/781.c6950c256d5d2675.js.map +++ b/docs/781.ee45f512a0f2367e.js.map @@ -1 +1 @@ -{"version":3,"file":"781.c6950c256d5d2675.js","mappings":"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","names":["TF2Painter","TH2Painter","getObjectName","this","$func","fName","getClassName","_typename","clTF2","isTF1","getPrimaryObject","updateObject","obj","evalPar","histo","getHisto","webcanv_hist","h0","getPadPainter","findInPrimitives","clTH2F","updateAxes","getFramePainter","createTF2Histogram","scanContent","redraw","reason","_use_saved_points","super","func","hist","nsave","fSave","length","settings","PreferSavedPoints","force_saved","fp","pad","getRootPad","logx","fLogx","logy","fLogy","gr","getGrFuncs","second_x","second_y","xmin","fXmin","xmax","fXmax","ymin","fYmin","ymax","fYmax","zoom_xmin","zoom_xmax","Math","min","max","zoom_ymin","zoom_ymax","ensureBins","nx","ny","fNcells","fArray","Float32Array","fill","fXaxis","fNbins","fXbins","fYaxis","_fail_eval","npx","fNpx","npy","fNpy","iserror","proivdeEvalPar","produceTAxisLogScale","j","i","x","GetBinCenter","y","z","setBinContent","getBin","Number","isFinite","getSave","dx","dy","ibin","floor","jbin","t","u","round","setHistogramTitle","fTitle","fMinimum","fMaximum","fLineColor","fLineStyle","fLineWidth","fFillColor","fFillStyle","fMarkerColor","fMarkerStyle","fMarkerSize","fBits","kNoStats","extractAxesProperties","ndim","getTF2Tooltips","pnt","lines","getObjectHint","funcs","options","isFunc","push","revertAxis","axisAsText","floatToString","gStyle","fStatFormat","processTooltipEvent","ttrect","draw_g","selectChild","remove","res","name","title","color1","lineatt","color","color2","fillatt","getFillColorAlt","exact","menu","disabled","empty","append","attr","style","width","call","fillWebObjectOptions","opt","fcust","draw","dom","tf2","_asyncToGenerator","isStr","p","indexOf","slice","d","DrawOptions","o2","toUpperCase","getElementMainPainter","ObjectPainter","createHistogram","painter","THistPainter","_drawHist"],"ignoreList":[],"sourceRoot":"webpack:///","sources":["../node_modules/jsroot/modules/hist/TF2Painter.mjs"],"sourcesContent":["import { createHistogram, setHistogramTitle, kNoStats, settings, gStyle, clTF2, clTH2F, isStr, isFunc } from '../core.mjs';\nimport { TH2Painter } from '../hist/TH2Painter.mjs';\nimport { proivdeEvalPar, produceTAxisLogScale } from '../hist/TF1Painter.mjs';\nimport { ObjectPainter, getElementMainPainter } from '../base/ObjectPainter.mjs';\nimport { DrawOptions, floatToString } from '../base/BasePainter.mjs';\nimport { THistPainter } from '../hist2d/THistPainter.mjs';\n\n\n/**\n * @summary Painter for TF2 object\n *\n * @private\n */\n\nclass TF2Painter extends TH2Painter {\n\n /** @summary Returns drawn object name */\n getObjectName() { return this.$func?.fName ?? 'func'; }\n\n /** @summary Returns drawn object class name */\n getClassName() { return this.$func?._typename ?? clTF2; }\n\n /** @summary Returns true while function is drawn */\n isTF1() { return true; }\n\n /** @summary Returns primary function which was then drawn as histogram */\n getPrimaryObject() { return this.$func; }\n\n /** @summary Update histogram */\n updateObject(obj /*, opt */) {\n if (!obj || (this.getClassName() !== obj._typename)) return false;\n delete obj.evalPar;\n const histo = this.getHisto();\n\n if (this.webcanv_hist) {\n const h0 = this.getPadPainter()?.findInPrimitives('Func', clTH2F);\n if (h0) this.updateAxes(histo, h0, this.getFramePainter());\n }\n\n this.$func = obj;\n this.createTF2Histogram(obj, histo);\n this.scanContent();\n return true;\n }\n\n /** @summary Redraw TF2\n * @private */\n redraw(reason) {\n if (!this._use_saved_points && (reason === 'logx' || reason === 'logy' || reason === 'zoom')) {\n this.createTF2Histogram(this.$func, this.getHisto());\n this.scanContent();\n }\n\n return super.redraw(reason);\n }\n\n /** @summary Create histogram for TF2 drawing\n * @private */\n createTF2Histogram(func, hist) {\n let nsave = func.fSave.length - 6;\n if ((nsave > 0) && (nsave !== (func.fSave[nsave+4]+1) * (func.fSave[nsave+5]+1)))\n nsave = 0;\n\n this._use_saved_points = (nsave > 0) && (settings.PreferSavedPoints || this.force_saved);\n\n const fp = this.getFramePainter(),\n pad = this.getPadPainter()?.getRootPad(true),\n logx = pad?.fLogx, logy = pad?.fLogy,\n gr = fp?.getGrFuncs(this.second_x, this.second_y);\n let xmin = func.fXmin, xmax = func.fXmax,\n ymin = func.fYmin, ymax = func.fYmax;\n\n if (gr?.zoom_xmin !== gr?.zoom_xmax) {\n xmin = Math.min(xmin, gr.zoom_xmin);\n xmax = Math.max(xmax, gr.zoom_xmax);\n }\n\n if (gr?.zoom_ymin !== gr?.zoom_ymax) {\n ymin = Math.min(ymin, gr.zoom_ymin);\n ymax = Math.max(ymax, gr.zoom_ymax);\n }\n\n const ensureBins = (nx, ny) => {\n if (hist.fNcells !== (nx + 2) * (ny + 2)) {\n hist.fNcells = (nx + 2) * (ny + 2);\n hist.fArray = new Float32Array(hist.fNcells);\n }\n hist.fArray.fill(0);\n hist.fXaxis.fNbins = nx;\n hist.fXaxis.fXbins = [];\n hist.fYaxis.fNbins = ny;\n hist.fYaxis.fXbins = [];\n };\n\n delete this._fail_eval;\n\n if (!this._use_saved_points) {\n const npx = Math.max(func.fNpx, 20),\n npy = Math.max(func.fNpy, 20);\n let iserror = false;\n\n if (!func.evalPar && !proivdeEvalPar(func))\n iserror = true;\n\n ensureBins(npx, npy);\n hist.fXaxis.fXmin = xmin;\n hist.fXaxis.fXmax = xmax;\n hist.fYaxis.fXmin = ymin;\n hist.fYaxis.fXmax = ymax;\n\n if (logx)\n produceTAxisLogScale(hist.fXaxis, npx, xmin, xmax);\n if (logy)\n produceTAxisLogScale(hist.fYaxis, npy, ymin, ymax);\n\n for (let j = 0; (j < npy) && !iserror; ++j) {\n for (let i = 0; (i < npx) && !iserror; ++i) {\n const x = hist.fXaxis.GetBinCenter(i+1),\n y = hist.fYaxis.GetBinCenter(j+1);\n let z = 0;\n\n try {\n z = func.evalPar(x, y);\n } catch {\n iserror = true;\n }\n\n if (!iserror)\n hist.setBinContent(hist.getBin(i + 1, j + 1), Number.isFinite(z) ? z : 0);\n }\n }\n\n if (iserror)\n this._fail_eval = true;\n\n if (iserror && (nsave > 6))\n this._use_saved_points = true;\n }\n\n if (this._use_saved_points) {\n const xmin = func.fSave[nsave], xmax = func.fSave[nsave+1],\n ymin = func.fSave[nsave+2], ymax = func.fSave[nsave+3],\n npx = Math.round(func.fSave[nsave+4]),\n npy = Math.round(func.fSave[nsave+5]),\n dx = (xmax - xmin) / npx,\n dy = (ymax - ymin) / npy;\n function getSave(x, y) {\n if (x < xmin || x > xmax) return 0;\n if (dx <= 0) return 0;\n if (y < ymin || y > ymax) return 0;\n if (dy <= 0) return 0;\n const ibin = Math.min(npx-1, Math.floor((x-xmin)/dx)),\n jbin = Math.min(npy-1, Math.floor((y-ymin)/dy)),\n xlow = xmin + ibin*dx,\n ylow = ymin + jbin*dy,\n t = (x-xlow)/dx,\n u = (y-ylow)/dy,\n k1 = jbin*(npx+1) + ibin,\n k2 = jbin*(npx+1) + ibin +1,\n k3 = (jbin+1)*(npx+1) + ibin +1,\n k4 = (jbin+1)*(npx+1) + ibin;\n return (1-t)*(1-u)*func.fSave[k1] +t*(1-u)*func.fSave[k2] +t*u*func.fSave[k3] + (1-t)*u*func.fSave[k4];\n }\n\n ensureBins(func.fNpx, func.fNpy);\n hist.fXaxis.fXmin = func.fXmin;\n hist.fXaxis.fXmax = func.fXmax;\n hist.fYaxis.fXmin = func.fYmin;\n hist.fYaxis.fXmax = func.fYmax;\n\n for (let j = 0; j < func.fNpy; ++j) {\n const y = hist.fYaxis.GetBinCenter(j + 1);\n for (let i = 0; i < func.fNpx; ++i) {\n const x = hist.fXaxis.GetBinCenter(i + 1),\n z = getSave(x, y);\n hist.setBinContent(hist.getBin(i+1, j+1), Number.isFinite(z) ? z : 0);\n }\n }\n }\n\n hist.fName = 'Func';\n setHistogramTitle(hist, func.fTitle);\n hist.fMinimum = func.fMinimum;\n hist.fMaximum = func.fMaximum;\n // fHistogram->SetContour(fContour.fN, levels);\n hist.fLineColor = func.fLineColor;\n hist.fLineStyle = func.fLineStyle;\n hist.fLineWidth = func.fLineWidth;\n hist.fFillColor = func.fFillColor;\n hist.fFillStyle = func.fFillStyle;\n hist.fMarkerColor = func.fMarkerColor;\n hist.fMarkerStyle = func.fMarkerStyle;\n hist.fMarkerSize = func.fMarkerSize;\n hist.fBits |= kNoStats;\n\n return hist;\n }\n\n /** @summary Extract function ranges */\n extractAxesProperties(ndim) {\n super.extractAxesProperties(ndim);\n\n const func = this.$func, nsave = func?.fSave.length ?? 0;\n\n if (nsave > 6 && this._use_saved_points) {\n this.xmin = Math.min(this.xmin, func.fSave[nsave-6]);\n this.xmax = Math.max(this.xmax, func.fSave[nsave-5]);\n this.ymin = Math.min(this.ymin, func.fSave[nsave-4]);\n this.ymax = Math.max(this.ymax, func.fSave[nsave-3]);\n }\n if (func) {\n this.xmin = Math.min(this.xmin, func.fXmin);\n this.xmax = Math.max(this.xmax, func.fXmax);\n this.ymin = Math.min(this.ymin, func.fYmin);\n this.ymax = Math.max(this.ymax, func.fYmax);\n }\n }\n\n /** @summary retrurn tooltips for TF2 */\n getTF2Tooltips(pnt) {\n const lines = [this.getObjectHint()],\n funcs = this.getFramePainter()?.getGrFuncs(this.options.second_x, this.options.second_y);\n\n if (!funcs || !isFunc(this.$func?.evalPar)) {\n lines.push('grx = ' + pnt.x, 'gry = ' + pnt.y);\n return lines;\n }\n\n const x = funcs.revertAxis('x', pnt.x),\n y = funcs.revertAxis('y', pnt.y);\n let z = 0, iserror = false;\n\n try {\n z = this.$func.evalPar(x, y);\n } catch {\n iserror = true;\n }\n\n lines.push('x = ' + funcs.axisAsText('x', x),\n 'y = ' + funcs.axisAsText('y', y),\n 'value = ' + (iserror ? '' : floatToString(z, gStyle.fStatFormat)));\n return lines;\n }\n\n /** @summary process tooltip event for TF2 object */\n processTooltipEvent(pnt) {\n if (this._use_saved_points)\n return super.processTooltipEvent(pnt);\n\n let ttrect = this.draw_g?.selectChild('.tooltip_bin');\n\n if (!this.draw_g || !pnt) {\n ttrect?.remove();\n return null;\n }\n\n const res = { name: this.$func?.fName, title: this.$func?.fTitle,\n x: pnt.x, y: pnt.y,\n color1: this.lineatt?.color ?? 'green',\n color2: this.fillatt?.getFillColorAlt('blue') ?? 'blue',\n lines: this.getTF2Tooltips(pnt), exact: true, menu: true };\n\n if (pnt.disabled)\n ttrect.remove();\n else {\n if (ttrect.empty()) {\n ttrect = this.draw_g.append('svg:circle')\n .attr('class', 'tooltip_bin')\n .style('pointer-events', 'none')\n .style('fill', 'none')\n .attr('r', (this.lineatt?.width ?? 1) + 4);\n }\n\n ttrect.attr('cx', pnt.x)\n .attr('cy', pnt.y)\n .call(this.lineatt?.func);\n }\n\n return res;\n }\n\n /** @summary fill information for TWebCanvas\n * @private */\n fillWebObjectOptions(opt) {\n // mark that saved points are used or evaluation failed\n opt.fcust = this._fail_eval ? 'func_fail' : '';\n }\n\n /** @summary draw TF2 object */\n static async draw(dom, tf2, opt) {\n if (!isStr(opt)) opt = '';\n let p = opt.indexOf(';webcanv_hist'), webcanv_hist = false, force_saved = false;\n if (p >= 0) {\n webcanv_hist = true;\n opt = opt.slice(0, p);\n }\n p = opt.indexOf(';force_saved');\n if (p >= 0) {\n force_saved = true;\n opt = opt.slice(0, p);\n }\n\n const d = new DrawOptions(opt);\n if (d.empty())\n opt = 'cont3';\n else if (d.opt === 'SAME')\n opt = 'cont2 same';\n\n // workaround for old waves.C\n const o2 = isStr(opt) ? opt.toUpperCase() : '';\n if (o2 === 'SAMECOLORZ' || o2 === 'SAMECOLOR' || o2 === 'SAMECOLZ')\n opt = 'samecol';\n\n if ((opt.indexOf('same') === 0) || (opt.indexOf('SAME') === 0)) {\n if (!getElementMainPainter(dom))\n opt = 'A_ADJUST_FRAME_' + opt.slice(4);\n }\n\n let hist;\n\n if (webcanv_hist) {\n const dummy = new ObjectPainter(dom);\n hist = dummy.getPadPainter()?.findInPrimitives('Func', clTH2F);\n }\n\n if (!hist) {\n hist = createHistogram(clTH2F, 20, 20);\n hist.fBits |= kNoStats;\n }\n\n const painter = new TF2Painter(dom, hist);\n\n painter.$func = tf2;\n painter.webcanv_hist = webcanv_hist;\n painter.force_saved = force_saved;\n painter.createTF2Histogram(tf2, hist);\n return THistPainter._drawHist(painter, opt);\n }\n\n} // class TF2Painter\n\nexport { TF2Painter };\n"],"x_google_ignoreList":[0]} \ No newline at end of file +{"version":3,"file":"781.ee45f512a0f2367e.js","mappings":"oNAcA,MAAMA,UAAmBC,aAGtBC,gBAAkB,OAAOC,KAAKC,OAAOC,OAAS,MAAQ,CAGtDC,eAAiB,OAAOH,KAAKC,OAAOG,WAAaC,OAAO,CAGxDC,QAAU,OAAO,CAAM,CAGvBC,mBAAqB,OAAOP,KAAKC,KAAO,CAGxCO,aAAaC,GACV,IAAKA,GAAQT,KAAKG,iBAAmBM,EAAIL,UAAY,OAAO,SACrDK,EAAIC,QACX,MAAMC,EAAQX,KAAKY,WAEnB,GAAIZ,KAAKa,aAAc,CACpB,MAAMC,EAAKd,KAAKe,iBAAiBC,iBAAiB,OAAQC,UACtDH,GAAId,KAAKkB,WAAWP,EAAOG,EAAId,KAAKmB,kBAC3C,CAEA,OAAAnB,KAAKC,MAAQQ,EACbT,KAAKoB,mBAAmBX,EAAKE,GAC7BX,KAAKqB,eACE,CACV,CAIAC,OAAOC,GACJ,OAAKvB,KAAKwB,oBAAiC,SAAXD,GAAgC,SAAXA,GAAgC,SAAXA,KACvEvB,KAAKoB,mBAAmBpB,KAAKC,MAAOD,KAAKY,YACzCZ,KAAKqB,eAGDI,MAAMH,OAAOC,EACvB,CAIAH,mBAAmBM,EAAMC,GACtB,IAAIC,EAAQF,EAAKG,MAAMC,OAAS,EAC3BF,EAAQ,GAAOA,KAAWF,EAAKG,MAAMD,EAAM,GAAG,IAAMF,EAAKG,MAAMD,EAAM,GAAG,KAC1EA,EAAQ,GAEX5B,KAAKwB,kBAAqBI,EAAQ,IAAOG,WAASC,mBAAqBhC,KAAKiC,aAE5E,MAAMC,EAAKlC,KAAKmB,kBACVgB,EAAMnC,KAAKe,iBAAiBqB,YAAW,GACvCC,EAAOF,GAAKG,MAAOC,EAAOJ,GAAKK,MAC/BC,EAAKP,GAAIQ,WAAW1C,KAAK2C,SAAU3C,KAAK4C,UAC9C,IAAIC,EAAOnB,EAAKoB,MAAOC,EAAOrB,EAAKsB,MAC/BC,EAAOvB,EAAKwB,MAAOC,EAAOzB,EAAK0B,MAEhCX,GAAIY,YAAcZ,GAAIa,YACtBT,EAAOU,KAAKC,IAAIX,EAAMJ,EAAGY,WACzBN,EAAOQ,KAAKE,IAAIV,EAAMN,EAAGa,YAGzBb,GAAIiB,YAAcjB,GAAIkB,YACtBV,EAAOM,KAAKC,IAAIP,EAAMR,EAAGiB,WACzBP,EAAOI,KAAKE,IAAIN,EAAMV,EAAGkB,YAG5B,MAAMC,EAAaA,CAACC,EAAIC,KACjBnC,EAAKoC,WAAaF,EAAK,IAAMC,EAAK,KACnCnC,EAAKoC,SAAWF,EAAK,IAAMC,EAAK,GAChCnC,EAAKqC,OAAS,IAAIC,aAAatC,EAAKoC,UAEvCpC,EAAKqC,OAAOE,KAAK,GACjBvC,EAAKwC,OAAOC,OAASP,EACrBlC,EAAKwC,OAAOE,OAAS,GACrB1C,EAAK2C,OAAOF,OAASN,EACrBnC,EAAK2C,OAAOD,OAAS,IAKxB,UAFOrE,KAAKuE,YAEPvE,KAAKwB,kBAAmB,CAC1B,MAAMgD,EAAMjB,KAAKE,IAAI/B,EAAK+C,KAAM,IAC1BC,EAAMnB,KAAKE,IAAI/B,EAAKiD,KAAM,IAChC,IAAIC,GAAU,GAETlD,EAAKhB,WAAW,EAACmE,kBAAenD,KAClCkD,GAAU,GAEbhB,EAAWY,EAAKE,GAChB/C,EAAKwC,OAAOrB,MAAQD,EACpBlB,EAAKwC,OAAOnB,MAAQD,EACpBpB,EAAK2C,OAAOxB,MAAQG,EACpBtB,EAAK2C,OAAOtB,MAAQG,EAEhBd,MACDyC,wBAAqBnD,EAAKwC,OAAQK,EAAK3B,EAAME,GAC5CR,MACDuC,wBAAqBnD,EAAK2C,OAAQI,EAAKzB,EAAME,GAEhD,QAAS4B,EAAI,EAAIA,EAAIL,IAASE,IAAWG,EACtC,QAASC,EAAI,EAAIA,EAAIR,IAASI,IAAWI,EAAG,CACzC,MAAMC,EAAItD,EAAKwC,OAAOe,aAAaF,EAAE,GAC/BG,EAAIxD,EAAK2C,OAAOY,aAAaH,EAAE,GACrC,IAAIK,EAAI,EAER,IACGA,EAAI1D,EAAKhB,QAAQuE,EAAGE,EACvB,OACGP,GAAU,CACb,CAEKA,GACFjD,EAAK0D,cAAc1D,EAAK2D,OAAON,EAAI,EAAGD,EAAI,GAAIQ,OAAOC,SAASJ,GAAKA,EAAI,EAC7E,CAGCR,IACD5E,KAAKuE,YAAa,GAEjBK,GAAYhD,EAAQ,IACrB5B,KAAKwB,mBAAoB,EAC/B,CAEA,GAAIxB,KAAKwB,kBAAmB,CAOxB,IAASiE,EAAT,SAAiBR,EAAGE,GAIlB,GAHIF,EAAIpC,GAAQoC,EAAIlC,GAChB2C,GAAM,GACNP,EAAIlC,GAAQkC,EAAIhC,GAChBwC,GAAM,EAAG,OAAO,EACpB,MAAMC,EAAOrC,KAAKC,IAAIgB,EAAI,EAAGjB,KAAKsC,OAAOZ,EAAEpC,GAAM6C,IAC3CI,EAAOvC,KAAKC,IAAIkB,EAAI,EAAGnB,KAAKsC,OAAOV,EAAElC,GAAM0C,IAG3CI,GAAKd,GAFEpC,EAAO+C,EAAKF,IAENA,EACbM,GAAKb,GAFElC,EAAO6C,EAAKH,IAENA,EAKnB,OAAQ,EAAEI,IAAI,EAAEC,GAAGtE,EAAKG,MAJbiE,GAAMtB,EAAI,GAAKoB,GAISG,GAAG,EAAEC,GAAGtE,EAAKG,MAHrCiE,GAAMtB,EAAI,GAAKoB,EAAM,GAG2BG,EAAEC,EAAEtE,EAAKG,OAFxDiE,EAAK,IAAItB,EAAI,GAAKoB,EAAM,IAE6C,EAAEG,GAAGC,EAAEtE,EAAKG,OADjFiE,EAAK,IAAItB,EAAI,GAAKoB,EAEjC,EAtBA,MAAM/C,EAAOnB,EAAKG,MAAMD,GAAQmB,EAAOrB,EAAKG,MAAMD,EAAM,GAClDqB,EAAOvB,EAAKG,MAAMD,EAAM,GAAIuB,EAAOzB,EAAKG,MAAMD,EAAM,GACpD4C,EAAMjB,KAAK0C,MAAMvE,EAAKG,MAAMD,EAAM,IAClC8C,EAAMnB,KAAK0C,MAAMvE,EAAKG,MAAMD,EAAM,IAClC8D,GAAM3C,EAAOF,GAAQ2B,EACrBmB,GAAMxC,EAAOF,GAAQyB,EAmB3Bd,EAAWlC,EAAK+C,KAAM/C,EAAKiD,MAC3BhD,EAAKwC,OAAOrB,MAAQpB,EAAKoB,MACzBnB,EAAKwC,OAAOnB,MAAQtB,EAAKsB,MACzBrB,EAAK2C,OAAOxB,MAAQpB,EAAKwB,MACzBvB,EAAK2C,OAAOtB,MAAQtB,EAAK0B,MAEzB,QAAS2B,EAAI,EAAGA,EAAIrD,EAAKiD,OAAQI,EAAG,CACjC,MAAMI,EAAIxD,EAAK2C,OAAOY,aAAaH,EAAI,GACvC,QAASC,EAAI,EAAGA,EAAItD,EAAK+C,OAAQO,EAAG,CACjC,MACMI,EAAIK,EADA9D,EAAKwC,OAAOe,aAAaF,EAAI,GAClBG,GACrBxD,EAAK0D,cAAc1D,EAAK2D,OAAON,EAAE,EAAGD,EAAE,GAAIQ,OAAOC,SAASJ,GAAKA,EAAI,EACtE,CACH,CACH,CAEAzD,SAAKzB,MAAQ,UACbgG,qBAAkBvE,EAAMD,EAAKyE,QAC7BxE,EAAKyE,SAAW1E,EAAK0E,SACrBzE,EAAK0E,SAAW3E,EAAK2E,SAErB1E,EAAK2E,WAAa5E,EAAK4E,WACvB3E,EAAK4E,WAAa7E,EAAK6E,WACvB5E,EAAK6E,WAAa9E,EAAK8E,WACvB7E,EAAK8E,WAAa/E,EAAK+E,WACvB9E,EAAK+E,WAAahF,EAAKgF,WACvB/E,EAAKgF,aAAejF,EAAKiF,aACzBhF,EAAKiF,aAAelF,EAAKkF,aACzBjF,EAAKkF,YAAcnF,EAAKmF,YACxBlF,EAAKmF,OAASC,WAEPpF,CACV,CAGAqF,sBAAsBC,GACnBxF,MAAMuF,sBAAsBC,GAE5B,MAAMvF,EAAO1B,KAAKC,MAAO2B,EAAQF,GAAMG,MAAMC,QAAU,EAEnDF,EAAQ,GAAK5B,KAAKwB,oBACnBxB,KAAK6C,KAAOU,KAAKC,IAAIxD,KAAK6C,KAAMnB,EAAKG,MAAMD,EAAM,IACjD5B,KAAK+C,KAAOQ,KAAKE,IAAIzD,KAAK+C,KAAMrB,EAAKG,MAAMD,EAAM,IACjD5B,KAAKiD,KAAOM,KAAKC,IAAIxD,KAAKiD,KAAMvB,EAAKG,MAAMD,EAAM,IACjD5B,KAAKmD,KAAOI,KAAKE,IAAIzD,KAAKmD,KAAMzB,EAAKG,MAAMD,EAAM,KAEhDF,IACD1B,KAAK6C,KAAOU,KAAKC,IAAIxD,KAAK6C,KAAMnB,EAAKoB,OACrC9C,KAAK+C,KAAOQ,KAAKE,IAAIzD,KAAK+C,KAAMrB,EAAKsB,OACrChD,KAAKiD,KAAOM,KAAKC,IAAIxD,KAAKiD,KAAMvB,EAAKwB,OACrClD,KAAKmD,KAAOI,KAAKE,IAAIzD,KAAKmD,KAAMzB,EAAK0B,OAE3C,CAGA8D,eAAeC,GACZ,MAAMC,EAAQ,CAACpH,KAAKqH,iBACdC,EAAQtH,KAAKmB,mBAAmBuB,WAAW1C,KAAKuH,QAAQ5E,SAAU3C,KAAKuH,QAAQ3E,UAErF,IAAK0E,KAAS,EAACE,UAAOxH,KAAKC,OAAOS,SAC/B0G,SAAMK,KAAK,SAAWN,EAAIlC,EAAG,SAAWkC,EAAIhC,GACrCiC,EAGV,MAAMnC,EAAIqC,EAAMI,WAAW,IAAKP,EAAIlC,GAC9BE,EAAImC,EAAMI,WAAW,IAAKP,EAAIhC,GACpC,IAAIC,EAAI,EAAGR,GAAU,EAEpB,IACGQ,EAAIpF,KAAKC,MAAMS,QAAQuE,EAAGE,EAC7B,OACGP,GAAU,CACb,CAEDwC,SAAMK,KAAK,OAASH,EAAMK,WAAW,IAAK1C,GAC/B,OAASqC,EAAMK,WAAW,IAAKxC,GAC/B,YAAcP,EAAU,YAAWgD,MAAcxC,EAAGyC,SAAOC,eAC/DV,CACV,CAGAW,oBAAoBZ,GACjB,GAAInH,KAAKwB,kBACN,OAAOC,MAAMsG,oBAAoBZ,GAEpC,IAAIa,EAAShI,KAAKiI,QAAQC,YAAY,gBAEtC,IAAKlI,KAAKiI,SAAWd,EAClBa,UAAQG,SACD,KAGV,MAAMC,EAAM,CAAEC,KAAMrI,KAAKC,OAAOC,MAAOoI,MAAOtI,KAAKC,OAAOkG,OAC9ClB,EAAGkC,EAAIlC,EAAGE,EAAGgC,EAAIhC,EACjBoD,OAAQvI,KAAKwI,SAASC,OAAS,QAC/BC,OAAQ1I,KAAK2I,SAASC,gBAAgB,SAAW,OACjDxB,MAAOpH,KAAKkH,eAAeC,GAAM0B,OAAO,EAAMC,MAAM,GAEhE,OAAI3B,EAAI4B,SACLf,EAAOG,UAEHH,EAAOgB,UACRhB,EAAShI,KAAKiI,OAAOgB,OAAO,cACPC,KAAK,QAAS,eACdC,MAAM,iBAAkB,QACxBA,MAAM,OAAQ,QACdD,KAAK,KAAMlJ,KAAKwI,SAASY,OAAS,GAAK,IAG/DpB,EAAOkB,KAAK,KAAM/B,EAAIlC,GACfiE,KAAK,KAAM/B,EAAIhC,GACfkE,KAAKrJ,KAAKwI,SAAS9G,OAGtB0G,CACV,CAIAkB,qBAAqBC,GAElBA,EAAIC,MAAQxJ,KAAKuE,WAAa,YAAc,EAC/C,CAGA,WAAakF,CAAKC,EAAKC,EAAKJ,GAAK,SAAAK,KAAA,aAC9B,EAAKC,SAAMN,KAAMA,EAAM,IACvB,IAAIO,EAAIP,EAAIQ,QAAQ,iBAAkBlJ,GAAe,EAAOoB,GAAc,EACtE6H,GAAK,IACNjJ,GAAe,EACf0I,EAAMA,EAAIS,MAAM,EAAGF,IAEtBA,EAAIP,EAAIQ,QAAQ,gBACZD,GAAK,IACN7H,GAAc,EACdsH,EAAMA,EAAIS,MAAM,EAAGF,IAGtB,MAAMG,EAAI,IAAIC,KAAYX,GACtBU,EAAEjB,QACHO,EAAM,QACU,SAAVU,EAAEV,MACRA,EAAM,cAGT,MAAMY,KAAKN,SAAMN,GAAOA,EAAIa,cAAgB,GAS5C,IAAIzI,GARO,eAAPwI,GAA8B,cAAPA,GAA6B,aAAPA,KAC9CZ,EAAM,YAEoB,IAAxBA,EAAIQ,QAAQ,SAA2C,IAAxBR,EAAIQ,QAAQ,YAAY,EACpDM,MAAsBX,KACxBH,EAAM,kBAAoBA,EAAIS,MAAM,KAKtCnJ,IAEDc,EADc,IAAI2I,KAAcZ,GACnB3I,iBAAiBC,iBAAiB,OAAQC,WAGrDU,IACFA,KAAO4I,mBAAgBtJ,SAAQ,GAAI,IACnCU,EAAKmF,OAASC,YAGjB,MAAMyD,EAAU,IAAI3K,EAAW6J,EAAK/H,GAEpC6I,SAAQvK,MAAQ0J,EAChBa,EAAQ3J,aAAeA,EACvB2J,EAAQvI,YAAcA,EACtBuI,EAAQpJ,mBAAmBuI,EAAKhI,GACzB8I,KAAaC,UAAUF,EAASjB,EAAK,EA/Cd,EAgDjC","names":["TF2Painter","TH2Painter","getObjectName","this","$func","fName","getClassName","_typename","clTF2","isTF1","getPrimaryObject","updateObject","obj","evalPar","histo","getHisto","webcanv_hist","h0","getPadPainter","findInPrimitives","clTH2F","updateAxes","getFramePainter","createTF2Histogram","scanContent","redraw","reason","_use_saved_points","super","func","hist","nsave","fSave","length","settings","PreferSavedPoints","force_saved","fp","pad","getRootPad","logx","fLogx","logy","fLogy","gr","getGrFuncs","second_x","second_y","xmin","fXmin","xmax","fXmax","ymin","fYmin","ymax","fYmax","zoom_xmin","zoom_xmax","Math","min","max","zoom_ymin","zoom_ymax","ensureBins","nx","ny","fNcells","fArray","Float32Array","fill","fXaxis","fNbins","fXbins","fYaxis","_fail_eval","npx","fNpx","npy","fNpy","iserror","proivdeEvalPar","produceTAxisLogScale","j","i","x","GetBinCenter","y","z","setBinContent","getBin","Number","isFinite","getSave","dx","dy","ibin","floor","jbin","t","u","round","setHistogramTitle","fTitle","fMinimum","fMaximum","fLineColor","fLineStyle","fLineWidth","fFillColor","fFillStyle","fMarkerColor","fMarkerStyle","fMarkerSize","fBits","kNoStats","extractAxesProperties","ndim","getTF2Tooltips","pnt","lines","getObjectHint","funcs","options","isFunc","push","revertAxis","axisAsText","floatToString","gStyle","fStatFormat","processTooltipEvent","ttrect","draw_g","selectChild","remove","res","name","title","color1","lineatt","color","color2","fillatt","getFillColorAlt","exact","menu","disabled","empty","append","attr","style","width","call","fillWebObjectOptions","opt","fcust","draw","dom","tf2","_asyncToGenerator","isStr","p","indexOf","slice","d","DrawOptions","o2","toUpperCase","getElementMainPainter","ObjectPainter","createHistogram","painter","THistPainter","_drawHist"],"ignoreList":[],"sourceRoot":"webpack:///","sources":["../node_modules/jsroot/modules/hist/TF2Painter.mjs"],"sourcesContent":["import { createHistogram, setHistogramTitle, kNoStats, settings, gStyle, clTF2, clTH2F, isStr, isFunc } from '../core.mjs';\nimport { TH2Painter } from '../hist/TH2Painter.mjs';\nimport { proivdeEvalPar, produceTAxisLogScale } from '../hist/TF1Painter.mjs';\nimport { ObjectPainter, getElementMainPainter } from '../base/ObjectPainter.mjs';\nimport { DrawOptions, floatToString } from '../base/BasePainter.mjs';\nimport { THistPainter } from '../hist2d/THistPainter.mjs';\n\n\n/**\n * @summary Painter for TF2 object\n *\n * @private\n */\n\nclass TF2Painter extends TH2Painter {\n\n /** @summary Returns drawn object name */\n getObjectName() { return this.$func?.fName ?? 'func'; }\n\n /** @summary Returns drawn object class name */\n getClassName() { return this.$func?._typename ?? clTF2; }\n\n /** @summary Returns true while function is drawn */\n isTF1() { return true; }\n\n /** @summary Returns primary function which was then drawn as histogram */\n getPrimaryObject() { return this.$func; }\n\n /** @summary Update histogram */\n updateObject(obj /*, opt */) {\n if (!obj || (this.getClassName() !== obj._typename)) return false;\n delete obj.evalPar;\n const histo = this.getHisto();\n\n if (this.webcanv_hist) {\n const h0 = this.getPadPainter()?.findInPrimitives('Func', clTH2F);\n if (h0) this.updateAxes(histo, h0, this.getFramePainter());\n }\n\n this.$func = obj;\n this.createTF2Histogram(obj, histo);\n this.scanContent();\n return true;\n }\n\n /** @summary Redraw TF2\n * @private */\n redraw(reason) {\n if (!this._use_saved_points && (reason === 'logx' || reason === 'logy' || reason === 'zoom')) {\n this.createTF2Histogram(this.$func, this.getHisto());\n this.scanContent();\n }\n\n return super.redraw(reason);\n }\n\n /** @summary Create histogram for TF2 drawing\n * @private */\n createTF2Histogram(func, hist) {\n let nsave = func.fSave.length - 6;\n if ((nsave > 0) && (nsave !== (func.fSave[nsave+4]+1) * (func.fSave[nsave+5]+1)))\n nsave = 0;\n\n this._use_saved_points = (nsave > 0) && (settings.PreferSavedPoints || this.force_saved);\n\n const fp = this.getFramePainter(),\n pad = this.getPadPainter()?.getRootPad(true),\n logx = pad?.fLogx, logy = pad?.fLogy,\n gr = fp?.getGrFuncs(this.second_x, this.second_y);\n let xmin = func.fXmin, xmax = func.fXmax,\n ymin = func.fYmin, ymax = func.fYmax;\n\n if (gr?.zoom_xmin !== gr?.zoom_xmax) {\n xmin = Math.min(xmin, gr.zoom_xmin);\n xmax = Math.max(xmax, gr.zoom_xmax);\n }\n\n if (gr?.zoom_ymin !== gr?.zoom_ymax) {\n ymin = Math.min(ymin, gr.zoom_ymin);\n ymax = Math.max(ymax, gr.zoom_ymax);\n }\n\n const ensureBins = (nx, ny) => {\n if (hist.fNcells !== (nx + 2) * (ny + 2)) {\n hist.fNcells = (nx + 2) * (ny + 2);\n hist.fArray = new Float32Array(hist.fNcells);\n }\n hist.fArray.fill(0);\n hist.fXaxis.fNbins = nx;\n hist.fXaxis.fXbins = [];\n hist.fYaxis.fNbins = ny;\n hist.fYaxis.fXbins = [];\n };\n\n delete this._fail_eval;\n\n if (!this._use_saved_points) {\n const npx = Math.max(func.fNpx, 20),\n npy = Math.max(func.fNpy, 20);\n let iserror = false;\n\n if (!func.evalPar && !proivdeEvalPar(func))\n iserror = true;\n\n ensureBins(npx, npy);\n hist.fXaxis.fXmin = xmin;\n hist.fXaxis.fXmax = xmax;\n hist.fYaxis.fXmin = ymin;\n hist.fYaxis.fXmax = ymax;\n\n if (logx)\n produceTAxisLogScale(hist.fXaxis, npx, xmin, xmax);\n if (logy)\n produceTAxisLogScale(hist.fYaxis, npy, ymin, ymax);\n\n for (let j = 0; (j < npy) && !iserror; ++j) {\n for (let i = 0; (i < npx) && !iserror; ++i) {\n const x = hist.fXaxis.GetBinCenter(i+1),\n y = hist.fYaxis.GetBinCenter(j+1);\n let z = 0;\n\n try {\n z = func.evalPar(x, y);\n } catch {\n iserror = true;\n }\n\n if (!iserror)\n hist.setBinContent(hist.getBin(i + 1, j + 1), Number.isFinite(z) ? z : 0);\n }\n }\n\n if (iserror)\n this._fail_eval = true;\n\n if (iserror && (nsave > 6))\n this._use_saved_points = true;\n }\n\n if (this._use_saved_points) {\n const xmin = func.fSave[nsave], xmax = func.fSave[nsave+1],\n ymin = func.fSave[nsave+2], ymax = func.fSave[nsave+3],\n npx = Math.round(func.fSave[nsave+4]),\n npy = Math.round(func.fSave[nsave+5]),\n dx = (xmax - xmin) / npx,\n dy = (ymax - ymin) / npy;\n function getSave(x, y) {\n if (x < xmin || x > xmax) return 0;\n if (dx <= 0) return 0;\n if (y < ymin || y > ymax) return 0;\n if (dy <= 0) return 0;\n const ibin = Math.min(npx-1, Math.floor((x-xmin)/dx)),\n jbin = Math.min(npy-1, Math.floor((y-ymin)/dy)),\n xlow = xmin + ibin*dx,\n ylow = ymin + jbin*dy,\n t = (x-xlow)/dx,\n u = (y-ylow)/dy,\n k1 = jbin*(npx+1) + ibin,\n k2 = jbin*(npx+1) + ibin +1,\n k3 = (jbin+1)*(npx+1) + ibin +1,\n k4 = (jbin+1)*(npx+1) + ibin;\n return (1-t)*(1-u)*func.fSave[k1] +t*(1-u)*func.fSave[k2] +t*u*func.fSave[k3] + (1-t)*u*func.fSave[k4];\n }\n\n ensureBins(func.fNpx, func.fNpy);\n hist.fXaxis.fXmin = func.fXmin;\n hist.fXaxis.fXmax = func.fXmax;\n hist.fYaxis.fXmin = func.fYmin;\n hist.fYaxis.fXmax = func.fYmax;\n\n for (let j = 0; j < func.fNpy; ++j) {\n const y = hist.fYaxis.GetBinCenter(j + 1);\n for (let i = 0; i < func.fNpx; ++i) {\n const x = hist.fXaxis.GetBinCenter(i + 1),\n z = getSave(x, y);\n hist.setBinContent(hist.getBin(i+1, j+1), Number.isFinite(z) ? z : 0);\n }\n }\n }\n\n hist.fName = 'Func';\n setHistogramTitle(hist, func.fTitle);\n hist.fMinimum = func.fMinimum;\n hist.fMaximum = func.fMaximum;\n // fHistogram->SetContour(fContour.fN, levels);\n hist.fLineColor = func.fLineColor;\n hist.fLineStyle = func.fLineStyle;\n hist.fLineWidth = func.fLineWidth;\n hist.fFillColor = func.fFillColor;\n hist.fFillStyle = func.fFillStyle;\n hist.fMarkerColor = func.fMarkerColor;\n hist.fMarkerStyle = func.fMarkerStyle;\n hist.fMarkerSize = func.fMarkerSize;\n hist.fBits |= kNoStats;\n\n return hist;\n }\n\n /** @summary Extract function ranges */\n extractAxesProperties(ndim) {\n super.extractAxesProperties(ndim);\n\n const func = this.$func, nsave = func?.fSave.length ?? 0;\n\n if (nsave > 6 && this._use_saved_points) {\n this.xmin = Math.min(this.xmin, func.fSave[nsave-6]);\n this.xmax = Math.max(this.xmax, func.fSave[nsave-5]);\n this.ymin = Math.min(this.ymin, func.fSave[nsave-4]);\n this.ymax = Math.max(this.ymax, func.fSave[nsave-3]);\n }\n if (func) {\n this.xmin = Math.min(this.xmin, func.fXmin);\n this.xmax = Math.max(this.xmax, func.fXmax);\n this.ymin = Math.min(this.ymin, func.fYmin);\n this.ymax = Math.max(this.ymax, func.fYmax);\n }\n }\n\n /** @summary retrurn tooltips for TF2 */\n getTF2Tooltips(pnt) {\n const lines = [this.getObjectHint()],\n funcs = this.getFramePainter()?.getGrFuncs(this.options.second_x, this.options.second_y);\n\n if (!funcs || !isFunc(this.$func?.evalPar)) {\n lines.push('grx = ' + pnt.x, 'gry = ' + pnt.y);\n return lines;\n }\n\n const x = funcs.revertAxis('x', pnt.x),\n y = funcs.revertAxis('y', pnt.y);\n let z = 0, iserror = false;\n\n try {\n z = this.$func.evalPar(x, y);\n } catch {\n iserror = true;\n }\n\n lines.push('x = ' + funcs.axisAsText('x', x),\n 'y = ' + funcs.axisAsText('y', y),\n 'value = ' + (iserror ? '' : floatToString(z, gStyle.fStatFormat)));\n return lines;\n }\n\n /** @summary process tooltip event for TF2 object */\n processTooltipEvent(pnt) {\n if (this._use_saved_points)\n return super.processTooltipEvent(pnt);\n\n let ttrect = this.draw_g?.selectChild('.tooltip_bin');\n\n if (!this.draw_g || !pnt) {\n ttrect?.remove();\n return null;\n }\n\n const res = { name: this.$func?.fName, title: this.$func?.fTitle,\n x: pnt.x, y: pnt.y,\n color1: this.lineatt?.color ?? 'green',\n color2: this.fillatt?.getFillColorAlt('blue') ?? 'blue',\n lines: this.getTF2Tooltips(pnt), exact: true, menu: true };\n\n if (pnt.disabled)\n ttrect.remove();\n else {\n if (ttrect.empty()) {\n ttrect = this.draw_g.append('svg:circle')\n .attr('class', 'tooltip_bin')\n .style('pointer-events', 'none')\n .style('fill', 'none')\n .attr('r', (this.lineatt?.width ?? 1) + 4);\n }\n\n ttrect.attr('cx', pnt.x)\n .attr('cy', pnt.y)\n .call(this.lineatt?.func);\n }\n\n return res;\n }\n\n /** @summary fill information for TWebCanvas\n * @private */\n fillWebObjectOptions(opt) {\n // mark that saved points are used or evaluation failed\n opt.fcust = this._fail_eval ? 'func_fail' : '';\n }\n\n /** @summary draw TF2 object */\n static async draw(dom, tf2, opt) {\n if (!isStr(opt)) opt = '';\n let p = opt.indexOf(';webcanv_hist'), webcanv_hist = false, force_saved = false;\n if (p >= 0) {\n webcanv_hist = true;\n opt = opt.slice(0, p);\n }\n p = opt.indexOf(';force_saved');\n if (p >= 0) {\n force_saved = true;\n opt = opt.slice(0, p);\n }\n\n const d = new DrawOptions(opt);\n if (d.empty())\n opt = 'cont3';\n else if (d.opt === 'SAME')\n opt = 'cont2 same';\n\n // workaround for old waves.C\n const o2 = isStr(opt) ? opt.toUpperCase() : '';\n if (o2 === 'SAMECOLORZ' || o2 === 'SAMECOLOR' || o2 === 'SAMECOLZ')\n opt = 'samecol';\n\n if ((opt.indexOf('same') === 0) || (opt.indexOf('SAME') === 0)) {\n if (!getElementMainPainter(dom))\n opt = 'A_ADJUST_FRAME_' + opt.slice(4);\n }\n\n let hist;\n\n if (webcanv_hist) {\n const dummy = new ObjectPainter(dom);\n hist = dummy.getPadPainter()?.findInPrimitives('Func', clTH2F);\n }\n\n if (!hist) {\n hist = createHistogram(clTH2F, 20, 20);\n hist.fBits |= kNoStats;\n }\n\n const painter = new TF2Painter(dom, hist);\n\n painter.$func = tf2;\n painter.webcanv_hist = webcanv_hist;\n painter.force_saved = force_saved;\n painter.createTF2Histogram(tf2, hist);\n return THistPainter._drawHist(painter, opt);\n }\n\n} // class TF2Painter\n\nexport { TF2Painter };\n"],"x_google_ignoreList":[0]} \ No newline at end of file diff --git a/docs/common.4392bc6b427b92a6.js b/docs/common.52288a8751e4c488.js similarity index 62% rename from docs/common.4392bc6b427b92a6.js rename to docs/common.52288a8751e4c488.js index f9b2e436..a759a4a5 100644 --- a/docs/common.4392bc6b427b92a6.js +++ b/docs/common.52288a8751e4c488.js @@ -1,2 +1,2 @@ -"use strict";(self.webpackChunkphoenix_app=self.webpackChunkphoenix_app||[]).push([[76],{8497:(E,m,o)=>{function c(u){return(c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(h){return typeof h}:function(h){return h&&"function"==typeof Symbol&&h.constructor===Symbol&&h!==Symbol.prototype?"symbol":typeof h})(u)}o.d(m,{A:()=>c})},801:(E,m,o)=>{o.r(m),o.d(m,{TLinePainter:()=>d});var c=o(4882),u=o(8872),h=o(1922),f=o(4483),x=o(5992),n=o(7900);const e=(0,u.BIT)(14);class d extends h.JW{moveStart(s,t){const a=Math.sqrt((this.x1-this.x2)**2+(this.y1-this.y2)**2),_=Math.sqrt((s-this.x1)**2+(t-this.y1)**2)/a,y=Math.sqrt((s-this.x2)**2+(t-this.y2)**2)/a;this.side=_>.9?1:y>.9?-1:0}moveDrag(s,t){1!==this.side&&(this.x1+=s,this.y1+=t),-1!==this.side&&(this.x2+=s,this.y2+=t),this.draw_g.select("path").attr("d",this.createPath())}moveEnd(s){if(s)return;const t=this.getObject();let a="";t.fX1=this.svgToAxis("x",this.x1,this.isndc),t.fX2=this.svgToAxis("x",this.x2,this.isndc),t.fY1=this.svgToAxis("y",this.y1,this.isndc),t.fY2=this.svgToAxis("y",this.y2,this.isndc),1!==this.side&&(a+=`SetX1(${t.fX1});;SetY1(${t.fY1});;`),-1!==this.side&&(a+=`SetX2(${t.fX2});;SetY2(${t.fY2});;`),this.submitCanvExec(a+"Notify();;")}prepareDraw(){const s=this.getObject();this.isndc=s.TestBit(e);const t=this.getAxisToSvgFunc(this.isndc,!0);this.x1=t.x(s.fX1),this.y1=t.y(s.fY1),this.x2=t.x(s.fX2),this.y2=t.y(s.fY2),this.createAttLine({attr:s})}createPath(){const s=Math.round(this.x1),t=Math.round(this.x2),a=Math.round(this.y1),_=Math.round(this.y2);return`M${s},${a}`+(s===t?`V${_}`:a===_?`H${t}`:`L${t},${_}`)}addExtras(){}redraw(){this.createG(),this.prepareDraw();const s=this.draw_g.append("svg:path").attr("d",this.createPath()).call(this.lineatt.func);return this.addExtras(s),(0,x.X2)(this),(0,n.wh)(this,n.Ew),this}static draw(s,t,a){return(0,c.A)(function*(){const _=new d(s,t,a);return(0,f.ensureTCanvas)(_,!1).then(()=>_.redraw())})()}}},643:(E,m,o)=>{o.d(m,{Y:()=>f});var c=o(4882),u=o(8872),h=o(3847);function f(){return x.apply(this,arguments)}function x(){return(x=(0,c.A)(function*(){const n=this.$fp||this.getFramePainter();if(delete this.$fp,!((0,u.isObject)(n)&&n.grx&&n.gry&&n.grz))return this;const e=this.getObject(),r=e.fP;let s=1,t=0;for(let i=0;in.scale_xmax||r[i+1]n.scale_ymax||r[i+2]n.scale_zmax||++t;u.settings.OptimizeDraw>0&&t>5e4&&(s=Math.floor(t/5e4),s<=2&&(s=2));const a=Math.floor(t/s),_=new h._l(a,n.webgl,n.size_x3d/100),y=new Int32Array(a);let g=0,P=0;for(let i=0;in.scale_xmax||r[i+1]n.scale_ymax||r[i+2]n.scale_zmax||s>1&&(g=(g+1)%s,0!==g)||(y[P++]=i,_.addPoint(n.grx(r[i]),n.gry(r[i+1]),n.grz(r[i+2])));return _.createPoints({color:this.getColor(e.fMarkerColor),style:e.fMarkerStyle}).then(i=>(i.tip_color=3===e.fMarkerColor?16711680:65280,i.tip_name=e.fName||"Poly3D",i.poly=e,i.fp=n,i.scale0=.7*_.scale,i.index=y,n.add3DMesh(i,this,!0),i.tooltip=function(T){let l=Math.floor(T.index/this.nvertex);if(l<0||l>=this.index.length)return null;l=this.index[l];const p=this.fp,M=p.grx(this.poly.fP[l]),D=p.gry(this.poly.fP[l+1]),O=p.grz(this.poly.fP[l+2]);return{x1:M-this.scale0,x2:M+this.scale0,y1:D-this.scale0,y2:D+this.scale0,z1:O-this.scale0,z2:O+this.scale0,color:this.tip_color,lines:[this.tip_name,"pnt: "+l/3,"x: "+p.axisAsText("x",this.poly.fP[l]),"y: "+p.axisAsText("y",this.poly.fP[l+1]),"z: "+p.axisAsText("z",this.poly.fP[l+2])]}},n.render3D(100),this))})).apply(this,arguments)}},7917:(E,m,o)=>{o.d(m,{k:()=>x});var c=o(4882),u=o(2679),h=o(8142),f=o(3847);class x extends u.TGraphPainter{drawBins3D(e,d){if(!(e.mode3d&&e.grx&&e.gry&&e.grz&&e.toplevel))return console.log("Frame painter missing base 3d elements");if(e.zoom_xmin!==e.zoom_xmax&&(this.options.pos3de.zoom_xmax))return;this.createGraphDrawAttributes(!0);const r=this.optimizeBins(1e3);let s=0,t=r.length-1;if(e.zoom_ymin!==e.zoom_ymax){for(;se.zoom_ymax;)t--}if(s===t)return;const a=[],_=e.grx(this.options.pos3d);let y=r[s];for(let P=s+1;P<=t;++P){const i=r[P];a.push(_,e.gry(y.x),e.grz(y.y),_,e.gry(i.x),e.grz(i.y)),y=i}const g=(0,f.Fc)(a,(0,f.DH)(this,d));e.add3DMesh(g,this,!0),e.render3D(100)}drawAxisHisto(){var e=this;return(0,c.A)(function*(){return h.TH1Painter.draw(e.getDom(),e.createHistogram(),e.options.Axis)})()}static draw(e,d,r){return(0,c.A)(function*(){return x._drawGraph(new x(e,d),r)})()}}}}]); -//# sourceMappingURL=common.4392bc6b427b92a6.js.map \ No newline at end of file +"use strict";(self.webpackChunkphoenix_app=self.webpackChunkphoenix_app||[]).push([[76],{8497:(D,m,o)=>{function c(y){return(c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(h){return typeof h}:function(h){return h&&"function"==typeof Symbol&&h.constructor===Symbol&&h!==Symbol.prototype?"symbol":typeof h})(y)}o.d(m,{A:()=>c})},801:(D,m,o)=>{o.r(m),o.d(m,{TLinePainter:()=>x});var c=o(4882),y=o(8872),h=o(1922),f=o(4483),d=o(5992),n=o(7900);const e=(0,y.BIT)(14);class x extends h.JW{moveStart(s,t){const a=Math.sqrt((this.x1-this.x2)**2+(this.y1-this.y2)**2),_=Math.sqrt((s-this.x1)**2+(t-this.y1)**2)/a,u=Math.sqrt((s-this.x2)**2+(t-this.y2)**2)/a;this.side=_>.9?1:u>.9?-1:0}moveDrag(s,t){1!==this.side&&(this.x1+=s,this.y1+=t),-1!==this.side&&(this.x2+=s,this.y2+=t),this.draw_g.select("path").attr("d",this.createPath())}moveEnd(s){if(s)return;const t=this.getObject();let a="";t.fX1=this.svgToAxis("x",this.x1,this.isndc),t.fX2=this.svgToAxis("x",this.x2,this.isndc),t.fY1=this.svgToAxis("y",this.y1,this.isndc),t.fY2=this.svgToAxis("y",this.y2,this.isndc),1!==this.side&&(a+=`SetX1(${t.fX1});;SetY1(${t.fY1});;`),-1!==this.side&&(a+=`SetX2(${t.fX2});;SetY2(${t.fY2});;`),this.submitCanvExec(a+"Notify();;")}prepareDraw(){const s=this.getObject();this.isndc=s.TestBit(e);const t=this.getAxisToSvgFunc(this.isndc,!0);this.x1=t.x(s.fX1),this.y1=t.y(s.fY1),this.x2=t.x(s.fX2),this.y2=t.y(s.fY2),this.createAttLine({attr:s})}createPath(){const s=Math.round(this.x1),t=Math.round(this.x2),a=Math.round(this.y1),_=Math.round(this.y2);return`M${s},${a}`+(s===t?`V${_}`:a===_?`H${t}`:`L${t},${_}`)}addExtras(){}redraw(){this.createG(),this.prepareDraw();const s=this.draw_g.append("svg:path").attr("d",this.createPath()).call(this.lineatt.func);return this.addExtras(s),(0,d.X2)(this),(0,n.wh)(this,n.Ew),this}static draw(s,t,a){return(0,c.A)(function*(){const _=new x(s,t,a);return(0,f.ensureTCanvas)(_,!1).then(()=>_.redraw())})()}}},643:(D,m,o)=>{o.d(m,{Y:()=>f});var c=o(4882),y=o(8872),h=o(3847);function f(){return d.apply(this,arguments)}function d(){return(d=(0,c.A)(function*(){const n=this.$fp||this.getFramePainter();if(delete this.$fp,!((0,y.isObject)(n)&&n.grx&&n.gry&&n.grz))return this;const e=this.getObject(),r=e.fP;let s=1,t=0;for(let i=0;in.scale_xmax||r[i+1]n.scale_ymax||r[i+2]n.scale_zmax||++t;y.settings.OptimizeDraw>0&&t>5e4&&(s=Math.floor(t/5e4),s<=2&&(s=2));const a=Math.floor(t/s),_=new h._l(a,n.webgl,n.size_x3d/100),u=new Int32Array(a);let g=0,P=0;for(let i=0;in.scale_xmax||r[i+1]n.scale_ymax||r[i+2]n.scale_zmax||s>1&&(g=(g+1)%s,0!==g)||(u[P++]=i,_.addPoint(n.grx(r[i]),n.gry(r[i+1]),n.grz(r[i+2])));return _.createPoints({color:this.getColor(e.fMarkerColor),style:e.fMarkerStyle}).then(i=>(i.tip_color=3===e.fMarkerColor?16711680:65280,i.tip_name=e.fName||"Poly3D",i.poly=e,i.fp=n,i.scale0=.7*_.scale,i.index=u,n.add3DMesh(i,this,!0),i.tooltip=function(T){let l=Math.floor(T.index/this.nvertex);if(l<0||l>=this.index.length)return null;l=this.index[l];const p=this.fp,E=p.grx(this.poly.fP[l]),M=p.gry(this.poly.fP[l+1]),O=p.grz(this.poly.fP[l+2]);return{x1:E-this.scale0,x2:E+this.scale0,y1:M-this.scale0,y2:M+this.scale0,z1:O-this.scale0,z2:O+this.scale0,color:this.tip_color,lines:[this.tip_name,"pnt: "+l/3,"x: "+p.axisAsText("x",this.poly.fP[l]),"y: "+p.axisAsText("y",this.poly.fP[l+1]),"z: "+p.axisAsText("z",this.poly.fP[l+2])]}},n.render3D(100),this))})).apply(this,arguments)}},7917:(D,m,o)=>{o.d(m,{k:()=>d});var c=o(4882),y=o(2679),h=o(8142),f=o(3847);class d extends y.TGraphPainter{drawBins3D(e,x){if(!(e.mode3d&&e.grx&&e.gry&&e.grz&&e.toplevel))return console.log("Frame painter missing base 3d elements");if(e.zoom_xmin!==e.zoom_xmax&&(this.options.pos3de.zoom_xmax))return;this.createGraphDrawAttributes(!0);const r=this.optimizeBins(1e3);let s=0,t=r.length-1;if(e.zoom_ymin!==e.zoom_ymax){for(;se.zoom_ymax;)t--}if(s===t)return;const a=[],_=e.grx(this.options.pos3d);let u=r[s];for(let P=s+1;P<=t;++P){const i=r[P];a.push(_,e.gry(u.x),e.grz(u.y),_,e.gry(i.x),e.grz(i.y)),u=i}const g=(0,f.Fc)(a,(0,f.DH)(this,x));e.add3DMesh(g,this,!0),e.render3D(100)}drawAxisHisto(){var e=this;return(0,c.A)(function*(){return h.TH1Painter.draw(e.getDom(),e.createHistogram(),e.options.Axis)})()}static draw(e,x,r){return(0,c.A)(function*(){return d._drawGraph(new d(e,x),r)})()}}}}]); +//# sourceMappingURL=common.52288a8751e4c488.js.map \ No newline at end of file diff --git a/docs/common.4392bc6b427b92a6.js.map b/docs/common.52288a8751e4c488.js.map similarity index 99% rename from docs/common.4392bc6b427b92a6.js.map rename to docs/common.52288a8751e4c488.js.map index c8ed36f7..ccd4e326 100644 --- a/docs/common.4392bc6b427b92a6.js.map +++ b/docs/common.52288a8751e4c488.js.map @@ -1 +1 @@ -{"version":3,"file":"common.4392bc6b427b92a6.js","mappings":"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","names":["_typeof","o","Symbol","iterator","constructor","prototype","kLineNDC","BIT","TLinePainter","ObjectPainter","moveStart","x","y","fullsize","Math","sqrt","this","x1","x2","y1","y2","sz1","sz2","side","moveDrag","dx","dy","draw_g","select","attr","createPath","moveEnd","not_changed","line","getObject","exec","fX1","svgToAxis","isndc","fX2","fY1","fY2","submitCanvExec","prepareDraw","TestBit","func","getAxisToSvgFunc","createAttLine","round","addExtras","redraw","createG","elem","append","call","lineatt","addMoveHandler","assignContextMenu","kToFront","draw","dom","obj","opt","_asyncToGenerator","painter","ensureTCanvas","then","drawPolyMarker3D","_drawPolyMarker3D","apply","arguments","fp","$fp","getFramePainter","isObject","grx","gry","grz","poly","fP","step","numselect","i","length","scale_xmin","scale_xmax","scale_ymin","scale_ymax","scale_zmin","scale_zmax","settings","OptimizeDraw","floor","size","pnts","PointsCreator","webgl","size_x3d","index","Int32Array","icnt","addPoint","createPoints","color","getColor","fMarkerColor","style","fMarkerStyle","mesh","tip_color","tip_name","fName","scale0","scale","add3DMesh","tooltip","intersect","indx","nvertex","z1","z2","lines","axisAsText","render3D","TGraphPainter","TGraphPainter2D","drawBins3D","graph","mode3d","toplevel","console","log","zoom_xmin","zoom_xmax","options","pos3d","createGraphDrawAttributes","drawbins","optimizeBins","first","last","zoom_ymin","zoom_ymax","p0","n","p1","push","createLineSegments","create3DLineMaterial","drawAxisHisto","_this","TH1Painter","getDom","createHistogram","Axis","_drawGraph"],"ignoreList":[],"sourceRoot":"webpack:///","sources":["../../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/jsroot/modules/draw/TLinePainter.mjs","../node_modules/jsroot/modules/draw/TPolyMarker3D.mjs","../node_modules/jsroot/modules/hist/TGraphPainter.mjs"],"sourcesContent":["export default function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}","import { BIT } from '../core.mjs';\nimport { ObjectPainter } from '../base/ObjectPainter.mjs';\nimport { ensureTCanvas } from '../gpad/TCanvasPainter.mjs';\nimport { addMoveHandler } from '../gui/utils.mjs';\nimport { assignContextMenu, kToFront } from '../gui/menu.mjs';\n\n\nconst kLineNDC = BIT(14);\n\nclass TLinePainter extends ObjectPainter {\n\n /** @summary Start interactive moving */\n moveStart(x, y) {\n const fullsize = Math.sqrt((this.x1-this.x2)**2 + (this.y1-this.y2)**2),\n sz1 = Math.sqrt((x-this.x1)**2 + (y-this.y1)**2)/fullsize,\n sz2 = Math.sqrt((x-this.x2)**2 + (y-this.y2)**2)/fullsize;\n if (sz1 > 0.9)\n this.side = 1;\n else if (sz2 > 0.9)\n this.side = -1;\n else\n this.side = 0;\n }\n\n /** @summary Continue interactive moving */\n moveDrag(dx, dy) {\n if (this.side !== 1) { this.x1 += dx; this.y1 += dy; }\n if (this.side !== -1) { this.x2 += dx; this.y2 += dy; }\n this.draw_g.select('path').attr('d', this.createPath());\n }\n\n /** @summary Finish interactive moving */\n moveEnd(not_changed) {\n if (not_changed) return;\n const line = this.getObject();\n let exec = '';\n line.fX1 = this.svgToAxis('x', this.x1, this.isndc);\n line.fX2 = this.svgToAxis('x', this.x2, this.isndc);\n line.fY1 = this.svgToAxis('y', this.y1, this.isndc);\n line.fY2 = this.svgToAxis('y', this.y2, this.isndc);\n if (this.side !== 1) exec += `SetX1(${line.fX1});;SetY1(${line.fY1});;`;\n if (this.side !== -1) exec += `SetX2(${line.fX2});;SetY2(${line.fY2});;`;\n this.submitCanvExec(exec + 'Notify();;');\n }\n\n /** @summary Calculate line coordinates */\n prepareDraw() {\n const line = this.getObject();\n\n this.isndc = line.TestBit(kLineNDC);\n\n const func = this.getAxisToSvgFunc(this.isndc, true);\n\n this.x1 = func.x(line.fX1);\n this.y1 = func.y(line.fY1);\n this.x2 = func.x(line.fX2);\n this.y2 = func.y(line.fY2);\n\n this.createAttLine({ attr: line });\n }\n\n /** @summary Create path */\n createPath() {\n const x1 = Math.round(this.x1), x2 = Math.round(this.x2), y1 = Math.round(this.y1), y2 = Math.round(this.y2);\n return `M${x1},${y1}` + (x1 === x2 ? `V${y2}` : (y1 === y2 ? `H${x2}` : `L${x2},${y2}`));\n }\n\n /** @summary Add extras - used for TArrow */\n addExtras() {}\n\n /** @summary Redraw line */\n redraw() {\n this.createG();\n\n this.prepareDraw();\n\n const elem = this.draw_g.append('svg:path')\n .attr('d', this.createPath())\n .call(this.lineatt.func);\n\n this.addExtras(elem);\n\n addMoveHandler(this);\n assignContextMenu(this, kToFront);\n\n return this;\n }\n\n /** @summary Draw TLine object */\n static async draw(dom, obj, opt) {\n const painter = new TLinePainter(dom, obj, opt);\n return ensureTCanvas(painter, false).then(() => painter.redraw());\n }\n\n} // class TLinePainter\n\n\nexport { TLinePainter };\n","import { settings, isObject } from '../core.mjs';\nimport { PointsCreator } from '../base/base3d.mjs';\n\n/** @summary direct draw function for TPolyMarker3D object\n * @private */\nasync function drawPolyMarker3D() {\n const fp = this.$fp || this.getFramePainter();\n\n delete this.$fp;\n\n if (!isObject(fp) || !fp.grx || !fp.gry || !fp.grz)\n return this;\n\n const poly = this.getObject(), sizelimit = 50000, fP = poly.fP;\n let step = 1, numselect = 0;\n\n for (let i = 0; i < fP.length; i += 3) {\n if ((fP[i] < fp.scale_xmin) || (fP[i] > fp.scale_xmax) ||\n (fP[i+1] < fp.scale_ymin) || (fP[i+1] > fp.scale_ymax) ||\n (fP[i+2] < fp.scale_zmin) || (fP[i+2] > fp.scale_zmax)) continue;\n ++numselect;\n }\n\n if ((settings.OptimizeDraw > 0) && (numselect > sizelimit)) {\n step = Math.floor(numselect/sizelimit);\n if (step <= 2) step = 2;\n }\n\n const size = Math.floor(numselect/step),\n pnts = new PointsCreator(size, fp.webgl, fp.size_x3d/100),\n index = new Int32Array(size);\n let select = 0, icnt = 0;\n\n for (let i = 0; i < fP.length; i += 3) {\n if ((fP[i] < fp.scale_xmin) || (fP[i] > fp.scale_xmax) ||\n (fP[i+1] < fp.scale_ymin) || (fP[i+1] > fp.scale_ymax) ||\n (fP[i+2] < fp.scale_zmin) || (fP[i+2] > fp.scale_zmax)) continue;\n\n if (step > 1) {\n select = (select+1) % step;\n if (select !== 0) continue;\n }\n\n index[icnt++] = i;\n\n pnts.addPoint(fp.grx(fP[i]), fp.gry(fP[i+1]), fp.grz(fP[i+2]));\n }\n\n return pnts.createPoints({ color: this.getColor(poly.fMarkerColor), style: poly.fMarkerStyle }).then(mesh => {\n mesh.tip_color = (poly.fMarkerColor === 3) ? 0xFF0000 : 0x00FF00;\n mesh.tip_name = poly.fName || 'Poly3D';\n mesh.poly = poly;\n mesh.fp = fp;\n mesh.scale0 = 0.7*pnts.scale;\n mesh.index = index;\n\n fp.add3DMesh(mesh, this, true);\n\n mesh.tooltip = function(intersect) {\n let indx = Math.floor(intersect.index / this.nvertex);\n if ((indx < 0) || (indx >= this.index.length)) return null;\n\n indx = this.index[indx];\n\n const fp = this.fp,\n grx = fp.grx(this.poly.fP[indx]),\n gry = fp.gry(this.poly.fP[indx+1]),\n grz = fp.grz(this.poly.fP[indx+2]);\n\n return {\n x1: grx - this.scale0,\n x2: grx + this.scale0,\n y1: gry - this.scale0,\n y2: gry + this.scale0,\n z1: grz - this.scale0,\n z2: grz + this.scale0,\n color: this.tip_color,\n lines: [this.tip_name,\n 'pnt: ' + indx/3,\n 'x: ' + fp.axisAsText('x', this.poly.fP[indx]),\n 'y: ' + fp.axisAsText('y', this.poly.fP[indx+1]),\n 'z: ' + fp.axisAsText('z', this.poly.fP[indx+2])\n ]\n };\n };\n\n fp.render3D(100); // set timeout to be able draw other points\n\n return this;\n });\n}\n\nexport { drawPolyMarker3D };\n","import { TGraphPainter as TGraphPainter2D } from '../hist2d/TGraphPainter.mjs';\nimport { TH1Painter } from './TH1Painter.mjs';\nimport { createLineSegments, create3DLineMaterial } from '../base/base3d.mjs';\n\n\nclass TGraphPainter extends TGraphPainter2D {\n\n /** @summary Draw TGraph points in 3D\n * @private */\n drawBins3D(fp, graph) {\n if (!fp.mode3d || !fp.grx || !fp.gry || !fp.grz || !fp.toplevel)\n return console.log('Frame painter missing base 3d elements');\n\n if (fp.zoom_xmin !== fp.zoom_xmax)\n if ((this.options.pos3d < fp.zoom_xmin) || (this.options.pos3d > fp.zoom_xmax)) return;\n\n this.createGraphDrawAttributes(true);\n\n const drawbins = this.optimizeBins(1000);\n let first = 0, last = drawbins.length-1;\n\n if (fp.zoom_ymin !== fp.zoom_ymax) {\n while ((first < last) && (drawbins[first].x < fp.zoom_ymin)) first++;\n while ((first < last) && (drawbins[last].x > fp.zoom_ymax)) last--;\n }\n\n if (first === last) return;\n\n const pnts = [], grx = fp.grx(this.options.pos3d);\n let p0 = drawbins[first];\n\n for (let n = first + 1; n <= last; ++n) {\n const p1 = drawbins[n];\n pnts.push(grx, fp.gry(p0.x), fp.grz(p0.y),\n grx, fp.gry(p1.x), fp.grz(p1.y));\n p0 = p1;\n }\n\n const lines = createLineSegments(pnts, create3DLineMaterial(this, graph));\n\n fp.add3DMesh(lines, this, true);\n\n fp.render3D(100);\n }\n\n /** @summary Draw axis histogram\n * @private */\n async drawAxisHisto() {\n return TH1Painter.draw(this.getDom(), this.createHistogram(), this.options.Axis);\n }\n\n static async draw(dom, graph, opt) {\n return TGraphPainter._drawGraph(new TGraphPainter(dom, graph), opt);\n }\n\n} // class TGraphPainter\n\nexport { TGraphPainter };\n"],"x_google_ignoreList":[0,1,2,3]} \ No newline at end of file +{"version":3,"file":"common.52288a8751e4c488.js","mappings":"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","names":["_typeof","o","Symbol","iterator","constructor","prototype","kLineNDC","BIT","TLinePainter","ObjectPainter","moveStart","x","y","fullsize","Math","sqrt","this","x1","x2","y1","y2","sz1","sz2","side","moveDrag","dx","dy","draw_g","select","attr","createPath","moveEnd","not_changed","line","getObject","exec","fX1","svgToAxis","isndc","fX2","fY1","fY2","submitCanvExec","prepareDraw","TestBit","func","getAxisToSvgFunc","createAttLine","round","addExtras","redraw","createG","elem","append","call","lineatt","addMoveHandler","assignContextMenu","kToFront","draw","dom","obj","opt","_asyncToGenerator","painter","ensureTCanvas","then","drawPolyMarker3D","_drawPolyMarker3D","apply","arguments","fp","$fp","getFramePainter","isObject","grx","gry","grz","poly","fP","step","numselect","i","length","scale_xmin","scale_xmax","scale_ymin","scale_ymax","scale_zmin","scale_zmax","settings","OptimizeDraw","floor","size","pnts","PointsCreator","webgl","size_x3d","index","Int32Array","icnt","addPoint","createPoints","color","getColor","fMarkerColor","style","fMarkerStyle","mesh","tip_color","tip_name","fName","scale0","scale","add3DMesh","tooltip","intersect","indx","nvertex","z1","z2","lines","axisAsText","render3D","TGraphPainter","TGraphPainter2D","drawBins3D","graph","mode3d","toplevel","console","log","zoom_xmin","zoom_xmax","options","pos3d","createGraphDrawAttributes","drawbins","optimizeBins","first","last","zoom_ymin","zoom_ymax","p0","n","p1","push","createLineSegments","create3DLineMaterial","drawAxisHisto","_this","TH1Painter","getDom","createHistogram","Axis","_drawGraph"],"ignoreList":[],"sourceRoot":"webpack:///","sources":["../../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/jsroot/modules/draw/TLinePainter.mjs","../node_modules/jsroot/modules/draw/TPolyMarker3D.mjs","../node_modules/jsroot/modules/hist/TGraphPainter.mjs"],"sourcesContent":["export default function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}","import { BIT } from '../core.mjs';\nimport { ObjectPainter } from '../base/ObjectPainter.mjs';\nimport { ensureTCanvas } from '../gpad/TCanvasPainter.mjs';\nimport { addMoveHandler } from '../gui/utils.mjs';\nimport { assignContextMenu, kToFront } from '../gui/menu.mjs';\n\n\nconst kLineNDC = BIT(14);\n\nclass TLinePainter extends ObjectPainter {\n\n /** @summary Start interactive moving */\n moveStart(x, y) {\n const fullsize = Math.sqrt((this.x1-this.x2)**2 + (this.y1-this.y2)**2),\n sz1 = Math.sqrt((x-this.x1)**2 + (y-this.y1)**2)/fullsize,\n sz2 = Math.sqrt((x-this.x2)**2 + (y-this.y2)**2)/fullsize;\n if (sz1 > 0.9)\n this.side = 1;\n else if (sz2 > 0.9)\n this.side = -1;\n else\n this.side = 0;\n }\n\n /** @summary Continue interactive moving */\n moveDrag(dx, dy) {\n if (this.side !== 1) { this.x1 += dx; this.y1 += dy; }\n if (this.side !== -1) { this.x2 += dx; this.y2 += dy; }\n this.draw_g.select('path').attr('d', this.createPath());\n }\n\n /** @summary Finish interactive moving */\n moveEnd(not_changed) {\n if (not_changed) return;\n const line = this.getObject();\n let exec = '';\n line.fX1 = this.svgToAxis('x', this.x1, this.isndc);\n line.fX2 = this.svgToAxis('x', this.x2, this.isndc);\n line.fY1 = this.svgToAxis('y', this.y1, this.isndc);\n line.fY2 = this.svgToAxis('y', this.y2, this.isndc);\n if (this.side !== 1) exec += `SetX1(${line.fX1});;SetY1(${line.fY1});;`;\n if (this.side !== -1) exec += `SetX2(${line.fX2});;SetY2(${line.fY2});;`;\n this.submitCanvExec(exec + 'Notify();;');\n }\n\n /** @summary Calculate line coordinates */\n prepareDraw() {\n const line = this.getObject();\n\n this.isndc = line.TestBit(kLineNDC);\n\n const func = this.getAxisToSvgFunc(this.isndc, true);\n\n this.x1 = func.x(line.fX1);\n this.y1 = func.y(line.fY1);\n this.x2 = func.x(line.fX2);\n this.y2 = func.y(line.fY2);\n\n this.createAttLine({ attr: line });\n }\n\n /** @summary Create path */\n createPath() {\n const x1 = Math.round(this.x1), x2 = Math.round(this.x2), y1 = Math.round(this.y1), y2 = Math.round(this.y2);\n return `M${x1},${y1}` + (x1 === x2 ? `V${y2}` : (y1 === y2 ? `H${x2}` : `L${x2},${y2}`));\n }\n\n /** @summary Add extras - used for TArrow */\n addExtras() {}\n\n /** @summary Redraw line */\n redraw() {\n this.createG();\n\n this.prepareDraw();\n\n const elem = this.draw_g.append('svg:path')\n .attr('d', this.createPath())\n .call(this.lineatt.func);\n\n this.addExtras(elem);\n\n addMoveHandler(this);\n assignContextMenu(this, kToFront);\n\n return this;\n }\n\n /** @summary Draw TLine object */\n static async draw(dom, obj, opt) {\n const painter = new TLinePainter(dom, obj, opt);\n return ensureTCanvas(painter, false).then(() => painter.redraw());\n }\n\n} // class TLinePainter\n\n\nexport { TLinePainter };\n","import { settings, isObject } from '../core.mjs';\nimport { PointsCreator } from '../base/base3d.mjs';\n\n/** @summary direct draw function for TPolyMarker3D object\n * @private */\nasync function drawPolyMarker3D() {\n const fp = this.$fp || this.getFramePainter();\n\n delete this.$fp;\n\n if (!isObject(fp) || !fp.grx || !fp.gry || !fp.grz)\n return this;\n\n const poly = this.getObject(), sizelimit = 50000, fP = poly.fP;\n let step = 1, numselect = 0;\n\n for (let i = 0; i < fP.length; i += 3) {\n if ((fP[i] < fp.scale_xmin) || (fP[i] > fp.scale_xmax) ||\n (fP[i+1] < fp.scale_ymin) || (fP[i+1] > fp.scale_ymax) ||\n (fP[i+2] < fp.scale_zmin) || (fP[i+2] > fp.scale_zmax)) continue;\n ++numselect;\n }\n\n if ((settings.OptimizeDraw > 0) && (numselect > sizelimit)) {\n step = Math.floor(numselect/sizelimit);\n if (step <= 2) step = 2;\n }\n\n const size = Math.floor(numselect/step),\n pnts = new PointsCreator(size, fp.webgl, fp.size_x3d/100),\n index = new Int32Array(size);\n let select = 0, icnt = 0;\n\n for (let i = 0; i < fP.length; i += 3) {\n if ((fP[i] < fp.scale_xmin) || (fP[i] > fp.scale_xmax) ||\n (fP[i+1] < fp.scale_ymin) || (fP[i+1] > fp.scale_ymax) ||\n (fP[i+2] < fp.scale_zmin) || (fP[i+2] > fp.scale_zmax)) continue;\n\n if (step > 1) {\n select = (select+1) % step;\n if (select !== 0) continue;\n }\n\n index[icnt++] = i;\n\n pnts.addPoint(fp.grx(fP[i]), fp.gry(fP[i+1]), fp.grz(fP[i+2]));\n }\n\n return pnts.createPoints({ color: this.getColor(poly.fMarkerColor), style: poly.fMarkerStyle }).then(mesh => {\n mesh.tip_color = (poly.fMarkerColor === 3) ? 0xFF0000 : 0x00FF00;\n mesh.tip_name = poly.fName || 'Poly3D';\n mesh.poly = poly;\n mesh.fp = fp;\n mesh.scale0 = 0.7*pnts.scale;\n mesh.index = index;\n\n fp.add3DMesh(mesh, this, true);\n\n mesh.tooltip = function(intersect) {\n let indx = Math.floor(intersect.index / this.nvertex);\n if ((indx < 0) || (indx >= this.index.length)) return null;\n\n indx = this.index[indx];\n\n const fp = this.fp,\n grx = fp.grx(this.poly.fP[indx]),\n gry = fp.gry(this.poly.fP[indx+1]),\n grz = fp.grz(this.poly.fP[indx+2]);\n\n return {\n x1: grx - this.scale0,\n x2: grx + this.scale0,\n y1: gry - this.scale0,\n y2: gry + this.scale0,\n z1: grz - this.scale0,\n z2: grz + this.scale0,\n color: this.tip_color,\n lines: [this.tip_name,\n 'pnt: ' + indx/3,\n 'x: ' + fp.axisAsText('x', this.poly.fP[indx]),\n 'y: ' + fp.axisAsText('y', this.poly.fP[indx+1]),\n 'z: ' + fp.axisAsText('z', this.poly.fP[indx+2])\n ]\n };\n };\n\n fp.render3D(100); // set timeout to be able draw other points\n\n return this;\n });\n}\n\nexport { drawPolyMarker3D };\n","import { TGraphPainter as TGraphPainter2D } from '../hist2d/TGraphPainter.mjs';\nimport { TH1Painter } from './TH1Painter.mjs';\nimport { createLineSegments, create3DLineMaterial } from '../base/base3d.mjs';\n\n\nclass TGraphPainter extends TGraphPainter2D {\n\n /** @summary Draw TGraph points in 3D\n * @private */\n drawBins3D(fp, graph) {\n if (!fp.mode3d || !fp.grx || !fp.gry || !fp.grz || !fp.toplevel)\n return console.log('Frame painter missing base 3d elements');\n\n if (fp.zoom_xmin !== fp.zoom_xmax)\n if ((this.options.pos3d < fp.zoom_xmin) || (this.options.pos3d > fp.zoom_xmax)) return;\n\n this.createGraphDrawAttributes(true);\n\n const drawbins = this.optimizeBins(1000);\n let first = 0, last = drawbins.length-1;\n\n if (fp.zoom_ymin !== fp.zoom_ymax) {\n while ((first < last) && (drawbins[first].x < fp.zoom_ymin)) first++;\n while ((first < last) && (drawbins[last].x > fp.zoom_ymax)) last--;\n }\n\n if (first === last) return;\n\n const pnts = [], grx = fp.grx(this.options.pos3d);\n let p0 = drawbins[first];\n\n for (let n = first + 1; n <= last; ++n) {\n const p1 = drawbins[n];\n pnts.push(grx, fp.gry(p0.x), fp.grz(p0.y),\n grx, fp.gry(p1.x), fp.grz(p1.y));\n p0 = p1;\n }\n\n const lines = createLineSegments(pnts, create3DLineMaterial(this, graph));\n\n fp.add3DMesh(lines, this, true);\n\n fp.render3D(100);\n }\n\n /** @summary Draw axis histogram\n * @private */\n async drawAxisHisto() {\n return TH1Painter.draw(this.getDom(), this.createHistogram(), this.options.Axis);\n }\n\n static async draw(dom, graph, opt) {\n return TGraphPainter._drawGraph(new TGraphPainter(dom, graph), opt);\n }\n\n} // class TGraphPainter\n\nexport { TGraphPainter };\n"],"x_google_ignoreList":[0,1,2,3]} \ No newline at end of file diff --git a/docs/index.html b/docs/index.html index 2949e705..de24d461 100644 --- a/docs/index.html +++ b/docs/index.html @@ -30,5 +30,5 @@ - + diff --git a/docs/main.3f372d509105d165.js b/docs/main.07f314ac81a60b93.js similarity index 64% rename from docs/main.3f372d509105d165.js rename to docs/main.07f314ac81a60b93.js index 8b96f589..d415edd3 100644 --- a/docs/main.3f372d509105d165.js +++ b/docs/main.07f314ac81a60b93.js @@ -1,2 +1,2 @@ -(self.webpackChunkphoenix_app=self.webpackChunkphoenix_app||[]).push([[792],{1228:(Yr,mt,Se)=>{"use strict";var Te=Se(4882);let L=null,ke=1;const ot=Symbol("SIGNAL");function Ye(n){const e=L;return L=n,e}function J(n){if((!_(n)||n.dirty)&&(n.dirty||n.lastCleanEpoch!==ke)){if(!n.producerMustRecompute(n)&&!B(n))return n.dirty=!1,void(n.lastCleanEpoch=ke);n.producerRecomputeValue(n),n.dirty=!1,n.lastCleanEpoch=ke}}function B(n){v(n);for(let e=0;e0}function v(n){n.producerNode??=[],n.producerIndexOfThis??=[],n.producerLastReadVersion??=[]}let ue=null;function Je(n){return"function"==typeof n}function tt(n){const t=n(i=>{Error.call(i),i.stack=(new Error).stack});return t.prototype=Object.create(Error.prototype),t.prototype.constructor=t,t}const Fe=tt(n=>function(t){n(this),this.message=t?`${t.length} errors occurred during unsubscription:\n${t.map((i,r)=>`${r+1}) ${i.toString()}`).join("\n ")}`:"",this.name="UnsubscriptionError",this.errors=t});function Ne(n,e){if(n){const t=n.indexOf(e);0<=t&&n.splice(t,1)}}class rt{constructor(e){this.initialTeardown=e,this.closed=!1,this._parentage=null,this._finalizers=null}unsubscribe(){let e;if(!this.closed){this.closed=!0;const{_parentage:t}=this;if(t)if(this._parentage=null,Array.isArray(t))for(const s of t)s.remove(this);else t.remove(this);const{initialTeardown:i}=this;if(Je(i))try{i()}catch(s){e=s instanceof Fe?s.errors:[s]}const{_finalizers:r}=this;if(r){this._finalizers=null;for(const s of r)try{st(s)}catch(o){e=e??[],o instanceof Fe?e=[...e,...o.errors]:e.push(o)}}if(e)throw new Fe(e)}}add(e){var t;if(e&&e!==this)if(this.closed)st(e);else{if(e instanceof rt){if(e.closed||e._hasParent(this))return;e._addParent(this)}(this._finalizers=null!==(t=this._finalizers)&&void 0!==t?t:[]).push(e)}}_hasParent(e){const{_parentage:t}=this;return t===e||Array.isArray(t)&&t.includes(e)}_addParent(e){const{_parentage:t}=this;this._parentage=Array.isArray(t)?(t.push(e),t):t?[t,e]:e}_removeParent(e){const{_parentage:t}=this;t===e?this._parentage=null:Array.isArray(t)&&Ne(t,e)}remove(e){const{_finalizers:t}=this;t&&Ne(t,e),e instanceof rt&&e._removeParent(this)}}rt.EMPTY=(()=>{const n=new rt;return n.closed=!0,n})();const St=rt.EMPTY;function pt(n){return n instanceof rt||n&&"closed"in n&&Je(n.remove)&&Je(n.add)&&Je(n.unsubscribe)}function st(n){Je(n)?n():n.unsubscribe()}const vt={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},Yt={setTimeout(n,e,...t){const{delegate:i}=Yt;return i?.setTimeout?i.setTimeout(n,e,...t):setTimeout(n,e,...t)},clearTimeout(n){const{delegate:e}=Yt;return(e?.clearTimeout||clearTimeout)(n)},delegate:void 0};function qt(n){Yt.setTimeout(()=>{const{onUnhandledError:e}=vt;if(!e)throw n;e(n)})}function Ot(){}const Bn=Dn("C",void 0,void 0);function Dn(n,e,t){return{kind:n,value:e,error:t}}let $n=null;function Cn(n){if(vt.useDeprecatedSynchronousErrorHandling){const e=!$n;if(e&&($n={errorThrown:!1,error:null}),n(),e){const{errorThrown:t,error:i}=$n;if($n=null,t)throw i}}else n()}class Sn extends rt{constructor(e){super(),this.isStopped=!1,e?(this.destination=e,pt(e)&&e.add(this)):this.destination=yo}static create(e,t,i){return new ti(e,t,i)}next(e){this.isStopped?Bs(function bn(n){return Dn("N",n,void 0)}(e),this):this._next(e)}error(e){this.isStopped?Bs(function Mn(n){return Dn("E",void 0,n)}(e),this):(this.isStopped=!0,this._error(e))}complete(){this.isStopped?Bs(Bn,this):(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe(),this.destination=null)}_next(e){this.destination.next(e)}_error(e){try{this.destination.error(e)}finally{this.unsubscribe()}}_complete(){try{this.destination.complete()}finally{this.unsubscribe()}}}const ii=Function.prototype.bind;function ai(n,e){return ii.call(n,e)}class zi{constructor(e){this.partialObserver=e}next(e){const{partialObserver:t}=this;if(t.next)try{t.next(e)}catch(i){Lr(i)}}error(e){const{partialObserver:t}=this;if(t.error)try{t.error(e)}catch(i){Lr(i)}else Lr(e)}complete(){const{partialObserver:e}=this;if(e.complete)try{e.complete()}catch(t){Lr(t)}}}class ti extends Sn{constructor(e,t,i){let r;if(super(),Je(e)||!e)r={next:e??void 0,error:t??void 0,complete:i??void 0};else{let s;this&&vt.useDeprecatedNextContext?(s=Object.create(e),s.unsubscribe=()=>this.unsubscribe(),r={next:e.next&&ai(e.next,s),error:e.error&&ai(e.error,s),complete:e.complete&&ai(e.complete,s)}):r=e}this.destination=new zi(r)}}function Lr(n){vt.useDeprecatedSynchronousErrorHandling?function yn(n){vt.useDeprecatedSynchronousErrorHandling&&$n&&($n.errorThrown=!0,$n.error=n)}(n):qt(n)}function Bs(n,e){const{onStoppedNotification:t}=vt;t&&Yt.setTimeout(()=>t(n,e))}const yo={closed:!0,next:Ot,error:function ss(n){throw n},complete:Ot},xt="function"==typeof Symbol&&Symbol.observable||"@@observable";function K(n){return n}function ye(n){return 0===n.length?K:1===n.length?n[0]:function(t){return n.reduce((i,r)=>r(i),t)}}let Pe=(()=>{class n{constructor(t){t&&(this._subscribe=t)}lift(t){const i=new n;return i.source=this,i.operator=t,i}subscribe(t,i,r){const s=function Nt(n){return n&&n instanceof Sn||function Ht(n){return n&&Je(n.next)&&Je(n.error)&&Je(n.complete)}(n)&&pt(n)}(t)?t:new ti(t,i,r);return Cn(()=>{const{operator:o,source:l}=this;s.add(o?o.call(s,l):l?this._subscribe(s):this._trySubscribe(s))}),s}_trySubscribe(t){try{return this._subscribe(t)}catch(i){t.error(i)}}forEach(t,i){return new(i=At(i))((r,s)=>{const o=new ti({next:l=>{try{t(l)}catch(d){s(d),o.unsubscribe()}},error:s,complete:r});this.subscribe(o)})}_subscribe(t){var i;return null===(i=this.source)||void 0===i?void 0:i.subscribe(t)}[xt](){return this}pipe(...t){return ye(t)(this)}toPromise(t){return new(t=At(t))((i,r)=>{let s;this.subscribe(o=>s=o,o=>r(o),()=>i(s))})}}return n.create=e=>new n(e),n})();function At(n){var e;return null!==(e=n??vt.Promise)&&void 0!==e?e:Promise}const nn=tt(n=>function(){n(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"});let un=(()=>{class n extends Pe{constructor(){super(),this.closed=!1,this.currentObservers=null,this.observers=[],this.isStopped=!1,this.hasError=!1,this.thrownError=null}lift(t){const i=new kn(this,this);return i.operator=t,i}_throwIfClosed(){if(this.closed)throw new nn}next(t){Cn(()=>{if(this._throwIfClosed(),!this.isStopped){this.currentObservers||(this.currentObservers=Array.from(this.observers));for(const i of this.currentObservers)i.next(t)}})}error(t){Cn(()=>{if(this._throwIfClosed(),!this.isStopped){this.hasError=this.isStopped=!0,this.thrownError=t;const{observers:i}=this;for(;i.length;)i.shift().error(t)}})}complete(){Cn(()=>{if(this._throwIfClosed(),!this.isStopped){this.isStopped=!0;const{observers:t}=this;for(;t.length;)t.shift().complete()}})}unsubscribe(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null}get observed(){var t;return(null===(t=this.observers)||void 0===t?void 0:t.length)>0}_trySubscribe(t){return this._throwIfClosed(),super._trySubscribe(t)}_subscribe(t){return this._throwIfClosed(),this._checkFinalizedStatuses(t),this._innerSubscribe(t)}_innerSubscribe(t){const{hasError:i,isStopped:r,observers:s}=this;return i||r?St:(this.currentObservers=null,s.push(t),new rt(()=>{this.currentObservers=null,Ne(s,t)}))}_checkFinalizedStatuses(t){const{hasError:i,thrownError:r,isStopped:s}=this;i?t.error(r):s&&t.complete()}asObservable(){const t=new Pe;return t.source=this,t}}return n.create=(e,t)=>new kn(e,t),n})();class kn extends un{constructor(e,t){super(),this.destination=e,this.source=t}next(e){var t,i;null===(i=null===(t=this.destination)||void 0===t?void 0:t.next)||void 0===i||i.call(t,e)}error(e){var t,i;null===(i=null===(t=this.destination)||void 0===t?void 0:t.error)||void 0===i||i.call(t,e)}complete(){var e,t;null===(t=null===(e=this.destination)||void 0===e?void 0:e.complete)||void 0===t||t.call(e)}_subscribe(e){var t,i;return null!==(i=null===(t=this.source)||void 0===t?void 0:t.subscribe(e))&&void 0!==i?i:St}}class cn extends un{constructor(e){super(),this._value=e}get value(){return this.getValue()}_subscribe(e){const t=super._subscribe(e);return!t.closed&&e.next(this._value),t}getValue(){const{hasError:e,thrownError:t,_value:i}=this;if(e)throw t;return this._throwIfClosed(),i}next(e){super.next(this._value=e)}}function In(n){return Je(n?.lift)}function ci(n){return e=>{if(In(e))return e.lift(function(t){try{return n(t,this)}catch(i){this.error(i)}});throw new TypeError("Unable to lift unknown Observable type")}}function Pi(n,e,t,i,r){return new Si(n,e,t,i,r)}class Si extends Sn{constructor(e,t,i,r,s,o){super(e),this.onFinalize=s,this.shouldUnsubscribe=o,this._next=t?function(l){try{t(l)}catch(d){e.error(d)}}:super._next,this._error=r?function(l){try{r(l)}catch(d){e.error(d)}finally{this.unsubscribe()}}:super._error,this._complete=i?function(){try{i()}catch(l){e.error(l)}finally{this.unsubscribe()}}:super._complete}unsubscribe(){var e;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){const{closed:t}=this;super.unsubscribe(),!t&&(null===(e=this.onFinalize)||void 0===e||e.call(this))}}}function bi(n,e){return ci((t,i)=>{let r=0;t.subscribe(Pi(i,s=>{i.next(n.call(e,s,r++))}))})}const Wi="https://g.co/ng/security#xss";class Ln extends Error{constructor(e,t){super(function Rs(n,e){return`NG0${Math.abs(n)}${e?": "+e:""}`}(e,t)),this.code=e}}function Oe(n){return{toString:n}.toString()}const et="__parameters__";function tn(n,e,t){return Oe(()=>{const i=function sn(n){return function(...t){if(n){const i=n(...t);for(const r in i)this[r]=i[r]}}}(e);function r(...s){if(this instanceof r)return i.apply(this,s),this;const o=new r(...s);return l.annotation=o,l;function l(d,h,f){const A=d.hasOwnProperty(et)?d[et]:Object.defineProperty(d,et,{value:[]})[et];for(;A.length<=f;)A.push(null);return(A[f]=A[f]||[]).push(o),d}}return t&&(r.prototype=Object.create(t.prototype)),r.prototype.ngMetadataName=n,r.annotationCls=r,r})}const wn=globalThis;function nt(n){for(let e in n)if(n[e]===nt)return e;throw Error("Could not find renamed property on target object.")}function at(n,e){for(const t in e)e.hasOwnProperty(t)&&!n.hasOwnProperty(t)&&(n[t]=e[t])}function ut(n){if("string"==typeof n)return n;if(Array.isArray(n))return"["+n.map(ut).join(", ")+"]";if(null==n)return""+n;if(n.overriddenName)return`${n.overriddenName}`;if(n.name)return`${n.name}`;const e=n.toString();if(null==e)return""+e;const t=e.indexOf("\n");return-1===t?e:e.substring(0,t)}function Qt(n,e){return null==n||""===n?null===e?"":e:null==e||""===e?n:n+" "+e}const en=nt({__forward_ref__:nt});function jt(n){return n.__forward_ref__=jt,n.toString=function(){return ut(this())},n}function fn(n){return Hn(n)?n():n}function Hn(n){return"function"==typeof n&&n.hasOwnProperty(en)&&n.__forward_ref__===jt}function Gi(n){return{token:n.token,providedIn:n.providedIn||null,factory:n.factory,value:void 0}}function ra(n){return{providers:n.providers||[],imports:n.imports||[]}}function ic(n){return rc(n,$l)||rc(n,fd)}function rc(n,e){return n.hasOwnProperty(e)?n[e]:null}function Io(n){return n&&(n.hasOwnProperty(ud)||n.hasOwnProperty(Td))?n[ud]:null}const $l=nt({\u0275prov:nt}),ud=nt({\u0275inj:nt}),fd=nt({ngInjectableDef:nt}),Td=nt({ngInjectorDef:nt});class Bi{constructor(e,t){this._desc=e,this.ngMetadataName="InjectionToken",this.\u0275prov=void 0,"number"==typeof t?this.__NG_ELEMENT_ID__=t:void 0!==t&&(this.\u0275prov=Gi({token:this,providedIn:t.providedIn||"root",factory:t.factory}))}get multi(){return this}toString(){return`InjectionToken ${this._desc}`}}function zf(n){return n&&!!n.\u0275providers}const bg=nt({\u0275cmp:nt}),d1=nt({\u0275dir:nt}),xm=nt({\u0275pipe:nt}),xg=nt({\u0275mod:nt}),Xu=nt({\u0275fac:nt}),wg=nt({__NG_ELEMENT_ID__:nt}),Hf=nt({__NG_ENV_ID__:nt});function go(n){return"string"==typeof n?n:null==n?"":String(n)}function Mg(n,e){throw new Ln(-201,!1)}var va=function(n){return n[n.Default=0]="Default",n[n.Host=1]="Host",n[n.Self=2]="Self",n[n.SkipSelf=4]="SkipSelf",n[n.Optional=8]="Optional",n}(va||{});let Sg;function h1(){return Sg}function jd(n){const e=Sg;return Sg=n,e}function u1(n,e,t){const i=ic(n);return i&&"root"==i.providedIn?void 0===i.value?i.value=i.factory():i.value:t&va.Optional?null:void 0!==e?e:void Mg()}const wp={},f1="__NG_DI_FLAG__",H0="ngTempTokenPath",Px=/\n/gm,av="__source";let _A;function Vf(n){const e=_A;return _A=n,e}function V0(n,e=va.Default){if(void 0===_A)throw new Ln(-203,!1);return null===_A?u1(n,void 0,e):_A.get(n,e&va.Optional?null:void 0,e)}function xi(n,e=va.Default){return(h1()||V0)(fn(n),e)}function pi(n,e=va.Default){return xi(n,bu(e))}function bu(n){return typeof n>"u"||"number"==typeof n?n:(n.optional&&8)|(n.host&&1)|(n.self&&2)|(n.skipSelf&&4)}function Ac(n){const e=[];for(let t=0;tArray.isArray(t)?qf(t,e):e(t))}function Eg(n,e,t){e>=n.length?n.push(t):n.splice(e,0,t)}function Qf(n,e){return e>=n.length-1?n.pop():n.splice(e,1)[0]}function Yl(n,e,t){let i=vl(n,e);return i>=0?n[1|i]=t:(i=~i,function Yu(n,e,t,i){let r=n.length;if(r==e)n.push(t,i);else if(1===r)n.push(i,n[0]),n[0]=t;else{for(r--,n.push(n[r-1],n[r]);r>e;)n[r]=n[r-2],r--;n[e]=t,n[e+1]=i}}(n,i,e,t)),i}function Xd(n,e){const t=vl(n,e);if(t>=0)return n[1|t]}function vl(n,e){return function ko(n,e,t){let i=0,r=n.length>>t;for(;r!==i;){const s=i+(r-i>>1),o=n[s<e?r=s:i=s+1}return~(r<e){o=s-1;break}}}for(;s-1){let s;for(;++rs?"":r[f+1].toLowerCase(),2&i&&h!==A){if(yh(i))return!1;o=!0}}}}else{if(!o&&!yh(i)&&!yh(d))return!1;if(o&&yh(d))continue;o=!1,i=d|1&i}}return yh(i)||o}function yh(n){return!(1&n)}function lv(n,e,t,i){if(null===e)return-1;let r=0;if(i||!t){let s=!1;for(;r-1)for(t++;t0?'="'+l+'"':"")+"]"}else 8&i?r+="."+o:4&i&&(r+=" "+o);else""!==r&&!yh(o)&&(e+=vA(s,r),r=""),i=o,s=s||!yh(i);t++}return""!==r&&(e+=vA(s,r)),e}function rs(n){return Oe(()=>{const e=Sp(n),t={...e,decls:n.decls,vars:n.vars,template:n.template,consts:n.consts||null,ngContentSelectors:n.ngContentSelectors,onPush:n.changeDetection===Tg.OnPush,directiveDefs:null,pipeDefs:null,dependencies:e.standalone&&n.dependencies||null,getStandaloneInjector:null,signals:n.signals??!1,data:n.data||{},encapsulation:n.encapsulation||Ad.Emulated,styles:n.styles||za,_:null,schemas:n.schemas||null,tView:null,id:""};Ep(t);const i=n.dependencies;return t.directiveDefs=_c(i,!1),t.pipeDefs=_c(i,!0),t.id=function Zu(n){let e=0;const t=[n.selectors,n.ngContentSelectors,n.hostVars,n.hostAttrs,n.consts,n.vars,n.decls,n.encapsulation,n.standalone,n.signals,n.exportAs,JSON.stringify(n.inputs),JSON.stringify(n.outputs),Object.getOwnPropertyNames(n.type.prototype),!!n.contentQueries,!!n.viewQuery].join("|");for(const r of t)e=Math.imul(31,e)+r.charCodeAt(0)|0;return e+=2147483648,"c"+e}(t),t})}function Pg(n){return Wo(n)||rl(n)}function Os(n){return null!==n}function vo(n){return Oe(()=>({type:n.type,bootstrap:n.bootstrap||za,declarations:n.declarations||za,imports:n.imports||za,exports:n.exports||za,transitiveCompileScopes:null,schemas:n.schemas||null,id:n.id||null}))}function Oh(n,e){if(null==n)return xu;const t={};for(const i in n)if(n.hasOwnProperty(i)){const r=n[i];let s,o,l=mi.None;Array.isArray(r)?(l=r[0],s=r[1],o=r[2]??s):(s=r,o=r),e?(t[s]=l!==mi.None?[i,l]:i,e[s]=o):t[s]=i}return t}function Ft(n){return Oe(()=>{const e=Sp(n);return Ep(e),e})}function Ic(n){return{type:n.type,name:n.name,factory:null,pure:!1!==n.pure,standalone:!0===n.standalone,onDestroy:n.type.prototype.ngOnDestroy||null}}function Wo(n){return n[bg]||null}function rl(n){return n[d1]||null}function bl(n){return n[xm]||null}function Bc(n,e){const t=n[xg]||null;if(!t&&!0===e)throw new Error(`Type ${ut(n)} does not have '\u0275mod' property.`);return t}function Sp(n){const e={};return{type:n.type,providersResolver:null,factory:null,hostBindings:n.hostBindings||null,hostVars:n.hostVars||0,hostAttrs:n.hostAttrs||null,contentQueries:n.contentQueries||null,declaredInputs:e,inputTransforms:null,inputConfig:n.inputs||xu,exportAs:n.exportAs||null,standalone:!0===n.standalone,signals:!0===n.signals,selectors:n.selectors||za,viewQuery:n.viewQuery||null,features:n.features||null,setInput:null,findHostDirectiveDefs:null,hostDirectives:null,inputs:Oh(n.inputs,e),outputs:Oh(n.outputs),debugInfo:null}}function Ep(n){n.features?.forEach(e=>e(n))}function _c(n,e){if(!n)return null;const t=e?bl:Pg;return()=>("function"==typeof n?n():n).map(i=>t(i)).filter(Os)}function Mm(...n){return{\u0275providers:Tp(0,n),\u0275fromNgModule:!0}}function Tp(n,...e){const t=[],i=new Set;let r;const s=o=>{t.push(o)};return qf(e,o=>{const l=o;Nh(l,s,[],i)&&(r||=[],r.push(l))}),void 0!==r&&Dp(r,s),t}function Dp(n,e){for(let t=0;t{e(s,i)})}}function Nh(n,e,t,i){if(!(n=fn(n)))return!1;let r=null,s=Io(n);const o=!s&&Wo(n);if(s||o){if(o&&!o.standalone)return!1;r=n}else{const d=n.ngModule;if(s=Io(d),!s)return!1;r=d}const l=i.has(r);if(o){if(l)return!1;if(i.add(r),o.dependencies){const d="function"==typeof o.dependencies?o.dependencies():o.dependencies;for(const h of d)Nh(h,e,t,i)}}else{if(!s)return!1;{if(null!=s.imports&&!l){let h;i.add(r);try{qf(s.imports,f=>{Nh(f,e,t,i)&&(h||=[],h.push(f))})}finally{}void 0!==h&&Dp(h,e)}if(!l){const h=md(r)||(()=>new r);e({provide:r,useFactory:h,deps:za},r),e({provide:eu,useValue:r,multi:!0},r),e({provide:Ui,useValue:()=>xi(r),multi:!0},r)}const d=s.providers;if(null!=d&&!l){const h=n;Q0(d,f=>{e(f,h)})}}}return r!==n&&void 0!==n.providers}function Q0(n,e){for(let t of n)zf(t)&&(t=t.\u0275providers),Array.isArray(t)?Q0(t,e):e(t)}const bA=nt({provide:String,useValue:nt});function Ju(n){return null!==n&&"object"==typeof n&&bA in n}function Ip(n){return"function"==typeof n}const nu=new Bi(""),yc={},kg={};let ef;function bo(){return void 0===ef&&(ef=new Wc),ef}class Rc{}class jc extends Rc{get destroyed(){return this._destroyed}constructor(e,t,i,r){super(),this.parent=t,this.source=i,this.scopes=r,this.records=new Map,this._ngOnDestroyHooks=new Set,this._onDestroyHooks=[],this._destroyed=!1,W0(e,o=>this.processProvider(o)),this.records.set(zo,vc(void 0,this)),r.has("environment")&&this.records.set(Rc,vc(void 0,this));const s=this.records.get(nu);null!=s&&"string"==typeof s.value&&this.scopes.add(s.value),this.injectorDefTypes=new Set(this.get(eu,za,va.Self))}destroy(){this.assertNotDestroyed(),this._destroyed=!0;const e=Ye(null);try{for(const i of this._ngOnDestroyHooks)i.ngOnDestroy();const t=this._onDestroyHooks;this._onDestroyHooks=[];for(const i of t)i()}finally{this.records.clear(),this._ngOnDestroyHooks.clear(),this.injectorDefTypes.clear(),Ye(e)}}onDestroy(e){return this.assertNotDestroyed(),this._onDestroyHooks.push(e),()=>this.removeOnDestroy(e)}runInContext(e){this.assertNotDestroyed();const t=Vf(this),i=jd(void 0);try{return e()}finally{Vf(t),jd(i)}}get(e,t=wp,i=va.Default){if(this.assertNotDestroyed(),e.hasOwnProperty(Hf))return e[Hf](this);i=bu(i);const s=Vf(this),o=jd(void 0);try{if(!(i&va.SkipSelf)){let d=this.records.get(e);if(void 0===d){const h=function tf(n){return"function"==typeof n||"object"==typeof n&&n instanceof Bi}(e)&&ic(e);d=h&&this.injectableDefInScope(h)?vc(Fg(e),yc):null,this.records.set(e,d)}if(null!=d)return this.hydrate(e,d)}return(i&va.Self?bo():this.parent).get(e,t=i&va.Optional&&t===wp?null:t)}catch(l){if("NullInjectorError"===l.name){if((l[H0]=l[H0]||[]).unshift(ut(e)),s)throw l;return function pd(n,e,t,i){const r=n[H0];throw e[av]&&r.unshift(e[av]),n.message=function Ah(n,e,t,i=null){n=n&&"\n"===n.charAt(0)&&"\u0275"==n.charAt(1)?n.slice(2):n;let r=ut(e);if(Array.isArray(e))r=e.map(ut).join(" -> ");else if("object"==typeof e){let s=[];for(let o in e)if(e.hasOwnProperty(o)){let l=e[o];s.push(o+":"+("string"==typeof l?JSON.stringify(l):ut(l)))}r=`{${s.join(", ")}}`}return`${t}${i?"("+i+")":""}[${r}]: ${n.replace(Px,"\n ")}`}("\n"+n.message,r,t,i),n.ngTokenPath=r,n[H0]=null,n}(l,e,"R3InjectorError",this.source)}throw l}finally{jd(o),Vf(s)}}resolveInjectorInitializers(){const e=Ye(null),t=Vf(this),i=jd(void 0);try{const s=this.get(Ui,za,va.Self);for(const o of s)o()}finally{Vf(t),jd(i),Ye(e)}}toString(){const e=[],t=this.records;for(const i of t.keys())e.push(ut(i));return`R3Injector[${e.join(", ")}]`}assertNotDestroyed(){if(this._destroyed)throw new Ln(205,!1)}processProvider(e){let t=Ip(e=fn(e))?e:fn(e&&e.provide);const i=function iu(n){return Ju(n)?vc(void 0,n.useValue):vc(Em(n),yc)}(e);if(!Ip(e)&&!0===e.multi){let r=this.records.get(t);r||(r=vc(void 0,yc,!0),r.factory=()=>Ac(r.multi),this.records.set(t,r)),t=e,r.multi.push(e)}this.records.set(t,i)}hydrate(e,t){const i=Ye(null);try{return t.value===yc&&(t.value=kg,t.value=t.factory()),"object"==typeof t.value&&t.value&&function Bp(n){return null!==n&&"object"==typeof n&&"function"==typeof n.ngOnDestroy}(t.value)&&this._ngOnDestroyHooks.add(t.value),t.value}finally{Ye(i)}}injectableDefInScope(e){if(!e.providedIn)return!1;const t=fn(e.providedIn);return"string"==typeof t?"any"===t||this.scopes.has(t):this.injectorDefTypes.has(t)}removeOnDestroy(e){const t=this._onDestroyHooks.indexOf(e);-1!==t&&this._onDestroyHooks.splice(t,1)}}function Fg(n){const e=ic(n),t=null!==e?e.factory:md(n);if(null!==t)return t;if(n instanceof Bi)throw new Ln(204,!1);if(n instanceof Function)return function Sm(n){if(n.length>0)throw new Ln(204,!1);const t=function mh(n){return n&&(n[$l]||n[fd])||null}(n);return null!==t?()=>t.factory(n):()=>new n}(n);throw new Ln(204,!1)}function Em(n,e,t){let i;if(Ip(n)){const r=fn(n);return md(r)||Fg(r)}if(Ju(n))i=()=>fn(n.useValue);else if(function Rg(n){return!(!n||!n.useFactory)}(n))i=()=>n.useFactory(...Ac(n.deps||[]));else if(function Yd(n){return!(!n||!n.useExisting)}(n))i=()=>xi(fn(n.useExisting));else{const r=fn(n&&(n.useClass||n.provide));if(!function xA(n){return!!n.deps}(n))return md(r)||Fg(r);i=()=>new r(...Ac(n.deps))}return i}function vc(n,e,t=!1){return{factory:n,value:e,multi:t?[]:void 0}}function W0(n,e){for(const t of n)Array.isArray(t)?W0(t,e):t&&zf(t)?W0(t.\u0275providers,e):e(t)}function El(n,e){n instanceof jc&&n.assertNotDestroyed();const i=Vf(n),r=jd(void 0);try{return e()}finally{Vf(i),jd(r)}}function Pp(){return void 0!==h1()||null!=function p1(){return _A}()}const Tl=0,Gr=1,so=2,pl=3,Kd=4,oc=5,Ul=6,nf=7,Ka=8,$c=9,Uh=10,Mo=11,kp=12,$0=13,rf=14,Yo=15,Rl=16,Tm=17,bc=18,Fp=19,Op=20,ac=21,Bd=22,Dl=23,Cs=25,Cu=1,su=7,cs=9,Ia=10;var X0=function(n){return n[n.None=0]="None",n[n.HasTransplantedViews=2]="HasTransplantedViews",n}(X0||{});function Fc(n){return Array.isArray(n)&&"object"==typeof n[Cu]}function dl(n){return Array.isArray(n)&&!0===n[Cu]}function SA(n){return!!(4&n.flags)}function af(n){return n.componentOffset>-1}function zl(n){return!(1&~n.flags)}function Hl(n){return!!n.template}function Lp(n){return!!(512&n[so])}class zh{constructor(e,t,i){this.previousValue=e,this.currentValue=t,this.firstChange=i}isFirstChange(){return this.firstChange}}function lu(n,e,t,i){null!==e?e.applyValueToInputSignal(e,i):n[t]=i}function kl(){return Yf}function Yf(n){return n.type.prototype.ngOnChanges&&(n.setInput=Kf),zp}function zp(){const n=Bm(this),e=n?.current;if(e){const t=n.previous;if(t===xu)n.previous=e;else for(let i in e)t[i]=e[i];n.current=null,this.ngOnChanges(e)}}function Kf(n,e,t,i,r){const s=this.declaredInputs[i],o=Bm(n)||function Eu(n,e){return n[hf]=e}(n,{previous:xu,current:null}),l=o.current||(o.current={}),d=o.previous,h=d[s];l[s]=new zh(h&&h.currentValue,t,d===xu),lu(n,e,r,t)}kl.ngInherit=!0;const hf="__ngSimpleChanges__";function Bm(n){return n[hf]||null}const Jd=function(n,e,t){},Jc="svg";let IA=!1;function oa(n){for(;Array.isArray(n);)n=n[Tl];return n}function BA(n,e){return oa(e[n])}function Pd(n,e){return oa(e[n.index])}function PA(n,e){return n.data[e]}function km(n,e){return n[e]}function Rd(n,e){const t=e[n];return Fc(t)?t:t[Tl]}function cu(n){return!(128&~n[so])}function Hh(n,e){return null==e?null:n[e]}function x1(n){n[Tm]=0}function K0(n){1024&n[so]||(n[so]|=1024,cu(n)&&Hp(n))}function Oc(n){return!!(9216&n[so]||n[Dl]?.dirty)}function pf(n){n[Uh].changeDetectionScheduler?.notify(1),Oc(n)?Hp(n):64&n[so]&&(function hv(){return IA}()?(n[so]|=1024,Hp(n)):n[Uh].changeDetectionScheduler?.notify())}function Hp(n){n[Uh].changeDetectionScheduler?.notify();let e=Tu(n);for(;null!==e&&!(8192&e[so])&&(e[so]|=8192,cu(e));)e=Tu(e)}function tp(n,e){if(!(256&~n[so]))throw new Ln(911,!1);null===n[ac]&&(n[ac]=[]),n[ac].push(e)}function Tu(n){const e=n[pl];return dl(e)?e[pl]:e}const Gs={lFrame:jg(null),bindingsEnabled:!0,skipHydrationRootTNode:null};function Fm(){return Gs.bindingsEnabled}function Om(){return null!==Gs.skipHydrationRootTNode}function Zi(){return Gs.lFrame.lView}function wa(){return Gs.lFrame.tView}function Ci(n){return Gs.lFrame.contextLView=n,n[Ka]}function Mi(n){return Gs.lFrame.contextLView=null,n}function Ha(){let n=kA();for(;null!==n&&64===n.type;)n=n.parent;return n}function kA(){return Gs.lFrame.currentTNode}function du(n,e){const t=Gs.lFrame;t.currentTNode=n,t.isParent=e}function FA(){return Gs.lFrame.isParent}function Gg(){Gs.lFrame.isParent=!1}function Yc(){const n=Gs.lFrame;let e=n.bindingRootIndex;return-1===e&&(e=n.bindingRootIndex=n.tView.bindingStartIndex),e}function uu(){return Gs.lFrame.bindingIndex++}function mf(n){const e=Gs.lFrame,t=e.bindingIndex;return e.bindingIndex=e.bindingIndex+n,t}function t_(n,e){const t=Gs.lFrame;t.bindingIndex=t.bindingRootIndex=n,n_(e)}function n_(n){Gs.lFrame.currentDirectiveIndex=n}function r_(){return Gs.lFrame.currentQueryIndex}function OA(n){Gs.lFrame.currentQueryIndex=n}function I1(n){const e=n[Gr];return 2===e.type?e.declTNode:1===e.type?n[oc]:null}function Qg(n,e,t){if(t&va.SkipSelf){let r=e,s=n;for(;!(r=r.parent,null!==r||t&va.Host||(r=I1(s),null===r||(s=s[rf],10&r.type))););if(null===r)return!1;e=r,n=s}const i=Gs.lFrame=s_();return i.currentTNode=e,i.lView=n,!0}function Wg(n){const e=s_(),t=n[Gr];Gs.lFrame=e,e.currentTNode=t.firstChild,e.lView=n,e.tView=t,e.contextLView=n,e.bindingIndex=t.bindingStartIndex,e.inI18n=!1}function s_(){const n=Gs.lFrame,e=null===n?null:n.child;return null===e?jg(n):e}function jg(n){const e={currentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:-1,contextLView:null,elementDepthCount:0,currentNamespace:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:n,child:null,inI18n:!1};return null!==n&&(n.child=e),e}function o_(){const n=Gs.lFrame;return Gs.lFrame=n.parent,n.currentTNode=null,n.lView=null,n}const a_=o_;function l_(){const n=o_();n.isParent=!0,n.tView=null,n.selectedIndex=-1,n.contextLView=null,n.elementDepthCount=0,n.currentDirectiveIndex=-1,n.currentNamespace=null,n.bindingRootIndex=-1,n.bindingIndex=-1,n.currentQueryIndex=0}function Lc(){return Gs.lFrame.selectedIndex}function np(n){Gs.lFrame.selectedIndex=n}function gl(){const n=Gs.lFrame;return PA(n.tView,n.selectedIndex)}function Fl(){Gs.lFrame.currentNamespace=Jc}function Du(){!function pv(){Gs.lFrame.currentNamespace=null}()}let Gp=!0;function Nm(){return Gp}function Za(n){Gp=n}function Af(n,e){for(let t=e.directiveStart,i=e.directiveEnd;t=i)break}else e[d]<0&&(n[Tm]+=65536),(l>14>16&&(3&n[so])===e&&(n[so]+=16384,c_(l,s)):c_(l,s)}const ip=-1;class rp{constructor(e,t,i){this.factory=e,this.resolving=!1,this.canSeeViewProviders=t,this.injectImpl=i}}function Kg(n){return n!==ip}function NA(n){return 32767&n}function Zg(n,e){let t=function k1(n){return n>>16}(n),i=e;for(;t>0;)i=i[rf],t--;return i}let d_=!0;function h_(n){const e=d_;return d_=n,e}const Av=255,u_=5;let Jg=0;const Bu={};function zm(n,e){const t=gv(n,e);if(-1!==t)return t;const i=e[Gr];i.firstCreatePass&&(n.injectorIndex=e.length,Pu(i.data,n),Pu(e,null),Pu(i.blueprint,null));const r=f_(n,e),s=n.injectorIndex;if(Kg(r)){const o=NA(r),l=Zg(r,e),d=l[Gr].data;for(let h=0;h<8;h++)e[s+h]=l[o+h]|d[o+h]}return e[s+8]=r,s}function Pu(n,e){n.push(0,0,0,0,0,0,0,0,e)}function gv(n,e){return-1===n.injectorIndex||n.parent&&n.parent.injectorIndex===n.injectorIndex||null===e[n.injectorIndex+8]?-1:n.injectorIndex}function f_(n,e){if(n.parent&&-1!==n.parent.injectorIndex)return n.parent.injectorIndex;let t=0,i=null,r=e;for(;null!==r;){if(i=UA(r),null===i)return ip;if(t++,r=r[rf],-1!==i.injectorIndex)return i.injectorIndex|t<<16}return ip}function F1(n,e,t){!function NC(n,e,t){let i;"string"==typeof t?i=t.charCodeAt(0)||0:t.hasOwnProperty(wg)&&(i=t[wg]),null==i&&(i=t[wg]=Jg++);const r=i&Av;e.data[n+(r>>u_)]|=1<=0?e&Av:N1:e}(t);if("function"==typeof s){if(!Qg(e,n,i))return i&va.Host?Lx(r,0,i):p_(e,t,i,r);try{let o;if(o=s(i),null!=o||i&va.Optional)return o;Mg()}finally{a_()}}else if("number"==typeof s){let o=null,l=gv(n,e),d=ip,h=i&va.Host?e[Yo][oc]:null;for((-1===l||i&va.SkipSelf)&&(d=-1===l?f_(n,e):e[l+8],d!==ip&&L1(i,!1)?(o=e[Gr],l=NA(d),e=Zg(d,e)):l=-1);-1!==l;){const f=e[Gr];if(Nc(s,l,f.data)){const A=Nx(l,e,t,o,i,h);if(A!==Bu)return A}d=e[l+8],d!==ip&&L1(i,e[Gr].data[l+8]===h)&&Nc(s,l,e)?(o=f,l=NA(d),e=Zg(d,e)):l=-1}}return r}function Nx(n,e,t,i,r,s){const o=e[Gr],l=o.data[n+8],f=vs(l,o,t,null==i?af(l)&&d_:i!=o&&!!(3&l.type),r&va.Host&&s===l);return null!==f?Vh(e,o,f,l):Bu}function vs(n,e,t,i,r){const s=n.providerIndexes,o=e.data,l=1048575&s,d=n.directiveStart,f=s>>20,S=r?l+f:n.directiveEnd;for(let R=i?l:l+f;R=d&&G.type===t)return R}if(r){const R=o[d];if(R&&Hl(R)&&R.type===t)return d}return null}function Vh(n,e,t,i){let r=n[t];const s=e.data;if(function Um(n){return n instanceof rp}(r)){const o=r;o.resolving&&function Tx(n,e){throw e&&e.join(" > "),new Ln(-200,n)}(function Wa(n){return"function"==typeof n?n.name||n.toString():"object"==typeof n&&null!=n&&"function"==typeof n.type?n.type.name||n.type.toString():go(n)}(s[t]));const l=h_(o.canSeeViewProviders);o.resolving=!0;const h=o.injectImpl?jd(o.injectImpl):null;Qg(n,i,va.Default);try{r=n[t]=o.factory(void 0,s,n,i),e.firstCreatePass&&t>=i.directiveStart&&function qp(n,e,t){const{ngOnChanges:i,ngOnInit:r,ngDoCheck:s}=e.type.prototype;if(i){const o=Yf(e);(t.preOrderHooks??=[]).push(n,o),(t.preOrderCheckHooks??=[]).push(n,o)}r&&(t.preOrderHooks??=[]).push(0-n,r),s&&((t.preOrderHooks??=[]).push(n,s),(t.preOrderCheckHooks??=[]).push(n,s))}(t,s[t],e)}finally{null!==h&&jd(h),h_(l),o.resolving=!1,a_()}}return r}function Nc(n,e,t){return!!(t[e+(n>>u_)]&1<{const e=n.prototype.constructor,t=e[Xu]||Wp(e),i=Object.prototype;let r=Object.getPrototypeOf(n.prototype).constructor;for(;r&&r!==i;){const s=r[Xu]||Wp(r);if(s&&s!==t)return s;r=Object.getPrototypeOf(r)}return s=>new s})}function Wp(n){return Hn(n)?()=>{const e=Wp(fn(n));return e&&e()}:md(n)}function UA(n){const e=n[Gr],t=e.type;return 2===t?e.declTNode:1===t?n[oc]:null}function bh(n){return function _v(n,e){if("class"===e)return n.classes;if("style"===e)return n.styles;const t=n.attrs;if(t){const i=t.length;let r=0;for(;r{class n{static#e=this.THROW_IF_NOT_FOUND=wp;static#t=this.NULL=new Wc;static create(t,i){if(Array.isArray(t))return Zl({name:""},i,t,"");{const r=t.name??"";return Zl({name:r},t.parent,t.providers,r)}}static#n=this.\u0275prov=Gi({token:n,providedIn:"any",factory:()=>xi(zo)});static#i=this.__NG_ELEMENT_ID__=-1}return n})();function kd(n){return n.ngOriginalError}class xl{constructor(){this._console=console}handleError(e){const t=this._findOriginalError(e);this._console.error("ERROR",e),t&&this._console.error("ORIGINAL ERROR",t)}_findOriginalError(e){let t=e&&kd(e);for(;t&&kd(t);)t=kd(t);return t||null}}const n0=new Bi("",{providedIn:"root",factory:()=>pi(xl).handleError.bind(void 0)});let Uc=(()=>{class n{static#e=this.__NG_ELEMENT_ID__=VA;static#t=this.__NG_ENV_ID__=t=>t}return n})();class A_ extends Uc{constructor(e){super(),this._lView=e}onDestroy(e){return tp(this._lView,e),()=>function Hg(n,e){if(null===n[ac])return;const t=n[ac].indexOf(e);-1!==t&&n[ac].splice(t,1)}(this._lView,e)}}function VA(){return new A_(Zi())}function __(){return qm(Ha(),Zi())}function qm(n,e){return new oo(Pd(n,e))}let oo=(()=>{class n{constructor(t){this.nativeElement=t}static#e=this.__NG_ELEMENT_ID__=__}return n})();function Qm(n){return n instanceof oo?n.nativeElement:n}function Wm(n){return e=>{setTimeout(n,void 0,e)}}const Ls=class y_ extends un{constructor(e=!1){super(),this.destroyRef=void 0,this.__isAsync=e,Pp()&&(this.destroyRef=pi(Uc,{optional:!0})??void 0)}emit(e){const t=Ye(null);try{super.next(e)}finally{Ye(t)}}subscribe(e,t,i){let r=e,s=t||(()=>null),o=i;if(e&&"object"==typeof e){const d=e;r=d.next?.bind(d),s=d.error?.bind(d),o=d.complete?.bind(d)}this.__isAsync&&(s=Wm(s),r&&(r=Wm(r)),o&&(o=Wm(o)));const l=super.subscribe({next:r,error:s,complete:o});return e instanceof rt&&e.add(l),l}};function s0(){return this._results[Symbol.iterator]()}class yf{static#e=Symbol.iterator;get changes(){return this._changes??=new Ls}constructor(e=!1){this._emitDistinctChangesOnly=e,this.dirty=!0,this._onDirty=void 0,this._results=[],this._changesDetected=!1,this._changes=void 0,this.length=0,this.first=void 0,this.last=void 0;const t=yf.prototype;t[Symbol.iterator]||(t[Symbol.iterator]=s0)}get(e){return this._results[e]}map(e){return this._results.map(e)}filter(e){return this._results.filter(e)}find(e){return this._results.find(e)}reduce(e,t){return this._results.reduce(e,t)}forEach(e){this._results.forEach(e)}some(e){return this._results.some(e)}toArray(){return this._results.slice()}toString(){return this._results.toString()}reset(e,t){this.dirty=!1;const i=function ua(n){return n.flat(Number.POSITIVE_INFINITY)}(e);(this._changesDetected=!function wm(n,e,t){if(n.length!==e.length)return!1;for(let i=0;iVC}),VC="ng",Hx=new Bi(""),Kp=new Bi("",{providedIn:"platform",factory:()=>"unknown"}),Od=new Bi(""),wv=new Bi("",{providedIn:"root",factory:()=>function $m(){if(void 0!==xv)return xv;if(typeof document<"u")return document;throw new Ln(210,!1)}().body?.querySelector("[ngCspNonce]")?.getAttribute("ngCspNonce")||null});let Vt=()=>null;function Gn(n,e,t=!1){return Vt(n,e,t)}const th=new Bi("",{providedIn:"root",factory:()=>!1});let Xm;function d0(n){return function em(){if(void 0===Xm&&(Xm=null,wn.trustedTypes))try{Xm=wn.trustedTypes.createPolicy("angular#unsafe-bypass",{createHTML:n=>n,createScript:n=>n,createScriptURL:n=>n})}catch{}return Xm}()?.createScriptURL(n)||n}class wf{constructor(e){this.changingThisBreaksApplicationSecurity=e}toString(){return`SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity} (see ${Wi})`}}function Sa(n){return n instanceof wf?n.changingThisBreaksApplicationSecurity:n}function ec(n,e){const t=function _u(n){return n instanceof wf&&n.getTypeName()||null}(n);if(null!=t&&t!==e){if("ResourceURL"===t&&"URL"===e)return!0;throw new Error(`Required a safe ${e}, got a ${t} (see ${Wi})`)}return t===e}const qx=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:\/?#]*(?:[\/?#]|$))/i;var Nd=function(n){return n[n.NONE=0]="NONE",n[n.HTML=1]="HTML",n[n.STYLE=2]="STYLE",n[n.SCRIPT=3]="SCRIPT",n[n.URL=4]="URL",n[n.RESOURCE_URL=5]="RESOURCE_URL",n}(Nd||{});function K1(n){const e=Rv();return e?e.sanitize(Nd.URL,n)||"":ec(n,"URL")?Sa(n):function Tv(n){return(n=String(n)).match(qx)?n:"unsafe:"+n}(go(n))}function jx(n){const e=Rv();if(e)return d0(e.sanitize(Nd.RESOURCE_URL,n)||"");if(ec(n,"ResourceURL"))return d0(Sa(n));throw new Ln(904,!1)}function Rv(){const n=Zi();return n&&n[Uh].sanitizer}const HB=/^>|^->||--!>|)/g,kv="\u200b$1\u200b";function wh(n){return n instanceof Function?n():n}var u0=function(n){return n[n.Important=1]="Important",n[n.DashCase=2]="DashCase",n}(u0||{});let rM;function Lv(n,e){return rM(n,e)}function nm(n,e,t,i,r){if(null!=i){let s,o=!1;dl(i)?s=i:Fc(i)&&(o=!0,i=i[Tl]);const l=oa(i);0===n&&null!==t?null==r?BT(e,t,l):C_(e,t,l,r||null,!0):1===n&&null!==t?C_(e,t,l,r||null,!0):2===n?function oy(n,e,t){const i=ry(n,e);i&&function lM(n,e,t,i){n.removeChild(e,t,i)}(n,i,e,t)}(e,l,o):3===n&&e.destroyNode(l),null!=s&&function FT(n,e,t,i,r){const s=t[su];s!==oa(t)&&nm(e,n,i,s,r);for(let l=Ia;le.replace(VB,kv))}(e))}function Nv(n,e,t){return n.createElement(e,t)}function TT(n,e){e[Uh].changeDetectionScheduler?.notify(1),qv(n,e,e[Mo],2,null,null)}function oM(n,e){const t=n[cs],i=t.indexOf(e);t.splice(i,1)}function $A(n,e){if(n.length<=Ia)return;const t=Ia+e,i=n[t];if(i){const r=i[Rl];null!==r&&r!==n&&oM(r,i),e>0&&(n[t-1][Kd]=i[Kd]);const s=Qf(n,Ia+e);!function Xx(n,e){TT(n,e),e[Tl]=null,e[oc]=null}(i[Gr],i);const o=s[bc];null!==o&&o.detachView(s[Gr]),i[pl]=null,i[Kd]=null,i[so]&=-129}return i}function iy(n,e){if(!(256&e[so])){const t=e[Mo];t.destroyNode&&qv(n,e,t,3,null,null),function Uv(n){let e=n[kp];if(!e)return aM(n[Gr],n);for(;e;){let t=null;if(Fc(e))t=e[kp];else{const i=e[Ia];i&&(t=i)}if(!t){for(;e&&!e[Kd]&&e!==n;)Fc(e)&&aM(e[Gr],e),e=e[pl];null===e&&(e=n),Fc(e)&&aM(e[Gr],e),t=e&&e[Kd]}e=t}}(e)}}function aM(n,e){if(256&e[so])return;const t=Ye(null);try{e[so]&=-129,e[so]|=256,e[Dl]&&function $(n){if(v(n),_(n))for(let e=0;e=0?i[o]():i[-o].unsubscribe(),s+=2}else t[s].call(i[t[s+1]]);null!==i&&(e[nf]=null);const r=e[ac];if(null!==r){e[ac]=null;for(let s=0;s-1){const{encapsulation:s}=n.data[i.directiveStart+r];if(s===Ad.None||s===Ad.Emulated)return null}return Pd(i,t)}}(n,e.parent,t)}function C_(n,e,t,i,r){n.insertBefore(e,t,i,r)}function BT(n,e,t){n.appendChild(e,t)}function Zx(n,e,t,i,r){null!==i?C_(n,e,t,i,r):BT(n,e,t)}function ry(n,e){return n.parentNode(e)}function Hv(n,e,t){return ew(n,e,t)}let Vv,ew=function Jx(n,e,t){return 40&n.type?Pd(n,t):null};function nw(n,e,t,i){const r=Kx(n,i,e),s=e[Mo],l=Hv(i.parent||e[oc],i,e);if(null!=r)if(Array.isArray(t))for(let d=0;dCs&&hp(n,e,Cs,!1),Jd(o?2:0,r),t(i,r)}finally{np(s),Jd(o?3:1,r)}}function Qv(n,e,t){if(SA(e)){const i=Ye(null);try{const s=e.directiveEnd;for(let o=e.directiveStart;onull;function mM(n,e,t,i,r){for(let s in e){if(!e.hasOwnProperty(s))continue;const o=e[s];if(void 0===o)continue;i??={};let l,d=mi.None;Array.isArray(o)?(l=o[0],d=o[1]):l=o;let h=s;if(null!==r){if(!r.hasOwnProperty(s))continue;h=r[s]}0===n?ow(i,t,h,l,d):ow(i,t,h,l)}return i}function ow(n,e,t,i,r){let s;n.hasOwnProperty(t)?(s=n[t]).push(e,i):s=n[t]=[e,i],void 0!==r&&s.push(r)}function Mh(n,e,t,i,r,s,o,l){const d=Pd(e,t);let f,h=e.inputs;!l&&null!=h&&(f=h[i])?(CM(n,t,f,i,r),af(e)&&function aw(n,e){const t=Rd(e,n);16&t[so]||(t[so]|=64)}(t,e.index)):3&e.type&&(i=function KB(n){return"class"===n?"className":"for"===n?"htmlFor":"formaction"===n?"formAction":"innerHtml"===n?"innerHTML":"readonly"===n?"readOnly":"tabindex"===n?"tabIndex":n}(i),r=null!=o?o(r,e.value||"",i):r,s.setProperty(d,i,r))}function lw(n,e,t,i){if(Fm()){const r=null===i?null:{"":-1},s=function QT(n,e){const t=n.directiveRegistry;let i=null,r=null;if(t)for(let s=0;s0;){const t=n[--e];if("number"==typeof t&&t<0)return t}return 0})(o)!=l&&o.push(l),o.push(t,i,s)}}(n,e,i,iw(n,t,r.hostVars,ca),r)}function up(n,e,t,i,r,s){const o=Pd(n,e);!function YA(n,e,t,i,r,s,o){if(null==s)n.removeAttribute(e,r,t);else{const l=null==o?go(s):o(s,i||"",r);n.setAttribute(e,r,l,t)}}(e[Mo],o,s,n.value,t,i,r)}function $T(n,e,t,i,r,s){const o=s[e];if(null!==o)for(let l=0;l0&&(t[r-1][Kd]=e),i!1,producerRecomputeValue:()=>{},consumerMarkedDirty:()=>{},consumerOnSignalRead:()=>{},consumerIsAlwaysLive:!0,consumerMarkedDirty:n=>{Hp(n.lView)},consumerOnSignalRead(){this.lView[Dl]=this}},SM=100;function T_(n,e=!0,t=0){const i=n[Uh],r=i.rendererFactory;r.begin?.();try{!function rP(n,e){mw(n,e);let t=0;for(;Oc(n);){if(t===SM)throw new Ln(103,!1);t++,mw(n,1)}}(n,t)}catch(o){throw e&&dw(n,o),o}finally{r.end?.(),i.inlineEffectRunner?.flush()}}function Ay(n,e,t,i){const r=e[so];if(!(256&~r))return;e[Uh].inlineEffectRunner?.flush(),Wg(e);let o=null,l=null;(function fw(n){return 2!==n.type})(n)&&(l=function nP(n){return n[Dl]??function iP(n){const e=KT.pop()??Object.create(my);return e.lView=n,e}(n)}(e),o=function me(n){return n&&(n.nextProducerIndex=0),Ye(n)}(l));try{x1(e),function J0(n){return Gs.lFrame.bindingIndex=n}(n.bindingStartIndex),null!==t&&UT(n,e,t,2,i);const d=!(3&~r);if(d){const A=n.preOrderCheckHooks;null!==A&&fu(e,A,null)}else{const A=n.preOrderHooks;null!==A&&pu(e,A,0,null),Qp(e,0)}if(function sP(n){for(let e=hl(n);null!==e;e=Kc(e)){if(!(e[so]&X0.HasTransplantedViews))continue;const t=e[cs];for(let i=0;in.nextProducerIndex;)n.producerNode.pop(),n.producerLastReadVersion.pop(),n.producerIndexOfThis.pop()}}(l,o),function Km(n){n.lView[Dl]!==n&&(n.lView=null,KT.push(n))}(l)),l_()}}function ZT(n,e){for(let t=hl(n);null!==t;t=Kc(t))for(let i=Ia;i-1&&($A(e,i),Qf(t,i))}this._attachedToViewContainer=!1}iy(this._lView[Gr],this._lView)}onDestroy(e){tp(this._lView,e)}markForCheck(){Jv(this._cdRefInjectingView||this._lView)}detach(){this._lView[so]&=-129}reattach(){pf(this._lView),this._lView[so]|=128}detectChanges(){this._lView[so]|=1024,T_(this._lView,this.notifyErrorHandler)}checkNoChanges(){}attachToViewContainerRef(){if(this._appRef)throw new Ln(902,!1);this._attachedToViewContainer=!0}detachFromAppRef(){this._appRef=null,TT(this._lView[Gr],this._lView)}attachToAppRef(e){if(this._attachedToViewContainer)throw new Ln(902,!1);this._appRef=e,pf(this._lView)}}let Ud=(()=>{class n{static#e=this.__NG_ELEMENT_ID__=CN}return n})();const e3=Ud,t3=class extends e3{constructor(e,t,i){super(),this._declarationLView=e,this._declarationTContainer=t,this.elementRef=i}get ssrId(){return this._declarationTContainer.tView?.ssrId||null}createEmbeddedView(e,t){return this.createEmbeddedViewImpl(e,t)}createEmbeddedViewImpl(e,t,i){const r=Xv(this._declarationLView,this._declarationTContainer,e,{embeddedViewInjector:t,dehydratedView:i});return new Aw(r)}};function CN(){return D_(Ha(),Zi())}function D_(n,e){return 4&n.type?new t3(e,n,qm(n,e)):null}let rb=()=>null;function vy(n,e){return rb(n,e)}class sb{}class ob{}class m3{}class _P{resolveComponentFactory(e){throw function AP(n){const e=Error(`No component factory found for ${ut(n)}.`);return e.ngComponent=n,e}(e)}}let m0=(()=>{class n{static#e=this.NULL=new _P}return n})();class OM{}let ZA=(()=>{class n{constructor(){this.destroyNode=null}static#e=this.__NG_ELEMENT_ID__=()=>function yP(){const n=Zi(),t=Rd(Ha().index,n);return(Fc(t)?t:n)[Mo]}()}return n})(),DN=(()=>{class n{static#e=this.\u0275prov=Gi({token:n,providedIn:"root",factory:()=>null})}return n})();const LM={},g3=new Set;function im(n){g3.has(n)||(g3.add(n),performance?.mark?.("mark_feature_usage",{detail:{feature:n}}))}function B_(...n){}class io{constructor({enableLongStackTrace:e=!1,shouldCoalesceEventChangeDetection:t=!1,shouldCoalesceRunChangeDetection:i=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new Ls(!1),this.onMicrotaskEmpty=new Ls(!1),this.onStable=new Ls(!1),this.onError=new Ls(!1),typeof Zone>"u")throw new Ln(908,!1);Zone.assertZonePatched();const r=this;r._nesting=0,r._outer=r._inner=Zone.current,Zone.TaskTrackingZoneSpec&&(r._inner=r._inner.fork(new Zone.TaskTrackingZoneSpec)),e&&Zone.longStackTraceZoneSpec&&(r._inner=r._inner.fork(Zone.longStackTraceZoneSpec)),r.shouldCoalesceEventChangeDetection=!i&&t,r.shouldCoalesceRunChangeDetection=i,r.lastRequestAnimationFrameId=-1,r.nativeRequestAnimationFrame=function _3(){const n="function"==typeof wn.requestAnimationFrame;let e=wn[n?"requestAnimationFrame":"setTimeout"],t=wn[n?"cancelAnimationFrame":"clearTimeout"];if(typeof Zone<"u"&&e&&t){const i=e[Zone.__symbol__("OriginalDelegate")];i&&(e=i);const r=t[Zone.__symbol__("OriginalDelegate")];r&&(t=r)}return{nativeRequestAnimationFrame:e,nativeCancelAnimationFrame:t}}().nativeRequestAnimationFrame,function a(n){const e=()=>{!function w(n){n.isCheckStableRunning||-1!==n.lastRequestAnimationFrameId||(n.lastRequestAnimationFrameId=n.nativeRequestAnimationFrame.call(wn,()=>{n.fakeTopEventTask||(n.fakeTopEventTask=Zone.root.scheduleEventTask("fakeTopEventTask",()=>{n.lastRequestAnimationFrameId=-1,c(n),n.isCheckStableRunning=!0,NM(n),n.isCheckStableRunning=!1},void 0,()=>{},()=>{})),n.fakeTopEventTask.invoke()}),c(n))}(n)};n._inner=n._inner.fork({name:"angular",properties:{isAngularZone:!0},onInvokeTask:(t,i,r,s,o,l)=>{if(function N(n){return!(!Array.isArray(n)||1!==n.length)&&!0===n[0].data?.__ignore_ng_zone__}(l))return t.invokeTask(r,s,o,l);try{return u(n),t.invokeTask(r,s,o,l)}finally{(n.shouldCoalesceEventChangeDetection&&"eventTask"===s.type||n.shouldCoalesceRunChangeDetection)&&e(),m(n)}},onInvoke:(t,i,r,s,o,l,d)=>{try{return u(n),t.invoke(r,s,o,l,d)}finally{n.shouldCoalesceRunChangeDetection&&e(),m(n)}},onHasTask:(t,i,r,s)=>{t.hasTask(r,s),i===r&&("microTask"==s.change?(n._hasPendingMicrotasks=s.microTask,c(n),NM(n)):"macroTask"==s.change&&(n.hasPendingMacrotasks=s.macroTask))},onHandleError:(t,i,r,s)=>(t.handleError(r,s),n.runOutsideAngular(()=>n.onError.emit(s)),!1)})}(r)}static isInAngularZone(){return typeof Zone<"u"&&!0===Zone.current.get("isAngularZone")}static assertInAngularZone(){if(!io.isInAngularZone())throw new Ln(909,!1)}static assertNotInAngularZone(){if(io.isInAngularZone())throw new Ln(909,!1)}run(e,t,i){return this._inner.run(e,t,i)}runTask(e,t,i,r){const s=this._inner,o=s.scheduleEventTask("NgZoneEvent: "+r,e,bP,B_,B_);try{return s.runTask(o,t,i)}finally{s.cancelTask(o)}}runGuarded(e,t,i){return this._inner.runGuarded(e,t,i)}runOutsideAngular(e){return this._outer.run(e)}}const bP={};function NM(n){if(0==n._nesting&&!n.hasPendingMicrotasks&&!n.isStable)try{n._nesting++,n.onMicrotaskEmpty.emit(null)}finally{if(n._nesting--,!n.hasPendingMicrotasks)try{n.runOutsideAngular(()=>n.onStable.emit(null))}finally{n.isStable=!0}}}function c(n){n.hasPendingMicrotasks=!!(n._hasPendingMicrotasks||(n.shouldCoalesceEventChangeDetection||n.shouldCoalesceRunChangeDetection)&&-1!==n.lastRequestAnimationFrameId)}function u(n){n._nesting++,n.isStable&&(n.isStable=!1,n.onUnstable.emit(null))}function m(n){n._nesting--,NM(n)}class M{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new Ls,this.onMicrotaskEmpty=new Ls,this.onStable=new Ls,this.onError=new Ls}run(e,t,i){return e.apply(t,i)}runGuarded(e,t,i){return e.apply(t,i)}runOutsideAngular(e){return e()}runTask(e,t,i,r){return e.apply(t,i)}}var de=function(n){return n[n.EarlyRead=0]="EarlyRead",n[n.Write=1]="Write",n[n.MixedReadWrite=2]="MixedReadWrite",n[n.Read=3]="Read",n}(de||{});const pe={destroy(){}};function Be(n,e){!e&&function j0(n){if(!Pp())throw new Ln(-203,!1)}();const t=e?.injector??pi(ml);if(!function h0(n){return"browser"===(n??pi(ml)).get(Kp)}(t))return pe;im("NgAfterNextRender");const i=t.get(ft),r=i.handler??=new Ke,s=e?.phase??de.MixedReadWrite,o=()=>{r.unregister(d),l()},l=t.get(Uc).onDestroy(o),d=El(t,()=>new Le(s,()=>{o(),n()}));return r.register(d),{destroy:o}}class Le{constructor(e,t){this.phase=e,this.callbackFn=t,this.zone=pi(io),this.errorHandler=pi(xl,{optional:!0}),pi(sb,{optional:!0})?.notify(1)}invoke(){try{this.zone.runOutsideAngular(this.callbackFn)}catch(e){this.errorHandler?.handleError(e)}}}class Ke{constructor(){this.executingCallbacks=!1,this.buckets={[de.EarlyRead]:new Set,[de.Write]:new Set,[de.MixedReadWrite]:new Set,[de.Read]:new Set},this.deferredCallbacks=new Set}register(e){(this.executingCallbacks?this.deferredCallbacks:this.buckets[e.phase]).add(e)}unregister(e){this.buckets[e.phase].delete(e),this.deferredCallbacks.delete(e)}execute(){this.executingCallbacks=!0;for(const e of Object.values(this.buckets))for(const t of e)t.invoke();this.executingCallbacks=!1;for(const e of this.deferredCallbacks)this.buckets[e.phase].add(e);this.deferredCallbacks.clear()}destroy(){for(const e of Object.values(this.buckets))e.clear();this.deferredCallbacks.clear()}}let ft=(()=>{class n{constructor(){this.handler=null,this.internalCallbacks=[]}execute(){this.executeInternalCallbacks(),this.handler?.execute()}executeInternalCallbacks(){const t=[...this.internalCallbacks];this.internalCallbacks.length=0;for(const i of t)i()}ngOnDestroy(){this.handler?.destroy(),this.handler=null,this.internalCallbacks.length=0}static#e=this.\u0275prov=Gi({token:n,providedIn:"root",factory:()=>new n})}return n})();function Ti(n,e,t){let i=t?n.styles:null,r=t?n.classes:null,s=0;if(null!==e)for(let o=0;o0&&uM(n,t,s.join(" "))}}(R,yt,re,i),void 0!==t&&function xs(n,e,t){const i=n.projection=[];for(let r=0;r{class n{static#e=this.__NG_ELEMENT_ID__=eo}return n})();function eo(){return _n(Ha(),Zi())}const er=fs,Or=class extends er{constructor(e,t,i){super(),this._lContainer=e,this._hostTNode=t,this._hostLView=i}get element(){return qm(this._hostTNode,this._hostLView)}get injector(){return new cc(this._hostTNode,this._hostLView)}get parentInjector(){const e=f_(this._hostTNode,this._hostLView);if(Kg(e)){const t=Zg(e,this._hostLView),i=NA(e);return new cc(t[Gr].data[i+8],t)}return new cc(null,this._hostLView)}clear(){for(;this.length>0;)this.remove(this.length-1)}get(e){const t=yr(this._lContainer);return null!==t&&t[e]||null}get length(){return this._lContainer.length-Ia}createEmbeddedView(e,t,i){let r,s;"number"==typeof i?r=i:null!=i&&(r=i.index,s=i.injector);const o=vy(this._lContainer,e.ssrId),l=e.createEmbeddedViewImpl(t||{},s,o);return this.insertImpl(l,r,fy(this._hostTNode,o)),l}createComponent(e,t,i,r,s){const o=e&&!function Og(n){return"function"==typeof n}(e);let l;if(o)l=t;else{const G=t||{};l=G.index,i=G.injector,r=G.projectableNodes,s=G.environmentInjector||G.ngModuleRef}const d=o?e:new Oi(Wo(e)),h=i||this.parentInjector;if(!s&&null==d.ngModule){const re=(o?h:this.parentInjector).get(Rc,null);re&&(s=re)}const f=Wo(d.componentType??{}),A=vy(this._lContainer,f?.id??null),R=d.create(h,r,A?.firstChild??null,s);return this.insertImpl(R.hostView,l,fy(this._hostTNode,A)),R}insert(e,t){return this.insertImpl(e,t,!0)}insertImpl(e,t,i){const r=e._lView;if(function ff(n){return dl(n[pl])}(r)){const l=this.indexOf(e);if(-1!==l)this.detach(l);else{const d=r[pl],h=new Or(d,d[oc],d[pl]);h.detach(h.indexOf(e))}}const s=this._adjustIndex(t),o=this._lContainer;return Kv(o,r,s,i),e.attachToViewContainerRef(),Eg(vr(o),s,e),e}move(e,t){return this.insert(e,t)}indexOf(e){const t=yr(this._lContainer);return null!==t?t.indexOf(e):-1}remove(e){const t=this._adjustIndex(e,-1),i=$A(this._lContainer,t);i&&(Qf(vr(this._lContainer),t),iy(i[Gr],i))}detach(e){const t=this._adjustIndex(e,-1),i=$A(this._lContainer,t);return i&&null!=Qf(vr(this._lContainer),t)?new Aw(i):null}_adjustIndex(e,t=0){return e??this.length+t}};function yr(n){return n[8]}function vr(n){return n[8]||(n[8]=[])}function _n(n,e){let t;const i=e[n.index];return dl(i)?t=i:(t=vM(i,e,null,n),e[n.index]=t,hy(e,t)),si(t,e,n,i),new Or(t,n,e)}let si=function Jr(n,e,t,i){if(n[su])return;let r;r=8&t.type?oa(i):function Ki(n,e){const t=n[Mo],i=t.createComment(""),r=Pd(e,n);return C_(t,ry(t,r),i,function XB(n,e){return n.nextSibling(e)}(t,r),!1),i}(e,t),n[su]=r},Ri=()=>!1;class co{constructor(e){this.queryList=e,this.matches=null}clone(){return new co(this.queryList)}setDirty(){this.queryList.setDirty()}}class _s{constructor(e=[]){this.queries=e}createEmbeddedView(e){const t=e.queries;if(null!==t){const i=null!==e.contentQueries?e.contentQueries[0]:t.length,r=[];for(let s=0;se.trim())}(e):e}}class Pt{constructor(e=[]){this.queries=e}elementStart(e,t){for(let i=0;i0)i.push(o[l/2]);else{const h=s[l+1],f=e[-d];for(let A=Ia;A=0;i--){const r=n[i];r.hostVars=e+=r.hostVars,r.hostAttrs=Mp(r.hostAttrs,t=Mp(t,r.hostAttrs))}}(i)}function x3(n,e){for(const t in e.inputs){if(!e.inputs.hasOwnProperty(t)||n.inputs.hasOwnProperty(t))continue;const i=e.inputs[t];if(void 0!==i&&(n.inputs[t]=i,n.declaredInputs[t]=e.declaredInputs[t],null!==e.inputTransforms)){const r=Array.isArray(i)?i[0]:i;if(!e.inputTransforms.hasOwnProperty(r))continue;n.inputTransforms??={},n.inputTransforms[r]=e.inputTransforms[r]}}}function w3(n){return n===xu?{}:n===za?[]:n}function LX(n,e){const t=n.viewQuery;n.viewQuery=t?(i,r)=>{e(i,r),t(i,r)}:e}function NX(n,e){const t=n.contentQueries;n.contentQueries=t?(i,r,s)=>{e(i,r,s),t(i,r,s)}:e}function UX(n,e){const t=n.hostBindings;n.hostBindings=t?(i,r)=>{e(i,r),t(i,r)}:e}function ql(n){const e=n.inputConfig,t={};for(const i in e)if(e.hasOwnProperty(i)){const r=e[i];Array.isArray(r)&&r[3]&&(t[i]=r[3])}n.inputTransforms=t}class cb{}class FN{}class SP extends cb{constructor(e,t,i){super(),this._parent=t,this._bootstrapComponents=[],this.destroyCbs=[],this.componentFactoryResolver=new hr(this);const r=Bc(e);this._bootstrapComponents=wh(r.bootstrap),this._r3Injector=_f(e,t,[{provide:cb,useValue:this},{provide:m0,useValue:this.componentFactoryResolver},...i],ut(e),new Set(["environment"])),this._r3Injector.resolveInjectorInitializers(),this.instance=this._r3Injector.get(e)}get injector(){return this._r3Injector}destroy(){const e=this._r3Injector;!e.destroyed&&e.destroy(),this.destroyCbs.forEach(t=>t()),this.destroyCbs=null}onDestroy(e){this.destroyCbs.push(e)}}class EP extends FN{constructor(e){super(),this.moduleType=e}create(e){return new SP(this.moduleType,e,[])}}class ON extends cb{constructor(e){super(),this.componentFactoryResolver=new hr(this),this.instance=null;const t=new jc([...e.providers,{provide:cb,useValue:this},{provide:m0,useValue:this.componentFactoryResolver}],e.parent||bo(),e.debugName,new Set(["environment"]));this.injector=t,e.runEnvironmentInitializers&&t.resolveInjectorInitializers()}destroy(){this.injector.destroy()}onDestroy(e){this.injector.onDestroy(e)}}function C3(n,e,t=null){return new ON({providers:n,parent:e,debugName:t,runEnvironmentInitializers:!0}).injector}let by=(()=>{class n{constructor(){this.taskId=0,this.pendingTasks=new Set,this.hasPendingTasks=new cn(!1)}get _hasPendingTasks(){return this.hasPendingTasks.value}add(){this._hasPendingTasks||this.hasPendingTasks.next(!0);const t=this.taskId++;return this.pendingTasks.add(t),t}remove(t){this.pendingTasks.delete(t),0===this.pendingTasks.size&&this._hasPendingTasks&&this.hasPendingTasks.next(!1)}ngOnDestroy(){this.pendingTasks.clear(),this._hasPendingTasks&&this.hasPendingTasks.next(!1)}static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();function S3(n){return!!TP(n)&&(Array.isArray(n)||!(n instanceof Map)&&Symbol.iterator in n)}function TP(n){return null!==n&&("function"==typeof n||"object"==typeof n)}function g0(n,e,t){return n[e]=t}function Hd(n,e,t){return!Object.is(n[e],t)&&(n[e]=t,!0)}function db(n,e,t,i){const r=Hd(n,e,t);return Hd(n,e+1,i)||r}function zs(n,e,t,i,r,s,o,l){const d=Zi(),h=wa(),f=n+Cs,A=h.firstCreatePass?function ZX(n,e,t,i,r,s,o,l,d){const h=e.consts,f=XA(e,n,4,o||null,Hh(h,l));lw(e,t,f,Hh(h,d)),Af(e,f);const A=f.tView=E_(2,f,i,r,s,e.directiveRegistry,e.pipeRegistry,null,e.schemas,h,null);return null!==e.queries&&(e.queries.template(e,f),A.queries=e.queries.embeddedTView(f)),f}(f,h,d,e,t,i,r,s,o):h.data[f];du(A,!1);const S=LN(h,d,A,n);Nm()&&nw(h,d,S,A),zr(S,d);const R=vM(S,d,S,A);return d[f]=R,hy(d,R),function Ii(n,e,t){return Ri(n,e,t)}(R,A,d),zl(A)&&Ch(h,d,A),null!=o&&p0(d,A,l),zs}let LN=function NN(n,e,t,i){return Za(!0),e[Mo].createComment("")};function sl(n,e,t,i){const r=Zi();return Hd(r,uu(),e)&&(wa(),up(gl(),r,n,e,t,i)),sl}function Iw(n,e,t,i,r,s){const l=db(n,function hu(){return Gs.lFrame.bindingIndex}(),t,r);return mf(2),l?e+go(t)+i+go(r)+s:ca}function Lw(n,e,t,i,r,s,o,l){const d=Zi(),h=Iw(d,e,t,i,r,s);return h!==ca&&up(gl(),d,n,h,o,l),Lw}function R3(n,e){return n<<17|e<<2}function wy(n){return n>>17&32767}function NP(n){return 2|n}function ub(n){return(131068&n)>>2}function UP(n,e){return-131069&n|e<<2}function zP(n){return 1|n}function p8(n,e,t,i){const r=n[t+1],s=null===e;let o=i?wy(r):ub(r),l=!1;for(;0!==o&&(!1===l||s);){const h=n[o+1];OY(n[o],e)&&(l=!0,n[o+1]=i?zP(h):NP(h)),o=i?wy(h):ub(h)}l&&(n[t+1]=i?NP(r):zP(r))}function OY(n,e){return null===n||null==e||(Array.isArray(n)?n[1]:n)===e||!(!Array.isArray(n)||"string"!=typeof e)&&vl(n,e)>=0}const Sh={textEnd:0,key:0,keyEnd:0,value:0,valueEnd:0};function m8(n){return n.substring(Sh.key,Sh.keyEnd)}function LY(n){return n.substring(Sh.value,Sh.valueEnd)}function A8(n,e){const t=Sh.textEnd;return t===e?-1:(e=Sh.keyEnd=function zY(n,e,t){for(;e32;)e++;return e}(n,Sh.key=e,t),Nw(n,e,t))}function g8(n,e){const t=Sh.textEnd;let i=Sh.key=Nw(n,e,t);return t===i?-1:(i=Sh.keyEnd=function HY(n,e,t){let i;for(;e=65&&(-33&i)<=90||i>=48&&i<=57);)e++;return e}(n,i,t),i=y8(n,i,t),i=Sh.value=Nw(n,i,t),i=Sh.valueEnd=function VY(n,e,t){let i=-1,r=-1,s=-1,o=e,l=o;for(;o32&&(l=o),s=r,r=i,i=-33&d}return l}(n,i,t),y8(n,i,t))}function _8(n){Sh.key=0,Sh.keyEnd=0,Sh.value=0,Sh.valueEnd=0,Sh.textEnd=n.length}function Nw(n,e,t){for(;e=0;t=g8(e,t))w8(n,m8(e),LY(e))}function P_(n){ng(XY,_0,n,!0)}function _0(n,e){for(let t=function NY(n){return _8(n),A8(n,Nw(n,0,Sh.textEnd))}(e);t>=0;t=A8(e,t))Yl(n,m8(e),!0)}function tg(n,e,t,i){const r=Zi(),s=wa(),o=mf(2);s.firstUpdatePass&&x8(s,n,o,i),e!==ca&&Hd(r,o,e)&&C8(s,s.data[Lc()],r,r[Mo],n,r[o+1]=function KY(n,e){return null==n||""===n||("string"==typeof e?n+=e:"object"==typeof n&&(n=ut(Sa(n)))),n}(e,t),i,o)}function ng(n,e,t,i){const r=wa(),s=mf(2);r.firstUpdatePass&&x8(r,null,s,i);const o=Zi();if(t!==ca&&Hd(o,s,t)){const l=r.data[Lc()];if(S8(l,i)&&!b8(r,s)){let d=i?l.classesWithoutHost:l.stylesWithoutHost;null!==d&&(t=Qt(d,t||"")),HP(r,l,o,t,i)}else!function YY(n,e,t,i,r,s,o,l){r===ca&&(r=za);let d=0,h=0,f=0=n.expandoStartIndex}function x8(n,e,t,i){const r=n.data;if(null===r[t+1]){const s=r[Lc()],o=b8(n,t);S8(s,i)&&null===e&&!o&&(e=!1),e=function qY(n,e,t,i){const r=function i_(n){const e=Gs.lFrame.currentDirectiveIndex;return-1===e?null:n[e]}(n);let s=i?e.residualClasses:e.residualStyles;if(null===r)0===(i?e.classBindings:e.styleBindings)&&(t=XM(t=VP(null,n,e,t,i),e.attrs,i),s=null);else{const o=e.directiveStylingLast;if(-1===o||n[o]!==r)if(t=VP(r,n,e,t,i),null===s){let d=function QY(n,e,t){const i=t?e.classBindings:e.styleBindings;if(0!==ub(i))return n[wy(i)]}(n,e,i);void 0!==d&&Array.isArray(d)&&(d=VP(null,n,e,d[1],i),d=XM(d,e.attrs,i),function WY(n,e,t,i){n[wy(t?e.classBindings:e.styleBindings)]=i}(n,e,i,d))}else s=function jY(n,e,t){let i;const r=e.directiveEnd;for(let s=1+e.directiveStylingLast;s0)&&(h=!0)):f=t,r)if(0!==d){const S=wy(n[l+1]);n[i+1]=R3(S,l),0!==S&&(n[S+1]=UP(n[S+1],i)),n[l+1]=function PY(n,e){return 131071&n|e<<17}(n[l+1],i)}else n[i+1]=R3(l,0),0!==l&&(n[l+1]=UP(n[l+1],i)),l=i;else n[i+1]=R3(d,0),0===l?l=i:n[d+1]=UP(n[d+1],i),d=i;h&&(n[i+1]=NP(n[i+1])),p8(n,f,i,!0),p8(n,f,i,!1),function FY(n,e,t,i,r){const s=r?n.residualClasses:n.residualStyles;null!=s&&"string"==typeof e&&vl(s,e)>=0&&(t[i+1]=zP(t[i+1]))}(e,f,n,i,s),o=R3(l,d),s?e.classBindings=o:e.styleBindings=o}(r,s,e,t,o,i)}}function VP(n,e,t,i,r){let s=null;const o=t.directiveEnd;let l=t.directiveStylingLast;for(-1===l?l=t.directiveStart:l++;l0;){const d=n[r],h=Array.isArray(d),f=h?d[1]:d,A=null===f;let S=t[r+1];S===ca&&(S=A?za:void 0);let R=A?Xd(S,i):f===i?S:void 0;if(h&&!k3(R)&&(R=Xd(d,i)),k3(R)&&(l=R,o))return l;const G=n[r+1];r=o?wy(G):ub(G)}if(null!==e){let d=s?e.residualClasses:e.residualStyles;null!=d&&(l=Xd(d,i))}return l}function k3(n){return void 0!==n}function S8(n,e){return!!(n.flags&(e?8:16))}class lK{destroy(e){}updateValue(e,t){}swap(e,t){const i=Math.min(e,t),r=Math.max(e,t),s=this.detach(r);if(r-i>1){const o=this.detach(i);this.attach(i,s),this.attach(r,o)}else this.attach(i,s)}move(e,t){this.attach(t,this.detach(e))}}function GP(n,e,t,i,r){return n===t&&Object.is(e,i)?1:Object.is(r(n,e),r(t,i))?-1:0}function qP(n,e,t,i){return!(void 0===e||!e.has(i)||(n.attach(t,e.get(i)),e.delete(i),0))}function E8(n,e,t,i,r){if(qP(n,e,i,t(i,r)))n.updateValue(i,r);else{const s=n.create(i,r);n.attach(i,s)}}function T8(n,e,t,i){const r=new Set;for(let s=e;s<=t;s++)r.add(i(s,n.at(s)));return r}class D8{constructor(){this.kvMap=new Map,this._vMap=void 0}has(e){return this.kvMap.has(e)}delete(e){if(!this.has(e))return!1;const t=this.kvMap.get(e);return void 0!==this._vMap&&this._vMap.has(t)?(this.kvMap.set(e,this._vMap.get(t)),this._vMap.delete(t)):this.kvMap.delete(e),!0}get(e){return this.kvMap.get(e)}set(e,t){if(this.kvMap.has(e)){let i=this.kvMap.get(e);void 0===this._vMap&&(this._vMap=new Map);const r=this._vMap;for(;r.has(i);)i=r.get(i);r.set(i,t)}else this.kvMap.set(e,t)}forEach(e){for(let[t,i]of this.kvMap)if(e(i,t),void 0!==this._vMap){const r=this._vMap;for(;r.has(i);)i=r.get(i),e(i,t)}}}function R_(n,e,t){im("NgControlFlow");const i=Zi(),r=uu(),s=QP(i,Cs+n);if(Hd(i,r,e)){const l=Ye(null);try{if(hw(s,0),-1!==e){const d=WP(i[Gr],Cs+e),h=vy(s,d.tView.ssrId);Kv(s,Xv(i,d,t,{dehydratedView:h}),0,fy(d,h))}}finally{Ye(l)}}else{const l=Yv(s,0);void 0!==l&&(l[Ka]=t)}}class dK{constructor(e,t,i){this.lContainer=e,this.$implicit=t,this.$index=i}get $count(){return this.lContainer.length-Ia}}function F3(n,e){return e}class uK{constructor(e,t,i){this.hasEmptyBlock=e,this.trackByFn=t,this.liveCollection=i}}class fK extends lK{constructor(e,t,i){super(),this.lContainer=e,this.hostLView=t,this.templateTNode=i,this.needsIndexUpdate=!1}get length(){return this.lContainer.length-Ia}at(e){return this.getLView(e)[Ka].$implicit}attach(e,t){const i=t[Ul];this.needsIndexUpdate||=e!==this.length,Kv(this.lContainer,t,e,fy(this.templateTNode,i))}detach(e){return this.needsIndexUpdate||=e!==this.length-1,function pK(n,e){return $A(n,e)}(this.lContainer,e)}create(e,t){const i=vy(this.lContainer,this.templateTNode.tView.ssrId);return Xv(this.hostLView,this.templateTNode,new dK(this.lContainer,t,e),{dehydratedView:i})}destroy(e){iy(e[Gr],e)}updateValue(e,t){this.getLView(e)[Ka].$implicit=t}reset(){this.needsIndexUpdate=!1}updateIndexes(){if(this.needsIndexUpdate)for(let e=0;e(Za(!0),Nv(i,r,function P1(){return Gs.lFrame.currentNamespace}()));function ig(n,e,t){const i=Zi(),r=wa(),s=n+Cs,o=r.firstCreatePass?function yK(n,e,t,i,r){const s=e.consts,o=Hh(s,i),l=XA(e,n,8,"ng-container",o);return null!==o&&Ti(l,o,!0),lw(e,t,l,Hh(s,r)),null!==e.queries&&e.queries.elementStart(e,l),l}(s,r,i,e,t):r.data[s];du(o,!0);const l=B8(r,i,o,n);return i[s]=l,Nm()&&nw(r,i,l,o),zr(l,i),zl(o)&&(Ch(r,i,o),Qv(r,o,i)),null!=t&&p0(i,o),ig}function rg(){let n=Ha();const e=wa();return FA()?Gg():(n=n.parent,du(n,!1)),e.firstCreatePass&&(Af(e,n),SA(n)&&e.queries.elementEnd(n)),rg}function Uw(n,e,t){return ig(n,e,t),rg(),Uw}let B8=(n,e,t,i)=>(Za(!0),ny(e[Mo],""));function ta(){return Zi()}function zw(n,e,t){const i=Zi();return Hd(i,uu(),e)&&Mh(wa(),gl(),i,n,e,i[Mo],t,!0),zw}const fb=void 0;var wK=["en",[["a","p"],["AM","PM"],fb],[["AM","PM"],fb,fb],[["S","M","T","W","T","F","S"],["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],["Su","Mo","Tu","We","Th","Fr","Sa"]],fb,[["J","F","M","A","M","J","J","A","S","O","N","D"],["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],["January","February","March","April","May","June","July","August","September","October","November","December"]],fb,[["B","A"],["BC","AD"],["Before Christ","Anno Domini"]],0,[6,0],["M/d/yy","MMM d, y","MMMM d, y","EEEE, MMMM d, y"],["h:mm a","h:mm:ss a","h:mm:ss a z","h:mm:ss a zzzz"],["{1}, {0}",fb,"{1} 'at' {0}",fb],[".",",",";","%","+","-","E","\xd7","\u2030","\u221e","NaN",":"],["#,##0.###","#,##0%","\xa4#,##0.00","#E0"],"USD","$","US Dollar",{},"ltr",function xK(n){const t=Math.floor(Math.abs(n)),i=n.toString().replace(/^[^.]*\.?/,"").length;return 1===t&&0===i?1:5}];let Hw={};function Sf(n){const e=function CK(n){return n.toLowerCase().replace(/_/g,"-")}(n);let t=k8(e);if(t)return t;const i=e.split("-")[0];if(t=k8(i),t)return t;if("en"===i)return wK;throw new Ln(701,!1)}function k8(n){return n in Hw||(Hw[n]=wn.ng&&wn.ng.common&&wn.ng.common.locales&&wn.ng.common.locales[n]),Hw[n]}var Mc=function(n){return n[n.LocaleId=0]="LocaleId",n[n.DayPeriodsFormat=1]="DayPeriodsFormat",n[n.DayPeriodsStandalone=2]="DayPeriodsStandalone",n[n.DaysFormat=3]="DaysFormat",n[n.DaysStandalone=4]="DaysStandalone",n[n.MonthsFormat=5]="MonthsFormat",n[n.MonthsStandalone=6]="MonthsStandalone",n[n.Eras=7]="Eras",n[n.FirstDayOfWeek=8]="FirstDayOfWeek",n[n.WeekendRange=9]="WeekendRange",n[n.DateFormat=10]="DateFormat",n[n.TimeFormat=11]="TimeFormat",n[n.DateTimeFormat=12]="DateTimeFormat",n[n.NumberSymbols=13]="NumberSymbols",n[n.NumberFormats=14]="NumberFormats",n[n.CurrencyCode=15]="CurrencyCode",n[n.CurrencySymbol=16]="CurrencySymbol",n[n.CurrencyName=17]="CurrencyName",n[n.Currencies=18]="Currencies",n[n.Directionality=19]="Directionality",n[n.PluralCase=20]="PluralCase",n[n.ExtraData=21]="ExtraData",n}(Mc||{});const Vw="en-US";let F8=Vw;function Ai(n,e,t,i){const r=Zi(),s=wa(),o=Ha();return XP(s,r,r[Mo],o,n,e,i),Ai}function XP(n,e,t,i,r,s,o){const l=zl(i),h=n.firstCreatePass&&uy(n),f=e[Ka],A=wM(e);let S=!0;if(3&i.type||o){const re=Pd(i,e),se=o?o(re):re,le=A.length,Ee=o?We=>o(oa(We[i.index])):i.index;let Ce=null;if(!o&&l&&(Ce=function vZ(n,e,t,i){const r=n.cleanup;if(null!=r)for(let s=0;sd?l[d]:null}"string"==typeof o&&(s+=2)}return null}(n,e,r,i.index)),null!==Ce)(Ce.__ngLastListenerFn__||Ce).__ngNextListenerFn__=s,Ce.__ngLastListenerFn__=s,S=!1;else{s=c6(i,e,f,s,!1);const We=t.listen(se,r,s);A.push(s,We),h&&h.push(r,Ee,le,le+1)}}else s=c6(i,e,f,s,!1);const R=i.outputs;let G;if(S&&null!==R&&(G=R[r])){const re=G.length;if(re)for(let se=0;se-1?Rd(n.index,e):e);let d=l6(e,t,i,o),h=s.__ngNextListenerFn__;for(;h;)d=l6(e,t,h,o)&&d,h=h.__ngNextListenerFn__;return r&&!1===d&&o.preventDefault(),d}}function Pr(n=1){return function LA(n){return(Gs.lFrame.contextLView=function Z0(n,e){for(;n>0;)e=e[rf],n--;return e}(n,Gs.lFrame.contextLView))[Ka]}(n)}function bZ(n,e){let t=null;const i=function $f(n){const e=n.attrs;if(null!=e){const t=e.indexOf(5);if(!(1&t))return e[t+1]}return null}(n);for(let r=0;r(Za(!0),function sM(n,e){return n.createText(e)}(e[Mo],i));function tA(n){return yl("",n,""),tA}function yl(n,e,t){const i=Zi(),r=function Dw(n,e,t,i){return Hd(n,uu(),t)?e+go(t)+i:ca}(i,n,e,t);return r!==ca&&function KA(n,e,t){const i=BA(e,n);!function Cc(n,e,t){n.setValue(e,t)}(n[Mo],i,t)}(i,Lc(),r),yl}function Gw(n,e,t){xo(e)&&(e=e());const i=Zi();return Hd(i,uu(),e)&&Mh(wa(),gl(),i,n,e,i[Mo],t,!1),Gw}function nS(n,e){const t=xo(n);return t&&n.set(e),t}function qw(n,e){const t=Zi(),i=wa(),r=Ha();return XP(i,t,t[Mo],r,n,e),qw}function KP(n,e,t,i,r){if(n=fn(n),Array.isArray(n))for(let s=0;s>20;if(Ip(n)||!n.multi){const R=new rp(h,r,Lt),G=JP(d,e,r?f:f+S,A);-1===G?(F1(zm(l,o),s,d),ZP(s,n,e.length),e.push(d),l.directiveStart++,l.directiveEnd++,r&&(l.providerIndexes+=1048576),t.push(R),o.push(R)):(t[G]=R,o[G]=R)}else{const R=JP(d,e,f+S,A),G=JP(d,e,f,f+S),se=G>=0&&t[G];if(r&&!se||!r&&!(R>=0&&t[R])){F1(zm(l,o),s,d);const le=function zZ(n,e,t,i,r){const s=new rp(n,t,Lt);return s.multi=[],s.index=e,s.componentProviders=0,L6(s,r,i&&!t),s}(r?UZ:NZ,t.length,r,i,h);!r&&se&&(t[G].providerFactory=le),ZP(s,n,e.length,0),e.push(d),l.directiveStart++,l.directiveEnd++,r&&(l.providerIndexes+=1048576),t.push(le),o.push(le)}else ZP(s,n,R>-1?R:G,L6(t[r?G:R],h,!r&&i));!r&&i&&se&&t[G].componentProviders++}}}function ZP(n,e,t,i){const r=Ip(e),s=function cv(n){return!!n.useClass}(e);if(r||s){const d=(s?fn(e.useClass):e).prototype.ngOnDestroy;if(d){const h=n.destroyHooks||(n.destroyHooks=[]);if(!r&&e.multi){const f=h.indexOf(t);-1===f?h.push(t,[i,d]):h[f+1].push(i,d)}else h.push(t,d)}}}function L6(n,e,t){return t&&n.componentProviders++,n.multi.push(e)-1}function JP(n,e,t,i){for(let r=t;r{t.providersResolver=(i,r)=>function LZ(n,e,t){const i=wa();if(i.firstCreatePass){const r=Hl(n);KP(t,i.data,i.blueprint,r,!0),KP(e,i.data,i.blueprint,r,!1)}}(i,r?r(n):n,e)}}let HZ=(()=>{class n{constructor(t){this._injector=t,this.cachedInjectors=new Map}getOrCreateStandaloneInjector(t){if(!t.standalone)return null;if(!this.cachedInjectors.has(t)){const i=Tp(0,t.type),r=i.length>0?C3([i],this._injector,`Standalone[${t.type.name}]`):null;this.cachedInjectors.set(t,r)}return this.cachedInjectors.get(t)}ngOnDestroy(){try{for(const t of this.cachedInjectors.values())null!==t&&t.destroy()}finally{this.cachedInjectors.clear()}}static#e=this.\u0275prov=Gi({token:n,providedIn:"environment",factory:()=>new n(xi(Rc))})}return n})();function yd(n){im("NgStandalone"),n.getStandaloneInjector=e=>e.get(HZ).getOrCreateStandaloneInjector(n)}function Ou(n,e,t,i){return z6(Zi(),Yc(),n,e,t,i)}function U6(n,e,t,i,r,s){return function V6(n,e,t,i,r,s,o,l){const d=e+t;return function E3(n,e,t,i,r){const s=db(n,e,t,i);return Hd(n,e+2,r)||s}(n,d,r,s,o)?g0(n,d+3,l?i.call(l,r,s,o):i(r,s,o)):iS(n,d+3)}(Zi(),Yc(),n,e,t,i,r,s)}function iS(n,e){const t=n[e];return t===ca?void 0:t}function z6(n,e,t,i,r,s){const o=e+t;return Hd(n,o,r)?g0(n,o+1,s?i.call(s,r):i(r)):iS(n,o+1)}function H6(n,e,t,i,r,s,o){const l=e+t;return db(n,l,r,s)?g0(n,l+2,o?i.call(o,r,s):i(r,s)):iS(n,l+2)}function rS(n,e){const t=wa();let i;const r=n+Cs;t.firstCreatePass?(i=function KZ(n,e){if(e)for(let t=e.length-1;t>=0;t--){const i=e[t];if(n===i.name)return i}}(e,t.pipeRegistry),t.data[r]=i,i.onDestroy&&(t.destroyHooks??=[]).push(r,i.onDestroy)):i=t.data[r];const s=i.factory||(i.factory=md(i.type)),l=jd(Lt);try{const d=h_(!1),h=s();return h_(d),function MZ(n,e,t,i){t>=n.data.length&&(n.data[t]=null,n.blueprint[t]=null),e[t]=i}(t,Zi(),r,h),h}finally{jd(l)}}function G3(n,e,t,i){const r=n+Cs,s=Zi(),o=km(s,r);return sS(s,r)?H6(s,Yc(),e,o.transform,t,i,o):o.transform(t,i)}function sS(n,e){return n[Gr].data[e].pure}function nR(n,e){return D_(n,e)}let aU=(()=>{class n{log(t){console.log(t)}warn(t){console.warn(t)}static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac,providedIn:"platform"})}return n})();const uU=new Bi(""),W3=new Bi("");let dR,lR=(()=>{class n{constructor(t,i,r){this._ngZone=t,this.registry=i,this._pendingCount=0,this._isZoneStable=!0,this._callbacks=[],this.taskTrackingZone=null,dR||(function jJ(n){dR=n}(r),r.addToWindow(i)),this._watchAngularEvents(),t.run(()=>{this.taskTrackingZone=typeof Zone>"u"?null:Zone.current.get("TaskTrackingZone")})}_watchAngularEvents(){this._ngZone.onUnstable.subscribe({next:()=>{this._isZoneStable=!1}}),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.subscribe({next:()=>{io.assertNotInAngularZone(),queueMicrotask(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}})})}increasePendingRequestCount(){return this._pendingCount+=1,this._pendingCount}decreasePendingRequestCount(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error("pending async requests below zero");return this._runCallbacksIfReady(),this._pendingCount}isStable(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())queueMicrotask(()=>{for(;0!==this._callbacks.length;){let t=this._callbacks.pop();clearTimeout(t.timeoutId),t.doneCb()}});else{let t=this.getPendingTasks();this._callbacks=this._callbacks.filter(i=>!i.updateCb||!i.updateCb(t)||(clearTimeout(i.timeoutId),!1))}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(t=>({source:t.source,creationLocation:t.creationLocation,data:t.data})):[]}addCallback(t,i,r){let s=-1;i&&i>0&&(s=setTimeout(()=>{this._callbacks=this._callbacks.filter(o=>o.timeoutId!==s),t()},i)),this._callbacks.push({doneCb:t,timeoutId:s,updateCb:r})}whenStable(t,i,r){if(r&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is "zone.js/plugins/task-tracking" loaded?');this.addCallback(t,i,r),this._runCallbacksIfReady()}getPendingRequestCount(){return this._pendingCount}registerApplication(t){this.registry.registerApplication(t,this)}unregisterApplication(t){this.registry.unregisterApplication(t)}findProviders(t,i,r){return[]}static#e=this.\u0275fac=function(i){return new(i||n)(xi(io),xi(cR),xi(W3))};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac})}return n})(),cR=(()=>{class n{constructor(){this._applications=new Map}registerApplication(t,i){this._applications.set(t,i)}unregisterApplication(t){this._applications.delete(t)}unregisterAllApplications(){this._applications.clear()}getTestability(t){return this._applications.get(t)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(t,i=!0){return dR?.findTestabilityInTree(this,t,i)??null}static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac,providedIn:"platform"})}return n})();function lS(n){return!!n&&"function"==typeof n.then}function fU(n){return!!n&&"function"==typeof n.subscribe}const hR=new Bi("");let uR=(()=>{class n{constructor(){this.initialized=!1,this.done=!1,this.donePromise=new Promise((t,i)=>{this.resolve=t,this.reject=i}),this.appInits=pi(hR,{optional:!0})??[]}runInitializers(){if(this.initialized)return;const t=[];for(const r of this.appInits){const s=r();if(lS(s))t.push(s);else if(fU(s)){const o=new Promise((l,d)=>{s.subscribe({complete:l,error:d})});t.push(o)}}const i=()=>{this.done=!0,this.resolve()};Promise.all(t).then(()=>{i()}).catch(r=>{this.reject(r)}),0===t.length&&i(),this.initialized=!0}static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();const fR=new Bi("");function AU(n,e){return Array.isArray(e)?e.reduce(AU,n):{...n,...e}}let k_=(()=>{class n{constructor(){this._bootstrapListeners=[],this._runningTick=!1,this._destroyed=!1,this._destroyListeners=[],this._views=[],this.internalErrorHandler=pi(n0),this.afterRenderEffectManager=pi(ft),this.externalTestViews=new Set,this.beforeRender=new un,this.afterTick=new un,this.componentTypes=[],this.components=[],this.isStable=pi(by).hasPendingTasks.pipe(bi(t=>!t)),this._injector=pi(Rc)}get destroyed(){return this._destroyed}get injector(){return this._injector}bootstrap(t,i){const r=t instanceof m3;if(!this._injector.get(uR).done)throw!r&&function Sl(n){const e=Wo(n)||rl(n)||bl(n);return null!==e&&e.standalone}(t),new Ln(405,!1);let o;o=r?t:this._injector.get(m0).resolveComponentFactory(t),this.componentTypes.push(o.componentType);const l=function $J(n){return n.isBoundToModule}(o)?void 0:this._injector.get(cb),h=o.create(ml.NULL,[],i||o.selector,l),f=h.location.nativeElement,A=h.injector.get(uU,null);return A?.registerApplication(f),h.onDestroy(()=>{this.detachView(h.hostView),j3(this.components,h),A?.unregisterApplication(f)}),this._loadComponent(h),h}tick(){this._tick(!0)}_tick(t){if(this._runningTick)throw new Ln(101,!1);const i=Ye(null);try{this._runningTick=!0,this.detectChangesInAttachedViews(t)}catch(r){this.internalErrorHandler(r)}finally{this.afterTick.next(),this._runningTick=!1,Ye(i)}}detectChangesInAttachedViews(t){let i=0;const r=this.afterRenderEffectManager;for(;;){if(i===SM)throw new Ln(103,!1);if(t){const s=0===i;this.beforeRender.next(s);for(let{_lView:o,notifyErrorHandler:l}of this._views)YJ(o,s,l)}if(i++,r.executeInternalCallbacks(),![...this.externalTestViews.keys(),...this._views].some(({_lView:s})=>pR(s))&&(r.execute(),![...this.externalTestViews.keys(),...this._views].some(({_lView:s})=>pR(s))))break}}attachView(t){const i=t;this._views.push(i),i.attachToAppRef(this)}detachView(t){const i=t;j3(this._views,i),i.detachFromAppRef()}_loadComponent(t){this.attachView(t.hostView),this.tick(),this.components.push(t);const i=this._injector.get(fR,[]);[...this._bootstrapListeners,...i].forEach(r=>r(t))}ngOnDestroy(){if(!this._destroyed)try{this._destroyListeners.forEach(t=>t()),this._views.slice().forEach(t=>t.destroy())}finally{this._destroyed=!0,this._views=[],this._bootstrapListeners=[],this._destroyListeners=[]}}onDestroy(t){return this._destroyListeners.push(t),()=>j3(this._destroyListeners,t)}destroy(){if(this._destroyed)throw new Ln(406,!1);const t=this._injector;t.destroy&&!t.destroyed&&t.destroy()}get viewCount(){return this._views.length}warnIfDestroyed(){}static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();function j3(n,e){const t=n.indexOf(e);t>-1&&n.splice(t,1)}function YJ(n,e,t){!e&&!pR(n)||function KJ(n,e,t){let i;t?(i=0,n[so]|=1024):i=64&n[so]?0:1,T_(n,e,i)}(n,t,e)}function pR(n){return Oc(n)}class ZJ{constructor(e,t){this.ngModuleFactory=e,this.componentFactories=t}}let gU=(()=>{class n{compileModuleSync(t){return new EP(t)}compileModuleAsync(t){return Promise.resolve(this.compileModuleSync(t))}compileModuleAndAllComponentsSync(t){const i=this.compileModuleSync(t),s=wh(Bc(t).declarations).reduce((o,l)=>{const d=Wo(l);return d&&o.push(new Oi(d)),o},[]);return new ZJ(i,s)}compileModuleAndAllComponentsAsync(t){return Promise.resolve(this.compileModuleAndAllComponentsSync(t))}clearCache(){}clearCacheFor(t){}getModuleId(t){}static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),tee=(()=>{class n{constructor(){this.zone=pi(io),this.applicationRef=pi(k_)}initialize(){this._onMicrotaskEmptySubscription||(this._onMicrotaskEmptySubscription=this.zone.onMicrotaskEmpty.subscribe({next:()=>{this.zone.run(()=>{this.applicationRef.tick()})}}))}ngOnDestroy(){this._onMicrotaskEmptySubscription?.unsubscribe()}static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();function nee(){const n=pi(io),e=pi(xl);return t=>n.runOutsideAngular(()=>e.handleError(t))}let ree=(()=>{class n{constructor(){this.subscription=new rt,this.initialized=!1,this.zone=pi(io),this.pendingTasks=pi(by)}initialize(){if(this.initialized)return;this.initialized=!0;let t=null;!this.zone.isStable&&!this.zone.hasPendingMacrotasks&&!this.zone.hasPendingMicrotasks&&(t=this.pendingTasks.add()),this.zone.runOutsideAngular(()=>{this.subscription.add(this.zone.onStable.subscribe(()=>{io.assertNotInAngularZone(),queueMicrotask(()=>{null!==t&&!this.zone.hasPendingMacrotasks&&!this.zone.hasPendingMicrotasks&&(this.pendingTasks.remove(t),t=null)})}))}),this.subscription.add(this.zone.onUnstable.subscribe(()=>{io.assertInAngularZone(),t??=this.pendingTasks.add()}))}ngOnDestroy(){this.subscription.unsubscribe()}static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();const y0=new Bi("",{providedIn:"root",factory:()=>pi(y0,va.Optional|va.SkipSelf)||function see(){return typeof $localize<"u"&&$localize.locale||Vw}()}),mR=new Bi("");let bU=(()=>{class n{constructor(t){this._injector=t,this._modules=[],this._destroyListeners=[],this._destroyed=!1}bootstrapModuleFactory(t,i){const r=function q(n="zone.js",e){return"noop"===n?new M:"zone.js"===n?new io(e):n}(i?.ngZone,function vU(n){return{enableLongStackTrace:!1,shouldCoalesceEventChangeDetection:n?.eventCoalescing??!1,shouldCoalesceRunChangeDetection:n?.runCoalescing??!1}}({eventCoalescing:i?.ngZoneEventCoalescing,runCoalescing:i?.ngZoneRunCoalescing}));return r.run(()=>{const s=function WX(n,e,t){return new SP(n,e,t)}(t.moduleType,this.injector,function yU(n){return[{provide:io,useFactory:n},{provide:Ui,multi:!0,useFactory:()=>{const e=pi(tee,{optional:!0});return()=>e.initialize()}},{provide:Ui,multi:!0,useFactory:()=>{const e=pi(ree);return()=>{e.initialize()}}},{provide:n0,useFactory:nee}]}(()=>r)),o=s.injector.get(xl,null);return r.runOutsideAngular(()=>{const l=r.onError.subscribe({next:d=>{o.handleError(d)}});s.onDestroy(()=>{j3(this._modules,s),l.unsubscribe()})}),function mU(n,e,t){try{const i=t();return lS(i)?i.catch(r=>{throw e.runOutsideAngular(()=>n.handleError(r)),r}):i}catch(i){throw e.runOutsideAngular(()=>n.handleError(i)),i}}(o,r,()=>{const l=s.injector.get(uR);return l.runInitializers(),l.donePromise.then(()=>(function O8(n){"string"==typeof n&&(F8=n.toLowerCase().replace(/_/g,"-"))}(s.injector.get(y0,Vw)||Vw),this._moduleDoBootstrap(s),s))})})}bootstrapModule(t,i=[]){const r=AU({},i);return function eee(n,e,t){const i=new EP(t);return Promise.resolve(i)}(0,0,t).then(s=>this.bootstrapModuleFactory(s,r))}_moduleDoBootstrap(t){const i=t.injector.get(k_);if(t._bootstrapComponents.length>0)t._bootstrapComponents.forEach(r=>i.bootstrap(r));else{if(!t.instance.ngDoBootstrap)throw new Ln(-403,!1);t.instance.ngDoBootstrap(i)}this._modules.push(t)}onDestroy(t){this._destroyListeners.push(t)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new Ln(404,!1);this._modules.slice().forEach(i=>i.destroy()),this._destroyListeners.forEach(i=>i());const t=this._injector.get(mR,null);t&&(t.forEach(i=>i()),t.clear()),this._destroyed=!0}get destroyed(){return this._destroyed}static#e=this.\u0275fac=function(i){return new(i||n)(xi(ml))};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac,providedIn:"platform"})}return n})(),Cy=null;const xU=new Bi("");function wU(n,e,t=[]){const i=`Platform: ${e}`,r=new Bi(i);return(s=[])=>{let o=AR();if(!o||o.injector.get(xU,!1)){const l=[...t,...s,{provide:r,useValue:!0}];n?n(l):function lee(n){if(Cy&&!Cy.get(xU,!1))throw new Ln(400,!1);(function pU(){!function b(n){ue=n}(()=>{throw new Ln(600,!1)})})(),Cy=n;const e=n.get(bU);(function MU(n){n.get(Hx,null)?.forEach(t=>t())})(n)}(function CU(n=[],e){return ml.create({name:e,providers:[{provide:nu,useValue:"platform"},{provide:mR,useValue:new Set([()=>Cy=null])},...n]})}(l,i))}return function cee(n){const e=AR();if(!e)throw new Ln(401,!1);return e}()}}function AR(){return Cy?.get(bU)??null}let Sc=(()=>{class n{static#e=this.__NG_ELEMENT_ID__=hee}return n})();function hee(n){return function uee(n,e,t){if(af(n)&&!t){const i=Rd(n.index,e);return new Aw(i,i)}return 47&n.type?new Aw(e[Yo],e):null}(Ha(),Zi(),!(16&~n))}class IU{constructor(){}supports(e){return S3(e)}create(e){return new gee(e)}}const Aee=(n,e)=>e;class gee{constructor(e){this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=e||Aee}forEachItem(e){let t;for(t=this._itHead;null!==t;t=t._next)e(t)}forEachOperation(e){let t=this._itHead,i=this._removalsHead,r=0,s=null;for(;t||i;){const o=!i||t&&t.currentIndex{o=this._trackByFn(r,l),null!==t&&Object.is(t.trackById,o)?(i&&(t=this._verifyReinsertion(t,l,o,r)),Object.is(t.item,l)||this._addIdentityChange(t,l)):(t=this._mismatch(t,l,o,r),i=!0),t=t._next,r++}),this.length=r;return this._truncate(t),this.collection=e,this.isDirty}get isDirty(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}_reset(){if(this.isDirty){let e;for(e=this._previousItHead=this._itHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._additionsHead;null!==e;e=e._nextAdded)e.previousIndex=e.currentIndex;for(this._additionsHead=this._additionsTail=null,e=this._movesHead;null!==e;e=e._nextMoved)e.previousIndex=e.currentIndex;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(e,t,i,r){let s;return null===e?s=this._itTail:(s=e._prev,this._remove(e)),null!==(e=null===this._unlinkedRecords?null:this._unlinkedRecords.get(i,null))?(Object.is(e.item,t)||this._addIdentityChange(e,t),this._reinsertAfter(e,s,r)):null!==(e=null===this._linkedRecords?null:this._linkedRecords.get(i,r))?(Object.is(e.item,t)||this._addIdentityChange(e,t),this._moveAfter(e,s,r)):e=this._addAfter(new _ee(t,i),s,r),e}_verifyReinsertion(e,t,i,r){let s=null===this._unlinkedRecords?null:this._unlinkedRecords.get(i,null);return null!==s?e=this._reinsertAfter(s,e._prev,r):e.currentIndex!=r&&(e.currentIndex=r,this._addToMoves(e,r)),e}_truncate(e){for(;null!==e;){const t=e._next;this._addToRemovals(this._unlink(e)),e=t}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}_reinsertAfter(e,t,i){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(e);const r=e._prevRemoved,s=e._nextRemoved;return null===r?this._removalsHead=s:r._nextRemoved=s,null===s?this._removalsTail=r:s._prevRemoved=r,this._insertAfter(e,t,i),this._addToMoves(e,i),e}_moveAfter(e,t,i){return this._unlink(e),this._insertAfter(e,t,i),this._addToMoves(e,i),e}_addAfter(e,t,i){return this._insertAfter(e,t,i),this._additionsTail=null===this._additionsTail?this._additionsHead=e:this._additionsTail._nextAdded=e,e}_insertAfter(e,t,i){const r=null===t?this._itHead:t._next;return e._next=r,e._prev=t,null===r?this._itTail=e:r._prev=e,null===t?this._itHead=e:t._next=e,null===this._linkedRecords&&(this._linkedRecords=new BU),this._linkedRecords.put(e),e.currentIndex=i,e}_remove(e){return this._addToRemovals(this._unlink(e))}_unlink(e){null!==this._linkedRecords&&this._linkedRecords.remove(e);const t=e._prev,i=e._next;return null===t?this._itHead=i:t._next=i,null===i?this._itTail=t:i._prev=t,e}_addToMoves(e,t){return e.previousIndex===t||(this._movesTail=null===this._movesTail?this._movesHead=e:this._movesTail._nextMoved=e),e}_addToRemovals(e){return null===this._unlinkedRecords&&(this._unlinkedRecords=new BU),this._unlinkedRecords.put(e),e.currentIndex=null,e._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=e,e._prevRemoved=null):(e._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=e),e}_addIdentityChange(e,t){return e.item=t,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=e:this._identityChangesTail._nextIdentityChange=e,e}}class _ee{constructor(e,t){this.item=e,this.trackById=t,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null}}class yee{constructor(){this._head=null,this._tail=null}add(e){null===this._head?(this._head=this._tail=e,e._nextDup=null,e._prevDup=null):(this._tail._nextDup=e,e._prevDup=this._tail,e._nextDup=null,this._tail=e)}get(e,t){let i;for(i=this._head;null!==i;i=i._nextDup)if((null===t||t<=i.currentIndex)&&Object.is(i.trackById,e))return i;return null}remove(e){const t=e._prevDup,i=e._nextDup;return null===t?this._head=i:t._nextDup=i,null===i?this._tail=t:i._prevDup=t,null===this._head}}class BU{constructor(){this.map=new Map}put(e){const t=e.trackById;let i=this.map.get(t);i||(i=new yee,this.map.set(t,i)),i.add(e)}get(e,t){const r=this.map.get(e);return r?r.get(e,t):null}remove(e){const t=e.trackById;return this.map.get(t).remove(e)&&this.map.delete(t),e}get isEmpty(){return 0===this.map.size}clear(){this.map.clear()}}function PU(n,e,t){const i=n.previousIndex;if(null===i)return i;let r=0;return t&&i{if(t&&t.key===r)this._maybeAddToChanges(t,i),this._appendAfter=t,t=t._next;else{const s=this._getOrCreateRecordForKey(r,i);t=this._insertBeforeOrAppend(t,s)}}),t){t._prev&&(t._prev._next=null),this._removalsHead=t;for(let i=t;null!==i;i=i._nextRemoved)i===this._mapHead&&(this._mapHead=null),this._records.delete(i.key),i._nextRemoved=i._next,i.previousValue=i.currentValue,i.currentValue=null,i._prev=null,i._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(e,t){if(e){const i=e._prev;return t._next=e,t._prev=i,e._prev=t,i&&(i._next=t),e===this._mapHead&&(this._mapHead=t),this._appendAfter=e,e}return this._appendAfter?(this._appendAfter._next=t,t._prev=this._appendAfter):this._mapHead=t,this._appendAfter=t,null}_getOrCreateRecordForKey(e,t){if(this._records.has(e)){const r=this._records.get(e);this._maybeAddToChanges(r,t);const s=r._prev,o=r._next;return s&&(s._next=o),o&&(o._prev=s),r._next=null,r._prev=null,r}const i=new bee(e);return this._records.set(e,i),i.currentValue=t,this._addToAdditions(i),i}_reset(){if(this.isDirty){let e;for(this._previousMapHead=this._mapHead,e=this._previousMapHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._changesHead;null!==e;e=e._nextChanged)e.previousValue=e.currentValue;for(e=this._additionsHead;null!=e;e=e._nextAdded)e.previousValue=e.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(e,t){Object.is(t,e.currentValue)||(e.previousValue=e.currentValue,e.currentValue=t,this._addToChanges(e))}_addToAdditions(e){null===this._additionsHead?this._additionsHead=this._additionsTail=e:(this._additionsTail._nextAdded=e,this._additionsTail=e)}_addToChanges(e){null===this._changesHead?this._changesHead=this._changesTail=e:(this._changesTail._nextChanged=e,this._changesTail=e)}_forEach(e,t){e instanceof Map?e.forEach(t):Object.keys(e).forEach(i=>t(e[i],i))}}class bee{constructor(e){this.key=e,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null}}function kU(){return new jw([new IU])}let jw=(()=>{class n{static#e=this.\u0275prov=Gi({token:n,providedIn:"root",factory:kU});constructor(t){this.factories=t}static create(t,i){if(null!=i){const r=i.factories.slice();t=t.concat(r)}return new n(t)}static extend(t){return{provide:n,useFactory:i=>n.create(t,i||kU()),deps:[[n,new Xl,new cl]]}}find(t){const i=this.factories.find(r=>r.supports(t));if(null!=i)return i;throw new Ln(901,!1)}}return n})();function FU(){return new K3([new RU])}let K3=(()=>{class n{static#e=this.\u0275prov=Gi({token:n,providedIn:"root",factory:FU});constructor(t){this.factories=t}static create(t,i){if(i){const r=i.factories.slice();t=t.concat(r)}return new n(t)}static extend(t){return{provide:n,useFactory:i=>n.create(t,i||FU()),deps:[[n,new Xl,new cl]]}}find(t){const i=this.factories.find(r=>r.supports(t));if(i)return i;throw new Ln(901,!1)}}return n})();const Cee=wU(null,"core",[]);let Mee=(()=>{class n{constructor(t){}static#e=this.\u0275fac=function(i){return new(i||n)(xi(k_))};static#t=this.\u0275mod=vo({type:n});static#n=this.\u0275inj=ra({})}return n})();function _o(n){return"boolean"==typeof n?n:null!=n&&"false"!==n}function rh(n,e=NaN){return isNaN(parseFloat(n))||isNaN(Number(n))?e:Number(n)}let r7=null;function My(){return r7}class lte{}const ba=new Bi("");let wR=(()=>{class n{historyGo(t){throw new Error("")}static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275prov=Gi({token:n,factory:()=>pi(dte),providedIn:"platform"})}return n})();const cte=new Bi("");let dte=(()=>{class n extends wR{constructor(){super(),this._doc=pi(ba),this._location=window.location,this._history=window.history}getBaseHrefFromDOM(){return My().getBaseHref(this._doc)}onPopState(t){const i=My().getGlobalEventTarget(this._doc,"window");return i.addEventListener("popstate",t,!1),()=>i.removeEventListener("popstate",t)}onHashChange(t){const i=My().getGlobalEventTarget(this._doc,"window");return i.addEventListener("hashchange",t,!1),()=>i.removeEventListener("hashchange",t)}get href(){return this._location.href}get protocol(){return this._location.protocol}get hostname(){return this._location.hostname}get port(){return this._location.port}get pathname(){return this._location.pathname}get search(){return this._location.search}get hash(){return this._location.hash}set pathname(t){this._location.pathname=t}pushState(t,i,r){this._history.pushState(t,i,r)}replaceState(t,i,r){this._history.replaceState(t,i,r)}forward(){this._history.forward()}back(){this._history.back()}historyGo(t=0){this._history.go(t)}getState(){return this._history.state}static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275prov=Gi({token:n,factory:()=>new n,providedIn:"platform"})}return n})();function CR(n,e){if(0==n.length)return e;if(0==e.length)return n;let t=0;return n.endsWith("/")&&t++,e.startsWith("/")&&t++,2==t?n+e.substring(1):1==t?n+e:n+"/"+e}function s7(n){const e=n.match(/#|\?|$/),t=e&&e.index||n.length;return n.slice(0,t-("/"===n[t-1]?1:0))+n.slice(t)}function F_(n){return n&&"?"!==n[0]?"?"+n:n}let Ab=(()=>{class n{historyGo(t){throw new Error("")}static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275prov=Gi({token:n,factory:()=>pi(a7),providedIn:"root"})}return n})();const o7=new Bi("");let a7=(()=>{class n extends Ab{constructor(t,i){super(),this._platformLocation=t,this._removeListenerFns=[],this._baseHref=i??this._platformLocation.getBaseHrefFromDOM()??pi(ba).location?.origin??""}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(t){this._removeListenerFns.push(this._platformLocation.onPopState(t),this._platformLocation.onHashChange(t))}getBaseHref(){return this._baseHref}prepareExternalUrl(t){return CR(this._baseHref,t)}path(t=!1){const i=this._platformLocation.pathname+F_(this._platformLocation.search),r=this._platformLocation.hash;return r&&t?`${i}${r}`:i}pushState(t,i,r,s){const o=this.prepareExternalUrl(r+F_(s));this._platformLocation.pushState(t,i,o)}replaceState(t,i,r,s){const o=this.prepareExternalUrl(r+F_(s));this._platformLocation.replaceState(t,i,o)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(t=0){this._platformLocation.historyGo?.(t)}static#e=this.\u0275fac=function(i){return new(i||n)(xi(wR),xi(o7,8))};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),hte=(()=>{class n extends Ab{constructor(t,i){super(),this._platformLocation=t,this._baseHref="",this._removeListenerFns=[],null!=i&&(this._baseHref=i)}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(t){this._removeListenerFns.push(this._platformLocation.onPopState(t),this._platformLocation.onHashChange(t))}getBaseHref(){return this._baseHref}path(t=!1){const i=this._platformLocation.hash??"#";return i.length>0?i.substring(1):i}prepareExternalUrl(t){const i=CR(this._baseHref,t);return i.length>0?"#"+i:i}pushState(t,i,r,s){let o=this.prepareExternalUrl(r+F_(s));0==o.length&&(o=this._platformLocation.pathname),this._platformLocation.pushState(t,i,o)}replaceState(t,i,r,s){let o=this.prepareExternalUrl(r+F_(s));0==o.length&&(o=this._platformLocation.pathname),this._platformLocation.replaceState(t,i,o)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(t=0){this._platformLocation.historyGo?.(t)}static#e=this.\u0275fac=function(i){return new(i||n)(xi(wR),xi(o7,8))};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac})}return n})(),gb=(()=>{class n{constructor(t){this._subject=new Ls,this._urlChangeListeners=[],this._urlChangeSubscription=null,this._locationStrategy=t;const i=this._locationStrategy.getBaseHref();this._basePath=function pte(n){if(new RegExp("^(https?:)?//").test(n)){const[,t]=n.split(/\/\/[^\/]+/);return t}return n}(s7(l7(i))),this._locationStrategy.onPopState(r=>{this._subject.emit({url:this.path(!0),pop:!0,state:r.state,type:r.type})})}ngOnDestroy(){this._urlChangeSubscription?.unsubscribe(),this._urlChangeListeners=[]}path(t=!1){return this.normalize(this._locationStrategy.path(t))}getState(){return this._locationStrategy.getState()}isCurrentPathEqualTo(t,i=""){return this.path()==this.normalize(t+F_(i))}normalize(t){return n.stripTrailingSlash(function fte(n,e){if(!n||!e.startsWith(n))return e;const t=e.substring(n.length);return""===t||["/",";","?","#"].includes(t[0])?t:e}(this._basePath,l7(t)))}prepareExternalUrl(t){return t&&"/"!==t[0]&&(t="/"+t),this._locationStrategy.prepareExternalUrl(t)}go(t,i="",r=null){this._locationStrategy.pushState(r,"",t,i),this._notifyUrlChangeListeners(this.prepareExternalUrl(t+F_(i)),r)}replaceState(t,i="",r=null){this._locationStrategy.replaceState(r,"",t,i),this._notifyUrlChangeListeners(this.prepareExternalUrl(t+F_(i)),r)}forward(){this._locationStrategy.forward()}back(){this._locationStrategy.back()}historyGo(t=0){this._locationStrategy.historyGo?.(t)}onUrlChange(t){return this._urlChangeListeners.push(t),this._urlChangeSubscription??=this.subscribe(i=>{this._notifyUrlChangeListeners(i.url,i.state)}),()=>{const i=this._urlChangeListeners.indexOf(t);this._urlChangeListeners.splice(i,1),0===this._urlChangeListeners.length&&(this._urlChangeSubscription?.unsubscribe(),this._urlChangeSubscription=null)}}_notifyUrlChangeListeners(t="",i){this._urlChangeListeners.forEach(r=>r(t,i))}subscribe(t,i,r){return this._subject.subscribe({next:t,error:i,complete:r})}static#e=this.normalizeQueryParams=F_;static#t=this.joinWithSlash=CR;static#n=this.stripTrailingSlash=s7;static#i=this.\u0275fac=function(i){return new(i||n)(xi(Ab))};static#r=this.\u0275prov=Gi({token:n,factory:()=>function ute(){return new gb(xi(Ab))}(),providedIn:"root"})}return n})();function l7(n){return n.replace(/\/index.html$/,"")}var iD=function(n){return n[n.Decimal=0]="Decimal",n[n.Percent=1]="Percent",n[n.Currency=2]="Currency",n[n.Scientific=3]="Scientific",n}(iD||{});const sh={Decimal:0,Group:1,List:2,PercentSign:3,PlusSign:4,MinusSign:5,Exponential:6,SuperscriptingExponent:7,PerMille:8,Infinity:9,NaN:10,TimeSeparator:11,CurrencyDecimal:12,CurrencyGroup:13};function nA(n,e){const t=Sf(n),i=t[Mc.NumberSymbols][e];if(typeof i>"u"){if(e===sh.CurrencyDecimal)return t[Mc.NumberSymbols][sh.Decimal];if(e===sh.CurrencyGroup)return t[Mc.NumberSymbols][sh.Group]}return i}const Hte=/^(\d+)?\.((\d+)(-(\d+))?)?$/;function PR(n){const e=parseInt(n);if(isNaN(e))throw new Error("Invalid integer literal when parsing "+n);return e}function g7(n,e){e=encodeURIComponent(e);for(const t of n.split(";")){const i=t.indexOf("="),[r,s]=-1==i?[t,""]:[t.slice(0,i),t.slice(i+1)];if(r.trim()===e)return decodeURIComponent(s)}return null}const kR=/\s+/,_7=[];let om=(()=>{class n{constructor(t,i){this._ngEl=t,this._renderer=i,this.initialClasses=_7,this.stateMap=new Map}set klass(t){this.initialClasses=null!=t?t.trim().split(kR):_7}set ngClass(t){this.rawClass="string"==typeof t?t.trim().split(kR):t}ngDoCheck(){for(const i of this.initialClasses)this._updateState(i,!0);const t=this.rawClass;if(Array.isArray(t)||t instanceof Set)for(const i of t)this._updateState(i,!0);else if(null!=t)for(const i of Object.keys(t))this._updateState(i,!!t[i]);this._applyStateDiff()}_updateState(t,i){const r=this.stateMap.get(t);void 0!==r?(r.enabled!==i&&(r.changed=!0,r.enabled=i),r.touched=!0):this.stateMap.set(t,{enabled:i,changed:!0,touched:!0})}_applyStateDiff(){for(const t of this.stateMap){const i=t[0],r=t[1];r.changed?(this._toggleClass(i,r.enabled),r.changed=!1):r.touched||(r.enabled&&this._toggleClass(i,!1),this.stateMap.delete(i)),r.touched=!1}}_toggleClass(t,i){(t=t.trim()).length>0&&t.split(kR).forEach(r=>{i?this._renderer.addClass(this._ngEl.nativeElement,r):this._renderer.removeClass(this._ngEl.nativeElement,r)})}static#e=this.\u0275fac=function(i){return new(i||n)(Lt(oo),Lt(ZA))};static#t=this.\u0275dir=Ft({type:n,selectors:[["","ngClass",""]],inputs:{klass:[mi.None,"class","klass"],ngClass:"ngClass"},standalone:!0})}return n})();class Jte{constructor(e,t,i,r){this.$implicit=e,this.ngForOf=t,this.index=i,this.count=r}get first(){return 0===this.index}get last(){return this.index===this.count-1}get even(){return this.index%2==0}get odd(){return!this.even}}let am=(()=>{class n{set ngForOf(t){this._ngForOf=t,this._ngForOfDirty=!0}set ngForTrackBy(t){this._trackByFn=t}get ngForTrackBy(){return this._trackByFn}constructor(t,i,r){this._viewContainer=t,this._template=i,this._differs=r,this._ngForOf=null,this._ngForOfDirty=!0,this._differ=null}set ngForTemplate(t){t&&(this._template=t)}ngDoCheck(){if(this._ngForOfDirty){this._ngForOfDirty=!1;const t=this._ngForOf;!this._differ&&t&&(this._differ=this._differs.find(t).create(this.ngForTrackBy))}if(this._differ){const t=this._differ.diff(this._ngForOf);t&&this._applyChanges(t)}}_applyChanges(t){const i=this._viewContainer;t.forEachOperation((r,s,o)=>{if(null==r.previousIndex)i.createEmbeddedView(this._template,new Jte(r.item,this._ngForOf,-1,-1),null===o?void 0:o);else if(null==o)i.remove(null===s?void 0:s);else if(null!==s){const l=i.get(s);i.move(l,o),v7(l,r)}});for(let r=0,s=i.length;r{v7(i.get(r.currentIndex),r)})}static ngTemplateContextGuard(t,i){return!0}static#e=this.\u0275fac=function(i){return new(i||n)(Lt(fs),Lt(Ud),Lt(jw))};static#t=this.\u0275dir=Ft({type:n,selectors:[["","ngFor","","ngForOf",""]],inputs:{ngForOf:"ngForOf",ngForTrackBy:"ngForTrackBy",ngForTemplate:"ngForTemplate"},standalone:!0})}return n})();function v7(n,e){n.context.$implicit=e.item}let Lu=(()=>{class n{constructor(t,i){this._viewContainer=t,this._context=new ene,this._thenTemplateRef=null,this._elseTemplateRef=null,this._thenViewRef=null,this._elseViewRef=null,this._thenTemplateRef=i}set ngIf(t){this._context.$implicit=this._context.ngIf=t,this._updateView()}set ngIfThen(t){b7("ngIfThen",t),this._thenTemplateRef=t,this._thenViewRef=null,this._updateView()}set ngIfElse(t){b7("ngIfElse",t),this._elseTemplateRef=t,this._elseViewRef=null,this._updateView()}_updateView(){this._context.$implicit?this._thenViewRef||(this._viewContainer.clear(),this._elseViewRef=null,this._thenTemplateRef&&(this._thenViewRef=this._viewContainer.createEmbeddedView(this._thenTemplateRef,this._context))):this._elseViewRef||(this._viewContainer.clear(),this._thenViewRef=null,this._elseTemplateRef&&(this._elseViewRef=this._viewContainer.createEmbeddedView(this._elseTemplateRef,this._context)))}static ngTemplateContextGuard(t,i){return!0}static#e=this.\u0275fac=function(i){return new(i||n)(Lt(fs),Lt(Ud))};static#t=this.\u0275dir=Ft({type:n,selectors:[["","ngIf",""]],inputs:{ngIf:"ngIf",ngIfThen:"ngIfThen",ngIfElse:"ngIfElse"},standalone:!0})}return n})();class ene{constructor(){this.$implicit=null,this.ngIf=null}}function b7(n,e){if(e&&!e.createEmbeddedView)throw new Error(`${n} must be a TemplateRef, but received '${ut(e)}'.`)}class FR{constructor(e,t){this._viewContainerRef=e,this._templateRef=t,this._created=!1}create(){this._created=!0,this._viewContainerRef.createEmbeddedView(this._templateRef)}destroy(){this._created=!1,this._viewContainerRef.clear()}enforceState(e){e&&!this._created?this.create():!e&&this._created&&this.destroy()}}let pD=(()=>{class n{constructor(){this._defaultViews=[],this._defaultUsed=!1,this._caseCount=0,this._lastCaseCheckIndex=0,this._lastCasesMatched=!1}set ngSwitch(t){this._ngSwitch=t,0===this._caseCount&&this._updateDefaultCases(!0)}_addCase(){return this._caseCount++}_addDefault(t){this._defaultViews.push(t)}_matchCase(t){const i=t===this._ngSwitch;return this._lastCasesMatched||=i,this._lastCaseCheckIndex++,this._lastCaseCheckIndex===this._caseCount&&(this._updateDefaultCases(!this._lastCasesMatched),this._lastCaseCheckIndex=0,this._lastCasesMatched=!1),i}_updateDefaultCases(t){if(this._defaultViews.length>0&&t!==this._defaultUsed){this._defaultUsed=t;for(const i of this._defaultViews)i.enforceState(t)}}static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275dir=Ft({type:n,selectors:[["","ngSwitch",""]],inputs:{ngSwitch:"ngSwitch"},standalone:!0})}return n})(),x7=(()=>{class n{constructor(t,i,r){this.ngSwitch=r,r._addCase(),this._view=new FR(t,i)}ngDoCheck(){this._view.enforceState(this.ngSwitch._matchCase(this.ngSwitchCase))}static#e=this.\u0275fac=function(i){return new(i||n)(Lt(fs),Lt(Ud),Lt(pD,9))};static#t=this.\u0275dir=Ft({type:n,selectors:[["","ngSwitchCase",""]],inputs:{ngSwitchCase:"ngSwitchCase"},standalone:!0})}return n})(),C7=(()=>{class n{constructor(t,i,r){this._ngEl=t,this._differs=i,this._renderer=r,this._ngStyle=null,this._differ=null}set ngStyle(t){this._ngStyle=t,!this._differ&&t&&(this._differ=this._differs.find(t).create())}ngDoCheck(){if(this._differ){const t=this._differ.diff(this._ngStyle);t&&this._applyChanges(t)}}_setStyle(t,i){const[r,s]=t.split("."),o=-1===r.indexOf("-")?void 0:u0.DashCase;null!=i?this._renderer.setStyle(this._ngEl.nativeElement,r,s?`${i}${s}`:i,o):this._renderer.removeStyle(this._ngEl.nativeElement,r,o)}_applyChanges(t){t.forEachRemovedItem(i=>this._setStyle(i.key,null)),t.forEachAddedItem(i=>this._setStyle(i.key,i.currentValue)),t.forEachChangedItem(i=>this._setStyle(i.key,i.currentValue))}static#e=this.\u0275fac=function(i){return new(i||n)(Lt(oo),Lt(K3),Lt(ZA))};static#t=this.\u0275dir=Ft({type:n,selectors:[["","ngStyle",""]],inputs:{ngStyle:"ngStyle"},standalone:!0})}return n})(),M7=(()=>{class n{constructor(t){this._viewContainerRef=t,this._viewRef=null,this.ngTemplateOutletContext=null,this.ngTemplateOutlet=null,this.ngTemplateOutletInjector=null}ngOnChanges(t){if(this._shouldRecreateView(t)){const i=this._viewContainerRef;if(this._viewRef&&i.remove(i.indexOf(this._viewRef)),!this.ngTemplateOutlet)return void(this._viewRef=null);const r=this._createContextForwardProxy();this._viewRef=i.createEmbeddedView(this.ngTemplateOutlet,r,{injector:this.ngTemplateOutletInjector??void 0})}}_shouldRecreateView(t){return!!t.ngTemplateOutlet||!!t.ngTemplateOutletInjector}_createContextForwardProxy(){return new Proxy({},{set:(t,i,r)=>!!this.ngTemplateOutletContext&&Reflect.set(this.ngTemplateOutletContext,i,r),get:(t,i,r)=>{if(this.ngTemplateOutletContext)return Reflect.get(this.ngTemplateOutletContext,i,r)}})}static#e=this.\u0275fac=function(i){return new(i||n)(Lt(fs))};static#t=this.\u0275dir=Ft({type:n,selectors:[["","ngTemplateOutlet",""]],inputs:{ngTemplateOutletContext:"ngTemplateOutletContext",ngTemplateOutlet:"ngTemplateOutlet",ngTemplateOutletInjector:"ngTemplateOutletInjector"},standalone:!0,features:[kl]})}return n})();let E7=(()=>{class n{constructor(t){this._locale=t}transform(t,i,r){if(!function OR(n){return!(null==n||""===n||n!=n)}(t))return null;r||=this._locale;try{return function jte(n,e,t){return function IR(n,e,t,i,r,s,o=!1){let l="",d=!1;if(isFinite(n)){let h=function Xte(n){let i,r,s,o,l,e=Math.abs(n)+"",t=0;for((r=e.indexOf("."))>-1&&(e=e.replace(".","")),(s=e.search(/e/i))>0?(r<0&&(r=s),r+=+e.slice(s+1),e=e.substring(0,s)):r<0&&(r=e.length),s=0;"0"===e.charAt(s);s++);if(s===(l=e.length))i=[0],r=1;else{for(l--;"0"===e.charAt(l);)l--;for(r-=s,i=[],o=0;s<=l;s++,o++)i[o]=Number(e.charAt(s))}return r>22&&(i=i.splice(0,21),t=r-1,r=1),{digits:i,exponent:t,integerLen:r}}(n);o&&(h=function $te(n){if(0===n.digits[0])return n;const e=n.digits.length-n.integerLen;return n.exponent?n.exponent+=2:(0===e?n.digits.push(0,0):1===e&&n.digits.push(0),n.integerLen+=2),n}(h));let f=e.minInt,A=e.minFrac,S=e.maxFrac;if(s){const Ee=s.match(Hte);if(null===Ee)throw new Error(`${s} is not a valid digit info`);const Ce=Ee[1],We=Ee[3],Mt=Ee[5];null!=Ce&&(f=PR(Ce)),null!=We&&(A=PR(We)),null!=Mt?S=PR(Mt):null!=We&&A>S&&(S=A)}!function Yte(n,e,t){if(e>t)throw new Error(`The minimum number of digits after fraction (${e}) is higher than the maximum (${t}).`);let i=n.digits,r=i.length-n.integerLen;const s=Math.min(Math.max(e,r),t);let o=s+n.integerLen,l=i[o];if(o>0){i.splice(Math.max(n.integerLen,o));for(let A=o;A=5)if(o-1<0){for(let A=0;A>o;A--)i.unshift(0),n.integerLen++;i.unshift(1),n.integerLen++}else i[o-1]++;for(;r=h?G.pop():d=!1),S>=10?1:0},0);f&&(i.unshift(f),n.integerLen++)}(h,A,S);let R=h.digits,G=h.integerLen;const re=h.exponent;let se=[];for(d=R.every(Ee=>!Ee);G0?se=R.splice(G,R.length):(se=R,R=[0]);const le=[];for(R.length>=e.lgSize&&le.unshift(R.splice(-e.lgSize,R.length).join(""));R.length>e.gSize;)le.unshift(R.splice(-e.gSize,R.length).join(""));R.length&&le.unshift(R.join("")),l=le.join(nA(t,i)),se.length&&(l+=nA(t,r)+se.join("")),re&&(l+=nA(t,sh.Exponential)+"+"+re)}else l=nA(t,sh.Infinity);return l=n<0&&!d?e.negPre+l+e.negSuf:e.posPre+l+e.posSuf,l}(n,function BR(n,e="-"){const t={minInt:1,minFrac:0,maxFrac:0,posPre:"",posSuf:"",negPre:"",negSuf:"",gSize:0,lgSize:0},i=n.split(";"),r=i[0],s=i[1],o=-1!==r.indexOf(".")?r.split("."):[r.substring(0,r.lastIndexOf("0")+1),r.substring(r.lastIndexOf("0")+1)],l=o[0],d=o[1]||"";t.posPre=l.substring(0,l.indexOf("#"));for(let f=0;f{class n{static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275mod=vo({type:n});static#n=this.\u0275inj=ra({})}return n})();const T7="browser";function D7(n){return n===T7}function I7(n){return"server"===n}let Tne=(()=>{class n{static#e=this.\u0275prov=Gi({token:n,providedIn:"root",factory:()=>D7(pi(Kp))?new Dne(pi(ba),window):new Bne})}return n})();class Dne{constructor(e,t){this.document=e,this.window=t,this.offset=()=>[0,0]}setOffset(e){this.offset=Array.isArray(e)?()=>e:e}getScrollPosition(){return[this.window.scrollX,this.window.scrollY]}scrollToPosition(e){this.window.scrollTo(e[0],e[1])}scrollToAnchor(e){const t=function Ine(n,e){const t=n.getElementById(e)||n.getElementsByName(e)[0];if(t)return t;if("function"==typeof n.createTreeWalker&&n.body&&"function"==typeof n.body.attachShadow){const i=n.createTreeWalker(n.body,NodeFilter.SHOW_ELEMENT);let r=i.currentNode;for(;r;){const s=r.shadowRoot;if(s){const o=s.getElementById(e)||s.querySelector(`[name="${e}"]`);if(o)return o}r=i.nextNode()}}return null}(this.document,e);t&&(this.scrollToElement(t),t.focus())}setHistoryScrollRestoration(e){this.window.history.scrollRestoration=e}scrollToElement(e){const t=e.getBoundingClientRect(),i=t.left+this.window.pageXOffset,r=t.top+this.window.pageYOffset,s=this.offset();this.window.scrollTo(i-s[0],r-s[1])}}class Bne{setOffset(e){}getScrollPosition(){return[0,0]}scrollToPosition(e){}scrollToAnchor(e){}setHistoryScrollRestoration(e){}}class B7{}class sie extends lte{constructor(){super(...arguments),this.supportsDOMEvents=!0}}class UR extends sie{static makeCurrent(){!function ate(n){r7??=n}(new UR)}onAndCancel(e,t,i){return e.addEventListener(t,i),()=>{e.removeEventListener(t,i)}}dispatchEvent(e,t){e.dispatchEvent(t)}remove(e){e.parentNode&&e.parentNode.removeChild(e)}createElement(e,t){return(t=t||this.getDefaultDocument()).createElement(e)}createHtmlDocument(){return document.implementation.createHTMLDocument("fakeTitle")}getDefaultDocument(){return document}isElementNode(e){return e.nodeType===Node.ELEMENT_NODE}isShadowRoot(e){return e instanceof DocumentFragment}getGlobalEventTarget(e,t){return"window"===t?window:"document"===t?e:"body"===t?e.body:null}getBaseHref(e){const t=function oie(){return mS=mS||document.querySelector("base"),mS?mS.getAttribute("href"):null}();return null==t?null:function aie(n){return new URL(n,document.baseURI).pathname}(t)}resetBaseElement(){mS=null}getUserAgent(){return window.navigator.userAgent}getCookie(e){return g7(document.cookie,e)}}let mS=null,cie=(()=>{class n{build(){return new XMLHttpRequest}static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac})}return n})();const zR=new Bi("");let z7=(()=>{class n{constructor(t,i){this._zone=i,this._eventNameToPlugin=new Map,t.forEach(r=>{r.manager=this}),this._plugins=t.slice().reverse()}addEventListener(t,i,r){return this._findPluginFor(i).addEventListener(t,i,r)}getZone(){return this._zone}_findPluginFor(t){let i=this._eventNameToPlugin.get(t);if(i)return i;if(i=this._plugins.find(s=>s.supports(t)),!i)throw new Ln(5101,!1);return this._eventNameToPlugin.set(t,i),i}static#e=this.\u0275fac=function(i){return new(i||n)(xi(zR),xi(io))};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac})}return n})();class H7{constructor(e){this._doc=e}}const HR="ng-app-id";let V7=(()=>{class n{constructor(t,i,r,s={}){this.doc=t,this.appId=i,this.nonce=r,this.platformId=s,this.styleRef=new Map,this.hostNodes=new Set,this.styleNodesInDOM=this.collectServerRenderedStyles(),this.platformIsServer=I7(s),this.resetHostNodes()}addStyles(t){for(const i of t)1===this.changeUsageCount(i,1)&&this.onStyleAdded(i)}removeStyles(t){for(const i of t)this.changeUsageCount(i,-1)<=0&&this.onStyleRemoved(i)}ngOnDestroy(){const t=this.styleNodesInDOM;t&&(t.forEach(i=>i.remove()),t.clear());for(const i of this.getAllStyles())this.onStyleRemoved(i);this.resetHostNodes()}addHost(t){this.hostNodes.add(t);for(const i of this.getAllStyles())this.addStyleToHost(t,i)}removeHost(t){this.hostNodes.delete(t)}getAllStyles(){return this.styleRef.keys()}onStyleAdded(t){for(const i of this.hostNodes)this.addStyleToHost(i,t)}onStyleRemoved(t){const i=this.styleRef;i.get(t)?.elements?.forEach(r=>r.remove()),i.delete(t)}collectServerRenderedStyles(){const t=this.doc.head?.querySelectorAll(`style[${HR}="${this.appId}"]`);if(t?.length){const i=new Map;return t.forEach(r=>{null!=r.textContent&&i.set(r.textContent,r)}),i}return null}changeUsageCount(t,i){const r=this.styleRef;if(r.has(t)){const s=r.get(t);return s.usage+=i,s.usage}return r.set(t,{usage:i,elements:[]}),i}getStyleElement(t,i){const r=this.styleNodesInDOM,s=r?.get(i);if(s?.parentNode===t)return r.delete(i),s.removeAttribute(HR),s;{const o=this.doc.createElement("style");return this.nonce&&o.setAttribute("nonce",this.nonce),o.textContent=i,this.platformIsServer&&o.setAttribute(HR,this.appId),t.appendChild(o),o}}addStyleToHost(t,i){const r=this.getStyleElement(t,i),s=this.styleRef,o=s.get(i)?.elements;o?o.push(r):s.set(i,{elements:[r],usage:1})}resetHostNodes(){const t=this.hostNodes;t.clear(),t.add(this.doc.head)}static#e=this.\u0275fac=function(i){return new(i||n)(xi(ba),xi(v_),xi(wv,8),xi(Kp))};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac})}return n})();const VR={svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/",math:"http://www.w3.org/1998/MathML/"},GR=/%COMP%/g,fie=new Bi("",{providedIn:"root",factory:()=>!0});function q7(n,e){return e.map(t=>t.replace(GR,n))}let qR=(()=>{class n{constructor(t,i,r,s,o,l,d,h=null){this.eventManager=t,this.sharedStylesHost=i,this.appId=r,this.removeStylesOnCompDestroy=s,this.doc=o,this.platformId=l,this.ngZone=d,this.nonce=h,this.rendererByCompId=new Map,this.platformIsServer=I7(l),this.defaultRenderer=new QR(t,o,d,this.platformIsServer)}createRenderer(t,i){if(!t||!i)return this.defaultRenderer;this.platformIsServer&&i.encapsulation===Ad.ShadowDom&&(i={...i,encapsulation:Ad.Emulated});const r=this.getOrCreateRenderer(t,i);return r instanceof W7?r.applyToHost(t):r instanceof WR&&r.applyStyles(),r}getOrCreateRenderer(t,i){const r=this.rendererByCompId;let s=r.get(i.id);if(!s){const o=this.doc,l=this.ngZone,d=this.eventManager,h=this.sharedStylesHost,f=this.removeStylesOnCompDestroy,A=this.platformIsServer;switch(i.encapsulation){case Ad.Emulated:s=new W7(d,h,i,this.appId,f,o,l,A);break;case Ad.ShadowDom:return new gie(d,h,t,i,o,l,this.nonce,A);default:s=new WR(d,h,i,f,o,l,A)}r.set(i.id,s)}return s}ngOnDestroy(){this.rendererByCompId.clear()}static#e=this.\u0275fac=function(i){return new(i||n)(xi(z7),xi(V7),xi(v_),xi(fie),xi(ba),xi(Kp),xi(io),xi(wv))};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac})}return n})();class QR{constructor(e,t,i,r){this.eventManager=e,this.doc=t,this.ngZone=i,this.platformIsServer=r,this.data=Object.create(null),this.throwOnSyntheticProps=!0,this.destroyNode=null}destroy(){}createElement(e,t){return t?this.doc.createElementNS(VR[t]||t,e):this.doc.createElement(e)}createComment(e){return this.doc.createComment(e)}createText(e){return this.doc.createTextNode(e)}appendChild(e,t){(Q7(e)?e.content:e).appendChild(t)}insertBefore(e,t,i){e&&(Q7(e)?e.content:e).insertBefore(t,i)}removeChild(e,t){e&&e.removeChild(t)}selectRootElement(e,t){let i="string"==typeof e?this.doc.querySelector(e):e;if(!i)throw new Ln(-5104,!1);return t||(i.textContent=""),i}parentNode(e){return e.parentNode}nextSibling(e){return e.nextSibling}setAttribute(e,t,i,r){if(r){t=r+":"+t;const s=VR[r];s?e.setAttributeNS(s,t,i):e.setAttribute(t,i)}else e.setAttribute(t,i)}removeAttribute(e,t,i){if(i){const r=VR[i];r?e.removeAttributeNS(r,t):e.removeAttribute(`${i}:${t}`)}else e.removeAttribute(t)}addClass(e,t){e.classList.add(t)}removeClass(e,t){e.classList.remove(t)}setStyle(e,t,i,r){r&(u0.DashCase|u0.Important)?e.style.setProperty(t,i,r&u0.Important?"important":""):e.style[t]=i}removeStyle(e,t,i){i&u0.DashCase?e.style.removeProperty(t):e.style[t]=""}setProperty(e,t,i){null!=e&&(e[t]=i)}setValue(e,t){e.nodeValue=t}listen(e,t,i){if("string"==typeof e&&!(e=My().getGlobalEventTarget(this.doc,e)))throw new Error(`Unsupported event target ${e} for event ${t}`);return this.eventManager.addEventListener(e,t,this.decoratePreventDefault(i))}decoratePreventDefault(e){return t=>{if("__ngUnwrap__"===t)return e;!1===(this.platformIsServer?this.ngZone.runGuarded(()=>e(t)):e(t))&&t.preventDefault()}}}function Q7(n){return"TEMPLATE"===n.tagName&&void 0!==n.content}class gie extends QR{constructor(e,t,i,r,s,o,l,d){super(e,s,o,d),this.sharedStylesHost=t,this.hostEl=i,this.shadowRoot=i.attachShadow({mode:"open"}),this.sharedStylesHost.addHost(this.shadowRoot);const h=q7(r.id,r.styles);for(const f of h){const A=document.createElement("style");l&&A.setAttribute("nonce",l),A.textContent=f,this.shadowRoot.appendChild(A)}}nodeOrShadowRoot(e){return e===this.hostEl?this.shadowRoot:e}appendChild(e,t){return super.appendChild(this.nodeOrShadowRoot(e),t)}insertBefore(e,t,i){return super.insertBefore(this.nodeOrShadowRoot(e),t,i)}removeChild(e,t){return super.removeChild(this.nodeOrShadowRoot(e),t)}parentNode(e){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(e)))}destroy(){this.sharedStylesHost.removeHost(this.shadowRoot)}}class WR extends QR{constructor(e,t,i,r,s,o,l,d){super(e,s,o,l),this.sharedStylesHost=t,this.removeStylesOnCompDestroy=r,this.styles=d?q7(d,i.styles):i.styles}applyStyles(){this.sharedStylesHost.addStyles(this.styles)}destroy(){this.removeStylesOnCompDestroy&&this.sharedStylesHost.removeStyles(this.styles)}}class W7 extends WR{constructor(e,t,i,r,s,o,l,d){const h=r+"-"+i.id;super(e,t,i,s,o,l,d,h),this.contentAttr=function pie(n){return"_ngcontent-%COMP%".replace(GR,n)}(h),this.hostAttr=function mie(n){return"_nghost-%COMP%".replace(GR,n)}(h)}applyToHost(e){this.applyStyles(),this.setAttribute(e,this.hostAttr,"")}createElement(e,t){const i=super.createElement(e,t);return super.setAttribute(i,this.contentAttr,""),i}}let _ie=(()=>{class n extends H7{constructor(t){super(t)}supports(t){return!0}addEventListener(t,i,r){return t.addEventListener(i,r,!1),()=>this.removeEventListener(t,i,r)}removeEventListener(t,i,r){return t.removeEventListener(i,r)}static#e=this.\u0275fac=function(i){return new(i||n)(xi(ba))};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac})}return n})();const j7=["alt","control","meta","shift"],yie={"\b":"Backspace","\t":"Tab","\x7f":"Delete","\x1b":"Escape",Del:"Delete",Esc:"Escape",Left:"ArrowLeft",Right:"ArrowRight",Up:"ArrowUp",Down:"ArrowDown",Menu:"ContextMenu",Scroll:"ScrollLock",Win:"OS"},vie={alt:n=>n.altKey,control:n=>n.ctrlKey,meta:n=>n.metaKey,shift:n=>n.shiftKey};let bie=(()=>{class n extends H7{constructor(t){super(t)}supports(t){return null!=n.parseEventName(t)}addEventListener(t,i,r){const s=n.parseEventName(i),o=n.eventCallback(s.fullKey,r,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>My().onAndCancel(t,s.domEventName,o))}static parseEventName(t){const i=t.toLowerCase().split("."),r=i.shift();if(0===i.length||"keydown"!==r&&"keyup"!==r)return null;const s=n._normalizeKey(i.pop());let o="",l=i.indexOf("code");if(l>-1&&(i.splice(l,1),o="code."),j7.forEach(h=>{const f=i.indexOf(h);f>-1&&(i.splice(f,1),o+=h+".")}),o+=s,0!=i.length||0===s.length)return null;const d={};return d.domEventName=r,d.fullKey=o,d}static matchEventFullKeyCode(t,i){let r=yie[t.key]||t.key,s="";return i.indexOf("code.")>-1&&(r=t.code,s="code."),!(null==r||!r)&&(r=r.toLowerCase()," "===r?r="space":"."===r&&(r="dot"),j7.forEach(o=>{o!==r&&(0,vie[o])(t)&&(s+=o+".")}),s+=r,s===i)}static eventCallback(t,i,r){return s=>{n.matchEventFullKeyCode(s,t)&&r.runGuarded(()=>i(s))}}static _normalizeKey(t){return"esc"===t?"escape":t}static#e=this.\u0275fac=function(i){return new(i||n)(xi(ba))};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac})}return n})();const Mie=wU(Cee,"browser",[{provide:Kp,useValue:T7},{provide:Hx,useValue:function xie(){UR.makeCurrent()},multi:!0},{provide:ba,useFactory:function Cie(){return function HC(n){xv=n}(document),document},deps:[]}]),Sie=new Bi(""),Y7=[{provide:W3,useClass:class lie{addToWindow(e){wn.getAngularTestability=(i,r=!0)=>{const s=e.findTestabilityInTree(i,r);if(null==s)throw new Ln(5103,!1);return s},wn.getAllAngularTestabilities=()=>e.getAllTestabilities(),wn.getAllAngularRootElements=()=>e.getAllRootElements(),wn.frameworkStabilizers||(wn.frameworkStabilizers=[]),wn.frameworkStabilizers.push(i=>{const r=wn.getAllAngularTestabilities();let s=r.length;const o=function(){s--,0==s&&i()};r.forEach(l=>{l.whenStable(o)})})}findTestabilityInTree(e,t,i){return null==t?null:e.getTestability(t)??(i?My().isShadowRoot(t)?this.findTestabilityInTree(e,t.host,!0):this.findTestabilityInTree(e,t.parentElement,!0):null)}},deps:[]},{provide:uU,useClass:lR,deps:[io,cR,W3]},{provide:lR,useClass:lR,deps:[io,cR,W3]}],K7=[{provide:nu,useValue:"root"},{provide:xl,useFactory:function wie(){return new xl},deps:[]},{provide:zR,useClass:_ie,multi:!0,deps:[ba,io,Kp]},{provide:zR,useClass:bie,multi:!0,deps:[ba]},qR,V7,z7,{provide:OM,useExisting:qR},{provide:B7,useClass:cie,deps:[]},[]];let Z7=(()=>{class n{constructor(t){}static withServerTransition(t){return{ngModule:n,providers:[{provide:v_,useValue:t.appId}]}}static#e=this.\u0275fac=function(i){return new(i||n)(xi(Sie,12))};static#t=this.\u0275mod=vo({type:n});static#n=this.\u0275inj=ra({providers:[...K7,...Y7],imports:[uS,Mee]})}return n})(),Eie=(()=>{class n{constructor(t){this._doc=t}getTitle(){return this._doc.title}setTitle(t){this._doc.title=t||""}static#e=this.\u0275fac=function(i){return new(i||n)(xi(ba))};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();function n9(n){return n&&Je(n.schedule)}function $R(n){return n[n.length-1]}function i9(n){return Je($R(n))?n.pop():void 0}function gS(n){return n9($R(n))?n.pop():void 0}function Sy(n){return this instanceof Sy?(this.v=n,this):new Sy(n)}function a9(n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,e=n[Symbol.asyncIterator];return e?e.call(n):(n=function ZR(n){var e="function"==typeof Symbol&&Symbol.iterator,t=e&&n[e],i=0;if(t)return t.call(n);if(n&&"number"==typeof n.length)return{next:function(){return n&&i>=n.length&&(n=void 0),{value:n&&n[i++],done:!n}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}(n),t={},i("next"),i("throw"),i("return"),t[Symbol.asyncIterator]=function(){return this},t);function i(s){t[s]=n[s]&&function(o){return new Promise(function(l,d){!function r(s,o,l,d){Promise.resolve(d).then(function(h){s({value:h,done:l})},o)}(l,d,(o=n[s](o)).done,o.value)})}}}"function"==typeof SuppressedError&&SuppressedError;const JR=n=>n&&"number"==typeof n.length&&"function"!=typeof n;function l9(n){return Je(n?.then)}function c9(n){return Je(n[xt])}function d9(n){return Symbol.asyncIterator&&Je(n?.[Symbol.asyncIterator])}function h9(n){return new TypeError(`You provided ${null!==n&&"object"==typeof n?"an invalid object":`'${n}'`} where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.`)}const u9=function ere(){return"function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator"}();function f9(n){return Je(n?.[u9])}function p9(n){return function o9(n,e,t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r,i=t.apply(n,e||[]),s=[];return r={},o("next"),o("throw"),o("return"),r[Symbol.asyncIterator]=function(){return this},r;function o(S){i[S]&&(r[S]=function(R){return new Promise(function(G,re){s.push([S,R,G,re])>1||l(S,R)})})}function l(S,R){try{!function d(S){S.value instanceof Sy?Promise.resolve(S.value.v).then(h,f):A(s[0][2],S)}(i[S](R))}catch(G){A(s[0][3],G)}}function h(S){l("next",S)}function f(S){l("throw",S)}function A(S,R){S(R),s.shift(),s.length&&l(s[0][0],s[0][1])}}(this,arguments,function*(){const t=n.getReader();try{for(;;){const{value:i,done:r}=yield Sy(t.read());if(r)return yield Sy(void 0);yield yield Sy(i)}}finally{t.releaseLock()}})}function m9(n){return Je(n?.getReader)}function Nu(n){if(n instanceof Pe)return n;if(null!=n){if(c9(n))return function tre(n){return new Pe(e=>{const t=n[xt]();if(Je(t.subscribe))return t.subscribe(e);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}(n);if(JR(n))return function nre(n){return new Pe(e=>{for(let t=0;t{n.then(t=>{e.closed||(e.next(t),e.complete())},t=>e.error(t)).then(null,qt)})}(n);if(d9(n))return A9(n);if(f9(n))return function rre(n){return new Pe(e=>{for(const t of n)if(e.next(t),e.closed)return;e.complete()})}(n);if(m9(n))return function sre(n){return A9(p9(n))}(n)}throw h9(n)}function A9(n){return new Pe(e=>{(function ore(n,e){var t,i,r,s;return function r9(n,e,t,i){return new(t||(t=Promise))(function(s,o){function l(f){try{h(i.next(f))}catch(A){o(A)}}function d(f){try{h(i.throw(f))}catch(A){o(A)}}function h(f){f.done?s(f.value):function r(s){return s instanceof t?s:new t(function(o){o(s)})}(f.value).then(l,d)}h((i=i.apply(n,e||[])).next())})}(this,void 0,void 0,function*(){try{for(t=a9(n);!(i=yield t.next()).done;)if(e.next(i.value),e.closed)return}catch(o){r={error:o}}finally{try{i&&!i.done&&(s=t.return)&&(yield s.call(t))}finally{if(r)throw r.error}}e.complete()})})(n,e).catch(t=>e.error(t))})}function N_(n,e,t,i=0,r=!1){const s=e.schedule(function(){t(),r?n.add(this.schedule(null,i)):this.unsubscribe()},i);if(n.add(s),!r)return s}function g9(n,e=0){return ci((t,i)=>{t.subscribe(Pi(i,r=>N_(i,n,()=>i.next(r),e),()=>N_(i,n,()=>i.complete(),e),r=>N_(i,n,()=>i.error(r),e)))})}function _9(n,e=0){return ci((t,i)=>{i.add(n.schedule(()=>t.subscribe(i),e))})}function y9(n,e){if(!n)throw new Error("Iterable cannot be null");return new Pe(t=>{N_(t,e,()=>{const i=n[Symbol.asyncIterator]();N_(t,e,()=>{i.next().then(r=>{r.done?t.complete():t.next(r.value)})},0,!0)})})}function ah(n,e){return e?function ure(n,e){if(null!=n){if(c9(n))return function are(n,e){return Nu(n).pipe(_9(e),g9(e))}(n,e);if(JR(n))return function cre(n,e){return new Pe(t=>{let i=0;return e.schedule(function(){i===n.length?t.complete():(t.next(n[i++]),t.closed||this.schedule())})})}(n,e);if(l9(n))return function lre(n,e){return Nu(n).pipe(_9(e),g9(e))}(n,e);if(d9(n))return y9(n,e);if(f9(n))return function dre(n,e){return new Pe(t=>{let i;return N_(t,e,()=>{i=n[u9](),N_(t,e,()=>{let r,s;try{({value:r,done:s}=i.next())}catch(o){return void t.error(o)}s?t.complete():t.next(r)},0,!0)}),()=>Je(i?.return)&&i.return()})}(n,e);if(m9(n))return function hre(n,e){return y9(p9(n),e)}(n,e)}throw h9(n)}(n,e):Nu(n)}function po(...n){return ah(n,gS(n))}function qh(n,e,t=1/0){return Je(e)?qh((i,r)=>bi((s,o)=>e(i,s,r,o))(Nu(n(i,r))),t):("number"==typeof e&&(t=e),ci((i,r)=>function fre(n,e,t,i,r,s,o,l){const d=[];let h=0,f=0,A=!1;const S=()=>{A&&!d.length&&!h&&e.complete()},R=re=>h{s&&e.next(re),h++;let se=!1;Nu(t(re,f++)).subscribe(Pi(e,le=>{r?.(le),s?R(le):e.next(le)},()=>{se=!0},void 0,()=>{if(se)try{for(h--;d.length&&hG(le)):G(le)}S()}catch(le){e.error(le)}}))};return n.subscribe(Pi(e,R,()=>{A=!0,S()})),()=>{l?.()}}(i,r,n,t)))}function Yw(n,e){return Je(e)?qh(n,e,1):qh(n,1)}function od(n,e){return ci((t,i)=>{let r=0;t.subscribe(Pi(i,s=>n.call(e,s,r++)&&i.next(s)))})}function Kw(n){return ci((e,t)=>{try{e.subscribe(t)}finally{t.add(n)}})}function Df(n,e){return ci((t,i)=>{let r=null,s=0,o=!1;const l=()=>o&&!r&&i.complete();t.subscribe(Pi(i,d=>{r?.unsubscribe();let h=0;const f=s++;Nu(n(d,f)).subscribe(r=Pi(i,A=>i.next(e?e(d,A,f,h++):A),()=>{r=null,l()}))},()=>{o=!0,l()}))})}class gD{}class _D{}class lm{constructor(e){this.normalizedNames=new Map,this.lazyUpdate=null,e?"string"==typeof e?this.lazyInit=()=>{this.headers=new Map,e.split("\n").forEach(t=>{const i=t.indexOf(":");if(i>0){const r=t.slice(0,i),s=r.toLowerCase(),o=t.slice(i+1).trim();this.maybeSetNormalizedName(r,s),this.headers.has(s)?this.headers.get(s).push(o):this.headers.set(s,[o])}})}:typeof Headers<"u"&&e instanceof Headers?(this.headers=new Map,e.forEach((t,i)=>{this.setHeaderEntries(i,t)})):this.lazyInit=()=>{this.headers=new Map,Object.entries(e).forEach(([t,i])=>{this.setHeaderEntries(t,i)})}:this.headers=new Map}has(e){return this.init(),this.headers.has(e.toLowerCase())}get(e){this.init();const t=this.headers.get(e.toLowerCase());return t&&t.length>0?t[0]:null}keys(){return this.init(),Array.from(this.normalizedNames.values())}getAll(e){return this.init(),this.headers.get(e.toLowerCase())||null}append(e,t){return this.clone({name:e,value:t,op:"a"})}set(e,t){return this.clone({name:e,value:t,op:"s"})}delete(e,t){return this.clone({name:e,value:t,op:"d"})}maybeSetNormalizedName(e,t){this.normalizedNames.has(t)||this.normalizedNames.set(t,e)}init(){this.lazyInit&&(this.lazyInit instanceof lm?this.copyFrom(this.lazyInit):this.lazyInit(),this.lazyInit=null,this.lazyUpdate&&(this.lazyUpdate.forEach(e=>this.applyUpdate(e)),this.lazyUpdate=null))}copyFrom(e){e.init(),Array.from(e.headers.keys()).forEach(t=>{this.headers.set(t,e.headers.get(t)),this.normalizedNames.set(t,e.normalizedNames.get(t))})}clone(e){const t=new lm;return t.lazyInit=this.lazyInit&&this.lazyInit instanceof lm?this.lazyInit:this,t.lazyUpdate=(this.lazyUpdate||[]).concat([e]),t}applyUpdate(e){const t=e.name.toLowerCase();switch(e.op){case"a":case"s":let i=e.value;if("string"==typeof i&&(i=[i]),0===i.length)return;this.maybeSetNormalizedName(e.name,t);const r=("a"===e.op?this.headers.get(t):void 0)||[];r.push(...i),this.headers.set(t,r);break;case"d":const s=e.value;if(s){let o=this.headers.get(t);if(!o)return;o=o.filter(l=>-1===s.indexOf(l)),0===o.length?(this.headers.delete(t),this.normalizedNames.delete(t)):this.headers.set(t,o)}else this.headers.delete(t),this.normalizedNames.delete(t)}}setHeaderEntries(e,t){const i=(Array.isArray(t)?t:[t]).map(s=>s.toString()),r=e.toLowerCase();this.headers.set(r,i),this.maybeSetNormalizedName(e,r)}forEach(e){this.init(),Array.from(this.normalizedNames.keys()).forEach(t=>e(this.normalizedNames.get(t),this.headers.get(t)))}}class pre{encodeKey(e){return v9(e)}encodeValue(e){return v9(e)}decodeKey(e){return decodeURIComponent(e)}decodeValue(e){return decodeURIComponent(e)}}const Are=/%(\d[a-f0-9])/gi,gre={40:"@","3A":":",24:"$","2C":",","3B":";","3D":"=","3F":"?","2F":"/"};function v9(n){return encodeURIComponent(n).replace(Are,(e,t)=>gre[t]??e)}function yD(n){return`${n}`}class Ey{constructor(e={}){if(this.updates=null,this.cloneFrom=null,this.encoder=e.encoder||new pre,e.fromString){if(e.fromObject)throw new Error("Cannot specify both fromString and fromObject.");this.map=function mre(n,e){const t=new Map;return n.length>0&&n.replace(/^\?/,"").split("&").forEach(r=>{const s=r.indexOf("="),[o,l]=-1==s?[e.decodeKey(r),""]:[e.decodeKey(r.slice(0,s)),e.decodeValue(r.slice(s+1))],d=t.get(o)||[];d.push(l),t.set(o,d)}),t}(e.fromString,this.encoder)}else e.fromObject?(this.map=new Map,Object.keys(e.fromObject).forEach(t=>{const i=e.fromObject[t],r=Array.isArray(i)?i.map(yD):[yD(i)];this.map.set(t,r)})):this.map=null}has(e){return this.init(),this.map.has(e)}get(e){this.init();const t=this.map.get(e);return t?t[0]:null}getAll(e){return this.init(),this.map.get(e)||null}keys(){return this.init(),Array.from(this.map.keys())}append(e,t){return this.clone({param:e,value:t,op:"a"})}appendAll(e){const t=[];return Object.keys(e).forEach(i=>{const r=e[i];Array.isArray(r)?r.forEach(s=>{t.push({param:i,value:s,op:"a"})}):t.push({param:i,value:r,op:"a"})}),this.clone(t)}set(e,t){return this.clone({param:e,value:t,op:"s"})}delete(e,t){return this.clone({param:e,value:t,op:"d"})}toString(){return this.init(),this.keys().map(e=>{const t=this.encoder.encodeKey(e);return this.map.get(e).map(i=>t+"="+this.encoder.encodeValue(i)).join("&")}).filter(e=>""!==e).join("&")}clone(e){const t=new Ey({encoder:this.encoder});return t.cloneFrom=this.cloneFrom||this,t.updates=(this.updates||[]).concat(e),t}init(){null===this.map&&(this.map=new Map),null!==this.cloneFrom&&(this.cloneFrom.init(),this.cloneFrom.keys().forEach(e=>this.map.set(e,this.cloneFrom.map.get(e))),this.updates.forEach(e=>{switch(e.op){case"a":case"s":const t=("a"===e.op?this.map.get(e.param):void 0)||[];t.push(yD(e.value)),this.map.set(e.param,t);break;case"d":if(void 0===e.value){this.map.delete(e.param);break}{let i=this.map.get(e.param)||[];const r=i.indexOf(yD(e.value));-1!==r&&i.splice(r,1),i.length>0?this.map.set(e.param,i):this.map.delete(e.param)}}}),this.cloneFrom=this.updates=null)}}class _re{constructor(){this.map=new Map}set(e,t){return this.map.set(e,t),this}get(e){return this.map.has(e)||this.map.set(e,e.defaultValue()),this.map.get(e)}delete(e){return this.map.delete(e),this}has(e){return this.map.has(e)}keys(){return this.map.keys()}}function b9(n){return typeof ArrayBuffer<"u"&&n instanceof ArrayBuffer}function x9(n){return typeof Blob<"u"&&n instanceof Blob}function w9(n){return typeof FormData<"u"&&n instanceof FormData}class _S{constructor(e,t,i,r){let s;if(this.url=t,this.body=null,this.reportProgress=!1,this.withCredentials=!1,this.responseType="json",this.method=e.toUpperCase(),function yre(n){switch(n){case"DELETE":case"GET":case"HEAD":case"OPTIONS":case"JSONP":return!1;default:return!0}}(this.method)||r?(this.body=void 0!==i?i:null,s=r):s=i,s&&(this.reportProgress=!!s.reportProgress,this.withCredentials=!!s.withCredentials,s.responseType&&(this.responseType=s.responseType),s.headers&&(this.headers=s.headers),s.context&&(this.context=s.context),s.params&&(this.params=s.params),this.transferCache=s.transferCache),this.headers??=new lm,this.context??=new _re,this.params){const o=this.params.toString();if(0===o.length)this.urlWithParams=t;else{const l=t.indexOf("?");this.urlWithParams=t+(-1===l?"?":lA.set(S,e.setHeaders[S]),d)),e.setParams&&(h=Object.keys(e.setParams).reduce((A,S)=>A.set(S,e.setParams[S]),h)),new _S(t,i,s,{params:h,headers:d,context:f,reportProgress:l,responseType:r,withCredentials:o})}}var Ty=function(n){return n[n.Sent=0]="Sent",n[n.UploadProgress=1]="UploadProgress",n[n.ResponseHeader=2]="ResponseHeader",n[n.DownloadProgress=3]="DownloadProgress",n[n.Response=4]="Response",n[n.User=5]="User",n}(Ty||{});class ek{constructor(e,t=yS.Ok,i="OK"){this.headers=e.headers||new lm,this.status=void 0!==e.status?e.status:t,this.statusText=e.statusText||i,this.url=e.url||null,this.ok=this.status>=200&&this.status<300}}class vD extends ek{constructor(e={}){super(e),this.type=Ty.ResponseHeader}clone(e={}){return new vD({headers:e.headers||this.headers,status:void 0!==e.status?e.status:this.status,statusText:e.statusText||this.statusText,url:e.url||this.url||void 0})}}class _b extends ek{constructor(e={}){super(e),this.type=Ty.Response,this.body=void 0!==e.body?e.body:null}clone(e={}){return new _b({body:void 0!==e.body?e.body:this.body,headers:e.headers||this.headers,status:void 0!==e.status?e.status:this.status,statusText:e.statusText||this.statusText,url:e.url||this.url||void 0})}}class Zw extends ek{constructor(e){super(e,0,"Unknown Error"),this.name="HttpErrorResponse",this.ok=!1,this.message=this.status>=200&&this.status<300?`Http failure during parsing for ${e.url||"(unknown url)"}`:`Http failure response for ${e.url||"(unknown url)"}: ${e.status} ${e.statusText}`,this.error=e.error||null}}var yS=function(n){return n[n.Continue=100]="Continue",n[n.SwitchingProtocols=101]="SwitchingProtocols",n[n.Processing=102]="Processing",n[n.EarlyHints=103]="EarlyHints",n[n.Ok=200]="Ok",n[n.Created=201]="Created",n[n.Accepted=202]="Accepted",n[n.NonAuthoritativeInformation=203]="NonAuthoritativeInformation",n[n.NoContent=204]="NoContent",n[n.ResetContent=205]="ResetContent",n[n.PartialContent=206]="PartialContent",n[n.MultiStatus=207]="MultiStatus",n[n.AlreadyReported=208]="AlreadyReported",n[n.ImUsed=226]="ImUsed",n[n.MultipleChoices=300]="MultipleChoices",n[n.MovedPermanently=301]="MovedPermanently",n[n.Found=302]="Found",n[n.SeeOther=303]="SeeOther",n[n.NotModified=304]="NotModified",n[n.UseProxy=305]="UseProxy",n[n.Unused=306]="Unused",n[n.TemporaryRedirect=307]="TemporaryRedirect",n[n.PermanentRedirect=308]="PermanentRedirect",n[n.BadRequest=400]="BadRequest",n[n.Unauthorized=401]="Unauthorized",n[n.PaymentRequired=402]="PaymentRequired",n[n.Forbidden=403]="Forbidden",n[n.NotFound=404]="NotFound",n[n.MethodNotAllowed=405]="MethodNotAllowed",n[n.NotAcceptable=406]="NotAcceptable",n[n.ProxyAuthenticationRequired=407]="ProxyAuthenticationRequired",n[n.RequestTimeout=408]="RequestTimeout",n[n.Conflict=409]="Conflict",n[n.Gone=410]="Gone",n[n.LengthRequired=411]="LengthRequired",n[n.PreconditionFailed=412]="PreconditionFailed",n[n.PayloadTooLarge=413]="PayloadTooLarge",n[n.UriTooLong=414]="UriTooLong",n[n.UnsupportedMediaType=415]="UnsupportedMediaType",n[n.RangeNotSatisfiable=416]="RangeNotSatisfiable",n[n.ExpectationFailed=417]="ExpectationFailed",n[n.ImATeapot=418]="ImATeapot",n[n.MisdirectedRequest=421]="MisdirectedRequest",n[n.UnprocessableEntity=422]="UnprocessableEntity",n[n.Locked=423]="Locked",n[n.FailedDependency=424]="FailedDependency",n[n.TooEarly=425]="TooEarly",n[n.UpgradeRequired=426]="UpgradeRequired",n[n.PreconditionRequired=428]="PreconditionRequired",n[n.TooManyRequests=429]="TooManyRequests",n[n.RequestHeaderFieldsTooLarge=431]="RequestHeaderFieldsTooLarge",n[n.UnavailableForLegalReasons=451]="UnavailableForLegalReasons",n[n.InternalServerError=500]="InternalServerError",n[n.NotImplemented=501]="NotImplemented",n[n.BadGateway=502]="BadGateway",n[n.ServiceUnavailable=503]="ServiceUnavailable",n[n.GatewayTimeout=504]="GatewayTimeout",n[n.HttpVersionNotSupported=505]="HttpVersionNotSupported",n[n.VariantAlsoNegotiates=506]="VariantAlsoNegotiates",n[n.InsufficientStorage=507]="InsufficientStorage",n[n.LoopDetected=508]="LoopDetected",n[n.NotExtended=510]="NotExtended",n[n.NetworkAuthenticationRequired=511]="NetworkAuthenticationRequired",n}(yS||{});function tk(n,e){return{body:e,headers:n.headers,context:n.context,observe:n.observe,params:n.params,reportProgress:n.reportProgress,responseType:n.responseType,withCredentials:n.withCredentials,transferCache:n.transferCache}}let vS=(()=>{class n{constructor(t){this.handler=t}request(t,i,r={}){let s;if(t instanceof _S)s=t;else{let d,h;d=r.headers instanceof lm?r.headers:new lm(r.headers),r.params&&(h=r.params instanceof Ey?r.params:new Ey({fromObject:r.params})),s=new _S(t,i,void 0!==r.body?r.body:null,{headers:d,context:r.context,params:h,reportProgress:r.reportProgress,responseType:r.responseType||"json",withCredentials:r.withCredentials,transferCache:r.transferCache})}const o=po(s).pipe(Yw(d=>this.handler.handle(d)));if(t instanceof _S||"events"===r.observe)return o;const l=o.pipe(od(d=>d instanceof _b));switch(r.observe||"body"){case"body":switch(s.responseType){case"arraybuffer":return l.pipe(bi(d=>{if(null!==d.body&&!(d.body instanceof ArrayBuffer))throw new Error("Response is not an ArrayBuffer.");return d.body}));case"blob":return l.pipe(bi(d=>{if(null!==d.body&&!(d.body instanceof Blob))throw new Error("Response is not a Blob.");return d.body}));case"text":return l.pipe(bi(d=>{if(null!==d.body&&"string"!=typeof d.body)throw new Error("Response is not a string.");return d.body}));default:return l.pipe(bi(d=>d.body))}case"response":return l;default:throw new Error(`Unreachable: unhandled observe type ${r.observe}}`)}}delete(t,i={}){return this.request("DELETE",t,i)}get(t,i={}){return this.request("GET",t,i)}head(t,i={}){return this.request("HEAD",t,i)}jsonp(t,i){return this.request("JSONP",t,{params:(new Ey).append(i,"JSONP_CALLBACK"),observe:"body",responseType:"json"})}options(t,i={}){return this.request("OPTIONS",t,i)}patch(t,i,r={}){return this.request("PATCH",t,tk(r,i))}post(t,i,r={}){return this.request("POST",t,tk(r,i))}put(t,i,r={}){return this.request("PUT",t,tk(r,i))}static#e=this.\u0275fac=function(i){return new(i||n)(xi(gD))};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac})}return n})();function M9(n,e){return e(n)}function Mre(n,e){return(t,i)=>e.intercept(t,{handle:r=>n(r,i)})}const Ere=new Bi(""),bS=new Bi(""),S9=new Bi(""),E9=new Bi("");function Tre(){let n=null;return(e,t)=>{null===n&&(n=(pi(Ere,{optional:!0})??[]).reduceRight(Mre,M9));const i=pi(by),r=i.add();return n(e,t).pipe(Kw(()=>i.remove(r)))}}let T9=(()=>{class n extends gD{constructor(t,i){super(),this.backend=t,this.injector=i,this.chain=null,this.pendingTasks=pi(by);const r=pi(E9,{optional:!0});this.backend=r??t}handle(t){if(null===this.chain){const r=Array.from(new Set([...this.injector.get(bS),...this.injector.get(S9,[])]));this.chain=r.reduceRight((s,o)=>function Sre(n,e,t){return(i,r)=>El(t,()=>e(i,s=>n(s,r)))}(s,o,this.injector),M9)}const i=this.pendingTasks.add();return this.chain(t,r=>this.backend.handle(r)).pipe(Kw(()=>this.pendingTasks.remove(i)))}static#e=this.\u0275fac=function(i){return new(i||n)(xi(_D),xi(Rc))};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac})}return n})();const Rre=/^\)\]\}',?\n/;let I9=(()=>{class n{constructor(t){this.xhrFactory=t}handle(t){if("JSONP"===t.method)throw new Ln(-2800,!1);const i=this.xhrFactory;return(i.\u0275loadImpl?ah(i.\u0275loadImpl()):po(null)).pipe(Df(()=>new Pe(s=>{const o=i.build();if(o.open(t.method,t.urlWithParams),t.withCredentials&&(o.withCredentials=!0),t.headers.forEach((re,se)=>o.setRequestHeader(re,se.join(","))),t.headers.has("Accept")||o.setRequestHeader("Accept","application/json, text/plain, */*"),!t.headers.has("Content-Type")){const re=t.detectContentTypeHeader();null!==re&&o.setRequestHeader("Content-Type",re)}if(t.responseType){const re=t.responseType.toLowerCase();o.responseType="json"!==re?re:"text"}const l=t.serializeBody();let d=null;const h=()=>{if(null!==d)return d;const re=o.statusText||"OK",se=new lm(o.getAllResponseHeaders()),le=function kre(n){return"responseURL"in n&&n.responseURL?n.responseURL:/^X-Request-URL:/m.test(n.getAllResponseHeaders())?n.getResponseHeader("X-Request-URL"):null}(o)||t.url;return d=new vD({headers:se,status:o.status,statusText:re,url:le}),d},f=()=>{let{headers:re,status:se,statusText:le,url:Ee}=h(),Ce=null;se!==yS.NoContent&&(Ce=typeof o.response>"u"?o.responseText:o.response),0===se&&(se=Ce?yS.Ok:0);let We=se>=200&&se<300;if("json"===t.responseType&&"string"==typeof Ce){const Mt=Ce;Ce=Ce.replace(Rre,"");try{Ce=""!==Ce?JSON.parse(Ce):null}catch(yt){Ce=Mt,We&&(We=!1,Ce={error:yt,text:Ce})}}We?(s.next(new _b({body:Ce,headers:re,status:se,statusText:le,url:Ee||void 0})),s.complete()):s.error(new Zw({error:Ce,headers:re,status:se,statusText:le,url:Ee||void 0}))},A=re=>{const{url:se}=h(),le=new Zw({error:re,status:o.status||0,statusText:o.statusText||"Unknown Error",url:se||void 0});s.error(le)};let S=!1;const R=re=>{S||(s.next(h()),S=!0);let se={type:Ty.DownloadProgress,loaded:re.loaded};re.lengthComputable&&(se.total=re.total),"text"===t.responseType&&o.responseText&&(se.partialText=o.responseText),s.next(se)},G=re=>{let se={type:Ty.UploadProgress,loaded:re.loaded};re.lengthComputable&&(se.total=re.total),s.next(se)};return o.addEventListener("load",f),o.addEventListener("error",A),o.addEventListener("timeout",A),o.addEventListener("abort",A),t.reportProgress&&(o.addEventListener("progress",R),null!==l&&o.upload&&o.upload.addEventListener("progress",G)),o.send(l),s.next({type:Ty.Sent}),()=>{o.removeEventListener("error",A),o.removeEventListener("abort",A),o.removeEventListener("load",f),o.removeEventListener("timeout",A),t.reportProgress&&(o.removeEventListener("progress",R),null!==l&&o.upload&&o.upload.removeEventListener("progress",G)),o.readyState!==o.DONE&&o.abort()}})))}static#e=this.\u0275fac=function(i){return new(i||n)(xi(B7))};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac})}return n})();const rk=new Bi(""),B9=new Bi("",{providedIn:"root",factory:()=>"XSRF-TOKEN"}),P9=new Bi("",{providedIn:"root",factory:()=>"X-XSRF-TOKEN"});class R9{}let Lre=(()=>{class n{constructor(t,i,r){this.doc=t,this.platform=i,this.cookieName=r,this.lastCookieString="",this.lastToken=null,this.parseCount=0}getToken(){if("server"===this.platform)return null;const t=this.doc.cookie||"";return t!==this.lastCookieString&&(this.parseCount++,this.lastToken=g7(t,this.cookieName),this.lastCookieString=t),this.lastToken}static#e=this.\u0275fac=function(i){return new(i||n)(xi(ba),xi(Kp),xi(B9))};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac})}return n})();function Nre(n,e){const t=n.url.toLowerCase();if(!pi(rk)||"GET"===n.method||"HEAD"===n.method||t.startsWith("http://")||t.startsWith("https://"))return e(n);const i=pi(R9).getToken(),r=pi(P9);return null!=i&&!n.headers.has(r)&&(n=n.clone({headers:n.headers.set(r,i)})),e(n)}var Dy=function(n){return n[n.Interceptors=0]="Interceptors",n[n.LegacyInterceptors=1]="LegacyInterceptors",n[n.CustomXsrfConfiguration=2]="CustomXsrfConfiguration",n[n.NoXsrfProtection=3]="NoXsrfProtection",n[n.JsonpSupport=4]="JsonpSupport",n[n.RequestsMadeViaParent=5]="RequestsMadeViaParent",n[n.Fetch=6]="Fetch",n}(Dy||{});function Ure(...n){const e=[vS,I9,T9,{provide:gD,useExisting:T9},{provide:_D,useExisting:I9},{provide:bS,useValue:Nre,multi:!0},{provide:rk,useValue:!0},{provide:R9,useClass:Lre}];for(const t of n)e.push(...t.\u0275providers);return function Lh(n){return{\u0275providers:n}}(e)}const k9=new Bi("");function zre(){return function yb(n,e){return{\u0275kind:n,\u0275providers:e}}(Dy.LegacyInterceptors,[{provide:k9,useFactory:Tre},{provide:bS,useExisting:k9,multi:!0}])}let Hre=(()=>{class n{static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275mod=vo({type:n});static#n=this.\u0275inj=ra({providers:[Ure(zre())]})}return n})();const{isArray:jre}=Array,{getPrototypeOf:$re,prototype:Xre,keys:Yre}=Object;function H9(n){if(1===n.length){const e=n[0];if(jre(e))return{args:e,keys:null};if(function Kre(n){return n&&"object"==typeof n&&$re(n)===Xre}(e)){const t=Yre(e);return{args:t.map(i=>e[i]),keys:t}}}return{args:n,keys:null}}const{isArray:Zre}=Array;function sk(n){return bi(e=>function Jre(n,e){return Zre(e)?n(...e):n(e)}(n,e))}function V9(n,e){return n.reduce((t,i,r)=>(t[i]=e[r],t),{})}function xD(...n){const e=gS(n),t=i9(n),{args:i,keys:r}=H9(n);if(0===i.length)return ah([],e);const s=new Pe(function ese(n,e,t=K){return i=>{G9(e,()=>{const{length:r}=n,s=new Array(r);let o=r,l=r;for(let d=0;d{const h=ah(n[d],e);let f=!1;h.subscribe(Pi(i,A=>{s[d]=A,f||(f=!0,l--),l||i.next(t(s.slice()))},()=>{--o||i.complete()}))},i)},i)}}(i,e,r?o=>V9(r,o):K));return t?s.pipe(sk(t)):s}function G9(n,e,t){n?N_(t,n,e):e()}const wD=tt(n=>function(){n(this),this.name="EmptyError",this.message="no elements in sequence"});function Jw(n=1/0){return qh(K,n)}function wS(...n){return function tse(){return Jw(1)}()(ah(n,gS(n)))}function CD(n){return new Pe(e=>{Nu(n()).subscribe(e)})}function CS(n,e){const t=Je(n)?n:()=>n,i=r=>r.error(t());return new Pe(e?r=>e.schedule(i,0,r):i)}const rA=new Pe(n=>n.complete());function ok(){return ci((n,e)=>{let t=null;n._refCount++;const i=Pi(e,void 0,void 0,void 0,()=>{if(!n||n._refCount<=0||0<--n._refCount)return void(t=null);const r=n._connection,s=t;t=null,r&&(!s||r===s)&&r.unsubscribe(),e.unsubscribe()});n.subscribe(i),i.closed||(t=n.connect())})}class ak extends Pe{constructor(e,t){super(),this.source=e,this.subjectFactory=t,this._subject=null,this._refCount=0,this._connection=null,In(e)&&(this.lift=e.lift)}_subscribe(e){return this.getSubject().subscribe(e)}getSubject(){const e=this._subject;return(!e||e.isStopped)&&(this._subject=this.subjectFactory()),this._subject}_teardown(){this._refCount=0;const{_connection:e}=this;this._subject=this._connection=null,e?.unsubscribe()}connect(){let e=this._connection;if(!e){e=this._connection=new rt;const t=this.getSubject();e.add(this.source.subscribe(Pi(t,void 0,()=>{this._teardown(),t.complete()},i=>{this._teardown(),t.error(i)},()=>this._teardown()))),e.closed&&(this._connection=null,e=rt.EMPTY)}return e}refCount(){return ok()(this)}}function ad(n){return n<=0?()=>rA:ci((e,t)=>{let i=0;e.subscribe(Pi(t,r=>{++i<=n&&(t.next(r),n<=i&&t.complete())}))})}function sA(...n){const e=gS(n);return ci((t,i)=>{(e?wS(n,t,e):wS(n,t)).subscribe(i)})}function MD(n){return ci((e,t)=>{let i=!1;e.subscribe(Pi(t,r=>{i=!0,t.next(r)},()=>{i||t.next(n),t.complete()}))})}function q9(n=ise){return ci((e,t)=>{let i=!1;e.subscribe(Pi(t,r=>{i=!0,t.next(r)},()=>i?t.complete():t.error(n())))})}function ise(){return new wD}function vb(n,e){const t=arguments.length>=2;return i=>i.pipe(n?od((r,s)=>n(r,s,i)):K,ad(1),t?MD(e):q9(()=>new wD))}function lh(n,e,t){const i=Je(n)||e||t?{next:n,error:e,complete:t}:n;return i?ci((r,s)=>{var o;null===(o=i.subscribe)||void 0===o||o.call(i);let l=!0;r.subscribe(Pi(s,d=>{var h;null===(h=i.next)||void 0===h||h.call(i,d),s.next(d)},()=>{var d;l=!1,null===(d=i.complete)||void 0===d||d.call(i),s.complete()},d=>{var h;l=!1,null===(h=i.error)||void 0===h||h.call(i,d),s.error(d)},()=>{var d,h;l&&(null===(d=i.unsubscribe)||void 0===d||d.call(i)),null===(h=i.finalize)||void 0===h||h.call(i)}))}):K}function bb(n){return ci((e,t)=>{let s,i=null,r=!1;i=e.subscribe(Pi(t,void 0,void 0,o=>{s=Nu(n(o,bb(n)(e))),i?(i.unsubscribe(),i=null,s.subscribe(t)):r=!0})),r&&(i.unsubscribe(),i=null,s.subscribe(t))})}function lk(n){return n<=0?()=>rA:ci((e,t)=>{let i=[];e.subscribe(Pi(t,r=>{i.push(r),n{for(const r of i)t.next(r);t.complete()},void 0,()=>{i=null}))})}function Q9(n){return bi(()=>n)}function Ql(n){return ci((e,t)=>{Nu(n).subscribe(Pi(t,()=>t.complete(),Ot)),!t.closed&&e.subscribe(t)})}const Ra="primary",MS=Symbol("RouteTitle");class ase{constructor(e){this.params=e||{}}has(e){return Object.prototype.hasOwnProperty.call(this.params,e)}get(e){if(this.has(e)){const t=this.params[e];return Array.isArray(t)?t[0]:t}return null}getAll(e){if(this.has(e)){const t=this.params[e];return Array.isArray(t)?t:[t]}return[]}get keys(){return Object.keys(this.params)}}function e2(n){return new ase(n)}function lse(n,e,t){const i=t.path.split("/");if(i.length>n.length||"full"===t.pathMatch&&(e.hasChildren()||i.lengthi[s]===r)}return n===e}function j9(n){return n.length>0?n[n.length-1]:null}function Iy(n){return function xS(n){return!!n&&(n instanceof Pe||Je(n.lift)&&Je(n.subscribe))}(n)?n:lS(n)?ah(Promise.resolve(n)):po(n)}const dse={exact:function Y9(n,e,t){if(!xb(n.segments,e.segments)||!SD(n.segments,e.segments,t)||n.numberOfChildren!==e.numberOfChildren)return!1;for(const i in e.children)if(!n.children[i]||!Y9(n.children[i],e.children[i],t))return!1;return!0},subset:K9},$9={exact:function hse(n,e){return v0(n,e)},subset:function use(n,e){return Object.keys(e).length<=Object.keys(n).length&&Object.keys(e).every(t=>W9(n[t],e[t]))},ignored:()=>!0};function X9(n,e,t){return dse[t.paths](n.root,e.root,t.matrixParams)&&$9[t.queryParams](n.queryParams,e.queryParams)&&!("exact"===t.fragment&&n.fragment!==e.fragment)}function K9(n,e,t){return Z9(n,e,e.segments,t)}function Z9(n,e,t,i){if(n.segments.length>t.length){const r=n.segments.slice(0,t.length);return!(!xb(r,t)||e.hasChildren()||!SD(r,t,i))}if(n.segments.length===t.length){if(!xb(n.segments,t)||!SD(n.segments,t,i))return!1;for(const r in e.children)if(!n.children[r]||!K9(n.children[r],e.children[r],i))return!1;return!0}{const r=t.slice(0,n.segments.length),s=t.slice(n.segments.length);return!!(xb(n.segments,r)&&SD(n.segments,r,i)&&n.children[Ra])&&Z9(n.children[Ra],e,s,i)}}function SD(n,e,t){return e.every((i,r)=>$9[t](n[r].parameters,i.parameters))}class t2{constructor(e=new tc([],{}),t={},i=null){this.root=e,this.queryParams=t,this.fragment=i}get queryParamMap(){return this._queryParamMap??=e2(this.queryParams),this._queryParamMap}toString(){return mse.serialize(this)}}class tc{constructor(e,t){this.segments=e,this.children=t,this.parent=null,Object.values(t).forEach(i=>i.parent=this)}hasChildren(){return this.numberOfChildren>0}get numberOfChildren(){return Object.keys(this.children).length}toString(){return ED(this)}}class SS{constructor(e,t){this.path=e,this.parameters=t}get parameterMap(){return this._parameterMap??=e2(this.parameters),this._parameterMap}toString(){return tz(this)}}function xb(n,e){return n.length===e.length&&n.every((t,i)=>t.path===e[i].path)}let n2=(()=>{class n{static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275prov=Gi({token:n,factory:()=>new dk,providedIn:"root"})}return n})();class dk{parse(e){const t=new Sse(e);return new t2(t.parseRootSegment(),t.parseQueryParams(),t.parseFragment())}serialize(e){const t=`/${ES(e.root,!0)}`,i=function _se(n){const e=Object.entries(n).map(([t,i])=>Array.isArray(i)?i.map(r=>`${TD(t)}=${TD(r)}`).join("&"):`${TD(t)}=${TD(i)}`).filter(t=>t);return e.length?`?${e.join("&")}`:""}(e.queryParams);return`${t}${i}${"string"==typeof e.fragment?`#${function Ase(n){return encodeURI(n)}(e.fragment)}`:""}`}}const mse=new dk;function ED(n){return n.segments.map(e=>tz(e)).join("/")}function ES(n,e){if(!n.hasChildren())return ED(n);if(e){const t=n.children[Ra]?ES(n.children[Ra],!1):"",i=[];return Object.entries(n.children).forEach(([r,s])=>{r!==Ra&&i.push(`${r}:${ES(s,!1)}`)}),i.length>0?`${t}(${i.join("//")})`:t}{const t=function pse(n,e){let t=[];return Object.entries(n.children).forEach(([i,r])=>{i===Ra&&(t=t.concat(e(r,i)))}),Object.entries(n.children).forEach(([i,r])=>{i!==Ra&&(t=t.concat(e(r,i)))}),t}(n,(i,r)=>r===Ra?[ES(n.children[Ra],!1)]:[`${r}:${ES(i,!1)}`]);return 1===Object.keys(n.children).length&&null!=n.children[Ra]?`${ED(n)}/${t[0]}`:`${ED(n)}/(${t.join("//")})`}}function J9(n){return encodeURIComponent(n).replace(/%40/g,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",")}function TD(n){return J9(n).replace(/%3B/gi,";")}function hk(n){return J9(n).replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/%26/gi,"&")}function DD(n){return decodeURIComponent(n)}function ez(n){return DD(n.replace(/\+/g,"%20"))}function tz(n){return`${hk(n.path)}${function gse(n){return Object.entries(n).map(([e,t])=>`;${hk(e)}=${hk(t)}`).join("")}(n.parameters)}`}const yse=/^[^\/()?;#]+/;function uk(n){const e=n.match(yse);return e?e[0]:""}const vse=/^[^\/()?;=#]+/,xse=/^[^=?&#]+/,Cse=/^[^&#]+/;class Sse{constructor(e){this.url=e,this.remaining=e}parseRootSegment(){return this.consumeOptional("/"),""===this.remaining||this.peekStartsWith("?")||this.peekStartsWith("#")?new tc([],{}):new tc([],this.parseChildren())}parseQueryParams(){const e={};if(this.consumeOptional("?"))do{this.parseQueryParam(e)}while(this.consumeOptional("&"));return e}parseFragment(){return this.consumeOptional("#")?decodeURIComponent(this.remaining):null}parseChildren(){if(""===this.remaining)return{};this.consumeOptional("/");const e=[];for(this.peekStartsWith("(")||e.push(this.parseSegment());this.peekStartsWith("/")&&!this.peekStartsWith("//")&&!this.peekStartsWith("/(");)this.capture("/"),e.push(this.parseSegment());let t={};this.peekStartsWith("/(")&&(this.capture("/"),t=this.parseParens(!0));let i={};return this.peekStartsWith("(")&&(i=this.parseParens(!1)),(e.length>0||Object.keys(t).length>0)&&(i[Ra]=new tc(e,t)),i}parseSegment(){const e=uk(this.remaining);if(""===e&&this.peekStartsWith(";"))throw new Ln(4009,!1);return this.capture(e),new SS(DD(e),this.parseMatrixParams())}parseMatrixParams(){const e={};for(;this.consumeOptional(";");)this.parseParam(e);return e}parseParam(e){const t=function bse(n){const e=n.match(vse);return e?e[0]:""}(this.remaining);if(!t)return;this.capture(t);let i="";if(this.consumeOptional("=")){const r=uk(this.remaining);r&&(i=r,this.capture(i))}e[DD(t)]=DD(i)}parseQueryParam(e){const t=function wse(n){const e=n.match(xse);return e?e[0]:""}(this.remaining);if(!t)return;this.capture(t);let i="";if(this.consumeOptional("=")){const o=function Mse(n){const e=n.match(Cse);return e?e[0]:""}(this.remaining);o&&(i=o,this.capture(i))}const r=ez(t),s=ez(i);if(e.hasOwnProperty(r)){let o=e[r];Array.isArray(o)||(o=[o],e[r]=o),o.push(s)}else e[r]=s}parseParens(e){const t={};for(this.capture("(");!this.consumeOptional(")")&&this.remaining.length>0;){const i=uk(this.remaining),r=this.remaining[i.length];if("/"!==r&&")"!==r&&";"!==r)throw new Ln(4010,!1);let s;i.indexOf(":")>-1?(s=i.slice(0,i.indexOf(":")),this.capture(s),this.capture(":")):e&&(s=Ra);const o=this.parseChildren();t[s]=1===Object.keys(o).length?o[Ra]:new tc([],o),this.consumeOptional("//")}return t}peekStartsWith(e){return this.remaining.startsWith(e)}consumeOptional(e){return!!this.peekStartsWith(e)&&(this.remaining=this.remaining.substring(e.length),!0)}capture(e){if(!this.consumeOptional(e))throw new Ln(4011,!1)}}function nz(n){return n.segments.length>0?new tc([],{[Ra]:n}):n}function iz(n){const e={};for(const[i,r]of Object.entries(n.children)){const s=iz(r);if(i===Ra&&0===s.segments.length&&s.hasChildren())for(const[o,l]of Object.entries(s.children))e[o]=l;else(s.segments.length>0||s.hasChildren())&&(e[i]=s)}return function Ese(n){if(1===n.numberOfChildren&&n.children[Ra]){const e=n.children[Ra];return new tc(n.segments.concat(e.segments),e.children)}return n}(new tc(n.segments,e))}function r2(n){return n instanceof t2}function rz(n){let e;const r=nz(function t(s){const o={};for(const d of s.children){const h=t(d);o[d.outlet]=h}const l=new tc(s.url,o);return s===n&&(e=l),l}(n.root));return e??r}function sz(n,e,t,i){let r=n;for(;r.parent;)r=r.parent;if(0===e.length)return fk(r,r,r,t,i);const s=function Dse(n){if("string"==typeof n[0]&&1===n.length&&"/"===n[0])return new az(!0,0,n);let e=0,t=!1;const i=n.reduce((r,s,o)=>{if("object"==typeof s&&null!=s){if(s.outlets){const l={};return Object.entries(s.outlets).forEach(([d,h])=>{l[d]="string"==typeof h?h.split("/"):h}),[...r,{outlets:l}]}if(s.segmentPath)return[...r,s.segmentPath]}return"string"!=typeof s?[...r,s]:0===o?(s.split("/").forEach((l,d)=>{0==d&&"."===l||(0==d&&""===l?t=!0:".."===l?e++:""!=l&&r.push(l))}),r):[...r,s]},[]);return new az(t,e,i)}(e);if(s.toRoot())return fk(r,r,new tc([],{}),t,i);const o=function Ise(n,e,t){if(n.isAbsolute)return new BD(e,!0,0);if(!t)return new BD(e,!1,NaN);if(null===t.parent)return new BD(t,!0,0);const i=ID(n.commands[0])?0:1;return function Bse(n,e,t){let i=n,r=e,s=t;for(;s>r;){if(s-=r,i=i.parent,!i)throw new Ln(4005,!1);r=i.segments.length}return new BD(i,!1,r-s)}(t,t.segments.length-1+i,n.numberOfDoubleDots)}(s,r,n),l=o.processChildren?DS(o.segmentGroup,o.index,s.commands):lz(o.segmentGroup,o.index,s.commands);return fk(r,o.segmentGroup,l,t,i)}function ID(n){return"object"==typeof n&&null!=n&&!n.outlets&&!n.segmentPath}function TS(n){return"object"==typeof n&&null!=n&&n.outlets}function fk(n,e,t,i,r){let o,s={};i&&Object.entries(i).forEach(([d,h])=>{s[d]=Array.isArray(h)?h.map(f=>`${f}`):`${h}`}),o=n===e?t:oz(n,e,t);const l=nz(iz(o));return new t2(l,s,r)}function oz(n,e,t){const i={};return Object.entries(n.children).forEach(([r,s])=>{i[r]=s===e?t:oz(s,e,t)}),new tc(n.segments,i)}class az{constructor(e,t,i){if(this.isAbsolute=e,this.numberOfDoubleDots=t,this.commands=i,e&&i.length>0&&ID(i[0]))throw new Ln(4003,!1);const r=i.find(TS);if(r&&r!==j9(i))throw new Ln(4004,!1)}toRoot(){return this.isAbsolute&&1===this.commands.length&&"/"==this.commands[0]}}class BD{constructor(e,t,i){this.segmentGroup=e,this.processChildren=t,this.index=i}}function lz(n,e,t){if(n??=new tc([],{}),0===n.segments.length&&n.hasChildren())return DS(n,e,t);const i=function Rse(n,e,t){let i=0,r=e;const s={match:!1,pathIndex:0,commandIndex:0};for(;r=t.length)return s;const o=n.segments[r],l=t[i];if(TS(l))break;const d=`${l}`,h=i0&&void 0===d)break;if(d&&h&&"object"==typeof h&&void 0===h.outlets){if(!dz(d,h,o))return s;i+=2}else{if(!dz(d,{},o))return s;i++}r++}return{match:!0,pathIndex:r,commandIndex:i}}(n,e,t),r=t.slice(i.commandIndex);if(i.match&&i.pathIndexs!==Ra)&&n.children[Ra]&&1===n.numberOfChildren&&0===n.children[Ra].segments.length){const s=DS(n.children[Ra],e,t);return new tc(n.segments,s.children)}return Object.entries(i).forEach(([s,o])=>{"string"==typeof o&&(o=[o]),null!==o&&(r[s]=lz(n.children[s],e,o))}),Object.entries(n.children).forEach(([s,o])=>{void 0===i[s]&&(r[s]=o)}),new tc(n.segments,r)}}function pk(n,e,t){const i=n.segments.slice(0,e);let r=0;for(;r{"string"==typeof i&&(i=[i]),null!==i&&(e[t]=pk(new tc([],{}),0,i))}),e}function cz(n){const e={};return Object.entries(n).forEach(([t,i])=>e[t]=`${i}`),e}function dz(n,e,t){return n==t.path&&v0(e,t.parameters)}const IS="imperative";var fl=function(n){return n[n.NavigationStart=0]="NavigationStart",n[n.NavigationEnd=1]="NavigationEnd",n[n.NavigationCancel=2]="NavigationCancel",n[n.NavigationError=3]="NavigationError",n[n.RoutesRecognized=4]="RoutesRecognized",n[n.ResolveStart=5]="ResolveStart",n[n.ResolveEnd=6]="ResolveEnd",n[n.GuardsCheckStart=7]="GuardsCheckStart",n[n.GuardsCheckEnd=8]="GuardsCheckEnd",n[n.RouteConfigLoadStart=9]="RouteConfigLoadStart",n[n.RouteConfigLoadEnd=10]="RouteConfigLoadEnd",n[n.ChildActivationStart=11]="ChildActivationStart",n[n.ChildActivationEnd=12]="ChildActivationEnd",n[n.ActivationStart=13]="ActivationStart",n[n.ActivationEnd=14]="ActivationEnd",n[n.Scroll=15]="Scroll",n[n.NavigationSkipped=16]="NavigationSkipped",n}(fl||{});class b0{constructor(e,t){this.id=e,this.url=t}}class PD extends b0{constructor(e,t,i="imperative",r=null){super(e,t),this.type=fl.NavigationStart,this.navigationTrigger=i,this.restoredState=r}toString(){return`NavigationStart(id: ${this.id}, url: '${this.url}')`}}class U_ extends b0{constructor(e,t,i){super(e,t),this.urlAfterRedirects=i,this.type=fl.NavigationEnd}toString(){return`NavigationEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}')`}}var cm=function(n){return n[n.Redirect=0]="Redirect",n[n.SupersededByNewNavigation=1]="SupersededByNewNavigation",n[n.NoDataFromResolver=2]="NoDataFromResolver",n[n.GuardRejected=3]="GuardRejected",n}(cm||{}),RD=function(n){return n[n.IgnoredSameUrlNavigation=0]="IgnoredSameUrlNavigation",n[n.IgnoredByUrlHandlingStrategy=1]="IgnoredByUrlHandlingStrategy",n}(RD||{});class s2 extends b0{constructor(e,t,i,r){super(e,t),this.reason=i,this.code=r,this.type=fl.NavigationCancel}toString(){return`NavigationCancel(id: ${this.id}, url: '${this.url}')`}}class o2 extends b0{constructor(e,t,i,r){super(e,t),this.reason=i,this.code=r,this.type=fl.NavigationSkipped}}class kD extends b0{constructor(e,t,i,r){super(e,t),this.error=i,this.target=r,this.type=fl.NavigationError}toString(){return`NavigationError(id: ${this.id}, url: '${this.url}', error: ${this.error})`}}class hz extends b0{constructor(e,t,i,r){super(e,t),this.urlAfterRedirects=i,this.state=r,this.type=fl.RoutesRecognized}toString(){return`RoutesRecognized(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class Fse extends b0{constructor(e,t,i,r){super(e,t),this.urlAfterRedirects=i,this.state=r,this.type=fl.GuardsCheckStart}toString(){return`GuardsCheckStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class Ose extends b0{constructor(e,t,i,r,s){super(e,t),this.urlAfterRedirects=i,this.state=r,this.shouldActivate=s,this.type=fl.GuardsCheckEnd}toString(){return`GuardsCheckEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state}, shouldActivate: ${this.shouldActivate})`}}class Lse extends b0{constructor(e,t,i,r){super(e,t),this.urlAfterRedirects=i,this.state=r,this.type=fl.ResolveStart}toString(){return`ResolveStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class Nse extends b0{constructor(e,t,i,r){super(e,t),this.urlAfterRedirects=i,this.state=r,this.type=fl.ResolveEnd}toString(){return`ResolveEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class Use{constructor(e){this.route=e,this.type=fl.RouteConfigLoadStart}toString(){return`RouteConfigLoadStart(path: ${this.route.path})`}}class zse{constructor(e){this.route=e,this.type=fl.RouteConfigLoadEnd}toString(){return`RouteConfigLoadEnd(path: ${this.route.path})`}}class Hse{constructor(e){this.snapshot=e,this.type=fl.ChildActivationStart}toString(){return`ChildActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class Vse{constructor(e){this.snapshot=e,this.type=fl.ChildActivationEnd}toString(){return`ChildActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class Gse{constructor(e){this.snapshot=e,this.type=fl.ActivationStart}toString(){return`ActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class qse{constructor(e){this.snapshot=e,this.type=fl.ActivationEnd}toString(){return`ActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class uz{constructor(e,t,i){this.routerEvent=e,this.position=t,this.anchor=i,this.type=fl.Scroll}toString(){return`Scroll(anchor: '${this.anchor}', position: '${this.position?`${this.position[0]}, ${this.position[1]}`:null}')`}}class mk{}class Ak{constructor(e){this.url=e}}class Qse{constructor(){this.outlet=null,this.route=null,this.injector=null,this.children=new BS,this.attachRef=null}}let BS=(()=>{class n{constructor(){this.contexts=new Map}onChildOutletCreated(t,i){const r=this.getOrCreateContext(t);r.outlet=i,this.contexts.set(t,r)}onChildOutletDestroyed(t){const i=this.getContext(t);i&&(i.outlet=null,i.attachRef=null)}onOutletDeactivated(){const t=this.contexts;return this.contexts=new Map,t}onOutletReAttached(t){this.contexts=t}getOrCreateContext(t){let i=this.getContext(t);return i||(i=new Qse,this.contexts.set(t,i)),i}getContext(t){return this.contexts.get(t)||null}static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();class fz{constructor(e){this._root=e}get root(){return this._root.value}parent(e){const t=this.pathFromRoot(e);return t.length>1?t[t.length-2]:null}children(e){const t=gk(e,this._root);return t?t.children.map(i=>i.value):[]}firstChild(e){const t=gk(e,this._root);return t&&t.children.length>0?t.children[0].value:null}siblings(e){const t=_k(e,this._root);return t.length<2?[]:t[t.length-2].children.map(r=>r.value).filter(r=>r!==e)}pathFromRoot(e){return _k(e,this._root).map(t=>t.value)}}function gk(n,e){if(n===e.value)return e;for(const t of e.children){const i=gk(n,t);if(i)return i}return null}function _k(n,e){if(n===e.value)return[e];for(const t of e.children){const i=_k(n,t);if(i.length)return i.unshift(e),i}return[]}class ag{constructor(e,t){this.value=e,this.children=t}toString(){return`TreeNode(${this.value})`}}function a2(n){const e={};return n&&n.children.forEach(t=>e[t.value.outlet]=t),e}class pz extends fz{constructor(e,t){super(e),this.snapshot=t,bk(this,e)}toString(){return this.snapshot.toString()}}function mz(n){const e=function Wse(n){const s=new vk([],{},{},"",{},Ra,n,null,{});return new Az("",new ag(s,[]))}(n),t=new cn([new SS("",{})]),i=new cn({}),r=new cn({}),s=new cn({}),o=new cn(""),l=new l2(t,i,s,o,r,Ra,n,e.root);return l.snapshot=e.root,new pz(new ag(l,[]),e)}class l2{constructor(e,t,i,r,s,o,l,d){this.urlSubject=e,this.paramsSubject=t,this.queryParamsSubject=i,this.fragmentSubject=r,this.dataSubject=s,this.outlet=o,this.component=l,this._futureSnapshot=d,this.title=this.dataSubject?.pipe(bi(h=>h[MS]))??po(void 0),this.url=e,this.params=t,this.queryParams=i,this.fragment=r,this.data=s}get routeConfig(){return this._futureSnapshot.routeConfig}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap??=this.params.pipe(bi(e=>e2(e))),this._paramMap}get queryParamMap(){return this._queryParamMap??=this.queryParams.pipe(bi(e=>e2(e))),this._queryParamMap}toString(){return this.snapshot?this.snapshot.toString():`Future(${this._futureSnapshot})`}}function yk(n,e,t="emptyOnly"){let i;const{routeConfig:r}=n;return i=null===e||"always"!==t&&""!==r?.path&&(e.component||e.routeConfig?.loadComponent)?{params:{...n.params},data:{...n.data},resolve:{...n.data,...n._resolvedData??{}}}:{params:{...e.params,...n.params},data:{...e.data,...n.data},resolve:{...n.data,...e.data,...r?.data,...n._resolvedData}},r&&_z(r)&&(i.resolve[MS]=r.title),i}class vk{get title(){return this.data?.[MS]}constructor(e,t,i,r,s,o,l,d,h){this.url=e,this.params=t,this.queryParams=i,this.fragment=r,this.data=s,this.outlet=o,this.component=l,this.routeConfig=d,this._resolve=h}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap??=e2(this.params),this._paramMap}get queryParamMap(){return this._queryParamMap??=e2(this.queryParams),this._queryParamMap}toString(){return`Route(url:'${this.url.map(i=>i.toString()).join("/")}', path:'${this.routeConfig?this.routeConfig.path:""}')`}}class Az extends fz{constructor(e,t){super(t),this.url=e,bk(this,t)}toString(){return gz(this._root)}}function bk(n,e){e.value._routerState=n,e.children.forEach(t=>bk(n,t))}function gz(n){const e=n.children.length>0?` { ${n.children.map(gz).join(", ")} } `:"";return`${n.value}${e}`}function xk(n){if(n.snapshot){const e=n.snapshot,t=n._futureSnapshot;n.snapshot=t,v0(e.queryParams,t.queryParams)||n.queryParamsSubject.next(t.queryParams),e.fragment!==t.fragment&&n.fragmentSubject.next(t.fragment),v0(e.params,t.params)||n.paramsSubject.next(t.params),function cse(n,e){if(n.length!==e.length)return!1;for(let t=0;tv0(t.parameters,e[i].parameters))}(n.url,e.url);return t&&!(!n.parent!=!e.parent)&&(!n.parent||wk(n.parent,e.parent))}function _z(n){return"string"==typeof n.title||null===n.title}let Ck=(()=>{class n{constructor(){this.activated=null,this._activatedRoute=null,this.name=Ra,this.activateEvents=new Ls,this.deactivateEvents=new Ls,this.attachEvents=new Ls,this.detachEvents=new Ls,this.parentContexts=pi(BS),this.location=pi(fs),this.changeDetector=pi(Sc),this.environmentInjector=pi(Rc),this.inputBinder=pi(FD,{optional:!0}),this.supportsBindingToComponentInputs=!0}get activatedComponentRef(){return this.activated}ngOnChanges(t){if(t.name){const{firstChange:i,previousValue:r}=t.name;if(i)return;this.isTrackedInParentContexts(r)&&(this.deactivate(),this.parentContexts.onChildOutletDestroyed(r)),this.initializeOutletWithName()}}ngOnDestroy(){this.isTrackedInParentContexts(this.name)&&this.parentContexts.onChildOutletDestroyed(this.name),this.inputBinder?.unsubscribeFromRouteData(this)}isTrackedInParentContexts(t){return this.parentContexts.getContext(t)?.outlet===this}ngOnInit(){this.initializeOutletWithName()}initializeOutletWithName(){if(this.parentContexts.onChildOutletCreated(this.name,this),this.activated)return;const t=this.parentContexts.getContext(this.name);t?.route&&(t.attachRef?this.attach(t.attachRef,t.route):this.activateWith(t.route,t.injector))}get isActivated(){return!!this.activated}get component(){if(!this.activated)throw new Ln(4012,!1);return this.activated.instance}get activatedRoute(){if(!this.activated)throw new Ln(4012,!1);return this._activatedRoute}get activatedRouteData(){return this._activatedRoute?this._activatedRoute.snapshot.data:{}}detach(){if(!this.activated)throw new Ln(4012,!1);this.location.detach();const t=this.activated;return this.activated=null,this._activatedRoute=null,this.detachEvents.emit(t.instance),t}attach(t,i){this.activated=t,this._activatedRoute=i,this.location.insert(t.hostView),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.attachEvents.emit(t.instance)}deactivate(){if(this.activated){const t=this.component;this.activated.destroy(),this.activated=null,this._activatedRoute=null,this.deactivateEvents.emit(t)}}activateWith(t,i){if(this.isActivated)throw new Ln(4013,!1);this._activatedRoute=t;const r=this.location,o=t.snapshot.component,l=this.parentContexts.getOrCreateContext(this.name).children,d=new jse(t,l,r.injector);this.activated=r.createComponent(o,{index:r.length,injector:d,environmentInjector:i??this.environmentInjector}),this.changeDetector.markForCheck(),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.activateEvents.emit(this.activated.instance)}static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275dir=Ft({type:n,selectors:[["router-outlet"]],inputs:{name:"name"},outputs:{activateEvents:"activate",deactivateEvents:"deactivate",attachEvents:"attach",detachEvents:"detach"},exportAs:["outlet"],standalone:!0,features:[kl]})}return n})();class jse{constructor(e,t,i){this.route=e,this.childContexts=t,this.parent=i}get(e,t){return e===l2?this.route:e===BS?this.childContexts:this.parent.get(e,t)}}const FD=new Bi("");let yz=(()=>{class n{constructor(){this.outletDataSubscriptions=new Map}bindActivatedRouteToOutletComponent(t){this.unsubscribeFromRouteData(t),this.subscribeToRouteData(t)}unsubscribeFromRouteData(t){this.outletDataSubscriptions.get(t)?.unsubscribe(),this.outletDataSubscriptions.delete(t)}subscribeToRouteData(t){const{activatedRoute:i}=t,r=xD([i.queryParams,i.params,i.data]).pipe(Df(([s,o,l],d)=>(l={...s,...o,...l},0===d?po(l):Promise.resolve(l)))).subscribe(s=>{if(!t.isActivated||!t.activatedComponentRef||t.activatedRoute!==i||null===i.component)return void this.unsubscribeFromRouteData(t);const o=function ote(n){const e=Wo(n);if(!e)return null;const t=new Oi(e);return{get selector(){return t.selector},get type(){return t.componentType},get inputs(){return t.inputs},get outputs(){return t.outputs},get ngContentSelectors(){return t.ngContentSelectors},get isStandalone(){return e.standalone},get isSignal(){return e.signals}}}(i.component);if(o)for(const{templateName:l}of o.inputs)t.activatedComponentRef.setInput(l,s[l]);else this.unsubscribeFromRouteData(t)});this.outletDataSubscriptions.set(t,r)}static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac})}return n})();function PS(n,e,t){if(t&&n.shouldReuseRoute(e.value,t.value.snapshot)){const i=t.value;i._futureSnapshot=e.value;const r=function Xse(n,e,t){return e.children.map(i=>{for(const r of t.children)if(n.shouldReuseRoute(i.value,r.value.snapshot))return PS(n,i,r);return PS(n,i)})}(n,e,t);return new ag(i,r)}{if(n.shouldAttach(e.value)){const s=n.retrieve(e.value);if(null!==s){const o=s.route;return o.value._futureSnapshot=e.value,o.children=e.children.map(l=>PS(n,l)),o}}const i=function Yse(n){return new l2(new cn(n.url),new cn(n.params),new cn(n.queryParams),new cn(n.fragment),new cn(n.data),n.outlet,n.component,n)}(e.value),r=e.children.map(s=>PS(n,s));return new ag(i,r)}}const vz="ngNavigationCancelingError";function bz(n,e){const{redirectTo:t,navigationBehaviorOptions:i}=r2(e)?{redirectTo:e,navigationBehaviorOptions:void 0}:e,r=xz(!1,cm.Redirect);return r.url=t,r.navigationBehaviorOptions=i,r}function xz(n,e){const t=new Error(`NavigationCancelingError: ${n||""}`);return t[vz]=!0,t.cancellationCode=e,t}function wz(n){return!!n&&n[vz]}let Cz=(()=>{class n{static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275cmp=rs({type:n,selectors:[["ng-component"]],standalone:!0,features:[yd],decls:1,vars:0,template:function(i,r){1&i&&Vr(0,"router-outlet")},dependencies:[Ck],encapsulation:2})}return n})();function Mk(n){const e=n.children&&n.children.map(Mk),t=e?{...n,children:e}:{...n};return!t.component&&!t.loadComponent&&(e||t.loadChildren)&&t.outlet&&t.outlet!==Ra&&(t.component=Cz),t}function x0(n){return n.outlet||Ra}function RS(n){if(!n)return null;if(n.routeConfig?._injector)return n.routeConfig._injector;for(let e=n.parent;e;e=e.parent){const t=e.routeConfig;if(t?._loadedInjector)return t._loadedInjector;if(t?._injector)return t._injector}return null}class roe{constructor(e,t,i,r,s){this.routeReuseStrategy=e,this.futureState=t,this.currState=i,this.forwardEvent=r,this.inputBindingEnabled=s}activate(e){const t=this.futureState._root,i=this.currState?this.currState._root:null;this.deactivateChildRoutes(t,i,e),xk(this.futureState.root),this.activateChildRoutes(t,i,e)}deactivateChildRoutes(e,t,i){const r=a2(t);e.children.forEach(s=>{const o=s.value.outlet;this.deactivateRoutes(s,r[o],i),delete r[o]}),Object.values(r).forEach(s=>{this.deactivateRouteAndItsChildren(s,i)})}deactivateRoutes(e,t,i){const r=e.value,s=t?t.value:null;if(r===s)if(r.component){const o=i.getContext(r.outlet);o&&this.deactivateChildRoutes(e,t,o.children)}else this.deactivateChildRoutes(e,t,i);else s&&this.deactivateRouteAndItsChildren(t,i)}deactivateRouteAndItsChildren(e,t){e.value.component&&this.routeReuseStrategy.shouldDetach(e.value.snapshot)?this.detachAndStoreRouteSubtree(e,t):this.deactivateRouteAndOutlet(e,t)}detachAndStoreRouteSubtree(e,t){const i=t.getContext(e.value.outlet),r=i&&e.value.component?i.children:t,s=a2(e);for(const o of Object.values(s))this.deactivateRouteAndItsChildren(o,r);if(i&&i.outlet){const o=i.outlet.detach(),l=i.children.onOutletDeactivated();this.routeReuseStrategy.store(e.value.snapshot,{componentRef:o,route:e,contexts:l})}}deactivateRouteAndOutlet(e,t){const i=t.getContext(e.value.outlet),r=i&&e.value.component?i.children:t,s=a2(e);for(const o of Object.values(s))this.deactivateRouteAndItsChildren(o,r);i&&(i.outlet&&(i.outlet.deactivate(),i.children.onOutletDeactivated()),i.attachRef=null,i.route=null)}activateChildRoutes(e,t,i){const r=a2(t);e.children.forEach(s=>{this.activateRoutes(s,r[s.value.outlet],i),this.forwardEvent(new qse(s.value.snapshot))}),e.children.length&&this.forwardEvent(new Vse(e.value.snapshot))}activateRoutes(e,t,i){const r=e.value,s=t?t.value:null;if(xk(r),r===s)if(r.component){const o=i.getOrCreateContext(r.outlet);this.activateChildRoutes(e,t,o.children)}else this.activateChildRoutes(e,t,i);else if(r.component){const o=i.getOrCreateContext(r.outlet);if(this.routeReuseStrategy.shouldAttach(r.snapshot)){const l=this.routeReuseStrategy.retrieve(r.snapshot);this.routeReuseStrategy.store(r.snapshot,null),o.children.onOutletReAttached(l.contexts),o.attachRef=l.componentRef,o.route=l.route.value,o.outlet&&o.outlet.attach(l.componentRef,l.route.value),xk(l.route.value),this.activateChildRoutes(e,null,o.children)}else{const l=RS(r.snapshot);o.attachRef=null,o.route=r,o.injector=l,o.outlet&&o.outlet.activateWith(r,o.injector),this.activateChildRoutes(e,null,o.children)}}else this.activateChildRoutes(e,null,i)}}class Mz{constructor(e){this.path=e,this.route=this.path[this.path.length-1]}}class OD{constructor(e,t){this.component=e,this.route=t}}function soe(n,e,t){const i=n._root;return kS(i,e?e._root:null,t,[i.value])}function c2(n,e){const t=Symbol(),i=e.get(n,t);return i===t?"function"!=typeof n||function $u(n){return null!==ic(n)}(n)?e.get(n):n:i}function kS(n,e,t,i,r={canDeactivateChecks:[],canActivateChecks:[]}){const s=a2(e);return n.children.forEach(o=>{(function aoe(n,e,t,i,r={canDeactivateChecks:[],canActivateChecks:[]}){const s=n.value,o=e?e.value:null,l=t?t.getContext(n.value.outlet):null;if(o&&s.routeConfig===o.routeConfig){const d=function loe(n,e,t){if("function"==typeof t)return t(n,e);switch(t){case"pathParamsChange":return!xb(n.url,e.url);case"pathParamsOrQueryParamsChange":return!xb(n.url,e.url)||!v0(n.queryParams,e.queryParams);case"always":return!0;case"paramsOrQueryParamsChange":return!wk(n,e)||!v0(n.queryParams,e.queryParams);default:return!wk(n,e)}}(o,s,s.routeConfig.runGuardsAndResolvers);d?r.canActivateChecks.push(new Mz(i)):(s.data=o.data,s._resolvedData=o._resolvedData),kS(n,e,s.component?l?l.children:null:t,i,r),d&&l&&l.outlet&&l.outlet.isActivated&&r.canDeactivateChecks.push(new OD(l.outlet.component,o))}else o&&FS(e,l,r),r.canActivateChecks.push(new Mz(i)),kS(n,null,s.component?l?l.children:null:t,i,r)})(o,s[o.value.outlet],t,i.concat([o.value]),r),delete s[o.value.outlet]}),Object.entries(s).forEach(([o,l])=>FS(l,t.getContext(o),r)),r}function FS(n,e,t){const i=a2(n),r=n.value;Object.entries(i).forEach(([s,o])=>{FS(o,r.component?e?e.children.getContext(s):null:e,t)}),t.canDeactivateChecks.push(new OD(r.component&&e&&e.outlet&&e.outlet.isActivated?e.outlet.component:null,r))}function OS(n){return"function"==typeof n}function Sz(n){return n instanceof wD||"EmptyError"===n?.name}const LD=Symbol("INITIAL_VALUE");function d2(){return Df(n=>xD(n.map(e=>e.pipe(ad(1),sA(LD)))).pipe(bi(e=>{for(const t of e)if(!0!==t){if(t===LD)return LD;if(!1===t||t instanceof t2)return t}return!0}),od(e=>e!==LD),ad(1)))}function Ez(n){return function ge(...n){return ye(n)}(lh(e=>{if(r2(e))throw bz(0,e)}),bi(e=>!0===e))}class Sk{constructor(e){this.segmentGroup=e||null}}class Ek extends Error{constructor(e){super(),this.urlTree=e}}function h2(n){return CS(new Sk(n))}class Eoe{constructor(e,t){this.urlSerializer=e,this.urlTree=t}lineralizeSegments(e,t){let i=[],r=t.root;for(;;){if(i=i.concat(r.segments),0===r.numberOfChildren)return po(i);if(r.numberOfChildren>1||!r.children[Ra])return CS(new Ln(4e3,!1));r=r.children[Ra]}}applyRedirectCommands(e,t,i){const r=this.applyRedirectCreateUrlTree(t,this.urlSerializer.parse(t),e,i);if(t.startsWith("/"))throw new Ek(r);return r}applyRedirectCreateUrlTree(e,t,i,r){const s=this.createSegmentGroup(e,t.root,i,r);return new t2(s,this.createQueryParams(t.queryParams,this.urlTree.queryParams),t.fragment)}createQueryParams(e,t){const i={};return Object.entries(e).forEach(([r,s])=>{if("string"==typeof s&&s.startsWith(":")){const l=s.substring(1);i[r]=t[l]}else i[r]=s}),i}createSegmentGroup(e,t,i,r){const s=this.createSegments(e,t.segments,i,r);let o={};return Object.entries(t.children).forEach(([l,d])=>{o[l]=this.createSegmentGroup(e,d,i,r)}),new tc(s,o)}createSegments(e,t,i,r){return t.map(s=>s.path.startsWith(":")?this.findPosParam(e,s,r):this.findOrReturn(s,i))}findPosParam(e,t,i){const r=i[t.path.substring(1)];if(!r)throw new Ln(4001,!1);return r}findOrReturn(e,t){let i=0;for(const r of t){if(r.path===e.path)return t.splice(i),r;i++}return e}}const Tk={matched:!1,consumedSegments:[],remainingSegments:[],parameters:{},positionalParamSegments:{}};function Toe(n,e,t,i,r){const s=Dk(n,e,t);return s.matched?(i=function Zse(n,e){return n.providers&&!n._injector&&(n._injector=C3(n.providers,e,`Route: ${n.path}`)),n._injector??e}(e,i),function Coe(n,e,t,i){const r=e.canMatch;return r&&0!==r.length?po(r.map(o=>{const l=c2(o,n);return Iy(function poe(n){return n&&OS(n.canMatch)}(l)?l.canMatch(e,t):El(n,()=>l(e,t)))})).pipe(d2(),Ez()):po(!0)}(i,e,t).pipe(bi(o=>!0===o?s:{...Tk}))):po(s)}function Dk(n,e,t){if("**"===e.path)return function Doe(n){return{matched:!0,parameters:n.length>0?j9(n).parameters:{},consumedSegments:n,remainingSegments:[],positionalParamSegments:{}}}(t);if(""===e.path)return"full"===e.pathMatch&&(n.hasChildren()||t.length>0)?{...Tk}:{matched:!0,consumedSegments:[],remainingSegments:t,parameters:{},positionalParamSegments:{}};const r=(e.matcher||lse)(t,n,e);if(!r)return{...Tk};const s={};Object.entries(r.posParams??{}).forEach(([l,d])=>{s[l]=d.path});const o=r.consumed.length>0?{...s,...r.consumed[r.consumed.length-1].parameters}:s;return{matched:!0,consumedSegments:r.consumed,remainingSegments:t.slice(r.consumed.length),parameters:o,positionalParamSegments:r.posParams??{}}}function Tz(n,e,t,i){return t.length>0&&function Poe(n,e,t){return t.some(i=>ND(n,e,i)&&x0(i)!==Ra)}(n,t,i)?{segmentGroup:new tc(e,Boe(i,new tc(t,n.children))),slicedSegments:[]}:0===t.length&&function Roe(n,e,t){return t.some(i=>ND(n,e,i))}(n,t,i)?{segmentGroup:new tc(n.segments,Ioe(n,t,i,n.children)),slicedSegments:t}:{segmentGroup:new tc(n.segments,n.children),slicedSegments:t}}function Ioe(n,e,t,i){const r={};for(const s of t)if(ND(n,e,s)&&!i[x0(s)]){const o=new tc([],{});r[x0(s)]=o}return{...i,...r}}function Boe(n,e){const t={};t[Ra]=e;for(const i of n)if(""===i.path&&x0(i)!==Ra){const r=new tc([],{});t[x0(i)]=r}return t}function ND(n,e,t){return(!(n.hasChildren()||e.length>0)||"full"!==t.pathMatch)&&""===t.path}class Ooe{}class Uoe{constructor(e,t,i,r,s,o,l){this.injector=e,this.configLoader=t,this.rootComponentType=i,this.config=r,this.urlTree=s,this.paramsInheritanceStrategy=o,this.urlSerializer=l,this.applyRedirects=new Eoe(this.urlSerializer,this.urlTree),this.absoluteRedirectCount=0,this.allowRedirects=!0}noMatchError(e){return new Ln(4002,`'${e.segmentGroup}'`)}recognize(){const e=Tz(this.urlTree.root,[],[],this.config).segmentGroup;return this.match(e).pipe(bi(t=>{const i=new vk([],Object.freeze({}),Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,{},Ra,this.rootComponentType,null,{}),r=new ag(i,t),s=new Az("",r),o=function Tse(n,e,t=null,i=null){return sz(rz(n),e,t,i)}(i,[],this.urlTree.queryParams,this.urlTree.fragment);return o.queryParams=this.urlTree.queryParams,s.url=this.urlSerializer.serialize(o),this.inheritParamsAndData(s._root,null),{state:s,tree:o}}))}match(e){return this.processSegmentGroup(this.injector,this.config,e,Ra).pipe(bb(i=>{if(i instanceof Ek)return this.urlTree=i.urlTree,this.match(i.urlTree.root);throw i instanceof Sk?this.noMatchError(i):i}))}inheritParamsAndData(e,t){const i=e.value,r=yk(i,t,this.paramsInheritanceStrategy);i.params=Object.freeze(r.params),i.data=Object.freeze(r.data),e.children.forEach(s=>this.inheritParamsAndData(s,i))}processSegmentGroup(e,t,i,r){return 0===i.segments.length&&i.hasChildren()?this.processChildren(e,t,i):this.processSegment(e,t,i,i.segments,r,!0).pipe(bi(s=>s instanceof ag?[s]:[]))}processChildren(e,t,i){const r=[];for(const s of Object.keys(i.children))"primary"===s?r.unshift(s):r.push(s);return ah(r).pipe(Yw(s=>{const o=i.children[s],l=function noe(n,e){const t=n.filter(i=>x0(i)===e);return t.push(...n.filter(i=>x0(i)!==e)),t}(t,s);return this.processSegmentGroup(e,l,o,s)}),function sse(n,e){return ci(function rse(n,e,t,i,r){return(s,o)=>{let l=t,d=e,h=0;s.subscribe(Pi(o,f=>{const A=h++;d=l?n(d,f,A):(l=!0,f),i&&o.next(d)},r&&(()=>{l&&o.next(d),o.complete()})))}}(n,e,arguments.length>=2,!0))}((s,o)=>(s.push(...o),s)),MD(null),function ose(n,e){const t=arguments.length>=2;return i=>i.pipe(n?od((r,s)=>n(r,s,i)):K,lk(1),t?MD(e):q9(()=>new wD))}(),qh(s=>{if(null===s)return h2(i);const o=Dz(s);return function zoe(n){n.sort((e,t)=>e.value.outlet===Ra?-1:t.value.outlet===Ra?1:e.value.outlet.localeCompare(t.value.outlet))}(o),po(o)}))}processSegment(e,t,i,r,s,o){return ah(t).pipe(Yw(l=>this.processSegmentAgainstRoute(l._injector??e,t,l,i,r,s,o).pipe(bb(d=>{if(d instanceof Sk)return po(null);throw d}))),vb(l=>!!l),bb(l=>{if(Sz(l))return function Foe(n,e,t){return 0===e.length&&!n.children[t]}(i,r,s)?po(new Ooe):h2(i);throw l}))}processSegmentAgainstRoute(e,t,i,r,s,o,l){return function koe(n,e,t,i){return!!(x0(n)===i||i!==Ra&&ND(e,t,n))&&Dk(e,n,t).matched}(i,r,s,o)?void 0===i.redirectTo?this.matchSegmentAgainstRoute(e,r,i,s,o):this.allowRedirects&&l?this.expandSegmentAgainstRouteUsingRedirect(e,r,t,i,s,o):h2(r):h2(r)}expandSegmentAgainstRouteUsingRedirect(e,t,i,r,s,o){const{matched:l,consumedSegments:d,positionalParamSegments:h,remainingSegments:f}=Dk(t,r,s);if(!l)return h2(t);r.redirectTo.startsWith("/")&&(this.absoluteRedirectCount++,this.absoluteRedirectCount>31&&(this.allowRedirects=!1));const A=this.applyRedirects.applyRedirectCommands(d,r.redirectTo,h);return this.applyRedirects.lineralizeSegments(r,A).pipe(qh(S=>this.processSegment(e,i,t,S.concat(f),o,!1)))}matchSegmentAgainstRoute(e,t,i,r,s){const o=Toe(t,i,r,e);return"**"===i.path&&(t.children={}),o.pipe(Df(l=>l.matched?this.getChildConfig(e=i._injector??e,i,r).pipe(Df(({routes:d})=>{const h=i._loadedInjector??e,{consumedSegments:f,remainingSegments:A,parameters:S}=l,R=new vk(f,S,Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,function Voe(n){return n.data||{}}(i),x0(i),i.component??i._loadedComponent??null,i,function Goe(n){return n.resolve||{}}(i)),{segmentGroup:G,slicedSegments:re}=Tz(t,f,A,d);if(0===re.length&&G.hasChildren())return this.processChildren(h,d,G).pipe(bi(le=>null===le?null:new ag(R,le)));if(0===d.length&&0===re.length)return po(new ag(R,[]));const se=x0(i)===s;return this.processSegment(h,d,G,re,se?Ra:s,!0).pipe(bi(le=>new ag(R,le instanceof ag?[le]:[])))})):h2(t)))}getChildConfig(e,t,i){return t.children?po({routes:t.children,injector:e}):t.loadChildren?void 0!==t._loadedRoutes?po({routes:t._loadedRoutes,injector:t._loadedInjector}):function woe(n,e,t,i){const r=e.canLoad;return void 0===r||0===r.length?po(!0):po(r.map(o=>{const l=c2(o,n);return Iy(function doe(n){return n&&OS(n.canLoad)}(l)?l.canLoad(e,t):El(n,()=>l(e,t)))})).pipe(d2(),Ez())}(e,t,i).pipe(qh(r=>r?this.configLoader.loadChildren(e,t).pipe(lh(s=>{t._loadedRoutes=s.routes,t._loadedInjector=s.injector})):function Soe(n){return CS(xz(!1,cm.GuardRejected))}())):po({routes:[],injector:e})}}function Hoe(n){const e=n.value.routeConfig;return e&&""===e.path}function Dz(n){const e=[],t=new Set;for(const i of n){if(!Hoe(i)){e.push(i);continue}const r=e.find(s=>i.value.routeConfig===s.value.routeConfig);void 0!==r?(r.children.push(...i.children),t.add(r)):e.push(i)}for(const i of t){const r=Dz(i.children);e.push(new ag(i.value,r))}return e.filter(i=>!t.has(i))}function Iz(n){const e=n.children.map(t=>Iz(t)).flat();return[n,...e]}function Ik(n){return Df(e=>{const t=n(e);return t?ah(t).pipe(bi(()=>e)):po(e)})}let Bz=(()=>{class n{buildTitle(t){let i,r=t.root;for(;void 0!==r;)i=this.getResolvedTitleForRoute(r)??i,r=r.children.find(s=>s.outlet===Ra);return i}getResolvedTitleForRoute(t){return t.data[MS]}static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275prov=Gi({token:n,factory:()=>pi(Xoe),providedIn:"root"})}return n})(),Xoe=(()=>{class n extends Bz{constructor(t){super(),this.title=t}updateTitle(t){const i=this.buildTitle(t);void 0!==i&&this.title.setTitle(i)}static#e=this.\u0275fac=function(i){return new(i||n)(xi(Eie))};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();const u2=new Bi("",{providedIn:"root",factory:()=>({})}),f2=new Bi("");let Bk=(()=>{class n{constructor(){this.componentLoaders=new WeakMap,this.childrenLoaders=new WeakMap,this.compiler=pi(gU)}loadComponent(t){if(this.componentLoaders.get(t))return this.componentLoaders.get(t);if(t._loadedComponent)return po(t._loadedComponent);this.onLoadStartListener&&this.onLoadStartListener(t);const i=Iy(t.loadComponent()).pipe(bi(Pz),lh(s=>{this.onLoadEndListener&&this.onLoadEndListener(t),t._loadedComponent=s}),Kw(()=>{this.componentLoaders.delete(t)})),r=new ak(i,()=>new un).pipe(ok());return this.componentLoaders.set(t,r),r}loadChildren(t,i){if(this.childrenLoaders.get(i))return this.childrenLoaders.get(i);if(i._loadedRoutes)return po({routes:i._loadedRoutes,injector:i._loadedInjector});this.onLoadStartListener&&this.onLoadStartListener(i);const s=function Yoe(n,e,t,i){return Iy(n.loadChildren()).pipe(bi(Pz),qh(r=>r instanceof FN||Array.isArray(r)?po(r):ah(e.compileModuleAsync(r))),bi(r=>{i&&i(n);let s,o,l=!1;return Array.isArray(r)?(o=r,!0):(s=r.create(t).injector,o=s.get(f2,[],{optional:!0,self:!0}).flat()),{routes:o.map(Mk),injector:s}}))}(i,this.compiler,t,this.onLoadEndListener).pipe(Kw(()=>{this.childrenLoaders.delete(i)})),o=new ak(s,()=>new un).pipe(ok());return this.childrenLoaders.set(i,o),o}static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();function Pz(n){return function Koe(n){return n&&"object"==typeof n&&"default"in n}(n)?n.default:n}let Pk=(()=>{class n{static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275prov=Gi({token:n,factory:()=>pi(Zoe),providedIn:"root"})}return n})(),Zoe=(()=>{class n{shouldProcessUrl(t){return!0}extract(t){return t}merge(t,i){return t}static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();const Rz=new Bi(""),kz=new Bi("");function Joe(n,e,t){const i=n.get(kz),r=n.get(ba);return n.get(io).runOutsideAngular(()=>{if(!r.startViewTransition||i.skipNextTransition)return i.skipNextTransition=!1,Promise.resolve();let s;const o=new Promise(h=>{s=h}),l=r.startViewTransition(()=>(s(),function eae(n){return new Promise(e=>{Be(e,{injector:n})})}(n))),{onViewTransitionCreated:d}=i;return d&&El(n,()=>d({transition:l,from:e,to:t})),o})}let UD=(()=>{class n{get hasRequestedNavigation(){return 0!==this.navigationId}constructor(){this.currentNavigation=null,this.currentTransition=null,this.lastSuccessfulNavigation=null,this.events=new un,this.transitionAbortSubject=new un,this.configLoader=pi(Bk),this.environmentInjector=pi(Rc),this.urlSerializer=pi(n2),this.rootContexts=pi(BS),this.location=pi(gb),this.inputBindingEnabled=null!==pi(FD,{optional:!0}),this.titleStrategy=pi(Bz),this.options=pi(u2,{optional:!0})||{},this.paramsInheritanceStrategy=this.options.paramsInheritanceStrategy||"emptyOnly",this.urlHandlingStrategy=pi(Pk),this.createViewTransition=pi(Rz,{optional:!0}),this.navigationId=0,this.afterPreactivation=()=>po(void 0),this.rootComponentType=null,this.configLoader.onLoadEndListener=r=>this.events.next(new zse(r)),this.configLoader.onLoadStartListener=r=>this.events.next(new Use(r))}complete(){this.transitions?.complete()}handleNavigationRequest(t){const i=++this.navigationId;this.transitions?.next({...this.transitions.value,...t,id:i})}setupNavigations(t,i,r){return this.transitions=new cn({id:0,currentUrlTree:i,currentRawUrl:i,extractedUrl:this.urlHandlingStrategy.extract(i),urlAfterRedirects:this.urlHandlingStrategy.extract(i),rawUrl:i,extras:{},resolve:null,reject:null,promise:Promise.resolve(!0),source:IS,restoredState:null,currentSnapshot:r.snapshot,targetSnapshot:null,currentRouterState:r,targetRouterState:null,guards:{canActivateChecks:[],canDeactivateChecks:[]},guardsResult:null}),this.transitions.pipe(od(s=>0!==s.id),bi(s=>({...s,extractedUrl:this.urlHandlingStrategy.extract(s.rawUrl)})),Df(s=>{let o=!1,l=!1;return po(s).pipe(Df(d=>{if(this.navigationId>s.id)return this.cancelNavigationTransition(s,"",cm.SupersededByNewNavigation),rA;this.currentTransition=s,this.currentNavigation={id:d.id,initialUrl:d.rawUrl,extractedUrl:d.extractedUrl,trigger:d.source,extras:d.extras,previousNavigation:this.lastSuccessfulNavigation?{...this.lastSuccessfulNavigation,previousNavigation:null}:null};const h=!t.navigated||this.isUpdatingInternalState()||this.isUpdatedBrowserUrl();if(!h&&"reload"!==(d.extras.onSameUrlNavigation??t.onSameUrlNavigation)){const A="";return this.events.next(new o2(d.id,this.urlSerializer.serialize(d.rawUrl),A,RD.IgnoredSameUrlNavigation)),d.resolve(null),rA}if(this.urlHandlingStrategy.shouldProcessUrl(d.rawUrl))return po(d).pipe(Df(A=>{const S=this.transitions?.getValue();return this.events.next(new PD(A.id,this.urlSerializer.serialize(A.extractedUrl),A.source,A.restoredState)),S!==this.transitions?.getValue()?rA:Promise.resolve(A)}),function qoe(n,e,t,i,r,s){return qh(o=>function Loe(n,e,t,i,r,s,o="emptyOnly"){return new Uoe(n,e,t,i,r,o,s).recognize()}(n,e,t,i,o.extractedUrl,r,s).pipe(bi(({state:l,tree:d})=>({...o,targetSnapshot:l,urlAfterRedirects:d}))))}(this.environmentInjector,this.configLoader,this.rootComponentType,t.config,this.urlSerializer,this.paramsInheritanceStrategy),lh(A=>{s.targetSnapshot=A.targetSnapshot,s.urlAfterRedirects=A.urlAfterRedirects,this.currentNavigation={...this.currentNavigation,finalUrl:A.urlAfterRedirects};const S=new hz(A.id,this.urlSerializer.serialize(A.extractedUrl),this.urlSerializer.serialize(A.urlAfterRedirects),A.targetSnapshot);this.events.next(S)}));if(h&&this.urlHandlingStrategy.shouldProcessUrl(d.currentRawUrl)){const{id:A,extractedUrl:S,source:R,restoredState:G,extras:re}=d,se=new PD(A,this.urlSerializer.serialize(S),R,G);this.events.next(se);const le=mz(this.rootComponentType).snapshot;return this.currentTransition=s={...d,targetSnapshot:le,urlAfterRedirects:S,extras:{...re,skipLocationChange:!1,replaceUrl:!1}},this.currentNavigation.finalUrl=S,po(s)}{const A="";return this.events.next(new o2(d.id,this.urlSerializer.serialize(d.extractedUrl),A,RD.IgnoredByUrlHandlingStrategy)),d.resolve(null),rA}}),lh(d=>{const h=new Fse(d.id,this.urlSerializer.serialize(d.extractedUrl),this.urlSerializer.serialize(d.urlAfterRedirects),d.targetSnapshot);this.events.next(h)}),bi(d=>(this.currentTransition=s={...d,guards:soe(d.targetSnapshot,d.currentSnapshot,this.rootContexts)},s)),function moe(n,e){return qh(t=>{const{targetSnapshot:i,currentSnapshot:r,guards:{canActivateChecks:s,canDeactivateChecks:o}}=t;return 0===o.length&&0===s.length?po({...t,guardsResult:!0}):function Aoe(n,e,t,i){return ah(n).pipe(qh(r=>function xoe(n,e,t,i,r){const s=e&&e.routeConfig?e.routeConfig.canDeactivate:null;return s&&0!==s.length?po(s.map(l=>{const d=RS(e)??r,h=c2(l,d);return Iy(function foe(n){return n&&OS(n.canDeactivate)}(h)?h.canDeactivate(n,e,t,i):El(d,()=>h(n,e,t,i))).pipe(vb())})).pipe(d2()):po(!0)}(r.component,r.route,t,e,i)),vb(r=>!0!==r,!0))}(o,i,r,n).pipe(qh(l=>l&&function coe(n){return"boolean"==typeof n}(l)?function goe(n,e,t,i){return ah(e).pipe(Yw(r=>wS(function yoe(n,e){return null!==n&&e&&e(new Hse(n)),po(!0)}(r.route.parent,i),function _oe(n,e){return null!==n&&e&&e(new Gse(n)),po(!0)}(r.route,i),function boe(n,e,t){const i=e[e.length-1],s=e.slice(0,e.length-1).reverse().map(o=>function ooe(n){const e=n.routeConfig?n.routeConfig.canActivateChild:null;return e&&0!==e.length?{node:n,guards:e}:null}(o)).filter(o=>null!==o).map(o=>CD(()=>po(o.guards.map(d=>{const h=RS(o.node)??t,f=c2(d,h);return Iy(function uoe(n){return n&&OS(n.canActivateChild)}(f)?f.canActivateChild(i,n):El(h,()=>f(i,n))).pipe(vb())})).pipe(d2())));return po(s).pipe(d2())}(n,r.path,t),function voe(n,e,t){const i=e.routeConfig?e.routeConfig.canActivate:null;if(!i||0===i.length)return po(!0);const r=i.map(s=>CD(()=>{const o=RS(e)??t,l=c2(s,o);return Iy(function hoe(n){return n&&OS(n.canActivate)}(l)?l.canActivate(e,n):El(o,()=>l(e,n))).pipe(vb())}));return po(r).pipe(d2())}(n,r.route,t))),vb(r=>!0!==r,!0))}(i,s,n,e):po(l)),bi(l=>({...t,guardsResult:l})))})}(this.environmentInjector,d=>this.events.next(d)),lh(d=>{if(s.guardsResult=d.guardsResult,r2(d.guardsResult))throw bz(0,d.guardsResult);const h=new Ose(d.id,this.urlSerializer.serialize(d.extractedUrl),this.urlSerializer.serialize(d.urlAfterRedirects),d.targetSnapshot,!!d.guardsResult);this.events.next(h)}),od(d=>!!d.guardsResult||(this.cancelNavigationTransition(d,"",cm.GuardRejected),!1)),Ik(d=>{if(d.guards.canActivateChecks.length)return po(d).pipe(lh(h=>{const f=new Lse(h.id,this.urlSerializer.serialize(h.extractedUrl),this.urlSerializer.serialize(h.urlAfterRedirects),h.targetSnapshot);this.events.next(f)}),Df(h=>{let f=!1;return po(h).pipe(function Qoe(n,e){return qh(t=>{const{targetSnapshot:i,guards:{canActivateChecks:r}}=t;if(!r.length)return po(t);const s=new Set(r.map(d=>d.route)),o=new Set;for(const d of s)if(!o.has(d))for(const h of Iz(d))o.add(h);let l=0;return ah(o).pipe(Yw(d=>s.has(d)?function Woe(n,e,t,i){const r=n.routeConfig,s=n._resolve;return void 0!==r?.title&&!_z(r)&&(s[MS]=r.title),function joe(n,e,t,i){const r=ck(n);if(0===r.length)return po({});const s={};return ah(r).pipe(qh(o=>function $oe(n,e,t,i){const r=RS(e)??i,s=c2(n,r);return Iy(s.resolve?s.resolve(e,t):El(r,()=>s(e,t)))}(n[o],e,t,i).pipe(vb(),lh(l=>{s[o]=l}))),lk(1),Q9(s),bb(o=>Sz(o)?rA:CS(o)))}(s,n,e,i).pipe(bi(o=>(n._resolvedData=o,n.data=yk(n,n.parent,t).resolve,null)))}(d,i,n,e):(d.data=yk(d,d.parent,n).resolve,po(void 0))),lh(()=>l++),lk(1),qh(d=>l===o.size?po(t):rA))})}(this.paramsInheritanceStrategy,this.environmentInjector),lh({next:()=>f=!0,complete:()=>{f||this.cancelNavigationTransition(h,"",cm.NoDataFromResolver)}}))}),lh(h=>{const f=new Nse(h.id,this.urlSerializer.serialize(h.extractedUrl),this.urlSerializer.serialize(h.urlAfterRedirects),h.targetSnapshot);this.events.next(f)}))}),Ik(d=>{const h=f=>{const A=[];f.routeConfig?.loadComponent&&!f.routeConfig._loadedComponent&&A.push(this.configLoader.loadComponent(f.routeConfig).pipe(lh(S=>{f.component=S}),bi(()=>{})));for(const S of f.children)A.push(...h(S));return A};return xD(h(d.targetSnapshot.root)).pipe(MD(null),ad(1))}),Ik(()=>this.afterPreactivation()),Df(()=>{const{currentSnapshot:d,targetSnapshot:h}=s,f=this.createViewTransition?.(this.environmentInjector,d.root,h.root);return f?ah(f).pipe(bi(()=>s)):po(s)}),bi(d=>{const h=function $se(n,e,t){const i=PS(n,e._root,t?t._root:void 0);return new pz(i,e)}(t.routeReuseStrategy,d.targetSnapshot,d.currentRouterState);return this.currentTransition=s={...d,targetRouterState:h},this.currentNavigation.targetRouterState=h,s}),lh(()=>{this.events.next(new mk)}),((n,e,t,i)=>bi(r=>(new roe(e,r.targetRouterState,r.currentRouterState,t,i).activate(n),r)))(this.rootContexts,t.routeReuseStrategy,d=>this.events.next(d),this.inputBindingEnabled),ad(1),lh({next:d=>{o=!0,this.lastSuccessfulNavigation=this.currentNavigation,this.events.next(new U_(d.id,this.urlSerializer.serialize(d.extractedUrl),this.urlSerializer.serialize(d.urlAfterRedirects))),this.titleStrategy?.updateTitle(d.targetRouterState.snapshot),d.resolve(!0)},complete:()=>{o=!0}}),Ql(this.transitionAbortSubject.pipe(lh(d=>{throw d}))),Kw(()=>{!o&&!l&&this.cancelNavigationTransition(s,"",cm.SupersededByNewNavigation),this.currentTransition?.id===s.id&&(this.currentNavigation=null,this.currentTransition=null)}),bb(d=>{if(l=!0,wz(d))this.events.next(new s2(s.id,this.urlSerializer.serialize(s.extractedUrl),d.message,d.cancellationCode)),function Kse(n){return wz(n)&&r2(n.url)}(d)?this.events.next(new Ak(d.url)):s.resolve(!1);else{this.events.next(new kD(s.id,this.urlSerializer.serialize(s.extractedUrl),d,s.targetSnapshot??void 0));try{s.resolve(t.errorHandler(d))}catch(h){this.options.resolveNavigationPromiseOnError?s.resolve(!1):s.reject(h)}}return rA}))}))}cancelNavigationTransition(t,i,r){const s=new s2(t.id,this.urlSerializer.serialize(t.extractedUrl),i,r);this.events.next(s),t.resolve(!1)}isUpdatingInternalState(){return this.currentTransition?.extractedUrl.toString()!==this.currentTransition?.currentUrlTree.toString()}isUpdatedBrowserUrl(){return this.urlHandlingStrategy.extract(this.urlSerializer.parse(this.location.path(!0))).toString()!==this.currentTransition?.extractedUrl.toString()&&!this.currentTransition?.extras.skipLocationChange}static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();function tae(n){return n!==IS}let nae=(()=>{class n{static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275prov=Gi({token:n,factory:()=>pi(rae),providedIn:"root"})}return n})();class iae{shouldDetach(e){return!1}store(e,t){}shouldAttach(e){return!1}retrieve(e){return null}shouldReuseRoute(e,t){return e.routeConfig===t.routeConfig}}let rae=(()=>{class n extends iae{static#e=this.\u0275fac=(()=>{let t;return function(r){return(t||(t=Ca(n)))(r||n)}})();static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),Fz=(()=>{class n{static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275prov=Gi({token:n,factory:()=>pi(sae),providedIn:"root"})}return n})(),sae=(()=>{class n extends Fz{constructor(){super(...arguments),this.location=pi(gb),this.urlSerializer=pi(n2),this.options=pi(u2,{optional:!0})||{},this.canceledNavigationResolution=this.options.canceledNavigationResolution||"replace",this.urlHandlingStrategy=pi(Pk),this.urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred",this.currentUrlTree=new t2,this.rawUrlTree=this.currentUrlTree,this.currentPageId=0,this.lastSuccessfulId=-1,this.routerState=mz(null),this.stateMemento=this.createStateMemento()}getCurrentUrlTree(){return this.currentUrlTree}getRawUrlTree(){return this.rawUrlTree}restoredState(){return this.location.getState()}get browserPageId(){return"computed"!==this.canceledNavigationResolution?this.currentPageId:this.restoredState()?.\u0275routerPageId??this.currentPageId}getRouterState(){return this.routerState}createStateMemento(){return{rawUrlTree:this.rawUrlTree,currentUrlTree:this.currentUrlTree,routerState:this.routerState}}registerNonRouterCurrentEntryChangeListener(t){return this.location.subscribe(i=>{"popstate"===i.type&&t(i.url,i.state)})}handleRouterEvent(t,i){if(t instanceof PD)this.stateMemento=this.createStateMemento();else if(t instanceof o2)this.rawUrlTree=i.initialUrl;else if(t instanceof hz){if("eager"===this.urlUpdateStrategy&&!i.extras.skipLocationChange){const r=this.urlHandlingStrategy.merge(i.finalUrl,i.initialUrl);this.setBrowserUrl(r,i)}}else t instanceof mk?(this.currentUrlTree=i.finalUrl,this.rawUrlTree=this.urlHandlingStrategy.merge(i.finalUrl,i.initialUrl),this.routerState=i.targetRouterState,"deferred"===this.urlUpdateStrategy&&(i.extras.skipLocationChange||this.setBrowserUrl(this.rawUrlTree,i))):t instanceof s2&&(t.code===cm.GuardRejected||t.code===cm.NoDataFromResolver)?this.restoreHistory(i):t instanceof kD?this.restoreHistory(i,!0):t instanceof U_&&(this.lastSuccessfulId=t.id,this.currentPageId=this.browserPageId)}setBrowserUrl(t,i){const r=this.urlSerializer.serialize(t);if(this.location.isCurrentPathEqualTo(r)||i.extras.replaceUrl){const o={...i.extras.state,...this.generateNgRouterState(i.id,this.browserPageId)};this.location.replaceState(r,"",o)}else{const s={...i.extras.state,...this.generateNgRouterState(i.id,this.browserPageId+1)};this.location.go(r,"",s)}}restoreHistory(t,i=!1){if("computed"===this.canceledNavigationResolution){const s=this.currentPageId-this.browserPageId;0!==s?this.location.historyGo(s):this.currentUrlTree===t.finalUrl&&0===s&&(this.resetState(t),this.resetUrlToCurrentUrlTree())}else"replace"===this.canceledNavigationResolution&&(i&&this.resetState(t),this.resetUrlToCurrentUrlTree())}resetState(t){this.routerState=this.stateMemento.routerState,this.currentUrlTree=this.stateMemento.currentUrlTree,this.rawUrlTree=this.urlHandlingStrategy.merge(this.currentUrlTree,t.finalUrl??this.rawUrlTree)}resetUrlToCurrentUrlTree(){this.location.replaceState(this.urlSerializer.serialize(this.rawUrlTree),"",this.generateNgRouterState(this.lastSuccessfulId,this.currentPageId))}generateNgRouterState(t,i){return"computed"===this.canceledNavigationResolution?{navigationId:t,\u0275routerPageId:i}:{navigationId:t}}static#e=this.\u0275fac=(()=>{let t;return function(r){return(t||(t=Ca(n)))(r||n)}})();static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();var LS=function(n){return n[n.COMPLETE=0]="COMPLETE",n[n.FAILED=1]="FAILED",n[n.REDIRECTING=2]="REDIRECTING",n}(LS||{});function Oz(n,e){n.events.pipe(od(t=>t instanceof U_||t instanceof s2||t instanceof kD||t instanceof o2),bi(t=>t instanceof U_||t instanceof o2?LS.COMPLETE:t instanceof s2&&(t.code===cm.Redirect||t.code===cm.SupersededByNewNavigation)?LS.REDIRECTING:LS.FAILED),od(t=>t!==LS.REDIRECTING),ad(1)).subscribe(()=>{e()})}function oae(n){throw n}const aae={paths:"exact",fragment:"ignored",matrixParams:"ignored",queryParams:"exact"},lae={paths:"subset",fragment:"ignored",matrixParams:"ignored",queryParams:"subset"};let lg=(()=>{class n{get currentUrlTree(){return this.stateManager.getCurrentUrlTree()}get rawUrlTree(){return this.stateManager.getRawUrlTree()}get events(){return this._events}get routerState(){return this.stateManager.getRouterState()}constructor(){this.disposed=!1,this.isNgZoneEnabled=!1,this.console=pi(aU),this.stateManager=pi(Fz),this.options=pi(u2,{optional:!0})||{},this.pendingTasks=pi(by),this.urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred",this.navigationTransitions=pi(UD),this.urlSerializer=pi(n2),this.location=pi(gb),this.urlHandlingStrategy=pi(Pk),this._events=new un,this.errorHandler=this.options.errorHandler||oae,this.navigated=!1,this.routeReuseStrategy=pi(nae),this.onSameUrlNavigation=this.options.onSameUrlNavigation||"ignore",this.config=pi(f2,{optional:!0})?.flat()??[],this.componentInputBindingEnabled=!!pi(FD,{optional:!0}),this.eventsSubscription=new rt,this.isNgZoneEnabled=pi(io)instanceof io&&io.isInAngularZone(),this.resetConfig(this.config),this.navigationTransitions.setupNavigations(this,this.currentUrlTree,this.routerState).subscribe({error:t=>{this.console.warn(t)}}),this.subscribeToNavigationEvents()}subscribeToNavigationEvents(){const t=this.navigationTransitions.events.subscribe(i=>{try{const r=this.navigationTransitions.currentTransition,s=this.navigationTransitions.currentNavigation;if(null!==r&&null!==s)if(this.stateManager.handleRouterEvent(i,s),i instanceof s2&&i.code!==cm.Redirect&&i.code!==cm.SupersededByNewNavigation)this.navigated=!0;else if(i instanceof U_)this.navigated=!0;else if(i instanceof Ak){const o=this.urlHandlingStrategy.merge(i.url,r.currentRawUrl),l={info:r.extras.info,skipLocationChange:r.extras.skipLocationChange,replaceUrl:"eager"===this.urlUpdateStrategy||tae(r.source)};this.scheduleNavigation(o,IS,null,l,{resolve:r.resolve,reject:r.reject,promise:r.promise})}(function dae(n){return!(n instanceof mk||n instanceof Ak)})(i)&&this._events.next(i)}catch(r){this.navigationTransitions.transitionAbortSubject.next(r)}});this.eventsSubscription.add(t)}resetRootComponentType(t){this.routerState.root.component=t,this.navigationTransitions.rootComponentType=t}initialNavigation(){this.setUpLocationChangeListener(),this.navigationTransitions.hasRequestedNavigation||this.navigateToSyncWithBrowser(this.location.path(!0),IS,this.stateManager.restoredState())}setUpLocationChangeListener(){this.nonRouterCurrentEntryChangeSubscription??=this.stateManager.registerNonRouterCurrentEntryChangeListener((t,i)=>{setTimeout(()=>{this.navigateToSyncWithBrowser(t,"popstate",i)},0)})}navigateToSyncWithBrowser(t,i,r){const s={replaceUrl:!0},o=r?.navigationId?r:null;if(r){const d={...r};delete d.navigationId,delete d.\u0275routerPageId,0!==Object.keys(d).length&&(s.state=d)}const l=this.parseUrl(t);this.scheduleNavigation(l,i,o,s)}get url(){return this.serializeUrl(this.currentUrlTree)}getCurrentNavigation(){return this.navigationTransitions.currentNavigation}get lastSuccessfulNavigation(){return this.navigationTransitions.lastSuccessfulNavigation}resetConfig(t){this.config=t.map(Mk),this.navigated=!1}ngOnDestroy(){this.dispose()}dispose(){this.navigationTransitions.complete(),this.nonRouterCurrentEntryChangeSubscription&&(this.nonRouterCurrentEntryChangeSubscription.unsubscribe(),this.nonRouterCurrentEntryChangeSubscription=void 0),this.disposed=!0,this.eventsSubscription.unsubscribe()}createUrlTree(t,i={}){const{relativeTo:r,queryParams:s,fragment:o,queryParamsHandling:l,preserveFragment:d}=i,h=d?this.currentUrlTree.fragment:o;let A,f=null;switch(l){case"merge":f={...this.currentUrlTree.queryParams,...s};break;case"preserve":f=this.currentUrlTree.queryParams;break;default:f=s||null}null!==f&&(f=this.removeEmptyProps(f));try{A=rz(r?r.snapshot:this.routerState.snapshot.root)}catch{("string"!=typeof t[0]||!t[0].startsWith("/"))&&(t=[]),A=this.currentUrlTree.root}return sz(A,t,f,h??null)}navigateByUrl(t,i={skipLocationChange:!1}){const r=r2(t)?t:this.parseUrl(t),s=this.urlHandlingStrategy.merge(r,this.rawUrlTree);return this.scheduleNavigation(s,IS,null,i)}navigate(t,i={skipLocationChange:!1}){return function cae(n){for(let e=0;e(null!=s&&(i[r]=s),i),{})}scheduleNavigation(t,i,r,s,o){if(this.disposed)return Promise.resolve(!1);let l,d,h;o?(l=o.resolve,d=o.reject,h=o.promise):h=new Promise((A,S)=>{l=A,d=S});const f=this.pendingTasks.add();return Oz(this,()=>{queueMicrotask(()=>this.pendingTasks.remove(f))}),this.navigationTransitions.handleNavigationRequest({source:i,restoredState:r,currentUrlTree:this.currentUrlTree,currentRawUrl:this.currentUrlTree,rawUrl:t,extras:s,resolve:l,reject:d,promise:h,currentSnapshot:this.routerState.snapshot,currentRouterState:this.routerState}),h.catch(A=>Promise.reject(A))}static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),NS=(()=>{class n{constructor(t,i,r,s,o,l){this.router=t,this.route=i,this.tabIndexAttribute=r,this.renderer=s,this.el=o,this.locationStrategy=l,this.href=null,this.commands=null,this.onChanges=new un,this.preserveFragment=!1,this.skipLocationChange=!1,this.replaceUrl=!1;const d=o.nativeElement.tagName?.toLowerCase();this.isAnchorElement="a"===d||"area"===d,this.isAnchorElement?this.subscription=t.events.subscribe(h=>{h instanceof U_&&this.updateHref()}):this.setTabIndexIfNotOnNativeEl("0")}setTabIndexIfNotOnNativeEl(t){null!=this.tabIndexAttribute||this.isAnchorElement||this.applyAttributeValue("tabindex",t)}ngOnChanges(t){this.isAnchorElement&&this.updateHref(),this.onChanges.next(this)}set routerLink(t){null!=t?(this.commands=Array.isArray(t)?t:[t],this.setTabIndexIfNotOnNativeEl("0")):(this.commands=null,this.setTabIndexIfNotOnNativeEl(null))}onClick(t,i,r,s,o){const l=this.urlTree;return!!(null===l||this.isAnchorElement&&(0!==t||i||r||s||o||"string"==typeof this.target&&"_self"!=this.target))||(this.router.navigateByUrl(l,{skipLocationChange:this.skipLocationChange,replaceUrl:this.replaceUrl,state:this.state,info:this.info}),!this.isAnchorElement)}ngOnDestroy(){this.subscription?.unsubscribe()}updateHref(){const t=this.urlTree;this.href=null!==t&&this.locationStrategy?this.locationStrategy?.prepareExternalUrl(this.router.serializeUrl(t)):null;const i=null===this.href?null:function gT(n,e,t){return function zB(n,e){return"src"===e&&("embed"===n||"frame"===n||"iframe"===n||"media"===n||"script"===n)||"href"===e&&("base"===n||"link"===n)?jx:K1}(e,t)(n)}(this.href,this.el.nativeElement.tagName.toLowerCase(),"href");this.applyAttributeValue("href",i)}applyAttributeValue(t,i){const r=this.renderer,s=this.el.nativeElement;null!==i?r.setAttribute(s,t,i):r.removeAttribute(s,t)}get urlTree(){return null===this.commands?null:this.router.createUrlTree(this.commands,{relativeTo:void 0!==this.relativeTo?this.relativeTo:this.route,queryParams:this.queryParams,fragment:this.fragment,queryParamsHandling:this.queryParamsHandling,preserveFragment:this.preserveFragment})}static#e=this.\u0275fac=function(i){return new(i||n)(Lt(lg),Lt(l2),bh("tabindex"),Lt(ZA),Lt(oo),Lt(Ab))};static#t=this.\u0275dir=Ft({type:n,selectors:[["","routerLink",""]],hostVars:1,hostBindings:function(i,r){1&i&&Ai("click",function(o){return r.onClick(o.button,o.ctrlKey,o.shiftKey,o.altKey,o.metaKey)}),2&i&&sl("target",r.target)},inputs:{target:"target",queryParams:"queryParams",fragment:"fragment",queryParamsHandling:"queryParamsHandling",state:"state",info:"info",relativeTo:"relativeTo",preserveFragment:[mi.HasDecoratorInputTransform,"preserveFragment","preserveFragment",_o],skipLocationChange:[mi.HasDecoratorInputTransform,"skipLocationChange","skipLocationChange",_o],replaceUrl:[mi.HasDecoratorInputTransform,"replaceUrl","replaceUrl",_o],routerLink:"routerLink"},standalone:!0,features:[ql,kl]})}return n})();class Lz{}let fae=(()=>{class n{constructor(t,i,r,s,o){this.router=t,this.injector=r,this.preloadingStrategy=s,this.loader=o}setUpPreloading(){this.subscription=this.router.events.pipe(od(t=>t instanceof U_),Yw(()=>this.preload())).subscribe(()=>{})}preload(){return this.processRoutes(this.injector,this.router.config)}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe()}processRoutes(t,i){const r=[];for(const s of i){s.providers&&!s._injector&&(s._injector=C3(s.providers,t,`Route: ${s.path}`));const o=s._injector??t,l=s._loadedInjector??o;(s.loadChildren&&!s._loadedRoutes&&void 0===s.canLoad||s.loadComponent&&!s._loadedComponent)&&r.push(this.preloadConfig(o,s)),(s.children||s._loadedRoutes)&&r.push(this.processRoutes(l,s.children??s._loadedRoutes))}return ah(r).pipe(Jw())}preloadConfig(t,i){return this.preloadingStrategy.preload(i,()=>{let r;r=i.loadChildren&&void 0===i.canLoad?this.loader.loadChildren(t,i):po(null);const s=r.pipe(qh(o=>null===o?po(void 0):(i._loadedRoutes=o.routes,i._loadedInjector=o.injector,this.processRoutes(o.injector??t,o.routes))));return i.loadComponent&&!i._loadedComponent?ah([s,this.loader.loadComponent(i)]).pipe(Jw()):s})}static#e=this.\u0275fac=function(i){return new(i||n)(xi(lg),xi(gU),xi(Rc),xi(Lz),xi(Bk))};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();const Rk=new Bi("");let Nz=(()=>{class n{constructor(t,i,r,s,o={}){this.urlSerializer=t,this.transitions=i,this.viewportScroller=r,this.zone=s,this.options=o,this.lastId=0,this.lastSource="imperative",this.restoredId=0,this.store={},o.scrollPositionRestoration||="disabled",o.anchorScrolling||="disabled"}init(){"disabled"!==this.options.scrollPositionRestoration&&this.viewportScroller.setHistoryScrollRestoration("manual"),this.routerEventsSubscription=this.createScrollEvents(),this.scrollEventsSubscription=this.consumeScrollEvents()}createScrollEvents(){return this.transitions.events.subscribe(t=>{t instanceof PD?(this.store[this.lastId]=this.viewportScroller.getScrollPosition(),this.lastSource=t.navigationTrigger,this.restoredId=t.restoredState?t.restoredState.navigationId:0):t instanceof U_?(this.lastId=t.id,this.scheduleScrollEvent(t,this.urlSerializer.parse(t.urlAfterRedirects).fragment)):t instanceof o2&&t.code===RD.IgnoredSameUrlNavigation&&(this.lastSource=void 0,this.restoredId=0,this.scheduleScrollEvent(t,this.urlSerializer.parse(t.url).fragment))})}consumeScrollEvents(){return this.transitions.events.subscribe(t=>{t instanceof uz&&(t.position?"top"===this.options.scrollPositionRestoration?this.viewportScroller.scrollToPosition([0,0]):"enabled"===this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition(t.position):t.anchor&&"enabled"===this.options.anchorScrolling?this.viewportScroller.scrollToAnchor(t.anchor):"disabled"!==this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition([0,0]))})}scheduleScrollEvent(t,i){this.zone.runOutsideAngular(()=>{setTimeout(()=>{this.zone.run(()=>{this.transitions.events.next(new uz(t,"popstate"===this.lastSource?this.store[this.restoredId]:null,i))})},0)})}ngOnDestroy(){this.routerEventsSubscription?.unsubscribe(),this.scrollEventsSubscription?.unsubscribe()}static#e=this.\u0275fac=function(i){fM()};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac})}return n})();function w0(n,e){return{\u0275kind:n,\u0275providers:e}}function zz(){const n=pi(ml);return e=>{const t=n.get(k_);if(e!==t.components[0])return;const i=n.get(lg),r=n.get(Hz);1===n.get(kk)&&i.initialNavigation(),n.get(Vz,null,va.Optional)?.setUpPreloading(),n.get(Rk,null,va.Optional)?.init(),i.resetRootComponentType(t.componentTypes[0]),r.closed||(r.next(),r.complete(),r.unsubscribe())}}const Hz=new Bi("",{factory:()=>new un}),kk=new Bi("",{providedIn:"root",factory:()=>1}),Vz=new Bi("");function gae(n){return w0(0,[{provide:Vz,useExisting:fae},{provide:Lz,useExisting:n}])}function yae(n){return w0(9,[{provide:Rz,useValue:Joe},{provide:kz,useValue:{skipNextTransition:!!n?.skipInitialTransition,...n}}])}const Gz=new Bi("ROUTER_FORROOT_GUARD"),vae=[gb,{provide:n2,useClass:dk},lg,BS,{provide:l2,useFactory:function Uz(n){return n.routerState.root},deps:[lg]},Bk,[]];let qz=(()=>{class n{constructor(t){}static forRoot(t,i){return{ngModule:n,providers:[vae,[],{provide:f2,multi:!0,useValue:t},{provide:Gz,useFactory:Cae,deps:[[lg,new cl,new Xl]]},{provide:u2,useValue:i||{}},i?.useHash?{provide:Ab,useClass:hte}:{provide:Ab,useClass:a7},{provide:Rk,useFactory:()=>{const n=pi(Tne),e=pi(io),t=pi(u2),i=pi(UD),r=pi(n2);return t.scrollOffset&&n.setOffset(t.scrollOffset),new Nz(r,i,n,e,t)}},i?.preloadingStrategy?gae(i.preloadingStrategy).\u0275providers:[],i?.initialNavigation?Mae(i):[],i?.bindToComponentInputs?w0(8,[yz,{provide:FD,useExisting:yz}]).\u0275providers:[],i?.enableViewTransitions?yae().\u0275providers:[],[{provide:Qz,useFactory:zz},{provide:fR,multi:!0,useExisting:Qz}]]}}static forChild(t){return{ngModule:n,providers:[{provide:f2,multi:!0,useValue:t}]}}static#e=this.\u0275fac=function(i){return new(i||n)(xi(Gz,8))};static#t=this.\u0275mod=vo({type:n});static#n=this.\u0275inj=ra({})}return n})();function Cae(n){return"guarded"}function Mae(n){return["disabled"===n.initialNavigation?w0(3,[{provide:hR,multi:!0,useFactory:()=>{const e=pi(lg);return()=>{e.setUpLocationChangeListener()}}},{provide:kk,useValue:2}]).\u0275providers:[],"enabledBlocking"===n.initialNavigation?w0(2,[{provide:kk,useValue:0},{provide:hR,multi:!0,deps:[ml],useFactory:e=>{const t=e.get(cte,Promise.resolve());return()=>t.then(()=>new Promise(i=>{const r=e.get(lg),s=e.get(Hz);Oz(r,()=>{i(!0)}),e.get(UD).afterPreactivation=()=>(i(!0),s.closed?po(void 0):s),r.initialNavigation()}))}}]).\u0275providers:[]]}const Qz=new Bi("");let Eae=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275cmp=rs({type:n,selectors:[["app-root"]],decls:1,vars:0,template:function(i,r){1&i&&Vr(0,"router-outlet")},dependencies:[Ck]})}return n})();var Wz=Se(8872),jz=(Se(8362),Se(2843),Se(1922),Se(8142),Se(4355),Se(1828),Se(578),Se(2454)),$z=(Se(5992),Se(6923),Se(4369));Se(6157),Se(6043),Se(1949);var cg=Object.freeze({Linear:Object.freeze({None:function(n){return n},In:function(n){return this.None(n)},Out:function(n){return this.None(n)},InOut:function(n){return this.None(n)}}),Quadratic:Object.freeze({In:function(n){return n*n},Out:function(n){return n*(2-n)},InOut:function(n){return(n*=2)<1?.5*n*n:-.5*(--n*(n-2)-1)}}),Cubic:Object.freeze({In:function(n){return n*n*n},Out:function(n){return--n*n*n+1},InOut:function(n){return(n*=2)<1?.5*n*n*n:.5*((n-=2)*n*n+2)}}),Quartic:Object.freeze({In:function(n){return n*n*n*n},Out:function(n){return 1- --n*n*n*n},InOut:function(n){return(n*=2)<1?.5*n*n*n*n:-.5*((n-=2)*n*n*n-2)}}),Quintic:Object.freeze({In:function(n){return n*n*n*n*n},Out:function(n){return--n*n*n*n*n+1},InOut:function(n){return(n*=2)<1?.5*n*n*n*n*n:.5*((n-=2)*n*n*n*n+2)}}),Sinusoidal:Object.freeze({In:function(n){return 1-Math.sin((1-n)*Math.PI/2)},Out:function(n){return Math.sin(n*Math.PI/2)},InOut:function(n){return.5*(1-Math.sin(Math.PI*(.5-n)))}}),Exponential:Object.freeze({In:function(n){return 0===n?0:Math.pow(1024,n-1)},Out:function(n){return 1===n?1:1-Math.pow(2,-10*n)},InOut:function(n){return 0===n?0:1===n?1:(n*=2)<1?.5*Math.pow(1024,n-1):.5*(2-Math.pow(2,-10*(n-1)))}}),Circular:Object.freeze({In:function(n){return 1-Math.sqrt(1-n*n)},Out:function(n){return Math.sqrt(1- --n*n)},InOut:function(n){return(n*=2)<1?-.5*(Math.sqrt(1-n*n)-1):.5*(Math.sqrt(1-(n-=2)*n)+1)}}),Elastic:Object.freeze({In:function(n){return 0===n?0:1===n?1:-Math.pow(2,10*(n-1))*Math.sin(5*(n-1.1)*Math.PI)},Out:function(n){return 0===n?0:1===n?1:Math.pow(2,-10*n)*Math.sin(5*(n-.1)*Math.PI)+1},InOut:function(n){return 0===n?0:1===n?1:(n*=2)<1?-.5*Math.pow(2,10*(n-1))*Math.sin(5*(n-1.1)*Math.PI):.5*Math.pow(2,-10*(n-1))*Math.sin(5*(n-1.1)*Math.PI)+1}}),Back:Object.freeze({In:function(n){var e=1.70158;return 1===n?1:n*n*((e+1)*n-e)},Out:function(n){var e=1.70158;return 0===n?0:--n*n*((e+1)*n+e)+1},InOut:function(n){var e=2.5949095;return(n*=2)<1?n*n*((e+1)*n-e)*.5:.5*((n-=2)*n*((e+1)*n+e)+2)}}),Bounce:Object.freeze({In:function(n){return 1-cg.Bounce.Out(1-n)},Out:function(n){return n<1/2.75?7.5625*n*n:n<2/2.75?7.5625*(n-=1.5/2.75)*n+.75:n<2.5/2.75?7.5625*(n-=2.25/2.75)*n+.9375:7.5625*(n-=2.625/2.75)*n+.984375},InOut:function(n){return n<.5?.5*cg.Bounce.In(2*n):.5*cg.Bounce.Out(2*n-1)+.5}}),generatePow:function(n){return void 0===n&&(n=4),n=(n=n1e4?1e4:n,{In:function(e){return Math.pow(e,n)},Out:function(e){return 1-Math.pow(1-e,n)},InOut:function(e){return e<.5?Math.pow(2*e,n)/2:(1-Math.pow(2-2*e,n))/2+.5}}}}),p2=function(){return performance.now()},Xz=function(){function n(){this._tweens={},this._tweensAddedDuringUpdate={}}return n.prototype.getAll=function(){var e=this;return Object.keys(this._tweens).map(function(t){return e._tweens[t]})},n.prototype.removeAll=function(){this._tweens={}},n.prototype.add=function(e){this._tweens[e.getId()]=e,this._tweensAddedDuringUpdate[e.getId()]=e},n.prototype.remove=function(e){delete this._tweens[e.getId()],delete this._tweensAddedDuringUpdate[e.getId()]},n.prototype.update=function(e,t){void 0===e&&(e=p2()),void 0===t&&(t=!1);var i=Object.keys(this._tweens);if(0===i.length)return!1;for(;i.length>0;){this._tweensAddedDuringUpdate={};for(var r=0;r1?s(n[t],n[t-1],t-i):s(n[r],n[r+1>t?t:r+1],i-r)},Bezier:function(n,e){for(var t=0,i=n.length-1,r=Math.pow,s=wb.Utils.Bernstein,o=0;o<=i;o++)t+=r(1-e,i-o)*r(e,o)*n[o]*s(i,o);return t},CatmullRom:function(n,e){var t=n.length-1,i=t*e,r=Math.floor(i),s=wb.Utils.CatmullRom;return n[0]===n[t]?(e<0&&(r=Math.floor(i=t*(1+e))),s(n[(r-1+t)%t],n[r],n[(r+1)%t],n[(r+2)%t],i-r)):e<0?n[0]-(s(n[0],n[0],n[1],n[1],-i)-n[0]):e>1?n[t]-(s(n[t],n[t],n[t-1],n[t-1],i-t)-n[t]):s(n[r?r-1:0],n[r],n[t1;i--)t*=i;return n[e]=t,t}}(),CatmullRom:function(n,e,t,i,r){var s=.5*(t-n),o=.5*(i-e),l=r*r;return(2*e-2*t+s+o)*(r*l)+(-3*e+3*t-2*s-o)*l+s*r+e}}},Ok=function(){function n(){}return n.nextId=function(){return n._nextId++},n._nextId=0,n}(),Lk=new Xz,If=function(){function n(e,t){void 0===t&&(t=Lk),this._object=e,this._group=t,this._isPaused=!1,this._pauseStart=0,this._valuesStart={},this._valuesEnd={},this._valuesStartRepeat={},this._duration=1e3,this._isDynamic=!1,this._initialRepeat=0,this._repeat=0,this._yoyo=!1,this._isPlaying=!1,this._reversed=!1,this._delayTime=0,this._startTime=0,this._easingFunction=cg.Linear.None,this._interpolationFunction=wb.Linear,this._chainedTweens=[],this._onStartCallbackFired=!1,this._onEveryStartCallbackFired=!1,this._id=Ok.nextId(),this._isChainStopped=!1,this._propertiesAreSetUp=!1,this._goToEnd=!1}return n.prototype.getId=function(){return this._id},n.prototype.isPlaying=function(){return this._isPlaying},n.prototype.isPaused=function(){return this._isPaused},n.prototype.getDuration=function(){return this._duration},n.prototype.to=function(e,t){if(void 0===t&&(t=1e3),this._isPlaying)throw new Error("Can not call Tween.to() while Tween is already started or paused. Stop the Tween first.");return this._valuesEnd=e,this._propertiesAreSetUp=!1,this._duration=t<0?0:t,this},n.prototype.duration=function(e){return void 0===e&&(e=1e3),this._duration=e<0?0:e,this},n.prototype.dynamic=function(e){return void 0===e&&(e=!1),this._isDynamic=e,this},n.prototype.start=function(e,t){if(void 0===e&&(e=p2()),void 0===t&&(t=!1),this._isPlaying)return this;if(this._group&&this._group.add(this),this._repeat=this._initialRepeat,this._reversed)for(var i in this._reversed=!1,this._valuesStartRepeat)this._swapEndStartRepeatValues(i),this._valuesStart[i]=this._valuesStartRepeat[i];if(this._isPlaying=!0,this._isPaused=!1,this._onStartCallbackFired=!1,this._onEveryStartCallbackFired=!1,this._isChainStopped=!1,this._startTime=e,this._startTime+=this._delayTime,!this._propertiesAreSetUp||t){if(this._propertiesAreSetUp=!0,!this._isDynamic){var r={};for(var s in this._valuesEnd)r[s]=this._valuesEnd[s];this._valuesEnd=r}this._setupProperties(this._object,this._valuesStart,this._valuesEnd,this._valuesStartRepeat,t)}return this},n.prototype.startFromCurrentValues=function(e){return this.start(e,!0)},n.prototype._setupProperties=function(e,t,i,r,s){for(var o in i){var l=e[o],d=Array.isArray(l),h=d?"array":typeof l,f=!d&&Array.isArray(i[o]);if("undefined"!==h&&"function"!==h){if(f){if(0===(A=i[o]).length)continue;for(var S=[l],R=0,G=A.length;R"u"||s)&&(t[o]=l),d||(t[o]*=1),r[o]=f?i[o].slice().reverse():t[o]||0;else{t[o]=d?[]:{};var se=l;for(var le in se)t[o][le]=se[le];r[o]=d?[]:{};var A=i[o];if(!this._isDynamic){var Ee={};for(var le in A)Ee[le]=A[le];i[o]=A=Ee}this._setupProperties(se,t[o],A,r[o],s)}}}},n.prototype.stop=function(){return this._isChainStopped||(this._isChainStopped=!0,this.stopChainedTweens()),this._isPlaying?(this._group&&this._group.remove(this),this._isPlaying=!1,this._isPaused=!1,this._onStopCallback&&this._onStopCallback(this._object),this):this},n.prototype.end=function(){return this._goToEnd=!0,this.update(1/0),this},n.prototype.pause=function(e){return void 0===e&&(e=p2()),this._isPaused||!this._isPlaying||(this._isPaused=!0,this._pauseStart=e,this._group&&this._group.remove(this)),this},n.prototype.resume=function(e){return void 0===e&&(e=p2()),this._isPaused&&this._isPlaying?(this._isPaused=!1,this._startTime+=e-this._pauseStart,this._pauseStart=0,this._group&&this._group.add(this),this):this},n.prototype.stopChainedTweens=function(){for(var e=0,t=this._chainedTweens.length;ethis._startTime+this._duration)return!1;t&&this.start(e,!0)}if(this._goToEnd=!1,eh)return 1;var se=Math.trunc(l/d),Ee=Math.min((l-se*d)/i._duration,1);return 0===Ee&&l===i._duration?1:Ee}(),S=this._easingFunction(A);if(this._updateProperties(this._object,this._valuesStart,this._valuesEnd,S),this._onUpdateCallback&&this._onUpdateCallback(this._object,A),0===this._duration||l>=this._duration){if(this._repeat>0){var R=Math.min(Math.trunc((l-this._duration)/d)+1,this._repeat);for(s in isFinite(this._repeat)&&(this._repeat-=R),this._valuesStartRepeat)!this._yoyo&&"string"==typeof this._valuesEnd[s]&&(this._valuesStartRepeat[s]=this._valuesStartRepeat[s]+parseFloat(this._valuesEnd[s])),this._yoyo&&this._swapEndStartRepeatValues(s),this._valuesStart[s]=this._valuesStartRepeat[s];return this._yoyo&&(this._reversed=!this._reversed),this._startTime+=d*R,this._onRepeatCallback&&this._onRepeatCallback(this._object),this._onEveryStartCallbackFired=!1,!0}this._onCompleteCallback&&this._onCompleteCallback(this._object);for(var G=0,re=this._chainedTweens.length;G>8&255]+Uu[n>>16&255]+Uu[n>>24&255]+"-"+Uu[255&e]+Uu[e>>8&255]+"-"+Uu[e>>16&15|64]+Uu[e>>24&255]+"-"+Uu[63&t|128]+Uu[t>>8&255]+"-"+Uu[t>>16&255]+Uu[t>>24&255]+Uu[255&i]+Uu[i>>8&255]+Uu[i>>16&255]+Uu[i>>24&255]).toLowerCase()}function bd(n,e,t){return Math.max(e,Math.min(t,n))}function Jk(n,e){return(n%e+e)%e}function HS(n,e,t){return(1-t)*n+t*e}function e5(n){return!(n&n-1)&&0!==n}function KD(n){return Math.pow(2,Math.floor(Math.log(n)/Math.LN2))}function Bf(n,e){switch(e.constructor){case Float32Array:return n;case Uint32Array:return n/4294967295;case Uint16Array:return n/65535;case Uint8Array:return n/255;case Int32Array:return Math.max(n/2147483647,-1);case Int16Array:return Math.max(n/32767,-1);case Int8Array:return Math.max(n/127,-1);default:throw new Error("Invalid component type.")}}function Ea(n,e){switch(e.constructor){case Float32Array:return n;case Uint32Array:return Math.round(4294967295*n);case Uint16Array:return Math.round(65535*n);case Uint8Array:return Math.round(255*n);case Int32Array:return Math.round(2147483647*n);case Int16Array:return Math.round(32767*n);case Int8Array:return Math.round(127*n);default:throw new Error("Invalid component type.")}}const VS={DEG2RAD:Bb,RAD2DEG:M2,generateUUID:dm,clamp:bd,euclideanModulo:Jk,mapLinear:function Lle(n,e,t,i,r){return i+(n-e)*(r-i)/(t-e)},inverseLerp:function Nle(n,e,t){return n!==e?(t-n)/(e-n):0},lerp:HS,damp:function Ule(n,e,t,i){return HS(n,e,1-Math.exp(-t*i))},pingpong:function zle(n,e=1){return e-Math.abs(Jk(n,2*e)-e)},smoothstep:function Hle(n,e,t){return n<=e?0:n>=t?1:(n=(n-e)/(t-e))*n*(3-2*n)},smootherstep:function Vle(n,e,t){return n<=e?0:n>=t?1:(n=(n-e)/(t-e))*n*n*(n*(6*n-15)+10)},randInt:function Gle(n,e){return n+Math.floor(Math.random()*(e-n+1))},randFloat:function qle(n,e){return n+Math.random()*(e-n)},randFloatSpread:function Qle(n){return n*(.5-Math.random())},seededRandom:function Wle(n){void 0!==n&&(GH=n);let e=GH+=1831565813;return e=Math.imul(e^e>>>15,1|e),e^=e+Math.imul(e^e>>>7,61|e),((e^e>>>14)>>>0)/4294967296},degToRad:function jle(n){return n*Bb},radToDeg:function $le(n){return n*M2},isPowerOfTwo:e5,ceilPowerOfTwo:function Xle(n){return Math.pow(2,Math.ceil(Math.log(n)/Math.LN2))},floorPowerOfTwo:KD,setQuaternionFromProperEuler:function Yle(n,e,t,i,r){const s=Math.cos,o=Math.sin,l=s(t/2),d=o(t/2),h=s((e+i)/2),f=o((e+i)/2),A=s((e-i)/2),S=o((e-i)/2),R=s((i-e)/2),G=o((i-e)/2);switch(r){case"XYX":n.set(l*f,d*A,d*S,l*h);break;case"YZY":n.set(d*S,l*f,d*A,l*h);break;case"ZXZ":n.set(d*A,d*S,l*f,l*h);break;case"XZX":n.set(l*f,d*G,d*R,l*h);break;case"YXY":n.set(d*R,l*f,d*G,l*h);break;case"ZYZ":n.set(d*G,d*R,l*f,l*h);break;default:console.warn("THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: "+r)}},normalize:Ea,denormalize:Bf};class Qi{constructor(e=0,t=0){Qi.prototype.isVector2=!0,this.x=e,this.y=t}get width(){return this.x}set width(e){this.x=e}get height(){return this.y}set height(e){this.y=e}set(e,t){return this.x=e,this.y=t,this}setScalar(e){return this.x=e,this.y=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y)}copy(e){return this.x=e.x,this.y=e.y,this}add(e){return this.x+=e.x,this.y+=e.y,this}addScalar(e){return this.x+=e,this.y+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this}subScalar(e){return this.x-=e,this.y-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this}multiply(e){return this.x*=e.x,this.y*=e.y,this}multiplyScalar(e){return this.x*=e,this.y*=e,this}divide(e){return this.x/=e.x,this.y/=e.y,this}divideScalar(e){return this.multiplyScalar(1/e)}applyMatrix3(e){const t=this.x,i=this.y,r=e.elements;return this.x=r[0]*t+r[3]*i+r[6],this.y=r[1]*t+r[4]*i+r[7],this}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this}clamp(e,t){return this.x=Math.max(e.x,Math.min(t.x,this.x)),this.y=Math.max(e.y,Math.min(t.y,this.y)),this}clampScalar(e,t){return this.x=Math.max(e,Math.min(t,this.x)),this.y=Math.max(e,Math.min(t,this.y)),this}clampLength(e,t){const i=this.length();return this.divideScalar(i||1).multiplyScalar(Math.max(e,Math.min(t,i)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(e){return this.x*e.x+this.y*e.y}cross(e){return this.x*e.y-this.y*e.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){return Math.atan2(-this.y,-this.x)+Math.PI}angleTo(e){const t=Math.sqrt(this.lengthSq()*e.lengthSq());if(0===t)return Math.PI/2;const i=this.dot(e)/t;return Math.acos(bd(i,-1,1))}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){const t=this.x-e.x,i=this.y-e.y;return t*t+i*i}manhattanDistanceTo(e){return Math.abs(this.x-e.x)+Math.abs(this.y-e.y)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this}lerpVectors(e,t,i){return this.x=e.x+(t.x-e.x)*i,this.y=e.y+(t.y-e.y)*i,this}equals(e){return e.x===this.x&&e.y===this.y}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this}rotateAround(e,t){const i=Math.cos(t),r=Math.sin(t),s=this.x-e.x,o=this.y-e.y;return this.x=s*i-o*r+e.x,this.y=s*r+o*i+e.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}}class Ta{constructor(e,t,i,r,s,o,l,d,h){Ta.prototype.isMatrix3=!0,this.elements=[1,0,0,0,1,0,0,0,1],void 0!==e&&this.set(e,t,i,r,s,o,l,d,h)}set(e,t,i,r,s,o,l,d,h){const f=this.elements;return f[0]=e,f[1]=r,f[2]=l,f[3]=t,f[4]=s,f[5]=d,f[6]=i,f[7]=o,f[8]=h,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(e){const t=this.elements,i=e.elements;return t[0]=i[0],t[1]=i[1],t[2]=i[2],t[3]=i[3],t[4]=i[4],t[5]=i[5],t[6]=i[6],t[7]=i[7],t[8]=i[8],this}extractBasis(e,t,i){return e.setFromMatrix3Column(this,0),t.setFromMatrix3Column(this,1),i.setFromMatrix3Column(this,2),this}setFromMatrix4(e){const t=e.elements;return this.set(t[0],t[4],t[8],t[1],t[5],t[9],t[2],t[6],t[10]),this}multiply(e){return this.multiplyMatrices(this,e)}premultiply(e){return this.multiplyMatrices(e,this)}multiplyMatrices(e,t){const i=e.elements,r=t.elements,s=this.elements,o=i[0],l=i[3],d=i[6],h=i[1],f=i[4],A=i[7],S=i[2],R=i[5],G=i[8],re=r[0],se=r[3],le=r[6],Ee=r[1],Ce=r[4],We=r[7],Mt=r[2],yt=r[5],Et=r[8];return s[0]=o*re+l*Ee+d*Mt,s[3]=o*se+l*Ce+d*yt,s[6]=o*le+l*We+d*Et,s[1]=h*re+f*Ee+A*Mt,s[4]=h*se+f*Ce+A*yt,s[7]=h*le+f*We+A*Et,s[2]=S*re+R*Ee+G*Mt,s[5]=S*se+R*Ce+G*yt,s[8]=S*le+R*We+G*Et,this}multiplyScalar(e){const t=this.elements;return t[0]*=e,t[3]*=e,t[6]*=e,t[1]*=e,t[4]*=e,t[7]*=e,t[2]*=e,t[5]*=e,t[8]*=e,this}determinant(){const e=this.elements,t=e[0],i=e[1],r=e[2],s=e[3],o=e[4],l=e[5],d=e[6],h=e[7],f=e[8];return t*o*f-t*l*h-i*s*f+i*l*d+r*s*h-r*o*d}invert(){const e=this.elements,t=e[0],i=e[1],r=e[2],s=e[3],o=e[4],l=e[5],d=e[6],h=e[7],f=e[8],A=f*o-l*h,S=l*d-f*s,R=h*s-o*d,G=t*A+i*S+r*R;if(0===G)return this.set(0,0,0,0,0,0,0,0,0);const re=1/G;return e[0]=A*re,e[1]=(r*h-f*i)*re,e[2]=(l*i-r*o)*re,e[3]=S*re,e[4]=(f*t-r*d)*re,e[5]=(r*s-l*t)*re,e[6]=R*re,e[7]=(i*d-h*t)*re,e[8]=(o*t-i*s)*re,this}transpose(){let e;const t=this.elements;return e=t[1],t[1]=t[3],t[3]=e,e=t[2],t[2]=t[6],t[6]=e,e=t[5],t[5]=t[7],t[7]=e,this}getNormalMatrix(e){return this.setFromMatrix4(e).invert().transpose()}transposeIntoArray(e){const t=this.elements;return e[0]=t[0],e[1]=t[3],e[2]=t[6],e[3]=t[1],e[4]=t[4],e[5]=t[7],e[6]=t[2],e[7]=t[5],e[8]=t[8],this}setUvTransform(e,t,i,r,s,o,l){const d=Math.cos(s),h=Math.sin(s);return this.set(i*d,i*h,-i*(d*o+h*l)+o+e,-r*h,r*d,-r*(-h*o+d*l)+l+t,0,0,1),this}scale(e,t){return this.premultiply(t5.makeScale(e,t)),this}rotate(e){return this.premultiply(t5.makeRotation(-e)),this}translate(e,t){return this.premultiply(t5.makeTranslation(e,t)),this}makeTranslation(e,t){return e.isVector2?this.set(1,0,e.x,0,1,e.y,0,0,1):this.set(1,0,e,0,1,t,0,0,1),this}makeRotation(e){const t=Math.cos(e),i=Math.sin(e);return this.set(t,-i,0,i,t,0,0,0,1),this}makeScale(e,t){return this.set(e,0,0,0,t,0,0,0,1),this}equals(e){const t=this.elements,i=e.elements;for(let r=0;r<9;r++)if(t[r]!==i[r])return!1;return!0}fromArray(e,t=0){for(let i=0;i<9;i++)this.elements[i]=e[i+t];return this}toArray(e=[],t=0){const i=this.elements;return e[t]=i[0],e[t+1]=i[1],e[t+2]=i[2],e[t+3]=i[3],e[t+4]=i[4],e[t+5]=i[5],e[t+6]=i[6],e[t+7]=i[7],e[t+8]=i[8],e}clone(){return(new this.constructor).fromArray(this.elements)}}const t5=new Ta;function qH(n){for(let e=n.length-1;e>=0;--e)if(n[e]>=65535)return!0;return!1}const Kle={Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array};function S2(n,e){return new Kle[n](e)}function GS(n){return document.createElementNS("http://www.w3.org/1999/xhtml",n)}function Zle(){const n=GS("canvas");return n.style.display="block",n}const QH={};function WH(n){n in QH||(QH[n]=!0,console.warn(n))}const jH=(new Ta).set(.8224621,.177538,0,.0331941,.9668058,0,.0170827,.0723974,.9105199),$H=(new Ta).set(1.2249401,-.2249404,0,-.0420569,1.0420571,0,-.0196376,-.0786361,1.0982735),ZD={[Qh]:{transfer:WD,primaries:jD,toReference:n=>n,fromReference:n=>n},[ch]:{transfer:Vc,primaries:jD,toReference:n=>n.convertSRGBToLinear(),fromReference:n=>n.convertLinearToSRGB()},[QD]:{transfer:WD,primaries:$D,toReference:n=>n.applyMatrix3($H),fromReference:n=>n.applyMatrix3(jH)},[Kk]:{transfer:Vc,primaries:$D,toReference:n=>n.convertSRGBToLinear().applyMatrix3($H),fromReference:n=>n.applyMatrix3(jH).convertLinearToSRGB()}},Jle=new Set([Qh,QD]),Ol={enabled:!0,_workingColorSpace:Qh,get workingColorSpace(){return this._workingColorSpace},set workingColorSpace(n){if(!Jle.has(n))throw new Error(`Unsupported working color space, "${n}".`);this._workingColorSpace=n},convert:function(n,e,t){return!1!==this.enabled&&e!==t&&e&&t?(0,ZD[t].fromReference)((0,ZD[e].toReference)(n)):n},fromWorkingColorSpace:function(n,e){return this.convert(n,this._workingColorSpace,e)},toWorkingColorSpace:function(n,e){return this.convert(n,e,this._workingColorSpace)},getPrimaries:function(n){return ZD[n].primaries},getTransfer:function(n){return""===n?WD:ZD[n].transfer}};function E2(n){return n<.04045?.0773993808*n:Math.pow(.9478672986*n+.0521327014,2.4)}function n5(n){return n<.0031308?12.92*n:1.055*Math.pow(n,.41666)-.055}let T2;class XH{static getDataURL(e){if(/^data:/i.test(e.src)||typeof HTMLCanvasElement>"u")return e.src;let t;if(e instanceof HTMLCanvasElement)t=e;else{void 0===T2&&(T2=GS("canvas")),T2.width=e.width,T2.height=e.height;const i=T2.getContext("2d");e instanceof ImageData?i.putImageData(e,0,0):i.drawImage(e,0,0,e.width,e.height),t=T2}return t.width>2048||t.height>2048?(console.warn("THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons",e),t.toDataURL("image/jpeg",.6)):t.toDataURL("image/png")}static sRGBToLinear(e){if(typeof HTMLImageElement<"u"&&e instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&e instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&e instanceof ImageBitmap){const t=GS("canvas");t.width=e.width,t.height=e.height;const i=t.getContext("2d");i.drawImage(e,0,0,e.width,e.height);const r=i.getImageData(0,0,e.width,e.height),s=r.data;for(let o=0;o{class n extends G_{constructor(t=n.DEFAULT_IMAGE,i=n.DEFAULT_MAPPING,r=vu,s=vu,o=Hc,l=oA,d=gp,h=Fy,f=n.DEFAULT_ANISOTROPY,A=""){super(),this.isTexture=!0,Object.defineProperty(this,"id",{value:tce++}),this.uuid=dm(),this.name="",this.source=new Pb(t),this.mipmaps=[],this.mapping=i,this.channel=0,this.wrapS=r,this.wrapT=s,this.magFilter=o,this.minFilter=l,this.anisotropy=f,this.format=d,this.internalFormat=null,this.type=h,this.offset=new Qi(0,0),this.repeat=new Qi(1,1),this.center=new Qi(0,0),this.rotation=0,this.matrixAutoUpdate=!0,this.matrix=new Ta,this.generateMipmaps=!0,this.premultiplyAlpha=!1,this.flipY=!0,this.unpackAlignment=4,this.colorSpace=A,this.userData={},this.version=0,this.onUpdate=null,this.isRenderTargetTexture=!1,this.needsPMREMUpdate=!1}get image(){return this.source.data}set image(t=null){this.source.data=t}updateMatrix(){this.matrix.setUvTransform(this.offset.x,this.offset.y,this.repeat.x,this.repeat.y,this.rotation,this.center.x,this.center.y)}clone(){return(new this.constructor).copy(this)}copy(t){return this.name=t.name,this.source=t.source,this.mipmaps=t.mipmaps.slice(0),this.mapping=t.mapping,this.channel=t.channel,this.wrapS=t.wrapS,this.wrapT=t.wrapT,this.magFilter=t.magFilter,this.minFilter=t.minFilter,this.anisotropy=t.anisotropy,this.format=t.format,this.internalFormat=t.internalFormat,this.type=t.type,this.offset.copy(t.offset),this.repeat.copy(t.repeat),this.center.copy(t.center),this.rotation=t.rotation,this.matrixAutoUpdate=t.matrixAutoUpdate,this.matrix.copy(t.matrix),this.generateMipmaps=t.generateMipmaps,this.premultiplyAlpha=t.premultiplyAlpha,this.flipY=t.flipY,this.unpackAlignment=t.unpackAlignment,this.colorSpace=t.colorSpace,this.userData=JSON.parse(JSON.stringify(t.userData)),this.needsUpdate=!0,this}toJSON(t){const i=void 0===t||"string"==typeof t;if(!i&&void 0!==t.textures[this.uuid])return t.textures[this.uuid];const r={metadata:{version:4.6,type:"Texture",generator:"Texture.toJSON"},uuid:this.uuid,name:this.name,image:this.source.toJSON(t).uuid,mapping:this.mapping,channel:this.channel,repeat:[this.repeat.x,this.repeat.y],offset:[this.offset.x,this.offset.y],center:[this.center.x,this.center.y],rotation:this.rotation,wrap:[this.wrapS,this.wrapT],format:this.format,internalFormat:this.internalFormat,type:this.type,colorSpace:this.colorSpace,minFilter:this.minFilter,magFilter:this.magFilter,anisotropy:this.anisotropy,flipY:this.flipY,generateMipmaps:this.generateMipmaps,premultiplyAlpha:this.premultiplyAlpha,unpackAlignment:this.unpackAlignment};return Object.keys(this.userData).length>0&&(r.userData=this.userData),i||(t.textures[this.uuid]=r),r}dispose(){this.dispatchEvent({type:"dispose"})}transformUv(t){if(300!==this.mapping)return t;if(t.applyMatrix3(this.matrix),t.x<0||t.x>1)switch(this.wrapS){case Ry:t.x=t.x-Math.floor(t.x);break;case vu:t.x=t.x<0?0:1;break;case _2:t.x=1===Math.abs(Math.floor(t.x)%2)?Math.ceil(t.x)-t.x:t.x-Math.floor(t.x)}if(t.y<0||t.y>1)switch(this.wrapT){case Ry:t.y=t.y-Math.floor(t.y);break;case vu:t.y=t.y<0?0:1;break;case _2:t.y=1===Math.abs(Math.floor(t.y)%2)?Math.ceil(t.y)-t.y:t.y-Math.floor(t.y)}return this.flipY&&(t.y=1-t.y),t}set needsUpdate(t){!0===t&&(this.version++,this.source.needsUpdate=!0)}}return n.DEFAULT_IMAGE=null,n.DEFAULT_MAPPING=300,n.DEFAULT_ANISOTROPY=1,n})();class nc{constructor(e=0,t=0,i=0,r=1){nc.prototype.isVector4=!0,this.x=e,this.y=t,this.z=i,this.w=r}get width(){return this.z}set width(e){this.z=e}get height(){return this.w}set height(e){this.w=e}set(e,t,i,r){return this.x=e,this.y=t,this.z=i,this.w=r,this}setScalar(e){return this.x=e,this.y=e,this.z=e,this.w=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setZ(e){return this.z=e,this}setW(e){return this.w=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;case 2:this.z=t;break;case 3:this.w=t;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(e){return this.x=e.x,this.y=e.y,this.z=e.z,this.w=void 0!==e.w?e.w:1,this}add(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this.w+=e.w,this}addScalar(e){return this.x+=e,this.y+=e,this.z+=e,this.w+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this.w=e.w+t.w,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this.z+=e.z*t,this.w+=e.w*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this.w-=e.w,this}subScalar(e){return this.x-=e,this.y-=e,this.z-=e,this.w-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this.w=e.w-t.w,this}multiply(e){return this.x*=e.x,this.y*=e.y,this.z*=e.z,this.w*=e.w,this}multiplyScalar(e){return this.x*=e,this.y*=e,this.z*=e,this.w*=e,this}applyMatrix4(e){const t=this.x,i=this.y,r=this.z,s=this.w,o=e.elements;return this.x=o[0]*t+o[4]*i+o[8]*r+o[12]*s,this.y=o[1]*t+o[5]*i+o[9]*r+o[13]*s,this.z=o[2]*t+o[6]*i+o[10]*r+o[14]*s,this.w=o[3]*t+o[7]*i+o[11]*r+o[15]*s,this}divideScalar(e){return this.multiplyScalar(1/e)}setAxisAngleFromQuaternion(e){this.w=2*Math.acos(e.w);const t=Math.sqrt(1-e.w*e.w);return t<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=e.x/t,this.y=e.y/t,this.z=e.z/t),this}setAxisAngleFromRotationMatrix(e){let t,i,r,s;const d=e.elements,h=d[0],f=d[4],A=d[8],S=d[1],R=d[5],G=d[9],re=d[2],se=d[6],le=d[10];if(Math.abs(f-S)<.01&&Math.abs(A-re)<.01&&Math.abs(G-se)<.01){if(Math.abs(f+S)<.1&&Math.abs(A+re)<.1&&Math.abs(G+se)<.1&&Math.abs(h+R+le-3)<.1)return this.set(1,0,0,0),this;t=Math.PI;const Ce=(h+1)/2,We=(R+1)/2,Mt=(le+1)/2,yt=(f+S)/4,Et=(A+re)/4,Xt=(G+se)/4;return Ce>We&&Ce>Mt?Ce<.01?(i=0,r=.707106781,s=.707106781):(i=Math.sqrt(Ce),r=yt/i,s=Et/i):We>Mt?We<.01?(i=.707106781,r=0,s=.707106781):(r=Math.sqrt(We),i=yt/r,s=Xt/r):Mt<.01?(i=.707106781,r=.707106781,s=0):(s=Math.sqrt(Mt),i=Et/s,r=Xt/s),this.set(i,r,s,t),this}let Ee=Math.sqrt((se-G)*(se-G)+(A-re)*(A-re)+(S-f)*(S-f));return Math.abs(Ee)<.001&&(Ee=1),this.x=(se-G)/Ee,this.y=(A-re)/Ee,this.z=(S-f)/Ee,this.w=Math.acos((h+R+le-1)/2),this}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this.z=Math.min(this.z,e.z),this.w=Math.min(this.w,e.w),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this.z=Math.max(this.z,e.z),this.w=Math.max(this.w,e.w),this}clamp(e,t){return this.x=Math.max(e.x,Math.min(t.x,this.x)),this.y=Math.max(e.y,Math.min(t.y,this.y)),this.z=Math.max(e.z,Math.min(t.z,this.z)),this.w=Math.max(e.w,Math.min(t.w,this.w)),this}clampScalar(e,t){return this.x=Math.max(e,Math.min(t,this.x)),this.y=Math.max(e,Math.min(t,this.y)),this.z=Math.max(e,Math.min(t,this.z)),this.w=Math.max(e,Math.min(t,this.w)),this}clampLength(e,t){const i=this.length();return this.divideScalar(i||1).multiplyScalar(Math.max(e,Math.min(t,i)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this.w=Math.trunc(this.w),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this}dot(e){return this.x*e.x+this.y*e.y+this.z*e.z+this.w*e.w}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)}normalize(){return this.divideScalar(this.length()||1)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this.z+=(e.z-this.z)*t,this.w+=(e.w-this.w)*t,this}lerpVectors(e,t,i){return this.x=e.x+(t.x-e.x)*i,this.y=e.y+(t.y-e.y)*i,this.z=e.z+(t.z-e.z)*i,this.w=e.w+(t.w-e.w)*i,this}equals(e){return e.x===this.x&&e.y===this.y&&e.z===this.z&&e.w===this.w}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this.z=e[t+2],this.w=e[t+3],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e[t+2]=this.z,e[t+3]=this.w,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this.z=e.getZ(t),this.w=e.getW(t),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this.w=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z,yield this.w}}class nce extends G_{constructor(e=1,t=1,i={}){super(),this.isRenderTarget=!0,this.width=e,this.height=t,this.depth=1,this.scissor=new nc(0,0,e,t),this.scissorTest=!1,this.viewport=new nc(0,0,e,t);const r={width:e,height:t,depth:1};i=Object.assign({generateMipmaps:!1,internalFormat:null,minFilter:Hc,depthBuffer:!0,stencilBuffer:!1,depthTexture:null,samples:0,count:1},i);const s=new zu(r,i.mapping,i.wrapS,i.wrapT,i.magFilter,i.minFilter,i.format,i.type,i.anisotropy,i.colorSpace);s.flipY=!1,s.generateMipmaps=i.generateMipmaps,s.internalFormat=i.internalFormat,this.textures=[];const o=i.count;for(let l=0;l=0?1:-1,Ce=1-le*le;if(Ce>Number.EPSILON){const Mt=Math.sqrt(Ce),yt=Math.atan2(Mt,le*Ee);se=Math.sin(se*yt)/Mt,l=Math.sin(l*yt)/Mt}const We=l*Ee;if(d=d*se+S*We,h=h*se+R*We,f=f*se+G*We,A=A*se+re*We,se===1-l){const Mt=1/Math.sqrt(d*d+h*h+f*f+A*A);d*=Mt,h*=Mt,f*=Mt,A*=Mt}}e[t]=d,e[t+1]=h,e[t+2]=f,e[t+3]=A}static multiplyQuaternionsFlat(e,t,i,r,s,o){const l=i[r],d=i[r+1],h=i[r+2],f=i[r+3],A=s[o],S=s[o+1],R=s[o+2],G=s[o+3];return e[t]=l*G+f*A+d*R-h*S,e[t+1]=d*G+f*S+h*A-l*R,e[t+2]=h*G+f*R+l*S-d*A,e[t+3]=f*G-l*A-d*S-h*R,e}get x(){return this._x}set x(e){this._x=e,this._onChangeCallback()}get y(){return this._y}set y(e){this._y=e,this._onChangeCallback()}get z(){return this._z}set z(e){this._z=e,this._onChangeCallback()}get w(){return this._w}set w(e){this._w=e,this._onChangeCallback()}set(e,t,i,r){return this._x=e,this._y=t,this._z=i,this._w=r,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(e){return this._x=e.x,this._y=e.y,this._z=e.z,this._w=e.w,this._onChangeCallback(),this}setFromEuler(e,t=!0){const i=e._x,r=e._y,s=e._z,o=e._order,l=Math.cos,d=Math.sin,h=l(i/2),f=l(r/2),A=l(s/2),S=d(i/2),R=d(r/2),G=d(s/2);switch(o){case"XYZ":this._x=S*f*A+h*R*G,this._y=h*R*A-S*f*G,this._z=h*f*G+S*R*A,this._w=h*f*A-S*R*G;break;case"YXZ":this._x=S*f*A+h*R*G,this._y=h*R*A-S*f*G,this._z=h*f*G-S*R*A,this._w=h*f*A+S*R*G;break;case"ZXY":this._x=S*f*A-h*R*G,this._y=h*R*A+S*f*G,this._z=h*f*G+S*R*A,this._w=h*f*A-S*R*G;break;case"ZYX":this._x=S*f*A-h*R*G,this._y=h*R*A+S*f*G,this._z=h*f*G-S*R*A,this._w=h*f*A+S*R*G;break;case"YZX":this._x=S*f*A+h*R*G,this._y=h*R*A+S*f*G,this._z=h*f*G-S*R*A,this._w=h*f*A-S*R*G;break;case"XZY":this._x=S*f*A-h*R*G,this._y=h*R*A-S*f*G,this._z=h*f*G+S*R*A,this._w=h*f*A+S*R*G;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+o)}return!0===t&&this._onChangeCallback(),this}setFromAxisAngle(e,t){const i=t/2,r=Math.sin(i);return this._x=e.x*r,this._y=e.y*r,this._z=e.z*r,this._w=Math.cos(i),this._onChangeCallback(),this}setFromRotationMatrix(e){const t=e.elements,i=t[0],r=t[4],s=t[8],o=t[1],l=t[5],d=t[9],h=t[2],f=t[6],A=t[10],S=i+l+A;if(S>0){const R=.5/Math.sqrt(S+1);this._w=.25/R,this._x=(f-d)*R,this._y=(s-h)*R,this._z=(o-r)*R}else if(i>l&&i>A){const R=2*Math.sqrt(1+i-l-A);this._w=(f-d)/R,this._x=.25*R,this._y=(r+o)/R,this._z=(s+h)/R}else if(l>A){const R=2*Math.sqrt(1+l-i-A);this._w=(s-h)/R,this._x=(r+o)/R,this._y=.25*R,this._z=(d+f)/R}else{const R=2*Math.sqrt(1+A-i-l);this._w=(o-r)/R,this._x=(s+h)/R,this._y=(d+f)/R,this._z=.25*R}return this._onChangeCallback(),this}setFromUnitVectors(e,t){let i=e.dot(t)+1;return iMath.abs(e.z)?(this._x=-e.y,this._y=e.x,this._z=0,this._w=i):(this._x=0,this._y=-e.z,this._z=e.y,this._w=i)):(this._x=e.y*t.z-e.z*t.y,this._y=e.z*t.x-e.x*t.z,this._z=e.x*t.y-e.y*t.x,this._w=i),this.normalize()}angleTo(e){return 2*Math.acos(Math.abs(bd(this.dot(e),-1,1)))}rotateTowards(e,t){const i=this.angleTo(e);if(0===i)return this;const r=Math.min(1,t/i);return this.slerp(e,r),this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(e){return this._x*e._x+this._y*e._y+this._z*e._z+this._w*e._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let e=this.length();return 0===e?(this._x=0,this._y=0,this._z=0,this._w=1):(e=1/e,this._x=this._x*e,this._y=this._y*e,this._z=this._z*e,this._w=this._w*e),this._onChangeCallback(),this}multiply(e){return this.multiplyQuaternions(this,e)}premultiply(e){return this.multiplyQuaternions(e,this)}multiplyQuaternions(e,t){const i=e._x,r=e._y,s=e._z,o=e._w,l=t._x,d=t._y,h=t._z,f=t._w;return this._x=i*f+o*l+r*h-s*d,this._y=r*f+o*d+s*l-i*h,this._z=s*f+o*h+i*d-r*l,this._w=o*f-i*l-r*d-s*h,this._onChangeCallback(),this}slerp(e,t){if(0===t)return this;if(1===t)return this.copy(e);const i=this._x,r=this._y,s=this._z,o=this._w;let l=o*e._w+i*e._x+r*e._y+s*e._z;if(l<0?(this._w=-e._w,this._x=-e._x,this._y=-e._y,this._z=-e._z,l=-l):this.copy(e),l>=1)return this._w=o,this._x=i,this._y=r,this._z=s,this;const d=1-l*l;if(d<=Number.EPSILON){const R=1-t;return this._w=R*o+t*this._w,this._x=R*i+t*this._x,this._y=R*r+t*this._y,this._z=R*s+t*this._z,this.normalize(),this}const h=Math.sqrt(d),f=Math.atan2(h,l),A=Math.sin((1-t)*f)/h,S=Math.sin(t*f)/h;return this._w=o*A+this._w*S,this._x=i*A+this._x*S,this._y=r*A+this._y*S,this._z=s*A+this._z*S,this._onChangeCallback(),this}slerpQuaternions(e,t,i){return this.copy(e).slerp(t,i)}random(){const e=2*Math.PI*Math.random(),t=2*Math.PI*Math.random(),i=Math.random(),r=Math.sqrt(1-i),s=Math.sqrt(i);return this.set(r*Math.sin(e),r*Math.cos(e),s*Math.sin(t),s*Math.cos(t))}equals(e){return e._x===this._x&&e._y===this._y&&e._z===this._z&&e._w===this._w}fromArray(e,t=0){return this._x=e[t],this._y=e[t+1],this._z=e[t+2],this._w=e[t+3],this._onChangeCallback(),this}toArray(e=[],t=0){return e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z,e[t+3]=this._w,e}fromBufferAttribute(e,t){return this._x=e.getX(t),this._y=e.getY(t),this._z=e.getZ(t),this._w=e.getW(t),this._onChangeCallback(),this}toJSON(){return this.toArray()}_onChange(e){return this._onChangeCallback=e,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._w}}class It{constructor(e=0,t=0,i=0){It.prototype.isVector3=!0,this.x=e,this.y=t,this.z=i}set(e,t,i){return void 0===i&&(i=this.z),this.x=e,this.y=t,this.z=i,this}setScalar(e){return this.x=e,this.y=e,this.z=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setZ(e){return this.z=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;case 2:this.z=t;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(e){return this.x=e.x,this.y=e.y,this.z=e.z,this}add(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this}addScalar(e){return this.x+=e,this.y+=e,this.z+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this.z+=e.z*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this}subScalar(e){return this.x-=e,this.y-=e,this.z-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this}multiply(e){return this.x*=e.x,this.y*=e.y,this.z*=e.z,this}multiplyScalar(e){return this.x*=e,this.y*=e,this.z*=e,this}multiplyVectors(e,t){return this.x=e.x*t.x,this.y=e.y*t.y,this.z=e.z*t.z,this}applyEuler(e){return this.applyQuaternion(KH.setFromEuler(e))}applyAxisAngle(e,t){return this.applyQuaternion(KH.setFromAxisAngle(e,t))}applyMatrix3(e){const t=this.x,i=this.y,r=this.z,s=e.elements;return this.x=s[0]*t+s[3]*i+s[6]*r,this.y=s[1]*t+s[4]*i+s[7]*r,this.z=s[2]*t+s[5]*i+s[8]*r,this}applyNormalMatrix(e){return this.applyMatrix3(e).normalize()}applyMatrix4(e){const t=this.x,i=this.y,r=this.z,s=e.elements,o=1/(s[3]*t+s[7]*i+s[11]*r+s[15]);return this.x=(s[0]*t+s[4]*i+s[8]*r+s[12])*o,this.y=(s[1]*t+s[5]*i+s[9]*r+s[13])*o,this.z=(s[2]*t+s[6]*i+s[10]*r+s[14])*o,this}applyQuaternion(e){const t=this.x,i=this.y,r=this.z,s=e.x,o=e.y,l=e.z,d=e.w,h=2*(o*r-l*i),f=2*(l*t-s*r),A=2*(s*i-o*t);return this.x=t+d*h+o*A-l*f,this.y=i+d*f+l*h-s*A,this.z=r+d*A+s*f-o*h,this}project(e){return this.applyMatrix4(e.matrixWorldInverse).applyMatrix4(e.projectionMatrix)}unproject(e){return this.applyMatrix4(e.projectionMatrixInverse).applyMatrix4(e.matrixWorld)}transformDirection(e){const t=this.x,i=this.y,r=this.z,s=e.elements;return this.x=s[0]*t+s[4]*i+s[8]*r,this.y=s[1]*t+s[5]*i+s[9]*r,this.z=s[2]*t+s[6]*i+s[10]*r,this.normalize()}divide(e){return this.x/=e.x,this.y/=e.y,this.z/=e.z,this}divideScalar(e){return this.multiplyScalar(1/e)}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this.z=Math.min(this.z,e.z),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this.z=Math.max(this.z,e.z),this}clamp(e,t){return this.x=Math.max(e.x,Math.min(t.x,this.x)),this.y=Math.max(e.y,Math.min(t.y,this.y)),this.z=Math.max(e.z,Math.min(t.z,this.z)),this}clampScalar(e,t){return this.x=Math.max(e,Math.min(t,this.x)),this.y=Math.max(e,Math.min(t,this.y)),this.z=Math.max(e,Math.min(t,this.z)),this}clampLength(e,t){const i=this.length();return this.divideScalar(i||1).multiplyScalar(Math.max(e,Math.min(t,i)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(e){return this.x*e.x+this.y*e.y+this.z*e.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this.z+=(e.z-this.z)*t,this}lerpVectors(e,t,i){return this.x=e.x+(t.x-e.x)*i,this.y=e.y+(t.y-e.y)*i,this.z=e.z+(t.z-e.z)*i,this}cross(e){return this.crossVectors(this,e)}crossVectors(e,t){const i=e.x,r=e.y,s=e.z,o=t.x,l=t.y,d=t.z;return this.x=r*d-s*l,this.y=s*o-i*d,this.z=i*l-r*o,this}projectOnVector(e){const t=e.lengthSq();if(0===t)return this.set(0,0,0);const i=e.dot(this)/t;return this.copy(e).multiplyScalar(i)}projectOnPlane(e){return o5.copy(this).projectOnVector(e),this.sub(o5)}reflect(e){return this.sub(o5.copy(e).multiplyScalar(2*this.dot(e)))}angleTo(e){const t=Math.sqrt(this.lengthSq()*e.lengthSq());if(0===t)return Math.PI/2;const i=this.dot(e)/t;return Math.acos(bd(i,-1,1))}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){const t=this.x-e.x,i=this.y-e.y,r=this.z-e.z;return t*t+i*i+r*r}manhattanDistanceTo(e){return Math.abs(this.x-e.x)+Math.abs(this.y-e.y)+Math.abs(this.z-e.z)}setFromSpherical(e){return this.setFromSphericalCoords(e.radius,e.phi,e.theta)}setFromSphericalCoords(e,t,i){const r=Math.sin(t)*e;return this.x=r*Math.sin(i),this.y=Math.cos(t)*e,this.z=r*Math.cos(i),this}setFromCylindrical(e){return this.setFromCylindricalCoords(e.radius,e.theta,e.y)}setFromCylindricalCoords(e,t,i){return this.x=e*Math.sin(t),this.y=i,this.z=e*Math.cos(t),this}setFromMatrixPosition(e){const t=e.elements;return this.x=t[12],this.y=t[13],this.z=t[14],this}setFromMatrixScale(e){const t=this.setFromMatrixColumn(e,0).length(),i=this.setFromMatrixColumn(e,1).length(),r=this.setFromMatrixColumn(e,2).length();return this.x=t,this.y=i,this.z=r,this}setFromMatrixColumn(e,t){return this.fromArray(e.elements,4*t)}setFromMatrix3Column(e,t){return this.fromArray(e.elements,3*t)}setFromEuler(e){return this.x=e._x,this.y=e._y,this.z=e._z,this}setFromColor(e){return this.x=e.r,this.y=e.g,this.z=e.b,this}equals(e){return e.x===this.x&&e.y===this.y&&e.z===this.z}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this.z=e[t+2],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e[t+2]=this.z,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this.z=e.getZ(t),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){const e=Math.random()*Math.PI*2,t=2*Math.random()-1,i=Math.sqrt(1-t*t);return this.x=i*Math.cos(e),this.y=t,this.z=i*Math.sin(e),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}}const o5=new It,KH=new Gc;class Pf{constructor(e=new It(1/0,1/0,1/0),t=new It(-1/0,-1/0,-1/0)){this.isBox3=!0,this.min=e,this.max=t}set(e,t){return this.min.copy(e),this.max.copy(t),this}setFromArray(e){this.makeEmpty();for(let t=0,i=e.length;tthis.max.x||e.ythis.max.y||e.zthis.max.z)}containsBox(e){return this.min.x<=e.min.x&&e.max.x<=this.max.x&&this.min.y<=e.min.y&&e.max.y<=this.max.y&&this.min.z<=e.min.z&&e.max.z<=this.max.z}getParameter(e,t){return t.set((e.x-this.min.x)/(this.max.x-this.min.x),(e.y-this.min.y)/(this.max.y-this.min.y),(e.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(e){return!(e.max.xthis.max.x||e.max.ythis.max.y||e.max.zthis.max.z)}intersectsSphere(e){return this.clampPoint(e.center,hg),hg.distanceToSquared(e.center)<=e.radius*e.radius}intersectsPlane(e){let t,i;return e.normal.x>0?(t=e.normal.x*this.min.x,i=e.normal.x*this.max.x):(t=e.normal.x*this.max.x,i=e.normal.x*this.min.x),e.normal.y>0?(t+=e.normal.y*this.min.y,i+=e.normal.y*this.max.y):(t+=e.normal.y*this.max.y,i+=e.normal.y*this.min.y),e.normal.z>0?(t+=e.normal.z*this.min.z,i+=e.normal.z*this.max.z):(t+=e.normal.z*this.max.z,i+=e.normal.z*this.min.z),t<=-e.constant&&i>=-e.constant}intersectsTriangle(e){if(this.isEmpty())return!1;this.getCenter(qS),eI.subVectors(this.max,qS),D2.subVectors(e.a,qS),I2.subVectors(e.b,qS),B2.subVectors(e.c,qS),Ly.subVectors(I2,D2),Ny.subVectors(B2,I2),Rb.subVectors(D2,B2);let t=[0,-Ly.z,Ly.y,0,-Ny.z,Ny.y,0,-Rb.z,Rb.y,Ly.z,0,-Ly.x,Ny.z,0,-Ny.x,Rb.z,0,-Rb.x,-Ly.y,Ly.x,0,-Ny.y,Ny.x,0,-Rb.y,Rb.x,0];return!(!a5(t,D2,I2,B2,eI)||(t=[1,0,0,0,1,0,0,0,1],!a5(t,D2,I2,B2,eI)))&&(tI.crossVectors(Ly,Ny),t=[tI.x,tI.y,tI.z],a5(t,D2,I2,B2,eI))}clampPoint(e,t){return t.copy(e).clamp(this.min,this.max)}distanceToPoint(e){return this.clampPoint(e,hg).distanceTo(e)}getBoundingSphere(e){return this.isEmpty()?e.makeEmpty():(this.getCenter(e.center),e.radius=.5*this.getSize(hg).length()),e}intersect(e){return this.min.max(e.min),this.max.min(e.max),this.isEmpty()&&this.makeEmpty(),this}union(e){return this.min.min(e.min),this.max.max(e.max),this}applyMatrix4(e){return this.isEmpty()||(q_[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(e),q_[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(e),q_[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(e),q_[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(e),q_[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(e),q_[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(e),q_[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(e),q_[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(e),this.setFromPoints(q_)),this}translate(e){return this.min.add(e),this.max.add(e),this}equals(e){return e.min.equals(this.min)&&e.max.equals(this.max)}}const q_=[new It,new It,new It,new It,new It,new It,new It,new It],hg=new It,JD=new Pf,D2=new It,I2=new It,B2=new It,Ly=new It,Ny=new It,Rb=new It,qS=new It,eI=new It,tI=new It,kb=new It;function a5(n,e,t,i,r){for(let s=0,o=n.length-3;s<=o;s+=3){kb.fromArray(n,s);const l=r.x*Math.abs(kb.x)+r.y*Math.abs(kb.y)+r.z*Math.abs(kb.z),d=e.dot(kb),h=t.dot(kb),f=i.dot(kb);if(Math.max(-Math.max(d,h,f),Math.min(d,h,f))>l)return!1}return!0}const ice=new Pf,QS=new It,l5=new It;class jh{constructor(e=new It,t=-1){this.isSphere=!0,this.center=e,this.radius=t}set(e,t){return this.center.copy(e),this.radius=t,this}setFromPoints(e,t){const i=this.center;void 0!==t?i.copy(t):ice.setFromPoints(e).getCenter(i);let r=0;for(let s=0,o=e.length;sthis.radius*this.radius&&(t.sub(this.center).normalize(),t.multiplyScalar(this.radius).add(this.center)),t}getBoundingBox(e){return this.isEmpty()?(e.makeEmpty(),e):(e.set(this.center,this.center),e.expandByScalar(this.radius),e)}applyMatrix4(e){return this.center.applyMatrix4(e),this.radius=this.radius*e.getMaxScaleOnAxis(),this}translate(e){return this.center.add(e),this}expandByPoint(e){if(this.isEmpty())return this.center.copy(e),this.radius=0,this;QS.subVectors(e,this.center);const t=QS.lengthSq();if(t>this.radius*this.radius){const i=Math.sqrt(t),r=.5*(i-this.radius);this.center.addScaledVector(QS,r/i),this.radius+=r}return this}union(e){return e.isEmpty()?this:this.isEmpty()?(this.copy(e),this):(!0===this.center.equals(e.center)?this.radius=Math.max(this.radius,e.radius):(l5.subVectors(e.center,this.center).setLength(e.radius),this.expandByPoint(QS.copy(e.center).add(l5)),this.expandByPoint(QS.copy(e.center).sub(l5))),this)}equals(e){return e.center.equals(this.center)&&e.radius===this.radius}clone(){return(new this.constructor).copy(this)}}const Q_=new It,c5=new It,nI=new It,Uy=new It,d5=new It,iI=new It,h5=new It;class P2{constructor(e=new It,t=new It(0,0,-1)){this.origin=e,this.direction=t}set(e,t){return this.origin.copy(e),this.direction.copy(t),this}copy(e){return this.origin.copy(e.origin),this.direction.copy(e.direction),this}at(e,t){return t.copy(this.origin).addScaledVector(this.direction,e)}lookAt(e){return this.direction.copy(e).sub(this.origin).normalize(),this}recast(e){return this.origin.copy(this.at(e,Q_)),this}closestPointToPoint(e,t){t.subVectors(e,this.origin);const i=t.dot(this.direction);return i<0?t.copy(this.origin):t.copy(this.origin).addScaledVector(this.direction,i)}distanceToPoint(e){return Math.sqrt(this.distanceSqToPoint(e))}distanceSqToPoint(e){const t=Q_.subVectors(e,this.origin).dot(this.direction);return t<0?this.origin.distanceToSquared(e):(Q_.copy(this.origin).addScaledVector(this.direction,t),Q_.distanceToSquared(e))}distanceSqToSegment(e,t,i,r){c5.copy(e).add(t).multiplyScalar(.5),nI.copy(t).sub(e).normalize(),Uy.copy(this.origin).sub(c5);const s=.5*e.distanceTo(t),o=-this.direction.dot(nI),l=Uy.dot(this.direction),d=-Uy.dot(nI),h=Uy.lengthSq(),f=Math.abs(1-o*o);let A,S,R,G;if(f>0)if(A=o*d-l,S=o*l-d,G=s*f,A>=0)if(S>=-G)if(S<=G){const re=1/f;A*=re,S*=re,R=A*(A+o*S+2*l)+S*(o*A+S+2*d)+h}else S=s,A=Math.max(0,-(o*S+l)),R=-A*A+S*(S+2*d)+h;else S=-s,A=Math.max(0,-(o*S+l)),R=-A*A+S*(S+2*d)+h;else S<=-G?(A=Math.max(0,-(-o*s+l)),S=A>0?-s:Math.min(Math.max(-s,-d),s),R=-A*A+S*(S+2*d)+h):S<=G?(A=0,S=Math.min(Math.max(-s,-d),s),R=S*(S+2*d)+h):(A=Math.max(0,-(o*s+l)),S=A>0?s:Math.min(Math.max(-s,-d),s),R=-A*A+S*(S+2*d)+h);else S=o>0?-s:s,A=Math.max(0,-(o*S+l)),R=-A*A+S*(S+2*d)+h;return i&&i.copy(this.origin).addScaledVector(this.direction,A),r&&r.copy(c5).addScaledVector(nI,S),R}intersectSphere(e,t){Q_.subVectors(e.center,this.origin);const i=Q_.dot(this.direction),r=Q_.dot(Q_)-i*i,s=e.radius*e.radius;if(r>s)return null;const o=Math.sqrt(s-r),l=i-o,d=i+o;return d<0?null:this.at(l<0?d:l,t)}intersectsSphere(e){return this.distanceSqToPoint(e.center)<=e.radius*e.radius}distanceToPlane(e){const t=e.normal.dot(this.direction);if(0===t)return 0===e.distanceToPoint(this.origin)?0:null;const i=-(this.origin.dot(e.normal)+e.constant)/t;return i>=0?i:null}intersectPlane(e,t){const i=this.distanceToPlane(e);return null===i?null:this.at(i,t)}intersectsPlane(e){const t=e.distanceToPoint(this.origin);return 0===t||e.normal.dot(this.direction)*t<0}intersectBox(e,t){let i,r,s,o,l,d;const h=1/this.direction.x,f=1/this.direction.y,A=1/this.direction.z,S=this.origin;return h>=0?(i=(e.min.x-S.x)*h,r=(e.max.x-S.x)*h):(i=(e.max.x-S.x)*h,r=(e.min.x-S.x)*h),f>=0?(s=(e.min.y-S.y)*f,o=(e.max.y-S.y)*f):(s=(e.max.y-S.y)*f,o=(e.min.y-S.y)*f),i>o||s>r||((s>i||isNaN(i))&&(i=s),(o=0?(l=(e.min.z-S.z)*A,d=(e.max.z-S.z)*A):(l=(e.max.z-S.z)*A,d=(e.min.z-S.z)*A),i>d||l>r)||((l>i||i!=i)&&(i=l),(d=0?i:r,t)}intersectsBox(e){return null!==this.intersectBox(e,Q_)}intersectTriangle(e,t,i,r,s){d5.subVectors(t,e),iI.subVectors(i,e),h5.crossVectors(d5,iI);let l,o=this.direction.dot(h5);if(o>0){if(r)return null;l=1}else{if(!(o<0))return null;l=-1,o=-o}Uy.subVectors(this.origin,e);const d=l*this.direction.dot(iI.crossVectors(Uy,iI));if(d<0)return null;const h=l*this.direction.dot(d5.cross(Uy));if(h<0||d+h>o)return null;const f=-l*Uy.dot(h5);return f<0?null:this.at(f/o,s)}applyMatrix4(e){return this.origin.applyMatrix4(e),this.direction.transformDirection(e),this}equals(e){return e.origin.equals(this.origin)&&e.direction.equals(this.direction)}clone(){return(new this.constructor).copy(this)}}class wo{constructor(e,t,i,r,s,o,l,d,h,f,A,S,R,G,re,se){wo.prototype.isMatrix4=!0,this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],void 0!==e&&this.set(e,t,i,r,s,o,l,d,h,f,A,S,R,G,re,se)}set(e,t,i,r,s,o,l,d,h,f,A,S,R,G,re,se){const le=this.elements;return le[0]=e,le[4]=t,le[8]=i,le[12]=r,le[1]=s,le[5]=o,le[9]=l,le[13]=d,le[2]=h,le[6]=f,le[10]=A,le[14]=S,le[3]=R,le[7]=G,le[11]=re,le[15]=se,this}identity(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this}clone(){return(new wo).fromArray(this.elements)}copy(e){const t=this.elements,i=e.elements;return t[0]=i[0],t[1]=i[1],t[2]=i[2],t[3]=i[3],t[4]=i[4],t[5]=i[5],t[6]=i[6],t[7]=i[7],t[8]=i[8],t[9]=i[9],t[10]=i[10],t[11]=i[11],t[12]=i[12],t[13]=i[13],t[14]=i[14],t[15]=i[15],this}copyPosition(e){const t=this.elements,i=e.elements;return t[12]=i[12],t[13]=i[13],t[14]=i[14],this}setFromMatrix3(e){const t=e.elements;return this.set(t[0],t[3],t[6],0,t[1],t[4],t[7],0,t[2],t[5],t[8],0,0,0,0,1),this}extractBasis(e,t,i){return e.setFromMatrixColumn(this,0),t.setFromMatrixColumn(this,1),i.setFromMatrixColumn(this,2),this}makeBasis(e,t,i){return this.set(e.x,t.x,i.x,0,e.y,t.y,i.y,0,e.z,t.z,i.z,0,0,0,0,1),this}extractRotation(e){const t=this.elements,i=e.elements,r=1/R2.setFromMatrixColumn(e,0).length(),s=1/R2.setFromMatrixColumn(e,1).length(),o=1/R2.setFromMatrixColumn(e,2).length();return t[0]=i[0]*r,t[1]=i[1]*r,t[2]=i[2]*r,t[3]=0,t[4]=i[4]*s,t[5]=i[5]*s,t[6]=i[6]*s,t[7]=0,t[8]=i[8]*o,t[9]=i[9]*o,t[10]=i[10]*o,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,this}makeRotationFromEuler(e){const t=this.elements,i=e.x,r=e.y,s=e.z,o=Math.cos(i),l=Math.sin(i),d=Math.cos(r),h=Math.sin(r),f=Math.cos(s),A=Math.sin(s);if("XYZ"===e.order){const S=o*f,R=o*A,G=l*f,re=l*A;t[0]=d*f,t[4]=-d*A,t[8]=h,t[1]=R+G*h,t[5]=S-re*h,t[9]=-l*d,t[2]=re-S*h,t[6]=G+R*h,t[10]=o*d}else if("YXZ"===e.order){const S=d*f,R=d*A,G=h*f,re=h*A;t[0]=S+re*l,t[4]=G*l-R,t[8]=o*h,t[1]=o*A,t[5]=o*f,t[9]=-l,t[2]=R*l-G,t[6]=re+S*l,t[10]=o*d}else if("ZXY"===e.order){const S=d*f,R=d*A,G=h*f,re=h*A;t[0]=S-re*l,t[4]=-o*A,t[8]=G+R*l,t[1]=R+G*l,t[5]=o*f,t[9]=re-S*l,t[2]=-o*h,t[6]=l,t[10]=o*d}else if("ZYX"===e.order){const S=o*f,R=o*A,G=l*f,re=l*A;t[0]=d*f,t[4]=G*h-R,t[8]=S*h+re,t[1]=d*A,t[5]=re*h+S,t[9]=R*h-G,t[2]=-h,t[6]=l*d,t[10]=o*d}else if("YZX"===e.order){const S=o*d,R=o*h,G=l*d,re=l*h;t[0]=d*f,t[4]=re-S*A,t[8]=G*A+R,t[1]=A,t[5]=o*f,t[9]=-l*f,t[2]=-h*f,t[6]=R*A+G,t[10]=S-re*A}else if("XZY"===e.order){const S=o*d,R=o*h,G=l*d,re=l*h;t[0]=d*f,t[4]=-A,t[8]=h*f,t[1]=S*A+re,t[5]=o*f,t[9]=R*A-G,t[2]=G*A-R,t[6]=l*f,t[10]=re*A+S}return t[3]=0,t[7]=0,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,this}makeRotationFromQuaternion(e){return this.compose(rce,e,sce)}lookAt(e,t,i){const r=this.elements;return hm.subVectors(e,t),0===hm.lengthSq()&&(hm.z=1),hm.normalize(),zy.crossVectors(i,hm),0===zy.lengthSq()&&(1===Math.abs(i.z)?hm.x+=1e-4:hm.z+=1e-4,hm.normalize(),zy.crossVectors(i,hm)),zy.normalize(),rI.crossVectors(hm,zy),r[0]=zy.x,r[4]=rI.x,r[8]=hm.x,r[1]=zy.y,r[5]=rI.y,r[9]=hm.y,r[2]=zy.z,r[6]=rI.z,r[10]=hm.z,this}multiply(e){return this.multiplyMatrices(this,e)}premultiply(e){return this.multiplyMatrices(e,this)}multiplyMatrices(e,t){const i=e.elements,r=t.elements,s=this.elements,o=i[0],l=i[4],d=i[8],h=i[12],f=i[1],A=i[5],S=i[9],R=i[13],G=i[2],re=i[6],se=i[10],le=i[14],Ee=i[3],Ce=i[7],We=i[11],Mt=i[15],yt=r[0],Et=r[4],Xt=r[8],Un=r[12],wt=r[1],Kt=r[5],Vi=r[9],Yi=r[13],En=r[2],wi=r[6],zn=r[10],oi=r[14],ui=r[3],vi=r[7],mr=r[11],Mr=r[15];return s[0]=o*yt+l*wt+d*En+h*ui,s[4]=o*Et+l*Kt+d*wi+h*vi,s[8]=o*Xt+l*Vi+d*zn+h*mr,s[12]=o*Un+l*Yi+d*oi+h*Mr,s[1]=f*yt+A*wt+S*En+R*ui,s[5]=f*Et+A*Kt+S*wi+R*vi,s[9]=f*Xt+A*Vi+S*zn+R*mr,s[13]=f*Un+A*Yi+S*oi+R*Mr,s[2]=G*yt+re*wt+se*En+le*ui,s[6]=G*Et+re*Kt+se*wi+le*vi,s[10]=G*Xt+re*Vi+se*zn+le*mr,s[14]=G*Un+re*Yi+se*oi+le*Mr,s[3]=Ee*yt+Ce*wt+We*En+Mt*ui,s[7]=Ee*Et+Ce*Kt+We*wi+Mt*vi,s[11]=Ee*Xt+Ce*Vi+We*zn+Mt*mr,s[15]=Ee*Un+Ce*Yi+We*oi+Mt*Mr,this}multiplyScalar(e){const t=this.elements;return t[0]*=e,t[4]*=e,t[8]*=e,t[12]*=e,t[1]*=e,t[5]*=e,t[9]*=e,t[13]*=e,t[2]*=e,t[6]*=e,t[10]*=e,t[14]*=e,t[3]*=e,t[7]*=e,t[11]*=e,t[15]*=e,this}determinant(){const e=this.elements,t=e[0],i=e[4],r=e[8],s=e[12],o=e[1],l=e[5],d=e[9],h=e[13],f=e[2],A=e[6],S=e[10],R=e[14];return e[3]*(+s*d*A-r*h*A-s*l*S+i*h*S+r*l*R-i*d*R)+e[7]*(+t*d*R-t*h*S+s*o*S-r*o*R+r*h*f-s*d*f)+e[11]*(+t*h*A-t*l*R-s*o*A+i*o*R+s*l*f-i*h*f)+e[15]*(-r*l*f-t*d*A+t*l*S+r*o*A-i*o*S+i*d*f)}transpose(){const e=this.elements;let t;return t=e[1],e[1]=e[4],e[4]=t,t=e[2],e[2]=e[8],e[8]=t,t=e[6],e[6]=e[9],e[9]=t,t=e[3],e[3]=e[12],e[12]=t,t=e[7],e[7]=e[13],e[13]=t,t=e[11],e[11]=e[14],e[14]=t,this}setPosition(e,t,i){const r=this.elements;return e.isVector3?(r[12]=e.x,r[13]=e.y,r[14]=e.z):(r[12]=e,r[13]=t,r[14]=i),this}invert(){const e=this.elements,t=e[0],i=e[1],r=e[2],s=e[3],o=e[4],l=e[5],d=e[6],h=e[7],f=e[8],A=e[9],S=e[10],R=e[11],G=e[12],re=e[13],se=e[14],le=e[15],Ee=A*se*h-re*S*h+re*d*R-l*se*R-A*d*le+l*S*le,Ce=G*S*h-f*se*h-G*d*R+o*se*R+f*d*le-o*S*le,We=f*re*h-G*A*h+G*l*R-o*re*R-f*l*le+o*A*le,Mt=G*A*d-f*re*d-G*l*S+o*re*S+f*l*se-o*A*se,yt=t*Ee+i*Ce+r*We+s*Mt;if(0===yt)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);const Et=1/yt;return e[0]=Ee*Et,e[1]=(re*S*s-A*se*s-re*r*R+i*se*R+A*r*le-i*S*le)*Et,e[2]=(l*se*s-re*d*s+re*r*h-i*se*h-l*r*le+i*d*le)*Et,e[3]=(A*d*s-l*S*s-A*r*h+i*S*h+l*r*R-i*d*R)*Et,e[4]=Ce*Et,e[5]=(f*se*s-G*S*s+G*r*R-t*se*R-f*r*le+t*S*le)*Et,e[6]=(G*d*s-o*se*s-G*r*h+t*se*h+o*r*le-t*d*le)*Et,e[7]=(o*S*s-f*d*s+f*r*h-t*S*h-o*r*R+t*d*R)*Et,e[8]=We*Et,e[9]=(G*A*s-f*re*s-G*i*R+t*re*R+f*i*le-t*A*le)*Et,e[10]=(o*re*s-G*l*s+G*i*h-t*re*h-o*i*le+t*l*le)*Et,e[11]=(f*l*s-o*A*s-f*i*h+t*A*h+o*i*R-t*l*R)*Et,e[12]=Mt*Et,e[13]=(f*re*r-G*A*r+G*i*S-t*re*S-f*i*se+t*A*se)*Et,e[14]=(G*l*r-o*re*r-G*i*d+t*re*d+o*i*se-t*l*se)*Et,e[15]=(o*A*r-f*l*r+f*i*d-t*A*d-o*i*S+t*l*S)*Et,this}scale(e){const t=this.elements,i=e.x,r=e.y,s=e.z;return t[0]*=i,t[4]*=r,t[8]*=s,t[1]*=i,t[5]*=r,t[9]*=s,t[2]*=i,t[6]*=r,t[10]*=s,t[3]*=i,t[7]*=r,t[11]*=s,this}getMaxScaleOnAxis(){const e=this.elements;return Math.sqrt(Math.max(e[0]*e[0]+e[1]*e[1]+e[2]*e[2],e[4]*e[4]+e[5]*e[5]+e[6]*e[6],e[8]*e[8]+e[9]*e[9]+e[10]*e[10]))}makeTranslation(e,t,i){return e.isVector3?this.set(1,0,0,e.x,0,1,0,e.y,0,0,1,e.z,0,0,0,1):this.set(1,0,0,e,0,1,0,t,0,0,1,i,0,0,0,1),this}makeRotationX(e){const t=Math.cos(e),i=Math.sin(e);return this.set(1,0,0,0,0,t,-i,0,0,i,t,0,0,0,0,1),this}makeRotationY(e){const t=Math.cos(e),i=Math.sin(e);return this.set(t,0,i,0,0,1,0,0,-i,0,t,0,0,0,0,1),this}makeRotationZ(e){const t=Math.cos(e),i=Math.sin(e);return this.set(t,-i,0,0,i,t,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(e,t){const i=Math.cos(t),r=Math.sin(t),s=1-i,o=e.x,l=e.y,d=e.z,h=s*o,f=s*l;return this.set(h*o+i,h*l-r*d,h*d+r*l,0,h*l+r*d,f*l+i,f*d-r*o,0,h*d-r*l,f*d+r*o,s*d*d+i,0,0,0,0,1),this}makeScale(e,t,i){return this.set(e,0,0,0,0,t,0,0,0,0,i,0,0,0,0,1),this}makeShear(e,t,i,r,s,o){return this.set(1,i,s,0,e,1,o,0,t,r,1,0,0,0,0,1),this}compose(e,t,i){const r=this.elements,s=t._x,o=t._y,l=t._z,d=t._w,h=s+s,f=o+o,A=l+l,S=s*h,R=s*f,G=s*A,re=o*f,se=o*A,le=l*A,Ee=d*h,Ce=d*f,We=d*A,Mt=i.x,yt=i.y,Et=i.z;return r[0]=(1-(re+le))*Mt,r[1]=(R+We)*Mt,r[2]=(G-Ce)*Mt,r[3]=0,r[4]=(R-We)*yt,r[5]=(1-(S+le))*yt,r[6]=(se+Ee)*yt,r[7]=0,r[8]=(G+Ce)*Et,r[9]=(se-Ee)*Et,r[10]=(1-(S+re))*Et,r[11]=0,r[12]=e.x,r[13]=e.y,r[14]=e.z,r[15]=1,this}decompose(e,t,i){const r=this.elements;let s=R2.set(r[0],r[1],r[2]).length();const o=R2.set(r[4],r[5],r[6]).length(),l=R2.set(r[8],r[9],r[10]).length();this.determinant()<0&&(s=-s),e.x=r[12],e.y=r[13],e.z=r[14],ug.copy(this);const h=1/s,f=1/o,A=1/l;return ug.elements[0]*=h,ug.elements[1]*=h,ug.elements[2]*=h,ug.elements[4]*=f,ug.elements[5]*=f,ug.elements[6]*=f,ug.elements[8]*=A,ug.elements[9]*=A,ug.elements[10]*=A,t.setFromRotationMatrix(ug),i.x=s,i.y=o,i.z=l,this}makePerspective(e,t,i,r,s,o,l=V_){const d=this.elements,h=2*s/(t-e),f=2*s/(i-r),A=(t+e)/(t-e),S=(i+r)/(i-r);let R,G;if(l===V_)R=-(o+s)/(o-s),G=-2*o*s/(o-s);else{if(2001!==l)throw new Error("THREE.Matrix4.makePerspective(): Invalid coordinate system: "+l);R=-o/(o-s),G=-o*s/(o-s)}return d[0]=h,d[4]=0,d[8]=A,d[12]=0,d[1]=0,d[5]=f,d[9]=S,d[13]=0,d[2]=0,d[6]=0,d[10]=R,d[14]=G,d[3]=0,d[7]=0,d[11]=-1,d[15]=0,this}makeOrthographic(e,t,i,r,s,o,l=V_){const d=this.elements,h=1/(t-e),f=1/(i-r),A=1/(o-s),S=(t+e)*h,R=(i+r)*f;let G,re;if(l===V_)G=(o+s)*A,re=-2*A;else{if(2001!==l)throw new Error("THREE.Matrix4.makeOrthographic(): Invalid coordinate system: "+l);G=s*A,re=-1*A}return d[0]=2*h,d[4]=0,d[8]=0,d[12]=-S,d[1]=0,d[5]=2*f,d[9]=0,d[13]=-R,d[2]=0,d[6]=0,d[10]=re,d[14]=-G,d[3]=0,d[7]=0,d[11]=0,d[15]=1,this}equals(e){const t=this.elements,i=e.elements;for(let r=0;r<16;r++)if(t[r]!==i[r])return!1;return!0}fromArray(e,t=0){for(let i=0;i<16;i++)this.elements[i]=e[i+t];return this}toArray(e=[],t=0){const i=this.elements;return e[t]=i[0],e[t+1]=i[1],e[t+2]=i[2],e[t+3]=i[3],e[t+4]=i[4],e[t+5]=i[5],e[t+6]=i[6],e[t+7]=i[7],e[t+8]=i[8],e[t+9]=i[9],e[t+10]=i[10],e[t+11]=i[11],e[t+12]=i[12],e[t+13]=i[13],e[t+14]=i[14],e[t+15]=i[15],e}}const R2=new It,ug=new wo,rce=new It(0,0,0),sce=new It(1,1,1),zy=new It,rI=new It,hm=new It,ZH=new wo,JH=new Gc;let S0=(()=>{class n{constructor(t=0,i=0,r=0,s=n.DEFAULT_ORDER){this.isEuler=!0,this._x=t,this._y=i,this._z=r,this._order=s}get x(){return this._x}set x(t){this._x=t,this._onChangeCallback()}get y(){return this._y}set y(t){this._y=t,this._onChangeCallback()}get z(){return this._z}set z(t){this._z=t,this._onChangeCallback()}get order(){return this._order}set order(t){this._order=t,this._onChangeCallback()}set(t,i,r,s=this._order){return this._x=t,this._y=i,this._z=r,this._order=s,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(t){return this._x=t._x,this._y=t._y,this._z=t._z,this._order=t._order,this._onChangeCallback(),this}setFromRotationMatrix(t,i=this._order,r=!0){const s=t.elements,o=s[0],l=s[4],d=s[8],h=s[1],f=s[5],A=s[9],S=s[2],R=s[6],G=s[10];switch(i){case"XYZ":this._y=Math.asin(bd(d,-1,1)),Math.abs(d)<.9999999?(this._x=Math.atan2(-A,G),this._z=Math.atan2(-l,o)):(this._x=Math.atan2(R,f),this._z=0);break;case"YXZ":this._x=Math.asin(-bd(A,-1,1)),Math.abs(A)<.9999999?(this._y=Math.atan2(d,G),this._z=Math.atan2(h,f)):(this._y=Math.atan2(-S,o),this._z=0);break;case"ZXY":this._x=Math.asin(bd(R,-1,1)),Math.abs(R)<.9999999?(this._y=Math.atan2(-S,G),this._z=Math.atan2(-l,f)):(this._y=0,this._z=Math.atan2(h,o));break;case"ZYX":this._y=Math.asin(-bd(S,-1,1)),Math.abs(S)<.9999999?(this._x=Math.atan2(R,G),this._z=Math.atan2(h,o)):(this._x=0,this._z=Math.atan2(-l,f));break;case"YZX":this._z=Math.asin(bd(h,-1,1)),Math.abs(h)<.9999999?(this._x=Math.atan2(-A,f),this._y=Math.atan2(-S,o)):(this._x=0,this._y=Math.atan2(d,G));break;case"XZY":this._z=Math.asin(-bd(l,-1,1)),Math.abs(l)<.9999999?(this._x=Math.atan2(R,f),this._y=Math.atan2(d,o)):(this._x=Math.atan2(-A,G),this._y=0);break;default:console.warn("THREE.Euler: .setFromRotationMatrix() encountered an unknown order: "+i)}return this._order=i,!0===r&&this._onChangeCallback(),this}setFromQuaternion(t,i,r){return ZH.makeRotationFromQuaternion(t),this.setFromRotationMatrix(ZH,i,r)}setFromVector3(t,i=this._order){return this.set(t.x,t.y,t.z,i)}reorder(t){return JH.setFromEuler(this),this.setFromQuaternion(JH,t)}equals(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._order===this._order}fromArray(t){return this._x=t[0],this._y=t[1],this._z=t[2],void 0!==t[3]&&(this._order=t[3]),this._onChangeCallback(),this}toArray(t=[],i=0){return t[i]=this._x,t[i+1]=this._y,t[i+2]=this._z,t[i+3]=this._order,t}_onChange(t){return this._onChangeCallback=t,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._order}}return n.DEFAULT_ORDER="XYZ",n})();class u5{constructor(){this.mask=1}set(e){this.mask=1<>>0}enable(e){this.mask|=1<{class n extends G_{constructor(){super(),this.isObject3D=!0,Object.defineProperty(this,"id",{value:oce++}),this.uuid=dm(),this.name="",this.type="Object3D",this.parent=null,this.children=[],this.up=n.DEFAULT_UP.clone();const t=new It,i=new S0,r=new Gc,s=new It(1,1,1);i._onChange(function o(){r.setFromEuler(i,!1)}),r._onChange(function l(){i.setFromQuaternion(r,void 0,!1)}),Object.defineProperties(this,{position:{configurable:!0,enumerable:!0,value:t},rotation:{configurable:!0,enumerable:!0,value:i},quaternion:{configurable:!0,enumerable:!0,value:r},scale:{configurable:!0,enumerable:!0,value:s},modelViewMatrix:{value:new wo},normalMatrix:{value:new Ta}}),this.matrix=new wo,this.matrixWorld=new wo,this.matrixAutoUpdate=n.DEFAULT_MATRIX_AUTO_UPDATE,this.matrixWorldAutoUpdate=n.DEFAULT_MATRIX_WORLD_AUTO_UPDATE,this.matrixWorldNeedsUpdate=!1,this.layers=new u5,this.visible=!0,this.castShadow=!1,this.receiveShadow=!1,this.frustumCulled=!0,this.renderOrder=0,this.animations=[],this.userData={}}onBeforeShadow(){}onAfterShadow(){}onBeforeRender(){}onAfterRender(){}applyMatrix4(t){this.matrixAutoUpdate&&this.updateMatrix(),this.matrix.premultiply(t),this.matrix.decompose(this.position,this.quaternion,this.scale)}applyQuaternion(t){return this.quaternion.premultiply(t),this}setRotationFromAxisAngle(t,i){this.quaternion.setFromAxisAngle(t,i)}setRotationFromEuler(t){this.quaternion.setFromEuler(t,!0)}setRotationFromMatrix(t){this.quaternion.setFromRotationMatrix(t)}setRotationFromQuaternion(t){this.quaternion.copy(t)}rotateOnAxis(t,i){return k2.setFromAxisAngle(t,i),this.quaternion.multiply(k2),this}rotateOnWorldAxis(t,i){return k2.setFromAxisAngle(t,i),this.quaternion.premultiply(k2),this}rotateX(t){return this.rotateOnAxis(tV,t)}rotateY(t){return this.rotateOnAxis(nV,t)}rotateZ(t){return this.rotateOnAxis(iV,t)}translateOnAxis(t,i){return eV.copy(t).applyQuaternion(this.quaternion),this.position.add(eV.multiplyScalar(i)),this}translateX(t){return this.translateOnAxis(tV,t)}translateY(t){return this.translateOnAxis(nV,t)}translateZ(t){return this.translateOnAxis(iV,t)}localToWorld(t){return this.updateWorldMatrix(!0,!1),t.applyMatrix4(this.matrixWorld)}worldToLocal(t){return this.updateWorldMatrix(!0,!1),t.applyMatrix4(W_.copy(this.matrixWorld).invert())}lookAt(t,i,r){t.isVector3?sI.copy(t):sI.set(t,i,r);const s=this.parent;this.updateWorldMatrix(!0,!1),WS.setFromMatrixPosition(this.matrixWorld),this.isCamera||this.isLight?W_.lookAt(WS,sI,this.up):W_.lookAt(sI,WS,this.up),this.quaternion.setFromRotationMatrix(W_),s&&(W_.extractRotation(s.matrixWorld),k2.setFromRotationMatrix(W_),this.quaternion.premultiply(k2.invert()))}add(t){if(arguments.length>1){for(let i=0;i1){for(let r=0;r0&&(s.userData=this.userData),s.layers=this.layers.mask,s.matrix=this.matrix.toArray(),s.up=this.up.toArray(),!1===this.matrixAutoUpdate&&(s.matrixAutoUpdate=!1),this.isInstancedMesh&&(s.type="InstancedMesh",s.count=this.count,s.instanceMatrix=this.instanceMatrix.toJSON(),null!==this.instanceColor&&(s.instanceColor=this.instanceColor.toJSON())),this.isBatchedMesh&&(s.type="BatchedMesh",s.perObjectFrustumCulled=this.perObjectFrustumCulled,s.sortObjects=this.sortObjects,s.drawRanges=this._drawRanges,s.reservedRanges=this._reservedRanges,s.visibility=this._visibility,s.active=this._active,s.bounds=this._bounds.map(d=>({boxInitialized:d.boxInitialized,boxMin:d.box.min.toArray(),boxMax:d.box.max.toArray(),sphereInitialized:d.sphereInitialized,sphereRadius:d.sphere.radius,sphereCenter:d.sphere.center.toArray()})),s.maxGeometryCount=this._maxGeometryCount,s.maxVertexCount=this._maxVertexCount,s.maxIndexCount=this._maxIndexCount,s.geometryInitialized=this._geometryInitialized,s.geometryCount=this._geometryCount,s.matricesTexture=this._matricesTexture.toJSON(t),null!==this.boundingSphere&&(s.boundingSphere={center:s.boundingSphere.center.toArray(),radius:s.boundingSphere.radius}),null!==this.boundingBox&&(s.boundingBox={min:s.boundingBox.min.toArray(),max:s.boundingBox.max.toArray()})),this.isScene)this.background&&(this.background.isColor?s.background=this.background.toJSON():this.background.isTexture&&(s.background=this.background.toJSON(t).uuid)),this.environment&&this.environment.isTexture&&!0!==this.environment.isRenderTargetTexture&&(s.environment=this.environment.toJSON(t).uuid);else if(this.isMesh||this.isLine||this.isPoints){s.geometry=o(t.geometries,this.geometry);const d=this.geometry.parameters;if(void 0!==d&&void 0!==d.shapes){const h=d.shapes;if(Array.isArray(h))for(let f=0,A=h.length;f0){s.children=[];for(let d=0;d0){s.animations=[];for(let d=0;d0&&(r.geometries=d),h.length>0&&(r.materials=h),f.length>0&&(r.textures=f),A.length>0&&(r.images=A),S.length>0&&(r.shapes=S),R.length>0&&(r.skeletons=R),G.length>0&&(r.animations=G),re.length>0&&(r.nodes=re)}return r.object=s,r;function l(d){const h=[];for(const f in d){const A=d[f];delete A.metadata,h.push(A)}return h}}clone(t){return(new this.constructor).copy(this,t)}copy(t,i=!0){if(this.name=t.name,this.up.copy(t.up),this.position.copy(t.position),this.rotation.order=t.rotation.order,this.quaternion.copy(t.quaternion),this.scale.copy(t.scale),this.matrix.copy(t.matrix),this.matrixWorld.copy(t.matrixWorld),this.matrixAutoUpdate=t.matrixAutoUpdate,this.matrixWorldAutoUpdate=t.matrixWorldAutoUpdate,this.matrixWorldNeedsUpdate=t.matrixWorldNeedsUpdate,this.layers.mask=t.layers.mask,this.visible=t.visible,this.castShadow=t.castShadow,this.receiveShadow=t.receiveShadow,this.frustumCulled=t.frustumCulled,this.renderOrder=t.renderOrder,this.animations=t.animations.slice(),this.userData=JSON.parse(JSON.stringify(t.userData)),!0===i)for(let r=0;r0?r.multiplyScalar(1/Math.sqrt(s)):r.set(0,0,0)}static getBarycoord(e,t,i,r,s){fg.subVectors(r,t),j_.subVectors(i,t),m5.subVectors(e,t);const o=fg.dot(fg),l=fg.dot(j_),d=fg.dot(m5),h=j_.dot(j_),f=j_.dot(m5),A=o*h-l*l;if(0===A)return s.set(0,0,0),null;const S=1/A,R=(h*d-l*f)*S,G=(o*f-l*d)*S;return s.set(1-R-G,G,R)}static containsPoint(e,t,i,r){return null!==this.getBarycoord(e,t,i,r,$_)&&$_.x>=0&&$_.y>=0&&$_.x+$_.y<=1}static getInterpolation(e,t,i,r,s,o,l,d){return null===this.getBarycoord(e,t,i,r,$_)?(d.x=0,d.y=0,"z"in d&&(d.z=0),"w"in d&&(d.w=0),null):(d.setScalar(0),d.addScaledVector(s,$_.x),d.addScaledVector(o,$_.y),d.addScaledVector(l,$_.z),d)}static isFrontFacing(e,t,i,r){return fg.subVectors(i,t),j_.subVectors(e,t),fg.cross(j_).dot(r)<0}set(e,t,i){return this.a.copy(e),this.b.copy(t),this.c.copy(i),this}setFromPointsAndIndices(e,t,i,r){return this.a.copy(e[t]),this.b.copy(e[i]),this.c.copy(e[r]),this}setFromAttributeAndIndices(e,t,i,r){return this.a.fromBufferAttribute(e,t),this.b.fromBufferAttribute(e,i),this.c.fromBufferAttribute(e,r),this}clone(){return(new this.constructor).copy(this)}copy(e){return this.a.copy(e.a),this.b.copy(e.b),this.c.copy(e.c),this}getArea(){return fg.subVectors(this.c,this.b),j_.subVectors(this.a,this.b),.5*fg.cross(j_).length()}getMidpoint(e){return e.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(e){return um.getNormal(this.a,this.b,this.c,e)}getPlane(e){return e.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(e,t){return um.getBarycoord(e,this.a,this.b,this.c,t)}getInterpolation(e,t,i,r,s){return um.getInterpolation(e,this.a,this.b,this.c,t,i,r,s)}containsPoint(e){return um.containsPoint(e,this.a,this.b,this.c)}isFrontFacing(e){return um.isFrontFacing(this.a,this.b,this.c,e)}intersectsBox(e){return e.intersectsTriangle(this)}closestPointToPoint(e,t){const i=this.a,r=this.b,s=this.c;let o,l;F2.subVectors(r,i),O2.subVectors(s,i),A5.subVectors(e,i);const d=F2.dot(A5),h=O2.dot(A5);if(d<=0&&h<=0)return t.copy(i);g5.subVectors(e,r);const f=F2.dot(g5),A=O2.dot(g5);if(f>=0&&A<=f)return t.copy(r);const S=d*A-f*h;if(S<=0&&d>=0&&f<=0)return o=d/(d-f),t.copy(i).addScaledVector(F2,o);_5.subVectors(e,s);const R=F2.dot(_5),G=O2.dot(_5);if(G>=0&&R<=G)return t.copy(s);const re=R*h-d*G;if(re<=0&&h>=0&&G<=0)return l=h/(h-G),t.copy(i).addScaledVector(O2,l);const se=f*G-R*A;if(se<=0&&A-f>=0&&R-G>=0)return rV.subVectors(s,r),l=(A-f)/(A-f+(R-G)),t.copy(r).addScaledVector(rV,l);const le=1/(se+re+S);return o=re*le,l=S*le,t.copy(i).addScaledVector(F2,o).addScaledVector(O2,l)}equals(e){return e.a.equals(this.a)&&e.b.equals(this.b)&&e.c.equals(this.c)}}const sV={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},Hy={h:0,s:0,l:0},oI={h:0,s:0,l:0};function y5(n,e,t){return t<0&&(t+=1),t>1&&(t-=1),t<1/6?n+6*(e-n)*t:t<.5?e:t<2/3?n+6*(e-n)*(2/3-t):n}class Cr{constructor(e,t,i){return this.isColor=!0,this.r=1,this.g=1,this.b=1,this.set(e,t,i)}set(e,t,i){if(void 0===t&&void 0===i){const r=e;r&&r.isColor?this.copy(r):"number"==typeof r?this.setHex(r):"string"==typeof r&&this.setStyle(r)}else this.setRGB(e,t,i);return this}setScalar(e){return this.r=e,this.g=e,this.b=e,this}setHex(e,t=ch){return e=Math.floor(e),this.r=(e>>16&255)/255,this.g=(e>>8&255)/255,this.b=(255&e)/255,Ol.toWorkingColorSpace(this,t),this}setRGB(e,t,i,r=Ol.workingColorSpace){return this.r=e,this.g=t,this.b=i,Ol.toWorkingColorSpace(this,r),this}setHSL(e,t,i,r=Ol.workingColorSpace){if(e=Jk(e,1),t=bd(t,0,1),i=bd(i,0,1),0===t)this.r=this.g=this.b=i;else{const s=i<=.5?i*(1+t):i+t-i*t,o=2*i-s;this.r=y5(o,s,e+1/3),this.g=y5(o,s,e),this.b=y5(o,s,e-1/3)}return Ol.toWorkingColorSpace(this,r),this}setStyle(e,t=ch){function i(s){void 0!==s&&parseFloat(s)<1&&console.warn("THREE.Color: Alpha component of "+e+" will be ignored.")}let r;if(r=/^(\w+)\(([^\)]*)\)/.exec(e)){let s;const l=r[2];switch(r[1]){case"rgb":case"rgba":if(s=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(l))return i(s[4]),this.setRGB(Math.min(255,parseInt(s[1],10))/255,Math.min(255,parseInt(s[2],10))/255,Math.min(255,parseInt(s[3],10))/255,t);if(s=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(l))return i(s[4]),this.setRGB(Math.min(100,parseInt(s[1],10))/100,Math.min(100,parseInt(s[2],10))/100,Math.min(100,parseInt(s[3],10))/100,t);break;case"hsl":case"hsla":if(s=/^\s*(\d*\.?\d+)\s*,\s*(\d*\.?\d+)\%\s*,\s*(\d*\.?\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(l))return i(s[4]),this.setHSL(parseFloat(s[1])/360,parseFloat(s[2])/100,parseFloat(s[3])/100,t);break;default:console.warn("THREE.Color: Unknown color model "+e)}}else if(r=/^\#([A-Fa-f\d]+)$/.exec(e)){const s=r[1],o=s.length;if(3===o)return this.setRGB(parseInt(s.charAt(0),16)/15,parseInt(s.charAt(1),16)/15,parseInt(s.charAt(2),16)/15,t);if(6===o)return this.setHex(parseInt(s,16),t);console.warn("THREE.Color: Invalid hex color "+e)}else if(e&&e.length>0)return this.setColorName(e,t);return this}setColorName(e,t=ch){const i=sV[e.toLowerCase()];return void 0!==i?this.setHex(i,t):console.warn("THREE.Color: Unknown color "+e),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(e){return this.r=e.r,this.g=e.g,this.b=e.b,this}copySRGBToLinear(e){return this.r=E2(e.r),this.g=E2(e.g),this.b=E2(e.b),this}copyLinearToSRGB(e){return this.r=n5(e.r),this.g=n5(e.g),this.b=n5(e.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(e=ch){return Ol.fromWorkingColorSpace(Hu.copy(this),e),65536*Math.round(bd(255*Hu.r,0,255))+256*Math.round(bd(255*Hu.g,0,255))+Math.round(bd(255*Hu.b,0,255))}getHexString(e=ch){return("000000"+this.getHex(e).toString(16)).slice(-6)}getHSL(e,t=Ol.workingColorSpace){Ol.fromWorkingColorSpace(Hu.copy(this),t);const i=Hu.r,r=Hu.g,s=Hu.b,o=Math.max(i,r,s),l=Math.min(i,r,s);let d,h;const f=(l+o)/2;if(l===o)d=0,h=0;else{const A=o-l;switch(h=f<=.5?A/(o+l):A/(2-o-l),o){case i:d=(r-s)/A+(r0!=e>0&&this.version++,this._alphaTest=e}onBuild(){}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(e){if(void 0!==e)for(const t in e){const i=e[t];if(void 0===i){console.warn(`THREE.Material: parameter '${t}' has value of undefined.`);continue}const r=this[t];void 0!==r?r&&r.isColor?r.set(i):r&&r.isVector3&&i&&i.isVector3?r.copy(i):this[t]=i:console.warn(`THREE.Material: '${t}' is not a property of THREE.${this.type}.`)}}toJSON(e){const t=void 0===e||"string"==typeof e;t&&(e={textures:{},images:{}});const i={metadata:{version:4.6,type:"Material",generator:"Material.toJSON"}};function r(s){const o=[];for(const l in s){const d=s[l];delete d.metadata,o.push(d)}return o}if(i.uuid=this.uuid,i.type=this.type,""!==this.name&&(i.name=this.name),this.color&&this.color.isColor&&(i.color=this.color.getHex()),void 0!==this.roughness&&(i.roughness=this.roughness),void 0!==this.metalness&&(i.metalness=this.metalness),void 0!==this.sheen&&(i.sheen=this.sheen),this.sheenColor&&this.sheenColor.isColor&&(i.sheenColor=this.sheenColor.getHex()),void 0!==this.sheenRoughness&&(i.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(i.emissive=this.emissive.getHex()),void 0!==this.emissiveIntensity&&1!==this.emissiveIntensity&&(i.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(i.specular=this.specular.getHex()),void 0!==this.specularIntensity&&(i.specularIntensity=this.specularIntensity),this.specularColor&&this.specularColor.isColor&&(i.specularColor=this.specularColor.getHex()),void 0!==this.shininess&&(i.shininess=this.shininess),void 0!==this.clearcoat&&(i.clearcoat=this.clearcoat),void 0!==this.clearcoatRoughness&&(i.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(i.clearcoatMap=this.clearcoatMap.toJSON(e).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(i.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(e).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(i.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(e).uuid,i.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),void 0!==this.iridescence&&(i.iridescence=this.iridescence),void 0!==this.iridescenceIOR&&(i.iridescenceIOR=this.iridescenceIOR),void 0!==this.iridescenceThicknessRange&&(i.iridescenceThicknessRange=this.iridescenceThicknessRange),this.iridescenceMap&&this.iridescenceMap.isTexture&&(i.iridescenceMap=this.iridescenceMap.toJSON(e).uuid),this.iridescenceThicknessMap&&this.iridescenceThicknessMap.isTexture&&(i.iridescenceThicknessMap=this.iridescenceThicknessMap.toJSON(e).uuid),void 0!==this.anisotropy&&(i.anisotropy=this.anisotropy),void 0!==this.anisotropyRotation&&(i.anisotropyRotation=this.anisotropyRotation),this.anisotropyMap&&this.anisotropyMap.isTexture&&(i.anisotropyMap=this.anisotropyMap.toJSON(e).uuid),this.map&&this.map.isTexture&&(i.map=this.map.toJSON(e).uuid),this.matcap&&this.matcap.isTexture&&(i.matcap=this.matcap.toJSON(e).uuid),this.alphaMap&&this.alphaMap.isTexture&&(i.alphaMap=this.alphaMap.toJSON(e).uuid),this.lightMap&&this.lightMap.isTexture&&(i.lightMap=this.lightMap.toJSON(e).uuid,i.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(i.aoMap=this.aoMap.toJSON(e).uuid,i.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(i.bumpMap=this.bumpMap.toJSON(e).uuid,i.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(i.normalMap=this.normalMap.toJSON(e).uuid,i.normalMapType=this.normalMapType,i.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(i.displacementMap=this.displacementMap.toJSON(e).uuid,i.displacementScale=this.displacementScale,i.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(i.roughnessMap=this.roughnessMap.toJSON(e).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(i.metalnessMap=this.metalnessMap.toJSON(e).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(i.emissiveMap=this.emissiveMap.toJSON(e).uuid),this.specularMap&&this.specularMap.isTexture&&(i.specularMap=this.specularMap.toJSON(e).uuid),this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(i.specularIntensityMap=this.specularIntensityMap.toJSON(e).uuid),this.specularColorMap&&this.specularColorMap.isTexture&&(i.specularColorMap=this.specularColorMap.toJSON(e).uuid),this.envMap&&this.envMap.isTexture&&(i.envMap=this.envMap.toJSON(e).uuid,void 0!==this.combine&&(i.combine=this.combine)),void 0!==this.envMapRotation&&(i.envMapRotation=this.envMapRotation.toArray()),void 0!==this.envMapIntensity&&(i.envMapIntensity=this.envMapIntensity),void 0!==this.reflectivity&&(i.reflectivity=this.reflectivity),void 0!==this.refractionRatio&&(i.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(i.gradientMap=this.gradientMap.toJSON(e).uuid),void 0!==this.transmission&&(i.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(i.transmissionMap=this.transmissionMap.toJSON(e).uuid),void 0!==this.thickness&&(i.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(i.thicknessMap=this.thicknessMap.toJSON(e).uuid),void 0!==this.attenuationDistance&&this.attenuationDistance!==1/0&&(i.attenuationDistance=this.attenuationDistance),void 0!==this.attenuationColor&&(i.attenuationColor=this.attenuationColor.getHex()),void 0!==this.size&&(i.size=this.size),null!==this.shadowSide&&(i.shadowSide=this.shadowSide),void 0!==this.sizeAttenuation&&(i.sizeAttenuation=this.sizeAttenuation),1!==this.blending&&(i.blending=this.blending),0!==this.side&&(i.side=this.side),!0===this.vertexColors&&(i.vertexColors=!0),this.opacity<1&&(i.opacity=this.opacity),!0===this.transparent&&(i.transparent=!0),204!==this.blendSrc&&(i.blendSrc=this.blendSrc),205!==this.blendDst&&(i.blendDst=this.blendDst),100!==this.blendEquation&&(i.blendEquation=this.blendEquation),null!==this.blendSrcAlpha&&(i.blendSrcAlpha=this.blendSrcAlpha),null!==this.blendDstAlpha&&(i.blendDstAlpha=this.blendDstAlpha),null!==this.blendEquationAlpha&&(i.blendEquationAlpha=this.blendEquationAlpha),this.blendColor&&this.blendColor.isColor&&(i.blendColor=this.blendColor.getHex()),0!==this.blendAlpha&&(i.blendAlpha=this.blendAlpha),3!==this.depthFunc&&(i.depthFunc=this.depthFunc),!1===this.depthTest&&(i.depthTest=this.depthTest),!1===this.depthWrite&&(i.depthWrite=this.depthWrite),!1===this.colorWrite&&(i.colorWrite=this.colorWrite),255!==this.stencilWriteMask&&(i.stencilWriteMask=this.stencilWriteMask),519!==this.stencilFunc&&(i.stencilFunc=this.stencilFunc),0!==this.stencilRef&&(i.stencilRef=this.stencilRef),255!==this.stencilFuncMask&&(i.stencilFuncMask=this.stencilFuncMask),this.stencilFail!==C2&&(i.stencilFail=this.stencilFail),this.stencilZFail!==C2&&(i.stencilZFail=this.stencilZFail),this.stencilZPass!==C2&&(i.stencilZPass=this.stencilZPass),!0===this.stencilWrite&&(i.stencilWrite=this.stencilWrite),void 0!==this.rotation&&0!==this.rotation&&(i.rotation=this.rotation),!0===this.polygonOffset&&(i.polygonOffset=!0),0!==this.polygonOffsetFactor&&(i.polygonOffsetFactor=this.polygonOffsetFactor),0!==this.polygonOffsetUnits&&(i.polygonOffsetUnits=this.polygonOffsetUnits),void 0!==this.linewidth&&1!==this.linewidth&&(i.linewidth=this.linewidth),void 0!==this.dashSize&&(i.dashSize=this.dashSize),void 0!==this.gapSize&&(i.gapSize=this.gapSize),void 0!==this.scale&&(i.scale=this.scale),!0===this.dithering&&(i.dithering=!0),this.alphaTest>0&&(i.alphaTest=this.alphaTest),!0===this.alphaHash&&(i.alphaHash=!0),!0===this.alphaToCoverage&&(i.alphaToCoverage=!0),!0===this.premultipliedAlpha&&(i.premultipliedAlpha=!0),!0===this.forceSinglePass&&(i.forceSinglePass=!0),!0===this.wireframe&&(i.wireframe=!0),this.wireframeLinewidth>1&&(i.wireframeLinewidth=this.wireframeLinewidth),"round"!==this.wireframeLinecap&&(i.wireframeLinecap=this.wireframeLinecap),"round"!==this.wireframeLinejoin&&(i.wireframeLinejoin=this.wireframeLinejoin),!0===this.flatShading&&(i.flatShading=!0),!1===this.visible&&(i.visible=!1),!1===this.toneMapped&&(i.toneMapped=!1),!1===this.fog&&(i.fog=!1),Object.keys(this.userData).length>0&&(i.userData=this.userData),t){const s=r(e.textures),o=r(e.images);s.length>0&&(i.textures=s),o.length>0&&(i.images=o)}return i}clone(){return(new this.constructor).copy(this)}copy(e){this.name=e.name,this.blending=e.blending,this.side=e.side,this.vertexColors=e.vertexColors,this.opacity=e.opacity,this.transparent=e.transparent,this.blendSrc=e.blendSrc,this.blendDst=e.blendDst,this.blendEquation=e.blendEquation,this.blendSrcAlpha=e.blendSrcAlpha,this.blendDstAlpha=e.blendDstAlpha,this.blendEquationAlpha=e.blendEquationAlpha,this.blendColor.copy(e.blendColor),this.blendAlpha=e.blendAlpha,this.depthFunc=e.depthFunc,this.depthTest=e.depthTest,this.depthWrite=e.depthWrite,this.stencilWriteMask=e.stencilWriteMask,this.stencilFunc=e.stencilFunc,this.stencilRef=e.stencilRef,this.stencilFuncMask=e.stencilFuncMask,this.stencilFail=e.stencilFail,this.stencilZFail=e.stencilZFail,this.stencilZPass=e.stencilZPass,this.stencilWrite=e.stencilWrite;const t=e.clippingPlanes;let i=null;if(null!==t){const r=t.length;i=new Array(r);for(let s=0;s!==r;++s)i[s]=t[s].clone()}return this.clippingPlanes=i,this.clipIntersection=e.clipIntersection,this.clipShadows=e.clipShadows,this.shadowSide=e.shadowSide,this.colorWrite=e.colorWrite,this.precision=e.precision,this.polygonOffset=e.polygonOffset,this.polygonOffsetFactor=e.polygonOffsetFactor,this.polygonOffsetUnits=e.polygonOffsetUnits,this.dithering=e.dithering,this.alphaTest=e.alphaTest,this.alphaHash=e.alphaHash,this.alphaToCoverage=e.alphaToCoverage,this.premultipliedAlpha=e.premultipliedAlpha,this.forceSinglePass=e.forceSinglePass,this.visible=e.visible,this.toneMapped=e.toneMapped,this.userData=JSON.parse(JSON.stringify(e.userData)),this}dispose(){this.dispatchEvent({type:"dispose"})}set needsUpdate(e){!0===e&&this.version++}}class xd extends ld{constructor(e){super(),this.isMeshBasicMaterial=!0,this.type="MeshBasicMaterial",this.color=new Cr(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.envMapRotation=new S0,this.combine=HD,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.envMapRotation.copy(e.envMapRotation),this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.fog=e.fog,this}}const dh=new It,aI=new Qi;class No{constructor(e,t,i=!1){if(Array.isArray(e))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.isBufferAttribute=!0,this.name="",this.array=e,this.itemSize=t,this.count=void 0!==e?e.length/t:0,this.normalized=i,this.usage=35044,this._updateRange={offset:0,count:-1},this.updateRanges=[],this.gpuType=aA,this.version=0}onUploadCallback(){}set needsUpdate(e){!0===e&&this.version++}get updateRange(){return WH("THREE.BufferAttribute: updateRange() is deprecated and will be removed in r169. Use addUpdateRange() instead."),this._updateRange}setUsage(e){return this.usage=e,this}addUpdateRange(e,t){this.updateRanges.push({start:e,count:t})}clearUpdateRanges(){this.updateRanges.length=0}copy(e){return this.name=e.name,this.array=new e.array.constructor(e.array),this.itemSize=e.itemSize,this.count=e.count,this.normalized=e.normalized,this.usage=e.usage,this.gpuType=e.gpuType,this}copyAt(e,t,i){e*=this.itemSize,i*=t.itemSize;for(let r=0,s=this.itemSize;r0&&(e.userData=this.userData),void 0!==this.parameters){const d=this.parameters;for(const h in d)void 0!==d[h]&&(e[h]=d[h]);return e}e.data={attributes:{}};const t=this.index;null!==t&&(e.data.index={type:t.array.constructor.name,array:Array.prototype.slice.call(t.array)});const i=this.attributes;for(const d in i)e.data.attributes[d]=i[d].toJSON(e.data);const r={};let s=!1;for(const d in this.morphAttributes){const h=this.morphAttributes[d],f=[];for(let A=0,S=h.length;A0&&(r[d]=f,s=!0)}s&&(e.data.morphAttributes=r,e.data.morphTargetsRelative=this.morphTargetsRelative);const o=this.groups;o.length>0&&(e.data.groups=JSON.parse(JSON.stringify(o)));const l=this.boundingSphere;return null!==l&&(e.data.boundingSphere={center:l.center.toArray(),radius:l.radius}),e}clone(){return(new this.constructor).copy(this)}copy(e){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;const t={};this.name=e.name;const i=e.index;null!==i&&this.setIndex(i.clone(t));const r=e.attributes;for(const h in r)this.setAttribute(h,r[h].clone(t));const s=e.morphAttributes;for(const h in s){const f=[],A=s[h];for(let S=0,R=A.length;S0){const r=t[i[0]];if(void 0!==r){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let s=0,o=r.length;s(e.far-e.near)**2))&&(lV.copy(s).invert(),Fb.copy(e.ray).applyMatrix4(lV),(null===i.boundingBox||!1!==Fb.intersectsBox(i.boundingBox))&&this._computeIntersections(e,t,Fb)))}_computeIntersections(e,t,i){let r;const s=this.geometry,o=this.material,l=s.index,d=s.attributes.position,h=s.attributes.uv,f=s.attributes.uv1,A=s.attributes.normal,S=s.groups,R=s.drawRange;if(null!==l)if(Array.isArray(o))for(let G=0,re=S.length;Gt.far?null:{distance:h,point:pI.clone(),object:n}}(n,e,t,i,N2,U2,z2,fI);if(f){r&&(dI.fromBufferAttribute(r,l),hI.fromBufferAttribute(r,d),uI.fromBufferAttribute(r,h),f.uv=um.getInterpolation(fI,N2,U2,z2,dI,hI,uI,new Qi)),s&&(dI.fromBufferAttribute(s,l),hI.fromBufferAttribute(s,d),uI.fromBufferAttribute(s,h),f.uv1=um.getInterpolation(fI,N2,U2,z2,dI,hI,uI,new Qi)),o&&(dV.fromBufferAttribute(o,l),hV.fromBufferAttribute(o,d),uV.fromBufferAttribute(o,h),f.normal=um.getInterpolation(fI,N2,U2,z2,dV,hV,uV,new It),f.normal.dot(i.direction)>0&&f.normal.multiplyScalar(-1));const A={a:l,b:d,c:h,normal:new It,materialIndex:0};um.getNormal(N2,U2,z2,A.normal),f.face=A}return f}class yp extends no{constructor(e=1,t=1,i=1,r=1,s=1,o=1){super(),this.type="BoxGeometry",this.parameters={width:e,height:t,depth:i,widthSegments:r,heightSegments:s,depthSegments:o};const l=this;r=Math.floor(r),s=Math.floor(s),o=Math.floor(o);const d=[],h=[],f=[],A=[];let S=0,R=0;function G(re,se,le,Ee,Ce,We,Mt,yt,Et,Xt,Un){const wt=We/Et,Kt=Mt/Xt,Vi=We/2,Yi=Mt/2,En=yt/2,wi=Et+1,zn=Xt+1;let oi=0,ui=0;const vi=new It;for(let mr=0;mr0?1:-1,f.push(vi.x,vi.y,vi.z),A.push(ns/Et),A.push(1-mr/Xt),oi+=1}for(let mr=0;mr0&&(t.defines=this.defines),t.vertexShader=this.vertexShader,t.fragmentShader=this.fragmentShader,t.lights=this.lights,t.clipping=this.clipping;const i={};for(const r in this.extensions)!0===this.extensions[r]&&(i[r]=!0);return Object.keys(i).length>0&&(t.extensions=i),t}}class w5 extends Pl{constructor(){super(),this.isCamera=!0,this.type="Camera",this.matrixWorldInverse=new wo,this.projectionMatrix=new wo,this.projectionMatrixInverse=new wo,this.coordinateSystem=V_}copy(e,t){return super.copy(e,t),this.matrixWorldInverse.copy(e.matrixWorldInverse),this.projectionMatrix.copy(e.projectionMatrix),this.projectionMatrixInverse.copy(e.projectionMatrixInverse),this.coordinateSystem=e.coordinateSystem,this}getWorldDirection(e){return super.getWorldDirection(e).negate()}updateMatrixWorld(e){super.updateMatrixWorld(e),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(e,t){super.updateWorldMatrix(e,t),this.matrixWorldInverse.copy(this.matrixWorld).invert()}clone(){return(new this.constructor).copy(this)}}const Vy=new It,pV=new Qi,mV=new Qi;class Ih extends w5{constructor(e=50,t=1,i=.1,r=2e3){super(),this.isPerspectiveCamera=!0,this.type="PerspectiveCamera",this.fov=e,this.zoom=1,this.near=i,this.far=r,this.focus=10,this.aspect=t,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}copy(e,t){return super.copy(e,t),this.fov=e.fov,this.zoom=e.zoom,this.near=e.near,this.far=e.far,this.focus=e.focus,this.aspect=e.aspect,this.view=null===e.view?null:Object.assign({},e.view),this.filmGauge=e.filmGauge,this.filmOffset=e.filmOffset,this}setFocalLength(e){const t=.5*this.getFilmHeight()/e;this.fov=2*M2*Math.atan(t),this.updateProjectionMatrix()}getFocalLength(){const e=Math.tan(.5*Bb*this.fov);return.5*this.getFilmHeight()/e}getEffectiveFOV(){return 2*M2*Math.atan(Math.tan(.5*Bb*this.fov)/this.zoom)}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1)}getFilmHeight(){return this.filmGauge/Math.max(this.aspect,1)}getViewBounds(e,t,i){Vy.set(-1,-1,.5).applyMatrix4(this.projectionMatrixInverse),t.set(Vy.x,Vy.y).multiplyScalar(-e/Vy.z),Vy.set(1,1,.5).applyMatrix4(this.projectionMatrixInverse),i.set(Vy.x,Vy.y).multiplyScalar(-e/Vy.z)}getViewSize(e,t){return this.getViewBounds(e,pV,mV),t.subVectors(mV,pV)}setViewOffset(e,t,i,r,s,o){this.aspect=e/t,null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=e,this.view.fullHeight=t,this.view.offsetX=i,this.view.offsetY=r,this.view.width=s,this.view.height=o,this.updateProjectionMatrix()}clearViewOffset(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const e=this.near;let t=e*Math.tan(.5*Bb*this.fov)/this.zoom,i=2*t,r=this.aspect*i,s=-.5*r;const o=this.view;if(null!==this.view&&this.view.enabled){const d=o.fullWidth,h=o.fullHeight;s+=o.offsetX*r/d,t-=o.offsetY*i/h,r*=o.width/d,i*=o.height/h}const l=this.filmOffset;0!==l&&(s+=e*l/this.getFilmWidth()),this.projectionMatrix.makePerspective(s,s+r,t,t-i,e,this.far,this.coordinateSystem),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(e){const t=super.toJSON(e);return t.object.fov=this.fov,t.object.zoom=this.zoom,t.object.near=this.near,t.object.far=this.far,t.object.focus=this.focus,t.object.aspect=this.aspect,null!==this.view&&(t.object.view=Object.assign({},this.view)),t.object.filmGauge=this.filmGauge,t.object.filmOffset=this.filmOffset,t}}class _ce extends Pl{constructor(e,t,i){super(),this.type="CubeCamera",this.renderTarget=i,this.coordinateSystem=null,this.activeMipmapLevel=0;const r=new Ih(-90,1,e,t);r.layers=this.layers,this.add(r);const s=new Ih(-90,1,e,t);s.layers=this.layers,this.add(s);const o=new Ih(-90,1,e,t);o.layers=this.layers,this.add(o);const l=new Ih(-90,1,e,t);l.layers=this.layers,this.add(l);const d=new Ih(-90,1,e,t);d.layers=this.layers,this.add(d);const h=new Ih(-90,1,e,t);h.layers=this.layers,this.add(h)}updateCoordinateSystem(){const e=this.coordinateSystem,t=this.children.concat(),[i,r,s,o,l,d]=t;for(const h of t)this.remove(h);if(e===V_)i.up.set(0,1,0),i.lookAt(1,0,0),r.up.set(0,1,0),r.lookAt(-1,0,0),s.up.set(0,0,-1),s.lookAt(0,1,0),o.up.set(0,0,1),o.lookAt(0,-1,0),l.up.set(0,1,0),l.lookAt(0,0,1),d.up.set(0,1,0),d.lookAt(0,0,-1);else{if(2001!==e)throw new Error("THREE.CubeCamera.updateCoordinateSystem(): Invalid coordinate system: "+e);i.up.set(0,-1,0),i.lookAt(-1,0,0),r.up.set(0,-1,0),r.lookAt(1,0,0),s.up.set(0,0,1),s.lookAt(0,1,0),o.up.set(0,0,-1),o.lookAt(0,-1,0),l.up.set(0,-1,0),l.lookAt(0,0,1),d.up.set(0,-1,0),d.lookAt(0,0,-1)}for(const h of t)this.add(h),h.updateMatrixWorld()}update(e,t){null===this.parent&&this.updateMatrixWorld();const{renderTarget:i,activeMipmapLevel:r}=this;this.coordinateSystem!==e.coordinateSystem&&(this.coordinateSystem=e.coordinateSystem,this.updateCoordinateSystem());const[s,o,l,d,h,f]=this.children,A=e.getRenderTarget(),S=e.getActiveCubeFace(),R=e.getActiveMipmapLevel(),G=e.xr.enabled;e.xr.enabled=!1;const re=i.texture.generateMipmaps;i.texture.generateMipmaps=!1,e.setRenderTarget(i,0,r),e.render(t,s),e.setRenderTarget(i,1,r),e.render(t,o),e.setRenderTarget(i,2,r),e.render(t,l),e.setRenderTarget(i,3,r),e.render(t,d),e.setRenderTarget(i,4,r),e.render(t,h),i.texture.generateMipmaps=re,e.setRenderTarget(i,5,r),e.render(t,f),e.setRenderTarget(A,S,R),e.xr.enabled=G,i.texture.needsPMREMUpdate=!0}}class AI extends zu{constructor(e,t,i,r,s,o,l,d,h,f){super(e=void 0!==e?e:[],t=void 0!==t?t:Py,i,r,s,o,l,d,h,f),this.isCubeTexture=!0,this.flipY=!1}get images(){return this.image}set images(e){this.image=e}}class yce extends Wh{constructor(e=1,t={}){super(e,e,t),this.isWebGLCubeRenderTarget=!0;const i={width:e,height:e,depth:1};this.texture=new AI([i,i,i,i,i,i],t.mapping,t.wrapS,t.wrapT,t.magFilter,t.minFilter,t.format,t.type,t.anisotropy,t.colorSpace),this.texture.isRenderTargetTexture=!0,this.texture.generateMipmaps=void 0!==t.generateMipmaps&&t.generateMipmaps,this.texture.minFilter=void 0!==t.minFilter?t.minFilter:Hc}fromEquirectangularTexture(e,t){this.texture.type=t.type,this.texture.colorSpace=t.colorSpace,this.texture.generateMipmaps=t.generateMipmaps,this.texture.minFilter=t.minFilter,this.texture.magFilter=t.magFilter;const i_uniforms={tEquirect:{value:null}},i_vertexShader="\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\tvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\n\t\t\t\t\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n\n\t\t\t\t}\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvWorldDirection = transformDirection( position, modelMatrix );\n\n\t\t\t\t\t#include \n\t\t\t\t\t#include \n\n\t\t\t\t}\n\t\t\t",i_fragmentShader="\n\n\t\t\t\tuniform sampler2D tEquirect;\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\t#include \n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvec3 direction = normalize( vWorldDirection );\n\n\t\t\t\t\tvec2 sampleUV = equirectUv( direction );\n\n\t\t\t\t\tgl_FragColor = texture2D( tEquirect, sampleUV );\n\n\t\t\t\t}\n\t\t\t",r=new yp(5,5,5),s=new Dh({name:"CubemapFromEquirect",uniforms:H2(i_uniforms),vertexShader:i_vertexShader,fragmentShader:i_fragmentShader,side:1,blending:0});s.uniforms.tEquirect.value=t;const o=new ha(r,s),l=t.minFilter;return t.minFilter===oA&&(t.minFilter=Hc),new _ce(1,10,this).update(e,o),t.minFilter=l,o.geometry.dispose(),o.material.dispose(),this}clear(e,t,i,r){const s=e.getRenderTarget();for(let o=0;o<6;o++)e.setRenderTarget(this,o),e.clear(t,i,r);e.setRenderTarget(s)}}const C5=new It,vce=new It,bce=new Ta;class dA{constructor(e=new It(1,0,0),t=0){this.isPlane=!0,this.normal=e,this.constant=t}set(e,t){return this.normal.copy(e),this.constant=t,this}setComponents(e,t,i,r){return this.normal.set(e,t,i),this.constant=r,this}setFromNormalAndCoplanarPoint(e,t){return this.normal.copy(e),this.constant=-t.dot(this.normal),this}setFromCoplanarPoints(e,t,i){const r=C5.subVectors(i,t).cross(vce.subVectors(e,t)).normalize();return this.setFromNormalAndCoplanarPoint(r,e),this}copy(e){return this.normal.copy(e.normal),this.constant=e.constant,this}normalize(){const e=1/this.normal.length();return this.normal.multiplyScalar(e),this.constant*=e,this}negate(){return this.constant*=-1,this.normal.negate(),this}distanceToPoint(e){return this.normal.dot(e)+this.constant}distanceToSphere(e){return this.distanceToPoint(e.center)-e.radius}projectPoint(e,t){return t.copy(e).addScaledVector(this.normal,-this.distanceToPoint(e))}intersectLine(e,t){const i=e.delta(C5),r=this.normal.dot(i);if(0===r)return 0===this.distanceToPoint(e.start)?t.copy(e.start):null;const s=-(e.start.dot(this.normal)+this.constant)/r;return s<0||s>1?null:t.copy(e.start).addScaledVector(i,s)}intersectsLine(e){const t=this.distanceToPoint(e.start),i=this.distanceToPoint(e.end);return t<0&&i>0||i<0&&t>0}intersectsBox(e){return e.intersectsPlane(this)}intersectsSphere(e){return e.intersectsPlane(this)}coplanarPoint(e){return e.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(e,t){const i=t||bce.getNormalMatrix(e),r=this.coplanarPoint(C5).applyMatrix4(e),s=this.normal.applyMatrix3(i).normalize();return this.constant=-r.dot(s),this}translate(e){return this.constant-=e.dot(this.normal),this}equals(e){return e.normal.equals(this.normal)&&e.constant===this.constant}clone(){return(new this.constructor).copy(this)}}const Ob=new jh,gI=new It;class _I{constructor(e=new dA,t=new dA,i=new dA,r=new dA,s=new dA,o=new dA){this.planes=[e,t,i,r,s,o]}set(e,t,i,r,s,o){const l=this.planes;return l[0].copy(e),l[1].copy(t),l[2].copy(i),l[3].copy(r),l[4].copy(s),l[5].copy(o),this}copy(e){const t=this.planes;for(let i=0;i<6;i++)t[i].copy(e.planes[i]);return this}setFromProjectionMatrix(e,t=V_){const i=this.planes,r=e.elements,s=r[0],o=r[1],l=r[2],d=r[3],h=r[4],f=r[5],A=r[6],S=r[7],R=r[8],G=r[9],re=r[10],se=r[11],le=r[12],Ee=r[13],Ce=r[14],We=r[15];if(i[0].setComponents(d-s,S-h,se-R,We-le).normalize(),i[1].setComponents(d+s,S+h,se+R,We+le).normalize(),i[2].setComponents(d+o,S+f,se+G,We+Ee).normalize(),i[3].setComponents(d-o,S-f,se-G,We-Ee).normalize(),i[4].setComponents(d-l,S-A,se-re,We-Ce).normalize(),t===V_)i[5].setComponents(d+l,S+A,se+re,We+Ce).normalize();else{if(2001!==t)throw new Error("THREE.Frustum.setFromProjectionMatrix(): Invalid coordinate system: "+t);i[5].setComponents(l,A,re,Ce).normalize()}return this}intersectsObject(e){if(void 0!==e.boundingSphere)null===e.boundingSphere&&e.computeBoundingSphere(),Ob.copy(e.boundingSphere).applyMatrix4(e.matrixWorld);else{const t=e.geometry;null===t.boundingSphere&&t.computeBoundingSphere(),Ob.copy(t.boundingSphere).applyMatrix4(e.matrixWorld)}return this.intersectsSphere(Ob)}intersectsSprite(e){return Ob.center.set(0,0,0),Ob.radius=.7071067811865476,Ob.applyMatrix4(e.matrixWorld),this.intersectsSphere(Ob)}intersectsSphere(e){const t=this.planes,i=e.center,r=-e.radius;for(let s=0;s<6;s++)if(t[s].distanceToPoint(i)0?e.max.x:e.min.x,gI.y=r.normal.y>0?e.max.y:e.min.y,gI.z=r.normal.z>0?e.max.z:e.min.z,r.distanceToPoint(gI)<0)return!1}return!0}containsPoint(e){const t=this.planes;for(let i=0;i<6;i++)if(t[i].distanceToPoint(e)<0)return!1;return!0}clone(){return(new this.constructor).copy(this)}}function AV(){let n=null,e=!1,t=null,i=null;function r(s,o){t(s,o),i=n.requestAnimationFrame(r)}return{start:function(){!0!==e&&null!==t&&(i=n.requestAnimationFrame(r),e=!0)},stop:function(){n.cancelAnimationFrame(i),e=!1},setAnimationLoop:function(s){t=s},setContext:function(s){n=s}}}function xce(n,e){const t=e.isWebGL2,i=new WeakMap;return{get:function o(h){return h.isInterleavedBufferAttribute&&(h=h.data),i.get(h)},remove:function l(h){h.isInterleavedBufferAttribute&&(h=h.data);const f=i.get(h);f&&(n.deleteBuffer(f.buffer),i.delete(h))},update:function d(h,f){if(h.isGLBufferAttribute){const S=i.get(h);return void((!S||S.version 0\n\tvec4 plane;\n\t#ifdef ALPHA_TO_COVERAGE\n\t\tfloat distanceToPlane, distanceGradient;\n\t\tfloat clipOpacity = 1.0;\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\n\t\t\tplane = clippingPlanes[ i ];\n\t\t\tdistanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w;\n\t\t\tdistanceGradient = fwidth( distanceToPlane ) / 2.0;\n\t\t\tclipOpacity *= smoothstep( - distanceGradient, distanceGradient, distanceToPlane );\n\t\t\tif ( clipOpacity == 0.0 ) discard;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\n\t\t\tfloat unionClipOpacity = 1.0;\n\t\t\t#pragma unroll_loop_start\n\t\t\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\n\t\t\t\tplane = clippingPlanes[ i ];\n\t\t\t\tdistanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w;\n\t\t\t\tdistanceGradient = fwidth( distanceToPlane ) / 2.0;\n\t\t\t\tunionClipOpacity *= 1.0 - smoothstep( - distanceGradient, distanceGradient, distanceToPlane );\n\t\t\t}\n\t\t\t#pragma unroll_loop_end\n\t\t\tclipOpacity *= 1.0 - unionClipOpacity;\n\t\t#endif\n\t\tdiffuseColor.a *= clipOpacity;\n\t\tif ( diffuseColor.a == 0.0 ) discard;\n\t#else\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\n\t\t\tplane = clippingPlanes[ i ];\n\t\t\tif ( dot( vClipPosition, plane.xyz ) > plane.w ) discard;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\n\t\t\tbool clipped = true;\n\t\t\t#pragma unroll_loop_start\n\t\t\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\n\t\t\t\tplane = clippingPlanes[ i ];\n\t\t\t\tclipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped;\n\t\t\t}\n\t\t\t#pragma unroll_loop_end\n\t\t\tif ( clipped ) discard;\n\t\t#endif\n\t#endif\n#endif",clipping_planes_pars_fragment:"#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n\tuniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];\n#endif",clipping_planes_pars_vertex:"#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n#endif",clipping_planes_vertex:"#if NUM_CLIPPING_PLANES > 0\n\tvClipPosition = - mvPosition.xyz;\n#endif",color_fragment:"#if defined( USE_COLOR_ALPHA )\n\tdiffuseColor *= vColor;\n#elif defined( USE_COLOR )\n\tdiffuseColor.rgb *= vColor;\n#endif",color_pars_fragment:"#if defined( USE_COLOR_ALPHA )\n\tvarying vec4 vColor;\n#elif defined( USE_COLOR )\n\tvarying vec3 vColor;\n#endif",color_pars_vertex:"#if defined( USE_COLOR_ALPHA )\n\tvarying vec4 vColor;\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\n\tvarying vec3 vColor;\n#endif",color_vertex:"#if defined( USE_COLOR_ALPHA )\n\tvColor = vec4( 1.0 );\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\n\tvColor = vec3( 1.0 );\n#endif\n#ifdef USE_COLOR\n\tvColor *= color;\n#endif\n#ifdef USE_INSTANCING_COLOR\n\tvColor.xyz *= instanceColor.xyz;\n#endif",common:"#define PI 3.141592653589793\n#define PI2 6.283185307179586\n#define PI_HALF 1.5707963267948966\n#define RECIPROCAL_PI 0.3183098861837907\n#define RECIPROCAL_PI2 0.15915494309189535\n#define EPSILON 1e-6\n#ifndef saturate\n#define saturate( a ) clamp( a, 0.0, 1.0 )\n#endif\n#define whiteComplement( a ) ( 1.0 - saturate( a ) )\nfloat pow2( const in float x ) { return x*x; }\nvec3 pow2( const in vec3 x ) { return x*x; }\nfloat pow3( const in float x ) { return x*x*x; }\nfloat pow4( const in float x ) { float x2 = x*x; return x2*x2; }\nfloat max3( const in vec3 v ) { return max( max( v.x, v.y ), v.z ); }\nfloat average( const in vec3 v ) { return dot( v, vec3( 0.3333333 ) ); }\nhighp float rand( const in vec2 uv ) {\n\tconst highp float a = 12.9898, b = 78.233, c = 43758.5453;\n\thighp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );\n\treturn fract( sin( sn ) * c );\n}\n#ifdef HIGH_PRECISION\n\tfloat precisionSafeLength( vec3 v ) { return length( v ); }\n#else\n\tfloat precisionSafeLength( vec3 v ) {\n\t\tfloat maxComponent = max3( abs( v ) );\n\t\treturn length( v / maxComponent ) * maxComponent;\n\t}\n#endif\nstruct IncidentLight {\n\tvec3 color;\n\tvec3 direction;\n\tbool visible;\n};\nstruct ReflectedLight {\n\tvec3 directDiffuse;\n\tvec3 directSpecular;\n\tvec3 indirectDiffuse;\n\tvec3 indirectSpecular;\n};\n#ifdef USE_ALPHAHASH\n\tvarying vec3 vPosition;\n#endif\nvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n}\nvec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );\n}\nmat3 transposeMat3( const in mat3 m ) {\n\tmat3 tmp;\n\ttmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x );\n\ttmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y );\n\ttmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z );\n\treturn tmp;\n}\nfloat luminance( const in vec3 rgb ) {\n\tconst vec3 weights = vec3( 0.2126729, 0.7151522, 0.0721750 );\n\treturn dot( weights, rgb );\n}\nbool isPerspectiveMatrix( mat4 m ) {\n\treturn m[ 2 ][ 3 ] == - 1.0;\n}\nvec2 equirectUv( in vec3 dir ) {\n\tfloat u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5;\n\tfloat v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\n\treturn vec2( u, v );\n}\nvec3 BRDF_Lambert( const in vec3 diffuseColor ) {\n\treturn RECIPROCAL_PI * diffuseColor;\n}\nvec3 F_Schlick( const in vec3 f0, const in float f90, const in float dotVH ) {\n\tfloat fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\n\treturn f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\n}\nfloat F_Schlick( const in float f0, const in float f90, const in float dotVH ) {\n\tfloat fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\n\treturn f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\n} // validated",cube_uv_reflection_fragment:"#ifdef ENVMAP_TYPE_CUBE_UV\n\t#define cubeUV_minMipLevel 4.0\n\t#define cubeUV_minTileSize 16.0\n\tfloat getFace( vec3 direction ) {\n\t\tvec3 absDirection = abs( direction );\n\t\tfloat face = - 1.0;\n\t\tif ( absDirection.x > absDirection.z ) {\n\t\t\tif ( absDirection.x > absDirection.y )\n\t\t\t\tface = direction.x > 0.0 ? 0.0 : 3.0;\n\t\t\telse\n\t\t\t\tface = direction.y > 0.0 ? 1.0 : 4.0;\n\t\t} else {\n\t\t\tif ( absDirection.z > absDirection.y )\n\t\t\t\tface = direction.z > 0.0 ? 2.0 : 5.0;\n\t\t\telse\n\t\t\t\tface = direction.y > 0.0 ? 1.0 : 4.0;\n\t\t}\n\t\treturn face;\n\t}\n\tvec2 getUV( vec3 direction, float face ) {\n\t\tvec2 uv;\n\t\tif ( face == 0.0 ) {\n\t\t\tuv = vec2( direction.z, direction.y ) / abs( direction.x );\n\t\t} else if ( face == 1.0 ) {\n\t\t\tuv = vec2( - direction.x, - direction.z ) / abs( direction.y );\n\t\t} else if ( face == 2.0 ) {\n\t\t\tuv = vec2( - direction.x, direction.y ) / abs( direction.z );\n\t\t} else if ( face == 3.0 ) {\n\t\t\tuv = vec2( - direction.z, direction.y ) / abs( direction.x );\n\t\t} else if ( face == 4.0 ) {\n\t\t\tuv = vec2( - direction.x, direction.z ) / abs( direction.y );\n\t\t} else {\n\t\t\tuv = vec2( direction.x, direction.y ) / abs( direction.z );\n\t\t}\n\t\treturn 0.5 * ( uv + 1.0 );\n\t}\n\tvec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) {\n\t\tfloat face = getFace( direction );\n\t\tfloat filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 );\n\t\tmipInt = max( mipInt, cubeUV_minMipLevel );\n\t\tfloat faceSize = exp2( mipInt );\n\t\thighp vec2 uv = getUV( direction, face ) * ( faceSize - 2.0 ) + 1.0;\n\t\tif ( face > 2.0 ) {\n\t\t\tuv.y += faceSize;\n\t\t\tface -= 3.0;\n\t\t}\n\t\tuv.x += face * faceSize;\n\t\tuv.x += filterInt * 3.0 * cubeUV_minTileSize;\n\t\tuv.y += 4.0 * ( exp2( CUBEUV_MAX_MIP ) - faceSize );\n\t\tuv.x *= CUBEUV_TEXEL_WIDTH;\n\t\tuv.y *= CUBEUV_TEXEL_HEIGHT;\n\t\t#ifdef texture2DGradEXT\n\t\t\treturn texture2DGradEXT( envMap, uv, vec2( 0.0 ), vec2( 0.0 ) ).rgb;\n\t\t#else\n\t\t\treturn texture2D( envMap, uv ).rgb;\n\t\t#endif\n\t}\n\t#define cubeUV_r0 1.0\n\t#define cubeUV_m0 - 2.0\n\t#define cubeUV_r1 0.8\n\t#define cubeUV_m1 - 1.0\n\t#define cubeUV_r4 0.4\n\t#define cubeUV_m4 2.0\n\t#define cubeUV_r5 0.305\n\t#define cubeUV_m5 3.0\n\t#define cubeUV_r6 0.21\n\t#define cubeUV_m6 4.0\n\tfloat roughnessToMip( float roughness ) {\n\t\tfloat mip = 0.0;\n\t\tif ( roughness >= cubeUV_r1 ) {\n\t\t\tmip = ( cubeUV_r0 - roughness ) * ( cubeUV_m1 - cubeUV_m0 ) / ( cubeUV_r0 - cubeUV_r1 ) + cubeUV_m0;\n\t\t} else if ( roughness >= cubeUV_r4 ) {\n\t\t\tmip = ( cubeUV_r1 - roughness ) * ( cubeUV_m4 - cubeUV_m1 ) / ( cubeUV_r1 - cubeUV_r4 ) + cubeUV_m1;\n\t\t} else if ( roughness >= cubeUV_r5 ) {\n\t\t\tmip = ( cubeUV_r4 - roughness ) * ( cubeUV_m5 - cubeUV_m4 ) / ( cubeUV_r4 - cubeUV_r5 ) + cubeUV_m4;\n\t\t} else if ( roughness >= cubeUV_r6 ) {\n\t\t\tmip = ( cubeUV_r5 - roughness ) * ( cubeUV_m6 - cubeUV_m5 ) / ( cubeUV_r5 - cubeUV_r6 ) + cubeUV_m5;\n\t\t} else {\n\t\t\tmip = - 2.0 * log2( 1.16 * roughness );\t\t}\n\t\treturn mip;\n\t}\n\tvec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) {\n\t\tfloat mip = clamp( roughnessToMip( roughness ), cubeUV_m0, CUBEUV_MAX_MIP );\n\t\tfloat mipF = fract( mip );\n\t\tfloat mipInt = floor( mip );\n\t\tvec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt );\n\t\tif ( mipF == 0.0 ) {\n\t\t\treturn vec4( color0, 1.0 );\n\t\t} else {\n\t\t\tvec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 );\n\t\t\treturn vec4( mix( color0, color1, mipF ), 1.0 );\n\t\t}\n\t}\n#endif",defaultnormal_vertex:"vec3 transformedNormal = objectNormal;\n#ifdef USE_TANGENT\n\tvec3 transformedTangent = objectTangent;\n#endif\n#ifdef USE_BATCHING\n\tmat3 bm = mat3( batchingMatrix );\n\ttransformedNormal /= vec3( dot( bm[ 0 ], bm[ 0 ] ), dot( bm[ 1 ], bm[ 1 ] ), dot( bm[ 2 ], bm[ 2 ] ) );\n\ttransformedNormal = bm * transformedNormal;\n\t#ifdef USE_TANGENT\n\t\ttransformedTangent = bm * transformedTangent;\n\t#endif\n#endif\n#ifdef USE_INSTANCING\n\tmat3 im = mat3( instanceMatrix );\n\ttransformedNormal /= vec3( dot( im[ 0 ], im[ 0 ] ), dot( im[ 1 ], im[ 1 ] ), dot( im[ 2 ], im[ 2 ] ) );\n\ttransformedNormal = im * transformedNormal;\n\t#ifdef USE_TANGENT\n\t\ttransformedTangent = im * transformedTangent;\n\t#endif\n#endif\ntransformedNormal = normalMatrix * transformedNormal;\n#ifdef FLIP_SIDED\n\ttransformedNormal = - transformedNormal;\n#endif\n#ifdef USE_TANGENT\n\ttransformedTangent = ( modelViewMatrix * vec4( transformedTangent, 0.0 ) ).xyz;\n\t#ifdef FLIP_SIDED\n\t\ttransformedTangent = - transformedTangent;\n\t#endif\n#endif",displacementmap_pars_vertex:"#ifdef USE_DISPLACEMENTMAP\n\tuniform sampler2D displacementMap;\n\tuniform float displacementScale;\n\tuniform float displacementBias;\n#endif",displacementmap_vertex:"#ifdef USE_DISPLACEMENTMAP\n\ttransformed += normalize( objectNormal ) * ( texture2D( displacementMap, vDisplacementMapUv ).x * displacementScale + displacementBias );\n#endif",emissivemap_fragment:"#ifdef USE_EMISSIVEMAP\n\tvec4 emissiveColor = texture2D( emissiveMap, vEmissiveMapUv );\n\ttotalEmissiveRadiance *= emissiveColor.rgb;\n#endif",emissivemap_pars_fragment:"#ifdef USE_EMISSIVEMAP\n\tuniform sampler2D emissiveMap;\n#endif",colorspace_fragment:"gl_FragColor = linearToOutputTexel( gl_FragColor );",colorspace_pars_fragment:"\nconst mat3 LINEAR_SRGB_TO_LINEAR_DISPLAY_P3 = mat3(\n\tvec3( 0.8224621, 0.177538, 0.0 ),\n\tvec3( 0.0331941, 0.9668058, 0.0 ),\n\tvec3( 0.0170827, 0.0723974, 0.9105199 )\n);\nconst mat3 LINEAR_DISPLAY_P3_TO_LINEAR_SRGB = mat3(\n\tvec3( 1.2249401, - 0.2249404, 0.0 ),\n\tvec3( - 0.0420569, 1.0420571, 0.0 ),\n\tvec3( - 0.0196376, - 0.0786361, 1.0982735 )\n);\nvec4 LinearSRGBToLinearDisplayP3( in vec4 value ) {\n\treturn vec4( value.rgb * LINEAR_SRGB_TO_LINEAR_DISPLAY_P3, value.a );\n}\nvec4 LinearDisplayP3ToLinearSRGB( in vec4 value ) {\n\treturn vec4( value.rgb * LINEAR_DISPLAY_P3_TO_LINEAR_SRGB, value.a );\n}\nvec4 LinearTransferOETF( in vec4 value ) {\n\treturn value;\n}\nvec4 sRGBTransferOETF( in vec4 value ) {\n\treturn vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a );\n}\nvec4 LinearToLinear( in vec4 value ) {\n\treturn value;\n}\nvec4 LinearTosRGB( in vec4 value ) {\n\treturn sRGBTransferOETF( value );\n}",envmap_fragment:"#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvec3 cameraToFrag;\n\t\tif ( isOrthographic ) {\n\t\t\tcameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n\t\t} else {\n\t\t\tcameraToFrag = normalize( vWorldPosition - cameraPosition );\n\t\t}\n\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvec3 reflectVec = reflect( cameraToFrag, worldNormal );\n\t\t#else\n\t\t\tvec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio );\n\t\t#endif\n\t#else\n\t\tvec3 reflectVec = vReflect;\n\t#endif\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tvec4 envColor = textureCube( envMap, envMapRotation * vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\n\t#else\n\t\tvec4 envColor = vec4( 0.0 );\n\t#endif\n\t#ifdef ENVMAP_BLENDING_MULTIPLY\n\t\toutgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_MIX )\n\t\toutgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_ADD )\n\t\toutgoingLight += envColor.xyz * specularStrength * reflectivity;\n\t#endif\n#endif",envmap_common_pars_fragment:"#ifdef USE_ENVMAP\n\tuniform float envMapIntensity;\n\tuniform float flipEnvMap;\n\tuniform mat3 envMapRotation;\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tuniform samplerCube envMap;\n\t#else\n\t\tuniform sampler2D envMap;\n\t#endif\n\t\n#endif",envmap_pars_fragment:"#ifdef USE_ENVMAP\n\tuniform float reflectivity;\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\tvarying vec3 vWorldPosition;\n\t\tuniform float refractionRatio;\n\t#else\n\t\tvarying vec3 vReflect;\n\t#endif\n#endif",envmap_pars_vertex:"#ifdef USE_ENVMAP\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\t\n\t\tvarying vec3 vWorldPosition;\n\t#else\n\t\tvarying vec3 vReflect;\n\t\tuniform float refractionRatio;\n\t#endif\n#endif",envmap_physical_pars_fragment:"#ifdef USE_ENVMAP\n\tvec3 getIBLIrradiance( const in vec3 normal ) {\n\t\t#ifdef ENVMAP_TYPE_CUBE_UV\n\t\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, envMapRotation * worldNormal, 1.0 );\n\t\t\treturn PI * envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n\tvec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) {\n\t\t#ifdef ENVMAP_TYPE_CUBE_UV\n\t\t\tvec3 reflectVec = reflect( - viewDir, normal );\n\t\t\treflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );\n\t\t\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, envMapRotation * reflectVec, roughness );\n\t\t\treturn envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n\t#ifdef USE_ANISOTROPY\n\t\tvec3 getIBLAnisotropyRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in vec3 bitangent, const in float anisotropy ) {\n\t\t\t#ifdef ENVMAP_TYPE_CUBE_UV\n\t\t\t\tvec3 bentNormal = cross( bitangent, viewDir );\n\t\t\t\tbentNormal = normalize( cross( bentNormal, bitangent ) );\n\t\t\t\tbentNormal = normalize( mix( bentNormal, normal, pow2( pow2( 1.0 - anisotropy * ( 1.0 - roughness ) ) ) ) );\n\t\t\t\treturn getIBLRadiance( viewDir, bentNormal, roughness );\n\t\t\t#else\n\t\t\t\treturn vec3( 0.0 );\n\t\t\t#endif\n\t\t}\n\t#endif\n#endif",envmap_vertex:"#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvWorldPosition = worldPosition.xyz;\n\t#else\n\t\tvec3 cameraToVertex;\n\t\tif ( isOrthographic ) {\n\t\t\tcameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n\t\t} else {\n\t\t\tcameraToVertex = normalize( worldPosition.xyz - cameraPosition );\n\t\t}\n\t\tvec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvReflect = reflect( cameraToVertex, worldNormal );\n\t\t#else\n\t\t\tvReflect = refract( cameraToVertex, worldNormal, refractionRatio );\n\t\t#endif\n\t#endif\n#endif",fog_vertex:"#ifdef USE_FOG\n\tvFogDepth = - mvPosition.z;\n#endif",fog_pars_vertex:"#ifdef USE_FOG\n\tvarying float vFogDepth;\n#endif",fog_fragment:"#ifdef USE_FOG\n\t#ifdef FOG_EXP2\n\t\tfloat fogFactor = 1.0 - exp( - fogDensity * fogDensity * vFogDepth * vFogDepth );\n\t#else\n\t\tfloat fogFactor = smoothstep( fogNear, fogFar, vFogDepth );\n\t#endif\n\tgl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\n#endif",fog_pars_fragment:"#ifdef USE_FOG\n\tuniform vec3 fogColor;\n\tvarying float vFogDepth;\n\t#ifdef FOG_EXP2\n\t\tuniform float fogDensity;\n\t#else\n\t\tuniform float fogNear;\n\t\tuniform float fogFar;\n\t#endif\n#endif",gradientmap_pars_fragment:"#ifdef USE_GRADIENTMAP\n\tuniform sampler2D gradientMap;\n#endif\nvec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {\n\tfloat dotNL = dot( normal, lightDirection );\n\tvec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 );\n\t#ifdef USE_GRADIENTMAP\n\t\treturn vec3( texture2D( gradientMap, coord ).r );\n\t#else\n\t\tvec2 fw = fwidth( coord ) * 0.5;\n\t\treturn mix( vec3( 0.7 ), vec3( 1.0 ), smoothstep( 0.7 - fw.x, 0.7 + fw.x, coord.x ) );\n\t#endif\n}",lightmap_fragment:"#ifdef USE_LIGHTMAP\n\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\n\treflectedLight.indirectDiffuse += lightMapIrradiance;\n#endif",lightmap_pars_fragment:"#ifdef USE_LIGHTMAP\n\tuniform sampler2D lightMap;\n\tuniform float lightMapIntensity;\n#endif",lights_lambert_fragment:"LambertMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularStrength = specularStrength;",lights_lambert_pars_fragment:"varying vec3 vViewPosition;\nstruct LambertMaterial {\n\tvec3 diffuseColor;\n\tfloat specularStrength;\n};\nvoid RE_Direct_Lambert( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometryNormal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Lambert( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_Lambert\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Lambert",lights_pars_begin:"uniform bool receiveShadow;\nuniform vec3 ambientLightColor;\n#if defined( USE_LIGHT_PROBES )\n\tuniform vec3 lightProbe[ 9 ];\n#endif\nvec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {\n\tfloat x = normal.x, y = normal.y, z = normal.z;\n\tvec3 result = shCoefficients[ 0 ] * 0.886227;\n\tresult += shCoefficients[ 1 ] * 2.0 * 0.511664 * y;\n\tresult += shCoefficients[ 2 ] * 2.0 * 0.511664 * z;\n\tresult += shCoefficients[ 3 ] * 2.0 * 0.511664 * x;\n\tresult += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y;\n\tresult += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z;\n\tresult += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 );\n\tresult += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z;\n\tresult += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y );\n\treturn result;\n}\nvec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) {\n\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\tvec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe );\n\treturn irradiance;\n}\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\n\tvec3 irradiance = ambientLightColor;\n\treturn irradiance;\n}\nfloat getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {\n\t#if defined ( LEGACY_LIGHTS )\n\t\tif ( cutoffDistance > 0.0 && decayExponent > 0.0 ) {\n\t\t\treturn pow( saturate( - lightDistance / cutoffDistance + 1.0 ), decayExponent );\n\t\t}\n\t\treturn 1.0;\n\t#else\n\t\tfloat distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\n\t\tif ( cutoffDistance > 0.0 ) {\n\t\t\tdistanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\n\t\t}\n\t\treturn distanceFalloff;\n\t#endif\n}\nfloat getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) {\n\treturn smoothstep( coneCosine, penumbraCosine, angleCosine );\n}\n#if NUM_DIR_LIGHTS > 0\n\tstruct DirectionalLight {\n\t\tvec3 direction;\n\t\tvec3 color;\n\t};\n\tuniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];\n\tvoid getDirectionalLightInfo( const in DirectionalLight directionalLight, out IncidentLight light ) {\n\t\tlight.color = directionalLight.color;\n\t\tlight.direction = directionalLight.direction;\n\t\tlight.visible = true;\n\t}\n#endif\n#if NUM_POINT_LIGHTS > 0\n\tstruct PointLight {\n\t\tvec3 position;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t};\n\tuniform PointLight pointLights[ NUM_POINT_LIGHTS ];\n\tvoid getPointLightInfo( const in PointLight pointLight, const in vec3 geometryPosition, out IncidentLight light ) {\n\t\tvec3 lVector = pointLight.position - geometryPosition;\n\t\tlight.direction = normalize( lVector );\n\t\tfloat lightDistance = length( lVector );\n\t\tlight.color = pointLight.color;\n\t\tlight.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay );\n\t\tlight.visible = ( light.color != vec3( 0.0 ) );\n\t}\n#endif\n#if NUM_SPOT_LIGHTS > 0\n\tstruct SpotLight {\n\t\tvec3 position;\n\t\tvec3 direction;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t\tfloat coneCos;\n\t\tfloat penumbraCos;\n\t};\n\tuniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];\n\tvoid getSpotLightInfo( const in SpotLight spotLight, const in vec3 geometryPosition, out IncidentLight light ) {\n\t\tvec3 lVector = spotLight.position - geometryPosition;\n\t\tlight.direction = normalize( lVector );\n\t\tfloat angleCos = dot( light.direction, spotLight.direction );\n\t\tfloat spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos );\n\t\tif ( spotAttenuation > 0.0 ) {\n\t\t\tfloat lightDistance = length( lVector );\n\t\t\tlight.color = spotLight.color * spotAttenuation;\n\t\t\tlight.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay );\n\t\t\tlight.visible = ( light.color != vec3( 0.0 ) );\n\t\t} else {\n\t\t\tlight.color = vec3( 0.0 );\n\t\t\tlight.visible = false;\n\t\t}\n\t}\n#endif\n#if NUM_RECT_AREA_LIGHTS > 0\n\tstruct RectAreaLight {\n\t\tvec3 color;\n\t\tvec3 position;\n\t\tvec3 halfWidth;\n\t\tvec3 halfHeight;\n\t};\n\tuniform sampler2D ltc_1;\tuniform sampler2D ltc_2;\n\tuniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];\n#endif\n#if NUM_HEMI_LIGHTS > 0\n\tstruct HemisphereLight {\n\t\tvec3 direction;\n\t\tvec3 skyColor;\n\t\tvec3 groundColor;\n\t};\n\tuniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];\n\tvec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) {\n\t\tfloat dotNL = dot( normal, hemiLight.direction );\n\t\tfloat hemiDiffuseWeight = 0.5 * dotNL + 0.5;\n\t\tvec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\n\t\treturn irradiance;\n\t}\n#endif",lights_toon_fragment:"ToonMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;",lights_toon_pars_fragment:"varying vec3 vViewPosition;\nstruct ToonMaterial {\n\tvec3 diffuseColor;\n};\nvoid RE_Direct_Toon( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n\tvec3 irradiance = getGradientIrradiance( geometryNormal, directLight.direction ) * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_Toon\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Toon",lights_phong_fragment:"BlinnPhongMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularColor = specular;\nmaterial.specularShininess = shininess;\nmaterial.specularStrength = specularStrength;",lights_phong_pars_fragment:"varying vec3 vViewPosition;\nstruct BlinnPhongMaterial {\n\tvec3 diffuseColor;\n\tvec3 specularColor;\n\tfloat specularShininess;\n\tfloat specularStrength;\n};\nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometryNormal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n\treflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometryViewDir, geometryNormal, material.specularColor, material.specularShininess ) * material.specularStrength;\n}\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_BlinnPhong\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_BlinnPhong",lights_physical_fragment:"PhysicalMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\nvec3 dxy = max( abs( dFdx( nonPerturbedNormal ) ), abs( dFdy( nonPerturbedNormal ) ) );\nfloat geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );\nmaterial.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness;\nmaterial.roughness = min( material.roughness, 1.0 );\n#ifdef IOR\n\tmaterial.ior = ior;\n\t#ifdef USE_SPECULAR\n\t\tfloat specularIntensityFactor = specularIntensity;\n\t\tvec3 specularColorFactor = specularColor;\n\t\t#ifdef USE_SPECULAR_COLORMAP\n\t\t\tspecularColorFactor *= texture2D( specularColorMap, vSpecularColorMapUv ).rgb;\n\t\t#endif\n\t\t#ifdef USE_SPECULAR_INTENSITYMAP\n\t\t\tspecularIntensityFactor *= texture2D( specularIntensityMap, vSpecularIntensityMapUv ).a;\n\t\t#endif\n\t\tmaterial.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor );\n\t#else\n\t\tfloat specularIntensityFactor = 1.0;\n\t\tvec3 specularColorFactor = vec3( 1.0 );\n\t\tmaterial.specularF90 = 1.0;\n\t#endif\n\tmaterial.specularColor = mix( min( pow2( ( material.ior - 1.0 ) / ( material.ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor );\n#else\n\tmaterial.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor );\n\tmaterial.specularF90 = 1.0;\n#endif\n#ifdef USE_CLEARCOAT\n\tmaterial.clearcoat = clearcoat;\n\tmaterial.clearcoatRoughness = clearcoatRoughness;\n\tmaterial.clearcoatF0 = vec3( 0.04 );\n\tmaterial.clearcoatF90 = 1.0;\n\t#ifdef USE_CLEARCOATMAP\n\t\tmaterial.clearcoat *= texture2D( clearcoatMap, vClearcoatMapUv ).x;\n\t#endif\n\t#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\t\tmaterial.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vClearcoatRoughnessMapUv ).y;\n\t#endif\n\tmaterial.clearcoat = saturate( material.clearcoat );\tmaterial.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 );\n\tmaterial.clearcoatRoughness += geometryRoughness;\n\tmaterial.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 );\n#endif\n#ifdef USE_IRIDESCENCE\n\tmaterial.iridescence = iridescence;\n\tmaterial.iridescenceIOR = iridescenceIOR;\n\t#ifdef USE_IRIDESCENCEMAP\n\t\tmaterial.iridescence *= texture2D( iridescenceMap, vIridescenceMapUv ).r;\n\t#endif\n\t#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\t\tmaterial.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vIridescenceThicknessMapUv ).g + iridescenceThicknessMinimum;\n\t#else\n\t\tmaterial.iridescenceThickness = iridescenceThicknessMaximum;\n\t#endif\n#endif\n#ifdef USE_SHEEN\n\tmaterial.sheenColor = sheenColor;\n\t#ifdef USE_SHEEN_COLORMAP\n\t\tmaterial.sheenColor *= texture2D( sheenColorMap, vSheenColorMapUv ).rgb;\n\t#endif\n\tmaterial.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 );\n\t#ifdef USE_SHEEN_ROUGHNESSMAP\n\t\tmaterial.sheenRoughness *= texture2D( sheenRoughnessMap, vSheenRoughnessMapUv ).a;\n\t#endif\n#endif\n#ifdef USE_ANISOTROPY\n\t#ifdef USE_ANISOTROPYMAP\n\t\tmat2 anisotropyMat = mat2( anisotropyVector.x, anisotropyVector.y, - anisotropyVector.y, anisotropyVector.x );\n\t\tvec3 anisotropyPolar = texture2D( anisotropyMap, vAnisotropyMapUv ).rgb;\n\t\tvec2 anisotropyV = anisotropyMat * normalize( 2.0 * anisotropyPolar.rg - vec2( 1.0 ) ) * anisotropyPolar.b;\n\t#else\n\t\tvec2 anisotropyV = anisotropyVector;\n\t#endif\n\tmaterial.anisotropy = length( anisotropyV );\n\tif( material.anisotropy == 0.0 ) {\n\t\tanisotropyV = vec2( 1.0, 0.0 );\n\t} else {\n\t\tanisotropyV /= material.anisotropy;\n\t\tmaterial.anisotropy = saturate( material.anisotropy );\n\t}\n\tmaterial.alphaT = mix( pow2( material.roughness ), 1.0, pow2( material.anisotropy ) );\n\tmaterial.anisotropyT = tbn[ 0 ] * anisotropyV.x + tbn[ 1 ] * anisotropyV.y;\n\tmaterial.anisotropyB = tbn[ 1 ] * anisotropyV.x - tbn[ 0 ] * anisotropyV.y;\n#endif",lights_physical_pars_fragment:"struct PhysicalMaterial {\n\tvec3 diffuseColor;\n\tfloat roughness;\n\tvec3 specularColor;\n\tfloat specularF90;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat clearcoat;\n\t\tfloat clearcoatRoughness;\n\t\tvec3 clearcoatF0;\n\t\tfloat clearcoatF90;\n\t#endif\n\t#ifdef USE_IRIDESCENCE\n\t\tfloat iridescence;\n\t\tfloat iridescenceIOR;\n\t\tfloat iridescenceThickness;\n\t\tvec3 iridescenceFresnel;\n\t\tvec3 iridescenceF0;\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tvec3 sheenColor;\n\t\tfloat sheenRoughness;\n\t#endif\n\t#ifdef IOR\n\t\tfloat ior;\n\t#endif\n\t#ifdef USE_TRANSMISSION\n\t\tfloat transmission;\n\t\tfloat transmissionAlpha;\n\t\tfloat thickness;\n\t\tfloat attenuationDistance;\n\t\tvec3 attenuationColor;\n\t#endif\n\t#ifdef USE_ANISOTROPY\n\t\tfloat anisotropy;\n\t\tfloat alphaT;\n\t\tvec3 anisotropyT;\n\t\tvec3 anisotropyB;\n\t#endif\n};\nvec3 clearcoatSpecularDirect = vec3( 0.0 );\nvec3 clearcoatSpecularIndirect = vec3( 0.0 );\nvec3 sheenSpecularDirect = vec3( 0.0 );\nvec3 sheenSpecularIndirect = vec3(0.0 );\nvec3 Schlick_to_F0( const in vec3 f, const in float f90, const in float dotVH ) {\n float x = clamp( 1.0 - dotVH, 0.0, 1.0 );\n float x2 = x * x;\n float x5 = clamp( x * x2 * x2, 0.0, 0.9999 );\n return ( f - vec3( f90 ) * x5 ) / ( 1.0 - x5 );\n}\nfloat V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {\n\tfloat a2 = pow2( alpha );\n\tfloat gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\n\tfloat gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\n\treturn 0.5 / max( gv + gl, EPSILON );\n}\nfloat D_GGX( const in float alpha, const in float dotNH ) {\n\tfloat a2 = pow2( alpha );\n\tfloat denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;\n\treturn RECIPROCAL_PI * a2 / pow2( denom );\n}\n#ifdef USE_ANISOTROPY\n\tfloat V_GGX_SmithCorrelated_Anisotropic( const in float alphaT, const in float alphaB, const in float dotTV, const in float dotBV, const in float dotTL, const in float dotBL, const in float dotNV, const in float dotNL ) {\n\t\tfloat gv = dotNL * length( vec3( alphaT * dotTV, alphaB * dotBV, dotNV ) );\n\t\tfloat gl = dotNV * length( vec3( alphaT * dotTL, alphaB * dotBL, dotNL ) );\n\t\tfloat v = 0.5 / ( gv + gl );\n\t\treturn saturate(v);\n\t}\n\tfloat D_GGX_Anisotropic( const in float alphaT, const in float alphaB, const in float dotNH, const in float dotTH, const in float dotBH ) {\n\t\tfloat a2 = alphaT * alphaB;\n\t\thighp vec3 v = vec3( alphaB * dotTH, alphaT * dotBH, a2 * dotNH );\n\t\thighp float v2 = dot( v, v );\n\t\tfloat w2 = a2 / v2;\n\t\treturn RECIPROCAL_PI * a2 * pow2 ( w2 );\n\t}\n#endif\n#ifdef USE_CLEARCOAT\n\tvec3 BRDF_GGX_Clearcoat( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material) {\n\t\tvec3 f0 = material.clearcoatF0;\n\t\tfloat f90 = material.clearcoatF90;\n\t\tfloat roughness = material.clearcoatRoughness;\n\t\tfloat alpha = pow2( roughness );\n\t\tvec3 halfDir = normalize( lightDir + viewDir );\n\t\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\t\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\t\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\t\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\t\tvec3 F = F_Schlick( f0, f90, dotVH );\n\t\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\t\tfloat D = D_GGX( alpha, dotNH );\n\t\treturn F * ( V * D );\n\t}\n#endif\nvec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material ) {\n\tvec3 f0 = material.specularColor;\n\tfloat f90 = material.specularF90;\n\tfloat roughness = material.roughness;\n\tfloat alpha = pow2( roughness );\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\tvec3 F = F_Schlick( f0, f90, dotVH );\n\t#ifdef USE_IRIDESCENCE\n\t\tF = mix( F, material.iridescenceFresnel, material.iridescence );\n\t#endif\n\t#ifdef USE_ANISOTROPY\n\t\tfloat dotTL = dot( material.anisotropyT, lightDir );\n\t\tfloat dotTV = dot( material.anisotropyT, viewDir );\n\t\tfloat dotTH = dot( material.anisotropyT, halfDir );\n\t\tfloat dotBL = dot( material.anisotropyB, lightDir );\n\t\tfloat dotBV = dot( material.anisotropyB, viewDir );\n\t\tfloat dotBH = dot( material.anisotropyB, halfDir );\n\t\tfloat V = V_GGX_SmithCorrelated_Anisotropic( material.alphaT, alpha, dotTV, dotBV, dotTL, dotBL, dotNV, dotNL );\n\t\tfloat D = D_GGX_Anisotropic( material.alphaT, alpha, dotNH, dotTH, dotBH );\n\t#else\n\t\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\t\tfloat D = D_GGX( alpha, dotNH );\n\t#endif\n\treturn F * ( V * D );\n}\nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {\n\tconst float LUT_SIZE = 64.0;\n\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\n\tconst float LUT_BIAS = 0.5 / LUT_SIZE;\n\tfloat dotNV = saturate( dot( N, V ) );\n\tvec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );\n\tuv = uv * LUT_SCALE + LUT_BIAS;\n\treturn uv;\n}\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\n\tfloat l = length( f );\n\treturn max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\n}\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\n\tfloat x = dot( v1, v2 );\n\tfloat y = abs( x );\n\tfloat a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;\n\tfloat b = 3.4175940 + ( 4.1616724 + y ) * y;\n\tfloat v = a / b;\n\tfloat theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\n\treturn cross( v1, v2 ) * theta_sintheta;\n}\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {\n\tvec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];\n\tvec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];\n\tvec3 lightNormal = cross( v1, v2 );\n\tif( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );\n\tvec3 T1, T2;\n\tT1 = normalize( V - N * dot( V, N ) );\n\tT2 = - cross( N, T1 );\n\tmat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\n\tvec3 coords[ 4 ];\n\tcoords[ 0 ] = mat * ( rectCoords[ 0 ] - P );\n\tcoords[ 1 ] = mat * ( rectCoords[ 1 ] - P );\n\tcoords[ 2 ] = mat * ( rectCoords[ 2 ] - P );\n\tcoords[ 3 ] = mat * ( rectCoords[ 3 ] - P );\n\tcoords[ 0 ] = normalize( coords[ 0 ] );\n\tcoords[ 1 ] = normalize( coords[ 1 ] );\n\tcoords[ 2 ] = normalize( coords[ 2 ] );\n\tcoords[ 3 ] = normalize( coords[ 3 ] );\n\tvec3 vectorFormFactor = vec3( 0.0 );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\n\tfloat result = LTC_ClippedSphereFormFactor( vectorFormFactor );\n\treturn vec3( result );\n}\n#if defined( USE_SHEEN )\nfloat D_Charlie( float roughness, float dotNH ) {\n\tfloat alpha = pow2( roughness );\n\tfloat invAlpha = 1.0 / alpha;\n\tfloat cos2h = dotNH * dotNH;\n\tfloat sin2h = max( 1.0 - cos2h, 0.0078125 );\n\treturn ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI );\n}\nfloat V_Neubelt( float dotNV, float dotNL ) {\n\treturn saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) );\n}\nvec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) {\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat D = D_Charlie( sheenRoughness, dotNH );\n\tfloat V = V_Neubelt( dotNV, dotNL );\n\treturn sheenColor * ( D * V );\n}\n#endif\nfloat IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat r2 = roughness * roughness;\n\tfloat a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95;\n\tfloat b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72;\n\tfloat DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) );\n\treturn saturate( DG * RECIPROCAL_PI );\n}\nvec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tconst vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\n\tconst vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\n\tvec4 r = roughness * c0 + c1;\n\tfloat a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\n\tvec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw;\n\treturn fab;\n}\nvec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) {\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\treturn specularColor * fab.x + specularF90 * fab.y;\n}\n#ifdef USE_IRIDESCENCE\nvoid computeMultiscatteringIridescence( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float iridescence, const in vec3 iridescenceF0, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#else\nvoid computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#endif\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\t#ifdef USE_IRIDESCENCE\n\t\tvec3 Fr = mix( specularColor, iridescenceF0, iridescence );\n\t#else\n\t\tvec3 Fr = specularColor;\n\t#endif\n\tvec3 FssEss = Fr * fab.x + specularF90 * fab.y;\n\tfloat Ess = fab.x + fab.y;\n\tfloat Ems = 1.0 - Ess;\n\tvec3 Favg = Fr + ( 1.0 - Fr ) * 0.047619;\tvec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg );\n\tsingleScatter += FssEss;\n\tmultiScatter += Fms * Ems;\n}\n#if NUM_RECT_AREA_LIGHTS > 0\n\tvoid RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\t\tvec3 normal = geometryNormal;\n\t\tvec3 viewDir = geometryViewDir;\n\t\tvec3 position = geometryPosition;\n\t\tvec3 lightPos = rectAreaLight.position;\n\t\tvec3 halfWidth = rectAreaLight.halfWidth;\n\t\tvec3 halfHeight = rectAreaLight.halfHeight;\n\t\tvec3 lightColor = rectAreaLight.color;\n\t\tfloat roughness = material.roughness;\n\t\tvec3 rectCoords[ 4 ];\n\t\trectCoords[ 0 ] = lightPos + halfWidth - halfHeight;\t\trectCoords[ 1 ] = lightPos - halfWidth - halfHeight;\n\t\trectCoords[ 2 ] = lightPos - halfWidth + halfHeight;\n\t\trectCoords[ 3 ] = lightPos + halfWidth + halfHeight;\n\t\tvec2 uv = LTC_Uv( normal, viewDir, roughness );\n\t\tvec4 t1 = texture2D( ltc_1, uv );\n\t\tvec4 t2 = texture2D( ltc_2, uv );\n\t\tmat3 mInv = mat3(\n\t\t\tvec3( t1.x, 0, t1.y ),\n\t\t\tvec3( 0, 1, 0 ),\n\t\t\tvec3( t1.z, 0, t1.w )\n\t\t);\n\t\tvec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );\n\t\treflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\n\t\treflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );\n\t}\n#endif\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometryNormal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNLcc = saturate( dot( geometryClearcoatNormal, directLight.direction ) );\n\t\tvec3 ccIrradiance = dotNLcc * directLight.color;\n\t\tclearcoatSpecularDirect += ccIrradiance * BRDF_GGX_Clearcoat( directLight.direction, geometryViewDir, geometryClearcoatNormal, material );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecularDirect += irradiance * BRDF_Sheen( directLight.direction, geometryViewDir, geometryNormal, material.sheenColor, material.sheenRoughness );\n\t#endif\n\treflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometryViewDir, geometryNormal, material );\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatSpecularIndirect += clearcoatRadiance * EnvironmentBRDF( geometryClearcoatNormal, geometryViewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecularIndirect += irradiance * material.sheenColor * IBLSheenBRDF( geometryNormal, geometryViewDir, material.sheenRoughness );\n\t#endif\n\tvec3 singleScattering = vec3( 0.0 );\n\tvec3 multiScattering = vec3( 0.0 );\n\tvec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;\n\t#ifdef USE_IRIDESCENCE\n\t\tcomputeMultiscatteringIridescence( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness, singleScattering, multiScattering );\n\t#else\n\t\tcomputeMultiscattering( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering );\n\t#endif\n\tvec3 totalScattering = singleScattering + multiScattering;\n\tvec3 diffuse = material.diffuseColor * ( 1.0 - max( max( totalScattering.r, totalScattering.g ), totalScattering.b ) );\n\treflectedLight.indirectSpecular += radiance * singleScattering;\n\treflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;\n\treflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;\n}\n#define RE_Direct\t\t\t\tRE_Direct_Physical\n#define RE_Direct_RectArea\t\tRE_Direct_RectArea_Physical\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Physical\n#define RE_IndirectSpecular\t\tRE_IndirectSpecular_Physical\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\n\treturn saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\n}",lights_fragment_begin:"\nvec3 geometryPosition = - vViewPosition;\nvec3 geometryNormal = normal;\nvec3 geometryViewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );\nvec3 geometryClearcoatNormal = vec3( 0.0 );\n#ifdef USE_CLEARCOAT\n\tgeometryClearcoatNormal = clearcoatNormal;\n#endif\n#ifdef USE_IRIDESCENCE\n\tfloat dotNVi = saturate( dot( normal, geometryViewDir ) );\n\tif ( material.iridescenceThickness == 0.0 ) {\n\t\tmaterial.iridescence = 0.0;\n\t} else {\n\t\tmaterial.iridescence = saturate( material.iridescence );\n\t}\n\tif ( material.iridescence > 0.0 ) {\n\t\tmaterial.iridescenceFresnel = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.specularColor );\n\t\tmaterial.iridescenceF0 = Schlick_to_F0( material.iridescenceFresnel, 1.0, dotNVi );\n\t}\n#endif\nIncidentLight directLight;\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\n\tPointLight pointLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tpointLight = pointLights[ i ];\n\t\tgetPointLightInfo( pointLight, geometryPosition, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS )\n\t\tpointLightShadow = pointLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\n\tSpotLight spotLight;\n\tvec4 spotColor;\n\tvec3 spotLightCoord;\n\tbool inSpotLightMap;\n\t#if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tspotLight = spotLights[ i ];\n\t\tgetSpotLightInfo( spotLight, geometryPosition, directLight );\n\t\t#if ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\n\t\t#define SPOT_LIGHT_MAP_INDEX UNROLLED_LOOP_INDEX\n\t\t#elif ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\t#define SPOT_LIGHT_MAP_INDEX NUM_SPOT_LIGHT_MAPS\n\t\t#else\n\t\t#define SPOT_LIGHT_MAP_INDEX ( UNROLLED_LOOP_INDEX - NUM_SPOT_LIGHT_SHADOWS + NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\n\t\t#endif\n\t\t#if ( SPOT_LIGHT_MAP_INDEX < NUM_SPOT_LIGHT_MAPS )\n\t\t\tspotLightCoord = vSpotLightCoord[ i ].xyz / vSpotLightCoord[ i ].w;\n\t\t\tinSpotLightMap = all( lessThan( abs( spotLightCoord * 2. - 1. ), vec3( 1.0 ) ) );\n\t\t\tspotColor = texture2D( spotLightMap[ SPOT_LIGHT_MAP_INDEX ], spotLightCoord.xy );\n\t\t\tdirectLight.color = inSpotLightMap ? directLight.color * spotColor.rgb : directLight.color;\n\t\t#endif\n\t\t#undef SPOT_LIGHT_MAP_INDEX\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\tspotLightShadow = spotLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )\n\tDirectionalLight directionalLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tdirectionalLight = directionalLights[ i ];\n\t\tgetDirectionalLightInfo( directionalLight, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )\n\t\tdirectionalLightShadow = directionalLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )\n\tRectAreaLight rectAreaLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {\n\t\trectAreaLight = rectAreaLights[ i ];\n\t\tRE_Direct_RectArea( rectAreaLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if defined( RE_IndirectDiffuse )\n\tvec3 iblIrradiance = vec3( 0.0 );\n\tvec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\n\t#if defined( USE_LIGHT_PROBES )\n\t\tirradiance += getLightProbeIrradiance( lightProbe, geometryNormal );\n\t#endif\n\t#if ( NUM_HEMI_LIGHTS > 0 )\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\n\t\t\tirradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometryNormal );\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n#endif\n#if defined( RE_IndirectSpecular )\n\tvec3 radiance = vec3( 0.0 );\n\tvec3 clearcoatRadiance = vec3( 0.0 );\n#endif",lights_fragment_maps:"#if defined( RE_IndirectDiffuse )\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n\t\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\n\t\tirradiance += lightMapIrradiance;\n\t#endif\n\t#if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV )\n\t\tiblIrradiance += getIBLIrradiance( geometryNormal );\n\t#endif\n#endif\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\n\t#ifdef USE_ANISOTROPY\n\t\tradiance += getIBLAnisotropyRadiance( geometryViewDir, geometryNormal, material.roughness, material.anisotropyB, material.anisotropy );\n\t#else\n\t\tradiance += getIBLRadiance( geometryViewDir, geometryNormal, material.roughness );\n\t#endif\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatRadiance += getIBLRadiance( geometryViewDir, geometryClearcoatNormal, material.clearcoatRoughness );\n\t#endif\n#endif",lights_fragment_end:"#if defined( RE_IndirectDiffuse )\n\tRE_IndirectDiffuse( irradiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n#endif\n#if defined( RE_IndirectSpecular )\n\tRE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n#endif",logdepthbuf_fragment:"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tgl_FragDepthEXT = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;\n#endif",logdepthbuf_pars_fragment:"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tuniform float logDepthBufFC;\n\tvarying float vFragDepth;\n\tvarying float vIsPerspective;\n#endif",logdepthbuf_pars_vertex:"#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvarying float vFragDepth;\n\t\tvarying float vIsPerspective;\n\t#else\n\t\tuniform float logDepthBufFC;\n\t#endif\n#endif",logdepthbuf_vertex:"#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvFragDepth = 1.0 + gl_Position.w;\n\t\tvIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) );\n\t#else\n\t\tif ( isPerspectiveMatrix( projectionMatrix ) ) {\n\t\t\tgl_Position.z = log2( max( EPSILON, gl_Position.w + 1.0 ) ) * logDepthBufFC - 1.0;\n\t\t\tgl_Position.z *= gl_Position.w;\n\t\t}\n\t#endif\n#endif",map_fragment:"#ifdef USE_MAP\n\tvec4 sampledDiffuseColor = texture2D( map, vMapUv );\n\t#ifdef DECODE_VIDEO_TEXTURE\n\t\tsampledDiffuseColor = vec4( mix( pow( sampledDiffuseColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), sampledDiffuseColor.rgb * 0.0773993808, vec3( lessThanEqual( sampledDiffuseColor.rgb, vec3( 0.04045 ) ) ) ), sampledDiffuseColor.w );\n\t\n\t#endif\n\tdiffuseColor *= sampledDiffuseColor;\n#endif",map_pars_fragment:"#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif",map_particle_fragment:"#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\t#if defined( USE_POINTS_UV )\n\t\tvec2 uv = vUv;\n\t#else\n\t\tvec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;\n\t#endif\n#endif\n#ifdef USE_MAP\n\tdiffuseColor *= texture2D( map, uv );\n#endif\n#ifdef USE_ALPHAMAP\n\tdiffuseColor.a *= texture2D( alphaMap, uv ).g;\n#endif",map_particle_pars_fragment:"#if defined( USE_POINTS_UV )\n\tvarying vec2 vUv;\n#else\n\t#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\t\tuniform mat3 uvTransform;\n\t#endif\n#endif\n#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif\n#ifdef USE_ALPHAMAP\n\tuniform sampler2D alphaMap;\n#endif",metalnessmap_fragment:"float metalnessFactor = metalness;\n#ifdef USE_METALNESSMAP\n\tvec4 texelMetalness = texture2D( metalnessMap, vMetalnessMapUv );\n\tmetalnessFactor *= texelMetalness.b;\n#endif",metalnessmap_pars_fragment:"#ifdef USE_METALNESSMAP\n\tuniform sampler2D metalnessMap;\n#endif",morphinstance_vertex:"#ifdef USE_INSTANCING_MORPH\n\tfloat morphTargetInfluences[MORPHTARGETS_COUNT];\n\tfloat morphTargetBaseInfluence = texelFetch( morphTexture, ivec2( 0, gl_InstanceID ), 0 ).r;\n\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\tmorphTargetInfluences[i] = texelFetch( morphTexture, ivec2( i + 1, gl_InstanceID ), 0 ).r;\n\t}\n#endif",morphcolor_vertex:"#if defined( USE_MORPHCOLORS ) && defined( MORPHTARGETS_TEXTURE )\n\tvColor *= morphTargetBaseInfluence;\n\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t#if defined( USE_COLOR_ALPHA )\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ) * morphTargetInfluences[ i ];\n\t\t#elif defined( USE_COLOR )\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ).rgb * morphTargetInfluences[ i ];\n\t\t#endif\n\t}\n#endif",morphnormal_vertex:"#ifdef USE_MORPHNORMALS\n\tobjectNormal *= morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1 ).xyz * morphTargetInfluences[ i ];\n\t\t}\n\t#else\n\t\tobjectNormal += morphNormal0 * morphTargetInfluences[ 0 ];\n\t\tobjectNormal += morphNormal1 * morphTargetInfluences[ 1 ];\n\t\tobjectNormal += morphNormal2 * morphTargetInfluences[ 2 ];\n\t\tobjectNormal += morphNormal3 * morphTargetInfluences[ 3 ];\n\t#endif\n#endif",morphtarget_pars_vertex:"#ifdef USE_MORPHTARGETS\n\t#ifndef USE_INSTANCING_MORPH\n\t\tuniform float morphTargetBaseInfluence;\n\t#endif\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\t#ifndef USE_INSTANCING_MORPH\n\t\t\tuniform float morphTargetInfluences[ MORPHTARGETS_COUNT ];\n\t\t#endif\n\t\tuniform sampler2DArray morphTargetsTexture;\n\t\tuniform ivec2 morphTargetsTextureSize;\n\t\tvec4 getMorph( const in int vertexIndex, const in int morphTargetIndex, const in int offset ) {\n\t\t\tint texelIndex = vertexIndex * MORPHTARGETS_TEXTURE_STRIDE + offset;\n\t\t\tint y = texelIndex / morphTargetsTextureSize.x;\n\t\t\tint x = texelIndex - y * morphTargetsTextureSize.x;\n\t\t\tivec3 morphUV = ivec3( x, y, morphTargetIndex );\n\t\t\treturn texelFetch( morphTargetsTexture, morphUV, 0 );\n\t\t}\n\t#else\n\t\t#ifndef USE_MORPHNORMALS\n\t\t\tuniform float morphTargetInfluences[ 8 ];\n\t\t#else\n\t\t\tuniform float morphTargetInfluences[ 4 ];\n\t\t#endif\n\t#endif\n#endif",morphtarget_vertex:"#ifdef USE_MORPHTARGETS\n\ttransformed *= morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0 ).xyz * morphTargetInfluences[ i ];\n\t\t}\n\t#else\n\t\ttransformed += morphTarget0 * morphTargetInfluences[ 0 ];\n\t\ttransformed += morphTarget1 * morphTargetInfluences[ 1 ];\n\t\ttransformed += morphTarget2 * morphTargetInfluences[ 2 ];\n\t\ttransformed += morphTarget3 * morphTargetInfluences[ 3 ];\n\t\t#ifndef USE_MORPHNORMALS\n\t\t\ttransformed += morphTarget4 * morphTargetInfluences[ 4 ];\n\t\t\ttransformed += morphTarget5 * morphTargetInfluences[ 5 ];\n\t\t\ttransformed += morphTarget6 * morphTargetInfluences[ 6 ];\n\t\t\ttransformed += morphTarget7 * morphTargetInfluences[ 7 ];\n\t\t#endif\n\t#endif\n#endif",normal_fragment_begin:"float faceDirection = gl_FrontFacing ? 1.0 : - 1.0;\n#ifdef FLAT_SHADED\n\tvec3 fdx = dFdx( vViewPosition );\n\tvec3 fdy = dFdy( vViewPosition );\n\tvec3 normal = normalize( cross( fdx, fdy ) );\n#else\n\tvec3 normal = normalize( vNormal );\n\t#ifdef DOUBLE_SIDED\n\t\tnormal *= faceDirection;\n\t#endif\n#endif\n#if defined( USE_NORMALMAP_TANGENTSPACE ) || defined( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY )\n\t#ifdef USE_TANGENT\n\t\tmat3 tbn = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\n\t#else\n\t\tmat3 tbn = getTangentFrame( - vViewPosition, normal,\n\t\t#if defined( USE_NORMALMAP )\n\t\t\tvNormalMapUv\n\t\t#elif defined( USE_CLEARCOAT_NORMALMAP )\n\t\t\tvClearcoatNormalMapUv\n\t\t#else\n\t\t\tvUv\n\t\t#endif\n\t\t);\n\t#endif\n\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\n\t\ttbn[0] *= faceDirection;\n\t\ttbn[1] *= faceDirection;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\t#ifdef USE_TANGENT\n\t\tmat3 tbn2 = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\n\t#else\n\t\tmat3 tbn2 = getTangentFrame( - vViewPosition, normal, vClearcoatNormalMapUv );\n\t#endif\n\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\n\t\ttbn2[0] *= faceDirection;\n\t\ttbn2[1] *= faceDirection;\n\t#endif\n#endif\nvec3 nonPerturbedNormal = normal;",normal_fragment_maps:"#ifdef USE_NORMALMAP_OBJECTSPACE\n\tnormal = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\n\t#ifdef FLIP_SIDED\n\t\tnormal = - normal;\n\t#endif\n\t#ifdef DOUBLE_SIDED\n\t\tnormal = normal * faceDirection;\n\t#endif\n\tnormal = normalize( normalMatrix * normal );\n#elif defined( USE_NORMALMAP_TANGENTSPACE )\n\tvec3 mapN = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\n\tmapN.xy *= normalScale;\n\tnormal = normalize( tbn * mapN );\n#elif defined( USE_BUMPMAP )\n\tnormal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection );\n#endif",normal_pars_fragment:"#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif",normal_pars_vertex:"#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif",normal_vertex:"#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n\t#ifdef USE_TANGENT\n\t\tvTangent = normalize( transformedTangent );\n\t\tvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\n\t#endif\n#endif",normalmap_pars_fragment:"#ifdef USE_NORMALMAP\n\tuniform sampler2D normalMap;\n\tuniform vec2 normalScale;\n#endif\n#ifdef USE_NORMALMAP_OBJECTSPACE\n\tuniform mat3 normalMatrix;\n#endif\n#if ! defined ( USE_TANGENT ) && ( defined ( USE_NORMALMAP_TANGENTSPACE ) || defined ( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) )\n\tmat3 getTangentFrame( vec3 eye_pos, vec3 surf_norm, vec2 uv ) {\n\t\tvec3 q0 = dFdx( eye_pos.xyz );\n\t\tvec3 q1 = dFdy( eye_pos.xyz );\n\t\tvec2 st0 = dFdx( uv.st );\n\t\tvec2 st1 = dFdy( uv.st );\n\t\tvec3 N = surf_norm;\n\t\tvec3 q1perp = cross( q1, N );\n\t\tvec3 q0perp = cross( N, q0 );\n\t\tvec3 T = q1perp * st0.x + q0perp * st1.x;\n\t\tvec3 B = q1perp * st0.y + q0perp * st1.y;\n\t\tfloat det = max( dot( T, T ), dot( B, B ) );\n\t\tfloat scale = ( det == 0.0 ) ? 0.0 : inversesqrt( det );\n\t\treturn mat3( T * scale, B * scale, N );\n\t}\n#endif",clearcoat_normal_fragment_begin:"#ifdef USE_CLEARCOAT\n\tvec3 clearcoatNormal = nonPerturbedNormal;\n#endif",clearcoat_normal_fragment_maps:"#ifdef USE_CLEARCOAT_NORMALMAP\n\tvec3 clearcoatMapN = texture2D( clearcoatNormalMap, vClearcoatNormalMapUv ).xyz * 2.0 - 1.0;\n\tclearcoatMapN.xy *= clearcoatNormalScale;\n\tclearcoatNormal = normalize( tbn2 * clearcoatMapN );\n#endif",clearcoat_pars_fragment:"#ifdef USE_CLEARCOATMAP\n\tuniform sampler2D clearcoatMap;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tuniform sampler2D clearcoatNormalMap;\n\tuniform vec2 clearcoatNormalScale;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tuniform sampler2D clearcoatRoughnessMap;\n#endif",iridescence_pars_fragment:"#ifdef USE_IRIDESCENCEMAP\n\tuniform sampler2D iridescenceMap;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tuniform sampler2D iridescenceThicknessMap;\n#endif",opaque_fragment:"#ifdef OPAQUE\ndiffuseColor.a = 1.0;\n#endif\n#ifdef USE_TRANSMISSION\ndiffuseColor.a *= material.transmissionAlpha;\n#endif\ngl_FragColor = vec4( outgoingLight, diffuseColor.a );",packing:"vec3 packNormalToRGB( const in vec3 normal ) {\n\treturn normalize( normal ) * 0.5 + 0.5;\n}\nvec3 unpackRGBToNormal( const in vec3 rgb ) {\n\treturn 2.0 * rgb.xyz - 1.0;\n}\nconst float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;\nconst vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );\nconst vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. );\nconst float ShiftRight8 = 1. / 256.;\nvec4 packDepthToRGBA( const in float v ) {\n\tvec4 r = vec4( fract( v * PackFactors ), v );\n\tr.yzw -= r.xyz * ShiftRight8;\treturn r * PackUpscale;\n}\nfloat unpackRGBAToDepth( const in vec4 v ) {\n\treturn dot( v, UnpackFactors );\n}\nvec2 packDepthToRG( in highp float v ) {\n\treturn packDepthToRGBA( v ).yx;\n}\nfloat unpackRGToDepth( const in highp vec2 v ) {\n\treturn unpackRGBAToDepth( vec4( v.xy, 0.0, 0.0 ) );\n}\nvec4 pack2HalfToRGBA( vec2 v ) {\n\tvec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ) );\n\treturn vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w );\n}\nvec2 unpackRGBATo2Half( vec4 v ) {\n\treturn vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) );\n}\nfloat viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn ( viewZ + near ) / ( near - far );\n}\nfloat orthographicDepthToViewZ( const in float depth, const in float near, const in float far ) {\n\treturn depth * ( near - far ) - near;\n}\nfloat viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn ( ( near + viewZ ) * far ) / ( ( far - near ) * viewZ );\n}\nfloat perspectiveDepthToViewZ( const in float depth, const in float near, const in float far ) {\n\treturn ( near * far ) / ( ( far - near ) * depth - far );\n}",premultiplied_alpha_fragment:"#ifdef PREMULTIPLIED_ALPHA\n\tgl_FragColor.rgb *= gl_FragColor.a;\n#endif",project_vertex:"vec4 mvPosition = vec4( transformed, 1.0 );\n#ifdef USE_BATCHING\n\tmvPosition = batchingMatrix * mvPosition;\n#endif\n#ifdef USE_INSTANCING\n\tmvPosition = instanceMatrix * mvPosition;\n#endif\nmvPosition = modelViewMatrix * mvPosition;\ngl_Position = projectionMatrix * mvPosition;",dithering_fragment:"#ifdef DITHERING\n\tgl_FragColor.rgb = dithering( gl_FragColor.rgb );\n#endif",dithering_pars_fragment:"#ifdef DITHERING\n\tvec3 dithering( vec3 color ) {\n\t\tfloat grid_position = rand( gl_FragCoord.xy );\n\t\tvec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 );\n\t\tdither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position );\n\t\treturn color + dither_shift_RGB;\n\t}\n#endif",roughnessmap_fragment:"float roughnessFactor = roughness;\n#ifdef USE_ROUGHNESSMAP\n\tvec4 texelRoughness = texture2D( roughnessMap, vRoughnessMapUv );\n\troughnessFactor *= texelRoughness.g;\n#endif",roughnessmap_pars_fragment:"#ifdef USE_ROUGHNESSMAP\n\tuniform sampler2D roughnessMap;\n#endif",shadowmap_pars_fragment:"#if NUM_SPOT_LIGHT_COORDS > 0\n\tvarying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\n#endif\n#if NUM_SPOT_LIGHT_MAPS > 0\n\tuniform sampler2D spotLightMap[ NUM_SPOT_LIGHT_MAPS ];\n#endif\n#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tstruct DirectionalLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ];\n\t\tstruct SpotLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tstruct PointLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t\tfloat shadowCameraNear;\n\t\t\tfloat shadowCameraFar;\n\t\t};\n\t\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n\t#endif\n\tfloat texture2DCompare( sampler2D depths, vec2 uv, float compare ) {\n\t\treturn step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) );\n\t}\n\tvec2 texture2DDistribution( sampler2D shadow, vec2 uv ) {\n\t\treturn unpackRGBATo2Half( texture2D( shadow, uv ) );\n\t}\n\tfloat VSMShadow (sampler2D shadow, vec2 uv, float compare ){\n\t\tfloat occlusion = 1.0;\n\t\tvec2 distribution = texture2DDistribution( shadow, uv );\n\t\tfloat hard_shadow = step( compare , distribution.x );\n\t\tif (hard_shadow != 1.0 ) {\n\t\t\tfloat distance = compare - distribution.x ;\n\t\t\tfloat variance = max( 0.00000, distribution.y * distribution.y );\n\t\t\tfloat softness_probability = variance / (variance + distance * distance );\t\t\tsoftness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 );\t\t\tocclusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 );\n\t\t}\n\t\treturn occlusion;\n\t}\n\tfloat getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) {\n\t\tfloat shadow = 1.0;\n\t\tshadowCoord.xyz /= shadowCoord.w;\n\t\tshadowCoord.z += shadowBias;\n\t\tbool inFrustum = shadowCoord.x >= 0.0 && shadowCoord.x <= 1.0 && shadowCoord.y >= 0.0 && shadowCoord.y <= 1.0;\n\t\tbool frustumTest = inFrustum && shadowCoord.z <= 1.0;\n\t\tif ( frustumTest ) {\n\t\t#if defined( SHADOWMAP_TYPE_PCF )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx0 = - texelSize.x * shadowRadius;\n\t\t\tfloat dy0 = - texelSize.y * shadowRadius;\n\t\t\tfloat dx1 = + texelSize.x * shadowRadius;\n\t\t\tfloat dy1 = + texelSize.y * shadowRadius;\n\t\t\tfloat dx2 = dx0 / 2.0;\n\t\t\tfloat dy2 = dy0 / 2.0;\n\t\t\tfloat dx3 = dx1 / 2.0;\n\t\t\tfloat dy3 = dy1 / 2.0;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\n\t\t\t) * ( 1.0 / 17.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_PCF_SOFT )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx = texelSize.x;\n\t\t\tfloat dy = texelSize.y;\n\t\t\tvec2 uv = shadowCoord.xy;\n\t\t\tvec2 f = fract( uv * shadowMapSize + 0.5 );\n\t\t\tuv -= f * texelSize;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, uv, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ),\n\t\t\t\t\t f.x ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ),\n\t\t\t\t\t f.x ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t f.y ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t f.y ) +\n\t\t\t\tmix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t\t f.x ),\n\t\t\t\t\t mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t\t f.x ),\n\t\t\t\t\t f.y )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_VSM )\n\t\t\tshadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#else\n\t\t\tshadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#endif\n\t\t}\n\t\treturn shadow;\n\t}\n\tvec2 cubeToUV( vec3 v, float texelSizeY ) {\n\t\tvec3 absV = abs( v );\n\t\tfloat scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) );\n\t\tabsV *= scaleToCube;\n\t\tv *= scaleToCube * ( 1.0 - 2.0 * texelSizeY );\n\t\tvec2 planar = v.xy;\n\t\tfloat almostATexel = 1.5 * texelSizeY;\n\t\tfloat almostOne = 1.0 - almostATexel;\n\t\tif ( absV.z >= almostOne ) {\n\t\t\tif ( v.z > 0.0 )\n\t\t\t\tplanar.x = 4.0 - v.x;\n\t\t} else if ( absV.x >= almostOne ) {\n\t\t\tfloat signX = sign( v.x );\n\t\t\tplanar.x = v.z * signX + 2.0 * signX;\n\t\t} else if ( absV.y >= almostOne ) {\n\t\t\tfloat signY = sign( v.y );\n\t\t\tplanar.x = v.x + 2.0 * signY + 2.0;\n\t\t\tplanar.y = v.z * signY - 2.0;\n\t\t}\n\t\treturn vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 );\n\t}\n\tfloat getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) {\n\t\tvec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );\n\t\tvec3 lightToPosition = shadowCoord.xyz;\n\t\tfloat dp = ( length( lightToPosition ) - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear );\t\tdp += shadowBias;\n\t\tvec3 bd3D = normalize( lightToPosition );\n\t\t#if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM )\n\t\t\tvec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;\n\t\t\treturn (\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#else\n\t\t\treturn texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );\n\t\t#endif\n\t}\n#endif",shadowmap_pars_vertex:"#if NUM_SPOT_LIGHT_COORDS > 0\n\tuniform mat4 spotLightMatrix[ NUM_SPOT_LIGHT_COORDS ];\n\tvarying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\n#endif\n#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\tuniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tstruct DirectionalLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tstruct SpotLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\tuniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tstruct PointLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t\tfloat shadowCameraNear;\n\t\t\tfloat shadowCameraFar;\n\t\t};\n\t\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n\t#endif\n#endif",shadowmap_vertex:"#if ( defined( USE_SHADOWMAP ) && ( NUM_DIR_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0 ) ) || ( NUM_SPOT_LIGHT_COORDS > 0 )\n\tvec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\tvec4 shadowWorldPosition;\n#endif\n#if defined( USE_SHADOWMAP )\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 );\n\t\t\tvDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 );\n\t\t\tvPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n#endif\n#if NUM_SPOT_LIGHT_COORDS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_COORDS; i ++ ) {\n\t\tshadowWorldPosition = worldPosition;\n\t\t#if ( defined( USE_SHADOWMAP ) && UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\t\tshadowWorldPosition.xyz += shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias;\n\t\t#endif\n\t\tvSpotLightCoord[ i ] = spotLightMatrix[ i ] * shadowWorldPosition;\n\t}\n\t#pragma unroll_loop_end\n#endif",shadowmask_pars_fragment:"float getShadowMask() {\n\tfloat shadow = 1.0;\n\t#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\tdirectionalLight = directionalLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\n\t\tspotLight = spotLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\tpointLight = pointLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#endif\n\treturn shadow;\n}",skinbase_vertex:"#ifdef USE_SKINNING\n\tmat4 boneMatX = getBoneMatrix( skinIndex.x );\n\tmat4 boneMatY = getBoneMatrix( skinIndex.y );\n\tmat4 boneMatZ = getBoneMatrix( skinIndex.z );\n\tmat4 boneMatW = getBoneMatrix( skinIndex.w );\n#endif",skinning_pars_vertex:"#ifdef USE_SKINNING\n\tuniform mat4 bindMatrix;\n\tuniform mat4 bindMatrixInverse;\n\tuniform highp sampler2D boneTexture;\n\tmat4 getBoneMatrix( const in float i ) {\n\t\tint size = textureSize( boneTexture, 0 ).x;\n\t\tint j = int( i ) * 4;\n\t\tint x = j % size;\n\t\tint y = j / size;\n\t\tvec4 v1 = texelFetch( boneTexture, ivec2( x, y ), 0 );\n\t\tvec4 v2 = texelFetch( boneTexture, ivec2( x + 1, y ), 0 );\n\t\tvec4 v3 = texelFetch( boneTexture, ivec2( x + 2, y ), 0 );\n\t\tvec4 v4 = texelFetch( boneTexture, ivec2( x + 3, y ), 0 );\n\t\treturn mat4( v1, v2, v3, v4 );\n\t}\n#endif",skinning_vertex:"#ifdef USE_SKINNING\n\tvec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );\n\tvec4 skinned = vec4( 0.0 );\n\tskinned += boneMatX * skinVertex * skinWeight.x;\n\tskinned += boneMatY * skinVertex * skinWeight.y;\n\tskinned += boneMatZ * skinVertex * skinWeight.z;\n\tskinned += boneMatW * skinVertex * skinWeight.w;\n\ttransformed = ( bindMatrixInverse * skinned ).xyz;\n#endif",skinnormal_vertex:"#ifdef USE_SKINNING\n\tmat4 skinMatrix = mat4( 0.0 );\n\tskinMatrix += skinWeight.x * boneMatX;\n\tskinMatrix += skinWeight.y * boneMatY;\n\tskinMatrix += skinWeight.z * boneMatZ;\n\tskinMatrix += skinWeight.w * boneMatW;\n\tskinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;\n\tobjectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;\n\t#ifdef USE_TANGENT\n\t\tobjectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz;\n\t#endif\n#endif",specularmap_fragment:"float specularStrength;\n#ifdef USE_SPECULARMAP\n\tvec4 texelSpecular = texture2D( specularMap, vSpecularMapUv );\n\tspecularStrength = texelSpecular.r;\n#else\n\tspecularStrength = 1.0;\n#endif",specularmap_pars_fragment:"#ifdef USE_SPECULARMAP\n\tuniform sampler2D specularMap;\n#endif",tonemapping_fragment:"#if defined( TONE_MAPPING )\n\tgl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\n#endif",tonemapping_pars_fragment:"#ifndef saturate\n#define saturate( a ) clamp( a, 0.0, 1.0 )\n#endif\nuniform float toneMappingExposure;\nvec3 LinearToneMapping( vec3 color ) {\n\treturn saturate( toneMappingExposure * color );\n}\nvec3 ReinhardToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\treturn saturate( color / ( vec3( 1.0 ) + color ) );\n}\nvec3 OptimizedCineonToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\tcolor = max( vec3( 0.0 ), color - 0.004 );\n\treturn pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );\n}\nvec3 RRTAndODTFit( vec3 v ) {\n\tvec3 a = v * ( v + 0.0245786 ) - 0.000090537;\n\tvec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081;\n\treturn a / b;\n}\nvec3 ACESFilmicToneMapping( vec3 color ) {\n\tconst mat3 ACESInputMat = mat3(\n\t\tvec3( 0.59719, 0.07600, 0.02840 ),\t\tvec3( 0.35458, 0.90834, 0.13383 ),\n\t\tvec3( 0.04823, 0.01566, 0.83777 )\n\t);\n\tconst mat3 ACESOutputMat = mat3(\n\t\tvec3( 1.60475, -0.10208, -0.00327 ),\t\tvec3( -0.53108, 1.10813, -0.07276 ),\n\t\tvec3( -0.07367, -0.00605, 1.07602 )\n\t);\n\tcolor *= toneMappingExposure / 0.6;\n\tcolor = ACESInputMat * color;\n\tcolor = RRTAndODTFit( color );\n\tcolor = ACESOutputMat * color;\n\treturn saturate( color );\n}\nconst mat3 LINEAR_REC2020_TO_LINEAR_SRGB = mat3(\n\tvec3( 1.6605, - 0.1246, - 0.0182 ),\n\tvec3( - 0.5876, 1.1329, - 0.1006 ),\n\tvec3( - 0.0728, - 0.0083, 1.1187 )\n);\nconst mat3 LINEAR_SRGB_TO_LINEAR_REC2020 = mat3(\n\tvec3( 0.6274, 0.0691, 0.0164 ),\n\tvec3( 0.3293, 0.9195, 0.0880 ),\n\tvec3( 0.0433, 0.0113, 0.8956 )\n);\nvec3 agxDefaultContrastApprox( vec3 x ) {\n\tvec3 x2 = x * x;\n\tvec3 x4 = x2 * x2;\n\treturn + 15.5 * x4 * x2\n\t\t- 40.14 * x4 * x\n\t\t+ 31.96 * x4\n\t\t- 6.868 * x2 * x\n\t\t+ 0.4298 * x2\n\t\t+ 0.1191 * x\n\t\t- 0.00232;\n}\nvec3 AgXToneMapping( vec3 color ) {\n\tconst mat3 AgXInsetMatrix = mat3(\n\t\tvec3( 0.856627153315983, 0.137318972929847, 0.11189821299995 ),\n\t\tvec3( 0.0951212405381588, 0.761241990602591, 0.0767994186031903 ),\n\t\tvec3( 0.0482516061458583, 0.101439036467562, 0.811302368396859 )\n\t);\n\tconst mat3 AgXOutsetMatrix = mat3(\n\t\tvec3( 1.1271005818144368, - 0.1413297634984383, - 0.14132976349843826 ),\n\t\tvec3( - 0.11060664309660323, 1.157823702216272, - 0.11060664309660294 ),\n\t\tvec3( - 0.016493938717834573, - 0.016493938717834257, 1.2519364065950405 )\n\t);\n\tconst float AgxMinEv = - 12.47393;\tconst float AgxMaxEv = 4.026069;\n\tcolor *= toneMappingExposure;\n\tcolor = LINEAR_SRGB_TO_LINEAR_REC2020 * color;\n\tcolor = AgXInsetMatrix * color;\n\tcolor = max( color, 1e-10 );\tcolor = log2( color );\n\tcolor = ( color - AgxMinEv ) / ( AgxMaxEv - AgxMinEv );\n\tcolor = clamp( color, 0.0, 1.0 );\n\tcolor = agxDefaultContrastApprox( color );\n\tcolor = AgXOutsetMatrix * color;\n\tcolor = pow( max( vec3( 0.0 ), color ), vec3( 2.2 ) );\n\tcolor = LINEAR_REC2020_TO_LINEAR_SRGB * color;\n\tcolor = clamp( color, 0.0, 1.0 );\n\treturn color;\n}\nvec3 NeutralToneMapping( vec3 color ) {\n\tfloat startCompression = 0.8 - 0.04;\n\tfloat desaturation = 0.15;\n\tcolor *= toneMappingExposure;\n\tfloat x = min(color.r, min(color.g, color.b));\n\tfloat offset = x < 0.08 ? x - 6.25 * x * x : 0.04;\n\tcolor -= offset;\n\tfloat peak = max(color.r, max(color.g, color.b));\n\tif (peak < startCompression) return color;\n\tfloat d = 1. - startCompression;\n\tfloat newPeak = 1. - d * d / (peak + d - startCompression);\n\tcolor *= newPeak / peak;\n\tfloat g = 1. - 1. / (desaturation * (peak - newPeak) + 1.);\n\treturn mix(color, vec3(1, 1, 1), g);\n}\nvec3 CustomToneMapping( vec3 color ) { return color; }",transmission_fragment:"#ifdef USE_TRANSMISSION\n\tmaterial.transmission = transmission;\n\tmaterial.transmissionAlpha = 1.0;\n\tmaterial.thickness = thickness;\n\tmaterial.attenuationDistance = attenuationDistance;\n\tmaterial.attenuationColor = attenuationColor;\n\t#ifdef USE_TRANSMISSIONMAP\n\t\tmaterial.transmission *= texture2D( transmissionMap, vTransmissionMapUv ).r;\n\t#endif\n\t#ifdef USE_THICKNESSMAP\n\t\tmaterial.thickness *= texture2D( thicknessMap, vThicknessMapUv ).g;\n\t#endif\n\tvec3 pos = vWorldPosition;\n\tvec3 v = normalize( cameraPosition - pos );\n\tvec3 n = inverseTransformDirection( normal, viewMatrix );\n\tvec4 transmitted = getIBLVolumeRefraction(\n\t\tn, v, material.roughness, material.diffuseColor, material.specularColor, material.specularF90,\n\t\tpos, modelMatrix, viewMatrix, projectionMatrix, material.ior, material.thickness,\n\t\tmaterial.attenuationColor, material.attenuationDistance );\n\tmaterial.transmissionAlpha = mix( material.transmissionAlpha, transmitted.a, material.transmission );\n\ttotalDiffuse = mix( totalDiffuse, transmitted.rgb, material.transmission );\n#endif",transmission_pars_fragment:"#ifdef USE_TRANSMISSION\n\tuniform float transmission;\n\tuniform float thickness;\n\tuniform float attenuationDistance;\n\tuniform vec3 attenuationColor;\n\t#ifdef USE_TRANSMISSIONMAP\n\t\tuniform sampler2D transmissionMap;\n\t#endif\n\t#ifdef USE_THICKNESSMAP\n\t\tuniform sampler2D thicknessMap;\n\t#endif\n\tuniform vec2 transmissionSamplerSize;\n\tuniform sampler2D transmissionSamplerMap;\n\tuniform mat4 modelMatrix;\n\tuniform mat4 projectionMatrix;\n\tvarying vec3 vWorldPosition;\n\tfloat w0( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * ( a * ( - a + 3.0 ) - 3.0 ) + 1.0 );\n\t}\n\tfloat w1( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * a * ( 3.0 * a - 6.0 ) + 4.0 );\n\t}\n\tfloat w2( float a ){\n\t\treturn ( 1.0 / 6.0 ) * ( a * ( a * ( - 3.0 * a + 3.0 ) + 3.0 ) + 1.0 );\n\t}\n\tfloat w3( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * a * a );\n\t}\n\tfloat g0( float a ) {\n\t\treturn w0( a ) + w1( a );\n\t}\n\tfloat g1( float a ) {\n\t\treturn w2( a ) + w3( a );\n\t}\n\tfloat h0( float a ) {\n\t\treturn - 1.0 + w1( a ) / ( w0( a ) + w1( a ) );\n\t}\n\tfloat h1( float a ) {\n\t\treturn 1.0 + w3( a ) / ( w2( a ) + w3( a ) );\n\t}\n\tvec4 bicubic( sampler2D tex, vec2 uv, vec4 texelSize, float lod ) {\n\t\tuv = uv * texelSize.zw + 0.5;\n\t\tvec2 iuv = floor( uv );\n\t\tvec2 fuv = fract( uv );\n\t\tfloat g0x = g0( fuv.x );\n\t\tfloat g1x = g1( fuv.x );\n\t\tfloat h0x = h0( fuv.x );\n\t\tfloat h1x = h1( fuv.x );\n\t\tfloat h0y = h0( fuv.y );\n\t\tfloat h1y = h1( fuv.y );\n\t\tvec2 p0 = ( vec2( iuv.x + h0x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p1 = ( vec2( iuv.x + h1x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p2 = ( vec2( iuv.x + h0x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p3 = ( vec2( iuv.x + h1x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\n\t\treturn g0( fuv.y ) * ( g0x * textureLod( tex, p0, lod ) + g1x * textureLod( tex, p1, lod ) ) +\n\t\t\tg1( fuv.y ) * ( g0x * textureLod( tex, p2, lod ) + g1x * textureLod( tex, p3, lod ) );\n\t}\n\tvec4 textureBicubic( sampler2D sampler, vec2 uv, float lod ) {\n\t\tvec2 fLodSize = vec2( textureSize( sampler, int( lod ) ) );\n\t\tvec2 cLodSize = vec2( textureSize( sampler, int( lod + 1.0 ) ) );\n\t\tvec2 fLodSizeInv = 1.0 / fLodSize;\n\t\tvec2 cLodSizeInv = 1.0 / cLodSize;\n\t\tvec4 fSample = bicubic( sampler, uv, vec4( fLodSizeInv, fLodSize ), floor( lod ) );\n\t\tvec4 cSample = bicubic( sampler, uv, vec4( cLodSizeInv, cLodSize ), ceil( lod ) );\n\t\treturn mix( fSample, cSample, fract( lod ) );\n\t}\n\tvec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) {\n\t\tvec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior );\n\t\tvec3 modelScale;\n\t\tmodelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) );\n\t\tmodelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) );\n\t\tmodelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) );\n\t\treturn normalize( refractionVector ) * thickness * modelScale;\n\t}\n\tfloat applyIorToRoughness( const in float roughness, const in float ior ) {\n\t\treturn roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 );\n\t}\n\tvec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) {\n\t\tfloat lod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior );\n\t\treturn textureBicubic( transmissionSamplerMap, fragCoord.xy, lod );\n\t}\n\tvec3 volumeAttenuation( const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) {\n\t\tif ( isinf( attenuationDistance ) ) {\n\t\t\treturn vec3( 1.0 );\n\t\t} else {\n\t\t\tvec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance;\n\t\t\tvec3 transmittance = exp( - attenuationCoefficient * transmissionDistance );\t\t\treturn transmittance;\n\t\t}\n\t}\n\tvec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor,\n\t\tconst in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix,\n\t\tconst in mat4 viewMatrix, const in mat4 projMatrix, const in float ior, const in float thickness,\n\t\tconst in vec3 attenuationColor, const in float attenuationDistance ) {\n\t\tvec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix );\n\t\tvec3 refractedRayExit = position + transmissionRay;\n\t\tvec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );\n\t\tvec2 refractionCoords = ndcPos.xy / ndcPos.w;\n\t\trefractionCoords += 1.0;\n\t\trefractionCoords /= 2.0;\n\t\tvec4 transmittedLight = getTransmissionSample( refractionCoords, roughness, ior );\n\t\tvec3 transmittance = diffuseColor * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance );\n\t\tvec3 attenuatedColor = transmittance * transmittedLight.rgb;\n\t\tvec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness );\n\t\tfloat transmittanceFactor = ( transmittance.r + transmittance.g + transmittance.b ) / 3.0;\n\t\treturn vec4( ( 1.0 - F ) * attenuatedColor, 1.0 - ( 1.0 - transmittedLight.a ) * transmittanceFactor );\n\t}\n#endif",uv_pars_fragment:"#if defined( USE_UV ) || defined( USE_ANISOTROPY )\n\tvarying vec2 vUv;\n#endif\n#ifdef USE_MAP\n\tvarying vec2 vMapUv;\n#endif\n#ifdef USE_ALPHAMAP\n\tvarying vec2 vAlphaMapUv;\n#endif\n#ifdef USE_LIGHTMAP\n\tvarying vec2 vLightMapUv;\n#endif\n#ifdef USE_AOMAP\n\tvarying vec2 vAoMapUv;\n#endif\n#ifdef USE_BUMPMAP\n\tvarying vec2 vBumpMapUv;\n#endif\n#ifdef USE_NORMALMAP\n\tvarying vec2 vNormalMapUv;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tvarying vec2 vEmissiveMapUv;\n#endif\n#ifdef USE_METALNESSMAP\n\tvarying vec2 vMetalnessMapUv;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tvarying vec2 vRoughnessMapUv;\n#endif\n#ifdef USE_ANISOTROPYMAP\n\tvarying vec2 vAnisotropyMapUv;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tvarying vec2 vClearcoatMapUv;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tvarying vec2 vClearcoatNormalMapUv;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tvarying vec2 vClearcoatRoughnessMapUv;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tvarying vec2 vIridescenceMapUv;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tvarying vec2 vIridescenceThicknessMapUv;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tvarying vec2 vSheenColorMapUv;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tvarying vec2 vSheenRoughnessMapUv;\n#endif\n#ifdef USE_SPECULARMAP\n\tvarying vec2 vSpecularMapUv;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tvarying vec2 vSpecularColorMapUv;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tvarying vec2 vSpecularIntensityMapUv;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tuniform mat3 transmissionMapTransform;\n\tvarying vec2 vTransmissionMapUv;\n#endif\n#ifdef USE_THICKNESSMAP\n\tuniform mat3 thicknessMapTransform;\n\tvarying vec2 vThicknessMapUv;\n#endif",uv_pars_vertex:"#if defined( USE_UV ) || defined( USE_ANISOTROPY )\n\tvarying vec2 vUv;\n#endif\n#ifdef USE_MAP\n\tuniform mat3 mapTransform;\n\tvarying vec2 vMapUv;\n#endif\n#ifdef USE_ALPHAMAP\n\tuniform mat3 alphaMapTransform;\n\tvarying vec2 vAlphaMapUv;\n#endif\n#ifdef USE_LIGHTMAP\n\tuniform mat3 lightMapTransform;\n\tvarying vec2 vLightMapUv;\n#endif\n#ifdef USE_AOMAP\n\tuniform mat3 aoMapTransform;\n\tvarying vec2 vAoMapUv;\n#endif\n#ifdef USE_BUMPMAP\n\tuniform mat3 bumpMapTransform;\n\tvarying vec2 vBumpMapUv;\n#endif\n#ifdef USE_NORMALMAP\n\tuniform mat3 normalMapTransform;\n\tvarying vec2 vNormalMapUv;\n#endif\n#ifdef USE_DISPLACEMENTMAP\n\tuniform mat3 displacementMapTransform;\n\tvarying vec2 vDisplacementMapUv;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tuniform mat3 emissiveMapTransform;\n\tvarying vec2 vEmissiveMapUv;\n#endif\n#ifdef USE_METALNESSMAP\n\tuniform mat3 metalnessMapTransform;\n\tvarying vec2 vMetalnessMapUv;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tuniform mat3 roughnessMapTransform;\n\tvarying vec2 vRoughnessMapUv;\n#endif\n#ifdef USE_ANISOTROPYMAP\n\tuniform mat3 anisotropyMapTransform;\n\tvarying vec2 vAnisotropyMapUv;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tuniform mat3 clearcoatMapTransform;\n\tvarying vec2 vClearcoatMapUv;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tuniform mat3 clearcoatNormalMapTransform;\n\tvarying vec2 vClearcoatNormalMapUv;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tuniform mat3 clearcoatRoughnessMapTransform;\n\tvarying vec2 vClearcoatRoughnessMapUv;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tuniform mat3 sheenColorMapTransform;\n\tvarying vec2 vSheenColorMapUv;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tuniform mat3 sheenRoughnessMapTransform;\n\tvarying vec2 vSheenRoughnessMapUv;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tuniform mat3 iridescenceMapTransform;\n\tvarying vec2 vIridescenceMapUv;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tuniform mat3 iridescenceThicknessMapTransform;\n\tvarying vec2 vIridescenceThicknessMapUv;\n#endif\n#ifdef USE_SPECULARMAP\n\tuniform mat3 specularMapTransform;\n\tvarying vec2 vSpecularMapUv;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tuniform mat3 specularColorMapTransform;\n\tvarying vec2 vSpecularColorMapUv;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tuniform mat3 specularIntensityMapTransform;\n\tvarying vec2 vSpecularIntensityMapUv;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tuniform mat3 transmissionMapTransform;\n\tvarying vec2 vTransmissionMapUv;\n#endif\n#ifdef USE_THICKNESSMAP\n\tuniform mat3 thicknessMapTransform;\n\tvarying vec2 vThicknessMapUv;\n#endif",uv_vertex:"#if defined( USE_UV ) || defined( USE_ANISOTROPY )\n\tvUv = vec3( uv, 1 ).xy;\n#endif\n#ifdef USE_MAP\n\tvMapUv = ( mapTransform * vec3( MAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ALPHAMAP\n\tvAlphaMapUv = ( alphaMapTransform * vec3( ALPHAMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_LIGHTMAP\n\tvLightMapUv = ( lightMapTransform * vec3( LIGHTMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_AOMAP\n\tvAoMapUv = ( aoMapTransform * vec3( AOMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_BUMPMAP\n\tvBumpMapUv = ( bumpMapTransform * vec3( BUMPMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_NORMALMAP\n\tvNormalMapUv = ( normalMapTransform * vec3( NORMALMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_DISPLACEMENTMAP\n\tvDisplacementMapUv = ( displacementMapTransform * vec3( DISPLACEMENTMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tvEmissiveMapUv = ( emissiveMapTransform * vec3( EMISSIVEMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_METALNESSMAP\n\tvMetalnessMapUv = ( metalnessMapTransform * vec3( METALNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tvRoughnessMapUv = ( roughnessMapTransform * vec3( ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ANISOTROPYMAP\n\tvAnisotropyMapUv = ( anisotropyMapTransform * vec3( ANISOTROPYMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tvClearcoatMapUv = ( clearcoatMapTransform * vec3( CLEARCOATMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tvClearcoatNormalMapUv = ( clearcoatNormalMapTransform * vec3( CLEARCOAT_NORMALMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tvClearcoatRoughnessMapUv = ( clearcoatRoughnessMapTransform * vec3( CLEARCOAT_ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tvIridescenceMapUv = ( iridescenceMapTransform * vec3( IRIDESCENCEMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tvIridescenceThicknessMapUv = ( iridescenceThicknessMapTransform * vec3( IRIDESCENCE_THICKNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tvSheenColorMapUv = ( sheenColorMapTransform * vec3( SHEEN_COLORMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tvSheenRoughnessMapUv = ( sheenRoughnessMapTransform * vec3( SHEEN_ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULARMAP\n\tvSpecularMapUv = ( specularMapTransform * vec3( SPECULARMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tvSpecularColorMapUv = ( specularColorMapTransform * vec3( SPECULAR_COLORMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tvSpecularIntensityMapUv = ( specularIntensityMapTransform * vec3( SPECULAR_INTENSITYMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tvTransmissionMapUv = ( transmissionMapTransform * vec3( TRANSMISSIONMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_THICKNESSMAP\n\tvThicknessMapUv = ( thicknessMapTransform * vec3( THICKNESSMAP_UV, 1 ) ).xy;\n#endif",worldpos_vertex:"#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION ) || NUM_SPOT_LIGHT_COORDS > 0\n\tvec4 worldPosition = vec4( transformed, 1.0 );\n\t#ifdef USE_BATCHING\n\t\tworldPosition = batchingMatrix * worldPosition;\n\t#endif\n\t#ifdef USE_INSTANCING\n\t\tworldPosition = instanceMatrix * worldPosition;\n\t#endif\n\tworldPosition = modelMatrix * worldPosition;\n#endif",background_vert:"varying vec2 vUv;\nuniform mat3 uvTransform;\nvoid main() {\n\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n\tgl_Position = vec4( position.xy, 1.0, 1.0 );\n}",background_frag:"uniform sampler2D t2D;\nuniform float backgroundIntensity;\nvarying vec2 vUv;\nvoid main() {\n\tvec4 texColor = texture2D( t2D, vUv );\n\t#ifdef DECODE_VIDEO_TEXTURE\n\t\ttexColor = vec4( mix( pow( texColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), texColor.rgb * 0.0773993808, vec3( lessThanEqual( texColor.rgb, vec3( 0.04045 ) ) ) ), texColor.w );\n\t#endif\n\ttexColor.rgb *= backgroundIntensity;\n\tgl_FragColor = texColor;\n\t#include \n\t#include \n}",backgroundCube_vert:"varying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n\tgl_Position.z = gl_Position.w;\n}",backgroundCube_frag:"#ifdef ENVMAP_TYPE_CUBE\n\tuniform samplerCube envMap;\n#elif defined( ENVMAP_TYPE_CUBE_UV )\n\tuniform sampler2D envMap;\n#endif\nuniform float flipEnvMap;\nuniform float backgroundBlurriness;\nuniform float backgroundIntensity;\nuniform mat3 backgroundRotation;\nvarying vec3 vWorldDirection;\n#include \nvoid main() {\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tvec4 texColor = textureCube( envMap, backgroundRotation * vec3( flipEnvMap * vWorldDirection.x, vWorldDirection.yz ) );\n\t#elif defined( ENVMAP_TYPE_CUBE_UV )\n\t\tvec4 texColor = textureCubeUV( envMap, backgroundRotation * vWorldDirection, backgroundBlurriness );\n\t#else\n\t\tvec4 texColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\t#endif\n\ttexColor.rgb *= backgroundIntensity;\n\tgl_FragColor = texColor;\n\t#include \n\t#include \n}",cube_vert:"varying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n\tgl_Position.z = gl_Position.w;\n}",cube_frag:"uniform samplerCube tCube;\nuniform float tFlip;\nuniform float opacity;\nvarying vec3 vWorldDirection;\nvoid main() {\n\tvec4 texColor = textureCube( tCube, vec3( tFlip * vWorldDirection.x, vWorldDirection.yz ) );\n\tgl_FragColor = texColor;\n\tgl_FragColor.a *= opacity;\n\t#include \n\t#include \n}",depth_vert:"#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvHighPrecisionZW = gl_Position.zw;\n}",depth_frag:"#if DEPTH_PACKING == 3200\n\tuniform float opacity;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\tvec4 diffuseColor = vec4( 1.0 );\n\t#include \n\t#if DEPTH_PACKING == 3200\n\t\tdiffuseColor.a = opacity;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tfloat fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;\n\t#if DEPTH_PACKING == 3200\n\t\tgl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );\n\t#elif DEPTH_PACKING == 3201\n\t\tgl_FragColor = packDepthToRGBA( fragCoordZ );\n\t#endif\n}",distanceRGBA_vert:"#define DISTANCE\nvarying vec3 vWorldPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvWorldPosition = worldPosition.xyz;\n}",distanceRGBA_frag:"#define DISTANCE\nuniform vec3 referencePosition;\nuniform float nearDistance;\nuniform float farDistance;\nvarying vec3 vWorldPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main () {\n\tvec4 diffuseColor = vec4( 1.0 );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tfloat dist = length( vWorldPosition - referencePosition );\n\tdist = ( dist - nearDistance ) / ( farDistance - nearDistance );\n\tdist = saturate( dist );\n\tgl_FragColor = packDepthToRGBA( dist );\n}",equirect_vert:"varying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n}",equirect_frag:"uniform sampler2D tEquirect;\nvarying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvec3 direction = normalize( vWorldDirection );\n\tvec2 sampleUV = equirectUv( direction );\n\tgl_FragColor = texture2D( tEquirect, sampleUV );\n\t#include \n\t#include \n}",linedashed_vert:"uniform float scale;\nattribute float lineDistance;\nvarying float vLineDistance;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\tvLineDistance = scale * lineDistance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",linedashed_frag:"uniform vec3 diffuse;\nuniform float opacity;\nuniform float dashSize;\nuniform float totalSize;\nvarying float vLineDistance;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\tif ( mod( vLineDistance, totalSize ) > dashSize ) {\n\t\tdiscard;\n\t}\n\tvec3 outgoingLight = vec3( 0.0 );\n\t#include \n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshbasic_vert:"#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#if defined ( USE_ENVMAP ) || defined ( USE_SKINNING )\n\t\t#include \n\t\t#include \n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshbasic_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n\t\treflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity * RECIPROCAL_PI;\n\t#else\n\t\treflectedLight.indirectDiffuse += vec3( 1.0 );\n\t#endif\n\t#include \n\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\n\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshlambert_vert:"#define LAMBERT\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n\t#include \n}",meshlambert_frag:"#define LAMBERT\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshmatcap_vert:"#define MATCAP\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n}",meshmatcap_frag:"#define MATCAP\nuniform vec3 diffuse;\nuniform float opacity;\nuniform sampler2D matcap;\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 viewDir = normalize( vViewPosition );\n\tvec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) );\n\tvec3 y = cross( viewDir, x );\n\tvec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5;\n\t#ifdef USE_MATCAP\n\t\tvec4 matcapColor = texture2D( matcap, uv );\n\t#else\n\t\tvec4 matcapColor = vec4( vec3( mix( 0.2, 0.8, uv.y ) ), 1.0 );\n\t#endif\n\tvec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshnormal_vert:"#define NORMAL\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\n\tvarying vec3 vViewPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\n\tvViewPosition = - mvPosition.xyz;\n#endif\n}",meshnormal_frag:"#define NORMAL\nuniform float opacity;\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\n\tvarying vec3 vViewPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\tvec4 diffuseColor = vec4( 0.0, 0.0, 0.0, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\tgl_FragColor = vec4( packNormalToRGB( normal ), diffuseColor.a );\n\t#ifdef OPAQUE\n\t\tgl_FragColor.a = 1.0;\n\t#endif\n}",meshphong_vert:"#define PHONG\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n\t#include \n}",meshphong_frag:"#define PHONG\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform vec3 specular;\nuniform float shininess;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshphysical_vert:"#define STANDARD\nvarying vec3 vViewPosition;\n#ifdef USE_TRANSMISSION\n\tvarying vec3 vWorldPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n#ifdef USE_TRANSMISSION\n\tvWorldPosition = worldPosition.xyz;\n#endif\n}",meshphysical_frag:"#define STANDARD\n#ifdef PHYSICAL\n\t#define IOR\n\t#define USE_SPECULAR\n#endif\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float roughness;\nuniform float metalness;\nuniform float opacity;\n#ifdef IOR\n\tuniform float ior;\n#endif\n#ifdef USE_SPECULAR\n\tuniform float specularIntensity;\n\tuniform vec3 specularColor;\n\t#ifdef USE_SPECULAR_COLORMAP\n\t\tuniform sampler2D specularColorMap;\n\t#endif\n\t#ifdef USE_SPECULAR_INTENSITYMAP\n\t\tuniform sampler2D specularIntensityMap;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT\n\tuniform float clearcoat;\n\tuniform float clearcoatRoughness;\n#endif\n#ifdef USE_IRIDESCENCE\n\tuniform float iridescence;\n\tuniform float iridescenceIOR;\n\tuniform float iridescenceThicknessMinimum;\n\tuniform float iridescenceThicknessMaximum;\n#endif\n#ifdef USE_SHEEN\n\tuniform vec3 sheenColor;\n\tuniform float sheenRoughness;\n\t#ifdef USE_SHEEN_COLORMAP\n\t\tuniform sampler2D sheenColorMap;\n\t#endif\n\t#ifdef USE_SHEEN_ROUGHNESSMAP\n\t\tuniform sampler2D sheenRoughnessMap;\n\t#endif\n#endif\n#ifdef USE_ANISOTROPY\n\tuniform vec2 anisotropyVector;\n\t#ifdef USE_ANISOTROPYMAP\n\t\tuniform sampler2D anisotropyMap;\n\t#endif\n#endif\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;\n\tvec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;\n\t#include \n\tvec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;\n\t#ifdef USE_SHEEN\n\t\tfloat sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor );\n\t\toutgoingLight = outgoingLight * sheenEnergyComp + sheenSpecularDirect + sheenSpecularIndirect;\n\t#endif\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNVcc = saturate( dot( geometryClearcoatNormal, geometryViewDir ) );\n\t\tvec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );\n\t\toutgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + ( clearcoatSpecularDirect + clearcoatSpecularIndirect ) * material.clearcoat;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshtoon_vert:"#define TOON\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n}",meshtoon_frag:"#define TOON\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",points_vert:"uniform float size;\nuniform float scale;\n#include \n#include \n#include \n#include \n#include \n#include \n#ifdef USE_POINTS_UV\n\tvarying vec2 vUv;\n\tuniform mat3 uvTransform;\n#endif\nvoid main() {\n\t#ifdef USE_POINTS_UV\n\t\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tgl_PointSize = size;\n\t#ifdef USE_SIZEATTENUATION\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\n\t\tif ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z );\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n}",points_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\tvec3 outgoingLight = vec3( 0.0 );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",shadow_vert:"#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",shadow_frag:"uniform vec3 color;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tgl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) );\n\t#include \n\t#include \n\t#include \n}",sprite_vert:"uniform float rotation;\nuniform vec2 center;\n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );\n\tvec2 scale;\n\tscale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) );\n\tscale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) );\n\t#ifndef USE_SIZEATTENUATION\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\n\t\tif ( isPerspective ) scale *= - mvPosition.z;\n\t#endif\n\tvec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale;\n\tvec2 rotatedPosition;\n\trotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;\n\trotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;\n\tmvPosition.xy += rotatedPosition;\n\tgl_Position = projectionMatrix * mvPosition;\n\t#include \n\t#include \n\t#include \n}",sprite_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\tvec3 outgoingLight = vec3( 0.0 );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n}"},Ms={common:{diffuse:{value:new Cr(16777215)},opacity:{value:1},map:{value:null},mapTransform:{value:new Ta},alphaMap:{value:null},alphaMapTransform:{value:new Ta},alphaTest:{value:0}},specularmap:{specularMap:{value:null},specularMapTransform:{value:new Ta}},envmap:{envMap:{value:null},envMapRotation:{value:new Ta},flipEnvMap:{value:-1},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1},aoMapTransform:{value:new Ta}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1},lightMapTransform:{value:new Ta}},bumpmap:{bumpMap:{value:null},bumpMapTransform:{value:new Ta},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalMapTransform:{value:new Ta},normalScale:{value:new Qi(1,1)}},displacementmap:{displacementMap:{value:null},displacementMapTransform:{value:new Ta},displacementScale:{value:1},displacementBias:{value:0}},emissivemap:{emissiveMap:{value:null},emissiveMapTransform:{value:new Ta}},metalnessmap:{metalnessMap:{value:null},metalnessMapTransform:{value:new Ta}},roughnessmap:{roughnessMap:{value:null},roughnessMapTransform:{value:new Ta}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new Cr(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotLightMap:{value:[]},spotShadowMap:{value:[]},spotLightMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null}},points:{diffuse:{value:new Cr(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaMapTransform:{value:new Ta},alphaTest:{value:0},uvTransform:{value:new Ta}},sprite:{diffuse:{value:new Cr(16777215)},opacity:{value:1},center:{value:new Qi(.5,.5)},rotation:{value:0},map:{value:null},mapTransform:{value:new Ta},alphaMap:{value:null},alphaMapTransform:{value:new Ta},alphaTest:{value:0}}},E0={basic:{uniforms:Rf([Ms.common,Ms.specularmap,Ms.envmap,Ms.aomap,Ms.lightmap,Ms.fog]),vertexShader:xa.meshbasic_vert,fragmentShader:xa.meshbasic_frag},lambert:{uniforms:Rf([Ms.common,Ms.specularmap,Ms.envmap,Ms.aomap,Ms.lightmap,Ms.emissivemap,Ms.bumpmap,Ms.normalmap,Ms.displacementmap,Ms.fog,Ms.lights,{emissive:{value:new Cr(0)}}]),vertexShader:xa.meshlambert_vert,fragmentShader:xa.meshlambert_frag},phong:{uniforms:Rf([Ms.common,Ms.specularmap,Ms.envmap,Ms.aomap,Ms.lightmap,Ms.emissivemap,Ms.bumpmap,Ms.normalmap,Ms.displacementmap,Ms.fog,Ms.lights,{emissive:{value:new Cr(0)},specular:{value:new Cr(1118481)},shininess:{value:30}}]),vertexShader:xa.meshphong_vert,fragmentShader:xa.meshphong_frag},standard:{uniforms:Rf([Ms.common,Ms.envmap,Ms.aomap,Ms.lightmap,Ms.emissivemap,Ms.bumpmap,Ms.normalmap,Ms.displacementmap,Ms.roughnessmap,Ms.metalnessmap,Ms.fog,Ms.lights,{emissive:{value:new Cr(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:xa.meshphysical_vert,fragmentShader:xa.meshphysical_frag},toon:{uniforms:Rf([Ms.common,Ms.aomap,Ms.lightmap,Ms.emissivemap,Ms.bumpmap,Ms.normalmap,Ms.displacementmap,Ms.gradientmap,Ms.fog,Ms.lights,{emissive:{value:new Cr(0)}}]),vertexShader:xa.meshtoon_vert,fragmentShader:xa.meshtoon_frag},matcap:{uniforms:Rf([Ms.common,Ms.bumpmap,Ms.normalmap,Ms.displacementmap,Ms.fog,{matcap:{value:null}}]),vertexShader:xa.meshmatcap_vert,fragmentShader:xa.meshmatcap_frag},points:{uniforms:Rf([Ms.points,Ms.fog]),vertexShader:xa.points_vert,fragmentShader:xa.points_frag},dashed:{uniforms:Rf([Ms.common,Ms.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:xa.linedashed_vert,fragmentShader:xa.linedashed_frag},depth:{uniforms:Rf([Ms.common,Ms.displacementmap]),vertexShader:xa.depth_vert,fragmentShader:xa.depth_frag},normal:{uniforms:Rf([Ms.common,Ms.bumpmap,Ms.normalmap,Ms.displacementmap,{opacity:{value:1}}]),vertexShader:xa.meshnormal_vert,fragmentShader:xa.meshnormal_frag},sprite:{uniforms:Rf([Ms.sprite,Ms.fog]),vertexShader:xa.sprite_vert,fragmentShader:xa.sprite_frag},background:{uniforms:{uvTransform:{value:new Ta},t2D:{value:null},backgroundIntensity:{value:1}},vertexShader:xa.background_vert,fragmentShader:xa.background_frag},backgroundCube:{uniforms:{envMap:{value:null},flipEnvMap:{value:-1},backgroundBlurriness:{value:0},backgroundIntensity:{value:1},backgroundRotation:{value:new Ta}},vertexShader:xa.backgroundCube_vert,fragmentShader:xa.backgroundCube_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:xa.cube_vert,fragmentShader:xa.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:xa.equirect_vert,fragmentShader:xa.equirect_frag},distanceRGBA:{uniforms:Rf([Ms.common,Ms.displacementmap,{referencePosition:{value:new It},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:xa.distanceRGBA_vert,fragmentShader:xa.distanceRGBA_frag},shadow:{uniforms:Rf([Ms.lights,Ms.fog,{color:{value:new Cr(0)},opacity:{value:1}}]),vertexShader:xa.shadow_vert,fragmentShader:xa.shadow_frag}};E0.physical={uniforms:Rf([E0.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatMapTransform:{value:new Ta},clearcoatNormalMap:{value:null},clearcoatNormalMapTransform:{value:new Ta},clearcoatNormalScale:{value:new Qi(1,1)},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatRoughnessMapTransform:{value:new Ta},iridescence:{value:0},iridescenceMap:{value:null},iridescenceMapTransform:{value:new Ta},iridescenceIOR:{value:1.3},iridescenceThicknessMinimum:{value:100},iridescenceThicknessMaximum:{value:400},iridescenceThicknessMap:{value:null},iridescenceThicknessMapTransform:{value:new Ta},sheen:{value:0},sheenColor:{value:new Cr(0)},sheenColorMap:{value:null},sheenColorMapTransform:{value:new Ta},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},sheenRoughnessMapTransform:{value:new Ta},transmission:{value:0},transmissionMap:{value:null},transmissionMapTransform:{value:new Ta},transmissionSamplerSize:{value:new Qi},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},thicknessMapTransform:{value:new Ta},attenuationDistance:{value:0},attenuationColor:{value:new Cr(0)},specularColor:{value:new Cr(1,1,1)},specularColorMap:{value:null},specularColorMapTransform:{value:new Ta},specularIntensity:{value:1},specularIntensityMap:{value:null},specularIntensityMapTransform:{value:new Ta},anisotropyVector:{value:new Qi},anisotropyMap:{value:null},anisotropyMapTransform:{value:new Ta}}]),vertexShader:xa.meshphysical_vert,fragmentShader:xa.meshphysical_frag};const yI={r:0,b:0,g:0},Lb=new S0,whe=new wo;function Che(n,e,t,i,r,s,o){const l=new Cr(0);let h,f,d=!0===s?0:1,A=null,S=0,R=null;function re(se,le){se.getRGB(yI,fV(n)),i.buffers.color.setClear(yI.r,yI.g,yI.b,le,o)}return{getClearColor:function(){return l},setClearColor:function(se,le=1){l.set(se),d=le,re(l,d)},getClearAlpha:function(){return d},setClearAlpha:function(se){d=se,re(l,d)},render:function G(se,le){let Ee=!1,Ce=!0===le.isScene?le.background:null;Ce&&Ce.isTexture&&(Ce=(le.backgroundBlurriness>0?t:e).get(Ce)),null===Ce?re(l,d):Ce&&Ce.isColor&&(re(Ce,1),Ee=!0);const We=n.xr.getEnvironmentBlendMode();"additive"===We?i.buffers.color.setClear(0,0,0,1,o):"alpha-blend"===We&&i.buffers.color.setClear(0,0,0,0,o),(n.autoClear||Ee)&&n.clear(n.autoClearColor,n.autoClearDepth,n.autoClearStencil),Ce&&(Ce.isCubeTexture||Ce.mapping===US)?(void 0===f&&(f=new ha(new yp(1,1,1),new Dh({name:"BackgroundCubeMaterial",uniforms:H2(E0.backgroundCube.uniforms),vertexShader:E0.backgroundCube.vertexShader,fragmentShader:E0.backgroundCube.fragmentShader,side:1,depthTest:!1,depthWrite:!1,fog:!1})),f.geometry.deleteAttribute("normal"),f.geometry.deleteAttribute("uv"),f.onBeforeRender=function(Mt,yt,Et){this.matrixWorld.copyPosition(Et.matrixWorld)},Object.defineProperty(f.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),r.update(f)),Lb.copy(le.backgroundRotation),Lb.x*=-1,Lb.y*=-1,Lb.z*=-1,Ce.isCubeTexture&&!1===Ce.isRenderTargetTexture&&(Lb.y*=-1,Lb.z*=-1),f.material.uniforms.envMap.value=Ce,f.material.uniforms.flipEnvMap.value=Ce.isCubeTexture&&!1===Ce.isRenderTargetTexture?-1:1,f.material.uniforms.backgroundBlurriness.value=le.backgroundBlurriness,f.material.uniforms.backgroundIntensity.value=le.backgroundIntensity,f.material.uniforms.backgroundRotation.value.setFromMatrix4(whe.makeRotationFromEuler(Lb)),f.material.toneMapped=Ol.getTransfer(Ce.colorSpace)!==Vc,(A!==Ce||S!==Ce.version||R!==n.toneMapping)&&(f.material.needsUpdate=!0,A=Ce,S=Ce.version,R=n.toneMapping),f.layers.enableAll(),se.unshift(f,f.geometry,f.material,0,0,null)):Ce&&Ce.isTexture&&(void 0===h&&(h=new ha(new q2(2,2),new Dh({name:"BackgroundMaterial",uniforms:H2(E0.background.uniforms),vertexShader:E0.background.vertexShader,fragmentShader:E0.background.fragmentShader,side:0,depthTest:!1,depthWrite:!1,fog:!1})),h.geometry.deleteAttribute("normal"),Object.defineProperty(h.material,"map",{get:function(){return this.uniforms.t2D.value}}),r.update(h)),h.material.uniforms.t2D.value=Ce,h.material.uniforms.backgroundIntensity.value=le.backgroundIntensity,h.material.toneMapped=Ol.getTransfer(Ce.colorSpace)!==Vc,!0===Ce.matrixAutoUpdate&&Ce.updateMatrix(),h.material.uniforms.uvTransform.value.copy(Ce.matrix),(A!==Ce||S!==Ce.version||R!==n.toneMapping)&&(h.material.needsUpdate=!0,A=Ce,S=Ce.version,R=n.toneMapping),h.layers.enableAll(),se.unshift(h,h.geometry,h.material,0,0,null))}}}function Mhe(n,e,t,i){const r=n.getParameter(n.MAX_VERTEX_ATTRIBS),s=i.isWebGL2?null:e.get("OES_vertex_array_object"),o=i.isWebGL2||null!==s,l={},d=se(null);let h=d,f=!1;function R(En){return i.isWebGL2?n.bindVertexArray(En):s.bindVertexArrayOES(En)}function G(En){return i.isWebGL2?n.deleteVertexArray(En):s.deleteVertexArrayOES(En)}function se(En){const wi=[],zn=[],oi=[];for(let ui=0;ui=0){const fi=ui[ns];let Rr=vi[ns];if(void 0===Rr&&("instanceMatrix"===ns&&En.instanceMatrix&&(Rr=En.instanceMatrix),"instanceColor"===ns&&En.instanceColor&&(Rr=En.instanceColor)),void 0===fi||fi.attribute!==Rr||Rr&&fi.data!==Rr.data)return!0;mr++}return h.attributesNum!==mr||h.index!==oi}(En,oi,zn,ui),vi&&function Ee(En,wi,zn,oi){const ui={},vi=wi.attributes;let mr=0;const Mr=zn.getAttributes();for(const ns in Mr)if(Mr[ns].location>=0){let fi=vi[ns];void 0===fi&&("instanceMatrix"===ns&&En.instanceMatrix&&(fi=En.instanceMatrix),"instanceColor"===ns&&En.instanceColor&&(fi=En.instanceColor));const Rr={};Rr.attribute=fi,fi&&fi.data&&(Rr.data=fi.data),ui[ns]=Rr,mr++}h.attributes=ui,h.attributesNum=mr,h.index=oi}(En,oi,zn,ui)}else{const mr=!0===wi.wireframe;(h.geometry!==oi.id||h.program!==zn.id||h.wireframe!==mr)&&(h.geometry=oi.id,h.program=zn.id,h.wireframe=mr,vi=!0)}null!==ui&&t.update(ui,n.ELEMENT_ARRAY_BUFFER),(vi||f)&&(f=!1,function Xt(En,wi,zn,oi){if(!1===i.isWebGL2&&(En.isInstancedMesh||oi.isInstancedBufferGeometry)&&null===e.get("ANGLE_instanced_arrays"))return;Ce();const ui=oi.attributes,vi=zn.getAttributes(),mr=wi.defaultAttributeValues;for(const Mr in vi){const ns=vi[Mr];if(ns.location>=0){let $s=ui[Mr];if(void 0===$s&&("instanceMatrix"===Mr&&En.instanceMatrix&&($s=En.instanceMatrix),"instanceColor"===Mr&&En.instanceColor&&($s=En.instanceColor)),void 0!==$s){const fi=$s.normalized,Rr=$s.itemSize,ms=t.get($s);if(void 0===ms)continue;const Fs=ms.buffer,Us=ms.type,ws=ms.bytesPerElement,Co=!0===i.isWebGL2&&(Us===n.INT||Us===n.UNSIGNED_INT||1013===$s.gpuType);if($s.isInterleavedBufferAttribute){const lo=$s.data,On=lo.stride,ps=$s.offset;if(lo.isInstancedInterleavedBuffer){for(let gr=0;gr0&&n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.HIGH_FLOAT).precision>0)return"highp";Et="mediump"}return"mediump"===Et&&n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.MEDIUM_FLOAT).precision>0&&n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.MEDIUM_FLOAT).precision>0?"mediump":"lowp"}const o=typeof WebGL2RenderingContext<"u"&&"WebGL2RenderingContext"===n.constructor.name;let l=void 0!==t.precision?t.precision:"highp";const d=s(l);d!==l&&(console.warn("THREE.WebGLRenderer:",l,"not supported, using",d,"instead."),l=d);const h=o||e.has("WEBGL_draw_buffers"),f=!0===t.logarithmicDepthBuffer,A=n.getParameter(n.MAX_TEXTURE_IMAGE_UNITS),S=n.getParameter(n.MAX_VERTEX_TEXTURE_IMAGE_UNITS),R=n.getParameter(n.MAX_TEXTURE_SIZE),G=n.getParameter(n.MAX_CUBE_MAP_TEXTURE_SIZE),re=n.getParameter(n.MAX_VERTEX_ATTRIBS),se=n.getParameter(n.MAX_VERTEX_UNIFORM_VECTORS),le=n.getParameter(n.MAX_VARYING_VECTORS),Ee=n.getParameter(n.MAX_FRAGMENT_UNIFORM_VECTORS),Ce=S>0,We=o||e.has("OES_texture_float");return{isWebGL2:o,drawBuffers:h,getMaxAnisotropy:function r(){if(void 0!==i)return i;if(!0===e.has("EXT_texture_filter_anisotropic")){const Et=e.get("EXT_texture_filter_anisotropic");i=n.getParameter(Et.MAX_TEXTURE_MAX_ANISOTROPY_EXT)}else i=0;return i},getMaxPrecision:s,precision:l,logarithmicDepthBuffer:f,maxTextures:A,maxVertexTextures:S,maxTextureSize:R,maxCubemapSize:G,maxAttributes:re,maxVertexUniforms:se,maxVaryings:le,maxFragmentUniforms:Ee,vertexTextures:Ce,floatFragmentTextures:We,floatVertexTextures:Ce&&We,maxSamples:o?n.getParameter(n.MAX_SAMPLES):0}}function The(n){const e=this;let t=null,i=0,r=!1,s=!1;const o=new dA,l=new Ta,d={value:null,needsUpdate:!1};function f(A,S,R,G){const re=null!==A?A.length:0;let se=null;if(0!==re){if(se=d.value,!0!==G||null===se){const le=R+4*re,Ee=S.matrixWorldInverse;l.getNormalMatrix(Ee),(null===se||se.length0),e.numPlanes=i,e.numIntersection=0}();else{const Ee=s?0:i,Ce=4*Ee;let We=le.clippingState||null;d.value=We,We=f(G,S,Ce,R);for(let Mt=0;Mt!==Ce;++Mt)We[Mt]=t[Mt];le.clippingState=We,this.numIntersection=re?this.numPlanes:0,this.numPlanes+=Ee}}}function Dhe(n){let e=new WeakMap;function t(o,l){return 303===l?o.mapping=Py:304===l&&(o.mapping=Sb),o}function r(o){const l=o.target;l.removeEventListener("dispose",r);const d=e.get(l);void 0!==d&&(e.delete(l),d.dispose())}return{get:function i(o){if(o&&o.isTexture){const l=o.mapping;if(303===l||304===l){if(e.has(o))return t(e.get(o).texture,o.mapping);{const d=o.image;if(d&&d.height>0){const h=new yce(d.height);return h.fromEquirectangularTexture(n,o),e.set(o,h),o.addEventListener("dispose",r),t(h.texture,o.mapping)}return null}}}return o},dispose:function s(){e=new WeakMap}}}class Q2 extends w5{constructor(e=-1,t=1,i=1,r=-1,s=.1,o=2e3){super(),this.isOrthographicCamera=!0,this.type="OrthographicCamera",this.zoom=1,this.view=null,this.left=e,this.right=t,this.top=i,this.bottom=r,this.near=s,this.far=o,this.updateProjectionMatrix()}copy(e,t){return super.copy(e,t),this.left=e.left,this.right=e.right,this.top=e.top,this.bottom=e.bottom,this.near=e.near,this.far=e.far,this.zoom=e.zoom,this.view=null===e.view?null:Object.assign({},e.view),this}setViewOffset(e,t,i,r,s,o){null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=e,this.view.fullHeight=t,this.view.offsetX=i,this.view.offsetY=r,this.view.width=s,this.view.height=o,this.updateProjectionMatrix()}clearViewOffset(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const e=(this.right-this.left)/(2*this.zoom),t=(this.top-this.bottom)/(2*this.zoom),i=(this.right+this.left)/2,r=(this.top+this.bottom)/2;let s=i-e,o=i+e,l=r+t,d=r-t;if(null!==this.view&&this.view.enabled){const h=(this.right-this.left)/this.view.fullWidth/this.zoom,f=(this.top-this.bottom)/this.view.fullHeight/this.zoom;s+=h*this.view.offsetX,o=s+h*this.view.width,l-=f*this.view.offsetY,d=l-f*this.view.height}this.projectionMatrix.makeOrthographic(s,o,l,d,this.near,this.far,this.coordinateSystem),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(e){const t=super.toJSON(e);return t.object.zoom=this.zoom,t.object.left=this.left,t.object.right=this.right,t.object.top=this.top,t.object.bottom=this.bottom,t.object.near=this.near,t.object.far=this.far,null!==this.view&&(t.object.view=Object.assign({},this.view)),t}}const gV=[.125,.215,.35,.446,.526,.582],M5=new Q2,_V=new Cr;let S5=null,E5=0,T5=0;const Ub=(1+Math.sqrt(5))/2,j2=1/Ub,yV=[new It(1,1,1),new It(-1,1,1),new It(1,1,-1),new It(-1,1,-1),new It(0,Ub,j2),new It(0,Ub,-j2),new It(j2,0,Ub),new It(-j2,0,Ub),new It(Ub,j2,0),new It(-Ub,j2,0)];class vV{constructor(e){this._renderer=e,this._pingPongRenderTarget=null,this._lodMax=0,this._cubeSize=0,this._lodPlanes=[],this._sizeLods=[],this._sigmas=[],this._blurMaterial=null,this._cubemapMaterial=null,this._equirectMaterial=null,this._compileMaterial(this._blurMaterial)}fromScene(e,t=0,i=.1,r=100){S5=this._renderer.getRenderTarget(),E5=this._renderer.getActiveCubeFace(),T5=this._renderer.getActiveMipmapLevel(),this._setSize(256);const s=this._allocateTargets();return s.depthBuffer=!0,this._sceneToCubeUV(e,i,r,s),t>0&&this._blur(s,0,0,t),this._applyPMREM(s),this._cleanup(s),s}fromEquirectangular(e,t=null){return this._fromTexture(e,t)}fromCubemap(e,t=null){return this._fromTexture(e,t)}compileCubemapShader(){null===this._cubemapMaterial&&(this._cubemapMaterial=wV(),this._compileMaterial(this._cubemapMaterial))}compileEquirectangularShader(){null===this._equirectMaterial&&(this._equirectMaterial=xV(),this._compileMaterial(this._equirectMaterial))}dispose(){this._dispose(),null!==this._cubemapMaterial&&this._cubemapMaterial.dispose(),null!==this._equirectMaterial&&this._equirectMaterial.dispose()}_setSize(e){this._lodMax=Math.floor(Math.log2(e)),this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){null!==this._blurMaterial&&this._blurMaterial.dispose(),null!==this._pingPongRenderTarget&&this._pingPongRenderTarget.dispose();for(let e=0;en-4?d=gV[o-n+4-1]:0===o&&(d=0),i.push(d);const h=1/(l-2),f=-h,A=1+h,S=[f,f,A,f,A,A,f,f,A,A,f,A],R=6,G=6,re=3,se=2,le=1,Ee=new Float32Array(re*G*R),Ce=new Float32Array(se*G*R),We=new Float32Array(le*G*R);for(let yt=0;yt2?0:-1;Ee.set([Et,Xt,0,Et+2/3,Xt,0,Et+2/3,Xt+1,0,Et,Xt,0,Et+2/3,Xt+1,0,Et,Xt+1,0],re*G*yt),Ce.set(S,se*G*yt),We.set([yt,yt,yt,yt,yt,yt],le*G*yt)}const Mt=new no;Mt.setAttribute("position",new No(Ee,re)),Mt.setAttribute("uv",new No(Ce,se)),Mt.setAttribute("faceIndex",new No(We,le)),e.push(Mt),r>4&&r--}return{lodPlanes:e,sizeLods:t,sigmas:i}}(s)),this._blurMaterial=function Bhe(n,e,t){const i=new Float32Array(20),r=new It(0,1,0);return new Dh({name:"SphericalGaussianBlur",defines:{n:20,CUBEUV_TEXEL_WIDTH:1/e,CUBEUV_TEXEL_HEIGHT:1/t,CUBEUV_MAX_MIP:`${n}.0`},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:i},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:r}},vertexShader:"\n\n\t\tprecision mediump float;\n\t\tprecision mediump int;\n\n\t\tattribute float faceIndex;\n\n\t\tvarying vec3 vOutputDirection;\n\n\t\t// RH coordinate system; PMREM face-indexing convention\n\t\tvec3 getDirection( vec2 uv, float face ) {\n\n\t\t\tuv = 2.0 * uv - 1.0;\n\n\t\t\tvec3 direction = vec3( uv, 1.0 );\n\n\t\t\tif ( face == 0.0 ) {\n\n\t\t\t\tdirection = direction.zyx; // ( 1, v, u ) pos x\n\n\t\t\t} else if ( face == 1.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xz *= -1.0; // ( -u, 1, -v ) pos y\n\n\t\t\t} else if ( face == 2.0 ) {\n\n\t\t\t\tdirection.x *= -1.0; // ( -u, v, 1 ) pos z\n\n\t\t\t} else if ( face == 3.0 ) {\n\n\t\t\t\tdirection = direction.zyx;\n\t\t\t\tdirection.xz *= -1.0; // ( -1, v, -u ) neg x\n\n\t\t\t} else if ( face == 4.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xy *= -1.0; // ( -u, -1, v ) neg y\n\n\t\t\t} else if ( face == 5.0 ) {\n\n\t\t\t\tdirection.z *= -1.0; // ( u, v, -1 ) neg z\n\n\t\t\t}\n\n\t\t\treturn direction;\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\tvOutputDirection = getDirection( uv, faceIndex );\n\t\t\tgl_Position = vec4( position, 1.0 );\n\n\t\t}\n\t",fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\t\t\tuniform int samples;\n\t\t\tuniform float weights[ n ];\n\t\t\tuniform bool latitudinal;\n\t\t\tuniform float dTheta;\n\t\t\tuniform float mipInt;\n\t\t\tuniform vec3 poleAxis;\n\n\t\t\t#define ENVMAP_TYPE_CUBE_UV\n\t\t\t#include \n\n\t\t\tvec3 getSample( float theta, vec3 axis ) {\n\n\t\t\t\tfloat cosTheta = cos( theta );\n\t\t\t\t// Rodrigues' axis-angle rotation\n\t\t\t\tvec3 sampleDirection = vOutputDirection * cosTheta\n\t\t\t\t\t+ cross( axis, vOutputDirection ) * sin( theta )\n\t\t\t\t\t+ axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta );\n\n\t\t\t\treturn bilinearCubeUV( envMap, sampleDirection, mipInt );\n\n\t\t\t}\n\n\t\t\tvoid main() {\n\n\t\t\t\tvec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection );\n\n\t\t\t\tif ( all( equal( axis, vec3( 0.0 ) ) ) ) {\n\n\t\t\t\t\taxis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x );\n\n\t\t\t\t}\n\n\t\t\t\taxis = normalize( axis );\n\n\t\t\t\tgl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\t\t\t\tgl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis );\n\n\t\t\t\tfor ( int i = 1; i < n; i++ ) {\n\n\t\t\t\t\tif ( i >= samples ) {\n\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tfloat theta = dTheta * float( i );\n\t\t\t\t\tgl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis );\n\t\t\t\t\tgl_FragColor.rgb += weights[ i ] * getSample( theta, axis );\n\n\t\t\t\t}\n\n\t\t\t}\n\t\t",blending:0,depthTest:!1,depthWrite:!1})}(s,e,t)}return r}_compileMaterial(e){const t=new ha(this._lodPlanes[0],e);this._renderer.compile(t,M5)}_sceneToCubeUV(e,t,i,r){const l=new Ih(90,1,t,i),d=[1,-1,1,1,1,1],h=[1,1,1,-1,-1,-1],f=this._renderer,A=f.autoClear,S=f.toneMapping;f.getClearColor(_V),f.toneMapping=By,f.autoClear=!1;const R=new xd({name:"PMREM.Background",side:1,depthWrite:!1,depthTest:!1}),G=new ha(new yp,R);let re=!1;const se=e.background;se?se.isColor&&(R.color.copy(se),e.background=null,re=!0):(R.color.copy(_V),re=!0);for(let le=0;le<6;le++){const Ee=le%3;0===Ee?(l.up.set(0,d[le],0),l.lookAt(h[le],0,0)):1===Ee?(l.up.set(0,0,d[le]),l.lookAt(0,h[le],0)):(l.up.set(0,d[le],0),l.lookAt(0,0,h[le]));const Ce=this._cubeSize;vI(r,Ee*Ce,le>2?Ce:0,Ce,Ce),f.setRenderTarget(r),re&&f.render(G,l),f.render(e,l)}G.geometry.dispose(),G.material.dispose(),f.toneMapping=S,f.autoClear=A,e.background=se}_textureToCubeUV(e,t){const i=this._renderer,r=e.mapping===Py||e.mapping===Sb;r?(null===this._cubemapMaterial&&(this._cubemapMaterial=wV()),this._cubemapMaterial.uniforms.flipEnvMap.value=!1===e.isRenderTargetTexture?-1:1):null===this._equirectMaterial&&(this._equirectMaterial=xV());const s=r?this._cubemapMaterial:this._equirectMaterial,o=new ha(this._lodPlanes[0],s);s.uniforms.envMap.value=e;const d=this._cubeSize;vI(t,0,0,3*d,2*d),i.setRenderTarget(t),i.render(o,M5)}_applyPMREM(e){const t=this._renderer,i=t.autoClear;t.autoClear=!1;for(let r=1;r20&&console.warn(`sigmaRadians, ${s}, is too large and will clip, as it requested ${se} samples when the maximum is set to 20`);const le=[];let Ee=0;for(let Et=0;Et<20;++Et){const Xt=Et/re,Un=Math.exp(-Xt*Xt/2);le.push(Un),0===Et?Ee+=Un:EtCe-4?r-Ce+4:0),4*(this._cubeSize-We),3*We,2*We),d.setRenderTarget(t),d.render(A,M5)}}function bV(n,e,t){const i=new Wh(n,e,t);return i.texture.mapping=US,i.texture.name="PMREM.cubeUv",i.scissorTest=!0,i}function vI(n,e,t,i,r){n.viewport.set(e,t,i,r),n.scissor.set(e,t,i,r)}function xV(){return new Dh({name:"EquirectangularToCubeUV",uniforms:{envMap:{value:null}},vertexShader:"\n\n\t\tprecision mediump float;\n\t\tprecision mediump int;\n\n\t\tattribute float faceIndex;\n\n\t\tvarying vec3 vOutputDirection;\n\n\t\t// RH coordinate system; PMREM face-indexing convention\n\t\tvec3 getDirection( vec2 uv, float face ) {\n\n\t\t\tuv = 2.0 * uv - 1.0;\n\n\t\t\tvec3 direction = vec3( uv, 1.0 );\n\n\t\t\tif ( face == 0.0 ) {\n\n\t\t\t\tdirection = direction.zyx; // ( 1, v, u ) pos x\n\n\t\t\t} else if ( face == 1.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xz *= -1.0; // ( -u, 1, -v ) pos y\n\n\t\t\t} else if ( face == 2.0 ) {\n\n\t\t\t\tdirection.x *= -1.0; // ( -u, v, 1 ) pos z\n\n\t\t\t} else if ( face == 3.0 ) {\n\n\t\t\t\tdirection = direction.zyx;\n\t\t\t\tdirection.xz *= -1.0; // ( -1, v, -u ) neg x\n\n\t\t\t} else if ( face == 4.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xy *= -1.0; // ( -u, -1, v ) neg y\n\n\t\t\t} else if ( face == 5.0 ) {\n\n\t\t\t\tdirection.z *= -1.0; // ( u, v, -1 ) neg z\n\n\t\t\t}\n\n\t\t\treturn direction;\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\tvOutputDirection = getDirection( uv, faceIndex );\n\t\t\tgl_Position = vec4( position, 1.0 );\n\n\t\t}\n\t",fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\n\t\t\t#include \n\n\t\t\tvoid main() {\n\n\t\t\t\tvec3 outputDirection = normalize( vOutputDirection );\n\t\t\t\tvec2 uv = equirectUv( outputDirection );\n\n\t\t\t\tgl_FragColor = vec4( texture2D ( envMap, uv ).rgb, 1.0 );\n\n\t\t\t}\n\t\t",blending:0,depthTest:!1,depthWrite:!1})}function wV(){return new Dh({name:"CubemapToCubeUV",uniforms:{envMap:{value:null},flipEnvMap:{value:-1}},vertexShader:"\n\n\t\tprecision mediump float;\n\t\tprecision mediump int;\n\n\t\tattribute float faceIndex;\n\n\t\tvarying vec3 vOutputDirection;\n\n\t\t// RH coordinate system; PMREM face-indexing convention\n\t\tvec3 getDirection( vec2 uv, float face ) {\n\n\t\t\tuv = 2.0 * uv - 1.0;\n\n\t\t\tvec3 direction = vec3( uv, 1.0 );\n\n\t\t\tif ( face == 0.0 ) {\n\n\t\t\t\tdirection = direction.zyx; // ( 1, v, u ) pos x\n\n\t\t\t} else if ( face == 1.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xz *= -1.0; // ( -u, 1, -v ) pos y\n\n\t\t\t} else if ( face == 2.0 ) {\n\n\t\t\t\tdirection.x *= -1.0; // ( -u, v, 1 ) pos z\n\n\t\t\t} else if ( face == 3.0 ) {\n\n\t\t\t\tdirection = direction.zyx;\n\t\t\t\tdirection.xz *= -1.0; // ( -1, v, -u ) neg x\n\n\t\t\t} else if ( face == 4.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xy *= -1.0; // ( -u, -1, v ) neg y\n\n\t\t\t} else if ( face == 5.0 ) {\n\n\t\t\t\tdirection.z *= -1.0; // ( u, v, -1 ) neg z\n\n\t\t\t}\n\n\t\t\treturn direction;\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\tvOutputDirection = getDirection( uv, faceIndex );\n\t\t\tgl_Position = vec4( position, 1.0 );\n\n\t\t}\n\t",fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tuniform float flipEnvMap;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform samplerCube envMap;\n\n\t\t\tvoid main() {\n\n\t\t\t\tgl_FragColor = textureCube( envMap, vec3( flipEnvMap * vOutputDirection.x, vOutputDirection.yz ) );\n\n\t\t\t}\n\t\t",blending:0,depthTest:!1,depthWrite:!1})}function Phe(n){let e=new WeakMap,t=null;function s(l){const d=l.target;d.removeEventListener("dispose",s);const h=e.get(d);void 0!==h&&(e.delete(d),h.dispose())}return{get:function i(l){if(l&&l.isTexture){const d=l.mapping,h=303===d||304===d,f=d===Py||d===Sb;if(h||f){if(l.isRenderTargetTexture&&!0===l.needsPMREMUpdate){l.needsPMREMUpdate=!1;let A=e.get(l);return null===t&&(t=new vV(n)),A=h?t.fromEquirectangular(l,A):t.fromCubemap(l,A),e.set(l,A),A.texture}if(e.has(l))return e.get(l).texture;{const A=l.image;if(h&&A&&A.height>0||f&&A&&function r(l){let d=0;for(let f=0;f<6;f++)void 0!==l[f]&&d++;return 6===d}(A)){null===t&&(t=new vV(n));const S=h?t.fromEquirectangular(l):t.fromCubemap(l);return e.set(l,S),l.addEventListener("dispose",s),S.texture}return null}}}return l},dispose:function o(){e=new WeakMap,null!==t&&(t.dispose(),t=null)}}}function Rhe(n){const e={};function t(i){if(void 0!==e[i])return e[i];let r;switch(i){case"WEBGL_depth_texture":r=n.getExtension("WEBGL_depth_texture")||n.getExtension("MOZ_WEBGL_depth_texture")||n.getExtension("WEBKIT_WEBGL_depth_texture");break;case"EXT_texture_filter_anisotropic":r=n.getExtension("EXT_texture_filter_anisotropic")||n.getExtension("MOZ_EXT_texture_filter_anisotropic")||n.getExtension("WEBKIT_EXT_texture_filter_anisotropic");break;case"WEBGL_compressed_texture_s3tc":r=n.getExtension("WEBGL_compressed_texture_s3tc")||n.getExtension("MOZ_WEBGL_compressed_texture_s3tc")||n.getExtension("WEBKIT_WEBGL_compressed_texture_s3tc");break;case"WEBGL_compressed_texture_pvrtc":r=n.getExtension("WEBGL_compressed_texture_pvrtc")||n.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc");break;default:r=n.getExtension(i)}return e[i]=r,r}return{has:function(i){return null!==t(i)},init:function(i){i.isWebGL2?(t("EXT_color_buffer_float"),t("WEBGL_clip_cull_distance")):(t("WEBGL_depth_texture"),t("OES_texture_float"),t("OES_texture_half_float"),t("OES_texture_half_float_linear"),t("OES_standard_derivatives"),t("OES_element_index_uint"),t("OES_vertex_array_object"),t("ANGLE_instanced_arrays")),t("OES_texture_float_linear"),t("EXT_color_buffer_half_float"),t("WEBGL_multisampled_render_to_texture")},get:function(i){const r=t(i);return null===r&&console.warn("THREE.WebGLRenderer: "+i+" extension not supported."),r}}}function khe(n,e,t,i){const r={},s=new WeakMap;function o(A){const S=A.target;null!==S.index&&e.remove(S.index);for(const G in S.attributes)e.remove(S.attributes[G]);for(const G in S.morphAttributes){const re=S.morphAttributes[G];for(let se=0,le=re.length;see.maxTextureSize&&(Xt=Math.ceil(Et/e.maxTextureSize),Et=e.maxTextureSize);const Un=new Float32Array(Et*Xt*4*G),wt=new s5(Un,Et,Xt,G);wt.type=aA,wt.needsUpdate=!0;const Kt=4*yt;for(let Yi=0;Yi0)return n;const r=e*t;let s=IV[r];if(void 0===s&&(s=new Float32Array(r),IV[r]=s),0!==e){i.toArray(s,0);for(let o=1,l=0;o!==e;++o)l+=t,n[o].toArray(s,l)}return s}function Bh(n,e){if(n.length!==e.length)return!1;for(let t=0,i=n.length;t":" "} ${l}: ${t[o]}`)}return i.join("\n")}(n.getShaderSource(e),o)}return r}function Fue(n,e){const t=function kue(n){const e=Ol.getPrimaries(Ol.workingColorSpace),t=Ol.getPrimaries(n);let i;switch(e===t?i="":e===$D&&t===jD?i="LinearDisplayP3ToLinearSRGB":e===jD&&t===$D&&(i="LinearSRGBToLinearDisplayP3"),n){case Qh:case QD:return[i,"LinearTransferOETF"];case ch:case Kk:return[i,"sRGBTransferOETF"];default:return console.warn("THREE.WebGLProgram: Unsupported color space:",n),[i,"LinearTransferOETF"]}}(e);return`vec4 ${n}( vec4 value ) { return ${t[0]}( ${t[1]}( value ) ); }`}function Oue(n,e){let t;switch(e){case cle:t="Linear";break;case dle:t="Reinhard";break;case hle:t="OptimizedCineon";break;case ule:t="ACESFilmic";break;case ple:t="AgX";break;case mle:t="Neutral";break;case fle:t="Custom";break;default:console.warn("THREE.WebGLProgram: Unsupported toneMapping:",e),t="Linear"}return"vec3 "+n+"( vec3 color ) { return "+t+"ToneMapping( color ); }"}function X2(n){return""!==n}function NV(n,e){const t=e.numSpotLightShadows+e.numSpotLightMaps-e.numSpotLightShadowsWithMaps;return n.replace(/NUM_DIR_LIGHTS/g,e.numDirLights).replace(/NUM_SPOT_LIGHTS/g,e.numSpotLights).replace(/NUM_SPOT_LIGHT_MAPS/g,e.numSpotLightMaps).replace(/NUM_SPOT_LIGHT_COORDS/g,t).replace(/NUM_RECT_AREA_LIGHTS/g,e.numRectAreaLights).replace(/NUM_POINT_LIGHTS/g,e.numPointLights).replace(/NUM_HEMI_LIGHTS/g,e.numHemiLights).replace(/NUM_DIR_LIGHT_SHADOWS/g,e.numDirLightShadows).replace(/NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS/g,e.numSpotLightShadowsWithMaps).replace(/NUM_SPOT_LIGHT_SHADOWS/g,e.numSpotLightShadows).replace(/NUM_POINT_LIGHT_SHADOWS/g,e.numPointLightShadows)}function UV(n,e){return n.replace(/NUM_CLIPPING_PLANES/g,e.numClippingPlanes).replace(/UNION_CLIPPING_PLANES/g,e.numClippingPlanes-e.numClipIntersection)}const Hue=/^[ \t]*#include +<([\w\d./]+)>/gm;function B5(n){return n.replace(Hue,Gue)}const Vue=new Map([["encodings_fragment","colorspace_fragment"],["encodings_pars_fragment","colorspace_pars_fragment"],["output_fragment","opaque_fragment"]]);function Gue(n,e){let t=xa[e];if(void 0===t){const i=Vue.get(e);if(void 0===i)throw new Error("Can not resolve #include <"+e+">");t=xa[i],console.warn('THREE.WebGLRenderer: Shader chunk "%s" has been deprecated. Use "%s" instead.',e,i)}return B5(t)}const que=/#pragma unroll_loop_start\s+for\s*\(\s*int\s+i\s*=\s*(\d+)\s*;\s*i\s*<\s*(\d+)\s*;\s*i\s*\+\+\s*\)\s*{([\s\S]+?)}\s+#pragma unroll_loop_end/g;function zV(n){return n.replace(que,Que)}function Que(n,e,t,i){let r="";for(let s=parseInt(e);s0&&(le+="\n"),Ee=[R,"#define SHADER_TYPE "+t.shaderType,"#define SHADER_NAME "+t.shaderName,re].filter(X2).join("\n"),Ee.length>0&&(Ee+="\n")):(le=[HV(t),"#define SHADER_TYPE "+t.shaderType,"#define SHADER_NAME "+t.shaderName,re,t.extensionClipCullDistance?"#define USE_CLIP_DISTANCE":"",t.batching?"#define USE_BATCHING":"",t.instancing?"#define USE_INSTANCING":"",t.instancingColor?"#define USE_INSTANCING_COLOR":"",t.instancingMorph?"#define USE_INSTANCING_MORPH":"",t.useFog&&t.fog?"#define USE_FOG":"",t.useFog&&t.fogExp2?"#define FOG_EXP2":"",t.map?"#define USE_MAP":"",t.envMap?"#define USE_ENVMAP":"",t.envMap?"#define "+f:"",t.lightMap?"#define USE_LIGHTMAP":"",t.aoMap?"#define USE_AOMAP":"",t.bumpMap?"#define USE_BUMPMAP":"",t.normalMap?"#define USE_NORMALMAP":"",t.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",t.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",t.displacementMap?"#define USE_DISPLACEMENTMAP":"",t.emissiveMap?"#define USE_EMISSIVEMAP":"",t.anisotropy?"#define USE_ANISOTROPY":"",t.anisotropyMap?"#define USE_ANISOTROPYMAP":"",t.clearcoatMap?"#define USE_CLEARCOATMAP":"",t.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",t.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",t.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",t.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",t.specularMap?"#define USE_SPECULARMAP":"",t.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",t.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",t.roughnessMap?"#define USE_ROUGHNESSMAP":"",t.metalnessMap?"#define USE_METALNESSMAP":"",t.alphaMap?"#define USE_ALPHAMAP":"",t.alphaHash?"#define USE_ALPHAHASH":"",t.transmission?"#define USE_TRANSMISSION":"",t.transmissionMap?"#define USE_TRANSMISSIONMAP":"",t.thicknessMap?"#define USE_THICKNESSMAP":"",t.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",t.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",t.mapUv?"#define MAP_UV "+t.mapUv:"",t.alphaMapUv?"#define ALPHAMAP_UV "+t.alphaMapUv:"",t.lightMapUv?"#define LIGHTMAP_UV "+t.lightMapUv:"",t.aoMapUv?"#define AOMAP_UV "+t.aoMapUv:"",t.emissiveMapUv?"#define EMISSIVEMAP_UV "+t.emissiveMapUv:"",t.bumpMapUv?"#define BUMPMAP_UV "+t.bumpMapUv:"",t.normalMapUv?"#define NORMALMAP_UV "+t.normalMapUv:"",t.displacementMapUv?"#define DISPLACEMENTMAP_UV "+t.displacementMapUv:"",t.metalnessMapUv?"#define METALNESSMAP_UV "+t.metalnessMapUv:"",t.roughnessMapUv?"#define ROUGHNESSMAP_UV "+t.roughnessMapUv:"",t.anisotropyMapUv?"#define ANISOTROPYMAP_UV "+t.anisotropyMapUv:"",t.clearcoatMapUv?"#define CLEARCOATMAP_UV "+t.clearcoatMapUv:"",t.clearcoatNormalMapUv?"#define CLEARCOAT_NORMALMAP_UV "+t.clearcoatNormalMapUv:"",t.clearcoatRoughnessMapUv?"#define CLEARCOAT_ROUGHNESSMAP_UV "+t.clearcoatRoughnessMapUv:"",t.iridescenceMapUv?"#define IRIDESCENCEMAP_UV "+t.iridescenceMapUv:"",t.iridescenceThicknessMapUv?"#define IRIDESCENCE_THICKNESSMAP_UV "+t.iridescenceThicknessMapUv:"",t.sheenColorMapUv?"#define SHEEN_COLORMAP_UV "+t.sheenColorMapUv:"",t.sheenRoughnessMapUv?"#define SHEEN_ROUGHNESSMAP_UV "+t.sheenRoughnessMapUv:"",t.specularMapUv?"#define SPECULARMAP_UV "+t.specularMapUv:"",t.specularColorMapUv?"#define SPECULAR_COLORMAP_UV "+t.specularColorMapUv:"",t.specularIntensityMapUv?"#define SPECULAR_INTENSITYMAP_UV "+t.specularIntensityMapUv:"",t.transmissionMapUv?"#define TRANSMISSIONMAP_UV "+t.transmissionMapUv:"",t.thicknessMapUv?"#define THICKNESSMAP_UV "+t.thicknessMapUv:"",t.vertexTangents&&!1===t.flatShading?"#define USE_TANGENT":"",t.vertexColors?"#define USE_COLOR":"",t.vertexAlphas?"#define USE_COLOR_ALPHA":"",t.vertexUv1s?"#define USE_UV1":"",t.vertexUv2s?"#define USE_UV2":"",t.vertexUv3s?"#define USE_UV3":"",t.pointsUvs?"#define USE_POINTS_UV":"",t.flatShading?"#define FLAT_SHADED":"",t.skinning?"#define USE_SKINNING":"",t.morphTargets?"#define USE_MORPHTARGETS":"",t.morphNormals&&!1===t.flatShading?"#define USE_MORPHNORMALS":"",t.morphColors&&t.isWebGL2?"#define USE_MORPHCOLORS":"",t.morphTargetsCount>0&&t.isWebGL2?"#define MORPHTARGETS_TEXTURE":"",t.morphTargetsCount>0&&t.isWebGL2?"#define MORPHTARGETS_TEXTURE_STRIDE "+t.morphTextureStride:"",t.morphTargetsCount>0&&t.isWebGL2?"#define MORPHTARGETS_COUNT "+t.morphTargetsCount:"",t.doubleSided?"#define DOUBLE_SIDED":"",t.flipSided?"#define FLIP_SIDED":"",t.shadowMapEnabled?"#define USE_SHADOWMAP":"",t.shadowMapEnabled?"#define "+d:"",t.sizeAttenuation?"#define USE_SIZEATTENUATION":"",t.numLightProbes>0?"#define USE_LIGHT_PROBES":"",t.useLegacyLights?"#define LEGACY_LIGHTS":"",t.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",t.logarithmicDepthBuffer&&t.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 modelMatrix;","uniform mat4 modelViewMatrix;","uniform mat4 projectionMatrix;","uniform mat4 viewMatrix;","uniform mat3 normalMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;","#ifdef USE_INSTANCING","\tattribute mat4 instanceMatrix;","#endif","#ifdef USE_INSTANCING_COLOR","\tattribute vec3 instanceColor;","#endif","#ifdef USE_INSTANCING_MORPH","\tuniform sampler2D morphTexture;","#endif","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_UV1","\tattribute vec2 uv1;","#endif","#ifdef USE_UV2","\tattribute vec2 uv2;","#endif","#ifdef USE_UV3","\tattribute vec2 uv3;","#endif","#ifdef USE_TANGENT","\tattribute vec4 tangent;","#endif","#if defined( USE_COLOR_ALPHA )","\tattribute vec4 color;","#elif defined( USE_COLOR )","\tattribute vec3 color;","#endif","#if ( defined( USE_MORPHTARGETS ) && ! defined( MORPHTARGETS_TEXTURE ) )","\tattribute vec3 morphTarget0;","\tattribute vec3 morphTarget1;","\tattribute vec3 morphTarget2;","\tattribute vec3 morphTarget3;","\t#ifdef USE_MORPHNORMALS","\t\tattribute vec3 morphNormal0;","\t\tattribute vec3 morphNormal1;","\t\tattribute vec3 morphNormal2;","\t\tattribute vec3 morphNormal3;","\t#else","\t\tattribute vec3 morphTarget4;","\t\tattribute vec3 morphTarget5;","\t\tattribute vec3 morphTarget6;","\t\tattribute vec3 morphTarget7;","\t#endif","#endif","#ifdef USE_SKINNING","\tattribute vec4 skinIndex;","\tattribute vec4 skinWeight;","#endif","\n"].filter(X2).join("\n"),Ee=[R,HV(t),"#define SHADER_TYPE "+t.shaderType,"#define SHADER_NAME "+t.shaderName,re,t.useFog&&t.fog?"#define USE_FOG":"",t.useFog&&t.fogExp2?"#define FOG_EXP2":"",t.alphaToCoverage?"#define ALPHA_TO_COVERAGE":"",t.map?"#define USE_MAP":"",t.matcap?"#define USE_MATCAP":"",t.envMap?"#define USE_ENVMAP":"",t.envMap?"#define "+h:"",t.envMap?"#define "+f:"",t.envMap?"#define "+A:"",S?"#define CUBEUV_TEXEL_WIDTH "+S.texelWidth:"",S?"#define CUBEUV_TEXEL_HEIGHT "+S.texelHeight:"",S?"#define CUBEUV_MAX_MIP "+S.maxMip+".0":"",t.lightMap?"#define USE_LIGHTMAP":"",t.aoMap?"#define USE_AOMAP":"",t.bumpMap?"#define USE_BUMPMAP":"",t.normalMap?"#define USE_NORMALMAP":"",t.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",t.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",t.emissiveMap?"#define USE_EMISSIVEMAP":"",t.anisotropy?"#define USE_ANISOTROPY":"",t.anisotropyMap?"#define USE_ANISOTROPYMAP":"",t.clearcoat?"#define USE_CLEARCOAT":"",t.clearcoatMap?"#define USE_CLEARCOATMAP":"",t.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",t.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",t.iridescence?"#define USE_IRIDESCENCE":"",t.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",t.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",t.specularMap?"#define USE_SPECULARMAP":"",t.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",t.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",t.roughnessMap?"#define USE_ROUGHNESSMAP":"",t.metalnessMap?"#define USE_METALNESSMAP":"",t.alphaMap?"#define USE_ALPHAMAP":"",t.alphaTest?"#define USE_ALPHATEST":"",t.alphaHash?"#define USE_ALPHAHASH":"",t.sheen?"#define USE_SHEEN":"",t.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",t.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",t.transmission?"#define USE_TRANSMISSION":"",t.transmissionMap?"#define USE_TRANSMISSIONMAP":"",t.thicknessMap?"#define USE_THICKNESSMAP":"",t.vertexTangents&&!1===t.flatShading?"#define USE_TANGENT":"",t.vertexColors||t.instancingColor?"#define USE_COLOR":"",t.vertexAlphas?"#define USE_COLOR_ALPHA":"",t.vertexUv1s?"#define USE_UV1":"",t.vertexUv2s?"#define USE_UV2":"",t.vertexUv3s?"#define USE_UV3":"",t.pointsUvs?"#define USE_POINTS_UV":"",t.gradientMap?"#define USE_GRADIENTMAP":"",t.flatShading?"#define FLAT_SHADED":"",t.doubleSided?"#define DOUBLE_SIDED":"",t.flipSided?"#define FLIP_SIDED":"",t.shadowMapEnabled?"#define USE_SHADOWMAP":"",t.shadowMapEnabled?"#define "+d:"",t.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",t.numLightProbes>0?"#define USE_LIGHT_PROBES":"",t.useLegacyLights?"#define LEGACY_LIGHTS":"",t.decodeVideoTexture?"#define DECODE_VIDEO_TEXTURE":"",t.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",t.logarithmicDepthBuffer&&t.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",t.toneMapping!==By?"#define TONE_MAPPING":"",t.toneMapping!==By?xa.tonemapping_pars_fragment:"",t.toneMapping!==By?Oue("toneMapping",t.toneMapping):"",t.dithering?"#define DITHERING":"",t.opaque?"#define OPAQUE":"",xa.colorspace_pars_fragment,Fue("linearToOutputTexel",t.outputColorSpace),t.useDepthPacking?"#define DEPTH_PACKING "+t.depthPacking:"","\n"].filter(X2).join("\n")),o=B5(o),o=NV(o,t),o=UV(o,t),l=B5(l),l=NV(l,t),l=UV(l,t),o=zV(o),l=zV(l),t.isWebGL2&&!0!==t.isRawShaderMaterial&&(Ce="#version 300 es\n",le=[G,"precision mediump sampler2DArray;","#define attribute in","#define varying out","#define texture2D texture"].join("\n")+"\n"+le,Ee=["precision mediump sampler2DArray;","#define varying in",t.glslVersion===VH?"":"layout(location = 0) out highp vec4 pc_fragColor;",t.glslVersion===VH?"":"#define gl_FragColor pc_fragColor","#define gl_FragDepthEXT gl_FragDepth","#define texture2D texture","#define textureCube texture","#define texture2DProj textureProj","#define texture2DLodEXT textureLod","#define texture2DProjLodEXT textureProjLod","#define textureCubeLodEXT textureLod","#define texture2DGradEXT textureGrad","#define texture2DProjGradEXT textureProjGrad","#define textureCubeGradEXT textureGrad"].join("\n")+"\n"+Ee);const Mt=Ce+Ee+l,yt=OV(r,r.VERTEX_SHADER,Ce+le+o),Et=OV(r,r.FRAGMENT_SHADER,Mt);function Xt(Vi){if(n.debug.checkShaderErrors){const Yi=r.getProgramInfoLog(se).trim(),En=r.getShaderInfoLog(yt).trim(),wi=r.getShaderInfoLog(Et).trim();let zn=!0,oi=!0;if(!1===r.getProgramParameter(se,r.LINK_STATUS))if(zn=!1,"function"==typeof n.debug.onShaderError)n.debug.onShaderError(r,se,yt,Et);else{const ui=LV(r,yt,"vertex"),vi=LV(r,Et,"fragment");console.error("THREE.WebGLProgram: Shader Error "+r.getError()+" - VALIDATE_STATUS "+r.getProgramParameter(se,r.VALIDATE_STATUS)+"\n\nMaterial Name: "+Vi.name+"\nMaterial Type: "+Vi.type+"\n\nProgram Info Log: "+Yi+"\n"+ui+"\n"+vi)}else""!==Yi?console.warn("THREE.WebGLProgram: Program Info Log:",Yi):(""===En||""===wi)&&(oi=!1);oi&&(Vi.diagnostics={runnable:zn,programLog:Yi,vertexShader:{log:En,prefix:le},fragmentShader:{log:wi,prefix:Ee}})}r.deleteShader(yt),r.deleteShader(Et),Un=new xI(r,se),wt=function zue(n,e){const t={},i=n.getProgramParameter(e,n.ACTIVE_ATTRIBUTES);for(let r=0;r0,ar=wt.clearcoat>0,ur=wt.iridescence>0,$r=wt.sheen>0,Fr=wt.transmission>0,Aa=zt&&!!wt.anisotropyMap,Qo=ar&&!!wt.clearcoatMap,As=ar&&!!wt.clearcoatNormalMap,Is=ar&&!!wt.clearcoatRoughnessMap,ga=ur&&!!wt.iridescenceMap,us=ur&&!!wt.iridescenceThicknessMap,Sd=$r&&!!wt.sheenColorMap,qa=$r&&!!wt.sheenRoughnessMap,Ro=!!wt.specularMap,uo=!!wt.specularColorMap,To=!!wt.specularIntensityMap,Tn=Fr&&!!wt.transmissionMap,Er=Fr&&!!wt.thicknessMap,Xn=!!wt.alphaMap,Xr=!!wt.extensions;let Hs=By;wt.toneMapped&&(null===Us||!0===Us.isXRRenderTarget)&&(Hs=n.toneMapping);const Xa={isWebGL2:A,shaderID:mr,shaderType:wt.type,shaderName:wt.name,vertexShader:fi,fragmentShader:Rr,defines:wt.defines,customVertexShaderID:ms,customFragmentShaderID:Fs,isRawShaderMaterial:!0===wt.isRawShaderMaterial,glslVersion:wt.glslVersion,precision:G,batching:!0===En.isBatchedMesh,instancing:ws,instancingColor:ws&&null!==En.instanceColor,instancingMorph:ws&&null!==En.morphTexture,supportsVertexTextures:R,outputColorSpace:null===Us?n.outputColorSpace:!0===Us.isXRRenderTarget?Us.texture.colorSpace:Qh,alphaToCoverage:!!wt.alphaToCoverage,map:lo,matcap:!!wt.matcap,envMap:ps,envMapMode:ps&&ui.mapping,envMapCubeUVHeight:vi,aoMap:gr,lightMap:ls,bumpMap:Tr,normalMap:Ys,displacementMap:R&&qs,emissiveMap:ho,normalMapObjectSpace:Ys&&1===wt.normalMapType,normalMapTangentSpace:Ys&&0===wt.normalMapType,metalnessMap:ka,roughnessMap:gn,anisotropy:zt,anisotropyMap:Aa,clearcoat:ar,clearcoatMap:Qo,clearcoatNormalMap:As,clearcoatRoughnessMap:Is,iridescence:ur,iridescenceMap:ga,iridescenceThicknessMap:us,sheen:$r,sheenColorMap:Sd,sheenRoughnessMap:qa,specularMap:Ro,specularColorMap:uo,specularIntensityMap:To,transmission:Fr,transmissionMap:Tn,thicknessMap:Er,gradientMap:!!wt.gradientMap,opaque:!1===wt.transparent&&1===wt.blending&&!1===wt.alphaToCoverage,alphaMap:Xn,alphaTest:wt.alphaTest>0,alphaHash:!!wt.alphaHash,combine:wt.combine,mapUv:lo&&se(wt.map.channel),aoMapUv:gr&&se(wt.aoMap.channel),lightMapUv:ls&&se(wt.lightMap.channel),bumpMapUv:Tr&&se(wt.bumpMap.channel),normalMapUv:Ys&&se(wt.normalMap.channel),displacementMapUv:qs&&se(wt.displacementMap.channel),emissiveMapUv:ho&&se(wt.emissiveMap.channel),metalnessMapUv:ka&&se(wt.metalnessMap.channel),roughnessMapUv:gn&&se(wt.roughnessMap.channel),anisotropyMapUv:Aa&&se(wt.anisotropyMap.channel),clearcoatMapUv:Qo&&se(wt.clearcoatMap.channel),clearcoatNormalMapUv:As&&se(wt.clearcoatNormalMap.channel),clearcoatRoughnessMapUv:Is&&se(wt.clearcoatRoughnessMap.channel),iridescenceMapUv:ga&&se(wt.iridescenceMap.channel),iridescenceThicknessMapUv:us&&se(wt.iridescenceThicknessMap.channel),sheenColorMapUv:Sd&&se(wt.sheenColorMap.channel),sheenRoughnessMapUv:qa&&se(wt.sheenRoughnessMap.channel),specularMapUv:Ro&&se(wt.specularMap.channel),specularColorMapUv:uo&&se(wt.specularColorMap.channel),specularIntensityMapUv:To&&se(wt.specularIntensityMap.channel),transmissionMapUv:Tn&&se(wt.transmissionMap.channel),thicknessMapUv:Er&&se(wt.thicknessMap.channel),alphaMapUv:Xn&&se(wt.alphaMap.channel),vertexTangents:!!zn.attributes.tangent&&(Ys||zt),vertexColors:wt.vertexColors,vertexAlphas:!0===wt.vertexColors&&!!zn.attributes.color&&4===zn.attributes.color.itemSize,pointsUvs:!0===En.isPoints&&!!zn.attributes.uv&&(lo||Xn),fog:!!wi,useFog:!0===wt.fog,fogExp2:!!wi&&wi.isFogExp2,flatShading:!0===wt.flatShading,sizeAttenuation:!0===wt.sizeAttenuation,logarithmicDepthBuffer:S,skinning:!0===En.isSkinnedMesh,morphTargets:void 0!==zn.morphAttributes.position,morphNormals:void 0!==zn.morphAttributes.normal,morphColors:void 0!==zn.morphAttributes.color,morphTargetsCount:ns,morphTextureStride:$s,numDirLights:Kt.directional.length,numPointLights:Kt.point.length,numSpotLights:Kt.spot.length,numSpotLightMaps:Kt.spotLightMap.length,numRectAreaLights:Kt.rectArea.length,numHemiLights:Kt.hemi.length,numDirLightShadows:Kt.directionalShadowMap.length,numPointLightShadows:Kt.pointShadowMap.length,numSpotLightShadows:Kt.spotShadowMap.length,numSpotLightShadowsWithMaps:Kt.numSpotLightShadowsWithMaps,numLightProbes:Kt.numLightProbes,numClippingPlanes:o.numPlanes,numClipIntersection:o.numIntersection,dithering:wt.dithering,shadowMapEnabled:n.shadowMap.enabled&&Vi.length>0,shadowMapType:n.shadowMap.type,toneMapping:Hs,useLegacyLights:n._useLegacyLights,decodeVideoTexture:lo&&!0===wt.map.isVideoTexture&&Ol.getTransfer(wt.map.colorSpace)===Vc,premultipliedAlpha:wt.premultipliedAlpha,doubleSided:2===wt.side,flipSided:1===wt.side,useDepthPacking:wt.depthPacking>=0,depthPacking:wt.depthPacking||0,index0AttributeName:wt.index0AttributeName,extensionDerivatives:Xr&&!0===wt.extensions.derivatives,extensionFragDepth:Xr&&!0===wt.extensions.fragDepth,extensionDrawBuffers:Xr&&!0===wt.extensions.drawBuffers,extensionShaderTextureLOD:Xr&&!0===wt.extensions.shaderTextureLOD,extensionClipCullDistance:Xr&&!0===wt.extensions.clipCullDistance&&i.has("WEBGL_clip_cull_distance"),extensionMultiDraw:Xr&&!0===wt.extensions.multiDraw&&i.has("WEBGL_multi_draw"),rendererExtensionFragDepth:A||i.has("EXT_frag_depth"),rendererExtensionDrawBuffers:A||i.has("WEBGL_draw_buffers"),rendererExtensionShaderTextureLod:A||i.has("EXT_shader_texture_lod"),rendererExtensionParallelShaderCompile:i.has("KHR_parallel_shader_compile"),customProgramCacheKey:wt.customProgramCacheKey()};return Xa.vertexUv1s=h.has(1),Xa.vertexUv2s=h.has(2),Xa.vertexUv3s=h.has(3),h.clear(),Xa},getProgramCacheKey:function Ee(wt){const Kt=[];if(wt.shaderID?Kt.push(wt.shaderID):(Kt.push(wt.customVertexShaderID),Kt.push(wt.customFragmentShaderID)),void 0!==wt.defines)for(const Vi in wt.defines)Kt.push(Vi),Kt.push(wt.defines[Vi]);return!1===wt.isRawShaderMaterial&&(function Ce(wt,Kt){wt.push(Kt.precision),wt.push(Kt.outputColorSpace),wt.push(Kt.envMapMode),wt.push(Kt.envMapCubeUVHeight),wt.push(Kt.mapUv),wt.push(Kt.alphaMapUv),wt.push(Kt.lightMapUv),wt.push(Kt.aoMapUv),wt.push(Kt.bumpMapUv),wt.push(Kt.normalMapUv),wt.push(Kt.displacementMapUv),wt.push(Kt.emissiveMapUv),wt.push(Kt.metalnessMapUv),wt.push(Kt.roughnessMapUv),wt.push(Kt.anisotropyMapUv),wt.push(Kt.clearcoatMapUv),wt.push(Kt.clearcoatNormalMapUv),wt.push(Kt.clearcoatRoughnessMapUv),wt.push(Kt.iridescenceMapUv),wt.push(Kt.iridescenceThicknessMapUv),wt.push(Kt.sheenColorMapUv),wt.push(Kt.sheenRoughnessMapUv),wt.push(Kt.specularMapUv),wt.push(Kt.specularColorMapUv),wt.push(Kt.specularIntensityMapUv),wt.push(Kt.transmissionMapUv),wt.push(Kt.thicknessMapUv),wt.push(Kt.combine),wt.push(Kt.fogExp2),wt.push(Kt.sizeAttenuation),wt.push(Kt.morphTargetsCount),wt.push(Kt.morphAttributeCount),wt.push(Kt.numDirLights),wt.push(Kt.numPointLights),wt.push(Kt.numSpotLights),wt.push(Kt.numSpotLightMaps),wt.push(Kt.numHemiLights),wt.push(Kt.numRectAreaLights),wt.push(Kt.numDirLightShadows),wt.push(Kt.numPointLightShadows),wt.push(Kt.numSpotLightShadows),wt.push(Kt.numSpotLightShadowsWithMaps),wt.push(Kt.numLightProbes),wt.push(Kt.shadowMapType),wt.push(Kt.toneMapping),wt.push(Kt.numClippingPlanes),wt.push(Kt.numClipIntersection),wt.push(Kt.depthPacking)}(Kt,wt),function We(wt,Kt){l.disableAll(),Kt.isWebGL2&&l.enable(0),Kt.supportsVertexTextures&&l.enable(1),Kt.instancing&&l.enable(2),Kt.instancingColor&&l.enable(3),Kt.instancingMorph&&l.enable(4),Kt.matcap&&l.enable(5),Kt.envMap&&l.enable(6),Kt.normalMapObjectSpace&&l.enable(7),Kt.normalMapTangentSpace&&l.enable(8),Kt.clearcoat&&l.enable(9),Kt.iridescence&&l.enable(10),Kt.alphaTest&&l.enable(11),Kt.vertexColors&&l.enable(12),Kt.vertexAlphas&&l.enable(13),Kt.vertexUv1s&&l.enable(14),Kt.vertexUv2s&&l.enable(15),Kt.vertexUv3s&&l.enable(16),Kt.vertexTangents&&l.enable(17),Kt.anisotropy&&l.enable(18),Kt.alphaHash&&l.enable(19),Kt.batching&&l.enable(20),wt.push(l.mask),l.disableAll(),Kt.fog&&l.enable(0),Kt.useFog&&l.enable(1),Kt.flatShading&&l.enable(2),Kt.logarithmicDepthBuffer&&l.enable(3),Kt.skinning&&l.enable(4),Kt.morphTargets&&l.enable(5),Kt.morphNormals&&l.enable(6),Kt.morphColors&&l.enable(7),Kt.premultipliedAlpha&&l.enable(8),Kt.shadowMapEnabled&&l.enable(9),Kt.useLegacyLights&&l.enable(10),Kt.doubleSided&&l.enable(11),Kt.flipSided&&l.enable(12),Kt.useDepthPacking&&l.enable(13),Kt.dithering&&l.enable(14),Kt.transmission&&l.enable(15),Kt.sheen&&l.enable(16),Kt.opaque&&l.enable(17),Kt.pointsUvs&&l.enable(18),Kt.decodeVideoTexture&&l.enable(19),Kt.alphaToCoverage&&l.enable(20),wt.push(l.mask)}(Kt,wt),Kt.push(n.outputColorSpace)),Kt.push(wt.customProgramCacheKey),Kt.join()},getUniforms:function Mt(wt){const Kt=re[wt.type];let Vi;return Vi=Kt?x5.clone(E0[Kt].uniforms):wt.uniforms,Vi},acquireProgram:function yt(wt,Kt){let Vi;for(let Yi=0,En=f.length;Yi0?i.push(le):!0===R.transparent?r.push(le):t.push(le)},unshift:function d(A,S,R,G,re,se){const le=o(A,S,R,G,re,se);R.transmission>0?i.unshift(le):!0===R.transparent?r.unshift(le):t.unshift(le)},finish:function f(){for(let A=e,S=n.length;A1&&t.sort(A||ife),i.length>1&&i.sort(S||VV),r.length>1&&r.sort(S||VV)}}}function rfe(){let n=new WeakMap;return{get:function e(i,r){const s=n.get(i);let o;return void 0===s?(o=new GV,n.set(i,[o])):r>=s.length?(o=new GV,s.push(o)):o=s[r],o},dispose:function t(){n=new WeakMap}}}function sfe(){const n={};return{get:function(e){if(void 0!==n[e.id])return n[e.id];let t;switch(e.type){case"DirectionalLight":t={direction:new It,color:new Cr};break;case"SpotLight":t={position:new It,direction:new It,color:new Cr,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":t={position:new It,color:new Cr,distance:0,decay:0};break;case"HemisphereLight":t={direction:new It,skyColor:new Cr,groundColor:new Cr};break;case"RectAreaLight":t={color:new Cr,position:new It,halfWidth:new It,halfHeight:new It}}return n[e.id]=t,t}}}let afe=0;function lfe(n,e){return(e.castShadow?2:0)-(n.castShadow?2:0)+(e.map?1:0)-(n.map?1:0)}function cfe(n,e){const t=new sfe,i=function ofe(){const n={};return{get:function(e){if(void 0!==n[e.id])return n[e.id];let t;switch(e.type){case"DirectionalLight":case"SpotLight":t={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Qi};break;case"PointLight":t={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Qi,shadowCameraNear:1,shadowCameraFar:1e3}}return n[e.id]=t,t}}}(),r={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1,numSpotMaps:-1,numLightProbes:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotLightMap:[],spotShadow:[],spotShadowMap:[],spotLightMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[],numSpotLightShadowsWithMaps:0,numLightProbes:0};for(let f=0;f<9;f++)r.probe.push(new It);const s=new It,o=new wo,l=new wo;return{setup:function d(f,A){let S=0,R=0,G=0;for(let Vi=0;Vi<9;Vi++)r.probe[Vi].set(0,0,0);let re=0,se=0,le=0,Ee=0,Ce=0,We=0,Mt=0,yt=0,Et=0,Xt=0,Un=0;f.sort(lfe);const wt=!0===A?Math.PI:1;for(let Vi=0,Yi=f.length;Vi0&&(e.isWebGL2?!0===n.has("OES_texture_float_linear")?(r.rectAreaLTC1=Ms.LTC_FLOAT_1,r.rectAreaLTC2=Ms.LTC_FLOAT_2):(r.rectAreaLTC1=Ms.LTC_HALF_1,r.rectAreaLTC2=Ms.LTC_HALF_2):!0===n.has("OES_texture_float_linear")?(r.rectAreaLTC1=Ms.LTC_FLOAT_1,r.rectAreaLTC2=Ms.LTC_FLOAT_2):!0===n.has("OES_texture_half_float_linear")?(r.rectAreaLTC1=Ms.LTC_HALF_1,r.rectAreaLTC2=Ms.LTC_HALF_2):console.error("THREE.WebGLRenderer: Unable to use RectAreaLight. Missing WebGL extensions.")),r.ambient[0]=S,r.ambient[1]=R,r.ambient[2]=G;const Kt=r.hash;(Kt.directionalLength!==re||Kt.pointLength!==se||Kt.spotLength!==le||Kt.rectAreaLength!==Ee||Kt.hemiLength!==Ce||Kt.numDirectionalShadows!==We||Kt.numPointShadows!==Mt||Kt.numSpotShadows!==yt||Kt.numSpotMaps!==Et||Kt.numLightProbes!==Un)&&(r.directional.length=re,r.spot.length=le,r.rectArea.length=Ee,r.point.length=se,r.hemi.length=Ce,r.directionalShadow.length=We,r.directionalShadowMap.length=We,r.pointShadow.length=Mt,r.pointShadowMap.length=Mt,r.spotShadow.length=yt,r.spotShadowMap.length=yt,r.directionalShadowMatrix.length=We,r.pointShadowMatrix.length=Mt,r.spotLightMatrix.length=yt+Et-Xt,r.spotLightMap.length=Et,r.numSpotLightShadowsWithMaps=Xt,r.numLightProbes=Un,Kt.directionalLength=re,Kt.pointLength=se,Kt.spotLength=le,Kt.rectAreaLength=Ee,Kt.hemiLength=Ce,Kt.numDirectionalShadows=We,Kt.numPointShadows=Mt,Kt.numSpotShadows=yt,Kt.numSpotMaps=Et,Kt.numLightProbes=Un,r.version=afe++)},setupView:function h(f,A){let S=0,R=0,G=0,re=0,se=0;const le=A.matrixWorldInverse;for(let Ee=0,Ce=f.length;Ee=l.length?(d=new qV(n,e),l.push(d)):d=l[o],d},dispose:function r(){t=new WeakMap}}}class P5 extends ld{constructor(e){super(),this.isMeshDepthMaterial=!0,this.type="MeshDepthMaterial",this.depthPacking=3200,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.setValues(e)}copy(e){return super.copy(e),this.depthPacking=e.depthPacking,this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this}}class QV extends ld{constructor(e){super(),this.isMeshDistanceMaterial=!0,this.type="MeshDistanceMaterial",this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.setValues(e)}copy(e){return super.copy(e),this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this}}function ffe(n,e,t){let i=new _I;const r=new Qi,s=new Qi,o=new nc,l=new P5({depthPacking:3201}),d=new QV,h={},f=t.maxTextureSize,A={0:1,1:0,2:2},S=new Dh({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new Qi},radius:{value:4}},vertexShader:"void main() {\n\tgl_Position = vec4( position, 1.0 );\n}",fragmentShader:"uniform sampler2D shadow_pass;\nuniform vec2 resolution;\nuniform float radius;\n#include \nvoid main() {\n\tconst float samples = float( VSM_SAMPLES );\n\tfloat mean = 0.0;\n\tfloat squared_mean = 0.0;\n\tfloat uvStride = samples <= 1.0 ? 0.0 : 2.0 / ( samples - 1.0 );\n\tfloat uvStart = samples <= 1.0 ? 0.0 : - 1.0;\n\tfor ( float i = 0.0; i < samples; i ++ ) {\n\t\tfloat uvOffset = uvStart + i * uvStride;\n\t\t#ifdef HORIZONTAL_PASS\n\t\t\tvec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ) );\n\t\t\tmean += distribution.x;\n\t\t\tsquared_mean += distribution.y * distribution.y + distribution.x * distribution.x;\n\t\t#else\n\t\t\tfloat depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ) );\n\t\t\tmean += depth;\n\t\t\tsquared_mean += depth * depth;\n\t\t#endif\n\t}\n\tmean = mean / samples;\n\tsquared_mean = squared_mean / samples;\n\tfloat std_dev = sqrt( squared_mean - mean * mean );\n\tgl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) );\n}"}),R=S.clone();R.defines.HORIZONTAL_PASS=1;const G=new no;G.setAttribute("position",new No(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));const re=new ha(G,S),se=this;this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=Zz;let le=this.type;function Ee(yt,Et){const Xt=e.update(re);S.defines.VSM_SAMPLES!==yt.blurSamples&&(S.defines.VSM_SAMPLES=yt.blurSamples,R.defines.VSM_SAMPLES=yt.blurSamples,S.needsUpdate=!0,R.needsUpdate=!0),null===yt.mapPass&&(yt.mapPass=new Wh(r.x,r.y)),S.uniforms.shadow_pass.value=yt.map.texture,S.uniforms.resolution.value=yt.mapSize,S.uniforms.radius.value=yt.radius,n.setRenderTarget(yt.mapPass),n.clear(),n.renderBufferDirect(Et,null,Xt,S,re,null),R.uniforms.shadow_pass.value=yt.mapPass.texture,R.uniforms.resolution.value=yt.mapSize,R.uniforms.radius.value=yt.radius,n.setRenderTarget(yt.map),n.clear(),n.renderBufferDirect(Et,null,Xt,R,re,null)}function Ce(yt,Et,Xt,Un){let wt=null;const Kt=!0===Xt.isPointLight?yt.customDistanceMaterial:yt.customDepthMaterial;if(void 0!==Kt)wt=Kt;else if(wt=!0===Xt.isPointLight?d:l,n.localClippingEnabled&&!0===Et.clipShadows&&Array.isArray(Et.clippingPlanes)&&0!==Et.clippingPlanes.length||Et.displacementMap&&0!==Et.displacementScale||Et.alphaMap&&Et.alphaTest>0||Et.map&&Et.alphaTest>0){const Vi=wt.uuid,Yi=Et.uuid;let En=h[Vi];void 0===En&&(En={},h[Vi]=En);let wi=En[Yi];void 0===wi&&(wi=wt.clone(),En[Yi]=wi,Et.addEventListener("dispose",Mt)),wt=wi}return wt.visible=Et.visible,wt.wireframe=Et.wireframe,wt.side=Un===z_?null!==Et.shadowSide?Et.shadowSide:Et.side:null!==Et.shadowSide?Et.shadowSide:A[Et.side],wt.alphaMap=Et.alphaMap,wt.alphaTest=Et.alphaTest,wt.map=Et.map,wt.clipShadows=Et.clipShadows,wt.clippingPlanes=Et.clippingPlanes,wt.clipIntersection=Et.clipIntersection,wt.displacementMap=Et.displacementMap,wt.displacementScale=Et.displacementScale,wt.displacementBias=Et.displacementBias,wt.wireframeLinewidth=Et.wireframeLinewidth,wt.linewidth=Et.linewidth,!0===Xt.isPointLight&&!0===wt.isMeshDistanceMaterial&&(n.properties.get(wt).light=Xt),wt}function We(yt,Et,Xt,Un,wt){if(!1===yt.visible)return;if(yt.layers.test(Et.layers)&&(yt.isMesh||yt.isLine||yt.isPoints)&&(yt.castShadow||yt.receiveShadow&&wt===z_)&&(!yt.frustumCulled||i.intersectsObject(yt))){yt.modelViewMatrix.multiplyMatrices(Xt.matrixWorldInverse,yt.matrixWorld);const Yi=e.update(yt),En=yt.material;if(Array.isArray(En)){const wi=Yi.groups;for(let zn=0,oi=wi.length;znf||r.y>f)&&(r.x>f&&(s.x=Math.floor(f/vi.x),r.x=s.x*vi.x,ui.mapSize.x=s.x),r.y>f&&(s.y=Math.floor(f/vi.y),r.y=s.y*vi.y,ui.mapSize.y=s.y)),null===ui.map||!0===Yi||!0===En){const Mr=this.type!==z_?{minFilter:vd,magFilter:vd}:{};null!==ui.map&&ui.map.dispose(),ui.map=new Wh(r.x,r.y,Mr),ui.map.texture.name=oi.name+".shadowMap",ui.camera.updateProjectionMatrix()}n.setRenderTarget(ui.map),n.clear();const mr=ui.getViewportCount();for(let Mr=0;Mr=1):-1!==mr.indexOf("OpenGL ES")&&(vi=parseFloat(/^OpenGL ES (\d)/.exec(mr)[1]),ui=vi>=2);let Mr=null,ns={};const $s=n.getParameter(n.SCISSOR_BOX),fi=n.getParameter(n.VIEWPORT),Rr=(new nc).fromArray($s),ms=(new nc).fromArray(fi);function Fs(Xn,is,ki,Xr){const Hs=new Uint8Array(4),Xa=n.createTexture();n.bindTexture(Xn,Xa),n.texParameteri(Xn,n.TEXTURE_MIN_FILTER,n.NEAREST),n.texParameteri(Xn,n.TEXTURE_MAG_FILTER,n.NEAREST);for(let jl=0;jl"u")&&/OculusBrowser/g.test(navigator.userAgent),f=new Qi,A=new WeakMap;let S;const R=new WeakMap;let G=!1;try{G=typeof OffscreenCanvas<"u"&&null!==new OffscreenCanvas(1,1).getContext("2d")}catch{}function re(gn,zt){return G?new OffscreenCanvas(gn,zt):GS("canvas")}function se(gn,zt,ar,ur){let $r=1;const Fr=ka(gn);if((Fr.width>ur||Fr.height>ur)&&($r=ur/Math.max(Fr.width,Fr.height)),$r<1||!0===zt){if(typeof HTMLImageElement<"u"&&gn instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&gn instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&gn instanceof ImageBitmap||typeof VideoFrame<"u"&&gn instanceof VideoFrame){const Aa=zt?KD:Math.floor,Qo=Aa($r*Fr.width),As=Aa($r*Fr.height);void 0===S&&(S=re(Qo,As));const Is=ar?re(Qo,As):S;return Is.width=Qo,Is.height=As,Is.getContext("2d").drawImage(gn,0,0,Qo,As),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+Fr.width+"x"+Fr.height+") to ("+Qo+"x"+As+")."),Is}return"data"in gn&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+Fr.width+"x"+Fr.height+")."),gn}return gn}function le(gn){const zt=ka(gn);return e5(zt.width)&&e5(zt.height)}function Ce(gn,zt){return gn.generateMipmaps&&zt&&gn.minFilter!==vd&&gn.minFilter!==Hc}function We(gn){n.generateMipmap(gn)}function Mt(gn,zt,ar,ur,$r=!1){if(!1===l)return zt;if(null!==gn){if(void 0!==n[gn])return n[gn];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+gn+"'")}let Fr=zt;if(zt===n.RED&&(ar===n.FLOAT&&(Fr=n.R32F),ar===n.HALF_FLOAT&&(Fr=n.R16F),ar===n.UNSIGNED_BYTE&&(Fr=n.R8)),zt===n.RED_INTEGER&&(ar===n.UNSIGNED_BYTE&&(Fr=n.R8UI),ar===n.UNSIGNED_SHORT&&(Fr=n.R16UI),ar===n.UNSIGNED_INT&&(Fr=n.R32UI),ar===n.BYTE&&(Fr=n.R8I),ar===n.SHORT&&(Fr=n.R16I),ar===n.INT&&(Fr=n.R32I)),zt===n.RG&&(ar===n.FLOAT&&(Fr=n.RG32F),ar===n.HALF_FLOAT&&(Fr=n.RG16F),ar===n.UNSIGNED_BYTE&&(Fr=n.RG8)),zt===n.RG_INTEGER&&(ar===n.UNSIGNED_BYTE&&(Fr=n.RG8UI),ar===n.UNSIGNED_SHORT&&(Fr=n.RG16UI),ar===n.UNSIGNED_INT&&(Fr=n.RG32UI),ar===n.BYTE&&(Fr=n.RG8I),ar===n.SHORT&&(Fr=n.RG16I),ar===n.INT&&(Fr=n.RG32I)),zt===n.RGBA){const Aa=$r?WD:Ol.getTransfer(ur);ar===n.FLOAT&&(Fr=n.RGBA32F),ar===n.HALF_FLOAT&&(Fr=n.RGBA16F),ar===n.UNSIGNED_BYTE&&(Fr=Aa===Vc?n.SRGB8_ALPHA8:n.RGBA8),ar===n.UNSIGNED_SHORT_4_4_4_4&&(Fr=n.RGBA4),ar===n.UNSIGNED_SHORT_5_5_5_1&&(Fr=n.RGB5_A1)}return(Fr===n.R16F||Fr===n.R32F||Fr===n.RG16F||Fr===n.RG32F||Fr===n.RGBA16F||Fr===n.RGBA32F)&&e.get("EXT_color_buffer_float"),Fr}function yt(gn,zt,ar){return!0===Ce(gn,ar)||gn.isFramebufferTexture&&gn.minFilter!==vd&&gn.minFilter!==Hc?Math.log2(Math.max(zt.width,zt.height))+1:void 0!==gn.mipmaps&&gn.mipmaps.length>0?gn.mipmaps.length:gn.isCompressedTexture&&Array.isArray(gn.image)?zt.mipmaps.length:1}function Et(gn){return gn===vd||1004===gn||gn===ky?n.NEAREST:n.LINEAR}function Xt(gn){const zt=gn.target;zt.removeEventListener("dispose",Xt),function wt(gn){const zt=i.get(gn);if(void 0===zt.__webglInit)return;const ar=gn.source,ur=R.get(ar);if(ur){const $r=ur[zt.__cacheKey];$r.usedTimes--,0===$r.usedTimes&&Kt(gn),0===Object.keys(ur).length&&R.delete(ar)}i.remove(gn)}(zt),zt.isVideoTexture&&A.delete(zt)}function Un(gn){const zt=gn.target;zt.removeEventListener("dispose",Un),function Vi(gn){const zt=i.get(gn);if(gn.depthTexture&&gn.depthTexture.dispose(),gn.isWebGLCubeRenderTarget)for(let ur=0;ur<6;ur++){if(Array.isArray(zt.__webglFramebuffer[ur]))for(let $r=0;$r0&&ar.__version!==gn.version){const ur=gn.image;if(null===ur)console.warn("THREE.WebGLRenderer: Texture marked for update but no image data found.");else{if(!1!==ur.complete)return void ms(ar,gn,zt);console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete")}}t.bindTexture(n.TEXTURE_2D,ar.__webglTexture,n.TEXTURE0+zt)}const Mr={[Ry]:n.REPEAT,[vu]:n.CLAMP_TO_EDGE,[_2]:n.MIRRORED_REPEAT},ns={[vd]:n.NEAREST,1004:n.NEAREST_MIPMAP_NEAREST,[ky]:n.NEAREST_MIPMAP_LINEAR,[Hc]:n.LINEAR,[y2]:n.LINEAR_MIPMAP_NEAREST,[oA]:n.LINEAR_MIPMAP_LINEAR},$s={512:n.NEVER,519:n.ALWAYS,513:n.LESS,515:n.LEQUAL,514:n.EQUAL,518:n.GEQUAL,516:n.GREATER,517:n.NOTEQUAL};function fi(gn,zt,ar){if(zt.type===aA&&!1===e.has("OES_texture_float_linear")&&(zt.magFilter===Hc||zt.magFilter===y2||zt.magFilter===ky||zt.magFilter===oA||zt.minFilter===Hc||zt.minFilter===y2||zt.minFilter===ky||zt.minFilter===oA)&&console.warn("THREE.WebGLRenderer: Unable to use linear filtering with floating point textures. OES_texture_float_linear not supported on this device."),ar?(n.texParameteri(gn,n.TEXTURE_WRAP_S,Mr[zt.wrapS]),n.texParameteri(gn,n.TEXTURE_WRAP_T,Mr[zt.wrapT]),(gn===n.TEXTURE_3D||gn===n.TEXTURE_2D_ARRAY)&&n.texParameteri(gn,n.TEXTURE_WRAP_R,Mr[zt.wrapR]),n.texParameteri(gn,n.TEXTURE_MAG_FILTER,ns[zt.magFilter]),n.texParameteri(gn,n.TEXTURE_MIN_FILTER,ns[zt.minFilter])):(n.texParameteri(gn,n.TEXTURE_WRAP_S,n.CLAMP_TO_EDGE),n.texParameteri(gn,n.TEXTURE_WRAP_T,n.CLAMP_TO_EDGE),(gn===n.TEXTURE_3D||gn===n.TEXTURE_2D_ARRAY)&&n.texParameteri(gn,n.TEXTURE_WRAP_R,n.CLAMP_TO_EDGE),(zt.wrapS!==vu||zt.wrapT!==vu)&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping."),n.texParameteri(gn,n.TEXTURE_MAG_FILTER,Et(zt.magFilter)),n.texParameteri(gn,n.TEXTURE_MIN_FILTER,Et(zt.minFilter)),zt.minFilter!==vd&&zt.minFilter!==Hc&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.")),zt.compareFunction&&(n.texParameteri(gn,n.TEXTURE_COMPARE_MODE,n.COMPARE_REF_TO_TEXTURE),n.texParameteri(gn,n.TEXTURE_COMPARE_FUNC,$s[zt.compareFunction])),!0===e.has("EXT_texture_filter_anisotropic")){if(zt.magFilter===vd||zt.minFilter!==ky&&zt.minFilter!==oA||zt.type===aA&&!1===e.has("OES_texture_float_linear")||!1===l&&zt.type===lA&&!1===e.has("OES_texture_half_float_linear"))return;if(zt.anisotropy>1||i.get(zt).__currentAnisotropy){const ur=e.get("EXT_texture_filter_anisotropic");n.texParameterf(gn,ur.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(zt.anisotropy,r.getMaxAnisotropy())),i.get(zt).__currentAnisotropy=zt.anisotropy}}}function Rr(gn,zt){let ar=!1;void 0===gn.__webglInit&&(gn.__webglInit=!0,zt.addEventListener("dispose",Xt));const ur=zt.source;let $r=R.get(ur);void 0===$r&&($r={},R.set(ur,$r));const Fr=function zn(gn){const zt=[];return zt.push(gn.wrapS),zt.push(gn.wrapT),zt.push(gn.wrapR||0),zt.push(gn.magFilter),zt.push(gn.minFilter),zt.push(gn.anisotropy),zt.push(gn.internalFormat),zt.push(gn.format),zt.push(gn.type),zt.push(gn.generateMipmaps),zt.push(gn.premultiplyAlpha),zt.push(gn.flipY),zt.push(gn.unpackAlignment),zt.push(gn.colorSpace),zt.join()}(zt);if(Fr!==gn.__cacheKey){void 0===$r[Fr]&&($r[Fr]={texture:n.createTexture(),usedTimes:0},o.memory.textures++,ar=!0),$r[Fr].usedTimes++;const Aa=$r[gn.__cacheKey];void 0!==Aa&&($r[gn.__cacheKey].usedTimes--,0===Aa.usedTimes&&Kt(zt)),gn.__cacheKey=Fr,gn.__webglTexture=$r[Fr].texture}return ar}function ms(gn,zt,ar){let ur=n.TEXTURE_2D;(zt.isDataArrayTexture||zt.isCompressedArrayTexture)&&(ur=n.TEXTURE_2D_ARRAY),zt.isData3DTexture&&(ur=n.TEXTURE_3D);const $r=Rr(gn,zt),Fr=zt.source;t.bindTexture(ur,gn.__webglTexture,n.TEXTURE0+ar);const Aa=i.get(Fr);if(Fr.version!==Aa.__version||!0===$r){t.activeTexture(n.TEXTURE0+ar);const Qo=Ol.getPrimaries(Ol.workingColorSpace),As=""===zt.colorSpace?null:Ol.getPrimaries(zt.colorSpace),Is=""===zt.colorSpace||Qo===As?n.NONE:n.BROWSER_DEFAULT_WEBGL;n.pixelStorei(n.UNPACK_FLIP_Y_WEBGL,zt.flipY),n.pixelStorei(n.UNPACK_PREMULTIPLY_ALPHA_WEBGL,zt.premultiplyAlpha),n.pixelStorei(n.UNPACK_ALIGNMENT,zt.unpackAlignment),n.pixelStorei(n.UNPACK_COLORSPACE_CONVERSION_WEBGL,Is);const ga=function Ee(gn){return!l&&(gn.wrapS!==vu||gn.wrapT!==vu||gn.minFilter!==vd&&gn.minFilter!==Hc)}(zt)&&!1===le(zt.image);let us=se(zt.image,ga,!1,r.maxTextureSize);us=ho(zt,us);const Sd=le(us)||l,qa=s.convert(zt.format,zt.colorSpace);let To,Ro=s.convert(zt.type),uo=Mt(zt.internalFormat,qa,Ro,zt.colorSpace,zt.isVideoTexture);fi(ur,zt,Sd);const Tn=zt.mipmaps,Er=l&&!0!==zt.isVideoTexture&&36196!==uo,mo=void 0===Aa.__version||!0===$r,Xn=Fr.dataReady,is=yt(zt,us,Sd);if(zt.isDepthTexture)uo=n.DEPTH_COMPONENT,l?uo=zt.type===aA?n.DEPTH_COMPONENT32F:zt.type===Oy?n.DEPTH_COMPONENT24:zt.type===Eb?n.DEPTH24_STENCIL8:n.DEPTH_COMPONENT16:zt.type===aA&&console.error("WebGLRenderer: Floating point depth texture requires WebGL2."),zt.format===Tb&&uo===n.DEPTH_COMPONENT&&1012!==zt.type&&zt.type!==Oy&&(console.warn("THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture."),zt.type=Oy,Ro=s.convert(zt.type)),zt.format===v2&&uo===n.DEPTH_COMPONENT&&(uo=n.DEPTH_STENCIL,zt.type!==Eb&&(console.warn("THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture."),zt.type=Eb,Ro=s.convert(zt.type))),mo&&(Er?t.texStorage2D(n.TEXTURE_2D,1,uo,us.width,us.height):t.texImage2D(n.TEXTURE_2D,0,uo,us.width,us.height,0,qa,Ro,null));else if(zt.isDataTexture)if(Tn.length>0&&Sd){Er&&mo&&t.texStorage2D(n.TEXTURE_2D,is,uo,Tn[0].width,Tn[0].height);for(let ki=0,Xr=Tn.length;ki>=1,Xr>>=1}}else if(Tn.length>0&&Sd){if(Er&&mo){const ki=ka(Tn[0]);t.texStorage2D(n.TEXTURE_2D,is,uo,ki.width,ki.height)}for(let ki=0,Xr=Tn.length;ki>Fr),us=Math.max(1,zt.height>>Fr);$r===n.TEXTURE_3D||$r===n.TEXTURE_2D_ARRAY?t.texImage3D($r,Fr,As,ga,us,zt.depth,0,Aa,Qo,null):t.texImage2D($r,Fr,As,ga,us,0,Aa,Qo,null)}t.bindFramebuffer(n.FRAMEBUFFER,gn),Ys(zt)?d.framebufferTexture2DMultisampleEXT(n.FRAMEBUFFER,ur,$r,i.get(ar).__webglTexture,0,Tr(zt)):($r===n.TEXTURE_2D||$r>=n.TEXTURE_CUBE_MAP_POSITIVE_X&&$r<=n.TEXTURE_CUBE_MAP_NEGATIVE_Z)&&n.framebufferTexture2D(n.FRAMEBUFFER,ur,$r,i.get(ar).__webglTexture,Fr),t.bindFramebuffer(n.FRAMEBUFFER,null)}function ws(gn,zt,ar){if(n.bindRenderbuffer(n.RENDERBUFFER,gn),zt.depthBuffer&&!zt.stencilBuffer){let ur=!0===l?n.DEPTH_COMPONENT24:n.DEPTH_COMPONENT16;if(ar||Ys(zt)){const $r=zt.depthTexture;$r&&$r.isDepthTexture&&($r.type===aA?ur=n.DEPTH_COMPONENT32F:$r.type===Oy&&(ur=n.DEPTH_COMPONENT24));const Fr=Tr(zt);Ys(zt)?d.renderbufferStorageMultisampleEXT(n.RENDERBUFFER,Fr,ur,zt.width,zt.height):n.renderbufferStorageMultisample(n.RENDERBUFFER,Fr,ur,zt.width,zt.height)}else n.renderbufferStorage(n.RENDERBUFFER,ur,zt.width,zt.height);n.framebufferRenderbuffer(n.FRAMEBUFFER,n.DEPTH_ATTACHMENT,n.RENDERBUFFER,gn)}else if(zt.depthBuffer&&zt.stencilBuffer){const ur=Tr(zt);ar&&!1===Ys(zt)?n.renderbufferStorageMultisample(n.RENDERBUFFER,ur,n.DEPTH24_STENCIL8,zt.width,zt.height):Ys(zt)?d.renderbufferStorageMultisampleEXT(n.RENDERBUFFER,ur,n.DEPTH24_STENCIL8,zt.width,zt.height):n.renderbufferStorage(n.RENDERBUFFER,n.DEPTH_STENCIL,zt.width,zt.height),n.framebufferRenderbuffer(n.FRAMEBUFFER,n.DEPTH_STENCIL_ATTACHMENT,n.RENDERBUFFER,gn)}else{const ur=zt.textures;for(let $r=0;$r0&&!0===e.has("WEBGL_multisampled_render_to_texture")&&!1!==zt.__useRenderToTexture}function ho(gn,zt){const ar=gn.colorSpace,ur=gn.format,$r=gn.type;return!0===gn.isCompressedTexture||!0===gn.isVideoTexture||1035===gn.format||ar!==Qh&&""!==ar&&(Ol.getTransfer(ar)===Vc?!1===l?!0===e.has("EXT_sRGB")&&ur===gp?(gn.format=1035,gn.minFilter=Hc,gn.generateMipmaps=!1):zt=XH.sRGBToLinear(zt):(ur!==gp||$r!==Fy)&&console.warn("THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):console.error("THREE.WebGLTextures: Unsupported texture color space:",ar)),zt}function ka(gn){return typeof HTMLImageElement<"u"&&gn instanceof HTMLImageElement?(f.width=gn.naturalWidth||gn.width,f.height=gn.naturalHeight||gn.height):typeof VideoFrame<"u"&&gn instanceof VideoFrame?(f.width=gn.displayWidth,f.height=gn.displayHeight):(f.width=gn.width,f.height=gn.height),f}this.allocateTextureUnit=function wi(){const gn=Yi;return gn>=r.maxTextures&&console.warn("THREE.WebGLTextures: Trying to use "+gn+" texture units while this GPU supports only "+r.maxTextures),Yi+=1,gn},this.resetTextureUnits=function En(){Yi=0},this.setTexture2D=oi,this.setTexture2DArray=function ui(gn,zt){const ar=i.get(gn);gn.version>0&&ar.__version!==gn.version?ms(ar,gn,zt):t.bindTexture(n.TEXTURE_2D_ARRAY,ar.__webglTexture,n.TEXTURE0+zt)},this.setTexture3D=function vi(gn,zt){const ar=i.get(gn);gn.version>0&&ar.__version!==gn.version?ms(ar,gn,zt):t.bindTexture(n.TEXTURE_3D,ar.__webglTexture,n.TEXTURE0+zt)},this.setTextureCube=function mr(gn,zt){const ar=i.get(gn);gn.version>0&&ar.__version!==gn.version?function Fs(gn,zt,ar){if(6!==zt.image.length)return;const ur=Rr(gn,zt),$r=zt.source;t.bindTexture(n.TEXTURE_CUBE_MAP,gn.__webglTexture,n.TEXTURE0+ar);const Fr=i.get($r);if($r.version!==Fr.__version||!0===ur){t.activeTexture(n.TEXTURE0+ar);const Aa=Ol.getPrimaries(Ol.workingColorSpace),Qo=""===zt.colorSpace?null:Ol.getPrimaries(zt.colorSpace),As=""===zt.colorSpace||Aa===Qo?n.NONE:n.BROWSER_DEFAULT_WEBGL;n.pixelStorei(n.UNPACK_FLIP_Y_WEBGL,zt.flipY),n.pixelStorei(n.UNPACK_PREMULTIPLY_ALPHA_WEBGL,zt.premultiplyAlpha),n.pixelStorei(n.UNPACK_ALIGNMENT,zt.unpackAlignment),n.pixelStorei(n.UNPACK_COLORSPACE_CONVERSION_WEBGL,As);const Is=zt.isCompressedTexture||zt.image[0].isCompressedTexture,ga=zt.image[0]&&zt.image[0].isDataTexture,us=[];for(let ki=0;ki<6;ki++)us[ki]=Is||ga?ga?zt.image[ki].image:zt.image[ki]:se(zt.image[ki],!1,!0,r.maxCubemapSize),us[ki]=ho(zt,us[ki]);const Sd=us[0],qa=le(Sd)||l,Ro=s.convert(zt.format,zt.colorSpace),uo=s.convert(zt.type),To=Mt(zt.internalFormat,Ro,uo,zt.colorSpace),Tn=l&&!0!==zt.isVideoTexture,Er=void 0===Fr.__version||!0===ur,mo=$r.dataReady;let is,Xn=yt(zt,Sd,qa);if(fi(n.TEXTURE_CUBE_MAP,zt,qa),Is){Tn&&Er&&t.texStorage2D(n.TEXTURE_CUBE_MAP,Xn,To,Sd.width,Sd.height);for(let ki=0;ki<6;ki++){is=us[ki].mipmaps;for(let Xr=0;Xr0&&Xn++;const ki=ka(us[0]);t.texStorage2D(n.TEXTURE_CUBE_MAP,Xn,To,ki.width,ki.height)}for(let ki=0;ki<6;ki++)if(ga){Tn?mo&&t.texSubImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+ki,0,0,0,us[ki].width,us[ki].height,Ro,uo,us[ki].data):t.texImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+ki,0,To,us[ki].width,us[ki].height,0,Ro,uo,us[ki].data);for(let Xr=0;Xr1,Qo=le(gn)||l;if(Aa||(void 0===ur.__webglTexture&&(ur.__webglTexture=n.createTexture()),ur.__version=zt.version,o.memory.textures++),Fr){ar.__webglFramebuffer=[];for(let As=0;As<6;As++)if(l&&zt.mipmaps&&zt.mipmaps.length>0){ar.__webglFramebuffer[As]=[];for(let Is=0;Is0){ar.__webglFramebuffer=[];for(let As=0;As0&&!1===Ys(gn)){ar.__webglMultisampledFramebuffer=n.createFramebuffer(),ar.__webglColorRenderbuffer=[],t.bindFramebuffer(n.FRAMEBUFFER,ar.__webglMultisampledFramebuffer);for(let As=0;As<$r.length;As++){const Is=$r[As];ar.__webglColorRenderbuffer[As]=n.createRenderbuffer(),n.bindRenderbuffer(n.RENDERBUFFER,ar.__webglColorRenderbuffer[As]);const ga=s.convert(Is.format,Is.colorSpace),us=s.convert(Is.type),Sd=Mt(Is.internalFormat,ga,us,Is.colorSpace,!0===gn.isXRRenderTarget),qa=Tr(gn);n.renderbufferStorageMultisample(n.RENDERBUFFER,qa,Sd,gn.width,gn.height),n.framebufferRenderbuffer(n.FRAMEBUFFER,n.COLOR_ATTACHMENT0+As,n.RENDERBUFFER,ar.__webglColorRenderbuffer[As])}n.bindRenderbuffer(n.RENDERBUFFER,null),gn.depthBuffer&&(ar.__webglDepthRenderbuffer=n.createRenderbuffer(),ws(ar.__webglDepthRenderbuffer,gn,!0)),t.bindFramebuffer(n.FRAMEBUFFER,null)}}if(Fr){t.bindTexture(n.TEXTURE_CUBE_MAP,ur.__webglTexture),fi(n.TEXTURE_CUBE_MAP,zt,Qo);for(let As=0;As<6;As++)if(l&&zt.mipmaps&&zt.mipmaps.length>0)for(let Is=0;Is0)for(let Is=0;Is0&&!1===Ys(gn)){const zt=gn.textures,ar=gn.width,ur=gn.height;let $r=n.COLOR_BUFFER_BIT;const Fr=[],Aa=gn.stencilBuffer?n.DEPTH_STENCIL_ATTACHMENT:n.DEPTH_ATTACHMENT,Qo=i.get(gn),As=zt.length>1;if(As)for(let Is=0;IsR+G?(h.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:e.handedness,target:this})):!h.inputState.pinching&&S<=R-G&&(h.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:e.handedness,target:this}))}else null!==d&&e.gripSpace&&(s=t.getPose(e.gripSpace,i),null!==s&&(d.matrix.fromArray(s.transform.matrix),d.matrix.decompose(d.position,d.rotation,d.scale),d.matrixWorldNeedsUpdate=!0,s.linearVelocity?(d.hasLinearVelocity=!0,d.linearVelocity.copy(s.linearVelocity)):d.hasLinearVelocity=!1,s.angularVelocity?(d.hasAngularVelocity=!0,d.angularVelocity.copy(s.angularVelocity)):d.hasAngularVelocity=!1));null!==l&&(r=t.getPose(e.targetRaySpace,i),null===r&&null!==s&&(r=s),null!==r&&(l.matrix.fromArray(r.transform.matrix),l.matrix.decompose(l.position,l.rotation,l.scale),l.matrixWorldNeedsUpdate=!0,r.linearVelocity?(l.hasLinearVelocity=!0,l.linearVelocity.copy(r.linearVelocity)):l.hasLinearVelocity=!1,r.angularVelocity?(l.hasAngularVelocity=!0,l.angularVelocity.copy(r.angularVelocity)):l.hasAngularVelocity=!1,this.dispatchEvent(gfe)))}return null!==l&&(l.visible=null!==r),null!==d&&(d.visible=null!==s),null!==h&&(h.visible=null!==o),this}_getHandJoint(e,t){if(void 0===e.joints[t.jointName]){const i=new Wl;i.matrixAutoUpdate=!1,i.visible=!1,e.joints[t.jointName]=i,e.add(i)}return e.joints[t.jointName]}}class vfe{constructor(){this.texture=null,this.mesh=null,this.depthNear=0,this.depthFar=0}init(e,t,i){if(null===this.texture){const r=new zu;e.properties.get(r).__webglTexture=t.texture,(t.depthNear!=i.depthNear||t.depthFar!=i.depthFar)&&(this.depthNear=t.depthNear,this.depthFar=t.depthFar),this.texture=r}}render(e,t){if(null!==this.texture){if(null===this.mesh){const i=t.cameras[0].viewport,r=new Dh({extensions:{fragDepth:!0},vertexShader:"\nvoid main() {\n\n\tgl_Position = vec4( position, 1.0 );\n\n}",fragmentShader:"\nuniform sampler2DArray depthColor;\nuniform float depthWidth;\nuniform float depthHeight;\n\nvoid main() {\n\n\tvec2 coord = vec2( gl_FragCoord.x / depthWidth, gl_FragCoord.y / depthHeight );\n\n\tif ( coord.x >= 1.0 ) {\n\n\t\tgl_FragDepthEXT = texture( depthColor, vec3( coord.x - 1.0, coord.y, 1 ) ).r;\n\n\t} else {\n\n\t\tgl_FragDepthEXT = texture( depthColor, vec3( coord.x, coord.y, 0 ) ).r;\n\n\t}\n\n}",uniforms:{depthColor:{value:this.texture},depthWidth:{value:i.z},depthHeight:{value:i.w}}});this.mesh=new ha(new q2(20,20),r)}e.render(this.mesh,t)}}reset(){this.texture=null,this.mesh=null}}class bfe extends G_{constructor(e,t){super();const i=this;let r=null,s=1,o=null,l="local-floor",d=1,h=null,f=null,A=null,S=null,R=null,G=null;const re=new vfe,se=t.getContextAttributes();let le=null,Ee=null;const Ce=[],We=[],Mt=new Qi;let yt=null;const Et=new Ih;Et.layers.enable(1),Et.viewport=new nc;const Xt=new Ih;Xt.layers.enable(2),Xt.viewport=new nc;const Un=[Et,Xt],wt=new WV;wt.layers.enable(1),wt.layers.enable(2);let Kt=null,Vi=null;function Yi(fi){const Rr=We.indexOf(fi.inputSource);if(-1===Rr)return;const ms=Ce[Rr];void 0!==ms&&(ms.update(fi.inputSource,fi.frame,h||o),ms.dispatchEvent({type:fi.type,data:fi.inputSource}))}function En(){r.removeEventListener("select",Yi),r.removeEventListener("selectstart",Yi),r.removeEventListener("selectend",Yi),r.removeEventListener("squeeze",Yi),r.removeEventListener("squeezestart",Yi),r.removeEventListener("squeezeend",Yi),r.removeEventListener("end",En),r.removeEventListener("inputsourceschange",wi);for(let fi=0;fi=0&&(We[Fs]=null,Ce[Fs].disconnect(ms))}for(let Rr=0;Rr=We.length){We.push(ms),Fs=ws;break}if(null===We[ws]){We[ws]=ms,Fs=ws;break}}if(-1===Fs)break}const Us=Ce[Fs];Us&&Us.connect(ms)}}this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(fi){let Rr=Ce[fi];return void 0===Rr&&(Rr=new R5,Ce[fi]=Rr),Rr.getTargetRaySpace()},this.getControllerGrip=function(fi){let Rr=Ce[fi];return void 0===Rr&&(Rr=new R5,Ce[fi]=Rr),Rr.getGripSpace()},this.getHand=function(fi){let Rr=Ce[fi];return void 0===Rr&&(Rr=new R5,Ce[fi]=Rr),Rr.getHandSpace()},this.setFramebufferScaleFactor=function(fi){s=fi,!0===i.isPresenting&&console.warn("THREE.WebXRManager: Cannot change framebuffer scale while presenting.")},this.setReferenceSpaceType=function(fi){l=fi,!0===i.isPresenting&&console.warn("THREE.WebXRManager: Cannot change reference space type while presenting.")},this.getReferenceSpace=function(){return h||o},this.setReferenceSpace=function(fi){h=fi},this.getBaseLayer=function(){return null!==S?S:R},this.getBinding=function(){return A},this.getFrame=function(){return G},this.getSession=function(){return r},this.setSession=function(){var fi=(0,Te.A)(function*(Rr){if(r=Rr,null!==r){if(le=e.getRenderTarget(),r.addEventListener("select",Yi),r.addEventListener("selectstart",Yi),r.addEventListener("selectend",Yi),r.addEventListener("squeeze",Yi),r.addEventListener("squeezestart",Yi),r.addEventListener("squeezeend",Yi),r.addEventListener("end",En),r.addEventListener("inputsourceschange",wi),!0!==se.xrCompatible&&(yield t.makeXRCompatible()),yt=e.getPixelRatio(),e.getSize(Mt),void 0===r.renderState.layers||!1===e.capabilities.isWebGL2)R=new XRWebGLLayer(r,t,{antialias:void 0!==r.renderState.layers||se.antialias,alpha:!0,depth:se.depth,stencil:se.stencil,framebufferScaleFactor:s}),r.updateRenderState({baseLayer:R}),e.setPixelRatio(1),e.setSize(R.framebufferWidth,R.framebufferHeight,!1),Ee=new Wh(R.framebufferWidth,R.framebufferHeight,{format:gp,type:Fy,colorSpace:e.outputColorSpace,stencilBuffer:se.stencil});else{let ms=null,Fs=null,Us=null;se.depth&&(Us=se.stencil?t.DEPTH24_STENCIL8:t.DEPTH_COMPONENT24,ms=se.stencil?v2:Tb,Fs=se.stencil?Eb:Oy);const ws={colorFormat:t.RGBA8,depthFormat:Us,scaleFactor:s};A=new XRWebGLBinding(r,t),S=A.createProjectionLayer(ws),r.updateRenderState({layers:[S]}),e.setPixelRatio(1),e.setSize(S.textureWidth,S.textureHeight,!1),Ee=new Wh(S.textureWidth,S.textureHeight,{format:gp,type:Fy,depthTexture:new CV(S.textureWidth,S.textureHeight,Fs,void 0,void 0,void 0,void 0,void 0,void 0,ms),stencilBuffer:se.stencil,colorSpace:e.outputColorSpace,samples:se.antialias?4:0}),e.properties.get(Ee).__ignoreDepthValues=S.ignoreDepthValues}Ee.isXRRenderTarget=!0,this.setFoveation(d),h=null,o=yield r.requestReferenceSpace(l),$s.setContext(r),$s.start(),i.isPresenting=!0,i.dispatchEvent({type:"sessionstart"})}});return function(Rr){return fi.apply(this,arguments)}}(),this.getEnvironmentBlendMode=function(){if(null!==r)return r.environmentBlendMode};const zn=new It,oi=new It;function vi(fi,Rr){null===Rr?fi.matrixWorld.copy(fi.matrix):fi.matrixWorld.multiplyMatrices(Rr.matrixWorld,fi.matrix),fi.matrixWorldInverse.copy(fi.matrixWorld).invert()}this.updateCamera=function(fi){if(null===r)return;null!==re.texture&&(fi.near=re.depthNear,fi.far=re.depthFar),wt.near=Xt.near=Et.near=fi.near,wt.far=Xt.far=Et.far=fi.far,(Kt!==wt.near||Vi!==wt.far)&&(r.updateRenderState({depthNear:wt.near,depthFar:wt.far}),Kt=wt.near,Vi=wt.far,Et.near=Kt,Et.far=Vi,Xt.near=Kt,Xt.far=Vi,Et.updateProjectionMatrix(),Xt.updateProjectionMatrix(),fi.updateProjectionMatrix());const Rr=fi.parent,ms=wt.cameras;vi(wt,Rr);for(let Fs=0;Fs0&&(se.alphaTest.value=le.alphaTest);const Ee=e.get(le),Ce=Ee.envMap,We=Ee.envMapRotation;if(Ce&&(se.envMap.value=Ce,zb.copy(We),zb.x*=-1,zb.y*=-1,zb.z*=-1,Ce.isCubeTexture&&!1===Ce.isRenderTargetTexture&&(zb.y*=-1,zb.z*=-1),se.envMapRotation.value.setFromMatrix4(xfe.makeRotationFromEuler(zb)),se.flipEnvMap.value=Ce.isCubeTexture&&!1===Ce.isRenderTargetTexture?-1:1,se.reflectivity.value=le.reflectivity,se.ior.value=le.ior,se.refractionRatio.value=le.refractionRatio),le.lightMap){se.lightMap.value=le.lightMap;const Mt=!0===n._useLegacyLights?Math.PI:1;se.lightMapIntensity.value=le.lightMapIntensity*Mt,t(le.lightMap,se.lightMapTransform)}le.aoMap&&(se.aoMap.value=le.aoMap,se.aoMapIntensity.value=le.aoMapIntensity,t(le.aoMap,se.aoMapTransform))}return{refreshFogUniforms:function i(se,le){le.color.getRGB(se.fogColor.value,fV(n)),le.isFog?(se.fogNear.value=le.near,se.fogFar.value=le.far):le.isFogExp2&&(se.fogDensity.value=le.density)},refreshMaterialUniforms:function r(se,le,Ee,Ce,We){le.isMeshBasicMaterial||le.isMeshLambertMaterial?s(se,le):le.isMeshToonMaterial?(s(se,le),function A(se,le){le.gradientMap&&(se.gradientMap.value=le.gradientMap)}(se,le)):le.isMeshPhongMaterial?(s(se,le),function f(se,le){se.specular.value.copy(le.specular),se.shininess.value=Math.max(le.shininess,1e-4)}(se,le)):le.isMeshStandardMaterial?(s(se,le),function S(se,le){se.metalness.value=le.metalness,le.metalnessMap&&(se.metalnessMap.value=le.metalnessMap,t(le.metalnessMap,se.metalnessMapTransform)),se.roughness.value=le.roughness,le.roughnessMap&&(se.roughnessMap.value=le.roughnessMap,t(le.roughnessMap,se.roughnessMapTransform)),e.get(le).envMap&&(se.envMapIntensity.value=le.envMapIntensity)}(se,le),le.isMeshPhysicalMaterial&&function R(se,le,Ee){se.ior.value=le.ior,le.sheen>0&&(se.sheenColor.value.copy(le.sheenColor).multiplyScalar(le.sheen),se.sheenRoughness.value=le.sheenRoughness,le.sheenColorMap&&(se.sheenColorMap.value=le.sheenColorMap,t(le.sheenColorMap,se.sheenColorMapTransform)),le.sheenRoughnessMap&&(se.sheenRoughnessMap.value=le.sheenRoughnessMap,t(le.sheenRoughnessMap,se.sheenRoughnessMapTransform))),le.clearcoat>0&&(se.clearcoat.value=le.clearcoat,se.clearcoatRoughness.value=le.clearcoatRoughness,le.clearcoatMap&&(se.clearcoatMap.value=le.clearcoatMap,t(le.clearcoatMap,se.clearcoatMapTransform)),le.clearcoatRoughnessMap&&(se.clearcoatRoughnessMap.value=le.clearcoatRoughnessMap,t(le.clearcoatRoughnessMap,se.clearcoatRoughnessMapTransform)),le.clearcoatNormalMap&&(se.clearcoatNormalMap.value=le.clearcoatNormalMap,t(le.clearcoatNormalMap,se.clearcoatNormalMapTransform),se.clearcoatNormalScale.value.copy(le.clearcoatNormalScale),1===le.side&&se.clearcoatNormalScale.value.negate())),le.iridescence>0&&(se.iridescence.value=le.iridescence,se.iridescenceIOR.value=le.iridescenceIOR,se.iridescenceThicknessMinimum.value=le.iridescenceThicknessRange[0],se.iridescenceThicknessMaximum.value=le.iridescenceThicknessRange[1],le.iridescenceMap&&(se.iridescenceMap.value=le.iridescenceMap,t(le.iridescenceMap,se.iridescenceMapTransform)),le.iridescenceThicknessMap&&(se.iridescenceThicknessMap.value=le.iridescenceThicknessMap,t(le.iridescenceThicknessMap,se.iridescenceThicknessMapTransform))),le.transmission>0&&(se.transmission.value=le.transmission,se.transmissionSamplerMap.value=Ee.texture,se.transmissionSamplerSize.value.set(Ee.width,Ee.height),le.transmissionMap&&(se.transmissionMap.value=le.transmissionMap,t(le.transmissionMap,se.transmissionMapTransform)),se.thickness.value=le.thickness,le.thicknessMap&&(se.thicknessMap.value=le.thicknessMap,t(le.thicknessMap,se.thicknessMapTransform)),se.attenuationDistance.value=le.attenuationDistance,se.attenuationColor.value.copy(le.attenuationColor)),le.anisotropy>0&&(se.anisotropyVector.value.set(le.anisotropy*Math.cos(le.anisotropyRotation),le.anisotropy*Math.sin(le.anisotropyRotation)),le.anisotropyMap&&(se.anisotropyMap.value=le.anisotropyMap,t(le.anisotropyMap,se.anisotropyMapTransform))),se.specularIntensity.value=le.specularIntensity,se.specularColor.value.copy(le.specularColor),le.specularColorMap&&(se.specularColorMap.value=le.specularColorMap,t(le.specularColorMap,se.specularColorMapTransform)),le.specularIntensityMap&&(se.specularIntensityMap.value=le.specularIntensityMap,t(le.specularIntensityMap,se.specularIntensityMapTransform))}(se,le,We)):le.isMeshMatcapMaterial?(s(se,le),function G(se,le){le.matcap&&(se.matcap.value=le.matcap)}(se,le)):le.isMeshDepthMaterial?s(se,le):le.isMeshDistanceMaterial?(s(se,le),function re(se,le){const Ee=e.get(le).light;se.referencePosition.value.setFromMatrixPosition(Ee.matrixWorld),se.nearDistance.value=Ee.shadow.camera.near,se.farDistance.value=Ee.shadow.camera.far}(se,le)):le.isMeshNormalMaterial?s(se,le):le.isLineBasicMaterial?(function o(se,le){se.diffuse.value.copy(le.color),se.opacity.value=le.opacity,le.map&&(se.map.value=le.map,t(le.map,se.mapTransform))}(se,le),le.isLineDashedMaterial&&function l(se,le){se.dashSize.value=le.dashSize,se.totalSize.value=le.dashSize+le.gapSize,se.scale.value=le.scale}(se,le)):le.isPointsMaterial?function d(se,le,Ee,Ce){se.diffuse.value.copy(le.color),se.opacity.value=le.opacity,se.size.value=le.size*Ee,se.scale.value=.5*Ce,le.map&&(se.map.value=le.map,t(le.map,se.uvTransform)),le.alphaMap&&(se.alphaMap.value=le.alphaMap,t(le.alphaMap,se.alphaMapTransform)),le.alphaTest>0&&(se.alphaTest.value=le.alphaTest)}(se,le,Ee,Ce):le.isSpriteMaterial?function h(se,le){se.diffuse.value.copy(le.color),se.opacity.value=le.opacity,se.rotation.value=le.rotation,le.map&&(se.map.value=le.map,t(le.map,se.mapTransform)),le.alphaMap&&(se.alphaMap.value=le.alphaMap,t(le.alphaMap,se.alphaMapTransform)),le.alphaTest>0&&(se.alphaTest.value=le.alphaTest)}(se,le):le.isShadowMaterial?(se.color.value.copy(le.color),se.opacity.value=le.opacity):le.isShaderMaterial&&(le.uniformsNeedUpdate=!1)}}}function Cfe(n,e,t,i){let r={},s={},o=[];const l=t.isWebGL2?n.getParameter(n.MAX_UNIFORM_BUFFER_BINDINGS):0;function R(Ee,Ce,We,Mt){const yt=Ee.value,Et=Ce+"_"+We;if(void 0===Mt[Et])return Mt[Et]="number"==typeof yt||"boolean"==typeof yt?yt:yt.clone(),!0;{const Xt=Mt[Et];if("number"==typeof yt||"boolean"==typeof yt){if(Xt!==yt)return Mt[Et]=yt,!0}else if(!1===Xt.equals(yt))return Xt.copy(yt),!0}return!1}function re(Ee){const Ce={boundary:0,storage:0};return"number"==typeof Ee||"boolean"==typeof Ee?(Ce.boundary=4,Ce.storage=4):Ee.isVector2?(Ce.boundary=8,Ce.storage=8):Ee.isVector3||Ee.isColor?(Ce.boundary=16,Ce.storage=12):Ee.isVector4?(Ce.boundary=16,Ce.storage=16):Ee.isMatrix3?(Ce.boundary=48,Ce.storage=48):Ee.isMatrix4?(Ce.boundary=64,Ce.storage=64):Ee.isTexture?console.warn("THREE.WebGLRenderer: Texture samplers can not be part of an uniforms group."):console.warn("THREE.WebGLRenderer: Unsupported uniform value type.",Ee),Ce}function se(Ee){const Ce=Ee.target;Ce.removeEventListener("dispose",se);const We=o.indexOf(Ce.__bindingPointIndex);o.splice(We,1),n.deleteBuffer(r[Ce.id]),delete r[Ce.id],delete s[Ce.id]}return{bind:function d(Ee,Ce){i.uniformBlockBinding(Ee,Ce.program)},update:function h(Ee,Ce){let We=r[Ee.id];void 0===We&&(function G(Ee){const Ce=Ee.uniforms;let We=0;for(let Et=0,Xt=Ce.length;Et0&&(We+=16-yt),Ee.__size=We,Ee.__cache={}}(Ee),We=function f(Ee){const Ce=function A(){for(let Ee=0;Ee0),Fa=!!$i.morphAttributes.position,Wd=!!$i.morphAttributes.normal,bm=!!$i.morphAttributes.color;let Kh=By;tr.toneMapped&&(null===Et||!0===Et.isXRRenderTarget)&&(Kh=Ce.toneMapping);const c1=$i.morphAttributes.position||$i.morphAttributes.normal||$i.morphAttributes.color,hd=void 0!==c1?c1.length:0,Ua=qs.get(tr),uN=se.state.lights;!0!==fi||!0!==Rr&&mn===Un||As.setState(tr,mn,mn===Un&&tr.id===Xt);let Zc=!1;tr.version===Ua.__version?(Ua.needsLights&&Ua.lightsStateVersion!==uN.state.version||Ua.outputColorSpace!==la||Ni.isBatchedMesh&&!1===Ua.batching||!Ni.isBatchedMesh&&!0===Ua.batching||Ni.isInstancedMesh&&!1===Ua.instancing||!Ni.isInstancedMesh&&!0===Ua.instancing||Ni.isSkinnedMesh&&!1===Ua.skinning||!Ni.isSkinnedMesh&&!0===Ua.skinning||Ni.isInstancedMesh&&!0===Ua.instancingColor&&null===Ni.instanceColor||Ni.isInstancedMesh&&!1===Ua.instancingColor&&null!==Ni.instanceColor||Ni.isInstancedMesh&&!0===Ua.instancingMorph&&null===Ni.morphTexture||Ni.isInstancedMesh&&!1===Ua.instancingMorph&&null!==Ni.morphTexture||Ua.envMap!==ya||!0===tr.fog&&Ua.fog!==Ks||void 0!==Ua.numClippingPlanes&&(Ua.numClippingPlanes!==As.numPlanes||Ua.numIntersection!==As.numIntersection)||Ua.vertexAlphas!==Qa||Ua.vertexTangents!==Da||Ua.morphTargets!==Fa||Ua.morphNormals!==Wd||Ua.morphColors!==bm||Ua.toneMapping!==Kh||!0===ls.isWebGL2&&Ua.morphTargetsCount!==hd)&&(Zc=!0):(Zc=!0,Ua.__version=tr.version);let Mx=Ua.currentProgram;!0===Zc&&(Mx=DB(tr,gi,Ni));let RX=!1,oT=!1,fN=!1;const ju=Mx.getUniforms(),Sx=Ua.uniforms;if(Tr.useProgram(Mx.program)&&(RX=!0,oT=!0,fN=!0),tr.id!==Xt&&(Xt=tr.id,oT=!0),RX||Un!==mn){ju.setValue(On,"projectionMatrix",mn.projectionMatrix),ju.setValue(On,"viewMatrix",mn.matrixWorldInverse);const gA=ju.map.cameraPosition;void 0!==gA&&gA.setValue(On,ws.setFromMatrixPosition(mn.matrixWorld)),ls.logarithmicDepthBuffer&&ju.setValue(On,"logDepthBufFC",2/(Math.log(mn.far+1)/Math.LN2)),(tr.isMeshPhongMaterial||tr.isMeshToonMaterial||tr.isMeshLambertMaterial||tr.isMeshBasicMaterial||tr.isMeshStandardMaterial||tr.isShaderMaterial)&&ju.setValue(On,"isOrthographic",!0===mn.isOrthographicCamera),Un!==mn&&(Un=mn,oT=!0,fN=!0)}if(Ni.isSkinnedMesh){ju.setOptional(On,Ni,"bindMatrix"),ju.setOptional(On,Ni,"bindMatrixInverse");const gA=Ni.skeleton;gA&&(ls.floatVertexTextures?(null===gA.boneTexture&&gA.computeBoneTexture(),ju.setValue(On,"boneTexture",gA.boneTexture,ho)):console.warn("THREE.WebGLRenderer: SkinnedMesh can only be used with WebGL 2. With WebGL 1 OES_texture_float and vertex textures support is required."))}Ni.isBatchedMesh&&(ju.setOptional(On,Ni,"batchingTexture"),ju.setValue(On,"batchingTexture",Ni._matricesTexture,ho));const pN=$i.morphAttributes;if((void 0!==pN.position||void 0!==pN.normal||void 0!==pN.color&&!0===ls.isWebGL2)&&us.update(Ni,$i,Mx),(oT||Ua.receiveShadow!==Ni.receiveShadow)&&(Ua.receiveShadow=Ni.receiveShadow,ju.setValue(On,"receiveShadow",Ni.receiveShadow)),tr.isMeshGouraudMaterial&&null!==tr.envMap&&(Sx.envMap.value=ya,Sx.flipEnvMap.value=ya.isCubeTexture&&!1===ya.isRenderTargetTexture?-1:1),oT&&(ju.setValue(On,"toneMappingExposure",Ce.toneMappingExposure),Ua.needsLights&&function $Ce(mn,gi){mn.ambientLightColor.needsUpdate=gi,mn.lightProbe.needsUpdate=gi,mn.directionalLights.needsUpdate=gi,mn.directionalLightShadows.needsUpdate=gi,mn.pointLights.needsUpdate=gi,mn.pointLightShadows.needsUpdate=gi,mn.spotLights.needsUpdate=gi,mn.spotLightShadows.needsUpdate=gi,mn.rectAreaLights.needsUpdate=gi,mn.hemisphereLights.needsUpdate=gi}(Sx,fN),Ks&&!0===tr.fog&&Fr.refreshFogUniforms(Sx,Ks),Fr.refreshMaterialUniforms(Sx,tr,oi,zn,ms),xI.upload(On,BX(Ua),Sx,ho)),tr.isShaderMaterial&&!0===tr.uniformsNeedUpdate&&(xI.upload(On,BX(Ua),Sx,ho),tr.uniformsNeedUpdate=!1),tr.isSpriteMaterial&&ju.setValue(On,"center",Ni.center),ju.setValue(On,"modelViewMatrix",Ni.modelViewMatrix),ju.setValue(On,"normalMatrix",Ni.normalMatrix),ju.setValue(On,"modelMatrix",Ni.matrixWorld),tr.isShaderMaterial||tr.isRawShaderMaterial){const gA=tr.uniformsGroups;for(let mN=0,YCe=gA.length;mN{function Ks(){tr.forEach(function(Do){qs.get(Do).currentProgram.isReady()&&tr.delete(Do)}),0!==tr.size?setTimeout(Ks,10):Ni(mn)}null!==gr.get("KHR_parallel_shader_compile")?Ks():setTimeout(Ks,10)})};let jl=null;function Ed(){Qc.stop()}function Ml(){Qc.start()}const Qc=new AV;function Wu(mn,gi,$i,tr){if(!1===mn.visible)return;if(mn.layers.test(gi.layers))if(mn.isGroup)$i=mn.renderOrder;else if(mn.isLOD)!0===mn.autoUpdate&&mn.update(gi);else if(mn.isLight)se.pushLight(mn),mn.castShadow&&se.pushShadow(mn);else if(mn.isSprite){if(!mn.frustumCulled||$s.intersectsSprite(mn)){tr&&ws.setFromMatrixPosition(mn.matrixWorld).applyMatrix4(Fs);const Do=ur.update(mn),la=mn.material;la.visible&&re.push(mn,Do,la,$i,ws.z,null)}}else if((mn.isMesh||mn.isLine||mn.isPoints)&&(!mn.frustumCulled||$s.intersectsObject(mn))){const Do=ur.update(mn),la=mn.material;if(tr&&(void 0!==mn.boundingSphere?(null===mn.boundingSphere&&mn.computeBoundingSphere(),ws.copy(mn.boundingSphere.center)):(null===Do.boundingSphere&&Do.computeBoundingSphere(),ws.copy(Do.boundingSphere.center)),ws.applyMatrix4(mn.matrixWorld).applyMatrix4(Fs)),Array.isArray(la)){const ya=Do.groups;for(let Qa=0,Da=ya.length;Qa0&&function EB(mn,gi,$i,tr){if(null!==(!0===$i.isScene?$i.overrideMaterial:null))return;const Ks=ls.isWebGL2;null===ms&&(ms=new Wh(1,1,{generateMipmaps:!0,type:gr.has("EXT_color_buffer_half_float")?lA:Fy,minFilter:oA,samples:Ks?4:0})),Ce.getDrawingBufferSize(Us),Ks?ms.setSize(Us.x,Us.y):ms.setSize(KD(Us.x),KD(Us.y));const Do=Ce.getRenderTarget();Ce.setRenderTarget(ms),Ce.getClearColor(Yi),En=Ce.getClearAlpha(),En<1&&Ce.setClearColor(16777215,.5),Ce.clear();const la=Ce.toneMapping;Ce.toneMapping=By,TB(mn,$i,tr),ho.updateMultisampleRenderTarget(ms),ho.updateRenderTargetMipmap(ms);let ya=!1;for(let Qa=0,Da=gi.length;Qa0&&TB(Ni,gi,$i),Ks.length>0&&TB(Ks,gi,$i),Do.length>0&&TB(Do,gi,$i),Tr.buffers.depth.setTest(!0),Tr.buffers.depth.setMask(!0),Tr.buffers.color.setMask(!0),Tr.setPolygonOffset(!1)}function TB(mn,gi,$i){const tr=!0===gi.isScene?gi.overrideMaterial:null;for(let Ni=0,Ks=mn.length;Ni0?Ee[Ee.length-1]:null,le.pop(),re=le.length>0?le[le.length-1]:null}}else console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.")},this.getActiveCubeFace=function(){return Mt},this.getActiveMipmapLevel=function(){return yt},this.getRenderTarget=function(){return Et},this.setRenderTargetTextures=function(mn,gi,$i){qs.get(mn.texture).__webglTexture=gi,qs.get(mn.depthTexture).__webglTexture=$i;const tr=qs.get(mn);tr.__hasExternalTextures=!0,tr.__autoAllocateDepthBuffer=void 0===$i,tr.__autoAllocateDepthBuffer||!0===gr.has("WEBGL_multisampled_render_to_texture")&&(console.warn("THREE.WebGLRenderer: Render-to-texture extension was disabled because an external texture was provided"),tr.__useRenderToTexture=!1)},this.setRenderTargetFramebuffer=function(mn,gi){const $i=qs.get(mn);$i.__webglFramebuffer=gi,$i.__useDefaultFramebuffer=void 0===gi},this.setRenderTarget=function(mn,gi=0,$i=0){Et=mn,Mt=gi,yt=$i;let tr=!0,Ni=null,Ks=!1,Do=!1;if(mn){const ya=qs.get(mn);void 0!==ya.__useDefaultFramebuffer?(Tr.bindFramebuffer(On.FRAMEBUFFER,null),tr=!1):void 0===ya.__webglFramebuffer?ho.setupRenderTarget(mn):ya.__hasExternalTextures&&ho.rebindTextures(mn,qs.get(mn.texture).__webglTexture,qs.get(mn.depthTexture).__webglTexture);const Qa=mn.texture;(Qa.isData3DTexture||Qa.isDataArrayTexture||Qa.isCompressedArrayTexture)&&(Do=!0);const Da=qs.get(mn).__webglFramebuffer;mn.isWebGLCubeRenderTarget?(Ni=Array.isArray(Da[gi])?Da[gi][$i]:Da[gi],Ks=!0):Ni=ls.isWebGL2&&mn.samples>0&&!1===ho.useMultisampledRTT(mn)?qs.get(mn).__webglMultisampledFramebuffer:Array.isArray(Da)?Da[$i]:Da,wt.copy(mn.viewport),Kt.copy(mn.scissor),Vi=mn.scissorTest}else wt.copy(mr).multiplyScalar(oi).floor(),Kt.copy(Mr).multiplyScalar(oi).floor(),Vi=ns;if(Tr.bindFramebuffer(On.FRAMEBUFFER,Ni)&&ls.drawBuffers&&tr&&Tr.drawBuffers(mn,Ni),Tr.viewport(wt),Tr.scissor(Kt),Tr.setScissorTest(Vi),Ks){const ya=qs.get(mn.texture);On.framebufferTexture2D(On.FRAMEBUFFER,On.COLOR_ATTACHMENT0,On.TEXTURE_CUBE_MAP_POSITIVE_X+gi,ya.__webglTexture,$i)}else if(Do){const ya=qs.get(mn.texture);On.framebufferTextureLayer(On.FRAMEBUFFER,On.COLOR_ATTACHMENT0,ya.__webglTexture,$i||0,gi||0)}Xt=-1},this.readRenderTargetPixels=function(mn,gi,$i,tr,Ni,Ks,Do){if(!mn||!mn.isWebGLRenderTarget)return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");let la=qs.get(mn).__webglFramebuffer;if(mn.isWebGLCubeRenderTarget&&void 0!==Do&&(la=la[Do]),la){Tr.bindFramebuffer(On.FRAMEBUFFER,la);try{const ya=mn.texture,Qa=ya.format,Da=ya.type;if(Qa!==gp&&Ro.convert(Qa)!==On.getParameter(On.IMPLEMENTATION_COLOR_READ_FORMAT))return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");const Fa=Da===lA&&(gr.has("EXT_color_buffer_half_float")||ls.isWebGL2&&gr.has("EXT_color_buffer_float"));if(!(Da===Fy||Ro.convert(Da)===On.getParameter(On.IMPLEMENTATION_COLOR_READ_TYPE)||Da===aA&&(ls.isWebGL2||gr.has("OES_texture_float")||gr.has("WEBGL_color_buffer_float"))||Fa))return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");gi>=0&&gi<=mn.width-tr&&$i>=0&&$i<=mn.height-Ni&&On.readPixels(gi,$i,tr,Ni,Ro.convert(Qa),Ro.convert(Da),Ks)}finally{const ya=null!==Et?qs.get(Et).__webglFramebuffer:null;Tr.bindFramebuffer(On.FRAMEBUFFER,ya)}}},this.copyFramebufferToTexture=function(mn,gi,$i=0){const tr=Math.pow(2,-$i),Ni=Math.floor(gi.image.width*tr),Ks=Math.floor(gi.image.height*tr);ho.setTexture2D(gi,0),On.copyTexSubImage2D(On.TEXTURE_2D,$i,0,0,mn.x,mn.y,Ni,Ks),Tr.unbindTexture()},this.copyTextureToTexture=function(mn,gi,$i,tr=0){const Ni=gi.image.width,Ks=gi.image.height,Do=Ro.convert($i.format),la=Ro.convert($i.type);ho.setTexture2D($i,0),On.pixelStorei(On.UNPACK_FLIP_Y_WEBGL,$i.flipY),On.pixelStorei(On.UNPACK_PREMULTIPLY_ALPHA_WEBGL,$i.premultiplyAlpha),On.pixelStorei(On.UNPACK_ALIGNMENT,$i.unpackAlignment),gi.isDataTexture?On.texSubImage2D(On.TEXTURE_2D,tr,mn.x,mn.y,Ni,Ks,Do,la,gi.image.data):gi.isCompressedTexture?On.compressedTexSubImage2D(On.TEXTURE_2D,tr,mn.x,mn.y,gi.mipmaps[0].width,gi.mipmaps[0].height,Do,gi.mipmaps[0].data):On.texSubImage2D(On.TEXTURE_2D,tr,mn.x,mn.y,Do,la,gi.image),0===tr&&$i.generateMipmaps&&On.generateMipmap(On.TEXTURE_2D),Tr.unbindTexture()},this.copyTextureToTexture3D=function(mn,gi,$i,tr,Ni=0){if(Ce.isWebGL1Renderer)return void console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: can only be used with WebGL2.");const Ks=Math.round(mn.max.x-mn.min.x),Do=Math.round(mn.max.y-mn.min.y),la=mn.max.z-mn.min.z+1,ya=Ro.convert(tr.format),Qa=Ro.convert(tr.type);let Da;if(tr.isData3DTexture)ho.setTexture3D(tr,0),Da=On.TEXTURE_3D;else{if(!tr.isDataArrayTexture&&!tr.isCompressedArrayTexture)return void console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.");ho.setTexture2DArray(tr,0),Da=On.TEXTURE_2D_ARRAY}On.pixelStorei(On.UNPACK_FLIP_Y_WEBGL,tr.flipY),On.pixelStorei(On.UNPACK_PREMULTIPLY_ALPHA_WEBGL,tr.premultiplyAlpha),On.pixelStorei(On.UNPACK_ALIGNMENT,tr.unpackAlignment);const Fa=On.getParameter(On.UNPACK_ROW_LENGTH),Wd=On.getParameter(On.UNPACK_IMAGE_HEIGHT),bm=On.getParameter(On.UNPACK_SKIP_PIXELS),Kh=On.getParameter(On.UNPACK_SKIP_ROWS),c1=On.getParameter(On.UNPACK_SKIP_IMAGES),hd=$i.isCompressedTexture?$i.mipmaps[Ni]:$i.image;On.pixelStorei(On.UNPACK_ROW_LENGTH,hd.width),On.pixelStorei(On.UNPACK_IMAGE_HEIGHT,hd.height),On.pixelStorei(On.UNPACK_SKIP_PIXELS,mn.min.x),On.pixelStorei(On.UNPACK_SKIP_ROWS,mn.min.y),On.pixelStorei(On.UNPACK_SKIP_IMAGES,mn.min.z),$i.isDataTexture||$i.isData3DTexture?On.texSubImage3D(Da,Ni,gi.x,gi.y,gi.z,Ks,Do,la,ya,Qa,hd.data):tr.isCompressedArrayTexture?On.compressedTexSubImage3D(Da,Ni,gi.x,gi.y,gi.z,Ks,Do,la,ya,hd.data):On.texSubImage3D(Da,Ni,gi.x,gi.y,gi.z,Ks,Do,la,ya,Qa,hd),On.pixelStorei(On.UNPACK_ROW_LENGTH,Fa),On.pixelStorei(On.UNPACK_IMAGE_HEIGHT,Wd),On.pixelStorei(On.UNPACK_SKIP_PIXELS,bm),On.pixelStorei(On.UNPACK_SKIP_ROWS,Kh),On.pixelStorei(On.UNPACK_SKIP_IMAGES,c1),0===Ni&&tr.generateMipmaps&&On.generateMipmap(Da),Tr.unbindTexture()},this.initTexture=function(mn){mn.isCubeTexture?ho.setTextureCube(mn,0):mn.isData3DTexture?ho.setTexture3D(mn,0):mn.isDataArrayTexture||mn.isCompressedArrayTexture?ho.setTexture2DArray(mn,0):ho.setTexture2D(mn,0),Tr.unbindTexture()},this.resetState=function(){Mt=0,yt=0,Et=null,Tr.reset(),uo.reset()},typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}get coordinateSystem(){return V_}get outputColorSpace(){return this._outputColorSpace}set outputColorSpace(e){this._outputColorSpace=e;const t=this.getContext();t.drawingBufferColorSpace=e===Kk?"display-p3":"srgb",t.unpackColorSpace=Ol.workingColorSpace===QD?"display-p3":"srgb"}get useLegacyLights(){return console.warn("THREE.WebGLRenderer: The property .useLegacyLights has been deprecated. Migrate your lighting according to the following guide: https://discourse.threejs.org/t/updates-to-lighting-in-three-js-r155/53733."),this._useLegacyLights}set useLegacyLights(e){console.warn("THREE.WebGLRenderer: The property .useLegacyLights has been deprecated. Migrate your lighting according to the following guide: https://discourse.threejs.org/t/updates-to-lighting-in-three-js-r155/53733."),this._useLegacyLights=e}}(class Mfe extends wI{}).prototype.isWebGL1Renderer=!0;class k5{constructor(e,t=25e-5){this.isFogExp2=!0,this.name="",this.color=new Cr(e),this.density=t}clone(){return new k5(this.color,this.density)}toJSON(){return{type:"FogExp2",name:this.name,color:this.color.getHex(),density:this.density}}}class F5{constructor(e,t=1,i=1e3){this.isFog=!0,this.name="",this.color=new Cr(e),this.near=t,this.far=i}clone(){return new F5(this.color,this.near,this.far)}toJSON(){return{type:"Fog",name:this.name,color:this.color.getHex(),near:this.near,far:this.far}}}class XS extends Pl{constructor(){super(),this.isScene=!0,this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.backgroundBlurriness=0,this.backgroundIntensity=1,this.backgroundRotation=new S0,this.environmentRotation=new S0,this.overrideMaterial=null,typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}copy(e,t){return super.copy(e,t),null!==e.background&&(this.background=e.background.clone()),null!==e.environment&&(this.environment=e.environment.clone()),null!==e.fog&&(this.fog=e.fog.clone()),this.backgroundBlurriness=e.backgroundBlurriness,this.backgroundIntensity=e.backgroundIntensity,this.backgroundRotation.copy(e.backgroundRotation),this.environmentRotation.copy(e.environmentRotation),null!==e.overrideMaterial&&(this.overrideMaterial=e.overrideMaterial.clone()),this.matrixAutoUpdate=e.matrixAutoUpdate,this}toJSON(e){const t=super.toJSON(e);return null!==this.fog&&(t.object.fog=this.fog.toJSON()),this.backgroundBlurriness>0&&(t.object.backgroundBlurriness=this.backgroundBlurriness),1!==this.backgroundIntensity&&(t.object.backgroundIntensity=this.backgroundIntensity),t.object.backgroundRotation=this.backgroundRotation.toArray(),t.object.environmentRotation=this.environmentRotation.toArray(),t}}class CI{constructor(e,t){this.isInterleavedBuffer=!0,this.array=e,this.stride=t,this.count=void 0!==e?e.length/t:0,this.usage=35044,this._updateRange={offset:0,count:-1},this.updateRanges=[],this.version=0,this.uuid=dm()}onUploadCallback(){}set needsUpdate(e){!0===e&&this.version++}get updateRange(){return WH("THREE.InterleavedBuffer: updateRange() is deprecated and will be removed in r169. Use addUpdateRange() instead."),this._updateRange}setUsage(e){return this.usage=e,this}addUpdateRange(e,t){this.updateRanges.push({start:e,count:t})}clearUpdateRanges(){this.updateRanges.length=0}copy(e){return this.array=new e.array.constructor(e.array),this.count=e.count,this.stride=e.stride,this.usage=e.usage,this}copyAt(e,t,i){e*=this.stride,i*=t.stride;for(let r=0,s=this.stride;re.far||t.push({distance:d,point:YS.clone(),uv:um.getInterpolation(YS,MI,ZS,SI,XV,O5,YV,new Qi),face:null,object:this})}copy(e,t){return super.copy(e,t),void 0!==e.center&&this.center.copy(e.center),this.material=e.material,this}}function EI(n,e,t,i,r,s){J2.subVectors(n,t).addScalar(.5).multiply(i),void 0!==r?(KS.x=s*J2.x-r*J2.y,KS.y=r*J2.x+s*J2.y):KS.copy(J2),n.copy(e),n.x+=KS.x,n.y+=KS.y,n.applyMatrix4($V)}const TI=new It,KV=new It;class Efe extends Pl{constructor(){super(),this._currentLevel=0,this.type="LOD",Object.defineProperties(this,{levels:{enumerable:!0,value:[]},isLOD:{value:!0}}),this.autoUpdate=!0}copy(e){super.copy(e,!1);const t=e.levels;for(let i=0,r=t.length;i0){let i,r;for(i=1,r=t.length;i0){TI.setFromMatrixPosition(this.matrixWorld);const r=e.ray.origin.distanceTo(TI);this.getObjectForDistance(r).raycast(e,t)}}update(e){const t=this.levels;if(t.length>1){TI.setFromMatrixPosition(e.matrixWorld),KV.setFromMatrixPosition(this.matrixWorld);const i=TI.distanceTo(KV)/e.zoom;let r,s;for(t[0].object.visible=!0,r=1,s=t.length;r=o))break;t[r-1].object.visible=!1,t[r].object.visible=!0}for(this._currentLevel=r-1;r=i.length&&i.push({start:-1,count:-1,z:-1});const s=i[this.index];r.push(s),this.index++,s.start=e.start,s.count=e.count,s.z=t}reset(){this.list.length=0,this.index=0}}const nC="batchId",Gy=new wo,lG=new wo,kfe=new wo,cG=new wo,z5=new _I,PI=new Pf,Gb=new jh,tE=new It,H5=new Rfe,Vu=new ha,RI=[];function Ffe(n,e,t=0){const i=e.itemSize;if(n.isInterleavedBufferAttribute||n.array.constructor!==e.array.constructor){const r=n.count;for(let s=0;s65536?new Uint32Array(s):new Uint16Array(s);t.setIndex(new No(l,1))}const o=r>65536?new Uint32Array(i):new Uint16Array(i);t.setAttribute(nC,new No(o,1)),this._geometryInitialized=!0}}_validateGeometry(e){if(e.getAttribute(nC))throw new Error(`BatchedMesh: Geometry cannot use attribute "${nC}"`);const t=this.geometry;if(!!e.getIndex()!=!!t.getIndex())throw new Error('BatchedMesh: All geometries must consistently have "index".');for(const i in t.attributes){if(i===nC)continue;if(!e.hasAttribute(i))throw new Error(`BatchedMesh: Added geometry missing "${i}". All geometries must have consistent attributes.`);const r=e.getAttribute(i),s=t.getAttribute(i);if(r.itemSize!==s.itemSize||r.normalized!==s.normalized)throw new Error("BatchedMesh: All attributes must have a consistent itemSize and normalized value.")}}setCustomSort(e){return this.customSort=e,this}computeBoundingBox(){null===this.boundingBox&&(this.boundingBox=new Pf);const e=this._geometryCount,t=this.boundingBox,i=this._active;t.makeEmpty();for(let r=0;r=this._maxGeometryCount)throw new Error("BatchedMesh: Maximum geometry count reached.");const r={vertexStart:-1,vertexCount:-1,indexStart:-1,indexCount:-1};let s=null;const o=this._reservedRanges,l=this._drawRanges,d=this._bounds;0!==this._geometryCount&&(s=o[o.length-1]),r.vertexCount=-1===t?e.getAttribute("position").count:t,r.vertexStart=null===s?0:s.vertexStart+s.vertexCount;const h=e.getIndex(),f=null!==h;if(f&&(r.indexCount=-1===i?h.count:i,r.indexStart=null===s?0:s.indexStart+s.indexCount),-1!==r.indexStart&&r.indexStart+r.indexCount>this._maxIndexCount||r.vertexStart+r.vertexCount>this._maxVertexCount)throw new Error("BatchedMesh: Reserved space request exceeds the maximum buffer size.");const S=this._active,R=this._matricesTexture,G=this._matricesTexture.image.data;this._visibility.push(!0),S.push(!0);const re=this._geometryCount;this._geometryCount++,kfe.toArray(G,16*re),R.needsUpdate=!0,o.push(r),l.push({start:f?r.indexStart:r.vertexStart,count:-1}),d.push({boxInitialized:!1,box:new Pf,sphereInitialized:!1,sphere:new jh});const se=this.geometry.getAttribute(nC);for(let le=0;le=this._geometryCount)throw new Error("BatchedMesh: Maximum geometry count reached.");this._validateGeometry(t);const i=this.geometry,r=null!==i.getIndex(),s=i.getIndex(),o=t.getIndex(),l=this._reservedRanges[e];if(r&&o.count>l.indexCount||t.attributes.position.count>l.vertexCount)throw new Error("BatchedMesh: Reserved space not large enough for provided geometry.");const d=l.vertexStart,h=l.vertexCount;for(const R in i.attributes){if(R===nC)continue;const G=t.getAttribute(R),re=i.getAttribute(R);Ffe(G,re,d);const se=G.itemSize;for(let le=G.count,Ee=h;le=t.length||!1===t[e]||(t[e]=!1,this._visibilityChanged=!0),this}getBoundingBoxAt(e,t){if(!1===this._active[e])return null;const r=this._bounds[e],s=r.box,o=this.geometry;if(!1===r.boxInitialized){s.makeEmpty();const l=o.index,d=o.attributes.position,h=this._drawRanges[e];for(let f=h.start,A=h.start+h.count;f=this._geometryCount||!1===this._active[e]||(t.toArray(this._matricesTexture.image.data,16*e),r.needsUpdate=!0),this}getMatrixAt(e,t){return e>=this._geometryCount||!1===this._active[e]?null:t.fromArray(this._matricesTexture.image.data,16*e)}setVisibleAt(e,t){const i=this._visibility;return e>=this._geometryCount||!1===this._active[e]||i[e]===t||(i[e]=t,this._visibilityChanged=!0),this}getVisibleAt(e){return!(e>=this._geometryCount||!1===this._active[e])&&this._visibility[e]}raycast(e,t){const i=this._visibility,r=this._active,s=this._drawRanges,o=this._geometryCount,l=this.matrixWorld,d=this.geometry;Vu.material=this.material,Vu.geometry.index=d.index,Vu.geometry.attributes=d.attributes,null===Vu.geometry.boundingBox&&(Vu.geometry.boundingBox=new Pf),null===Vu.geometry.boundingSphere&&(Vu.geometry.boundingSphere=new jh);for(let h=0;h({...t})),this._reservedRanges=e._reservedRanges.map(t=>({...t})),this._visibility=e._visibility.slice(),this._active=e._active.slice(),this._bounds=e._bounds.map(t=>({boxInitialized:t.boxInitialized,box:t.box.clone(),sphereInitialized:t.sphereInitialized,sphere:t.sphere.clone()})),this._maxGeometryCount=e._maxGeometryCount,this._maxVertexCount=e._maxVertexCount,this._maxIndexCount=e._maxIndexCount,this._geometryInitialized=e._geometryInitialized,this._geometryCount=e._geometryCount,this._multiDrawCounts=e._multiDrawCounts.slice(),this._multiDrawStarts=e._multiDrawStarts.slice(),this._matricesTexture=e._matricesTexture.clone(),this._matricesTexture.image.data=this._matricesTexture.image.slice(),this}dispose(){return this.geometry.dispose(),this._matricesTexture.dispose(),this._matricesTexture=null,this}onBeforeRender(e,t,i,r,s){if(!this._visibilityChanged&&!this.perObjectFrustumCulled&&!this.sortObjects)return;const o=r.getIndex(),l=null===o?1:o.array.BYTES_PER_ELEMENT,d=this._active,h=this._visibility,f=this._multiDrawStarts,A=this._multiDrawCounts,S=this._drawRanges,R=this.perObjectFrustumCulled;R&&(cG.multiplyMatrices(i.projectionMatrix,i.matrixWorldInverse).multiply(this.matrixWorld),z5.setFromProjectionMatrix(cG,e.coordinateSystem));let G=0;if(this.sortObjects){lG.copy(this.matrixWorld).invert(),tE.setFromMatrixPosition(i.matrixWorld).applyMatrix4(lG);for(let le=0,Ee=h.length;led)continue;S.applyMatrix4(this.matrixWorld);const Xt=e.ray.origin.distanceTo(S);Xte.far||t.push({distance:Xt,point:A.clone().applyMatrix4(this.matrixWorld),index:Ce,face:null,faceIndex:null,object:this})}else for(let Ce=Math.max(0,o.start),We=Math.min(se.count,o.start+o.count)-1;Ced)continue;S.applyMatrix4(this.matrixWorld);const yt=e.ray.origin.distanceTo(S);yte.far||t.push({distance:yt,point:A.clone().applyMatrix4(this.matrixWorld),index:Ce,face:null,faceIndex:null,object:this})}}updateMorphTargets(){const t=this.geometry.morphAttributes,i=Object.keys(t);if(i.length>0){const r=t[i[0]];if(void 0!==r){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let s=0,o=r.length;s0){const r=t[i[0]];if(void 0!==r){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let s=0,o=r.length;sr.far)return;s.push({distance:h,distanceToRay:Math.sqrt(l),point:d,index:e,face:null,object:o})}}class iC extends zu{constructor(e,t,i,r,s,o,l,d,h,f,A,S){super(null,o,l,d,h,f,r,s,A,S),this.isCompressedTexture=!0,this.image={width:t,height:i},this.mipmaps=e,this.flipY=!1,this.generateMipmaps=!1}}class _G extends zu{constructor(e,t,i,r,s,o,l,d,h){super(e,t,i,r,s,o,l,d,h),this.isCanvasTexture=!0,this.needsUpdate=!0}}class T0{constructor(){this.type="Curve",this.arcLengthDivisions=200}getPoint(){return console.warn("THREE.Curve: .getPoint() not implemented."),null}getPointAt(e,t){const i=this.getUtoTmapping(e);return this.getPoint(i,t)}getPoints(e=5){const t=[];for(let i=0;i<=e;i++)t.push(this.getPoint(i/e));return t}getSpacedPoints(e=5){const t=[];for(let i=0;i<=e;i++)t.push(this.getPointAt(i/e));return t}getLength(){const e=this.getLengths();return e[e.length-1]}getLengths(e=this.arcLengthDivisions){if(this.cacheArcLengths&&this.cacheArcLengths.length===e+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;const t=[];let i,r=this.getPoint(0),s=0;t.push(0);for(let o=1;o<=e;o++)i=this.getPoint(o/e),s+=i.distanceTo(r),t.push(s),r=i;return this.cacheArcLengths=t,t}updateArcLengths(){this.needsUpdate=!0,this.getLengths()}getUtoTmapping(e,t){const i=this.getLengths();let r=0;const s=i.length;let o;o=t||e*i[s-1];let h,l=0,d=s-1;for(;l<=d;)if(r=Math.floor(l+(d-l)/2),h=i[r]-o,h<0)l=r+1;else{if(!(h>0)){d=r;break}d=r-1}if(r=d,i[r]===o)return r/(s-1);const f=i[r];return(r+(o-f)/(i[r+1]-f))/(s-1)}getTangent(e,t){let r=e-1e-4,s=e+1e-4;r<0&&(r=0),s>1&&(s=1);const o=this.getPoint(r),l=this.getPoint(s),d=t||(o.isVector2?new Qi:new It);return d.copy(l).sub(o).normalize(),d}getTangentAt(e,t){const i=this.getUtoTmapping(e);return this.getTangent(i,t)}computeFrenetFrames(e,t){const i=new It,r=[],s=[],o=[],l=new It,d=new wo;for(let R=0;R<=e;R++)r[R]=this.getTangentAt(R/e,new It);s[0]=new It,o[0]=new It;let h=Number.MAX_VALUE;const f=Math.abs(r[0].x),A=Math.abs(r[0].y),S=Math.abs(r[0].z);f<=h&&(h=f,i.set(1,0,0)),A<=h&&(h=A,i.set(0,1,0)),S<=h&&i.set(0,0,1),l.crossVectors(r[0],i).normalize(),s[0].crossVectors(r[0],l),o[0].crossVectors(r[0],s[0]);for(let R=1;R<=e;R++){if(s[R]=s[R-1].clone(),o[R]=o[R-1].clone(),l.crossVectors(r[R-1],r[R]),l.length()>Number.EPSILON){l.normalize();const G=Math.acos(bd(r[R-1].dot(r[R]),-1,1));s[R].applyMatrix4(d.makeRotationAxis(l,G))}o[R].crossVectors(r[R],s[R])}if(!0===t){let R=Math.acos(bd(s[0].dot(s[e]),-1,1));R/=e,r[0].dot(l.crossVectors(s[0],s[e]))>0&&(R=-R);for(let G=1;G<=e;G++)s[G].applyMatrix4(d.makeRotationAxis(r[G],R*G)),o[G].crossVectors(r[G],s[G])}return{tangents:r,normals:s,binormals:o}}clone(){return(new this.constructor).copy(this)}copy(e){return this.arcLengthDivisions=e.arcLengthDivisions,this}toJSON(){const e={metadata:{version:4.6,type:"Curve",generator:"Curve.toJSON"}};return e.arcLengthDivisions=this.arcLengthDivisions,e.type=this.type,e}fromJSON(e){return this.arcLengthDivisions=e.arcLengthDivisions,this}}class q5 extends T0{constructor(e=0,t=0,i=1,r=1,s=0,o=2*Math.PI,l=!1,d=0){super(),this.isEllipseCurve=!0,this.type="EllipseCurve",this.aX=e,this.aY=t,this.xRadius=i,this.yRadius=r,this.aStartAngle=s,this.aEndAngle=o,this.aClockwise=l,this.aRotation=d}getPoint(e,t=new Qi){const i=t,r=2*Math.PI;let s=this.aEndAngle-this.aStartAngle;const o=Math.abs(s)r;)s-=r;s0?0:(Math.floor(Math.abs(l)/s)+1)*s:0===d&&l===s-1&&(l=s-2,d=1),this.closed||l>0?h=r[(l-1)%s]:(LI.subVectors(r[0],r[1]).add(r[0]),h=LI);const A=r[l%s],S=r[(l+1)%s];if(this.closed||l+2r.length-2?r.length-1:o+1],A=r[o>r.length-3?r.length-1:o+2];return i.set(yG(l,d.x,h.x,f.x,A.x),yG(l,d.y,h.y,f.y,A.y)),i}copy(e){super.copy(e),this.points=[];for(let t=0,i=e.points.length;t=i){const o=r[s]-i,l=this.curves[s],d=l.getLength();return l.getPointAt(0===d?0:1-o/d,t)}s++}return null}getLength(){const e=this.getCurveLengths();return e[e.length-1]}updateArcLengths(){this.needsUpdate=!0,this.cacheLengths=null,this.getCurveLengths()}getCurveLengths(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;const e=[];let t=0;for(let i=0,r=this.curves.length;i1&&!t[t.length-1].equals(t[0])&&t.push(t[0]),t}copy(e){super.copy(e),this.curves=[];for(let t=0,i=e.curves.length;t0){const A=h.getPoint(0);A.equals(this.currentPoint)||this.lineTo(A.x,A.y)}this.curves.push(h);const f=h.getPoint(1);return this.currentPoint.copy(f),this}copy(e){return super.copy(e),this.currentPoint.copy(e.currentPoint),this}toJSON(){const e=super.toJSON();return e.currentPoint=this.currentPoint.toArray(),e}fromJSON(e){return super.fromJSON(e),this.currentPoint.fromArray(e.currentPoint),this}}class zI extends no{constructor(e=[new Qi(0,-.5),new Qi(.5,0),new Qi(0,.5)],t=12,i=0,r=2*Math.PI){super(),this.type="LatheGeometry",this.parameters={points:e,segments:t,phiStart:i,phiLength:r},t=Math.floor(t),r=bd(r,0,2*Math.PI);const s=[],o=[],l=[],d=[],h=[],f=1/t,A=new It,S=new Qi,R=new It,G=new It,re=new It;let se=0,le=0;for(let Ee=0;Ee<=e.length-1;Ee++)switch(Ee){case 0:se=e[Ee+1].x-e[Ee].x,le=e[Ee+1].y-e[Ee].y,R.x=1*le,R.y=-se,R.z=0*le,re.copy(R),R.normalize(),d.push(R.x,R.y,R.z);break;case e.length-1:d.push(re.x,re.y,re.z);break;default:se=e[Ee+1].x-e[Ee].x,le=e[Ee+1].y-e[Ee].y,R.x=1*le,R.y=-se,R.z=0*le,G.copy(R),R.x+=re.x,R.y+=re.y,R.z+=re.z,R.normalize(),d.push(R.x,R.y,R.z),re.copy(G)}for(let Ee=0;Ee<=t;Ee++){const Ce=i+Ee*f*r,We=Math.sin(Ce),Mt=Math.cos(Ce);for(let yt=0;yt<=e.length-1;yt++)A.x=e[yt].x*We,A.y=e[yt].y,A.z=e[yt].x*Mt,o.push(A.x,A.y,A.z),S.x=Ee/t,S.y=yt/(e.length-1),l.push(S.x,S.y),h.push(d[3*yt+0]*We,d[3*yt+1],d[3*yt+0]*Mt)}for(let Ee=0;Ee0&&Ce(!0),t>0&&Ce(!1)),this.setIndex(f),this.setAttribute("position",new Ws(A,3)),this.setAttribute("normal",new Ws(S,3)),this.setAttribute("uv",new Ws(R,2))}copy(e){return super.copy(e),this.parameters=Object.assign({},e.parameters),this}static fromJSON(e){return new rC(e.radiusTop,e.radiusBottom,e.height,e.radialSegments,e.heightSegments,e.openEnded,e.thetaStart,e.thetaLength)}}class J5 extends rC{constructor(e=1,t=1,i=32,r=1,s=!1,o=0,l=2*Math.PI){super(0,e,t,i,r,s,o,l),this.type="ConeGeometry",this.parameters={radius:e,height:t,radialSegments:i,heightSegments:r,openEnded:s,thetaStart:o,thetaLength:l}}static fromJSON(e){return new J5(e.radius,e.height,e.radialSegments,e.heightSegments,e.openEnded,e.thetaStart,e.thetaLength)}}class Qb extends no{constructor(e=[],t=[],i=1,r=0){super(),this.type="PolyhedronGeometry",this.parameters={vertices:e,indices:t,radius:i,detail:r};const s=[],o=[];function d(Ee,Ce,We,Mt){const yt=Mt+1,Et=[];for(let Xt=0;Xt<=yt;Xt++){Et[Xt]=[];const Un=Ee.clone().lerp(We,Xt/yt),wt=Ce.clone().lerp(We,Xt/yt),Kt=yt-Xt;for(let Vi=0;Vi<=Kt;Vi++)Et[Xt][Vi]=0===Vi&&Xt===yt?Un:Un.clone().lerp(wt,Vi/Kt)}for(let Xt=0;Xt.9&&Et<.1&&(Ce<.2&&(o[Ee+0]+=1),We<.2&&(o[Ee+2]+=1),Mt<.2&&(o[Ee+4]+=1))}}()}(),this.setAttribute("position",new Ws(s,3)),this.setAttribute("normal",new Ws(s.slice(),3)),this.setAttribute("uv",new Ws(o,2)),0===r?this.computeVertexNormals():this.normalizeNormals()}copy(e){return super.copy(e),this.parameters=Object.assign({},e.parameters),this}static fromJSON(e){return new Qb(e.vertices,e.indices,e.radius,e.details)}}class eF extends Qb{constructor(e=1,t=0){const i=(1+Math.sqrt(5))/2,r=1/i;super([-1,-1,-1,-1,-1,1,-1,1,-1,-1,1,1,1,-1,-1,1,-1,1,1,1,-1,1,1,1,0,-r,-i,0,-r,i,0,r,-i,0,r,i,-r,-i,0,-r,i,0,r,-i,0,r,i,0,-i,0,-r,i,0,-r,-i,0,r,i,0,r],[3,11,7,3,7,15,3,15,13,7,19,17,7,17,6,7,6,15,17,4,8,17,8,10,17,10,6,8,0,16,8,16,2,8,2,10,0,12,1,0,1,18,0,18,16,6,10,2,6,2,13,6,13,15,2,16,18,2,18,3,2,3,13,18,1,9,18,9,11,18,11,3,4,14,12,4,12,0,4,0,8,11,9,5,11,5,19,11,19,7,19,5,14,19,14,4,19,4,17,1,12,14,1,14,5,1,5,9],e,t),this.type="DodecahedronGeometry",this.parameters={radius:e,detail:t}}static fromJSON(e){return new eF(e.radius,e.detail)}}const HI=new It,VI=new It,tF=new It,GI=new um;class CG extends no{constructor(e=null,t=1){if(super(),this.type="EdgesGeometry",this.parameters={geometry:e,thresholdAngle:t},null!==e){const r=Math.pow(10,4),s=Math.cos(Bb*t),o=e.getIndex(),l=e.getAttribute("position"),d=o?o.count:l.count,h=[0,0,0],f=["a","b","c"],A=new Array(3),S={},R=[];for(let G=0;G0)for(s=e;s=e;s-=i)o=TG(s,n[s],n[s+1],o);return o&&qI(o,o.next)&&(oE(o),o=o.next),o}function Wb(n,e){if(!n)return n;e||(e=n);let i,t=n;do{if(i=!1,t.steiner||!qI(t,t.next)&&0!==cd(t.prev,t,t.next))t=t.next;else{if(oE(t),t=e=t.prev,t===t.next)break;i=!0}}while(i||t!==e);return e}function rE(n,e,t,i,r,s,o){if(!n)return;!o&&s&&function rpe(n,e,t,i){let r=n;do{0===r.z&&(r.z=nF(r.x,r.y,e,t,i)),r.prevZ=r.prev,r.nextZ=r.next,r=r.next}while(r!==n);r.prevZ.nextZ=null,r.prevZ=null,function spe(n){let e,t,i,r,s,o,l,d,h=1;do{for(t=n,n=null,s=null,o=0;t;){for(o++,i=t,l=0,e=0;e0||d>0&&i;)0!==l&&(0===d||!i||t.z<=i.z)?(r=t,t=t.nextZ,l--):(r=i,i=i.nextZ,d--),s?s.nextZ=r:n=r,r.prevZ=s,s=r;t=i}s.nextZ=null,h*=2}while(o>1)}(r)}(n,i,r,s);let d,h,l=n;for(;n.prev!==n.next;)if(d=n.prev,h=n.next,s?Yfe(n,i,r,s):Xfe(n))e.push(d.i/t|0),e.push(n.i/t|0),e.push(h.i/t|0),oE(n),n=h.next,l=h.next;else if((n=h)===l){o?1===o?rE(n=Kfe(Wb(n),e,t),e,t,i,r,s,2):2===o&&Zfe(n,e,t,i,r,s):rE(Wb(n),e,t,i,r,s,1);break}}function Xfe(n){const e=n.prev,t=n,i=n.next;if(cd(e,t,i)>=0)return!1;const r=e.x,s=t.x,o=i.x,l=e.y,d=t.y,h=i.y,f=rs?r>o?r:o:s>o?s:o,R=l>d?l>h?l:h:d>h?d:h;let G=i.next;for(;G!==e;){if(G.x>=f&&G.x<=S&&G.y>=A&&G.y<=R&&oC(r,l,s,d,o,h,G.x,G.y)&&cd(G.prev,G,G.next)>=0)return!1;G=G.next}return!0}function Yfe(n,e,t,i){const r=n.prev,s=n,o=n.next;if(cd(r,s,o)>=0)return!1;const l=r.x,d=s.x,h=o.x,f=r.y,A=s.y,S=o.y,R=ld?l>h?l:h:d>h?d:h,se=f>A?f>S?f:S:A>S?A:S,le=nF(R,G,e,t,i),Ee=nF(re,se,e,t,i);let Ce=n.prevZ,We=n.nextZ;for(;Ce&&Ce.z>=le&&We&&We.z<=Ee;){if(Ce.x>=R&&Ce.x<=re&&Ce.y>=G&&Ce.y<=se&&Ce!==r&&Ce!==o&&oC(l,f,d,A,h,S,Ce.x,Ce.y)&&cd(Ce.prev,Ce,Ce.next)>=0||(Ce=Ce.prevZ,We.x>=R&&We.x<=re&&We.y>=G&&We.y<=se&&We!==r&&We!==o&&oC(l,f,d,A,h,S,We.x,We.y)&&cd(We.prev,We,We.next)>=0))return!1;We=We.nextZ}for(;Ce&&Ce.z>=le;){if(Ce.x>=R&&Ce.x<=re&&Ce.y>=G&&Ce.y<=se&&Ce!==r&&Ce!==o&&oC(l,f,d,A,h,S,Ce.x,Ce.y)&&cd(Ce.prev,Ce,Ce.next)>=0)return!1;Ce=Ce.prevZ}for(;We&&We.z<=Ee;){if(We.x>=R&&We.x<=re&&We.y>=G&&We.y<=se&&We!==r&&We!==o&&oC(l,f,d,A,h,S,We.x,We.y)&&cd(We.prev,We,We.next)>=0)return!1;We=We.nextZ}return!0}function Kfe(n,e,t){let i=n;do{const r=i.prev,s=i.next.next;!qI(r,s)&&SG(r,i,i.next,s)&&sE(r,s)&&sE(s,r)&&(e.push(r.i/t|0),e.push(i.i/t|0),e.push(s.i/t|0),oE(i),oE(i.next),i=n=s),i=i.next}while(i!==n);return Wb(i)}function Zfe(n,e,t,i,r,s){let o=n;do{let l=o.next.next;for(;l!==o.prev;){if(o.i!==l.i&&ape(o,l)){let d=EG(o,l);return o=Wb(o,o.next),d=Wb(d,d.next),rE(o,e,t,i,r,s,0),void rE(d,e,t,i,r,s,0)}l=l.next}o=o.next}while(o!==n)}function epe(n,e){return n.x-e.x}function tpe(n,e){const t=function npe(n,e){let r,t=e,i=-1/0;const s=n.x,o=n.y;do{if(o<=t.y&&o>=t.next.y&&t.next.y!==t.y){const S=t.x+(o-t.y)*(t.next.x-t.x)/(t.next.y-t.y);if(S<=s&&S>i&&(i=S,r=t.x=t.x&&t.x>=d&&s!==t.x&&oC(or.x||t.x===r.x&&ipe(r,t)))&&(r=t,f=A)),t=t.next}while(t!==l);return r}(n,e);if(!t)return e;const i=EG(t,n);return Wb(i,i.next),Wb(t,t.next)}function ipe(n,e){return cd(n.prev,n,e.prev)<0&&cd(e.next,n,n.next)<0}function nF(n,e,t,i,r){return(n=1431655765&((n=858993459&((n=252645135&((n=16711935&((n=(n-t)*r|0)|n<<8))|n<<4))|n<<2))|n<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=(e-i)*r|0)|e<<8))|e<<4))|e<<2))|e<<1))<<1}function ope(n){let e=n,t=n;do{(e.x=(n-o)*(s-l)&&(n-o)*(i-l)>=(t-o)*(e-l)&&(t-o)*(s-l)>=(r-o)*(i-l)}function ape(n,e){return n.next.i!==e.i&&n.prev.i!==e.i&&!function lpe(n,e){let t=n;do{if(t.i!==n.i&&t.next.i!==n.i&&t.i!==e.i&&t.next.i!==e.i&&SG(t,t.next,n,e))return!0;t=t.next}while(t!==n);return!1}(n,e)&&(sE(n,e)&&sE(e,n)&&function cpe(n,e){let t=n,i=!1;const r=(n.x+e.x)/2,s=(n.y+e.y)/2;do{t.y>s!=t.next.y>s&&t.next.y!==t.y&&r<(t.next.x-t.x)*(s-t.y)/(t.next.y-t.y)+t.x&&(i=!i),t=t.next}while(t!==n);return i}(n,e)&&(cd(n.prev,n,e.prev)||cd(n,e.prev,e))||qI(n,e)&&cd(n.prev,n,n.next)>0&&cd(e.prev,e,e.next)>0)}function cd(n,e,t){return(e.y-n.y)*(t.x-e.x)-(e.x-n.x)*(t.y-e.y)}function qI(n,e){return n.x===e.x&&n.y===e.y}function SG(n,e,t,i){const r=WI(cd(n,e,t)),s=WI(cd(n,e,i)),o=WI(cd(t,i,n)),l=WI(cd(t,i,e));return!!(r!==s&&o!==l||0===r&&QI(n,t,e)||0===s&&QI(n,i,e)||0===o&&QI(t,n,i)||0===l&&QI(t,e,i))}function QI(n,e,t){return e.x<=Math.max(n.x,t.x)&&e.x>=Math.min(n.x,t.x)&&e.y<=Math.max(n.y,t.y)&&e.y>=Math.min(n.y,t.y)}function WI(n){return n>0?1:n<0?-1:0}function sE(n,e){return cd(n.prev,n,n.next)<0?cd(n,e,n.next)>=0&&cd(n,n.prev,e)>=0:cd(n,e,n.prev)<0||cd(n,n.next,e)<0}function EG(n,e){const t=new iF(n.i,n.x,n.y),i=new iF(e.i,e.x,e.y),r=n.next,s=e.prev;return n.next=e,e.prev=n,t.next=r,r.prev=t,i.next=t,t.prev=i,s.next=i,i.prev=s,i}function TG(n,e,t,i){const r=new iF(n,e,t);return i?(r.next=i.next,r.prev=i,i.next.prev=r,i.next=r):(r.prev=r,r.next=r),r}function oE(n){n.next.prev=n.prev,n.prev.next=n.next,n.prevZ&&(n.prevZ.nextZ=n.nextZ),n.nextZ&&(n.nextZ.prevZ=n.prevZ)}function iF(n,e,t){this.i=n,this.x=e,this.y=t,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}class K_{static area(e){const t=e.length;let i=0;for(let r=t-1,s=0;s80*t){l=h=n[0],d=f=n[1];for(let G=t;Gh&&(h=A),S>f&&(f=S);R=Math.max(h-l,f-d),R=0!==R?32767/R:0}return rE(s,o,t,l,d,R,0),o}(i,r);for(let d=0;d2&&n[e-1].equals(n[0])&&n.pop()}function IG(n,e){for(let t=0;tNumber.EPSILON){const ur=Math.sqrt(zt),$r=Math.sqrt(ka*ka+gn*gn),Fr=ps.x-ho/ur,Aa=ps.y+qs/ur,Is=((gr.x-gn/$r-Fr)*gn-(gr.y+ka/$r-Aa)*ka)/(qs*gn-ho*ka);ls=Fr+qs*Is-On.x,Tr=Aa+ho*Is-On.y;const ga=ls*ls+Tr*Tr;if(ga<=2)return new Qi(ls,Tr);Ys=Math.sqrt(ga/2)}else{let ur=!1;qs>Number.EPSILON?ka>Number.EPSILON&&(ur=!0):qs<-Number.EPSILON?ka<-Number.EPSILON&&(ur=!0):Math.sign(ho)===Math.sign(gn)&&(ur=!0),ur?(ls=-ho,Tr=qs,Ys=Math.sqrt(zt)):(ls=qs,Tr=ho,Ys=Math.sqrt(zt/2))}return new Qi(ls/Ys,Tr/Ys)}const vi=[];for(let On=0,ps=En.length,gr=ps-1,ls=On+1;On=0;On--){const ps=On/se,gr=R*Math.cos(ps*Math.PI/2),ls=G*Math.sin(ps*Math.PI/2)+re;for(let Tr=0,Ys=En.length;Tr=0;){const ls=gr;let Tr=gr-1;Tr<0&&(Tr=On.length-1);for(let Ys=0,qs=f+2*se;Ys0)&&R.push(f[le][Ee+1],We,yt),(le!==i-1||d0!=e>0&&this.version++,this._anisotropy=e}get clearcoat(){return this._clearcoat}set clearcoat(e){this._clearcoat>0!=e>0&&this.version++,this._clearcoat=e}get iridescence(){return this._iridescence}set iridescence(e){this._iridescence>0!=e>0&&this.version++,this._iridescence=e}get sheen(){return this._sheen}set sheen(e){this._sheen>0!=e>0&&this.version++,this._sheen=e}get transmission(){return this._transmission}set transmission(e){this._transmission>0!=e>0&&this.version++,this._transmission=e}copy(e){return super.copy(e),this.defines={STANDARD:"",PHYSICAL:""},this.anisotropy=e.anisotropy,this.anisotropyRotation=e.anisotropyRotation,this.anisotropyMap=e.anisotropyMap,this.clearcoat=e.clearcoat,this.clearcoatMap=e.clearcoatMap,this.clearcoatRoughness=e.clearcoatRoughness,this.clearcoatRoughnessMap=e.clearcoatRoughnessMap,this.clearcoatNormalMap=e.clearcoatNormalMap,this.clearcoatNormalScale.copy(e.clearcoatNormalScale),this.ior=e.ior,this.iridescence=e.iridescence,this.iridescenceMap=e.iridescenceMap,this.iridescenceIOR=e.iridescenceIOR,this.iridescenceThicknessRange=[...e.iridescenceThicknessRange],this.iridescenceThicknessMap=e.iridescenceThicknessMap,this.sheen=e.sheen,this.sheenColor.copy(e.sheenColor),this.sheenColorMap=e.sheenColorMap,this.sheenRoughness=e.sheenRoughness,this.sheenRoughnessMap=e.sheenRoughnessMap,this.transmission=e.transmission,this.transmissionMap=e.transmissionMap,this.thickness=e.thickness,this.thicknessMap=e.thicknessMap,this.attenuationDistance=e.attenuationDistance,this.attenuationColor.copy(e.attenuationColor),this.specularIntensity=e.specularIntensity,this.specularIntensityMap=e.specularIntensityMap,this.specularColor.copy(e.specularColor),this.specularColorMap=e.specularColorMap,this}}class mg extends ld{constructor(e){super(),this.isMeshPhongMaterial=!0,this.type="MeshPhongMaterial",this.color=new Cr(16777215),this.specular=new Cr(1118481),this.shininess=30,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Cr(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new Qi(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.envMapRotation=new S0,this.combine=HD,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.specular.copy(e.specular),this.shininess=e.shininess,this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.envMapRotation.copy(e.envMapRotation),this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.flatShading=e.flatShading,this.fog=e.fog,this}}class RG extends ld{constructor(e){super(),this.isMeshToonMaterial=!0,this.defines={TOON:""},this.type="MeshToonMaterial",this.color=new Cr(16777215),this.map=null,this.gradientMap=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Cr(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new Qi(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.gradientMap=e.gradientMap,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.alphaMap=e.alphaMap,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.fog=e.fog,this}}class gpe extends ld{constructor(e){super(),this.isMeshNormalMaterial=!0,this.type="MeshNormalMaterial",this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new Qi(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.flatShading=!1,this.setValues(e)}copy(e){return super.copy(e),this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.flatShading=e.flatShading,this}}class _pe extends ld{constructor(e){super(),this.isMeshLambertMaterial=!0,this.type="MeshLambertMaterial",this.color=new Cr(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Cr(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new Qi(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.envMapRotation=new S0,this.combine=HD,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.envMapRotation.copy(e.envMapRotation),this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.flatShading=e.flatShading,this.fog=e.fog,this}}class ype extends ld{constructor(e){super(),this.isMeshMatcapMaterial=!0,this.defines={MATCAP:""},this.type="MeshMatcapMaterial",this.color=new Cr(16777215),this.matcap=null,this.map=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new Qi(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.flatShading=!1,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.defines={MATCAP:""},this.color.copy(e.color),this.matcap=e.matcap,this.map=e.map,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.alphaMap=e.alphaMap,this.flatShading=e.flatShading,this.fog=e.fog,this}}class $b extends Dc{constructor(e){super(),this.isLineDashedMaterial=!0,this.type="LineDashedMaterial",this.scale=1,this.dashSize=3,this.gapSize=1,this.setValues(e)}copy(e){return super.copy(e),this.scale=e.scale,this.dashSize=e.dashSize,this.gapSize=e.gapSize,this}}function Xb(n,e,t){return!n||!t&&n.constructor===e?n:"number"==typeof e.BYTES_PER_ELEMENT?new e(n):Array.prototype.slice.call(n)}function FG(n){const t=n.length,i=new Array(t);for(let r=0;r!==t;++r)i[r]=r;return i.sort(function e(r,s){return n[r]-n[s]}),i}function dF(n,e,t){const i=n.length,r=new n.constructor(i);for(let s=0,o=0;o!==i;++s){const l=t[s]*e;for(let d=0;d!==e;++d)r[o++]=n[l+d]}return r}function hF(n,e,t,i){let r=1,s=n[0];for(;void 0!==s&&void 0===s[i];)s=n[r++];if(void 0===s)return;let o=s[i];if(void 0!==o)if(Array.isArray(o))do{o=s[i],void 0!==o&&(e.push(s.time),t.push.apply(t,o)),s=n[r++]}while(void 0!==s);else if(void 0!==o.toArray)do{o=s[i],void 0!==o&&(e.push(s.time),o.toArray(t,t.length)),s=n[r++]}while(void 0!==s);else do{o=s[i],void 0!==o&&(e.push(s.time),t.push(o)),s=n[r++]}while(void 0!==s)}class aE{constructor(e,t,i,r){this.parameterPositions=e,this._cachedIndex=0,this.resultBuffer=void 0!==r?r:new t.constructor(i),this.sampleValues=t,this.valueSize=i,this.settings=null,this.DefaultSettings_={}}evaluate(e){const t=this.parameterPositions;let i=this._cachedIndex,r=t[i],s=t[i-1];e:{t:{let o;n:{i:if(!(e=s)break e;{const l=t[1];e=s)break t}o=i,i=0}}for(;i>>1;et;)--o;if(++o,0!==s||o!==r){s>=o&&(o=Math.max(o,1),s=o-1);const l=this.getValueSize();this.times=i.slice(s,o),this.values=this.values.slice(s*l,o*l)}return this}validate(){let e=!0;const t=this.getValueSize();t-Math.floor(t)!=0&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),e=!1);const i=this.times,r=this.values,s=i.length;0===s&&(console.error("THREE.KeyframeTrack: Track is empty.",this),e=!1);let o=null;for(let l=0;l!==s;l++){const d=i[l];if("number"==typeof d&&isNaN(d)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,l,d),e=!1;break}if(null!==o&&o>d){console.error("THREE.KeyframeTrack: Out of order keys.",this,l,d,o),e=!1;break}o=d}if(void 0!==r&&function kG(n){return ArrayBuffer.isView(n)&&!(n instanceof DataView)}(r))for(let l=0,d=r.length;l!==d;++l){const h=r[l];if(isNaN(h)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,l,h),e=!1;break}}return e}optimize(){const e=this.times.slice(),t=this.values.slice(),i=this.getValueSize(),r=2302===this.getInterpolation(),s=e.length-1;let o=1;for(let l=1;l0){e[o]=e[s];for(let l=s*i,d=o*i,h=0;h!==i;++h)t[d+h]=t[l+h];++o}return o!==e.length?(this.times=e.slice(0,o),this.values=t.slice(0,o*i)):(this.times=e,this.values=t),this}clone(){const e=this.times.slice(),t=this.values.slice(),r=new(0,this.constructor)(this.name,e,t);return r.createInterpolant=this.createInterpolant,r}}I0.prototype.TimeBufferType=Float32Array,I0.prototype.ValueBufferType=Float32Array,I0.prototype.DefaultInterpolation=Db;class aC extends I0{}aC.prototype.ValueTypeName="bool",aC.prototype.ValueBufferType=Array,aC.prototype.DefaultInterpolation=b2,aC.prototype.InterpolantFactoryMethodLinear=void 0,aC.prototype.InterpolantFactoryMethodSmooth=void 0;class LG extends I0{}LG.prototype.ValueTypeName="color";class lC extends I0{}lC.prototype.ValueTypeName="number";class Cpe extends aE{constructor(e,t,i,r){super(e,t,i,r)}interpolate_(e,t,i,r){const s=this.resultBuffer,o=this.sampleValues,l=this.valueSize,d=(i-t)/(r-t);let h=e*l;for(let f=h+l;h!==f;h+=4)Gc.slerpFlat(s,0,o,h-l,o,h,d);return s}}class Yb extends I0{InterpolantFactoryMethodLinear(e){return new Cpe(this.times,this.values,this.getValueSize(),e)}}Yb.prototype.ValueTypeName="quaternion",Yb.prototype.DefaultInterpolation=Db,Yb.prototype.InterpolantFactoryMethodSmooth=void 0;class cC extends I0{}cC.prototype.ValueTypeName="string",cC.prototype.ValueBufferType=Array,cC.prototype.DefaultInterpolation=b2,cC.prototype.InterpolantFactoryMethodLinear=void 0,cC.prototype.InterpolantFactoryMethodSmooth=void 0;class dC extends I0{}dC.prototype.ValueTypeName="vector";class lE{constructor(e,t=-1,i,r=2500){this.name=e,this.tracks=i,this.duration=t,this.blendMode=r,this.uuid=dm(),this.duration<0&&this.resetDuration()}static parse(e){const t=[],i=e.tracks,r=1/(e.fps||1);for(let o=0,l=i.length;o!==l;++o)t.push(Spe(i[o]).scale(r));const s=new this(e.name,e.duration,t,e.blendMode);return s.uuid=e.uuid,s}static toJSON(e){const t=[],i=e.tracks,r={name:e.name,duration:e.duration,tracks:t,uuid:e.uuid,blendMode:e.blendMode};for(let s=0,o=i.length;s!==o;++s)t.push(I0.toJSON(i[s]));return r}static CreateFromMorphTargetSequence(e,t,i,r){const s=t.length,o=[];for(let l=0;l1){const A=f[1];let S=r[A];S||(r[A]=S=[]),S.push(h)}}const o=[];for(const l in r)o.push(this.CreateFromMorphTargetSequence(l,r[l],t,i));return o}static parseAnimation(e,t){if(!e)return console.error("THREE.AnimationClip: No animation in JSONLoader data."),null;const i=function(A,S,R,G,re){if(0!==R.length){const se=[],le=[];hF(R,se,le,G),0!==se.length&&re.push(new A(S,se,le))}},r=[],s=e.name||"default",o=e.fps||30,l=e.blendMode;let d=e.length||-1;const h=e.hierarchy||[];for(let A=0;A{class n{constructor(t){this.manager=void 0!==t?t:Epe,this.crossOrigin="anonymous",this.withCredentials=!1,this.path="",this.resourcePath="",this.requestHeader={}}load(){}loadAsync(t,i){const r=this;return new Promise(function(s,o){r.load(t,s,i,o)})}parse(){}setCrossOrigin(t){return this.crossOrigin=t,this}setWithCredentials(t){return this.withCredentials=t,this}setPath(t){return this.path=t,this}setResourcePath(t){return this.resourcePath=t,this}setRequestHeader(t){return this.requestHeader=t,this}}return n.DEFAULT_MATERIAL_NAME="__DEFAULT",n})();const Z_={};class Tpe extends Error{constructor(e,t){super(e),this.response=t}}class vp extends Gu{constructor(e){super(e)}load(e,t,i,r){void 0===e&&(e=""),void 0!==this.path&&(e=this.path+e),e=this.manager.resolveURL(e);const s=Qy.get(e);if(void 0!==s)return this.manager.itemStart(e),setTimeout(()=>{t&&t(s),this.manager.itemEnd(e)},0),s;if(void 0!==Z_[e])return void Z_[e].push({onLoad:t,onProgress:i,onError:r});Z_[e]=[],Z_[e].push({onLoad:t,onProgress:i,onError:r});const o=new Request(e,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin"}),l=this.mimeType,d=this.responseType;fetch(o).then(h=>{if(200===h.status||0===h.status){if(0===h.status&&console.warn("THREE.FileLoader: HTTP Status 0 received."),typeof ReadableStream>"u"||void 0===h.body||void 0===h.body.getReader)return h;const f=Z_[e],A=h.body.getReader(),S=h.headers.get("Content-Length")||h.headers.get("X-File-Size"),R=S?parseInt(S):0,G=0!==R;let re=0;const se=new ReadableStream({start(le){!function Ee(){A.read().then(({done:Ce,value:We})=>{if(Ce)le.close();else{re+=We.byteLength;const Mt=new ProgressEvent("progress",{lengthComputable:G,loaded:re,total:R});for(let yt=0,Et=f.length;yt{switch(d){case"arraybuffer":return h.arrayBuffer();case"blob":return h.blob();case"document":return h.text().then(f=>(new DOMParser).parseFromString(f,l));case"json":return h.json();default:if(void 0===l)return h.text();{const A=/charset="?([^;"\s]*)"?/i.exec(l),S=A&&A[1]?A[1].toLowerCase():void 0,R=new TextDecoder(S);return h.arrayBuffer().then(G=>R.decode(G))}}}).then(h=>{Qy.add(e,h);const f=Z_[e];delete Z_[e];for(let A=0,S=f.length;A{const f=Z_[e];if(void 0===f)throw this.manager.itemError(e),h;delete Z_[e];for(let A=0,S=f.length;A{this.manager.itemEnd(e)}),this.manager.itemStart(e)}setResponseType(e){return this.responseType=e,this}setMimeType(e){return this.mimeType=e,this}}class YI extends Gu{constructor(e){super(e)}load(e,t,i,r){void 0!==this.path&&(e=this.path+e),e=this.manager.resolveURL(e);const s=this,o=Qy.get(e);if(void 0!==o)return s.manager.itemStart(e),setTimeout(function(){t&&t(o),s.manager.itemEnd(e)},0),o;const l=GS("img");function d(){f(),Qy.add(e,this),t&&t(this),s.manager.itemEnd(e)}function h(A){f(),r&&r(A),s.manager.itemError(e),s.manager.itemEnd(e)}function f(){l.removeEventListener("load",d,!1),l.removeEventListener("error",h,!1)}return l.addEventListener("load",d,!1),l.addEventListener("error",h,!1),"data:"!==e.slice(0,5)&&void 0!==this.crossOrigin&&(l.crossOrigin=this.crossOrigin),s.manager.itemStart(e),l.src=e,l}}class Dpe extends Gu{constructor(e){super(e)}load(e,t,i,r){const s=new zu,o=new YI(this.manager);return o.setCrossOrigin(this.crossOrigin),o.setPath(this.path),o.load(e,function(l){s.image=l,s.needsUpdate=!0,void 0!==t&&t(s)},i,r),s}}class Kb extends Pl{constructor(e,t=1){super(),this.isLight=!0,this.type="Light",this.color=new Cr(e),this.intensity=t}dispose(){}copy(e,t){return super.copy(e,t),this.color.copy(e.color),this.intensity=e.intensity,this}toJSON(e){const t=super.toJSON(e);return t.object.color=this.color.getHex(),t.object.intensity=this.intensity,void 0!==this.groundColor&&(t.object.groundColor=this.groundColor.getHex()),void 0!==this.distance&&(t.object.distance=this.distance),void 0!==this.angle&&(t.object.angle=this.angle),void 0!==this.decay&&(t.object.decay=this.decay),void 0!==this.penumbra&&(t.object.penumbra=this.penumbra),void 0!==this.shadow&&(t.object.shadow=this.shadow.toJSON()),t}}class Ipe extends Kb{constructor(e,t,i){super(e,i),this.isHemisphereLight=!0,this.type="HemisphereLight",this.position.copy(Pl.DEFAULT_UP),this.updateMatrix(),this.groundColor=new Cr(t)}copy(e,t){return super.copy(e,t),this.groundColor.copy(e.groundColor),this}}const uF=new wo,UG=new It,zG=new It;class fF{constructor(e){this.camera=e,this.bias=0,this.normalBias=0,this.radius=1,this.blurSamples=8,this.mapSize=new Qi(512,512),this.map=null,this.mapPass=null,this.matrix=new wo,this.autoUpdate=!0,this.needsUpdate=!1,this._frustum=new _I,this._frameExtents=new Qi(1,1),this._viewportCount=1,this._viewports=[new nc(0,0,1,1)]}getViewportCount(){return this._viewportCount}getFrustum(){return this._frustum}updateMatrices(e){const t=this.camera,i=this.matrix;UG.setFromMatrixPosition(e.matrixWorld),t.position.copy(UG),zG.setFromMatrixPosition(e.target.matrixWorld),t.lookAt(zG),t.updateMatrixWorld(),uF.multiplyMatrices(t.projectionMatrix,t.matrixWorldInverse),this._frustum.setFromProjectionMatrix(uF),i.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),i.multiply(uF)}getViewport(e){return this._viewports[e]}getFrameExtents(){return this._frameExtents}dispose(){this.map&&this.map.dispose(),this.mapPass&&this.mapPass.dispose()}copy(e){return this.camera=e.camera.clone(),this.bias=e.bias,this.radius=e.radius,this.mapSize.copy(e.mapSize),this}clone(){return(new this.constructor).copy(this)}toJSON(){const e={};return 0!==this.bias&&(e.bias=this.bias),0!==this.normalBias&&(e.normalBias=this.normalBias),1!==this.radius&&(e.radius=this.radius),(512!==this.mapSize.x||512!==this.mapSize.y)&&(e.mapSize=this.mapSize.toArray()),e.camera=this.camera.toJSON(!1).object,delete e.camera.matrix,e}}class Bpe extends fF{constructor(){super(new Ih(50,1,.5,500)),this.isSpotLightShadow=!0,this.focus=1}updateMatrices(e){const t=this.camera,i=2*M2*e.angle*this.focus,r=this.mapSize.width/this.mapSize.height,s=e.distance||t.far;(i!==t.fov||r!==t.aspect||s!==t.far)&&(t.fov=i,t.aspect=r,t.far=s,t.updateProjectionMatrix()),super.updateMatrices(e)}copy(e){return super.copy(e),this.focus=e.focus,this}}class HG extends Kb{constructor(e,t,i=0,r=Math.PI/3,s=0,o=2){super(e,t),this.isSpotLight=!0,this.type="SpotLight",this.position.copy(Pl.DEFAULT_UP),this.updateMatrix(),this.target=new Pl,this.distance=i,this.angle=r,this.penumbra=s,this.decay=o,this.map=null,this.shadow=new Bpe}get power(){return this.intensity*Math.PI}set power(e){this.intensity=e/Math.PI}dispose(){this.shadow.dispose()}copy(e,t){return super.copy(e,t),this.distance=e.distance,this.angle=e.angle,this.penumbra=e.penumbra,this.decay=e.decay,this.target=e.target.clone(),this.shadow=e.shadow.clone(),this}}const VG=new wo,cE=new It,pF=new It;class Ppe extends fF{constructor(){super(new Ih(90,1,.5,500)),this.isPointLightShadow=!0,this._frameExtents=new Qi(4,2),this._viewportCount=6,this._viewports=[new nc(2,1,1,1),new nc(0,1,1,1),new nc(3,1,1,1),new nc(1,1,1,1),new nc(3,0,1,1),new nc(1,0,1,1)],this._cubeDirections=[new It(1,0,0),new It(-1,0,0),new It(0,0,1),new It(0,0,-1),new It(0,1,0),new It(0,-1,0)],this._cubeUps=[new It(0,1,0),new It(0,1,0),new It(0,1,0),new It(0,1,0),new It(0,0,1),new It(0,0,-1)]}updateMatrices(e,t=0){const i=this.camera,r=this.matrix,s=e.distance||i.far;s!==i.far&&(i.far=s,i.updateProjectionMatrix()),cE.setFromMatrixPosition(e.matrixWorld),i.position.copy(cE),pF.copy(i.position),pF.add(this._cubeDirections[t]),i.up.copy(this._cubeUps[t]),i.lookAt(pF),i.updateMatrixWorld(),r.makeTranslation(-cE.x,-cE.y,-cE.z),VG.multiplyMatrices(i.projectionMatrix,i.matrixWorldInverse),this._frustum.setFromProjectionMatrix(VG)}}class GG extends Kb{constructor(e,t,i=0,r=2){super(e,t),this.isPointLight=!0,this.type="PointLight",this.distance=i,this.decay=r,this.shadow=new Ppe}get power(){return 4*this.intensity*Math.PI}set power(e){this.intensity=e/(4*Math.PI)}dispose(){this.shadow.dispose()}copy(e,t){return super.copy(e,t),this.distance=e.distance,this.decay=e.decay,this.shadow=e.shadow.clone(),this}}class Rpe extends fF{constructor(){super(new Q2(-5,5,5,-5,.5,500)),this.isDirectionalLightShadow=!0}}class hC extends Kb{constructor(e,t){super(e,t),this.isDirectionalLight=!0,this.type="DirectionalLight",this.position.copy(Pl.DEFAULT_UP),this.updateMatrix(),this.target=new Pl,this.shadow=new Rpe}dispose(){this.shadow.dispose()}copy(e){return super.copy(e),this.target=e.target.clone(),this.shadow=e.shadow.clone(),this}}class KI extends Kb{constructor(e,t){super(e,t),this.isAmbientLight=!0,this.type="AmbientLight"}}class kpe extends Kb{constructor(e,t,i=10,r=10){super(e,t),this.isRectAreaLight=!0,this.type="RectAreaLight",this.width=i,this.height=r}get power(){return this.intensity*this.width*this.height*Math.PI}set power(e){this.intensity=e/(this.width*this.height*Math.PI)}copy(e){return super.copy(e),this.width=e.width,this.height=e.height,this}toJSON(e){const t=super.toJSON(e);return t.object.width=this.width,t.object.height=this.height,t}}class Fpe{constructor(){this.isSphericalHarmonics3=!0,this.coefficients=[];for(let e=0;e<9;e++)this.coefficients.push(new It)}set(e){for(let t=0;t<9;t++)this.coefficients[t].copy(e[t]);return this}zero(){for(let e=0;e<9;e++)this.coefficients[e].set(0,0,0);return this}getAt(e,t){const i=e.x,r=e.y,s=e.z,o=this.coefficients;return t.copy(o[0]).multiplyScalar(.282095),t.addScaledVector(o[1],.488603*r),t.addScaledVector(o[2],.488603*s),t.addScaledVector(o[3],.488603*i),t.addScaledVector(o[4],i*r*1.092548),t.addScaledVector(o[5],r*s*1.092548),t.addScaledVector(o[6],.315392*(3*s*s-1)),t.addScaledVector(o[7],i*s*1.092548),t.addScaledVector(o[8],.546274*(i*i-r*r)),t}getIrradianceAt(e,t){const i=e.x,r=e.y,s=e.z,o=this.coefficients;return t.copy(o[0]).multiplyScalar(.886227),t.addScaledVector(o[1],1.023328*r),t.addScaledVector(o[2],1.023328*s),t.addScaledVector(o[3],1.023328*i),t.addScaledVector(o[4],.858086*i*r),t.addScaledVector(o[5],.858086*r*s),t.addScaledVector(o[6],.743125*s*s-.247708),t.addScaledVector(o[7],.858086*i*s),t.addScaledVector(o[8],.429043*(i*i-r*r)),t}add(e){for(let t=0;t<9;t++)this.coefficients[t].add(e.coefficients[t]);return this}addScaledSH(e,t){for(let i=0;i<9;i++)this.coefficients[i].addScaledVector(e.coefficients[i],t);return this}scale(e){for(let t=0;t<9;t++)this.coefficients[t].multiplyScalar(e);return this}lerp(e,t){for(let i=0;i<9;i++)this.coefficients[i].lerp(e.coefficients[i],t);return this}equals(e){for(let t=0;t<9;t++)if(!this.coefficients[t].equals(e.coefficients[t]))return!1;return!0}copy(e){return this.set(e.coefficients)}clone(){return(new this.constructor).copy(this)}fromArray(e,t=0){const i=this.coefficients;for(let r=0;r<9;r++)i[r].fromArray(e,t+3*r);return this}toArray(e=[],t=0){const i=this.coefficients;for(let r=0;r<9;r++)i[r].toArray(e,t+3*r);return e}static getBasisAt(e,t){const i=e.x,r=e.y,s=e.z;t[0]=.282095,t[1]=.488603*r,t[2]=.488603*s,t[3]=.488603*i,t[4]=1.092548*i*r,t[5]=1.092548*r*s,t[6]=.315392*(3*s*s-1),t[7]=1.092548*i*s,t[8]=.546274*(i*i-r*r)}}class Ope extends Kb{constructor(e=new Fpe,t=1){super(void 0,t),this.isLightProbe=!0,this.sh=e}copy(e){return super.copy(e),this.sh.copy(e.sh),this}fromJSON(e){return this.intensity=e.intensity,this.sh.fromArray(e.sh),this}toJSON(e){const t=super.toJSON(e);return t.object.sh=this.sh.toArray(),t}}class mF extends Gu{constructor(e){super(e),this.textures={}}load(e,t,i,r){const s=this,o=new vp(s.manager);o.setPath(s.path),o.setRequestHeader(s.requestHeader),o.setWithCredentials(s.withCredentials),o.load(e,function(l){try{t(s.parse(JSON.parse(l)))}catch(d){r?r(d):console.error(d),s.manager.itemError(e)}},i,r)}parse(e){const t=this.textures;function i(s){return void 0===t[s]&&console.warn("THREE.MaterialLoader: Undefined texture",s),t[s]}const r=mF.createMaterialFromType(e.type);if(void 0!==e.uuid&&(r.uuid=e.uuid),void 0!==e.name&&(r.name=e.name),void 0!==e.color&&void 0!==r.color&&r.color.setHex(e.color),void 0!==e.roughness&&(r.roughness=e.roughness),void 0!==e.metalness&&(r.metalness=e.metalness),void 0!==e.sheen&&(r.sheen=e.sheen),void 0!==e.sheenColor&&(r.sheenColor=(new Cr).setHex(e.sheenColor)),void 0!==e.sheenRoughness&&(r.sheenRoughness=e.sheenRoughness),void 0!==e.emissive&&void 0!==r.emissive&&r.emissive.setHex(e.emissive),void 0!==e.specular&&void 0!==r.specular&&r.specular.setHex(e.specular),void 0!==e.specularIntensity&&(r.specularIntensity=e.specularIntensity),void 0!==e.specularColor&&void 0!==r.specularColor&&r.specularColor.setHex(e.specularColor),void 0!==e.shininess&&(r.shininess=e.shininess),void 0!==e.clearcoat&&(r.clearcoat=e.clearcoat),void 0!==e.clearcoatRoughness&&(r.clearcoatRoughness=e.clearcoatRoughness),void 0!==e.iridescence&&(r.iridescence=e.iridescence),void 0!==e.iridescenceIOR&&(r.iridescenceIOR=e.iridescenceIOR),void 0!==e.iridescenceThicknessRange&&(r.iridescenceThicknessRange=e.iridescenceThicknessRange),void 0!==e.transmission&&(r.transmission=e.transmission),void 0!==e.thickness&&(r.thickness=e.thickness),void 0!==e.attenuationDistance&&(r.attenuationDistance=e.attenuationDistance),void 0!==e.attenuationColor&&void 0!==r.attenuationColor&&r.attenuationColor.setHex(e.attenuationColor),void 0!==e.anisotropy&&(r.anisotropy=e.anisotropy),void 0!==e.anisotropyRotation&&(r.anisotropyRotation=e.anisotropyRotation),void 0!==e.fog&&(r.fog=e.fog),void 0!==e.flatShading&&(r.flatShading=e.flatShading),void 0!==e.blending&&(r.blending=e.blending),void 0!==e.combine&&(r.combine=e.combine),void 0!==e.side&&(r.side=e.side),void 0!==e.shadowSide&&(r.shadowSide=e.shadowSide),void 0!==e.opacity&&(r.opacity=e.opacity),void 0!==e.transparent&&(r.transparent=e.transparent),void 0!==e.alphaTest&&(r.alphaTest=e.alphaTest),void 0!==e.alphaHash&&(r.alphaHash=e.alphaHash),void 0!==e.depthFunc&&(r.depthFunc=e.depthFunc),void 0!==e.depthTest&&(r.depthTest=e.depthTest),void 0!==e.depthWrite&&(r.depthWrite=e.depthWrite),void 0!==e.colorWrite&&(r.colorWrite=e.colorWrite),void 0!==e.blendSrc&&(r.blendSrc=e.blendSrc),void 0!==e.blendDst&&(r.blendDst=e.blendDst),void 0!==e.blendEquation&&(r.blendEquation=e.blendEquation),void 0!==e.blendSrcAlpha&&(r.blendSrcAlpha=e.blendSrcAlpha),void 0!==e.blendDstAlpha&&(r.blendDstAlpha=e.blendDstAlpha),void 0!==e.blendEquationAlpha&&(r.blendEquationAlpha=e.blendEquationAlpha),void 0!==e.blendColor&&void 0!==r.blendColor&&r.blendColor.setHex(e.blendColor),void 0!==e.blendAlpha&&(r.blendAlpha=e.blendAlpha),void 0!==e.stencilWriteMask&&(r.stencilWriteMask=e.stencilWriteMask),void 0!==e.stencilFunc&&(r.stencilFunc=e.stencilFunc),void 0!==e.stencilRef&&(r.stencilRef=e.stencilRef),void 0!==e.stencilFuncMask&&(r.stencilFuncMask=e.stencilFuncMask),void 0!==e.stencilFail&&(r.stencilFail=e.stencilFail),void 0!==e.stencilZFail&&(r.stencilZFail=e.stencilZFail),void 0!==e.stencilZPass&&(r.stencilZPass=e.stencilZPass),void 0!==e.stencilWrite&&(r.stencilWrite=e.stencilWrite),void 0!==e.wireframe&&(r.wireframe=e.wireframe),void 0!==e.wireframeLinewidth&&(r.wireframeLinewidth=e.wireframeLinewidth),void 0!==e.wireframeLinecap&&(r.wireframeLinecap=e.wireframeLinecap),void 0!==e.wireframeLinejoin&&(r.wireframeLinejoin=e.wireframeLinejoin),void 0!==e.rotation&&(r.rotation=e.rotation),void 0!==e.linewidth&&(r.linewidth=e.linewidth),void 0!==e.dashSize&&(r.dashSize=e.dashSize),void 0!==e.gapSize&&(r.gapSize=e.gapSize),void 0!==e.scale&&(r.scale=e.scale),void 0!==e.polygonOffset&&(r.polygonOffset=e.polygonOffset),void 0!==e.polygonOffsetFactor&&(r.polygonOffsetFactor=e.polygonOffsetFactor),void 0!==e.polygonOffsetUnits&&(r.polygonOffsetUnits=e.polygonOffsetUnits),void 0!==e.dithering&&(r.dithering=e.dithering),void 0!==e.alphaToCoverage&&(r.alphaToCoverage=e.alphaToCoverage),void 0!==e.premultipliedAlpha&&(r.premultipliedAlpha=e.premultipliedAlpha),void 0!==e.forceSinglePass&&(r.forceSinglePass=e.forceSinglePass),void 0!==e.visible&&(r.visible=e.visible),void 0!==e.toneMapped&&(r.toneMapped=e.toneMapped),void 0!==e.userData&&(r.userData=e.userData),void 0!==e.vertexColors&&(r.vertexColors="number"==typeof e.vertexColors?e.vertexColors>0:e.vertexColors),void 0!==e.uniforms)for(const s in e.uniforms){const o=e.uniforms[s];switch(r.uniforms[s]={},o.type){case"t":r.uniforms[s].value=i(o.value);break;case"c":r.uniforms[s].value=(new Cr).setHex(o.value);break;case"v2":r.uniforms[s].value=(new Qi).fromArray(o.value);break;case"v3":r.uniforms[s].value=(new It).fromArray(o.value);break;case"v4":r.uniforms[s].value=(new nc).fromArray(o.value);break;case"m3":r.uniforms[s].value=(new Ta).fromArray(o.value);break;case"m4":r.uniforms[s].value=(new wo).fromArray(o.value);break;default:r.uniforms[s].value=o.value}}if(void 0!==e.defines&&(r.defines=e.defines),void 0!==e.vertexShader&&(r.vertexShader=e.vertexShader),void 0!==e.fragmentShader&&(r.fragmentShader=e.fragmentShader),void 0!==e.glslVersion&&(r.glslVersion=e.glslVersion),void 0!==e.extensions)for(const s in e.extensions)r.extensions[s]=e.extensions[s];if(void 0!==e.lights&&(r.lights=e.lights),void 0!==e.clipping&&(r.clipping=e.clipping),void 0!==e.size&&(r.size=e.size),void 0!==e.sizeAttenuation&&(r.sizeAttenuation=e.sizeAttenuation),void 0!==e.map&&(r.map=i(e.map)),void 0!==e.matcap&&(r.matcap=i(e.matcap)),void 0!==e.alphaMap&&(r.alphaMap=i(e.alphaMap)),void 0!==e.bumpMap&&(r.bumpMap=i(e.bumpMap)),void 0!==e.bumpScale&&(r.bumpScale=e.bumpScale),void 0!==e.normalMap&&(r.normalMap=i(e.normalMap)),void 0!==e.normalMapType&&(r.normalMapType=e.normalMapType),void 0!==e.normalScale){let s=e.normalScale;!1===Array.isArray(s)&&(s=[s,s]),r.normalScale=(new Qi).fromArray(s)}return void 0!==e.displacementMap&&(r.displacementMap=i(e.displacementMap)),void 0!==e.displacementScale&&(r.displacementScale=e.displacementScale),void 0!==e.displacementBias&&(r.displacementBias=e.displacementBias),void 0!==e.roughnessMap&&(r.roughnessMap=i(e.roughnessMap)),void 0!==e.metalnessMap&&(r.metalnessMap=i(e.metalnessMap)),void 0!==e.emissiveMap&&(r.emissiveMap=i(e.emissiveMap)),void 0!==e.emissiveIntensity&&(r.emissiveIntensity=e.emissiveIntensity),void 0!==e.specularMap&&(r.specularMap=i(e.specularMap)),void 0!==e.specularIntensityMap&&(r.specularIntensityMap=i(e.specularIntensityMap)),void 0!==e.specularColorMap&&(r.specularColorMap=i(e.specularColorMap)),void 0!==e.envMap&&(r.envMap=i(e.envMap)),void 0!==e.envMapRotation&&r.envMapRotation.fromArray(e.envMapRotation),void 0!==e.envMapIntensity&&(r.envMapIntensity=e.envMapIntensity),void 0!==e.reflectivity&&(r.reflectivity=e.reflectivity),void 0!==e.refractionRatio&&(r.refractionRatio=e.refractionRatio),void 0!==e.lightMap&&(r.lightMap=i(e.lightMap)),void 0!==e.lightMapIntensity&&(r.lightMapIntensity=e.lightMapIntensity),void 0!==e.aoMap&&(r.aoMap=i(e.aoMap)),void 0!==e.aoMapIntensity&&(r.aoMapIntensity=e.aoMapIntensity),void 0!==e.gradientMap&&(r.gradientMap=i(e.gradientMap)),void 0!==e.clearcoatMap&&(r.clearcoatMap=i(e.clearcoatMap)),void 0!==e.clearcoatRoughnessMap&&(r.clearcoatRoughnessMap=i(e.clearcoatRoughnessMap)),void 0!==e.clearcoatNormalMap&&(r.clearcoatNormalMap=i(e.clearcoatNormalMap)),void 0!==e.clearcoatNormalScale&&(r.clearcoatNormalScale=(new Qi).fromArray(e.clearcoatNormalScale)),void 0!==e.iridescenceMap&&(r.iridescenceMap=i(e.iridescenceMap)),void 0!==e.iridescenceThicknessMap&&(r.iridescenceThicknessMap=i(e.iridescenceThicknessMap)),void 0!==e.transmissionMap&&(r.transmissionMap=i(e.transmissionMap)),void 0!==e.thicknessMap&&(r.thicknessMap=i(e.thicknessMap)),void 0!==e.anisotropyMap&&(r.anisotropyMap=i(e.anisotropyMap)),void 0!==e.sheenColorMap&&(r.sheenColorMap=i(e.sheenColorMap)),void 0!==e.sheenRoughnessMap&&(r.sheenRoughnessMap=i(e.sheenRoughnessMap)),r}setTextures(e){return this.textures=e,this}static createMaterialFromType(e){return new{ShadowMaterial:mpe,SpriteMaterial:jV,RawShaderMaterial:Ape,ShaderMaterial:Dh,PointsMaterial:Y_,MeshPhysicalMaterial:D0,MeshStandardMaterial:XI,MeshPhongMaterial:mg,MeshToonMaterial:RG,MeshNormalMaterial:gpe,MeshLambertMaterial:_pe,MeshDepthMaterial:P5,MeshDistanceMaterial:QV,MeshBasicMaterial:xd,MeshMatcapMaterial:ype,LineDashedMaterial:$b,LineBasicMaterial:Dc,Material:ld}[e]}}class Zb{static decodeText(e){if(typeof TextDecoder<"u")return(new TextDecoder).decode(e);let t="";for(let i=0,r=e.length;i0){const d=new NG(t);s=new YI(d),s.setCrossOrigin(this.crossOrigin);for(let h=0,f=e.length;h0){s=new YI(t.manager),s.setCrossOrigin(t.crossOrigin);for(let d=0,h=e.length;d{const se=new Pf;se.min.fromArray(re.boxMin),se.max.fromArray(re.boxMax);const le=new jh;return le.radius=re.sphereRadius,le.center.fromArray(re.sphereCenter),{boxInitialized:re.boxInitialized,box:se,sphereInitialized:re.sphereInitialized,sphere:le}}),o._maxGeometryCount=e.maxGeometryCount,o._maxVertexCount=e.maxVertexCount,o._maxIndexCount=e.maxIndexCount,o._geometryInitialized=e.geometryInitialized,o._geometryCount=e.geometryCount,o._matricesTexture=h(e.matricesTexture.uuid);break;case"LOD":o=new Efe;break;case"Line":o=new pg(l(e.geometry),d(e.material));break;case"LineLoop":o=new mG(l(e.geometry),d(e.material));break;case"LineSegments":o=new uc(l(e.geometry),d(e.material));break;case"PointCloud":case"Points":o=new qb(l(e.geometry),d(e.material));break;case"Sprite":o=new Sfe(d(e.material));break;case"Group":o=new Wl;break;case"Bone":o=new U5;break;default:o=new Pl}if(o.uuid=e.uuid,void 0!==e.name&&(o.name=e.name),void 0!==e.matrix?(o.matrix.fromArray(e.matrix),void 0!==e.matrixAutoUpdate&&(o.matrixAutoUpdate=e.matrixAutoUpdate),o.matrixAutoUpdate&&o.matrix.decompose(o.position,o.quaternion,o.scale)):(void 0!==e.position&&o.position.fromArray(e.position),void 0!==e.rotation&&o.rotation.fromArray(e.rotation),void 0!==e.quaternion&&o.quaternion.fromArray(e.quaternion),void 0!==e.scale&&o.scale.fromArray(e.scale)),void 0!==e.up&&o.up.fromArray(e.up),void 0!==e.castShadow&&(o.castShadow=e.castShadow),void 0!==e.receiveShadow&&(o.receiveShadow=e.receiveShadow),e.shadow&&(void 0!==e.shadow.bias&&(o.shadow.bias=e.shadow.bias),void 0!==e.shadow.normalBias&&(o.shadow.normalBias=e.shadow.normalBias),void 0!==e.shadow.radius&&(o.shadow.radius=e.shadow.radius),void 0!==e.shadow.mapSize&&o.shadow.mapSize.fromArray(e.shadow.mapSize),void 0!==e.shadow.camera&&(o.shadow.camera=this.parseObject(e.shadow.camera))),void 0!==e.visible&&(o.visible=e.visible),void 0!==e.frustumCulled&&(o.frustumCulled=e.frustumCulled),void 0!==e.renderOrder&&(o.renderOrder=e.renderOrder),void 0!==e.userData&&(o.userData=e.userData),void 0!==e.layers&&(o.layers.mask=e.layers),void 0!==e.children){const S=e.children;for(let R=0;R"u"&&console.warn("THREE.ImageBitmapLoader: createImageBitmap() not supported."),typeof fetch>"u"&&console.warn("THREE.ImageBitmapLoader: fetch() not supported."),this.options={premultiplyAlpha:"none"}}setOptions(e){return this.options=e,this}load(e,t,i,r){void 0===e&&(e=""),void 0!==this.path&&(e=this.path+e),e=this.manager.resolveURL(e);const s=this,o=Qy.get(e);if(void 0!==o)return s.manager.itemStart(e),o.then?void o.then(h=>{t&&t(h),s.manager.itemEnd(e)}).catch(h=>{r&&r(h)}):(setTimeout(function(){t&&t(o),s.manager.itemEnd(e)},0),o);const l={};l.credentials="anonymous"===this.crossOrigin?"same-origin":"include",l.headers=this.requestHeader;const d=fetch(e,l).then(function(h){return h.blob()}).then(function(h){return createImageBitmap(h,Object.assign(s.options,{colorSpaceConversion:"none"}))}).then(function(h){return Qy.add(e,h),t&&t(h),s.manager.itemEnd(e),h}).catch(function(h){r&&r(h),Qy.remove(e),s.manager.itemError(e),s.manager.itemEnd(e)});Qy.add(e,d),s.manager.itemStart(e)}}class XG{constructor(e=!0){this.autoStart=e,this.startTime=0,this.oldTime=0,this.elapsedTime=0,this.running=!1}start(){this.startTime=YG(),this.oldTime=this.startTime,this.elapsedTime=0,this.running=!0}stop(){this.getElapsedTime(),this.running=!1,this.autoStart=!1}getElapsedTime(){return this.getDelta(),this.elapsedTime}getDelta(){let e=0;if(this.autoStart&&!this.running)return this.start(),0;if(this.running){const t=YG();e=(t-this.oldTime)/1e3,this.oldTime=t,this.elapsedTime+=e}return e}}function YG(){return(typeof performance>"u"?Date:performance).now()}const AF="\\[\\]\\.:\\/",Wpe=new RegExp("["+AF+"]","g"),gF="[^"+AF+"]",jpe="[^"+AF.replace("\\.","")+"]",Zpe=new RegExp("^"+/((?:WC+[\/:])*)/.source.replace("WC",gF)+/(WCOD+)?/.source.replace("WCOD",jpe)+/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC",gF)+/\.(WC+)(?:\[(.+)\])?/.source.replace("WC",gF)+"$"),Jpe=["material","materials","bones","map"];class eme{constructor(e,t,i){const r=i||Ll.parseTrackName(t);this._targetGroup=e,this._bindings=e.subscribe_(t,r)}getValue(e,t){this.bind();const r=this._bindings[this._targetGroup.nCachedObjects_];void 0!==r&&r.getValue(e,t)}setValue(e,t){const i=this._bindings;for(let r=this._targetGroup.nCachedObjects_,s=i.length;r!==s;++r)i[r].setValue(e,t)}bind(){const e=this._bindings;for(let t=this._targetGroup.nCachedObjects_,i=e.length;t!==i;++t)e[t].bind()}unbind(){const e=this._bindings;for(let t=this._targetGroup.nCachedObjects_,i=e.length;t!==i;++t)e[t].unbind()}}let Ll=(()=>{class n{constructor(t,i,r){this.path=i,this.parsedPath=r||n.parseTrackName(i),this.node=n.findNode(t,this.parsedPath.nodeName),this.rootNode=t,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(t,i,r){return t&&t.isAnimationObjectGroup?new n.Composite(t,i,r):new n(t,i,r)}static sanitizeNodeName(t){return t.replace(/\s/g,"_").replace(Wpe,"")}static parseTrackName(t){const i=Zpe.exec(t);if(null===i)throw new Error("PropertyBinding: Cannot parse trackName: "+t);const r={nodeName:i[2],objectName:i[3],objectIndex:i[4],propertyName:i[5],propertyIndex:i[6]},s=r.nodeName&&r.nodeName.lastIndexOf(".");if(void 0!==s&&-1!==s){const o=r.nodeName.substring(s+1);-1!==Jpe.indexOf(o)&&(r.nodeName=r.nodeName.substring(0,s),r.objectName=o)}if(null===r.propertyName||0===r.propertyName.length)throw new Error("PropertyBinding: can not parse propertyName from trackName: "+t);return r}static findNode(t,i){if(void 0===i||""===i||"."===i||-1===i||i===t.name||i===t.uuid)return t;if(t.skeleton){const r=t.skeleton.getBoneByName(i);if(void 0!==r)return r}if(t.children){const r=function(o){for(let l=0;lNumber.EPSILON){if(wt<0&&(Et=Ee[yt],Un=-Un,Xt=Ee[Mt],wt=-wt),le.yXt.y)continue;if(le.y===Et.y){if(le.x===Et.x)return!0}else{const Kt=wt*(le.x-Et.x)-Un*(le.y-Et.y);if(0===Kt)return!0;if(Kt<0)continue;We=!We}}else{if(le.y!==Et.y)continue;if(Xt.x<=le.x&&le.x<=Et.x||Et.x<=le.x&&le.x<=Xt.x)return!0}}return We}const r=K_.isClockWise,s=this.subPaths;if(0===s.length)return[];let o,l,d;const h=[];if(1===s.length)return l=s[0],d=new sC,d.curves=l.curves,h.push(d),h;let f=!r(s[0].getPoints());f=e?!f:f;const A=[],S=[];let re,se,R=[],G=0;S[G]=void 0,R[G]=[];for(let le=0,Ee=s.length;le1){let le=!1,Ee=0;for(let Ce=0,We=S.length;Ce0&&!1===le&&(R=A)}for(let le=0,Ee=S.length;leMath.PI&&(pc-=Xr),Ed<-Math.PI?Ed+=Xr:Ed>Math.PI&&(Ed-=Xr),l.theta=pc<=Ed?Math.max(pc,Math.min(Ed,l.theta)):l.theta>(pc+Ed)/2?Math.max(pc,l.theta):Math.min(Ed,l.theta)),l.phi=Math.max(i.minPolarAngle,Math.min(i.maxPolarAngle,l.phi)),l.makeSafe(),!0===i.enableDamping?i.target.addScaledVector(f,i.dampingFactor):i.target.add(f),i.target.sub(i.cursor),i.target.clampLength(i.minTargetRadius,i.maxTargetRadius),i.target.add(i.cursor);let Ml=!1;if(i.zoomToCursor&&yt||i.object.isOrthographicCamera)l.radius=mr(l.radius);else{const Qc=l.radius;l.radius=mr(l.radius*h),Ml=Qc!=l.radius}if(Tn.setFromSpherical(l),Tn.applyQuaternion(mo),jl.copy(i.target).add(Tn),i.object.lookAt(i.target),!0===i.enableDamping?(d.theta*=1-i.dampingFactor,d.phi*=1-i.dampingFactor,f.multiplyScalar(1-i.dampingFactor)):(d.set(0,0,0),f.set(0,0,0)),i.zoomToCursor&&yt){let Qc=null;if(i.object.isPerspectiveCamera){const Wu=Tn.length();Qc=mr(Wu*h);const Cx=Wu-Qc;i.object.position.addScaledVector(We,Cx),i.object.updateMatrixWorld(),Ml=!!Cx}else if(i.object.isOrthographicCamera){const Wu=new It(Mt.x,Mt.y,0);Wu.unproject(i.object);const Cx=i.object.zoom;i.object.zoom=Math.max(i.minZoom,Math.min(i.maxZoom,i.object.zoom/h)),i.object.updateProjectionMatrix(),Ml=Cx!==i.object.zoom;const EB=new It(Mt.x,Mt.y,0);EB.unproject(i.object),i.object.position.sub(EB).add(Wu),i.object.updateMatrixWorld(),Qc=Tn.length()}else console.warn("WARNING: OrbitControls.js encountered an unknown camera type - zoom to cursor disabled."),i.zoomToCursor=!1;null!==Qc&&(this.screenSpacePanning?i.target.set(0,0,-1).transformDirection(i.object.matrix).multiplyScalar(Qc).add(i.object.position):(o4.origin.copy(i.object.position),o4.direction.set(0,0,-1).transformDirection(i.object.matrix),Math.abs(i.object.up.dot(o4.direction))o||8*(1-is.dot(i.object.quaternion))>o||ki.distanceToSquared(i.target)>o)&&(i.dispatchEvent(fq),Xn.copy(i.object.position),is.copy(i.object.quaternion),ki.copy(i.target),!0)}}(),this.dispose=function(){i.domElement.removeEventListener("contextmenu",ga),i.domElement.removeEventListener("pointerdown",ho),i.domElement.removeEventListener("pointercancel",gn),i.domElement.removeEventListener("wheel",ur),i.domElement.removeEventListener("pointermove",ka),i.domElement.removeEventListener("pointerup",gn),i.domElement.getRootNode().removeEventListener("keydown",Fr,{capture:!0}),null!==i._domElementKeyEvents&&(i._domElementKeyEvents.removeEventListener("keydown",Qo),i._domElementKeyEvents=null)};const i=this,r={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_PAN:4,TOUCH_DOLLY_PAN:5,TOUCH_DOLLY_ROTATE:6};let s=r.NONE;const o=1e-6,l=new nq,d=new nq;let h=1;const f=new It,A=new Qi,S=new Qi,R=new Qi,G=new Qi,re=new Qi,se=new Qi,le=new Qi,Ee=new Qi,Ce=new Qi,We=new It,Mt=new Qi;let yt=!1;const Et=[],Xt={};let Un=!1;function Kt(Tn){const Er=Math.abs(.01*Tn);return Math.pow(.95,i.zoomSpeed*Er)}function Vi(Tn){d.theta-=Tn}function Yi(Tn){d.phi-=Tn}const En=function(){const Tn=new It;return function(mo,Xn){Tn.setFromMatrixColumn(Xn,0),Tn.multiplyScalar(-mo),f.add(Tn)}}(),wi=function(){const Tn=new It;return function(mo,Xn){!0===i.screenSpacePanning?Tn.setFromMatrixColumn(Xn,1):(Tn.setFromMatrixColumn(Xn,0),Tn.crossVectors(i.object.up,Tn)),Tn.multiplyScalar(mo),f.add(Tn)}}(),zn=function(){const Tn=new It;return function(mo,Xn){const is=i.domElement;if(i.object.isPerspectiveCamera){Tn.copy(i.object.position).sub(i.target);let Xr=Tn.length();Xr*=Math.tan(i.object.fov/2*Math.PI/180),En(2*mo*Xr/is.clientHeight,i.object.matrix),wi(2*Xn*Xr/is.clientHeight,i.object.matrix)}else i.object.isOrthographicCamera?(En(mo*(i.object.right-i.object.left)/i.object.zoom/is.clientWidth,i.object.matrix),wi(Xn*(i.object.top-i.object.bottom)/i.object.zoom/is.clientHeight,i.object.matrix)):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - pan disabled."),i.enablePan=!1)}}();function oi(Tn){i.object.isPerspectiveCamera||i.object.isOrthographicCamera?h/=Tn:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),i.enableZoom=!1)}function ui(Tn){i.object.isPerspectiveCamera||i.object.isOrthographicCamera?h*=Tn:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),i.enableZoom=!1)}function vi(Tn,Er){if(!i.zoomToCursor)return;yt=!0;const mo=i.domElement.getBoundingClientRect(),is=Er-mo.top,Xr=mo.height;Mt.x=(Tn-mo.left)/mo.width*2-1,Mt.y=-is/Xr*2+1,We.set(Mt.x,Mt.y,1).unproject(i.object).sub(i.object.position).normalize()}function mr(Tn){return Math.max(i.minDistance,Math.min(i.maxDistance,Tn))}function Mr(Tn){A.set(Tn.clientX,Tn.clientY)}function $s(Tn){G.set(Tn.clientX,Tn.clientY)}function ws(Tn){if(1===Et.length)A.set(Tn.pageX,Tn.pageY);else{const Er=uo(Tn);A.set(.5*(Tn.pageX+Er.x),.5*(Tn.pageY+Er.y))}}function Co(Tn){if(1===Et.length)G.set(Tn.pageX,Tn.pageY);else{const Er=uo(Tn);G.set(.5*(Tn.pageX+Er.x),.5*(Tn.pageY+Er.y))}}function lo(Tn){const Er=uo(Tn),mo=Tn.pageX-Er.x,Xn=Tn.pageY-Er.y,is=Math.sqrt(mo*mo+Xn*Xn);le.set(0,is)}function gr(Tn){if(1==Et.length)S.set(Tn.pageX,Tn.pageY);else{const mo=uo(Tn);S.set(.5*(Tn.pageX+mo.x),.5*(Tn.pageY+mo.y))}R.subVectors(S,A).multiplyScalar(i.rotateSpeed);const Er=i.domElement;Vi(2*Math.PI*R.x/Er.clientHeight),Yi(2*Math.PI*R.y/Er.clientHeight),A.copy(S)}function ls(Tn){if(1===Et.length)re.set(Tn.pageX,Tn.pageY);else{const Er=uo(Tn);re.set(.5*(Tn.pageX+Er.x),.5*(Tn.pageY+Er.y))}se.subVectors(re,G).multiplyScalar(i.panSpeed),zn(se.x,se.y),G.copy(re)}function Tr(Tn){const Er=uo(Tn),mo=Tn.pageX-Er.x,Xn=Tn.pageY-Er.y,is=Math.sqrt(mo*mo+Xn*Xn);Ee.set(0,is),Ce.set(0,Math.pow(Ee.y/le.y,i.zoomSpeed)),oi(Ce.y),le.copy(Ee),vi(.5*(Tn.pageX+Er.x),.5*(Tn.pageY+Er.y))}function ho(Tn){!1!==i.enabled&&(0===Et.length&&(i.domElement.setPointerCapture(Tn.pointerId),i.domElement.addEventListener("pointermove",ka),i.domElement.addEventListener("pointerup",gn)),!function qa(Tn){for(let Er=0;Er0?oi(Kt(Ce.y)):Ce.y<0&&ui(Kt(Ce.y)),le.copy(Ee),i.update()}(Tn);break;case r.PAN:if(!1===i.enablePan)return;!function ms(Tn){re.set(Tn.clientX,Tn.clientY),se.subVectors(re,G).multiplyScalar(i.panSpeed),zn(se.x,se.y),G.copy(re),i.update()}(Tn)}}(Tn))}function gn(Tn){switch(function Sd(Tn){delete Xt[Tn.pointerId];for(let Er=0;Er0&&oi(Kt(Tn.deltaY)),i.update()}(function $r(Tn){const mo={clientX:Tn.clientX,clientY:Tn.clientY,deltaY:Tn.deltaY};switch(Tn.deltaMode){case 1:mo.deltaY*=16;break;case 2:mo.deltaY*=100}return Tn.ctrlKey&&!Un&&(mo.deltaY*=10),mo}(Tn)),i.dispatchEvent(pq))}function Fr(Tn){"Control"===Tn.key&&(Un=!0,i.domElement.getRootNode().addEventListener("keyup",Aa,{passive:!0,capture:!0}))}function Aa(Tn){"Control"===Tn.key&&(Un=!1,i.domElement.getRootNode().removeEventListener("keyup",Aa,{passive:!0,capture:!0}))}function Qo(Tn){!1===i.enabled||!1===i.enablePan||function Us(Tn){let Er=!1;switch(Tn.code){case i.keys.UP:Tn.ctrlKey||Tn.metaKey||Tn.shiftKey?Yi(2*Math.PI*i.rotateSpeed/i.domElement.clientHeight):zn(0,i.keyPanSpeed),Er=!0;break;case i.keys.BOTTOM:Tn.ctrlKey||Tn.metaKey||Tn.shiftKey?Yi(-2*Math.PI*i.rotateSpeed/i.domElement.clientHeight):zn(0,-i.keyPanSpeed),Er=!0;break;case i.keys.LEFT:Tn.ctrlKey||Tn.metaKey||Tn.shiftKey?Vi(2*Math.PI*i.rotateSpeed/i.domElement.clientHeight):zn(i.keyPanSpeed,0),Er=!0;break;case i.keys.RIGHT:Tn.ctrlKey||Tn.metaKey||Tn.shiftKey?Vi(-2*Math.PI*i.rotateSpeed/i.domElement.clientHeight):zn(-i.keyPanSpeed,0),Er=!0}Er&&(Tn.preventDefault(),i.update())}(Tn)}function As(Tn){switch(Ro(Tn),Et.length){case 1:switch(i.touches.ONE){case 0:if(!1===i.enableRotate)return;ws(Tn),s=r.TOUCH_ROTATE;break;case 1:if(!1===i.enablePan)return;Co(Tn),s=r.TOUCH_PAN;break;default:s=r.NONE}break;case 2:switch(i.touches.TWO){case 2:if(!1===i.enableZoom&&!1===i.enablePan)return;(function On(Tn){i.enableZoom&&lo(Tn),i.enablePan&&Co(Tn)})(Tn),s=r.TOUCH_DOLLY_PAN;break;case 3:if(!1===i.enableZoom&&!1===i.enableRotate)return;(function ps(Tn){i.enableZoom&&lo(Tn),i.enableRotate&&ws(Tn)})(Tn),s=r.TOUCH_DOLLY_ROTATE;break;default:s=r.NONE}break;default:s=r.NONE}s!==r.NONE&&i.dispatchEvent(xF)}function ga(Tn){!1!==i.enabled&&Tn.preventDefault()}function Ro(Tn){let Er=Xt[Tn.pointerId];void 0===Er&&(Er=new Qi,Xt[Tn.pointerId]=Er),Er.set(Tn.pageX,Tn.pageY)}function uo(Tn){return Xt[Tn.pointerId===Et[0]?Et[1]:Et[0]]}i.domElement.addEventListener("contextmenu",ga),i.domElement.addEventListener("pointerdown",ho),i.domElement.addEventListener("pointercancel",gn),i.domElement.addEventListener("wheel",ur,{passive:!1}),i.domElement.getRootNode().addEventListener("keydown",Fr,{passive:!0,capture:!0}),this.update()}}class hme{constructor(e,t=[0,0,200]){var i;this.controls=[],this.mainControls=null,this.overlayControls=null;const r=null===(i=e.getMainRenderer())||void 0===i?void 0:i.domElement,s=new Ih(75,r.offsetWidth/r.offsetHeight,10,1e5),o=new Q2(r.offsetWidth/-2,r.offsetWidth/2,r.offsetHeight/2,r.offsetHeight/-2,10,1e5);this.perspectiveControls=this.setOrbitControls(s,r),this.orthographicControls=this.setOrbitControls(o,r),s.position.z=o.position.z=t[2],s.position.y=o.position.y=t[1],s.position.x=o.position.x=t[0],t.length>=6&&(this.perspectiveControls.target=this.orthographicControls.target=new It(t[3],t[4],t[5])),this.addControls(this.perspectiveControls),this.addControls(this.orthographicControls),this.setActiveControls(this.perspectiveControls),this.setMainControls(this.perspectiveControls),this.setOverlayControls(this.orthographicControls),this.getActiveControls().addEventListener("change",()=>{this.transformSync(),this.updateSync()}),this.initializeZoomControls(),this.setupResize(r)}setOrbitControls(e,t){const i=new dme(e,t);return i.enableDamping=!0,i.dampingFactor=.25,i.enableZoom=!0,i.autoRotate=!1,i}setActiveControls(e){this.activeControls=e}setMainControls(e){this.mainControls=e}setOverlayControls(e){this.overlayControls=e}getActiveControls(){return this.activeControls}getMainControls(){return this.mainControls}getOverlayControls(){return this.overlayControls}getActiveCamera(){return this.activeControls.object}getMainCamera(){return this.mainControls.object}getOverlayCamera(){return this.overlayControls.object}getAllCameras(){return[this.getMainCamera(),this.getOverlayCamera()]}addControls(e){this.containsObject(e,this.controls)||this.controls.push(e)}removeControls(e){const t=this.controls.indexOf(e);t>-1&&this.controls.splice(t,1)}swapControls(){const e=this.mainControls;this.mainControls=this.overlayControls,this.overlayControls=e}updateSync(){for(const e of this.controls)e!==this.activeControls&&this.update(e)}update(e){e.update()}transformSync(){for(const e of this.controls)e!==this.activeControls&&(this.positionSync(e),this.rotationSync(e))}zoomTo(e,t){for(const i of this.zoomCameraAnimPairs){const r=i.camera,s=i.anim;if(r.isOrthographicCamera)s.to({zoom:r.zoom*(1/e)},t),r.updateProjectionMatrix();else{const o=r.position;s.to({x:o.x*e,y:o.y*e,z:o.z*e},t)}s.start()}}lookAtObject(e,t,i=0){new It(0,0,0);const s=this.getObjectPosition(e,t);if(s)for(const o of this.getAllCameras())new If(o.position).to({x:1.1*s.x+i,y:1.1*s.y+i,z:1.1*s.z+i},200).start()}getObjectPosition(e,t){var i,r;const s=t.getObjectByProperty("uuid",e);if(s){const o=new It(0,0,0);let l=new It;return s instanceof Wl?s.traverse(d=>{var h,f;if(0===d.children.length)if(d.position.equals(o)){if(null!==(h=d.geometry)&&void 0!==h&&h.boundingSphere)try{l.add(d.geometry.boundingSphere.getBoundingBox().max)}catch{l.add(null===(f=d.geometry.boundingSphere)||void 0===f?void 0:f.center)}}else l.add(d.position)}):l=s.position.equals(o)?null===(r=null===(i=s.geometry)||void 0===i?void 0:i.boundingSphere)||void 0===r?void 0:r.center:s.position,l}}hideTubeTracksOnZoom(e,t){let i=!1;const r=new It;this.activeControls.addEventListener("change",s=>{var o,l,d,h;const f=(null===(l=null===(o=s?.target)||void 0===o?void 0:o.object)||void 0===l?void 0:l.position).distanceTo(r){"Track"===A.name&&A.geometry instanceof jb&&(A.visible=!1)}),i=!0):!f&&i&&(null===(h=e.getObjectByName("Tracks"))||void 0===h||h.traverse(A=>{"Track"===A.name&&A.geometry instanceof jb&&(A.visible=!0)}),i=!1)})}initializeZoomControls(){const e=this.getAllCameras();this.zoomCameraAnimPairs=[];for(const t of e){const i=new If(t.isOrthographicCamera?t:t.position);this.zoomCameraAnimPairs.push({camera:t,anim:i})}}positionSync(e){e.object.position.set(this.activeControls.object.position.x,this.activeControls.object.position.y,this.activeControls.object.position.z)}rotationSync(e){e.target=this.activeControls.target}containsObject(e,t){for(const i of t)if(i===e)return!0;return!1}setupResize(e){window.addEventListener("resize",()=>{let t=this.getMainCamera();t.isOrthographicCamera?(t.left=e.offsetWidth/-2,t.right=e.offsetWidth/2,t.top=e.offsetHeight/2,t.bottom=e.offsetHeight/-2,t.updateProjectionMatrix()):(t.aspect=e.offsetWidth/e.offsetHeight,t.updateProjectionMatrix())})}objectIndex(e,t){for(let i=0;it.offsetWidth>0?t.offsetWidth:window.innerWidth,r=()=>t.offsetHeight>0?t.offsetHeight:window.innerHeight,s=this.getMainRenderer();s.setSize(i(),r(),!1),s.setPixelRatio(window.devicePixelRatio),s.domElement.id="three-canvas",t.appendChild(this.getMainRenderer().domElement),window.addEventListener("resize",()=>{s.setSize(i(),r())})}setMainRenderer(e){this.mainRenderer=e}setOverlayRenderer(e){const t=new wI({canvas:e,antialias:!1,alpha:!0});this.addRenderer(t),this.overlayRenderer=t}setRenderers(e){this.renderers=e}getMainRenderer(){return this.mainRenderer}getOverlayRenderer(){return this.overlayRenderer}getRenderers(){return this.renderers}addRenderer(e){this.containsObject(e,this.renderers)||this.renderers.push(e)}removeControls(e){const t=this.renderers.indexOf(e);t>-1&&this.renderers.splice(t,1)}swapRenderers(e,t){const i=e;e=t,t=i}containsObject(e,t){for(const i of t)if(i===e)return!0;return!1}setLocalClippingEnabled(e){for(const t of this.renderers)t.localClippingEnabled=e}getLocalClipping(){if(this.renderers.length>0)return this.renderers[0].localClippingEnabled}isFixedOverlay(){return this.fixedOverlay}setFixOverlay(e){this.fixedOverlay=e}}class fme{parse(e){let t="",i=0,r=0,s=0;const o=new It,l=new Cr,d=new It,h=new Qi,f=[];return e.traverse(function(G){!0===G.isMesh&&function A(G){let re=0,se=0,le=0;const Ee=G.geometry,Ce=new Ta,We=Ee.getAttribute("position"),Mt=Ee.getAttribute("normal"),yt=Ee.getAttribute("uv"),Et=Ee.getIndex();if(t+="o "+G.name+"\n",G.material&&G.material.name&&(t+="usemtl "+G.material.name+"\n"),void 0!==We)for(let Xt=0,Un=We.count;Xt"u"&&typeof OffscreenCanvas<"u"?new OffscreenCanvas(1,1):document.createElement("canvas")}function xq(n,e){if(void 0!==n.toBlob)return new Promise(i=>n.toBlob(i,e));let t;return"image/jpeg"===e?t=.92:"image/webp"===e&&(t=.8),n.convertToBlob({type:e,quality:t})}class xme{constructor(){this.plugins=[],this.options={},this.pending=[],this.buffers=[],this.byteOffset=0,this.buffers=[],this.nodeMap=new Map,this.skins=[],this.extensionsUsed={},this.extensionsRequired={},this.uids=new Map,this.uid=0,this.json={asset:{version:"2.0",generator:"THREE.GLTFExporter"}},this.cache={meshes:new Map,attributes:new Map,attributesNormalized:new Map,materials:new Map,textures:new Map,images:new Map}}setPlugins(e){this.plugins=e}write(e,t,i={}){var r=this;return(0,Te.A)(function*(){r.options=Object.assign({binary:!1,trs:!1,onlyVisible:!0,maxTextureSize:1/0,animations:[],includeCustomExtensions:!1},i),r.options.animations.length>0&&(r.options.trs=!0),r.processInput(e),yield Promise.all(r.pending);const l=r.json;i=r.options;const d=r.extensionsUsed,h=r.extensionsRequired,f=new Blob(r.buffers,{type:"application/octet-stream"}),A=Object.keys(d),S=Object.keys(h);if(A.length>0&&(l.extensionsUsed=A),S.length>0&&(l.extensionsRequired=S),l.buffers&&l.buffers.length>0&&(l.buffers[0].byteLength=f.size),!0===i.binary){const R=new FileReader;R.readAsArrayBuffer(f),R.onloadend=function(){const G=EF(R.result),re=new DataView(new ArrayBuffer(8));re.setUint32(0,G.byteLength,!0),re.setUint32(4,5130562,!0);const se=EF(function yme(n){return(new TextEncoder).encode(n).buffer}(JSON.stringify(l)),32),le=new DataView(new ArrayBuffer(8));le.setUint32(0,se.byteLength,!0),le.setUint32(4,1313821514,!0);const Ee=new ArrayBuffer(12),Ce=new DataView(Ee);Ce.setUint32(0,1179937895,!0),Ce.setUint32(4,2,!0),Ce.setUint32(8,12+le.byteLength+se.byteLength+re.byteLength+G.byteLength,!0);const Mt=new Blob([Ee,le,se,re,G],{type:"application/octet-stream"}),yt=new FileReader;yt.readAsArrayBuffer(Mt),yt.onloadend=function(){t(yt.result)}}}else if(l.buffers&&l.buffers.length>0){const R=new FileReader;R.readAsDataURL(f),R.onloadend=function(){l.buffers[0].uri=R.result,t(l)}}else t(l)})()}serializeUserData(e,t){if(0===Object.keys(e.userData).length)return;const i=this.options,r=this.extensionsUsed;try{const s=JSON.parse(JSON.stringify(e.userData));if(i.includeCustomExtensions&&s.gltfExtensions){void 0===t.extensions&&(t.extensions={});for(const o in s.gltfExtensions)t.extensions[o]=s.gltfExtensions[o],r[o]=!0;delete s.gltfExtensions}Object.keys(s).length>0&&(t.extras=s)}catch(s){console.warn("THREE.GLTFExporter: userData of '"+e.name+"' won't be serialized because of JSON.stringify error - "+s.message)}}getUID(e,t=!1){if(!1===this.uids.has(e)){const r=new Map;r.set(!0,this.uid++),r.set(!1,this.uid++),this.uids.set(e,r)}return this.uids.get(e).get(t)}isNormalizedNormalAttribute(e){if(this.cache.attributesNormalized.has(e))return!1;const i=new It;for(let r=0,s=e.count;r5e-4)return!1;return!0}createNormalizedNormalAttribute(e){const t=this.cache;if(t.attributesNormalized.has(e))return t.attributesNormalized.get(e);const i=e.clone(),r=new It;for(let s=0,o=i.count;s4?re=e.array[R*e.itemSize+G]:(0===G?re=e.getX(R):1===G?re=e.getY(R):2===G?re=e.getZ(R):3===G&&(re=e.getW(R)),!0===e.normalized&&(re=VS.normalize(re,e.array))),5126===t?h.setFloat32(f,re,!0):5124===t?h.setInt32(f,re,!0):5125===t?h.setUint32(f,re,!0):5122===t?h.setInt16(f,re,!0):5123===t?h.setUint16(f,re,!0):5120===t?h.setInt8(f,re):5121===t&&h.setUint8(f,re),f+=l}const A={buffer:this.processBuffer(h.buffer),byteOffset:this.byteOffset,byteLength:d};return void 0!==s&&(A.target=s),34962===s&&(A.byteStride=e.itemSize*l),this.byteOffset+=d,o.bufferViews.push(A),{id:o.bufferViews.length-1,byteLength:0}}processBufferViewImage(e){const t=this,i=t.json;return i.bufferViews||(i.bufferViews=[]),new Promise(function(r){const s=new FileReader;s.readAsArrayBuffer(e),s.onloadend=function(){const o=EF(s.result),l={buffer:t.processBuffer(o),byteOffset:t.byteOffset,byteLength:o.byteLength};t.byteOffset+=o.byteLength,r(i.bufferViews.push(l)-1)}})}processAccessor(e,t,i,r){const s=this.json;let l;if(e.array.constructor===Float32Array)l=5126;else if(e.array.constructor===Int32Array)l=5124;else if(e.array.constructor===Uint32Array)l=5125;else if(e.array.constructor===Int16Array)l=5122;else if(e.array.constructor===Uint16Array)l=5123;else if(e.array.constructor===Int8Array)l=5120;else{if(e.array.constructor!==Uint8Array)throw new Error("THREE.GLTFExporter: Unsupported bufferAttribute component type: "+e.array.constructor.name);l=5121}if(void 0===i&&(i=0),(void 0===r||r===1/0)&&(r=e.count),0===r)return null;const d=function bme(n,e,t){const i={min:new Array(n.itemSize).fill(Number.POSITIVE_INFINITY),max:new Array(n.itemSize).fill(Number.NEGATIVE_INFINITY)};for(let r=e;r4?o=n.array[r*n.itemSize+s]:(0===s?o=n.getX(r):1===s?o=n.getY(r):2===s?o=n.getZ(r):3===s&&(o=n.getW(r)),!0===n.normalized&&(o=VS.normalize(o,n.array))),i.min[s]=Math.min(i.min[s],o),i.max[s]=Math.max(i.max[s],o)}return i}(e,i,r);let h;void 0!==t&&(h=e===t.index?34963:34962);const f=this.processBufferView(e,l,i,r,h),A={bufferView:f.id,byteOffset:f.byteOffset,componentType:l,count:r,max:d.max,min:d.min,type:{1:"SCALAR",2:"VEC2",3:"VEC3",4:"VEC4",9:"MAT3",16:"MAT4"}[e.itemSize]};return!0===e.normalized&&(A.normalized=!0),s.accessors||(s.accessors=[]),s.accessors.push(A)-1}processImage(e,t,i,r="image/png"){if(null!==e){const s=this,o=s.cache,l=s.json,d=s.options,h=s.pending;o.images.has(e)||o.images.set(e,{});const f=o.images.get(e),A=r+":flipY/"+i.toString();if(void 0!==f[A])return f[A];l.images||(l.images=[]);const S={mimeType:r},R=bq();R.width=Math.min(e.width,d.maxTextureSize),R.height=Math.min(e.height,d.maxTextureSize);const G=R.getContext("2d");if(!0===i&&(G.translate(0,R.height),G.scale(1,-1)),void 0!==e.data){t!==gp&&console.error("GLTFExporter: Only RGBAFormat is supported.",t),(e.width>d.maxTextureSize||e.height>d.maxTextureSize)&&console.warn("GLTFExporter: Image size is bigger than maxTextureSize",e);const se=new Uint8ClampedArray(e.height*e.width*4);for(let le=0;les.processBufferViewImage(se)).then(se=>{S.bufferView=se})):void 0!==R.toDataURL?S.uri=R.toDataURL(r):h.push(xq(R,r).then(se=>(new FileReader).readAsDataURL(se)).then(se=>{S.uri=se}));const re=l.images.push(S)-1;return f[A]=re,re}throw new Error("THREE.GLTFExporter: No valid image data found. Unable to process texture.")}processSampler(e){const t=this.json;return t.samplers||(t.samplers=[]),t.samplers.push({magFilter:pm[e.magFilter],minFilter:pm[e.minFilter],wrapS:pm[e.wrapS],wrapT:pm[e.wrapT]})-1}processTexture(e){const i=this.options,r=this.cache,s=this.json;if(r.textures.has(e))return r.textures.get(e);s.textures||(s.textures=[]),e instanceof iC&&(e=CF(e,i.maxTextureSize));let o=e.userData.mimeType;"image/webp"===o&&(o="image/png");const l={sampler:this.processSampler(e),source:this.processImage(e.image,e.format,e.flipY,o)};e.name&&(l.name=e.name),this._invokeAll(function(h){h.writeTexture&&h.writeTexture(e,l)});const d=s.textures.push(l)-1;return r.textures.set(e,d),d}processMaterial(e){const t=this.cache,i=this.json;if(t.materials.has(e))return t.materials.get(e);if(e.isShaderMaterial)return console.warn("GLTFExporter: THREE.ShaderMaterial not supported."),null;i.materials||(i.materials=[]);const r={pbrMetallicRoughness:{}};!0!==e.isMeshStandardMaterial&&!0!==e.isMeshBasicMaterial&&console.warn("GLTFExporter: Use MeshStandardMaterial or MeshBasicMaterial for best results.");const s=e.color.toArray().concat([e.opacity]);if(hE(s,[1,1,1,1])||(r.pbrMetallicRoughness.baseColorFactor=s),e.isMeshStandardMaterial?(r.pbrMetallicRoughness.metallicFactor=e.metalness,r.pbrMetallicRoughness.roughnessFactor=e.roughness):(r.pbrMetallicRoughness.metallicFactor=.5,r.pbrMetallicRoughness.roughnessFactor=.5),e.metalnessMap||e.roughnessMap){const l=this.buildMetalRoughTexture(e.metalnessMap,e.roughnessMap),d={index:this.processTexture(l),channel:l.channel};this.applyTextureTransform(d,l),r.pbrMetallicRoughness.metallicRoughnessTexture=d}if(e.map){const l={index:this.processTexture(e.map),texCoord:e.map.channel};this.applyTextureTransform(l,e.map),r.pbrMetallicRoughness.baseColorTexture=l}if(e.emissive){const l=e.emissive;if(Math.max(l.r,l.g,l.b)>0&&(r.emissiveFactor=e.emissive.toArray()),e.emissiveMap){const h={index:this.processTexture(e.emissiveMap),texCoord:e.emissiveMap.channel};this.applyTextureTransform(h,e.emissiveMap),r.emissiveTexture=h}}if(e.normalMap){const l={index:this.processTexture(e.normalMap),texCoord:e.normalMap.channel};e.normalScale&&1!==e.normalScale.x&&(l.scale=e.normalScale.x),this.applyTextureTransform(l,e.normalMap),r.normalTexture=l}if(e.aoMap){const l={index:this.processTexture(e.aoMap),texCoord:e.aoMap.channel};1!==e.aoMapIntensity&&(l.strength=e.aoMapIntensity),this.applyTextureTransform(l,e.aoMap),r.occlusionTexture=l}e.transparent?r.alphaMode="BLEND":e.alphaTest>0&&(r.alphaMode="MASK",r.alphaCutoff=e.alphaTest),2===e.side&&(r.doubleSided=!0),""!==e.name&&(r.name=e.name),this.serializeUserData(e,r),this._invokeAll(function(l){l.writeMaterial&&l.writeMaterial(e,r)});const o=i.materials.push(r)-1;return t.materials.set(e,o),o}processMesh(e){const t=this.cache,i=this.json,r=[e.geometry.uuid];if(Array.isArray(e.material))for(let We=0,Mt=e.material.length;We0){const We=[],Mt=[],yt={};if(void 0!==e.morphTargetDictionary)for(const Et in e.morphTargetDictionary)yt[e.morphTargetDictionary[Et]]=Et;for(let Et=0;Et0&&(d.extras={},d.extras.targetNames=Mt)}const re=Array.isArray(e.material);if(re&&0===o.groups.length)return null;let se=!1;if(re&&null===o.index){const We=[];for(let Mt=0,yt=o.attributes.position.count;Mt0&&(yt.targets=A),null!==o.index){let Xt=this.getUID(o.index);(void 0!==Ee[We].start||void 0!==Ee[We].count)&&(Xt+=":"+Ee[We].start+":"+Ee[We].count),t.attributes.has(Xt)?yt.indices=t.attributes.get(Xt):(yt.indices=this.processAccessor(o.index,o,Ee[We].start,Ee[We].count),t.attributes.set(Xt,yt.indices)),null===yt.indices&&delete yt.indices}const Et=this.processMaterial(le[Ee[We].materialIndex]);null!==Et&&(yt.material=Et),f.push(yt)}!0===se&&o.setIndex(null),d.primitives=f,i.meshes||(i.meshes=[]),this._invokeAll(function(We){We.writeMesh&&We.writeMesh(e,d)});const Ce=i.meshes.push(d)-1;return t.meshes.set(s,Ce),Ce}detectMeshQuantization(e,t){if(this.extensionsUsed[SF])return;let i;switch(t.array.constructor){case Int8Array:i="byte";break;case Uint8Array:i="unsigned byte";break;case Int16Array:i="short";break;case Uint16Array:i="unsigned short";break;default:return}t.normalized&&(i+=" normalized");const r=e.split("_",1)[0];Aq[r]&&Aq[r].includes(i)&&(this.extensionsUsed[SF]=!0,this.extensionsRequired[SF]=!0)}processCamera(e){const t=this.json;t.cameras||(t.cameras=[]);const i=e.isOrthographicCamera,r={type:i?"orthographic":"perspective"};return i?r.orthographic={xmag:2*e.right,ymag:2*e.top,zfar:e.far<=0?.001:e.far,znear:e.near<0?0:e.near}:r.perspective={aspectRatio:e.aspect,yfov:VS.degToRad(e.fov),zfar:e.far<=0?.001:e.far,znear:e.near<0?0:e.near},""!==e.name&&(r.name=e.type),t.cameras.push(r)-1}processAnimation(e,t){const i=this.json,r=this.nodeMap;i.animations||(i.animations=[]);const s=(e=MF.Utils.mergeMorphTargetTracks(e.clone(),t)).tracks,o=[],l=[];for(let d=0;d0){const l=[];for(let d=0,h=e.children.length;d0&&(s.children=l)}this._invokeAll(function(l){l.writeNode&&l.writeNode(e,s)});const o=t.nodes.push(s)-1;return r.set(e,o),o}processScene(e){const t=this.json,i=this.options;t.scenes||(t.scenes=[],t.scene=0);const r={};""!==e.name&&(r.name=e.name),t.scenes.push(r);const s=[];for(let o=0,l=e.children.length;o0&&(r.nodes=s),this.serializeUserData(e,r)}processObjects(e){const t=new XS;t.name="AuxScene";for(let i=0;i0&&this.processObjects(i);for(let r=0;r0&&(o.range=e.distance)):e.isSpotLight&&(o.type="spot",e.distance>0&&(o.range=e.distance),o.spot={},o.spot.innerConeAngle=(1-e.penumbra)*e.angle,o.spot.outerConeAngle=e.angle),void 0!==e.decay&&2!==e.decay&&console.warn("THREE.GLTFExporter: Light decay may be lost. glTF is physically-based, and expects light.decay=2."),e.target&&(e.target.parent!==e||0!==e.target.position.x||0!==e.target.position.y||-1!==e.target.position.z)&&console.warn("THREE.GLTFExporter: Light direction may be lost. For best results, make light.target a child of the light with position 0,0,-1."),s[this.name]||(r.extensions=r.extensions||{},r.extensions[this.name]={lights:[]},s[this.name]=!0);const l=r.extensions[this.name].lights;l.push(o),t.extensions=t.extensions||{},t.extensions[this.name]={light:l.length-1}}}class Cme{constructor(e){this.writer=e,this.name="KHR_materials_unlit"}writeMaterial(e,t){if(!e.isMeshBasicMaterial)return;const r=this.writer.extensionsUsed;t.extensions=t.extensions||{},t.extensions[this.name]={},r[this.name]=!0,t.pbrMetallicRoughness.metallicFactor=0,t.pbrMetallicRoughness.roughnessFactor=.9}}class Mme{constructor(e){this.writer=e,this.name="KHR_materials_clearcoat"}writeMaterial(e,t){if(!e.isMeshPhysicalMaterial||0===e.clearcoat)return;const i=this.writer,r=i.extensionsUsed,s={};if(s.clearcoatFactor=e.clearcoat,e.clearcoatMap){const o={index:i.processTexture(e.clearcoatMap),texCoord:e.clearcoatMap.channel};i.applyTextureTransform(o,e.clearcoatMap),s.clearcoatTexture=o}if(s.clearcoatRoughnessFactor=e.clearcoatRoughness,e.clearcoatRoughnessMap){const o={index:i.processTexture(e.clearcoatRoughnessMap),texCoord:e.clearcoatRoughnessMap.channel};i.applyTextureTransform(o,e.clearcoatRoughnessMap),s.clearcoatRoughnessTexture=o}if(e.clearcoatNormalMap){const o={index:i.processTexture(e.clearcoatNormalMap),texCoord:e.clearcoatNormalMap.channel};i.applyTextureTransform(o,e.clearcoatNormalMap),s.clearcoatNormalTexture=o}t.extensions=t.extensions||{},t.extensions[this.name]=s,r[this.name]=!0}}class Sme{constructor(e){this.writer=e,this.name="KHR_materials_iridescence"}writeMaterial(e,t){if(!e.isMeshPhysicalMaterial||0===e.iridescence)return;const i=this.writer,r=i.extensionsUsed,s={};if(s.iridescenceFactor=e.iridescence,e.iridescenceMap){const o={index:i.processTexture(e.iridescenceMap),texCoord:e.iridescenceMap.channel};i.applyTextureTransform(o,e.iridescenceMap),s.iridescenceTexture=o}if(s.iridescenceIor=e.iridescenceIOR,s.iridescenceThicknessMinimum=e.iridescenceThicknessRange[0],s.iridescenceThicknessMaximum=e.iridescenceThicknessRange[1],e.iridescenceThicknessMap){const o={index:i.processTexture(e.iridescenceThicknessMap),texCoord:e.iridescenceThicknessMap.channel};i.applyTextureTransform(o,e.iridescenceThicknessMap),s.iridescenceThicknessTexture=o}t.extensions=t.extensions||{},t.extensions[this.name]=s,r[this.name]=!0}}class Eme{constructor(e){this.writer=e,this.name="KHR_materials_transmission"}writeMaterial(e,t){if(!e.isMeshPhysicalMaterial||0===e.transmission)return;const i=this.writer,r=i.extensionsUsed,s={};if(s.transmissionFactor=e.transmission,e.transmissionMap){const o={index:i.processTexture(e.transmissionMap),texCoord:e.transmissionMap.channel};i.applyTextureTransform(o,e.transmissionMap),s.transmissionTexture=o}t.extensions=t.extensions||{},t.extensions[this.name]=s,r[this.name]=!0}}class Tme{constructor(e){this.writer=e,this.name="KHR_materials_volume"}writeMaterial(e,t){if(!e.isMeshPhysicalMaterial||0===e.transmission)return;const i=this.writer,r=i.extensionsUsed,s={};if(s.thicknessFactor=e.thickness,e.thicknessMap){const o={index:i.processTexture(e.thicknessMap),texCoord:e.thicknessMap.channel};i.applyTextureTransform(o,e.thicknessMap),s.thicknessTexture=o}s.attenuationDistance=e.attenuationDistance,s.attenuationColor=e.attenuationColor.toArray(),t.extensions=t.extensions||{},t.extensions[this.name]=s,r[this.name]=!0}}class Dme{constructor(e){this.writer=e,this.name="KHR_materials_ior"}writeMaterial(e,t){if(!e.isMeshPhysicalMaterial||1.5===e.ior)return;const r=this.writer.extensionsUsed,s={};s.ior=e.ior,t.extensions=t.extensions||{},t.extensions[this.name]=s,r[this.name]=!0}}class Ime{constructor(e){this.writer=e,this.name="KHR_materials_specular"}writeMaterial(e,t){if(!e.isMeshPhysicalMaterial||1===e.specularIntensity&&e.specularColor.equals(pme)&&!e.specularIntensityMap&&!e.specularColorMap)return;const i=this.writer,r=i.extensionsUsed,s={};if(e.specularIntensityMap){const o={index:i.processTexture(e.specularIntensityMap),texCoord:e.specularIntensityMap.channel};i.applyTextureTransform(o,e.specularIntensityMap),s.specularTexture=o}if(e.specularColorMap){const o={index:i.processTexture(e.specularColorMap),texCoord:e.specularColorMap.channel};i.applyTextureTransform(o,e.specularColorMap),s.specularColorTexture=o}s.specularFactor=e.specularIntensity,s.specularColorFactor=e.specularColor.toArray(),t.extensions=t.extensions||{},t.extensions[this.name]=s,r[this.name]=!0}}class Bme{constructor(e){this.writer=e,this.name="KHR_materials_sheen"}writeMaterial(e,t){if(!e.isMeshPhysicalMaterial||0==e.sheen)return;const i=this.writer,r=i.extensionsUsed,s={};if(e.sheenRoughnessMap){const o={index:i.processTexture(e.sheenRoughnessMap),texCoord:e.sheenRoughnessMap.channel};i.applyTextureTransform(o,e.sheenRoughnessMap),s.sheenRoughnessTexture=o}if(e.sheenColorMap){const o={index:i.processTexture(e.sheenColorMap),texCoord:e.sheenColorMap.channel};i.applyTextureTransform(o,e.sheenColorMap),s.sheenColorTexture=o}s.sheenRoughnessFactor=e.sheenRoughness,s.sheenColorFactor=e.sheenColor.toArray(),t.extensions=t.extensions||{},t.extensions[this.name]=s,r[this.name]=!0}}class Pme{constructor(e){this.writer=e,this.name="KHR_materials_anisotropy"}writeMaterial(e,t){if(!e.isMeshPhysicalMaterial||0==e.anisotropy)return;const i=this.writer,r=i.extensionsUsed,s={};if(e.anisotropyMap){const o={index:i.processTexture(e.anisotropyMap)};i.applyTextureTransform(o,e.anisotropyMap),s.anisotropyTexture=o}s.anisotropyStrength=e.anisotropy,s.anisotropyRotation=e.anisotropyRotation,t.extensions=t.extensions||{},t.extensions[this.name]=s,r[this.name]=!0}}class Rme{constructor(e){this.writer=e,this.name="KHR_materials_emissive_strength"}writeMaterial(e,t){if(!e.isMeshStandardMaterial||1===e.emissiveIntensity)return;const r=this.writer.extensionsUsed,s={};s.emissiveStrength=e.emissiveIntensity,t.extensions=t.extensions||{},t.extensions[this.name]=s,r[this.name]=!0}}class kme{constructor(e){this.writer=e,this.name="EXT_materials_bump"}writeMaterial(e,t){if(!e.isMeshStandardMaterial||1===e.bumpScale&&!e.bumpMap)return;const i=this.writer,r=i.extensionsUsed,s={};if(e.bumpMap){const o={index:i.processTexture(e.bumpMap),texCoord:e.bumpMap.channel};i.applyTextureTransform(o,e.bumpMap),s.bumpTexture=o}s.bumpFactor=e.bumpScale,t.extensions=t.extensions||{},t.extensions[this.name]=s,r[this.name]=!0}}class Fme{constructor(e){this.writer=e,this.name="EXT_mesh_gpu_instancing"}writeNode(e,t){if(!e.isInstancedMesh)return;const i=this.writer,r=e,s=new Float32Array(3*r.count),o=new Float32Array(4*r.count),l=new Float32Array(3*r.count),d=new wo,h=new It,f=new Gc,A=new It;for(let R=0;Rn.times[n.times.length-1]){if(Math.abs(n.times[n.times.length-1]-e)<.001)return n.times.length-1;r[r.length-1]=e,r.set(n.times,0),s.set(n.values,0),s.set(o.evaluate(e),n.values.length),l=r.length-1}else for(let d=0;de){r.set(n.times.slice(0,d+1),0),r[d+1]=e,r.set(n.times.slice(d+1),d+2),s.set(n.values.slice(0,(d+1)*i),0),s.set(o.evaluate(e),(d+1)*i),s.set(n.values.slice((d+1)*i),(d+2)*i),l=d+1;break}}return n.times=r,n.values=s,l},mergeMorphTargetTracks:function(n,e){const t=[],i={},r=n.tracks;for(let s=0;s{const i=new Blob([n],{type:t}),r=document.createElement("a");r.style.display="none",r.href=URL.createObjectURL(i),r.download=e,r.click(),r.remove()},wq=(n,e="application/json")=>{let t=document.createElement("input");t.type="file",t.accept=e,t.onchange=i=>{var r;const s=null===(r=i.target)||void 0===r?void 0:r.files[0],o=new FileReader;o.onload=l=>{n?.(l.target.result.toString()),t.remove(),t=null},o.readAsText(s)},t.click(),setTimeout(()=>{console.log("Let us just wait a second")},1e3)};class Ome{exportSceneToOBJ(e){const i=(new fme).parse(e);l4(i,"phoenix-obj.obj","text/plain")}exportPhoenixScene(e,t,i){const r=new MF,s=this.saveSceneConfig(t,i);r.parse(e,o=>{const d=JSON.stringify({sceneConfiguration:s,scene:o},null,2);l4(d,"phoenix-scene.phnx","text/plain")},null)}saveSceneConfig(e,t){return{eventData:this.saveEventDataConfiguration(e),geometries:this.saveGeometriesConfiguration(t)}}saveEventDataConfiguration(e){const t={};for(const i of e.children)if(i.name){t[i.name]=[];for(const r of i.children)r.name&&t[i.name].push(r.name)}return t}saveGeometriesConfiguration(e){const t=[];return e.children.forEach(i=>{"EventData"!==i.name&&t.push(i.name)}),t}}const Lme=/^[og]\s*(.+)?/,Nme=/^mtllib /,Ume=/^usemtl /,zme=/^usemap /,Cq=/\s+/,Mq=new It,TF=new It,Sq=new It,Eq=new It,hA=new It,c4=new Cr;function Hme(){const n={objects:[],object:{},vertices:[],normals:[],colors:[],uvs:[],materials:{},materialLibraries:[],startObject:function(e,t){if(this.object&&!1===this.object.fromDeclaration)return this.object.name=e,void(this.object.fromDeclaration=!1!==t);const i=this.object&&"function"==typeof this.object.currentMaterial?this.object.currentMaterial():void 0;if(this.object&&"function"==typeof this.object._finalize&&this.object._finalize(!0),this.object={name:e||"",fromDeclaration:!1!==t,geometry:{vertices:[],normals:[],colors:[],uvs:[],hasUVIndices:!1},materials:[],smooth:!0,startMaterial:function(r,s){const o=this._finalize(!1);o&&(o.inherited||o.groupCount<=0)&&this.materials.splice(o.index,1);const l={index:this.materials.length,name:r||"",mtllib:Array.isArray(s)&&s.length>0?s[s.length-1]:"",smooth:void 0!==o?o.smooth:this.smooth,groupStart:void 0!==o?o.groupEnd:0,groupEnd:-1,groupCount:-1,inherited:!1,clone:function(d){const h={index:"number"==typeof d?d:this.index,name:this.name,mtllib:this.mtllib,smooth:this.smooth,groupStart:0,groupEnd:-1,groupCount:-1,inherited:!1};return h.clone=this.clone.bind(h),h}};return this.materials.push(l),l},currentMaterial:function(){if(this.materials.length>0)return this.materials[this.materials.length-1]},_finalize:function(r){const s=this.currentMaterial();if(s&&-1===s.groupEnd&&(s.groupEnd=this.geometry.vertices.length/3,s.groupCount=s.groupEnd-s.groupStart,s.inherited=!1),r&&this.materials.length>1)for(let o=this.materials.length-1;o>=0;o--)this.materials[o].groupCount<=0&&this.materials.splice(o,1);return r&&0===this.materials.length&&this.materials.push({name:"",smooth:this.smooth}),s}},i&&i.name&&"function"==typeof i.clone){const r=i.clone(0);r.inherited=!0,this.object.materials.push(r)}this.objects.push(this.object)},finalize:function(){this.object&&"function"==typeof this.object._finalize&&this.object._finalize(!0)},parseVertexIndex:function(e,t){const i=parseInt(e,10);return 3*(i>=0?i-1:i+t/3)},parseNormalIndex:function(e,t){const i=parseInt(e,10);return 3*(i>=0?i-1:i+t/3)},parseUVIndex:function(e,t){const i=parseInt(e,10);return 2*(i>=0?i-1:i+t/2)},addVertex:function(e,t,i){const r=this.vertices,s=this.object.geometry.vertices;s.push(r[e+0],r[e+1],r[e+2]),s.push(r[t+0],r[t+1],r[t+2]),s.push(r[i+0],r[i+1],r[i+2])},addVertexPoint:function(e){const t=this.vertices;this.object.geometry.vertices.push(t[e+0],t[e+1],t[e+2])},addVertexLine:function(e){const t=this.vertices;this.object.geometry.vertices.push(t[e+0],t[e+1],t[e+2])},addNormal:function(e,t,i){const r=this.normals,s=this.object.geometry.normals;s.push(r[e+0],r[e+1],r[e+2]),s.push(r[t+0],r[t+1],r[t+2]),s.push(r[i+0],r[i+1],r[i+2])},addFaceNormal:function(e,t,i){const r=this.vertices,s=this.object.geometry.normals;Mq.fromArray(r,e),TF.fromArray(r,t),Sq.fromArray(r,i),hA.subVectors(Sq,TF),Eq.subVectors(Mq,TF),hA.cross(Eq),hA.normalize(),s.push(hA.x,hA.y,hA.z),s.push(hA.x,hA.y,hA.z),s.push(hA.x,hA.y,hA.z)},addColor:function(e,t,i){const r=this.colors,s=this.object.geometry.colors;void 0!==r[e]&&s.push(r[e+0],r[e+1],r[e+2]),void 0!==r[t]&&s.push(r[t+0],r[t+1],r[t+2]),void 0!==r[i]&&s.push(r[i+0],r[i+1],r[i+2])},addUV:function(e,t,i){const r=this.uvs,s=this.object.geometry.uvs;s.push(r[e+0],r[e+1]),s.push(r[t+0],r[t+1]),s.push(r[i+0],r[i+1])},addDefaultUV:function(){const e=this.object.geometry.uvs;e.push(0,0),e.push(0,0),e.push(0,0)},addUVLine:function(e){const t=this.uvs;this.object.geometry.uvs.push(t[e+0],t[e+1])},addFace:function(e,t,i,r,s,o,l,d,h){const f=this.vertices.length;let A=this.parseVertexIndex(e,f),S=this.parseVertexIndex(t,f),R=this.parseVertexIndex(i,f);if(this.addVertex(A,S,R),this.addColor(A,S,R),void 0!==l&&""!==l){const G=this.normals.length;A=this.parseNormalIndex(l,G),S=this.parseNormalIndex(d,G),R=this.parseNormalIndex(h,G),this.addNormal(A,S,R)}else this.addFaceNormal(A,S,R);if(void 0!==r&&""!==r){const G=this.uvs.length;A=this.parseUVIndex(r,G),S=this.parseUVIndex(s,G),R=this.parseUVIndex(o,G),this.addUV(A,S,R),this.object.geometry.hasUVIndices=!0}else this.addDefaultUV()},addPointGeometry:function(e){this.object.geometry.type="Points";const t=this.vertices.length;for(let i=0,r=e.length;i=7?(c4.setRGB(parseFloat(A[4]),parseFloat(A[5]),parseFloat(A[6])).convertSRGBToLinear(),t.colors.push(c4.r,c4.g,c4.b)):t.colors.push(void 0,void 0,void 0);break;case"vn":t.normals.push(parseFloat(A[1]),parseFloat(A[2]),parseFloat(A[3]));break;case"vt":t.uvs.push(parseFloat(A[1]),parseFloat(A[2]))}}else if("f"===f){const S=h.slice(1).trim().split(Cq),R=[];for(let re=0,se=S.length;re0){const Ee=le.split("/");R.push(Ee)}}const G=R[0];for(let re=1,se=R.length-1;re1){const S=r[1].trim().toLowerCase();t.object.smooth="0"!==S&&"off"!==S}else t.object.smooth=!0;const A=t.object.currentMaterial();A&&(A.smooth=t.object.smooth)}else{if("\0"===h)continue;console.warn('THREE.OBJLoader: Unexpected line: "'+h+'"')}}t.finalize();const s=new Wl;if(s.materialLibraries=[].concat(t.materialLibraries),1==!(1===t.objects.length&&0===t.objects[0].geometry.vertices.length))for(let l=0,d=t.objects.length;l0&&re.setAttribute("normal",new Ws(f.normals,3)),f.colors.length>0&&(G=!0,re.setAttribute("color",new Ws(f.colors,3))),!0===f.hasUVIndices&&re.setAttribute("uv",new Ws(f.uvs,2));const se=[];for(let Ee=0,Ce=A.length;Ee1){for(let Ee=0,Ce=A.length;Ee0){const l=new Y_({size:1,sizeAttenuation:!1}),d=new no;d.setAttribute("position",new Ws(t.vertices,3)),t.colors.length>0&&void 0!==t.colors[0]&&(d.setAttribute("color",new Ws(t.colors,3)),l.vertexColors=!0);const h=new qb(d,l);s.add(h)}return s}}function DF(n,e=!1){const t=null!==n[0].index,i=new Set(Object.keys(n[0].attributes)),r=new Set(Object.keys(n[0].morphAttributes)),s={},o={},l=n[0].morphTargetsRelative,d=new no;let h=0;for(let f=0;f=2.0 are supported.")));const h=new yAe(s,{path:t||this.resourcePath||"",crossOrigin:this.crossOrigin,requestHeader:this.requestHeader,manager:this.manager,ktx2Loader:this.ktx2Loader,meshoptDecoder:this.meshoptDecoder});h.fileLoader.setRequestHeader(this.requestHeader);for(let f=0;f=0&&void 0===l[A]&&console.warn('THREE.GLTFLoader: Unknown extension "'+A+'".')}}h.setExtensions(o),h.setPlugins(l),h.parse(i,r)}parseAsync(e,t){const i=this;return new Promise(function(r,s){i.parse(e,t,r,s)})}}function Vme(){let n={};return{get:function(e){return n[e]},add:function(e,t){n[e]=t},remove:function(e){delete n[e]},removeAll:function(){n={}}}}const al={KHR_BINARY_GLTF:"KHR_binary_glTF",KHR_DRACO_MESH_COMPRESSION:"KHR_draco_mesh_compression",KHR_LIGHTS_PUNCTUAL:"KHR_lights_punctual",KHR_MATERIALS_CLEARCOAT:"KHR_materials_clearcoat",KHR_MATERIALS_IOR:"KHR_materials_ior",KHR_MATERIALS_SHEEN:"KHR_materials_sheen",KHR_MATERIALS_SPECULAR:"KHR_materials_specular",KHR_MATERIALS_TRANSMISSION:"KHR_materials_transmission",KHR_MATERIALS_IRIDESCENCE:"KHR_materials_iridescence",KHR_MATERIALS_ANISOTROPY:"KHR_materials_anisotropy",KHR_MATERIALS_UNLIT:"KHR_materials_unlit",KHR_MATERIALS_VOLUME:"KHR_materials_volume",KHR_TEXTURE_BASISU:"KHR_texture_basisu",KHR_TEXTURE_TRANSFORM:"KHR_texture_transform",KHR_MESH_QUANTIZATION:"KHR_mesh_quantization",KHR_MATERIALS_EMISSIVE_STRENGTH:"KHR_materials_emissive_strength",EXT_MATERIALS_BUMP:"EXT_materials_bump",EXT_TEXTURE_WEBP:"EXT_texture_webp",EXT_TEXTURE_AVIF:"EXT_texture_avif",EXT_MESHOPT_COMPRESSION:"EXT_meshopt_compression",EXT_MESH_GPU_INSTANCING:"EXT_mesh_gpu_instancing"};class Gme{constructor(e){this.parser=e,this.name=al.KHR_LIGHTS_PUNCTUAL,this.cache={refs:{},uses:{}}}_markDefs(){const e=this.parser,t=this.parser.json.nodes||[];for(let i=0,r=t.length;i=0)throw new Error("THREE.GLTFLoader: setKTX2Loader must be called before loading KTX2 textures");return null}return t.loadTextureImage(e,s.source,o)}}class nAe{constructor(e){this.parser=e,this.name=al.EXT_TEXTURE_WEBP,this.isSupported=null}loadTexture(e){const t=this.name,i=this.parser,r=i.json,s=r.textures[e];if(!s.extensions||!s.extensions[t])return null;const o=s.extensions[t],l=r.images[o.source];let d=i.textureLoader;if(l.uri){const h=i.options.manager.getHandler(l.uri);null!==h&&(d=h)}return this.detectSupport().then(function(h){if(h)return i.loadTextureImage(e,o.source,d);if(r.extensionsRequired&&r.extensionsRequired.indexOf(t)>=0)throw new Error("THREE.GLTFLoader: WebP required by asset but unsupported.");return i.loadTexture(e)})}detectSupport(){return this.isSupported||(this.isSupported=new Promise(function(e){const t=new Image;t.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",t.onload=t.onerror=function(){e(1===t.height)}})),this.isSupported}}class iAe{constructor(e){this.parser=e,this.name=al.EXT_TEXTURE_AVIF,this.isSupported=null}loadTexture(e){const t=this.name,i=this.parser,r=i.json,s=r.textures[e];if(!s.extensions||!s.extensions[t])return null;const o=s.extensions[t],l=r.images[o.source];let d=i.textureLoader;if(l.uri){const h=i.options.manager.getHandler(l.uri);null!==h&&(d=h)}return this.detectSupport().then(function(h){if(h)return i.loadTextureImage(e,o.source,d);if(r.extensionsRequired&&r.extensionsRequired.indexOf(t)>=0)throw new Error("THREE.GLTFLoader: AVIF required by asset but unsupported.");return i.loadTexture(e)})}detectSupport(){return this.isSupported||(this.isSupported=new Promise(function(e){const t=new Image;t.src="data:image/avif;base64,AAAAIGZ0eXBhdmlmAAAAAGF2aWZtaWYxbWlhZk1BMUIAAADybWV0YQAAAAAAAAAoaGRscgAAAAAAAAAAcGljdAAAAAAAAAAAAAAAAGxpYmF2aWYAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAABGgAAABcAAAAoaWluZgAAAAAAAQAAABppbmZlAgAAAAABAABhdjAxQ29sb3IAAAAAamlwcnAAAABLaXBjbwAAABRpc3BlAAAAAAAAAAEAAAABAAAAEHBpeGkAAAAAAwgICAAAAAxhdjFDgQAMAAAAABNjb2xybmNseAACAAIABoAAAAAXaXBtYQAAAAAAAAABAAEEAQKDBAAAAB9tZGF0EgAKCBgABogQEDQgMgkQAAAAB8dSLfI=",t.onload=t.onerror=function(){e(1===t.height)}})),this.isSupported}}class rAe{constructor(e){this.name=al.EXT_MESHOPT_COMPRESSION,this.parser=e}loadBufferView(e){const t=this.parser.json,i=t.bufferViews[e];if(i.extensions&&i.extensions[this.name]){const r=i.extensions[this.name],s=this.parser.getDependency("buffer",r.buffer),o=this.parser.options.meshoptDecoder;if(!o||!o.supported){if(t.extensionsRequired&&t.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files");return null}return s.then(function(l){const f=r.count,A=r.byteStride,S=new Uint8Array(l,r.byteOffset||0,r.byteLength||0);return o.decodeGltfBufferAsync?o.decodeGltfBufferAsync(f,A,S,r.mode,r.filter).then(function(R){return R.buffer}):o.ready.then(function(){const R=new ArrayBuffer(f*A);return o.decodeGltfBuffer(new Uint8Array(R),f,A,S,r.mode,r.filter),R})})}return null}}class sAe{constructor(e){this.name=al.EXT_MESH_GPU_INSTANCING,this.parser=e}createNodeMesh(e){const t=this.parser.json,i=t.nodes[e];if(!i.extensions||!i.extensions[this.name]||void 0===i.mesh)return null;const r=t.meshes[i.mesh];for(const h of r.primitives)if(h.mode!==uA.TRIANGLES&&h.mode!==uA.TRIANGLE_STRIP&&h.mode!==uA.TRIANGLE_FAN&&void 0!==h.mode)return null;const o=i.extensions[this.name].attributes,l=[],d={};for(const h in o)l.push(this.parser.getDependency("accessor",o[h]).then(f=>(d[h]=f,d[h])));return l.length<1?null:(l.push(this.parser.createNodeMesh(e)),Promise.all(l).then(h=>{const f=h.pop(),A=f.isGroup?f.children:[f],S=h[0].count,R=[];for(const G of A){const re=new wo,se=new It,le=new Gc,Ee=new It(1,1,1),Ce=new aG(G.geometry,G.material,S);for(let We=0;We-1,s=r?navigator.userAgent.match(/Firefox\/([0-9]+)\./)[1]:-1),this.textureLoader=typeof createImageBitmap>"u"||i||r&&s<98?new Dpe(this.options.manager):new Hpe(this.options.manager),this.textureLoader.setCrossOrigin(this.options.crossOrigin),this.textureLoader.setRequestHeader(this.options.requestHeader),this.fileLoader=new vp(this.options.manager),this.fileLoader.setResponseType("arraybuffer"),"use-credentials"===this.options.crossOrigin&&this.fileLoader.setWithCredentials(!0)}setExtensions(e){this.extensions=e}setPlugins(e){this.plugins=e}parse(e,t){const i=this,r=this.json,s=this.extensions;this.cache.removeAll(),this.nodeCache={},this._invokeAll(function(o){return o._markDefs&&o._markDefs()}),Promise.all(this._invokeAll(function(o){return o.beforeRoot&&o.beforeRoot()})).then(function(){return Promise.all([i.getDependencies("scene"),i.getDependencies("animation"),i.getDependencies("camera")])}).then(function(o){const l={scene:o[0][r.scene||0],scenes:o[0],animations:o[1],cameras:o[2],asset:r.asset,parser:i,userData:{}};return rx(s,l,r),$y(l,r),Promise.all(i._invokeAll(function(d){return d.afterRoot&&d.afterRoot(l)})).then(function(){e(l)})}).catch(t)}_markDefs(){const e=this.json.nodes||[],t=this.json.skins||[],i=this.json.meshes||[];for(let r=0,s=t.length;r{const d=this.associations.get(o);null!=d&&this.associations.set(l,d);for(const[h,f]of o.children.entries())s(f,l.children[h])};return s(i,r),r.name+="_instance_"+e.uses[t]++,r}_invokeOne(e){const t=Object.values(this.plugins);t.push(this);for(let i=0;i=2&&se.setY(Un,yt[Et*d+1]),d>=3&&se.setZ(Un,yt[Et*d+2]),d>=4&&se.setW(Un,yt[Et*d+3]),d>=5)throw new Error("THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.")}}return se})}loadTexture(e){const t=this.json,s=t.textures[e].source,o=t.images[s];let l=this.textureLoader;if(o.uri){const d=this.options.manager.getHandler(o.uri);null!==d&&(l=d)}return this.loadTextureImage(e,s,l)}loadTextureImage(e,t,i){const r=this,s=this.json,o=s.textures[e],l=s.images[t],d=(l.uri||l.bufferView)+":"+o.sampler;if(this.textureCache[d])return this.textureCache[d];const h=this.loadImageSource(t,i).then(function(f){f.flipY=!1,f.name=o.name||l.name||"",""===f.name&&"string"==typeof l.uri&&!1===l.uri.startsWith("data:image/")&&(f.name=l.uri);const S=(s.samplers||{})[o.sampler]||{};return f.magFilter=kq[S.magFilter]||Hc,f.minFilter=kq[S.minFilter]||oA,f.wrapS=Fq[S.wrapS]||Ry,f.wrapT=Fq[S.wrapT]||Ry,r.associations.set(f,{textures:e}),f}).catch(function(){return null});return this.textureCache[d]=h,h}loadImageSource(e,t){const r=this.json,s=this.options;if(void 0!==this.sourceCache[e])return this.sourceCache[e].then(A=>A.clone());const o=r.images[e],l=self.URL||self.webkitURL;let d=o.uri||"",h=!1;if(void 0!==o.bufferView)d=this.getDependency("bufferView",o.bufferView).then(function(A){h=!0;const S=new Blob([A],{type:o.mimeType});return d=l.createObjectURL(S),d});else if(void 0===o.uri)throw new Error("THREE.GLTFLoader: Image "+e+" is missing URI and bufferView");const f=Promise.resolve(d).then(function(A){return new Promise(function(S,R){let G=S;!0===t.isImageBitmapLoader&&(G=function(re){const se=new zu(re);se.needsUpdate=!0,S(se)}),t.load(Zb.resolveURL(A,s.path),G,void 0,R)})}).then(function(A){return!0===h&&l.revokeObjectURL(d),A.userData.mimeType=o.mimeType||function gAe(n){return n.search(/\.jpe?g($|\?)/i)>0||0===n.search(/^data\:image\/jpeg/)?"image/jpeg":n.search(/\.webp($|\?)/i)>0||0===n.search(/^data\:image\/webp/)?"image/webp":"image/png"}(o.uri),A}).catch(function(A){throw console.error("THREE.GLTFLoader: Couldn't load texture",d),A});return this.sourceCache[e]=f,f}assignTexture(e,t,i,r){const s=this;return this.getDependency("texture",i.index).then(function(o){if(!o)return null;if(void 0!==i.texCoord&&i.texCoord>0&&((o=o.clone()).channel=i.texCoord),s.extensions[al.KHR_TEXTURE_TRANSFORM]){const l=void 0!==i.extensions?i.extensions[al.KHR_TEXTURE_TRANSFORM]:void 0;if(l){const d=s.associations.get(o);o=s.extensions[al.KHR_TEXTURE_TRANSFORM].extendTexture(o,l),s.associations.set(o,d)}}return void 0!==r&&(o.colorSpace=r),e[t]=o,o})}assignFinalMaterial(e){const t=e.geometry;let i=e.material;const r=void 0===t.attributes.tangent,s=void 0!==t.attributes.color,o=void 0===t.attributes.normal;if(e.isPoints){const l="PointsMaterial:"+i.uuid;let d=this.cache.get(l);d||(d=new Y_,ld.prototype.copy.call(d,i),d.color.copy(i.color),d.map=i.map,d.sizeAttenuation=!1,this.cache.add(l,d)),i=d}else if(e.isLine){const l="LineBasicMaterial:"+i.uuid;let d=this.cache.get(l);d||(d=new Dc,ld.prototype.copy.call(d,i),d.color.copy(i.color),d.map=i.map,this.cache.add(l,d)),i=d}if(r||s||o){let l="ClonedMaterial:"+i.uuid+":";r&&(l+="derivative-tangents:"),s&&(l+="vertex-colors:"),o&&(l+="flat-shading:");let d=this.cache.get(l);d||(d=i.clone(),s&&(d.vertexColors=!0),o&&(d.flatShading=!0),r&&(d.normalScale&&(d.normalScale.y*=-1),d.clearcoatNormalScale&&(d.clearcoatNormalScale.y*=-1)),this.cache.add(l,d),this.associations.set(d,this.associations.get(i))),i=d}e.material=i}getMaterialType(){return XI}loadMaterial(e){const t=this,r=this.extensions,s=this.json.materials[e];let o;const l={},h=[];if((s.extensions||{})[al.KHR_MATERIALS_UNLIT]){const A=r[al.KHR_MATERIALS_UNLIT];o=A.getMaterialType(),h.push(A.extendParams(l,s,t))}else{const A=s.pbrMetallicRoughness||{};if(l.color=new Cr(1,1,1),l.opacity=1,Array.isArray(A.baseColorFactor)){const S=A.baseColorFactor;l.color.setRGB(S[0],S[1],S[2],Qh),l.opacity=S[3]}void 0!==A.baseColorTexture&&h.push(t.assignTexture(l,"map",A.baseColorTexture,ch)),l.metalness=void 0!==A.metallicFactor?A.metallicFactor:1,l.roughness=void 0!==A.roughnessFactor?A.roughnessFactor:1,void 0!==A.metallicRoughnessTexture&&(h.push(t.assignTexture(l,"metalnessMap",A.metallicRoughnessTexture)),h.push(t.assignTexture(l,"roughnessMap",A.metallicRoughnessTexture))),o=this._invokeOne(function(S){return S.getMaterialType&&S.getMaterialType(e)}),h.push(Promise.all(this._invokeAll(function(S){return S.extendMaterialParams&&S.extendMaterialParams(e,l)})))}!0===s.doubleSided&&(l.side=2);const f=s.alphaMode||"OPAQUE";if("BLEND"===f?(l.transparent=!0,l.depthWrite=!1):(l.transparent=!1,"MASK"===f&&(l.alphaTest=void 0!==s.alphaCutoff?s.alphaCutoff:.5)),void 0!==s.normalTexture&&o!==xd&&(h.push(t.assignTexture(l,"normalMap",s.normalTexture)),l.normalScale=new Qi(1,1),void 0!==s.normalTexture.scale)){const A=s.normalTexture.scale;l.normalScale.set(A,A)}if(void 0!==s.occlusionTexture&&o!==xd&&(h.push(t.assignTexture(l,"aoMap",s.occlusionTexture)),void 0!==s.occlusionTexture.strength&&(l.aoMapIntensity=s.occlusionTexture.strength)),void 0!==s.emissiveFactor&&o!==xd){const A=s.emissiveFactor;l.emissive=(new Cr).setRGB(A[0],A[1],A[2],Qh)}return void 0!==s.emissiveTexture&&o!==xd&&h.push(t.assignTexture(l,"emissiveMap",s.emissiveTexture,ch)),Promise.all(h).then(function(){const A=new o(l);return s.name&&(A.name=s.name),$y(A,s),t.associations.set(A,{materials:e}),s.extensions&&rx(r,A,s),A})}createUniqueName(e){const t=Ll.sanitizeNodeName(e||"");return t in this.nodeNamesUsed?t+"_"+ ++this.nodeNamesUsed[t]:(this.nodeNamesUsed[t]=0,t)}loadGeometries(e){const t=this,i=this.extensions,r=this.primitiveCache;function s(l){return i[al.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(l,t).then(function(d){return Oq(d,l,t)})}const o=[];for(let l=0,d=e.length;l0&&mAe(le,s),le.name=t.createUniqueName(s.name||"mesh_"+e),$y(le,s),se.extensions&&rx(r,le,se),t.assignFinalMaterial(le),A.push(le)}for(let R=0,G=A.length;R1?new Wl:1===h.length?h[0]:new Pl,f!==h[0])for(let A=0,S=h.length;A{const A=new Map;for(const[S,R]of r.associations)(S instanceof ld||S instanceof zu)&&A.set(S,R);return f.traverse(S=>{const R=r.associations.get(S);null!=R&&A.set(S,R)}),A})(s),s})}_createAnimationTracks(e,t,i,r,s){const o=[],l=e.name?e.name:e.uuid,d=[];let h;switch(jy[s.path]===jy.weights?e.traverse(function(S){S.morphTargetInfluences&&d.push(S.name?S.name:S.uuid)}):d.push(l),jy[s.path]){case jy.weights:h=lC;break;case jy.rotation:h=Yb;break;case jy.position:case jy.scale:h=dC;break;default:h=1===i.itemSize?lC:dC}const f=void 0!==r.interpolation?uAe[r.interpolation]:Db,A=this._getArrayFromAccessor(i);for(let S=0,R=d.length;S{this.parse(o,t,r)},i,r)}parse(e,t,i=(()=>{})){this.decodeDracoFile(e,t,null,null,ch).catch(i)}decodeDracoFile(e,t,i,r,s=Qh,o=(()=>{})){return this.decodeGeometry(e,{attributeIDs:i||this.defaultAttributeIDs,attributeTypes:r||this.defaultAttributeTypes,useUniqueIDs:!!i,vertexColorSpace:s}).then(t).catch(o)}decodeGeometry(e,t){const i=JSON.stringify(t);if(OF.has(e)){const d=OF.get(e);if(d.key===i)return d.promise;if(0===e.byteLength)throw new Error("THREE.DRACOLoader: Unable to re-decode a buffer with different settings. Buffer has already been transferred.")}let r;const s=this.workerNextTaskID++,l=this._getWorker(s,e.byteLength).then(d=>(r=d,new Promise((h,f)=>{r._callbacks[s]={resolve:h,reject:f},r.postMessage({type:"decode",id:s,taskConfig:t,buffer:e},[e])}))).then(d=>this._createGeometry(d.geometry));return l.catch(()=>!0).then(()=>{r&&s&&this._releaseTask(r,s)}),OF.set(e,{key:i,promise:l}),l}_createGeometry(e){const t=new no;e.index&&t.setIndex(new No(e.index.array,1));for(let i=0;i{i.load(e,r,void 0,s)})}preload(){return this._initDecoder(),this}_initDecoder(){if(this.decoderPending)return this.decoderPending;const e="object"!=typeof WebAssembly||"js"===this.decoderConfig.type,t=[];return e?t.push(this._loadLibrary("draco_decoder.js","text")):(t.push(this._loadLibrary("draco_wasm_wrapper.js","text")),t.push(this._loadLibrary("draco_decoder.wasm","arraybuffer"))),this.decoderPending=Promise.all(t).then(i=>{const r=i[0];e||(this.decoderConfig.wasmBinary=i[1]);const s=bAe.toString(),o=["/* draco decoder */",r,"","/* worker */",s.substring(s.indexOf("{")+1,s.lastIndexOf("}"))].join("\n");this.workerSourceURL=URL.createObjectURL(new Blob([o]))}),this.decoderPending}_getWorker(e,t){return this._initDecoder().then(()=>{if(this.workerPool.lengths._taskLoad?-1:1});const i=this.workerPool[this.workerPool.length-1];return i._taskCosts[e]=t,i._taskLoad+=t,i})}_releaseTask(e,t){e._taskLoad-=e._taskCosts[t],delete e._callbacks[t],delete e._taskCosts[t]}debug(){console.log("Task load: ",this.workerPool.map(e=>e._taskLoad))}dispose(){for(let e=0;e{const A=f.draco,S=new A.Decoder;try{const R=function t(o,l,d,h){const f=h.attributeIDs,A=h.attributeTypes;let S,R;const G=l.GetEncodedGeometryType(d);if(G===o.TRIANGULAR_MESH)S=new o.Mesh,R=l.DecodeArrayToMesh(d,d.byteLength,S);else{if(G!==o.POINT_CLOUD)throw new Error("THREE.DRACOLoader: Unexpected geometry type.");S=new o.PointCloud,R=l.DecodeArrayToPointCloud(d,d.byteLength,S)}if(!R.ok()||0===S.ptr)throw new Error("THREE.DRACOLoader: Decoding failed: "+R.error_msg());const re={index:null,attributes:[]};for(const se in f){const le=self[A[se]];let Ee,Ce;if(h.useUniqueIDs)Ce=f[se],Ee=l.GetAttributeByUniqueId(S,Ce);else{if(Ce=l.GetAttributeId(S,o[f[se]]),-1===Ce)continue;Ee=l.GetAttribute(S,Ce)}const We=r(o,l,S,se,le,Ee);"color"===se&&(We.vertexColorSpace=h.vertexColorSpace),re.attributes.push(We)}return G===o.TRIANGULAR_MESH&&(re.index=function i(o,l,d){const f=3*d.num_faces(),A=4*f,S=o._malloc(A);l.GetTrianglesUInt32Array(d,A,S);const R=new Uint32Array(o.HEAPF32.buffer,S,f).slice();return o._free(S),{array:R,itemSize:1}}(o,l,S)),o.destroy(S),re}(A,S,new Int8Array(d),h),G=R.attributes.map(re=>re.array.buffer);R.index&&G.push(R.index.array.buffer),self.postMessage({type:"decode",id:l.id,geometry:R},G)}catch(R){console.error(R),self.postMessage({type:"error",id:l.id,error:R.message})}finally{A.destroy(S)}})}}}class xAe{constructor(e,t,i){this.clipPlanes=e,this.EVENT_DATA_ID=t,this.GEOMETRIES_ID=i}loadOBJGeometry(e,t,i,r,s){i=i??4302580;const o=new Tq;return new Promise((l,d)=>{o.load(e,h=>{const f=this.processOBJ(h,t,i,r,s);l({object:f})},null,h=>{d(h)})})}parseOBJGeometry(e,t){const r=(new Tq).parse(e);return this.processOBJ(r,t,4302580,!1,!1)}processOBJ(e,t,i,r,s){return e.name=t,e.userData={name:t},this.setObjFlat(e,i,r,s)}setObjFlat(e,t,i,r){const s=new mg({color:t,shininess:0,wireframe:!1,clippingPlanes:this.clipPlanes,clipIntersection:!0,clipShadows:!1,side:i?2:0,flatShading:r});return e.traverse(o=>{o instanceof ha?(o.name=e.name,o.userData=e.userData,o.userData.size=this.getObjectSize(o),o.material instanceof ld&&(o.material.dispose(),o.material=s),o.castShadow=!1,o.receiveShadow=!1):o instanceof uc&&o.material instanceof Dc&&o.material.color.set(t)}),e}parsePhnxScene(e,t){const i=new d4,r=new LF;r.setDecoderPath(`https://cdn.jsdelivr.net/npm/three@0.${m2}.0/examples/jsm/libs/draco/`),i.setDRACOLoader(r);const s=JSON.stringify(e,null,2);return new Promise((o,l)=>{i.parse(s,"",d=>{const h=d.scene.getObjectByName(this.EVENT_DATA_ID),f=d.scene.getObjectByName(this.GEOMETRIES_ID);t(h,f),o()},d=>{l(d)})})}loadGLTFGeometry(e,t,i,r,s){const o=new d4,l=new LF;return l.setDecoderPath(`https://cdn.jsdelivr.net/npm/three@0.${m2}.0/examples/jsm/libs/draco/`),o.setDRACOLoader(l),new Promise((d,h)=>{o.load(e,f=>{var A;const S=[];for(const R of f.scenes){R.visible=null!==(A=R.userData.visible)&&void 0!==A?A:s;const G=this.processGLTFSceneName(R.name,i),re={},se=(le,Ee,Ce)=>{const We=Ee.clone().multiply(le.matrix);if(le instanceof ha){const Mt=le.material.id;re[Mt]||(re[Mt]={material:le.material,geoms:[],renderOrder:-Ce}),re[Mt].geoms.push(le.geometry.clone().applyMatrix4(We))}for(const Mt of le.children)se(Mt,We,Ce+1)};se(R,new wo,0),R.remove(...R.children);for(const le of Object.values(re)){const Ee=new ha(DF(le.geoms),le.material);Ee.renderOrder=le.renderOrder,R.add(Ee)}this.processGeometry(R,t??G.name,r,!0),S.push({object:R,menuNodeName:i??G.menuNodeName})}d(S)},void 0,f=>{h(f)})})}parseGLTFGeometry(e,t){const i=new d4,r=new LF;return r.setDecoderPath(`https://cdn.jsdelivr.net/npm/three@0.${m2}.0/examples/jsm/libs/draco/`),i.setDRACOLoader(r),new Promise((s,o)=>{i.parse(e,"",l=>{const d=[];for(const h of l.scenes){h.visible=h.userData.visible;const f=this.processGLTFSceneName(h.name);this.processGeometry(h,t??f.name),d.push({object:h})}s(d)},l=>{o(l)})})}processGLTFSceneName(e,t){if(e){const i=e.split("_>_");t&&i.unshift(t);const r=i.join(" > ");return i.pop(),{name:r,menuNodeName:i.join(" > ")}}}loadJSONGeometry(e,t,i,r){const s=new Upe;switch(typeof e){case"string":return new Promise((o,l)=>{s.load(e,d=>{this.processGeometry(d,t,i,r),o({object:d})},null,d=>{l(d)})});case"object":return new Promise(o=>{const l=s.parse(e);this.processGeometry(l,t,i,r),o({object:l})})}}processGeometry(e,t,i,r){e.name=t,i&&e.scale.setScalar(i),e.traverse(s=>{var o;if(s instanceof ha&&(s.name=s.userData.name=t,s.userData.size=this.getObjectSize(s),s.material instanceof ld)){const l=s.material.color?s.material.color:3135121,d=r?2:s.material.side;s.material.dispose();let h=!1;e.userData.opacity&&(h=!0),s.material=new mg({color:l,shininess:0,side:d,transparent:h,opacity:null!==(o=e.userData.opacity)&&void 0!==o?o:1}),s.material.clippingPlanes=this.clipPlanes,s.material.clipIntersection=!0,s.material.clipShadows=!1}})}getObjectSize(e){var t,i;const r=new It;return e.geometry.computeBoundingBox(),null===(i=null===(t=e.geometry)||void 0===t?void 0:t.boundingBox)||void 0===i||i.getSize(r),JSON.stringify(r,null,2)}}let Xy=(()=>{class n{static getPrettySymbol(t){return Object.keys(n.symbols).find(r=>n.symbols[r].includes(t))||t}static getPrettyParams(t){const i=Object.assign({},t);for(const r of Object.keys(i)){const s=n.getPrettySymbol(r);s!==r&&(i[s]=i[r],delete i[r])}if(delete i.pos,i?.dparams){const r={};return r.\u03b8=i.dparams[3],r.\u03d5=i.dparams[2],r["|p|"]=Math.abs(1/i.dparams[4]),r.q=Math.sign(1/i.dparams[4]),r.d0=i.dparams[0],r.z0=i.dparams[1],delete i.dparams,Object.assign(Object.assign({},i),r)}return i}}return n.symbols={\u03b8:["theta"],\u03d5:["phi"],pT:["pt"],\u{1d6d8}2:["chi2"],\u03b7:["eta"],q:["charge"],NDOF:["ndof"],DOF:["dof"],Energy:["energy"],ET:["et"],"|p|":["momentum","mom"]},n})();class pC{constructor(e){this.value=e,this.callbacks=[]}update(e){this.value=e,this.callbacks.forEach(t=>t(e))}onUpdate(e){this.callbacks.push(e)}}class wAe{constructor(){this.activeObject=new pC(""),this.onTouchMove=e=>{const t=this.intersectObject(e);if(t){if(this.ignoreList.includes(t.type))return;this.outlinePass.selectedObjects=[t]}},this.onDocumentMouseDown=()=>{const e=this.outlinePass.selectedObjects[0];if(e){this.selectedObject.name=e.name,this.selectedObject.attributes.splice(0,this.selectedObject.attributes.length),this.activeObject.update(e.uuid);const t=Xy.getPrettyParams(e.userData);for(const s of Object.keys(t))this.selectedObject.attributes.push({attributeName:s,attributeValue:t[s]});const i=Object.keys(e.userData).map(s=>{if(["string","number"].includes(typeof e.userData[s]))return s+"="+e.userData[s]}).filter(s=>s),r=e.name+(i.length>0?" with "+i.join(", "):"");r&&this.infoLogger.add(r,"Clicked")}},this.onTouchDown=e=>{e.preventDefault(),this.onTouchMove(e.targetTouches[0]),this.onDocumentMouseDown()},this.isInit=!1,this.ignoreList=[(new KI).type,(new hC).type,(new uq).type]}init(e,t,i,r){this.camera=e,this.scene=t,this.isInit=!0,this.infoLogger=r,this.effectsManager=i,this.outlinePass=this.effectsManager.addOutlinePassForSelection()}setSelectedObject(e){this.selectedObject=e}getActiveObjectId(){return this.activeObject}setSelecting(e){this.isInit&&(e?this.enableSelecting():this.disableSelecting())}enableSelecting(){document.getElementById("three-canvas").addEventListener("mousemove",this.onTouchMove,!0),document.getElementById("three-canvas").addEventListener("click",this.onDocumentMouseDown,!0),document.getElementById("three-canvas").addEventListener("touchstart",this.onTouchDown),this.preSelectionAntialias=this.effectsManager.antialiasing,this.effectsManager.setAntialiasing(!1)}disableSelecting(){document.getElementById("three-canvas").removeEventListener("mousemove",this.onTouchMove,!0),document.getElementById("three-canvas").removeEventListener("click",this.onDocumentMouseDown,!0),document.getElementById("three-canvas").removeEventListener("touchstart",this.onTouchDown),this.outlinePass.selectedObjects=[],this.effectsManager.setAntialiasing(this.preSelectionAntialias)}intersectObject(e){var t;null===(t=e.preventDefault)||void 0===t||t.call(e);const i=new Qi,r=this.effectsManager.composer.renderer.domElement;i.x=e.clientX/r.clientWidth*2-1,i.y=-e.clientY/r.clientHeight*2+1;const s=new eq;s.setFromCamera(i,this.camera),s.params.Line.threshold=3;const o=s.intersectObjects(this.scene.children,!0);if(o.length>0)return o[0].object}enableHighlighting(){this.preSelectionAntialias=this.effectsManager.antialiasing,this.effectsManager.setAntialiasing(!1)}highlightObject(e,t){const i=t.getObjectByProperty("uuid",e);i&&(this.outlinePass.selectedObjects=[i],this.activeObject.update(i.uuid))}disableHighlighting(){this.outlinePass.selectedObjects=[],this.effectsManager.setAntialiasing(this.preSelectionAntialias)}}class CAe extends jI{constructor(e,t={}){const i=t.font;if(void 0===i)super();else{const r=i.generateShapes(e,t.size);t.depth=void 0!==t.height?t.height:50,void 0===t.bevelThickness&&(t.bevelThickness=10),void 0===t.bevelSize&&(t.bevelSize=8),void 0===t.bevelEnabled&&(t.bevelEnabled=!1),super(r,t)}this.type="TextGeometry"}}class Lq{constructor(e){this.isFont=!0,this.type="Font",this.data=e}generateShapes(e,t=100){const i=[],r=function MAe(n,e,t){const i=Array.from(n),r=e/t.resolution,s=(t.boundingBox.yMax-t.boundingBox.yMin+t.underlineThickness)*r,o=[];let l=0,d=0;for(let h=0;ht,r=0e;return i&&r}static etaToTheta(e){return 2*Math.atan(Math.pow(Math.E,-e))}static thetaToEta(e){return-Math.log(Math.tan(e/2))}static sphericalToCartesian(e,t,i){const r=new It;return r.setFromSphericalCoords(e,t,i),r.applyQuaternion(Ff.atlasQuaternion()),r}static etaPhiToCartesian(e,t,i){const r=new It;return r.setFromSphericalCoords(e,this.etaToTheta(t),i),r.applyQuaternion(Ff.atlasQuaternion()),r}static atlasQuaternion(){const e=new It(0,1,0),t=new It(0,0,1),i=new Gc;i.setFromUnitVectors(e,t);const r=new Gc;return r.setFromAxisAngle(new It(0,1,0),Math.PI/2),i.multiply(r),i}}const EAe=JSON.parse('{"glyphs":{"0":{"x_min":73,"x_max":715,"ha":792,"o":"m 394 -29 q 153 129 242 -29 q 73 479 73 272 q 152 829 73 687 q 394 989 241 989 q 634 829 545 989 q 715 479 715 684 q 635 129 715 270 q 394 -29 546 -29 m 394 89 q 546 211 489 89 q 598 479 598 322 q 548 748 598 640 q 394 871 491 871 q 241 748 298 871 q 190 479 190 637 q 239 211 190 319 q 394 89 296 89 "},"1":{"x_min":215.671875,"x_max":574,"ha":792,"o":"m 574 0 l 442 0 l 442 697 l 215 697 l 215 796 q 386 833 330 796 q 475 986 447 875 l 574 986 l 574 0 "},"2":{"x_min":59,"x_max":731,"ha":792,"o":"m 731 0 l 59 0 q 197 314 59 188 q 457 487 199 315 q 598 691 598 580 q 543 819 598 772 q 411 867 488 867 q 272 811 328 867 q 209 630 209 747 l 81 630 q 182 901 81 805 q 408 986 271 986 q 629 909 536 986 q 731 694 731 826 q 613 449 731 541 q 378 316 495 383 q 201 122 235 234 l 731 122 l 731 0 "},"3":{"x_min":54,"x_max":737,"ha":792,"o":"m 737 284 q 635 55 737 141 q 399 -25 541 -25 q 156 52 248 -25 q 54 308 54 140 l 185 308 q 245 147 185 202 q 395 96 302 96 q 539 140 484 96 q 602 280 602 190 q 510 429 602 390 q 324 454 451 454 l 324 565 q 487 584 441 565 q 565 719 565 617 q 515 835 565 791 q 395 879 466 879 q 255 824 307 879 q 203 661 203 769 l 78 661 q 166 909 78 822 q 387 992 250 992 q 603 921 513 992 q 701 723 701 844 q 669 607 701 656 q 578 524 637 558 q 696 434 655 499 q 737 284 737 369 "},"4":{"x_min":48,"x_max":742.453125,"ha":792,"o":"m 742 243 l 602 243 l 602 0 l 476 0 l 476 243 l 48 243 l 48 368 l 476 958 l 602 958 l 602 354 l 742 354 l 742 243 m 476 354 l 476 792 l 162 354 l 476 354 "},"5":{"x_min":54.171875,"x_max":738,"ha":792,"o":"m 738 314 q 626 60 738 153 q 382 -23 526 -23 q 155 47 248 -23 q 54 256 54 125 l 183 256 q 259 132 204 174 q 382 91 314 91 q 533 149 471 91 q 602 314 602 213 q 538 469 602 411 q 386 528 475 528 q 284 506 332 528 q 197 439 237 484 l 81 439 l 159 958 l 684 958 l 684 840 l 254 840 l 214 579 q 306 627 258 612 q 407 643 354 643 q 636 552 540 643 q 738 314 738 457 "},"6":{"x_min":53,"x_max":739,"ha":792,"o":"m 739 312 q 633 62 739 162 q 400 -31 534 -31 q 162 78 257 -31 q 53 439 53 206 q 178 859 53 712 q 441 986 284 986 q 643 912 559 986 q 732 713 732 833 l 601 713 q 544 830 594 786 q 426 875 494 875 q 268 793 331 875 q 193 517 193 697 q 301 597 240 570 q 427 624 362 624 q 643 540 552 624 q 739 312 739 451 m 603 298 q 540 461 603 400 q 404 516 484 516 q 268 461 323 516 q 207 300 207 401 q 269 137 207 198 q 405 83 325 83 q 541 137 486 83 q 603 298 603 197 "},"7":{"x_min":58.71875,"x_max":730.953125,"ha":792,"o":"m 730 839 q 469 448 560 641 q 335 0 378 255 l 192 0 q 328 441 235 252 q 593 830 421 630 l 58 830 l 58 958 l 730 958 l 730 839 "},"8":{"x_min":55,"x_max":736,"ha":792,"o":"m 571 527 q 694 424 652 491 q 736 280 736 358 q 648 71 736 158 q 395 -26 551 -26 q 142 69 238 -26 q 55 279 55 157 q 96 425 55 359 q 220 527 138 491 q 120 615 153 562 q 88 726 88 668 q 171 904 88 827 q 395 986 261 986 q 618 905 529 986 q 702 727 702 830 q 670 616 702 667 q 571 527 638 565 m 394 565 q 519 610 475 565 q 563 717 563 655 q 521 823 563 781 q 392 872 474 872 q 265 824 312 872 q 224 720 224 783 q 265 613 224 656 q 394 565 312 565 m 395 91 q 545 150 488 91 q 597 280 597 204 q 546 408 597 355 q 395 465 492 465 q 244 408 299 465 q 194 280 194 356 q 244 150 194 203 q 395 91 299 91 "},"9":{"x_min":53,"x_max":739,"ha":792,"o":"m 739 524 q 619 94 739 241 q 362 -32 516 -32 q 150 47 242 -32 q 59 244 59 126 l 191 244 q 246 129 191 176 q 373 82 301 82 q 526 161 466 82 q 597 440 597 255 q 363 334 501 334 q 130 432 216 334 q 53 650 53 521 q 134 880 53 786 q 383 986 226 986 q 659 841 566 986 q 739 524 739 719 m 388 449 q 535 514 480 449 q 585 658 585 573 q 535 805 585 744 q 388 873 480 873 q 242 809 294 873 q 191 658 191 745 q 239 514 191 572 q 388 449 292 449 "},"\u03bf":{"x_min":0,"x_max":712,"ha":815,"o":"m 356 -25 q 96 88 192 -25 q 0 368 0 201 q 92 642 0 533 q 356 761 192 761 q 617 644 517 761 q 712 368 712 533 q 619 91 712 201 q 356 -25 520 -25 m 356 85 q 527 175 465 85 q 583 369 583 255 q 528 562 583 484 q 356 651 466 651 q 189 560 250 651 q 135 369 135 481 q 187 177 135 257 q 356 85 250 85 "},"S":{"x_min":0,"x_max":788,"ha":890,"o":"m 788 291 q 662 54 788 144 q 397 -26 550 -26 q 116 68 226 -26 q 0 337 0 168 l 131 337 q 200 152 131 220 q 384 85 269 85 q 557 129 479 85 q 650 270 650 183 q 490 429 650 379 q 194 513 341 470 q 33 739 33 584 q 142 964 33 881 q 388 1041 242 1041 q 644 957 543 1041 q 756 716 756 867 l 625 716 q 561 874 625 816 q 395 933 497 933 q 243 891 309 933 q 164 759 164 841 q 325 609 164 656 q 625 526 475 568 q 788 291 788 454 "},"\xa6":{"x_min":343,"x_max":449,"ha":792,"o":"m 449 462 l 343 462 l 343 986 l 449 986 l 449 462 m 449 -242 l 343 -242 l 343 280 l 449 280 l 449 -242 "},"/":{"x_min":183.25,"x_max":608.328125,"ha":792,"o":"m 608 1041 l 266 -129 l 183 -129 l 520 1041 l 608 1041 "},"\u03a4":{"x_min":-0.4375,"x_max":777.453125,"ha":839,"o":"m 777 893 l 458 893 l 458 0 l 319 0 l 319 892 l 0 892 l 0 1013 l 777 1013 l 777 893 "},"y":{"x_min":0,"x_max":684.78125,"ha":771,"o":"m 684 738 l 388 -83 q 311 -216 356 -167 q 173 -279 252 -279 q 97 -266 133 -279 l 97 -149 q 132 -155 109 -151 q 168 -160 155 -160 q 240 -114 213 -160 q 274 -26 248 -98 l 0 738 l 137 737 l 341 139 l 548 737 l 684 738 "},"\u03a0":{"x_min":0,"x_max":803,"ha":917,"o":"m 803 0 l 667 0 l 667 886 l 140 886 l 140 0 l 0 0 l 0 1012 l 803 1012 l 803 0 "},"\u0390":{"x_min":-111,"x_max":339,"ha":361,"o":"m 339 800 l 229 800 l 229 925 l 339 925 l 339 800 m -1 800 l -111 800 l -111 925 l -1 925 l -1 800 m 284 3 q 233 -10 258 -5 q 182 -15 207 -15 q 85 26 119 -15 q 42 200 42 79 l 42 737 l 167 737 l 168 215 q 172 141 168 157 q 226 101 183 101 q 248 103 239 101 q 284 112 257 104 l 284 3 m 302 1040 l 113 819 l 30 819 l 165 1040 l 302 1040 "},"g":{"x_min":0,"x_max":686,"ha":838,"o":"m 686 34 q 586 -213 686 -121 q 331 -306 487 -306 q 131 -252 216 -306 q 31 -84 31 -190 l 155 -84 q 228 -174 166 -138 q 345 -207 284 -207 q 514 -109 454 -207 q 564 89 564 -27 q 461 6 521 36 q 335 -23 401 -23 q 88 100 184 -23 q 0 370 0 215 q 87 634 0 522 q 330 758 183 758 q 457 728 398 758 q 564 644 515 699 l 564 737 l 686 737 l 686 34 m 582 367 q 529 560 582 481 q 358 652 468 652 q 189 561 250 652 q 135 369 135 482 q 189 176 135 255 q 361 85 251 85 q 529 176 468 85 q 582 367 582 255 "},"\xb2":{"x_min":0,"x_max":442,"ha":539,"o":"m 442 383 l 0 383 q 91 566 0 492 q 260 668 176 617 q 354 798 354 727 q 315 875 354 845 q 227 905 277 905 q 136 869 173 905 q 99 761 99 833 l 14 761 q 82 922 14 864 q 232 974 141 974 q 379 926 316 974 q 442 797 442 878 q 351 635 442 704 q 183 539 321 611 q 92 455 92 491 l 442 455 l 442 383 "},"\u2013":{"x_min":0,"x_max":705.5625,"ha":803,"o":"m 705 334 l 0 334 l 0 410 l 705 410 l 705 334 "},"\u039a":{"x_min":0,"x_max":819.5625,"ha":893,"o":"m 819 0 l 650 0 l 294 509 l 139 356 l 139 0 l 0 0 l 0 1013 l 139 1013 l 139 526 l 626 1013 l 809 1013 l 395 600 l 819 0 "},"\u0192":{"x_min":-46.265625,"x_max":392,"ha":513,"o":"m 392 651 l 259 651 l 79 -279 l -46 -278 l 134 651 l 14 651 l 14 751 l 135 751 q 151 948 135 900 q 304 1041 185 1041 q 334 1040 319 1041 q 392 1034 348 1039 l 392 922 q 337 931 360 931 q 271 883 287 931 q 260 793 260 853 l 260 751 l 392 751 l 392 651 "},"e":{"x_min":0,"x_max":714,"ha":813,"o":"m 714 326 l 140 326 q 200 157 140 227 q 359 87 260 87 q 488 130 431 87 q 561 245 545 174 l 697 245 q 577 48 670 123 q 358 -26 484 -26 q 97 85 195 -26 q 0 363 0 197 q 94 642 0 529 q 358 765 195 765 q 626 627 529 765 q 714 326 714 503 m 576 429 q 507 583 564 522 q 355 650 445 650 q 206 583 266 650 q 140 429 152 522 l 576 429 "},"\u03cc":{"x_min":0,"x_max":712,"ha":815,"o":"m 356 -25 q 94 91 194 -25 q 0 368 0 202 q 92 642 0 533 q 356 761 192 761 q 617 644 517 761 q 712 368 712 533 q 619 91 712 201 q 356 -25 520 -25 m 356 85 q 527 175 465 85 q 583 369 583 255 q 528 562 583 484 q 356 651 466 651 q 189 560 250 651 q 135 369 135 481 q 187 177 135 257 q 356 85 250 85 m 576 1040 l 387 819 l 303 819 l 438 1040 l 576 1040 "},"J":{"x_min":0,"x_max":588,"ha":699,"o":"m 588 279 q 287 -26 588 -26 q 58 73 126 -26 q 0 327 0 158 l 133 327 q 160 172 133 227 q 288 96 198 96 q 426 171 391 96 q 449 336 449 219 l 449 1013 l 588 1013 l 588 279 "},"\xbb":{"x_min":-1,"x_max":503,"ha":601,"o":"m 503 302 l 280 136 l 281 256 l 429 373 l 281 486 l 280 608 l 503 440 l 503 302 m 221 302 l 0 136 l 0 255 l 145 372 l 0 486 l -1 608 l 221 440 l 221 302 "},"\xa9":{"x_min":-3,"x_max":1008,"ha":1106,"o":"m 502 -7 q 123 151 263 -7 q -3 501 -3 294 q 123 851 -3 706 q 502 1011 263 1011 q 881 851 739 1011 q 1008 501 1008 708 q 883 151 1008 292 q 502 -7 744 -7 m 502 60 q 830 197 709 60 q 940 501 940 322 q 831 805 940 681 q 502 944 709 944 q 174 805 296 944 q 65 501 65 680 q 173 197 65 320 q 502 60 294 60 m 741 394 q 661 246 731 302 q 496 190 591 190 q 294 285 369 190 q 228 497 228 370 q 295 714 228 625 q 499 813 370 813 q 656 762 588 813 q 733 625 724 711 l 634 625 q 589 704 629 673 q 498 735 550 735 q 377 666 421 735 q 334 504 334 597 q 374 340 334 408 q 490 272 415 272 q 589 304 549 272 q 638 394 628 337 l 741 394 "},"\u03ce":{"x_min":0,"x_max":922,"ha":1030,"o":"m 687 1040 l 498 819 l 415 819 l 549 1040 l 687 1040 m 922 339 q 856 97 922 203 q 650 -26 780 -26 q 538 9 587 -26 q 461 103 489 44 q 387 12 436 46 q 277 -22 339 -22 q 69 97 147 -22 q 0 338 0 202 q 45 551 0 444 q 161 737 84 643 l 302 737 q 175 552 219 647 q 124 336 124 446 q 155 179 124 248 q 275 88 197 88 q 375 163 341 88 q 400 294 400 219 l 400 572 l 524 572 l 524 294 q 561 135 524 192 q 643 88 591 88 q 762 182 719 88 q 797 341 797 257 q 745 555 797 450 q 619 737 705 637 l 760 737 q 874 551 835 640 q 922 339 922 444 "},"^":{"x_min":193.0625,"x_max":598.609375,"ha":792,"o":"m 598 772 l 515 772 l 395 931 l 277 772 l 193 772 l 326 1013 l 462 1013 l 598 772 "},"\xab":{"x_min":0,"x_max":507.203125,"ha":604,"o":"m 506 136 l 284 302 l 284 440 l 506 608 l 507 485 l 360 371 l 506 255 l 506 136 m 222 136 l 0 302 l 0 440 l 222 608 l 221 486 l 73 373 l 222 256 l 222 136 "},"D":{"x_min":0,"x_max":828,"ha":935,"o":"m 389 1013 q 714 867 593 1013 q 828 521 828 729 q 712 161 828 309 q 382 0 587 0 l 0 0 l 0 1013 l 389 1013 m 376 124 q 607 247 523 124 q 681 510 681 355 q 607 771 681 662 q 376 896 522 896 l 139 896 l 139 124 l 376 124 "},"\u2219":{"x_min":0,"x_max":142,"ha":239,"o":"m 142 585 l 0 585 l 0 738 l 142 738 l 142 585 "},"\xff":{"x_min":0,"x_max":47,"ha":125,"o":"m 47 3 q 37 -7 47 -7 q 28 0 30 -7 q 39 -4 32 -4 q 45 3 45 -1 l 37 0 q 28 9 28 0 q 39 19 28 19 l 47 16 l 47 19 l 47 3 m 37 1 q 44 8 44 1 q 37 16 44 16 q 30 8 30 16 q 37 1 30 1 m 26 1 l 23 22 l 14 0 l 3 22 l 3 3 l 0 25 l 13 1 l 22 25 l 26 1 "},"w":{"x_min":0,"x_max":1009.71875,"ha":1100,"o":"m 1009 738 l 783 0 l 658 0 l 501 567 l 345 0 l 222 0 l 0 738 l 130 738 l 284 174 l 432 737 l 576 738 l 721 173 l 881 737 l 1009 738 "},"$":{"x_min":0,"x_max":700,"ha":793,"o":"m 664 717 l 542 717 q 490 825 531 785 q 381 872 450 865 l 381 551 q 620 446 540 522 q 700 241 700 370 q 618 45 700 116 q 381 -25 536 -25 l 381 -152 l 307 -152 l 307 -25 q 81 62 162 -25 q 0 297 0 149 l 124 297 q 169 146 124 204 q 307 81 215 89 l 307 441 q 80 536 148 469 q 13 725 13 603 q 96 910 13 839 q 307 982 180 982 l 307 1077 l 381 1077 l 381 982 q 574 917 494 982 q 664 717 664 845 m 307 565 l 307 872 q 187 831 233 872 q 142 724 142 791 q 180 618 142 656 q 307 565 218 580 m 381 76 q 562 237 562 96 q 517 361 562 313 q 381 423 472 409 l 381 76 "},"\\\\":{"x_min":-0.015625,"x_max":425.0625,"ha":522,"o":"m 425 -129 l 337 -129 l 0 1041 l 83 1041 l 425 -129 "},"\xb5":{"x_min":0,"x_max":697.21875,"ha":747,"o":"m 697 -4 q 629 -14 658 -14 q 498 97 513 -14 q 422 9 470 41 q 313 -23 374 -23 q 207 4 258 -23 q 119 81 156 32 l 119 -278 l 0 -278 l 0 738 l 124 738 l 124 343 q 165 173 124 246 q 308 83 216 83 q 452 178 402 83 q 493 359 493 255 l 493 738 l 617 738 l 617 214 q 623 136 617 160 q 673 92 637 92 q 697 96 684 92 l 697 -4 "},"\u0399":{"x_min":42,"x_max":181,"ha":297,"o":"m 181 0 l 42 0 l 42 1013 l 181 1013 l 181 0 "},"\u038e":{"x_min":0,"x_max":1144.5,"ha":1214,"o":"m 1144 1012 l 807 416 l 807 0 l 667 0 l 667 416 l 325 1012 l 465 1012 l 736 533 l 1004 1012 l 1144 1012 m 277 1040 l 83 799 l 0 799 l 140 1040 l 277 1040 "},"\u2019":{"x_min":0,"x_max":139,"ha":236,"o":"m 139 851 q 102 737 139 784 q 0 669 65 690 l 0 734 q 59 787 42 741 q 72 873 72 821 l 0 873 l 0 1013 l 139 1013 l 139 851 "},"\u039d":{"x_min":0,"x_max":801,"ha":915,"o":"m 801 0 l 651 0 l 131 822 l 131 0 l 0 0 l 0 1013 l 151 1013 l 670 191 l 670 1013 l 801 1013 l 801 0 "},"-":{"x_min":8.71875,"x_max":350.390625,"ha":478,"o":"m 350 317 l 8 317 l 8 428 l 350 428 l 350 317 "},"Q":{"x_min":0,"x_max":968,"ha":1072,"o":"m 954 5 l 887 -79 l 744 35 q 622 -11 687 2 q 483 -26 556 -26 q 127 130 262 -26 q 0 504 0 279 q 127 880 0 728 q 484 1041 262 1041 q 841 884 708 1041 q 968 507 968 735 q 933 293 968 398 q 832 104 899 188 l 954 5 m 723 191 q 802 330 777 248 q 828 499 828 412 q 744 790 828 673 q 483 922 650 922 q 228 791 322 922 q 142 505 142 673 q 227 221 142 337 q 487 91 323 91 q 632 123 566 91 l 520 215 l 587 301 l 723 191 "},"\u03c2":{"x_min":1,"x_max":676.28125,"ha":740,"o":"m 676 460 l 551 460 q 498 595 542 546 q 365 651 448 651 q 199 578 263 651 q 136 401 136 505 q 266 178 136 241 q 508 106 387 142 q 640 -50 640 62 q 625 -158 640 -105 q 583 -278 611 -211 l 465 -278 q 498 -182 490 -211 q 515 -80 515 -126 q 381 12 515 -15 q 134 91 197 51 q 1 388 1 179 q 100 651 1 542 q 354 761 199 761 q 587 680 498 761 q 676 460 676 599 "},"M":{"x_min":0,"x_max":954,"ha":1067,"o":"m 954 0 l 819 0 l 819 869 l 537 0 l 405 0 l 128 866 l 128 0 l 0 0 l 0 1013 l 200 1013 l 472 160 l 757 1013 l 954 1013 l 954 0 "},"\u03a8":{"x_min":0,"x_max":1006,"ha":1094,"o":"m 1006 678 q 914 319 1006 429 q 571 200 814 200 l 571 0 l 433 0 l 433 200 q 92 319 194 200 q 0 678 0 429 l 0 1013 l 139 1013 l 139 679 q 191 417 139 492 q 433 326 255 326 l 433 1013 l 571 1013 l 571 326 l 580 326 q 813 423 747 326 q 868 679 868 502 l 868 1013 l 1006 1013 l 1006 678 "},"C":{"x_min":0,"x_max":886,"ha":944,"o":"m 886 379 q 760 87 886 201 q 455 -26 634 -26 q 112 136 236 -26 q 0 509 0 283 q 118 882 0 737 q 469 1041 245 1041 q 748 955 630 1041 q 879 708 879 859 l 745 708 q 649 862 724 805 q 473 920 573 920 q 219 791 312 920 q 136 509 136 675 q 217 229 136 344 q 470 99 311 99 q 672 179 591 99 q 753 379 753 259 l 886 379 "},"!":{"x_min":0,"x_max":138,"ha":236,"o":"m 138 684 q 116 409 138 629 q 105 244 105 299 l 33 244 q 16 465 33 313 q 0 684 0 616 l 0 1013 l 138 1013 l 138 684 m 138 0 l 0 0 l 0 151 l 138 151 l 138 0 "},"{":{"x_min":0,"x_max":480.5625,"ha":578,"o":"m 480 -286 q 237 -213 303 -286 q 187 -45 187 -159 q 194 48 187 -15 q 201 141 201 112 q 164 264 201 225 q 0 314 118 314 l 0 417 q 164 471 119 417 q 201 605 201 514 q 199 665 201 644 q 193 772 193 769 q 241 941 193 887 q 480 1015 308 1015 l 480 915 q 336 866 375 915 q 306 742 306 828 q 310 662 306 717 q 314 577 314 606 q 288 452 314 500 q 176 365 256 391 q 289 275 257 337 q 314 143 314 226 q 313 84 314 107 q 310 -11 310 -5 q 339 -131 310 -94 q 480 -182 377 -182 l 480 -286 "},"X":{"x_min":-0.015625,"x_max":854.15625,"ha":940,"o":"m 854 0 l 683 0 l 423 409 l 166 0 l 0 0 l 347 519 l 18 1013 l 186 1013 l 428 637 l 675 1013 l 836 1013 l 504 520 l 854 0 "},"#":{"x_min":0,"x_max":963.890625,"ha":1061,"o":"m 963 690 l 927 590 l 719 590 l 655 410 l 876 410 l 840 310 l 618 310 l 508 -3 l 393 -2 l 506 309 l 329 310 l 215 -2 l 102 -3 l 212 310 l 0 310 l 36 410 l 248 409 l 312 590 l 86 590 l 120 690 l 347 690 l 459 1006 l 573 1006 l 462 690 l 640 690 l 751 1006 l 865 1006 l 754 690 l 963 690 m 606 590 l 425 590 l 362 410 l 543 410 l 606 590 "},"\u03b9":{"x_min":42,"x_max":284,"ha":361,"o":"m 284 3 q 233 -10 258 -5 q 182 -15 207 -15 q 85 26 119 -15 q 42 200 42 79 l 42 738 l 167 738 l 168 215 q 172 141 168 157 q 226 101 183 101 q 248 103 239 101 q 284 112 257 104 l 284 3 "},"\u0386":{"x_min":0,"x_max":906.953125,"ha":982,"o":"m 283 1040 l 88 799 l 5 799 l 145 1040 l 283 1040 m 906 0 l 756 0 l 650 303 l 251 303 l 143 0 l 0 0 l 376 1012 l 529 1012 l 906 0 m 609 421 l 452 866 l 293 421 l 609 421 "},")":{"x_min":0,"x_max":318,"ha":415,"o":"m 318 365 q 257 25 318 191 q 87 -290 197 -141 l 0 -290 q 140 21 93 -128 q 193 360 193 189 q 141 704 193 537 q 0 1024 97 850 l 87 1024 q 257 706 197 871 q 318 365 318 542 "},"\u03b5":{"x_min":0,"x_max":634.71875,"ha":714,"o":"m 634 234 q 527 38 634 110 q 300 -25 433 -25 q 98 29 183 -25 q 0 204 0 93 q 37 314 0 265 q 128 390 67 353 q 56 460 82 419 q 26 555 26 505 q 114 712 26 654 q 295 763 191 763 q 499 700 416 763 q 589 515 589 631 l 478 515 q 419 618 464 580 q 307 657 374 657 q 207 630 253 657 q 151 547 151 598 q 238 445 151 469 q 389 434 280 434 l 389 331 l 349 331 q 206 315 255 331 q 125 210 125 287 q 183 107 125 145 q 302 76 233 76 q 436 117 379 76 q 509 234 493 159 l 634 234 "},"\u0394":{"x_min":0,"x_max":952.78125,"ha":1028,"o":"m 952 0 l 0 0 l 400 1013 l 551 1013 l 952 0 m 762 124 l 476 867 l 187 124 l 762 124 "},"}":{"x_min":0,"x_max":481,"ha":578,"o":"m 481 314 q 318 262 364 314 q 282 136 282 222 q 284 65 282 97 q 293 -58 293 -48 q 241 -217 293 -166 q 0 -286 174 -286 l 0 -182 q 143 -130 105 -182 q 171 -2 171 -93 q 168 81 171 22 q 165 144 165 140 q 188 275 165 229 q 306 365 220 339 q 191 455 224 391 q 165 588 165 505 q 168 681 165 624 q 171 742 171 737 q 141 865 171 827 q 0 915 102 915 l 0 1015 q 243 942 176 1015 q 293 773 293 888 q 287 675 293 741 q 282 590 282 608 q 318 466 282 505 q 481 417 364 417 l 481 314 "},"\u2030":{"x_min":-3,"x_max":1672,"ha":1821,"o":"m 846 0 q 664 76 732 0 q 603 244 603 145 q 662 412 603 344 q 846 489 729 489 q 1027 412 959 489 q 1089 244 1089 343 q 1029 76 1089 144 q 846 0 962 0 m 845 103 q 945 143 910 103 q 981 243 981 184 q 947 340 981 301 q 845 385 910 385 q 745 342 782 385 q 709 243 709 300 q 742 147 709 186 q 845 103 781 103 m 888 986 l 284 -25 l 199 -25 l 803 986 l 888 986 m 241 468 q 58 545 126 468 q -3 715 -3 615 q 56 881 -3 813 q 238 958 124 958 q 421 881 353 958 q 483 712 483 813 q 423 544 483 612 q 241 468 356 468 m 241 855 q 137 811 175 855 q 100 710 100 768 q 136 612 100 653 q 240 572 172 572 q 344 614 306 572 q 382 713 382 656 q 347 810 382 771 q 241 855 308 855 m 1428 0 q 1246 76 1314 0 q 1185 244 1185 145 q 1244 412 1185 344 q 1428 489 1311 489 q 1610 412 1542 489 q 1672 244 1672 343 q 1612 76 1672 144 q 1428 0 1545 0 m 1427 103 q 1528 143 1492 103 q 1564 243 1564 184 q 1530 340 1564 301 q 1427 385 1492 385 q 1327 342 1364 385 q 1291 243 1291 300 q 1324 147 1291 186 q 1427 103 1363 103 "},"a":{"x_min":0,"x_max":698.609375,"ha":794,"o":"m 698 0 q 661 -12 679 -7 q 615 -17 643 -17 q 536 12 564 -17 q 500 96 508 41 q 384 6 456 37 q 236 -25 312 -25 q 65 31 130 -25 q 0 194 0 88 q 118 390 0 334 q 328 435 180 420 q 488 483 476 451 q 495 523 495 504 q 442 619 495 584 q 325 654 389 654 q 209 617 257 654 q 152 513 161 580 l 33 513 q 123 705 33 633 q 332 772 207 772 q 528 712 448 772 q 617 531 617 645 l 617 163 q 624 108 617 126 q 664 90 632 90 l 698 94 l 698 0 m 491 262 l 491 372 q 272 329 350 347 q 128 201 128 294 q 166 113 128 144 q 264 83 205 83 q 414 130 346 83 q 491 262 491 183 "},"\u2014":{"x_min":0,"x_max":941.671875,"ha":1039,"o":"m 941 334 l 0 334 l 0 410 l 941 410 l 941 334 "},"=":{"x_min":8.71875,"x_max":780.953125,"ha":792,"o":"m 780 510 l 8 510 l 8 606 l 780 606 l 780 510 m 780 235 l 8 235 l 8 332 l 780 332 l 780 235 "},"N":{"x_min":0,"x_max":801,"ha":914,"o":"m 801 0 l 651 0 l 131 823 l 131 0 l 0 0 l 0 1013 l 151 1013 l 670 193 l 670 1013 l 801 1013 l 801 0 "},"\u03c1":{"x_min":0,"x_max":712,"ha":797,"o":"m 712 369 q 620 94 712 207 q 362 -26 521 -26 q 230 2 292 -26 q 119 83 167 30 l 119 -278 l 0 -278 l 0 362 q 91 643 0 531 q 355 764 190 764 q 617 647 517 764 q 712 369 712 536 m 583 366 q 530 559 583 480 q 359 651 469 651 q 190 562 252 651 q 135 370 135 483 q 189 176 135 257 q 359 85 250 85 q 528 175 466 85 q 583 366 583 254 "},"\xaf":{"x_min":0,"x_max":941.671875,"ha":938,"o":"m 941 1033 l 0 1033 l 0 1109 l 941 1109 l 941 1033 "},"Z":{"x_min":0,"x_max":779,"ha":849,"o":"m 779 0 l 0 0 l 0 113 l 621 896 l 40 896 l 40 1013 l 779 1013 l 778 887 l 171 124 l 779 124 l 779 0 "},"u":{"x_min":0,"x_max":617,"ha":729,"o":"m 617 0 l 499 0 l 499 110 q 391 10 460 45 q 246 -25 322 -25 q 61 58 127 -25 q 0 258 0 136 l 0 738 l 125 738 l 125 284 q 156 148 125 202 q 273 82 197 82 q 433 165 369 82 q 493 340 493 243 l 493 738 l 617 738 l 617 0 "},"k":{"x_min":0,"x_max":612.484375,"ha":697,"o":"m 612 738 l 338 465 l 608 0 l 469 0 l 251 382 l 121 251 l 121 0 l 0 0 l 0 1013 l 121 1013 l 121 402 l 456 738 l 612 738 "},"\u0397":{"x_min":0,"x_max":803,"ha":917,"o":"m 803 0 l 667 0 l 667 475 l 140 475 l 140 0 l 0 0 l 0 1013 l 140 1013 l 140 599 l 667 599 l 667 1013 l 803 1013 l 803 0 "},"\u0391":{"x_min":0,"x_max":906.953125,"ha":985,"o":"m 906 0 l 756 0 l 650 303 l 251 303 l 143 0 l 0 0 l 376 1013 l 529 1013 l 906 0 m 609 421 l 452 866 l 293 421 l 609 421 "},"s":{"x_min":0,"x_max":604,"ha":697,"o":"m 604 217 q 501 36 604 104 q 292 -23 411 -23 q 86 43 166 -23 q 0 238 0 114 l 121 237 q 175 122 121 164 q 300 85 223 85 q 415 112 363 85 q 479 207 479 147 q 361 309 479 276 q 140 372 141 370 q 21 544 21 426 q 111 708 21 647 q 298 761 190 761 q 492 705 413 761 q 583 531 583 643 l 462 531 q 412 625 462 594 q 298 657 363 657 q 199 636 242 657 q 143 558 143 608 q 262 454 143 486 q 484 394 479 397 q 604 217 604 341 "},"B":{"x_min":0,"x_max":778,"ha":876,"o":"m 580 546 q 724 469 670 535 q 778 311 778 403 q 673 83 778 171 q 432 0 575 0 l 0 0 l 0 1013 l 411 1013 q 629 957 541 1013 q 732 768 732 892 q 691 633 732 693 q 580 546 650 572 m 393 899 l 139 899 l 139 588 l 379 588 q 521 624 462 588 q 592 744 592 667 q 531 859 592 819 q 393 899 471 899 m 419 124 q 566 169 504 124 q 635 303 635 219 q 559 436 635 389 q 402 477 494 477 l 139 477 l 139 124 l 419 124 "},"\u2026":{"x_min":0,"x_max":614,"ha":708,"o":"m 142 0 l 0 0 l 0 151 l 142 151 l 142 0 m 378 0 l 236 0 l 236 151 l 378 151 l 378 0 m 614 0 l 472 0 l 472 151 l 614 151 l 614 0 "},"?":{"x_min":0,"x_max":607,"ha":704,"o":"m 607 777 q 543 599 607 674 q 422 474 482 537 q 357 272 357 391 l 236 272 q 297 487 236 395 q 411 619 298 490 q 474 762 474 691 q 422 885 474 838 q 301 933 371 933 q 179 880 228 933 q 124 706 124 819 l 0 706 q 94 963 0 872 q 302 1044 177 1044 q 511 973 423 1044 q 607 777 607 895 m 370 0 l 230 0 l 230 151 l 370 151 l 370 0 "},"H":{"x_min":0,"x_max":803,"ha":915,"o":"m 803 0 l 667 0 l 667 475 l 140 475 l 140 0 l 0 0 l 0 1013 l 140 1013 l 140 599 l 667 599 l 667 1013 l 803 1013 l 803 0 "},"\u03bd":{"x_min":0,"x_max":675,"ha":761,"o":"m 675 738 l 404 0 l 272 0 l 0 738 l 133 738 l 340 147 l 541 738 l 675 738 "},"c":{"x_min":1,"x_max":701.390625,"ha":775,"o":"m 701 264 q 584 53 681 133 q 353 -26 487 -26 q 91 91 188 -26 q 1 370 1 201 q 92 645 1 537 q 353 761 190 761 q 572 688 479 761 q 690 493 666 615 l 556 493 q 487 606 545 562 q 356 650 428 650 q 186 563 246 650 q 134 372 134 487 q 188 179 134 258 q 359 88 250 88 q 492 136 437 88 q 566 264 548 185 l 701 264 "},"\xb6":{"x_min":0,"x_max":566.671875,"ha":678,"o":"m 21 892 l 52 892 l 98 761 l 145 892 l 176 892 l 178 741 l 157 741 l 157 867 l 108 741 l 88 741 l 40 871 l 40 741 l 21 741 l 21 892 m 308 854 l 308 731 q 252 691 308 691 q 227 691 240 691 q 207 696 213 695 l 207 712 l 253 706 q 288 733 288 706 l 288 763 q 244 741 279 741 q 193 797 193 741 q 261 860 193 860 q 287 860 273 860 q 308 854 302 855 m 288 842 l 263 843 q 213 796 213 843 q 248 756 213 756 q 288 796 288 756 l 288 842 m 566 988 l 502 988 l 502 -1 l 439 -1 l 439 988 l 317 988 l 317 -1 l 252 -1 l 252 602 q 81 653 155 602 q 0 805 0 711 q 101 989 0 918 q 309 1053 194 1053 l 566 1053 l 566 988 "},"\u03b2":{"x_min":0,"x_max":660,"ha":745,"o":"m 471 550 q 610 450 561 522 q 660 280 660 378 q 578 64 660 151 q 367 -22 497 -22 q 239 5 299 -22 q 126 82 178 32 l 126 -278 l 0 -278 l 0 593 q 54 903 0 801 q 318 1042 127 1042 q 519 964 436 1042 q 603 771 603 887 q 567 644 603 701 q 471 550 532 586 m 337 79 q 476 138 418 79 q 535 279 535 198 q 427 437 535 386 q 226 477 344 477 l 226 583 q 398 620 329 583 q 486 762 486 668 q 435 884 486 833 q 312 935 384 935 q 169 861 219 935 q 126 698 126 797 l 126 362 q 170 169 126 242 q 337 79 224 79 "},"\u039c":{"x_min":0,"x_max":954,"ha":1068,"o":"m 954 0 l 819 0 l 819 868 l 537 0 l 405 0 l 128 865 l 128 0 l 0 0 l 0 1013 l 199 1013 l 472 158 l 758 1013 l 954 1013 l 954 0 "},"\u038c":{"x_min":0.109375,"x_max":1120,"ha":1217,"o":"m 1120 505 q 994 132 1120 282 q 642 -29 861 -29 q 290 130 422 -29 q 167 505 167 280 q 294 883 167 730 q 650 1046 430 1046 q 999 882 868 1046 q 1120 505 1120 730 m 977 504 q 896 784 977 669 q 644 915 804 915 q 391 785 484 915 q 307 504 307 669 q 391 224 307 339 q 644 95 486 95 q 894 224 803 95 q 977 504 977 339 m 277 1040 l 83 799 l 0 799 l 140 1040 l 277 1040 "},"\u0389":{"x_min":0,"x_max":1158,"ha":1275,"o":"m 1158 0 l 1022 0 l 1022 475 l 496 475 l 496 0 l 356 0 l 356 1012 l 496 1012 l 496 599 l 1022 599 l 1022 1012 l 1158 1012 l 1158 0 m 277 1040 l 83 799 l 0 799 l 140 1040 l 277 1040 "},"\u2022":{"x_min":0,"x_max":663.890625,"ha":775,"o":"m 663 529 q 566 293 663 391 q 331 196 469 196 q 97 294 194 196 q 0 529 0 393 q 96 763 0 665 q 331 861 193 861 q 566 763 469 861 q 663 529 663 665 "},"\xa5":{"x_min":0.1875,"x_max":819.546875,"ha":886,"o":"m 563 561 l 697 561 l 696 487 l 520 487 l 482 416 l 482 380 l 697 380 l 695 308 l 482 308 l 482 0 l 342 0 l 342 308 l 125 308 l 125 380 l 342 380 l 342 417 l 303 487 l 125 487 l 125 561 l 258 561 l 0 1013 l 140 1013 l 411 533 l 679 1013 l 819 1013 l 563 561 "},"(":{"x_min":0,"x_max":318.0625,"ha":415,"o":"m 318 -290 l 230 -290 q 61 23 122 -142 q 0 365 0 190 q 62 712 0 540 q 230 1024 119 869 l 318 1024 q 175 705 219 853 q 125 360 125 542 q 176 22 125 187 q 318 -290 223 -127 "},"U":{"x_min":0,"x_max":796,"ha":904,"o":"m 796 393 q 681 93 796 212 q 386 -25 566 -25 q 101 95 208 -25 q 0 393 0 211 l 0 1013 l 138 1013 l 138 391 q 204 191 138 270 q 394 107 276 107 q 586 191 512 107 q 656 391 656 270 l 656 1013 l 796 1013 l 796 393 "},"\u03b3":{"x_min":0.5,"x_max":744.953125,"ha":822,"o":"m 744 737 l 463 54 l 463 -278 l 338 -278 l 338 54 l 154 495 q 104 597 124 569 q 13 651 67 651 l 0 651 l 0 751 l 39 753 q 168 711 121 753 q 242 594 207 676 l 403 208 l 617 737 l 744 737 "},"\u03b1":{"x_min":0,"x_max":765.5625,"ha":809,"o":"m 765 -4 q 698 -14 726 -14 q 564 97 586 -14 q 466 7 525 40 q 337 -26 407 -26 q 88 98 186 -26 q 0 369 0 212 q 88 637 0 525 q 337 760 184 760 q 465 728 407 760 q 563 637 524 696 l 563 739 l 685 739 l 685 222 q 693 141 685 168 q 748 94 708 94 q 765 96 760 94 l 765 -4 m 584 371 q 531 562 584 485 q 360 653 470 653 q 192 566 254 653 q 135 379 135 489 q 186 181 135 261 q 358 84 247 84 q 528 176 465 84 q 584 371 584 260 "},"F":{"x_min":0,"x_max":683.328125,"ha":717,"o":"m 683 888 l 140 888 l 140 583 l 613 583 l 613 458 l 140 458 l 140 0 l 0 0 l 0 1013 l 683 1013 l 683 888 "},"\xad":{"x_min":0,"x_max":705.5625,"ha":803,"o":"m 705 334 l 0 334 l 0 410 l 705 410 l 705 334 "},":":{"x_min":0,"x_max":142,"ha":239,"o":"m 142 585 l 0 585 l 0 738 l 142 738 l 142 585 m 142 0 l 0 0 l 0 151 l 142 151 l 142 0 "},"\u03a7":{"x_min":0,"x_max":854.171875,"ha":935,"o":"m 854 0 l 683 0 l 423 409 l 166 0 l 0 0 l 347 519 l 18 1013 l 186 1013 l 427 637 l 675 1013 l 836 1013 l 504 521 l 854 0 "},"*":{"x_min":116,"x_max":674,"ha":792,"o":"m 674 768 l 475 713 l 610 544 l 517 477 l 394 652 l 272 478 l 178 544 l 314 713 l 116 766 l 153 876 l 341 812 l 342 1013 l 446 1013 l 446 811 l 635 874 l 674 768 "},"\u2020":{"x_min":0,"x_max":777,"ha":835,"o":"m 458 804 l 777 804 l 777 683 l 458 683 l 458 0 l 319 0 l 319 681 l 0 683 l 0 804 l 319 804 l 319 1015 l 458 1013 l 458 804 "},"\xb0":{"x_min":0,"x_max":347,"ha":444,"o":"m 173 802 q 43 856 91 802 q 0 977 0 905 q 45 1101 0 1049 q 173 1153 90 1153 q 303 1098 255 1153 q 347 977 347 1049 q 303 856 347 905 q 173 802 256 802 m 173 884 q 238 910 214 884 q 262 973 262 937 q 239 1038 262 1012 q 173 1064 217 1064 q 108 1037 132 1064 q 85 973 85 1010 q 108 910 85 937 q 173 884 132 884 "},"V":{"x_min":0,"x_max":862.71875,"ha":940,"o":"m 862 1013 l 505 0 l 361 0 l 0 1013 l 143 1013 l 434 165 l 718 1012 l 862 1013 "},"\u039e":{"x_min":0,"x_max":734.71875,"ha":763,"o":"m 723 889 l 9 889 l 9 1013 l 723 1013 l 723 889 m 673 463 l 61 463 l 61 589 l 673 589 l 673 463 m 734 0 l 0 0 l 0 124 l 734 124 l 734 0 "},"\xa0":{"x_min":0,"x_max":0,"ha":853},"\u03ab":{"x_min":0.328125,"x_max":819.515625,"ha":889,"o":"m 588 1046 l 460 1046 l 460 1189 l 588 1189 l 588 1046 m 360 1046 l 232 1046 l 232 1189 l 360 1189 l 360 1046 m 819 1012 l 482 416 l 482 0 l 342 0 l 342 416 l 0 1012 l 140 1012 l 411 533 l 679 1012 l 819 1012 "},"\u201d":{"x_min":0,"x_max":347,"ha":454,"o":"m 139 851 q 102 737 139 784 q 0 669 65 690 l 0 734 q 59 787 42 741 q 72 873 72 821 l 0 873 l 0 1013 l 139 1013 l 139 851 m 347 851 q 310 737 347 784 q 208 669 273 690 l 208 734 q 267 787 250 741 q 280 873 280 821 l 208 873 l 208 1013 l 347 1013 l 347 851 "},"@":{"x_min":0,"x_max":1260,"ha":1357,"o":"m 1098 -45 q 877 -160 1001 -117 q 633 -203 752 -203 q 155 -29 327 -203 q 0 360 0 127 q 176 802 0 616 q 687 1008 372 1008 q 1123 854 969 1008 q 1260 517 1260 718 q 1155 216 1260 341 q 868 82 1044 82 q 772 106 801 82 q 737 202 737 135 q 647 113 700 144 q 527 82 594 82 q 367 147 420 82 q 314 312 314 212 q 401 565 314 452 q 639 690 498 690 q 810 588 760 690 l 849 668 l 938 668 q 877 441 900 532 q 833 226 833 268 q 853 182 833 198 q 902 167 873 167 q 1088 272 1012 167 q 1159 512 1159 372 q 1051 793 1159 681 q 687 925 925 925 q 248 747 415 925 q 97 361 97 586 q 226 26 97 159 q 627 -122 370 -122 q 856 -87 737 -122 q 1061 8 976 -53 l 1098 -45 m 786 488 q 738 580 777 545 q 643 615 700 615 q 483 517 548 615 q 425 322 425 430 q 457 203 425 250 q 552 156 490 156 q 722 273 665 156 q 786 488 738 309 "},"\u038a":{"x_min":0,"x_max":499,"ha":613,"o":"m 277 1040 l 83 799 l 0 799 l 140 1040 l 277 1040 m 499 0 l 360 0 l 360 1012 l 499 1012 l 499 0 "},"i":{"x_min":14,"x_max":136,"ha":275,"o":"m 136 873 l 14 873 l 14 1013 l 136 1013 l 136 873 m 136 0 l 14 0 l 14 737 l 136 737 l 136 0 "},"\u0392":{"x_min":0,"x_max":778,"ha":877,"o":"m 580 545 q 724 468 671 534 q 778 310 778 402 q 673 83 778 170 q 432 0 575 0 l 0 0 l 0 1013 l 411 1013 q 629 957 541 1013 q 732 768 732 891 q 691 632 732 692 q 580 545 650 571 m 393 899 l 139 899 l 139 587 l 379 587 q 521 623 462 587 q 592 744 592 666 q 531 859 592 819 q 393 899 471 899 m 419 124 q 566 169 504 124 q 635 302 635 219 q 559 435 635 388 q 402 476 494 476 l 139 476 l 139 124 l 419 124 "},"\u03c5":{"x_min":0,"x_max":617,"ha":725,"o":"m 617 352 q 540 94 617 199 q 308 -24 455 -24 q 76 94 161 -24 q 0 352 0 199 l 0 739 l 126 739 l 126 355 q 169 185 126 257 q 312 98 220 98 q 451 185 402 98 q 492 355 492 257 l 492 739 l 617 739 l 617 352 "},"]":{"x_min":0,"x_max":275,"ha":372,"o":"m 275 -281 l 0 -281 l 0 -187 l 151 -187 l 151 920 l 0 920 l 0 1013 l 275 1013 l 275 -281 "},"m":{"x_min":0,"x_max":1019,"ha":1128,"o":"m 1019 0 l 897 0 l 897 454 q 860 591 897 536 q 739 660 816 660 q 613 586 659 660 q 573 436 573 522 l 573 0 l 447 0 l 447 455 q 412 591 447 535 q 294 657 372 657 q 165 586 213 657 q 122 437 122 521 l 122 0 l 0 0 l 0 738 l 117 738 l 117 640 q 202 730 150 697 q 316 763 254 763 q 437 730 381 763 q 525 642 494 697 q 621 731 559 700 q 753 763 682 763 q 943 694 867 763 q 1019 512 1019 625 l 1019 0 "},"\u03c7":{"x_min":8.328125,"x_max":780.5625,"ha":815,"o":"m 780 -278 q 715 -294 747 -294 q 616 -257 663 -294 q 548 -175 576 -227 l 379 133 l 143 -277 l 9 -277 l 313 254 l 163 522 q 127 586 131 580 q 36 640 91 640 q 8 637 27 640 l 8 752 l 52 757 q 162 719 113 757 q 236 627 200 690 l 383 372 l 594 737 l 726 737 l 448 250 l 625 -69 q 670 -153 647 -110 q 743 -188 695 -188 q 780 -184 759 -188 l 780 -278 "},"\u03af":{"x_min":42,"x_max":326.71875,"ha":361,"o":"m 284 3 q 233 -10 258 -5 q 182 -15 207 -15 q 85 26 119 -15 q 42 200 42 79 l 42 737 l 167 737 l 168 215 q 172 141 168 157 q 226 101 183 101 q 248 102 239 101 q 284 112 257 104 l 284 3 m 326 1040 l 137 819 l 54 819 l 189 1040 l 326 1040 "},"\u0396":{"x_min":0,"x_max":779.171875,"ha":850,"o":"m 779 0 l 0 0 l 0 113 l 620 896 l 40 896 l 40 1013 l 779 1013 l 779 887 l 170 124 l 779 124 l 779 0 "},"R":{"x_min":0,"x_max":781.953125,"ha":907,"o":"m 781 0 l 623 0 q 587 242 590 52 q 407 433 585 433 l 138 433 l 138 0 l 0 0 l 0 1013 l 396 1013 q 636 946 539 1013 q 749 731 749 868 q 711 597 749 659 q 608 502 674 534 q 718 370 696 474 q 729 207 722 352 q 781 26 736 62 l 781 0 m 373 551 q 533 594 465 551 q 614 731 614 645 q 532 859 614 815 q 373 896 465 896 l 138 896 l 138 551 l 373 551 "},"o":{"x_min":0,"x_max":713,"ha":821,"o":"m 357 -25 q 94 91 194 -25 q 0 368 0 202 q 93 642 0 533 q 357 761 193 761 q 618 644 518 761 q 713 368 713 533 q 619 91 713 201 q 357 -25 521 -25 m 357 85 q 528 175 465 85 q 584 369 584 255 q 529 562 584 484 q 357 651 467 651 q 189 560 250 651 q 135 369 135 481 q 187 177 135 257 q 357 85 250 85 "},"K":{"x_min":0,"x_max":819.46875,"ha":906,"o":"m 819 0 l 649 0 l 294 509 l 139 355 l 139 0 l 0 0 l 0 1013 l 139 1013 l 139 526 l 626 1013 l 809 1013 l 395 600 l 819 0 "},",":{"x_min":0,"x_max":142,"ha":239,"o":"m 142 -12 q 105 -132 142 -82 q 0 -205 68 -182 l 0 -138 q 57 -82 40 -124 q 70 0 70 -51 l 0 0 l 0 151 l 142 151 l 142 -12 "},"d":{"x_min":0,"x_max":683,"ha":796,"o":"m 683 0 l 564 0 l 564 93 q 456 6 516 38 q 327 -25 395 -25 q 87 100 181 -25 q 0 365 0 215 q 90 639 0 525 q 343 763 187 763 q 564 647 486 763 l 564 1013 l 683 1013 l 683 0 m 582 373 q 529 562 582 484 q 361 653 468 653 q 190 561 253 653 q 135 365 135 479 q 189 175 135 254 q 358 85 251 85 q 529 178 468 85 q 582 373 582 258 "},"\xa8":{"x_min":-109,"x_max":247,"ha":232,"o":"m 247 1046 l 119 1046 l 119 1189 l 247 1189 l 247 1046 m 19 1046 l -109 1046 l -109 1189 l 19 1189 l 19 1046 "},"E":{"x_min":0,"x_max":736.109375,"ha":789,"o":"m 736 0 l 0 0 l 0 1013 l 725 1013 l 725 889 l 139 889 l 139 585 l 677 585 l 677 467 l 139 467 l 139 125 l 736 125 l 736 0 "},"Y":{"x_min":0,"x_max":820,"ha":886,"o":"m 820 1013 l 482 416 l 482 0 l 342 0 l 342 416 l 0 1013 l 140 1013 l 411 534 l 679 1012 l 820 1013 "},"\\"":{"x_min":0,"x_max":299,"ha":396,"o":"m 299 606 l 203 606 l 203 988 l 299 988 l 299 606 m 96 606 l 0 606 l 0 988 l 96 988 l 96 606 "},"\u2039":{"x_min":17.984375,"x_max":773.609375,"ha":792,"o":"m 773 40 l 18 376 l 17 465 l 773 799 l 773 692 l 159 420 l 773 149 l 773 40 "},"\u201e":{"x_min":0,"x_max":364,"ha":467,"o":"m 141 -12 q 104 -132 141 -82 q 0 -205 67 -182 l 0 -138 q 56 -82 40 -124 q 69 0 69 -51 l 0 0 l 0 151 l 141 151 l 141 -12 m 364 -12 q 327 -132 364 -82 q 222 -205 290 -182 l 222 -138 q 279 -82 262 -124 q 292 0 292 -51 l 222 0 l 222 151 l 364 151 l 364 -12 "},"\u03b4":{"x_min":1,"x_max":710,"ha":810,"o":"m 710 360 q 616 87 710 196 q 356 -28 518 -28 q 99 82 197 -28 q 1 356 1 192 q 100 606 1 509 q 355 703 199 703 q 180 829 288 754 q 70 903 124 866 l 70 1012 l 643 1012 l 643 901 l 258 901 q 462 763 422 794 q 636 592 577 677 q 710 360 710 485 m 584 365 q 552 501 584 447 q 451 602 521 555 q 372 611 411 611 q 197 541 258 611 q 136 355 136 472 q 190 171 136 245 q 358 85 252 85 q 528 173 465 85 q 584 365 584 252 "},"\u03ad":{"x_min":0,"x_max":634.71875,"ha":714,"o":"m 634 234 q 527 38 634 110 q 300 -25 433 -25 q 98 29 183 -25 q 0 204 0 93 q 37 313 0 265 q 128 390 67 352 q 56 459 82 419 q 26 555 26 505 q 114 712 26 654 q 295 763 191 763 q 499 700 416 763 q 589 515 589 631 l 478 515 q 419 618 464 580 q 307 657 374 657 q 207 630 253 657 q 151 547 151 598 q 238 445 151 469 q 389 434 280 434 l 389 331 l 349 331 q 206 315 255 331 q 125 210 125 287 q 183 107 125 145 q 302 76 233 76 q 436 117 379 76 q 509 234 493 159 l 634 234 m 520 1040 l 331 819 l 248 819 l 383 1040 l 520 1040 "},"\u03c9":{"x_min":0,"x_max":922,"ha":1031,"o":"m 922 339 q 856 97 922 203 q 650 -26 780 -26 q 538 9 587 -26 q 461 103 489 44 q 387 12 436 46 q 277 -22 339 -22 q 69 97 147 -22 q 0 339 0 203 q 45 551 0 444 q 161 738 84 643 l 302 738 q 175 553 219 647 q 124 336 124 446 q 155 179 124 249 q 275 88 197 88 q 375 163 341 88 q 400 294 400 219 l 400 572 l 524 572 l 524 294 q 561 135 524 192 q 643 88 591 88 q 762 182 719 88 q 797 342 797 257 q 745 556 797 450 q 619 738 705 638 l 760 738 q 874 551 835 640 q 922 339 922 444 "},"\xb4":{"x_min":0,"x_max":96,"ha":251,"o":"m 96 606 l 0 606 l 0 988 l 96 988 l 96 606 "},"\xb1":{"x_min":11,"x_max":781,"ha":792,"o":"m 781 490 l 446 490 l 446 255 l 349 255 l 349 490 l 11 490 l 11 586 l 349 586 l 349 819 l 446 819 l 446 586 l 781 586 l 781 490 m 781 21 l 11 21 l 11 115 l 781 115 l 781 21 "},"|":{"x_min":343,"x_max":449,"ha":792,"o":"m 449 462 l 343 462 l 343 986 l 449 986 l 449 462 m 449 -242 l 343 -242 l 343 280 l 449 280 l 449 -242 "},"\u03cb":{"x_min":0,"x_max":617,"ha":725,"o":"m 482 800 l 372 800 l 372 925 l 482 925 l 482 800 m 239 800 l 129 800 l 129 925 l 239 925 l 239 800 m 617 352 q 540 93 617 199 q 308 -24 455 -24 q 76 93 161 -24 q 0 352 0 199 l 0 738 l 126 738 l 126 354 q 169 185 126 257 q 312 98 220 98 q 451 185 402 98 q 492 354 492 257 l 492 738 l 617 738 l 617 352 "},"\xa7":{"x_min":0,"x_max":593,"ha":690,"o":"m 593 425 q 554 312 593 369 q 467 233 516 254 q 537 83 537 172 q 459 -74 537 -12 q 288 -133 387 -133 q 115 -69 184 -133 q 47 96 47 -6 l 166 96 q 199 7 166 40 q 288 -26 232 -26 q 371 -5 332 -26 q 420 60 420 21 q 311 201 420 139 q 108 309 210 255 q 0 490 0 383 q 33 602 0 551 q 124 687 66 654 q 75 743 93 712 q 58 812 58 773 q 133 984 58 920 q 300 1043 201 1043 q 458 987 394 1043 q 529 814 529 925 l 411 814 q 370 908 404 877 q 289 939 336 939 q 213 911 246 939 q 180 841 180 883 q 286 720 180 779 q 484 612 480 615 q 593 425 593 534 m 467 409 q 355 544 467 473 q 196 630 228 612 q 146 587 162 609 q 124 525 124 558 q 239 387 124 462 q 398 298 369 315 q 448 345 429 316 q 467 409 467 375 "},"b":{"x_min":0,"x_max":685,"ha":783,"o":"m 685 372 q 597 99 685 213 q 347 -25 501 -25 q 219 5 277 -25 q 121 93 161 36 l 121 0 l 0 0 l 0 1013 l 121 1013 l 121 634 q 214 723 157 692 q 341 754 272 754 q 591 637 493 754 q 685 372 685 526 m 554 356 q 499 550 554 470 q 328 644 437 644 q 162 556 223 644 q 108 369 108 478 q 160 176 108 256 q 330 83 221 83 q 498 169 435 83 q 554 356 554 245 "},"q":{"x_min":0,"x_max":683,"ha":876,"o":"m 683 -278 l 564 -278 l 564 97 q 474 8 533 39 q 345 -23 415 -23 q 91 93 188 -23 q 0 364 0 203 q 87 635 0 522 q 337 760 184 760 q 466 727 408 760 q 564 637 523 695 l 564 737 l 683 737 l 683 -278 m 582 375 q 527 564 582 488 q 358 652 466 652 q 190 565 253 652 q 135 377 135 488 q 189 179 135 261 q 361 84 251 84 q 530 179 469 84 q 582 375 582 260 "},"\u03a9":{"x_min":-0.171875,"x_max":969.5625,"ha":1068,"o":"m 969 0 l 555 0 l 555 123 q 744 308 675 194 q 814 558 814 423 q 726 812 814 709 q 484 922 633 922 q 244 820 334 922 q 154 567 154 719 q 223 316 154 433 q 412 123 292 199 l 412 0 l 0 0 l 0 124 l 217 124 q 68 327 122 210 q 15 572 15 444 q 144 911 15 781 q 484 1041 274 1041 q 822 909 691 1041 q 953 569 953 777 q 899 326 953 443 q 750 124 846 210 l 969 124 l 969 0 "},"\u03cd":{"x_min":0,"x_max":617,"ha":725,"o":"m 617 352 q 540 93 617 199 q 308 -24 455 -24 q 76 93 161 -24 q 0 352 0 199 l 0 738 l 126 738 l 126 354 q 169 185 126 257 q 312 98 220 98 q 451 185 402 98 q 492 354 492 257 l 492 738 l 617 738 l 617 352 m 535 1040 l 346 819 l 262 819 l 397 1040 l 535 1040 "},"z":{"x_min":-0.015625,"x_max":613.890625,"ha":697,"o":"m 613 0 l 0 0 l 0 100 l 433 630 l 20 630 l 20 738 l 594 738 l 593 636 l 163 110 l 613 110 l 613 0 "},"\u2122":{"x_min":0,"x_max":894,"ha":1000,"o":"m 389 951 l 229 951 l 229 503 l 160 503 l 160 951 l 0 951 l 0 1011 l 389 1011 l 389 951 m 894 503 l 827 503 l 827 939 l 685 503 l 620 503 l 481 937 l 481 503 l 417 503 l 417 1011 l 517 1011 l 653 580 l 796 1010 l 894 1011 l 894 503 "},"\u03ae":{"x_min":0.78125,"x_max":697,"ha":810,"o":"m 697 -278 l 572 -278 l 572 454 q 540 587 572 536 q 425 650 501 650 q 271 579 337 650 q 206 420 206 509 l 206 0 l 81 0 l 81 489 q 73 588 81 562 q 0 644 56 644 l 0 741 q 68 755 38 755 q 158 721 124 755 q 200 630 193 687 q 297 726 234 692 q 434 761 359 761 q 620 692 544 761 q 697 516 697 624 l 697 -278 m 479 1040 l 290 819 l 207 819 l 341 1040 l 479 1040 "},"\u0398":{"x_min":0,"x_max":960,"ha":1056,"o":"m 960 507 q 833 129 960 280 q 476 -32 698 -32 q 123 129 255 -32 q 0 507 0 280 q 123 883 0 732 q 476 1045 255 1045 q 832 883 696 1045 q 960 507 960 732 m 817 500 q 733 789 817 669 q 476 924 639 924 q 223 792 317 924 q 142 507 142 675 q 222 222 142 339 q 476 89 315 89 q 730 218 636 89 q 817 500 817 334 m 716 449 l 243 449 l 243 571 l 716 571 l 716 449 "},"\xae":{"x_min":-3,"x_max":1008,"ha":1106,"o":"m 503 532 q 614 562 566 532 q 672 658 672 598 q 614 747 672 716 q 503 772 569 772 l 338 772 l 338 532 l 503 532 m 502 -7 q 123 151 263 -7 q -3 501 -3 294 q 123 851 -3 706 q 502 1011 263 1011 q 881 851 739 1011 q 1008 501 1008 708 q 883 151 1008 292 q 502 -7 744 -7 m 502 60 q 830 197 709 60 q 940 501 940 322 q 831 805 940 681 q 502 944 709 944 q 174 805 296 944 q 65 501 65 680 q 173 197 65 320 q 502 60 294 60 m 788 146 l 678 146 q 653 316 655 183 q 527 449 652 449 l 338 449 l 338 146 l 241 146 l 241 854 l 518 854 q 688 808 621 854 q 766 658 766 755 q 739 563 766 607 q 668 497 713 519 q 751 331 747 472 q 788 164 756 190 l 788 146 "},"~":{"x_min":0,"x_max":833,"ha":931,"o":"m 833 958 q 778 753 833 831 q 594 665 716 665 q 402 761 502 665 q 240 857 302 857 q 131 795 166 857 q 104 665 104 745 l 0 665 q 54 867 0 789 q 237 958 116 958 q 429 861 331 958 q 594 765 527 765 q 704 827 670 765 q 729 958 729 874 l 833 958 "},"\u0395":{"x_min":0,"x_max":736.21875,"ha":778,"o":"m 736 0 l 0 0 l 0 1013 l 725 1013 l 725 889 l 139 889 l 139 585 l 677 585 l 677 467 l 139 467 l 139 125 l 736 125 l 736 0 "},"\xb3":{"x_min":0,"x_max":450,"ha":547,"o":"m 450 552 q 379 413 450 464 q 220 366 313 366 q 69 414 130 366 q 0 567 0 470 l 85 567 q 126 470 85 504 q 225 437 168 437 q 320 467 280 437 q 360 552 360 498 q 318 632 360 608 q 213 657 276 657 q 195 657 203 657 q 176 657 181 657 l 176 722 q 279 733 249 722 q 334 815 334 752 q 300 881 334 856 q 220 907 267 907 q 133 875 169 907 q 97 781 97 844 l 15 781 q 78 926 15 875 q 220 972 135 972 q 364 930 303 972 q 426 817 426 888 q 344 697 426 733 q 421 642 392 681 q 450 552 450 603 "},"[":{"x_min":0,"x_max":273.609375,"ha":371,"o":"m 273 -281 l 0 -281 l 0 1013 l 273 1013 l 273 920 l 124 920 l 124 -187 l 273 -187 l 273 -281 "},"L":{"x_min":0,"x_max":645.828125,"ha":696,"o":"m 645 0 l 0 0 l 0 1013 l 140 1013 l 140 126 l 645 126 l 645 0 "},"\u03c3":{"x_min":0,"x_max":803.390625,"ha":894,"o":"m 803 628 l 633 628 q 713 368 713 512 q 618 93 713 204 q 357 -25 518 -25 q 94 91 194 -25 q 0 368 0 201 q 94 644 0 533 q 356 761 194 761 q 481 750 398 761 q 608 739 564 739 l 803 739 l 803 628 m 360 85 q 529 180 467 85 q 584 374 584 262 q 527 566 584 490 q 352 651 463 651 q 187 559 247 651 q 135 368 135 478 q 189 175 135 254 q 360 85 251 85 "},"\u03b6":{"x_min":0,"x_max":573,"ha":642,"o":"m 573 -40 q 553 -162 573 -97 q 510 -278 543 -193 l 400 -278 q 441 -187 428 -219 q 462 -90 462 -132 q 378 -14 462 -14 q 108 45 197 -14 q 0 290 0 117 q 108 631 0 462 q 353 901 194 767 l 55 901 l 55 1012 l 561 1012 l 561 924 q 261 669 382 831 q 128 301 128 489 q 243 117 128 149 q 458 98 350 108 q 573 -40 573 80 "},"\u03b8":{"x_min":0,"x_max":674,"ha":778,"o":"m 674 496 q 601 160 674 304 q 336 -26 508 -26 q 73 153 165 -26 q 0 485 0 296 q 72 840 0 683 q 343 1045 166 1045 q 605 844 516 1045 q 674 496 674 692 m 546 579 q 498 798 546 691 q 336 935 437 935 q 178 798 237 935 q 126 579 137 701 l 546 579 m 546 475 l 126 475 q 170 233 126 348 q 338 80 230 80 q 504 233 447 80 q 546 475 546 346 "},"\u039f":{"x_min":0,"x_max":958,"ha":1054,"o":"m 485 1042 q 834 883 703 1042 q 958 511 958 735 q 834 136 958 287 q 481 -26 701 -26 q 126 130 261 -26 q 0 504 0 279 q 127 880 0 729 q 485 1042 263 1042 m 480 98 q 731 225 638 98 q 815 504 815 340 q 733 783 815 670 q 480 913 640 913 q 226 785 321 913 q 142 504 142 671 q 226 224 142 339 q 480 98 319 98 "},"\u0393":{"x_min":0,"x_max":705.28125,"ha":749,"o":"m 705 886 l 140 886 l 140 0 l 0 0 l 0 1012 l 705 1012 l 705 886 "}," ":{"x_min":0,"x_max":0,"ha":375},"%":{"x_min":-3,"x_max":1089,"ha":1186,"o":"m 845 0 q 663 76 731 0 q 602 244 602 145 q 661 412 602 344 q 845 489 728 489 q 1027 412 959 489 q 1089 244 1089 343 q 1029 76 1089 144 q 845 0 962 0 m 844 103 q 945 143 909 103 q 981 243 981 184 q 947 340 981 301 q 844 385 909 385 q 744 342 781 385 q 708 243 708 300 q 741 147 708 186 q 844 103 780 103 m 888 986 l 284 -25 l 199 -25 l 803 986 l 888 986 m 241 468 q 58 545 126 468 q -3 715 -3 615 q 56 881 -3 813 q 238 958 124 958 q 421 881 353 958 q 483 712 483 813 q 423 544 483 612 q 241 468 356 468 m 241 855 q 137 811 175 855 q 100 710 100 768 q 136 612 100 653 q 240 572 172 572 q 344 614 306 572 q 382 713 382 656 q 347 810 382 771 q 241 855 308 855 "},"P":{"x_min":0,"x_max":726,"ha":806,"o":"m 424 1013 q 640 931 555 1013 q 726 719 726 850 q 637 506 726 587 q 413 426 548 426 l 140 426 l 140 0 l 0 0 l 0 1013 l 424 1013 m 379 889 l 140 889 l 140 548 l 372 548 q 522 589 459 548 q 593 720 593 637 q 528 845 593 801 q 379 889 463 889 "},"\u0388":{"x_min":0,"x_max":1078.21875,"ha":1118,"o":"m 1078 0 l 342 0 l 342 1013 l 1067 1013 l 1067 889 l 481 889 l 481 585 l 1019 585 l 1019 467 l 481 467 l 481 125 l 1078 125 l 1078 0 m 277 1040 l 83 799 l 0 799 l 140 1040 l 277 1040 "},"\u038f":{"x_min":0.125,"x_max":1136.546875,"ha":1235,"o":"m 1136 0 l 722 0 l 722 123 q 911 309 842 194 q 981 558 981 423 q 893 813 981 710 q 651 923 800 923 q 411 821 501 923 q 321 568 321 720 q 390 316 321 433 q 579 123 459 200 l 579 0 l 166 0 l 166 124 l 384 124 q 235 327 289 210 q 182 572 182 444 q 311 912 182 782 q 651 1042 441 1042 q 989 910 858 1042 q 1120 569 1120 778 q 1066 326 1120 443 q 917 124 1013 210 l 1136 124 l 1136 0 m 277 1040 l 83 800 l 0 800 l 140 1041 l 277 1040 "},"_":{"x_min":0,"x_max":705.5625,"ha":803,"o":"m 705 -334 l 0 -334 l 0 -234 l 705 -234 l 705 -334 "},"\u03aa":{"x_min":-110,"x_max":246,"ha":275,"o":"m 246 1046 l 118 1046 l 118 1189 l 246 1189 l 246 1046 m 18 1046 l -110 1046 l -110 1189 l 18 1189 l 18 1046 m 136 0 l 0 0 l 0 1012 l 136 1012 l 136 0 "},"+":{"x_min":23,"x_max":768,"ha":792,"o":"m 768 372 l 444 372 l 444 0 l 347 0 l 347 372 l 23 372 l 23 468 l 347 468 l 347 840 l 444 840 l 444 468 l 768 468 l 768 372 "},"\xbd":{"x_min":0,"x_max":1050,"ha":1149,"o":"m 1050 0 l 625 0 q 712 178 625 108 q 878 277 722 187 q 967 385 967 328 q 932 456 967 429 q 850 484 897 484 q 759 450 798 484 q 721 352 721 416 l 640 352 q 706 502 640 448 q 851 551 766 551 q 987 509 931 551 q 1050 385 1050 462 q 976 251 1050 301 q 829 179 902 215 q 717 68 740 133 l 1050 68 l 1050 0 m 834 985 l 215 -28 l 130 -28 l 750 984 l 834 985 m 224 422 l 142 422 l 142 811 l 0 811 l 0 867 q 104 889 62 867 q 164 973 157 916 l 224 973 l 224 422 "},"\u03a1":{"x_min":0,"x_max":720,"ha":783,"o":"m 424 1013 q 637 933 554 1013 q 720 723 720 853 q 633 508 720 591 q 413 426 546 426 l 140 426 l 140 0 l 0 0 l 0 1013 l 424 1013 m 378 889 l 140 889 l 140 548 l 371 548 q 521 589 458 548 q 592 720 592 637 q 527 845 592 801 q 378 889 463 889 "},"\'":{"x_min":0,"x_max":139,"ha":236,"o":"m 139 851 q 102 737 139 784 q 0 669 65 690 l 0 734 q 59 787 42 741 q 72 873 72 821 l 0 873 l 0 1013 l 139 1013 l 139 851 "},"\xaa":{"x_min":0,"x_max":350,"ha":397,"o":"m 350 625 q 307 616 328 616 q 266 631 281 616 q 247 673 251 645 q 190 628 225 644 q 116 613 156 613 q 32 641 64 613 q 0 722 0 669 q 72 826 0 800 q 247 866 159 846 l 247 887 q 220 934 247 916 q 162 953 194 953 q 104 934 129 953 q 76 882 80 915 l 16 882 q 60 976 16 941 q 166 1011 104 1011 q 266 979 224 1011 q 308 891 308 948 l 308 706 q 311 679 308 688 q 331 670 315 670 l 350 672 l 350 625 m 247 757 l 247 811 q 136 790 175 798 q 64 726 64 773 q 83 682 64 697 q 132 667 103 667 q 207 690 174 667 q 247 757 247 718 "},"\u0385":{"x_min":0,"x_max":450,"ha":553,"o":"m 450 800 l 340 800 l 340 925 l 450 925 l 450 800 m 406 1040 l 212 800 l 129 800 l 269 1040 l 406 1040 m 110 800 l 0 800 l 0 925 l 110 925 l 110 800 "},"T":{"x_min":0,"x_max":777,"ha":835,"o":"m 777 894 l 458 894 l 458 0 l 319 0 l 319 894 l 0 894 l 0 1013 l 777 1013 l 777 894 "},"\u03a6":{"x_min":0,"x_max":915,"ha":997,"o":"m 527 0 l 389 0 l 389 122 q 110 231 220 122 q 0 509 0 340 q 110 785 0 677 q 389 893 220 893 l 389 1013 l 527 1013 l 527 893 q 804 786 693 893 q 915 509 915 679 q 805 231 915 341 q 527 122 696 122 l 527 0 m 527 226 q 712 310 641 226 q 779 507 779 389 q 712 705 779 627 q 527 787 641 787 l 527 226 m 389 226 l 389 787 q 205 698 275 775 q 136 505 136 620 q 206 308 136 391 q 389 226 276 226 "},"\u204b":{"x_min":0,"x_max":0,"ha":694},"j":{"x_min":-77.78125,"x_max":167,"ha":349,"o":"m 167 871 l 42 871 l 42 1013 l 167 1013 l 167 871 m 167 -80 q 121 -231 167 -184 q -26 -278 76 -278 l -77 -278 l -77 -164 l -41 -164 q 26 -143 11 -164 q 42 -65 42 -122 l 42 737 l 167 737 l 167 -80 "},"\u03a3":{"x_min":0,"x_max":756.953125,"ha":819,"o":"m 756 0 l 0 0 l 0 107 l 395 523 l 22 904 l 22 1013 l 745 1013 l 745 889 l 209 889 l 566 523 l 187 125 l 756 125 l 756 0 "},"\u203a":{"x_min":18.0625,"x_max":774,"ha":792,"o":"m 774 376 l 18 40 l 18 149 l 631 421 l 18 692 l 18 799 l 774 465 l 774 376 "},"<":{"x_min":17.984375,"x_max":773.609375,"ha":792,"o":"m 773 40 l 18 376 l 17 465 l 773 799 l 773 692 l 159 420 l 773 149 l 773 40 "},"\xa3":{"x_min":0,"x_max":704.484375,"ha":801,"o":"m 704 41 q 623 -10 664 5 q 543 -26 583 -26 q 359 15 501 -26 q 243 36 288 36 q 158 23 197 36 q 73 -21 119 10 l 6 76 q 125 195 90 150 q 175 331 175 262 q 147 443 175 383 l 0 443 l 0 512 l 108 512 q 43 734 43 623 q 120 929 43 854 q 358 1010 204 1010 q 579 936 487 1010 q 678 729 678 857 l 678 684 l 552 684 q 504 838 552 780 q 362 896 457 896 q 216 852 263 896 q 176 747 176 815 q 199 627 176 697 q 248 512 217 574 l 468 512 l 468 443 l 279 443 q 297 356 297 398 q 230 194 297 279 q 153 107 211 170 q 227 133 190 125 q 293 142 264 142 q 410 119 339 142 q 516 96 482 96 q 579 105 550 96 q 648 142 608 115 l 704 41 "},"t":{"x_min":0,"x_max":367,"ha":458,"o":"m 367 0 q 312 -5 339 -2 q 262 -8 284 -8 q 145 28 183 -8 q 108 143 108 64 l 108 638 l 0 638 l 0 738 l 108 738 l 108 944 l 232 944 l 232 738 l 367 738 l 367 638 l 232 638 l 232 185 q 248 121 232 140 q 307 102 264 102 q 345 104 330 102 q 367 107 360 107 l 367 0 "},"\xac":{"x_min":0,"x_max":706,"ha":803,"o":"m 706 411 l 706 158 l 630 158 l 630 335 l 0 335 l 0 411 l 706 411 "},"\u03bb":{"x_min":0,"x_max":750,"ha":803,"o":"m 750 -7 q 679 -15 716 -15 q 538 59 591 -15 q 466 214 512 97 l 336 551 l 126 0 l 0 0 l 270 705 q 223 837 247 770 q 116 899 190 899 q 90 898 100 899 l 90 1004 q 152 1011 125 1011 q 298 938 244 1011 q 373 783 326 901 l 605 192 q 649 115 629 136 q 716 95 669 95 l 736 95 q 750 97 745 97 l 750 -7 "},"W":{"x_min":0,"x_max":1263.890625,"ha":1351,"o":"m 1263 1013 l 995 0 l 859 0 l 627 837 l 405 0 l 265 0 l 0 1013 l 136 1013 l 342 202 l 556 1013 l 701 1013 l 921 207 l 1133 1012 l 1263 1013 "},">":{"x_min":18.0625,"x_max":774,"ha":792,"o":"m 774 376 l 18 40 l 18 149 l 631 421 l 18 692 l 18 799 l 774 465 l 774 376 "},"v":{"x_min":0,"x_max":675.15625,"ha":761,"o":"m 675 738 l 404 0 l 272 0 l 0 738 l 133 737 l 340 147 l 541 737 l 675 738 "},"\u03c4":{"x_min":0.28125,"x_max":644.5,"ha":703,"o":"m 644 628 l 382 628 l 382 179 q 388 120 382 137 q 436 91 401 91 q 474 94 447 91 q 504 97 501 97 l 504 0 q 454 -9 482 -5 q 401 -14 426 -14 q 278 67 308 -14 q 260 233 260 118 l 260 628 l 0 628 l 0 739 l 644 739 l 644 628 "},"\u03be":{"x_min":0,"x_max":624.9375,"ha":699,"o":"m 624 -37 q 608 -153 624 -96 q 563 -278 593 -211 l 454 -278 q 491 -183 486 -200 q 511 -83 511 -126 q 484 -23 511 -44 q 370 1 452 1 q 323 0 354 1 q 283 -1 293 -1 q 84 76 169 -1 q 0 266 0 154 q 56 431 0 358 q 197 538 108 498 q 94 613 134 562 q 54 730 54 665 q 77 823 54 780 q 143 901 101 867 l 27 901 l 27 1012 l 576 1012 l 576 901 l 380 901 q 244 863 303 901 q 178 745 178 820 q 312 600 178 636 q 532 582 380 582 l 532 479 q 276 455 361 479 q 118 281 118 410 q 165 173 118 217 q 274 120 208 133 q 494 101 384 110 q 624 -37 624 76 "},"&":{"x_min":-3,"x_max":894.25,"ha":992,"o":"m 894 0 l 725 0 l 624 123 q 471 0 553 40 q 306 -41 390 -41 q 168 -7 231 -41 q 62 92 105 26 q 14 187 31 139 q -3 276 -3 235 q 55 433 -3 358 q 248 581 114 508 q 170 689 196 640 q 137 817 137 751 q 214 985 137 922 q 384 1041 284 1041 q 548 988 483 1041 q 622 824 622 928 q 563 666 622 739 q 431 556 516 608 l 621 326 q 649 407 639 361 q 663 493 653 426 l 781 493 q 703 229 781 352 l 894 0 m 504 818 q 468 908 504 877 q 384 940 433 940 q 293 907 331 940 q 255 818 255 875 q 289 714 255 767 q 363 628 313 678 q 477 729 446 682 q 504 818 504 771 m 556 209 l 314 499 q 179 395 223 449 q 135 283 135 341 q 146 222 135 253 q 183 158 158 192 q 333 80 241 80 q 556 209 448 80 "},"\u039b":{"x_min":0,"x_max":862.5,"ha":942,"o":"m 862 0 l 719 0 l 426 847 l 143 0 l 0 0 l 356 1013 l 501 1013 l 862 0 "},"I":{"x_min":41,"x_max":180,"ha":293,"o":"m 180 0 l 41 0 l 41 1013 l 180 1013 l 180 0 "},"G":{"x_min":0,"x_max":921,"ha":1011,"o":"m 921 0 l 832 0 l 801 136 q 655 15 741 58 q 470 -28 568 -28 q 126 133 259 -28 q 0 499 0 284 q 125 881 0 731 q 486 1043 259 1043 q 763 957 647 1043 q 905 709 890 864 l 772 709 q 668 866 747 807 q 486 926 589 926 q 228 795 322 926 q 142 507 142 677 q 228 224 142 342 q 483 94 323 94 q 712 195 625 94 q 796 435 796 291 l 477 435 l 477 549 l 921 549 l 921 0 "},"\u03b0":{"x_min":0,"x_max":617,"ha":725,"o":"m 524 800 l 414 800 l 414 925 l 524 925 l 524 800 m 183 800 l 73 800 l 73 925 l 183 925 l 183 800 m 617 352 q 540 93 617 199 q 308 -24 455 -24 q 76 93 161 -24 q 0 352 0 199 l 0 738 l 126 738 l 126 354 q 169 185 126 257 q 312 98 220 98 q 451 185 402 98 q 492 354 492 257 l 492 738 l 617 738 l 617 352 m 489 1040 l 300 819 l 216 819 l 351 1040 l 489 1040 "},"`":{"x_min":0,"x_max":138.890625,"ha":236,"o":"m 138 699 l 0 699 l 0 861 q 36 974 0 929 q 138 1041 72 1020 l 138 977 q 82 931 95 969 q 69 839 69 893 l 138 839 l 138 699 "},"\xb7":{"x_min":0,"x_max":142,"ha":239,"o":"m 142 585 l 0 585 l 0 738 l 142 738 l 142 585 "},"\u03a5":{"x_min":0.328125,"x_max":819.515625,"ha":889,"o":"m 819 1013 l 482 416 l 482 0 l 342 0 l 342 416 l 0 1013 l 140 1013 l 411 533 l 679 1013 l 819 1013 "},"r":{"x_min":0,"x_max":355.5625,"ha":432,"o":"m 355 621 l 343 621 q 179 569 236 621 q 122 411 122 518 l 122 0 l 0 0 l 0 737 l 117 737 l 117 604 q 204 719 146 686 q 355 753 262 753 l 355 621 "},"x":{"x_min":0,"x_max":675,"ha":764,"o":"m 675 0 l 525 0 l 331 286 l 144 0 l 0 0 l 256 379 l 12 738 l 157 737 l 336 473 l 516 738 l 661 738 l 412 380 l 675 0 "},"\u03bc":{"x_min":0,"x_max":696.609375,"ha":747,"o":"m 696 -4 q 628 -14 657 -14 q 498 97 513 -14 q 422 8 470 41 q 313 -24 374 -24 q 207 3 258 -24 q 120 80 157 31 l 120 -278 l 0 -278 l 0 738 l 124 738 l 124 343 q 165 172 124 246 q 308 82 216 82 q 451 177 402 82 q 492 358 492 254 l 492 738 l 616 738 l 616 214 q 623 136 616 160 q 673 92 636 92 q 696 95 684 92 l 696 -4 "},"h":{"x_min":0,"x_max":615,"ha":724,"o":"m 615 472 l 615 0 l 490 0 l 490 454 q 456 590 490 535 q 338 654 416 654 q 186 588 251 654 q 122 436 122 522 l 122 0 l 0 0 l 0 1013 l 122 1013 l 122 633 q 218 727 149 694 q 362 760 287 760 q 552 676 484 760 q 615 472 615 600 "},".":{"x_min":0,"x_max":142,"ha":239,"o":"m 142 0 l 0 0 l 0 151 l 142 151 l 142 0 "},"\u03c6":{"x_min":-2,"x_max":878,"ha":974,"o":"m 496 -279 l 378 -279 l 378 -17 q 101 88 204 -17 q -2 367 -2 194 q 68 626 -2 510 q 283 758 151 758 l 283 646 q 167 537 209 626 q 133 373 133 462 q 192 177 133 254 q 378 93 259 93 l 378 758 q 445 764 426 763 q 476 765 464 765 q 765 659 653 765 q 878 377 878 553 q 771 96 878 209 q 496 -17 665 -17 l 496 -279 m 496 93 l 514 93 q 687 183 623 93 q 746 380 746 265 q 691 569 746 491 q 522 658 629 658 l 496 656 l 496 93 "},";":{"x_min":0,"x_max":142,"ha":239,"o":"m 142 585 l 0 585 l 0 738 l 142 738 l 142 585 m 142 -12 q 105 -132 142 -82 q 0 -206 68 -182 l 0 -138 q 58 -82 43 -123 q 68 0 68 -56 l 0 0 l 0 151 l 142 151 l 142 -12 "},"f":{"x_min":0,"x_max":378,"ha":472,"o":"m 378 638 l 246 638 l 246 0 l 121 0 l 121 638 l 0 638 l 0 738 l 121 738 q 137 935 121 887 q 290 1028 171 1028 q 320 1027 305 1028 q 378 1021 334 1026 l 378 908 q 323 918 346 918 q 257 870 273 918 q 246 780 246 840 l 246 738 l 378 738 l 378 638 "},"\u201c":{"x_min":1,"x_max":348.21875,"ha":454,"o":"m 140 670 l 1 670 l 1 830 q 37 943 1 897 q 140 1011 74 990 l 140 947 q 82 900 97 940 q 68 810 68 861 l 140 810 l 140 670 m 348 670 l 209 670 l 209 830 q 245 943 209 897 q 348 1011 282 990 l 348 947 q 290 900 305 940 q 276 810 276 861 l 348 810 l 348 670 "},"A":{"x_min":0.03125,"x_max":906.953125,"ha":1008,"o":"m 906 0 l 756 0 l 648 303 l 251 303 l 142 0 l 0 0 l 376 1013 l 529 1013 l 906 0 m 610 421 l 452 867 l 293 421 l 610 421 "},"\u2018":{"x_min":1,"x_max":139.890625,"ha":236,"o":"m 139 670 l 1 670 l 1 830 q 37 943 1 897 q 139 1011 74 990 l 139 947 q 82 900 97 940 q 68 810 68 861 l 139 810 l 139 670 "},"\u03ca":{"x_min":-70,"x_max":283,"ha":361,"o":"m 283 800 l 173 800 l 173 925 l 283 925 l 283 800 m 40 800 l -70 800 l -70 925 l 40 925 l 40 800 m 283 3 q 232 -10 257 -5 q 181 -15 206 -15 q 84 26 118 -15 q 41 200 41 79 l 41 737 l 166 737 l 167 215 q 171 141 167 157 q 225 101 182 101 q 247 103 238 101 q 283 112 256 104 l 283 3 "},"\u03c0":{"x_min":-0.21875,"x_max":773.21875,"ha":857,"o":"m 773 -7 l 707 -11 q 575 40 607 -11 q 552 174 552 77 l 552 226 l 552 626 l 222 626 l 222 0 l 97 0 l 97 626 l 0 626 l 0 737 l 773 737 l 773 626 l 676 626 l 676 171 q 695 103 676 117 q 773 90 714 90 l 773 -7 "},"\u03ac":{"x_min":0,"x_max":765.5625,"ha":809,"o":"m 765 -4 q 698 -14 726 -14 q 564 97 586 -14 q 466 7 525 40 q 337 -26 407 -26 q 88 98 186 -26 q 0 369 0 212 q 88 637 0 525 q 337 760 184 760 q 465 727 407 760 q 563 637 524 695 l 563 738 l 685 738 l 685 222 q 693 141 685 168 q 748 94 708 94 q 765 95 760 94 l 765 -4 m 584 371 q 531 562 584 485 q 360 653 470 653 q 192 566 254 653 q 135 379 135 489 q 186 181 135 261 q 358 84 247 84 q 528 176 465 84 q 584 371 584 260 m 604 1040 l 415 819 l 332 819 l 466 1040 l 604 1040 "},"O":{"x_min":0,"x_max":958,"ha":1057,"o":"m 485 1041 q 834 882 702 1041 q 958 512 958 734 q 834 136 958 287 q 481 -26 702 -26 q 126 130 261 -26 q 0 504 0 279 q 127 880 0 728 q 485 1041 263 1041 m 480 98 q 731 225 638 98 q 815 504 815 340 q 733 783 815 669 q 480 912 640 912 q 226 784 321 912 q 142 504 142 670 q 226 224 142 339 q 480 98 319 98 "},"n":{"x_min":0,"x_max":615,"ha":724,"o":"m 615 463 l 615 0 l 490 0 l 490 454 q 453 592 490 537 q 331 656 410 656 q 178 585 240 656 q 117 421 117 514 l 117 0 l 0 0 l 0 738 l 117 738 l 117 630 q 218 728 150 693 q 359 764 286 764 q 552 675 484 764 q 615 463 615 593 "},"l":{"x_min":41,"x_max":166,"ha":279,"o":"m 166 0 l 41 0 l 41 1013 l 166 1013 l 166 0 "},"\xa4":{"x_min":40.09375,"x_max":728.796875,"ha":825,"o":"m 728 304 l 649 224 l 512 363 q 383 331 458 331 q 256 363 310 331 l 119 224 l 40 304 l 177 441 q 150 553 150 493 q 184 673 150 621 l 40 818 l 119 898 l 267 749 q 321 766 291 759 q 384 773 351 773 q 447 766 417 773 q 501 749 477 759 l 649 898 l 728 818 l 585 675 q 612 618 604 648 q 621 553 621 587 q 591 441 621 491 l 728 304 m 384 682 q 280 643 318 682 q 243 551 243 604 q 279 461 243 499 q 383 423 316 423 q 487 461 449 423 q 525 553 525 500 q 490 641 525 605 q 384 682 451 682 "},"\u03ba":{"x_min":0,"x_max":632.328125,"ha":679,"o":"m 632 0 l 482 0 l 225 384 l 124 288 l 124 0 l 0 0 l 0 738 l 124 738 l 124 446 l 433 738 l 596 738 l 312 466 l 632 0 "},"p":{"x_min":0,"x_max":685,"ha":786,"o":"m 685 364 q 598 96 685 205 q 350 -23 504 -23 q 121 89 205 -23 l 121 -278 l 0 -278 l 0 738 l 121 738 l 121 633 q 220 726 159 691 q 351 761 280 761 q 598 636 504 761 q 685 364 685 522 m 557 371 q 501 560 557 481 q 330 651 437 651 q 162 559 223 651 q 108 366 108 479 q 162 177 108 254 q 333 87 224 87 q 502 178 441 87 q 557 371 557 258 "},"\u2021":{"x_min":0,"x_max":777,"ha":835,"o":"m 458 238 l 458 0 l 319 0 l 319 238 l 0 238 l 0 360 l 319 360 l 319 681 l 0 683 l 0 804 l 319 804 l 319 1015 l 458 1013 l 458 804 l 777 804 l 777 683 l 458 683 l 458 360 l 777 360 l 777 238 l 458 238 "},"\u03c8":{"x_min":0,"x_max":808,"ha":907,"o":"m 465 -278 l 341 -278 l 341 -15 q 87 102 180 -15 q 0 378 0 210 l 0 739 l 133 739 l 133 379 q 182 195 133 275 q 341 98 242 98 l 341 922 l 465 922 l 465 98 q 623 195 563 98 q 675 382 675 278 l 675 742 l 808 742 l 808 381 q 720 104 808 213 q 466 -13 627 -13 l 465 -278 "},"\u03b7":{"x_min":0.78125,"x_max":697,"ha":810,"o":"m 697 -278 l 572 -278 l 572 454 q 540 587 572 536 q 425 650 501 650 q 271 579 337 650 q 206 420 206 509 l 206 0 l 81 0 l 81 489 q 73 588 81 562 q 0 644 56 644 l 0 741 q 68 755 38 755 q 158 720 124 755 q 200 630 193 686 q 297 726 234 692 q 434 761 359 761 q 620 692 544 761 q 697 516 697 624 l 697 -278 "}},"cssFontWeight":"normal","ascender":1189,"underlinePosition":-100,"cssFontStyle":"normal","boundingBox":{"yMin":-334,"xMin":-111,"yMax":1189,"xMax":1672},"resolution":1000,"original_font_information":{"postscript_name":"Helvetiker-Regular","version_string":"Version 1.00 2004 initial release","vendor_url":"http://www.magenta.gr/","full_font_name":"Helvetiker","font_family_name":"Helvetiker","copyright":"Copyright (c) \u039cagenta ltd, 2004","description":"","trademark":"","designer":"","designer_url":"","unique_font_identifier":"\u039cagenta ltd:Helvetiker:22-10-104","license_url":"http://www.ellak.gr/fonts/MgOpen/license.html","license_description":"Copyright (c) 2004 by MAGENTA Ltd. All Rights Reserved.\\r\\n\\r\\nPermission is hereby granted, free of charge, to any person obtaining a copy of the fonts accompanying this license (\\"Fonts\\") and associated documentation files (the \\"Font Software\\"), to reproduce and distribute the Font Software, including without limitation the rights to use, copy, merge, publish, distribute, and/or sell copies of the Font Software, and to permit persons to whom the Font Software is furnished to do so, subject to the following conditions: \\r\\n\\r\\nThe above copyright and this permission notice shall be included in all copies of one or more of the Font Software typefaces.\\r\\n\\r\\nThe Font Software may be modified, altered, or added to, and in particular the designs of glyphs or characters in the Fonts may be modified and additional glyphs or characters may be added to the Fonts, only if the fonts are renamed to names not containing the word \\"MgOpen\\", or if the modifications are accepted for inclusion in the Font Software itself by the each appointed Administrator.\\r\\n\\r\\nThis License becomes null and void to the extent applicable to Fonts or Font Software that has been modified and is distributed under the \\"MgOpen\\" name.\\r\\n\\r\\nThe Font Software may be sold as part of a larger software package but no copy of one or more of the Font Software typefaces may be sold by itself. \\r\\n\\r\\nTHE FONT SOFTWARE IS PROVIDED \\"AS IS\\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL MAGENTA OR PERSONS OR BODIES IN CHARGE OF ADMINISTRATION AND MAINTENANCE OF THE FONT SOFTWARE BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.","manufacturer_name":"\u039cagenta ltd","font_sub_family_name":"Regular"},"descender":-334,"familyName":"Helvetiker","lineHeight":1522,"underlineThickness":50}');let el=(()=>{class n{constructor(t,i=!0){this.cartesianGridConfig={showXY:!0,showYZ:!0,showZX:!0,xDistance:0,yDistance:0,zDistance:0,sparsity:2},this.useCameraLight=!0,this.textFont=new Lq(EAe),this.labelTextLookCallbacks={},this.axesNumbers=[],this.getScene(),this.ignoreList=t,this.axis=null,this.setLights(i)}setLights(t=!0){this.useCameraLight=t;const i=new KI(16777215,1.2);this.scene.add(i),this.useCameraLight?(this.cameraLight=new hC(16777215,.9),this.cameraLight.position.set(0,0,10),this.scene.add(this.cameraLight)):[[-100,-50,100],[100,50,-100],[-100,50,-100],[100,-50,100]].forEach(r=>{const s=new hC(16777215,.2);s.position.set(r[0],r[1],r[2]),this.scene.add(s)})}updateLights(t){this.useCameraLight&&this.cameraLight.position.copy(t.position)}getScene(){return this.scene||(this.scene=new XS),this.scene}getCleanScene(){const t=this.scene.clone(),i=[];return t.traverse(r=>{this.ignoreList.includes(r.type)&&i.push(r)}),t.remove(...i),t}setGeometryOpacity(t,i){i&&t&&t.traverse(r=>{r?.material&&(r.material.transparent=!0,r.material.opacity=i)})}changeObjectColor(t,i){t&&t.traverse(r=>{(r instanceof ha||r instanceof uc)&&(r.material instanceof mg||r.material instanceof xd||r.material instanceof Dc)&&r.material.color.set(i)})}objectVisibility(t,i){t&&(t.visible=i,t.traverse(r=>{i?(r.layers.enable(0),r.layers.disable(1)):(r.layers.disable(0),r.layers.enable(1))}))}getObjectPosition(t){var i;return null===(i=this.scene.getObjectByName(t))||void 0===i?void 0:i.position}removeGeometry(t){this.getGeometries().remove(t)}removeLabel(t){const i=this.scene.getObjectByName(t);this.getObjectsGroup(n.LABELS_ID).remove(i)}scaleObject(t,i){t.scale.setScalar(i)}addEventDataTypeGroup(t){const i=this.getEventData();let r=this.scene.getObjectByName(t);return r||(r=new Wl),r.name=t,i.add(r),r}collectionFilter(t,i){const r=this.getScene().getObjectByName(n.EVENT_DATA_ID).getObjectByName(t);for(const s of Object.values(r.children))if(s.userData)for(const o of i){const l=s.userData[o.field];if(l){if(!o.cutPassed(l)){s.visible=!1;break}s.visible=!0}}}groupVisibility(t,i,r){const o=(r?this.scene.getObjectByName(r):this.scene).getObjectByName(t);for(const l of Object.values(o.children))l.visible=i}getObjectsGroup(t){let i=this.scene.getObjectByName(t);return null==i&&(i=new Wl,i.name=t,this.scene.add(i)),i}getEventData(){return this.getObjectsGroup(n.EVENT_DATA_ID)}getGeometries(){return this.getObjectsGroup(n.GEOMETRIES_ID)}clearEventData(){const t=this.getEventData();null!=t&&this.scene.remove(t),this.getEventData()}getText(t,i){const r=new CAe(t,{font:this.textFont,size:60,curveSegments:1,height:1});return new ha(r,new xd({color:new Cr(i)}))}setAxis(t,i=2e3,r=!0){if(null==this.axis){this.axis=new Wl;const s=new Cr(14037811),o=new Cr(3397171),l=new Cr(3355606),d=new Dc({color:s}),h=new Dc({color:o}),f=new Dc({color:l});let A=[new It(-i,0,0),new It(i,0,0)],S=(new no).setFromPoints(A);const R=new uc(S,d);this.axis.add(R),A=[new It(0,-i,0),new It(0,i,0)],S=(new no).setFromPoints(A);const G=new uc(S,h);this.axis.add(G),A=[new It(0,0,-i),new It(0,0,i)],S=(new no).setFromPoints(A);const re=new uc(S,f);this.axis.add(re),this.axis.name="gridline",this.axis.traverse(se=>se.name="gridline"),this.scene.add(this.axis)}if(this.axis.visible=t,r&&null==this.axisLabels){this.axisLabels=new Wl;const s=["X [cm]","Y [cm]","Z [cm]"],o=[16711680,65280,255];let l=0;for(const d of s){const h=this.getText(d,new Cr(o[l++]));this.axisLabels.add(h)}this.axisLabels.children[0].position.set(i+200,0,0),this.axisLabels.children[1].position.set(0,i+200,0),this.axisLabels.children[2].position.set(0,0,i+200),this.axisLabels.name="XYZ Labels",this.axisLabels.traverse(d=>d.name="XYZ Labels"),this.scene.add(this.axisLabels)}this.axisLabels.visible=t}createCartesianGrid(t=3e3){if(null==this.cartesianGrid){this.cartesianGrid=new Wl;const i=new Cr(14037811),r=new Cr(3397171),s=new Cr(3355606),o=new $b({color:i,dashSize:.5,gapSize:.1,scale:.01}),l=new $b({color:r,dashSize:.5,gapSize:.1,scale:.01}),d=new $b({color:s,dashSize:.5,gapSize:.1,scale:.01});let h=new Wl;for(let S=-t;S<=t;S+=.1*t){h=new Wl;let R=[];for(let le=-t;le<=t;le+=.1*t)R.push(new It(-t,le,S)),R.push(new It(t,le,S));let G=(new no).setFromPoints(R);const re=d;let se=new uc(G,re);se.computeLineDistances(),h.add(se),R=[];for(let le=-t;le<=t;le+=.1*t)R.push(new It(le,-t,S)),R.push(new It(le,t,S));G=(new no).setFromPoints(R),se=new uc(G,re),se.computeLineDistances(),h.add(se),this.cartesianGrid.add(h)}let f=new Wl;for(let S=-t;S<=t;S+=.1*t){f=new Wl;let R=[];for(let le=-t;le<=t;le+=.1*t)R.push(new It(S,le,-t)),R.push(new It(S,le,t));let G=(new no).setFromPoints(R);const re=o;let se=new uc(G,re);se.computeLineDistances(),f.add(se),R=[];for(let le=-t;le<=t;le+=.1*t)R.push(new It(S,-t,le)),R.push(new It(S,t,le));G=(new no).setFromPoints(R),se=new uc(G,re),se.computeLineDistances(),f.add(se),this.cartesianGrid.add(f)}let A=new Wl;for(let S=-t;S<=t;S+=.1*t){A=new Wl;let R=[];for(let le=-t;le<=t;le+=.1*t)R.push(new It(le,S,-t)),R.push(new It(le,S,t));let G=(new no).setFromPoints(R);const re=l;let se=new uc(G,re);se.computeLineDistances(),A.add(se),R=[];for(let le=-t;le<=t;le+=.1*t)R.push(new It(-t,S,le)),R.push(new It(t,S,le));G=(new no).setFromPoints(R),se=new uc(G,re),se.computeLineDistances(),A.add(se),this.cartesianGrid.add(A)}this.cartesianGrid.name="gridline",this.cartesianGrid.traverse(S=>S.name="gridline"),this.cartesianGrid.children.forEach(S=>S.visible=!1),this.scene.add(this.cartesianGrid)}}setCartesianGrid(t,i,r){this.createCartesianGrid(i);for(let d=0;d<=62;d+=1)this.cartesianGrid.children[d].visible=!1;typeof r>"u"?r=this.cartesianGridConfig:this.cartesianGridConfig=r;const s=[10,31,52],o=[r.zDistance,r.xDistance,r.yDistance],l=[r.showXY,r.showYZ,r.showZX];if(t)for(let d=0;d<3;d+=1)if(l[d]){for(let h=s[d];h>=s[d]-10*o[d]/i;h-=r.sparsity)this.cartesianGrid.children[h].visible=t;for(let h=s[d];h<=s[d]+10*o[d]/i;h+=r.sparsity)this.cartesianGrid.children[h].visible=t}}getCartesianGridConfig(){return this.cartesianGridConfig}eventDataDepthTest(t){const i=this.getEventData();null!==i&&i.traverse(r=>{r.material&&(r.renderOrder=t?0:999,r.material.depthTest=t)})}wireframeGeometries(t){this.getGeometries().traverse(r=>{r.material&&(r.material.wireframe=t,t?(r.material.transparent=!0,r.material.opacity=.1):(r.material.transparent=!1,r.material.opacity=1))})}wireframeObjects(t,i){t.traverse(r=>{r.material&&(r.material.wireframe=i)})}scaleJets(t){t<=0||this.scene.getObjectByName("Jets").traverse(r=>{if("Jet"===r.name){const s=r.scale.x;r.scale.setScalar(t),r.position.divideScalar(s).multiplyScalar(t)}})}scaleChildObjects(t,i,r){this.scene.getObjectByName(t).traverse(o=>{0===o.children.length&&(r?o.scale[r]=i:o.scale.setScalar(i))})}addLabelToObject(t,i,r,s,o){this.scene.getObjectByProperty("uuid",i).userData.label=t;const d=this.getObjectsGroup(n.LABELS_ID),h=this.scene.getObjectByName(r);h&&d.remove(h);const f=this.getText(t,new Cr("#a8a8a8"));f.position.fromArray(s.toArray()),f.name=r,d.add(f),o.removeEventListener("change",this.labelTextLookCallbacks[i]),this.labelTextLookCallbacks[i]=()=>{f.lookAt(o.object.position)},this.labelTextLookCallbacks[i](),o.addEventListener("change",this.labelTextLookCallbacks[i])}translateCartesianGrid(t){this.createCartesianGrid();const i=t.length(),r=t.normalize();this.cartesianGrid.translateOnAxis(r,i)}translateCartesianLabels(t){this.createCartesianLabels();const i=t.length(),r=t.normalize();this.cartesianLabels.translateOnAxis(r,i),this.axis.translateOnAxis(r,i),this.axisLabels.translateOnAxis(r,i)}createCartesianLabels(t=3e3){if(null==this.cartesianLabels){this.cartesianLabels=new Wl,this.cartesianLabels.name="XYZ Labels";const i=new Cr(14037811),r=new Cr(3397171),s=new Cr(3355606),o=new xd({color:i,side:2}),l=new xd({color:r,side:2}),d=new xd({color:s,side:2});for(let h=-t;h<=t;h+=.1*t){const f=this.getText((h/10).toString(),i);f.position.set(h,40,0),this.axesNumbers.push(f),this.cartesianLabels.add(f);const A=new yp(10,30,10);A.translate(h,0,0);const S=new ha(A,o);this.cartesianLabels.add(S)}for(let h=-t;h<=t;h+=.1*t){const f=this.getText((h/10).toString(),r);f.position.set(-40,h,0),this.axesNumbers.push(f),this.cartesianLabels.add(f);const A=new yp(30,10,10);A.translate(0,h,0);const S=new ha(A,l);this.cartesianLabels.add(S)}for(let h=-t;h<=t;h+=.1*t){const f=this.getText((h/10).toString(),s);f.position.set(-40,0,h),this.axesNumbers.push(f),this.cartesianLabels.add(f);const A=new yp(30,10,10);A.translate(0,0,h);const S=new ha(A,d);this.cartesianLabels.add(S)}this.cartesianLabels.traverse(h=>h.name="XYZ Labels"),this.scene.add(this.cartesianLabels),this.cartesianLabels.children.forEach(h=>h.visible=!1),this.setAxis(!1,3e3)}}alignText(t){null!=this.cartesianLabels&&this.axesNumbers.forEach(i=>{i.lookAt(t.position)}),null!=this.axisLabels&&this.axisLabels.children.forEach(i=>i.lookAt(t.position))}showLabels(t){this.createCartesianLabels(),this.setAxis(t,3e3),this.cartesianLabels.children.forEach(i=>i.visible=t)}setEtaPhiGrid(t,i=3e3){if(null==this.etaPhiGrid){this.etaPhiGrid=new Wl;let r=[];const s=i,o=new Cr(255);for(let Ee=-3;Ee<=3;Ee+=1){r.push(new It(0,0,0));const Ce=Ff.etaPhiToCartesian(s,Ee,Math.PI/2),We=this.getText("\u03b7="+Ee.toPrecision(2),o);We.position.set(Ce.x,Ce.y,Ce.z),We.rotateOnWorldAxis(new It(0,1,0),Math.PI/2),this.etaPhiGrid.add(We),r.push(Ce)}const l=(new no).setFromPoints(r),d=new $b({color:o,dashSize:2,gapSize:1,scale:.01}),h=new uc(l,d);h.computeLineDistances();const f=2*Math.PI/8,A=["-\u03c0","-3\u03c0/4","-\u03c0/2,","-\u03c0/4","0","\u03c0/4","\u03c0/2,","3\u03c0/4"];let S=0;const R=new Cr(16711680);r=[];const G=.9*s;for(let Ee=-Math.PI;EeEe.name="gridline"),this.scene.add(this.etaPhiGrid)}this.etaPhiGrid.visible=t}getObjectByName(t){return this.scene.getObjectByName(t)}}return n.EVENT_DATA_ID="EventData",n.GEOMETRIES_ID="Geometries",n.LABELS_ID="Labels",n})();class Nq extends no{constructor(){super(),this.type="TracksMesh",this.positions=[],this.previous=[],this.next=[],this.side=[],this.counter=[],this.track_id=[],this.colors=[],this.indices_array=[],this.next_track_id=0}addTrack(e,t){const i=this.next_track_id++,r=new Cr(t);this.previous.push(e[0].x,e[0].y,e[0].z),this.previous.push(e[0].x,e[0].y,e[0].z);for(let o=0;o0&&(this.next.push(l.x,l.y,l.z),this.next.push(l.x,l.y,l.z))}const s=e.length-1;return this.next.push(e[s].x,e[s].y,e[s].z),this.next.push(e[s].x,e[s].y,e[s].z),i}process(){this._attributes&&this._attributes.position.count===this.positions.length?(this._attributes.position.copyArray(new Float32Array(this.positions)),this._attributes.position.needsUpdate=!0,this._attributes.previous.copyArray(new Float32Array(this.previous)),this._attributes.previous.needsUpdate=!0,this._attributes.next.copyArray(new Float32Array(this.next)),this._attributes.next.needsUpdate=!0,this._attributes.side.copyArray(new Float32Array(this.side)),this._attributes.side.needsUpdate=!0,this._attributes.track_id.copyArray(new Int32Array(this.track_id)),this._attributes.track_id.needsUpdate=!0,this._attributes.color.copyArray(new Float32Array(this.colors)),this._attributes.color.needsUpdate=!0,this._attributes.counter.copyArray(new Float32Array(this.counter)),this._attributes.counter.needsUpdate=!0,this._attributes.index.copyArray(new Uint32Array(this.indices_array)),this._attributes.index.needsUpdate=!0):this._attributes={position:new No(new Float32Array(this.positions),3),previous:new No(new Float32Array(this.previous),3),next:new No(new Float32Array(this.next),3),side:new No(new Float32Array(this.side),1),track_id:new No(new Int32Array(this.track_id),1),color:new No(new Float32Array(this.colors),3),counter:new No(new Float32Array(this.counter),1),index:new No(new Uint32Array(this.indices_array),1)},this.setAttribute("position",this._attributes.position),this.setAttribute("previous",this._attributes.previous),this.setAttribute("next",this._attributes.next),this.setAttribute("side",this._attributes.side),this.setAttribute("track_id",this._attributes.track_id),this.setAttribute("color",this._attributes.color),this.setAttribute("counter",this._attributes.counter),this.setIndex(this._attributes.index),this.computeBoundingSphere(),this.computeBoundingBox()}}xa.tracks_vert=["attribute vec3 previous;","attribute vec3 next;","attribute int track_id;","attribute float side;","attribute vec3 color;","attribute float counter;","varying vec3 v_color;","varying float v_counter;","flat varying int v_track_id;","uniform vec2 resolution;","uniform float lineWidth;","void main() {"," vec2 aspect = vec2(resolution.x / resolution.y, 1.0);",""," v_color = color;"," v_counter = counter;"," v_track_id = track_id;",""," mat4 m = projectionMatrix * modelViewMatrix;"," vec4 finalPosition = m * vec4(position, 1.0);"," vec4 prevPos = m * vec4(previous, 1.0);"," vec4 nextPos = m * vec4(next, 1.0);",""," vec2 curP = finalPosition.xy / finalPosition.w * aspect;"," vec2 prevP = prevPos.xy / prevPos.w * aspect;"," vec2 nextP = nextPos.xy / nextPos.w * aspect;",""," vec2 dir;"," if (curP == prevP) dir = normalize(nextP - curP);"," else if (curP == nextP) dir = normalize(curP - prevP);"," else dir = normalize(curP - prevP);",""," vec2 normal = vec2(-dir.y, dir.x);"," normal.xy *= .5 * lineWidth;"," normal.x /= aspect.x;"," normal.xy *= finalPosition.w * 0.001;"," finalPosition.xy += normal.xy * side;"," gl_Position = finalPosition;","}"].join("\n"),xa.tracks_frag=["uniform float progress;","varying vec3 v_color;","varying float v_counter;","flat varying int v_track_id;","void main() {"," if (v_counter > progress) discard;"," gl_FragColor = vec4(v_color, 1.0);","}"].join("\n");class TAe extends Dh{constructor(e){super({uniforms:Object.assign({},{lineWidth:{value:1},resolution:{value:new Qi(1,1)},progress:{value:1}}),vertexShader:xa.tracks_vert,fragmentShader:xa.tracks_vert}),this.isTracksMaterial=!0,this.type="TracksMaterial",Object.defineProperties(this,{lineWidth:{enumerable:!0,get:function(){return this.uniforms.lineWidth.value},set:function(t){this.uniforms.lineWidth.value=t}},resolution:{enumerable:!0,get:function(){return this.uniforms.resolution.value},set:function(t){this.uniforms.resolution.value.copy(t)}},progress:{enumerable:!0,get:function(){return this.uniforms.progress.value},set:function(t){this.uniforms.progress.value=t}}}),this.setValues(e)}}class DAe{constructor(e,t,i){this.scene=e,this.activeCamera=t,this.rendererManager=i,this.animateEvent=this.animateEvent.bind(this),this.animateEventWithClipping=this.animateEventWithClipping.bind(this)}getCameraTween(e,t=1e3,i){const r=new If(this.activeCamera.position).to({x:e[0],y:e[1],z:e[2]},t);return i&&r.easing(i),r}animateThroughEvent(e,t,i){const r=this.getCameraTween(e,1e3,cg.Cubic.Out),o=this.getCameraTween([0,0,e[2]],t),f=3*Math.PI/24,A=[];for(let Ce=1;Ce<=24;Ce++)A.push([500*Math.sin(f*Ce),0,500*Math.cos(f*Ce)]);const S=this.getCameraTween([0,0,500],t,cg.Cubic.Out);let R=S;const re=4*t/24;for(const Ce of A){const We=this.getCameraTween(Ce,re);R.chain(We),R=We}const le=this.getCameraTween([0,0,-e[2]],t,cg.Cubic.In),Ee=this.getCameraTween(e,t,cg.Cubic.Out);Ee.onComplete(()=>i?.()),Ee.delay(500),r.chain(o),o.chain(S),R.chain(le),le.chain(Ee),r.start()}animateEvent(e,t,i){const r=.25*e;e*=.75;const s=this.scene.getObjectByName(el.EVENT_DATA_ID),o=new jh(new It,0),l=[],d=[];s.traverse(S=>{var R,G,re;if(S.geometry)if("Track"===S.name||"LineHit"===S.name){let se=null===(re=null===(G=null===(R=S.geometry)||void 0===R?void 0:R.attributes)||void 0===G?void 0:G.position)||void 0===re?void 0:re.count;if(se)if(S.geometry instanceof jb&&(se*=6),S.geometry instanceof Nq){S.material.progress=0;const le=new If(S.material).to({progress:1},e);le.onComplete(()=>{S.material.progress=1}),d.push(le)}else if(S.geometry instanceof no){const le=S.geometry.drawRange.count;S.geometry.setDrawRange(0,0);const Ee=new If(S.geometry.drawRange).to({count:se},e);Ee.onComplete(()=>{S.geometry.drawRange.count=le}),d.push(Ee)}}else if("Jet"===S.name){const se=new If({x:.01,y:.01,z:.01}).to({x:S.scale.x,y:S.scale.y,z:S.scale.z},e);se.onUpdate(le=>{const Ee=S.scale.x;S.scale.setScalar(le.x),S.position.divideScalar(Ee).multiplyScalar(le.x)}),d.push(se)}else{let le=S.position.equals(new It(0,0,0))?S.geometry.boundingSphere.center:S.position;"Hit"===S.name?(le=Array.from(S.geometry.attributes.position.array),S.geometry.deleteAttribute("position"),S.geometry.computeBoundingSphere()):S.visible=!1,l.push({eventObject:S,position:le})}});const h=new If(o).to({radius:3e3},e),f=S=>{l.forEach(R=>{if("Hit"===R.eventObject.name){const G=R.eventObject.geometry,se=this.getHitsPositions(R.position).filter(le=>S.containsPoint((new It).fromArray(le)));se.length>0&&(G.setAttribute("position",new No(new Float32Array([].concat(...se)),3)),G.computeBoundingSphere())}else S.containsPoint(R.position)&&(R.eventObject.visible=!0)})};h.onUpdate(f);const A=new If(o).to({radius:1e4},r);A.onUpdate(f),h.chain(A),d.push(h),d[0].onStart(()=>i?.());for(const S of d)S.easing(cg.Quartic.Out).start();A.onComplete(()=>{f(new jh(new It,1/0)),t?.()})}animateEventWithClipping(e,t,i,r=11e3){const s=this.scene.getObjectByName(el.EVENT_DATA_ID),o=new qy(1,8,8),l=[],d=o.attributes.position,h=new It;for(let S=0;S{S.geometry&&S.material&&(S.material.clippingPlanes=l)});const A=[];for(const S of l){S.constant=0;const R=new If(S).to({constant:r},e);A.push(R)}A[0].onStart(()=>i?.());for(const S of A)S.start();A[A.length-1].onComplete(()=>{f||(this.rendererManager.getMainRenderer().localClippingEnabled=f),s.traverse(S=>{S.geometry&&S.material&&(S.material.clippingPlanes=null)}),t?.()})}collideParticles(e,t=10,i=5e3,r=new Cr(16777215),s){const o=new qy(t,32,32),l=new xd({color:r,transparent:!0,opacity:0}),d=new ha(o,l),h=d.clone();d.position.setZ(i),h.position.setZ(-i);const f=[d,h];this.scene.add(...f);const A=[];for(const S of f){new If(S.material).to({opacity:1},300).start();const R=new If(S.position).to({z:0},e).start();A.push(R)}A[0].onComplete(()=>{this.scene.remove(...f),s?.()})}animateWithCollision(e,t,i){var r,s;const o=this.scene.getObjectByName(el.EVENT_DATA_ID),l=o.getObjectByName("Track");let d;d=l instanceof Wl?null===(s=null===(r=l.children[0])||void 0===r?void 0:r.material)||void 0===s?void 0:s.color:l?.material.color,o&&(o.visible=!1),this.collideParticles(1500,30,5e3,d,()=>{e(t,i,()=>{o&&(o.visible=!0)})})}animateEventWithCollision(e,t){this.animateWithCollision(this.animateEvent,e,t)}animateClippingWithCollision(e,t){this.animateWithCollision(this.animateEventWithClipping,e,t)}getHitsPositions(e){const t=[];for(let i=0;i{this.animateEventWithCollision(o)},s));const l=this.getCameraTween(r[0].position,null!==(i=r[0].duration)&&void 0!==i?i:2e3,r[0].easing);let d=l;r.slice(1).forEach(({position:h,duration:f,easing:A})=>{const S=this.getCameraTween(h,f??2e3,A);d.chain(S),d=S}),d.onComplete(t),l.start()}}const Uq={name:"CopyShader",uniforms:{tDiffuse:{value:null},opacity:{value:1}},vertexShader:"\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvUv = uv;\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n\t\t}",fragmentShader:"\n\n\t\tuniform float opacity;\n\n\t\tuniform sampler2D tDiffuse;\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvec4 texel = texture2D( tDiffuse, vUv );\n\t\t\tgl_FragColor = opacity * texel;\n\n\n\t\t}"};class fE{constructor(){this.isPass=!0,this.enabled=!0,this.needsSwap=!0,this.clear=!1,this.renderToScreen=!1}setSize(){}render(){console.error("THREE.Pass: .render() must be implemented in derived pass.")}dispose(){}}const IAe=new Q2(-1,1,1,-1,0,1),PAe=new class BAe extends no{constructor(){super(),this.setAttribute("position",new Ws([-1,3,0,-1,-1,0,3,-1,0],3)),this.setAttribute("uv",new Ws([0,2,0,0,2,0],2))}};class zq{constructor(e){this._mesh=new ha(PAe,e)}dispose(){this._mesh.geometry.dispose()}render(e){e.render(this._mesh,IAe)}get material(){return this._mesh.material}set material(e){this._mesh.material=e}}class RAe extends fE{constructor(e,t){super(),this.textureID=void 0!==t?t:"tDiffuse",e instanceof Dh?(this.uniforms=e.uniforms,this.material=e):e&&(this.uniforms=x5.clone(e.uniforms),this.material=new Dh({name:void 0!==e.name?e.name:"unspecified",defines:Object.assign({},e.defines),uniforms:this.uniforms,vertexShader:e.vertexShader,fragmentShader:e.fragmentShader})),this.fsQuad=new zq(this.material)}render(e,t,i){this.uniforms[this.textureID]&&(this.uniforms[this.textureID].value=i.texture),this.fsQuad.material=this.material,this.renderToScreen?(e.setRenderTarget(null),this.fsQuad.render(e)):(e.setRenderTarget(t),this.clear&&e.clear(e.autoClearColor,e.autoClearDepth,e.autoClearStencil),this.fsQuad.render(e))}dispose(){this.material.dispose(),this.fsQuad.dispose()}}class Hq extends fE{constructor(e,t){super(),this.scene=e,this.camera=t,this.clear=!0,this.needsSwap=!1,this.inverse=!1}render(e,t,i){const r=e.getContext(),s=e.state;let o,l;s.buffers.color.setMask(!1),s.buffers.depth.setMask(!1),s.buffers.color.setLocked(!0),s.buffers.depth.setLocked(!0),this.inverse?(o=0,l=1):(o=1,l=0),s.buffers.stencil.setTest(!0),s.buffers.stencil.setOp(r.REPLACE,r.REPLACE,r.REPLACE),s.buffers.stencil.setFunc(r.ALWAYS,o,4294967295),s.buffers.stencil.setClear(l),s.buffers.stencil.setLocked(!0),e.setRenderTarget(i),this.clear&&e.clear(),e.render(this.scene,this.camera),e.setRenderTarget(t),this.clear&&e.clear(),e.render(this.scene,this.camera),s.buffers.color.setLocked(!1),s.buffers.depth.setLocked(!1),s.buffers.color.setMask(!0),s.buffers.depth.setMask(!0),s.buffers.stencil.setLocked(!1),s.buffers.stencil.setFunc(r.EQUAL,1,4294967295),s.buffers.stencil.setOp(r.KEEP,r.KEEP,r.KEEP),s.buffers.stencil.setLocked(!0)}}class kAe extends fE{constructor(){super(),this.needsSwap=!1}render(e){e.state.buffers.stencil.setLocked(!1),e.state.buffers.stencil.setTest(!1)}}class FAe{constructor(e,t){if(this.renderer=e,this._pixelRatio=e.getPixelRatio(),void 0===t){const i=e.getSize(new Qi);this._width=i.width,this._height=i.height,(t=new Wh(this._width*this._pixelRatio,this._height*this._pixelRatio,{type:lA})).texture.name="EffectComposer.rt1"}else this._width=t.width,this._height=t.height;this.renderTarget1=t,this.renderTarget2=t.clone(),this.renderTarget2.texture.name="EffectComposer.rt2",this.writeBuffer=this.renderTarget1,this.readBuffer=this.renderTarget2,this.renderToScreen=!0,this.passes=[],this.copyPass=new RAe(Uq),this.copyPass.material.blending=0,this.clock=new XG}swapBuffers(){const e=this.readBuffer;this.readBuffer=this.writeBuffer,this.writeBuffer=e}addPass(e){this.passes.push(e),e.setSize(this._width*this._pixelRatio,this._height*this._pixelRatio)}insertPass(e,t){this.passes.splice(t,0,e),e.setSize(this._width*this._pixelRatio,this._height*this._pixelRatio)}removePass(e){const t=this.passes.indexOf(e);-1!==t&&this.passes.splice(t,1)}isLastEnabledPass(e){for(let t=e+1;t0){e.getClearColor(this._oldClearColor),this.oldClearAlpha=e.getClearAlpha();const o=e.autoClear;e.autoClear=!1,s&&e.state.buffers.stencil.setTest(!1),e.setClearColor(16777215,1),this.changeVisibilityOfSelectedObjects(!1);const l=this.renderScene.background;if(this.renderScene.background=null,this.renderScene.overrideMaterial=this.depthMaterial,e.setRenderTarget(this.renderTargetDepthBuffer),e.clear(),e.render(this.renderScene,this.renderCamera),this.changeVisibilityOfSelectedObjects(!0),this._visibilityCache.clear(),this.updateTextureMatrix(),this.changeVisibilityOfNonSelectedObjects(!1),this.renderScene.overrideMaterial=this.prepareMaskMaterial,this.prepareMaskMaterial.uniforms.cameraNearFar.value.set(this.renderCamera.near,this.renderCamera.far),this.prepareMaskMaterial.uniforms.depthTexture.value=this.renderTargetDepthBuffer.texture,this.prepareMaskMaterial.uniforms.textureMatrix.value=this.textureMatrix,e.setRenderTarget(this.renderTargetMaskBuffer),e.clear(),e.render(this.renderScene,this.renderCamera),this.renderScene.overrideMaterial=null,this.changeVisibilityOfNonSelectedObjects(!0),this._visibilityCache.clear(),this.renderScene.background=l,this.fsQuad.material=this.materialCopy,this.copyUniforms.tDiffuse.value=this.renderTargetMaskBuffer.texture,e.setRenderTarget(this.renderTargetMaskDownSampleBuffer),e.clear(),this.fsQuad.render(e),this.tempPulseColor1.copy(this.visibleEdgeColor),this.tempPulseColor2.copy(this.hiddenEdgeColor),this.pulsePeriod>0){const d=.625+.75*Math.cos(.01*performance.now()/this.pulsePeriod)/2;this.tempPulseColor1.multiplyScalar(d),this.tempPulseColor2.multiplyScalar(d)}this.fsQuad.material=this.edgeDetectionMaterial,this.edgeDetectionMaterial.uniforms.maskTexture.value=this.renderTargetMaskDownSampleBuffer.texture,this.edgeDetectionMaterial.uniforms.texSize.value.set(this.renderTargetMaskDownSampleBuffer.width,this.renderTargetMaskDownSampleBuffer.height),this.edgeDetectionMaterial.uniforms.visibleEdgeColor.value=this.tempPulseColor1,this.edgeDetectionMaterial.uniforms.hiddenEdgeColor.value=this.tempPulseColor2,e.setRenderTarget(this.renderTargetEdgeBuffer1),e.clear(),this.fsQuad.render(e),this.fsQuad.material=this.separableBlurMaterial1,this.separableBlurMaterial1.uniforms.colorTexture.value=this.renderTargetEdgeBuffer1.texture,this.separableBlurMaterial1.uniforms.direction.value=Yy.BlurDirectionX,this.separableBlurMaterial1.uniforms.kernelRadius.value=this.edgeThickness,e.setRenderTarget(this.renderTargetBlurBuffer1),e.clear(),this.fsQuad.render(e),this.separableBlurMaterial1.uniforms.colorTexture.value=this.renderTargetBlurBuffer1.texture,this.separableBlurMaterial1.uniforms.direction.value=Yy.BlurDirectionY,e.setRenderTarget(this.renderTargetEdgeBuffer1),e.clear(),this.fsQuad.render(e),this.fsQuad.material=this.separableBlurMaterial2,this.separableBlurMaterial2.uniforms.colorTexture.value=this.renderTargetEdgeBuffer1.texture,this.separableBlurMaterial2.uniforms.direction.value=Yy.BlurDirectionX,e.setRenderTarget(this.renderTargetBlurBuffer2),e.clear(),this.fsQuad.render(e),this.separableBlurMaterial2.uniforms.colorTexture.value=this.renderTargetBlurBuffer2.texture,this.separableBlurMaterial2.uniforms.direction.value=Yy.BlurDirectionY,e.setRenderTarget(this.renderTargetEdgeBuffer2),e.clear(),this.fsQuad.render(e),this.fsQuad.material=this.overlayMaterial,this.overlayMaterial.uniforms.maskTexture.value=this.renderTargetMaskBuffer.texture,this.overlayMaterial.uniforms.edgeTexture1.value=this.renderTargetEdgeBuffer1.texture,this.overlayMaterial.uniforms.edgeTexture2.value=this.renderTargetEdgeBuffer2.texture,this.overlayMaterial.uniforms.patternTexture.value=this.patternTexture,this.overlayMaterial.uniforms.edgeStrength.value=this.edgeStrength,this.overlayMaterial.uniforms.edgeGlow.value=this.edgeGlow,this.overlayMaterial.uniforms.usePatternTexture.value=this.usePatternTexture,s&&e.state.buffers.stencil.setTest(!0),e.setRenderTarget(i),this.fsQuad.render(e),e.setClearColor(this._oldClearColor,this.oldClearAlpha),e.autoClear=o}this.renderToScreen&&(this.fsQuad.material=this.materialCopy,this.copyUniforms.tDiffuse.value=i.texture,e.setRenderTarget(null),this.fsQuad.render(e))}getPrepareMaskMaterial(){return new Dh({uniforms:{depthTexture:{value:null},cameraNearFar:{value:new Qi(.5,.5)},textureMatrix:{value:null}},vertexShader:"#include \n\t\t\t\t#include \n\n\t\t\t\tvarying vec4 projTexCoord;\n\t\t\t\tvarying vec4 vPosition;\n\t\t\t\tuniform mat4 textureMatrix;\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\t#include \n\t\t\t\t\t#include \n\t\t\t\t\t#include \n\t\t\t\t\t#include \n\t\t\t\t\t#include \n\n\t\t\t\t\tvPosition = mvPosition;\n\n\t\t\t\t\tvec4 worldPosition = vec4( transformed, 1.0 );\n\n\t\t\t\t\t#ifdef USE_INSTANCING\n\n\t\t\t\t\t\tworldPosition = instanceMatrix * worldPosition;\n\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\tworldPosition = modelMatrix * worldPosition;\n\n\t\t\t\t\tprojTexCoord = textureMatrix * worldPosition;\n\n\t\t\t\t}",fragmentShader:"#include \n\t\t\t\tvarying vec4 vPosition;\n\t\t\t\tvarying vec4 projTexCoord;\n\t\t\t\tuniform sampler2D depthTexture;\n\t\t\t\tuniform vec2 cameraNearFar;\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tfloat depth = unpackRGBAToDepth(texture2DProj( depthTexture, projTexCoord ));\n\t\t\t\t\tfloat viewZ = - DEPTH_TO_VIEW_Z( depth, cameraNearFar.x, cameraNearFar.y );\n\t\t\t\t\tfloat depthTest = (-vPosition.z > viewZ) ? 1.0 : 0.0;\n\t\t\t\t\tgl_FragColor = vec4(0.0, depthTest, 1.0, 1.0);\n\n\t\t\t\t}"})}getEdgeDetectionMaterial(){return new Dh({uniforms:{maskTexture:{value:null},texSize:{value:new Qi(.5,.5)},visibleEdgeColor:{value:new It(1,1,1)},hiddenEdgeColor:{value:new It(1,1,1)}},vertexShader:"varying vec2 vUv;\n\n\t\t\t\tvoid main() {\n\t\t\t\t\tvUv = uv;\n\t\t\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\t\t\t\t}",fragmentShader:"varying vec2 vUv;\n\n\t\t\t\tuniform sampler2D maskTexture;\n\t\t\t\tuniform vec2 texSize;\n\t\t\t\tuniform vec3 visibleEdgeColor;\n\t\t\t\tuniform vec3 hiddenEdgeColor;\n\n\t\t\t\tvoid main() {\n\t\t\t\t\tvec2 invSize = 1.0 / texSize;\n\t\t\t\t\tvec4 uvOffset = vec4(1.0, 0.0, 0.0, 1.0) * vec4(invSize, invSize);\n\t\t\t\t\tvec4 c1 = texture2D( maskTexture, vUv + uvOffset.xy);\n\t\t\t\t\tvec4 c2 = texture2D( maskTexture, vUv - uvOffset.xy);\n\t\t\t\t\tvec4 c3 = texture2D( maskTexture, vUv + uvOffset.yw);\n\t\t\t\t\tvec4 c4 = texture2D( maskTexture, vUv - uvOffset.yw);\n\t\t\t\t\tfloat diff1 = (c1.r - c2.r)*0.5;\n\t\t\t\t\tfloat diff2 = (c3.r - c4.r)*0.5;\n\t\t\t\t\tfloat d = length( vec2(diff1, diff2) );\n\t\t\t\t\tfloat a1 = min(c1.g, c2.g);\n\t\t\t\t\tfloat a2 = min(c3.g, c4.g);\n\t\t\t\t\tfloat visibilityFactor = min(a1, a2);\n\t\t\t\t\tvec3 edgeColor = 1.0 - visibilityFactor > 0.001 ? visibleEdgeColor : hiddenEdgeColor;\n\t\t\t\t\tgl_FragColor = vec4(edgeColor, 1.0) * vec4(d);\n\t\t\t\t}"})}getSeperableBlurMaterial(e){return new Dh({defines:{MAX_RADIUS:e},uniforms:{colorTexture:{value:null},texSize:{value:new Qi(.5,.5)},direction:{value:new Qi(.5,.5)},kernelRadius:{value:1}},vertexShader:"varying vec2 vUv;\n\n\t\t\t\tvoid main() {\n\t\t\t\t\tvUv = uv;\n\t\t\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\t\t\t\t}",fragmentShader:"#include \n\t\t\t\tvarying vec2 vUv;\n\t\t\t\tuniform sampler2D colorTexture;\n\t\t\t\tuniform vec2 texSize;\n\t\t\t\tuniform vec2 direction;\n\t\t\t\tuniform float kernelRadius;\n\n\t\t\t\tfloat gaussianPdf(in float x, in float sigma) {\n\t\t\t\t\treturn 0.39894 * exp( -0.5 * x * x/( sigma * sigma))/sigma;\n\t\t\t\t}\n\n\t\t\t\tvoid main() {\n\t\t\t\t\tvec2 invSize = 1.0 / texSize;\n\t\t\t\t\tfloat sigma = kernelRadius/2.0;\n\t\t\t\t\tfloat weightSum = gaussianPdf(0.0, sigma);\n\t\t\t\t\tvec4 diffuseSum = texture2D( colorTexture, vUv) * weightSum;\n\t\t\t\t\tvec2 delta = direction * invSize * kernelRadius/float(MAX_RADIUS);\n\t\t\t\t\tvec2 uvOffset = delta;\n\t\t\t\t\tfor( int i = 1; i <= MAX_RADIUS; i ++ ) {\n\t\t\t\t\t\tfloat x = kernelRadius * float(i) / float(MAX_RADIUS);\n\t\t\t\t\t\tfloat w = gaussianPdf(x, sigma);\n\t\t\t\t\t\tvec4 sample1 = texture2D( colorTexture, vUv + uvOffset);\n\t\t\t\t\t\tvec4 sample2 = texture2D( colorTexture, vUv - uvOffset);\n\t\t\t\t\t\tdiffuseSum += ((sample1 + sample2) * w);\n\t\t\t\t\t\tweightSum += (2.0 * w);\n\t\t\t\t\t\tuvOffset += delta;\n\t\t\t\t\t}\n\t\t\t\t\tgl_FragColor = diffuseSum/weightSum;\n\t\t\t\t}"})}getOverlayMaterial(){return new Dh({uniforms:{maskTexture:{value:null},edgeTexture1:{value:null},edgeTexture2:{value:null},patternTexture:{value:null},edgeStrength:{value:1},edgeGlow:{value:1},usePatternTexture:{value:0}},vertexShader:"varying vec2 vUv;\n\n\t\t\t\tvoid main() {\n\t\t\t\t\tvUv = uv;\n\t\t\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\t\t\t\t}",fragmentShader:"varying vec2 vUv;\n\n\t\t\t\tuniform sampler2D maskTexture;\n\t\t\t\tuniform sampler2D edgeTexture1;\n\t\t\t\tuniform sampler2D edgeTexture2;\n\t\t\t\tuniform sampler2D patternTexture;\n\t\t\t\tuniform float edgeStrength;\n\t\t\t\tuniform float edgeGlow;\n\t\t\t\tuniform bool usePatternTexture;\n\n\t\t\t\tvoid main() {\n\t\t\t\t\tvec4 edgeValue1 = texture2D(edgeTexture1, vUv);\n\t\t\t\t\tvec4 edgeValue2 = texture2D(edgeTexture2, vUv);\n\t\t\t\t\tvec4 maskColor = texture2D(maskTexture, vUv);\n\t\t\t\t\tvec4 patternColor = texture2D(patternTexture, 6.0 * vUv);\n\t\t\t\t\tfloat visibilityFactor = 1.0 - maskColor.g > 0.0 ? 1.0 : 0.5;\n\t\t\t\t\tvec4 edgeValue = edgeValue1 + edgeValue2 * edgeGlow;\n\t\t\t\t\tvec4 finalColor = edgeStrength * maskColor.r * edgeValue;\n\t\t\t\t\tif(usePatternTexture)\n\t\t\t\t\t\tfinalColor += + visibilityFactor * (1.0 - maskColor.r) * (1.0 - patternColor.r);\n\t\t\t\t\tgl_FragColor = finalColor;\n\t\t\t\t}",blending:2,depthTest:!1,depthWrite:!1,transparent:!0})}}Yy.BlurDirectionX=new Qi(1,0),Yy.BlurDirectionY=new Qi(0,1);class LAe{constructor(e,t,i){this.antialiasing=!0,this.composer=new FAe(i),this.camera=e,this.scene=t,this.defaultRenderPass=new OAe(this.scene,this.camera),this.composer.addPass(this.defaultRenderPass),this.render=this.antialiasing?this.antialiasRender:this.effectsRender}effectsRender(e,t){this.composer&&(this.defaultRenderPass.camera=t,this.defaultRenderPass.scene=e,this.composer.render())}antialiasRender(e,t){this.composer.renderer.render(e,t)}addOutlinePassForSelection(){const e=new Yy(new Qi(window.innerWidth,window.innerHeight),this.scene,this.camera);return e.overlayMaterial.blending=1,e.visibleEdgeColor.set(16777062),e.visibleEdgeColor.set(14635824),this.composer.addPass(e),e}removePass(e){const t=this.composer.passes.indexOf(e);this.composer.passes.splice(t,1)}setAntialiasing(e){this.antialiasing=e,this.render=this.antialiasing?this.antialiasRender:this.effectsRender}}class fA{constructor(){return this.clippingEnabled=new pC(!1),this.startClippingAngle=new pC(0),this.openingClippingAngle=new pC(0),this.eventMetadata={runNumber:"000",eventNumber:"000"},void 0===fA.instance&&(fA.instance=this),fA.instance}static getInstance(){return fA.instance}setPhoenixMenuRoot(e){this.phoenixMenuRoot=e,this.phoenixMenuRoot&&this.phoenixMenuRoot.addConfig("button",{label:"Save state",onClick:()=>{this.saveStateAsJSON()}}).addConfig("button",{label:"Load state",onClick:()=>{wq(t=>{this.loadStateFromJSON(JSON.parse(t))})}})}saveStateAsJSON(){const e={phoenixMenu:this.phoenixMenuRoot.getNodeState(),eventDisplay:{cameraPosition:this.activeCamera.position.toArray(),startClippingAngle:this.clippingEnabled.value?this.startClippingAngle.value:null,openingClippingAngle:this.clippingEnabled.value?this.openingClippingAngle.value:null}};l4(JSON.stringify(e),`run${this.eventMetadata.runNumber}_evt${this.eventMetadata.eventNumber}.json`)}loadStateFromJSON(e){var t,i,r;const s="string"==typeof e?JSON.parse(e):e;if(s.phoenixMenu&&this.phoenixMenuRoot&&(this.phoenixMenuRoot.loadStateFromJSON(s.phoenixMenu),this.phoenixMenuRoot.configActive=!1),s.eventDisplay){this.activeCamera.position.fromArray(null===(t=s.eventDisplay)||void 0===t?void 0:t.cameraPosition);const o=null===(i=s.eventDisplay)||void 0===i?void 0:i.startClippingAngle,l=null===(r=s.eventDisplay)||void 0===r?void 0:r.openingClippingAngle;(o||l)&&(this.setClippingEnabled(!0),this.eventDisplay.getUIManager().setClipping(!0),o&&this.eventDisplay.getUIManager().rotateStartAngleClipping(s.eventDisplay.startClippingAngle),l&&this.eventDisplay.getUIManager().rotateOpeningAngleClipping(s.eventDisplay.openingClippingAngle))}}setClippingEnabled(e){this.clippingEnabled.update(e)}setStartClippingAngle(e){this.startClippingAngle.update(e)}getStartClippingAngle(){return this.startClippingAngle.value}setOpeningClippingAngle(e){this.openingClippingAngle.update(e)}getOpeningClippingAngle(){return this.openingClippingAngle.value}setCamera(e){this.activeCamera=e}setEventDisplay(e){this.eventDisplay=e}}class sx{constructor(){return this.toLoad=[],this.loaded=[],this.onLoadCallbacks=[],this.onProgressCallbacks=[],this.progressItems={},void 0===sx.instance&&(sx.instance=this),sx.instance}addLoadableItem(e=""){this.toLoad.push(e),this.progressItems[e]=0}itemLoaded(e=""){this.loaded.push(e),this.onProgress(e,100),this.toLoad.length===this.loaded.length&&this.toLoad.sort().join(",")===this.loaded.sort().join(",")&&(this.onLoadCallbacks.forEach(t=>t()),this.reset())}onProgress(e,t){this.progressItems[e]=t;const s=Object.values(this.progressItems).reduce((o,l)=>o+l,0)/Object.keys(this.progressItems).length;for(const o of this.onProgressCallbacks)o(s)}addLoadListener(e){this.onLoadCallbacks.push(e)}addLoadListenerWithCheck(e){this.toLoad.length>0&&this.toLoad.length!==this.loaded.length?this.onLoadCallbacks.push(e):e()}addProgressListener(e){this.onProgressCallbacks.push(e)}reset(){this.toLoad=[],this.loaded=[],this.onLoadCallbacks=[],this.onProgressCallbacks=[],this.progressItems={}}}class NAe{constructor(e){this.sceneManager=e}colorObjectsByProperty(e,t,i){this.sceneManager.getScene().getObjectByName(t).traverse(s=>{var o;null!==(o=s.material)&&void 0!==o&&o.color&&i(s.userData)&&s.material.color.set(e)})}collectionColor(e,t){const i=this.sceneManager.getScene().getObjectByName(el.EVENT_DATA_ID).getObjectByName(e);for(const r of Object.values(i.children))r.traverse(s=>{var o,l;null===(l=null===(o=s.material)||void 0===o?void 0:o.color)||void 0===l||l.set(t)})}collectionColorRandom(e){const t=this.sceneManager.getScene().getObjectByName(el.EVENT_DATA_ID).getObjectByName(e);for(const i of Object.values(t.children))i.traverse(r=>{var s,o;null===(o=null===(s=r.material)||void 0===s?void 0:s.color)||void 0===o||o.set(16777215*Math.random())})}colorTracksByVertex(e){const t=this.sceneManager.getScene();t.getObjectByName("Vertices").traverse(r=>{const{linkedTrackCollection:s,linkedTracks:o}=r.userData;if("Vertex"===r.name&&s===e&&o){const l=r.material.color,d=t.getObjectByName(s);o.forEach(h=>{d.children[h].traverse(f=>{var A,S;null===(S=null===(A=f?.material)||void 0===A?void 0:A.color)||void 0===S||S.set(l)})})}})}}var mm=function(n){return n.VR="VR",n.AR="AR",n}(mm||{});class Vq{constructor(e){this.sessionType=e,this.xrActive=!1,this.currentXRSession=null}setXRSession(e,t,i){var r;this.renderer=e,this.onSessionEnded=i;const s=navigator?.xr,o=this.sessionType===mm.VR?"vr":"ar";s?.requestSession(`immersive-${o}`,null===(r=this.sessionInit)||void 0===r?void 0:r.call(this)).then(l=>{this.onXRSessionStarted.bind(this)(l),t?.()}).catch(l=>{console.error(`${o.toUpperCase()} Error:`,l)})}onXRSessionStarted(e){return function(n,e,t,i){return new(t||(t=Promise))(function(s,o){function l(f){try{h(i.next(f))}catch(A){o(A)}}function d(f){try{h(i.throw(f))}catch(A){o(A)}}function h(f){f.done?s(f.value):function r(s){return s instanceof t?s:new t(function(o){o(s)})}(f.value).then(l,d)}h((i=i.apply(n,e||[])).next())})}(this,void 0,void 0,function*(){this.xrActive=!0,e.addEventListener("end",this.onXRSessionEnded.bind(this)),yield this.renderer.xr.setSession(e),this.currentXRSession=e})}onXRSessionEnded(){var e;this.xrActive=!1,this.currentXRSession.removeEventListener("end",this.onXRSessionEnded),this.currentXRSession=null,this.cameraGroup=void 0,null===(e=this.onSessionEnded)||void 0===e||e.call(this)}endXRSession(){var e;null===(e=this.currentXRSession)||void 0===e||e.end()}getCameraGroup(e){if(this.cameraGroup||(this.cameraGroup=new Wl),e&&this.xrActive){this.xrCamera=this.renderer.xr.getCamera().copy(new WV([e.clone()])),this.xrCamera.name="XR_CAMERA";const t=this.sessionType===mm.VR?this.xrCamera.position:new It(0,0,.1);this.cameraGroup.position.copy(t),this.cameraGroup.add(this.xrCamera)}return this.cameraGroup}getXRCamera(){return this.xrCamera}}const Cd={Handedness:Object.freeze({NONE:"none",LEFT:"left",RIGHT:"right"}),ComponentState:Object.freeze({DEFAULT:"default",TOUCHED:"touched",PRESSED:"pressed"}),ComponentProperty:Object.freeze({BUTTON:"button",X_AXIS:"xAxis",Y_AXIS:"yAxis",STATE:"state"}),ComponentType:Object.freeze({TRIGGER:"trigger",SQUEEZE:"squeeze",TOUCHPAD:"touchpad",THUMBSTICK:"thumbstick",BUTTON:"button"}),ButtonTouchThreshold:.05,AxisTouchThreshold:.1,VisualResponseProperty:Object.freeze({TRANSFORM:"transform",VISIBILITY:"visibility"})};function Gq(n){return NF.apply(this,arguments)}function NF(){return(NF=(0,Te.A)(function*(n){const e=yield fetch(n);if(e.ok)return e.json();throw new Error(e.statusText)})).apply(this,arguments)}function UF(){return(UF=(0,Te.A)(function*(n){if(!n)throw new Error("No basePath supplied");return yield Gq(`${n}/profilesList.json`)})).apply(this,arguments)}function zF(){return zF=(0,Te.A)(function*(n,e,t=null,i=!0){if(!n)throw new Error("No xrInputSource supplied");if(!e)throw new Error("No basePath supplied");const r=yield function zAe(n){return UF.apply(this,arguments)}(e);let s;if(n.profiles.some(d=>{const h=r[d];return h&&(s={profileId:d,profilePath:`${e}/${h.path}`,deprecated:!!h.deprecated}),!!s}),!s){if(!t)throw new Error("No matching profile name found");const d=r[t];if(!d)throw new Error(`No matching profile name found and default profile "${t}" missing.`);s={profileId:t,profilePath:`${e}/${d.path}`,deprecated:!!d.deprecated}}const o=yield Gq(s.profilePath);let l;if(i){let d;if(d="any"===n.handedness?o.layouts[Object.keys(o.layouts)[0]]:o.layouts[n.handedness],!d)throw new Error(`No matching handedness, ${n.handedness}, in profile ${s.profileId}`);d.assetPath&&(l=s.profilePath.replace("profile.json",d.assetPath))}return{profile:o,assetPath:l}}),zF.apply(this,arguments)}const VAe={xAxis:0,yAxis:0,button:0,state:Cd.ComponentState.DEFAULT};class qAe{constructor(e){this.componentProperty=e.componentProperty,this.states=e.states,this.valueNodeName=e.valueNodeName,this.valueNodeProperty=e.valueNodeProperty,this.valueNodeProperty===Cd.VisualResponseProperty.TRANSFORM&&(this.minNodeName=e.minNodeName,this.maxNodeName=e.maxNodeName),this.value=0,this.updateFromComponent(VAe)}updateFromComponent({xAxis:e,yAxis:t,button:i,state:r}){const{normalizedXAxis:s,normalizedYAxis:o}=function GAe(n=0,e=0){let t=n,i=e;if(Math.sqrt(n*n+e*e)>1){const o=Math.atan2(e,n);t=Math.cos(o),i=Math.sin(o)}return{normalizedXAxis:.5*t+.5,normalizedYAxis:.5*i+.5}}(e,t);switch(this.componentProperty){case Cd.ComponentProperty.X_AXIS:this.value=this.states.includes(r)?s:.5;break;case Cd.ComponentProperty.Y_AXIS:this.value=this.states.includes(r)?o:.5;break;case Cd.ComponentProperty.BUTTON:this.value=this.states.includes(r)?i:0;break;case Cd.ComponentProperty.STATE:this.value=this.valueNodeProperty===Cd.VisualResponseProperty.VISIBILITY?this.states.includes(r):this.states.includes(r)?1:0;break;default:throw new Error(`Unexpected visualResponse componentProperty ${this.componentProperty}`)}}}class QAe{constructor(e,t){if(!(e&&t&&t.visualResponses&&t.gamepadIndices&&0!==Object.keys(t.gamepadIndices).length))throw new Error("Invalid arguments supplied");this.id=e,this.type=t.type,this.rootNodeName=t.rootNodeName,this.touchPointNodeName=t.touchPointNodeName,this.visualResponses={},Object.keys(t.visualResponses).forEach(i=>{const r=new qAe(t.visualResponses[i]);this.visualResponses[i]=r}),this.gamepadIndices=Object.assign({},t.gamepadIndices),this.values={state:Cd.ComponentState.DEFAULT,button:void 0!==this.gamepadIndices.button?0:void 0,xAxis:void 0!==this.gamepadIndices.xAxis?0:void 0,yAxis:void 0!==this.gamepadIndices.yAxis?0:void 0}}get data(){return{id:this.id,...this.values}}updateFromGamepad(e){if(this.values.state=Cd.ComponentState.DEFAULT,void 0!==this.gamepadIndices.button&&e.buttons.length>this.gamepadIndices.button){const t=e.buttons[this.gamepadIndices.button];this.values.button=t.value,this.values.button=this.values.button<0?0:this.values.button,this.values.button=this.values.button>1?1:this.values.button,t.pressed||1===this.values.button?this.values.state=Cd.ComponentState.PRESSED:(t.touched||this.values.button>Cd.ButtonTouchThreshold)&&(this.values.state=Cd.ComponentState.TOUCHED)}void 0!==this.gamepadIndices.xAxis&&e.axes.length>this.gamepadIndices.xAxis&&(this.values.xAxis=e.axes[this.gamepadIndices.xAxis],this.values.xAxis=this.values.xAxis<-1?-1:this.values.xAxis,this.values.xAxis=this.values.xAxis>1?1:this.values.xAxis,this.values.state===Cd.ComponentState.DEFAULT&&Math.abs(this.values.xAxis)>Cd.AxisTouchThreshold&&(this.values.state=Cd.ComponentState.TOUCHED)),void 0!==this.gamepadIndices.yAxis&&e.axes.length>this.gamepadIndices.yAxis&&(this.values.yAxis=e.axes[this.gamepadIndices.yAxis],this.values.yAxis=this.values.yAxis<-1?-1:this.values.yAxis,this.values.yAxis=this.values.yAxis>1?1:this.values.yAxis,this.values.state===Cd.ComponentState.DEFAULT&&Math.abs(this.values.yAxis)>Cd.AxisTouchThreshold&&(this.values.state=Cd.ComponentState.TOUCHED)),Object.values(this.visualResponses).forEach(t=>{t.updateFromComponent(this.values)})}}class WAe{constructor(e,t,i){if(!e)throw new Error("No xrInputSource supplied");if(!t)throw new Error("No profile supplied");this.xrInputSource=e,this.assetUrl=i,this.id=t.profileId,this.layoutDescription=t.layouts[e.handedness],this.components={},Object.keys(this.layoutDescription.components).forEach(r=>{this.components[r]=new QAe(r,this.layoutDescription.components[r])}),this.updateFromGamepad()}get gripSpace(){return this.xrInputSource.gripSpace}get targetRaySpace(){return this.xrInputSource.targetRaySpace}get data(){const e=[];return Object.values(this.components).forEach(t=>{e.push(t.data)}),e}updateFromGamepad(){Object.values(this.components).forEach(e=>{e.updateFromGamepad(this.xrInputSource.gamepad)})}}class XAe extends Pl{constructor(){super(),this.motionController=null,this.envMap=null}setEnvironmentMap(e){return this.envMap==e||(this.envMap=e,this.traverse(t=>{t.isMesh&&(t.material.envMap=this.envMap,t.material.needsUpdate=!0)})),this}updateMatrixWorld(e){super.updateMatrixWorld(e),this.motionController&&(this.motionController.updateFromGamepad(),Object.values(this.motionController.components).forEach(t=>{Object.values(t.visualResponses).forEach(i=>{const{valueNode:r,minNode:s,maxNode:o,value:l,valueNodeProperty:d}=i;r&&(d===Cd.VisualResponseProperty.VISIBILITY?r.visible=l:d===Cd.VisualResponseProperty.TRANSFORM&&(r.quaternion.slerpQuaternions(s.quaternion,o.quaternion,l),r.position.lerpVectors(s.position,o.position,l)))})}))}}function qq(n,e){(function YAe(n,e){Object.values(n.components).forEach(t=>{const{type:i,touchPointNodeName:r,visualResponses:s}=t;if(i===Cd.ComponentType.TOUCHPAD)if(t.touchPointNode=e.getObjectByName(r),t.touchPointNode){const o=new qy(.001),l=new xd({color:255}),d=new ha(o,l);t.touchPointNode.add(d)}else console.warn(`Could not find touch dot, ${t.touchPointNodeName}, in touchpad component ${t.id}`);Object.values(s).forEach(o=>{const{valueNodeName:l,minNodeName:d,maxNodeName:h,valueNodeProperty:f}=o;if(f===Cd.VisualResponseProperty.TRANSFORM){if(o.minNode=e.getObjectByName(d),o.maxNode=e.getObjectByName(h),!o.minNode)return void console.warn(`Could not find ${d} in the model`);if(!o.maxNode)return void console.warn(`Could not find ${h} in the model`)}o.valueNode=e.getObjectByName(l),o.valueNode||console.warn(`Could not find ${l} in the model`)})})})(n.motionController,e),n.envMap&&e.traverse(t=>{t.isMesh&&(t.material.envMap=n.envMap,t.material.needsUpdate=!0)}),n.add(e)}class KAe{constructor(e=null,t=null){this.gltfLoader=e,this.path="https://cdn.jsdelivr.net/npm/@webxr-input-profiles/assets@1.0/dist/profiles",this._assetCache={},this.onLoad=t,this.gltfLoader||(this.gltfLoader=new d4)}setPath(e){return this.path=e,this}createControllerModel(e){const t=new XAe;let i=null;return e.addEventListener("connected",r=>{const s=r.data;"tracked-pointer"!==s.targetRayMode||!s.gamepad||function HAe(n,e){return zF.apply(this,arguments)}(s,this.path,"generic-trigger").then(({profile:o,assetPath:l})=>{t.motionController=new WAe(s,o,l);const d=this._assetCache[t.motionController.assetUrl];if(d)i=d.scene.clone(),qq(t,i),this.onLoad&&this.onLoad(i);else{if(!this.gltfLoader)throw new Error("GLTFLoader not set.");this.gltfLoader.setPath(""),this.gltfLoader.load(t.motionController.assetUrl,h=>{this._assetCache[t.motionController.assetUrl]=h,i=h.scene.clone(),qq(t,i),this.onLoad&&this.onLoad(i)},null,()=>{throw new Error(`Asset ${t.motionController.assetUrl} missing or malformed.`)})}}).catch(o=>{console.warn(o)})}),e.addEventListener("disconnected",()=>{t.motionController=null,t.remove(i),i=null}),t}}let Qq=(()=>{class n extends Vq{constructor(){super(mm.VR),this.sessionInit=()=>({optionalFeatures:["local-floor","bounded-floor","hand-tracking"]})}setXRSession(t,i,r){super.setXRSession(t,i,r),this.setupVRControls()}onXRSessionEnded(){var t,i;super.onXRSessionEnded(),null===(t=this.controller1)||void 0===t||t.removeEventListener("selectstart",this.onControllerSelectStart),null===(i=this.controller1)||void 0===i||i.removeEventListener("selectend",this.onControllerSelectEnd)}setupVRControls(){this.controller1=this.renderer.xr.getController(0),this.getCameraGroup().add(this.controller1),this.controller2=this.renderer.xr.getController(1),this.getCameraGroup().add(this.controller2);const t=new KAe;this.controllerGrip1=this.renderer.xr.getControllerGrip(0),this.controllerGrip1.add(t.createControllerModel(this.controllerGrip1)),this.getCameraGroup().add(this.controllerGrip1),this.controllerGrip2=this.renderer.xr.getControllerGrip(1),this.controllerGrip2.add(t.createControllerModel(this.controllerGrip2)),this.getCameraGroup().add(this.controllerGrip2);const i=(new no).setFromPoints([new It(0,0,0),new It(0,0,-1)]),r=new pg(i);r.name="line",r.scale.z=50,this.controller1.add(r.clone()),this.controller2.add(r.clone());const o=new It;let l;this.onControllerSelectStart=()=>{console.log("Select: c1 position "+this.controller1.position.toArray().join(", ")),console.log("Select: CG position "+this.cameraGroup.position.toArray().join(", ")),l=setInterval(()=>{this.moveInDirection(o,30)},20)},this.onControllerSelectEnd=()=>{clearInterval(l)},this.controller1.addEventListener("selectstart",this.onControllerSelectStart),this.controller1.addEventListener("selectend",this.onControllerSelectEnd)}moveInDirection(t,i){var r;null===(r=this.xrCamera)||void 0===r||r.getWorldDirection(t),this.cameraGroup.position.addScaledVector(t,i),this.xrCamera.position.addScaledVector(t,i)}}return n.SESSION_TYPE="immersive-vr",n})();let HF=(()=>{class n extends Vq{constructor(t,i){super(mm.AR),this.scene=t,this.camera=i,this.previousValues={sceneScale:1,cameraNear:10},this.previousValues.sceneScale=t.scale.x,this.previousValues.cameraNear=i.near,this.sessionInit=()=>n.enableDomOverlay?{optionalFeatures:["dom-overlay"],domOverlay:{root:document.body}}:{}}onXRSessionStarted(t){const i=Object.create(null,{onXRSessionStarted:{get:()=>super.onXRSessionStarted}});return function(n,e,t,i){return new(t||(t=Promise))(function(s,o){function l(f){try{h(i.next(f))}catch(A){o(A)}}function d(f){try{h(i.throw(f))}catch(A){o(A)}}function h(f){f.done?s(f.value):function r(s){return s instanceof t?s:new t(function(o){o(s)})}(f.value).then(l,d)}h((i=i.apply(n,e||[])).next())})}(this,void 0,void 0,function*(){document.body.style.setProperty("background-color","transparent"),this.previousValues.sceneScale=this.scene.scale.x,this.previousValues.cameraNear=this.camera.near,this.scaleScene(1e-5),this.camera.near=.01,this.renderer.xr.setReferenceSpaceType("local"),yield i.onXRSessionStarted.call(this,t)})}onXRSessionEnded(){document.body.style.removeProperty("background-color"),this.scaleScene(this.previousValues.sceneScale),this.camera.near=this.previousValues.cameraNear,super.onXRSessionEnded()}scaleScene(t){[el.EVENT_DATA_ID,el.GEOMETRIES_ID,el.LABELS_ID].forEach(i=>{var r;null===(r=this.scene.getObjectByName(i))||void 0===r||r.scale.setScalar(t)})}}return n.SESSION_TYPE="immersive-ar",n.enableDomOverlay=!0,n})();var pE=function(n,e,t,i){return new(t||(t=Promise))(function(s,o){function l(f){try{h(i.next(f))}catch(A){o(A)}}function d(f){try{h(i.throw(f))}catch(A){o(A)}}function h(f){f.done?s(f.value):function r(s){return s instanceof t?s:new t(function(o){o(s)})}(f.value).then(l,d)}h((i=i.apply(n,e||[])).next())})};!function(){const n=Pl.prototype.updateMatrixWorld;Pl.prototype.updateMatrixWorld=function(){this.visible&&n.apply(this)}}();class JAe{constructor(e){this.infoLogger=e,this.origin=new It(0,0,0),this.ignoreList=[(new KI).type,(new hC).type,(new uq).type],this.prev3DCoord=null,this.prevIntersectName=null,this.distanceCanvas=null,this.displayColor="black",this.originChanged=new Ls,this.shiftGrid=!1,this.stopShifting=new Ls,this.saveBlob=function(){const t=document.createElement("a");return document.body.appendChild(t),t.style.display="none",function(r,s){const o=window.URL.createObjectURL(r);t.href=o,t.download=s,t.click()}}(),this.rendererManager=new ume,this.loadingManager=new sx}init(e){this.clipPlanes=[new dA(new It(0,1,0),0),new dA(new It(0,-1,0),0)],this.sceneManager=new el(this.ignoreList),this.exportManager=new Ome,this.importManager=new xAe(this.clipPlanes,el.EVENT_DATA_ID,el.GEOMETRIES_ID),this.rendererManager.init(e.elementId),this.controlsManager=new hme(this.rendererManager,e.defaultView),this.controlsManager.hideTubeTracksOnZoom(this.sceneManager.getScene(),200),this.effectsManager=new LAe(this.controlsManager.getMainCamera(),this.sceneManager.getScene(),this.rendererManager.getMainRenderer()),this.animationsManager=new DAe(this.sceneManager.getScene(),this.controlsManager.getActiveCamera(),this.rendererManager),this.vrManager=new Qq,this.arManager=new HF(this.sceneManager.getScene(),this.controlsManager.getMainCamera()),this.colorManager=new NAe(this.sceneManager),this.getSelectionManager().init(this.controlsManager.getMainCamera(),this.sceneManager.getScene(),this.effectsManager,this.infoLogger),(new fA).setCamera(this.controlsManager.getActiveCamera())}setDarkColor(e){this.displayColor=e?"white":"black"}updateControls(){this.controlsManager.getActiveControls().update(),this.controlsManager.updateSync(),Yz()}setAnimationLoop(e){this.uiLoop=e,this.animationLoop=()=>{this.uiLoop(),this.updateControls(),this.sceneManager.alignText(this.controlsManager.getMainCamera()),this.render()},this.rendererManager.getMainRenderer().setAnimationLoop(this.animationLoop)}stopAnimationLoop(){this.rendererManager.getMainRenderer().setAnimationLoop(null)}render(){this.rendererManager.render(this.sceneManager.getScene(),this.controlsManager.getOverlayCamera()),this.effectsManager.render(this.sceneManager.getScene(),this.controlsManager.getMainCamera()),this.sceneManager.updateLights(this.controlsManager.getActiveCamera())}xrRender(e){this.uiLoop(),this.rendererManager.getMainRenderer().render(this.sceneManager.getScene(),e.getXRCamera()),this.sceneManager.updateLights(e.getXRCamera())}getSceneManager(){return this.sceneManager||(this.sceneManager=new el(this.ignoreList)),this.sceneManager}autoRotate(e){this.controlsManager.getActiveControls().autoRotate=e}filterRayIntersect(){null==this.stateManager&&(this.stateManager=new fA),null==this.isEventData&&(this.isEventData=e=>{let t=!1;return e.object.traverseAncestors(i=>{"EventData"==i.name&&(t=!0)}),t}),null==this.isVisible&&(this.isVisible=e=>{let t=!1;return this.clipPlanes.length>0&&(this.clipIntersection?this.clipPlanes.every(i=>i.distanceToPoint(e.point)<0)||(t=!0):this.clipPlanes.every(i=>i.distanceToPoint(e.point)>0)&&(t=!0)),t})}originChangedEmit(e){this.origin=e,this.originChanged.emit(e)}getMainIntersect(e){const t=this.controlsManager.getMainCamera(),i=this.sceneManager.getScene(),r=new eq,s=new Qi;s.x=e.clientX/window.innerWidth*2-1,s.y=-e.clientY/window.innerHeight*2+1,r.setFromCamera(s,t);const o=r.intersectObjects(i.children);let l=null;if(o.length>0&&!this.stateManager.clippingEnabled.value){for(const d of o)if("gridline"!=d.object.name&&"XYZ Labels"!=d.object.name){l=d;break}}else for(const d of o)if("gridline"!=d.object.name&&"XYZ Labels"!=d.object.name){if(this.isEventData(d)){l=d;break}if(this.isVisible(d)){l=d;break}}return l}show3DMousePoints(e){this.filterRayIntersect(),null==this.show3DPointsCallback&&(this.show3DPointsCallback=t=>{const i=this.getMainIntersect(t);if(null!=i){const r=i.point,s=new It;s.subVectors(r,this.origin);const o=document.getElementsByTagName("app-root")[0],l=document.createElement("p");l.id="3dcoordinates",l.innerHTML=`${i.object.name}:\r\n\tOriginal (cm): (${Math.round(r.x/10)}, ${Math.round(r.y/10)}, ${Math.round(r.z/10)})`,(0!=this.origin.x||0!=this.origin.y||0!=this.origin.z)&&(l.innerHTML+=`\r\n\tCompared to grid (cm): (${Math.round(s.x/10)}, ${Math.round(s.y/10)}, ${Math.round(s.z/10)})`),l.style.whiteSpace="pre",l.style.color=this.displayColor,l.style.position="absolute",l.style.top=`${t.clientY+10}px`,l.style.left=`${t.clientX+10}px`;const d=document.createElement("div");d.id="circledDot",d.style.width="1rem",d.style.height="1rem",d.style.position="absolute",d.style.top=`calc(${t.clientY}px - 0.5rem)`,d.style.left=`calc(${t.clientX}px - 0.5rem)`,d.style.border=`2px solid ${this.displayColor}`,d.style.borderRadius="0.5rem",d.innerHTML=`\n
`,o?.appendChild(l),o?.appendChild(d),setTimeout(()=>{document.getElementById("3dcoordinates").remove(),document.getElementById("circledDot").remove()},3e3)}}),e?window.addEventListener("click",this.show3DPointsCallback):window.removeEventListener("click",this.show3DPointsCallback)}show3DDistance(e){this.prev3DCoord=null,this.prev2DCoord=null,this.prevIntersectName=null,this.filterRayIntersect(),null==this.show3DDistanceCallback&&(this.mousemoveCallback=this.drawLine.bind(this),this.show3DDistanceCallback=t=>{const i=this.getMainIntersect(t);if(null!=i)if(null==this.prev3DCoord){this.prev3DCoord=i.point,this.prev2DCoord=new Qi(t.clientX,t.clientY),this.prevIntersectName=i.object.name;const r=document.getElementsByTagName("app-root")[0];null==this.distanceCanvas&&(this.distanceCanvas=document.createElement("canvas"),this.distanceCanvas.id="3Ddistance",this.distanceCanvas.width=window.innerWidth,this.distanceCanvas.height=window.innerHeight,this.distanceCanvas.style.position="absolute",this.distanceCanvas.style.bottom="0"),r?.appendChild(this.distanceCanvas);const s=this.distanceCanvas.getContext("2d");s.strokeStyle=this.displayColor,s.lineWidth=2,s.fillStyle=this.displayColor,s.beginPath(),s.arc(this.prev2DCoord.x,this.prev2DCoord.y,7,0,2*Math.PI),s.stroke(),s.beginPath(),s.arc(this.prev2DCoord.x,this.prev2DCoord.y,3,0,2*Math.PI),s.fill(),window.addEventListener("mousemove",this.mousemoveCallback)}else{window.removeEventListener("mousemove",this.mousemoveCallback);const r=i.point.distanceTo(this.prev3DCoord)/10;this.drawLine(t);const s=this.distanceCanvas.getContext("2d");s.beginPath(),s.arc(t.clientX,t.clientY,7,0,2*Math.PI),s.stroke(),s.beginPath(),s.arc(t.clientX,t.clientY,3,0,2*Math.PI),s.fill(),s.font="15px Arial";let o=this.prev2DCoord.x,l=t.clientX;const d=this.prev2DCoord.y,h=t.clientY,f=(o+l)/2,A=(d+h)/2,R=(o-l)/(h-d),G=25/Math.sqrt(1+R*R),se=f+G,le=A+R*G;this.prev2DCoord.x>t.clientX?(o=this.prev2DCoord.x+20,l=t.clientX-s.measureText(i.object.name).width-20):(o=this.prev2DCoord.x-s.measureText(this.prevIntersectName).width-20,l=t.clientX+20),s.fillText(this.prevIntersectName,o,d),s.fillText(i.object.name,l,h),s.fillText(r.toFixed(2).toString()+"cm",se,le),setTimeout(()=>{null!=document.getElementById("3Ddistance")&&document.getElementById("3Ddistance").remove(),this.distanceCanvas.getContext("2d").clearRect(0,0,this.distanceCanvas.width,this.distanceCanvas.height)},3e3),this.prev3DCoord=null,this.prev2DCoord=null,this.prevIntersectName=null}}),e?window.addEventListener("click",this.show3DDistanceCallback):(window.removeEventListener("click",this.show3DDistanceCallback),window.removeEventListener("mousemove",this.mousemoveCallback),null!=document.getElementById("3Ddistance")&&document.getElementById("3Ddistance").remove(),null!=this.distanceCanvas&&this.distanceCanvas.getContext("2d").clearRect(0,0,this.distanceCanvas.width,this.distanceCanvas.height))}drawLine(e){const t=this.distanceCanvas.getContext("2d");t.clearRect(0,0,this.distanceCanvas.width,this.distanceCanvas.height),t.beginPath(),t.moveTo(this.prev2DCoord.x,this.prev2DCoord.y),t.lineTo(e.clientX,e.clientY),t.stroke(),t.beginPath(),t.arc(this.prev2DCoord.x,this.prev2DCoord.y,7,0,2*Math.PI),t.stroke(),t.beginPath(),t.arc(this.prev2DCoord.x,this.prev2DCoord.y,3,0,2*Math.PI),t.fill()}shiftCartesianGrid(){this.shiftGrid=!0,this.filterRayIntersect(),null==this.shiftCartesianGridCallback&&(this.shiftCartesianGridCallback=t=>{const i=this.getMainIntersect(t);null!=i&&this.originChangedEmit(i.point)});const e=t=>{window.removeEventListener("click",this.shiftCartesianGridCallback),this.stopShifting.emit(!0),this.shiftGrid=!1,window.removeEventListener("contextmenu",e)};window.addEventListener("click",this.shiftCartesianGridCallback),window.addEventListener("contextmenu",e)}setClipping(e){this.rendererManager.setLocalClippingEnabled(e)}setClippingAngle(e,t){const i=new Gc;i.setFromAxisAngle(new It(0,0,1),e*Math.PI/180),this.clipPlanes[0].normal.set(0,-1,0).applyQuaternion(i);const r=new Gc;r.setFromAxisAngle(new It(0,0,1),(e+t)*Math.PI/180),this.clipPlanes[1].normal.set(0,1,0).applyQuaternion(r),(this.clipIntersection&&t>180||!this.clipIntersection&&t<180)&&(this.clipIntersection=t<180,this.sceneManager.getGeometries().traverse(o=>{o instanceof ha&&o.material instanceof ld&&(o.material.clipIntersection=this.clipIntersection)}))}animateCameraTransform(e,t,i){this.animateCameraPosition(e,i),this.animateCameraTarget(t,i)}swapCameras(e){let t;t=e?"OrthographicCamera":"PerspectiveCamera",this.controlsManager.getMainCamera().type!==t&&this.controlsManager.swapControls()}loadOBJGeometry(e,t,i,r){return pE(this,arguments,void 0,function*(s,o,l,d,h=!0,f=!0){const A=this.sceneManager.getGeometries(),S=yield this.importManager.loadOBJGeometry(s,o,l,d,f),{object:R}=S;return R.visible=h,A.add(R),S})}loadGLTFGeometry(e,t,i,r,s){return pE(this,void 0,void 0,function*(){const o=this.sceneManager.getGeometries(),l=yield this.importManager.loadGLTFGeometry(e,t,i,r,s);for(const{object:d}of l)o.add(d),this.infoLogger.add(t,"Loaded GLTF scene");return l})}parseOBJGeometry(e,t,i=!0){const r=this.sceneManager.getGeometries(),s=this.importManager.parseOBJGeometry(e,t);return s.visible=i,r.add(s),{object:s}}parseGLTFGeometry(e,t){return pE(this,void 0,void 0,function*(){const i=yield this.importManager.parseGLTFGeometry(e,t);for(const{object:r}of i)this.sceneManager.getGeometries().add(r),this.infoLogger.add(t,"Parsed GLTF geometry");return i})}parsePhnxScene(e){return pE(this,void 0,void 0,function*(){yield this.importManager.parsePhnxScene(e,(i,r)=>{this.sceneManager.getScene().add(i),this.sceneManager.getScene().add(r)})})}loadJSONGeometry(e,t,i,r){return pE(this,arguments,void 0,function*(s,o,l,d,h=!0){const f=this.sceneManager.getGeometries(),{object:A}=yield this.importManager.loadJSONGeometry(s,o,l,d);return A.visible=h,f.add(A),{object:A}})}exportSceneToOBJ(){const e=this.sceneManager.getCleanScene();this.exportManager.exportSceneToOBJ(e)}exportPhoenixScene(){const e=this.sceneManager.getCleanScene();this.exportManager.exportPhoenixScene(e,this.sceneManager.getEventData(),this.sceneManager.getGeometries())}fixOverlayView(e){this.rendererManager.setFixOverlay(e)}setSelectedObjectDisplay(e){this.getSelectionManager().setSelectedObject(e)}eventDataDepthTest(e){this.sceneManager.eventDataDepthTest(e)}enableSelecting(e){this.getSelectionManager().setSelecting(e)}clearEventData(){this.sceneManager.clearEventData()}addEventDataTypeGroup(e){return this.sceneManager.addEventDataTypeGroup(e)}setOverlayRenderer(e){this.rendererManager&&this.rendererManager.setOverlayRenderer(e)}zoomTo(e,t){this.controlsManager.zoomTo(e,t)}getSelectionManager(){return this.selectionManager||(this.selectionManager=new wAe),this.selectionManager}animateCameraPosition(e,t){const i=new If(this.controlsManager.getActiveCamera().position);i.to({x:e[0],y:e[1],z:e[2]},t),i.start()}animateCameraTarget(e,t){const i=new If(this.controlsManager.getActiveControls().target);i.to({x:e[0],y:e[1],z:e[2]},t),i.start()}getActiveObjectId(){return this.getSelectionManager().getActiveObjectId()}lookAtObject(e,t=!1){1==t?this.controlsManager.lookAtObject(e,this.getSceneManager().getGeometries(),1e3):this.controlsManager.lookAtObject(e,this.getSceneManager().getEventData(),0)}getObjectPosition(e){return this.controlsManager.getObjectPosition(e,this.getSceneManager().getScene())}highlightObject(e,t=!1){this.selectionManager.highlightObject(e,1==t?this.getSceneManager().getGeometries():this.getSceneManager().getEventData())}enableHighlighting(){this.selectionManager.enableHighlighting()}disableHighlighting(){this.selectionManager.disableHighlighting()}enableKeyboardControls(){document.addEventListener("keydown",e=>{var t;if(!["input","textarea"].includes(null===(t=e.target)||void 0===t?void 0:t.tagName.toLowerCase())&&e.shiftKey)switch(e.code){case"KeyR":this.autoRotate(!this.controlsManager.getActiveControls().autoRotate);break;case"Equal":this.zoomTo(1/1.2,100);break;case"Minus":this.zoomTo(1.2,100);break;case"KeyC":this.setClipping(!this.rendererManager.getLocalClipping()),this.rendererManager.getLocalClipping()&&this.setClippingAngle(0,180);break;case"KeyV":{const r="OrthographicCamera"===this.controlsManager.getMainCamera().type;this.swapCameras(!r);break}}})}animateThroughEvent(e,t,i){this.animationsManager.animateThroughEvent(e,t,i)}animatePreset(e,t){this.animationsManager.animatePreset(e,t)}animateEventWithCollision(e,t){this.animationsManager.animateEventWithCollision(e,t)}animateClippingWithCollision(e,t){this.animationsManager.animateClippingWithCollision(e,t)}croppedSize(e,t,i,r){let s=t,o=e;return i*t"CANVAS"==se.tagName}).then(se=>{se.toBlob(le=>{S.drawImage(se,G/6,G/6,re,G),A.toBlob(Ee=>{const Ce=document.createElement("a");document.body.appendChild(Ce),Ce.style.display="none";const We=window.URL.createObjectURL(Ee);Ce.href=We,Ce.download="screencapture.png",Ce.click()})})})}}initXRSession(e,t){const i=e===mm.VR?this.vrManager:this.arManager,r=this.rendererManager.getMainRenderer();r.xr.enabled=!0,r.xr.setAnimationLoop(this.xrRender.bind(this,i)),i.setXRSession(r,()=>{const o=i.getCameraGroup(this.controlsManager.getMainCamera());this.sceneManager.getScene().add(o)},t)}endXRSession(e){const t=e===mm.VR?this.vrManager:this.arManager;this.sceneManager.getScene().remove(t.getCameraGroup());const i=this.rendererManager.getMainRenderer();i.xr.setAnimationLoop(null),i.xr.enabled=!1,t.endXRSession()}getObjectByName(e){return this.getSceneManager().getScene().getObjectByName(e)}setAntialiasing(e){this.effectsManager.setAntialiasing(e)}addGeometryFromParameters(e){this.loadingManager.addLoadableItem("geom_from_params");const t=this.getSceneManager().getScene(),l=e.NumPhiEl,d=e.NumZEl,h=e.Radius,f=e.MinZ,A=e.MaxZ,S=e.TiltAngle,R=e.ZTiltAngle,G=e.PhiOffset,re=e.Colour,le=new yp(e.Xdim,e.Ydim,e.Zdim),Ee=new xd({color:re,opacity:.5,transparent:!0}),Ce=(A-f)/d,We=2*Math.PI/l;let Mt=f+Ce/2;const yt=Math.PI/2;let Et;for(let Xt=0;Xt=0;i--)t=[e[i].apply(this,t)];return t[0]}},each:function(e,t,i){if(e)if(Wq&&e.forEach&&e.forEach===Wq)e.forEach(t,i);else if(e.length===e.length+0){var s,r=void 0;for(r=0,s=e.length;r1?Sr.toArray(arguments):arguments[0];return Sr.each(nge,function(t){if(t.litmus(e))return Sr.each(t.conversions,function(i,r){if(AE=i.read(e),!1===h4&&!1!==AE)return h4=AE,AE.conversionName=r,AE.conversion=i,Sr.BREAK}),Sr.BREAK}),h4},jq=void 0,gE={hsv_to_rgb:function(e,t,i){var r=Math.floor(e/60)%6,s=e/60-Math.floor(e/60),o=i*(1-t),l=i*(1-s*t),d=i*(1-(1-s)*t),h=[[i,d,o],[l,i,o],[o,i,d],[o,l,i],[d,o,i],[i,o,l]][r];return{r:255*h[0],g:255*h[1],b:255*h[2]}},rgb_to_hsv:function(e,t,i){var r=Math.min(e,t,i),s=Math.max(e,t,i),o=s-r,l=void 0;return 0===s?{h:NaN,s:0,v:0}:(l=e===s?(t-i)/o:t===s?2+(i-e)/o:4+(e-t)/o,(l/=6)<0&&(l+=1),{h:360*l,s:o/s,v:s/255})},rgb_to_hex:function(e,t,i){var r=this.hex_with_component(0,2,e);return r=this.hex_with_component(r,1,t),this.hex_with_component(r,0,i)},component_from_hex:function(e,t){return e>>8*t&255},hex_with_component:function(e,t,i){return i<<(jq=8*t)|e&~(255<-1?e.length-e.indexOf(".")-1:0}var QF=function(n){function e(t,i,r){Ag(this,e);var s=Jy(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,t,i)),o=r||{};return s.__min=o.min,s.__max=o.max,s.__step=o.step,s.__impliedStep=Sr.isUndefined(s.__step)?0===s.initialValue?1:Math.pow(10,Math.floor(Math.log(Math.abs(s.initialValue))/Math.LN10))/10:s.__step,s.__precision=Kq(s.__impliedStep),s}return Zy(e,n),gg(e,[{key:"setValue",value:function(i){var r=i;return void 0!==this.__min&&rthis.__max&&(r=this.__max),void 0!==this.__step&&r%this.__step!=0&&(r=Math.round(r/this.__step)*this.__step),Ky(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"setValue",this).call(this,r)}},{key:"min",value:function(i){return this.__min=i,this}},{key:"max",value:function(i){return this.__max=i,this}},{key:"step",value:function(i){return this.__step=i,this.__impliedStep=i,this.__precision=Kq(i),this}}]),e}(ev),_E=function(n){function e(t,i,r){Ag(this,e);var s=Jy(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,t,i,r));s.__truncationSuspended=!1;var o=s,l=void 0;function h(){o.__onFinishChange&&o.__onFinishChange.call(o,o.getValue())}function A(G){var re=l-G.clientY;o.setValue(o.getValue()+re*o.__impliedStep),l=G.clientY}function S(){Fi.unbind(window,"mousemove",A),Fi.unbind(window,"mouseup",S),h()}return s.__input=document.createElement("input"),s.__input.setAttribute("type","text"),Fi.bind(s.__input,"change",function d(){var G=parseFloat(o.__input.value);Sr.isNaN(G)||o.setValue(G)}),Fi.bind(s.__input,"blur",function f(){h()}),Fi.bind(s.__input,"mousedown",function R(G){Fi.bind(window,"mousemove",A),Fi.bind(window,"mouseup",S),l=G.clientY}),Fi.bind(s.__input,"keydown",function(G){13===G.keyCode&&(o.__truncationSuspended=!0,this.blur(),o.__truncationSuspended=!1,h())}),s.updateDisplay(),s.domElement.appendChild(s.__input),s}return Zy(e,n),gg(e,[{key:"updateDisplay",value:function(){return this.__input.value=this.__truncationSuspended?this.getValue():function oge(n,e){var t=Math.pow(10,e);return Math.round(n*t)/t}(this.getValue(),this.__precision),Ky(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"updateDisplay",this).call(this)}}]),e}(QF);function Zq(n,e,t,i,r){return i+(n-e)/(t-e)*(r-i)}var f4=function(n){function e(t,i,r,s,o){Ag(this,e);var l=Jy(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,t,i,{min:r,max:s,step:o})),d=l;function f(re){re.preventDefault();var se=d.__background.getBoundingClientRect();return d.setValue(Zq(re.clientX,se.left,se.right,d.__min,d.__max)),!1}function A(){Fi.unbind(window,"mousemove",f),Fi.unbind(window,"mouseup",A),d.__onFinishChange&&d.__onFinishChange.call(d,d.getValue())}function R(re){var se=re.touches[0].clientX,le=d.__background.getBoundingClientRect();d.setValue(Zq(se,le.left,le.right,d.__min,d.__max))}function G(){Fi.unbind(window,"touchmove",R),Fi.unbind(window,"touchend",G),d.__onFinishChange&&d.__onFinishChange.call(d,d.getValue())}return l.__background=document.createElement("div"),l.__foreground=document.createElement("div"),Fi.bind(l.__background,"mousedown",function h(re){document.activeElement.blur(),Fi.bind(window,"mousemove",f),Fi.bind(window,"mouseup",A),f(re)}),Fi.bind(l.__background,"touchstart",function S(re){1===re.touches.length&&(Fi.bind(window,"touchmove",R),Fi.bind(window,"touchend",G),R(re))}),Fi.addClass(l.__background,"slider"),Fi.addClass(l.__foreground,"slider-fg"),l.updateDisplay(),l.__background.appendChild(l.__foreground),l.domElement.appendChild(l.__background),l}return Zy(e,n),gg(e,[{key:"updateDisplay",value:function(){var i=(this.getValue()-this.__min)/(this.__max-this.__min);return this.__foreground.style.width=100*i+"%",Ky(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"updateDisplay",this).call(this)}}]),e}(QF),WF=function(n){function e(t,i,r){Ag(this,e);var s=Jy(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,t,i)),o=s;return s.__button=document.createElement("div"),s.__button.innerHTML=void 0===r?"Fire":r,Fi.bind(s.__button,"click",function(l){return l.preventDefault(),o.fire(),!1}),Fi.addClass(s.__button,"button"),s.domElement.appendChild(s.__button),s}return Zy(e,n),gg(e,[{key:"fire",value:function(){this.__onChange&&this.__onChange.call(this),this.getValue().call(this.object),this.__onFinishChange&&this.__onFinishChange.call(this,this.getValue())}}]),e}(ev),p4=function(n){function e(t,i){Ag(this,e);var r=Jy(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,t,i));r.__color=new Rh(r.getValue()),r.__temp=new Rh(0);var s=r;r.domElement=document.createElement("div"),Fi.makeSelectable(r.domElement,!1),r.__selector=document.createElement("div"),r.__selector.className="selector",r.__saturation_field=document.createElement("div"),r.__saturation_field.className="saturation-field",r.__field_knob=document.createElement("div"),r.__field_knob.className="field-knob",r.__field_knob_border="2px solid ",r.__hue_knob=document.createElement("div"),r.__hue_knob.className="hue-knob",r.__hue_field=document.createElement("div"),r.__hue_field.className="hue-field",r.__input=document.createElement("input"),r.__input.type="text",r.__input_textShadow="0 1px 1px ",Fi.bind(r.__input,"keydown",function(re){13===re.keyCode&&A.call(this)}),Fi.bind(r.__input,"blur",A),Fi.bind(r.__selector,"mousedown",function(){Fi.addClass(this,"drag").bind(window,"mouseup",function(){Fi.removeClass(s.__selector,"drag")})}),Fi.bind(r.__selector,"touchstart",function(){Fi.addClass(this,"drag").bind(window,"touchend",function(){Fi.removeClass(s.__selector,"drag")})});var o=document.createElement("div");function l(re){R(re),Fi.bind(window,"mousemove",R),Fi.bind(window,"touchmove",R),Fi.bind(window,"mouseup",h),Fi.bind(window,"touchend",h)}function d(re){G(re),Fi.bind(window,"mousemove",G),Fi.bind(window,"touchmove",G),Fi.bind(window,"mouseup",f),Fi.bind(window,"touchend",f)}function h(){Fi.unbind(window,"mousemove",R),Fi.unbind(window,"touchmove",R),Fi.unbind(window,"mouseup",h),Fi.unbind(window,"touchend",h),S()}function f(){Fi.unbind(window,"mousemove",G),Fi.unbind(window,"touchmove",G),Fi.unbind(window,"mouseup",f),Fi.unbind(window,"touchend",f),S()}function A(){var re=u4(this.value);!1!==re?(s.__color.__state=re,s.setValue(s.__color.toOriginal())):this.value=s.__color.toString()}function S(){s.__onFinishChange&&s.__onFinishChange.call(s,s.__color.toOriginal())}function R(re){-1===re.type.indexOf("touch")&&re.preventDefault();var se=s.__saturation_field.getBoundingClientRect(),le=re.touches&&re.touches[0]||re,We=(le.clientX-se.left)/(se.right-se.left),Mt=1-(le.clientY-se.top)/(se.bottom-se.top);return Mt>1?Mt=1:Mt<0&&(Mt=0),We>1?We=1:We<0&&(We=0),s.__color.v=Mt,s.__color.s=We,s.setValue(s.__color.toOriginal()),!1}function G(re){-1===re.type.indexOf("touch")&&re.preventDefault();var se=s.__hue_field.getBoundingClientRect(),Ce=1-((re.touches&&re.touches[0]||re).clientY-se.top)/(se.bottom-se.top);return Ce>1?Ce=1:Ce<0&&(Ce=0),s.__color.h=360*Ce,s.setValue(s.__color.toOriginal()),!1}return Sr.extend(r.__selector.style,{width:"122px",height:"102px",padding:"3px",backgroundColor:"#222",boxShadow:"0px 1px 3px rgba(0,0,0,0.3)"}),Sr.extend(r.__field_knob.style,{position:"absolute",width:"12px",height:"12px",border:r.__field_knob_border+(r.__color.v<.5?"#fff":"#000"),boxShadow:"0px 1px 3px rgba(0,0,0,0.5)",borderRadius:"12px",zIndex:1}),Sr.extend(r.__hue_knob.style,{position:"absolute",width:"15px",height:"2px",borderRight:"4px solid #fff",zIndex:1}),Sr.extend(r.__saturation_field.style,{width:"100px",height:"100px",border:"1px solid #555",marginRight:"3px",display:"inline-block",cursor:"pointer"}),Sr.extend(o.style,{width:"100%",height:"100%",background:"none"}),Jq(o,"top","rgba(0,0,0,0)","#000"),Sr.extend(r.__hue_field.style,{width:"15px",height:"100px",border:"1px solid #555",cursor:"ns-resize",position:"absolute",top:"3px",right:"3px"}),function lge(n){n.style.background="",n.style.cssText+="background: -moz-linear-gradient(top, #ff0000 0%, #ff00ff 17%, #0000ff 34%, #00ffff 50%, #00ff00 67%, #ffff00 84%, #ff0000 100%);",n.style.cssText+="background: -webkit-linear-gradient(top, #ff0000 0%,#ff00ff 17%,#0000ff 34%,#00ffff 50%,#00ff00 67%,#ffff00 84%,#ff0000 100%);",n.style.cssText+="background: -o-linear-gradient(top, #ff0000 0%,#ff00ff 17%,#0000ff 34%,#00ffff 50%,#00ff00 67%,#ffff00 84%,#ff0000 100%);",n.style.cssText+="background: -ms-linear-gradient(top, #ff0000 0%,#ff00ff 17%,#0000ff 34%,#00ffff 50%,#00ff00 67%,#ffff00 84%,#ff0000 100%);",n.style.cssText+="background: linear-gradient(top, #ff0000 0%,#ff00ff 17%,#0000ff 34%,#00ffff 50%,#00ff00 67%,#ffff00 84%,#ff0000 100%);"}(r.__hue_field),Sr.extend(r.__input.style,{outline:"none",textAlign:"center",color:"#fff",border:0,fontWeight:"bold",textShadow:r.__input_textShadow+"rgba(0,0,0,0.7)"}),Fi.bind(r.__saturation_field,"mousedown",l),Fi.bind(r.__saturation_field,"touchstart",l),Fi.bind(r.__field_knob,"mousedown",l),Fi.bind(r.__field_knob,"touchstart",l),Fi.bind(r.__hue_field,"mousedown",d),Fi.bind(r.__hue_field,"touchstart",d),r.__saturation_field.appendChild(o),r.__selector.appendChild(r.__field_knob),r.__selector.appendChild(r.__saturation_field),r.__selector.appendChild(r.__hue_field),r.__hue_field.appendChild(r.__hue_knob),r.domElement.appendChild(r.__input),r.domElement.appendChild(r.__selector),r.updateDisplay(),r}return Zy(e,n),gg(e,[{key:"updateDisplay",value:function(){var i=u4(this.getValue());if(!1!==i){var r=!1;Sr.each(Rh.COMPONENTS,function(l){if(!Sr.isUndefined(i[l])&&!Sr.isUndefined(this.__color.__state[l])&&i[l]!==this.__color.__state[l])return r=!0,{}},this),r&&Sr.extend(this.__color.__state,i)}Sr.extend(this.__temp.__state,this.__color.__state),this.__temp.a=1;var s=this.__color.v<.5||this.__color.s>.5?255:0,o=255-s;Sr.extend(this.__field_knob.style,{marginLeft:100*this.__color.s-7+"px",marginTop:100*(1-this.__color.v)-7+"px",backgroundColor:this.__temp.toHexString(),border:this.__field_knob_border+"rgb("+s+","+s+","+s+")"}),this.__hue_knob.style.marginTop=100*(1-this.__color.h/360)+"px",this.__temp.s=1,this.__temp.v=1,Jq(this.__saturation_field,"left","#fff",this.__temp.toHexString()),this.__input.value=this.__color.toString(),Sr.extend(this.__input.style,{backgroundColor:this.__color.toHexString(),color:"rgb("+s+","+s+","+s+")",textShadow:this.__input_textShadow+"rgba("+o+","+o+","+o+",.7)"})}}]),e}(ev),age=["-moz-","-o-","-webkit-","-ms-",""];function Jq(n,e,t,i){n.style.background="",Sr.each(age,function(r){n.style.cssText+="background: "+r+"linear-gradient("+e+", "+t+" 0%, "+i+" 100%); "})}var hge=function(e,t){var i=e[t];return Sr.isArray(arguments[2])||Sr.isObject(arguments[2])?new Xq(e,t,arguments[2]):Sr.isNumber(i)?Sr.isNumber(arguments[2])&&Sr.isNumber(arguments[3])?Sr.isNumber(arguments[4])?new f4(e,t,arguments[2],arguments[3],arguments[4]):new f4(e,t,arguments[2],arguments[3]):Sr.isNumber(arguments[4])?new _E(e,t,{min:arguments[2],max:arguments[3],step:arguments[4]}):new _E(e,t,{min:arguments[2],max:arguments[3]}):Sr.isString(i)?new Yq(e,t):Sr.isFunction(i)?new WF(e,t,""):Sr.isBoolean(i)?new qF(e,t):null},fge=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function uge(n){setTimeout(n,1e3/60)},pge=function(){function n(){Ag(this,n),this.backgroundElement=document.createElement("div"),Sr.extend(this.backgroundElement.style,{backgroundColor:"rgba(0,0,0,0.8)",top:0,left:0,display:"none",zIndex:"1000",opacity:0,WebkitTransition:"opacity 0.2s linear",transition:"opacity 0.2s linear"}),Fi.makeFullscreen(this.backgroundElement),this.backgroundElement.style.position="fixed",this.domElement=document.createElement("div"),Sr.extend(this.domElement.style,{position:"fixed",display:"none",zIndex:"1001",opacity:0,WebkitTransition:"-webkit-transform 0.2s ease-out, opacity 0.2s linear",transition:"transform 0.2s ease-out, opacity 0.2s linear"}),document.body.appendChild(this.backgroundElement),document.body.appendChild(this.domElement);var e=this;Fi.bind(this.backgroundElement,"click",function(){e.hide()})}return gg(n,[{key:"show",value:function(){var t=this;this.backgroundElement.style.display="block",this.domElement.style.display="block",this.domElement.style.opacity=0,this.domElement.style.webkitTransform="scale(1.1)",this.layout(),Sr.defer(function(){t.backgroundElement.style.opacity=1,t.domElement.style.opacity=1,t.domElement.style.webkitTransform="scale(1)"})}},{key:"hide",value:function(){var t=this,i=function r(){t.domElement.style.display="none",t.backgroundElement.style.display="none",Fi.unbind(t.domElement,"webkitTransitionEnd",r),Fi.unbind(t.domElement,"transitionend",r),Fi.unbind(t.domElement,"oTransitionEnd",r)};Fi.bind(this.domElement,"webkitTransitionEnd",i),Fi.bind(this.domElement,"transitionend",i),Fi.bind(this.domElement,"oTransitionEnd",i),this.backgroundElement.style.opacity=0,this.domElement.style.opacity=0,this.domElement.style.webkitTransform="scale(1.1)"}},{key:"layout",value:function(){this.domElement.style.left=window.innerWidth/2-Fi.getWidth(this.domElement)/2+"px",this.domElement.style.top=window.innerHeight/2-Fi.getHeight(this.domElement)/2+"px"}}]),n}();!function(e,t){var i=t||document,r=document.createElement("style");r.type="text/css",r.innerHTML=e;var s=i.getElementsByTagName("head")[0];try{s.appendChild(r)}catch{}}(function tge(n){if(n&&!(typeof window>"u")){var e=document.createElement("style");return e.setAttribute("type","text/css"),e.innerHTML=n,document.head.appendChild(e),n}}(".dg ul{list-style:none;margin:0;padding:0;width:100%;clear:both}.dg.ac{position:fixed;top:0;left:0;right:0;height:0;z-index:0}.dg:not(.ac) .main{overflow:hidden}.dg.main{-webkit-transition:opacity .1s linear;-o-transition:opacity .1s linear;-moz-transition:opacity .1s linear;transition:opacity .1s linear}.dg.main.taller-than-window{overflow-y:auto}.dg.main.taller-than-window .close-button{opacity:1;margin-top:-1px;border-top:1px solid #2c2c2c}.dg.main ul.closed .close-button{opacity:1 !important}.dg.main:hover .close-button,.dg.main .close-button.drag{opacity:1}.dg.main .close-button{-webkit-transition:opacity .1s linear;-o-transition:opacity .1s linear;-moz-transition:opacity .1s linear;transition:opacity .1s linear;border:0;line-height:19px;height:20px;cursor:pointer;text-align:center;background-color:#000}.dg.main .close-button.close-top{position:relative}.dg.main .close-button.close-bottom{position:absolute}.dg.main .close-button:hover{background-color:#111}.dg.a{float:right;margin-right:15px;overflow-y:visible}.dg.a.has-save>ul.close-top{margin-top:0}.dg.a.has-save>ul.close-bottom{margin-top:27px}.dg.a.has-save>ul.closed{margin-top:0}.dg.a .save-row{top:0;z-index:1002}.dg.a .save-row.close-top{position:relative}.dg.a .save-row.close-bottom{position:fixed}.dg li{-webkit-transition:height .1s ease-out;-o-transition:height .1s ease-out;-moz-transition:height .1s ease-out;transition:height .1s ease-out;-webkit-transition:overflow .1s linear;-o-transition:overflow .1s linear;-moz-transition:overflow .1s linear;transition:overflow .1s linear}.dg li:not(.folder){cursor:auto;height:27px;line-height:27px;padding:0 4px 0 5px}.dg li.folder{padding:0;border-left:4px solid rgba(0,0,0,0)}.dg li.title{cursor:pointer;margin-left:-4px}.dg .closed li:not(.title),.dg .closed ul li,.dg .closed ul li>*{height:0;overflow:hidden;border:0}.dg .cr{clear:both;padding-left:3px;height:27px;overflow:hidden}.dg .property-name{cursor:default;float:left;clear:left;width:40%;overflow:hidden;text-overflow:ellipsis}.dg .cr.function .property-name{width:100%}.dg .c{float:left;width:60%;position:relative}.dg .c input[type=text]{border:0;margin-top:4px;padding:3px;width:100%;float:right}.dg .has-slider input[type=text]{width:30%;margin-left:0}.dg .slider{float:left;width:66%;margin-left:-5px;margin-right:0;height:19px;margin-top:4px}.dg .slider-fg{height:100%}.dg .c input[type=checkbox]{margin-top:7px}.dg .c select{margin-top:5px}.dg .cr.function,.dg .cr.function .property-name,.dg .cr.function *,.dg .cr.boolean,.dg .cr.boolean *{cursor:pointer}.dg .cr.color{overflow:visible}.dg .selector{display:none;position:absolute;margin-left:-9px;margin-top:23px;z-index:10}.dg .c:hover .selector,.dg .selector.drag{display:block}.dg li.save-row{padding:0}.dg li.save-row .button{display:inline-block;padding:0px 6px}.dg.dialogue{background-color:#222;width:460px;padding:15px;font-size:13px;line-height:15px}#dg-new-constructor{padding:10px;color:#222;font-family:Monaco, monospace;font-size:10px;border:0;resize:none;box-shadow:inset 1px 1px 1px #888;word-wrap:break-word;margin:12px 0;display:block;width:440px;overflow-y:scroll;height:100px;position:relative}#dg-local-explain{display:none;font-size:11px;line-height:17px;border-radius:3px;background-color:#333;padding:8px;margin-top:10px}#dg-local-explain code{font-size:10px}#dat-gui-save-locally{display:none}.dg{color:#eee;font:11px 'Lucida Grande', sans-serif;text-shadow:0 -1px 0 #111}.dg.main::-webkit-scrollbar{width:5px;background:#1a1a1a}.dg.main::-webkit-scrollbar-corner{height:0;display:none}.dg.main::-webkit-scrollbar-thumb{border-radius:5px;background:#676767}.dg li:not(.folder){background:#1a1a1a;border-bottom:1px solid #2c2c2c}.dg li.save-row{line-height:25px;background:#dad5cb;border:0}.dg li.save-row select{margin-left:5px;width:108px}.dg li.save-row .button{margin-left:5px;margin-top:1px;border-radius:2px;font-size:9px;line-height:7px;padding:4px 4px 5px 4px;background:#c5bdad;color:#fff;text-shadow:0 1px 0 #b0a58f;box-shadow:0 -1px 0 #b0a58f;cursor:pointer}.dg li.save-row .button.gears{background:#c5bdad url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAANCAYAAAB/9ZQ7AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAQJJREFUeNpiYKAU/P//PwGIC/ApCABiBSAW+I8AClAcgKxQ4T9hoMAEUrxx2QSGN6+egDX+/vWT4e7N82AMYoPAx/evwWoYoSYbACX2s7KxCxzcsezDh3evFoDEBYTEEqycggWAzA9AuUSQQgeYPa9fPv6/YWm/Acx5IPb7ty/fw+QZblw67vDs8R0YHyQhgObx+yAJkBqmG5dPPDh1aPOGR/eugW0G4vlIoTIfyFcA+QekhhHJhPdQxbiAIguMBTQZrPD7108M6roWYDFQiIAAv6Aow/1bFwXgis+f2LUAynwoIaNcz8XNx3Dl7MEJUDGQpx9gtQ8YCueB+D26OECAAQDadt7e46D42QAAAABJRU5ErkJggg==) 2px 1px no-repeat;height:7px;width:8px}.dg li.save-row .button:hover{background-color:#bab19e;box-shadow:0 -1px 0 #b0a58f}.dg li.folder{border-bottom:0}.dg li.title{padding-left:16px;background:#000 url(data:image/gif;base64,R0lGODlhBQAFAJEAAP////Pz8////////yH5BAEAAAIALAAAAAAFAAUAAAIIlI+hKgFxoCgAOw==) 6px 10px no-repeat;cursor:pointer;border-bottom:1px solid rgba(255,255,255,0.2)}.dg .closed li.title{background-image:url(data:image/gif;base64,R0lGODlhBQAFAJEAAP////Pz8////////yH5BAEAAAIALAAAAAAFAAUAAAIIlGIWqMCbWAEAOw==)}.dg .cr.boolean{border-left:3px solid #806787}.dg .cr.color{border-left:3px solid}.dg .cr.function{border-left:3px solid #e61d5f}.dg .cr.number{border-left:3px solid #2FA1D6}.dg .cr.number input[type=text]{color:#2FA1D6}.dg .cr.string{border-left:3px solid #1ed36f}.dg .cr.string input[type=text]{color:#1ed36f}.dg .cr.function:hover,.dg .cr.boolean:hover{background:#111}.dg .c input[type=text]{background:#303030;outline:none}.dg .c input[type=text]:hover{background:#3c3c3c}.dg .c input[type=text]:focus{background:#494949;color:#fff}.dg .c .slider{background:#303030;cursor:ew-resize}.dg .c .slider-fg{background:#2FA1D6;max-width:100%}.dg .c .slider:hover{background:#3c3c3c}.dg .c .slider:hover .slider-fg{background:#44abda}\n"));var yE="Default",vE=function(){try{return!!window.localStorage}catch{return!1}}(),bE=void 0,iQ=!0,gC=void 0,jF=!1,rQ=[],fc=function n(e){var t=this,i=e||{};this.domElement=document.createElement("div"),this.__ul=document.createElement("ul"),this.domElement.appendChild(this.__ul),Fi.addClass(this.domElement,"dg"),this.__folders={},this.__controllers=[],this.__rememberedObjects=[],this.__rememberedObjectIndecesToControllers=[],this.__listening=[],i=Sr.defaults(i,{closeOnTop:!1,autoPlace:!0,width:n.DEFAULT_WIDTH}),i=Sr.defaults(i,{resizable:i.autoPlace,hideable:i.autoPlace}),Sr.isUndefined(i.load)?i.load={preset:yE}:i.preset&&(i.load.preset=i.preset),Sr.isUndefined(i.parent)&&i.hideable&&rQ.push(this),i.resizable=Sr.isUndefined(i.parent)&&i.resizable,i.autoPlace&&Sr.isUndefined(i.scrollable)&&(i.scrollable=!0);var r=vE&&"true"===localStorage.getItem(_C(0,"isLocal")),s=void 0,o=void 0;if(Object.defineProperties(this,{parent:{get:function(){return i.parent}},scrollable:{get:function(){return i.scrollable}},autoPlace:{get:function(){return i.autoPlace}},closeOnTop:{get:function(){return i.closeOnTop}},preset:{get:function(){return t.parent?t.getRoot().preset:i.load.preset},set:function(S){t.parent?t.getRoot().preset=S:i.load.preset=S,function yge(n){for(var e=0;e1){var l=t.__li.nextElementSibling;return t.remove(),xE(n,t.object,t.property,{before:l,factoryArgs:[Sr.toArray(arguments)]})}if(Sr.isArray(o)||Sr.isObject(o)){var d=t.__li.nextElementSibling;return t.remove(),xE(n,t.object,t.property,{before:d,factoryArgs:[o]})}},name:function(o){return t.__li.firstElementChild.firstElementChild.innerHTML=o,t},listen:function(){return t.__gui.listen(t),t},remove:function(){return t.__gui.remove(t),t}}),t instanceof f4){var i=new _E(t.object,t.property,{min:t.__min,max:t.__max,step:t.__step});Sr.each(["updateDisplay","onChange","onFinishChange","step","min","max"],function(s){var o=t[s],l=i[s];t[s]=i[s]=function(){var d=Array.prototype.slice.call(arguments);return l.apply(i,d),o.apply(t,d)}}),Fi.addClass(e,"has-slider"),t.domElement.insertBefore(i.domElement,t.domElement.firstElementChild)}else if(t instanceof _E){var r=function(o){if(Sr.isNumber(t.__min)&&Sr.isNumber(t.__max)){var l=t.__li.firstElementChild.firstElementChild.innerHTML,d=t.__gui.__listening.indexOf(t)>-1;t.remove();var h=xE(n,t.object,t.property,{before:t.__li.nextElementSibling,factoryArgs:[t.__min,t.__max,t.__step]});return h.name(l),d&&h.listen(),h}return o};t.min=Sr.compose(r,t.min),t.max=Sr.compose(r,t.max)}else t instanceof qF?(Fi.bind(e,"click",function(){Fi.fakeEvent(t.__checkbox,"click")}),Fi.bind(t.__checkbox,"click",function(s){s.stopPropagation()})):t instanceof WF?(Fi.bind(e,"click",function(){Fi.fakeEvent(t.__button,"click")}),Fi.bind(e,"mouseover",function(){Fi.addClass(t.__button,"hover")}),Fi.bind(e,"mouseout",function(){Fi.removeClass(t.__button,"hover")})):t instanceof p4&&(Fi.addClass(e,"color"),t.updateDisplay=Sr.compose(function(s){return e.style.borderLeftColor=t.__color.toString(),s},t.updateDisplay),t.updateDisplay());t.setValue=Sr.compose(function(s){return n.getRoot().__preset_select&&t.isModified()&&XF(n.getRoot(),!0),s},t.setValue)}(n,d,r),n.__controllers.push(r),r}function _C(n,e){return document.location.href+"."+e}function YF(n,e,t){var i=document.createElement("option");i.innerHTML=e,i.value=e,n.__preset_select.appendChild(i),t&&(n.__preset_select.selectedIndex=n.__preset_select.length-1)}function aQ(n,e){e.style.display=n.useLocalStorage?"block":"none"}function KF(n,e){n.domElement.style.width=e+"px",n.__save_row&&n.autoPlace&&(n.__save_row.style.width=e+"px"),n.__closeButton&&(n.__closeButton.style.width=e+"px")}function m4(n,e){var t={};return Sr.each(n.__rememberedObjects,function(i,r){var s={};Sr.each(n.__rememberedObjectIndecesToControllers[r],function(l,d){s[d]=e?l.initialValue:l.getValue()}),t[r]=s}),t}function lQ(n){0!==n.length&&fge.call(window,function(){lQ(n)}),Sr.each(n,function(e){e.updateDisplay()})}fc.toggleHide=function(){jF=!jF,Sr.each(rQ,function(n){n.domElement.style.display=jF?"none":""})},fc.CLASS_AUTO_PLACE="a",fc.CLASS_AUTO_PLACE_CONTAINER="ac",fc.CLASS_MAIN="main",fc.CLASS_CONTROLLER_ROW="cr",fc.CLASS_TOO_TALL="taller-than-window",fc.CLASS_CLOSED="closed",fc.CLASS_CLOSE_BUTTON="close-button",fc.CLASS_CLOSE_TOP="close-top",fc.CLASS_CLOSE_BOTTOM="close-bottom",fc.CLASS_DRAG="drag",fc.DEFAULT_WIDTH=245,fc.TEXT_CLOSED="Close Controls",fc.TEXT_OPEN="Open Controls",fc._keydownHandler=function(n){"text"!==document.activeElement.type&&(72===n.which||72===n.keyCode)&&fc.toggleHide()},Fi.bind(window,"keydown",fc._keydownHandler,!1),Sr.extend(fc.prototype,{add:function(e,t){return xE(this,e,t,{factoryArgs:Array.prototype.slice.call(arguments,2)})},addColor:function(e,t){return xE(this,e,t,{color:!0})},remove:function(e){this.__ul.removeChild(e.__li),this.__controllers.splice(this.__controllers.indexOf(e),1);var t=this;Sr.defer(function(){t.onResize()})},destroy:function(){if(this.parent)throw new Error("Only the root GUI should be removed with .destroy(). For subfolders, use gui.removeFolder(folder) instead.");this.autoPlace&&gC.removeChild(this.domElement);var e=this;Sr.each(this.__folders,function(t){e.removeFolder(t)}),Fi.unbind(window,"keydown",fc._keydownHandler,!1),sQ(this)},addFolder:function(e){if(void 0!==this.__folders[e])throw new Error('You already have a folder in this GUI by the name "'+e+'"');var t={name:e,parent:this};t.autoPlace=this.autoPlace,this.load&&this.load.folders&&this.load.folders[e]&&(t.closed=this.load.folders[e].closed,t.load=this.load.folders[e]);var i=new fc(t);this.__folders[e]=i;var r=$F(this,i.domElement);return Fi.addClass(r,"folder"),i},removeFolder:function(e){this.__ul.removeChild(e.domElement.parentElement),delete this.__folders[e.name],this.load&&this.load.folders&&this.load.folders[e.name]&&delete this.load.folders[e.name],sQ(e);var t=this;Sr.each(e.__folders,function(i){e.removeFolder(i)}),Sr.defer(function(){t.onResize()})},open:function(){this.closed=!1},close:function(){this.closed=!0},hide:function(){this.domElement.style.display="none"},show:function(){this.domElement.style.display=""},onResize:function(){var e=this.getRoot();if(e.scrollable){var t=Fi.getOffset(e.__ul).top,i=0;Sr.each(e.__ul.childNodes,function(r){e.autoPlace&&r===e.__save_row||(i+=Fi.getHeight(r))}),window.innerHeight-t-20GUI\'s constructor:\n\n \n\n
\n\n Automatically save\n values to localStorage on exit.\n\n
The values saved to localStorage will\n override those passed to dat.GUI\'s constructor. This makes it\n easier to work incrementally, but localStorage is fragile,\n and your friends may not see the same values you do.\n\n
\n\n
\n\n'),this.parent)throw new Error("You can only call remember on a top level GUI.");var e=this;Sr.each(Array.prototype.slice.call(arguments),function(t){0===e.__rememberedObjects.length&&function gge(n){var e=n.__save_row=document.createElement("li");Fi.addClass(n.domElement,"has-save"),n.__ul.insertBefore(e,n.__ul.firstChild),Fi.addClass(e,"save-row");var t=document.createElement("span");t.innerHTML=" ",Fi.addClass(t,"button gears");var i=document.createElement("span");i.innerHTML="Save",Fi.addClass(i,"button"),Fi.addClass(i,"save");var r=document.createElement("span");r.innerHTML="New",Fi.addClass(r,"button"),Fi.addClass(r,"save-as");var s=document.createElement("span");s.innerHTML="Revert",Fi.addClass(s,"button"),Fi.addClass(s,"revert");var o=n.__preset_select=document.createElement("select");if(n.load&&n.load.remembered?Sr.each(n.load.remembered,function(A,S){YF(n,S,S===n.preset)}):YF(n,yE,!1),Fi.bind(o,"change",function(){for(var A=0;A0&&(e.preset=this.preset,e.remembered||(e.remembered={}),e.remembered[this.preset]=m4(this)),e.folders={},Sr.each(this.__folders,function(t,i){e.folders[i]=t.getSaveObject()}),e},save:function(){this.load.remembered||(this.load.remembered={}),this.load.remembered[this.preset]=m4(this),XF(this,!1),this.saveToLocalStorageIfPossible()},saveAs:function(e){this.load.remembered||(this.load.remembered={},this.load.remembered[yE]=m4(this,!0)),this.load.remembered[e]=m4(this),this.preset=e,YF(this,e,!0),this.saveToLocalStorageIfPossible()},revert:function(e){Sr.each(this.__controllers,function(t){this.getRoot().load.remembered?oQ(e||this.getRoot(),t):t.setValue(t.initialValue),t.__onFinishChange&&t.__onFinishChange.call(t,t.getValue())},this),Sr.each(this.__folders,function(t){t.revert(t)}),e||XF(this.getRoot(),!1)},listen:function(e){var t=0===this.__listening.length;this.__listening.push(e),t&&lQ(this.__listening)},updateDisplay:function(){Sr.each(this.__controllers,function(e){e.updateDisplay()}),Sr.each(this.__folders,function(e){e.updateDisplay()})}});var cQ=fc;class dQ{constructor(e="eventDisplay",t){var i;this.three=t,this.guiParameters={rotate:void 0,axis:void 0,lowRes:void 0,eventData:void 0,geometries:void 0,labels:void 0},this.maxPositionX=4e3,this.maxPositionY=4e3,this.maxPositionZ=4e3,this.gui=new cQ,this.gui.domElement.id="gui",this.gui.domElement.style.cssText="position: absolute; right: 0; top: 2rem; z-index: 11;",(null!==(i=document.getElementById(e))&&void 0!==i?i:document.body).appendChild(this.gui.domElement),this.geomFolder=null,this.eventFolder=null,this.labelsFolder=null,this.sceneManager=t.getSceneManager()}clear(){const e=document.getElementById("gui");e?.remove(),this.geomFolder=null}addGeometryFolder(){null===this.geomFolder&&(this.geomFolder=this.gui.addFolder(el.GEOMETRIES_ID)),this.guiParameters.geometries={show:!0,wireframe:!1},this.geomFolder.add(this.guiParameters.geometries,"show").name("Show").listen().onChange(i=>{this.sceneManager.objectVisibility(this.sceneManager.getObjectByName(el.GEOMETRIES_ID),i)}),this.geomFolder.add(this.guiParameters.geometries,"wireframe").name("Wireframe").listen().onChange(i=>{this.sceneManager.wireframeGeometries(i)})}addGeometry(e,t){const{name:i,material:r,visible:s}=e,o=r?.color;this.guiParameters[i]={show:s,color:o??"#000000",x:0,y:0,z:0,detectorOpacity:1,remove:this.removeOBJ(e),scale:1};const l=this.geomFolder.addFolder(i);l.addColor(this.guiParameters[i],"color").name("Color").onChange(S=>this.sceneManager.changeObjectColor(e,S)),l.add(this.guiParameters[i],"detectorOpacity",0,1).name("Opacity").onFinishChange(S=>this.sceneManager.setGeometryOpacity(e,S)),l.add(this.guiParameters[i],"show").name("Show").listen().onChange(S=>this.sceneManager.objectVisibility(e,S)),l.add(this.guiParameters[i],"scale",0,1e3).name("Scale").onChange(S=>{this.sceneManager.scaleObject(e,S)}),l.add(this.guiParameters[i],"x",-this.maxPositionX,this.maxPositionX).name("X").onChange(S=>this.sceneManager.getObjectPosition(i).setX(S)),l.add(this.guiParameters[i],"y",-this.maxPositionY,this.maxPositionY).name("Y").onChange(S=>this.sceneManager.getObjectPosition(i).setY(S)),l.add(this.guiParameters[i],"z",-this.maxPositionZ,this.maxPositionZ).name("Z").onChange(S=>this.sceneManager.getObjectPosition(i).setZ(S)),l.add(this.guiParameters[i],"remove").name("Remove")}removeOBJ(e){return()=>{const t=this.geomFolder.__folders[e.name];t&&this.geomFolder.removeFolder(t),this.sceneManager.removeGeometry(e)}}addEventDataFolder(){null!==this.eventFolder&&this.gui.removeFolder(this.eventFolder),this.eventFolder=this.gui.addFolder("Event Data"),this.guiParameters.eventData={show:!0,depthTest:!0},this.eventFolder.add(this.guiParameters.eventData,"show").name("Show").listen().onChange(i=>this.sceneManager.groupVisibility(el.EVENT_DATA_ID,i)),this.eventFolder.add(this.guiParameters.eventData,"depthTest").name("Depth Test").listen().onChange(i=>this.three.eventDataDepthTest(i))}addEventDataTypeFolder(e){const t=this.eventFolder.addFolder(e);this.guiParameters.eventData[e]=!0,t.add(this.guiParameters.eventData,e).name("Show").listen().onChange(r=>this.sceneManager.objectVisibility(this.sceneManager.getObjectByName(el.EVENT_DATA_ID).getObjectByName(e),r))}addCollection(e,t,i,r){const s=this.eventFolder.__folders[e];if(!s)return;this.guiParameters[t]={show:!0,color:0,randomColor:()=>this.three.getColorManager().collectionColorRandom(t),resetCut:()=>this.sceneManager.groupVisibility(t,!0,el.EVENT_DATA_ID)};const o=s.addFolder(t);o.add(this.guiParameters[t],"show").name("Show").listen().onChange(h=>{const f=this.sceneManager.getObjectByName(el.EVENT_DATA_ID).getObjectByName(t);this.sceneManager.objectVisibility(f,h)});const d=o.addColor(this.guiParameters[t],"color").name("Color");if(d.onChange(h=>this.three.getColorManager().collectionColor(t,h)),d.setValue(r?.getHex()),o.add(this.guiParameters[t],"randomColor").name("Random Color"),i){const h=o.addFolder("Cuts");h.add(this.guiParameters[t],"resetCut").name("Reset cuts");for(const f of i)h.add({minValue:f.minValue},"minValue",f.minValue,f.maxValue).name("min "+f.field).onChange(R=>{f.minValue=R,this.sceneManager.collectionFilter(t,i)}),h.add({maxValue:f.maxValue},"maxValue",f.minValue,f.maxValue).name("max "+f.field).onChange(R=>{f.maxValue=R,this.sceneManager.collectionFilter(t,i)})}}addLabelsFolder(e){if(null!==this.labelsFolder)return;const{onToggle:t,onSizeChange:i,onColorChange:r,onSaveLabels:s,onLoadLabels:o}=e;this.labelsFolder=this.gui.addFolder(el.LABELS_ID),this.guiParameters.labels={show:!0,size:1,color:"#a8a8a8",saveLabels:s,loadLabels:o},this.labelsFolder.add(this.guiParameters.labels,"show").name("Show").listen().onChange(t),this.labelsFolder.add(this.guiParameters.labels,"size",0,10).name("Size").onFinishChange(i),this.labelsFolder.addColor(this.guiParameters.labels,"color").name("Color").onChange(r),this.labelsFolder.add(this.guiParameters.labels,"saveLabels").name("Save Labels"),this.labelsFolder.add(this.guiParameters.labels,"loadLabels").name("Load Labels")}addLabel(e,t){this.guiParameters[e]={show:!0,color:11513775};const i=this.labelsFolder.addFolder(e);i.add(this.guiParameters[e],"show").name("Show").listen().onChange(o=>{const l=this.sceneManager.getObjectByName(el.LABELS_ID).getObjectByName(e);this.sceneManager.objectVisibility(l,o)}),i.addColor(this.guiParameters[e],"color").name("\xc7olor").onChange(o=>this.sceneManager.changeObjectColor(this.sceneManager.getObjectByName(e),o)),this.guiParameters[e].removeLabel=()=>{t?.(),this.removeLabel(e,i)},i.add(this.guiParameters[e],"removeLabel").name("Remove")}removeLabel(e,t){t||(t=this.labelsFolder.__folders[e]),t&&this.labelsFolder.removeFolder(t)}getEventDataTypeFolder(e){return this.eventFolder.__folders[e]}}var Am=function(n){return n.CHARGE="charge",n.MOM="mom",n.VERTEX="vertex",n}(Am||{});class Cge{constructor(e,t,i,r){this.colorManager=e,this.allColorByOptions=[{key:Am.CHARGE,name:"Charge "+Xy.getPrettySymbol("charge"),initialize:this.initChargeColorOptions.bind(this),apply:this.applyChargeColorOptions.bind(this)},{key:Am.MOM,name:"Momentum "+Xy.getPrettySymbol("mom"),initialize:this.initMomColorOptions.bind(this),apply:this.applyMomColorOptions.bind(this)},{key:Am.VERTEX,name:"Vertex",apply:this.applyVertexColorOptions.bind(this)}],this.chargeColors={"-1":"#ff0000",0:"#ff0000",1:"#ff0000"},this.momColors={min:{value:0,color:"#ff0000"},max:{value:5e4,color:"#ff0000"}},this.collectionName=t.name,this.colorOptionsFolder=t.addChild("Color Options"),this.colorOptionsFolder.addConfig("color",{label:"Color",color:i?`#${i?.getHexString()}`:void 0,onChange:s=>this.colorManager.collectionColor(this.collectionName,s)}),this.colorOptionsFolder.addConfig("button",{label:"Random",onClick:()=>this.colorManager.collectionColorRandom(this.collectionName)}),r?.length>0&&(this.colorByOptions=this.allColorByOptions.filter(s=>r.includes(s.key)),this.initColorByOptions(),this.colorByOptions.forEach(s=>{var o;return null===(o=s.initialize)||void 0===o?void 0:o.call(s)}),this.onlySelectedColorByOption())}initColorByOptions(){this.selectedColorByOption=this.colorByOptions[0].key,this.colorOptionsFolder.addConfig("select",{label:"Color by",options:this.colorByOptions.map(e=>e.name),onChange:e=>{var t;const i=this.colorByOptions.find(r=>r.name===e);this.selectedColorByOption=i?.key,null===(t=i?.apply)||void 0===t||t.call(i),this.onlySelectedColorByOption()}})}initChargeColorOptions(){[-1,0,1].forEach(e=>{this.colorOptionsFolder.addConfig("color",{label:`${Xy.getPrettySymbol("charge")}=${e}`,group:Am.CHARGE,color:this.chargeColors[e],onChange:t=>{this.chargeColors[e]=t,this.selectedColorByOption===Am.CHARGE&&this.colorManager.colorObjectsByProperty(t,this.collectionName,i=>this.shouldColorByCharge(i,e))}})})}applyChargeColorOptions(){[-1,0,1].forEach(e=>{this.colorManager.colorObjectsByProperty(this.chargeColors[e],this.collectionName,t=>this.shouldColorByCharge(t,e))})}shouldColorByCharge(e,t){var i;return Math.sign(1/parseInt(null===(i=e?.dparams)||void 0===i?void 0:i[4]))===t||e?.charge===t||void 0}initMomColorOptions(){Object.entries(this.momColors).forEach(([e,t])=>{this.colorOptionsFolder.addConfig("slider",{label:Xy.getPrettySymbol("mom")+" "+e,group:Am.MOM,min:this.momColors.min.value,max:this.momColors.max.value,value:this.momColors[e].value,step:10,allowCustomValue:!0,onChange:i=>{this.momColors[e].value=i,this.selectedColorByOption===Am.MOM&&(this.colorByMomentum("min"),this.colorByMomentum("max"))}}),this.colorOptionsFolder.addConfig("color",{label:Xy.getPrettySymbol("mom")+" "+e+" color",group:Am.MOM,color:t.color,onChange:i=>{this.momColors[e].color=i,this.selectedColorByOption===Am.MOM&&this.colorByMomentum(e)}})})}applyMomColorOptions(){this.colorByMomentum("min"),this.colorByMomentum("max")}colorByMomentum(e){this.colorManager.colorObjectsByProperty(this.momColors[e].color,this.collectionName,t=>{const i=this.getMomentum(t),r=(this.momColors.min.value+this.momColors.max.value)/2;return"max"===e&&i>r&&ithis.momColors.min.value||void 0})}getMomentum(e){var t,i;return null!==(t=e?.dparams)&&void 0!==t&&t[4]?Math.abs(1/parseFloat(null===(i=e?.dparams)||void 0===i?void 0:i[4])):e?.mom}applyVertexColorOptions(){this.colorManager.colorTracksByVertex(this.collectionName)}onlySelectedColorByOption(){this.colorOptionsFolder.configs.forEach(e=>{e.hidden=void 0!==e.group&&e.group!==this.selectedColorByOption})}}class ZF{constructor(e,t){this.phoenixMenuRoot=e,this.three=t,this.geomFolder=null,this.eventFolder=null,this.labelsFolder=null,this.sceneManager=t.getSceneManager()}clear(){this.phoenixMenuRoot&&(this.phoenixMenuRoot.truncate(),this.phoenixMenuRoot=void 0),this.geomFolder=null,this.eventFolder=null,this.labelsFolder=null}addGeometryFolder(){null===this.geomFolder&&(this.geomFolder=this.phoenixMenuRoot.addChild("Detector",e=>{this.sceneManager.groupVisibility(el.GEOMETRIES_ID,e)},"perspective")),this.geomFolder.addConfig("checkbox",{label:"Wireframe",isChecked:!1,onChange:e=>{this.sceneManager.wireframeGeometries(e)}}).addConfig("slider",{label:"Opacity",min:0,max:1,step:.01,allowCustomValue:!0,onChange:e=>{this.sceneManager.setGeometryOpacity(this.sceneManager.getObjectByName(el.GEOMETRIES_ID),e)}}).addConfig("slider",{label:"Scale",min:0,max:20,step:.01,allowCustomValue:!0,onChange:e=>{this.sceneManager.scaleObject(this.sceneManager.getObjectByName(el.GEOMETRIES_ID),e)}})}addGeometry(e,t){const{name:i,material:r,visible:s}=e,o=r?.color;let l=this.geomFolder;t&&(l=this.geomFolder.findInTreeOrCreate(t));let d=i.lastIndexOf(" > ");d<0?d=0:d+=3;const h=l.addChild(i.substring(d),f=>{this.sceneManager.objectVisibility(e,f)});h.toggleState=s,h.addConfig("color",{label:"Color",color:o?`#${new Cr(o).getHexString()}`:void 0,onChange:f=>{this.sceneManager.changeObjectColor(e,f)}}).addConfig("slider",{label:"Opacity",min:0,max:1,step:.05,allowCustomValue:!0,onChange:f=>{this.sceneManager.setGeometryOpacity(e,f)}}).addConfig("button",{label:"Remove",onClick:()=>{h.remove(),this.sceneManager.removeGeometry(e)}})}addEventDataFolder(){null!==this.eventFolder&&(this.eventFolderState=this.eventFolder.getNodeState(),this.eventFolder.remove()),this.eventFolder=this.phoenixMenuRoot.addChild("Event Data",e=>{this.sceneManager.groupVisibility(el.EVENT_DATA_ID,e)},"event-folder"),this.eventFolder.addConfig("checkbox",{label:"Depth Test",isChecked:!0,onChange:e=>{this.three.eventDataDepthTest(e)}})}addEventDataTypeFolder(e){this.eventFolder.addChild(e,t=>{this.sceneManager.objectVisibility(this.sceneManager.getObjectByName(el.EVENT_DATA_ID).getObjectByName(e),t)})}addCollection(e,t,i,r){const s=this.eventFolder.children.find(d=>d.name===e);if(!s)return;const o=s.addChild(t,d=>{const h=this.sceneManager.getObjectByName(el.EVENT_DATA_ID).getObjectByName(t);this.sceneManager.objectVisibility(h,d)});this.addDrawOptions(o,t),i&&i.length>0&&this.addCutOptions(o,t,i);const l=[];"Tracks"===s.name&&l.push(Am.CHARGE,Am.MOM,Am.VERTEX),new Cge(this.three.getColorManager(),o,r,l)}addCutOptions(e,t,i){const r=e.addChild("Cut Options");r.addConfig("label",{label:"Cuts"}).addConfig("button",{label:"Reset cuts",onClick:()=>{this.sceneManager.groupVisibility(t,!0,el.EVENT_DATA_ID);for(const s of i)s.reset()}});for(const s of i)r.addConfig("rangeSlider",{label:Xy.getPrettySymbol(s.field),min:s.minValue,max:s.maxValue,step:s.step,value:s.minValue,highValue:s.maxValue,enableMin:s.minCutActive,enableMax:s.maxCutActive,onChange:({value:o,highValue:l})=>{s.minValue=o,s.maxValue=l,this.sceneManager.collectionFilter(t,i)},setEnableMin:o=>{s.enableMinCut(o),this.sceneManager.collectionFilter(t,i)},setEnableMax:o=>{s.enableMaxCut(o),this.sceneManager.collectionFilter(t,i)}})}addDrawOptions(e,t){const i=e.addChild("Draw Options");i.addConfig("slider",{label:"Opacity",min:.1,step:.1,max:1,onChange:r=>{const s=this.sceneManager.getObjectByName(el.EVENT_DATA_ID);if(s){const o=s.getObjectByName(t);o&&this.sceneManager.setGeometryOpacity(o,r)}}}),i.addConfig("checkbox",{label:"Wireframe",onChange:r=>this.sceneManager.wireframeObjects(this.sceneManager.getObjectByName(el.EVENT_DATA_ID).getObjectByName(t),r)})}addLabelsFolder(e){if(null!==this.labelsFolder)return;const{onToggle:t,onSizeChange:i,onColorChange:r,onSaveLabels:s,onLoadLabels:o}=e;this.labelsFolder=this.phoenixMenuRoot.addChild(el.LABELS_ID,t,"info"),this.labelsFolder.addConfig("slider",{label:"Size",min:0,max:10,step:.01,allowCustomValue:!0,onChange:i}),this.labelsFolder.addConfig("color",{label:"Color",color:"#a8a8a8",onChange:r}),this.labelsFolder.addConfig("button",{label:"Save Labels",onClick:s}),this.labelsFolder.addConfig("button",{label:"Load Labels",onClick:o})}addLabel(e,t){let i=this.labelsFolder.children.find(r=>r.name===e);i||(i=this.labelsFolder.addChild(e,r=>{const s=this.sceneManager.getObjectByName(el.LABELS_ID).getObjectByName(e);this.sceneManager.objectVisibility(s,r)}),i.addConfig("color",{label:"Color",color:"#a8a8a8",onChange:r=>{this.sceneManager.changeObjectColor(this.sceneManager.getObjectByName(e),r)}}),i.addConfig("button",{label:"Remove",onClick:()=>{t?.(),this.removeLabel(e,i)}}))}removeLabel(e,t){var i;t||(t=null===(i=this.labelsFolder)||void 0===i?void 0:i.children.find(r=>r.name===e)),t?.remove()}getEventDataTypeFolder(e){return this.eventFolder.children.find(t=>t.name===e)}loadEventFolderState(){this.eventFolderState&&this.eventFolder.loadStateFromJSON(this.eventFolderState)}}const hQ=n=>{try{return localStorage.getItem(n)}catch(e){console.warn("Exception in localStorage",e)}},Sge=[{name:"Cavern to ID",positions:[{position:[66388.95051168812,5264.228603228927,-46910.7848593543],duration:1e3},{position:[12834.18729094943,677.7571205763458,135.68755273443463],duration:2e3},{position:[312.02688693297375,25.884223757326,270.10019006776236],duration:3500},{position:[263.3640855132258,19.874838262525053,-318.16541790248885],duration:3e3},{position:[5534.140362338047,234.03507981484574,-2933.619479808285],duration:2e3},{position:[2681.277288705242,646.5795158318147,5628.5248735111745],duration:1e3},{position:[-6062.586283740076,790.5876682946184,1381.1675900848818],duration:1e3},{position:[-1766.7693725879053,1007.1048030984678,-5928.901341784575],duration:1e3},{position:[12814.982506255355,2516.987185037266,-22891.902734328327],duration:1e3}],animateEventAfterInterval:5e3,collisionDuration:6e3}];class Ege{constructor(e){this.three=e,this.uiMenus=[],this.geomFolderAdded=!1,this.labelsFolderAdded=!1}init(e){this.clearUI(),this.configuration=e,this.showStats(e.elementId),this.uiMenus=[],e.enableDatGUIMenu&&this.uiMenus.push(new dQ(e.elementId,this.three)),e.phoenixMenuRoot&&this.uiMenus.push(new ZF(e.phoenixMenuRoot,this.three)),e.forceColourTheme?this.setDarkTheme("dark"==e.forceColourTheme.toLocaleLowerCase()):this.detectColorScheme(),this.stateManager=new fA,this.stateManager.setPhoenixMenuRoot(e.phoenixMenuRoot)}showStats(e="eventDisplay"){this.stats=ege(),this.stats.showPanel(0),this.stats.dom.className="ui-element",this.stats.dom.id="statsElement",this.stats.domElement.style.cssText="position: absolute; left: 0px; cursor: pointer; opacity: 0.9; z-index: 10; bottom: 0px;";let t=document.getElementById(e);null==t&&(t=document.body),t.appendChild(this.stats.dom)}updateUI(){this.stats.update()}clearUI(){this.uiMenus.forEach(e=>e.clear()),this.geomFolderAdded=!1,this.labelsFolderAdded=!1}addGeomFolder(){this.geomFolderAdded=!0,this.uiMenus.forEach(e=>e.addGeometryFolder())}addGeometry(e,t){this.geomFolderAdded||this.addGeomFolder(),this.uiMenus.forEach(i=>i.addGeometry(e,t))}addEventDataFolder(){this.uiMenus.forEach(e=>e.addEventDataFolder())}addEventDataTypeFolder(e){this.uiMenus.forEach(t=>t.addEventDataTypeFolder(e))}addCollection(e,t,i,r){this.uiMenus.forEach(s=>s.addCollection(e,t,i,r))}addLabelsFolder(){const e=this.three.getSceneManager();this.labelsFolderAdded=!0;const t=l=>{e.objectVisibility(e.getObjectByName(el.LABELS_ID),l)},i=l=>{const d=e.getObjectByName(el.LABELS_ID);e.scaleObject(d,l)},r=l=>{const d=e.getObjectByName(el.LABELS_ID);e.changeObjectColor(d,l)},s=()=>{var l,d;const h=null===(d=null===(l=this.configuration)||void 0===l?void 0:l.eventDataLoader)||void 0===d?void 0:d.getLabelsObject();h&&l4(JSON.stringify(h),"phoenix-labels.json")},o=()=>{this.loadLabelsFile()};this.uiMenus.forEach(l=>l.addLabelsFolder({onToggle:t,onSizeChange:i,onColorChange:r,onSaveLabels:s,onLoadLabels:o}))}addLabel(e){this.labelsFolderAdded||this.addLabelsFolder(),this.uiMenus.forEach(t=>t?.addLabel(e,()=>this.removeLabel(e)))}removeLabel(e,t){var i,r,s;this.three.getSceneManager().removeLabel(e);const o=e.split(" > "),l=null===(i=this.configuration.eventDataLoader)||void 0===i?void 0:i.getLabelsObject();null===(s=null===(r=l?.[o[0]])||void 0===r?void 0:r[o[1]])||void 0===s||delete s[o[2]],t&&this.uiMenus.forEach(d=>d.removeLabel(e))}geometryVisibility(e,t){const i=this.three.getSceneManager();i.objectVisibility(i.getObjectByName(e),t)}rotateStartAngleClipping(e){const t=this.stateManager.getOpeningClippingAngle();this.three.setClippingAngle(e,t),this.stateManager.setStartClippingAngle(e)}rotateOpeningAngleClipping(e){const t=this.stateManager.getStartClippingAngle();this.three.setClippingAngle(t,e),this.stateManager.setOpeningClippingAngle(e)}setClipping(e){this.three.setClipping(e),this.stateManager.setClippingEnabled(e)}detectColorScheme(){let e=!1;hQ("theme")?"dark"===hQ("theme")&&(e=!0):window.matchMedia&&matchMedia("(prefers-color-scheme: dark)").matches&&(e=!0),this.darkTheme=e,this.setDarkTheme(e)}setDarkTheme(e){const t=e?"dark":"light";((n,e)=>{try{localStorage.setItem("theme",e)}catch(t){console.warn("Exception in localStorage",t)}})(0,t),document.documentElement.setAttribute("data-theme",t),this.three.setDarkColor(e)}getDarkTheme(){return this.darkTheme}setAutoRotate(e){this.three.autoRotate(e)}setShowAxis(e){this.three.getSceneManager().setAxis(e)}translateCartesianGrid(e){this.three.getSceneManager().translateCartesianGrid(e)}translateCartesianLabels(e){this.three.getSceneManager().translateCartesianLabels(e)}showLabels(e){this.three.getSceneManager().showLabels(e)}setShowCartesianGrid(e,t,i){typeof i>"u"?this.three.getSceneManager().setCartesianGrid(e,t):this.three.getSceneManager().setCartesianGrid(e,t,i)}getCartesianGridConfig(){return this.three.getSceneManager().getCartesianGridConfig()}setShowEtaPhiGrid(e){this.three.getSceneManager().setEtaPhiGrid(e)}show3DMousePoints(e){this.three.show3DMousePoints(e)}show3DDistance(e){this.three.show3DDistance(e)}shiftCartesianGridByPointer(){this.three.shiftCartesianGrid()}getPresetViews(){var e;return null===(e=this.configuration)||void 0===e?void 0:e.presetViews}getPresetAnimations(){var e,t;return null!==(e=this.configuration)&&void 0!==e&&e.presetAnimations?null===(t=this.configuration)||void 0===t?void 0:t.presetAnimations:Sge}displayView(e){this.three.animateCameraTransform(e.cameraPos,e.cameraTarget,1e3),e.clipping!=mC.NotForced&&(this.rotateStartAngleClipping(e.clippingStartAngle),this.rotateOpeningAngleClipping(e.clippingOpeningAngle),this.setClipping(e.clipping==mC.On))}toggleOrthographicView(e){this.three.swapCameras(e)}setOverlayRenderer(e){this.three.setOverlayRenderer(e)}enableKeyboardControls(){document.addEventListener("keydown",e=>{var t,i,r;if(!["input","textarea"].includes(null===(t=e.target)||void 0===t?void 0:t.tagName.toLowerCase())&&e.shiftKey&&("KeyT"===e.code&&this.setDarkTheme(!this.getDarkTheme()),null!==(i=this.configuration)&&void 0!==i&&i.presetViews&&e.code.startsWith("Digit"))){const o=parseInt(e.code.slice(-1))-1;null!==(r=this.configuration.presetViews)&&void 0!==r&&r[o]&&this.displayView(this.configuration.presetViews[o])}})}loadLabelsFile(){var e;const t=null===(e=this.configuration)||void 0===e?void 0:e.eventDataLoader,i=t?.getLabelsObject();t&&i&&wq(r=>{const s=JSON.parse(r);for(const o of Object.keys(s))for(const l of Object.keys(s[o])){const d=t.getCollection(l);for(const h of Object.keys(s[o][l])){const f=s[o][l][h],A=d[h].uuid,S=t.addLabelToEventObject(f,l,Number(h));this.addLabel(S),this.three.addLabelToObject(f,A,S)}}})}loadEventFolderPhoenixMenuState(){const e=this.uiMenus.find(t=>t instanceof ZF);e?.loadEventFolderState()}getUIMenus(){return this.uiMenus}}class Tge{constructor(){this.infoLoggerList=[],this.maxEntries=10}add(e,t){this.infoLoggerList.length>this.maxEntries&&this.infoLoggerList.pop(),this.infoLoggerList.unshift(t?t+": "+e:e)}getInfoLoggerList(){return this.infoLoggerList}}class Cl{constructor(e,t,i,r=1,s=!0,o=!0){this.field=e,this.minValue=t,this.maxValue=i,this.step=r,this.minCutActive=s,this.maxCutActive=o,this.defaultMinValue=t,this.defaultMaxValue=i,this.defaultApplyMinValue=s,this.defaultApplyMaxValue=o}enableMaxCut(e){this.maxCutActive=e}enableMinCut(e){this.minCutActive=e}cutPassed(e){return(!this.maxCutActive||e<=this.maxValue)&&(!this.minCutActive||e>this.minValue)}reset(){this.minValue=this.defaultMinValue,this.maxValue=this.defaultMaxValue,this.minCutActive=this.defaultApplyMinValue,this.maxCutActive=this.defaultApplyMaxValue}}const Ige=new It,uQ=new class rme{constructor(e=new It,t=new It){this.start=e,this.end=t}set(e,t){return this.start.copy(e),this.end.copy(t),this}copy(e){return this.start.copy(e.start),this.end.copy(e.end),this}getCenter(e){return e.addVectors(this.start,this.end).multiplyScalar(.5)}delta(e){return e.subVectors(this.end,this.start)}distanceSq(){return this.start.distanceToSquared(this.end)}distance(){return this.start.distanceTo(this.end)}at(e,t){return this.delta(t).multiplyScalar(e).add(this.start)}closestPointToPointParameter(e,t){rq.subVectors(e,this.start),JI.subVectors(this.end,this.start);const i=JI.dot(JI);let s=JI.dot(rq)/i;return t&&(s=bd(s,0,1)),s}closestPointToPoint(e,t,i){const r=this.closestPointToPointParameter(e,t);return this.delta(i).multiplyScalar(r).add(this.start)}applyMatrix4(e){return this.start.applyMatrix4(e),this.end.applyMatrix4(e),this}equals(e){return e.start.equals(this.start)&&e.end.equals(this.end)}clone(){return(new this.constructor).copy(this)}},JF=new dA,fQ=new It,g4=new um;class Bge{constructor(){this.tolerance=-1,this.faces=[],this.newFaces=[],this.assigned=new pQ,this.unassigned=new pQ,this.vertices=[]}setFromPoints(e){if(e.length>=4){this.makeEmpty();for(let t=0,i=e.length;tthis.tolerance)return!1;return!0}intersectRay(e,t){const i=this.faces;let r=-1/0,s=1/0;for(let o=0,l=i.length;o0&&f>=0)return null;const A=0!==f?-h/f:0;if(!(A<=0)&&(f>0?s=Math.min(A,s):r=Math.max(A,r),r>s))return null}return e.at(r!==-1/0?r:s,t),t}intersectsRay(e){return null!==this.intersectRay(e,Ige)}makeEmpty(){return this.faces=[],this.vertices=[],this}addVertexToFace(e,t){return e.face=t,null===t.outside?this.assigned.append(e):this.assigned.insertBefore(t.outside,e),t.outside=e,this}removeVertexFromFace(e,t){return e===t.outside&&(t.outside=null!==e.next&&e.next.face===t?e.next:null),this.assigned.remove(e),this}removeAllVerticesFromFace(e){if(null!==e.outside){const t=e.outside;let i=e.outside;for(;null!==i.next&&i.next.face===e;)i=i.next;return this.assigned.removeSubList(t,i),t.prev=i.next=null,e.outside=null,t}}deleteFaceVertices(e,t){const i=this.removeAllVerticesFromFace(e);if(void 0!==i)if(void 0===t)this.unassigned.appendChain(i);else{let r=i;do{const s=r.next;t.distanceToPoint(r.point)>this.tolerance?this.addVertexToFace(r,t):this.unassigned.append(r),r=s}while(null!==r)}return this}resolveUnassignedPoints(e){if(!1===this.unassigned.isEmpty()){let t=this.unassigned.first();do{const i=t.next;let r=this.tolerance,s=null;for(let o=0;or&&(r=d,s=l),r>1e3*this.tolerance)break}}null!==s&&this.addVertexToFace(t,s),t=i}while(null!==t)}return this}computeExtremes(){const e=new It,t=new It,i=[],r=[];for(let s=0;s<3;s++)i[s]=r[s]=this.vertices[0];e.copy(this.vertices[0].point),t.copy(this.vertices[0].point);for(let s=0,o=this.vertices.length;st.getComponent(h)&&(t.setComponent(h,d.getComponent(h)),r[h]=l)}return this.tolerance=3*Number.EPSILON*(Math.max(Math.abs(e.x),Math.abs(t.x))+Math.max(Math.abs(e.y),Math.abs(t.y))+Math.max(Math.abs(e.z),Math.abs(t.z))),{min:i,max:r}}computeInitialHull(){const e=this.vertices,t=this.computeExtremes(),i=t.min,r=t.max;let s=0,o=0;for(let S=0;S<3;S++){const R=r[S].point.getComponent(S)-i[S].point.getComponent(S);R>s&&(s=R,o=S)}const l=i[o],d=r[o];let h,f;s=0,uQ.set(l.point,d.point);for(let S=0,R=this.vertices.length;Ss&&(s=re,h=G)}}s=-1,JF.setFromCoplanarPoints(l.point,d.point,h.point);for(let S=0,R=this.vertices.length;Ss&&(s=re,f=G)}}const A=[];if(JF.distanceToPoint(f.point)<0){A.push(_g.create(l,d,h),_g.create(f,d,l),_g.create(f,h,d),_g.create(f,l,h));for(let S=0;S<3;S++){const R=(S+1)%3;A[S+1].getEdge(2).setTwin(A[0].getEdge(R)),A[S+1].getEdge(1).setTwin(A[R+1].getEdge(0))}}else{A.push(_g.create(l,h,d),_g.create(f,l,d),_g.create(f,d,h),_g.create(f,h,l));for(let S=0;S<3;S++){const R=(S+1)%3;A[S+1].getEdge(2).setTwin(A[0].getEdge((3-S)%3)),A[S+1].getEdge(0).setTwin(A[R+1].getEdge(1))}}for(let S=0;S<4;S++)this.faces.push(A[S]);for(let S=0,R=e.length;Ss&&(s=le,re=this.faces[se])}null!==re&&this.addVertexToFace(G,re)}}return this}reindexFaces(){const e=[];for(let t=0;tt&&(t=s,e=r),r=r.next}while(null!==r&&r.face===i);return e}}computeHorizon(e,t,i,r){let s;this.deleteFaceVertices(i),i.mark=1,s=null===t?t=i.getEdge(0):t.next;do{const o=s.twin,l=o.face;0===l.mark&&(l.distanceToPoint(e)>this.tolerance?this.computeHorizon(e,o,l,r):r.push(s)),s=s.next}while(s!==t);return this}addAdjoiningFace(e,t){const i=_g.create(e,t.tail(),t.head());return this.faces.push(i),i.getEdge(-1).setTwin(t.twin),i.getEdge(0)}addNewFaces(e,t){this.newFaces=[];let i=null,r=null;for(let s=0;s0;)t=t.next,e--;for(;e<0;)t=t.prev,e++;return t}compute(){const e=this.edge.tail(),t=this.edge.head(),i=this.edge.next.head();return g4.set(e.point,t.point,i.point),g4.getNormal(this.normal),g4.getMidpoint(this.midpoint),this.area=g4.getArea(),this.constant=this.normal.dot(this.midpoint),this}distanceToPoint(e){return this.normal.dot(e)-this.constant}}class eO{constructor(e,t){this.vertex=e,this.prev=null,this.next=null,this.twin=null,this.face=t}head(){return this.vertex}tail(){return this.prev?this.prev.vertex:null}length(){const e=this.head(),t=this.tail();return null!==t?t.point.distanceTo(e.point):-1}lengthSquared(){const e=this.head(),t=this.tail();return null!==t?t.point.distanceToSquared(e.point):-1}setTwin(e){return this.twin=e,e.twin=this,this}}class Pge{constructor(e){this.point=e,this.prev=null,this.next=null,this.face=null}}class pQ{constructor(){this.head=null,this.tail=null}first(){return this.head}last(){return this.tail}clear(){return this.head=this.tail=null,this}insertBefore(e,t){return t.prev=e.prev,t.next=e,null===t.prev?this.head=t:t.prev.next=t,e.prev=t,this}insertAfter(e,t){return t.prev=e,t.next=e.next,null===t.next?this.tail=t:t.next.prev=t,e.next=t,this}append(e){return null===this.head?this.head=e:this.tail.next=e,e.prev=this.tail,e.next=null,this.tail=e,this}appendChain(e){for(null===this.head?this.head=e:this.tail.next=e,e.prev=this.tail;null!==e.next;)e=e.next;return this.tail=e,this}remove(e){return null===e.prev?this.head=e.next:e.prev.next=e.next,null===e.next?this.tail=e.prev:e.next.prev=e.prev,this}removeSubList(e,t){return null===e.prev?this.head=t.next:e.prev.next=t.next,null===t.next?this.tail=e.prev:t.next.prev=e.prev,this}isEmpty(){return null===this.head}}class Rge extends no{constructor(e=[]){super();const t=[],i=[],s=(new Bge).setFromPoints(e).faces;for(let o=0;o{i=se*se,r=se/2;const le=e.pos.clone().add(e.dir.clone().multiplyScalar(r)).add(A.clone().multiplyScalar(i/8));s=nO.get(le),l=e.dir.clone().add(A.clone().multiplyScalar(r)).cross(s).multiplyScalar(t),d=e.dir.clone().add(l.clone().multiplyScalar(r)).cross(s).multiplyScalar(t);const Ee=e.pos.clone().add(e.dir.clone().multiplyScalar(se)).add(d.clone().multiplyScalar(i/2));o=nO.get(Ee),h=e.dir.clone().add(d.clone().multiplyScalar(se)).cross(o).multiplyScalar(t);const Ce=A.clone().sub(l).sub(d).add(h);return se*(Math.abs(Ce.x)+Math.abs(Ce.y)+Math.abs(Ce.z))};let R=S(e.stepSize);for(;R>2e-4;)e.stepSize*=.5,R=S(e.stepSize);const G=e.stepSize,re=Math.pow(G,2);return e.pos.add(e.dir.clone().multiplyScalar(G)).add(A.clone().add(l).add(d).multiplyScalar(re/6)),e.dir.add(A.clone().add(l.clone().multiplyScalar(2)).add(d.clone().multiplyScalar(2)).add(h).multiplyScalar(G/6)),e.dir.normalize(),e.stepSize}static propagate(e,t,i,r,s=-1,o=1e3,l=(()=>!0)){const d=new kge;d.pos=e,d.dir=t,d.p=i,d.q=r,d.maxStepSize=s;const h=[];for(;d.pathLength3e3||Math.sqrt(e.x*e.x+e.y*e.y)>1100)}static getTracksWithRungeKutta(e){const t=Object.assign({},e);for(const r of Object.keys(t))for(const s of t[r])s.pos=wE.extrapolateTrackPositions(s);return{}}static extrapolateTrackPositions(e,t=wE.extrapolationLimit){const i=e.dparams,r=i[0],o=i[2];let l=i[3];const d=i[4];let h;l<0&&(l+=Math.PI),h=0!==d?Math.abs(1/d):Number.MAX_VALUE;const f=Math.round(h*d),A=Ff.sphericalToCartesian(h,l,o),S=Ff.sphericalToCartesian(r,l,o),R=[];R.push([S.x,S.y,S.z]);const G=A.clone();G.normalize();const se=tO.propagate(S,G,h,f,5,1500,t).map(le=>[le.pos.x,le.pos.y,le.pos.z]);return R.concat(se)}}class Md{static getTracks(e){var t;const i=new Nq,r=new TAe({lineWidth:2});for(const o of e){if((null===(t=o.pos)||void 0===t?void 0:t.length)>2||(o.dparams&&(o.pos=wE.extrapolateTrackPositions(o)),o.extended=!0),o.pos.length<2){console.log("Track too short, and extrapolation failed.");continue}o?.dparams&&(o?.phi||(o.phi=o.dparams[2]),o?.eta||(o.eta=Ff.thetaToEta(o.dparams[3])),o?.d0||(o.d0=o.dparams[0]),o?.z0||(o.z0=o.dparams[1]));const l=o.pos.map(A=>new It(A[0],A[1],A[2])),h=new X5(l).getPoints(50),f=o.color?parseInt(o.color,16):bp.Tracks.getHex();o.tid=i.addTrack(h,f),o.material=r}i.process();const s=new ha(i,r);s.name="Track";for(const o of e)o.uuid=s.uuid;return s}static getTrack(e){var t;(null===(t=e.pos)||void 0===t?void 0:t.length)>2||(e.dparams&&(e.pos=wE.extrapolateTrackPositions(e)),e.extended=!0);const i=e.pos;if(i.length<2)return void console.log("Track too short, and extrapolation failed.");e?.dparams&&(e?.phi||(e.phi=e.dparams[2]),e?.eta||(e.eta=Ff.thetaToEta(e.dparams[3])),e?.d0||(e.d0=e.dparams[0]),e?.z0||(e.z0=e.dparams[1]));const r=e.color?parseInt(e.color,16):bp.Tracks.getHex(),s=[];for(let re=0;re0))return console.log("No hits! Aborting from getHits."),new Pl;{const f=e[0];Array.isArray(f)?(o=!0,t={pos:e}):(t=e,"type"in f&&(r=f.type))}("Line"===r||"Box"===r)&&(s=6);const l=e.length*s;o&&(length=l);const d=new Float32Array(l);let h=0;for(const f of e)for(let A=0;Ai&&f.setLength(f.length()*i/Math.abs(f.z));const A=f.x*f.x+f.y*f.y,S=t*t;A>S&&f.setLength(f.length()*Math.sqrt(S)/Math.sqrt(A))}return f}static getCaloCube(e,t=30,i=30){var r,s,o,l,d;const h=null!==(r=e.side)&&void 0!==r?r:t;let f=null!==(s=e.length)&&void 0!==s?s:i;f`${n} > ${e} > ${t}`;class J_{constructor(){this.labelsObject={},this.loadingManager=new sx,this.stateManager=new fA}buildEventData(e,t,i,r){this.graphicsLibrary=t,this.ui=i,this.eventData=e,this.loadObjectTypes(e);const s=e["event number"]?e["event number"]:e.eventNumber,o=e["run number"]?e["run number"]:e.runNumber;r.add("Event#"+s+" from run#"+o,"Loaded"),this.stateManager.eventMetadata={runNumber:o,eventNumber:s}}getEventsList(e){const t=[];for(const i in e)null!==e[i]&&t.push(i);return t}getCollections(){if(!this.eventData)return null;const e=[];for(const t in this.eventData)if(this.eventData[t]&&"object"==typeof this.eventData[t])for(const i in this.eventData[t])e.push(i);return e}getCollection(e){if(!this.eventData)return null;for(const t in this.eventData)if(this.eventData[t])for(const i in this.eventData[t])if(i===e)return this.eventData[t][i]}loadObjectTypes(e){const t=parseFloat(Math.PI.toFixed(2));if(e.Tracks){const i=[new Cl("phi",-t,t,.01),new Cl("eta",-4,4,.1),new Cl("chi2",0,100),new Cl("dof",0,100),new Cl("pT",0,5e4,.1),new Cl("z0",-30,30,.1),new Cl("d0",-30,30,.1)];this.addObjectType(e.Tracks,Md.getTrack,"Tracks",!1,i)}if(e.Jets){const i=[new Cl("phi",-t,t,.01),new Cl("eta",-5,5,.1),new Cl("energy",0,6e5,100)],s=this.addScaleOptions("jetsScale","Jets Scale",o=>{this.graphicsLibrary.getSceneManager().scaleJets(o)});this.addObjectType(e.Jets,Md.getJet,"Jets",!1,i,s)}if(e.Hits&&this.addObjectType(e.Hits,Md.getHits,"Hits",!0),e.CaloClusters){const i=[new Cl("phi",-t,t,.01),new Cl("eta",-5,5,.1),new Cl("energy",0,1e4)],s=this.addScaleOptions("caloClustersScale","CaloClusters Scale",o=>{this.graphicsLibrary.getSceneManager().scaleChildObjects("CaloClusters",o,"z")});this.addObjectType(e.CaloClusters,Md.getCluster,"CaloClusters",!1,i,s)}if(e.CaloCells){const i=[new Cl("phi",-t,t,.01),new Cl("eta",-5,5,.1),new Cl("energy",0,1e4)],s=this.addScaleOptions("caloCellsScale","CaloCells Scale",o=>{this.graphicsLibrary.getSceneManager().scaleChildObjects("CaloCells",o,"z")});this.addObjectType(e.CaloCells,Md.getCaloCell,"CaloCells",!1,i,s)}if(e.PlanarCaloCells){const i=[new Cl("energy",0,1e4)],s=this.addScaleOptions("planarCaloCellsScale","PlanarCaloCells Scale",l=>{this.graphicsLibrary.getSceneManager().scaleChildObjects("PlanarCaloCells",l,"z")}),o={};for(const l in e.PlanarCaloCells){const d=e.PlanarCaloCells[l],h=d.plane,f=new It(...h.slice(0,3)).normalize();d.cells.forEach(A=>A.plane=[...f.toArray(),h[3]]),o[l]=d.cells}this.addObjectType(o,Md.getPlanarCaloCell,"PlanarCaloCells",!1,i,s)}if(e.IrregularCaloCells){const i=[new Cl("layer",0,10),new Cl("energy",0,1e4)],s=this.addScaleOptions("IrregularCaloCellsScale","IrregularCaloCells Scale",o=>{this.graphicsLibrary.getSceneManager().scaleChildObjects("IrregularCaloCells",o,"z")});this.addObjectType(e.IrregularCaloCells,Md.getIrregularCaloCell,"IrregularCaloCells",!1,i,s)}if(e.Muons){const i=[new Cl("phi",-t,t,.01),new Cl("eta",-4,4,.1),new Cl("energy",0,1e4),new Cl("pT",0,5e4)];this.addObjectType(e.Muons,this.getCompoundTrack,"Muons",!1,i)}if(e.Photons){const i=[new Cl("phi",-t,t,.01),new Cl("eta",-4,4,.1),new Cl("energy",0,1e4),new Cl("pT",0,5e4)];this.addObjectType(e.Photons,this.getCompoundCluster,"Photons",!1,i)}if(e.Electrons){const i=[new Cl("phi",-t,t,.01),new Cl("eta",-4,4,.1),new Cl("energy",0,1e4),new Cl("pT",0,5e4)];this.addObjectType(e.Electrons,this.getCompoundTrack,"Electrons",!1,i)}if(e.Vertices){const i=[new Cl("vertexType",0,5)],s=this.addScaleOptions("verticesScale","Vertices Scale",o=>{this.graphicsLibrary.getSceneManager().scaleChildObjects("Vertices",o)});this.addObjectType(e.Vertices,Md.getVertex,"Vertices",!1,i,s)}e.MissingEnergy&&this.addObjectType(e.MissingEnergy,Md.getMissingEnergy,"MissingEnergy",!1,[],(r,s)=>{const o=l=>{this.graphicsLibrary.getSceneManager().scaleChildObjects("MissingEnergy",l)};r&&r.add({jetsScale:100},"jetsScale",1,200).name("Size (%)").onChange(o),s&&s.addConfig("slider",{label:"Size (%)",value:100,min:1,max:200,allowCustomValue:!0,onChange:o})})}addObjectType(e,t,i,r=!1,s,o){var l,d;const h=this.graphicsLibrary.addEventDataTypeGroup(i),f=this.getObjectTypeCollections(e);this.ui.addEventDataTypeFolder(i);for(const R of f){const G=e[R];console.log(`${i} collection ${R} has ${G.length} constituents.`),0!=G.length?(this.addCollection(G,R,t,i,h,r),s=s?.filter(re=>re.field in G[0]),this.ui.addCollection(i,R,s)):console.log("Skipping")}const A=null===(l=this.ui.getUIMenus().find(R=>R instanceof dQ))||void 0===l?void 0:l.getEventDataTypeFolder(i),S=null===(d=this.ui.getUIMenus().find(R=>R instanceof ZF))||void 0===d?void 0:d.getEventDataTypeFolder(i);o?.(A,S)}addCollection(e,t,i,r,s,o){const l=new Wl;if(l.name=t,o){const d=i.bind(this)(e,r);d&&l.add(d)}else for(const d of e){const h=i.bind(this)(d,r);h&&l.add(h)}s.add(l)}getObjectTypeCollections(e){const t=[];for(const i in e)null!==e[i]&&t.push(i);return t}getCompoundTrack(e,t=""){return this.getCompound(e,t,!0,!1)}getCompoundCluster(e,t=""){return this.getCompound(e,t,!1,!0)}getCompound(e,t="",i=!1,r=!1){const s=new Wl;if("LinkedClusters"in e&&e.LinkedClusters)for(const o of e.LinkedClusters){const l=o.split(":")[0],d=o.split(":")[1];if(l&&d&&this.eventData.CaloClusters&&this.eventData.CaloClusters[l]){const h=this.eventData.CaloClusters[l][d];if(h){const f=Md.getCluster(h);f.name=t+" Cluster",s.add(f)}}}else if(r){const l=Md.getCluster({energy:e?.energy,phi:e?.phi,eta:e?.eta});l.name=t+" Cluster",s.add(l)}if("LinkedTracks"in e&&e.LinkedTracks)for(const o of e.LinkedTracks){const l=o.split(":")[0],d=o.split(":")[1];if(l&&d&&this.eventData.Tracks&&this.eventData.Tracks[l]){const h=this.eventData.Tracks[l][d];if(h){const f=Md.getTrack(h);f?(f.name=t+" Track",s.add(f)):console.log("WARNING: failed to get a track back.")}}}else if(i){new It(0,0,0);const l=Ff.etaToTheta(e.eta),d=e.pt/Math.cos(Math.PI/2-l);let h=0;"pdgId"in e&&(h=e.pdgId>0?1:-1);const A=Md.getTrack({dparams:[0,0,e.phi,l,h/d]});A?(A.name=t+" Track",s.add(A)):console.log("WARNING: failed to get a track back.")}return e.uuid=s.uuid,s.name=t,s}getEventMetadata(){const e=[],t=[[{keys:["runNumber","run number"],label:"Run"},{keys:["eventNumber","event number"],label:"Event"},{keys:["ls"],label:"LS"},{keys:["lumiBlock"],label:"LumiBlock"}],[{keys:["time"],label:"Data recorded"}]],i=Object.keys(this.eventData);for(const r of t){const s={};for(const o of r)for(const l of o.keys)if(i.includes(l)&&l in this.eventData){s[o.label]=this.eventData[l];break}Object.keys(s).length>0&&e.push({label:Object.keys(s).join(" / "),value:Object.values(s).join(" / ")})}return e}addLabelToEventObject(e,t,i){var r,s;for(const o in this.eventData)if(null!==(s=null===(r=this.eventData)||void 0===r?void 0:r[o])&&void 0!==s&&s[t])return this.labelsObject[o]=this.labelsObject[o]||{},this.labelsObject[o][t]=this.labelsObject[o][t]||{},this.labelsObject[o][t][i]=e,mQ(o,t,i)}getLabelsObject(){return this.labelsObject}addScaleOptions(e,t,i){return(r,s)=>{r&&r.add({[e]:1},e,.001,100).name(t).onChange(i),s&&s.addConfig("slider",{label:t,value:1,min:.001,step:.01,max:100,allowCustomValue:!0,onChange:i})}}}class CE extends J_{constructor(){super(),this.data={}}process(e){console.log("Processing JiveXML event data"),this.data=e}getEventData(){const i=(new DOMParser).parseFromString(this.data,"text/xml").getElementsByTagName("Event")[0],r={eventNumber:i.getAttribute("eventNumber"),runNumber:i.getAttribute("runNumber"),lumiBlock:i.getAttribute("lumiBlock"),time:i.getAttribute("dateTime"),Hits:void 0,Tracks:{},Jets:{},CaloClusters:{},CaloCells:{},PlanarCaloCells:{},Vertices:{},Electrons:{},Muons:{},Photons:{},MissingEnergy:{}};return this.getPixelClusters(i,r),this.getSCTClusters(i,r),this.getTRT_DriftCircles(i,r),this.getMuonPRD(i,"MDT",r),this.getRPC(i,r),this.getMuonPRD(i,"TGC",r),this.getMuonPRD(i,"CSCD",r),this.getMuonPRD(i,"MM",r),this.getMuonPRD(i,"STGC",r),this.getTracks(i,r),this.getJets(i,r),this.getCaloClusters(i,r),this.getCaloCells(i,"LAr",r),this.getCaloCells(i,"HEC",r),this.getCaloCells(i,"Tile",r),this.getVertices(i,r),this.getMissingEnergy(i,r),this.getElectrons(i,r),this.getMuons(i,r),this.getPhotons(i,r),r}getNumberArrayFromHTML(e,t){let i=[];const r=e.getElementsByTagName(t);return r.length&&(i=r[0].innerHTML.replace(/\r\n|\n|\r/gm," ").trim().split(" ").map(Number)),i}getStringArrayFromHTML(e,t){return e.getElementsByTagName(t)[0].innerHTML.replace(/\r\n|\n|\r/gm," ").trim().split(" ").map(String)}getPositionOfHit(e,t){for(const i in t.Hits)for(const r of t.Hits[i])if(null==r)console.log("Empty hit");else if("id"in r&&r.id==e)return[!0,r.pos[0],r.pos[1],r.pos[2]];return[!1,0,0,0]}getTracks(e,t){const i=e.getElementsByTagName("Track"),r=Array.from(i),s={};for(const o of r){let l=o.getAttribute("storeGateKey");"Tracks"===l&&(l="Tracks_");const d=Number(o.getAttribute("count")),h=[];let A,S,R,G;if(0===o.getElementsByTagName("numPolyline").length)console.log("WARNING the track collection "+l+" has no line information. Will rely on Phoenix to extrapolate.");else{G=this.getNumberArrayFromHTML(o,"numPolyline");const Kt=o.getElementsByTagName("polylineX");Kt.length>0?(A=Kt[0].innerHTML.replace(/\r\n|\n|\r/gm," ").trim().split(" ").map(Number),S=this.getNumberArrayFromHTML(o,"polylineY"),R=this.getNumberArrayFromHTML(o,"polylineZ")):(G=null,A=null,S=null,R=null)}const re=this.getNumberArrayFromHTML(o,"chi2"),se=this.getNumberArrayFromHTML(o,"numDoF"),le=this.getNumberArrayFromHTML(o,"pt"),Ee=this.getNumberArrayFromHTML(o,"d0"),Ce=this.getNumberArrayFromHTML(o,"z0"),We=this.getNumberArrayFromHTML(o,"phi0"),Mt=this.getNumberArrayFromHTML(o,"cotTheta");let Xt;this.getNumberArrayFromHTML(o,"hits"),this.getNumberArrayFromHTML(o,"numHits"),(d!=le.length||d!=Ee.length||d!=Ce.length||d!=Mt.length)&&console.log("ERROR: Wrong number of some track variables. Corrupted JiveXML?"),o.getElementsByTagName("trackAuthor").length&&(Xt=this.getNumberArrayFromHTML(o,"trackAuthor"));let Un=0;G&&G.length!=d&&console.log("numPolyline ",G.length,"numOfTracks",d);for(let Kt=0;Kt=Kt&&(En.chi2=re[Kt]),se.length>=Kt&&(En.dof=se[Kt]),Xt?.length>=Kt&&(En.author=Xt[Kt]);let wi=Math.atan(1/Mt[Kt]);En.pT=1e3*Math.abs(le[Kt]);const zn=En.pT/Math.sin(wi);En.dparams=[Ee[Kt],Ce[Kt],We[Kt],wi,1/zn],En.phi=We[Kt],wi<0&&(wi+=Math.PI),En.phi>Math.PI?En.phi-=2*Math.PI:En.phi<-Math.PI&&(En.phi+=2*Math.PI),Ff.anglesAreSane(wi,En.phi)||(s["Improper angles"]++,En.badtrack.push("Improper angles"),Vi=!1),En.eta=Ff.thetaToEta(wi),Number.isNaN(En.eta)&&(En.badtrack.push("Invalid eta"),Vi=!1);const oi=[];let vi=0,mr=0,Mr=0,ns=0,$s=0;if(G){(Un+G[Kt]>A.length||Un+G[Kt]>S.length||Un+G[Kt]>R.length)&&console.log("ERROR: not enough points left for this track. Corrupted JiveXML?");for(let fi=0;fi0&&console.log(s[o]+' tracks had "'+o+'" and were marked as bad.')}getPixelClusters(e,t){if(t.Hits={},0===e.getElementsByTagName("PixCluster").length)return;const i=e.getElementsByTagName("PixCluster")[0],r=Number(i.getAttribute("count")),s=this.getNumberArrayFromHTML(i,"id"),o=this.getNumberArrayFromHTML(i,"x0"),l=this.getNumberArrayFromHTML(i,"y0"),d=this.getNumberArrayFromHTML(i,"z0"),h=this.getNumberArrayFromHTML(i,"eloss");t.Hits.Pixel=[];for(let f=0;f280?480:640,se=1030;G.pos=[Math.cos(d[R])*re,Math.sin(d[R])*re,10*h[R],Math.cos(d[R])*se,Math.sin(d[R])*se,10*h[R]]}G.id=o[R],G.driftR=s[R],G.noise=l[R],G.threshold=A[R],G.timeOverThreshold=S[R],t.Hits.TRT.push(G)}}getMuonPRD(e,t,i){if(0===e.getElementsByTagName(t).length)return;const r=e.getElementsByTagName(t)[0];"CSCD"==t&&(t="CSC");const s=Number(r.getAttribute("count")),o=this.getNumberArrayFromHTML(r,"x"),l=this.getNumberArrayFromHTML(r,"y"),d=this.getNumberArrayFromHTML(r,"z"),h=this.getNumberArrayFromHTML(r,"length"),f=this.getNumberArrayFromHTML(r,"id"),A=this.getStringArrayFromHTML(r,"identifier");i.Hits[t]=[];for(let S=0;Sre.length&&console.log("Error! TrackIndex exceeds maximum number of track indices."),We.push(re[le]);se.push({x:l[Ee],y:d[Ee],z:h[Ee],chi2:f[Ee],primVxCand:A[Ee],vertexType:S[Ee],linkedTracks:We,linkedTrackCollection:G[Ee]})}t.Vertices[s.getAttribute("storeGateKey")]=se}}getMuons(e,t){const i=e.getElementsByTagName("Muon"),r=Array.from(i);for(const s of r){const o=Number(s.getAttribute("count")),l=[];for(let d=0;dfunction(n,e,t,i){return new(t||(t=Promise))(function(s,o){function l(f){try{h(i.next(f))}catch(A){o(A)}}function d(f){try{h(i.throw(f))}catch(A){o(A)}}function h(f){f.done?s(f.value):function r(s){return s instanceof t?s:new t(function(o){o(s)})}(f.value).then(l,d)}h((i=i.apply(n,e||[])).next())})}(void 0,void 0,void 0,function*(){const e=new(iO()),t={};yield e.loadAsync(n);for(const i in e.files){const r=yield e.file(i).async("string");t[i]=r}return t});var rO=function(n,e,t,i){return new(t||(t=Promise))(function(s,o){function l(f){try{h(i.next(f))}catch(A){o(A)}}function d(f){try{h(i.throw(f))}catch(A){o(A)}}function h(f){f.done?s(f.value):function r(s){return s instanceof t?s:new t(function(o){o(s)})}(f.value).then(l,d)}h((i=i.apply(n,e||[])).next())})};const Lge={file:"",type:"",config:"",hideWidgets:!1,embed:!1};class Nge{constructor(e,t){this.eventDisplay=e,this.configuration=t,this.urlOptions=new URLSearchParams(window.location.href.substr(window.location.href.lastIndexOf("?")))}applyOptions(){var e,t;this.applyEventOptions(null===(e=this.configuration.defaultEventFile)||void 0===e?void 0:e.eventFile,null===(t=this.configuration.defaultEventFile)||void 0===t?void 0:t.eventType),this.applyHideWidgetsOptions(),this.applyEmbedOption()}applyEventOptions(e,t){if(!("fetch"in window))return;let i,r;(!this.urlOptions.get("file")&&this.urlOptions.get("type")||this.urlOptions.get("file")&&!this.urlOptions.get("type"))&&(console.log("WARNING - if you set one of type or file, then you need to set both!"),console.log("WARNING - reverting to defaults!")),this.urlOptions.get("file")&&this.urlOptions.get("type")?(console.log("Setting and config from urlOptions"),i=this.urlOptions.get("file"),r=this.urlOptions.get("type").toLowerCase()):(console.log("Setting and config from defaults"),i=e,r=t),console.log("Loading ",i,"of type",r);const s=()=>{this.urlOptions.get("config")&&(this.eventDisplay.getLoadingManager().addLoadableItem("url_config"),fetch(this.urlOptions.get("config")).then(l=>l.json()).then(l=>{(new fA).loadStateFromJSON(l)}).finally(()=>{this.eventDisplay.getLoadingManager().itemLoaded("url_config")}))};i&&r?(this.eventDisplay.getLoadingManager().addLoadableItem("url_event"),(l=>"jivexml"===r?(console.log("Opening JiveXML"),this.handleJiveXMLEvent(l)):"zip"===r?(console.log("Opening zip file"),this.handleZipFileEvents(l)):this.handleJSONEvent(l))(i).catch(l=>{this.eventDisplay.getInfoLogger().add("Could not find the file specified in URL.","Error"),console.error("Could not find the file specified in URL.",l)}).finally(()=>{s(),this.eventDisplay.getLoadingManager().itemLoaded("url_event")})):s()}handleJiveXMLEvent(e){return rO(this,void 0,void 0,function*(){const t=yield(yield fetch(e)).text(),i=new CE;this.configuration.eventDataLoader=i,i.process(t);const r=i.getEventData();this.eventDisplay.buildEventDataFromJSON(r)})}handleJSONEvent(e){return rO(this,void 0,void 0,function*(){const t=yield(yield fetch(e)).json();this.configuration.eventDataLoader=new J_,this.eventDisplay.parsePhoenixEvents(t)})}handleZipFileEvents(e){return rO(this,void 0,void 0,function*(){const t=yield(yield fetch(e)).arrayBuffer(),i={};let r;try{r=yield AQ(t)}catch(o){return console.error("Error while reading zip",o),void this.eventDisplay.getInfoLogger().add("Could not read zip file","Error")}Object.keys(r).filter(o=>o.endsWith(".json")).forEach(o=>{Object.assign(i,JSON.parse(r[o]))});const s=new CE;Object.keys(r).filter(o=>o.endsWith(".xml")||o.startsWith("JiveXML")).forEach(o=>{s.process(r[o]);const l=s.getEventData();Object.assign(i,{[o]:l})}),this.eventDisplay.parsePhoenixEvents(i)})}applyHideWidgetsOptions(){this.hideIdsWithURLOption({hideWidgets:["mainLogo","uiMenu","experimentInfo","phoenixMenu","statsElement","gui"]})}applyEmbedOption(){var e;"true"===this.urlOptions.get("embed")&&(this.hideIdsWithURLOption({embed:["mainLogo","uiMenu","experimentInfo","phoenixMenu","statsElement","gui"]}),null===(e=document.getElementById("embedMenu"))||void 0===e||e.style.setProperty("display","block"))}hideIdsWithURLOption(e){Object.entries(e).forEach(([t,i])=>{"true"===this.urlOptions.get(t)&&i.forEach(r=>{var s;null===(s=document.getElementById(r))||void 0===s||s.style.setProperty("display","none")})})}getURLOptions(){return this.urlOptions}}var ox=function(n,e,t,i){return new(t||(t=Promise))(function(s,o){function l(f){try{h(i.next(f))}catch(A){o(A)}}function d(f){try{h(i.throw(f))}catch(A){o(A)}}function h(f){f.done?s(f.value):function r(s){return s instanceof t?s:new t(function(o){o(s)})}(f.value).then(l,d)}h((i=i.apply(n,e||[])).next())})};class Uge{constructor(e){this.onEventsChange=[],this.onDisplayedEventChange=[],this.loadingManager=new sx,this.infoLogger=new Tge,this.graphicsLibrary=new JAe(this.infoLogger),this.ui=new Ege(this.graphicsLibrary),e&&this.init(e)}init(e){this.configuration=e,this.graphicsLibrary.init(e),this.ui.init(e),this.getStateManager().setEventDisplay(this),this.graphicsLibrary.setAnimationLoop(()=>{this.ui.updateUI()}),this.urlOptionsManager=new Nge(this,e),!1!==e.allowUrlOptions&&this.urlOptionsManager.applyOptions(),this.enableEventDisplayConsole(),this.enableKeyboardControls()}initXR(e,t){this.graphicsLibrary.initXRSession(e,t)}endXR(e){this.graphicsLibrary.endXRSession(e)}parsePhoenixEvents(e){this.eventsData=e,typeof this.configuration.eventDataLoader>"u"&&(this.configuration.eventDataLoader=new J_);const t=this.configuration.eventDataLoader.getEventsList(e);return this.loadEvent(t[0]),this.onEventsChange.forEach(i=>i(t)),t}buildEventDataFromJSON(e){this.resetLabels(),this.ui.addEventDataFolder(),this.ui.addLabelsFolder(),this.graphicsLibrary.clearEventData(),this.configuration.eventDataLoader.buildEventData(e,this.graphicsLibrary,this.ui,this.infoLogger),this.onDisplayedEventChange.forEach(t=>t(e)),this.ui.loadEventFolderPhoenixMenuState()}loadEvent(e){const t=this.eventsData[e];t&&this.buildEventDataFromJSON(t)}getThreeManager(){return this.graphicsLibrary}getUIManager(){return this.ui}getInfoLogger(){return this.infoLogger}getLoadingManager(){return this.loadingManager}getStateManager(){return this.stateManager||(this.stateManager=new fA),this.stateManager}getURLOptionsManager(){return this.urlOptionsManager}loadOBJGeometry(e,t,i,r,s){return ox(this,arguments,void 0,function*(o,l,d,h,f,A=!0,S=!0){this.loadingManager.addLoadableItem(`obj_geom_${l}`);const{object:R}=yield this.graphicsLibrary.loadOBJGeometry(o,l,d,f,A,S);this.ui.addGeometry(R,h),this.loadingManager.itemLoaded(`obj_geom_${l}`),this.infoLogger.add(l,"Loaded OBJ geometry")})}parseOBJGeometry(e,t,i,r=!0){this.loadingManager.addLoadableItem(`parse_obj_${t}`);const{object:s}=this.graphicsLibrary.parseOBJGeometry(e,t,r);this.ui.addGeometry(s,i),this.loadingManager.itemLoaded(`parse_obj_${t}`)}exportToOBJ(){this.graphicsLibrary.exportSceneToOBJ(),this.infoLogger.add("Exported scene to OBJ")}parsePhoenixDisplay(e){return ox(this,void 0,void 0,function*(){const t=JSON.parse(e);t.sceneConfiguration&&t.scene&&(this.ui.addEventDataFolder(),this.ui.addLabelsFolder(),this.graphicsLibrary.clearEventData(),this.loadSceneConfiguration(t.sceneConfiguration),this.loadingManager.addLoadableItem(`parse_phnx_${name}`),yield this.graphicsLibrary.parsePhnxScene(t.scene),this.loadingManager.itemLoaded(`parse_phnx_${name}`))})}exportPhoenixDisplay(){this.graphicsLibrary.exportPhoenixScene()}parseGLTFGeometry(e,t){return ox(this,void 0,void 0,function*(){this.loadingManager.addLoadableItem(`parse_gltf_${t}`);const i=yield this.graphicsLibrary.parseGLTFGeometry(e,t);for(const{object:r}of i)this.ui.addGeometry(r);this.loadingManager.itemLoaded(`parse_gltf_${t}`)})}loadGLTFGeometry(e,t,i,r){return ox(this,arguments,void 0,function*(s,o,l,d,h=!0){this.loadingManager.addLoadableItem(`gltf_geom_${o}`);const f=yield this.graphicsLibrary.loadGLTFGeometry(s,o,l,d,h);for(const{object:A,menuNodeName:S}of f)this.ui.addGeometry(A,S);this.loadingManager.itemLoaded(`gltf_geom_${o}`)})}loadJSONGeometry(e,t,i,r,s){return ox(this,arguments,void 0,function*(o,l,d,h,f,A=!0){this.loadingManager.addLoadableItem(`json_geom_${l}`);const{object:S}=yield this.graphicsLibrary.loadJSONGeometry(o,l,h,f,A);this.ui.addGeometry(S,d),this.loadingManager.itemLoaded(`json_geom_${l}`),this.infoLogger.add(l,"Loaded JSON geometry")})}loadRootJSONGeometry(e,t,i,r,s){return ox(this,arguments,void 0,function*(o,l,d,h,f,A=!0){this.loadingManager.addLoadableItem("root_json_geom");const S=yield(0,Wz.httpRequest)(o,"object");yield this.loadJSONGeometry((0,jz.build)(S,{dflt_colors:!0}).toJSON(),l,d,h,f,A),this.loadingManager.itemLoaded("root_json_geom")})}loadRootGeometry(e,t,i,r,s,o){return ox(this,arguments,void 0,function*(l,d,h,f,A,S,R=!0){this.loadingManager.addLoadableItem("root_geom"),Wz.settings.UseStamp=!1;const re=yield(yield(0,$z.Tq)(l)).readObject(d);yield this.loadJSONGeometry((0,jz.build)(re,{dflt_colors:!0}).toJSON(),h,f,A,S,R),this.loadingManager.itemLoaded("root_geom")})}buildGeometryFromParameters(e){this.graphicsLibrary.addGeometryFromParameters(e)}zoomTo(e,t){this.graphicsLibrary.zoomTo(e,t)}loadSceneConfiguration(e){for(const t of Object.keys(e.eventData)){this.ui.addEventDataTypeFolder(t);const i=e.eventData[t];for(const r of i)this.ui.addCollection(t,r)}for(const t of e.geometries)this.ui.addGeometry(t,"#ffffff")}getCollection(e){return this.configuration.eventDataLoader.getCollection(e)}getCollections(){return this.configuration.eventDataLoader.getCollections()}listenToDisplayedEventChange(e){this.onDisplayedEventChange.push(e)}listenToLoadedEventsChange(e){this.onEventsChange.push(e)}getEventMetadata(){return this.configuration.eventDataLoader.getEventMetadata()}enableEventDisplayConsole(){window.EventDisplay={loadGLTFGeometry:(e,t)=>{this.loadGLTFGeometry(e,t)},loadOBJGeometry:(e,t,i,r,s)=>{this.loadOBJGeometry(e,t,i,r,s)},loadJSONGeometry:(e,t,i,r,s,o=!0)=>{this.loadJSONGeometry(e,t,i,r,s,o)},buildGeometryFromParameters:e=>this.buildGeometryFromParameters(e),scene:this.getThreeManager().getSceneManager().getScene()}}setOverlayRenderer(e){this.graphicsLibrary.setOverlayRenderer(e)}allowSelection(e){this.graphicsLibrary.setSelectedObjectDisplay(e)}enableSelecting(e){this.graphicsLibrary.enableSelecting(e)}fixOverlayView(e){this.graphicsLibrary.fixOverlayView(e)}getActiveObjectId(){return this.graphicsLibrary.getActiveObjectId()}lookAtObject(e,t=!1){1==t?(this.graphicsLibrary.lookAtObject(e,!0),this.graphicsLibrary.highlightObject(e,!0)):(this.graphicsLibrary.lookAtObject(e),this.graphicsLibrary.highlightObject(e))}highlightObject(e,t=!1){this.graphicsLibrary.highlightObject(e,1==t)}enableHighlighting(){this.graphicsLibrary.enableHighlighting()}disableHighlighting(){this.graphicsLibrary.disableHighlighting()}enableKeyboardControls(){this.ui.enableKeyboardControls(),this.graphicsLibrary.enableKeyboardControls()}animateThroughEvent(e,t,i){this.graphicsLibrary.animateThroughEvent(e,t,i)}animatePreset(e,t){this.graphicsLibrary.animatePreset(e,t)}animateEventWithCollision(e,t){this.graphicsLibrary.animateEventWithCollision(e,t)}animateClippingWithCollision(e,t){this.graphicsLibrary.animateClippingWithCollision(e,t)}addLabelToObject(e,t,i,r){const s=this.configuration.eventDataLoader.addLabelToEventObject(e,t,i);e?(this.ui.addLabel(s),this.graphicsLibrary.addLabelToObject(e,r,s)):this.ui.removeLabel(s,!0)}resetLabels(){const e=this.configuration.eventDataLoader.getLabelsObject();for(const t in e)for(const i in e[t])for(const r in e[t][i]){const s=mQ(t,i,r);this.ui.removeLabel(s,!0),delete e[t][i][r]}}}class yC{constructor(e,t,i,r,s,o){this.toggleState=!0,this.children=[],this.configs=[],this.nodeLevel=0,this.childrenToggleState={},this.childrenActive=!1,this.configActive=!1,this.name=e,this.icon=t,this.onToggle=i,r&&(this.children=r),s&&(this.configs=s),o&&(this.parent=o)}addChild(e,t,i){const r=new yC(e,i,t);return r.parent=this,r.nodeLevel=this.nodeLevel+1,this.children.push(r),r}removeChild(e){const t=this.children.indexOf(e);return this.children.splice(t,1),this}remove(){this.parent?this.parent.removeChild(this):console.error("Cannot delete root node of phoenix menu. Set it to undefined/null instead.")}truncate(){this.children=[]}addConfig(e,t){const i=this.configs.push(Object.assign({type:e},t));return this.applyConfigState(this.configs[i-1]),this}toggleSelfAndDescendants(e){var t;null===(t=this.onToggle)||void 0===t||t.call(this,e),this.toggleState=e;for(const i of this.children)e?(i.toggleState=this.childrenToggleState[i.name],i.toggleSelfAndDescendants(i.toggleState)):(this.childrenToggleState[i.name]=i.toggleState,i.toggleSelfAndDescendants(e))}applyConfigState(e){var t,i,r,s,o,l;"checkbox"===e.type&&e?.isChecked?null===(t=e.onChange)||void 0===t||t.call(e,e?.isChecked):"color"===e.type&&e?.color&&!e.group?null===(i=e.onChange)||void 0===i||i.call(e,e?.color):"slider"===e.type&&e?.value?null===(r=e.onChange)||void 0===r||r.call(e,e?.value):"rangeSlider"===e.type&&void 0!==e?.value&&(null===(s=e.onChange)||void 0===s||s.call(e,{value:e?.value,highValue:e?.highValue}),null===(o=e.setEnableMin)||void 0===o||o.call(e,e?.enableMin),null===(l=e.setEnableMax)||void 0===l||l.call(e,e?.enableMax))}getNodeState(){const e={};e.name=this.name,e.nodeLevel=this.nodeLevel,e.toggleState=this.toggleState,e.childrenActive=this.childrenActive,e.configs=this.configs,e.children=[];for(const t of this.children)e.children.push(t.getNodeState());return e}loadStateFromJSON(e){var t;let i;i="string"==typeof e?JSON.parse(e):e,this.childrenActive=i.childrenActive,this.toggleState=i.toggleState,void 0!==this.toggleState&&(null===(t=this.onToggle)||void 0===t||t.call(this,this.toggleState));for(const r of i.configs){const s=this.configs.find(o=>o.type===r.type&&o.label===r.label);if(s){for(const o in r)s[o]=r[o];this.applyConfigState(s)}}for(const r of i.children){const s=this.children.filter(o=>o.name===r.name&&o.nodeLevel===r.nodeLevel)[0];s&&s.loadStateFromJSON(r)}}findInTree(e){if(this.name===e)return this;for(const t of this.children){const i=t.findInTree(e);if(i)return i}}findInTreeOrCreate(e){let t=this;return e.split(">").forEach(i=>{i=i.trim();const r=t.findInTree(i);t=r||t.addChild(i,()=>{})}),t}}class zge{static getMuonChamber(e){var t;let i=[];const r=(...f)=>{i=i.concat(...f.map(A=>e[A]))};r("front_1","front_2","front_3"),r("front_3","front_4","front_1"),r("back_1","back_2","back_3"),r("back_3","back_4","back_1"),r("back_1","back_2","front_2"),r("front_2","front_1","back_1"),r("back_4","back_3","front_3"),r("front_3","front_4","back_4"),r("front_1","front_4","back_4"),r("back_4","back_1","front_1"),r("front_2","back_2","back_3"),r("back_3","front_3","front_2");const s=new no;s.attributes.position=new No(new Float32Array(i),3),s.computeVertexNormals();const o=new ha(s,new xd({color:null!==(t=e.color)&&void 0!==t?t:bp.MuonChambers,transparent:!0,opacity:.1,side:2}));o.userData=Object.assign({},e),o.name="MuonChamber";const l=new CG(s),d=new uc(l,new Dc({color:16777215,transparent:!0,opacity:.7})),h=new Wl;return h.add(o),h.add(d),e.uuid=o.uuid,h}}class gQ extends J_{constructor(){super(),this.geometryScale=1e3,this.data={}}loadObjectTypes(e){super.loadObjectTypes(e),e.MuonChambers&&this.addObjectType(e.MuonChambers,zge.getMuonChamber,"MuonChambers")}readIgArchive(e,t,i){this.loadingManager.addLoadableItem("ig_archive");const r=new(iO()),s=[],o=l=>{r.loadAsync(l).then(()=>{let d=Object.keys(r.files);i&&(d=d.filter(f=>f.includes(i)));let h=1;for(const f of d)f.toLowerCase().startsWith("events")?r.file(f).async("string").then(A=>{A=A.replace(/'/g,'"').replace(/\(/g,"[").replace(/\)/g,"]").replace(/nan/g,"0");const S=JSON.parse(A);S.eventPath=f,s.push(S),h===d.length&&(t(s),this.loadingManager.itemLoaded("ig_archive")),h++}):(h===d.length&&(t(s),this.loadingManager.itemLoaded("ig_archive")),h++)})};e instanceof File?o(e):fetch(e).then(l=>l.arrayBuffer()).then(l=>{o(l)})}loadEventDataFromIg(e,t,i){this.readIgArchive(e,r=>{i(r[0])},t)}getEventData(){var e,t,i;const r=null===(i=null===(t=null===(e=this.data)||void 0===e?void 0:e.Collections)||void 0===t?void 0:t.Event_V2)||void 0===i?void 0:i[0],s={runNumber:r?.[0],eventNumber:r?.[1],ls:r?.[2],time:r?.[5],Hits:{},Tracks:{},Jets:{},CaloClusters:{},MuonChambers:{}};s.Hits=this.getTrackingClusters(s.Hits),s.Tracks=this.getTracks(),s.Jets=this.getJets(),s.CaloClusters=this.getCaloClusters(),s.MuonChambers=this.getMuonChambers();for(const o of["Hits","Tracks","Jets","CaloClusters","MuonChambers"])0===Object.keys(s[o]).length&&(s[o]=void 0);return s}getAllEventsData(e){const t={};for(const i of e)this.data=i,t[i.eventPath]=this.getEventData();return t}getTrackingClusters(e){const i=this.getObjectCollections(["TrackingRecHits_V1","SiStripClusters_V1","SiPixelClusters_V1","CSCLCTDigis_V1"],r=>{r.pos&&(r.pos=r.pos.map(s=>s*this.geometryScale))});return Object.assign(e,i),e}getCaloClusters(){return this.getObjectCollections(["SuperClusters_V1"],i=>{i.energy&&(i.energy*=this.geometryScale)})}getJets(){let e={};const t=Object.keys(this.data.Collections).filter(r=>r.toLowerCase().includes("jets"));return e=this.getObjectCollections(t,r=>{for(const s of["et","energy"])if(r[s]){r[s]*=this.geometryScale;break}},[{attribute:"et",min:10},{attribute:"energy",min:10}]),e}getMuonChambers(){return this.getObjectCollections(["MatchingCSCs_V1","MuonChambers_V1"],i=>{for(const r of Object.keys(i))(r.startsWith("front")||r.startsWith("back"))&&(i[r]=i[r].map(s=>s*this.geometryScale))})}getObjectCollections(e,t,i){const r={};e=e.filter(s=>this.data.Collections[s]);for(const s of e){r[s]=[];const o=this.data.Types[s];for(const l of this.data.Collections[s]){const d={};if(o.forEach((h,f)=>{d[h[0]]=l[f]}),i){let h=!0,f=!0;for(const A of i)if(d[A.attribute]){if(A.max&&d[A.attribute]>A.max){h=!1;break}if(A.min&&d[A.attribute]this.data.Collections[i.collection]);for(const i of t){e[i.collection]=[];const r=this.data.Collections[i.collection],s=this.data.Collections[i.extras],o=this.data.Associations[i.assocs],l=this.data.Types[i.collection];let d,h,f,A,S,R,G,re,se,le,Ee,Ce;for(let We=0;We{Ce[yt[0]]=r[We][Et]}),Ce.pt{const i={Vertices:{},Tracks:{},Hits:{},CaloCells:{},CaloClusters:{},Jets:{},MissingEnergy:{},"event number":this.getEventNumber(t),"run number":this.getRunNumber(t)};this.colorTracks(t),i.Vertices=this.getVertices(t),i.Tracks=this.getTracks(t),i.Hits=this.getHits(t),i.CaloCells=this.getCells(t),i.CaloClusters=this.getCaloClusters(t),i.Jets=this.getJets(t),i.MissingEnergy=this.getMissingEnergy(t),this.eventData[e]=i}),!0}getEventData(){return this.eventData}getNumEvents(){return Object.keys(this.rawEventData).length}getRunNumber(e){if(!("EventHeader"in e))return 0;const t=e.EventHeader.collection;return"runNumber"in t?0:t[0].runNumber}getEventNumber(e){if(!("EventHeader"in e))return 0;const t=e.EventHeader.collection;return"eventNumber"in t?0:t[0].eventNumber}colorTracks(e){let t,i,r,s;"ReconstructedParticles"in e&&(t=e.ReconstructedParticles.collection,"Particle"in e&&(i=e.Particle.collection,"MCRecoAssociations"in e&&(r=e.MCRecoAssociations.collection,"EFlowTrack"in e&&(s=e.EFlowTrack.collection,r.forEach(o=>{const h=i[o.sim.index].PDG;t[o.rec.index].tracks.forEach(A=>{const S=s[A.index];11===Math.abs(h)?(S.color="00ff00",S.pid="electron"):22===Math.abs(h)?(S.color="ff0000",S.pid="photon"):211===Math.abs(h)||111===Math.abs(h)?(S.color="a52a2a",S.pid="pion"):2212===Math.abs(h)?(S.color="778899",S.pid="proton"):321===Math.abs(h)?(S.color="5f9ea0",S.pid="kaon"):(S.color="0000cd",S.pid="other"),S.pdgid=h})})))))}getVertices(e){const t=[];for(const i in e){if(e[i].constructor!=Object)continue;const r=e[i];if(!("collType"in r)||!("collection"in r)||"edm4hep::VertexCollection"!==r.collType)continue;const s=[],o=r.collection,l=this.randomColor();o.forEach(d=>{const h=[];"position"in d&&(h.push(.1*d.position.x),h.push(.1*d.position.y),h.push(.1*d.position.z)),s.push({pos:h,size:.2,color:"#"+l})}),t[i]=s}return t}getTracks(e){const t=[];for(const i in e){if(e[i].constructor!=Object)continue;const r=e[i];if(!("collType"in r)||"edm4hep::TrackCollection"!==r.collType||!("collection"in r))continue;const o=[],l=[],d=[],h=[],f=[],A=[];r.collection.forEach(S=>{const R=[];"trackerHits"in S&&S.trackerHits.forEach(le=>{const Ce=this.getCollByID(e,le.collectionID)[le.index];R.push([.1*Ce.position.x,.1*Ce.position.y,.1*Ce.position.z])}),"trackStates"in S&&0===R.length&&S.trackStates.forEach(le=>{"referencePoint"in le&&R.push([.1*le.referencePoint.x,.1*le.referencePoint.y,.1*le.referencePoint.z])});let G="0000cd";"color"in S&&(G=S.color);const re={pos:R,color:G};"pid"in S?"electron"==S.pid?o.push(re):"photon"==S.pid?l.push(re):"pion"==S.pid?d.push(re):"proton"==S.pid?h.push(re):"kaon"==S.pid?f.push(re):A.push(re):A.push(re)}),t[i+" | Electrons"]=o,t[i+" | Photons"]=l,t[i+" | Pions"]=d,t[i+" | Protons"]=h,t[i+" | Kaons"]=f,t[i+" | Other"]=A}return t}getHits(e){const t=[];for(const i in e){if(e[i].constructor!=Object)continue;const r=e[i];if(!("collType"in r&&r.collType.includes("edm4hep::")&&r.collType.includes("TrackerHitCollection")&&"collection"in r))continue;const s=r.collection,o=[],l=this.randomColor();s.forEach(d=>{const h=[];"position"in d&&(h.push(.1*d.position.x),h.push(.1*d.position.y),h.push(.1*d.position.z)),o.push({type:"CircularPoint",pos:h,color:"#"+l,size:2})}),t[i]=o}return t}getCells(e){const t=[];for(const i in e){if(e[i].constructor!=Object)continue;const r=e[i];if(!("collType"in r&&r.collType.includes("edm4hep::")&&r.collType.includes("CalorimeterHitCollection")&&"collection"in r))continue;const s=r.collection,o=[];let l=1e9;for(let f=0;f<1e4;++f){const A=Math.floor(Math.random()*s.length),S=Math.floor(Math.random()*s.length);if(A===S)continue;const R=Math.pow(s[A].position.x-s[S].position.x,2),G=Math.pow(s[A].position.y-s[S].position.y,2),re=Math.pow(s[A].position.z-s[S].position.z,2),se=Math.sqrt(R+G+re);se1?.1*Math.floor(l):1,h=Math.floor(358*Math.random());s.forEach(f=>{const A=.1*f.position.x,S=.1*f.position.y,R=.1*f.position.z,G=Math.sqrt(Math.pow(A,2)+Math.pow(S,2)+Math.pow(R,2)),re=Math.sqrt(Math.pow(A,2)+Math.pow(S,2)),se=Math.asinh(R/re),le=Math.acos(A/re)*Math.sign(S),Ee=this.valToLightness(f.energy,.001,1),Ce=this.valToOpacity(f.energy,.001,1),We={eta:se,phi:le,energy:f.energy,radius:G,side:d,length:d,color:"#"+this.convHSLtoHEX(h,90,Ee),opacity:Ce};o.push(We)}),t[i]=o}return t}getCaloClusters(e){const t=[];for(const i in e){if(e[i].constructor!=Object)continue;const r=e[i];if(!("collType"in r)||"edm4hep::ClusterCollection"!==r.collType||!("collection"in r))continue;const o=[];r.collection.forEach(l=>{const d=.1*l.position.x,h=.1*l.position.y,f=.1*l.position.z,A=Math.sqrt(Math.pow(d,2)+Math.pow(h,2)+Math.pow(f,2)),S=Math.sqrt(Math.pow(d,2)+Math.pow(h,2)),R=Math.asinh(f/S),G=Math.acos(d/S)*Math.sign(h);o.push({eta:R,phi:G,energy:100*l.energy,radius:A,side:4})}),t[i]=o}return t}getJets(e){const t=[];for(const i in e){if(e[i].constructor!=Object)continue;const r=e[i];if(!("collType"in r)||"edm4hep::ReconstructedParticleCollection"!==r.collType||!i.includes("Jet")&&!i.includes("jet")||!("collection"in r))continue;const s=[];r.collection.forEach(l=>{if(!("momentum"in l)||!("energy"in l))return;const d=l.momentum.x,h=l.momentum.y,f=l.momentum.z,A=Math.sqrt(Math.pow(d,2)+Math.pow(h,2)),S=Math.asinh(f/A),R=Math.acos(d/A)*Math.sign(h);s.push({eta:S,phi:R,energy:1e3*l.energy})}),t[i]=s}return t}getMissingEnergy(e){const t=[];for(const i in e){if(e[i].constructor!=Object)continue;const r=e[i];if(!("collType"in r)||"edm4hep::ReconstructedParticleCollection"!==r.collType||!i.includes("Missing")&&!i.includes("missing")||!("collection"in r))continue;const s=[];r.collection.forEach(d=>{if(!("momentum"in d)||!("energy"in d))return;const h=d.momentum.x,f=d.momentum.y,A=d.momentum.z,S=Math.sqrt(Math.pow(h,2)+Math.pow(f,2)+Math.pow(A,2));s.push({etx:d.energy*h/S*10,ety:d.energy*f/S*10,color:"#ff69b4"})}),t[i]=s}return t}randomColor(){return Math.floor(16777215*Math.random()).toString(16).padStart(6,"0").toUpperCase()}convHSLtoHEX(e,t,i){i/=100;const r=t*Math.min(i,1-i)/100,s=o=>{const l=(o+e/30)%12,d=i-r*Math.max(Math.min(l-3,9-l,1),-1);return Math.round(255*d).toString(16).padStart(2,"0")};return`${s(0)}${s(8)}${s(4)}`}valToLightness(e,t,i){let r=80-65*(e-t)/(i-t);return r<20&&(r=20),r>85&&(r=85),r}valToOpacity(e,t,i){let r=.2+.65*(e-t)/(i-t);return r<.2&&(r=.2),r>.8&&(r=.8),r}getCollByID(e,t){for(const i in e){if(e[i].constructor!=Object)continue;const r=e[i];if("collID"in r&&r.collID===t)return r.collection}}}class Vge extends J_{constructor(){super(),this.hitData=[],this.particleData=[],this.truthData={}}processHits(e){const t=e.split("\n");let i;console.log("Event has this many hits:",t.length);for(let r=1;r{class n extends Uge{constructor(){super()}static \u0275fac=function(i){return new(i||n)};static \u0275prov=Gi({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),_Q=(()=>{class n{eventDisplay;year;constructor(t){this.eventDisplay=t,this.year=(new Date).getFullYear(),this.eventDisplay.getThreeManager().stopAnimationLoop()}ngAfterViewInit(){this.eventDisplay.getUIManager().detectColorScheme()}static \u0275fac=function(i){return new(i||n)(Lt(Al))};static \u0275cmp=rs({type:n,selectors:[["app-home"]],decls:71,vars:1,consts:[[1,"container"],[1,"pricing-header","p-3","pt-md-5","pb-md-4","text-center"],["src","assets/images/logo-text.svg","alt","",1,"logo","mb-4"],[1,"lead"],[1,"row","centered"],[1,"card"],["src","assets/images/playground.svg","alt","Card image cap",1,"card-img-top"],[1,"card-body","d-flex","flex-column"],[1,"card-title"],[1,"card-text"],["routerLink","/playground",1,"btn","btn-primary"],["src","assets/images/geometry.svg","alt","Card image cap",1,"card-img-top"],["routerLink","/geometry",1,"btn","btn-primary"],["src","assets/images/atlas.svg","alt","Card image cap",1,"card-img-top"],["routerLink","/atlas",1,"btn","btn-primary"],["src","assets/images/lhcb.svg","alt","Card image cap",1,"card-img-top"],["routerLink","/lhcb",1,"btn","btn-primary"],["src","assets/images/cms.svg","alt","Card image cap",1,"card-img-top"],["routerLink","/cms",1,"btn","btn-primary"],["src","assets/images/trackml2.png","alt","Card image cap",1,"card-img-top"],["routerLink","/trackml",1,"btn","btn-primary"],["href","https://github.com/HSF/phoenix"],["href","https://github.com/HSF/phoenix/blob/main/README.md"]],template:function(i,r){1&i&&(Gt(0,"div",0)(1,"div",1),Vr(2,"img",2),Gt(3,"p",3),qi(4,"Application for visualizing High Energy Physics data."),dn()(),Gt(5,"div",4)(6,"div",5),Vr(7,"img",6),Gt(8,"div",7)(9,"h5",8),qi(10,"Playground"),dn(),Gt(11,"p",9),qi(12," Get started with the different Phoenix features. "),dn(),Gt(13,"a",10),qi(14,"Show"),dn()()(),Gt(15,"div",5),Vr(16,"img",11),Gt(17,"div",7)(18,"h5",8),qi(19,"Geometry display"),dn(),Gt(20,"p",9),qi(21,"This test should show some simple geometry."),dn(),Gt(22,"a",12),qi(23,"Show"),dn()()(),Gt(24,"div",5),Vr(25,"img",13),Gt(26,"div",7)(27,"h5",8),qi(28,"ATLAS"),dn(),Gt(29,"p",9),qi(30,"Show the ATLAS detector. One simple event."),dn(),Gt(31,"a",14),qi(32,"Show"),dn()()(),Gt(33,"div",5),Vr(34,"img",15),Gt(35,"div",7)(36,"h5",8),qi(37,"LHCb"),dn(),Gt(38,"p",9),qi(39,"Show the LHCb detector. One simple event."),dn(),Gt(40,"a",16),qi(41,"Show"),dn()()(),Gt(42,"div",5),Vr(43,"img",17),Gt(44,"div",7)(45,"h5",8),qi(46,"CMS"),dn(),Gt(47,"p",9),qi(48,"Show the CMS detector. One simple event."),dn(),Gt(49,"a",18),qi(50,"Show"),dn()()(),Gt(51,"div",5),Vr(52,"img",19),Gt(53,"div",7)(54,"h5",8),qi(55,"TrackML"),dn(),Gt(56,"p",9),qi(57," Visualisation for TrackML. Shows how to write a custom event loader. "),dn(),Gt(58,"a",20),qi(59,"Show"),dn()()()()(),Gt(60,"footer")(61,"p")(62,"em"),qi(63),dn(),qi(64," Phoenix Project "),dn(),Gt(65,"p")(66,"a",21),qi(67," Github "),dn(),qi(68," - "),Gt(69,"a",22),qi(70," Documentation "),dn()()()),2&i&&(jn(63),tA(r.year))},dependencies:[NS],styles:["h1[_ngcontent-%COMP%]{font-family:Circular}.logo[_ngcontent-%COMP%]{margin-top:2em;max-width:24em}.row[_ngcontent-%COMP%]{justify-content:center}.card[_ngcontent-%COMP%]{margin:1.2em;border:1px solid rgba(88,88,88,.08);box-shadow:var(--phoenix-box-shadow);padding:1em;width:20em;background-color:var(--phoenix-background-color-secondary);border-radius:10px}.card[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{color:var(--phoenix-text-color-secondary)}.card[_ngcontent-%COMP%] .card-title[_ngcontent-%COMP%]{font-family:Circular;color:var(--phoenix-text-color)}.card[_ngcontent-%COMP%] .card-img-top[_ngcontent-%COMP%]{width:100%;height:10em;object-fit:contain;border-radius:10px}.card[_ngcontent-%COMP%] .card-body[_ngcontent-%COMP%]{justify-content:space-between}.card[_ngcontent-%COMP%] .card-body[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{border-radius:10px}.lead[_ngcontent-%COMP%]{color:var(--phoenix-text-color-secondary)}footer[_ngcontent-%COMP%]{background-color:var(--phoenix-background-color);margin:5rem 1rem 3rem;color:var(--phoenix-text-color-secondary)}footer[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{text-align:center}footer[_ngcontent-%COMP%] p[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{color:var(--phoenix-text-color-secondary)}footer[_ngcontent-%COMP%] p[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:hover{color:var(--phoenix-text-color-secondary)}"]})}return n})(),ax=(()=>{class n{constructor(){}ngOnInit(){}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=rs({type:n,selectors:[["app-nav"]],decls:2,vars:0,consts:[["id","mainLogo","routerLink","/",1,"main-logo","fixed-top","p-2","mx-auto","mt-2"],["src","assets/images/logo-text.svg"]],template:function(i,r){1&i&&(Gt(0,"a",0),Vr(1,"img",1),dn())},dependencies:[NS],styles:[".main-logo[_ngcontent-%COMP%]{width:140px;z-index:9999}.main-logo[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{transition:all .5s}.main-logo[_ngcontent-%COMP%]:hover img[_ngcontent-%COMP%]{filter:drop-shadow(0px 0px 10px var(--phoenix-text-color));transition:all .5s}"]})}return n})(),sO=(()=>{class n{error=new pC;subscribeToError(t){this.error.onUpdate(t)}setError(t){this.error.update(t)}static \u0275fac=function(i){return new(i||n)};static \u0275prov=Gi({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();const Gge=n=>({"load-complete":n}),qge=n=>({width:n});function Qge(n,e){if(1&n&&(Gt(0,"div",7),Vr(1,"span"),dn()),2&n){const t=Pr(2);jn(),function eg(n){ng(w8,GY,n,!1)}(Ou(2,qge,t.progress+"%"))}}function Wge(n,e){if(1&n&&(ig(0),Vr(1,"img",3),Gt(2,"p",4),qi(3," Loading..."),Vr(4,"br"),Gt(5,"small",5),qi(6,"(This may take a while)"),dn()(),zs(7,Qge,2,4,"div",6),rg()),2&n){const t=Pr();jn(7),Qn("ngIf",void 0!==t.progress)}}function jge(n,e){1&n&&(Gt(0,"p"),qi(1," An error occurred while loading the application. Please try refreshing the page. "),dn())}let lx=(()=>{class n{errorMessageService;loaded=!1;progress;error;constructor(t){this.errorMessageService=t,this.errorMessageService.subscribeToError(i=>{this.loaded||(this.error=i)})}static \u0275fac=function(i){return new(i||n)(Lt(sO))};static \u0275cmp=rs({type:n,selectors:[["app-loader"]],inputs:{loaded:"loaded",progress:"progress"},decls:4,vars:5,consts:[["errorContainer",""],[1,"loader-wrapper","d-flex","position-absolute","flex-column","justify-content-center","align-items-center","w-100","h-100","p-5","text-center",3,"ngClass"],[4,"ngIf","ngIfElse"],["src","assets/images/logo-small.svg","alt","Loader"],[1,"mt-5"],[1,"text-muted"],["class","loading-bar",4,"ngIf"],[1,"loading-bar"]],template:function(i,r){if(1&i&&(Gt(0,"div",1),zs(1,Wge,8,1,"ng-container",2)(2,jge,2,0,"ng-template",null,0,nR),dn()),2&i){const s=Ga(3);Qn("ngClass",Ou(3,Gge,r.loaded)),jn(),Qn("ngIf",void 0===r.error)("ngIfElse",s)}},dependencies:[om,Lu],styles:[".loader-wrapper[_ngcontent-%COMP%]{background:var(--phoenix-background-color);z-index:9998}.loader-wrapper.load-complete[_ngcontent-%COMP%]{display:none!important}.loader-wrapper[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{width:5rem;height:5rem;animation:loader 2s infinite}.loader-wrapper[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{color:var(--phoenix-text-color)}.loader-wrapper[_ngcontent-%COMP%] .loading-bar[_ngcontent-%COMP%]{width:15rem;max-width:90%;height:.5rem;background:var(--phoenix-background-color-tertiary);border-radius:2.5rem;overflow:hidden}.loader-wrapper[_ngcontent-%COMP%] .loading-bar[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{display:block;height:100%;border-radius:2.5rem;background:linear-gradient(to right,var(--phoenix-primary),var(--phoenix-secondary));transition:all .5s}@keyframes _ngcontent-%COMP%_app-loader_loader{0%,to{transform:scale(.1) rotate(0)}95%{transform:scale(1) rotate(15deg)}}"]})}return n})(),$ge=(()=>{class n{eventDisplay;loaded=!1;loadingProgress=0;constructor(t){this.eventDisplay=t}ngOnInit(){this.eventDisplay.init({}),this.eventDisplay.buildGeometryFromParameters({ModuleName:"Module 2",Xdim:10,Ydim:1,Zdim:45,NumPhiEl:64,NumZEl:10,Radius:75,MinZ:-250,MaxZ:250,TiltAngle:.3,PhiOffset:0,Colour:65280,EdgeColour:4494424}),this.eventDisplay.getLoadingManager().addProgressListener(i=>this.loadingProgress=i),this.eventDisplay.getLoadingManager().addLoadListenerWithCheck(()=>this.loaded=!0)}copyCode(){const t=document.getElementById("geometryCode").textContent.trim(),i=document.createElement("input");document.body.appendChild(i),i.value=t,i.select(),document.execCommand("copy"),document.body.removeChild(i)}static \u0275fac=function(i){return new(i||n)(Lt(Al))};static \u0275cmp=rs({type:n,selectors:[["app-geometry"]],decls:14,vars:3,consts:[[3,"loaded","progress"],[1,"demo-info"],["id","geometryCode"],[1,"copy-code",3,"click"],["id","eventDisplay"]],template:function(i,r){1&i&&(Vr(0,"app-loader",0)(1,"app-nav"),Gt(2,"div",1)(3,"p")(4,"b"),qi(5,"Geometry Demo"),dn()(),Gt(6,"p"),qi(7,"Try opening the console and typing:"),dn(),Gt(8,"code",2),qi(9),dn(),Gt(10,"p",3),Ai("click",function(){return r.copyCode()}),Gt(11,"b"),qi(12,"Copy"),dn()()(),Vr(13,"div",4)),2&i&&(Qn("loaded",r.loaded)("progress",r.loadingProgress),jn(9),yl(" ",'var parameters = { ModuleName: "Module 3", Xdim: 10., Ydim: 1., Zdim: 45, NumPhiEl: 64, NumZEl: 10, Radius: 105, MinZ: -250, MaxZ: 250, TiltAngle: 0.3, PhiOffset: 0.0, Colour: 0xffff00, EdgeColour: 0x449458 }; window.EventDisplay.buildGeometryFromParameters(parameters);'," "))},dependencies:[ax,lx],styles:[".demo-info[_ngcontent-%COMP%]{position:absolute;top:5rem;left:1rem;font-size:.8rem;color:var(--phoenix-text-color-secondary);width:20rem;max-width:40%}.demo-info[_ngcontent-%COMP%] code[_ngcontent-%COMP%]{color:var(--phoenix-text-color-secondary);cursor:text}.demo-info[_ngcontent-%COMP%] .copy-code[_ngcontent-%COMP%]{cursor:pointer}"]})}return n})();var qu=function(n){return n.JSON="JSON",n.EDM4HEPJSON="EDM4HEPJSON",n.JIVEXML="JIVEXML",n.IG="IG",n.ZIP="ZIP",n}(qu||{});class cx{format;fileType;handler;accept;constructor(e,t,i,r){this.format=e,this.fileType=t,this.handler=i,this.accept=r}}const Yge=JSON.parse('{"phoenixMenu":{"name":"Phoenix Menu","nodeLevel":0,"toggleState":true,"childrenActive":false,"configs":[{"type":"button","label":"Save state"},{"type":"button","label":"Load state"}],"children":[{"name":"Detector","nodeLevel":1,"toggleState":true,"childrenActive":false,"configs":[{"type":"checkbox","label":"Wireframe","isChecked":false},{"type":"slider","label":"Opacity","min":0,"max":1,"step":0.01,"allowCustomValue":true},{"type":"slider","label":"Scale","min":0,"max":20,"step":0.01,"allowCustomValue":true}],"children":[{"name":"Magnets","nodeLevel":2,"toggleState":true,"childrenActive":false,"configs":[],"children":[{"name":"Barrel Toroid","nodeLevel":3,"toggleState":true,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"slider","label":"Opacity","min":0,"max":1,"step":0.05,"allowCustomValue":true},{"type":"button","label":"Remove"}],"children":[]},{"name":"Endcap","nodeLevel":3,"toggleState":false,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"slider","label":"Opacity","min":0,"max":1,"step":0.05,"allowCustomValue":true},{"type":"button","label":"Remove"}],"children":[]},{"name":"Feet","nodeLevel":3,"toggleState":false,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"slider","label":"Opacity","min":0,"max":1,"step":0.05,"allowCustomValue":true},{"type":"button","label":"Remove"}],"children":[]},{"name":"Warm structure","nodeLevel":3,"toggleState":true,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"slider","label":"Opacity","min":0,"max":1,"step":0.05,"allowCustomValue":true},{"type":"button","label":"Remove"}],"children":[]}]},{"name":"Calorimeters","nodeLevel":2,"toggleState":false,"childrenActive":false,"configs":[],"children":[{"name":"LAr Barrel","nodeLevel":3,"toggleState":false,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"slider","label":"Opacity","min":0,"max":1,"step":0.05,"allowCustomValue":true},{"type":"button","label":"Remove"}],"children":[]},{"name":"LAr EC1","nodeLevel":3,"toggleState":false,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"slider","label":"Opacity","min":0,"max":1,"step":0.05,"allowCustomValue":true},{"type":"button","label":"Remove"}],"children":[]},{"name":"LAr FCAL","nodeLevel":3,"toggleState":false,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"slider","label":"Opacity","min":0,"max":1,"step":0.05,"allowCustomValue":true},{"type":"button","label":"Remove"}],"children":[]},{"name":"LAr HEC","nodeLevel":3,"toggleState":false,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"slider","label":"Opacity","min":0,"max":1,"step":0.05,"allowCustomValue":true},{"type":"button","label":"Remove"}],"children":[]},{"name":"Tile Cal","nodeLevel":3,"toggleState":false,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"slider","label":"Opacity","min":0,"max":1,"step":0.05,"allowCustomValue":true},{"type":"button","label":"Remove"}],"children":[]},{"name":"Tile Cal EC","nodeLevel":3,"toggleState":false,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"slider","label":"Opacity","min":0,"max":1,"step":0.05,"allowCustomValue":true},{"type":"button","label":"Remove"}],"children":[]}]},{"name":"Inner Detector","nodeLevel":2,"toggleState":true,"childrenActive":false,"configs":[],"children":[{"name":"Beam","nodeLevel":3,"toggleState":false,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"slider","label":"Opacity","min":0,"max":1,"step":0.05,"allowCustomValue":true},{"type":"button","label":"Remove"}],"children":[]},{"name":"Pixel","nodeLevel":3,"toggleState":true,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"slider","label":"Opacity","min":0,"max":1,"step":0.05,"allowCustomValue":true},{"type":"button","label":"Remove"}],"children":[]},{"name":"SCT","nodeLevel":3,"toggleState":true,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"slider","label":"Opacity","min":0,"max":1,"step":0.05,"allowCustomValue":true},{"type":"button","label":"Remove"}],"children":[]},{"name":"SCT Endcaps","nodeLevel":3,"toggleState":true,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"slider","label":"Opacity","min":0,"max":1,"step":0.05,"allowCustomValue":true},{"type":"button","label":"Remove"}],"children":[]},{"name":"TRT","nodeLevel":3,"toggleState":true,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"slider","label":"Opacity","min":0,"max":1,"step":0.05,"allowCustomValue":true},{"type":"button","label":"Remove"}],"children":[]},{"name":"TRT Endcaps","nodeLevel":3,"toggleState":true,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"slider","label":"Opacity","min":0,"max":1,"step":0.05,"allowCustomValue":true},{"type":"button","label":"Remove"}],"children":[]}]},{"name":"Muon Spectrometer","nodeLevel":2,"toggleState":false,"childrenActive":false,"configs":[],"children":[{"name":"Endcaps","nodeLevel":3,"toggleState":false,"childrenActive":false,"configs":[],"children":[{"name":"Extra wheel","nodeLevel":4,"toggleState":false,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"slider","label":"Opacity","min":0,"max":1,"step":0.05,"allowCustomValue":true},{"type":"button","label":"Remove"}],"children":[]},{"name":"Big wheel","nodeLevel":4,"toggleState":false,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"slider","label":"Opacity","min":0,"max":1,"step":0.05,"allowCustomValue":true},{"type":"button","label":"Remove"}],"children":[]},{"name":"Outer Wheel","nodeLevel":4,"toggleState":false,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"slider","label":"Opacity","min":0,"max":1,"step":0.05,"allowCustomValue":true},{"type":"button","label":"Remove"}],"children":[]},{"name":"Big Wheel MDT ","nodeLevel":4,"toggleState":false,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"slider","label":"Opacity","min":0,"max":1,"step":0.05,"allowCustomValue":true},{"type":"button","label":"Remove"}],"children":[]},{"name":"Small Wheel","nodeLevel":4,"toggleState":false,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"slider","label":"Opacity","min":0,"max":1,"step":0.05,"allowCustomValue":true},{"type":"button","label":"Remove"}],"children":[]},{"name":"Small Wheel Hub","nodeLevel":4,"toggleState":false,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"slider","label":"Opacity","min":0,"max":1,"step":0.05,"allowCustomValue":true},{"type":"button","label":"Remove"}],"children":[]},{"name":"Small Wheel Feet","nodeLevel":4,"toggleState":false,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"slider","label":"Opacity","min":0,"max":1,"step":0.05,"allowCustomValue":true},{"type":"button","label":"Remove"}],"children":[]},{"name":"TGC2","nodeLevel":4,"toggleState":false,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"slider","label":"Opacity","min":0,"max":1,"step":0.05,"allowCustomValue":true},{"type":"button","label":"Remove"}],"children":[]},{"name":"TGC3","nodeLevel":4,"toggleState":false,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"slider","label":"Opacity","min":0,"max":1,"step":0.05,"allowCustomValue":true},{"type":"button","label":"Remove"}],"children":[]}]},{"name":"Barrel","nodeLevel":3,"toggleState":false,"childrenActive":false,"configs":[],"children":[{"name":"Muon Barrel Inner","nodeLevel":4,"toggleState":false,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"slider","label":"Opacity","min":0,"max":1,"step":0.05,"allowCustomValue":true},{"type":"button","label":"Remove"}],"children":[]},{"name":"Muon Barrel Middle","nodeLevel":4,"toggleState":false,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"slider","label":"Opacity","min":0,"max":1,"step":0.05,"allowCustomValue":true},{"type":"button","label":"Remove"}],"children":[]},{"name":"Muon Barrel Outer","nodeLevel":4,"toggleState":false,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"slider","label":"Opacity","min":0,"max":1,"step":0.05,"allowCustomValue":true},{"type":"button","label":"Remove"}],"children":[]}]}]}]},{"name":"Event Data","nodeLevel":1,"toggleState":true,"childrenActive":false,"configs":[{"type":"checkbox","label":"Depth Test","isChecked":true}],"children":[{"name":"Tracks","nodeLevel":2,"toggleState":true,"childrenActive":false,"configs":[],"children":[{"name":"Tracks_","nodeLevel":3,"toggleState":true,"childrenActive":false,"configs":[],"children":[{"name":"Draw Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"slider","label":"Opacity","min":0.1,"step":0.1,"max":1},{"type":"checkbox","label":"Wireframe"}],"children":[]},{"name":"Cut Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"label","label":"Cuts"},{"type":"button","label":"Reset cuts"},{"type":"rangeSlider","label":"\u03d5","min":-3.14,"max":3.14,"step":0.01,"value":-3.14,"highValue":3.14},{"type":"rangeSlider","label":"\u03b7","min":-4,"max":4,"step":0.1,"value":-4,"highValue":4},{"type":"rangeSlider","label":"\u{1d6d8}2","min":0,"max":100,"step":1,"value":0,"highValue":100},{"type":"rangeSlider","label":"DOF","min":0,"max":100,"step":1,"value":0,"highValue":100},{"type":"rangeSlider","label":"pT","min":0,"max":50000,"step":0.1,"value":0,"highValue":50000},{"type":"rangeSlider","label":"z0","min":-30,"max":30,"step":0.1,"value":-30,"highValue":30},{"type":"rangeSlider","label":"d0","min":-30,"max":30,"step":0.1,"value":-30,"highValue":30}],"children":[]},{"name":"Color Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"color","label":"Color","hidden":false},{"type":"button","label":"Random","hidden":false},{"type":"select","label":"Color by","options":["Charge q","Momentum |p|","Vertex"],"hidden":false},{"type":"color","label":"q=-1","group":"charge","color":"#ff0000","hidden":false},{"type":"color","label":"q=0","group":"charge","color":"#ff0000","hidden":false},{"type":"color","label":"q=1","group":"charge","color":"#ff0000","hidden":false},{"type":"slider","label":"|p| min","group":"mom","min":0,"max":50000,"value":0,"step":10,"allowCustomValue":true,"hidden":true},{"type":"color","label":"|p| min color","group":"mom","color":"#ff0000","hidden":true},{"type":"slider","label":"|p| max","group":"mom","min":0,"max":50000,"value":50000,"step":10,"allowCustomValue":true,"hidden":true},{"type":"color","label":"|p| max color","group":"mom","color":"#ff0000","hidden":true}],"children":[]}]},{"name":"CombinedMuonTracks","nodeLevel":3,"toggleState":true,"childrenActive":false,"configs":[],"children":[{"name":"Draw Options","nodeLevel":4,"childrenActive":false,"configs":[{"type":"slider","label":"Opacity","min":0.1,"step":0.1,"max":1},{"type":"checkbox","label":"Wireframe"}],"children":[]},{"name":"Cut Options","nodeLevel":4,"childrenActive":false,"configs":[{"type":"label","label":"Cuts"},{"type":"button","label":"Reset cuts"},{"type":"rangeSlider","label":"\u03d5","min":-3.14,"max":3.14,"step":0.01,"value":-3.14,"highValue":3.14},{"type":"rangeSlider","label":"\u03b7","min":-4,"max":4,"step":0.1,"value":-4,"highValue":4},{"type":"rangeSlider","label":"\u{1d6d8}2","min":0,"max":100,"step":1,"value":0,"highValue":100},{"type":"rangeSlider","label":"DOF","min":0,"max":100,"step":1,"value":0,"highValue":100},{"type":"rangeSlider","label":"pT","min":0,"max":50000,"step":0.1,"value":0,"highValue":50000},{"type":"rangeSlider","label":"z0","min":-30,"max":30,"step":0.1,"value":-30,"highValue":30},{"type":"rangeSlider","label":"d0","min":-30,"max":30,"step":0.1,"value":-30,"highValue":30}],"children":[]},{"name":"Color Options","nodeLevel":4,"childrenActive":false,"configs":[{"type":"color","label":"Color","color":"#0adb2d","hidden":false},{"type":"button","label":"Random","hidden":false},{"type":"select","label":"Color by","options":["Charge q","Momentum |p|","Vertex"],"hidden":false},{"type":"color","label":"q=-1","group":"charge","color":"#ff0000","hidden":false},{"type":"color","label":"q=0","group":"charge","color":"#ff0000","hidden":false},{"type":"color","label":"q=1","group":"charge","color":"#ff0000","hidden":false},{"type":"slider","label":"|p| min","group":"mom","min":0,"max":50000,"value":0,"step":10,"allowCustomValue":true,"hidden":true},{"type":"color","label":"|p| min color","group":"mom","color":"#ff0000","hidden":true},{"type":"slider","label":"|p| max","group":"mom","min":0,"max":50000,"value":50000,"step":10,"allowCustomValue":true,"hidden":true},{"type":"color","label":"|p| max color","group":"mom","color":"#ff0000","hidden":true}],"children":[]}]},{"name":"MuonSpectrometerTracks","nodeLevel":3,"toggleState":false,"childrenActive":false,"configs":[],"children":[{"name":"Draw Options","nodeLevel":4,"toggleState":false,"childrenActive":false,"configs":[{"type":"slider","label":"Opacity","min":0.1,"step":0.1,"max":1},{"type":"checkbox","label":"Wireframe"}],"children":[]},{"name":"Cut Options","nodeLevel":4,"toggleState":false,"childrenActive":false,"configs":[{"type":"label","label":"Cuts"},{"type":"button","label":"Reset cuts"},{"type":"rangeSlider","label":"\u03d5","min":-3.14,"max":3.14,"step":0.01,"value":-3.14,"highValue":3.14},{"type":"rangeSlider","label":"\u03b7","min":-4,"max":4,"step":0.1,"value":-4,"highValue":4},{"type":"rangeSlider","label":"\u{1d6d8}2","min":0,"max":100,"step":1,"value":0,"highValue":100},{"type":"rangeSlider","label":"DOF","min":0,"max":100,"step":1,"value":0,"highValue":100},{"type":"rangeSlider","label":"pT","min":0,"max":50000,"step":0.1,"value":0,"highValue":50000},{"type":"rangeSlider","label":"z0","min":-30,"max":30,"step":0.1,"value":-30,"highValue":30},{"type":"rangeSlider","label":"d0","min":-30,"max":30,"step":0.1,"value":-30,"highValue":30}],"children":[]},{"name":"Color Options","nodeLevel":4,"toggleState":false,"childrenActive":false,"configs":[{"type":"color","label":"Color","hidden":false},{"type":"button","label":"Random","hidden":false},{"type":"select","label":"Color by","options":["Charge q","Momentum |p|","Vertex"],"hidden":false},{"type":"color","label":"q=-1","group":"charge","color":"#ff0000","hidden":false},{"type":"color","label":"q=0","group":"charge","color":"#ff0000","hidden":false},{"type":"color","label":"q=1","group":"charge","color":"#ff0000","hidden":false},{"type":"slider","label":"|p| min","group":"mom","min":0,"max":50000,"value":0,"step":10,"allowCustomValue":true,"hidden":true},{"type":"color","label":"|p| min color","group":"mom","color":"#ff0000","hidden":true},{"type":"slider","label":"|p| max","group":"mom","min":0,"max":50000,"value":50000,"step":10,"allowCustomValue":true,"hidden":true},{"type":"color","label":"|p| max color","group":"mom","color":"#ff0000","hidden":true}],"children":[]}]},{"name":"CombinedInDetTracks","nodeLevel":3,"toggleState":false,"childrenActive":false,"configs":[],"children":[{"name":"Draw Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"slider","label":"Opacity","min":0.1,"step":0.1,"max":1},{"type":"checkbox","label":"Wireframe"}],"children":[]},{"name":"Cut Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"label","label":"Cuts"},{"type":"button","label":"Reset cuts"},{"type":"rangeSlider","label":"\u03d5","min":-3.14,"max":3.14,"step":0.01,"value":-3.14,"highValue":3.14},{"type":"rangeSlider","label":"\u03b7","min":-4,"max":4,"step":0.1,"value":-4,"highValue":4},{"type":"rangeSlider","label":"\u{1d6d8}2","min":0,"max":100,"step":1,"value":0,"highValue":100},{"type":"rangeSlider","label":"DOF","min":0,"max":100,"step":1,"value":0,"highValue":100},{"type":"rangeSlider","label":"pT","min":0,"max":50000,"step":0.1,"value":0,"highValue":50000},{"type":"rangeSlider","label":"z0","min":-30,"max":30,"step":0.1,"value":-30,"highValue":30},{"type":"rangeSlider","label":"d0","min":-30,"max":30,"step":0.1,"value":-30,"highValue":30}],"children":[]},{"name":"Color Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"color","label":"Color","hidden":false},{"type":"button","label":"Random","hidden":false},{"type":"select","label":"Color by","options":["Charge q","Momentum |p|","Vertex"],"hidden":false},{"type":"color","label":"q=-1","group":"charge","color":"#ff0000","hidden":false},{"type":"color","label":"q=0","group":"charge","color":"#ff0000","hidden":false},{"type":"color","label":"q=1","group":"charge","color":"#ff0000","hidden":false},{"type":"slider","label":"|p| min","group":"mom","min":0,"max":50000,"value":0,"step":10,"allowCustomValue":true,"hidden":true},{"type":"color","label":"|p| min color","group":"mom","color":"#ff0000","hidden":true},{"type":"slider","label":"|p| max","group":"mom","min":0,"max":50000,"value":50000,"step":10,"allowCustomValue":true,"hidden":true},{"type":"color","label":"|p| max color","group":"mom","color":"#ff0000","hidden":true}],"children":[]}]},{"name":"GSFTracks","nodeLevel":3,"toggleState":false,"childrenActive":false,"configs":[],"children":[{"name":"Draw Options","nodeLevel":4,"toggleState":false,"childrenActive":false,"configs":[{"type":"slider","label":"Opacity","min":0.1,"step":0.1,"max":1},{"type":"checkbox","label":"Wireframe"}],"children":[]},{"name":"Cut Options","nodeLevel":4,"toggleState":false,"childrenActive":false,"configs":[{"type":"label","label":"Cuts"},{"type":"button","label":"Reset cuts"},{"type":"rangeSlider","label":"\u03d5","min":-3.14,"max":3.14,"step":0.01,"value":-3.14,"highValue":3.14},{"type":"rangeSlider","label":"\u03b7","min":-4,"max":4,"step":0.1,"value":-4,"highValue":4},{"type":"rangeSlider","label":"\u{1d6d8}2","min":0,"max":100,"step":1,"value":0,"highValue":100},{"type":"rangeSlider","label":"DOF","min":0,"max":100,"step":1,"value":0,"highValue":100},{"type":"rangeSlider","label":"pT","min":0,"max":50000,"step":0.1,"value":0,"highValue":50000},{"type":"rangeSlider","label":"z0","min":-30,"max":30,"step":0.1,"value":-30,"highValue":30},{"type":"rangeSlider","label":"d0","min":-30,"max":30,"step":0.1,"value":-30,"highValue":30}],"children":[]},{"name":"Color Options","nodeLevel":4,"toggleState":false,"childrenActive":false,"configs":[{"type":"color","label":"Color","hidden":false},{"type":"button","label":"Random","hidden":false},{"type":"select","label":"Color by","options":["Charge q","Momentum |p|","Vertex"],"hidden":false},{"type":"color","label":"q=-1","group":"charge","color":"#ff0000","hidden":false},{"type":"color","label":"q=0","group":"charge","color":"#ff0000","hidden":false},{"type":"color","label":"q=1","group":"charge","color":"#ff0000","hidden":false},{"type":"slider","label":"|p| min","group":"mom","min":0,"max":50000,"value":0,"step":10,"allowCustomValue":true,"hidden":true},{"type":"color","label":"|p| min color","group":"mom","color":"#ff0000","hidden":true},{"type":"slider","label":"|p| max","group":"mom","min":0,"max":50000,"value":50000,"step":10,"allowCustomValue":true,"hidden":true},{"type":"color","label":"|p| max color","group":"mom","color":"#ff0000","hidden":true}],"children":[]}]},{"name":"InDetTrackParticles_xAOD","nodeLevel":3,"toggleState":true,"childrenActive":false,"configs":[],"children":[{"name":"Draw Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"slider","label":"Opacity","min":0.1,"step":0.1,"max":1},{"type":"checkbox","label":"Wireframe"}],"children":[]},{"name":"Cut Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"label","label":"Cuts"},{"type":"button","label":"Reset cuts"},{"type":"rangeSlider","label":"\u03d5","min":-3.14,"max":3.14,"step":0.01,"value":-3.14,"highValue":3.14},{"type":"rangeSlider","label":"\u03b7","min":-4,"max":4,"step":0.1,"value":-4,"highValue":4},{"type":"rangeSlider","label":"\u{1d6d8}2","min":0,"max":100,"step":1,"value":0,"highValue":100},{"type":"rangeSlider","label":"DOF","min":0,"max":100,"step":1,"value":0,"highValue":100},{"type":"rangeSlider","label":"pT","min":0,"max":50000,"step":0.1,"value":0,"highValue":50000},{"type":"rangeSlider","label":"z0","min":-30,"max":30,"step":0.1,"value":-30,"highValue":30},{"type":"rangeSlider","label":"d0","min":-30,"max":30,"step":0.1,"value":-30,"highValue":30}],"children":[]},{"name":"Color Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"color","label":"Color","hidden":false},{"type":"button","label":"Random","hidden":false},{"type":"select","label":"Color by","options":["Charge q","Momentum |p|","Vertex"],"hidden":false},{"type":"color","label":"q=-1","group":"charge","color":"#ff0000","hidden":false},{"type":"color","label":"q=0","group":"charge","color":"#ff0000","hidden":false},{"type":"color","label":"q=1","group":"charge","color":"#ff0000","hidden":false},{"type":"slider","label":"|p| min","group":"mom","min":0,"max":50000,"value":0,"step":10,"allowCustomValue":true,"hidden":true},{"type":"color","label":"|p| min color","group":"mom","color":"#ff0000","hidden":true},{"type":"slider","label":"|p| max","group":"mom","min":0,"max":50000,"value":50000,"step":10,"allowCustomValue":true,"hidden":true},{"type":"color","label":"|p| max color","group":"mom","color":"#ff0000","hidden":true}],"children":[]}]},{"name":"CombinedMuonTrackParticles_xAOD","nodeLevel":3,"toggleState":false,"childrenActive":false,"configs":[],"children":[{"name":"Draw Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"slider","label":"Opacity","min":0.1,"step":0.1,"max":1},{"type":"checkbox","label":"Wireframe"}],"children":[]},{"name":"Cut Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"label","label":"Cuts"},{"type":"button","label":"Reset cuts"},{"type":"rangeSlider","label":"\u03d5","min":-3.14,"max":3.14,"step":0.01,"value":-3.14,"highValue":3.14},{"type":"rangeSlider","label":"\u03b7","min":-4,"max":4,"step":0.1,"value":-4,"highValue":4},{"type":"rangeSlider","label":"\u{1d6d8}2","min":0,"max":100,"step":1,"value":0,"highValue":100},{"type":"rangeSlider","label":"DOF","min":0,"max":100,"step":1,"value":0,"highValue":100},{"type":"rangeSlider","label":"pT","min":0,"max":50000,"step":0.1,"value":0,"highValue":50000},{"type":"rangeSlider","label":"z0","min":-30,"max":30,"step":0.1,"value":-30,"highValue":30},{"type":"rangeSlider","label":"d0","min":-30,"max":30,"step":0.1,"value":-30,"highValue":30}],"children":[]},{"name":"Color Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"color","label":"Color","hidden":false},{"type":"button","label":"Random","hidden":false},{"type":"select","label":"Color by","options":["Charge q","Momentum |p|","Vertex"],"hidden":false},{"type":"color","label":"q=-1","group":"charge","color":"#ff0000","hidden":false},{"type":"color","label":"q=0","group":"charge","color":"#ff0000","hidden":false},{"type":"color","label":"q=1","group":"charge","color":"#ff0000","hidden":false},{"type":"slider","label":"|p| min","group":"mom","min":0,"max":50000,"value":0,"step":10,"allowCustomValue":true,"hidden":true},{"type":"color","label":"|p| min color","group":"mom","color":"#ff0000","hidden":true},{"type":"slider","label":"|p| max","group":"mom","min":0,"max":50000,"value":50000,"step":10,"allowCustomValue":true,"hidden":true},{"type":"color","label":"|p| max color","group":"mom","color":"#ff0000","hidden":true}],"children":[]}]},{"name":"GSFTrackParticles_xAOD","nodeLevel":3,"toggleState":false,"childrenActive":false,"configs":[],"children":[{"name":"Draw Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"slider","label":"Opacity","min":0.1,"step":0.1,"max":1},{"type":"checkbox","label":"Wireframe"}],"children":[]},{"name":"Cut Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"label","label":"Cuts"},{"type":"button","label":"Reset cuts"},{"type":"rangeSlider","label":"\u03d5","min":-3.14,"max":3.14,"step":0.01,"value":-3.14,"highValue":3.14},{"type":"rangeSlider","label":"\u03b7","min":-4,"max":4,"step":0.1,"value":-4,"highValue":4},{"type":"rangeSlider","label":"\u{1d6d8}2","min":0,"max":100,"step":1,"value":0,"highValue":100},{"type":"rangeSlider","label":"DOF","min":0,"max":100,"step":1,"value":0,"highValue":100},{"type":"rangeSlider","label":"pT","min":0,"max":50000,"step":0.1,"value":0,"highValue":50000},{"type":"rangeSlider","label":"z0","min":-30,"max":30,"step":0.1,"value":-30,"highValue":30},{"type":"rangeSlider","label":"d0","min":-30,"max":30,"step":0.1,"value":-30,"highValue":30}],"children":[]},{"name":"Color Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"color","label":"Color","hidden":false},{"type":"button","label":"Random","hidden":false},{"type":"select","label":"Color by","options":["Charge q","Momentum |p|","Vertex"],"hidden":false},{"type":"color","label":"q=-1","group":"charge","color":"#ff0000","hidden":false},{"type":"color","label":"q=0","group":"charge","color":"#ff0000","hidden":false},{"type":"color","label":"q=1","group":"charge","color":"#ff0000","hidden":false},{"type":"slider","label":"|p| min","group":"mom","min":0,"max":50000,"value":0,"step":10,"allowCustomValue":true,"hidden":true},{"type":"color","label":"|p| min color","group":"mom","color":"#ff0000","hidden":true},{"type":"slider","label":"|p| max","group":"mom","min":0,"max":50000,"value":50000,"step":10,"allowCustomValue":true,"hidden":true},{"type":"color","label":"|p| max color","group":"mom","color":"#ff0000","hidden":true}],"children":[]}]}]},{"name":"Jets","nodeLevel":2,"toggleState":true,"childrenActive":false,"configs":[{"type":"slider","label":"Jets Scale","value":1,"min":0.001,"step":0.01,"max":100,"allowCustomValue":true}],"children":[{"name":"AntiKt4EMTopoJets_xAOD","nodeLevel":3,"toggleState":false,"childrenActive":false,"configs":[],"children":[{"name":"Draw Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"slider","label":"Opacity","min":0.1,"step":0.1,"max":1},{"type":"checkbox","label":"Wireframe"}],"children":[]},{"name":"Cut Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"label","label":"Cuts"},{"type":"button","label":"Reset cuts"},{"type":"rangeSlider","label":"\u03d5","min":-3.14,"max":3.14,"step":0.01,"value":-3.14,"highValue":3.14},{"type":"rangeSlider","label":"\u03b7","min":-5,"max":5,"step":0.1,"value":-5,"highValue":5},{"type":"rangeSlider","label":"Energy","min":0,"max":100000,"step":100,"value":0,"highValue":100000}],"children":[]},{"name":"Color Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"button","label":"Random"}],"children":[]}]},{"name":"AntiKt4LCTopoJets_xAOD","nodeLevel":3,"toggleState":true,"childrenActive":false,"configs":[],"children":[{"name":"Draw Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"slider","label":"Opacity","min":0.1,"step":0.1,"max":1},{"type":"checkbox","label":"Wireframe"}],"children":[]},{"name":"Cut Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"label","label":"Cuts"},{"type":"button","label":"Reset cuts"},{"type":"rangeSlider","label":"\u03d5","min":-3.14,"max":3.14,"step":0.01,"value":-3.14,"highValue":3.14},{"type":"rangeSlider","label":"\u03b7","min":-5,"max":5,"step":0.1,"value":-5,"highValue":5},{"type":"rangeSlider","label":"Energy","min":0,"max":100000,"step":100,"value":0,"highValue":100000}],"children":[]},{"name":"Color Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"button","label":"Random"}],"children":[]}]},{"name":"AntiKt10LCTopoJets_xAOD","nodeLevel":3,"toggleState":false,"childrenActive":false,"configs":[],"children":[{"name":"Draw Options","nodeLevel":4,"toggleState":false,"childrenActive":false,"configs":[{"type":"slider","label":"Opacity","min":0.1,"step":0.1,"max":1},{"type":"checkbox","label":"Wireframe"}],"children":[]},{"name":"Cut Options","nodeLevel":4,"toggleState":false,"childrenActive":false,"configs":[{"type":"label","label":"Cuts"},{"type":"button","label":"Reset cuts"},{"type":"rangeSlider","label":"\u03d5","min":-3.14,"max":3.14,"step":0.01,"value":-3.14,"highValue":3.14},{"type":"rangeSlider","label":"\u03b7","min":-5,"max":5,"step":0.1,"value":-5,"highValue":5},{"type":"rangeSlider","label":"Energy","min":0,"max":100000,"step":100,"value":0,"highValue":100000}],"children":[]},{"name":"Color Options","nodeLevel":4,"toggleState":false,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"button","label":"Random"}],"children":[]}]}]},{"name":"Hits","nodeLevel":2,"toggleState":false,"childrenActive":false,"configs":[],"children":[{"name":"Pixel","nodeLevel":3,"toggleState":false,"childrenActive":false,"configs":[],"children":[{"name":"Draw Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"slider","label":"Opacity","min":0.1,"step":0.1,"max":1},{"type":"checkbox","label":"Wireframe"}],"children":[]},{"name":"Color Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"button","label":"Random"}],"children":[]}]},{"name":"SCT","nodeLevel":3,"toggleState":false,"childrenActive":false,"configs":[],"children":[{"name":"Draw Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"slider","label":"Opacity","min":0.1,"step":0.1,"max":1},{"type":"checkbox","label":"Wireframe"}],"children":[]},{"name":"Color Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"button","label":"Random"}],"children":[]}]},{"name":"TRT","nodeLevel":3,"toggleState":false,"childrenActive":false,"configs":[],"children":[{"name":"Draw Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"slider","label":"Opacity","min":0.1,"step":0.1,"max":1},{"type":"checkbox","label":"Wireframe"}],"children":[]},{"name":"Color Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"button","label":"Random"}],"children":[]}]},{"name":"MDT","nodeLevel":3,"toggleState":false,"childrenActive":false,"configs":[],"children":[{"name":"Draw Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"slider","label":"Opacity","min":0.1,"step":0.1,"max":1},{"type":"checkbox","label":"Wireframe"}],"children":[]},{"name":"Color Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"button","label":"Random"}],"children":[]}]},{"name":"RPC","nodeLevel":3,"toggleState":false,"childrenActive":false,"configs":[],"children":[{"name":"Draw Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"slider","label":"Opacity","min":0.1,"step":0.1,"max":1},{"type":"checkbox","label":"Wireframe"}],"children":[]},{"name":"Color Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"button","label":"Random"}],"children":[]}]},{"name":"TGC","nodeLevel":3,"toggleState":false,"childrenActive":false,"configs":[],"children":[{"name":"Draw Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"slider","label":"Opacity","min":0.1,"step":0.1,"max":1},{"type":"checkbox","label":"Wireframe"}],"children":[]},{"name":"Color Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"button","label":"Random"}],"children":[]}]},{"name":"CSC","nodeLevel":3,"toggleState":false,"childrenActive":false,"configs":[],"children":[{"name":"Draw Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"slider","label":"Opacity","min":0.1,"step":0.1,"max":1},{"type":"checkbox","label":"Wireframe"}],"children":[]},{"name":"Color Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"button","label":"Random"}],"children":[]}]}]},{"name":"CaloClusters","nodeLevel":2,"toggleState":true,"childrenActive":false,"configs":[{"type":"slider","label":"CaloClusters Scale","value":1,"min":0.001,"step":0.01,"max":100,"allowCustomValue":true}],"children":[{"name":"egammaClusters_xAOD","nodeLevel":3,"toggleState":false,"childrenActive":false,"configs":[],"children":[{"name":"Draw Options","nodeLevel":4,"toggleState":false,"childrenActive":false,"configs":[{"type":"slider","label":"Opacity","min":0.1,"step":0.1,"max":1},{"type":"checkbox","label":"Wireframe"}],"children":[]},{"name":"Cut Options","nodeLevel":4,"toggleState":false,"childrenActive":false,"configs":[{"type":"label","label":"Cuts"},{"type":"button","label":"Reset cuts"},{"type":"rangeSlider","label":"\u03d5","min":-3.14,"max":3.14,"step":0.01,"value":-3.14,"highValue":3.14},{"type":"rangeSlider","label":"\u03b7","min":-5,"max":5,"step":0.1,"value":-5,"highValue":5},{"type":"rangeSlider","label":"Energy","min":0,"max":10000,"step":1,"value":0,"highValue":10000}],"children":[]},{"name":"Color Options","nodeLevel":4,"toggleState":false,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"button","label":"Random"}],"children":[]}]},{"name":"CaloCalTopoClusters","nodeLevel":3,"toggleState":true,"childrenActive":false,"configs":[],"children":[{"name":"Draw Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"slider","label":"Opacity","min":0.1,"step":0.1,"max":1},{"type":"checkbox","label":"Wireframe"}],"children":[]},{"name":"Cut Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"label","label":"Cuts"},{"type":"button","label":"Reset cuts"},{"type":"rangeSlider","label":"\u03d5","min":-3.14,"max":3.14,"step":0.01,"value":-3.14,"highValue":3.14},{"type":"rangeSlider","label":"\u03b7","min":-5,"max":5,"step":0.1,"value":-5,"highValue":5},{"type":"rangeSlider","label":"Energy","min":0,"max":10000,"step":1,"value":0,"highValue":10000}],"children":[]},{"name":"Color Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"button","label":"Random"}],"children":[]}]}]},{"name":"CaloCells","nodeLevel":2,"toggleState":false,"childrenActive":false,"configs":[],"children":[{"name":"LAr","nodeLevel":3,"toggleState":false,"childrenActive":false,"configs":[],"children":[{"name":"Draw Options","nodeLevel":4,"toggleState":false,"childrenActive":false,"configs":[{"type":"slider","label":"Opacity","min":0.1,"step":0.1,"max":1},{"type":"checkbox","label":"Wireframe"}],"children":[]},{"name":"Cut Options","nodeLevel":4,"toggleState":false,"childrenActive":false,"configs":[{"type":"label","label":"Cuts"},{"type":"button","label":"Reset cuts"},{"type":"rangeSlider","label":"\u03d5","min":-3.14,"max":3.14,"step":0.01,"value":-3.14,"highValue":3.14},{"type":"rangeSlider","label":"\u03b7","min":-5,"max":5,"step":0.1,"value":-5,"highValue":5},{"type":"rangeSlider","label":"Energy","min":0,"max":10000,"step":1,"value":0,"highValue":10000}],"children":[]},{"name":"Color Options","nodeLevel":4,"toggleState":false,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"button","label":"Random"}],"children":[]}]},{"name":"HEC","nodeLevel":3,"toggleState":false,"childrenActive":false,"configs":[],"children":[{"name":"Draw Options","nodeLevel":4,"toggleState":false,"childrenActive":false,"configs":[{"type":"slider","label":"Opacity","min":0.1,"step":0.1,"max":1},{"type":"checkbox","label":"Wireframe"}],"children":[]},{"name":"Cut Options","nodeLevel":4,"toggleState":false,"childrenActive":false,"configs":[{"type":"label","label":"Cuts"},{"type":"button","label":"Reset cuts"},{"type":"rangeSlider","label":"\u03d5","min":-3.14,"max":3.14,"step":0.01,"value":-3.14,"highValue":3.14},{"type":"rangeSlider","label":"\u03b7","min":-5,"max":5,"step":0.1,"value":-5,"highValue":5},{"type":"rangeSlider","label":"Energy","min":0,"max":10000,"step":1,"value":0,"highValue":10000}],"children":[]},{"name":"Color Options","nodeLevel":4,"toggleState":false,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"button","label":"Random"}],"children":[]}]}]},{"name":"PlanarCaloCells","nodeLevel":2,"toggleState":false,"childrenActive":false,"configs":[{"type":"slider","label":"PlanarCaloCells Scale","value":1,"min":0.001,"step":0.01,"max":100,"allowCustomValue":true}],"children":[]},{"name":"Muons","nodeLevel":2,"toggleState":false,"childrenActive":false,"configs":[],"children":[{"name":"Muons_xAOD","nodeLevel":3,"toggleState":false,"childrenActive":false,"configs":[],"children":[{"name":"Draw Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"slider","label":"Opacity","min":0.1,"step":0.1,"max":1},{"type":"checkbox","label":"Wireframe"}],"children":[]},{"name":"Cut Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"label","label":"Cuts"},{"type":"button","label":"Reset cuts"},{"type":"rangeSlider","label":"\u03d5","min":-3.14,"max":3.14,"step":0.01,"value":-3.14,"highValue":3.14},{"type":"rangeSlider","label":"\u03b7","min":-4,"max":4,"step":0.1,"value":-4,"highValue":4},{"type":"rangeSlider","label":"Energy","min":0,"max":10000,"step":1,"value":0,"highValue":10000}],"children":[]},{"name":"Color Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"button","label":"Random"}],"children":[]}]},{"name":"Muons","nodeLevel":3,"toggleState":false,"childrenActive":false,"configs":[],"children":[{"name":"Draw Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"slider","label":"Opacity","min":0.1,"step":0.1,"max":1},{"type":"checkbox","label":"Wireframe"}],"children":[]},{"name":"Cut Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"label","label":"Cuts"},{"type":"button","label":"Reset cuts"},{"type":"rangeSlider","label":"\u03d5","min":-3.14,"max":3.14,"step":0.01,"value":-3.14,"highValue":3.14},{"type":"rangeSlider","label":"\u03b7","min":-4,"max":4,"step":0.1,"value":-4,"highValue":4},{"type":"rangeSlider","label":"Energy","min":0,"max":10000,"step":1,"value":0,"highValue":10000}],"children":[]},{"name":"Color Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"button","label":"Random"}],"children":[]}]}]},{"name":"Photons","nodeLevel":2,"toggleState":true,"childrenActive":false,"configs":[],"children":[{"name":"Photons_xAOD","nodeLevel":3,"toggleState":true,"childrenActive":false,"configs":[],"children":[{"name":"Draw Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"slider","label":"Opacity","min":0.1,"step":0.1,"max":1},{"type":"checkbox","label":"Wireframe"}],"children":[]},{"name":"Cut Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"label","label":"Cuts"},{"type":"button","label":"Reset cuts"},{"type":"rangeSlider","label":"\u03d5","min":-3.14,"max":3.14,"step":0.01,"value":-3.14,"highValue":3.14},{"type":"rangeSlider","label":"\u03b7","min":-4,"max":4,"step":0.1,"value":-4,"highValue":4},{"type":"rangeSlider","label":"Energy","min":0,"max":10000,"step":1,"value":0,"highValue":10000}],"children":[]},{"name":"Color Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"button","label":"Random"}],"children":[]}]}]},{"name":"Electrons","nodeLevel":2,"toggleState":true,"childrenActive":false,"configs":[],"children":[{"name":"Electrons_xAOD","nodeLevel":3,"toggleState":true,"childrenActive":false,"configs":[],"children":[{"name":"Draw Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"slider","label":"Opacity","min":0.1,"step":0.1,"max":1},{"type":"checkbox","label":"Wireframe"}],"children":[]},{"name":"Cut Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"label","label":"Cuts"},{"type":"button","label":"Reset cuts"},{"type":"rangeSlider","label":"\u03d5","min":-3.14,"max":3.14,"step":0.01,"value":-3.14,"highValue":3.14},{"type":"rangeSlider","label":"\u03b7","min":-4,"max":4,"step":0.1,"value":-4,"highValue":4},{"type":"rangeSlider","label":"Energy","min":0,"max":10000,"step":1,"value":0,"highValue":10000}],"children":[]},{"name":"Color Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"button","label":"Random"}],"children":[]}]},{"name":"ForwardElectrons_xAOD","nodeLevel":3,"toggleState":true,"childrenActive":false,"configs":[],"children":[{"name":"Draw Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"slider","label":"Opacity","min":0.1,"step":0.1,"max":1},{"type":"checkbox","label":"Wireframe"}],"children":[]},{"name":"Cut Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"label","label":"Cuts"},{"type":"button","label":"Reset cuts"},{"type":"rangeSlider","label":"\u03d5","min":-3.14,"max":3.14,"step":0.01,"value":-3.14,"highValue":3.14},{"type":"rangeSlider","label":"\u03b7","min":-4,"max":4,"step":0.1,"value":-4,"highValue":4},{"type":"rangeSlider","label":"Energy","min":0,"max":10000,"step":1,"value":0,"highValue":10000}],"children":[]},{"name":"Color Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"button","label":"Random"}],"children":[]}]},{"name":"HLT_xAOD__ElectronContainer_egamma_Electrons_xAOD","nodeLevel":3,"toggleState":true,"childrenActive":false,"configs":[],"children":[{"name":"Draw Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"slider","label":"Opacity","min":0.1,"step":0.1,"max":1},{"type":"checkbox","label":"Wireframe"}],"children":[]},{"name":"Cut Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"label","label":"Cuts"},{"type":"button","label":"Reset cuts"},{"type":"rangeSlider","label":"\u03d5","min":-3.14,"max":3.14,"step":0.01,"value":-3.14,"highValue":3.14},{"type":"rangeSlider","label":"\u03b7","min":-4,"max":4,"step":0.1,"value":-4,"highValue":4},{"type":"rangeSlider","label":"Energy","min":0,"max":10000,"step":1,"value":0,"highValue":10000}],"children":[]},{"name":"Color Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"button","label":"Random"}],"children":[]}]}]},{"name":"Vertices","nodeLevel":2,"toggleState":true,"childrenActive":false,"configs":[{"type":"slider","label":"Vertices Scale","value":1,"min":0.001,"step":0.01,"max":100,"allowCustomValue":true}],"children":[{"name":"Vertices_xAOD","nodeLevel":3,"toggleState":true,"childrenActive":false,"configs":[],"children":[{"name":"Draw Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"slider","label":"Opacity","min":0.1,"step":0.1,"max":1},{"type":"checkbox","label":"Wireframe"}],"children":[]},{"name":"Cut Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"label","label":"Cuts"},{"type":"button","label":"Reset cuts"},{"type":"rangeSlider","label":"vertexType","min":0,"max":5,"step":1,"value":0,"highValue":5}],"children":[]},{"name":"Color Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"button","label":"Random"}],"children":[]}]}]},{"name":"MissingEnergy","nodeLevel":2,"toggleState":true,"childrenActive":false,"configs":[{"type":"slider","label":"Size (%)","value":100,"min":1,"max":200,"allowCustomValue":true}],"children":[{"name":"MET_Reference_AntiKt4EMTopo_xAOD","nodeLevel":3,"toggleState":true,"childrenActive":false,"configs":[],"children":[{"name":"Draw Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"slider","label":"Opacity","min":0.1,"step":0.1,"max":1},{"type":"checkbox","label":"Wireframe"}],"children":[]},{"name":"Color Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"button","label":"Random"}],"children":[]}]},{"name":"MET_Calo_xAOD","nodeLevel":3,"toggleState":true,"childrenActive":false,"configs":[],"children":[{"name":"Draw Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"slider","label":"Opacity","min":0.1,"step":0.1,"max":1},{"type":"checkbox","label":"Wireframe"}],"children":[]},{"name":"Color Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"button","label":"Random"}],"children":[]}]},{"name":"MET_LocHadTopo_xAOD","nodeLevel":3,"toggleState":true,"childrenActive":false,"configs":[],"children":[{"name":"Draw Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"slider","label":"Opacity","min":0.1,"step":0.1,"max":1},{"type":"checkbox","label":"Wireframe"}],"children":[]},{"name":"Color Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"button","label":"Random"}],"children":[]}]},{"name":"MET_Core_AntiKt4LCTopo_xAOD","nodeLevel":3,"toggleState":true,"childrenActive":false,"configs":[],"children":[{"name":"Draw Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"slider","label":"Opacity","min":0.1,"step":0.1,"max":1},{"type":"checkbox","label":"Wireframe"}],"children":[]},{"name":"Color Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"button","label":"Random"}],"children":[]}]}]}]},{"name":"Labels","nodeLevel":1,"toggleState":true,"childrenActive":false,"configs":[{"type":"slider","label":"Size","min":0,"max":10,"step":0.01,"allowCustomValue":true},{"type":"color","label":"Color","color":"#a8a8a8"},{"type":"button","label":"Save Labels"},{"type":"button","label":"Load Labels"}],"children":[]}]},"eventDisplay":{"cameraPosition":[3096.1557286722164,2821.4315307500133,4232.068942374551],"startClippingAngle":0,"openingClippingAngle":90}}');let oO;try{oO=typeof Intl<"u"&&Intl.v8BreakIterator}catch{oO=!1}let ME,dx,aO,dd=(()=>{class n{constructor(t){this._platformId=t,this.isBrowser=this._platformId?D7(this._platformId):"object"==typeof document&&!!document,this.EDGE=this.isBrowser&&/(edge)/i.test(navigator.userAgent),this.TRIDENT=this.isBrowser&&/(msie|trident)/i.test(navigator.userAgent),this.BLINK=this.isBrowser&&!(!window.chrome&&!oO)&&typeof CSS<"u"&&!this.EDGE&&!this.TRIDENT,this.WEBKIT=this.isBrowser&&/AppleWebKit/i.test(navigator.userAgent)&&!this.BLINK&&!this.EDGE&&!this.TRIDENT,this.IOS=this.isBrowser&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!("MSStream"in window),this.FIREFOX=this.isBrowser&&/(firefox|minefield)/i.test(navigator.userAgent),this.ANDROID=this.isBrowser&&/android/i.test(navigator.userAgent)&&!this.TRIDENT,this.SAFARI=this.isBrowser&&/safari/i.test(navigator.userAgent)&&this.WEBKIT}static#e=this.\u0275fac=function(i){return new(i||n)(xi(Kp))};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();function P0(n){return function Kge(){if(null==ME&&typeof window<"u")try{window.addEventListener("test",null,Object.defineProperty({},"passive",{get:()=>ME=!0}))}finally{ME=ME||!1}return ME}()?n:!!n.capture}function vQ(){if(null==dx){if("object"!=typeof document||!document||"function"!=typeof Element||!Element)return dx=!1,dx;if("scrollBehavior"in document.documentElement.style)dx=!0;else{const n=Element.prototype.scrollTo;dx=!!n&&!/\{\s*\[native code\]\s*\}/.test(n.toString())}}return dx}function lO(n){if(function Zge(){if(null==aO){const n=typeof document<"u"?document.head:null;aO=!(!n||!n.createShadowRoot&&!n.attachShadow)}return aO}()){const e=n.getRootNode?n.getRootNode():null;if(typeof ShadowRoot<"u"&&ShadowRoot&&e instanceof ShadowRoot)return e}return null}function cO(){let n=typeof document<"u"&&document?document.activeElement:null;for(;n&&n.shadowRoot;){const e=n.shadowRoot.activeElement;if(e===n)break;n=e}return n}function pA(n){return n.composedPath?n.composedPath()[0]:n.target}function dO(){return typeof __karma__<"u"&&!!__karma__||typeof jasmine<"u"&&!!jasmine||typeof jest<"u"&&!!jest||typeof Mocha<"u"&&!!Mocha}function bC(n,...e){return e.length?e.some(t=>n[t]):n.altKey||n.shiftKey||n.ctrlKey||n.metaKey}class f0e extends rt{constructor(e,t){super()}schedule(e,t=0){return this}}const b4={setInterval(n,e,...t){const{delegate:i}=b4;return i?.setInterval?i.setInterval(n,e,...t):setInterval(n,e,...t)},clearInterval(n){const{delegate:e}=b4;return(e?.clearInterval||clearInterval)(n)},delegate:void 0};class fO extends f0e{constructor(e,t){super(e,t),this.scheduler=e,this.work=t,this.pending=!1}schedule(e,t=0){var i;if(this.closed)return this;this.state=e;const r=this.id,s=this.scheduler;return null!=r&&(this.id=this.recycleAsyncId(s,r,t)),this.pending=!0,this.delay=t,this.id=null!==(i=this.id)&&void 0!==i?i:this.requestAsyncId(s,this.id,t),this}requestAsyncId(e,t,i=0){return b4.setInterval(e.flush.bind(e,this),i)}recycleAsyncId(e,t,i=0){if(null!=i&&this.delay===i&&!1===this.pending)return t;null!=t&&b4.clearInterval(t)}execute(e,t){if(this.closed)return new Error("executing a cancelled action");this.pending=!1;const i=this._execute(e,t);if(i)return i;!1===this.pending&&null!=this.id&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))}_execute(e,t){let r,i=!1;try{this.work(e)}catch(s){i=!0,r=s||new Error("Scheduled action threw falsy error")}if(i)return this.unsubscribe(),r}unsubscribe(){if(!this.closed){const{id:e,scheduler:t}=this,{actions:i}=t;this.work=this.state=this.scheduler=null,this.pending=!1,Ne(i,this),null!=e&&(this.id=this.recycleAsyncId(t,e,null)),this.delay=null,super.unsubscribe()}}}const MQ={now:()=>(MQ.delegate||Date).now(),delegate:void 0};class EE{constructor(e,t=EE.now){this.schedulerActionCtor=e,this.now=t}schedule(e,t=0,i){return new this.schedulerActionCtor(this,e).schedule(i,t)}}EE.now=MQ.now;class pO extends EE{constructor(e,t=EE.now){super(e,t),this.actions=[],this._active=!1}flush(e){const{actions:t}=this;if(this._active)return void t.push(e);let i;this._active=!0;do{if(i=e.execute(e.state,e.delay))break}while(e=t.shift());if(this._active=!1,i){for(;e=t.shift();)e.unsubscribe();throw i}}}const TE=new pO(fO),p0e=TE;function mO(n,e=TE){return ci((t,i)=>{let r=null,s=null,o=null;const l=()=>{if(r){r.unsubscribe(),r=null;const h=s;s=null,i.next(h)}};function d(){const h=o+n,f=e.now();if(f{s=h,o=e.now(),r||(r=e.schedule(d,n),i.add(r))},()=>{l(),i.complete()},void 0,()=>{s=r=null}))})}function AO(n){return od((e,t)=>n<=t)}function m0e(n,e){return n===e}function EQ(n){return null!=n&&"false"!=`${n}`}function hx(n,e=0){return function A0e(n){return!isNaN(parseFloat(n))&&!isNaN(Number(n))}(n)?Number(n):e}function DE(n){return Array.isArray(n)?n:[n]}function hh(n){return null==n?"":"string"==typeof n?n:`${n}px`}function uh(n){return n instanceof oo?n.nativeElement:n}let TQ=(()=>{class n{create(t){return typeof MutationObserver>"u"?null:new MutationObserver(t)}static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),y0e=(()=>{class n{static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275mod=vo({type:n});static#n=this.\u0275inj=ra({providers:[TQ]})}return n})();const DQ=new Set;let ux,v0e=(()=>{class n{constructor(t,i){this._platform=t,this._nonce=i,this._matchMedia=this._platform.isBrowser&&window.matchMedia?window.matchMedia.bind(window):x0e}matchMedia(t){return(this._platform.WEBKIT||this._platform.BLINK)&&function b0e(n,e){if(!DQ.has(n))try{ux||(ux=document.createElement("style"),e&&(ux.nonce=e),ux.setAttribute("type","text/css"),document.head.appendChild(ux)),ux.sheet&&(ux.sheet.insertRule(`@media ${n} {body{ }}`,0),DQ.add(n))}catch(t){console.error(t)}}(t,this._nonce),this._matchMedia(t)}static#e=this.\u0275fac=function(i){return new(i||n)(xi(dd),xi(wv,8))};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();function x0e(n){return{matches:"all"===n||""===n,media:n,addListener:()=>{},removeListener:()=>{}}}let w0e=(()=>{class n{constructor(t,i){this._mediaMatcher=t,this._zone=i,this._queries=new Map,this._destroySubject=new un}ngOnDestroy(){this._destroySubject.next(),this._destroySubject.complete()}isMatched(t){return IQ(DE(t)).some(r=>this._registerQuery(r).mql.matches)}observe(t){let s=xD(IQ(DE(t)).map(o=>this._registerQuery(o).observable));return s=wS(s.pipe(ad(1)),s.pipe(AO(1),mO(0))),s.pipe(bi(o=>{const l={matches:!1,breakpoints:{}};return o.forEach(({matches:d,query:h})=>{l.matches=l.matches||d,l.breakpoints[h]=d}),l}))}_registerQuery(t){if(this._queries.has(t))return this._queries.get(t);const i=this._mediaMatcher.matchMedia(t),s={observable:new Pe(o=>{const l=d=>this._zone.run(()=>o.next(d));return i.addListener(l),()=>{i.removeListener(l)}}).pipe(sA(i),bi(({matches:o})=>({query:t,matches:o})),Ql(this._destroySubject)),mql:i};return this._queries.set(t,s),s}static#e=this.\u0275fac=function(i){return new(i||n)(xi(v0e),xi(io))};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();function IQ(n){return n.map(e=>e.split(",")).reduce((e,t)=>e.concat(t)).map(e=>e.trim())}function x4(n,e){return n.getAttribute(e)?.match(/\S+/g)??[]}const PQ="cdk-describedby-message",w4="cdk-describedby-host";let gO=0,S0e=(()=>{class n{constructor(t,i){this._platform=i,this._messageRegistry=new Map,this._messagesContainer=null,this._id=""+gO++,this._document=t,this._id=pi(v_)+"-"+gO++}describe(t,i,r){if(!this._canBeDescribed(t,i))return;const s=_O(i,r);"string"!=typeof i?(RQ(i,this._id),this._messageRegistry.set(s,{messageElement:i,referenceCount:0})):this._messageRegistry.has(s)||this._createMessageElement(i,r),this._isElementDescribedByMessage(t,s)||this._addMessageReference(t,s)}removeDescription(t,i,r){if(!i||!this._isElementNode(t))return;const s=_O(i,r);if(this._isElementDescribedByMessage(t,s)&&this._removeMessageReference(t,s),"string"==typeof i){const o=this._messageRegistry.get(s);o&&0===o.referenceCount&&this._deleteMessageElement(s)}0===this._messagesContainer?.childNodes.length&&(this._messagesContainer.remove(),this._messagesContainer=null)}ngOnDestroy(){const t=this._document.querySelectorAll(`[${w4}="${this._id}"]`);for(let i=0;i0!=r.indexOf(PQ));t.setAttribute("aria-describedby",i.join(" "))}_addMessageReference(t,i){const r=this._messageRegistry.get(i);(function C0e(n,e,t){const i=x4(n,e);t=t.trim(),!i.some(r=>r.trim()===t)&&(i.push(t),n.setAttribute(e,i.join(" ")))})(t,"aria-describedby",r.messageElement.id),t.setAttribute(w4,this._id),r.referenceCount++}_removeMessageReference(t,i){const r=this._messageRegistry.get(i);r.referenceCount--,function M0e(n,e,t){const i=x4(n,e);t=t.trim();const r=i.filter(s=>s!==t);r.length?n.setAttribute(e,r.join(" ")):n.removeAttribute(e)}(t,"aria-describedby",r.messageElement.id),t.removeAttribute(w4)}_isElementDescribedByMessage(t,i){const r=x4(t,"aria-describedby"),s=this._messageRegistry.get(i),o=s&&s.messageElement.id;return!!o&&-1!=r.indexOf(o)}_canBeDescribed(t,i){if(!this._isElementNode(t))return!1;if(i&&"object"==typeof i)return!0;const r=null==i?"":`${i}`.trim(),s=t.getAttribute("aria-label");return!(!r||s&&s.trim()===r)}_isElementNode(t){return t.nodeType===this._document.ELEMENT_NODE}static#e=this.\u0275fac=function(i){return new(i||n)(xi(ba),xi(dd))};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();function _O(n,e){return"string"==typeof n?`${e||""}/${n}`:n}function RQ(n,e){n.id||(n.id=`${PQ}-${e}-${gO++}`)}class E0e{constructor(e){this._items=e,this._activeItemIndex=-1,this._activeItem=null,this._wrap=!1,this._letterKeyStream=new un,this._typeaheadSubscription=rt.EMPTY,this._vertical=!0,this._allowedModifierKeys=[],this._homeAndEnd=!1,this._pageUpAndDown={enabled:!1,delta:10},this._skipPredicateFn=t=>t.disabled,this._pressedLetters=[],this.tabOut=new un,this.change=new un,e instanceof yf&&(this._itemChangesSubscription=e.changes.subscribe(t=>{if(this._activeItem){const r=t.toArray().indexOf(this._activeItem);r>-1&&r!==this._activeItemIndex&&(this._activeItemIndex=r)}}))}skipPredicate(e){return this._skipPredicateFn=e,this}withWrap(e=!0){return this._wrap=e,this}withVerticalOrientation(e=!0){return this._vertical=e,this}withHorizontalOrientation(e){return this._horizontal=e,this}withAllowedModifierKeys(e){return this._allowedModifierKeys=e,this}withTypeAhead(e=200){return this._typeaheadSubscription.unsubscribe(),this._typeaheadSubscription=this._letterKeyStream.pipe(lh(t=>this._pressedLetters.push(t)),mO(e),od(()=>this._pressedLetters.length>0),bi(()=>this._pressedLetters.join(""))).subscribe(t=>{const i=this._getItemsArray();for(let r=1;r!e[s]||this._allowedModifierKeys.indexOf(s)>-1);switch(t){case 9:return void this.tabOut.next();case 40:if(this._vertical&&r){this.setNextItemActive();break}return;case 38:if(this._vertical&&r){this.setPreviousItemActive();break}return;case 39:if(this._horizontal&&r){"rtl"===this._horizontal?this.setPreviousItemActive():this.setNextItemActive();break}return;case 37:if(this._horizontal&&r){"rtl"===this._horizontal?this.setNextItemActive():this.setPreviousItemActive();break}return;case 36:if(this._homeAndEnd&&r){this.setFirstItemActive();break}return;case 35:if(this._homeAndEnd&&r){this.setLastItemActive();break}return;case 33:if(this._pageUpAndDown.enabled&&r){const s=this._activeItemIndex-this._pageUpAndDown.delta;this._setActiveItemByIndex(s>0?s:0,1);break}return;case 34:if(this._pageUpAndDown.enabled&&r){const s=this._activeItemIndex+this._pageUpAndDown.delta,o=this._getItemsArray().length;this._setActiveItemByIndex(s=65&&t<=90||t>=48&&t<=57)&&this._letterKeyStream.next(String.fromCharCode(t))))}this._pressedLetters=[],e.preventDefault()}get activeItemIndex(){return this._activeItemIndex}get activeItem(){return this._activeItem}isTyping(){return this._pressedLetters.length>0}setFirstItemActive(){this._setActiveItemByIndex(0,1)}setLastItemActive(){this._setActiveItemByIndex(this._items.length-1,-1)}setNextItemActive(){this._activeItemIndex<0?this.setFirstItemActive():this._setActiveItemByDelta(1)}setPreviousItemActive(){this._activeItemIndex<0&&this._wrap?this.setLastItemActive():this._setActiveItemByDelta(-1)}updateActiveItem(e){const t=this._getItemsArray(),i="number"==typeof e?e:t.indexOf(e);this._activeItem=t[i]??null,this._activeItemIndex=i}destroy(){this._typeaheadSubscription.unsubscribe(),this._itemChangesSubscription?.unsubscribe(),this._letterKeyStream.complete(),this.tabOut.complete(),this.change.complete(),this._pressedLetters=[]}_setActiveItemByDelta(e){this._wrap?this._setActiveInWrapMode(e):this._setActiveInDefaultMode(e)}_setActiveInWrapMode(e){const t=this._getItemsArray();for(let i=1;i<=t.length;i++){const r=(this._activeItemIndex+e*i+t.length)%t.length;if(!this._skipPredicateFn(t[r]))return void this.setActiveItem(r)}}_setActiveInDefaultMode(e){this._setActiveItemByIndex(this._activeItemIndex+e,e)}_setActiveItemByIndex(e,t){const i=this._getItemsArray();if(i[e]){for(;this._skipPredicateFn(i[e]);)if(!i[e+=t])return;this.setActiveItem(e)}}_getItemsArray(){return this._items instanceof yf?this._items.toArray():this._items}}class kQ extends E0e{constructor(){super(...arguments),this._origin="program"}setFocusOrigin(e){return this._origin=e,this}setActiveItem(e){super.setActiveItem(e),this.activeItem&&this.activeItem.focus(this._origin)}}let yO=(()=>{class n{constructor(t){this._platform=t}isDisabled(t){return t.hasAttribute("disabled")}isVisible(t){return function D0e(n){return!!(n.offsetWidth||n.offsetHeight||"function"==typeof n.getClientRects&&n.getClientRects().length)}(t)&&"visible"===getComputedStyle(t).visibility}isTabbable(t){if(!this._platform.isBrowser)return!1;const i=function T0e(n){try{return n.frameElement}catch{return null}}(function L0e(n){return n.ownerDocument&&n.ownerDocument.defaultView||window}(t));if(i&&(-1===OQ(i)||!this.isVisible(i)))return!1;let r=t.nodeName.toLowerCase(),s=OQ(t);return t.hasAttribute("contenteditable")?-1!==s:!("iframe"===r||"object"===r||this._platform.WEBKIT&&this._platform.IOS&&!function F0e(n){let e=n.nodeName.toLowerCase(),t="input"===e&&n.type;return"text"===t||"password"===t||"select"===e||"textarea"===e}(t))&&("audio"===r?!!t.hasAttribute("controls")&&-1!==s:"video"===r?-1!==s&&(null!==s||this._platform.FIREFOX||t.hasAttribute("controls")):t.tabIndex>=0)}isFocusable(t,i){return function O0e(n){return!function B0e(n){return function R0e(n){return"input"==n.nodeName.toLowerCase()}(n)&&"hidden"==n.type}(n)&&(function I0e(n){let e=n.nodeName.toLowerCase();return"input"===e||"select"===e||"button"===e||"textarea"===e}(n)||function P0e(n){return function k0e(n){return"a"==n.nodeName.toLowerCase()}(n)&&n.hasAttribute("href")}(n)||n.hasAttribute("contenteditable")||FQ(n))}(t)&&!this.isDisabled(t)&&(i?.ignoreVisibility||this.isVisible(t))}static#e=this.\u0275fac=function(i){return new(i||n)(xi(dd))};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();function FQ(n){if(!n.hasAttribute("tabindex")||void 0===n.tabIndex)return!1;let e=n.getAttribute("tabindex");return!(!e||isNaN(parseInt(e,10)))}function OQ(n){if(!FQ(n))return null;const e=parseInt(n.getAttribute("tabindex")||"",10);return isNaN(e)?-1:e}class LQ{get enabled(){return this._enabled}set enabled(e){this._enabled=e,this._startAnchor&&this._endAnchor&&(this._toggleAnchorTabIndex(e,this._startAnchor),this._toggleAnchorTabIndex(e,this._endAnchor))}constructor(e,t,i,r,s=!1){this._element=e,this._checker=t,this._ngZone=i,this._document=r,this._hasAttached=!1,this.startAnchorListener=()=>this.focusLastTabbableElement(),this.endAnchorListener=()=>this.focusFirstTabbableElement(),this._enabled=!0,s||this.attachAnchors()}destroy(){const e=this._startAnchor,t=this._endAnchor;e&&(e.removeEventListener("focus",this.startAnchorListener),e.remove()),t&&(t.removeEventListener("focus",this.endAnchorListener),t.remove()),this._startAnchor=this._endAnchor=null,this._hasAttached=!1}attachAnchors(){return!!this._hasAttached||(this._ngZone.runOutsideAngular(()=>{this._startAnchor||(this._startAnchor=this._createAnchor(),this._startAnchor.addEventListener("focus",this.startAnchorListener)),this._endAnchor||(this._endAnchor=this._createAnchor(),this._endAnchor.addEventListener("focus",this.endAnchorListener))}),this._element.parentNode&&(this._element.parentNode.insertBefore(this._startAnchor,this._element),this._element.parentNode.insertBefore(this._endAnchor,this._element.nextSibling),this._hasAttached=!0),this._hasAttached)}focusInitialElementWhenReady(e){return new Promise(t=>{this._executeOnStable(()=>t(this.focusInitialElement(e)))})}focusFirstTabbableElementWhenReady(e){return new Promise(t=>{this._executeOnStable(()=>t(this.focusFirstTabbableElement(e)))})}focusLastTabbableElementWhenReady(e){return new Promise(t=>{this._executeOnStable(()=>t(this.focusLastTabbableElement(e)))})}_getRegionBoundary(e){const t=this._element.querySelectorAll(`[cdk-focus-region-${e}], [cdkFocusRegion${e}], [cdk-focus-${e}]`);return"start"==e?t.length?t[0]:this._getFirstTabbableElement(this._element):t.length?t[t.length-1]:this._getLastTabbableElement(this._element)}focusInitialElement(e){const t=this._element.querySelector("[cdk-focus-initial], [cdkFocusInitial]");if(t){if(!this._checker.isFocusable(t)){const i=this._getFirstTabbableElement(t);return i?.focus(e),!!i}return t.focus(e),!0}return this.focusFirstTabbableElement(e)}focusFirstTabbableElement(e){const t=this._getRegionBoundary("start");return t&&t.focus(e),!!t}focusLastTabbableElement(e){const t=this._getRegionBoundary("end");return t&&t.focus(e),!!t}hasAttached(){return this._hasAttached}_getFirstTabbableElement(e){if(this._checker.isFocusable(e)&&this._checker.isTabbable(e))return e;const t=e.children;for(let i=0;i=0;i--){const r=t[i].nodeType===this._document.ELEMENT_NODE?this._getLastTabbableElement(t[i]):null;if(r)return r}return null}_createAnchor(){const e=this._document.createElement("div");return this._toggleAnchorTabIndex(this._enabled,e),e.classList.add("cdk-visually-hidden"),e.classList.add("cdk-focus-trap-anchor"),e.setAttribute("aria-hidden","true"),e}_toggleAnchorTabIndex(e,t){e?t.setAttribute("tabindex","0"):t.removeAttribute("tabindex")}toggleAnchors(e){this._startAnchor&&this._endAnchor&&(this._toggleAnchorTabIndex(e,this._startAnchor),this._toggleAnchorTabIndex(e,this._endAnchor))}_executeOnStable(e){this._ngZone.isStable?e():this._ngZone.onStable.pipe(ad(1)).subscribe(e)}}let NQ=(()=>{class n{constructor(t,i,r){this._checker=t,this._ngZone=i,this._document=r}create(t,i=!1){return new LQ(t,this._checker,this._ngZone,this._document,i)}static#e=this.\u0275fac=function(i){return new(i||n)(xi(yO),xi(io),xi(ba))};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();function C4(n){return 0===n.buttons||0===n.detail}function M4(n){const e=n.touches&&n.touches[0]||n.changedTouches&&n.changedTouches[0];return!(!e||-1!==e.identifier||null!=e.radiusX&&1!==e.radiusX||null!=e.radiusY&&1!==e.radiusY)}const N0e=new Bi("cdk-input-modality-detector-options"),U0e={ignoreKeys:[18,17,224,91,16]},xC=P0({passive:!0,capture:!0});let z0e=(()=>{class n{get mostRecentModality(){return this._modality.value}constructor(t,i,r,s){this._platform=t,this._mostRecentTarget=null,this._modality=new cn(null),this._lastTouchMs=0,this._onKeydown=o=>{this._options?.ignoreKeys?.some(l=>l===o.keyCode)||(this._modality.next("keyboard"),this._mostRecentTarget=pA(o))},this._onMousedown=o=>{Date.now()-this._lastTouchMs<650||(this._modality.next(C4(o)?"keyboard":"mouse"),this._mostRecentTarget=pA(o))},this._onTouchstart=o=>{M4(o)?this._modality.next("keyboard"):(this._lastTouchMs=Date.now(),this._modality.next("touch"),this._mostRecentTarget=pA(o))},this._options={...U0e,...s},this.modalityDetected=this._modality.pipe(AO(1)),this.modalityChanged=this.modalityDetected.pipe(function SQ(n,e=K){return n=n??m0e,ci((t,i)=>{let r,s=!0;t.subscribe(Pi(i,o=>{const l=e(o);(s||!n(r,l))&&(s=!1,r=l,i.next(o))}))})}()),t.isBrowser&&i.runOutsideAngular(()=>{r.addEventListener("keydown",this._onKeydown,xC),r.addEventListener("mousedown",this._onMousedown,xC),r.addEventListener("touchstart",this._onTouchstart,xC)})}ngOnDestroy(){this._modality.complete(),this._platform.isBrowser&&(document.removeEventListener("keydown",this._onKeydown,xC),document.removeEventListener("mousedown",this._onMousedown,xC),document.removeEventListener("touchstart",this._onTouchstart,xC))}static#e=this.\u0275fac=function(i){return new(i||n)(xi(dd),xi(io),xi(ba),xi(N0e,8))};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();var S4=function(n){return n[n.IMMEDIATE=0]="IMMEDIATE",n[n.EVENTUAL=1]="EVENTUAL",n}(S4||{});const V0e=new Bi("cdk-focus-monitor-default-options"),E4=P0({passive:!0,capture:!0});let e1=(()=>{class n{constructor(t,i,r,s,o){this._ngZone=t,this._platform=i,this._inputModalityDetector=r,this._origin=null,this._windowFocused=!1,this._originFromTouchInteraction=!1,this._elementInfo=new Map,this._monitoredElementCount=0,this._rootNodeFocusListenerCount=new Map,this._windowFocusListener=()=>{this._windowFocused=!0,this._windowFocusTimeoutId=window.setTimeout(()=>this._windowFocused=!1)},this._stopInputModalityDetector=new un,this._rootNodeFocusAndBlurListener=l=>{for(let h=pA(l);h;h=h.parentElement)"focus"===l.type?this._onFocus(l,h):this._onBlur(l,h)},this._document=s,this._detectionMode=o?.detectionMode||S4.IMMEDIATE}monitor(t,i=!1){const r=uh(t);if(!this._platform.isBrowser||1!==r.nodeType)return po();const s=lO(r)||this._getDocument(),o=this._elementInfo.get(r);if(o)return i&&(o.checkChildren=!0),o.subject;const l={checkChildren:i,subject:new un,rootNode:s};return this._elementInfo.set(r,l),this._registerGlobalListeners(l),l.subject}stopMonitoring(t){const i=uh(t),r=this._elementInfo.get(i);r&&(r.subject.complete(),this._setClasses(i),this._elementInfo.delete(i),this._removeGlobalListeners(r))}focusVia(t,i,r){const s=uh(t);s===this._getDocument().activeElement?this._getClosestElementsInfo(s).forEach(([l,d])=>this._originChanged(l,i,d)):(this._setOrigin(i),"function"==typeof s.focus&&s.focus(r))}ngOnDestroy(){this._elementInfo.forEach((t,i)=>this.stopMonitoring(i))}_getDocument(){return this._document||document}_getWindow(){return this._getDocument().defaultView||window}_getFocusOrigin(t){return this._origin?this._originFromTouchInteraction?this._shouldBeAttributedToTouch(t)?"touch":"program":this._origin:this._windowFocused&&this._lastFocusOrigin?this._lastFocusOrigin:t&&this._isLastInteractionFromInputLabel(t)?"mouse":"program"}_shouldBeAttributedToTouch(t){return this._detectionMode===S4.EVENTUAL||!!t?.contains(this._inputModalityDetector._mostRecentTarget)}_setClasses(t,i){t.classList.toggle("cdk-focused",!!i),t.classList.toggle("cdk-touch-focused","touch"===i),t.classList.toggle("cdk-keyboard-focused","keyboard"===i),t.classList.toggle("cdk-mouse-focused","mouse"===i),t.classList.toggle("cdk-program-focused","program"===i)}_setOrigin(t,i=!1){this._ngZone.runOutsideAngular(()=>{this._origin=t,this._originFromTouchInteraction="touch"===t&&i,this._detectionMode===S4.IMMEDIATE&&(clearTimeout(this._originTimeoutId),this._originTimeoutId=setTimeout(()=>this._origin=null,this._originFromTouchInteraction?650:1))})}_onFocus(t,i){const r=this._elementInfo.get(i),s=pA(t);!r||!r.checkChildren&&i!==s||this._originChanged(i,this._getFocusOrigin(s),r)}_onBlur(t,i){const r=this._elementInfo.get(i);!r||r.checkChildren&&t.relatedTarget instanceof Node&&i.contains(t.relatedTarget)||(this._setClasses(i),this._emitOrigin(r,null))}_emitOrigin(t,i){t.subject.observers.length&&this._ngZone.run(()=>t.subject.next(i))}_registerGlobalListeners(t){if(!this._platform.isBrowser)return;const i=t.rootNode,r=this._rootNodeFocusListenerCount.get(i)||0;r||this._ngZone.runOutsideAngular(()=>{i.addEventListener("focus",this._rootNodeFocusAndBlurListener,E4),i.addEventListener("blur",this._rootNodeFocusAndBlurListener,E4)}),this._rootNodeFocusListenerCount.set(i,r+1),1==++this._monitoredElementCount&&(this._ngZone.runOutsideAngular(()=>{this._getWindow().addEventListener("focus",this._windowFocusListener)}),this._inputModalityDetector.modalityDetected.pipe(Ql(this._stopInputModalityDetector)).subscribe(s=>{this._setOrigin(s,!0)}))}_removeGlobalListeners(t){const i=t.rootNode;if(this._rootNodeFocusListenerCount.has(i)){const r=this._rootNodeFocusListenerCount.get(i);r>1?this._rootNodeFocusListenerCount.set(i,r-1):(i.removeEventListener("focus",this._rootNodeFocusAndBlurListener,E4),i.removeEventListener("blur",this._rootNodeFocusAndBlurListener,E4),this._rootNodeFocusListenerCount.delete(i))}--this._monitoredElementCount||(this._getWindow().removeEventListener("focus",this._windowFocusListener),this._stopInputModalityDetector.next(),clearTimeout(this._windowFocusTimeoutId),clearTimeout(this._originTimeoutId))}_originChanged(t,i,r){this._setClasses(t,i),this._emitOrigin(r,i),this._lastFocusOrigin=i}_getClosestElementsInfo(t){const i=[];return this._elementInfo.forEach((r,s)=>{(s===t||r.checkChildren&&s.contains(t))&&i.push([s,r])}),i}_isLastInteractionFromInputLabel(t){const{_mostRecentTarget:i,mostRecentModality:r}=this._inputModalityDetector;if("mouse"!==r||!i||i===t||"INPUT"!==t.nodeName&&"TEXTAREA"!==t.nodeName||t.disabled)return!1;const s=t.labels;if(s)for(let o=0;o{class n{constructor(t,i){this._platform=t,this._document=i,this._breakpointSubscription=pi(w0e).observe("(forced-colors: active)").subscribe(()=>{this._hasCheckedHighContrastMode&&(this._hasCheckedHighContrastMode=!1,this._applyBodyHighContrastModeCssClasses())})}getHighContrastMode(){if(!this._platform.isBrowser)return fx.NONE;const t=this._document.createElement("div");t.style.backgroundColor="rgb(1,2,3)",t.style.position="absolute",this._document.body.appendChild(t);const i=this._document.defaultView||window,r=i&&i.getComputedStyle?i.getComputedStyle(t):null,s=(r&&r.backgroundColor||"").replace(/ /g,"");switch(t.remove(),s){case"rgb(0,0,0)":case"rgb(45,50,54)":case"rgb(32,32,32)":return fx.WHITE_ON_BLACK;case"rgb(255,255,255)":case"rgb(255,250,239)":return fx.BLACK_ON_WHITE}return fx.NONE}ngOnDestroy(){this._breakpointSubscription.unsubscribe()}_applyBodyHighContrastModeCssClasses(){if(!this._hasCheckedHighContrastMode&&this._platform.isBrowser&&this._document.body){const t=this._document.body.classList;t.remove(vO,zQ,HQ),this._hasCheckedHighContrastMode=!0;const i=this.getHighContrastMode();i===fx.BLACK_ON_WHITE?t.add(vO,zQ):i===fx.WHITE_ON_BLACK&&t.add(vO,HQ)}}static#e=this.\u0275fac=function(i){return new(i||n)(xi(dd),xi(ba))};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),GQ=(()=>{class n{constructor(t){t._applyBodyHighContrastModeCssClasses()}static#e=this.\u0275fac=function(i){return new(i||n)(xi(VQ))};static#t=this.\u0275mod=vo({type:n});static#n=this.\u0275inj=ra({imports:[y0e]})}return n})();function gm(...n){const e=gS(n),t=function Pie(n,e){return"number"==typeof $R(n)?n.pop():e}(n,1/0),i=n;return i.length?1===i.length?Nu(i[0]):Jw(t)(ah(i,e)):rA}let bO,q0e=1;const T4={};function qQ(n){return n in T4&&(delete T4[n],!0)}const Q0e={setImmediate(n){const e=q0e++;return T4[e]=!0,bO||(bO=Promise.resolve()),bO.then(()=>qQ(e)&&n()),e},clearImmediate(n){qQ(n)}},{setImmediate:W0e,clearImmediate:j0e}=Q0e,D4={setImmediate(...n){const{delegate:e}=D4;return(e?.setImmediate||W0e)(...n)},clearImmediate(n){const{delegate:e}=D4;return(e?.clearImmediate||j0e)(n)},delegate:void 0},xO=new class X0e extends pO{flush(e){this._active=!0;const t=this._scheduled;this._scheduled=void 0;const{actions:i}=this;let r;e=e||i.shift();do{if(r=e.execute(e.state,e.delay))break}while((e=i[0])&&e.id===t&&i.shift());if(this._active=!1,r){for(;(e=i[0])&&e.id===t&&i.shift();)e.unsubscribe();throw r}}}(class $0e extends fO{constructor(e,t){super(e,t),this.scheduler=e,this.work=t}requestAsyncId(e,t,i=0){return null!==i&&i>0?super.requestAsyncId(e,t,i):(e.actions.push(this),e._scheduled||(e._scheduled=D4.setImmediate(e.flush.bind(e,void 0))))}recycleAsyncId(e,t,i=0){var r;if(null!=i?i>0:this.delay>0)return super.recycleAsyncId(e,t,i);const{actions:s}=e;null!=t&&(null===(r=s[s.length-1])||void 0===r?void 0:r.id)!==t&&(D4.clearImmediate(t),e._scheduled===t&&(e._scheduled=void 0))}});function QQ(n,e){return e?t=>wS(e.pipe(ad(1),function Y0e(){return ci((n,e)=>{n.subscribe(Pi(e,Ot))})}()),t.pipe(QQ(n))):qh((t,i)=>Nu(n(t,i)).pipe(ad(1),Q9(t)))}function I4(n=0,e,t=p0e){let i=-1;return null!=e&&(n9(e)?t=e:i=e),new Pe(r=>{let s=function K0e(n){return n instanceof Date&&!isNaN(n)}(n)?+n-t.now():n;s<0&&(s=0);let o=0;return t.schedule(function(){r.closed||(r.next(o++),0<=i?this.schedule(void 0,i):r.complete())},s)})}function WQ(n,e=TE){const t=I4(n,e);return QQ(()=>t)}const Z0e=new Bi("cdk-dir-doc",{providedIn:"root",factory:function J0e(){return pi(ba)}}),e_e=/^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Adlm|Arab|Hebr|Nkoo|Rohg|Thaa))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)/i;let _m=(()=>{class n{constructor(t){this.value="ltr",this.change=new Ls,t&&(this.value=function t_e(n){const e=n?.toLowerCase()||"";return"auto"===e&&typeof navigator<"u"&&navigator?.language?e_e.test(navigator.language)?"rtl":"ltr":"rtl"===e?"rtl":"ltr"}((t.body?t.body.dir:null)||(t.documentElement?t.documentElement.dir:null)||"ltr"))}ngOnDestroy(){this.change.complete()}static#e=this.\u0275fac=function(i){return new(i||n)(xi(Z0e,8))};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),IE=(()=>{class n{static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275mod=vo({type:n});static#n=this.\u0275inj=ra({})}return n})();const n_e=["mat-internal-form-field",""],i_e=["*"],s_e=new Bi("mat-sanity-checks",{providedIn:"root",factory:function r_e(){return!0}});let Qd=(()=>{class n{constructor(t,i,r){this._sanityChecks=i,this._document=r,this._hasDoneGlobalChecks=!1,t._applyBodyHighContrastModeCssClasses(),this._hasDoneGlobalChecks||(this._hasDoneGlobalChecks=!0)}_checkIsEnabled(t){return!dO()&&("boolean"==typeof this._sanityChecks?this._sanityChecks:!!this._sanityChecks[t])}static#e=this.\u0275fac=function(i){return new(i||n)(xi(VQ),xi(s_e,8),xi(ba))};static#t=this.\u0275mod=vo({type:n});static#n=this.\u0275inj=ra({imports:[IE,IE]})}return n})();var xp=function(n){return n[n.FADING_IN=0]="FADING_IN",n[n.VISIBLE=1]="VISIBLE",n[n.FADING_OUT=2]="FADING_OUT",n[n.HIDDEN=3]="HIDDEN",n}(xp||{});class u_e{constructor(e,t,i,r=!1){this._renderer=e,this.element=t,this.config=i,this._animationForciblyDisabledThroughCss=r,this.state=xp.HIDDEN}fadeOut(){this._renderer.fadeOutRipple(this)}}const XQ=P0({passive:!0,capture:!0});class f_e{constructor(){this._events=new Map,this._delegateEventHandler=e=>{const t=pA(e);t&&this._events.get(e.type)?.forEach((i,r)=>{(r===t||r.contains(t))&&i.forEach(s=>s.handleEvent(e))})}}addHandler(e,t,i,r){const s=this._events.get(t);if(s){const o=s.get(i);o?o.add(r):s.set(i,new Set([r]))}else this._events.set(t,new Map([[i,new Set([r])]])),e.runOutsideAngular(()=>{document.addEventListener(t,this._delegateEventHandler,XQ)})}removeHandler(e,t,i){const r=this._events.get(e);if(!r)return;const s=r.get(t);s&&(s.delete(i),0===s.size&&r.delete(t),0===r.size&&(this._events.delete(e),document.removeEventListener(e,this._delegateEventHandler,XQ)))}}const YQ={enterDuration:225,exitDuration:150},KQ=P0({passive:!0,capture:!0}),ZQ=["mousedown","touchstart"],JQ=["mouseup","mouseleave","touchend","touchcancel"];class B4{static#e=this._eventManager=new f_e;constructor(e,t,i,r){this._target=e,this._ngZone=t,this._platform=r,this._isPointerDown=!1,this._activeRipples=new Map,this._pointerUpEventsRegistered=!1,r.isBrowser&&(this._containerElement=uh(i))}fadeInRipple(e,t,i={}){const r=this._containerRect=this._containerRect||this._containerElement.getBoundingClientRect(),s={...YQ,...i.animation};i.centered&&(e=r.left+r.width/2,t=r.top+r.height/2);const o=i.radius||function m_e(n,e,t){const i=Math.max(Math.abs(n-t.left),Math.abs(n-t.right)),r=Math.max(Math.abs(e-t.top),Math.abs(e-t.bottom));return Math.sqrt(i*i+r*r)}(e,t,r),l=e-r.left,d=t-r.top,h=s.enterDuration,f=document.createElement("div");f.classList.add("mat-ripple-element"),f.style.left=l-o+"px",f.style.top=d-o+"px",f.style.height=2*o+"px",f.style.width=2*o+"px",null!=i.color&&(f.style.backgroundColor=i.color),f.style.transitionDuration=`${h}ms`,this._containerElement.appendChild(f);const A=window.getComputedStyle(f),R=A.transitionDuration,G="none"===A.transitionProperty||"0s"===R||"0s, 0s"===R||0===r.width&&0===r.height,re=new u_e(this,f,i,G);f.style.transform="scale3d(1, 1, 1)",re.state=xp.FADING_IN,i.persistent||(this._mostRecentTransientRipple=re);let se=null;return!G&&(h||s.exitDuration)&&this._ngZone.runOutsideAngular(()=>{const le=()=>this._finishRippleTransition(re),Ee=()=>this._destroyRipple(re);f.addEventListener("transitionend",le),f.addEventListener("transitioncancel",Ee),se={onTransitionEnd:le,onTransitionCancel:Ee}}),this._activeRipples.set(re,se),(G||!h)&&this._finishRippleTransition(re),re}fadeOutRipple(e){if(e.state===xp.FADING_OUT||e.state===xp.HIDDEN)return;const t=e.element,i={...YQ,...e.config.animation};t.style.transitionDuration=`${i.exitDuration}ms`,t.style.opacity="0",e.state=xp.FADING_OUT,(e._animationForciblyDisabledThroughCss||!i.exitDuration)&&this._finishRippleTransition(e)}fadeOutAll(){this._getActiveRipples().forEach(e=>e.fadeOut())}fadeOutAllNonPersistent(){this._getActiveRipples().forEach(e=>{e.config.persistent||e.fadeOut()})}setupTriggerEvents(e){const t=uh(e);!this._platform.isBrowser||!t||t===this._triggerElement||(this._removeTriggerEvents(),this._triggerElement=t,ZQ.forEach(i=>{B4._eventManager.addHandler(this._ngZone,i,t,this)}))}handleEvent(e){"mousedown"===e.type?this._onMousedown(e):"touchstart"===e.type?this._onTouchStart(e):this._onPointerUp(),this._pointerUpEventsRegistered||(this._ngZone.runOutsideAngular(()=>{JQ.forEach(t=>{this._triggerElement.addEventListener(t,this,KQ)})}),this._pointerUpEventsRegistered=!0)}_finishRippleTransition(e){e.state===xp.FADING_IN?this._startFadeOutTransition(e):e.state===xp.FADING_OUT&&this._destroyRipple(e)}_startFadeOutTransition(e){const t=e===this._mostRecentTransientRipple,{persistent:i}=e.config;e.state=xp.VISIBLE,!i&&(!t||!this._isPointerDown)&&e.fadeOut()}_destroyRipple(e){const t=this._activeRipples.get(e)??null;this._activeRipples.delete(e),this._activeRipples.size||(this._containerRect=null),e===this._mostRecentTransientRipple&&(this._mostRecentTransientRipple=null),e.state=xp.HIDDEN,null!==t&&(e.element.removeEventListener("transitionend",t.onTransitionEnd),e.element.removeEventListener("transitioncancel",t.onTransitionCancel)),e.element.remove()}_onMousedown(e){const t=C4(e),i=this._lastTouchStartEvent&&Date.now(){!e.config.persistent&&(e.state===xp.VISIBLE||e.config.terminateOnPointerUp&&e.state===xp.FADING_IN)&&e.fadeOut()}))}_getActiveRipples(){return Array.from(this._activeRipples.keys())}_removeTriggerEvents(){const e=this._triggerElement;e&&(ZQ.forEach(t=>B4._eventManager.removeHandler(t,e,this)),this._pointerUpEventsRegistered&&JQ.forEach(t=>e.removeEventListener(t,this,KQ)))}}const wO=new Bi("mat-ripple-global-options");let k0=(()=>{class n{get disabled(){return this._disabled}set disabled(t){t&&this.fadeOutAllNonPersistent(),this._disabled=t,this._setupTriggerEventsIfEnabled()}get trigger(){return this._trigger||this._elementRef.nativeElement}set trigger(t){this._trigger=t,this._setupTriggerEventsIfEnabled()}constructor(t,i,r,s,o){this._elementRef=t,this._animationMode=o,this.radius=0,this._disabled=!1,this._isInitialized=!1,this._globalOptions=s||{},this._rippleRenderer=new B4(this,i,t,r)}ngOnInit(){this._isInitialized=!0,this._setupTriggerEventsIfEnabled()}ngOnDestroy(){this._rippleRenderer._removeTriggerEvents()}fadeOutAll(){this._rippleRenderer.fadeOutAll()}fadeOutAllNonPersistent(){this._rippleRenderer.fadeOutAllNonPersistent()}get rippleConfig(){return{centered:this.centered,radius:this.radius,color:this.color,animation:{...this._globalOptions.animation,..."NoopAnimations"===this._animationMode?{enterDuration:0,exitDuration:0}:{},...this.animation},terminateOnPointerUp:this._globalOptions.terminateOnPointerUp}}get rippleDisabled(){return this.disabled||!!this._globalOptions.disabled}_setupTriggerEventsIfEnabled(){!this.disabled&&this._isInitialized&&this._rippleRenderer.setupTriggerEvents(this.trigger)}launch(t,i=0,r){return"number"==typeof t?this._rippleRenderer.fadeInRipple(t,i,{...this.rippleConfig,...r}):this._rippleRenderer.fadeInRipple(0,0,{...this.rippleConfig,...t})}static#e=this.\u0275fac=function(i){return new(i||n)(Lt(oo),Lt(io),Lt(dd),Lt(wO,8),Lt(Od,8))};static#t=this.\u0275dir=Ft({type:n,selectors:[["","mat-ripple",""],["","matRipple",""]],hostAttrs:[1,"mat-ripple"],hostVars:2,hostBindings:function(i,r){2&i&&Ja("mat-ripple-unbounded",r.unbounded)},inputs:{color:[mi.None,"matRippleColor","color"],unbounded:[mi.None,"matRippleUnbounded","unbounded"],centered:[mi.None,"matRippleCentered","centered"],radius:[mi.None,"matRippleRadius","radius"],animation:[mi.None,"matRippleAnimation","animation"],disabled:[mi.None,"matRippleDisabled","disabled"],trigger:[mi.None,"matRippleTrigger","trigger"]},exportAs:["matRipple"],standalone:!0})}return n})(),P4=(()=>{class n{static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275mod=vo({type:n});static#n=this.\u0275inj=ra({imports:[Qd,Qd]})}return n})();const eW={capture:!0},tW=["focus","click","mouseenter","touchstart"],CO="mat-ripple-loader-uninitialized",MO="mat-ripple-loader-class-name",nW="mat-ripple-loader-centered",R4="mat-ripple-loader-disabled";let A_e=(()=>{class n{constructor(){this._document=pi(ba,{optional:!0}),this._animationMode=pi(Od,{optional:!0}),this._globalRippleOptions=pi(wO,{optional:!0}),this._platform=pi(dd),this._ngZone=pi(io),this._hosts=new Map,this._onInteraction=t=>{if(!(t.target instanceof HTMLElement))return;const r=t.target.closest(`[${CO}]`);r&&this._createRipple(r)},this._ngZone.runOutsideAngular(()=>{for(const t of tW)this._document?.addEventListener(t,this._onInteraction,eW)})}ngOnDestroy(){const t=this._hosts.keys();for(const i of t)this.destroyRipple(i);for(const i of tW)this._document?.removeEventListener(i,this._onInteraction,eW)}configureRipple(t,i){t.setAttribute(CO,""),(i.className||!t.hasAttribute(MO))&&t.setAttribute(MO,i.className||""),i.centered&&t.setAttribute(nW,""),i.disabled&&t.setAttribute(R4,"")}getRipple(t){return this._hosts.get(t)||this._createRipple(t)}setDisabled(t,i){const r=this._hosts.get(t);r?r.disabled=i:i?t.setAttribute(R4,""):t.removeAttribute(R4)}_createRipple(t){if(!this._document)return;const i=this._hosts.get(t);if(i)return i;t.querySelector(".mat-ripple")?.remove();const r=this._document.createElement("span");r.classList.add("mat-ripple",t.getAttribute(MO)),t.append(r);const s=new k0(new oo(r),this._ngZone,this._platform,this._globalRippleOptions?this._globalRippleOptions:void 0,this._animationMode?this._animationMode:void 0);return s._isInitialized=!0,s.trigger=t,s.centered=t.hasAttribute(nW),s.disabled=t.hasAttribute(R4),this.attachRipple(t,s),s}attachRipple(t,i){t.removeAttribute(CO),this._hosts.set(t,i)}destroyRipple(t){const i=this._hosts.get(t);i&&(i.ngOnDestroy(),this._hosts.delete(t))}static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),SO=(()=>{class n{static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275cmp=rs({type:n,selectors:[["div","mat-internal-form-field",""]],hostAttrs:[1,"mdc-form-field","mat-internal-form-field"],hostVars:2,hostBindings:function(i,r){2&i&&Ja("mdc-form-field--align-end","before"===r.labelPosition)},inputs:{labelPosition:"labelPosition"},standalone:!0,features:[yd],attrs:n_e,ngContentSelectors:i_e,decls:1,vars:0,template:function(i,r){1&i&&(yu(),ih(0))},styles:[".mdc-form-field{display:inline-flex;align-items:center;vertical-align:middle}.mdc-form-field[hidden]{display:none}.mdc-form-field>label{margin-left:0;margin-right:auto;padding-left:4px;padding-right:0;order:0}[dir=rtl] .mdc-form-field>label,.mdc-form-field>label[dir=rtl]{margin-left:auto;margin-right:0}[dir=rtl] .mdc-form-field>label,.mdc-form-field>label[dir=rtl]{padding-left:0;padding-right:4px}.mdc-form-field--nowrap>label{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.mdc-form-field--align-end>label{margin-left:auto;margin-right:0;padding-left:0;padding-right:4px;order:-1}[dir=rtl] .mdc-form-field--align-end>label,.mdc-form-field--align-end>label[dir=rtl]{margin-left:0;margin-right:auto}[dir=rtl] .mdc-form-field--align-end>label,.mdc-form-field--align-end>label[dir=rtl]{padding-left:4px;padding-right:0}.mdc-form-field--space-between{justify-content:space-between}.mdc-form-field--space-between>label{margin:0}[dir=rtl] .mdc-form-field--space-between>label,.mdc-form-field--space-between>label[dir=rtl]{margin:0}.mdc-form-field{font-family:var(--mdc-form-field-label-text-font);line-height:var(--mdc-form-field-label-text-line-height);font-size:var(--mdc-form-field-label-text-size);font-weight:var(--mdc-form-field-label-text-weight);letter-spacing:var(--mdc-form-field-label-text-tracking);color:var(--mdc-form-field-label-text-color)}.mat-internal-form-field{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased}"],encapsulation:2,changeDetection:0})}return n})();class EO{attach(e){return this._attachedHost=e,e.attach(this)}detach(){let e=this._attachedHost;null!=e&&(this._attachedHost=null,e.detach())}get isAttached(){return null!=this._attachedHost}setAttachedHost(e){this._attachedHost=e}}class t1 extends EO{constructor(e,t,i,r,s){super(),this.component=e,this.viewContainerRef=t,this.injector=i,this.componentFactoryResolver=r,this.projectableNodes=s}}class PE extends EO{constructor(e,t,i,r){super(),this.templateRef=e,this.viewContainerRef=t,this.context=i,this.injector=r}get origin(){return this.templateRef.elementRef}attach(e,t=this.context){return this.context=t,super.attach(e)}detach(){return this.context=void 0,super.detach()}}class g_e extends EO{constructor(e){super(),this.element=e instanceof oo?e.nativeElement:e}}class TO{constructor(){this._isDisposed=!1,this.attachDomPortal=null}hasAttached(){return!!this._attachedPortal}attach(e){return e instanceof t1?(this._attachedPortal=e,this.attachComponentPortal(e)):e instanceof PE?(this._attachedPortal=e,this.attachTemplatePortal(e)):this.attachDomPortal&&e instanceof g_e?(this._attachedPortal=e,this.attachDomPortal(e)):void 0}detach(){this._attachedPortal&&(this._attachedPortal.setAttachedHost(null),this._attachedPortal=null),this._invokeDisposeFn()}dispose(){this.hasAttached()&&this.detach(),this._invokeDisposeFn(),this._isDisposed=!0}setDisposeFn(e){this._disposeFn=e}_invokeDisposeFn(){this._disposeFn&&(this._disposeFn(),this._disposeFn=null)}}class __e extends TO{constructor(e,t,i,r,s){super(),this.outletElement=e,this._componentFactoryResolver=t,this._appRef=i,this._defaultInjector=r,this.attachDomPortal=o=>{const l=o.element,d=this._document.createComment("dom-portal");l.parentNode.insertBefore(d,l),this.outletElement.appendChild(l),this._attachedPortal=o,super.setDisposeFn(()=>{d.parentNode&&d.parentNode.replaceChild(l,d)})},this._document=s}attachComponentPortal(e){const i=(e.componentFactoryResolver||this._componentFactoryResolver).resolveComponentFactory(e.component);let r;return e.viewContainerRef?(r=e.viewContainerRef.createComponent(i,e.viewContainerRef.length,e.injector||e.viewContainerRef.injector,e.projectableNodes||void 0),this.setDisposeFn(()=>r.destroy())):(r=i.create(e.injector||this._defaultInjector||ml.NULL),this._appRef.attachView(r.hostView),this.setDisposeFn(()=>{this._appRef.viewCount>0&&this._appRef.detachView(r.hostView),r.destroy()})),this.outletElement.appendChild(this._getComponentRootNode(r)),this._attachedPortal=e,r}attachTemplatePortal(e){let t=e.viewContainerRef,i=t.createEmbeddedView(e.templateRef,e.context,{injector:e.injector});return i.rootNodes.forEach(r=>this.outletElement.appendChild(r)),i.detectChanges(),this.setDisposeFn(()=>{let r=t.indexOf(i);-1!==r&&t.remove(r)}),this._attachedPortal=e,i}dispose(){super.dispose(),this.outletElement.remove()}_getComponentRootNode(e){return e.hostView.rootNodes[0]}}let wC=(()=>{class n extends TO{constructor(t,i,r){super(),this._componentFactoryResolver=t,this._viewContainerRef=i,this._isInitialized=!1,this.attached=new Ls,this.attachDomPortal=s=>{const o=s.element,l=this._document.createComment("dom-portal");s.setAttachedHost(this),o.parentNode.insertBefore(l,o),this._getRootNode().appendChild(o),this._attachedPortal=s,super.setDisposeFn(()=>{l.parentNode&&l.parentNode.replaceChild(o,l)})},this._document=r}get portal(){return this._attachedPortal}set portal(t){this.hasAttached()&&!t&&!this._isInitialized||(this.hasAttached()&&super.detach(),t&&super.attach(t),this._attachedPortal=t||null)}get attachedRef(){return this._attachedRef}ngOnInit(){this._isInitialized=!0}ngOnDestroy(){super.dispose(),this._attachedRef=this._attachedPortal=null}attachComponentPortal(t){t.setAttachedHost(this);const i=null!=t.viewContainerRef?t.viewContainerRef:this._viewContainerRef,s=(t.componentFactoryResolver||this._componentFactoryResolver).resolveComponentFactory(t.component),o=i.createComponent(s,i.length,t.injector||i.injector,t.projectableNodes||void 0);return i!==this._viewContainerRef&&this._getRootNode().appendChild(o.hostView.rootNodes[0]),super.setDisposeFn(()=>o.destroy()),this._attachedPortal=t,this._attachedRef=o,this.attached.emit(o),o}attachTemplatePortal(t){t.setAttachedHost(this);const i=this._viewContainerRef.createEmbeddedView(t.templateRef,t.context,{injector:t.injector});return super.setDisposeFn(()=>this._viewContainerRef.clear()),this._attachedPortal=t,this._attachedRef=i,this.attached.emit(i),i}_getRootNode(){const t=this._viewContainerRef.element.nativeElement;return t.nodeType===t.ELEMENT_NODE?t:t.parentNode}static#e=this.\u0275fac=function(i){return new(i||n)(Lt(m0),Lt(fs),Lt(ba))};static#t=this.\u0275dir=Ft({type:n,selectors:[["","cdkPortalOutlet",""]],inputs:{portal:[mi.None,"cdkPortalOutlet","portal"]},outputs:{attached:"attached"},exportAs:["cdkPortalOutlet"],standalone:!0,features:[Lo]})}return n})(),k4=(()=>{class n{static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275mod=vo({type:n});static#n=this.\u0275inj=ra({})}return n})();var aa=function(n){return n[n.State=0]="State",n[n.Transition=1]="Transition",n[n.Sequence=2]="Sequence",n[n.Group=3]="Group",n[n.Animate=4]="Animate",n[n.Keyframes=5]="Keyframes",n[n.Style=6]="Style",n[n.Trigger=7]="Trigger",n[n.Reference=8]="Reference",n[n.AnimateChild=9]="AnimateChild",n[n.AnimateRef=10]="AnimateRef",n[n.Query=11]="Query",n[n.Stagger=12]="Stagger",n}(aa||{});const n1="*";function RE(n,e){return{type:aa.Trigger,name:n,definitions:e,options:{}}}function F0(n,e=null){return{type:aa.Animate,styles:e,timings:n}}function Yh(n){return{type:aa.Style,styles:n,offset:null}}function r1(n,e,t){return{type:aa.State,name:n,styles:e,options:t}}function O0(n,e,t=null){return{type:aa.Transition,expr:n,animation:e,options:t}}class kE{constructor(e=0,t=0){this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._originalOnDoneFns=[],this._originalOnStartFns=[],this._started=!1,this._destroyed=!1,this._finished=!1,this._position=0,this.parentPlayer=null,this.totalTime=e+t}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(e=>e()),this._onDoneFns=[])}onStart(e){this._originalOnStartFns.push(e),this._onStartFns.push(e)}onDone(e){this._originalOnDoneFns.push(e),this._onDoneFns.push(e)}onDestroy(e){this._onDestroyFns.push(e)}hasStarted(){return this._started}init(){}play(){this.hasStarted()||(this._onStart(),this.triggerMicrotask()),this._started=!0}triggerMicrotask(){queueMicrotask(()=>this._onFinish())}_onStart(){this._onStartFns.forEach(e=>e()),this._onStartFns=[]}pause(){}restart(){}finish(){this._onFinish()}destroy(){this._destroyed||(this._destroyed=!0,this.hasStarted()||this._onStart(),this.finish(),this._onDestroyFns.forEach(e=>e()),this._onDestroyFns=[])}reset(){this._started=!1,this._finished=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}setPosition(e){this._position=this.totalTime?e*this.totalTime:1}getPosition(){return this.totalTime?this._position/this.totalTime:1}triggerCallback(e){const t="start"==e?this._onStartFns:this._onDoneFns;t.forEach(i=>i()),t.length=0}}class oW{constructor(e){this._onDoneFns=[],this._onStartFns=[],this._finished=!1,this._started=!1,this._destroyed=!1,this._onDestroyFns=[],this.parentPlayer=null,this.totalTime=0,this.players=e;let t=0,i=0,r=0;const s=this.players.length;0==s?queueMicrotask(()=>this._onFinish()):this.players.forEach(o=>{o.onDone(()=>{++t==s&&this._onFinish()}),o.onDestroy(()=>{++i==s&&this._onDestroy()}),o.onStart(()=>{++r==s&&this._onStart()})}),this.totalTime=this.players.reduce((o,l)=>Math.max(o,l.totalTime),0)}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(e=>e()),this._onDoneFns=[])}init(){this.players.forEach(e=>e.init())}onStart(e){this._onStartFns.push(e)}_onStart(){this.hasStarted()||(this._started=!0,this._onStartFns.forEach(e=>e()),this._onStartFns=[])}onDone(e){this._onDoneFns.push(e)}onDestroy(e){this._onDestroyFns.push(e)}hasStarted(){return this._started}play(){this.parentPlayer||this.init(),this._onStart(),this.players.forEach(e=>e.play())}pause(){this.players.forEach(e=>e.pause())}restart(){this.players.forEach(e=>e.restart())}finish(){this._onFinish(),this.players.forEach(e=>e.finish())}destroy(){this._onDestroy()}_onDestroy(){this._destroyed||(this._destroyed=!0,this._onFinish(),this.players.forEach(e=>e.destroy()),this._onDestroyFns.forEach(e=>e()),this._onDestroyFns=[])}reset(){this.players.forEach(e=>e.reset()),this._destroyed=!1,this._finished=!1,this._started=!1}setPosition(e){const t=e*this.totalTime;this.players.forEach(i=>{const r=i.totalTime?Math.min(1,t/i.totalTime):1;i.setPosition(r)})}getPosition(){const e=this.players.reduce((t,i)=>null===t||i.totalTime>t.totalTime?i:t,null);return null!=e?e.getPosition():0}beforeDestroy(){this.players.forEach(e=>{e.beforeDestroy&&e.beforeDestroy()})}triggerCallback(e){const t="start"==e?this._onStartFns:this._onDoneFns;t.forEach(i=>i()),t.length=0}}const M_e=["addListener","removeListener"],S_e=["addEventListener","removeEventListener"],E_e=["on","off"];function px(n,e,t,i){if(Je(t)&&(i=t,t=void 0),i)return px(n,e,t).pipe(sk(i));const[r,s]=function I_e(n){return Je(n.addEventListener)&&Je(n.removeEventListener)}(n)?S_e.map(o=>l=>n[o](e,l,t)):function T_e(n){return Je(n.addListener)&&Je(n.removeListener)}(n)?M_e.map(aW(n,e)):function D_e(n){return Je(n.on)&&Je(n.off)}(n)?E_e.map(aW(n,e)):[];if(!r&&JR(n))return qh(o=>px(o,e,t))(Nu(n));if(!r)throw new TypeError("Invalid event target");return new Pe(o=>{const l=(...d)=>o.next(1s(l)})}function aW(n,e){return t=>i=>n[t](e,i)}const FE={schedule(n){let e=requestAnimationFrame,t=cancelAnimationFrame;const{delegate:i}=FE;i&&(e=i.requestAnimationFrame,t=i.cancelAnimationFrame);const r=e(s=>{t=void 0,n(s)});return new rt(()=>t?.(r))},requestAnimationFrame(...n){const{delegate:e}=FE;return(e?.requestAnimationFrame||requestAnimationFrame)(...n)},cancelAnimationFrame(...n){const{delegate:e}=FE;return(e?.cancelAnimationFrame||cancelAnimationFrame)(...n)},delegate:void 0},lW=new class P_e extends pO{flush(e){this._active=!0;const t=this._scheduled;this._scheduled=void 0;const{actions:i}=this;let r;e=e||i.shift();do{if(r=e.execute(e.state,e.delay))break}while((e=i[0])&&e.id===t&&i.shift());if(this._active=!1,r){for(;(e=i[0])&&e.id===t&&i.shift();)e.unsubscribe();throw r}}}(class B_e extends fO{constructor(e,t){super(e,t),this.scheduler=e,this.work=t}requestAsyncId(e,t,i=0){return null!==i&&i>0?super.requestAsyncId(e,t,i):(e.actions.push(this),e._scheduled||(e._scheduled=FE.requestAnimationFrame(()=>e.flush(void 0))))}recycleAsyncId(e,t,i=0){var r;if(null!=i?i>0:this.delay>0)return super.recycleAsyncId(e,t,i);const{actions:s}=e;null!=t&&(null===(r=s[s.length-1])||void 0===r?void 0:r.id)!==t&&(FE.cancelAnimationFrame(t),e._scheduled=void 0)}});function cW(n,e=TE){return function R_e(n){return ci((e,t)=>{let i=!1,r=null,s=null,o=!1;const l=()=>{if(s?.unsubscribe(),s=null,i){i=!1;const h=r;r=null,t.next(h)}o&&t.complete()},d=()=>{s=null,o&&t.complete()};e.subscribe(Pi(t,h=>{i=!0,r=h,s||Nu(n(h)).subscribe(s=Pi(t,l,d))},()=>{o=!0,(!i||!s||s.closed)&&t.complete()}))})}(()=>I4(n,e))}let F4=(()=>{class n{constructor(t,i,r){this._ngZone=t,this._platform=i,this._scrolled=new un,this._globalSubscription=null,this._scrolledCount=0,this.scrollContainers=new Map,this._document=r}register(t){this.scrollContainers.has(t)||this.scrollContainers.set(t,t.elementScrolled().subscribe(()=>this._scrolled.next(t)))}deregister(t){const i=this.scrollContainers.get(t);i&&(i.unsubscribe(),this.scrollContainers.delete(t))}scrolled(t=20){return this._platform.isBrowser?new Pe(i=>{this._globalSubscription||this._addGlobalListener();const r=t>0?this._scrolled.pipe(cW(t)).subscribe(i):this._scrolled.subscribe(i);return this._scrolledCount++,()=>{r.unsubscribe(),this._scrolledCount--,this._scrolledCount||this._removeGlobalListener()}}):po()}ngOnDestroy(){this._removeGlobalListener(),this.scrollContainers.forEach((t,i)=>this.deregister(i)),this._scrolled.complete()}ancestorScrolled(t,i){const r=this.getAncestorScrollContainers(t);return this.scrolled(i).pipe(od(s=>!s||r.indexOf(s)>-1))}getAncestorScrollContainers(t){const i=[];return this.scrollContainers.forEach((r,s)=>{this._scrollableContainsElement(s,t)&&i.push(s)}),i}_getWindow(){return this._document.defaultView||window}_scrollableContainsElement(t,i){let r=uh(i),s=t.getElementRef().nativeElement;do{if(r==s)return!0}while(r=r.parentElement);return!1}_addGlobalListener(){this._globalSubscription=this._ngZone.runOutsideAngular(()=>px(this._getWindow().document,"scroll").subscribe(()=>this._scrolled.next()))}_removeGlobalListener(){this._globalSubscription&&(this._globalSubscription.unsubscribe(),this._globalSubscription=null)}static#e=this.\u0275fac=function(i){return new(i||n)(xi(io),xi(dd),xi(ba,8))};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),OE=(()=>{class n{constructor(t,i,r){this._platform=t,this._change=new un,this._changeListener=s=>{this._change.next(s)},this._document=r,i.runOutsideAngular(()=>{if(t.isBrowser){const s=this._getWindow();s.addEventListener("resize",this._changeListener),s.addEventListener("orientationchange",this._changeListener)}this.change().subscribe(()=>this._viewportSize=null)})}ngOnDestroy(){if(this._platform.isBrowser){const t=this._getWindow();t.removeEventListener("resize",this._changeListener),t.removeEventListener("orientationchange",this._changeListener)}this._change.complete()}getViewportSize(){this._viewportSize||this._updateViewportSize();const t={width:this._viewportSize.width,height:this._viewportSize.height};return this._platform.isBrowser||(this._viewportSize=null),t}getViewportRect(){const t=this.getViewportScrollPosition(),{width:i,height:r}=this.getViewportSize();return{top:t.top,left:t.left,bottom:t.top+r,right:t.left+i,height:r,width:i}}getViewportScrollPosition(){if(!this._platform.isBrowser)return{top:0,left:0};const t=this._document,i=this._getWindow(),r=t.documentElement,s=r.getBoundingClientRect();return{top:-s.top||t.body.scrollTop||i.scrollY||r.scrollTop||0,left:-s.left||t.body.scrollLeft||i.scrollX||r.scrollLeft||0}}change(t=20){return t>0?this._change.pipe(cW(t)):this._change}_getWindow(){return this._document.defaultView||window}_updateViewportSize(){const t=this._getWindow();this._viewportSize=this._platform.isBrowser?{width:t.innerWidth,height:t.innerHeight}:{width:0,height:0}}static#e=this.\u0275fac=function(i){return new(i||n)(xi(dd),xi(io),xi(ba,8))};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),LE=(()=>{class n{static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275mod=vo({type:n});static#n=this.\u0275inj=ra({})}return n})(),dW=(()=>{class n{static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275mod=vo({type:n});static#n=this.\u0275inj=ra({imports:[IE,LE,IE,LE]})}return n})();const hW=vQ();class L_e{constructor(e,t){this._viewportRuler=e,this._previousHTMLStyles={top:"",left:""},this._isEnabled=!1,this._document=t}attach(){}enable(){if(this._canBeEnabled()){const e=this._document.documentElement;this._previousScrollPosition=this._viewportRuler.getViewportScrollPosition(),this._previousHTMLStyles.left=e.style.left||"",this._previousHTMLStyles.top=e.style.top||"",e.style.left=hh(-this._previousScrollPosition.left),e.style.top=hh(-this._previousScrollPosition.top),e.classList.add("cdk-global-scrollblock"),this._isEnabled=!0}}disable(){if(this._isEnabled){const e=this._document.documentElement,i=e.style,r=this._document.body.style,s=i.scrollBehavior||"",o=r.scrollBehavior||"";this._isEnabled=!1,i.left=this._previousHTMLStyles.left,i.top=this._previousHTMLStyles.top,e.classList.remove("cdk-global-scrollblock"),hW&&(i.scrollBehavior=r.scrollBehavior="auto"),window.scroll(this._previousScrollPosition.left,this._previousScrollPosition.top),hW&&(i.scrollBehavior=s,r.scrollBehavior=o)}}_canBeEnabled(){if(this._document.documentElement.classList.contains("cdk-global-scrollblock")||this._isEnabled)return!1;const t=this._document.body,i=this._viewportRuler.getViewportSize();return t.scrollHeight>i.height||t.scrollWidth>i.width}}class N_e{constructor(e,t,i,r){this._scrollDispatcher=e,this._ngZone=t,this._viewportRuler=i,this._config=r,this._scrollSubscription=null,this._detach=()=>{this.disable(),this._overlayRef.hasAttached()&&this._ngZone.run(()=>this._overlayRef.detach())}}attach(e){this._overlayRef=e}enable(){if(this._scrollSubscription)return;const e=this._scrollDispatcher.scrolled(0).pipe(od(t=>!t||!this._overlayRef.overlayElement.contains(t.getElementRef().nativeElement)));this._config&&this._config.threshold&&this._config.threshold>1?(this._initialScrollPosition=this._viewportRuler.getViewportScrollPosition().top,this._scrollSubscription=e.subscribe(()=>{const t=this._viewportRuler.getViewportScrollPosition().top;Math.abs(t-this._initialScrollPosition)>this._config.threshold?this._detach():this._overlayRef.updatePosition()})):this._scrollSubscription=e.subscribe(this._detach)}disable(){this._scrollSubscription&&(this._scrollSubscription.unsubscribe(),this._scrollSubscription=null)}detach(){this.disable(),this._overlayRef=null}}class uW{enable(){}disable(){}attach(){}}function IO(n,e){return e.some(t=>n.bottomt.bottom||n.rightt.right)}function fW(n,e){return e.some(t=>n.topt.bottom||n.leftt.right)}class U_e{constructor(e,t,i,r){this._scrollDispatcher=e,this._viewportRuler=t,this._ngZone=i,this._config=r,this._scrollSubscription=null}attach(e){this._overlayRef=e}enable(){this._scrollSubscription||(this._scrollSubscription=this._scrollDispatcher.scrolled(this._config?this._config.scrollThrottle:0).subscribe(()=>{if(this._overlayRef.updatePosition(),this._config&&this._config.autoClose){const t=this._overlayRef.overlayElement.getBoundingClientRect(),{width:i,height:r}=this._viewportRuler.getViewportSize();IO(t,[{width:i,height:r,bottom:r,right:i,top:0,left:0}])&&(this.disable(),this._ngZone.run(()=>this._overlayRef.detach()))}}))}disable(){this._scrollSubscription&&(this._scrollSubscription.unsubscribe(),this._scrollSubscription=null)}detach(){this.disable(),this._overlayRef=null}}let z_e=(()=>{class n{constructor(t,i,r,s){this._scrollDispatcher=t,this._viewportRuler=i,this._ngZone=r,this.noop=()=>new uW,this.close=o=>new N_e(this._scrollDispatcher,this._ngZone,this._viewportRuler,o),this.block=()=>new L_e(this._viewportRuler,this._document),this.reposition=o=>new U_e(this._scrollDispatcher,this._viewportRuler,this._ngZone,o),this._document=s}static#e=this.\u0275fac=function(i){return new(i||n)(xi(F4),xi(OE),xi(io),xi(ba))};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();class BO{constructor(e){if(this.scrollStrategy=new uW,this.panelClass="",this.hasBackdrop=!1,this.backdropClass="cdk-overlay-dark-backdrop",this.disposeOnNavigation=!1,e){const t=Object.keys(e);for(const i of t)void 0!==e[i]&&(this[i]=e[i])}}}class H_e{constructor(e,t){this.connectionPair=e,this.scrollableViewProperties=t}}let pW=(()=>{class n{constructor(t){this._attachedOverlays=[],this._document=t}ngOnDestroy(){this.detach()}add(t){this.remove(t),this._attachedOverlays.push(t)}remove(t){const i=this._attachedOverlays.indexOf(t);i>-1&&this._attachedOverlays.splice(i,1),0===this._attachedOverlays.length&&this.detach()}static#e=this.\u0275fac=function(i){return new(i||n)(xi(ba))};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),V_e=(()=>{class n extends pW{constructor(t,i){super(t),this._ngZone=i,this._keydownListener=r=>{const s=this._attachedOverlays;for(let o=s.length-1;o>-1;o--)if(s[o]._keydownEvents.observers.length>0){const l=s[o]._keydownEvents;this._ngZone?this._ngZone.run(()=>l.next(r)):l.next(r);break}}}add(t){super.add(t),this._isAttached||(this._ngZone?this._ngZone.runOutsideAngular(()=>this._document.body.addEventListener("keydown",this._keydownListener)):this._document.body.addEventListener("keydown",this._keydownListener),this._isAttached=!0)}detach(){this._isAttached&&(this._document.body.removeEventListener("keydown",this._keydownListener),this._isAttached=!1)}static#e=this.\u0275fac=function(i){return new(i||n)(xi(ba),xi(io,8))};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),G_e=(()=>{class n extends pW{constructor(t,i,r){super(t),this._platform=i,this._ngZone=r,this._cursorStyleIsSet=!1,this._pointerDownListener=s=>{this._pointerDownEventTarget=pA(s)},this._clickListener=s=>{const o=pA(s),l="click"===s.type&&this._pointerDownEventTarget?this._pointerDownEventTarget:o;this._pointerDownEventTarget=null;const d=this._attachedOverlays.slice();for(let h=d.length-1;h>-1;h--){const f=d[h];if(f._outsidePointerEvents.observers.length<1||!f.hasAttached())continue;if(f.overlayElement.contains(o)||f.overlayElement.contains(l))break;const A=f._outsidePointerEvents;this._ngZone?this._ngZone.run(()=>A.next(s)):A.next(s)}}}add(t){if(super.add(t),!this._isAttached){const i=this._document.body;this._ngZone?this._ngZone.runOutsideAngular(()=>this._addEventListeners(i)):this._addEventListeners(i),this._platform.IOS&&!this._cursorStyleIsSet&&(this._cursorOriginalValue=i.style.cursor,i.style.cursor="pointer",this._cursorStyleIsSet=!0),this._isAttached=!0}}detach(){if(this._isAttached){const t=this._document.body;t.removeEventListener("pointerdown",this._pointerDownListener,!0),t.removeEventListener("click",this._clickListener,!0),t.removeEventListener("auxclick",this._clickListener,!0),t.removeEventListener("contextmenu",this._clickListener,!0),this._platform.IOS&&this._cursorStyleIsSet&&(t.style.cursor=this._cursorOriginalValue,this._cursorStyleIsSet=!1),this._isAttached=!1}}_addEventListeners(t){t.addEventListener("pointerdown",this._pointerDownListener,!0),t.addEventListener("click",this._clickListener,!0),t.addEventListener("auxclick",this._clickListener,!0),t.addEventListener("contextmenu",this._clickListener,!0)}static#e=this.\u0275fac=function(i){return new(i||n)(xi(ba),xi(dd),xi(io,8))};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),O4=(()=>{class n{constructor(t,i){this._platform=i,this._document=t}ngOnDestroy(){this._containerElement?.remove()}getContainerElement(){return this._containerElement||this._createContainer(),this._containerElement}_createContainer(){const t="cdk-overlay-container";if(this._platform.isBrowser||dO()){const r=this._document.querySelectorAll(`.${t}[platform="server"], .${t}[platform="test"]`);for(let s=0;sthis._backdropClick.next(A),this._backdropTransitionendHandler=A=>{this._disposeBackdrop(A.target)},this._keydownEvents=new un,this._outsidePointerEvents=new un,r.scrollStrategy&&(this._scrollStrategy=r.scrollStrategy,this._scrollStrategy.attach(this)),this._positionStrategy=r.positionStrategy}get overlayElement(){return this._pane}get backdropElement(){return this._backdropElement}get hostElement(){return this._host}attach(e){!this._host.parentElement&&this._previousHostParent&&this._previousHostParent.appendChild(this._host);const t=this._portalOutlet.attach(e);return this._positionStrategy&&this._positionStrategy.attach(this),this._updateStackingOrder(),this._updateElementSize(),this._updateElementDirection(),this._scrollStrategy&&this._scrollStrategy.enable(),this._ngZone.onStable.pipe(ad(1)).subscribe(()=>{this.hasAttached()&&this.updatePosition()}),this._togglePointerEvents(!0),this._config.hasBackdrop&&this._attachBackdrop(),this._config.panelClass&&this._toggleClasses(this._pane,this._config.panelClass,!0),this._attachments.next(),this._keyboardDispatcher.add(this),this._config.disposeOnNavigation&&(this._locationChanges=this._location.subscribe(()=>this.dispose())),this._outsideClickDispatcher.add(this),"function"==typeof t?.onDestroy&&t.onDestroy(()=>{this.hasAttached()&&this._ngZone.runOutsideAngular(()=>Promise.resolve().then(()=>this.detach()))}),t}detach(){if(!this.hasAttached())return;this.detachBackdrop(),this._togglePointerEvents(!1),this._positionStrategy&&this._positionStrategy.detach&&this._positionStrategy.detach(),this._scrollStrategy&&this._scrollStrategy.disable();const e=this._portalOutlet.detach();return this._detachments.next(),this._keyboardDispatcher.remove(this),this._detachContentWhenStable(),this._locationChanges.unsubscribe(),this._outsideClickDispatcher.remove(this),e}dispose(){const e=this.hasAttached();this._positionStrategy&&this._positionStrategy.dispose(),this._disposeScrollStrategy(),this._disposeBackdrop(this._backdropElement),this._locationChanges.unsubscribe(),this._keyboardDispatcher.remove(this),this._portalOutlet.dispose(),this._attachments.complete(),this._backdropClick.complete(),this._keydownEvents.complete(),this._outsidePointerEvents.complete(),this._outsideClickDispatcher.remove(this),this._host?.remove(),this._previousHostParent=this._pane=this._host=null,e&&this._detachments.next(),this._detachments.complete()}hasAttached(){return this._portalOutlet.hasAttached()}backdropClick(){return this._backdropClick}attachments(){return this._attachments}detachments(){return this._detachments}keydownEvents(){return this._keydownEvents}outsidePointerEvents(){return this._outsidePointerEvents}getConfig(){return this._config}updatePosition(){this._positionStrategy&&this._positionStrategy.apply()}updatePositionStrategy(e){e!==this._positionStrategy&&(this._positionStrategy&&this._positionStrategy.dispose(),this._positionStrategy=e,this.hasAttached()&&(e.attach(this),this.updatePosition()))}updateSize(e){this._config={...this._config,...e},this._updateElementSize()}setDirection(e){this._config={...this._config,direction:e},this._updateElementDirection()}addPanelClass(e){this._pane&&this._toggleClasses(this._pane,e,!0)}removePanelClass(e){this._pane&&this._toggleClasses(this._pane,e,!1)}getDirection(){const e=this._config.direction;return e?"string"==typeof e?e:e.value:"ltr"}updateScrollStrategy(e){e!==this._scrollStrategy&&(this._disposeScrollStrategy(),this._scrollStrategy=e,this.hasAttached()&&(e.attach(this),e.enable()))}_updateElementDirection(){this._host.setAttribute("dir",this.getDirection())}_updateElementSize(){if(!this._pane)return;const e=this._pane.style;e.width=hh(this._config.width),e.height=hh(this._config.height),e.minWidth=hh(this._config.minWidth),e.minHeight=hh(this._config.minHeight),e.maxWidth=hh(this._config.maxWidth),e.maxHeight=hh(this._config.maxHeight)}_togglePointerEvents(e){this._pane.style.pointerEvents=e?"":"none"}_attachBackdrop(){const e="cdk-overlay-backdrop-showing";this._backdropElement=this._document.createElement("div"),this._backdropElement.classList.add("cdk-overlay-backdrop"),this._animationsDisabled&&this._backdropElement.classList.add("cdk-overlay-backdrop-noop-animation"),this._config.backdropClass&&this._toggleClasses(this._backdropElement,this._config.backdropClass,!0),this._host.parentElement.insertBefore(this._backdropElement,this._host),this._backdropElement.addEventListener("click",this._backdropClickHandler),!this._animationsDisabled&&typeof requestAnimationFrame<"u"?this._ngZone.runOutsideAngular(()=>{requestAnimationFrame(()=>{this._backdropElement&&this._backdropElement.classList.add(e)})}):this._backdropElement.classList.add(e)}_updateStackingOrder(){this._host.nextSibling&&this._host.parentNode.appendChild(this._host)}detachBackdrop(){const e=this._backdropElement;if(e){if(this._animationsDisabled)return void this._disposeBackdrop(e);e.classList.remove("cdk-overlay-backdrop-showing"),this._ngZone.runOutsideAngular(()=>{e.addEventListener("transitionend",this._backdropTransitionendHandler)}),e.style.pointerEvents="none",this._backdropTimeout=this._ngZone.runOutsideAngular(()=>setTimeout(()=>{this._disposeBackdrop(e)},500))}}_toggleClasses(e,t,i){const r=DE(t||[]).filter(s=>!!s);r.length&&(i?e.classList.add(...r):e.classList.remove(...r))}_detachContentWhenStable(){this._ngZone.runOutsideAngular(()=>{const e=this._ngZone.onStable.pipe(Ql(gm(this._attachments,this._detachments))).subscribe(()=>{(!this._pane||!this._host||0===this._pane.children.length)&&(this._pane&&this._config.panelClass&&this._toggleClasses(this._pane,this._config.panelClass,!1),this._host&&this._host.parentElement&&(this._previousHostParent=this._host.parentElement,this._host.remove()),e.unsubscribe())})})}_disposeScrollStrategy(){const e=this._scrollStrategy;e&&(e.disable(),e.detach&&e.detach())}_disposeBackdrop(e){e&&(e.removeEventListener("click",this._backdropClickHandler),e.removeEventListener("transitionend",this._backdropTransitionendHandler),e.remove(),this._backdropElement===e&&(this._backdropElement=null)),this._backdropTimeout&&(clearTimeout(this._backdropTimeout),this._backdropTimeout=void 0)}}const mW="cdk-overlay-connected-position-bounding-box",q_e=/([A-Za-z%]+)$/;class Q_e{get positions(){return this._preferredPositions}constructor(e,t,i,r,s){this._viewportRuler=t,this._document=i,this._platform=r,this._overlayContainer=s,this._lastBoundingBoxSize={width:0,height:0},this._isPushed=!1,this._canPush=!0,this._growAfterOpen=!1,this._hasFlexibleDimensions=!0,this._positionLocked=!1,this._viewportMargin=0,this._scrollables=[],this._preferredPositions=[],this._positionChanges=new un,this._resizeSubscription=rt.EMPTY,this._offsetX=0,this._offsetY=0,this._appliedPanelClasses=[],this.positionChanges=this._positionChanges,this.setOrigin(e)}attach(e){this._validatePositions(),e.hostElement.classList.add(mW),this._overlayRef=e,this._boundingBox=e.hostElement,this._pane=e.overlayElement,this._isDisposed=!1,this._isInitialRender=!0,this._lastPosition=null,this._resizeSubscription.unsubscribe(),this._resizeSubscription=this._viewportRuler.change().subscribe(()=>{this._isInitialRender=!0,this.apply()})}apply(){if(this._isDisposed||!this._platform.isBrowser)return;if(!this._isInitialRender&&this._positionLocked&&this._lastPosition)return void this.reapplyLastPosition();this._clearPanelClasses(),this._resetOverlayElementStyles(),this._resetBoundingBoxStyles(),this._viewportRect=this._getNarrowedViewportRect(),this._originRect=this._getOriginRect(),this._overlayRect=this._pane.getBoundingClientRect(),this._containerRect=this._overlayContainer.getContainerElement().getBoundingClientRect();const e=this._originRect,t=this._overlayRect,i=this._viewportRect,r=this._containerRect,s=[];let o;for(let l of this._preferredPositions){let d=this._getOriginPoint(e,r,l),h=this._getOverlayPoint(d,t,l),f=this._getOverlayFit(h,t,i,l);if(f.isCompletelyWithinViewport)return this._isPushed=!1,void this._applyPosition(l,d);this._canFitWithFlexibleDimensions(f,h,i)?s.push({position:l,origin:d,overlayRect:t,boundingBoxRect:this._calculateBoundingBoxRect(d,l)}):(!o||o.overlayFit.visibleAread&&(d=f,l=h)}return this._isPushed=!1,void this._applyPosition(l.position,l.origin)}if(this._canPush)return this._isPushed=!0,void this._applyPosition(o.position,o.originPoint);this._applyPosition(o.position,o.originPoint)}detach(){this._clearPanelClasses(),this._lastPosition=null,this._previousPushAmount=null,this._resizeSubscription.unsubscribe()}dispose(){this._isDisposed||(this._boundingBox&&mx(this._boundingBox.style,{top:"",left:"",right:"",bottom:"",height:"",width:"",alignItems:"",justifyContent:""}),this._pane&&this._resetOverlayElementStyles(),this._overlayRef&&this._overlayRef.hostElement.classList.remove(mW),this.detach(),this._positionChanges.complete(),this._overlayRef=this._boundingBox=null,this._isDisposed=!0)}reapplyLastPosition(){if(this._isDisposed||!this._platform.isBrowser)return;const e=this._lastPosition;if(e){this._originRect=this._getOriginRect(),this._overlayRect=this._pane.getBoundingClientRect(),this._viewportRect=this._getNarrowedViewportRect(),this._containerRect=this._overlayContainer.getContainerElement().getBoundingClientRect();const t=this._getOriginPoint(this._originRect,this._containerRect,e);this._applyPosition(e,t)}else this.apply()}withScrollableContainers(e){return this._scrollables=e,this}withPositions(e){return this._preferredPositions=e,-1===e.indexOf(this._lastPosition)&&(this._lastPosition=null),this._validatePositions(),this}withViewportMargin(e){return this._viewportMargin=e,this}withFlexibleDimensions(e=!0){return this._hasFlexibleDimensions=e,this}withGrowAfterOpen(e=!0){return this._growAfterOpen=e,this}withPush(e=!0){return this._canPush=e,this}withLockedPosition(e=!0){return this._positionLocked=e,this}setOrigin(e){return this._origin=e,this}withDefaultOffsetX(e){return this._offsetX=e,this}withDefaultOffsetY(e){return this._offsetY=e,this}withTransformOriginOn(e){return this._transformOriginSelector=e,this}_getOriginPoint(e,t,i){let r,s;if("center"==i.originX)r=e.left+e.width/2;else{const o=this._isRtl()?e.right:e.left,l=this._isRtl()?e.left:e.right;r="start"==i.originX?o:l}return t.left<0&&(r-=t.left),s="center"==i.originY?e.top+e.height/2:"top"==i.originY?e.top:e.bottom,t.top<0&&(s-=t.top),{x:r,y:s}}_getOverlayPoint(e,t,i){let r,s;return r="center"==i.overlayX?-t.width/2:"start"===i.overlayX?this._isRtl()?-t.width:0:this._isRtl()?0:-t.width,s="center"==i.overlayY?-t.height/2:"top"==i.overlayY?0:-t.height,{x:e.x+r,y:e.y+s}}_getOverlayFit(e,t,i,r){const s=gW(t);let{x:o,y:l}=e,d=this._getOffset(r,"x"),h=this._getOffset(r,"y");d&&(o+=d),h&&(l+=h);let S=0-l,R=l+s.height-i.height,G=this._subtractOverflows(s.width,0-o,o+s.width-i.width),re=this._subtractOverflows(s.height,S,R),se=G*re;return{visibleArea:se,isCompletelyWithinViewport:s.width*s.height===se,fitsInViewportVertically:re===s.height,fitsInViewportHorizontally:G==s.width}}_canFitWithFlexibleDimensions(e,t,i){if(this._hasFlexibleDimensions){const r=i.bottom-t.y,s=i.right-t.x,o=AW(this._overlayRef.getConfig().minHeight),l=AW(this._overlayRef.getConfig().minWidth);return(e.fitsInViewportVertically||null!=o&&o<=r)&&(e.fitsInViewportHorizontally||null!=l&&l<=s)}return!1}_pushOverlayOnScreen(e,t,i){if(this._previousPushAmount&&this._positionLocked)return{x:e.x+this._previousPushAmount.x,y:e.y+this._previousPushAmount.y};const r=gW(t),s=this._viewportRect,o=Math.max(e.x+r.width-s.width,0),l=Math.max(e.y+r.height-s.height,0),d=Math.max(s.top-i.top-e.y,0),h=Math.max(s.left-i.left-e.x,0);let f=0,A=0;return f=r.width<=s.width?h||-o:e.xG&&!this._isInitialRender&&!this._growAfterOpen&&(o=e.y-G/2)}if("end"===t.overlayX&&!r||"start"===t.overlayX&&r)S=i.width-e.x+2*this._viewportMargin,f=e.x-this._viewportMargin;else if("start"===t.overlayX&&!r||"end"===t.overlayX&&r)A=e.x,f=i.right-e.x;else{const R=Math.min(i.right-e.x+i.left,e.x),G=this._lastBoundingBoxSize.width;f=2*R,A=e.x-R,f>G&&!this._isInitialRender&&!this._growAfterOpen&&(A=e.x-G/2)}return{top:o,left:A,bottom:l,right:S,width:f,height:s}}_setBoundingBoxStyles(e,t){const i=this._calculateBoundingBoxRect(e,t);!this._isInitialRender&&!this._growAfterOpen&&(i.height=Math.min(i.height,this._lastBoundingBoxSize.height),i.width=Math.min(i.width,this._lastBoundingBoxSize.width));const r={};if(this._hasExactPosition())r.top=r.left="0",r.bottom=r.right=r.maxHeight=r.maxWidth="",r.width=r.height="100%";else{const s=this._overlayRef.getConfig().maxHeight,o=this._overlayRef.getConfig().maxWidth;r.height=hh(i.height),r.top=hh(i.top),r.bottom=hh(i.bottom),r.width=hh(i.width),r.left=hh(i.left),r.right=hh(i.right),r.alignItems="center"===t.overlayX?"center":"end"===t.overlayX?"flex-end":"flex-start",r.justifyContent="center"===t.overlayY?"center":"bottom"===t.overlayY?"flex-end":"flex-start",s&&(r.maxHeight=hh(s)),o&&(r.maxWidth=hh(o))}this._lastBoundingBoxSize=i,mx(this._boundingBox.style,r)}_resetBoundingBoxStyles(){mx(this._boundingBox.style,{top:"0",left:"0",right:"0",bottom:"0",height:"",width:"",alignItems:"",justifyContent:""})}_resetOverlayElementStyles(){mx(this._pane.style,{top:"",left:"",bottom:"",right:"",position:"",transform:""})}_setOverlayElementStyles(e,t){const i={},r=this._hasExactPosition(),s=this._hasFlexibleDimensions,o=this._overlayRef.getConfig();if(r){const f=this._viewportRuler.getViewportScrollPosition();mx(i,this._getExactOverlayY(t,e,f)),mx(i,this._getExactOverlayX(t,e,f))}else i.position="static";let l="",d=this._getOffset(t,"x"),h=this._getOffset(t,"y");d&&(l+=`translateX(${d}px) `),h&&(l+=`translateY(${h}px)`),i.transform=l.trim(),o.maxHeight&&(r?i.maxHeight=hh(o.maxHeight):s&&(i.maxHeight="")),o.maxWidth&&(r?i.maxWidth=hh(o.maxWidth):s&&(i.maxWidth="")),mx(this._pane.style,i)}_getExactOverlayY(e,t,i){let r={top:"",bottom:""},s=this._getOverlayPoint(t,this._overlayRect,e);return this._isPushed&&(s=this._pushOverlayOnScreen(s,this._overlayRect,i)),"bottom"===e.overlayY?r.bottom=this._document.documentElement.clientHeight-(s.y+this._overlayRect.height)+"px":r.top=hh(s.y),r}_getExactOverlayX(e,t,i){let o,r={left:"",right:""},s=this._getOverlayPoint(t,this._overlayRect,e);return this._isPushed&&(s=this._pushOverlayOnScreen(s,this._overlayRect,i)),o=this._isRtl()?"end"===e.overlayX?"left":"right":"end"===e.overlayX?"right":"left","right"===o?r.right=this._document.documentElement.clientWidth-(s.x+this._overlayRect.width)+"px":r.left=hh(s.x),r}_getScrollVisibility(){const e=this._getOriginRect(),t=this._pane.getBoundingClientRect(),i=this._scrollables.map(r=>r.getElementRef().nativeElement.getBoundingClientRect());return{isOriginClipped:fW(e,i),isOriginOutsideView:IO(e,i),isOverlayClipped:fW(t,i),isOverlayOutsideView:IO(t,i)}}_subtractOverflows(e,...t){return t.reduce((i,r)=>i-Math.max(r,0),e)}_getNarrowedViewportRect(){const e=this._document.documentElement.clientWidth,t=this._document.documentElement.clientHeight,i=this._viewportRuler.getViewportScrollPosition();return{top:i.top+this._viewportMargin,left:i.left+this._viewportMargin,right:i.left+e-this._viewportMargin,bottom:i.top+t-this._viewportMargin,width:e-2*this._viewportMargin,height:t-2*this._viewportMargin}}_isRtl(){return"rtl"===this._overlayRef.getDirection()}_hasExactPosition(){return!this._hasFlexibleDimensions||this._isPushed}_getOffset(e,t){return"x"===t?null==e.offsetX?this._offsetX:e.offsetX:null==e.offsetY?this._offsetY:e.offsetY}_validatePositions(){}_addPanelClasses(e){this._pane&&DE(e).forEach(t=>{""!==t&&-1===this._appliedPanelClasses.indexOf(t)&&(this._appliedPanelClasses.push(t),this._pane.classList.add(t))})}_clearPanelClasses(){this._pane&&(this._appliedPanelClasses.forEach(e=>{this._pane.classList.remove(e)}),this._appliedPanelClasses=[])}_getOriginRect(){const e=this._origin;if(e instanceof oo)return e.nativeElement.getBoundingClientRect();if(e instanceof Element)return e.getBoundingClientRect();const t=e.width||0,i=e.height||0;return{top:e.y,bottom:e.y+i,left:e.x,right:e.x+t,height:i,width:t}}}function mx(n,e){for(let t in e)e.hasOwnProperty(t)&&(n[t]=e[t]);return n}function AW(n){if("number"!=typeof n&&null!=n){const[e,t]=n.split(q_e);return t&&"px"!==t?null:parseFloat(e)}return n||null}function gW(n){return{top:Math.floor(n.top),right:Math.floor(n.right),bottom:Math.floor(n.bottom),left:Math.floor(n.left),width:Math.floor(n.width),height:Math.floor(n.height)}}const _W="cdk-global-overlay-wrapper";class j_e{constructor(){this._cssPosition="static",this._topOffset="",this._bottomOffset="",this._alignItems="",this._xPosition="",this._xOffset="",this._width="",this._height="",this._isDisposed=!1}attach(e){const t=e.getConfig();this._overlayRef=e,this._width&&!t.width&&e.updateSize({width:this._width}),this._height&&!t.height&&e.updateSize({height:this._height}),e.hostElement.classList.add(_W),this._isDisposed=!1}top(e=""){return this._bottomOffset="",this._topOffset=e,this._alignItems="flex-start",this}left(e=""){return this._xOffset=e,this._xPosition="left",this}bottom(e=""){return this._topOffset="",this._bottomOffset=e,this._alignItems="flex-end",this}right(e=""){return this._xOffset=e,this._xPosition="right",this}start(e=""){return this._xOffset=e,this._xPosition="start",this}end(e=""){return this._xOffset=e,this._xPosition="end",this}width(e=""){return this._overlayRef?this._overlayRef.updateSize({width:e}):this._width=e,this}height(e=""){return this._overlayRef?this._overlayRef.updateSize({height:e}):this._height=e,this}centerHorizontally(e=""){return this.left(e),this._xPosition="center",this}centerVertically(e=""){return this.top(e),this._alignItems="center",this}apply(){if(!this._overlayRef||!this._overlayRef.hasAttached())return;const e=this._overlayRef.overlayElement.style,t=this._overlayRef.hostElement.style,i=this._overlayRef.getConfig(),{width:r,height:s,maxWidth:o,maxHeight:l}=i,d=!("100%"!==r&&"100vw"!==r||o&&"100%"!==o&&"100vw"!==o),h=!("100%"!==s&&"100vh"!==s||l&&"100%"!==l&&"100vh"!==l),f=this._xPosition,A=this._xOffset,S="rtl"===this._overlayRef.getConfig().direction;let R="",G="",re="";d?re="flex-start":"center"===f?(re="center",S?G=A:R=A):S?"left"===f||"end"===f?(re="flex-end",R=A):("right"===f||"start"===f)&&(re="flex-start",G=A):"left"===f||"start"===f?(re="flex-start",R=A):("right"===f||"end"===f)&&(re="flex-end",G=A),e.position=this._cssPosition,e.marginLeft=d?"0":R,e.marginTop=h?"0":this._topOffset,e.marginBottom=this._bottomOffset,e.marginRight=d?"0":G,t.justifyContent=re,t.alignItems=h?"flex-start":this._alignItems}dispose(){if(this._isDisposed||!this._overlayRef)return;const e=this._overlayRef.overlayElement.style,t=this._overlayRef.hostElement,i=t.style;t.classList.remove(_W),i.justifyContent=i.alignItems=e.marginTop=e.marginBottom=e.marginLeft=e.marginRight=e.position="",this._overlayRef=null,this._isDisposed=!0}}let $_e=(()=>{class n{constructor(t,i,r,s){this._viewportRuler=t,this._document=i,this._platform=r,this._overlayContainer=s}global(){return new j_e}flexibleConnectedTo(t){return new Q_e(t,this._viewportRuler,this._document,this._platform,this._overlayContainer)}static#e=this.\u0275fac=function(i){return new(i||n)(xi(OE),xi(ba),xi(dd),xi(O4))};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),X_e=0,fh=(()=>{class n{constructor(t,i,r,s,o,l,d,h,f,A,S,R){this.scrollStrategies=t,this._overlayContainer=i,this._componentFactoryResolver=r,this._positionBuilder=s,this._keyboardDispatcher=o,this._injector=l,this._ngZone=d,this._document=h,this._directionality=f,this._location=A,this._outsideClickDispatcher=S,this._animationsModuleType=R}create(t){const i=this._createHostElement(),r=this._createPaneElement(i),s=this._createPortalOutlet(r),o=new BO(t);return o.direction=o.direction||this._directionality.value,new L4(s,i,r,o,this._ngZone,this._keyboardDispatcher,this._document,this._location,this._outsideClickDispatcher,"NoopAnimations"===this._animationsModuleType)}position(){return this._positionBuilder}_createPaneElement(t){const i=this._document.createElement("div");return i.id="cdk-overlay-"+X_e++,i.classList.add("cdk-overlay-pane"),t.appendChild(i),i}_createHostElement(){const t=this._document.createElement("div");return this._overlayContainer.getContainerElement().appendChild(t),t}_createPortalOutlet(t){return this._appRef||(this._appRef=this._injector.get(k_)),new __e(t,this._componentFactoryResolver,this._appRef,this._injector,this._document)}static#e=this.\u0275fac=function(i){return new(i||n)(xi(z_e),xi(O4),xi(m0),xi($_e),xi(V_e),xi(ml),xi(io),xi(ba),xi(_m),xi(gb),xi(G_e),xi(Od,8))};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();const Z_e={provide:new Bi("cdk-connected-overlay-scroll-strategy",{providedIn:"root",factory:()=>{const n=pi(fh);return()=>n.scrollStrategies.reposition()}}),deps:[fh],useFactory:function K_e(n){return()=>n.scrollStrategies.reposition()}};let NE=(()=>{class n{static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275mod=vo({type:n});static#n=this.\u0275inj=ra({providers:[fh,Z_e],imports:[IE,k4,dW,dW]})}return n})();const J_e=["mat-menu-item",""],e1e=[[["mat-icon"],["","matMenuItemIcon",""]],"*"],t1e=["mat-icon, [matMenuItemIcon]","*"];function n1e(n,e){1&n&&(Fl(),Gt(0,"svg",2),Vr(1,"polygon",3),dn())}const i1e=["*"];function r1e(n,e){if(1&n){const t=ta();Gt(0,"div",0),Ai("keydown",function(r){return Ci(t),Mi(Pr()._handleKeydown(r))})("click",function(){return Ci(t),Mi(Pr().closed.emit("click"))})("@transformMenu.start",function(r){return Ci(t),Mi(Pr()._onAnimationStart(r))})("@transformMenu.done",function(r){return Ci(t),Mi(Pr()._onAnimationDone(r))}),Gt(1,"div",1),ih(2),dn()()}if(2&n){const t=Pr();Qn("id",t.panelId)("ngClass",t._classList)("@transformMenu",t._panelAnimationState),sl("aria-label",t.ariaLabel||null)("aria-labelledby",t.ariaLabelledby||null)("aria-describedby",t.ariaDescribedby||null)}}const PO=new Bi("MAT_MENU_PANEL");let s1=(()=>{class n{constructor(t,i,r,s,o){this._elementRef=t,this._document=i,this._focusMonitor=r,this._parentMenu=s,this._changeDetectorRef=o,this.role="menuitem",this.disabled=!1,this.disableRipple=!1,this._hovered=new un,this._focused=new un,this._highlighted=!1,this._triggersSubmenu=!1,s?.addItem?.(this)}focus(t,i){this._focusMonitor&&t?this._focusMonitor.focusVia(this._getHostElement(),t,i):this._getHostElement().focus(i),this._focused.next(this)}ngAfterViewInit(){this._focusMonitor&&this._focusMonitor.monitor(this._elementRef,!1)}ngOnDestroy(){this._focusMonitor&&this._focusMonitor.stopMonitoring(this._elementRef),this._parentMenu&&this._parentMenu.removeItem&&this._parentMenu.removeItem(this),this._hovered.complete(),this._focused.complete()}_getTabIndex(){return this.disabled?"-1":"0"}_getHostElement(){return this._elementRef.nativeElement}_checkDisabled(t){this.disabled&&(t.preventDefault(),t.stopPropagation())}_handleMouseEnter(){this._hovered.next(this)}getLabel(){const t=this._elementRef.nativeElement.cloneNode(!0),i=t.querySelectorAll("mat-icon, .material-icons");for(let r=0;r enter",F0("120ms cubic-bezier(0, 0, 0.2, 1)",Yh({opacity:1,transform:"scale(1)"}))),O0("* => void",F0("100ms 25ms linear",Yh({opacity:0})))]),fadeInItems:RE("fadeInItems",[r1("showing",Yh({opacity:1})),O0("void => *",[Yh({opacity:0}),F0("400ms 100ms cubic-bezier(0.55, 0, 0.55, 0.2)")])])};let o1e=0;const a1e=new Bi("mat-menu-default-options",{providedIn:"root",factory:function l1e(){return{overlapTrigger:!1,xPosition:"after",yPosition:"below",backdropClass:"cdk-overlay-transparent-backdrop"}}});let o1=(()=>{class n{get xPosition(){return this._xPosition}set xPosition(t){this._xPosition=t,this.setPositionClasses()}get yPosition(){return this._yPosition}set yPosition(t){this._yPosition=t,this.setPositionClasses()}set panelClass(t){const i=this._previousPanelClass;i&&i.length&&i.split(" ").forEach(r=>{this._classList[r]=!1}),this._previousPanelClass=t,t&&t.length&&(t.split(" ").forEach(r=>{this._classList[r]=!0}),this._elementRef.nativeElement.className="")}get classList(){return this.panelClass}set classList(t){this.panelClass=t}constructor(t,i,r,s){this._elementRef=t,this._ngZone=i,this._changeDetectorRef=s,this._elevationPrefix="mat-elevation-z",this._baseElevation=8,this._directDescendantItems=new yf,this._classList={},this._panelAnimationState="void",this._animationDone=new un,this.closed=new Ls,this.close=this.closed,this.panelId="mat-menu-panel-"+o1e++,this.overlayPanelClass=r.overlayPanelClass||"",this._xPosition=r.xPosition,this._yPosition=r.yPosition,this.backdropClass=r.backdropClass,this.overlapTrigger=r.overlapTrigger,this.hasBackdrop=r.hasBackdrop}ngOnInit(){this.setPositionClasses()}ngAfterContentInit(){this._updateDirectDescendants(),this._keyManager=new kQ(this._directDescendantItems).withWrap().withTypeAhead().withHomeAndEnd(),this._keyManager.tabOut.subscribe(()=>this.closed.emit("tab")),this._directDescendantItems.changes.pipe(sA(this._directDescendantItems),Df(t=>gm(...t.map(i=>i._focused)))).subscribe(t=>this._keyManager.updateActiveItem(t)),this._directDescendantItems.changes.subscribe(t=>{const i=this._keyManager;if("enter"===this._panelAnimationState&&i.activeItem?._hasFocus()){const r=t.toArray(),s=Math.max(0,Math.min(r.length-1,i.activeItemIndex||0));r[s]&&!r[s].disabled?i.setActiveItem(s):i.setNextItemActive()}})}ngOnDestroy(){this._keyManager?.destroy(),this._directDescendantItems.destroy(),this.closed.complete(),this._firstItemFocusSubscription?.unsubscribe()}_hovered(){return this._directDescendantItems.changes.pipe(sA(this._directDescendantItems),Df(i=>gm(...i.map(r=>r._hovered))))}addItem(t){}removeItem(t){}_handleKeydown(t){const i=t.keyCode,r=this._keyManager;switch(i){case 27:bC(t)||(t.preventDefault(),this.closed.emit("keydown"));break;case 37:this.parentMenu&&"ltr"===this.direction&&this.closed.emit("keydown");break;case 39:this.parentMenu&&"rtl"===this.direction&&this.closed.emit("keydown");break;default:return(38===i||40===i)&&r.setFocusOrigin("keyboard"),void r.onKeydown(t)}t.stopPropagation()}focusFirstItem(t="program"){this._firstItemFocusSubscription?.unsubscribe(),this._firstItemFocusSubscription=this._ngZone.onStable.pipe(ad(1)).subscribe(()=>{let i=null;if(this._directDescendantItems.length&&(i=this._directDescendantItems.first._getHostElement().closest('[role="menu"]')),!i||!i.contains(document.activeElement)){const r=this._keyManager;r.setFocusOrigin(t).setFirstItemActive(),!r.activeItem&&i&&i.focus()}})}resetActiveItem(){this._keyManager.setActiveItem(-1)}setElevation(t){const i=Math.min(this._baseElevation+t,24),r=`${this._elevationPrefix}${i}`,s=Object.keys(this._classList).find(o=>o.startsWith(this._elevationPrefix));(!s||s===this._previousElevation)&&(this._previousElevation&&(this._classList[this._previousElevation]=!1),this._classList[r]=!0,this._previousElevation=r)}setPositionClasses(t=this.xPosition,i=this.yPosition){const r=this._classList;r["mat-menu-before"]="before"===t,r["mat-menu-after"]="after"===t,r["mat-menu-above"]="above"===i,r["mat-menu-below"]="below"===i,this._changeDetectorRef?.markForCheck()}_startAnimation(){this._panelAnimationState="enter"}_resetAnimation(){this._panelAnimationState="void"}_onAnimationDone(t){this._animationDone.next(t),this._isAnimating=!1}_onAnimationStart(t){this._isAnimating=!0,"enter"===t.toState&&0===this._keyManager.activeItemIndex&&(t.element.scrollTop=0)}_updateDirectDescendants(){this._allItems.changes.pipe(sA(this._allItems)).subscribe(t=>{this._directDescendantItems.reset(t.filter(i=>i._parentMenu===this)),this._directDescendantItems.notifyOnChanges()})}static#e=this.\u0275fac=function(i){return new(i||n)(Lt(oo),Lt(io),Lt(a1e),Lt(Sc))};static#t=this.\u0275cmp=rs({type:n,selectors:[["mat-menu"]],contentQueries:function(i,r,s){if(1&i&&(mp(s,s1e,5),mp(s,s1,5),mp(s,s1,4)),2&i){let o;pa(o=ma())&&(r.lazyContent=o.first),pa(o=ma())&&(r._allItems=o),pa(o=ma())&&(r.items=o)}},viewQuery:function(i,r){if(1&i&&_l(Ud,5),2&i){let s;pa(s=ma())&&(r.templateRef=s.first)}},hostVars:3,hostBindings:function(i,r){2&i&&sl("aria-label",null)("aria-labelledby",null)("aria-describedby",null)},inputs:{backdropClass:"backdropClass",ariaLabel:[mi.None,"aria-label","ariaLabel"],ariaLabelledby:[mi.None,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[mi.None,"aria-describedby","ariaDescribedby"],xPosition:"xPosition",yPosition:"yPosition",overlapTrigger:[mi.HasDecoratorInputTransform,"overlapTrigger","overlapTrigger",_o],hasBackdrop:[mi.HasDecoratorInputTransform,"hasBackdrop","hasBackdrop",t=>null==t?null:_o(t)],panelClass:[mi.None,"class","panelClass"],classList:"classList"},outputs:{closed:"closed",close:"close"},exportAs:["matMenu"],standalone:!0,features:[qo([{provide:PO,useExisting:n}]),ql,yd],ngContentSelectors:i1e,decls:1,vars:0,consts:[["tabindex","-1","role","menu",1,"mat-mdc-menu-panel","mat-mdc-elevation-specific",3,"keydown","click","id","ngClass"],[1,"mat-mdc-menu-content"]],template:function(i,r){1&i&&(yu(),zs(0,r1e,3,6,"ng-template"))},dependencies:[om],styles:['mat-menu{display:none}.mat-mdc-menu-content{margin:0;padding:8px 0;list-style-type:none}.mat-mdc-menu-content:focus{outline:none}.mat-mdc-menu-content,.mat-mdc-menu-content .mat-mdc-menu-item .mat-mdc-menu-item-text{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;flex:1;white-space:normal;font-family:var(--mat-menu-item-label-text-font);line-height:var(--mat-menu-item-label-text-line-height);font-size:var(--mat-menu-item-label-text-size);letter-spacing:var(--mat-menu-item-label-text-tracking);font-weight:var(--mat-menu-item-label-text-weight)}.mat-mdc-menu-panel{min-width:112px;max-width:280px;overflow:auto;-webkit-overflow-scrolling:touch;box-sizing:border-box;outline:0;border-radius:var(--mat-menu-container-shape);background-color:var(--mat-menu-container-color);will-change:transform,opacity}.mat-mdc-menu-panel.ng-animating{pointer-events:none}.cdk-high-contrast-active .mat-mdc-menu-panel{outline:solid 1px}.mat-divider{color:var(--mat-menu-divider-color);margin-bottom:var(--mat-menu-divider-bottom-spacing);margin-top:var(--mat-menu-divider-top-spacing)}.mat-mdc-menu-item{display:flex;position:relative;align-items:center;justify-content:flex-start;overflow:hidden;padding:0;padding-left:var(--mat-menu-item-leading-spacing);padding-right:var(--mat-menu-item-trailing-spacing);-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:rgba(0,0,0,0);cursor:pointer;width:100%;text-align:left;box-sizing:border-box;color:inherit;font-size:inherit;background:none;text-decoration:none;margin:0;align-items:center;min-height:48px}.mat-mdc-menu-item:focus{outline:none}[dir=rtl] .mat-mdc-menu-item,.mat-mdc-menu-item[dir=rtl]{padding-left:var(--mat-menu-item-trailing-spacing);padding-right:var(--mat-menu-item-leading-spacing)}.mat-mdc-menu-item:has(.material-icons,mat-icon,[matButtonIcon]){padding-left:var(--mat-menu-item-with-icon-leading-spacing);padding-right:var(--mat-menu-item-with-icon-trailing-spacing)}[dir=rtl] .mat-mdc-menu-item:has(.material-icons,mat-icon,[matButtonIcon]),.mat-mdc-menu-item:has(.material-icons,mat-icon,[matButtonIcon])[dir=rtl]{padding-left:var(--mat-menu-item-with-icon-trailing-spacing);padding-right:var(--mat-menu-item-with-icon-leading-spacing)}.mat-mdc-menu-item::-moz-focus-inner{border:0}.mat-mdc-menu-item,.mat-mdc-menu-item:visited,.mat-mdc-menu-item:link{color:var(--mat-menu-item-label-text-color)}.mat-mdc-menu-item .mat-icon-no-color,.mat-mdc-menu-item .mat-mdc-menu-submenu-icon{color:var(--mat-menu-item-icon-color)}.mat-mdc-menu-item[disabled]{cursor:default;opacity:.38}.mat-mdc-menu-item[disabled]::after{display:block;position:absolute;content:"";top:0;left:0;bottom:0;right:0}.mat-mdc-menu-item .mat-icon{flex-shrink:0;margin-right:var(--mat-menu-item-spacing);height:var(--mat-menu-item-icon-size);width:var(--mat-menu-item-icon-size)}[dir=rtl] .mat-mdc-menu-item{text-align:right}[dir=rtl] .mat-mdc-menu-item .mat-icon{margin-right:0;margin-left:var(--mat-menu-item-spacing)}.mat-mdc-menu-item:not([disabled]):hover{background-color:var(--mat-menu-item-hover-state-layer-color)}.mat-mdc-menu-item:not([disabled]).cdk-program-focused,.mat-mdc-menu-item:not([disabled]).cdk-keyboard-focused,.mat-mdc-menu-item:not([disabled]).mat-mdc-menu-item-highlighted{background-color:var(--mat-menu-item-focus-state-layer-color)}.cdk-high-contrast-active .mat-mdc-menu-item{margin-top:1px}.mat-mdc-menu-submenu-icon{width:var(--mat-menu-item-icon-size);height:10px;fill:currentColor;padding-left:var(--mat-menu-item-spacing)}[dir=rtl] .mat-mdc-menu-submenu-icon{right:auto;padding-right:var(--mat-menu-item-spacing);padding-left:0}.cdk-high-contrast-active .mat-mdc-menu-submenu-icon{fill:CanvasText}.mat-mdc-menu-item .mat-mdc-menu-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}'],encapsulation:2,data:{animation:[N4.transformMenu,N4.fadeInItems]},changeDetection:0})}return n})();const yW=new Bi("mat-menu-scroll-strategy",{providedIn:"root",factory:()=>{const n=pi(fh);return()=>n.scrollStrategies.reposition()}}),d1e={provide:yW,deps:[fh],useFactory:function c1e(n){return()=>n.scrollStrategies.reposition()}},vW=P0({passive:!0});let CC=(()=>{class n{get _deprecatedMatMenuTriggerFor(){return this.menu}set _deprecatedMatMenuTriggerFor(t){this.menu=t}get menu(){return this._menu}set menu(t){t!==this._menu&&(this._menu=t,this._menuCloseSubscription.unsubscribe(),t&&(this._menuCloseSubscription=t.close.subscribe(i=>{this._destroyMenu(i),("click"===i||"tab"===i)&&this._parentMaterialMenu&&this._parentMaterialMenu.closed.emit(i)})),this._menuItemInstance?._setTriggersSubmenu(this.triggersSubmenu()))}constructor(t,i,r,s,o,l,d,h,f){this._overlay=t,this._element=i,this._viewContainerRef=r,this._menuItemInstance=l,this._dir=d,this._focusMonitor=h,this._ngZone=f,this._overlayRef=null,this._menuOpen=!1,this._closingActionsSubscription=rt.EMPTY,this._hoverSubscription=rt.EMPTY,this._menuCloseSubscription=rt.EMPTY,this._changeDetectorRef=pi(Sc),this._handleTouchStart=A=>{M4(A)||(this._openedBy="touch")},this._openedBy=void 0,this.restoreFocus=!0,this.menuOpened=new Ls,this.onMenuOpen=this.menuOpened,this.menuClosed=new Ls,this.onMenuClose=this.menuClosed,this._scrollStrategy=s,this._parentMaterialMenu=o instanceof o1?o:void 0,i.nativeElement.addEventListener("touchstart",this._handleTouchStart,vW)}ngAfterContentInit(){this._handleHover()}ngOnDestroy(){this._overlayRef&&(this._overlayRef.dispose(),this._overlayRef=null),this._element.nativeElement.removeEventListener("touchstart",this._handleTouchStart,vW),this._menuCloseSubscription.unsubscribe(),this._closingActionsSubscription.unsubscribe(),this._hoverSubscription.unsubscribe()}get menuOpen(){return this._menuOpen}get dir(){return this._dir&&"rtl"===this._dir.value?"rtl":"ltr"}triggersSubmenu(){return!!(this._menuItemInstance&&this._parentMaterialMenu&&this.menu)}toggleMenu(){return this._menuOpen?this.closeMenu():this.openMenu()}openMenu(){const t=this.menu;if(this._menuOpen||!t)return;const i=this._createOverlay(t),r=i.getConfig(),s=r.positionStrategy;this._setPosition(t,s),r.hasBackdrop=null==t.hasBackdrop?!this.triggersSubmenu():t.hasBackdrop,i.attach(this._getPortal(t)),t.lazyContent&&t.lazyContent.attach(this.menuData),this._closingActionsSubscription=this._menuClosingActions().subscribe(()=>this.closeMenu()),this._initMenu(t),t instanceof o1&&(t._startAnimation(),t._directDescendantItems.changes.pipe(Ql(t.close)).subscribe(()=>{s.withLockedPosition(!1).reapplyLastPosition(),s.withLockedPosition(!0)}))}closeMenu(){this.menu?.close.emit()}focus(t,i){this._focusMonitor&&t?this._focusMonitor.focusVia(this._element,t,i):this._element.nativeElement.focus(i)}updatePosition(){this._overlayRef?.updatePosition()}_destroyMenu(t){if(!this._overlayRef||!this.menuOpen)return;const i=this.menu;this._closingActionsSubscription.unsubscribe(),this._overlayRef.detach(),this.restoreFocus&&("keydown"===t||!this._openedBy||!this.triggersSubmenu())&&this.focus(this._openedBy),this._openedBy=void 0,i instanceof o1?(i._resetAnimation(),i.lazyContent?i._animationDone.pipe(od(r=>"void"===r.toState),ad(1),Ql(i.lazyContent._attached)).subscribe({next:()=>i.lazyContent.detach(),complete:()=>this._setIsMenuOpen(!1)}):this._setIsMenuOpen(!1)):(this._setIsMenuOpen(!1),i?.lazyContent?.detach())}_initMenu(t){t.parentMenu=this.triggersSubmenu()?this._parentMaterialMenu:void 0,t.direction=this.dir,this._setMenuElevation(t),t.focusFirstItem(this._openedBy||"program"),this._setIsMenuOpen(!0)}_setMenuElevation(t){if(t.setElevation){let i=0,r=t.parentMenu;for(;r;)i++,r=r.parentMenu;t.setElevation(i)}}_setIsMenuOpen(t){t!==this._menuOpen&&(this._menuOpen=t,this._menuOpen?this.menuOpened.emit():this.menuClosed.emit(),this.triggersSubmenu()&&this._menuItemInstance._setHighlighted(t),this._changeDetectorRef.markForCheck())}_createOverlay(t){if(!this._overlayRef){const i=this._getOverlayConfig(t);this._subscribeToPositions(t,i.positionStrategy),this._overlayRef=this._overlay.create(i),this._overlayRef.keydownEvents().subscribe()}return this._overlayRef}_getOverlayConfig(t){return new BO({positionStrategy:this._overlay.position().flexibleConnectedTo(this._element).withLockedPosition().withGrowAfterOpen().withTransformOriginOn(".mat-menu-panel, .mat-mdc-menu-panel"),backdropClass:t.backdropClass||"cdk-overlay-transparent-backdrop",panelClass:t.overlayPanelClass,scrollStrategy:this._scrollStrategy(),direction:this._dir})}_subscribeToPositions(t,i){t.setPositionClasses&&i.positionChanges.subscribe(r=>{const s="start"===r.connectionPair.overlayX?"after":"before",o="top"===r.connectionPair.overlayY?"below":"above";this._ngZone?this._ngZone.run(()=>t.setPositionClasses(s,o)):t.setPositionClasses(s,o)})}_setPosition(t,i){let[r,s]="before"===t.xPosition?["end","start"]:["start","end"],[o,l]="above"===t.yPosition?["bottom","top"]:["top","bottom"],[d,h]=[o,l],[f,A]=[r,s],S=0;if(this.triggersSubmenu()){if(A=r="before"===t.xPosition?"start":"end",s=f="end"===r?"start":"end",this._parentMaterialMenu){if(null==this._parentInnerPadding){const R=this._parentMaterialMenu.items.first;this._parentInnerPadding=R?R._getHostElement().offsetTop:0}S="bottom"===o?this._parentInnerPadding:-this._parentInnerPadding}}else t.overlapTrigger||(d="top"===o?"bottom":"top",h="top"===l?"bottom":"top");i.withPositions([{originX:r,originY:d,overlayX:f,overlayY:o,offsetY:S},{originX:s,originY:d,overlayX:A,overlayY:o,offsetY:S},{originX:r,originY:h,overlayX:f,overlayY:l,offsetY:-S},{originX:s,originY:h,overlayX:A,overlayY:l,offsetY:-S}])}_menuClosingActions(){const t=this._overlayRef.backdropClick(),i=this._overlayRef.detachments();return gm(t,this._parentMaterialMenu?this._parentMaterialMenu.closed:po(),this._parentMaterialMenu?this._parentMaterialMenu._hovered().pipe(od(o=>o!==this._menuItemInstance),od(()=>this._menuOpen)):po(),i)}_handleMousedown(t){C4(t)||(this._openedBy=0===t.button?"mouse":void 0,this.triggersSubmenu()&&t.preventDefault())}_handleKeydown(t){const i=t.keyCode;(13===i||32===i)&&(this._openedBy="keyboard"),this.triggersSubmenu()&&(39===i&&"ltr"===this.dir||37===i&&"rtl"===this.dir)&&(this._openedBy="keyboard",this.openMenu())}_handleClick(t){this.triggersSubmenu()?(t.stopPropagation(),this.openMenu()):this.toggleMenu()}_handleHover(){!this.triggersSubmenu()||!this._parentMaterialMenu||(this._hoverSubscription=this._parentMaterialMenu._hovered().pipe(od(t=>t===this._menuItemInstance&&!t.disabled),WQ(0,xO)).subscribe(()=>{this._openedBy="mouse",this.menu instanceof o1&&this.menu._isAnimating?this.menu._animationDone.pipe(ad(1),WQ(0,xO),Ql(this._parentMaterialMenu._hovered())).subscribe(()=>this.openMenu()):this.openMenu()}))}_getPortal(t){return(!this._portal||this._portal.templateRef!==t.templateRef)&&(this._portal=new PE(t.templateRef,this._viewContainerRef)),this._portal}static#e=this.\u0275fac=function(i){return new(i||n)(Lt(fh),Lt(oo),Lt(fs),Lt(yW),Lt(PO,8),Lt(s1,10),Lt(_m,8),Lt(e1),Lt(io))};static#t=this.\u0275dir=Ft({type:n,selectors:[["","mat-menu-trigger-for",""],["","matMenuTriggerFor",""]],hostAttrs:[1,"mat-mdc-menu-trigger"],hostVars:3,hostBindings:function(i,r){1&i&&Ai("click",function(o){return r._handleClick(o)})("mousedown",function(o){return r._handleMousedown(o)})("keydown",function(o){return r._handleKeydown(o)}),2&i&&sl("aria-haspopup",r.menu?"menu":null)("aria-expanded",r.menuOpen)("aria-controls",r.menuOpen?r.menu.panelId:null)},inputs:{_deprecatedMatMenuTriggerFor:[mi.None,"mat-menu-trigger-for","_deprecatedMatMenuTriggerFor"],menu:[mi.None,"matMenuTriggerFor","menu"],menuData:[mi.None,"matMenuTriggerData","menuData"],restoreFocus:[mi.None,"matMenuTriggerRestoreFocus","restoreFocus"]},outputs:{menuOpened:"menuOpened",onMenuOpen:"onMenuOpen",menuClosed:"menuClosed",onMenuClose:"onMenuClose"},exportAs:["matMenuTrigger"],standalone:!0})}return n})(),h1e=(()=>{class n{static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275mod=vo({type:n});static#n=this.\u0275inj=ra({providers:[d1e],imports:[uS,P4,Qd,NE,LE,Qd]})}return n})();const u1e=["tooltip"],xW=new Bi("mat-tooltip-scroll-strategy",{providedIn:"root",factory:()=>{const n=pi(fh);return()=>n.scrollStrategies.reposition({scrollThrottle:20})}}),p1e={provide:xW,deps:[fh],useFactory:function f1e(n){return()=>n.scrollStrategies.reposition({scrollThrottle:20})}},A1e=new Bi("mat-tooltip-default-options",{providedIn:"root",factory:function m1e(){return{showDelay:0,hideDelay:0,touchendHideDelay:1500}}}),wW="tooltip-panel",CW=P0({passive:!0});let a1=(()=>{class n{get position(){return this._position}set position(t){t!==this._position&&(this._position=t,this._overlayRef&&(this._updatePosition(this._overlayRef),this._tooltipInstance?.show(0),this._overlayRef.updatePosition()))}get positionAtOrigin(){return this._positionAtOrigin}set positionAtOrigin(t){this._positionAtOrigin=EQ(t),this._detach(),this._overlayRef=null}get disabled(){return this._disabled}set disabled(t){this._disabled=EQ(t),this._disabled?this.hide(0):this._setupPointerEnterEventsIfNeeded()}get showDelay(){return this._showDelay}set showDelay(t){this._showDelay=hx(t)}get hideDelay(){return this._hideDelay}set hideDelay(t){this._hideDelay=hx(t),this._tooltipInstance&&(this._tooltipInstance._mouseLeaveHideDelay=this._hideDelay)}get message(){return this._message}set message(t){this._ariaDescriber.removeDescription(this._elementRef.nativeElement,this._message,"tooltip"),this._message=null!=t?String(t).trim():"",!this._message&&this._isTooltipVisible()?this.hide(0):(this._setupPointerEnterEventsIfNeeded(),this._updateTooltipMessage(),this._ngZone.runOutsideAngular(()=>{Promise.resolve().then(()=>{this._ariaDescriber.describe(this._elementRef.nativeElement,this.message,"tooltip")})}))}get tooltipClass(){return this._tooltipClass}set tooltipClass(t){this._tooltipClass=t,this._tooltipInstance&&this._setTooltipClass(this._tooltipClass)}constructor(t,i,r,s,o,l,d,h,f,A,S,R){this._overlay=t,this._elementRef=i,this._scrollDispatcher=r,this._viewContainerRef=s,this._ngZone=o,this._platform=l,this._ariaDescriber=d,this._focusMonitor=h,this._dir=A,this._defaultOptions=S,this._position="below",this._positionAtOrigin=!1,this._disabled=!1,this._viewInitialized=!1,this._pointerExitEventsInitialized=!1,this._tooltipComponent=b1e,this._viewportMargin=8,this._cssClassPrefix="mat-mdc",this.touchGestures="auto",this._message="",this._passiveListeners=[],this._destroyed=new un,this._scrollStrategy=f,this._document=R,S&&(this._showDelay=S.showDelay,this._hideDelay=S.hideDelay,S.position&&(this.position=S.position),S.positionAtOrigin&&(this.positionAtOrigin=S.positionAtOrigin),S.touchGestures&&(this.touchGestures=S.touchGestures)),A.change.pipe(Ql(this._destroyed)).subscribe(()=>{this._overlayRef&&this._updatePosition(this._overlayRef)}),this._viewportMargin=8}ngAfterViewInit(){this._viewInitialized=!0,this._setupPointerEnterEventsIfNeeded(),this._focusMonitor.monitor(this._elementRef).pipe(Ql(this._destroyed)).subscribe(t=>{t?"keyboard"===t&&this._ngZone.run(()=>this.show()):this._ngZone.run(()=>this.hide(0))})}ngOnDestroy(){const t=this._elementRef.nativeElement;clearTimeout(this._touchstartTimeout),this._overlayRef&&(this._overlayRef.dispose(),this._tooltipInstance=null),this._passiveListeners.forEach(([i,r])=>{t.removeEventListener(i,r,CW)}),this._passiveListeners.length=0,this._destroyed.next(),this._destroyed.complete(),this._ariaDescriber.removeDescription(t,this.message,"tooltip"),this._focusMonitor.stopMonitoring(t)}show(t=this.showDelay,i){if(this.disabled||!this.message||this._isTooltipVisible())return void this._tooltipInstance?._cancelPendingAnimations();const r=this._createOverlay(i);this._detach(),this._portal=this._portal||new t1(this._tooltipComponent,this._viewContainerRef);const s=this._tooltipInstance=r.attach(this._portal).instance;s._triggerElement=this._elementRef.nativeElement,s._mouseLeaveHideDelay=this._hideDelay,s.afterHidden().pipe(Ql(this._destroyed)).subscribe(()=>this._detach()),this._setTooltipClass(this._tooltipClass),this._updateTooltipMessage(),s.show(t)}hide(t=this.hideDelay){const i=this._tooltipInstance;i&&(i.isVisible()?i.hide(t):(i._cancelPendingAnimations(),this._detach()))}toggle(t){this._isTooltipVisible()?this.hide():this.show(void 0,t)}_isTooltipVisible(){return!!this._tooltipInstance&&this._tooltipInstance.isVisible()}_createOverlay(t){if(this._overlayRef){const s=this._overlayRef.getConfig().positionStrategy;if((!this.positionAtOrigin||!t)&&s._origin instanceof oo)return this._overlayRef;this._detach()}const i=this._scrollDispatcher.getAncestorScrollContainers(this._elementRef),r=this._overlay.position().flexibleConnectedTo(this.positionAtOrigin&&t||this._elementRef).withTransformOriginOn(`.${this._cssClassPrefix}-tooltip`).withFlexibleDimensions(!1).withViewportMargin(this._viewportMargin).withScrollableContainers(i);return r.positionChanges.pipe(Ql(this._destroyed)).subscribe(s=>{this._updateCurrentPositionClass(s.connectionPair),this._tooltipInstance&&s.scrollableViewProperties.isOverlayClipped&&this._tooltipInstance.isVisible()&&this._ngZone.run(()=>this.hide(0))}),this._overlayRef=this._overlay.create({direction:this._dir,positionStrategy:r,panelClass:`${this._cssClassPrefix}-${wW}`,scrollStrategy:this._scrollStrategy()}),this._updatePosition(this._overlayRef),this._overlayRef.detachments().pipe(Ql(this._destroyed)).subscribe(()=>this._detach()),this._overlayRef.outsidePointerEvents().pipe(Ql(this._destroyed)).subscribe(()=>this._tooltipInstance?._handleBodyInteraction()),this._overlayRef.keydownEvents().pipe(Ql(this._destroyed)).subscribe(s=>{this._isTooltipVisible()&&27===s.keyCode&&!bC(s)&&(s.preventDefault(),s.stopPropagation(),this._ngZone.run(()=>this.hide(0)))}),this._defaultOptions?.disableTooltipInteractivity&&this._overlayRef.addPanelClass(`${this._cssClassPrefix}-tooltip-panel-non-interactive`),this._overlayRef}_detach(){this._overlayRef&&this._overlayRef.hasAttached()&&this._overlayRef.detach(),this._tooltipInstance=null}_updatePosition(t){const i=t.getConfig().positionStrategy,r=this._getOrigin(),s=this._getOverlayPosition();i.withPositions([this._addOffset({...r.main,...s.main}),this._addOffset({...r.fallback,...s.fallback})])}_addOffset(t){const r=!this._dir||"ltr"==this._dir.value;return"top"===t.originY?t.offsetY=-8:"bottom"===t.originY?t.offsetY=8:"start"===t.originX?t.offsetX=r?-8:8:"end"===t.originX&&(t.offsetX=r?8:-8),t}_getOrigin(){const t=!this._dir||"ltr"==this._dir.value,i=this.position;let r;"above"==i||"below"==i?r={originX:"center",originY:"above"==i?"top":"bottom"}:"before"==i||"left"==i&&t||"right"==i&&!t?r={originX:"start",originY:"center"}:("after"==i||"right"==i&&t||"left"==i&&!t)&&(r={originX:"end",originY:"center"});const{x:s,y:o}=this._invertPosition(r.originX,r.originY);return{main:r,fallback:{originX:s,originY:o}}}_getOverlayPosition(){const t=!this._dir||"ltr"==this._dir.value,i=this.position;let r;"above"==i?r={overlayX:"center",overlayY:"bottom"}:"below"==i?r={overlayX:"center",overlayY:"top"}:"before"==i||"left"==i&&t||"right"==i&&!t?r={overlayX:"end",overlayY:"center"}:("after"==i||"right"==i&&t||"left"==i&&!t)&&(r={overlayX:"start",overlayY:"center"});const{x:s,y:o}=this._invertPosition(r.overlayX,r.overlayY);return{main:r,fallback:{overlayX:s,overlayY:o}}}_updateTooltipMessage(){this._tooltipInstance&&(this._tooltipInstance.message=this.message,this._tooltipInstance._markForCheck(),this._ngZone.onMicrotaskEmpty.pipe(ad(1),Ql(this._destroyed)).subscribe(()=>{this._tooltipInstance&&this._overlayRef.updatePosition()}))}_setTooltipClass(t){this._tooltipInstance&&(this._tooltipInstance.tooltipClass=t,this._tooltipInstance._markForCheck())}_invertPosition(t,i){return"above"===this.position||"below"===this.position?"top"===i?i="bottom":"bottom"===i&&(i="top"):"end"===t?t="start":"start"===t&&(t="end"),{x:t,y:i}}_updateCurrentPositionClass(t){const{overlayY:i,originX:r,originY:s}=t;let o;if(o="center"===i?this._dir&&"rtl"===this._dir.value?"end"===r?"left":"right":"start"===r?"left":"right":"bottom"===i&&"top"===s?"above":"below",o!==this._currentPosition){const l=this._overlayRef;if(l){const d=`${this._cssClassPrefix}-${wW}-`;l.removePanelClass(d+this._currentPosition),l.addPanelClass(d+o)}this._currentPosition=o}}_setupPointerEnterEventsIfNeeded(){this._disabled||!this.message||!this._viewInitialized||this._passiveListeners.length||(this._platformSupportsMouseEvents()?this._passiveListeners.push(["mouseenter",t=>{let i;this._setupPointerExitEventsIfNeeded(),void 0!==t.x&&void 0!==t.y&&(i=t),this.show(void 0,i)}]):"off"!==this.touchGestures&&(this._disableNativeGesturesIfNecessary(),this._passiveListeners.push(["touchstart",t=>{const i=t.targetTouches?.[0],r=i?{x:i.clientX,y:i.clientY}:void 0;this._setupPointerExitEventsIfNeeded(),clearTimeout(this._touchstartTimeout),this._touchstartTimeout=setTimeout(()=>this.show(void 0,r),this._defaultOptions.touchLongPressShowDelay??500)}])),this._addListeners(this._passiveListeners))}_setupPointerExitEventsIfNeeded(){if(this._pointerExitEventsInitialized)return;this._pointerExitEventsInitialized=!0;const t=[];if(this._platformSupportsMouseEvents())t.push(["mouseleave",i=>{const r=i.relatedTarget;(!r||!this._overlayRef?.overlayElement.contains(r))&&this.hide()}],["wheel",i=>this._wheelListener(i)]);else if("off"!==this.touchGestures){this._disableNativeGesturesIfNecessary();const i=()=>{clearTimeout(this._touchstartTimeout),this.hide(this._defaultOptions.touchendHideDelay)};t.push(["touchend",i],["touchcancel",i])}this._addListeners(t),this._passiveListeners.push(...t)}_addListeners(t){t.forEach(([i,r])=>{this._elementRef.nativeElement.addEventListener(i,r,CW)})}_platformSupportsMouseEvents(){return!this._platform.IOS&&!this._platform.ANDROID}_wheelListener(t){if(this._isTooltipVisible()){const i=this._document.elementFromPoint(t.clientX,t.clientY),r=this._elementRef.nativeElement;i!==r&&!r.contains(i)&&this.hide()}}_disableNativeGesturesIfNecessary(){const t=this.touchGestures;if("off"!==t){const i=this._elementRef.nativeElement,r=i.style;("on"===t||"INPUT"!==i.nodeName&&"TEXTAREA"!==i.nodeName)&&(r.userSelect=r.msUserSelect=r.webkitUserSelect=r.MozUserSelect="none"),("on"===t||!i.draggable)&&(r.webkitUserDrag="none"),r.touchAction="none",r.webkitTapHighlightColor="transparent"}}static#e=this.\u0275fac=function(i){return new(i||n)(Lt(fh),Lt(oo),Lt(F4),Lt(fs),Lt(io),Lt(dd),Lt(S0e),Lt(e1),Lt(xW),Lt(_m),Lt(A1e,8),Lt(ba))};static#t=this.\u0275dir=Ft({type:n,selectors:[["","matTooltip",""]],hostAttrs:[1,"mat-mdc-tooltip-trigger"],hostVars:2,hostBindings:function(i,r){2&i&&Ja("mat-mdc-tooltip-disabled",r.disabled)},inputs:{position:[mi.None,"matTooltipPosition","position"],positionAtOrigin:[mi.None,"matTooltipPositionAtOrigin","positionAtOrigin"],disabled:[mi.None,"matTooltipDisabled","disabled"],showDelay:[mi.None,"matTooltipShowDelay","showDelay"],hideDelay:[mi.None,"matTooltipHideDelay","hideDelay"],touchGestures:[mi.None,"matTooltipTouchGestures","touchGestures"],message:[mi.None,"matTooltip","message"],tooltipClass:[mi.None,"matTooltipClass","tooltipClass"]},exportAs:["matTooltip"],standalone:!0})}return n})(),b1e=(()=>{class n{constructor(t,i,r){this._changeDetectorRef=t,this._elementRef=i,this._isMultiline=!1,this._closeOnInteraction=!1,this._isVisible=!1,this._onHide=new un,this._showAnimation="mat-mdc-tooltip-show",this._hideAnimation="mat-mdc-tooltip-hide",this._animationsDisabled="NoopAnimations"===r}show(t){null!=this._hideTimeoutId&&clearTimeout(this._hideTimeoutId),this._showTimeoutId=setTimeout(()=>{this._toggleVisibility(!0),this._showTimeoutId=void 0},t)}hide(t){null!=this._showTimeoutId&&clearTimeout(this._showTimeoutId),this._hideTimeoutId=setTimeout(()=>{this._toggleVisibility(!1),this._hideTimeoutId=void 0},t)}afterHidden(){return this._onHide}isVisible(){return this._isVisible}ngOnDestroy(){this._cancelPendingAnimations(),this._onHide.complete(),this._triggerElement=null}_handleBodyInteraction(){this._closeOnInteraction&&this.hide(0)}_markForCheck(){this._changeDetectorRef.markForCheck()}_handleMouseLeave({relatedTarget:t}){(!t||!this._triggerElement.contains(t))&&(this.isVisible()?this.hide(this._mouseLeaveHideDelay):this._finalizeAnimation(!1))}_onShow(){this._isMultiline=this._isTooltipMultiline(),this._markForCheck()}_isTooltipMultiline(){const t=this._elementRef.nativeElement.getBoundingClientRect();return t.height>24&&t.width>=200}_handleAnimationEnd({animationName:t}){(t===this._showAnimation||t===this._hideAnimation)&&this._finalizeAnimation(t===this._showAnimation)}_cancelPendingAnimations(){null!=this._showTimeoutId&&clearTimeout(this._showTimeoutId),null!=this._hideTimeoutId&&clearTimeout(this._hideTimeoutId),this._showTimeoutId=this._hideTimeoutId=void 0}_finalizeAnimation(t){t?this._closeOnInteraction=!0:this.isVisible()||this._onHide.next()}_toggleVisibility(t){const i=this._tooltip.nativeElement,r=this._showAnimation,s=this._hideAnimation;if(i.classList.remove(t?s:r),i.classList.add(t?r:s),this._isVisible=t,t&&!this._animationsDisabled&&"function"==typeof getComputedStyle){const o=getComputedStyle(i);("0s"===o.getPropertyValue("animation-duration")||"none"===o.getPropertyValue("animation-name"))&&(this._animationsDisabled=!0)}t&&this._onShow(),this._animationsDisabled&&(i.classList.add("_mat-animation-noopable"),this._finalizeAnimation(t))}static#e=this.\u0275fac=function(i){return new(i||n)(Lt(Sc),Lt(oo),Lt(Od,8))};static#t=this.\u0275cmp=rs({type:n,selectors:[["mat-tooltip-component"]],viewQuery:function(i,r){if(1&i&&_l(u1e,7),2&i){let s;pa(s=ma())&&(r._tooltip=s.first)}},hostAttrs:["aria-hidden","true"],hostVars:2,hostBindings:function(i,r){1&i&&Ai("mouseleave",function(o){return r._handleMouseLeave(o)}),2&i&&$M("zoom",r.isVisible()?1:null)},standalone:!0,features:[yd],decls:4,vars:4,consts:[["tooltip",""],[1,"mdc-tooltip","mdc-tooltip--shown","mat-mdc-tooltip",3,"animationend","ngClass"],[1,"mdc-tooltip__surface","mdc-tooltip__surface-animation"]],template:function(i,r){if(1&i){const s=ta();Gt(0,"div",1,0),Ai("animationend",function(l){return Ci(s),Mi(r._handleAnimationEnd(l))}),Gt(2,"div",2),qi(3),dn()()}2&i&&(Ja("mdc-tooltip--multiline",r._isMultiline),Qn("ngClass",r.tooltipClass),jn(3),tA(r.message))},dependencies:[om],styles:['.mdc-tooltip__surface{word-break:break-all;word-break:var(--mdc-tooltip-word-break, normal);overflow-wrap:anywhere}.mdc-tooltip--showing-transition .mdc-tooltip__surface-animation{transition:opacity 150ms 0ms cubic-bezier(0, 0, 0.2, 1),transform 150ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-tooltip--hide-transition .mdc-tooltip__surface-animation{transition:opacity 75ms 0ms cubic-bezier(0.4, 0, 1, 1)}.mdc-tooltip{position:fixed;display:none;z-index:9}.mdc-tooltip-wrapper--rich{position:relative}.mdc-tooltip--shown,.mdc-tooltip--showing,.mdc-tooltip--hide{display:inline-flex}.mdc-tooltip--shown.mdc-tooltip--rich,.mdc-tooltip--showing.mdc-tooltip--rich,.mdc-tooltip--hide.mdc-tooltip--rich{display:inline-block;left:-320px;position:absolute}.mdc-tooltip__surface{line-height:16px;padding:4px 8px;min-width:40px;max-width:200px;min-height:24px;max-height:40vh;box-sizing:border-box;overflow:hidden;text-align:center}.mdc-tooltip__surface::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none}@media screen and (forced-colors: active){.mdc-tooltip__surface::before{border-color:CanvasText}}.mdc-tooltip--rich .mdc-tooltip__surface{align-items:flex-start;display:flex;flex-direction:column;min-height:24px;min-width:40px;max-width:320px;position:relative}.mdc-tooltip--multiline .mdc-tooltip__surface{text-align:left}[dir=rtl] .mdc-tooltip--multiline .mdc-tooltip__surface,.mdc-tooltip--multiline .mdc-tooltip__surface[dir=rtl]{text-align:right}.mdc-tooltip__surface .mdc-tooltip__title{margin:0 8px}.mdc-tooltip__surface .mdc-tooltip__content{max-width:calc(200px - 2*8px);margin:8px;text-align:left}[dir=rtl] .mdc-tooltip__surface .mdc-tooltip__content,.mdc-tooltip__surface .mdc-tooltip__content[dir=rtl]{text-align:right}.mdc-tooltip--rich .mdc-tooltip__surface .mdc-tooltip__content{max-width:calc(320px - 2*8px);align-self:stretch}.mdc-tooltip__surface .mdc-tooltip__content-link{text-decoration:none}.mdc-tooltip--rich-actions,.mdc-tooltip__content,.mdc-tooltip__title{z-index:1}.mdc-tooltip__surface-animation{opacity:0;transform:scale(0.8);will-change:transform,opacity}.mdc-tooltip--shown .mdc-tooltip__surface-animation{transform:scale(1);opacity:1}.mdc-tooltip--hide .mdc-tooltip__surface-animation{transform:scale(1)}.mdc-tooltip__caret-surface-top,.mdc-tooltip__caret-surface-bottom{position:absolute;height:24px;width:24px;transform:rotate(35deg) skewY(20deg) scaleX(0.9396926208)}.mdc-tooltip__caret-surface-top .mdc-elevation-overlay,.mdc-tooltip__caret-surface-bottom .mdc-elevation-overlay{width:100%;height:100%;top:0;left:0}.mdc-tooltip__caret-surface-bottom{box-shadow:0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);outline:1px solid rgba(0,0,0,0);z-index:-1}@media screen and (forced-colors: active){.mdc-tooltip__caret-surface-bottom{outline-color:CanvasText}}.mat-mdc-tooltip .mdc-tooltip__surface{background-color:var(--mdc-plain-tooltip-container-color)}.mat-mdc-tooltip .mdc-tooltip__surface{border-radius:var(--mdc-plain-tooltip-container-shape)}.mat-mdc-tooltip .mdc-tooltip__caret-surface-top,.mat-mdc-tooltip .mdc-tooltip__caret-surface-bottom{border-radius:var(--mdc-plain-tooltip-container-shape)}.mat-mdc-tooltip .mdc-tooltip__surface{color:var(--mdc-plain-tooltip-supporting-text-color)}.mat-mdc-tooltip .mdc-tooltip__surface{font-family:var(--mdc-plain-tooltip-supporting-text-font);line-height:var(--mdc-plain-tooltip-supporting-text-line-height);font-size:var(--mdc-plain-tooltip-supporting-text-size);font-weight:var(--mdc-plain-tooltip-supporting-text-weight);letter-spacing:var(--mdc-plain-tooltip-supporting-text-tracking)}.mat-mdc-tooltip{position:relative;transform:scale(0)}.mat-mdc-tooltip::before{content:"";top:0;right:0;bottom:0;left:0;z-index:-1;position:absolute}.mat-mdc-tooltip-panel-below .mat-mdc-tooltip::before{top:-8px}.mat-mdc-tooltip-panel-above .mat-mdc-tooltip::before{bottom:-8px}.mat-mdc-tooltip-panel-right .mat-mdc-tooltip::before{left:-8px}.mat-mdc-tooltip-panel-left .mat-mdc-tooltip::before{right:-8px}.mat-mdc-tooltip._mat-animation-noopable{animation:none;transform:scale(1)}.mat-mdc-tooltip-panel.mat-mdc-tooltip-panel-non-interactive{pointer-events:none}@keyframes mat-mdc-tooltip-show{0%{opacity:0;transform:scale(0.8)}100%{opacity:1;transform:scale(1)}}@keyframes mat-mdc-tooltip-hide{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(0.8)}}.mat-mdc-tooltip-show{animation:mat-mdc-tooltip-show 150ms cubic-bezier(0, 0, 0.2, 1) forwards}.mat-mdc-tooltip-hide{animation:mat-mdc-tooltip-hide 75ms cubic-bezier(0.4, 0, 1, 1) forwards}'],encapsulation:2,changeDetection:0})}return n})(),x1e=(()=>{class n{static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275mod=vo({type:n});static#n=this.\u0275inj=ra({providers:[p1e],imports:[GQ,uS,NE,Qd,Qd,LE]})}return n})();const w1e=n=>({disabled:n}),C1e=n=>({"active-icon":n});let qc=(()=>{class n{icon;active;tooltip;disabled=!1;static \u0275fac=function(i){return new(i||n)};static \u0275cmp=rs({type:n,selectors:[["app-menu-toggle"]],inputs:{icon:"icon",active:"active",tooltip:"tooltip",disabled:"disabled"},decls:3,vars:10,consts:[["matTooltipPosition","above","matTooltipTouchGestures","off",1,"menu-toggle",3,"ngClass","matTooltip"],[1,"menu-toggle-icon",3,"ngClass"]],template:function(i,r){1&i&&(Gt(0,"button",0),Fl(),Gt(1,"svg",1),Vr(2,"use"),dn()()),2&i&&(Qn("ngClass",Ou(6,w1e,r.disabled))("matTooltip",r.tooltip),jn(),Qn("ngClass",Ou(8,C1e,r.active)),jn(),Lw("href","assets/icons/",r.icon,".svg#",r.icon,""))},dependencies:[om,a1],styles:["[_nghost-%COMP%]{display:flex;margin:0 .6rem}[_nghost-%COMP%] .menu-toggle[_ngcontent-%COMP%]{display:flex;background:unset;border:none;height:2.5rem;width:2.5rem;min-height:2.5rem;min-width:2.5rem;padding:.65rem;cursor:pointer;align-self:center;transition:all .4s}[_nghost-%COMP%] .menu-toggle-icon[_ngcontent-%COMP%]{width:100%;height:100%}[_nghost-%COMP%] .menu-toggle-icon.active-icon[_ngcontent-%COMP%]{--phoenix-options-icon-path: #00bcd4}[_nghost-%COMP%] .menu-toggle[_ngcontent-%COMP%]:hover{background-color:var(--phoenix-options-icon-bg);border-radius:40%;transition:all .4s}[_nghost-%COMP%] .menu-toggle.disabled[_ngcontent-%COMP%]{cursor:not-allowed;opacity:.4}"]})}return n})();function M1e(n,e){if(1&n){const t=ta();Gt(0,"button",2),Ai("click",function(){const r=Ci(t).$implicit;return Mi(Pr().animatePreset(r))}),qi(1),dn()}if(2&n){const t=e.$implicit;jn(),yl(" ",t," ")}}const MW={"Cavern to ID":{name:"Cavern to ID",positions:[{position:[66388.95051168812,5264.228603228927,-46910.7848593543],duration:1e3},{position:[12834.18729094943,677.7571205763458,135.68755273443463],duration:2e3},{position:[312.02688693297375,25.884223757326,270.10019006776236],duration:3500},{position:[263.3640855132258,19.874838262525053,-318.16541790248885],duration:3e3},{position:[5534.140362338047,234.03507981484574,-2933.619479808285],duration:2e3},{position:[2681.277288705242,646.5795158318147,5628.5248735111745],duration:1e3},{position:[-6062.586283740076,790.5876682946184,1381.1675900848818],duration:1e3},{position:[-1766.7693725879053,1007.1048030984678,-5928.901341784575],duration:1e3},{position:[12814.982506255355,2516.987185037266,-22891.902734328327],duration:1e3}],animateEventAfterInterval:5e3,collisionDuration:6e3}};let RO=(()=>{class n{eventDisplay;animationPresets=MW;animationPresetsKeys=Object.keys(this.animationPresets);isAnimating=!1;constructor(t){this.eventDisplay=t}animatePreset(t){this.setDetectorOpacity(.2),this.eventDisplay.animatePreset(this.animationPresets[t],()=>{this.setDetectorOpacity(1)})}animateCamera(){this.isAnimating||(this.isAnimating=!0,this.eventDisplay.animateThroughEvent([11976,7262,11927],3e3,()=>{this.isAnimating=!1}))}setDetectorOpacity(t){const i=this.eventDisplay.getThreeManager().getSceneManager(),r=i.getObjectByName(el.GEOMETRIES_ID);i.setGeometryOpacity(r,t)}static \u0275fac=function(i){return new(i||n)(Lt(Al))};static \u0275cmp=rs({type:n,selectors:[["app-animate-camera"]],inputs:{animationPresets:"animationPresets"},decls:6,vars:2,consts:[["animationPresets",""],["mat-menu-item","",3,"click",4,"ngFor","ngForOf"],["mat-menu-item","",3,"click"],["tooltip","Preset animations","icon","animate-camera",3,"matMenuTriggerFor"]],template:function(i,r){if(1&i){const s=ta();Gt(0,"mat-menu",null,0),zs(2,M1e,2,1,"button",1),Gt(3,"button",2),Ai("click",function(){return Ci(s),Mi(r.animateCamera())}),qi(4,"Animate camera"),dn()(),Vr(5,"app-menu-toggle",3)}if(2&i){const s=Ga(1);jn(2),Qn("ngForOf",r.animationPresetsKeys),jn(3),Qn("matMenuTriggerFor",s)}},dependencies:[am,o1,s1,CC,qc]})}return n})();const S1e=["*"],E1e=n=>({"ui-menu-hidden":n});let kO=(()=>{class n{hideUIMenu=!1;static \u0275fac=function(i){return new(i||n)};static \u0275cmp=rs({type:n,selectors:[["app-ui-menu-wrapper"]],ngContentSelectors:S1e,decls:6,vars:5,consts:[["id","uiMenu"],["id","hideUIMenu","matTooltipPosition","above",3,"click","matTooltip","ngClass"],["href","assets/icons/expand.svg#expand"],["id","optionsPanel",3,"hidden"]],template:function(i,r){1&i&&(yu(),Gt(0,"div",0)(1,"button",1),Ai("click",function(){return r.hideUIMenu=!r.hideUIMenu}),Fl(),Gt(2,"svg"),Vr(3,"use",2),dn()(),Du(),Gt(4,"div",3),ih(5),dn()()),2&i&&(jn(),Qn("matTooltip",r.hideUIMenu?"Show toolbar":"Hide toolbar")("ngClass",Ou(3,E1e,r.hideUIMenu)),jn(3),Qn("hidden",r.hideUIMenu))},dependencies:[om,a1],styles:["#uiMenu[_ngcontent-%COMP%]{position:absolute;bottom:1rem;width:100%;box-sizing:border-box;display:flex;flex-direction:column;align-items:center}#optionsPanel[_ngcontent-%COMP%]{display:flex;align-items:center;background:var(--phoenix-background-color-secondary);border:1px solid var(--phoenix-background-color-tertiary);box-shadow:var(--phoenix-box-shadow);border-radius:30px;max-width:95%;padding:.3rem 1rem;overflow-x:scroll;z-index:90}#hideUIMenu[_ngcontent-%COMP%]{background:var(--phoenix-background-color-secondary);height:1.2rem;width:3rem;border:1px solid var(--phoenix-border);border-bottom:none;box-shadow:var(--phoenix-box-shadow);border-top-left-radius:15px;border-top-right-radius:15px;padding:3px}#hideUIMenu[_ngcontent-%COMP%] svg[_ngcontent-%COMP%]{height:100%;width:100%;vertical-align:top;transition:all .3s}#hideUIMenu.ui-menu-hidden[_ngcontent-%COMP%] svg[_ngcontent-%COMP%]{transform:scaleY(-1);transition:all .3s}"]})}return n})();let EW=(()=>{class n{constructor(t,i){this._renderer=t,this._elementRef=i,this.onChange=r=>{},this.onTouched=()=>{}}setProperty(t,i){this._renderer.setProperty(this._elementRef.nativeElement,t,i)}registerOnTouched(t){this.onTouched=t}registerOnChange(t){this.onChange=t}setDisabledState(t){this.setProperty("disabled",t)}static#e=this.\u0275fac=function(i){return new(i||n)(Lt(ZA),Lt(oo))};static#t=this.\u0275dir=Ft({type:n})}return n})(),Ax=(()=>{class n extends EW{static#e=this.\u0275fac=(()=>{let t;return function(r){return(t||(t=Ca(n)))(r||n)}})();static#t=this.\u0275dir=Ft({type:n,features:[Lo]})}return n})();const Of=new Bi(""),D1e={provide:Of,useExisting:jt(()=>FO),multi:!0},B1e=new Bi("");let FO=(()=>{class n extends EW{constructor(t,i,r){super(t,i),this._compositionMode=r,this._composing=!1,null==this._compositionMode&&(this._compositionMode=!function I1e(){const n=My()?My().getUserAgent():"";return/android (\d+)/.test(n.toLowerCase())}())}writeValue(t){this.setProperty("value",t??"")}_handleInput(t){(!this._compositionMode||this._compositionMode&&!this._composing)&&this.onChange(t)}_compositionStart(){this._composing=!0}_compositionEnd(t){this._composing=!1,this._compositionMode&&this.onChange(t)}static#e=this.\u0275fac=function(i){return new(i||n)(Lt(ZA),Lt(oo),Lt(B1e,8))};static#t=this.\u0275dir=Ft({type:n,selectors:[["input","formControlName","",3,"type","checkbox"],["textarea","formControlName",""],["input","formControl","",3,"type","checkbox"],["textarea","formControl",""],["input","ngModel","",3,"type","checkbox"],["textarea","ngModel",""],["","ngDefaultControl",""]],hostBindings:function(i,r){1&i&&Ai("input",function(o){return r._handleInput(o.target.value)})("blur",function(){return r.onTouched()})("compositionstart",function(){return r._compositionStart()})("compositionend",function(o){return r._compositionEnd(o.target.value)})},features:[qo([D1e]),Lo]})}return n})();const ph=new Bi(""),nv=new Bi("");function NW(n){return null!=n}function UW(n){return lS(n)?ah(n):n}function zW(n){let e={};return n.forEach(t=>{e=null!=t?{...e,...t}:e}),0===Object.keys(e).length?null:e}function HW(n,e){return e.map(t=>t(n))}function VW(n){return n.map(e=>function R1e(n){return!n.validate}(e)?e:t=>e.validate(t))}function OO(n){return null!=n?function GW(n){if(!n)return null;const e=n.filter(NW);return 0==e.length?null:function(t){return zW(HW(t,e))}}(VW(n)):null}function qW(n){if(!n)return null;const e=n.filter(NW);return 0==e.length?null:function(t){return function SW(...n){const e=i9(n),{args:t,keys:i}=H9(n),r=new Pe(s=>{const{length:o}=t;if(!o)return void s.complete();const l=new Array(o);let d=o,h=o;for(let f=0;f{A||(A=!0,h--),l[f]=S},()=>d--,void 0,()=>{(!d||!A)&&(h||s.next(i?V9(i,l):l),s.complete())}))}});return e?r.pipe(sk(e)):r}(HW(t,e).map(UW)).pipe(bi(zW))}}function LO(n){return null!=n?qW(VW(n)):null}function QW(n,e){return null===n?[e]:Array.isArray(n)?[...n,e]:[n,e]}function NO(n){return n?Array.isArray(n)?n:[n]:[]}function z4(n,e){return Array.isArray(n)?n.includes(e):n===e}function $W(n,e){const t=NO(e);return NO(n).forEach(r=>{z4(t,r)||t.push(r)}),t}function XW(n,e){return NO(e).filter(t=>!z4(n,t))}class YW{constructor(){this._rawValidators=[],this._rawAsyncValidators=[],this._onDestroyCallbacks=[]}get value(){return this.control?this.control.value:null}get valid(){return this.control?this.control.valid:null}get invalid(){return this.control?this.control.invalid:null}get pending(){return this.control?this.control.pending:null}get disabled(){return this.control?this.control.disabled:null}get enabled(){return this.control?this.control.enabled:null}get errors(){return this.control?this.control.errors:null}get pristine(){return this.control?this.control.pristine:null}get dirty(){return this.control?this.control.dirty:null}get touched(){return this.control?this.control.touched:null}get status(){return this.control?this.control.status:null}get untouched(){return this.control?this.control.untouched:null}get statusChanges(){return this.control?this.control.statusChanges:null}get valueChanges(){return this.control?this.control.valueChanges:null}get path(){return null}_setValidators(e){this._rawValidators=e||[],this._composedValidatorFn=OO(this._rawValidators)}_setAsyncValidators(e){this._rawAsyncValidators=e||[],this._composedAsyncValidatorFn=LO(this._rawAsyncValidators)}get validator(){return this._composedValidatorFn||null}get asyncValidator(){return this._composedAsyncValidatorFn||null}_registerOnDestroy(e){this._onDestroyCallbacks.push(e)}_invokeOnDestroyCallbacks(){this._onDestroyCallbacks.forEach(e=>e()),this._onDestroyCallbacks=[]}reset(e=void 0){this.control&&this.control.reset(e)}hasError(e,t){return!!this.control&&this.control.hasError(e,t)}getError(e,t){return this.control?this.control.getError(e,t):null}}class Lf extends YW{get formDirective(){return null}get path(){return null}}class iv extends YW{constructor(){super(...arguments),this._parent=null,this.name=null,this.valueAccessor=null}}class KW{constructor(e){this._cd=e}get isTouched(){return!!this._cd?.control?.touched}get isUntouched(){return!!this._cd?.control?.untouched}get isPristine(){return!!this._cd?.control?.pristine}get isDirty(){return!!this._cd?.control?.dirty}get isValid(){return!!this._cd?.control?.valid}get isInvalid(){return!!this._cd?.control?.invalid}get isPending(){return!!this._cd?.control?.pending}get isSubmitted(){return!!this._cd?.submitted}}let UO=(()=>{class n extends KW{constructor(t){super(t)}static#e=this.\u0275fac=function(i){return new(i||n)(Lt(iv,2))};static#t=this.\u0275dir=Ft({type:n,selectors:[["","formControlName",""],["","ngModel",""],["","formControl",""]],hostVars:14,hostBindings:function(i,r){2&i&&Ja("ng-untouched",r.isUntouched)("ng-touched",r.isTouched)("ng-pristine",r.isPristine)("ng-dirty",r.isDirty)("ng-valid",r.isValid)("ng-invalid",r.isInvalid)("ng-pending",r.isPending)},features:[Lo]})}return n})();const UE="VALID",V4="INVALID",MC="PENDING",zE="DISABLED";function G4(n){return null!=n&&!Array.isArray(n)&&"object"==typeof n}class qO{constructor(e,t){this._pendingDirty=!1,this._hasOwnPendingAsyncValidator=!1,this._pendingTouched=!1,this._onCollectionChange=()=>{},this._parent=null,this.pristine=!0,this.touched=!1,this._onDisabledChange=[],this._assignValidators(e),this._assignAsyncValidators(t)}get validator(){return this._composedValidatorFn}set validator(e){this._rawValidators=this._composedValidatorFn=e}get asyncValidator(){return this._composedAsyncValidatorFn}set asyncValidator(e){this._rawAsyncValidators=this._composedAsyncValidatorFn=e}get parent(){return this._parent}get valid(){return this.status===UE}get invalid(){return this.status===V4}get pending(){return this.status==MC}get disabled(){return this.status===zE}get enabled(){return this.status!==zE}get dirty(){return!this.pristine}get untouched(){return!this.touched}get updateOn(){return this._updateOn?this._updateOn:this.parent?this.parent.updateOn:"change"}setValidators(e){this._assignValidators(e)}setAsyncValidators(e){this._assignAsyncValidators(e)}addValidators(e){this.setValidators($W(e,this._rawValidators))}addAsyncValidators(e){this.setAsyncValidators($W(e,this._rawAsyncValidators))}removeValidators(e){this.setValidators(XW(e,this._rawValidators))}removeAsyncValidators(e){this.setAsyncValidators(XW(e,this._rawAsyncValidators))}hasValidator(e){return z4(this._rawValidators,e)}hasAsyncValidator(e){return z4(this._rawAsyncValidators,e)}clearValidators(){this.validator=null}clearAsyncValidators(){this.asyncValidator=null}markAsTouched(e={}){this.touched=!0,this._parent&&!e.onlySelf&&this._parent.markAsTouched(e)}markAllAsTouched(){this.markAsTouched({onlySelf:!0}),this._forEachChild(e=>e.markAllAsTouched())}markAsUntouched(e={}){this.touched=!1,this._pendingTouched=!1,this._forEachChild(t=>{t.markAsUntouched({onlySelf:!0})}),this._parent&&!e.onlySelf&&this._parent._updateTouched(e)}markAsDirty(e={}){this.pristine=!1,this._parent&&!e.onlySelf&&this._parent.markAsDirty(e)}markAsPristine(e={}){this.pristine=!0,this._pendingDirty=!1,this._forEachChild(t=>{t.markAsPristine({onlySelf:!0})}),this._parent&&!e.onlySelf&&this._parent._updatePristine(e)}markAsPending(e={}){this.status=MC,!1!==e.emitEvent&&this.statusChanges.emit(this.status),this._parent&&!e.onlySelf&&this._parent.markAsPending(e)}disable(e={}){const t=this._parentMarkedDirty(e.onlySelf);this.status=zE,this.errors=null,this._forEachChild(i=>{i.disable({...e,onlySelf:!0})}),this._updateValue(),!1!==e.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors({...e,skipPristineCheck:t}),this._onDisabledChange.forEach(i=>i(!0))}enable(e={}){const t=this._parentMarkedDirty(e.onlySelf);this.status=UE,this._forEachChild(i=>{i.enable({...e,onlySelf:!0})}),this.updateValueAndValidity({onlySelf:!0,emitEvent:e.emitEvent}),this._updateAncestors({...e,skipPristineCheck:t}),this._onDisabledChange.forEach(i=>i(!1))}_updateAncestors(e){this._parent&&!e.onlySelf&&(this._parent.updateValueAndValidity(e),e.skipPristineCheck||this._parent._updatePristine(),this._parent._updateTouched())}setParent(e){this._parent=e}getRawValue(){return this.value}updateValueAndValidity(e={}){this._setInitialStatus(),this._updateValue(),this.enabled&&(this._cancelExistingSubscription(),this.errors=this._runValidator(),this.status=this._calculateStatus(),(this.status===UE||this.status===MC)&&this._runAsyncValidator(e.emitEvent)),!1!==e.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._parent&&!e.onlySelf&&this._parent.updateValueAndValidity(e)}_updateTreeValidity(e={emitEvent:!0}){this._forEachChild(t=>t._updateTreeValidity(e)),this.updateValueAndValidity({onlySelf:!0,emitEvent:e.emitEvent})}_setInitialStatus(){this.status=this._allControlsDisabled()?zE:UE}_runValidator(){return this.validator?this.validator(this):null}_runAsyncValidator(e){if(this.asyncValidator){this.status=MC,this._hasOwnPendingAsyncValidator=!0;const t=UW(this.asyncValidator(this));this._asyncValidationSubscription=t.subscribe(i=>{this._hasOwnPendingAsyncValidator=!1,this.setErrors(i,{emitEvent:e})})}}_cancelExistingSubscription(){this._asyncValidationSubscription&&(this._asyncValidationSubscription.unsubscribe(),this._hasOwnPendingAsyncValidator=!1)}setErrors(e,t={}){this.errors=e,this._updateControlsErrors(!1!==t.emitEvent)}get(e){let t=e;return null==t||(Array.isArray(t)||(t=t.split(".")),0===t.length)?null:t.reduce((i,r)=>i&&i._find(r),this)}getError(e,t){const i=t?this.get(t):this;return i&&i.errors?i.errors[e]:null}hasError(e,t){return!!this.getError(e,t)}get root(){let e=this;for(;e._parent;)e=e._parent;return e}_updateControlsErrors(e){this.status=this._calculateStatus(),e&&this.statusChanges.emit(this.status),this._parent&&this._parent._updateControlsErrors(e)}_initObservables(){this.valueChanges=new Ls,this.statusChanges=new Ls}_calculateStatus(){return this._allControlsDisabled()?zE:this.errors?V4:this._hasOwnPendingAsyncValidator||this._anyControlsHaveStatus(MC)?MC:this._anyControlsHaveStatus(V4)?V4:UE}_anyControlsHaveStatus(e){return this._anyControls(t=>t.status===e)}_anyControlsDirty(){return this._anyControls(e=>e.dirty)}_anyControlsTouched(){return this._anyControls(e=>e.touched)}_updatePristine(e={}){this.pristine=!this._anyControlsDirty(),this._parent&&!e.onlySelf&&this._parent._updatePristine(e)}_updateTouched(e={}){this.touched=this._anyControlsTouched(),this._parent&&!e.onlySelf&&this._parent._updateTouched(e)}_registerOnCollectionChange(e){this._onCollectionChange=e}_setUpdateStrategy(e){G4(e)&&null!=e.updateOn&&(this._updateOn=e.updateOn)}_parentMarkedDirty(e){return!e&&!(!this._parent||!this._parent.dirty)&&!this._parent._anyControlsDirty()}_find(e){return null}_assignValidators(e){this._rawValidators=Array.isArray(e)?e.slice():e,this._composedValidatorFn=function N1e(n){return Array.isArray(n)?OO(n):n||null}(this._rawValidators)}_assignAsyncValidators(e){this._rawAsyncValidators=Array.isArray(e)?e.slice():e,this._composedAsyncValidatorFn=function U1e(n){return Array.isArray(n)?LO(n):n||null}(this._rawAsyncValidators)}}const SC=new Bi("CallSetDisabledState",{providedIn:"root",factory:()=>q4}),q4="always";function HE(n,e,t=q4){(function WO(n,e){const t=function WW(n){return n._rawValidators}(n);null!==e.validator?n.setValidators(QW(t,e.validator)):"function"==typeof t&&n.setValidators([t]);const i=function jW(n){return n._rawAsyncValidators}(n);null!==e.asyncValidator?n.setAsyncValidators(QW(i,e.asyncValidator)):"function"==typeof i&&n.setAsyncValidators([i]);const r=()=>n.updateValueAndValidity();j4(e._rawValidators,r),j4(e._rawAsyncValidators,r)})(n,e),e.valueAccessor.writeValue(n.value),(n.disabled||"always"===t)&&e.valueAccessor.setDisabledState?.(n.disabled),function V1e(n,e){e.valueAccessor.registerOnChange(t=>{n._pendingValue=t,n._pendingChange=!0,n._pendingDirty=!0,"change"===n.updateOn&&tj(n,e)})}(n,e),function q1e(n,e){const t=(i,r)=>{e.valueAccessor.writeValue(i),r&&e.viewToModelUpdate(i)};n.registerOnChange(t),e._registerOnDestroy(()=>{n._unregisterOnChange(t)})}(n,e),function G1e(n,e){e.valueAccessor.registerOnTouched(()=>{n._pendingTouched=!0,"blur"===n.updateOn&&n._pendingChange&&tj(n,e),"submit"!==n.updateOn&&n.markAsTouched()})}(n,e),function H1e(n,e){if(e.valueAccessor.setDisabledState){const t=i=>{e.valueAccessor.setDisabledState(i)};n.registerOnDisabledChange(t),e._registerOnDestroy(()=>{n._unregisterOnDisabledChange(t)})}}(n,e)}function j4(n,e){n.forEach(t=>{t.registerOnValidatorChange&&t.registerOnValidatorChange(e)})}function tj(n,e){n._pendingDirty&&n.markAsDirty(),n.setValue(n._pendingValue,{emitModelToViewChange:!1}),e.viewToModelUpdate(n._pendingValue),n._pendingChange=!1}function rj(n,e){const t=n.indexOf(e);t>-1&&n.splice(t,1)}function sj(n){return"object"==typeof n&&null!==n&&2===Object.keys(n).length&&"value"in n&&"disabled"in n}Promise.resolve();const oj=class extends qO{constructor(e=null,t,i){super(function VO(n){return(G4(n)?n.validators:n)||null}(t),function GO(n,e){return(G4(e)?e.asyncValidators:n)||null}(i,t)),this.defaultValue=null,this._onChange=[],this._pendingChange=!1,this._applyFormState(e),this._setUpdateStrategy(t),this._initObservables(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator}),G4(t)&&(t.nonNullable||t.initialValueIsDefault)&&(this.defaultValue=sj(e)?e.value:e)}setValue(e,t={}){this.value=this._pendingValue=e,this._onChange.length&&!1!==t.emitModelToViewChange&&this._onChange.forEach(i=>i(this.value,!1!==t.emitViewToModelChange)),this.updateValueAndValidity(t)}patchValue(e,t={}){this.setValue(e,t)}reset(e=this.defaultValue,t={}){this._applyFormState(e),this.markAsPristine(t),this.markAsUntouched(t),this.setValue(this.value,t),this._pendingChange=!1}_updateValue(){}_anyControls(e){return!1}_allControlsDisabled(){return this.disabled}registerOnChange(e){this._onChange.push(e)}_unregisterOnChange(e){rj(this._onChange,e)}registerOnDisabledChange(e){this._onDisabledChange.push(e)}_unregisterOnDisabledChange(e){rj(this._onDisabledChange,e)}_forEachChild(e){}_syncPendingControls(){return!("submit"!==this.updateOn||(this._pendingDirty&&this.markAsDirty(),this._pendingTouched&&this.markAsTouched(),!this._pendingChange)||(this.setValue(this._pendingValue,{onlySelf:!0,emitModelToViewChange:!1}),0))}_applyFormState(e){sj(e)?(this.value=this._pendingValue=e.value,e.disabled?this.disable({onlySelf:!0,emitEvent:!1}):this.enable({onlySelf:!0,emitEvent:!1})):this.value=this._pendingValue=e}},Z1e={provide:iv,useExisting:jt(()=>X4)},cj=Promise.resolve();let X4=(()=>{class n extends iv{constructor(t,i,r,s,o,l){super(),this._changeDetectorRef=o,this.callSetDisabledState=l,this.control=new oj,this._registered=!1,this.name="",this.update=new Ls,this._parent=t,this._setValidators(i),this._setAsyncValidators(r),this.valueAccessor=function XO(n,e){if(!e)return null;let t,i,r;return Array.isArray(e),e.forEach(s=>{s.constructor===FO?t=s:function j1e(n){return Object.getPrototypeOf(n.constructor)===Ax}(s)?i=s:r=s}),r||i||t||null}(0,s)}ngOnChanges(t){if(this._checkForErrors(),!this._registered||"name"in t){if(this._registered&&(this._checkName(),this.formDirective)){const i=t.name.previousValue;this.formDirective.removeControl({name:i,path:this._getPath(i)})}this._setUpControl()}"isDisabled"in t&&this._updateDisabled(t),function $O(n,e){if(!n.hasOwnProperty("model"))return!1;const t=n.model;return!!t.isFirstChange()||!Object.is(e,t.currentValue)}(t,this.viewModel)&&(this._updateValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}get path(){return this._getPath(this.name)}get formDirective(){return this._parent?this._parent.formDirective:null}viewToModelUpdate(t){this.viewModel=t,this.update.emit(t)}_setUpControl(){this._setUpdateStrategy(),this._isStandalone()?this._setUpStandalone():this.formDirective.addControl(this),this._registered=!0}_setUpdateStrategy(){this.options&&null!=this.options.updateOn&&(this.control._updateOn=this.options.updateOn)}_isStandalone(){return!this._parent||!(!this.options||!this.options.standalone)}_setUpStandalone(){HE(this.control,this,this.callSetDisabledState),this.control.updateValueAndValidity({emitEvent:!1})}_checkForErrors(){this._isStandalone()||this._checkParentType(),this._checkName()}_checkParentType(){}_checkName(){this.options&&this.options.name&&(this.name=this.options.name),this._isStandalone()}_updateValue(t){cj.then(()=>{this.control.setValue(t,{emitViewToModelChange:!1}),this._changeDetectorRef?.markForCheck()})}_updateDisabled(t){const i=t.isDisabled.currentValue,r=0!==i&&_o(i);cj.then(()=>{r&&!this.control.disabled?this.control.disable():!r&&this.control.disabled&&this.control.enable(),this._changeDetectorRef?.markForCheck()})}_getPath(t){return this._parent?function Q4(n,e){return[...e.path,n]}(t,this._parent):[t]}static#e=this.\u0275fac=function(i){return new(i||n)(Lt(Lf,9),Lt(ph,10),Lt(nv,10),Lt(Of,10),Lt(Sc,8),Lt(SC,8))};static#t=this.\u0275dir=Ft({type:n,selectors:[["","ngModel","",3,"formControlName","",3,"formControl",""]],inputs:{name:"name",isDisabled:[mi.None,"disabled","isDisabled"],model:[mi.None,"ngModel","model"],options:[mi.None,"ngModelOptions","options"]},outputs:{update:"ngModelChange"},exportAs:["ngModel"],features:[qo([Z1e]),Lo,kl]})}return n})();const cye={provide:Of,useExisting:jt(()=>eL),multi:!0};function gj(n,e){return null==n?`${e}`:(e&&"object"==typeof e&&(e="Object"),`${n}: ${e}`.slice(0,50))}let eL=(()=>{class n extends Ax{constructor(){super(...arguments),this._optionMap=new Map,this._idCounter=0,this._compareWith=Object.is}set compareWith(t){this._compareWith=t}writeValue(t){this.value=t;const r=gj(this._getOptionId(t),t);this.setProperty("value",r)}registerOnChange(t){this.onChange=i=>{this.value=this._getOptionValue(i),t(this.value)}}_registerOption(){return(this._idCounter++).toString()}_getOptionId(t){for(const i of this._optionMap.keys())if(this._compareWith(this._optionMap.get(i),t))return i;return null}_getOptionValue(t){const i=function dye(n){return n.split(":")[0]}(t);return this._optionMap.has(i)?this._optionMap.get(i):t}static#e=this.\u0275fac=(()=>{let t;return function(r){return(t||(t=Ca(n)))(r||n)}})();static#t=this.\u0275dir=Ft({type:n,selectors:[["select","formControlName","",3,"multiple",""],["select","formControl","",3,"multiple",""],["select","ngModel","",3,"multiple",""]],hostBindings:function(i,r){1&i&&Ai("change",function(o){return r.onChange(o.target.value)})("blur",function(){return r.onTouched()})},inputs:{compareWith:"compareWith"},features:[qo([cye]),Lo]})}return n})(),EC=(()=>{class n{constructor(t,i,r){this._element=t,this._renderer=i,this._select=r,this._select&&(this.id=this._select._registerOption())}set ngValue(t){null!=this._select&&(this._select._optionMap.set(this.id,t),this._setElementValue(gj(this.id,t)),this._select.writeValue(this._select.value))}set value(t){this._setElementValue(t),this._select&&this._select.writeValue(this._select.value)}_setElementValue(t){this._renderer.setProperty(this._element.nativeElement,"value",t)}ngOnDestroy(){this._select&&(this._select._optionMap.delete(this.id),this._select.writeValue(this._select.value))}static#e=this.\u0275fac=function(i){return new(i||n)(Lt(oo),Lt(ZA),Lt(eL,9))};static#t=this.\u0275dir=Ft({type:n,selectors:[["option"]],inputs:{ngValue:"ngValue",value:"value"}})}return n})();const hye={provide:Of,useExisting:jt(()=>tL),multi:!0};function _j(n,e){return null==n?`${e}`:("string"==typeof e&&(e=`'${e}'`),e&&"object"==typeof e&&(e="Object"),`${n}: ${e}`.slice(0,50))}let tL=(()=>{class n extends Ax{constructor(){super(...arguments),this._optionMap=new Map,this._idCounter=0,this._compareWith=Object.is}set compareWith(t){this._compareWith=t}writeValue(t){let i;if(this.value=t,Array.isArray(t)){const r=t.map(s=>this._getOptionId(s));i=(s,o)=>{s._setSelected(r.indexOf(o.toString())>-1)}}else i=(r,s)=>{r._setSelected(!1)};this._optionMap.forEach(i)}registerOnChange(t){this.onChange=i=>{const r=[],s=i.selectedOptions;if(void 0!==s){const o=s;for(let l=0;l{let t;return function(r){return(t||(t=Ca(n)))(r||n)}})();static#t=this.\u0275dir=Ft({type:n,selectors:[["select","multiple","","formControlName",""],["select","multiple","","formControl",""],["select","multiple","","ngModel",""]],hostBindings:function(i,r){1&i&&Ai("change",function(o){return r.onChange(o.target)})("blur",function(){return r.onTouched()})},inputs:{compareWith:"compareWith"},features:[qo([hye]),Lo]})}return n})(),TC=(()=>{class n{constructor(t,i,r){this._element=t,this._renderer=i,this._select=r,this._select&&(this.id=this._select._registerOption(this))}set ngValue(t){null!=this._select&&(this._value=t,this._setElementValue(_j(this.id,t)),this._select.writeValue(this._select.value))}set value(t){this._select?(this._value=t,this._setElementValue(_j(this.id,t)),this._select.writeValue(this._select.value)):this._setElementValue(t)}_setElementValue(t){this._renderer.setProperty(this._element.nativeElement,"value",t)}_setSelected(t){this._renderer.setProperty(this._element.nativeElement,"selected",t)}ngOnDestroy(){this._select&&(this._select._optionMap.delete(this.id),this._select.writeValue(this._select.value))}static#e=this.\u0275fac=function(i){return new(i||n)(Lt(oo),Lt(ZA),Lt(tL,9))};static#t=this.\u0275dir=Ft({type:n,selectors:[["option"]],inputs:{ngValue:"ngValue",value:"value"}})}return n})(),bye=(()=>{class n{static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275mod=vo({type:n});static#n=this.\u0275inj=ra({})}return n})(),wye=(()=>{class n{static withConfig(t){return{ngModule:n,providers:[{provide:SC,useValue:t.callSetDisabledState??q4}]}}static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275mod=vo({type:n});static#n=this.\u0275inj=ra({imports:[bye]})}return n})();const Cye=["input"],Mye=["label"],Sye=["*"],Eye=new Bi("mat-checkbox-default-options",{providedIn:"root",factory:Ej});function Ej(){return{color:"accent",clickAction:"check-indeterminate"}}var Qu=function(n){return n[n.Init=0]="Init",n[n.Checked=1]="Checked",n[n.Unchecked=2]="Unchecked",n[n.Indeterminate=3]="Indeterminate",n}(Qu||{});const Tye={provide:Of,useExisting:jt(()=>rv),multi:!0};class Dye{}let Iye=0;const Tj=Ej();let rv=(()=>{class n{focus(){this._inputElement.nativeElement.focus()}_createChangeEvent(t){const i=new Dye;return i.source=this,i.checked=t,i}_getAnimationTargetElement(){return this._inputElement?.nativeElement}get inputId(){return`${this.id||this._uniqueId}-input`}constructor(t,i,r,s,o,l){this._elementRef=t,this._changeDetectorRef=i,this._ngZone=r,this._animationMode=o,this._options=l,this._animationClasses={uncheckedToChecked:"mdc-checkbox--anim-unchecked-checked",uncheckedToIndeterminate:"mdc-checkbox--anim-unchecked-indeterminate",checkedToUnchecked:"mdc-checkbox--anim-checked-unchecked",checkedToIndeterminate:"mdc-checkbox--anim-checked-indeterminate",indeterminateToChecked:"mdc-checkbox--anim-indeterminate-checked",indeterminateToUnchecked:"mdc-checkbox--anim-indeterminate-unchecked"},this.ariaLabel="",this.ariaLabelledby=null,this.labelPosition="after",this.name=null,this.change=new Ls,this.indeterminateChange=new Ls,this._onTouched=()=>{},this._currentAnimationClass="",this._currentCheckState=Qu.Init,this._controlValueAccessorChangeFn=()=>{},this._validatorChangeFn=()=>{},this._checked=!1,this._disabled=!1,this._indeterminate=!1,this._options=this._options||Tj,this.color=this._options.color||Tj.color,this.tabIndex=parseInt(s)||0,this.id=this._uniqueId="mat-mdc-checkbox-"+ ++Iye}ngOnChanges(t){t.required&&this._validatorChangeFn()}ngAfterViewInit(){this._syncIndeterminate(this._indeterminate)}get checked(){return this._checked}set checked(t){t!=this.checked&&(this._checked=t,this._changeDetectorRef.markForCheck())}get disabled(){return this._disabled}set disabled(t){t!==this.disabled&&(this._disabled=t,this._changeDetectorRef.markForCheck())}get indeterminate(){return this._indeterminate}set indeterminate(t){const i=t!=this._indeterminate;this._indeterminate=t,i&&(this._transitionCheckState(this._indeterminate?Qu.Indeterminate:this.checked?Qu.Checked:Qu.Unchecked),this.indeterminateChange.emit(this._indeterminate)),this._syncIndeterminate(this._indeterminate)}_isRippleDisabled(){return this.disableRipple||this.disabled}_onLabelTextChange(){this._changeDetectorRef.detectChanges()}writeValue(t){this.checked=!!t}registerOnChange(t){this._controlValueAccessorChangeFn=t}registerOnTouched(t){this._onTouched=t}setDisabledState(t){this.disabled=t}validate(t){return this.required&&!0!==t.value?{required:!0}:null}registerOnValidatorChange(t){this._validatorChangeFn=t}_transitionCheckState(t){let i=this._currentCheckState,r=this._getAnimationTargetElement();if(i!==t&&r&&(this._currentAnimationClass&&r.classList.remove(this._currentAnimationClass),this._currentAnimationClass=this._getAnimationClassForCheckStateTransition(i,t),this._currentCheckState=t,this._currentAnimationClass.length>0)){r.classList.add(this._currentAnimationClass);const s=this._currentAnimationClass;this._ngZone.runOutsideAngular(()=>{setTimeout(()=>{r.classList.remove(s)},1e3)})}}_emitChangeEvent(){this._controlValueAccessorChangeFn(this.checked),this.change.emit(this._createChangeEvent(this.checked)),this._inputElement&&(this._inputElement.nativeElement.checked=this.checked)}toggle(){this.checked=!this.checked,this._controlValueAccessorChangeFn(this.checked)}_handleInputClick(){const t=this._options?.clickAction;this.disabled||"noop"===t?!this.disabled&&"noop"===t&&(this._inputElement.nativeElement.checked=this.checked,this._inputElement.nativeElement.indeterminate=this.indeterminate):(this.indeterminate&&"check"!==t&&Promise.resolve().then(()=>{this._indeterminate=!1,this.indeterminateChange.emit(this._indeterminate)}),this._checked=!this._checked,this._transitionCheckState(this._checked?Qu.Checked:Qu.Unchecked),this._emitChangeEvent())}_onInteractionEvent(t){t.stopPropagation()}_onBlur(){Promise.resolve().then(()=>{this._onTouched(),this._changeDetectorRef.markForCheck()})}_getAnimationClassForCheckStateTransition(t,i){if("NoopAnimations"===this._animationMode)return"";switch(t){case Qu.Init:if(i===Qu.Checked)return this._animationClasses.uncheckedToChecked;if(i==Qu.Indeterminate)return this._checked?this._animationClasses.checkedToIndeterminate:this._animationClasses.uncheckedToIndeterminate;break;case Qu.Unchecked:return i===Qu.Checked?this._animationClasses.uncheckedToChecked:this._animationClasses.uncheckedToIndeterminate;case Qu.Checked:return i===Qu.Unchecked?this._animationClasses.checkedToUnchecked:this._animationClasses.checkedToIndeterminate;case Qu.Indeterminate:return i===Qu.Checked?this._animationClasses.indeterminateToChecked:this._animationClasses.indeterminateToUnchecked}return""}_syncIndeterminate(t){const i=this._inputElement;i&&(i.nativeElement.indeterminate=t)}_onInputClick(){this._handleInputClick()}_onTouchTargetClick(){this._handleInputClick(),this.disabled||this._inputElement.nativeElement.focus()}_preventBubblingFromLabel(t){t.target&&this._labelElement.nativeElement.contains(t.target)&&t.stopPropagation()}static#e=this.\u0275fac=function(i){return new(i||n)(Lt(oo),Lt(Sc),Lt(io),bh("tabindex"),Lt(Od,8),Lt(Eye,8))};static#t=this.\u0275cmp=rs({type:n,selectors:[["mat-checkbox"]],viewQuery:function(i,r){if(1&i&&(_l(Cye,5),_l(Mye,5),_l(k0,5)),2&i){let s;pa(s=ma())&&(r._inputElement=s.first),pa(s=ma())&&(r._labelElement=s.first),pa(s=ma())&&(r.ripple=s.first)}},hostAttrs:[1,"mat-mdc-checkbox"],hostVars:14,hostBindings:function(i,r){2&i&&(zw("id",r.id),sl("tabindex",null)("aria-label",null)("aria-labelledby",null),P_(r.color?"mat-"+r.color:"mat-accent"),Ja("_mat-animation-noopable","NoopAnimations"===r._animationMode)("mdc-checkbox--disabled",r.disabled)("mat-mdc-checkbox-disabled",r.disabled)("mat-mdc-checkbox-checked",r.checked))},inputs:{ariaLabel:[mi.None,"aria-label","ariaLabel"],ariaLabelledby:[mi.None,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[mi.None,"aria-describedby","ariaDescribedby"],id:"id",required:[mi.HasDecoratorInputTransform,"required","required",_o],labelPosition:"labelPosition",name:"name",value:"value",disableRipple:[mi.HasDecoratorInputTransform,"disableRipple","disableRipple",_o],tabIndex:[mi.HasDecoratorInputTransform,"tabIndex","tabIndex",t=>null==t?void 0:rh(t)],color:"color",checked:[mi.HasDecoratorInputTransform,"checked","checked",_o],disabled:[mi.HasDecoratorInputTransform,"disabled","disabled",_o],indeterminate:[mi.HasDecoratorInputTransform,"indeterminate","indeterminate",_o]},outputs:{change:"change",indeterminateChange:"indeterminateChange"},exportAs:["matCheckbox"],standalone:!0,features:[qo([Tye,{provide:ph,useExisting:n,multi:!0}]),ql,kl,yd],ngContentSelectors:Sye,decls:15,vars:19,consts:[["checkbox",""],["input",""],["label",""],["mat-internal-form-field","",3,"click","labelPosition"],[1,"mdc-checkbox"],[1,"mat-mdc-checkbox-touch-target",3,"click"],["type","checkbox",1,"mdc-checkbox__native-control",3,"blur","click","change","checked","indeterminate","disabled","id","required","tabIndex"],[1,"mdc-checkbox__ripple"],[1,"mdc-checkbox__background"],["focusable","false","viewBox","0 0 24 24","aria-hidden","true",1,"mdc-checkbox__checkmark"],["fill","none","d","M1.73,12.91 8.1,19.28 22.79,4.59",1,"mdc-checkbox__checkmark-path"],[1,"mdc-checkbox__mixedmark"],["mat-ripple","",1,"mat-mdc-checkbox-ripple","mat-mdc-focus-indicator",3,"matRippleTrigger","matRippleDisabled","matRippleCentered"],[1,"mdc-label",3,"for"]],template:function(i,r){if(1&i){const s=ta();yu(),Gt(0,"div",3),Ai("click",function(l){return Ci(s),Mi(r._preventBubblingFromLabel(l))}),Gt(1,"div",4,0)(3,"div",5),Ai("click",function(){return Ci(s),Mi(r._onTouchTargetClick())}),dn(),Gt(4,"input",6,1),Ai("blur",function(){return Ci(s),Mi(r._onBlur())})("click",function(){return Ci(s),Mi(r._onInputClick())})("change",function(l){return Ci(s),Mi(r._onInteractionEvent(l))}),dn(),Vr(6,"div",7),Gt(7,"div",8),Fl(),Gt(8,"svg",9),Vr(9,"path",10),dn(),Du(),Vr(10,"div",11),dn(),Vr(11,"div",12),dn(),Gt(12,"label",13,2),ih(14),dn()()}if(2&i){const s=Ga(2);Qn("labelPosition",r.labelPosition),jn(4),Ja("mdc-checkbox--selected",r.checked),Qn("checked",r.checked)("indeterminate",r.indeterminate)("disabled",r.disabled)("id",r.inputId)("required",r.required)("tabIndex",r.disabled?-1:r.tabIndex),sl("aria-label",r.ariaLabel||null)("aria-labelledby",r.ariaLabelledby)("aria-describedby",r.ariaDescribedby)("aria-checked",r.indeterminate?"mixed":null)("name",r.name)("value",r.value),jn(7),Qn("matRippleTrigger",s)("matRippleDisabled",r.disableRipple||r.disabled)("matRippleCentered",!0),jn(),Qn("for",r.inputId)}},dependencies:[k0,SO],styles:['.mdc-touch-target-wrapper{display:inline}@keyframes mdc-checkbox-unchecked-checked-checkmark-path{0%,50%{stroke-dashoffset:29.7833385}50%{animation-timing-function:cubic-bezier(0, 0, 0.2, 1)}100%{stroke-dashoffset:0}}@keyframes mdc-checkbox-unchecked-indeterminate-mixedmark{0%,68.2%{transform:scaleX(0)}68.2%{animation-timing-function:cubic-bezier(0, 0, 0, 1)}100%{transform:scaleX(1)}}@keyframes mdc-checkbox-checked-unchecked-checkmark-path{from{animation-timing-function:cubic-bezier(0.4, 0, 1, 1);opacity:1;stroke-dashoffset:0}to{opacity:0;stroke-dashoffset:-29.7833385}}@keyframes mdc-checkbox-checked-indeterminate-checkmark{from{animation-timing-function:cubic-bezier(0, 0, 0.2, 1);transform:rotate(0deg);opacity:1}to{transform:rotate(45deg);opacity:0}}@keyframes mdc-checkbox-indeterminate-checked-checkmark{from{animation-timing-function:cubic-bezier(0.14, 0, 0, 1);transform:rotate(45deg);opacity:0}to{transform:rotate(360deg);opacity:1}}@keyframes mdc-checkbox-checked-indeterminate-mixedmark{from{animation-timing-function:mdc-animation-deceleration-curve-timing-function;transform:rotate(-45deg);opacity:0}to{transform:rotate(0deg);opacity:1}}@keyframes mdc-checkbox-indeterminate-checked-mixedmark{from{animation-timing-function:cubic-bezier(0.14, 0, 0, 1);transform:rotate(0deg);opacity:1}to{transform:rotate(315deg);opacity:0}}@keyframes mdc-checkbox-indeterminate-unchecked-mixedmark{0%{animation-timing-function:linear;transform:scaleX(1);opacity:1}32.8%,100%{transform:scaleX(0);opacity:0}}.mdc-checkbox{display:inline-block;position:relative;flex:0 0 18px;box-sizing:content-box;width:18px;height:18px;line-height:0;white-space:nowrap;cursor:pointer;vertical-align:bottom}.mdc-checkbox[hidden]{display:none}.mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__focus-ring,.mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__focus-ring{pointer-events:none;border:2px solid rgba(0,0,0,0);border-radius:6px;box-sizing:content-box;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:100%;width:100%}@media screen and (forced-colors: active){.mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__focus-ring,.mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__focus-ring{border-color:CanvasText}}.mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__focus-ring::after,.mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__focus-ring::after{content:"";border:2px solid rgba(0,0,0,0);border-radius:8px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(100% + 4px);width:calc(100% + 4px)}@media screen and (forced-colors: active){.mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__focus-ring::after,.mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__focus-ring::after{border-color:CanvasText}}@media all and (-ms-high-contrast: none){.mdc-checkbox .mdc-checkbox__focus-ring{display:none}}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mdc-checkbox__mixedmark{margin:0 1px}}.mdc-checkbox--disabled{cursor:default;pointer-events:none}.mdc-checkbox__background{display:inline-flex;position:absolute;align-items:center;justify-content:center;box-sizing:border-box;width:18px;height:18px;border:2px solid currentColor;border-radius:2px;background-color:rgba(0,0,0,0);pointer-events:none;will-change:background-color,border-color;transition:background-color 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1),border-color 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-checkbox__checkmark{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;opacity:0;transition:opacity 180ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-checkbox--upgraded .mdc-checkbox__checkmark{opacity:1}.mdc-checkbox__checkmark-path{transition:stroke-dashoffset 180ms 0ms cubic-bezier(0.4, 0, 0.6, 1);stroke:currentColor;stroke-width:3.12px;stroke-dashoffset:29.7833385;stroke-dasharray:29.7833385}.mdc-checkbox__mixedmark{width:100%;height:0;transform:scaleX(0) rotate(0deg);border-width:1px;border-style:solid;opacity:0;transition:opacity 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1),transform 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__background,.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__background,.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__background,.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__background{animation-duration:180ms;animation-timing-function:linear}.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__checkmark-path{animation:mdc-checkbox-unchecked-checked-checkmark-path 180ms linear 0s;transition:none}.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__mixedmark{animation:mdc-checkbox-unchecked-indeterminate-mixedmark 90ms linear 0s;transition:none}.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__checkmark-path{animation:mdc-checkbox-checked-unchecked-checkmark-path 90ms linear 0s;transition:none}.mdc-checkbox--anim-checked-indeterminate .mdc-checkbox__checkmark{animation:mdc-checkbox-checked-indeterminate-checkmark 90ms linear 0s;transition:none}.mdc-checkbox--anim-checked-indeterminate .mdc-checkbox__mixedmark{animation:mdc-checkbox-checked-indeterminate-mixedmark 90ms linear 0s;transition:none}.mdc-checkbox--anim-indeterminate-checked .mdc-checkbox__checkmark{animation:mdc-checkbox-indeterminate-checked-checkmark 500ms linear 0s;transition:none}.mdc-checkbox--anim-indeterminate-checked .mdc-checkbox__mixedmark{animation:mdc-checkbox-indeterminate-checked-mixedmark 500ms linear 0s;transition:none}.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__mixedmark{animation:mdc-checkbox-indeterminate-unchecked-mixedmark 300ms linear 0s;transition:none}.mdc-checkbox__native-control:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background,.mdc-checkbox__native-control[data-indeterminate=true]~.mdc-checkbox__background{transition:border-color 90ms 0ms cubic-bezier(0, 0, 0.2, 1),background-color 90ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-checkbox__native-control:checked~.mdc-checkbox__background .mdc-checkbox__checkmark-path,.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background .mdc-checkbox__checkmark-path,.mdc-checkbox__native-control[data-indeterminate=true]~.mdc-checkbox__background .mdc-checkbox__checkmark-path{stroke-dashoffset:0}.mdc-checkbox__native-control{position:absolute;margin:0;padding:0;opacity:0;cursor:inherit}.mdc-checkbox__native-control:disabled{cursor:default;pointer-events:none}.mdc-checkbox--touch{margin:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2)}.mdc-checkbox--touch .mdc-checkbox__native-control{top:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2);right:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2);left:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2);width:var(--mdc-checkbox-state-layer-size);height:var(--mdc-checkbox-state-layer-size)}.mdc-checkbox__native-control:checked~.mdc-checkbox__background .mdc-checkbox__checkmark{transition:opacity 180ms 0ms cubic-bezier(0, 0, 0.2, 1),transform 180ms 0ms cubic-bezier(0, 0, 0.2, 1);opacity:1}.mdc-checkbox__native-control:checked~.mdc-checkbox__background .mdc-checkbox__mixedmark{transform:scaleX(1) rotate(-45deg)}.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background .mdc-checkbox__checkmark,.mdc-checkbox__native-control[data-indeterminate=true]~.mdc-checkbox__background .mdc-checkbox__checkmark{transform:rotate(45deg);opacity:0;transition:opacity 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1),transform 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background .mdc-checkbox__mixedmark,.mdc-checkbox__native-control[data-indeterminate=true]~.mdc-checkbox__background .mdc-checkbox__mixedmark{transform:scaleX(1) rotate(0deg);opacity:1}.mdc-checkbox.mdc-checkbox--upgraded .mdc-checkbox__background,.mdc-checkbox.mdc-checkbox--upgraded .mdc-checkbox__checkmark,.mdc-checkbox.mdc-checkbox--upgraded .mdc-checkbox__checkmark-path,.mdc-checkbox.mdc-checkbox--upgraded .mdc-checkbox__mixedmark{transition:none}.mdc-checkbox{padding:calc((var(--mdc-checkbox-state-layer-size) - 18px) / 2);margin:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2)}.mdc-checkbox .mdc-checkbox__native-control[disabled]:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:var(--mdc-checkbox-disabled-unselected-icon-color);background-color:transparent}.mdc-checkbox .mdc-checkbox__native-control[disabled]:checked~.mdc-checkbox__background,.mdc-checkbox .mdc-checkbox__native-control[disabled]:indeterminate~.mdc-checkbox__background,.mdc-checkbox .mdc-checkbox__native-control[data-indeterminate=true][disabled]~.mdc-checkbox__background{border-color:transparent;background-color:var(--mdc-checkbox-disabled-selected-icon-color)}.mdc-checkbox .mdc-checkbox__native-control:enabled~.mdc-checkbox__background .mdc-checkbox__checkmark{color:var(--mdc-checkbox-selected-checkmark-color)}.mdc-checkbox .mdc-checkbox__native-control:enabled~.mdc-checkbox__background .mdc-checkbox__mixedmark{border-color:var(--mdc-checkbox-selected-checkmark-color)}.mdc-checkbox .mdc-checkbox__native-control:disabled~.mdc-checkbox__background .mdc-checkbox__checkmark{color:var(--mdc-checkbox-disabled-selected-checkmark-color)}.mdc-checkbox .mdc-checkbox__native-control:disabled~.mdc-checkbox__background .mdc-checkbox__mixedmark{border-color:var(--mdc-checkbox-disabled-selected-checkmark-color)}.mdc-checkbox .mdc-checkbox__native-control:enabled:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-icon-color);background-color:transparent}.mdc-checkbox .mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,.mdc-checkbox .mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background,.mdc-checkbox .mdc-checkbox__native-control[data-indeterminate=true]:enabled~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-icon-color);background-color:var(--mdc-checkbox-selected-icon-color)}@keyframes mdc-checkbox-fade-in-background-8A000000FFF4433600000000FFF44336{0%{border-color:var(--mdc-checkbox-unselected-icon-color);background-color:transparent}50%{border-color:var(--mdc-checkbox-selected-icon-color);background-color:var(--mdc-checkbox-selected-icon-color)}}@keyframes mdc-checkbox-fade-out-background-8A000000FFF4433600000000FFF44336{0%,80%{border-color:var(--mdc-checkbox-selected-icon-color);background-color:var(--mdc-checkbox-selected-icon-color)}100%{border-color:var(--mdc-checkbox-unselected-icon-color);background-color:transparent}}.mdc-checkbox.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mdc-checkbox.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-in-background-8A000000FFF4433600000000FFF44336}.mdc-checkbox.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mdc-checkbox.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-out-background-8A000000FFF4433600000000FFF44336}.mdc-checkbox:hover .mdc-checkbox__native-control:enabled:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-hover-icon-color);background-color:transparent}.mdc-checkbox:hover .mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,.mdc-checkbox:hover .mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background,.mdc-checkbox:hover .mdc-checkbox__native-control[data-indeterminate=true]:enabled~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-hover-icon-color);background-color:var(--mdc-checkbox-selected-hover-icon-color)}@keyframes mdc-checkbox-fade-in-background-FF212121FFF4433600000000FFF44336{0%{border-color:var(--mdc-checkbox-unselected-hover-icon-color);background-color:transparent}50%{border-color:var(--mdc-checkbox-selected-hover-icon-color);background-color:var(--mdc-checkbox-selected-hover-icon-color)}}@keyframes mdc-checkbox-fade-out-background-FF212121FFF4433600000000FFF44336{0%,80%{border-color:var(--mdc-checkbox-selected-hover-icon-color);background-color:var(--mdc-checkbox-selected-hover-icon-color)}100%{border-color:var(--mdc-checkbox-unselected-hover-icon-color);background-color:transparent}}.mdc-checkbox:hover.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mdc-checkbox:hover.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-in-background-FF212121FFF4433600000000FFF44336}.mdc-checkbox:hover.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mdc-checkbox:hover.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-out-background-FF212121FFF4433600000000FFF44336}.mdc-checkbox:not(:disabled):active .mdc-checkbox__native-control:enabled:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-pressed-icon-color);background-color:transparent}.mdc-checkbox:not(:disabled):active .mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,.mdc-checkbox:not(:disabled):active .mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background,.mdc-checkbox:not(:disabled):active .mdc-checkbox__native-control[data-indeterminate=true]:enabled~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-pressed-icon-color);background-color:var(--mdc-checkbox-selected-pressed-icon-color)}@keyframes mdc-checkbox-fade-in-background-8A000000FFF4433600000000FFF44336{0%{border-color:var(--mdc-checkbox-unselected-pressed-icon-color);background-color:transparent}50%{border-color:var(--mdc-checkbox-selected-pressed-icon-color);background-color:var(--mdc-checkbox-selected-pressed-icon-color)}}@keyframes mdc-checkbox-fade-out-background-8A000000FFF4433600000000FFF44336{0%,80%{border-color:var(--mdc-checkbox-selected-pressed-icon-color);background-color:var(--mdc-checkbox-selected-pressed-icon-color)}100%{border-color:var(--mdc-checkbox-unselected-pressed-icon-color);background-color:transparent}}.mdc-checkbox:not(:disabled):active.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mdc-checkbox:not(:disabled):active.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-in-background-8A000000FFF4433600000000FFF44336}.mdc-checkbox:not(:disabled):active.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mdc-checkbox:not(:disabled):active.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-out-background-8A000000FFF4433600000000FFF44336}.mdc-checkbox .mdc-checkbox__background{top:calc((var(--mdc-checkbox-state-layer-size) - 18px) / 2);left:calc((var(--mdc-checkbox-state-layer-size) - 18px) / 2)}.mdc-checkbox .mdc-checkbox__native-control{top:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2);right:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2);left:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2);width:var(--mdc-checkbox-state-layer-size);height:var(--mdc-checkbox-state-layer-size)}.mdc-checkbox .mdc-checkbox__native-control:enabled:focus:focus:not(:checked):not(:indeterminate)~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-focus-icon-color)}.mdc-checkbox .mdc-checkbox__native-control:enabled:focus:checked~.mdc-checkbox__background,.mdc-checkbox .mdc-checkbox__native-control:enabled:focus:indeterminate~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-focus-icon-color);background-color:var(--mdc-checkbox-selected-focus-icon-color)}.mdc-checkbox:hover .mdc-checkbox__ripple{opacity:var(--mdc-checkbox-unselected-hover-state-layer-opacity);background-color:var(--mdc-checkbox-unselected-hover-state-layer-color)}.mdc-checkbox:hover .mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-unselected-hover-state-layer-color)}.mdc-checkbox .mdc-checkbox__native-control:focus~.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-unselected-focus-state-layer-opacity);background-color:var(--mdc-checkbox-unselected-focus-state-layer-color)}.mdc-checkbox .mdc-checkbox__native-control:focus~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-unselected-focus-state-layer-color)}.mdc-checkbox:active .mdc-checkbox__native-control~.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-unselected-pressed-state-layer-opacity);background-color:var(--mdc-checkbox-unselected-pressed-state-layer-color)}.mdc-checkbox:active .mdc-checkbox__native-control~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-unselected-pressed-state-layer-color)}.mdc-checkbox:hover .mdc-checkbox__native-control:checked~.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-selected-hover-state-layer-opacity);background-color:var(--mdc-checkbox-selected-hover-state-layer-color)}.mdc-checkbox:hover .mdc-checkbox__native-control:checked~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-selected-hover-state-layer-color)}.mdc-checkbox .mdc-checkbox__native-control:focus:checked~.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-selected-focus-state-layer-opacity);background-color:var(--mdc-checkbox-selected-focus-state-layer-color)}.mdc-checkbox .mdc-checkbox__native-control:focus:checked~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-selected-focus-state-layer-color)}.mdc-checkbox:active .mdc-checkbox__native-control:checked~.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-selected-pressed-state-layer-opacity);background-color:var(--mdc-checkbox-selected-pressed-state-layer-color)}.mdc-checkbox:active .mdc-checkbox__native-control:checked~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-selected-pressed-state-layer-color)}.mat-mdc-checkbox{display:inline-block;position:relative;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-checkbox .mdc-checkbox__background{-webkit-print-color-adjust:exact;color-adjust:exact}.mat-mdc-checkbox._mat-animation-noopable *,.mat-mdc-checkbox._mat-animation-noopable *::before{transition:none !important;animation:none !important}.mat-mdc-checkbox label{cursor:pointer}.mat-mdc-checkbox.mat-mdc-checkbox-disabled label{cursor:default;color:var(--mat-checkbox-disabled-label-color)}.mat-mdc-checkbox label:empty{display:none}.cdk-high-contrast-active .mat-mdc-checkbox.mat-mdc-checkbox-disabled{opacity:.5}.cdk-high-contrast-active .mat-mdc-checkbox .mdc-checkbox__checkmark{--mdc-checkbox-selected-checkmark-color: CanvasText;--mdc-checkbox-disabled-selected-checkmark-color: CanvasText}.mat-mdc-checkbox .mdc-checkbox__ripple{opacity:0}.mat-mdc-checkbox-ripple,.mdc-checkbox__ripple{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:50%;pointer-events:none}.mat-mdc-checkbox-ripple:not(:empty),.mdc-checkbox__ripple:not(:empty){transform:translateZ(0)}.mat-mdc-checkbox-ripple .mat-ripple-element{opacity:.1}.mat-mdc-checkbox-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%);display:var(--mat-checkbox-touch-target-display)}.mat-mdc-checkbox-ripple::before{border-radius:50%}.mdc-checkbox__native-control:focus~.mat-mdc-focus-indicator::before{content:""}'],encapsulation:2,changeDetection:0})}return n})(),Rye=(()=>{class n{static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275mod=vo({type:n});static#n=this.\u0275inj=ra({imports:[rv,Qd,Qd]})}return n})();var kye=Se(3511);function iL(n,e,t){for(let i in e)if(e.hasOwnProperty(i)){const r=e[i];r?n.setProperty(i,r,t?.has(i)?"important":""):n.removeProperty(i)}return n}function DC(n,e){const t=e?"":"none";iL(n.style,{"touch-action":e?"":"none","-webkit-user-drag":e?"":"none","-webkit-tap-highlight-color":e?"":"transparent","user-select":t,"-ms-user-select":t,"-webkit-user-select":t,"-moz-user-select":t})}function Dj(n,e,t){iL(n.style,{position:e?"":"fixed",top:e?"":"0",opacity:e?"":"0",left:e?"":"-999em"},t)}function K4(n,e){return e&&"none"!=e?n+" "+e:n}function Ij(n){const e=n.toLowerCase().indexOf("ms")>-1?1:1e3;return parseFloat(n)*e}function rL(n,e){return n.getPropertyValue(e).split(",").map(i=>i.trim())}function sL(n){const e=n.getBoundingClientRect();return{top:e.top,right:e.right,bottom:e.bottom,left:e.left,width:e.width,height:e.height,x:e.x,y:e.y}}function oL(n,e,t){const{top:i,bottom:r,left:s,right:o}=n;return t>=i&&t<=r&&e>=s&&e<=o}function GE(n,e,t){n.top+=e,n.bottom=n.top+n.height,n.left+=t,n.right=n.left+n.width}function Bj(n,e,t,i){const{top:r,right:s,bottom:o,left:l,width:d,height:h}=n,f=d*e,A=h*e;return i>r-A&&il-f&&t{this.positions.set(t,{scrollPosition:{top:t.scrollTop,left:t.scrollLeft},clientRect:sL(t)})})}handleScroll(e){const t=pA(e),i=this.positions.get(t);if(!i)return null;const r=i.scrollPosition;let s,o;if(t===this._document){const h=this.getViewportScrollPosition();s=h.top,o=h.left}else s=t.scrollTop,o=t.scrollLeft;const l=r.top-s,d=r.left-o;return this.positions.forEach((h,f)=>{h.clientRect&&t!==f&&t.contains(f)&&GE(h.clientRect,l,d)}),r.top=s,r.left=o,{top:l,left:d}}getViewportScrollPosition(){return{top:window.scrollY,left:window.scrollX}}}function Rj(n){const e=n.cloneNode(!0),t=e.querySelectorAll("[id]"),i=n.nodeName.toLowerCase();e.removeAttribute("id");for(let r=0;rDC(t,e)))}constructor(e,t,i,r,s,o){this._config=t,this._document=i,this._ngZone=r,this._viewportRuler=s,this._dragDropRegistry=o,this._passiveTransform={x:0,y:0},this._activeTransform={x:0,y:0},this._hasStartedDragging=!1,this._moveEvents=new un,this._pointerMoveSubscription=rt.EMPTY,this._pointerUpSubscription=rt.EMPTY,this._scrollSubscription=rt.EMPTY,this._resizeSubscription=rt.EMPTY,this._boundaryElement=null,this._nativeInteractionsEnabled=!0,this._handles=[],this._disabledHandles=new Set,this._direction="ltr",this.dragStartDelay=0,this._disabled=!1,this.beforeStarted=new un,this.started=new un,this.released=new un,this.ended=new un,this.entered=new un,this.exited=new un,this.dropped=new un,this.moved=this._moveEvents,this._pointerDown=l=>{if(this.beforeStarted.next(),this._handles.length){const d=this._getTargetHandle(l);d&&!this._disabledHandles.has(d)&&!this.disabled&&this._initializeDragSequence(d,l)}else this.disabled||this._initializeDragSequence(this._rootElement,l)},this._pointerMove=l=>{const d=this._getPointerPositionOnPage(l);if(!this._hasStartedDragging){if(Math.abs(d.x-this._pickupPositionOnPage.x)+Math.abs(d.y-this._pickupPositionOnPage.y)>=this._config.dragStartThreshold){const R=Date.now()>=this._dragStartTime+this._getDragStartDelay(l),G=this._dropContainer;if(!R)return void this._endDragSequence(l);(!G||!G.isDragging()&&!G.isReceiving())&&(l.preventDefault(),this._hasStartedDragging=!0,this._ngZone.run(()=>this._startDragSequence(l)))}return}l.preventDefault();const h=this._getConstrainedPointerPosition(d);if(this._hasMoved=!0,this._lastKnownPointerPosition=d,this._updatePointerDirectionDelta(h),this._dropContainer)this._updateActiveDropContainer(h,d);else{const f=this.constrainPosition?this._initialDomRect:this._pickupPositionOnPage,A=this._activeTransform;A.x=h.x-f.x+this._passiveTransform.x,A.y=h.y-f.y+this._passiveTransform.y,this._applyRootElementTransform(A.x,A.y)}this._moveEvents.observers.length&&this._ngZone.run(()=>{this._moveEvents.next({source:this,pointerPosition:h,event:l,distance:this._getDragDistance(h),delta:this._pointerDirectionDelta})})},this._pointerUp=l=>{this._endDragSequence(l)},this._nativeDragStart=l=>{if(this._handles.length){const d=this._getTargetHandle(l);d&&!this._disabledHandles.has(d)&&!this.disabled&&l.preventDefault()}else this.disabled||l.preventDefault()},this.withRootElement(e).withParent(t.parentDragRef||null),this._parentPositions=new Pj(i),o.registerDragItem(this)}getPlaceholderElement(){return this._placeholder}getRootElement(){return this._rootElement}getVisibleElement(){return this.isDragging()?this.getPlaceholderElement():this.getRootElement()}withHandles(e){this._handles=e.map(i=>uh(i)),this._handles.forEach(i=>DC(i,this.disabled)),this._toggleNativeDragInteractions();const t=new Set;return this._disabledHandles.forEach(i=>{this._handles.indexOf(i)>-1&&t.add(i)}),this._disabledHandles=t,this}withPreviewTemplate(e){return this._previewTemplate=e,this}withPlaceholderTemplate(e){return this._placeholderTemplate=e,this}withRootElement(e){const t=uh(e);return t!==this._rootElement&&(this._rootElement&&this._removeRootElementListeners(this._rootElement),this._ngZone.runOutsideAngular(()=>{t.addEventListener("mousedown",this._pointerDown,Z4),t.addEventListener("touchstart",this._pointerDown,Lj),t.addEventListener("dragstart",this._nativeDragStart,Z4)}),this._initialTransform=void 0,this._rootElement=t),typeof SVGElement<"u"&&this._rootElement instanceof SVGElement&&(this._ownerSVGElement=this._rootElement.ownerSVGElement),this}withBoundaryElement(e){return this._boundaryElement=e?uh(e):null,this._resizeSubscription.unsubscribe(),e&&(this._resizeSubscription=this._viewportRuler.change(10).subscribe(()=>this._containInsideBoundaryOnResize())),this}withParent(e){return this._parentDragRef=e,this}dispose(){this._removeRootElementListeners(this._rootElement),this.isDragging()&&this._rootElement?.remove(),this._anchor?.remove(),this._destroyPreview(),this._destroyPlaceholder(),this._dragDropRegistry.removeDragItem(this),this._removeSubscriptions(),this.beforeStarted.complete(),this.started.complete(),this.released.complete(),this.ended.complete(),this.entered.complete(),this.exited.complete(),this.dropped.complete(),this._moveEvents.complete(),this._handles=[],this._disabledHandles.clear(),this._dropContainer=void 0,this._resizeSubscription.unsubscribe(),this._parentPositions.clear(),this._boundaryElement=this._rootElement=this._ownerSVGElement=this._placeholderTemplate=this._previewTemplate=this._anchor=this._parentDragRef=null}isDragging(){return this._hasStartedDragging&&this._dragDropRegistry.isDragging(this)}reset(){this._rootElement.style.transform=this._initialTransform||"",this._activeTransform={x:0,y:0},this._passiveTransform={x:0,y:0}}disableHandle(e){!this._disabledHandles.has(e)&&this._handles.indexOf(e)>-1&&(this._disabledHandles.add(e),DC(e,!0))}enableHandle(e){this._disabledHandles.has(e)&&(this._disabledHandles.delete(e),DC(e,this.disabled))}withDirection(e){return this._direction=e,this}_withDropContainer(e){this._dropContainer=e}getFreeDragPosition(){const e=this.isDragging()?this._activeTransform:this._passiveTransform;return{x:e.x,y:e.y}}setFreeDragPosition(e){return this._activeTransform={x:0,y:0},this._passiveTransform.x=e.x,this._passiveTransform.y=e.y,this._dropContainer||this._applyRootElementTransform(e.x,e.y),this}withPreviewContainer(e){return this._previewContainer=e,this}_sortFromLastPointerPosition(){const e=this._lastKnownPointerPosition;e&&this._dropContainer&&this._updateActiveDropContainer(this._getConstrainedPointerPosition(e),e)}_removeSubscriptions(){this._pointerMoveSubscription.unsubscribe(),this._pointerUpSubscription.unsubscribe(),this._scrollSubscription.unsubscribe()}_destroyPreview(){this._preview?.remove(),this._previewRef?.destroy(),this._preview=this._previewRef=null}_destroyPlaceholder(){this._placeholder?.remove(),this._placeholderRef?.destroy(),this._placeholder=this._placeholderRef=null}_endDragSequence(e){if(this._dragDropRegistry.isDragging(this)&&(this._removeSubscriptions(),this._dragDropRegistry.stopDragging(this),this._toggleNativeDragInteractions(),this._handles&&(this._rootElement.style.webkitTapHighlightColor=this._rootElementTapHighlight),this._hasStartedDragging))if(this.released.next({source:this,event:e}),this._dropContainer)this._dropContainer._stopScrolling(),this._animatePreviewToPlaceholder().then(()=>{this._cleanupDragArtifacts(e),this._cleanupCachedDimensions(),this._dragDropRegistry.stopDragging(this)});else{this._passiveTransform.x=this._activeTransform.x;const t=this._getPointerPositionOnPage(e);this._passiveTransform.y=this._activeTransform.y,this._ngZone.run(()=>{this.ended.next({source:this,distance:this._getDragDistance(t),dropPoint:t,event:e})}),this._cleanupCachedDimensions(),this._dragDropRegistry.stopDragging(this)}}_startDragSequence(e){qE(e)&&(this._lastTouchEventTime=Date.now()),this._toggleNativeDragInteractions();const t=this._dropContainer;if(t){const i=this._rootElement,r=i.parentNode,s=this._placeholder=this._createPlaceholderElement(),o=this._anchor=this._anchor||this._document.createComment(""),l=this._getShadowRoot();r.insertBefore(o,i),this._initialTransform=i.style.transform||"",this._preview=this._createPreviewElement(),Dj(i,!1,aL),this._document.body.appendChild(r.replaceChild(s,i)),this._getPreviewInsertionPoint(r,l).appendChild(this._preview),this.started.next({source:this,event:e}),t.start(),this._initialContainer=t,this._initialIndex=t.getItemIndex(this)}else this.started.next({source:this,event:e}),this._initialContainer=this._initialIndex=void 0;this._parentPositions.cache(t?t.getScrollableParents():[])}_initializeDragSequence(e,t){this._parentDragRef&&t.stopPropagation();const i=this.isDragging(),r=qE(t),s=!r&&0!==t.button,o=this._rootElement,l=pA(t),d=!r&&this._lastTouchEventTime&&this._lastTouchEventTime+800>Date.now(),h=r?M4(t):C4(t);if(l&&l.draggable&&"mousedown"===t.type&&t.preventDefault(),i||s||d||h)return;if(this._handles.length){const S=o.style;this._rootElementTapHighlight=S.webkitTapHighlightColor||"",S.webkitTapHighlightColor="transparent"}this._hasStartedDragging=this._hasMoved=!1,this._removeSubscriptions(),this._initialDomRect=this._rootElement.getBoundingClientRect(),this._pointerMoveSubscription=this._dragDropRegistry.pointerMove.subscribe(this._pointerMove),this._pointerUpSubscription=this._dragDropRegistry.pointerUp.subscribe(this._pointerUp),this._scrollSubscription=this._dragDropRegistry.scrolled(this._getShadowRoot()).subscribe(S=>this._updateOnScroll(S)),this._boundaryElement&&(this._boundaryRect=sL(this._boundaryElement));const f=this._previewTemplate;this._pickupPositionInElement=f&&f.template&&!f.matchSize?{x:0,y:0}:this._getPointerPositionInElement(this._initialDomRect,e,t);const A=this._pickupPositionOnPage=this._lastKnownPointerPosition=this._getPointerPositionOnPage(t);this._pointerDirectionDelta={x:0,y:0},this._pointerPositionAtLastDirectionChange={x:A.x,y:A.y},this._dragStartTime=Date.now(),this._dragDropRegistry.startDragging(this,t)}_cleanupDragArtifacts(e){Dj(this._rootElement,!0,aL),this._anchor.parentNode.replaceChild(this._rootElement,this._anchor),this._destroyPreview(),this._destroyPlaceholder(),this._initialDomRect=this._boundaryRect=this._previewRect=this._initialTransform=void 0,this._ngZone.run(()=>{const t=this._dropContainer,i=t.getItemIndex(this),r=this._getPointerPositionOnPage(e),s=this._getDragDistance(r),o=t._isOverContainer(r.x,r.y);this.ended.next({source:this,distance:s,dropPoint:r,event:e}),this.dropped.next({item:this,currentIndex:i,previousIndex:this._initialIndex,container:t,previousContainer:this._initialContainer,isPointerOverContainer:o,distance:s,dropPoint:r,event:e}),t.drop(this,i,this._initialIndex,this._initialContainer,o,s,r,e),this._dropContainer=this._initialContainer})}_updateActiveDropContainer({x:e,y:t},{x:i,y:r}){let s=this._initialContainer._getSiblingContainerFromPosition(this,e,t);!s&&this._dropContainer!==this._initialContainer&&this._initialContainer._isOverContainer(e,t)&&(s=this._initialContainer),s&&s!==this._dropContainer&&this._ngZone.run(()=>{this.exited.next({item:this,container:this._dropContainer}),this._dropContainer.exit(this),this._dropContainer=s,this._dropContainer.enter(this,e,t,s===this._initialContainer&&s.sortingDisabled?this._initialIndex:void 0),this.entered.next({item:this,container:s,currentIndex:s.getItemIndex(this)})}),this.isDragging()&&(this._dropContainer._startScrollingIfNecessary(i,r),this._dropContainer._sortItem(this,e,t,this._pointerDirectionDelta),this.constrainPosition?this._applyPreviewTransform(e,t):this._applyPreviewTransform(e-this._pickupPositionInElement.x,t-this._pickupPositionInElement.y))}_createPreviewElement(){const e=this._previewTemplate,t=this.previewClass,i=e?e.template:null;let r;if(i&&e){const s=e.matchSize?this._initialDomRect:null,o=e.viewContainer.createEmbeddedView(i,e.context);o.detectChanges(),r=Uj(o,this._document),this._previewRef=o,e.matchSize?zj(r,s):r.style.transform=J4(this._pickupPositionOnPage.x,this._pickupPositionOnPage.y)}else r=Rj(this._rootElement),zj(r,this._initialDomRect),this._initialTransform&&(r.style.transform=this._initialTransform);return iL(r.style,{"pointer-events":"none",margin:"0",position:"fixed",top:"0",left:"0","z-index":`${this._config.zIndex||1e3}`},aL),DC(r,!1),r.classList.add("cdk-drag-preview"),r.setAttribute("dir",this._direction),t&&(Array.isArray(t)?t.forEach(s=>r.classList.add(s)):r.classList.add(t)),r}_animatePreviewToPlaceholder(){if(!this._hasMoved)return Promise.resolve();const e=this._placeholder.getBoundingClientRect();this._preview.classList.add("cdk-drag-animating"),this._applyPreviewTransform(e.left,e.top);const t=function Oye(n){const e=getComputedStyle(n),t=rL(e,"transition-property"),i=t.find(l=>"transform"===l||"all"===l);if(!i)return 0;const r=t.indexOf(i),s=rL(e,"transition-duration"),o=rL(e,"transition-delay");return Ij(s[r])+Ij(o[r])}(this._preview);return 0===t?Promise.resolve():this._ngZone.runOutsideAngular(()=>new Promise(i=>{const r=o=>{(!o||pA(o)===this._preview&&"transform"===o.propertyName)&&(this._preview?.removeEventListener("transitionend",r),i(),clearTimeout(s))},s=setTimeout(r,1.5*t);this._preview.addEventListener("transitionend",r)}))}_createPlaceholderElement(){const e=this._placeholderTemplate,t=e?e.template:null;let i;return t?(this._placeholderRef=e.viewContainer.createEmbeddedView(t,e.context),this._placeholderRef.detectChanges(),i=Uj(this._placeholderRef,this._document)):i=Rj(this._rootElement),i.style.pointerEvents="none",i.classList.add("cdk-drag-placeholder"),i}_getPointerPositionInElement(e,t,i){const r=t===this._rootElement?null:t,s=r?r.getBoundingClientRect():e,o=qE(i)?i.targetTouches[0]:i,l=this._getViewportScrollPosition();return{x:s.left-e.left+(o.pageX-s.left-l.left),y:s.top-e.top+(o.pageY-s.top-l.top)}}_getPointerPositionOnPage(e){const t=this._getViewportScrollPosition(),i=qE(e)?e.touches[0]||e.changedTouches[0]||{pageX:0,pageY:0}:e,r=i.pageX-t.left,s=i.pageY-t.top;if(this._ownerSVGElement){const o=this._ownerSVGElement.getScreenCTM();if(o){const l=this._ownerSVGElement.createSVGPoint();return l.x=r,l.y=s,l.matrixTransform(o.inverse())}}return{x:r,y:s}}_getConstrainedPointerPosition(e){const t=this._dropContainer?this._dropContainer.lockAxis:null;let{x:i,y:r}=this.constrainPosition?this.constrainPosition(e,this,this._initialDomRect,this._pickupPositionInElement):e;if("x"===this.lockAxis||"x"===t?r=this._pickupPositionOnPage.y-(this.constrainPosition?this._pickupPositionInElement.y:0):("y"===this.lockAxis||"y"===t)&&(i=this._pickupPositionOnPage.x-(this.constrainPosition?this._pickupPositionInElement.x:0)),this._boundaryRect){const{x:s,y:o}=this.constrainPosition?{x:0,y:0}:this._pickupPositionInElement,l=this._boundaryRect,{width:d,height:h}=this._getPreviewRect(),f=l.top+o,A=l.bottom-(h-o);i=Nj(i,l.left+s,l.right-(d-s)),r=Nj(r,f,A)}return{x:i,y:r}}_updatePointerDirectionDelta(e){const{x:t,y:i}=e,r=this._pointerDirectionDelta,s=this._pointerPositionAtLastDirectionChange,o=Math.abs(t-s.x),l=Math.abs(i-s.y);return o>this._config.pointerDirectionChangeThreshold&&(r.x=t>s.x?1:-1,s.x=t),l>this._config.pointerDirectionChangeThreshold&&(r.y=i>s.y?1:-1,s.y=i),r}_toggleNativeDragInteractions(){if(!this._rootElement||!this._handles)return;const e=this._handles.length>0||!this.isDragging();e!==this._nativeInteractionsEnabled&&(this._nativeInteractionsEnabled=e,DC(this._rootElement,e))}_removeRootElementListeners(e){e.removeEventListener("mousedown",this._pointerDown,Z4),e.removeEventListener("touchstart",this._pointerDown,Lj),e.removeEventListener("dragstart",this._nativeDragStart,Z4)}_applyRootElementTransform(e,t){const i=J4(e,t),r=this._rootElement.style;null==this._initialTransform&&(this._initialTransform=r.transform&&"none"!=r.transform?r.transform:""),r.transform=K4(i,this._initialTransform)}_applyPreviewTransform(e,t){const i=this._previewTemplate?.template?void 0:this._initialTransform,r=J4(e,t);this._preview.style.transform=K4(r,i)}_getDragDistance(e){const t=this._pickupPositionOnPage;return t?{x:e.x-t.x,y:e.y-t.y}:{x:0,y:0}}_cleanupCachedDimensions(){this._boundaryRect=this._previewRect=void 0,this._parentPositions.clear()}_containInsideBoundaryOnResize(){let{x:e,y:t}=this._passiveTransform;if(0===e&&0===t||this.isDragging()||!this._boundaryElement)return;const i=this._rootElement.getBoundingClientRect(),r=this._boundaryElement.getBoundingClientRect();if(0===r.width&&0===r.height||0===i.width&&0===i.height)return;const s=r.left-i.left,o=i.right-r.right,l=r.top-i.top,d=i.bottom-r.bottom;r.width>i.width?(s>0&&(e+=s),o>0&&(e-=o)):e=0,r.height>i.height?(l>0&&(t+=l),d>0&&(t-=d)):t=0,(e!==this._passiveTransform.x||t!==this._passiveTransform.y)&&this.setFreeDragPosition({y:t,x:e})}_getDragStartDelay(e){const t=this.dragStartDelay;return"number"==typeof t?t:qE(e)?t.touch:t?t.mouse:0}_updateOnScroll(e){const t=this._parentPositions.handleScroll(e);if(t){const i=pA(e);this._boundaryRect&&i!==this._boundaryElement&&i.contains(this._boundaryElement)&&GE(this._boundaryRect,t.top,t.left),this._pickupPositionOnPage.x+=t.left,this._pickupPositionOnPage.y+=t.top,this._dropContainer||(this._activeTransform.x-=t.left,this._activeTransform.y-=t.top,this._applyRootElementTransform(this._activeTransform.x,this._activeTransform.y))}}_getViewportScrollPosition(){return this._parentPositions.positions.get(this._document)?.scrollPosition||this._parentPositions.getViewportScrollPosition()}_getShadowRoot(){return void 0===this._cachedShadowRoot&&(this._cachedShadowRoot=lO(this._rootElement)),this._cachedShadowRoot}_getPreviewInsertionPoint(e,t){const i=this._previewContainer||"global";if("parent"===i)return e;if("global"===i){const r=this._document;return t||r.fullscreenElement||r.webkitFullscreenElement||r.mozFullScreenElement||r.msFullscreenElement||r.body}return uh(i)}_getPreviewRect(){return(!this._previewRect||!this._previewRect.width&&!this._previewRect.height)&&(this._previewRect=this._preview?this._preview.getBoundingClientRect():this._initialDomRect),this._previewRect}_getTargetHandle(e){return this._handles.find(t=>e.target&&(e.target===t||t.contains(e.target)))}}function J4(n,e){return`translate3d(${Math.round(n)}px, ${Math.round(e)}px, 0)`}function Nj(n,e,t){return Math.max(e,Math.min(t,n))}function qE(n){return"t"===n.type[0]}function Uj(n,e){const t=n.rootNodes;if(1===t.length&&t[0].nodeType===e.ELEMENT_NODE)return t[0];const i=e.createElement("div");return t.forEach(r=>i.appendChild(r)),i}function zj(n,e){n.style.width=`${e.width}px`,n.style.height=`${e.height}px`,n.style.transform=J4(e.left,e.top)}function QE(n,e){return Math.max(0,Math.min(e,n))}class Hye{constructor(e,t){this._element=e,this._dragDropRegistry=t,this._itemPositions=[],this.orientation="vertical",this._previousSwap={drag:null,delta:0,overlaps:!1}}start(e){this.withItems(e)}sort(e,t,i,r){const s=this._itemPositions,o=this._getItemIndexFromPointerPosition(e,t,i,r);if(-1===o&&s.length>0)return null;const l="horizontal"===this.orientation,d=s.findIndex(se=>se.drag===e),h=s[o],A=h.clientRect,S=d>o?1:-1,R=this._getItemOffsetPx(s[d].clientRect,A,S),G=this._getSiblingOffsetPx(d,s,S),re=s.slice();return function zye(n,e,t){const i=QE(e,n.length-1),r=QE(t,n.length-1);if(i===r)return;const s=n[i],o=r{if(re[le]===se)return;const Ee=se.drag===e,Ce=Ee?R:G,We=Ee?e.getPlaceholderElement():se.drag.getRootElement();se.offset+=Ce,l?(We.style.transform=K4(`translate3d(${Math.round(se.offset)}px, 0, 0)`,se.initialTransform),GE(se.clientRect,0,Ce)):(We.style.transform=K4(`translate3d(0, ${Math.round(se.offset)}px, 0)`,se.initialTransform),GE(se.clientRect,Ce,0))}),this._previousSwap.overlaps=oL(A,t,i),this._previousSwap.drag=h.drag,this._previousSwap.delta=l?r.x:r.y,{previousIndex:d,currentIndex:o}}enter(e,t,i,r){const s=null==r||r<0?this._getItemIndexFromPointerPosition(e,t,i):r,o=this._activeDraggables,l=o.indexOf(e),d=e.getPlaceholderElement();let h=o[s];if(h===e&&(h=o[s+1]),!h&&(null==s||-1===s||s-1&&o.splice(l,1),h&&!this._dragDropRegistry.isDragging(h)){const f=h.getRootElement();f.parentElement.insertBefore(d,f),o.splice(s,0,e)}else uh(this._element).appendChild(d),o.push(e);d.style.transform="",this._cacheItemPositions()}withItems(e){this._activeDraggables=e.slice(),this._cacheItemPositions()}withSortPredicate(e){this._sortPredicate=e}reset(){this._activeDraggables.forEach(e=>{const t=e.getRootElement();if(t){const i=this._itemPositions.find(r=>r.drag===e)?.initialTransform;t.style.transform=i||""}}),this._itemPositions=[],this._activeDraggables=[],this._previousSwap.drag=null,this._previousSwap.delta=0,this._previousSwap.overlaps=!1}getActiveItemsSnapshot(){return this._activeDraggables}getItemIndex(e){return("horizontal"===this.orientation&&"rtl"===this.direction?this._itemPositions.slice().reverse():this._itemPositions).findIndex(i=>i.drag===e)}updateOnScroll(e,t){this._itemPositions.forEach(({clientRect:i})=>{GE(i,e,t)}),this._itemPositions.forEach(({drag:i})=>{this._dragDropRegistry.isDragging(i)&&i._sortFromLastPointerPosition()})}_cacheItemPositions(){const e="horizontal"===this.orientation;this._itemPositions=this._activeDraggables.map(t=>{const i=t.getVisibleElement();return{drag:t,offset:0,initialTransform:i.style.transform||"",clientRect:sL(i)}}).sort((t,i)=>e?t.clientRect.left-i.clientRect.left:t.clientRect.top-i.clientRect.top)}_getItemOffsetPx(e,t,i){const r="horizontal"===this.orientation;let s=r?t.left-e.left:t.top-e.top;return-1===i&&(s+=r?t.width-e.width:t.height-e.height),s}_getSiblingOffsetPx(e,t,i){const r="horizontal"===this.orientation,s=t[e].clientRect,o=t[e+-1*i];let l=s[r?"width":"height"]*i;if(o){const d=r?"left":"top",h=r?"right":"bottom";-1===i?l-=o.clientRect[d]-s[h]:l+=s[d]-o.clientRect[h]}return l}_shouldEnterAsFirstChild(e,t){if(!this._activeDraggables.length)return!1;const i=this._itemPositions,r="horizontal"===this.orientation;if(i[0].drag!==this._activeDraggables[0]){const o=i[i.length-1].clientRect;return r?e>=o.right:t>=o.bottom}{const o=i[0].clientRect;return r?e<=o.left:t<=o.top}}_getItemIndexFromPointerPosition(e,t,i,r){const s="horizontal"===this.orientation,o=this._itemPositions.findIndex(({drag:l,clientRect:d})=>l!==e&&((!r||l!==this._previousSwap.drag||!this._previousSwap.overlaps||(s?r.x:r.y)!==this._previousSwap.delta)&&(s?t>=Math.floor(d.left)&&t=Math.floor(d.top)&&i!0,this.sortPredicate=()=>!0,this.beforeStarted=new un,this.entered=new un,this.exited=new un,this.dropped=new un,this.sorted=new un,this.receivingStarted=new un,this.receivingStopped=new un,this._isDragging=!1,this._draggables=[],this._siblings=[],this._activeSiblings=new Set,this._viewportScrollSubscription=rt.EMPTY,this._verticalScrollDirection=mA.NONE,this._horizontalScrollDirection=Nf.NONE,this._stopScrollTimers=new un,this._cachedShadowRoot=null,this._startScrollInterval=()=>{this._stopScrolling(),function Fye(n=0,e=TE){return n<0&&(n=0),I4(n,n,e)}(0,lW).pipe(Ql(this._stopScrollTimers)).subscribe(()=>{const o=this._scrollNode,l=this.autoScrollStep;this._verticalScrollDirection===mA.UP?o.scrollBy(0,-l):this._verticalScrollDirection===mA.DOWN&&o.scrollBy(0,l),this._horizontalScrollDirection===Nf.LEFT?o.scrollBy(-l,0):this._horizontalScrollDirection===Nf.RIGHT&&o.scrollBy(l,0)})},this.element=uh(e),this._document=i,this.withScrollableParents([this.element]),t.registerDropContainer(this),this._parentPositions=new Pj(i),this._sortStrategy=new Hye(this.element,t),this._sortStrategy.withSortPredicate((o,l)=>this.sortPredicate(o,l,this))}dispose(){this._stopScrolling(),this._stopScrollTimers.complete(),this._viewportScrollSubscription.unsubscribe(),this.beforeStarted.complete(),this.entered.complete(),this.exited.complete(),this.dropped.complete(),this.sorted.complete(),this.receivingStarted.complete(),this.receivingStopped.complete(),this._activeSiblings.clear(),this._scrollNode=null,this._parentPositions.clear(),this._dragDropRegistry.removeDropContainer(this)}isDragging(){return this._isDragging}start(){this._draggingStarted(),this._notifyReceivingSiblings()}enter(e,t,i,r){this._draggingStarted(),null==r&&this.sortingDisabled&&(r=this._draggables.indexOf(e)),this._sortStrategy.enter(e,t,i,r),this._cacheParentPositions(),this._notifyReceivingSiblings(),this.entered.next({item:e,container:this,currentIndex:this.getItemIndex(e)})}exit(e){this._reset(),this.exited.next({item:e,container:this})}drop(e,t,i,r,s,o,l,d={}){this._reset(),this.dropped.next({item:e,currentIndex:t,previousIndex:i,container:this,previousContainer:r,isPointerOverContainer:s,distance:o,dropPoint:l,event:d})}withItems(e){const t=this._draggables;return this._draggables=e,e.forEach(i=>i._withDropContainer(this)),this.isDragging()&&(t.filter(r=>r.isDragging()).every(r=>-1===e.indexOf(r))?this._reset():this._sortStrategy.withItems(this._draggables)),this}withDirection(e){return this._sortStrategy.direction=e,this}connectedTo(e){return this._siblings=e.slice(),this}withOrientation(e){return this._sortStrategy.orientation=e,this}withScrollableParents(e){const t=uh(this.element);return this._scrollableElements=-1===e.indexOf(t)?[t,...e]:e.slice(),this}getScrollableParents(){return this._scrollableElements}getItemIndex(e){return this._isDragging?this._sortStrategy.getItemIndex(e):this._draggables.indexOf(e)}isReceiving(){return this._activeSiblings.size>0}_sortItem(e,t,i,r){if(this.sortingDisabled||!this._domRect||!Bj(this._domRect,.05,t,i))return;const s=this._sortStrategy.sort(e,t,i,r);s&&this.sorted.next({previousIndex:s.previousIndex,currentIndex:s.currentIndex,container:this,item:e})}_startScrollingIfNecessary(e,t){if(this.autoScrollDisabled)return;let i,r=mA.NONE,s=Nf.NONE;if(this._parentPositions.positions.forEach((o,l)=>{l===this._document||!o.clientRect||i||Bj(o.clientRect,.05,e,t)&&([r,s]=function Gye(n,e,t,i,r){const s=Gj(e,r),o=qj(e,i);let l=mA.NONE,d=Nf.NONE;if(s){const h=n.scrollTop;s===mA.UP?h>0&&(l=mA.UP):n.scrollHeight-h>n.clientHeight&&(l=mA.DOWN)}if(o){const h=n.scrollLeft;"rtl"===t?o===Nf.RIGHT?h<0&&(d=Nf.RIGHT):n.scrollWidth+h>n.clientWidth&&(d=Nf.LEFT):o===Nf.LEFT?h>0&&(d=Nf.LEFT):n.scrollWidth-h>n.clientWidth&&(d=Nf.RIGHT)}return[l,d]}(l,o.clientRect,this._sortStrategy.direction,e,t),(r||s)&&(i=l))}),!r&&!s){const{width:o,height:l}=this._viewportRuler.getViewportSize(),d={width:o,height:l,top:0,right:o,bottom:l,left:0};r=Gj(d,t),s=qj(d,e),i=window}i&&(r!==this._verticalScrollDirection||s!==this._horizontalScrollDirection||i!==this._scrollNode)&&(this._verticalScrollDirection=r,this._horizontalScrollDirection=s,this._scrollNode=i,(r||s)&&i?this._ngZone.runOutsideAngular(this._startScrollInterval):this._stopScrolling())}_stopScrolling(){this._stopScrollTimers.next()}_draggingStarted(){const e=uh(this.element).style;this.beforeStarted.next(),this._isDragging=!0,this._initialScrollSnap=e.msScrollSnapType||e.scrollSnapType||"",e.scrollSnapType=e.msScrollSnapType="none",this._sortStrategy.start(this._draggables),this._cacheParentPositions(),this._viewportScrollSubscription.unsubscribe(),this._listenToScrollEvents()}_cacheParentPositions(){const e=uh(this.element);this._parentPositions.cache(this._scrollableElements),this._domRect=this._parentPositions.positions.get(e).clientRect}_reset(){this._isDragging=!1;const e=uh(this.element).style;e.scrollSnapType=e.msScrollSnapType=this._initialScrollSnap,this._siblings.forEach(t=>t._stopReceiving(this)),this._sortStrategy.reset(),this._stopScrolling(),this._viewportScrollSubscription.unsubscribe(),this._parentPositions.clear()}_isOverContainer(e,t){return null!=this._domRect&&oL(this._domRect,e,t)}_getSiblingContainerFromPosition(e,t,i){return this._siblings.find(r=>r._canReceive(e,t,i))}_canReceive(e,t,i){if(!this._domRect||!oL(this._domRect,t,i)||!this.enterPredicate(e,this))return!1;const r=this._getShadowRoot().elementFromPoint(t,i);if(!r)return!1;const s=uh(this.element);return r===s||s.contains(r)}_startReceiving(e,t){const i=this._activeSiblings;!i.has(e)&&t.every(r=>this.enterPredicate(r,this)||this._draggables.indexOf(r)>-1)&&(i.add(e),this._cacheParentPositions(),this._listenToScrollEvents(),this.receivingStarted.next({initiator:e,receiver:this,items:t}))}_stopReceiving(e){this._activeSiblings.delete(e),this._viewportScrollSubscription.unsubscribe(),this.receivingStopped.next({initiator:e,receiver:this})}_listenToScrollEvents(){this._viewportScrollSubscription=this._dragDropRegistry.scrolled(this._getShadowRoot()).subscribe(e=>{if(this.isDragging()){const t=this._parentPositions.handleScroll(e);t&&this._sortStrategy.updateOnScroll(t.top,t.left)}else this.isReceiving()&&this._cacheParentPositions()})}_getShadowRoot(){if(!this._cachedShadowRoot){const e=lO(uh(this.element));this._cachedShadowRoot=e||this._document}return this._cachedShadowRoot}_notifyReceivingSiblings(){const e=this._sortStrategy.getActiveItemsSnapshot().filter(t=>t.isDragging());this._siblings.forEach(t=>t._startReceiving(this,e))}}function Gj(n,e){const{top:t,bottom:i,height:r}=n,s=.05*r;return e>=t-s&&e<=t+s?mA.UP:e>=i-s&&e<=i+s?mA.DOWN:mA.NONE}function qj(n,e){const{left:t,right:i,width:r}=n,s=.05*r;return e>=t-s&&e<=t+s?Nf.LEFT:e>=i-s&&e<=i+s?Nf.RIGHT:Nf.NONE}const eB=P0({passive:!1,capture:!0});let qye=(()=>{class n{constructor(t,i){this._ngZone=t,this._dropInstances=new Set,this._dragInstances=new Set,this._activeDragInstances=[],this._globalListeners=new Map,this._draggingPredicate=r=>r.isDragging(),this.pointerMove=new un,this.pointerUp=new un,this.scroll=new un,this._preventDefaultWhileDragging=r=>{this._activeDragInstances.length>0&&r.preventDefault()},this._persistentTouchmoveListener=r=>{this._activeDragInstances.length>0&&(this._activeDragInstances.some(this._draggingPredicate)&&r.preventDefault(),this.pointerMove.next(r))},this._document=i}registerDropContainer(t){this._dropInstances.has(t)||this._dropInstances.add(t)}registerDragItem(t){this._dragInstances.add(t),1===this._dragInstances.size&&this._ngZone.runOutsideAngular(()=>{this._document.addEventListener("touchmove",this._persistentTouchmoveListener,eB)})}removeDropContainer(t){this._dropInstances.delete(t)}removeDragItem(t){this._dragInstances.delete(t),this.stopDragging(t),0===this._dragInstances.size&&this._document.removeEventListener("touchmove",this._persistentTouchmoveListener,eB)}startDragging(t,i){if(!(this._activeDragInstances.indexOf(t)>-1)&&(this._activeDragInstances.push(t),1===this._activeDragInstances.length)){const r=i.type.startsWith("touch");this._globalListeners.set(r?"touchend":"mouseup",{handler:s=>this.pointerUp.next(s),options:!0}).set("scroll",{handler:s=>this.scroll.next(s),options:!0}).set("selectstart",{handler:this._preventDefaultWhileDragging,options:eB}),r||this._globalListeners.set("mousemove",{handler:s=>this.pointerMove.next(s),options:eB}),this._ngZone.runOutsideAngular(()=>{this._globalListeners.forEach((s,o)=>{this._document.addEventListener(o,s.handler,s.options)})})}}stopDragging(t){const i=this._activeDragInstances.indexOf(t);i>-1&&(this._activeDragInstances.splice(i,1),0===this._activeDragInstances.length&&this._clearGlobalListeners())}isDragging(t){return this._activeDragInstances.indexOf(t)>-1}scrolled(t){const i=[this.scroll];return t&&t!==this._document&&i.push(new Pe(r=>this._ngZone.runOutsideAngular(()=>{const o=l=>{this._activeDragInstances.length&&r.next(l)};return t.addEventListener("scroll",o,!0),()=>{t.removeEventListener("scroll",o,!0)}}))),gm(...i)}ngOnDestroy(){this._dragInstances.forEach(t=>this.removeDragItem(t)),this._dropInstances.forEach(t=>this.removeDropContainer(t)),this._clearGlobalListeners(),this.pointerMove.complete(),this.pointerUp.complete()}_clearGlobalListeners(){this._globalListeners.forEach((t,i)=>{this._document.removeEventListener(i,t.handler,t.options)}),this._globalListeners.clear()}static#e=this.\u0275fac=function(i){return new(i||n)(xi(io),xi(ba))};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();const Qye={dragStartThreshold:5,pointerDirectionChangeThreshold:5};let lL=(()=>{class n{constructor(t,i,r,s){this._document=t,this._ngZone=i,this._viewportRuler=r,this._dragDropRegistry=s}createDrag(t,i=Qye){return new Uye(t,i,this._document,this._ngZone,this._viewportRuler,this._dragDropRegistry)}createDropList(t){return new Vye(t,this._dragDropRegistry,this._document,this._ngZone,this._viewportRuler)}static#e=this.\u0275fac=function(i){return new(i||n)(xi(ba),xi(io),xi(OE),xi(qye))};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();const WE=new Bi("CDK_DRAG_PARENT"),Qj=new Bi("CdkDragHandle");let Wj=(()=>{class n{get disabled(){return this._disabled}set disabled(t){this._disabled=t,this._stateChanges.next(this)}constructor(t,i){this.element=t,this._parentDrag=i,this._stateChanges=new un,this._disabled=!1,i?._addHandle(this)}ngOnDestroy(){this._parentDrag?._removeHandle(this),this._stateChanges.complete()}static#e=this.\u0275fac=function(i){return new(i||n)(Lt(oo),Lt(WE,12))};static#t=this.\u0275dir=Ft({type:n,selectors:[["","cdkDragHandle",""]],hostAttrs:[1,"cdk-drag-handle"],inputs:{disabled:[mi.HasDecoratorInputTransform,"cdkDragHandleDisabled","disabled",_o]},standalone:!0,features:[qo([{provide:Qj,useExisting:n}]),ql]})}return n})();const jj=new Bi("CDK_DRAG_CONFIG"),$j=new Bi("CdkDropList");let cL=(()=>{class n{static#e=this._dragInstances=[];get disabled(){return this._disabled||this.dropContainer&&this.dropContainer.disabled}set disabled(t){this._disabled=t,this._dragRef.disabled=this._disabled}constructor(t,i,r,s,o,l,d,h,f,A,S){this.element=t,this.dropContainer=i,this._ngZone=s,this._viewContainerRef=o,this._dir=d,this._changeDetectorRef=f,this._selfHandle=A,this._parentDrag=S,this._destroyed=new un,this._handles=new cn([]),this.started=new Ls,this.released=new Ls,this.ended=new Ls,this.entered=new Ls,this.exited=new Ls,this.dropped=new Ls,this.moved=new Pe(R=>{const G=this._dragRef.moved.pipe(bi(re=>({source:this,pointerPosition:re.pointerPosition,event:re.event,delta:re.delta,distance:re.distance}))).subscribe(R);return()=>{G.unsubscribe()}}),this._dragRef=h.createDrag(t,{dragStartThreshold:l&&null!=l.dragStartThreshold?l.dragStartThreshold:5,pointerDirectionChangeThreshold:l&&null!=l.pointerDirectionChangeThreshold?l.pointerDirectionChangeThreshold:5,zIndex:l?.zIndex}),this._dragRef.data=this,n._dragInstances.push(this),l&&this._assignDefaults(l),i&&(this._dragRef._withDropContainer(i._dropListRef),i.addItem(this)),this._syncInputs(this._dragRef),this._handleEvents(this._dragRef)}getPlaceholderElement(){return this._dragRef.getPlaceholderElement()}getRootElement(){return this._dragRef.getRootElement()}reset(){this._dragRef.reset()}getFreeDragPosition(){return this._dragRef.getFreeDragPosition()}setFreeDragPosition(t){this._dragRef.setFreeDragPosition(t)}ngAfterViewInit(){this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.pipe(ad(1),Ql(this._destroyed)).subscribe(()=>{this._updateRootElement(),this._setupHandlesListener(),this.freeDragPosition&&this._dragRef.setFreeDragPosition(this.freeDragPosition)})})}ngOnChanges(t){const i=t.rootElementSelector,r=t.freeDragPosition;i&&!i.firstChange&&this._updateRootElement(),r&&!r.firstChange&&this.freeDragPosition&&this._dragRef.setFreeDragPosition(this.freeDragPosition)}ngOnDestroy(){this.dropContainer&&this.dropContainer.removeItem(this);const t=n._dragInstances.indexOf(this);t>-1&&n._dragInstances.splice(t,1),this._ngZone.runOutsideAngular(()=>{this._handles.complete(),this._destroyed.next(),this._destroyed.complete(),this._dragRef.dispose()})}_addHandle(t){const i=this._handles.getValue();i.push(t),this._handles.next(i)}_removeHandle(t){const i=this._handles.getValue(),r=i.indexOf(t);r>-1&&(i.splice(r,1),this._handles.next(i))}_setPreviewTemplate(t){this._previewTemplate=t}_resetPreviewTemplate(t){t===this._previewTemplate&&(this._previewTemplate=null)}_setPlaceholderTemplate(t){this._placeholderTemplate=t}_resetPlaceholderTemplate(t){t===this._placeholderTemplate&&(this._placeholderTemplate=null)}_updateRootElement(){const t=this.element.nativeElement;let i=t;this.rootElementSelector&&(i=void 0!==t.closest?t.closest(this.rootElementSelector):t.parentElement?.closest(this.rootElementSelector)),this._dragRef.withRootElement(i||t)}_getBoundaryElement(){const t=this.boundaryElement;return t?"string"==typeof t?this.element.nativeElement.closest(t):uh(t):null}_syncInputs(t){t.beforeStarted.subscribe(()=>{if(!t.isDragging()){const i=this._dir,r=this.dragStartDelay,s=this._placeholderTemplate?{template:this._placeholderTemplate.templateRef,context:this._placeholderTemplate.data,viewContainer:this._viewContainerRef}:null,o=this._previewTemplate?{template:this._previewTemplate.templateRef,context:this._previewTemplate.data,matchSize:this._previewTemplate.matchSize,viewContainer:this._viewContainerRef}:null;t.disabled=this.disabled,t.lockAxis=this.lockAxis,t.dragStartDelay="object"==typeof r&&r?r:hx(r),t.constrainPosition=this.constrainPosition,t.previewClass=this.previewClass,t.withBoundaryElement(this._getBoundaryElement()).withPlaceholderTemplate(s).withPreviewTemplate(o).withPreviewContainer(this.previewContainer||"global"),i&&t.withDirection(i.value)}}),t.beforeStarted.pipe(ad(1)).subscribe(()=>{if(this._parentDrag)return void t.withParent(this._parentDrag._dragRef);let i=this.element.nativeElement.parentElement;for(;i;){if(i.classList.contains("cdk-drag")){t.withParent(n._dragInstances.find(r=>r.element.nativeElement===i)?._dragRef||null);break}i=i.parentElement}})}_handleEvents(t){t.started.subscribe(i=>{this.started.emit({source:this,event:i.event}),this._changeDetectorRef.markForCheck()}),t.released.subscribe(i=>{this.released.emit({source:this,event:i.event})}),t.ended.subscribe(i=>{this.ended.emit({source:this,distance:i.distance,dropPoint:i.dropPoint,event:i.event}),this._changeDetectorRef.markForCheck()}),t.entered.subscribe(i=>{this.entered.emit({container:i.container.data,item:this,currentIndex:i.currentIndex})}),t.exited.subscribe(i=>{this.exited.emit({container:i.container.data,item:this})}),t.dropped.subscribe(i=>{this.dropped.emit({previousIndex:i.previousIndex,currentIndex:i.currentIndex,previousContainer:i.previousContainer.data,container:i.container.data,isPointerOverContainer:i.isPointerOverContainer,item:this,distance:i.distance,dropPoint:i.dropPoint,event:i.event})})}_assignDefaults(t){const{lockAxis:i,dragStartDelay:r,constrainPosition:s,previewClass:o,boundaryElement:l,draggingDisabled:d,rootElementSelector:h,previewContainer:f}=t;this.disabled=d??!1,this.dragStartDelay=r||0,i&&(this.lockAxis=i),s&&(this.constrainPosition=s),o&&(this.previewClass=o),l&&(this.boundaryElement=l),h&&(this.rootElementSelector=h),f&&(this.previewContainer=f)}_setupHandlesListener(){this._handles.pipe(lh(t=>{const i=t.map(r=>r.element);this._selfHandle&&this.rootElementSelector&&i.push(this.element),this._dragRef.withHandles(i)}),Df(t=>gm(...t.map(i=>i._stateChanges.pipe(sA(i))))),Ql(this._destroyed)).subscribe(t=>{const i=this._dragRef,r=t.element.nativeElement;t.disabled?i.disableHandle(r):i.enableHandle(r)})}static#t=this.\u0275fac=function(i){return new(i||n)(Lt(oo),Lt($j,12),Lt(ba),Lt(io),Lt(fs),Lt(jj,8),Lt(_m,8),Lt(lL),Lt(Sc),Lt(Qj,10),Lt(WE,12))};static#n=this.\u0275dir=Ft({type:n,selectors:[["","cdkDrag",""]],hostAttrs:[1,"cdk-drag"],hostVars:4,hostBindings:function(i,r){2&i&&Ja("cdk-drag-disabled",r.disabled)("cdk-drag-dragging",r._dragRef.isDragging())},inputs:{data:[mi.None,"cdkDragData","data"],lockAxis:[mi.None,"cdkDragLockAxis","lockAxis"],rootElementSelector:[mi.None,"cdkDragRootElement","rootElementSelector"],boundaryElement:[mi.None,"cdkDragBoundary","boundaryElement"],dragStartDelay:[mi.None,"cdkDragStartDelay","dragStartDelay"],freeDragPosition:[mi.None,"cdkDragFreeDragPosition","freeDragPosition"],disabled:[mi.HasDecoratorInputTransform,"cdkDragDisabled","disabled",_o],constrainPosition:[mi.None,"cdkDragConstrainPosition","constrainPosition"],previewClass:[mi.None,"cdkDragPreviewClass","previewClass"],previewContainer:[mi.None,"cdkDragPreviewContainer","previewContainer"]},outputs:{started:"cdkDragStarted",released:"cdkDragReleased",ended:"cdkDragEnded",entered:"cdkDragEntered",exited:"cdkDragExited",dropped:"cdkDragDropped",moved:"cdkDragMoved"},exportAs:["cdkDrag"],standalone:!0,features:[qo([{provide:WE,useExisting:n}]),ql,kl]})}return n})(),Jye=(()=>{class n{static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275mod=vo({type:n});static#n=this.\u0275inj=ra({providers:[lL],imports:[LE]})}return n})();const eve=["overlayCard"],tve=["resizeHandleCorner"],nve=["*"],ive=n=>({"with-body":n}),rve=n=>({expand:n}),sve=n=>({"transparent-bg":n});function ove(n,e){if(1&n&&(Gt(0,"div",11),Fl(),Gt(1,"svg"),Vr(2,"use"),dn()()),2&n){const t=Pr(2);jn(2),Lw("href","assets/icons/",t.icon,".svg#",t.icon,"")}}function ave(n,e){if(1&n){const t=ta();Gt(0,"div",6),zs(1,ove,3,3,"div",7),Gt(2,"h5",8),qi(3),dn(),Gt(4,"button",9),Ai("click",function(){Ci(t);const r=Pr();return Mi(r.showBody=!r.showBody)}),Fl(),Gt(5,"svg"),Vr(6,"use",10),dn()()()}if(2&n){const t=Pr();Qn("ngClass",Ou(4,ive,t.showBody)),jn(),Qn("ngIf",t.icon),jn(2),tA(t.overlayTitle),jn(),Qn("ngClass",Ou(6,rve,t.showBody))}}function lve(n,e){if(1&n&&(Gt(0,"div",12),ih(1),dn()),2&n){const t=Pr();Qn("ngClass",Ou(1,sve,t.transparentBody))}}function cve(n,e){if(1&n){const t=ta();Gt(0,"span",13,1),Ai("cdkDragMoved",function(){return Ci(t),Mi(Pr().onResize())}),dn()}2&n&&Qn("hidden",!Pr().showBody)}let IC=(()=>{class n{overlayTitle;active=!1;icon;resizable=!1;transparentBody=!1;keepAspectRatioFixed=!1;showBody=!0;aspectRatio=window.innerWidth/window.innerHeight;overlayCard;resizeHandleCorner;MIN_RES_WIDTH=300;MIN_RES_HEIGHT=100;ngAfterViewInit(){if(this.resizable){const t=this.resizeHandleCorner.nativeElement;t.style.bottom="0",t.style.right="0",new kye.ResizeSensor(this.overlayCard.nativeElement,()=>{this.resetHandlePosition()}),window.addEventListener("resize",()=>{this.resetHandlePosition()})}}onResize(){const i=this.overlayCard.nativeElement,r=this.resizeHandleCorner.nativeElement.getBoundingClientRect(),s=i.getBoundingClientRect(),o=r.left-s.left+r.width,l=r.top-s.top+r.height;this.setHandleTransform(s,r),o>this.MIN_RES_WIDTH&&l>this.MIN_RES_HEIGHT&&(i.style.width=o+"px",i.style.height=this.keepAspectRatioFixed?o/this.aspectRatio+30+"px":l+"px")}resetHandlePosition(){const t=this.resizeHandleCorner.nativeElement;this.setHandleTransform(this.overlayCard.nativeElement.getBoundingClientRect(),t.getBoundingClientRect()),t.style.bottom=null,t.style.right=null}setHandleTransform(t,i){this.resizeHandleCorner.nativeElement.style.transform=`translate3d(${t.width-i.width}px, ${t.height-i.height}px, 0)`}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=rs({type:n,selectors:[["app-overlay"]],viewQuery:function(i,r){if(1&i&&(_l(eve,5),_l(tve,5)),2&i){let s;pa(s=ma())&&(r.overlayCard=s.first),pa(s=ma())&&(r.resizeHandleCorner=s.first)}},inputs:{overlayTitle:"overlayTitle",active:"active",icon:"icon",resizable:"resizable",transparentBody:"transparentBody",keepAspectRatioFixed:"keepAspectRatioFixed"},ngContentSelectors:nve,decls:5,vars:4,consts:[["overlayCard",""],["resizeHandleCorner",""],["cdkDrag","","cdkDragBoundary","body",1,"overlay-card","card",3,"hidden"],["class","card-header d-flex justify-content-between","cdkDragHandle","",3,"ngClass",4,"ngIf"],["class","overlay-card-content",3,"ngClass",4,"ngIf"],["class","resize-handle corner","cdkDrag","",3,"hidden","cdkDragMoved",4,"ngIf"],["cdkDragHandle","",1,"card-header","d-flex","justify-content-between",3,"ngClass"],["class","align-self-center card-icon",4,"ngIf"],[1,"align-self-center","m-0","px-2"],["matTooltip","Expand / Collapse","matTooltipPosition","right",1,"align-self-center","card-icon","btn-blank","expandCollapse",3,"click","ngClass"],["href","assets/icons/expand.svg#expand"],[1,"align-self-center","card-icon"],[1,"overlay-card-content",3,"ngClass"],["cdkDrag","",1,"resize-handle","corner",3,"cdkDragMoved","hidden"]],template:function(i,r){1&i&&(yu(),Gt(0,"div",2,0),zs(2,ave,7,8,"div",3)(3,lve,2,3,"div",4)(4,cve,2,1,"span",5),dn()),2&i&&(Qn("hidden",!r.active),jn(2),Qn("ngIf",r.overlayTitle),jn(),Qn("ngIf",r.showBody),jn(),Qn("ngIf",r.resizable))},dependencies:[om,Lu,cL,Wj,a1],styles:[".overlay-card.card{color:var(--phoenix-text-color);background:none;max-width:100vw;font-size:12px;min-width:300px;height:100%;max-height:70vh;box-shadow:none;border:none;position:relative;z-index:200}.overlay-card.card .card-header{width:12rem;background:var(--phoenix-background-color-secondary);box-shadow:var(--phoenix-box-shadow);padding:.4rem .8rem;border-radius:10px;border:none;cursor:move;text-align:center;transition:all .2s}.overlay-card.card .card-header.with-body{border-bottom-left-radius:0;border-bottom-right-radius:0}.overlay-card.card .card-header .card-icon{display:flex;height:.7rem;width:.7rem}.overlay-card.card .card-header h5{font-size:.9rem}.overlay-card.card .card-header .expandCollapse{cursor:pointer;transition:all .2s}.overlay-card.card .card-header .expandCollapse.expand{transform:scaleY(-1)}.overlay-card.card .card-header .expandCollapse svg{width:100%;height:100%}.overlay-card.card .overlay-card-content{background:var(--phoenix-background-color-secondary);box-shadow:var(--phoenix-box-shadow);border-radius:0 10px 10px;overflow:auto;height:100%}.overlay-card.card .overlay-card-content.transparent-bg{background:none}.overlay-card.card .list-group{color:var(--phoenix-text-color-secondary);background:var(--phoenix-background-color-secondary);max-height:40vh;overflow:auto}.overlay-card.card .list-group .list-group-item{background-color:var(--phoenix-background-color-secondary);border-color:var(--phoenix-border)}.overlay-card.card .resize-handle{width:1rem;height:1rem;cursor:nwse-resize;position:absolute}.overlay-card.card .resize-handle.corner{border-right:.2rem solid var(--phoenix-text-color);border-bottom:.2rem solid var(--phoenix-text-color)}\n"],encapsulation:2})}return n})();const dve=(n,e,t)=>({"active-object":n,"is-cut":e,"d-none":t});function hve(n,e){if(1&n&&(Gt(0,"option",15),qi(1),dn()),2&n){const t=e.$implicit;Qn("value",t),jn(),yl(" ",t," ")}}function uve(n,e){if(1&n){const t=ta();Gt(0,"mat-checkbox",16),Ai("change",function(r){return Ci(t),Mi(Pr(3).toggleInvisible(r.checked))}),qi(1," Hide Invisible Objects "),dn()}}function fve(n,e){if(1&n){const t=ta();Gt(0,"div",7)(1,"div",8)(2,"span"),qi(3,"Choose a collection: "),dn(),Gt(4,"div",9)(5,"label",10),qi(6,"Event"),dn(),Gt(7,"select",11),Ai("change",function(r){return Ci(t),Mi(Pr(2).changeCollection(r.target.value))}),Gt(8,"option",12),qi(9,"Choose Collection"),dn(),zs(10,hve,2,2,"option",13),dn()(),zs(11,uve,2,0,"mat-checkbox",14),dn()()}if(2&n){const t=Pr(2);jn(10),Qn("ngForOf",t.collections),jn(),Qn("ngIf",t.showingCollection)}}function pve(n,e){if(1&n){const t=ta();Gt(0,"th")(1,"div",20)(2,"div"),qi(3),dn(),Gt(4,"div",21)(5,"button",22),Ai("click",function(){const r=Ci(t).$implicit;return Mi(Pr(3).sort(r,"dec"))}),Fl(),Gt(6,"svg"),Vr(7,"use",23),dn()(),Du(),Gt(8,"button",24),Ai("click",function(){const r=Ci(t).$implicit;return Mi(Pr(3).sort(r,"asc"))}),Fl(),Gt(9,"svg"),Vr(10,"use",23),dn()()()()()}if(2&n){const t=e.$implicit,i=Pr(3);jn(3),yl(" ",i.getPrettySymbol(t)," ")}}function mve(n,e){if(1&n){const t=ta();Gt(0,"div",33)(1,"button",34),Ai("click",function(){Ci(t);const r=Pr().$implicit;return Mi(Pr(3).lookAtObject(r.uuid))}),Fl(),Gt(2,"svg"),Vr(3,"use",35),dn()(),Du(),Gt(4,"button",36),Ai("click",function(){Ci(t);const r=Pr().$implicit;return Mi(Pr(3).highlightObject(r.uuid))}),Fl(),Gt(5,"svg"),Vr(6,"use",37),dn()()()}}function Ave(n,e){if(1&n&&(Gt(0,"td"),qi(1),dn()),2&n){const t=e.$implicit,i=Pr().$implicit;jn(),yl(" ",i[t]," ")}}function gve(n,e){if(1&n){const t=ta();Gt(0,"tr",25)(1,"td"),qi(2),dn(),Gt(3,"td"),zs(4,mve,7,0,"div",26),dn(),Gt(5,"td")(6,"div",27)(7,"div",28),Vr(8,"input",29),dn(),Gt(9,"div",30)(10,"button",31),Ai("click",function(){const r=Ci(t),s=r.$implicit,o=r.index;return Mi(Pr(3).addLabel(o,s.uuid))}),Fl(),Gt(11,"svg"),Vr(12,"use",32),dn()()()()(),zs(13,Ave,2,1,"td",18),dn()}if(2&n){const t=e.$implicit,i=e.index,r=Pr(3);Qn("ngClass",U6(6,dve,r.activeObject&&r.activeObject.value===t.uuid,t.isCut,t.isCut&&r.hideInvisible)),sl("id",t.uuid),jn(2),yl("#",i,""),jn(2),Qn("ngIf",t.uuid),jn(4),Qn("id","label"+i),jn(5),Qn("ngForOf",r.collectionColumns)}}function _ve(n,e){if(1&n&&(Gt(0,"table",17)(1,"thead")(2,"tr")(3,"th"),qi(4,"No."),dn(),Gt(5,"th"),qi(6,"Selection"),dn(),Gt(7,"th"),qi(8,"Label"),dn(),zs(9,pve,11,1,"th",18),dn()(),Gt(10,"tbody"),zs(11,gve,14,10,"tr",19),dn()()),2&n){const t=Pr(2);jn(9),Qn("ngForOf",t.collectionColumns),jn(2),Qn("ngForOf",t.showingCollection)}}function yve(n,e){1&n&&(Gt(0,"p",38),qi(1," Load event data to be able to display information about the collections here. "),dn())}function vve(n,e){if(1&n&&(Gt(0,"div",2),zs(1,fve,12,2,"div",3),Gt(2,"div",4),zs(3,_ve,12,2,"table",5)(4,yve,2,0,"p",6),dn()()),2&n){const t=Pr();jn(),Qn("ngIf",null!=t.collections),jn(2),Qn("ngIf",t.showingCollection),jn(),Qn("ngIf",!t.collections)}}let Xj=(()=>{class n{elementRef;eventDisplay;showObjectsInfo;hideInvisible;collections;selectedCollection;showingCollection;collectionColumns;getPrettySymbol=Xy.getPrettySymbol;activeObject;constructor(t,i){this.elementRef=t,this.eventDisplay=i}ngOnInit(){this.eventDisplay.listenToDisplayedEventChange(t=>this.collections=this.eventDisplay.getCollections()),this.activeObject=this.eventDisplay.getActiveObjectId(),this.activeObject.onUpdate(t=>{document.getElementById(t)&&document.getElementById(t).scrollIntoView(!1)})}changeCollection(t){const i=this.getEventDataGroup();this.selectedCollection=t,this.showingCollection=this.eventDisplay.getCollection(t).map(r=>({...r,isCut:!i.getObjectByProperty("uuid",r.uuid)?.visible})),this.collectionColumns=Object.keys(this.showingCollection[0]).filter(r=>!["uuid","hits","isCut"].includes(r))}sort(t,i){this.showingCollection.sort("asc"===i?(r,s)=>r[t]r[t]>s[t]?-1:1)}lookAtObject(t){t&&(this.activeObject.update(t),this.eventDisplay.lookAtObject(t))}highlightObject(t){t&&(this.activeObject.update(t),this.eventDisplay.highlightObject(t))}enableHighlighting(){this.eventDisplay.enableHighlighting()}disableHighlighting(){this.eventDisplay.disableHighlighting()}toggleInvisible(t){this.hideInvisible=t}addLabel(t,i){const r=this.elementRef.nativeElement.querySelector(`#label${t}`).value;this.selectedCollection&&this.eventDisplay.addLabelToObject(r,this.selectedCollection,t,i)}getEventDataGroup(){return this.eventDisplay.getThreeManager().getSceneManager().getScene().getObjectByName(el.EVENT_DATA_ID)}static \u0275fac=function(i){return new(i||n)(Lt(oo),Lt(Al))};static \u0275cmp=rs({type:n,selectors:[["app-collections-info-overlay"]],inputs:{showObjectsInfo:"showObjectsInfo"},decls:2,vars:3,consts:[["overlayTitle","Collections Info","icon","info",3,"resizable","active"],["class","collectionsInfo m-2",4,"ngIf"],[1,"collectionsInfo","m-2"],["class","collectionSelector mb-2 d-flex align-items-center",4,"ngIf"],[1,"boxBody","table-responsive"],["id","collectionTable","class","table table-borderless table-sm",4,"ngIf"],["class","emptyBox",4,"ngIf"],[1,"collectionSelector","mb-2","d-flex","align-items-center"],[1,"d-flex","align-items-center"],[1,"eventSelector"],["for","event"],["id","collection","name","collection",3,"change"],["value","","selected","","disabled","","hidden",""],[3,"value",4,"ngFor","ngForOf"],[3,"change",4,"ngIf"],[3,"value"],[3,"change"],["id","collectionTable",1,"table","table-borderless","table-sm"],[4,"ngFor","ngForOf"],[3,"ngClass",4,"ngFor","ngForOf"],[1,"head-wrapper"],[1,"sort-options"],[1,"icon-wrapper","icon-button","btn-blank","up",3,"click"],["href","assets/icons/expand.svg#expand"],[1,"icon-wrapper","icon-button","btn-blank",3,"click"],[3,"ngClass"],["class","row justify-content-center icon-wrapper",4,"ngIf"],[1,"row","m-0","add-label"],[1,"col-10","p-0"],["type","text",1,"form-control","form-control-sm",3,"id"],[1,"col-2","p-0","pl-2","text-center","icon-wrapper"],["matTooltip","Add, update or remove object label",1,"object-select","btn-blank",3,"click"],["href","assets/icons/update.svg#update"],[1,"row","justify-content-center","icon-wrapper"],["matTooltip","Move camera to object",1,"object-select","btn-blank",3,"click"],["href","assets/icons/views.svg#views"],["matTooltip","Highlight object",1,"object-select","btn-blank",3,"click"],["href","assets/icons/cursor.svg#cursor"],[1,"emptyBox"]],template:function(i,r){1&i&&(Gt(0,"app-overlay",0),zs(1,vve,5,3,"div",1),dn()),2&i&&(Qn("resizable",!0)("active",r.showObjectsInfo),jn(),Qn("ngIf",r.showObjectsInfo))},dependencies:[om,am,Lu,a1,EC,TC,rv,IC],styles:[".collectionsInfo[_ngcontent-%COMP%]{height:95%}.collectionsInfo[_ngcontent-%COMP%] .collectionSelector[_ngcontent-%COMP%]{height:15%;min-height:2rem}.collectionsInfo[_ngcontent-%COMP%] .collectionSelector[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{color:var(--phoenix-text-color-secondary);margin-right:1rem}.collectionsInfo[_ngcontent-%COMP%] .collectionSelector[_ngcontent-%COMP%] mat-checkbox[_ngcontent-%COMP%]{margin-left:1rem}.boxBody[_ngcontent-%COMP%]{height:85%;overflow:scroll}.boxBody[_ngcontent-%COMP%] p.emptyBox[_ngcontent-%COMP%]{max-width:21em}.boxBody[_ngcontent-%COMP%] .add-label[_ngcontent-%COMP%]{min-width:8rem}.boxBody[_ngcontent-%COMP%] .add-label[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{padding:.1rem .3rem;font-size:.75rem}#collectionTable[_ngcontent-%COMP%]{position:relative;color:var(--phoenix-text-color-secondary)}#collectionTable[_ngcontent-%COMP%] thead[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{position:sticky;top:0;z-index:100;background:var(--phoenix-background-color-secondary)}#collectionTable[_ngcontent-%COMP%] thead[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] th[_ngcontent-%COMP%] .head-wrapper[_ngcontent-%COMP%]{display:flex;align-items:center}#collectionTable[_ngcontent-%COMP%] thead[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] th[_ngcontent-%COMP%] .head-wrapper[_ngcontent-%COMP%] .sort-options[_ngcontent-%COMP%]{display:flex;flex-direction:row}#collectionTable[_ngcontent-%COMP%] thead[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] th[_ngcontent-%COMP%] .head-wrapper[_ngcontent-%COMP%] .sort-options[_ngcontent-%COMP%] .icon-wrapper[_ngcontent-%COMP%]{display:flex;width:1rem;height:1rem;padding:.2rem}#collectionTable[_ngcontent-%COMP%] thead[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] th[_ngcontent-%COMP%] .head-wrapper[_ngcontent-%COMP%] .sort-options[_ngcontent-%COMP%] .icon-wrapper.up[_ngcontent-%COMP%]{transform:rotate(180deg)}#collectionTable[_ngcontent-%COMP%] thead[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] th[_ngcontent-%COMP%] .head-wrapper[_ngcontent-%COMP%] .sort-options[_ngcontent-%COMP%] .icon-wrapper[_ngcontent-%COMP%] svg[_ngcontent-%COMP%]{width:100%;height:100%}#collectionTable[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] *[_ngcontent-%COMP%]{padding-right:1.2rem}#collectionTable[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] *[_ngcontent-%COMP%]:last-child{padding-right:0}#collectionTable[_ngcontent-%COMP%] tr.is-cut[_ngcontent-%COMP%]{opacity:.5}#collectionTable[_ngcontent-%COMP%] tr.active-object[_ngcontent-%COMP%]{color:var(--phoenix-background-color);background:var(--phoenix-text-color);box-shadow:0 0 15px var(--phoenix-text-color)}#collectionTable[_ngcontent-%COMP%] tr.active-object[_ngcontent-%COMP%] div.icon-wrapper[_ngcontent-%COMP%]{--phoenix-options-icon-path: var(--phoenix-background-color);--phoenix-options-icon-bg: var(--phoenix-text-color-hover)}#collectionTable[_ngcontent-%COMP%] tr.active-object[_ngcontent-%COMP%] .add-label[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{--phoenix-text-color: var(--phoenix-background-color);--phoenix-background-color-tertiary: var( --phoenix-text-color-secondary );--phoenix-border: var(--phoenix-background-color)}#collectionTable[_ngcontent-%COMP%] td[_ngcontent-%COMP%] .object-select[_ngcontent-%COMP%]{position:relative;width:1.6rem;height:1.6rem;margin-right:.4em;text-align:center;background-color:var(--phoenix-options-icon-bg);border-radius:10px;cursor:pointer}#collectionTable[_ngcontent-%COMP%] td[_ngcontent-%COMP%] .object-select[_ngcontent-%COMP%]:last-child{margin-right:0}#collectionTable[_ngcontent-%COMP%] td[_ngcontent-%COMP%] .object-select[_ngcontent-%COMP%]:hover{border:1px solid var(--phoenix-options-icon-path)}#collectionTable[_ngcontent-%COMP%] td[_ngcontent-%COMP%] .object-select[_ngcontent-%COMP%] svg[_ngcontent-%COMP%]{position:absolute;top:0;left:0;padding:.4rem;width:100%;height:100%;vertical-align:top}.eventSelector[_ngcontent-%COMP%]{display:flex}.eventSelector[_ngcontent-%COMP%] label[_ngcontent-%COMP%]{display:none;color:var(--phoenix-text-color-secondary)}.eventSelector[_ngcontent-%COMP%] select[_ngcontent-%COMP%]{width:9rem;padding:5px 10px;font-size:12px;border:1px solid rgba(88,88,88,.08);box-shadow:var(--phoenix-icon-shadow);background-color:var(--phoenix-background-color-tertiary);color:var(--phoenix-text-color-secondary)}"]})}return n})(),hL=(()=>{class n{overlay;showObjectsInfo=!1;overlayWindow;constructor(t){this.overlay=t}ngOnInit(){const t=this.overlay.create(),i=new t1(Xj);this.overlayWindow=t.attach(i),this.overlayWindow.instance.showObjectsInfo=this.showObjectsInfo}ngOnDestroy(){this.overlayWindow.destroy()}toggleOverlay(){this.showObjectsInfo=!this.showObjectsInfo,this.overlayWindow.instance.showObjectsInfo=this.showObjectsInfo,this.showObjectsInfo?this.overlayWindow.instance.enableHighlighting():this.overlayWindow.instance.disableHighlighting()}static \u0275fac=function(i){return new(i||n)(Lt(fh))};static \u0275cmp=rs({type:n,selectors:[["app-collections-info"]],decls:1,vars:1,consts:[["tooltip","Event data collections info","icon","info",3,"click","active"]],template:function(i,r){1&i&&(Gt(0,"app-menu-toggle",0),Ai("click",function(){return r.toggleOverlay()}),dn()),2&i&&Qn("active",r.showObjectsInfo)},dependencies:[qc]})}return n})();const bve=n=>({"active-object":n});function xve(n,e){if(1&n&&(Gt(0,"option",13),qi(1),dn()),2&n){const t=e.$implicit;Qn("value",t.name),jn(),yl(" ",t.name," ")}}function wve(n,e){if(1&n){const t=ta();Gt(0,"div",7)(1,"div",8)(2,"span"),qi(3,"Choose a collection: "),dn(),Gt(4,"div",9)(5,"select",10),Ai("change",function(r){return Ci(t),Mi(Pr(2).changeCollection(r.target.value))}),Gt(6,"option",11),qi(7,"Choose Collection"),dn(),zs(8,xve,2,2,"option",12),dn()()()()}if(2&n){const t=Pr(2);jn(8),Qn("ngForOf",t.children)}}function Cve(n,e){if(1&n){const t=ta();Gt(0,"div",18)(1,"button",19),Ai("click",function(){Ci(t);const r=Pr().$implicit;return Mi(Pr(3).lookAtObject(r.uuid))}),Fl(),Gt(2,"svg"),Vr(3,"use",20),dn()(),Du(),Gt(4,"button",21),Ai("click",function(){Ci(t);const r=Pr().$implicit;return Mi(Pr(3).highlightObject(r.uuid))}),Fl(),Gt(5,"svg"),Vr(6,"use",22),dn()()()}}function Mve(n,e){if(1&n&&(Gt(0,"tr",16)(1,"td"),qi(2),dn(),Gt(3,"td"),zs(4,Cve,7,0,"div",17),dn()()),2&n){const t=e.$implicit,i=e.index,r=Pr(3);Qn("ngClass",Ou(4,bve,r.activeObject&&r.activeObject.value===t.uuid)),sl("id",t.uuid),jn(2),yl("#",i,""),jn(2),Qn("ngIf",t.uuid)}}function Sve(n,e){if(1&n&&(Gt(0,"table",14)(1,"thead")(2,"tr")(3,"th"),qi(4,"No."),dn(),Gt(5,"th"),qi(6,"Selection"),dn()()(),Gt(7,"tbody"),zs(8,Mve,5,6,"tr",15),dn()()),2&n){const t=Pr(2);jn(8),Qn("ngForOf",t.showingCollection)}}function Eve(n,e){1&n&&(Gt(0,"p",23),qi(1," Load event data to be able to display information about the collections here. "),dn())}function Tve(n,e){if(1&n&&(Gt(0,"div",2),zs(1,wve,9,1,"div",3),Gt(2,"div",4),zs(3,Sve,9,1,"table",5)(4,Eve,2,0,"p",6),dn()()),2&n){const t=Pr();jn(),Qn("ngIf",null!=t.children),jn(2),Qn("ngIf",t.showingCollection),jn(),Qn("ngIf",!t.children)}}let Yj=(()=>{class n{eventDisplay;browseDetectorParts;selectedCollection;showingCollection;activeObject;children;constructor(t){this.eventDisplay=t}ngOnInit(){this.children=this.eventDisplay.getThreeManager().getSceneManager().getGeometries().children,this.activeObject=this.eventDisplay.getActiveObjectId(),this.activeObject.onUpdate(t=>{document.getElementById(t)&&document.getElementById(t).scrollIntoView(!1)})}changeCollection(t){this.selectedCollection=t;for(const i of this.children)if(i.name===this.selectedCollection){this.showingCollection=i.children;break}}lookAtObject(t){t&&(this.activeObject.update(t),this.eventDisplay.lookAtObject(t,!0))}highlightObject(t){t&&(this.activeObject.update(t),this.eventDisplay.highlightObject(t,!0))}enableHighlighting(){this.eventDisplay.enableHighlighting()}disableHighlighting(){this.eventDisplay.disableHighlighting()}static \u0275fac=function(i){return new(i||n)(Lt(Al))};static \u0275cmp=rs({type:n,selectors:[["app-geometry-browser-overlay"]],inputs:{browseDetectorParts:"browseDetectorParts"},decls:2,vars:3,consts:[["overlayTitle","Browse Display","icon","info",3,"resizable","active"],["class","collectionsInfo m-2",4,"ngIf"],[1,"collectionsInfo","m-2"],["class","collectionSelector mb-2 d-flex align-items-center",4,"ngIf"],[1,"boxBody","table-responsive"],["id","collectionTable","class","table table-borderless table-sm",4,"ngIf"],["class","emptyBox",4,"ngIf"],[1,"collectionSelector","mb-2","d-flex","align-items-center"],[1,"d-flex","align-items-center"],[1,"eventSelector"],["id","detectorCollection","name","detectorCollection",3,"change"],["value","","selected","","disabled","","hidden",""],[3,"value",4,"ngFor","ngForOf"],[3,"value"],["id","collectionTable",1,"table","table-borderless","table-sm"],[3,"ngClass",4,"ngFor","ngForOf"],[3,"ngClass"],["class","row justify-content-center icon-wrapper",4,"ngIf"],[1,"row","justify-content-center","icon-wrapper"],["matTooltip","Move camera to object",1,"object-select","btn-blank",3,"click"],["href","assets/icons/views.svg#views"],["matTooltip","Highlight object",1,"object-select","btn-blank",3,"click"],["href","assets/icons/cursor.svg#cursor"],[1,"emptyBox"]],template:function(i,r){1&i&&(Gt(0,"app-overlay",0),zs(1,Tve,5,3,"div",1),dn()),2&i&&(Qn("resizable",!0)("active",r.browseDetectorParts),jn(),Qn("ngIf",r.browseDetectorParts))},dependencies:[om,am,Lu,a1,EC,TC,IC],styles:[".collectionsInfo[_ngcontent-%COMP%]{height:95%}.collectionsInfo[_ngcontent-%COMP%] .collectionSelector[_ngcontent-%COMP%]{height:15%;min-height:2rem}.collectionsInfo[_ngcontent-%COMP%] .collectionSelector[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{color:var(--phoenix-text-color-secondary);margin-right:1rem}.boxBody[_ngcontent-%COMP%]{height:85%;overflow:scroll}.boxBody[_ngcontent-%COMP%] p.emptyBox[_ngcontent-%COMP%]{max-width:21em}#collectionTable[_ngcontent-%COMP%]{position:relative;color:var(--phoenix-text-color-secondary)}#collectionTable[_ngcontent-%COMP%] thead[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{position:sticky;top:0;z-index:100;background:var(--phoenix-background-color-secondary)}#collectionTable[_ngcontent-%COMP%] thead[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] th[_ngcontent-%COMP%] .row[_ngcontent-%COMP%]{margin-right:10px;margin-left:-92px}#collectionTable[_ngcontent-%COMP%] thead[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] th[_ngcontent-%COMP%] .icon-wrapper[_ngcontent-%COMP%]{display:flex;width:1rem;height:1rem;padding:.2rem}#collectionTable[_ngcontent-%COMP%] thead[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] th[_ngcontent-%COMP%] .icon-wrapper[_ngcontent-%COMP%] svg[_ngcontent-%COMP%]{width:100%;height:100%}#collectionTable[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] *[_ngcontent-%COMP%]{padding-right:1.2rem}#collectionTable[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] *[_ngcontent-%COMP%]:last-child{padding-right:0}#collectionTable[_ngcontent-%COMP%] tr.active-object[_ngcontent-%COMP%]{color:var(--phoenix-background-color);background:var(--phoenix-text-color);box-shadow:0 0 15px var(--phoenix-text-color)}#collectionTable[_ngcontent-%COMP%] tr.active-object[_ngcontent-%COMP%] div.icon-wrapper[_ngcontent-%COMP%]{--phoenix-options-icon-path: var(--phoenix-background-color);--phoenix-options-icon-bg: var(--phoenix-text-color-hover)}#collectionTable[_ngcontent-%COMP%] td[_ngcontent-%COMP%] .object-select[_ngcontent-%COMP%]{position:relative;width:1.6rem;height:1.6rem;margin-right:.4em;text-align:center;background-color:var(--phoenix-options-icon-bg);border-radius:10px;cursor:pointer}#collectionTable[_ngcontent-%COMP%] td[_ngcontent-%COMP%] .object-select[_ngcontent-%COMP%]:last-child{margin-right:0}#collectionTable[_ngcontent-%COMP%] td[_ngcontent-%COMP%] .object-select[_ngcontent-%COMP%]:hover{border:1px solid var(--phoenix-options-icon-path)}#collectionTable[_ngcontent-%COMP%] td[_ngcontent-%COMP%] .object-select[_ngcontent-%COMP%] svg[_ngcontent-%COMP%]{position:absolute;top:0;left:0;padding:.4rem;width:100%;height:100%;vertical-align:top}.eventSelector[_ngcontent-%COMP%]{display:flex}.eventSelector[_ngcontent-%COMP%] label[_ngcontent-%COMP%]{display:none;color:var(--phoenix-text-color-secondary)}.eventSelector[_ngcontent-%COMP%] select[_ngcontent-%COMP%]{width:9rem;padding:5px 10px;font-size:12px;border:1px solid rgba(88,88,88,.08);box-shadow:var(--phoenix-icon-shadow);background-color:var(--phoenix-background-color-tertiary);color:var(--phoenix-text-color-secondary)}"]})}return n})(),Kj=(()=>{class n{overlay;browseDetectorParts=!1;overlayWindow;constructor(t){this.overlay=t}ngOnInit(){const t=this.overlay.create(),i=new t1(Yj);this.overlayWindow=t.attach(i),this.overlayWindow.instance.browseDetectorParts=this.browseDetectorParts}ngOnDestroy(){this.overlayWindow.destroy()}toggleOverlay(){this.browseDetectorParts=!this.browseDetectorParts,this.overlayWindow.instance.browseDetectorParts=this.browseDetectorParts,this.browseDetectorParts?this.overlayWindow.instance.enableHighlighting():this.overlayWindow.instance.disableHighlighting()}static \u0275fac=function(i){return new(i||n)(Lt(fh))};static \u0275cmp=rs({type:n,selectors:[["app-geometry-browser"]],decls:1,vars:1,consts:[["tooltip","Browse geometry","icon","info",3,"click","active"]],template:function(i,r){1&i&&(Gt(0,"app-menu-toggle",0),Ai("click",function(){return r.toggleOverlay()}),dn()),2&i&&Qn("active",r.browseDetectorParts)},dependencies:[qc]})}return n})();function Dve(n,e){}class tB{constructor(){this.role="dialog",this.panelClass="",this.hasBackdrop=!0,this.backdropClass="",this.disableClose=!1,this.width="",this.height="",this.data=null,this.ariaDescribedBy=null,this.ariaLabelledBy=null,this.ariaLabel=null,this.ariaModal=!0,this.autoFocus="first-tabbable",this.restoreFocus=!0,this.closeOnNavigation=!0,this.closeOnDestroy=!0,this.closeOnOverlayDetachments=!0}}let Zj=(()=>{class n extends TO{constructor(t,i,r,s,o,l,d,h){super(),this._elementRef=t,this._focusTrapFactory=i,this._config=s,this._interactivityChecker=o,this._ngZone=l,this._overlayRef=d,this._focusMonitor=h,this._platform=pi(dd),this._focusTrap=null,this._elementFocusedBeforeDialogWasOpened=null,this._closeInteractionType=null,this._ariaLabelledByQueue=[],this._changeDetectorRef=pi(Sc),this.attachDomPortal=f=>{this._portalOutlet.hasAttached();const A=this._portalOutlet.attachDomPortal(f);return this._contentAttached(),A},this._document=r,this._config.ariaLabelledBy&&this._ariaLabelledByQueue.push(this._config.ariaLabelledBy)}_addAriaLabelledBy(t){this._ariaLabelledByQueue.push(t),this._changeDetectorRef.markForCheck()}_removeAriaLabelledBy(t){const i=this._ariaLabelledByQueue.indexOf(t);i>-1&&(this._ariaLabelledByQueue.splice(i,1),this._changeDetectorRef.markForCheck())}_contentAttached(){this._initializeFocusTrap(),this._handleBackdropClicks(),this._captureInitialFocus()}_captureInitialFocus(){this._trapFocus()}ngOnDestroy(){this._restoreFocus()}attachComponentPortal(t){this._portalOutlet.hasAttached();const i=this._portalOutlet.attachComponentPortal(t);return this._contentAttached(),i}attachTemplatePortal(t){this._portalOutlet.hasAttached();const i=this._portalOutlet.attachTemplatePortal(t);return this._contentAttached(),i}_recaptureFocus(){this._containsFocus()||this._trapFocus()}_forceFocus(t,i){this._interactivityChecker.isFocusable(t)||(t.tabIndex=-1,this._ngZone.runOutsideAngular(()=>{const r=()=>{t.removeEventListener("blur",r),t.removeEventListener("mousedown",r),t.removeAttribute("tabindex")};t.addEventListener("blur",r),t.addEventListener("mousedown",r)})),t.focus(i)}_focusByCssSelector(t,i){let r=this._elementRef.nativeElement.querySelector(t);r&&this._forceFocus(r,i)}_trapFocus(){const t=this._elementRef.nativeElement;switch(this._config.autoFocus){case!1:case"dialog":this._containsFocus()||t.focus();break;case!0:case"first-tabbable":this._focusTrap?.focusInitialElementWhenReady().then(i=>{i||this._focusDialogContainer()});break;case"first-heading":this._focusByCssSelector('h1, h2, h3, h4, h5, h6, [role="heading"]');break;default:this._focusByCssSelector(this._config.autoFocus)}}_restoreFocus(){const t=this._config.restoreFocus;let i=null;if("string"==typeof t?i=this._document.querySelector(t):"boolean"==typeof t?i=t?this._elementFocusedBeforeDialogWasOpened:null:t&&(i=t),this._config.restoreFocus&&i&&"function"==typeof i.focus){const r=cO(),s=this._elementRef.nativeElement;(!r||r===this._document.body||r===s||s.contains(r))&&(this._focusMonitor?(this._focusMonitor.focusVia(i,this._closeInteractionType),this._closeInteractionType=null):i.focus())}this._focusTrap&&this._focusTrap.destroy()}_focusDialogContainer(){this._elementRef.nativeElement.focus&&this._elementRef.nativeElement.focus()}_containsFocus(){const t=this._elementRef.nativeElement,i=cO();return t===i||t.contains(i)}_initializeFocusTrap(){this._platform.isBrowser&&(this._focusTrap=this._focusTrapFactory.create(this._elementRef.nativeElement),this._document&&(this._elementFocusedBeforeDialogWasOpened=cO()))}_handleBackdropClicks(){this._overlayRef.backdropClick().subscribe(()=>{this._config.disableClose&&this._recaptureFocus()})}static#e=this.\u0275fac=function(i){return new(i||n)(Lt(oo),Lt(NQ),Lt(ba,8),Lt(tB),Lt(yO),Lt(io),Lt(L4),Lt(e1))};static#t=this.\u0275cmp=rs({type:n,selectors:[["cdk-dialog-container"]],viewQuery:function(i,r){if(1&i&&_l(wC,7),2&i){let s;pa(s=ma())&&(r._portalOutlet=s.first)}},hostAttrs:["tabindex","-1",1,"cdk-dialog-container"],hostVars:6,hostBindings:function(i,r){2&i&&sl("id",r._config.id||null)("role",r._config.role)("aria-modal",r._config.ariaModal)("aria-labelledby",r._config.ariaLabel?null:r._ariaLabelledByQueue[0])("aria-label",r._config.ariaLabel)("aria-describedby",r._config.ariaDescribedBy||null)},standalone:!0,features:[Lo,yd],decls:1,vars:0,consts:[["cdkPortalOutlet",""]],template:function(i,r){1&i&&zs(0,Dve,0,0,"ng-template",0)},dependencies:[wC],styles:[".cdk-dialog-container{display:block;width:100%;height:100%;min-height:inherit;max-height:inherit}"],encapsulation:2})}return n})();class uL{constructor(e,t){this.overlayRef=e,this.config=t,this.closed=new un,this.disableClose=t.disableClose,this.backdropClick=e.backdropClick(),this.keydownEvents=e.keydownEvents(),this.outsidePointerEvents=e.outsidePointerEvents(),this.id=t.id,this.keydownEvents.subscribe(i=>{27===i.keyCode&&!this.disableClose&&!bC(i)&&(i.preventDefault(),this.close(void 0,{focusOrigin:"keyboard"}))}),this.backdropClick.subscribe(()=>{this.disableClose||this.close(void 0,{focusOrigin:"mouse"})}),this._detachSubscription=e.detachments().subscribe(()=>{!1!==t.closeOnOverlayDetachments&&this.close()})}close(e,t){if(this.containerInstance){const i=this.closed;this.containerInstance._closeInteractionType=t?.focusOrigin||"program",this._detachSubscription.unsubscribe(),this.overlayRef.dispose(),i.next(e),i.complete(),this.componentInstance=this.containerInstance=null}}updatePosition(){return this.overlayRef.updatePosition(),this}updateSize(e="",t=""){return this.overlayRef.updateSize({width:e,height:t}),this}addPanelClass(e){return this.overlayRef.addPanelClass(e),this}removePanelClass(e){return this.overlayRef.removePanelClass(e),this}}const Jj=new Bi("DialogScrollStrategy",{providedIn:"root",factory:()=>{const n=pi(fh);return()=>n.scrollStrategies.block()}}),Ive=new Bi("DialogData"),Bve=new Bi("DefaultDialogConfig");let Rve=0,e$=(()=>{class n{get openDialogs(){return this._parentDialog?this._parentDialog.openDialogs:this._openDialogsAtThisLevel}get afterOpened(){return this._parentDialog?this._parentDialog.afterOpened:this._afterOpenedAtThisLevel}constructor(t,i,r,s,o,l){this._overlay=t,this._injector=i,this._defaultOptions=r,this._parentDialog=s,this._overlayContainer=o,this._openDialogsAtThisLevel=[],this._afterAllClosedAtThisLevel=new un,this._afterOpenedAtThisLevel=new un,this._ariaHiddenElements=new Map,this.afterAllClosed=CD(()=>this.openDialogs.length?this._getAfterAllClosed():this._getAfterAllClosed().pipe(sA(void 0))),this._scrollStrategy=l}open(t,i){(i={...this._defaultOptions||new tB,...i}).id=i.id||"cdk-dialog-"+Rve++,i.id&&this.getDialogById(i.id);const s=this._getOverlayConfig(i),o=this._overlay.create(s),l=new uL(o,i),d=this._attachContainer(o,l,i);return l.containerInstance=d,this._attachDialogContent(t,l,d,i),this.openDialogs.length||this._hideNonDialogContentFromAssistiveTechnology(),this.openDialogs.push(l),l.closed.subscribe(()=>this._removeOpenDialog(l,!0)),this.afterOpened.next(l),l}closeAll(){fL(this.openDialogs,t=>t.close())}getDialogById(t){return this.openDialogs.find(i=>i.id===t)}ngOnDestroy(){fL(this._openDialogsAtThisLevel,t=>{!1===t.config.closeOnDestroy&&this._removeOpenDialog(t,!1)}),fL(this._openDialogsAtThisLevel,t=>t.close()),this._afterAllClosedAtThisLevel.complete(),this._afterOpenedAtThisLevel.complete(),this._openDialogsAtThisLevel=[]}_getOverlayConfig(t){const i=new BO({positionStrategy:t.positionStrategy||this._overlay.position().global().centerHorizontally().centerVertically(),scrollStrategy:t.scrollStrategy||this._scrollStrategy(),panelClass:t.panelClass,hasBackdrop:t.hasBackdrop,direction:t.direction,minWidth:t.minWidth,minHeight:t.minHeight,maxWidth:t.maxWidth,maxHeight:t.maxHeight,width:t.width,height:t.height,disposeOnNavigation:t.closeOnNavigation});return t.backdropClass&&(i.backdropClass=t.backdropClass),i}_attachContainer(t,i,r){const s=r.injector||r.viewContainerRef?.injector,o=[{provide:tB,useValue:r},{provide:uL,useValue:i},{provide:L4,useValue:t}];let l;r.container?"function"==typeof r.container?l=r.container:(l=r.container.type,o.push(...r.container.providers(r))):l=Zj;const d=new t1(l,r.viewContainerRef,ml.create({parent:s||this._injector,providers:o}),r.componentFactoryResolver);return t.attach(d).instance}_attachDialogContent(t,i,r,s){if(t instanceof Ud){const o=this._createInjector(s,i,r,void 0);let l={$implicit:s.data,dialogRef:i};s.templateContext&&(l={...l,..."function"==typeof s.templateContext?s.templateContext():s.templateContext}),r.attachTemplatePortal(new PE(t,null,l,o))}else{const o=this._createInjector(s,i,r,this._injector),l=r.attachComponentPortal(new t1(t,s.viewContainerRef,o,s.componentFactoryResolver));i.componentRef=l,i.componentInstance=l.instance}}_createInjector(t,i,r,s){const o=t.injector||t.viewContainerRef?.injector,l=[{provide:Ive,useValue:t.data},{provide:uL,useValue:i}];return t.providers&&("function"==typeof t.providers?l.push(...t.providers(i,t,r)):l.push(...t.providers)),t.direction&&(!o||!o.get(_m,null,{optional:!0}))&&l.push({provide:_m,useValue:{value:t.direction,change:po()}}),ml.create({parent:o||s,providers:l})}_removeOpenDialog(t,i){const r=this.openDialogs.indexOf(t);r>-1&&(this.openDialogs.splice(r,1),this.openDialogs.length||(this._ariaHiddenElements.forEach((s,o)=>{s?o.setAttribute("aria-hidden",s):o.removeAttribute("aria-hidden")}),this._ariaHiddenElements.clear(),i&&this._getAfterAllClosed().next()))}_hideNonDialogContentFromAssistiveTechnology(){const t=this._overlayContainer.getContainerElement();if(t.parentElement){const i=t.parentElement.children;for(let r=i.length-1;r>-1;r--){const s=i[r];s!==t&&"SCRIPT"!==s.nodeName&&"STYLE"!==s.nodeName&&!s.hasAttribute("aria-live")&&(this._ariaHiddenElements.set(s,s.getAttribute("aria-hidden")),s.setAttribute("aria-hidden","true"))}}}_getAfterAllClosed(){const t=this._parentDialog;return t?t._getAfterAllClosed():this._afterAllClosedAtThisLevel}static#e=this.\u0275fac=function(i){return new(i||n)(xi(fh),xi(ml),xi(Bve,8),xi(n,12),xi(O4),xi(Jj))};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();function fL(n,e){let t=n.length;for(;t--;)e(n[t])}let kve=(()=>{class n{static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275mod=vo({type:n});static#n=this.\u0275inj=ra({providers:[e$],imports:[NE,k4,GQ,k4]})}return n})();function Fve(n,e){}class pL{constructor(){this.role="dialog",this.panelClass="",this.hasBackdrop=!0,this.backdropClass="",this.disableClose=!1,this.width="",this.height="",this.data=null,this.ariaDescribedBy=null,this.ariaLabelledBy=null,this.ariaLabel=null,this.ariaModal=!0,this.autoFocus="first-tabbable",this.restoreFocus=!0,this.delayFocusTrap=!0,this.closeOnNavigation=!0}}const mL="mdc-dialog--open",t$="mdc-dialog--opening",n$="mdc-dialog--closing";let i$=(()=>{class n extends Zj{constructor(t,i,r,s,o,l,d,h,f){super(t,i,r,s,o,l,d,f),this._animationMode=h,this._animationStateChanged=new Ls,this._animationsEnabled="NoopAnimations"!==this._animationMode,this._actionSectionCount=0,this._hostElement=this._elementRef.nativeElement,this._enterAnimationDuration=this._animationsEnabled?s$(this._config.enterAnimationDuration)??150:0,this._exitAnimationDuration=this._animationsEnabled?s$(this._config.exitAnimationDuration)??75:0,this._animationTimer=null,this._finishDialogOpen=()=>{this._clearAnimationClasses(),this._openAnimationDone(this._enterAnimationDuration)},this._finishDialogClose=()=>{this._clearAnimationClasses(),this._animationStateChanged.emit({state:"closed",totalTime:this._exitAnimationDuration})}}_contentAttached(){super._contentAttached(),this._startOpenAnimation()}_startOpenAnimation(){this._animationStateChanged.emit({state:"opening",totalTime:this._enterAnimationDuration}),this._animationsEnabled?(this._hostElement.style.setProperty(r$,`${this._enterAnimationDuration}ms`),this._requestAnimationFrame(()=>this._hostElement.classList.add(t$,mL)),this._waitForAnimationToComplete(this._enterAnimationDuration,this._finishDialogOpen)):(this._hostElement.classList.add(mL),Promise.resolve().then(()=>this._finishDialogOpen()))}_startExitAnimation(){this._animationStateChanged.emit({state:"closing",totalTime:this._exitAnimationDuration}),this._hostElement.classList.remove(mL),this._animationsEnabled?(this._hostElement.style.setProperty(r$,`${this._exitAnimationDuration}ms`),this._requestAnimationFrame(()=>this._hostElement.classList.add(n$)),this._waitForAnimationToComplete(this._exitAnimationDuration,this._finishDialogClose)):Promise.resolve().then(()=>this._finishDialogClose())}_updateActionSectionCount(t){this._actionSectionCount+=t,this._changeDetectorRef.markForCheck()}_clearAnimationClasses(){this._hostElement.classList.remove(t$,n$)}_waitForAnimationToComplete(t,i){null!==this._animationTimer&&clearTimeout(this._animationTimer),this._animationTimer=setTimeout(i,t)}_requestAnimationFrame(t){this._ngZone.runOutsideAngular(()=>{"function"==typeof requestAnimationFrame?requestAnimationFrame(t):t()})}_captureInitialFocus(){this._config.delayFocusTrap||this._trapFocus()}_openAnimationDone(t){this._config.delayFocusTrap&&this._trapFocus(),this._animationStateChanged.next({state:"opened",totalTime:t})}ngOnDestroy(){super.ngOnDestroy(),null!==this._animationTimer&&clearTimeout(this._animationTimer)}attachComponentPortal(t){const i=super.attachComponentPortal(t);return i.location.nativeElement.classList.add("mat-mdc-dialog-component-host"),i}static#e=this.\u0275fac=function(i){return new(i||n)(Lt(oo),Lt(NQ),Lt(ba,8),Lt(pL),Lt(yO),Lt(io),Lt(L4),Lt(Od,8),Lt(e1))};static#t=this.\u0275cmp=rs({type:n,selectors:[["mat-dialog-container"]],hostAttrs:["tabindex","-1",1,"mat-mdc-dialog-container","mdc-dialog"],hostVars:10,hostBindings:function(i,r){2&i&&(zw("id",r._config.id),sl("aria-modal",r._config.ariaModal)("role",r._config.role)("aria-labelledby",r._config.ariaLabel?null:r._ariaLabelledByQueue[0])("aria-label",r._config.ariaLabel)("aria-describedby",r._config.ariaDescribedBy||null),Ja("_mat-animation-noopable",!r._animationsEnabled)("mat-mdc-dialog-container-with-actions",r._actionSectionCount>0))},standalone:!0,features:[Lo,yd],decls:3,vars:0,consts:[[1,"mdc-dialog__container"],[1,"mat-mdc-dialog-surface","mdc-dialog__surface"],["cdkPortalOutlet",""]],template:function(i,r){1&i&&(Gt(0,"div",0)(1,"div",1),zs(2,Fve,0,0,"ng-template",2),dn()())},dependencies:[wC],styles:['.mdc-elevation-overlay{position:absolute;border-radius:inherit;pointer-events:none;opacity:var(--mdc-elevation-overlay-opacity, 0);transition:opacity 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-dialog,.mdc-dialog__scrim{position:fixed;top:0;left:0;align-items:center;justify-content:center;box-sizing:border-box;width:100%;height:100%}.mdc-dialog{display:none;z-index:var(--mdc-dialog-z-index, 7)}.mdc-dialog .mdc-dialog__content{padding:20px 24px 20px 24px}.mdc-dialog .mdc-dialog__surface{min-width:280px}@media(max-width: 592px){.mdc-dialog .mdc-dialog__surface{max-width:calc(100vw - 32px)}}@media(min-width: 592px){.mdc-dialog .mdc-dialog__surface{max-width:560px}}.mdc-dialog .mdc-dialog__surface{max-height:calc(100% - 32px)}.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{max-width:none}@media(max-width: 960px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{max-height:560px;width:560px}.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface .mdc-dialog__close{right:-12px}}@media(max-width: 720px)and (max-width: 672px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{width:calc(100vw - 112px)}}@media(max-width: 720px)and (min-width: 672px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{width:560px}}@media(max-width: 720px)and (max-height: 720px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{max-height:calc(100vh - 160px)}}@media(max-width: 720px)and (min-height: 720px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{max-height:560px}}@media(max-width: 720px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface .mdc-dialog__close{right:-12px}}@media(max-width: 720px)and (max-height: 400px),(max-width: 600px),(min-width: 720px)and (max-height: 400px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{height:100%;max-height:100vh;max-width:100vw;width:100vw;border-radius:0}.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface .mdc-dialog__close{order:-1;left:-12px}.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface .mdc-dialog__header{padding:0 16px 9px;justify-content:flex-start}.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface .mdc-dialog__title{margin-left:calc(16px - 2 * 12px)}}@media(min-width: 960px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{width:calc(100vw - 400px)}.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface .mdc-dialog__close{right:-12px}}.mdc-dialog.mdc-dialog__scrim--hidden .mdc-dialog__scrim{opacity:0}.mdc-dialog__scrim{opacity:0;z-index:-1}.mdc-dialog__container{display:flex;flex-direction:row;align-items:center;justify-content:space-around;box-sizing:border-box;height:100%;opacity:0;pointer-events:none}.mdc-dialog__surface{position:relative;display:flex;flex-direction:column;flex-grow:0;flex-shrink:0;box-sizing:border-box;max-width:100%;max-height:100%;pointer-events:auto;overflow-y:auto;outline:0;transform:scale(0.8)}.mdc-dialog__surface .mdc-elevation-overlay{width:100%;height:100%;top:0;left:0}[dir=rtl] .mdc-dialog__surface,.mdc-dialog__surface[dir=rtl]{text-align:right}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mdc-dialog__surface{outline:2px solid windowText}}.mdc-dialog__surface::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:2px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none}@media screen and (forced-colors: active){.mdc-dialog__surface::before{border-color:CanvasText}}@media screen and (-ms-high-contrast: active),screen and (-ms-high-contrast: none){.mdc-dialog__surface::before{content:none}}.mdc-dialog__title{display:block;margin-top:0;position:relative;flex-shrink:0;box-sizing:border-box;margin:0 0 1px;padding:0 24px 9px}.mdc-dialog__title::before{display:inline-block;width:0;height:40px;content:"";vertical-align:0}[dir=rtl] .mdc-dialog__title,.mdc-dialog__title[dir=rtl]{text-align:right}.mdc-dialog--scrollable .mdc-dialog__title{margin-bottom:1px;padding-bottom:15px}.mdc-dialog--fullscreen .mdc-dialog__header{align-items:baseline;border-bottom:1px solid rgba(0,0,0,0);display:inline-flex;justify-content:space-between;padding:0 24px 9px;z-index:1}@media screen and (forced-colors: active){.mdc-dialog--fullscreen .mdc-dialog__header{border-bottom-color:CanvasText}}.mdc-dialog--fullscreen .mdc-dialog__header .mdc-dialog__close{right:-12px}.mdc-dialog--fullscreen .mdc-dialog__title{margin-bottom:0;padding:0;border-bottom:0}.mdc-dialog--fullscreen.mdc-dialog--scrollable .mdc-dialog__title{border-bottom:0;margin-bottom:0}.mdc-dialog--fullscreen .mdc-dialog__close{top:5px}.mdc-dialog--fullscreen.mdc-dialog--scrollable .mdc-dialog__actions{border-top:1px solid rgba(0,0,0,0)}@media screen and (forced-colors: active){.mdc-dialog--fullscreen.mdc-dialog--scrollable .mdc-dialog__actions{border-top-color:CanvasText}}.mdc-dialog--fullscreen--titleless .mdc-dialog__close{margin-top:4px}.mdc-dialog--fullscreen--titleless.mdc-dialog--scrollable .mdc-dialog__close{margin-top:0}.mdc-dialog__content{flex-grow:1;box-sizing:border-box;margin:0;overflow:auto}.mdc-dialog__content>:first-child{margin-top:0}.mdc-dialog__content>:last-child{margin-bottom:0}.mdc-dialog__title+.mdc-dialog__content,.mdc-dialog__header+.mdc-dialog__content{padding-top:0}.mdc-dialog--scrollable .mdc-dialog__title+.mdc-dialog__content{padding-top:8px;padding-bottom:8px}.mdc-dialog__content .mdc-deprecated-list:first-child:last-child{padding:6px 0 0}.mdc-dialog--scrollable .mdc-dialog__content .mdc-deprecated-list:first-child:last-child{padding:0}.mdc-dialog__actions{display:flex;position:relative;flex-shrink:0;flex-wrap:wrap;align-items:center;justify-content:flex-end;box-sizing:border-box;min-height:52px;margin:0;padding:8px;border-top:1px solid rgba(0,0,0,0)}@media screen and (forced-colors: active){.mdc-dialog__actions{border-top-color:CanvasText}}.mdc-dialog--stacked .mdc-dialog__actions{flex-direction:column;align-items:flex-end}.mdc-dialog__button{margin-left:8px;margin-right:0;max-width:100%;text-align:right}[dir=rtl] .mdc-dialog__button,.mdc-dialog__button[dir=rtl]{margin-left:0;margin-right:8px}.mdc-dialog__button:first-child{margin-left:0;margin-right:0}[dir=rtl] .mdc-dialog__button:first-child,.mdc-dialog__button:first-child[dir=rtl]{margin-left:0;margin-right:0}[dir=rtl] .mdc-dialog__button,.mdc-dialog__button[dir=rtl]{text-align:left}.mdc-dialog--stacked .mdc-dialog__button:not(:first-child){margin-top:12px}.mdc-dialog--open,.mdc-dialog--opening,.mdc-dialog--closing{display:flex}.mdc-dialog--opening .mdc-dialog__scrim{transition:opacity 150ms linear}.mdc-dialog--opening .mdc-dialog__container{transition:opacity 75ms linear,transform 150ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-dialog--closing .mdc-dialog__scrim,.mdc-dialog--closing .mdc-dialog__container{transition:opacity 75ms linear}.mdc-dialog--closing .mdc-dialog__container{transform:none}.mdc-dialog--closing .mdc-dialog__surface{transform:none}.mdc-dialog--open .mdc-dialog__scrim{opacity:1}.mdc-dialog--open .mdc-dialog__container{opacity:1}.mdc-dialog--open .mdc-dialog__surface{transform:none}.mdc-dialog--open.mdc-dialog__surface-scrim--shown .mdc-dialog__surface-scrim{opacity:1}.mdc-dialog--open.mdc-dialog__surface-scrim--hiding .mdc-dialog__surface-scrim{transition:opacity 75ms linear}.mdc-dialog--open.mdc-dialog__surface-scrim--showing .mdc-dialog__surface-scrim{transition:opacity 150ms linear}.mdc-dialog__surface-scrim{display:none;opacity:0;position:absolute;width:100%;height:100%;z-index:1}.mdc-dialog__surface-scrim--shown .mdc-dialog__surface-scrim,.mdc-dialog__surface-scrim--showing .mdc-dialog__surface-scrim,.mdc-dialog__surface-scrim--hiding .mdc-dialog__surface-scrim{display:block}.mdc-dialog-scroll-lock{overflow:hidden}.mdc-dialog--no-content-padding .mdc-dialog__content{padding:0}.mdc-dialog--sheet .mdc-dialog__container .mdc-dialog__close{right:12px;top:9px;position:absolute;z-index:1}.mdc-dialog__scrim--removed{pointer-events:none}.mdc-dialog__scrim--removed .mdc-dialog__scrim,.mdc-dialog__scrim--removed .mdc-dialog__surface-scrim{display:none}.mat-mdc-dialog-content{max-height:65vh}.mat-mdc-dialog-container{position:static;display:block}.mat-mdc-dialog-container,.mat-mdc-dialog-container .mdc-dialog__container,.mat-mdc-dialog-container .mdc-dialog__surface{max-height:inherit;min-height:inherit;min-width:inherit;max-width:inherit}.mat-mdc-dialog-container .mdc-dialog__surface{width:100%;height:100%}.mat-mdc-dialog-component-host{display:contents}.mat-mdc-dialog-container{--mdc-dialog-container-elevation: var(--mdc-dialog-container-elevation-shadow);outline:0}.mat-mdc-dialog-container .mdc-dialog__surface{background-color:var(--mdc-dialog-container-color, white)}.mat-mdc-dialog-container .mdc-dialog__surface{box-shadow:var(--mdc-dialog-container-elevation, 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12))}.mat-mdc-dialog-container .mdc-dialog__surface{border-radius:var(--mdc-dialog-container-shape, 4px)}.mat-mdc-dialog-container .mdc-dialog__title{font-family:var(--mdc-dialog-subhead-font, Roboto, sans-serif);line-height:var(--mdc-dialog-subhead-line-height, 1.5rem);font-size:var(--mdc-dialog-subhead-size, 1rem);font-weight:var(--mdc-dialog-subhead-weight, 400);letter-spacing:var(--mdc-dialog-subhead-tracking, 0.03125em)}.mat-mdc-dialog-container .mdc-dialog__title{color:var(--mdc-dialog-subhead-color, rgba(0, 0, 0, 0.87))}.mat-mdc-dialog-container .mdc-dialog__content{font-family:var(--mdc-dialog-supporting-text-font, Roboto, sans-serif);line-height:var(--mdc-dialog-supporting-text-line-height, 1.5rem);font-size:var(--mdc-dialog-supporting-text-size, 1rem);font-weight:var(--mdc-dialog-supporting-text-weight, 400);letter-spacing:var(--mdc-dialog-supporting-text-tracking, 0.03125em)}.mat-mdc-dialog-container .mdc-dialog__content{color:var(--mdc-dialog-supporting-text-color, rgba(0, 0, 0, 0.6))}.mat-mdc-dialog-container .mdc-dialog__container{transition:opacity linear var(--mat-dialog-transition-duration, 0ms)}.mat-mdc-dialog-container .mdc-dialog__surface{transition:transform var(--mat-dialog-transition-duration, 0ms) 0ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-dialog-container._mat-animation-noopable .mdc-dialog__container,.mat-mdc-dialog-container._mat-animation-noopable .mdc-dialog__surface{transition:none}.cdk-overlay-pane.mat-mdc-dialog-panel{max-width:var(--mat-dialog-container-max-width, 80vw);min-width:var(--mat-dialog-container-min-width, 0)}@media(max-width: 599px){.cdk-overlay-pane.mat-mdc-dialog-panel{max-width:var(--mat-dialog-container-small-max-width, 80vw)}}.mat-mdc-dialog-title{padding:var(--mat-dialog-headline-padding, 0 24px 9px)}.mat-mdc-dialog-content{display:block}.mat-mdc-dialog-container .mat-mdc-dialog-content{padding:var(--mat-dialog-content-padding, 20px 24px)}.mat-mdc-dialog-container-with-actions .mat-mdc-dialog-content{padding:var(--mat-dialog-with-actions-content-padding, 20px 24px)}.mat-mdc-dialog-container .mat-mdc-dialog-title+.mat-mdc-dialog-content{padding-top:0}.mat-mdc-dialog-actions{padding:var(--mat-dialog-actions-padding, 8px);justify-content:var(--mat-dialog-actions-alignment, start)}.mat-mdc-dialog-actions.mat-mdc-dialog-actions-align-start,.mat-mdc-dialog-actions[align=start]{justify-content:start}.mat-mdc-dialog-actions.mat-mdc-dialog-actions-align-center,.mat-mdc-dialog-actions[align=center]{justify-content:center}.mat-mdc-dialog-actions.mat-mdc-dialog-actions-align-end,.mat-mdc-dialog-actions[align=end]{justify-content:flex-end}.mat-mdc-dialog-actions .mat-button-base+.mat-button-base,.mat-mdc-dialog-actions .mat-mdc-button-base+.mat-mdc-button-base{margin-left:8px}[dir=rtl] .mat-mdc-dialog-actions .mat-button-base+.mat-button-base,[dir=rtl] .mat-mdc-dialog-actions .mat-mdc-button-base+.mat-mdc-button-base{margin-left:0;margin-right:8px}'],encapsulation:2})}return n})();const r$="--mat-dialog-transition-duration";function s$(n){return null==n?null:"number"==typeof n?n:n.endsWith("ms")?hx(n.substring(0,n.length-2)):n.endsWith("s")?1e3*hx(n.substring(0,n.length-1)):"0"===n?0:null}var nB=function(n){return n[n.OPEN=0]="OPEN",n[n.CLOSING=1]="CLOSING",n[n.CLOSED=2]="CLOSED",n}(nB||{});class _x{constructor(e,t,i){this._ref=e,this._containerInstance=i,this._afterOpened=new un,this._beforeClosed=new un,this._state=nB.OPEN,this.disableClose=t.disableClose,this.id=e.id,e.addPanelClass("mat-mdc-dialog-panel"),i._animationStateChanged.pipe(od(r=>"opened"===r.state),ad(1)).subscribe(()=>{this._afterOpened.next(),this._afterOpened.complete()}),i._animationStateChanged.pipe(od(r=>"closed"===r.state),ad(1)).subscribe(()=>{clearTimeout(this._closeFallbackTimeout),this._finishDialogClose()}),e.overlayRef.detachments().subscribe(()=>{this._beforeClosed.next(this._result),this._beforeClosed.complete(),this._finishDialogClose()}),gm(this.backdropClick(),this.keydownEvents().pipe(od(r=>27===r.keyCode&&!this.disableClose&&!bC(r)))).subscribe(r=>{this.disableClose||(r.preventDefault(),function o$(n,e,t){return n._closeInteractionType=e,n.close(t)}(this,"keydown"===r.type?"keyboard":"mouse"))})}close(e){this._result=e,this._containerInstance._animationStateChanged.pipe(od(t=>"closing"===t.state),ad(1)).subscribe(t=>{this._beforeClosed.next(e),this._beforeClosed.complete(),this._ref.overlayRef.detachBackdrop(),this._closeFallbackTimeout=setTimeout(()=>this._finishDialogClose(),t.totalTime+100)}),this._state=nB.CLOSING,this._containerInstance._startExitAnimation()}afterOpened(){return this._afterOpened}afterClosed(){return this._ref.closed}beforeClosed(){return this._beforeClosed}backdropClick(){return this._ref.backdropClick}keydownEvents(){return this._ref.keydownEvents}updatePosition(e){let t=this._ref.config.positionStrategy;return e&&(e.left||e.right)?e.left?t.left(e.left):t.right(e.right):t.centerHorizontally(),e&&(e.top||e.bottom)?e.top?t.top(e.top):t.bottom(e.bottom):t.centerVertically(),this._ref.updatePosition(),this}updateSize(e="",t=""){return this._ref.updateSize(e,t),this}addPanelClass(e){return this._ref.addPanelClass(e),this}removePanelClass(e){return this._ref.removePanelClass(e),this}getState(){return this._state}_finishDialogClose(){this._state=nB.CLOSED,this._ref.close(this._result,{focusOrigin:this._closeInteractionType}),this.componentInstance=null}}const AL=new Bi("MatMdcDialogData"),Nve=new Bi("mat-mdc-dialog-default-options"),a$=new Bi("mat-mdc-dialog-scroll-strategy",{providedIn:"root",factory:()=>{const n=pi(fh);return()=>n.scrollStrategies.block()}});let zve=0,yx=(()=>{class n{get openDialogs(){return this._parentDialog?this._parentDialog.openDialogs:this._openDialogsAtThisLevel}get afterOpened(){return this._parentDialog?this._parentDialog.afterOpened:this._afterOpenedAtThisLevel}_getAfterAllClosed(){const t=this._parentDialog;return t?t._getAfterAllClosed():this._afterAllClosedAtThisLevel}constructor(t,i,r,s,o,l,d,h){this._overlay=t,this._defaultOptions=s,this._scrollStrategy=o,this._parentDialog=l,this._openDialogsAtThisLevel=[],this._afterAllClosedAtThisLevel=new un,this._afterOpenedAtThisLevel=new un,this.dialogConfigClass=pL,this.afterAllClosed=CD(()=>this.openDialogs.length?this._getAfterAllClosed():this._getAfterAllClosed().pipe(sA(void 0))),this._dialog=i.get(e$),this._dialogRefConstructor=_x,this._dialogContainerType=i$,this._dialogDataToken=AL}open(t,i){let r;(i={...this._defaultOptions||new pL,...i}).id=i.id||"mat-mdc-dialog-"+zve++,i.scrollStrategy=i.scrollStrategy||this._scrollStrategy();const s=this._dialog.open(t,{...i,positionStrategy:this._overlay.position().global().centerHorizontally().centerVertically(),disableClose:!0,closeOnDestroy:!1,closeOnOverlayDetachments:!1,container:{type:this._dialogContainerType,providers:()=>[{provide:this.dialogConfigClass,useValue:i},{provide:tB,useValue:i}]},templateContext:()=>({dialogRef:r}),providers:(o,l,d)=>(r=new this._dialogRefConstructor(o,i,d),r.updatePosition(i?.position),[{provide:this._dialogContainerType,useValue:d},{provide:this._dialogDataToken,useValue:l.data},{provide:this._dialogRefConstructor,useValue:r}])});return r.componentRef=s.componentRef,r.componentInstance=s.componentInstance,this.openDialogs.push(r),this.afterOpened.next(r),r.afterClosed().subscribe(()=>{const o=this.openDialogs.indexOf(r);o>-1&&(this.openDialogs.splice(o,1),this.openDialogs.length||this._getAfterAllClosed().next())}),r}closeAll(){this._closeDialogs(this.openDialogs)}getDialogById(t){return this.openDialogs.find(i=>i.id===t)}ngOnDestroy(){this._closeDialogs(this._openDialogsAtThisLevel),this._afterAllClosedAtThisLevel.complete(),this._afterOpenedAtThisLevel.complete()}_closeDialogs(t){let i=t.length;for(;i--;)t[i].close()}static#e=this.\u0275fac=function(i){return new(i||n)(xi(fh),xi(ml),xi(gb,8),xi(Nve,8),xi(a$),xi(n,12),xi(O4),xi(Od,8))};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),Hve=0,l$=(()=>{class n{constructor(t,i,r){this._dialogRef=t,this._elementRef=i,this._dialog=r}ngOnInit(){this._dialogRef||(this._dialogRef=function c$(n,e){let t=n.nativeElement.parentElement;for(;t&&!t.classList.contains("mat-mdc-dialog-container");)t=t.parentElement;return t?e.find(i=>i.id===t.id):null}(this._elementRef,this._dialog.openDialogs)),this._dialogRef&&Promise.resolve().then(()=>{this._onAdd()})}ngOnDestroy(){this._dialogRef?._containerInstance&&Promise.resolve().then(()=>{this._onRemove()})}static#e=this.\u0275fac=function(i){return new(i||n)(Lt(_x,8),Lt(oo),Lt(yx))};static#t=this.\u0275dir=Ft({type:n,standalone:!0})}return n})(),jE=(()=>{class n extends l${constructor(){super(...arguments),this.id="mat-mdc-dialog-title-"+Hve++}_onAdd(){this._dialogRef._containerInstance?._addAriaLabelledBy?.(this.id)}_onRemove(){this._dialogRef?._containerInstance?._removeAriaLabelledBy?.(this.id)}static#e=this.\u0275fac=(()=>{let t;return function(r){return(t||(t=Ca(n)))(r||n)}})();static#t=this.\u0275dir=Ft({type:n,selectors:[["","mat-dialog-title",""],["","matDialogTitle",""]],hostAttrs:[1,"mat-mdc-dialog-title","mdc-dialog__title"],hostVars:1,hostBindings:function(i,r){2&i&&zw("id",r.id)},inputs:{id:"id"},exportAs:["matDialogTitle"],standalone:!0,features:[Lo]})}return n})(),$E=(()=>{class n{static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275dir=Ft({type:n,selectors:[["","mat-dialog-content",""],["mat-dialog-content"],["","matDialogContent",""]],hostAttrs:[1,"mat-mdc-dialog-content","mdc-dialog__content"],standalone:!0})}return n})(),XE=(()=>{class n extends l${_onAdd(){this._dialogRef._containerInstance?._updateActionSectionCount?.(1)}_onRemove(){this._dialogRef._containerInstance?._updateActionSectionCount?.(-1)}static#e=this.\u0275fac=(()=>{let t;return function(r){return(t||(t=Ca(n)))(r||n)}})();static#t=this.\u0275dir=Ft({type:n,selectors:[["","mat-dialog-actions",""],["mat-dialog-actions"],["","matDialogActions",""]],hostAttrs:[1,"mat-mdc-dialog-actions","mdc-dialog__actions"],hostVars:6,hostBindings:function(i,r){2&i&&Ja("mat-mdc-dialog-actions-align-start","start"===r.align)("mat-mdc-dialog-actions-align-center","center"===r.align)("mat-mdc-dialog-actions-align-end","end"===r.align)},inputs:{align:"align"},standalone:!0,features:[Lo]})}return n})();let Gve=(()=>{class n{static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275mod=vo({type:n});static#n=this.\u0275inj=ra({providers:[yx],imports:[kve,NE,k4,Qd,Qd]})}return n})();const qve=["mat-button",""],Qve=[[["",8,"material-icons",3,"iconPositionEnd",""],["mat-icon",3,"iconPositionEnd",""],["","matButtonIcon","",3,"iconPositionEnd",""]],"*",[["","iconPositionEnd","",8,"material-icons"],["mat-icon","iconPositionEnd",""],["","matButtonIcon","","iconPositionEnd",""]]],Wve=[".material-icons:not([iconPositionEnd]), mat-icon:not([iconPositionEnd]), [matButtonIcon]:not([iconPositionEnd])","*",".material-icons[iconPositionEnd], mat-icon[iconPositionEnd], [matButtonIcon][iconPositionEnd]"],Yve=new Bi("MAT_BUTTON_CONFIG"),Kve=[{attribute:"mat-button",mdcClasses:["mdc-button","mat-mdc-button"]},{attribute:"mat-flat-button",mdcClasses:["mdc-button","mdc-button--unelevated","mat-mdc-unelevated-button"]},{attribute:"mat-raised-button",mdcClasses:["mdc-button","mdc-button--raised","mat-mdc-raised-button"]},{attribute:"mat-stroked-button",mdcClasses:["mdc-button","mdc-button--outlined","mat-mdc-outlined-button"]},{attribute:"mat-fab",mdcClasses:["mdc-fab","mat-mdc-fab"]},{attribute:"mat-mini-fab",mdcClasses:["mdc-fab","mdc-fab--mini","mat-mdc-mini-fab"]},{attribute:"mat-icon-button",mdcClasses:["mdc-icon-button","mat-mdc-icon-button"]}];let h$=(()=>{class n{get ripple(){return this._rippleLoader?.getRipple(this._elementRef.nativeElement)}set ripple(t){this._rippleLoader?.attachRipple(this._elementRef.nativeElement,t)}get disableRipple(){return this._disableRipple}set disableRipple(t){this._disableRipple=t,this._updateRippleDisabled()}get disabled(){return this._disabled}set disabled(t){this._disabled=t,this._updateRippleDisabled()}constructor(t,i,r,s){this._elementRef=t,this._platform=i,this._ngZone=r,this._animationMode=s,this._focusMonitor=pi(e1),this._rippleLoader=pi(A_e),this._isFab=!1,this._disableRipple=!1,this._disabled=!1;const o=pi(Yve,{optional:!0}),l=t.nativeElement,d=l.classList;this.disabledInteractive=o?.disabledInteractive??!1,this._rippleLoader?.configureRipple(l,{className:"mat-mdc-button-ripple"});for(const{attribute:h,mdcClasses:f}of Kve)l.hasAttribute(h)&&d.add(...f)}ngAfterViewInit(){this._focusMonitor.monitor(this._elementRef,!0)}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef),this._rippleLoader?.destroyRipple(this._elementRef.nativeElement)}focus(t="program",i){t?this._focusMonitor.focusVia(this._elementRef.nativeElement,t,i):this._elementRef.nativeElement.focus(i)}_getAriaDisabled(){return null!=this.ariaDisabled?this.ariaDisabled:!(!this.disabled||!this.disabledInteractive)||null}_getDisabledAttribute(){return!(this.disabledInteractive||!this.disabled)||null}_updateRippleDisabled(){this._rippleLoader?.setDisabled(this._elementRef.nativeElement,this.disableRipple||this.disabled)}static#e=this.\u0275fac=function(i){fM()};static#t=this.\u0275dir=Ft({type:n,inputs:{color:"color",disableRipple:[mi.HasDecoratorInputTransform,"disableRipple","disableRipple",_o],disabled:[mi.HasDecoratorInputTransform,"disabled","disabled",_o],ariaDisabled:[mi.HasDecoratorInputTransform,"aria-disabled","ariaDisabled",_o],disabledInteractive:[mi.HasDecoratorInputTransform,"disabledInteractive","disabledInteractive",_o]},features:[ql]})}return n})(),BC=(()=>{class n extends h${constructor(t,i,r,s){super(t,i,r,s)}static#e=this.\u0275fac=function(i){return new(i||n)(Lt(oo),Lt(dd),Lt(io),Lt(Od,8))};static#t=this.\u0275cmp=rs({type:n,selectors:[["button","mat-button",""],["button","mat-raised-button",""],["button","mat-flat-button",""],["button","mat-stroked-button",""]],hostVars:14,hostBindings:function(i,r){2&i&&(sl("disabled",r._getDisabledAttribute())("aria-disabled",r._getAriaDisabled()),P_(r.color?"mat-"+r.color:""),Ja("mat-mdc-button-disabled",r.disabled)("mat-mdc-button-disabled-interactive",r.disabledInteractive)("_mat-animation-noopable","NoopAnimations"===r._animationMode)("mat-unthemed",!r.color)("mat-mdc-button-base",!0))},exportAs:["matButton"],standalone:!0,features:[Lo,yd],attrs:qve,ngContentSelectors:Wve,decls:7,vars:4,consts:[[1,"mat-mdc-button-persistent-ripple"],[1,"mdc-button__label"],[1,"mat-mdc-focus-indicator"],[1,"mat-mdc-button-touch-target"]],template:function(i,r){1&i&&(yu(Qve),Vr(0,"span",0),ih(1),Gt(2,"span",1),ih(3,1),dn(),ih(4,2),Vr(5,"span",2)(6,"span",3)),2&i&&Ja("mdc-button__ripple",!r._isFab)("mdc-fab__ripple",r._isFab)},styles:['.mdc-touch-target-wrapper{display:inline}.mdc-elevation-overlay{position:absolute;border-radius:inherit;pointer-events:none;opacity:var(--mdc-elevation-overlay-opacity, 0);transition:opacity 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-button{position:relative;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-width:64px;border:none;outline:none;line-height:inherit;user-select:none;-webkit-appearance:none;overflow:visible;vertical-align:middle;background:rgba(0,0,0,0)}.mdc-button .mdc-elevation-overlay{width:100%;height:100%;top:0;left:0}.mdc-button::-moz-focus-inner{padding:0;border:0}.mdc-button:active{outline:none}.mdc-button:hover{cursor:pointer}.mdc-button:disabled{cursor:default;pointer-events:none}.mdc-button[hidden]{display:none}.mdc-button .mdc-button__icon{margin-left:0;margin-right:8px;display:inline-block;position:relative;vertical-align:top}[dir=rtl] .mdc-button .mdc-button__icon,.mdc-button .mdc-button__icon[dir=rtl]{margin-left:8px;margin-right:0}.mdc-button .mdc-button__progress-indicator{font-size:0;position:absolute;transform:translate(-50%, -50%);top:50%;left:50%;line-height:initial}.mdc-button .mdc-button__label{position:relative}.mdc-button .mdc-button__focus-ring{pointer-events:none;border:2px solid rgba(0,0,0,0);border-radius:6px;box-sizing:content-box;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(100% + 4px);width:calc(100% + 4px);display:none}@media screen and (forced-colors: active){.mdc-button .mdc-button__focus-ring{border-color:CanvasText}}.mdc-button .mdc-button__focus-ring::after{content:"";border:2px solid rgba(0,0,0,0);border-radius:8px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(100% + 4px);width:calc(100% + 4px)}@media screen and (forced-colors: active){.mdc-button .mdc-button__focus-ring::after{border-color:CanvasText}}@media screen and (forced-colors: active){.mdc-button.mdc-ripple-upgraded--background-focused .mdc-button__focus-ring,.mdc-button:not(.mdc-ripple-upgraded):focus .mdc-button__focus-ring{display:block}}.mdc-button .mdc-button__touch{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%)}.mdc-button__label+.mdc-button__icon{margin-left:8px;margin-right:0}[dir=rtl] .mdc-button__label+.mdc-button__icon,.mdc-button__label+.mdc-button__icon[dir=rtl]{margin-left:0;margin-right:8px}svg.mdc-button__icon{fill:currentColor}.mdc-button--touch{margin-top:6px;margin-bottom:6px}.mdc-button{padding:0 8px 0 8px}.mdc-button--unelevated{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);padding:0 16px 0 16px}.mdc-button--unelevated.mdc-button--icon-trailing{padding:0 12px 0 16px}.mdc-button--unelevated.mdc-button--icon-leading{padding:0 16px 0 12px}.mdc-button--raised{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);padding:0 16px 0 16px}.mdc-button--raised.mdc-button--icon-trailing{padding:0 12px 0 16px}.mdc-button--raised.mdc-button--icon-leading{padding:0 16px 0 12px}.mdc-button--outlined{border-style:solid;transition:border 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-button--outlined .mdc-button__ripple{border-style:solid;border-color:rgba(0,0,0,0)}.mat-mdc-button{font-family:var(--mdc-text-button-label-text-font);font-size:var(--mdc-text-button-label-text-size);letter-spacing:var(--mdc-text-button-label-text-tracking);font-weight:var(--mdc-text-button-label-text-weight);text-transform:var(--mdc-text-button-label-text-transform);height:var(--mdc-text-button-container-height);border-radius:var(--mdc-text-button-container-shape);padding:0 var(--mat-text-button-horizontal-padding, 8px)}.mat-mdc-button:not(:disabled){color:var(--mdc-text-button-label-text-color)}.mat-mdc-button:disabled{color:var(--mdc-text-button-disabled-label-text-color)}.mat-mdc-button .mdc-button__ripple{border-radius:var(--mdc-text-button-container-shape)}.mat-mdc-button:has(.material-icons,mat-icon,[matButtonIcon]){padding:0 var(--mat-text-button-with-icon-horizontal-padding, 8px)}.mat-mdc-button>.mat-icon{margin-right:var(--mat-text-button-icon-spacing, 8px);margin-left:var(--mat-text-button-icon-offset, 0)}[dir=rtl] .mat-mdc-button>.mat-icon{margin-right:var(--mat-text-button-icon-offset, 0);margin-left:var(--mat-text-button-icon-spacing, 8px)}.mat-mdc-button .mdc-button__label+.mat-icon{margin-right:var(--mat-text-button-icon-offset, 0);margin-left:var(--mat-text-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-button .mdc-button__label+.mat-icon{margin-right:var(--mat-text-button-icon-spacing, 8px);margin-left:var(--mat-text-button-icon-offset, 0)}.mat-mdc-button .mat-ripple-element{background-color:var(--mat-text-button-ripple-color)}.mat-mdc-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-text-button-state-layer-color)}.mat-mdc-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-text-button-disabled-state-layer-color)}.mat-mdc-button:hover .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-text-button-hover-state-layer-opacity)}.mat-mdc-button.cdk-program-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-button.cdk-keyboard-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-button.mat-mdc-button-disabled-interactive:focus .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-text-button-focus-state-layer-opacity)}.mat-mdc-button:active .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-text-button-pressed-state-layer-opacity)}.mat-mdc-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-text-button-touch-target-display)}.mat-mdc-button[disabled],.mat-mdc-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-text-button-disabled-label-text-color)}.mat-mdc-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-unelevated-button{font-family:var(--mdc-filled-button-label-text-font);font-size:var(--mdc-filled-button-label-text-size);letter-spacing:var(--mdc-filled-button-label-text-tracking);font-weight:var(--mdc-filled-button-label-text-weight);text-transform:var(--mdc-filled-button-label-text-transform);height:var(--mdc-filled-button-container-height);border-radius:var(--mdc-filled-button-container-shape);padding:0 var(--mat-filled-button-horizontal-padding, 16px)}.mat-mdc-unelevated-button:not(:disabled){background-color:var(--mdc-filled-button-container-color)}.mat-mdc-unelevated-button:disabled{background-color:var(--mdc-filled-button-disabled-container-color)}.mat-mdc-unelevated-button:not(:disabled){color:var(--mdc-filled-button-label-text-color)}.mat-mdc-unelevated-button:disabled{color:var(--mdc-filled-button-disabled-label-text-color)}.mat-mdc-unelevated-button .mdc-button__ripple{border-radius:var(--mdc-filled-button-container-shape)}.mat-mdc-unelevated-button>.mat-icon{margin-right:var(--mat-filled-button-icon-spacing, 8px);margin-left:var(--mat-filled-button-icon-offset, -4px)}[dir=rtl] .mat-mdc-unelevated-button>.mat-icon{margin-right:var(--mat-filled-button-icon-offset, -4px);margin-left:var(--mat-filled-button-icon-spacing, 8px)}.mat-mdc-unelevated-button .mdc-button__label+.mat-icon{margin-right:var(--mat-filled-button-icon-offset, -4px);margin-left:var(--mat-filled-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-unelevated-button .mdc-button__label+.mat-icon{margin-right:var(--mat-filled-button-icon-spacing, 8px);margin-left:var(--mat-filled-button-icon-offset, -4px)}.mat-mdc-unelevated-button .mat-ripple-element{background-color:var(--mat-filled-button-ripple-color)}.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-filled-button-state-layer-color)}.mat-mdc-unelevated-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-filled-button-disabled-state-layer-color)}.mat-mdc-unelevated-button:hover .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-filled-button-hover-state-layer-opacity)}.mat-mdc-unelevated-button.cdk-program-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button.cdk-keyboard-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button.mat-mdc-button-disabled-interactive:focus .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-filled-button-focus-state-layer-opacity)}.mat-mdc-unelevated-button:active .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-filled-button-pressed-state-layer-opacity)}.mat-mdc-unelevated-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-filled-button-touch-target-display)}.mat-mdc-unelevated-button[disabled],.mat-mdc-unelevated-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-filled-button-disabled-label-text-color);background-color:var(--mdc-filled-button-disabled-container-color)}.mat-mdc-unelevated-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-raised-button{font-family:var(--mdc-protected-button-label-text-font);font-size:var(--mdc-protected-button-label-text-size);letter-spacing:var(--mdc-protected-button-label-text-tracking);font-weight:var(--mdc-protected-button-label-text-weight);text-transform:var(--mdc-protected-button-label-text-transform);height:var(--mdc-protected-button-container-height);border-radius:var(--mdc-protected-button-container-shape);padding:0 var(--mat-protected-button-horizontal-padding, 16px);box-shadow:var(--mdc-protected-button-container-elevation-shadow)}.mat-mdc-raised-button:not(:disabled){background-color:var(--mdc-protected-button-container-color)}.mat-mdc-raised-button:disabled{background-color:var(--mdc-protected-button-disabled-container-color)}.mat-mdc-raised-button:not(:disabled){color:var(--mdc-protected-button-label-text-color)}.mat-mdc-raised-button:disabled{color:var(--mdc-protected-button-disabled-label-text-color)}.mat-mdc-raised-button .mdc-button__ripple{border-radius:var(--mdc-protected-button-container-shape)}.mat-mdc-raised-button>.mat-icon{margin-right:var(--mat-protected-button-icon-spacing, 8px);margin-left:var(--mat-protected-button-icon-offset, -4px)}[dir=rtl] .mat-mdc-raised-button>.mat-icon{margin-right:var(--mat-protected-button-icon-offset, -4px);margin-left:var(--mat-protected-button-icon-spacing, 8px)}.mat-mdc-raised-button .mdc-button__label+.mat-icon{margin-right:var(--mat-protected-button-icon-offset, -4px);margin-left:var(--mat-protected-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-raised-button .mdc-button__label+.mat-icon{margin-right:var(--mat-protected-button-icon-spacing, 8px);margin-left:var(--mat-protected-button-icon-offset, -4px)}.mat-mdc-raised-button .mat-ripple-element{background-color:var(--mat-protected-button-ripple-color)}.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-protected-button-state-layer-color)}.mat-mdc-raised-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-protected-button-disabled-state-layer-color)}.mat-mdc-raised-button:hover .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-protected-button-hover-state-layer-opacity)}.mat-mdc-raised-button.cdk-program-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button.cdk-keyboard-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button.mat-mdc-button-disabled-interactive:focus .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-protected-button-focus-state-layer-opacity)}.mat-mdc-raised-button:active .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-protected-button-pressed-state-layer-opacity)}.mat-mdc-raised-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-protected-button-touch-target-display)}.mat-mdc-raised-button:hover{box-shadow:var(--mdc-protected-button-hover-container-elevation-shadow)}.mat-mdc-raised-button:focus{box-shadow:var(--mdc-protected-button-focus-container-elevation-shadow)}.mat-mdc-raised-button:active,.mat-mdc-raised-button:focus:active{box-shadow:var(--mdc-protected-button-pressed-container-elevation-shadow)}.mat-mdc-raised-button[disabled],.mat-mdc-raised-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-protected-button-disabled-label-text-color);background-color:var(--mdc-protected-button-disabled-container-color)}.mat-mdc-raised-button[disabled].mat-mdc-button-disabled,.mat-mdc-raised-button.mat-mdc-button-disabled.mat-mdc-button-disabled{box-shadow:var(--mdc-protected-button-disabled-container-elevation-shadow)}.mat-mdc-raised-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-outlined-button{font-family:var(--mdc-outlined-button-label-text-font);font-size:var(--mdc-outlined-button-label-text-size);letter-spacing:var(--mdc-outlined-button-label-text-tracking);font-weight:var(--mdc-outlined-button-label-text-weight);text-transform:var(--mdc-outlined-button-label-text-transform);height:var(--mdc-outlined-button-container-height);border-radius:var(--mdc-outlined-button-container-shape);padding:0 15px 0 15px;border-width:var(--mdc-outlined-button-outline-width);padding:0 var(--mat-outlined-button-horizontal-padding, 15px)}.mat-mdc-outlined-button:not(:disabled){color:var(--mdc-outlined-button-label-text-color)}.mat-mdc-outlined-button:disabled{color:var(--mdc-outlined-button-disabled-label-text-color)}.mat-mdc-outlined-button .mdc-button__ripple{border-radius:var(--mdc-outlined-button-container-shape)}.mat-mdc-outlined-button:not(:disabled){border-color:var(--mdc-outlined-button-outline-color)}.mat-mdc-outlined-button:disabled{border-color:var(--mdc-outlined-button-disabled-outline-color)}.mat-mdc-outlined-button.mdc-button--icon-trailing{padding:0 11px 0 15px}.mat-mdc-outlined-button.mdc-button--icon-leading{padding:0 15px 0 11px}.mat-mdc-outlined-button .mdc-button__ripple{top:-1px;left:-1px;bottom:-1px;right:-1px;border-width:var(--mdc-outlined-button-outline-width)}.mat-mdc-outlined-button .mdc-button__touch{left:calc(-1 * var(--mdc-outlined-button-outline-width));width:calc(100% + 2 * var(--mdc-outlined-button-outline-width))}.mat-mdc-outlined-button>.mat-icon{margin-right:var(--mat-outlined-button-icon-spacing, 8px);margin-left:var(--mat-outlined-button-icon-offset, -4px)}[dir=rtl] .mat-mdc-outlined-button>.mat-icon{margin-right:var(--mat-outlined-button-icon-offset, -4px);margin-left:var(--mat-outlined-button-icon-spacing, 8px)}.mat-mdc-outlined-button .mdc-button__label+.mat-icon{margin-right:var(--mat-outlined-button-icon-offset, -4px);margin-left:var(--mat-outlined-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-outlined-button .mdc-button__label+.mat-icon{margin-right:var(--mat-outlined-button-icon-spacing, 8px);margin-left:var(--mat-outlined-button-icon-offset, -4px)}.mat-mdc-outlined-button .mat-ripple-element{background-color:var(--mat-outlined-button-ripple-color)}.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-outlined-button-state-layer-color)}.mat-mdc-outlined-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-outlined-button-disabled-state-layer-color)}.mat-mdc-outlined-button:hover .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-outlined-button-hover-state-layer-opacity)}.mat-mdc-outlined-button.cdk-program-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button.cdk-keyboard-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button.mat-mdc-button-disabled-interactive:focus .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-outlined-button-focus-state-layer-opacity)}.mat-mdc-outlined-button:active .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-outlined-button-pressed-state-layer-opacity)}.mat-mdc-outlined-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-outlined-button-touch-target-display)}.mat-mdc-outlined-button[disabled],.mat-mdc-outlined-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-outlined-button-disabled-label-text-color);border-color:var(--mdc-outlined-button-disabled-outline-color)}.mat-mdc-outlined-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-button-base{text-decoration:none}.mat-mdc-button,.mat-mdc-unelevated-button,.mat-mdc-raised-button,.mat-mdc-outlined-button{-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-button .mat-mdc-button-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-button .mat-mdc-button-ripple,.mat-mdc-unelevated-button .mat-mdc-button-ripple,.mat-mdc-raised-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{content:"";opacity:0}.mat-mdc-button .mdc-button__label,.mat-mdc-unelevated-button .mdc-button__label,.mat-mdc-raised-button .mdc-button__label,.mat-mdc-outlined-button .mdc-button__label{z-index:1}.mat-mdc-button .mat-mdc-focus-indicator,.mat-mdc-unelevated-button .mat-mdc-focus-indicator,.mat-mdc-raised-button .mat-mdc-focus-indicator,.mat-mdc-outlined-button .mat-mdc-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-unelevated-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-raised-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-outlined-button:focus .mat-mdc-focus-indicator::before{content:""}.mat-mdc-button._mat-animation-noopable,.mat-mdc-unelevated-button._mat-animation-noopable,.mat-mdc-raised-button._mat-animation-noopable,.mat-mdc-outlined-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-button>.mat-icon,.mat-mdc-unelevated-button>.mat-icon,.mat-mdc-raised-button>.mat-icon,.mat-mdc-outlined-button>.mat-icon{display:inline-block;position:relative;vertical-align:top;font-size:1.125rem;height:1.125rem;width:1.125rem}.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mdc-button__ripple{top:-1px;left:-1px;bottom:-1px;right:-1px;border-width:-1px}.mat-mdc-unelevated-button .mat-mdc-focus-indicator::before,.mat-mdc-raised-button .mat-mdc-focus-indicator::before{margin:calc(calc(var(--mat-mdc-focus-indicator-border-width, 3px) + 2px)*-1)}.mat-mdc-outlined-button .mat-mdc-focus-indicator::before{margin:calc(calc(var(--mat-mdc-focus-indicator-border-width, 3px) + 3px)*-1)}',".cdk-high-contrast-active .mat-mdc-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-unelevated-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-raised-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-outlined-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-icon-button{outline:solid 1px}"],encapsulation:2,changeDetection:0})}return n})(),ebe=(()=>{class n{static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275mod=vo({type:n});static#n=this.\u0275inj=ra({imports:[Qd,P4,Qd]})}return n})();function tbe(n,e){if(1&n){const t=ta();ig(0),Gt(1,"input",29,5),Ai("change",function(r){return Mi(Ci(t).$implicit.handler(r.target.files))}),dn(),Gt(3,"button",13),Ai("click",function(){return Ci(t),Mi(Ga(2).click())}),Vr(4,"img",30),qi(5),dn(),rg()}if(2&n){const t=e.$implicit;jn(),Qn("accept",t.accept),jn(4),yl(" Load ",t.fileType," ")}}function nbe(n,e){if(1&n&&(Gt(0,"div")(1,"p",10)(2,"b"),qi(3,"Event data"),dn()(),Gt(4,"div",11),zs(5,tbe,6,2,"ng-container",28),dn()()),2&n){const t=Pr();jn(5),Qn("ngForOf",t.eventDataOptionsWithHandler)}}let u$=(()=>{class n{eventDisplay;dialogRef;eventDataImportOptions=[qu.JSON];eventDataOptionsWithHandler;supportedEventDataFormats=[new cx(qu.JSON,".json",this.handleJSONEventDataInput.bind(this),"application/json"),new cx(qu.EDM4HEPJSON,".edm4hep.json",this.handleEDM4HEPJSONEventDataInput.bind(this),"application/json"),new cx(qu.JIVEXML,".xml",this.handleJiveXMLDataInput.bind(this),"text/xml"),new cx(qu.ZIP,".zip",this.handleZipEventDataInput.bind(this),".zip"),new cx(qu.IG,".ig",this.handleIgEventDataInput.bind(this),".ig")];constructor(t,i){this.eventDisplay=t,this.dialogRef=i}ngOnInit(){this.eventDataOptionsWithHandler=this.supportedEventDataFormats.filter(t=>this.eventDataImportOptions.includes(t.format)),this.eventDataImportOptions.forEach(t=>{if(t instanceof cx){const i=t.handler.bind(this);t.handler=r=>{i(r),this.onClose()},this.eventDataOptionsWithHandler.push(t)}})}getSupportedEventDataFormats(){return this.eventDataImportOptions.map(t=>t instanceof cx?t.format:t).filter(t=>"ZIP"!==t).join(", ")}onClose(){this.dialogRef.close()}handleJSONEventDataInput(t){this.handleFileInput(t[0],"json",r=>{const s="string"==typeof r?JSON.parse(r):r;this.eventDisplay.parsePhoenixEvents(s)})}handleEDM4HEPJSONEventDataInput(t){this.handleFileInput(t[0],"json",r=>{const s="string"==typeof r?JSON.parse(r):r,o=new Hge;o.setRawEventData(s),o.processEventData(),this.eventDisplay.parsePhoenixEvents(o.getEventData())})}handleJiveXMLDataInput(t){this.handleFileInput(t[0],"xml",r=>{const s=new CE;s.process(r);const o=s.getEventData();this.eventDisplay.buildEventDataFromJSON(o)})}handleOBJInput(t){this.handleFileInput(t[0],"obj",(r,s)=>{this.eventDisplay.parseOBJGeometry(r,s)})}handleSceneInput(t){this.handleFileInput(t[0],"phnx",r=>{this.eventDisplay.parsePhoenixDisplay(r)})}handleGLTFInput(t){this.handleFileInput(t[0],"gltf",(r,s)=>{this.eventDisplay.parseGLTFGeometry(r,s)})}handlePhoenixInput(t){this.handleFileInput(t[0],"phnx",r=>{this.eventDisplay.parsePhoenixDisplay(r)})}handleROOTInput(t){var i=this;return(0,Te.A)(function*(){const r=prompt("Enter object name in ROOT file");yield i.eventDisplay.loadRootGeometry(URL.createObjectURL(t[0]),r,t[0].name.split(".")[0]),i.onClose()})()}handleRootJSONInput(t){var i=this;return(0,Te.A)(function*(){if(!i.isFileOfExtension(t[0],"gz"))return;const r=t[0].name.split(".")[0];yield i.eventDisplay.loadRootJSONGeometry(URL.createObjectURL(t[0]),r),i.onClose()})()}handleIgEventDataInput(t){const i=new gQ;i.readIgArchive(t[0],r=>{const s=i.getAllEventsData(r);this.eventDisplay.parsePhoenixEvents(s),this.onClose()})}handleZipEventDataInput(t){var i=this;return(0,Te.A)(function*(){if(!i.isFileOfExtension(t[0],"zip"))return;const r={};let s;try{s=yield AQ(t[0])}catch(l){return console.error("Error while reading zip",l),void i.eventDisplay.getInfoLogger().add("Could not read zip file","Error")}Object.keys(s).filter(l=>l.endsWith(".json")).forEach(l=>{Object.assign(r,JSON.parse(s[l]))});const o=new CE;Object.keys(s).filter(l=>l.endsWith(".xml")||l.startsWith("JiveXML")).forEach(l=>{o.process(s[l]);const d=o.getEventData();Object.assign(r,{[l]:d})}),i.eventDisplay.parsePhoenixEvents(r),i.onClose()})()}handleFileInput(t,i,r){const s=new FileReader;this.isFileOfExtension(t,i)&&(s.onload=()=>{r(s.result.toString(),t.name.split(".")[0])},s.readAsText(t)),this.onClose()}isFileOfExtension(t,i){return t.name.split(".").pop()===i||(console.error("Error: Invalid file format!"),this.eventDisplay.getInfoLogger().add("Invalid file format!","Error"),!1)}saveScene(){this.eventDisplay.exportPhoenixDisplay()}exportOBJ(){this.eventDisplay.exportToOBJ()}static \u0275fac=function(i){return new(i||n)(Lt(Al),Lt(_x))};static \u0275cmp=rs({type:n,selectors:[["app-io-options-dialog"]],inputs:{eventDataImportOptions:"eventDataImportOptions"},decls:47,vars:1,consts:[["objFileInput",""],["gltfFileInput",""],["rootFileInput",""],["rootJSONFileInput",""],["loadSceneInput",""],["eventDataFileInput",""],[1,"dialog"],["mat-dialog-title",""],["mat-dialog-content","",1,"dialog-content"],[4,"ngIf"],[1,"text-center"],[1,"row","centered"],["type","file","tabindex","-1","accept",".obj","name","image",1,"file-input",3,"change"],[1,"file-input-button",3,"click"],["src","assets/icons/obj.svg","alt",""],["type","file","tabindex","-1","accept",".gltf","name","image",1,"file-input",3,"change"],["src","assets/icons/gltf.svg","alt",""],["type","file","tabindex","-1","accept",".root",1,"file-input",3,"change"],["src","assets/icons/file-import.svg","alt",""],["type","file","tabindex","-1","accept",".json.gz",1,"file-input",3,"change"],["id","exportScene",1,"file-input-button","load-export",3,"click"],["src","assets/icons/save.svg","alt",""],["type","file","tabindex","-1","accept",".phnx","name","image",1,"file-input",3,"change"],["id","importScene",1,"file-input-button","load-export",3,"click"],["src","assets/icons/upload.svg","alt",""],["id","exportOBJ",1,"file-input-button","export-button",3,"click"],["mat-dialog-actions","","align","end"],["mat-flat-button","","color","primary","cdkFocusInitial","",3,"click"],[4,"ngFor","ngForOf"],["type","file","tabindex","-1",1,"file-input",3,"change","accept"],["src","assets/icons/eventData.svg","alt","Event data icon"]],template:function(i,r){if(1&i){const s=ta();Gt(0,"div",6)(1,"h1",7),qi(2,"Import and export"),dn(),Gt(3,"div",8),zs(4,nbe,6,1,"div",9),Gt(5,"p",10)(6,"b"),qi(7,"Geometries"),dn()(),Gt(8,"div",11)(9,"input",12,0),Ai("change",function(l){return Ci(s),Mi(r.handleOBJInput(l.target.files))}),dn(),Gt(11,"button",13),Ai("click",function(){return Ci(s),Mi(Ga(10).click())}),Vr(12,"img",14),qi(13," Load .obj "),dn(),Gt(14,"input",15,1),Ai("change",function(l){return Ci(s),Mi(r.handleGLTFInput(l.target.files))}),dn(),Gt(16,"button",13),Ai("click",function(){return Ci(s),Mi(Ga(15).click())}),Vr(17,"img",16),qi(18," Load .gltf "),dn(),Gt(19,"input",17,2),Ai("change",function(l){return Ci(s),Mi(r.handleROOTInput(l.target.files))}),dn(),Gt(21,"button",13),Ai("click",function(){return Ci(s),Mi(Ga(20).click())}),Vr(22,"img",18),qi(23," Load .root "),dn(),Gt(24,"input",19,3),Ai("change",function(l){return Ci(s),Mi(r.handleRootJSONInput(l.target.files))}),dn(),Gt(26,"button",13),Ai("click",function(){return Ci(s),Mi(Ga(25).click())}),Vr(27,"img",18),qi(28," Load .json.gz "),dn()(),Gt(29,"p",10)(30,"b"),qi(31,"Scene"),dn()(),Gt(32,"div",11)(33,"button",20),Ai("click",function(){return Ci(s),Mi(r.saveScene())}),Vr(34,"img",21),qi(35," Save scene "),dn(),Gt(36,"input",22,4),Ai("change",function(l){return Ci(s),Mi(r.handlePhoenixInput(l.target.files))}),dn(),Gt(38,"button",23),Ai("click",function(){return Ci(s),Mi(Ga(37).click())}),Vr(39,"img",24),qi(40," Load scene "),dn(),Gt(41,"button",25),Ai("click",function(){return Ci(s),Mi(r.exportOBJ())}),Vr(42,"img",14),qi(43," Save OBJ "),dn()()(),Gt(44,"div",26)(45,"button",27),Ai("click",function(){return Ci(s),Mi(r.onClose())}),qi(46," Close "),dn()()()}2&i&&(jn(4),Qn("ngIf",r.eventDataImportOptions.length>0))},dependencies:[am,Lu,jE,XE,$E,BC],styles:[".row[_ngcontent-%COMP%]{justify-content:center;margin:1rem 0}.file-input[_ngcontent-%COMP%]{width:.1px;height:.1px;opacity:0;overflow:hidden;position:absolute;z-index:-1}.file-input-button[_ngcontent-%COMP%]{font-size:1em;font-weight:700;color:#fff;background-color:#6eaece;padding:1em .5em;border:none;border-radius:10px;width:8rem;margin:0 .4rem}.file-input-button.load-export[_ngcontent-%COMP%]{padding:.8em .2em;width:7rem}.file-input-button.load-export[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{max-height:1.2em}.file-input-button.export-button[_ngcontent-%COMP%]{background-color:#cb7133}.file-input-button.export-button[_ngcontent-%COMP%]:hover{background-color:#ad5b2d}.file-input-button[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{max-height:2em;display:block;width:100%}.file-input-button[_ngcontent-%COMP%]:hover{background-color:#118ab2}#exportScene[_ngcontent-%COMP%]{background-color:#5bd99e}#exportScene[_ngcontent-%COMP%]:hover{background-color:#05c292}#importScene[_ngcontent-%COMP%]{background-color:#ecc25e}#importScene[_ngcontent-%COMP%]:hover{background-color:#d6b44d}"]})}return n})(),gL=(()=>{class n{dialog;eventDataImportOptions=Object.values(qu);constructor(t){this.dialog=t}openIODialog(){this.dialog.open(u$,{panelClass:"dialog"}).componentInstance.eventDataImportOptions=this.eventDataImportOptions}static \u0275fac=function(i){return new(i||n)(Lt(yx))};static \u0275cmp=rs({type:n,selectors:[["app-io-options"]],inputs:{eventDataImportOptions:"eventDataImportOptions"},decls:1,vars:1,consts:[["tooltip","Import and export options","icon","import",3,"click","active"]],template:function(i,r){1&i&&(Gt(0,"app-menu-toggle",0),Ai("click",function(){return r.openIODialog()}),dn()),2&i&&Qn("active",!1)},dependencies:[qc]})}return n})();const ibe=["overlayWindow"];let f$=(()=>{class n{eventDisplay;showOverlay=!0;transparentBody=!1;orthographicView=!1;overlayViewFixed=!1;overlayWindow;constructor(t){this.eventDisplay=t}ngAfterViewInit(){const t=this.initializeCanvas(this.overlayWindow.nativeElement);this.eventDisplay.setOverlayRenderer(t)}initializeCanvas(t){const i=window.innerWidth/2.5,r=window.innerHeight/2.5;return t.width=i,t.height=r,t.style.width=i.toString()+" px",t.style.height=r.toString()+" px",t}switchOverlayView(){this.orthographicView=!this.orthographicView,this.eventDisplay.getUIManager().toggleOrthographicView(this.orthographicView)}fixOverlayView(){this.overlayViewFixed=!this.overlayViewFixed,this.eventDisplay.fixOverlayView(this.overlayViewFixed)}toggleBgTransparency(){this.transparentBody=!this.transparentBody}static \u0275fac=function(i){return new(i||n)(Lt(Al))};static \u0275cmp=rs({type:n,selectors:[["app-overlay-view-window"]],viewQuery:function(i,r){if(1&i&&_l(ibe,5),2&i){let s;pa(s=ma())&&(r.overlayWindow=s.first)}},inputs:{showOverlay:"showOverlay"},decls:8,vars:9,consts:[["overlayWindow",""],["overlayTitle","Overlay View","icon","overlay",3,"resizable","transparentBody","active","keepAspectRatioFixed"],[1,"overlay-view-wrapper"],["id","overlay-canvas",3,"hidden"],[1,"overlay-view-controls","position-absolute","d-flex","flex-row"],["icon","transparent","matTooltip","Toggle background transparency",1,"overlay-view-control",3,"click"],["icon","move-lock",1,"overlay-view-control",3,"click","matTooltip","active"],[1,"overlay-view-control",3,"click","icon","matTooltip"]],template:function(i,r){if(1&i){const s=ta();Gt(0,"app-overlay",1)(1,"div",2),Vr(2,"canvas",3,0),Gt(4,"div",4)(5,"app-menu-toggle",5),Ai("click",function(){return Ci(s),Mi(r.toggleBgTransparency())}),dn(),Gt(6,"app-menu-toggle",6),Ai("click",function(){return Ci(s),Mi(r.fixOverlayView())}),dn(),Gt(7,"app-menu-toggle",7),Ai("click",function(){return Ci(s),Mi(r.switchOverlayView())}),dn()()()()}2&i&&(Qn("resizable",!0)("transparentBody",r.transparentBody)("active",r.showOverlay)("keepAspectRatioFixed",!0),jn(2),Qn("hidden",!r.showOverlay),jn(4),Qn("matTooltip",(r.overlayViewFixed?"Restore":"Fix")+" overlay view")("active",r.overlayViewFixed),jn(),Qn("icon",r.orthographicView?"orthographic":"perspective")("matTooltip","Switch to "+(r.orthographicView?"orthographic":"perspective")+" view"))},dependencies:[a1,qc,IC],styles:["#overlay-canvas[_ngcontent-%COMP%]{background-color:#0000001a;width:100%}.overlay-view-controls[_ngcontent-%COMP%]{bottom:1em;right:1em;opacity:0;transition:opacity .2s}.overlay-view-controls[_ngcontent-%COMP%] .overlay-view-control[_ngcontent-%COMP%]{background:var(--phoenix-background-color-secondary);box-shadow:var(--phoenix-box-shadow);overflow:hidden;width:2.5rem;height:2.5rem;border-radius:50%;display:flex;justify-content:center;align-items:center}.overlay-view-wrapper[_ngcontent-%COMP%]:hover .overlay-view-controls[_ngcontent-%COMP%]{opacity:1;transition:opacity .2s}"]})}return n})(),_L=(()=>{class n{overlay;overlayWindow;showOverlay=!1;constructor(t){this.overlay=t}ngOnInit(){const t=this.overlay.create(),i=new t1(f$);this.overlayWindow=t.attach(i),this.overlayWindow.instance.showOverlay=this.showOverlay}ngOnDestroy(){this.overlayWindow.destroy()}toggleOverlay(){this.showOverlay=!this.showOverlay,this.overlayWindow.instance.showOverlay=this.showOverlay}static \u0275fac=function(i){return new(i||n)(Lt(fh))};static \u0275cmp=rs({type:n,selectors:[["app-overlay-view"]],decls:1,vars:1,consts:[["tooltip","Overlay view","icon","overlay",3,"click","active"]],template:function(i,r){1&i&&(Gt(0,"app-menu-toggle",0),Ai("click",function(){return r.toggleOverlay()}),dn()),2&i&&Qn("active",r.showOverlay)},dependencies:[qc]})}return n})(),p$=(()=>{class n{transform(t,i){let r="";return Array.isArray(t)?(r+="\n",t.forEach(s=>r+=s+"\n")):r=t.toString(),r}static \u0275fac=function(i){return new(i||n)};static \u0275pipe=Ic({name:"attributePipe",type:n,pure:!0})}return n})();function rbe(n,e){if(1&n&&(Gt(0,"div",4)(1,"strong"),qi(2),dn(),qi(3),rS(4,"attributePipe"),dn()),2&n){const t=e.$implicit;jn(2),tA(t.attributeName),jn(),yl(" : ",function Q6(n,e,t){const i=n+Cs,r=Zi(),s=km(r,i);return sS(r,i)?z6(r,Yc(),e,s.transform,t,s):s.transform(t)}(4,2,t.attributeValue)," ")}}function sbe(n,e){if(1&n&&(Gt(0,"div",2),zs(1,rbe,5,4,"div",3),dn()),2&n){const t=Pr();jn(),Qn("ngForOf",t.selectedObject.attributes)}}let m$=(()=>{class n{eventDisplay;hiddenSelectedInfo;selectedObject={name:"Object",attributes:[]};constructor(t){this.eventDisplay=t}ngOnInit(){this.eventDisplay.allowSelection(this.selectedObject)}static \u0275fac=function(i){return new(i||n)(Lt(Al))};static \u0275cmp=rs({type:n,selectors:[["app-object-selection-overlay"]],inputs:{hiddenSelectedInfo:"hiddenSelectedInfo"},decls:2,vars:3,consts:[["icon","cursor",3,"overlayTitle","active"],["id","selectedObjectPanelBody","class","m-1",4,"ngIf"],["id","selectedObjectPanelBody",1,"m-1"],["class","attributeField",4,"ngFor","ngForOf"],[1,"attributeField"]],template:function(i,r){1&i&&(Gt(0,"app-overlay",0),zs(1,sbe,2,1,"div",1),dn()),2&i&&(Qn("overlayTitle",r.selectedObject.name)("active",!r.hiddenSelectedInfo),jn(),Qn("ngIf",r.selectedObject.attributes.length>0))},dependencies:[am,Lu,IC,p$],styles:["#selectedObjectPanelBody[_ngcontent-%COMP%]{padding:0 .8em;overflow:auto;max-width:300px;max-height:16rem;min-width:7rem}"]})}return n})(),yL=(()=>{class n{overlay;eventDisplay;hiddenSelectedInfo=!0;overlayWindow;constructor(t,i){this.overlay=t,this.eventDisplay=i}ngOnInit(){const t=this.overlay.create(),i=new t1(m$);this.overlayWindow=t.attach(i),this.overlayWindow.instance.hiddenSelectedInfo=this.hiddenSelectedInfo}ngOnDestroy(){this.overlayWindow.destroy()}toggleOverlay(){this.hiddenSelectedInfo=!this.hiddenSelectedInfo,this.overlayWindow.instance.hiddenSelectedInfo=this.hiddenSelectedInfo,this.eventDisplay.enableSelecting(!this.hiddenSelectedInfo)}static \u0275fac=function(i){return new(i||n)(Lt(fh),Lt(Al))};static \u0275cmp=rs({type:n,selectors:[["app-object-selection"]],decls:1,vars:1,consts:[["tooltip","Object selection","icon","cursor",3,"click","active"]],template:function(i,r){1&i&&(Gt(0,"app-menu-toggle",0),Ai("click",function(){return r.toggleOverlay()}),dn()),2&i&&Qn("active",!r.hiddenSelectedInfo)},dependencies:[qc]})}return n})();function obe(n,e){if(1&n&&(Gt(0,"option",4),qi(1),dn()),2&n){const t=e.$implicit;Qn("value",t),jn(),yl(" ",t," ")}}function abe(n,e){if(1&n){const t=ta();Gt(0,"div",1)(1,"select",2),Ai("change",function(r){return Ci(t),Mi(Pr().changeEvent(r))}),zs(2,obe,2,2,"option",3),dn()()}if(2&n){const t=Pr();jn(2),Qn("ngForOf",t.events)}}let vL=(()=>{class n{eventDisplay;events;constructor(t){this.eventDisplay=t}ngOnInit(){this.eventDisplay.listenToLoadedEventsChange(t=>this.events=t)}changeEvent(t){this.eventDisplay.loadEvent(t.target.value)}static \u0275fac=function(i){return new(i||n)(Lt(Al))};static \u0275cmp=rs({type:n,selectors:[["app-event-selector"]],decls:1,vars:1,consts:[["class","eventSelector mx-2","matTooltip","Event selector","matTooltipPosition","above",4,"ngIf"],["matTooltip","Event selector","matTooltipPosition","above",1,"eventSelector","mx-2"],["name","event",3,"change"],[3,"value",4,"ngFor","ngForOf"],[3,"value"]],template:function(i,r){1&i&&zs(0,abe,3,1,"div",0),2&i&&Qn("ngIf",null!=r.events)},dependencies:[am,Lu,a1,EC,TC],styles:[".eventSelector[_ngcontent-%COMP%] select[_ngcontent-%COMP%]{width:9rem;padding:5px 10px;font-size:12px;border:1px solid rgba(88,88,88,.08);box-shadow:var(--phoenix-icon-shadow);background-color:var(--phoenix-background-color-tertiary);color:var(--phoenix-text-color-secondary)}"]})}return n})();const lbe=["knob"],cbe=["valueIndicatorContainer"];function dbe(n,e){if(1&n&&(Gt(0,"div",2,1)(2,"div",5)(3,"span",6),qi(4),dn()()()),2&n){const t=Pr();jn(4),tA(t.valueIndicatorText)}}const hbe=["trackActive"],ube=["*"];function fbe(n,e){if(1&n&&Vr(0,"div"),2&n){const t=e.$implicit,i=e.$index,r=Pr(3);P_(0===t?"mdc-slider__tick-mark--active":"mdc-slider__tick-mark--inactive"),$M("transform",r._calcTickMarkTransform(i))}}function pbe(n,e){1&n&&function O3(n,e,t,i,r,s,o,l,d,h,f,A,S){im("NgControlFlow");const R=void 0!==d,G=Zi(),re=l?o.bind(G[Yo][Ka]):o,se=new uK(R,re);G[Cs+n]=se,zs(n+1,e,t,i,r,s),R&&zs(n+2,d,h,f,A,S)}(0,fbe,1,4,"div",8,F3),2&n&&function L3(n){const e=Ye(null),t=Lc();try{const i=Zi(),r=i[Gr],s=i[t];if(void 0===s.liveCollection){const l=t+1,d=QP(i,l),h=WP(r,l);s.liveCollection=new fK(d,i,h)}else s.liveCollection.reset();const o=s.liveCollection;if(function cK(n,e,t){let i,r,s=0,o=n.length-1;if(Array.isArray(e)){let l=e.length-1;for(;s<=o&&s<=l;){const d=n.at(s),h=e[s],f=GP(s,d,s,h,t);if(0!==f){f<0&&n.updateValue(s,h),s++;continue}const A=n.at(o),S=e[l],R=GP(o,A,l,S,t);if(0!==R){R<0&&n.updateValue(o,S),o--,l--;continue}const G=t(s,d),re=t(o,A),se=t(s,h);if(Object.is(se,re)){const le=t(l,S);Object.is(le,G)?(n.swap(s,o),n.updateValue(o,S),l--,o--):n.move(o,s),n.updateValue(s,h),s++}else if(i??=new D8,r??=T8(n,s,o,t),qP(n,i,s,se))n.updateValue(s,h),s++,o++;else if(r.has(se))i.set(G,n.detach(s)),o--;else{const le=n.create(s,e[s]);n.attach(s,le),s++,o++}}for(;s<=l;)E8(n,i,t,s,e[s]),s++}else if(null!=e){const l=e[Symbol.iterator]();let d=l.next();for(;!d.done&&s<=o;){const h=n.at(s),f=d.value,A=GP(s,h,s,f,t);if(0!==A)A<0&&n.updateValue(s,f),s++,d=l.next();else{i??=new D8,r??=T8(n,s,o,t);const S=t(s,f);if(qP(n,i,s,S))n.updateValue(s,f),s++,o++,d=l.next();else if(r.has(S)){const R=t(s,h);i.set(R,n.detach(s)),o--}else n.attach(s,n.create(s,f)),s++,o++,d=l.next()}}for(;!d.done;)E8(n,i,t,n.length,d.value),d=l.next()}for(;s<=o;)n.destroy(n.detach(o--));i?.forEach(l=>{n.destroy(l)})}(o,n,s.trackByFn),o.updateIndexes(),s.hasEmptyBlock){const l=uu(),d=0===o.length;if(Hd(i,l,d)){const h=t+2,f=QP(i,h);if(d){const A=WP(r,h),S=vy(f,A.tView.ssrId);Kv(f,Xv(i,A,void 0,{dehydratedView:S}),0,fy(A,S))}else hw(f,0)}}}finally{Ye(e)}}(Pr(2)._tickMarks)}function mbe(n,e){if(1&n&&(Gt(0,"div",6,1),zs(2,pbe,2,0),dn()),2&n){const t=Pr();jn(2),R_(2,t._cachedWidth?2:-1)}}function Abe(n,e){if(1&n&&Vr(0,"mat-slider-visual-thumb",7),2&n){const t=Pr();Qn("discrete",t.discrete)("thumbPosition",1)("valueIndicatorText",t.startValueIndicatorText)}}var na=function(n){return n[n.START=1]="START",n[n.END=2]="END",n}(na||{}),PC=function(n){return n[n.ACTIVE=0]="ACTIVE",n[n.INACTIVE=1]="INACTIVE",n}(PC||{});const iB=new Bi("_MatSlider"),A$=new Bi("_MatSliderThumb"),g$=new Bi("_MatSliderRangeThumb"),_$=new Bi("_MatSliderVisualThumb");let gbe=(()=>{class n{constructor(t,i,r,s){this._cdr=t,this._ngZone=i,this._slider=s,this._isHovered=!1,this._isActive=!1,this._isValueIndicatorVisible=!1,this._platform=pi(dd),this._onPointerMove=o=>{if(this._sliderInput._isFocused)return;const l=this._hostElement.getBoundingClientRect(),d=this._slider._isCursorOnSliderThumb(o,l);this._isHovered=d,d?this._showHoverRipple():this._hideRipple(this._hoverRippleRef)},this._onMouseLeave=()=>{this._isHovered=!1,this._hideRipple(this._hoverRippleRef)},this._onFocus=()=>{this._hideRipple(this._hoverRippleRef),this._showFocusRipple(),this._hostElement.classList.add("mdc-slider__thumb--focused")},this._onBlur=()=>{this._isActive||this._hideRipple(this._focusRippleRef),this._isHovered&&this._showHoverRipple(),this._hostElement.classList.remove("mdc-slider__thumb--focused")},this._onDragStart=o=>{0===o.button&&(this._isActive=!0,this._showActiveRipple())},this._onDragEnd=()=>{this._isActive=!1,this._hideRipple(this._activeRippleRef),this._sliderInput._isFocused||this._hideRipple(this._focusRippleRef),this._platform.SAFARI&&this._showHoverRipple()},this._hostElement=r.nativeElement}ngAfterViewInit(){this._ripple.radius=24,this._sliderInput=this._slider._getInput(this.thumbPosition),this._sliderInputEl=this._sliderInput._hostElement;const t=this._sliderInputEl;this._ngZone.runOutsideAngular(()=>{t.addEventListener("pointermove",this._onPointerMove),t.addEventListener("pointerdown",this._onDragStart),t.addEventListener("pointerup",this._onDragEnd),t.addEventListener("pointerleave",this._onMouseLeave),t.addEventListener("focus",this._onFocus),t.addEventListener("blur",this._onBlur)})}ngOnDestroy(){const t=this._sliderInputEl;t&&(t.removeEventListener("pointermove",this._onPointerMove),t.removeEventListener("pointerdown",this._onDragStart),t.removeEventListener("pointerup",this._onDragEnd),t.removeEventListener("pointerleave",this._onMouseLeave),t.removeEventListener("focus",this._onFocus),t.removeEventListener("blur",this._onBlur))}_showHoverRipple(){this._isShowingRipple(this._hoverRippleRef)||(this._hoverRippleRef=this._showRipple({enterDuration:0,exitDuration:0}),this._hoverRippleRef?.element.classList.add("mat-mdc-slider-hover-ripple"))}_showFocusRipple(){this._isShowingRipple(this._focusRippleRef)||(this._focusRippleRef=this._showRipple({enterDuration:0,exitDuration:0},!0),this._focusRippleRef?.element.classList.add("mat-mdc-slider-focus-ripple"))}_showActiveRipple(){this._isShowingRipple(this._activeRippleRef)||(this._activeRippleRef=this._showRipple({enterDuration:225,exitDuration:400}),this._activeRippleRef?.element.classList.add("mat-mdc-slider-active-ripple"))}_isShowingRipple(t){return t?.state===xp.FADING_IN||t?.state===xp.VISIBLE}_showRipple(t,i){if(!this._slider.disabled&&(this._showValueIndicator(),this._slider._isRange&&this._slider._getThumb(this.thumbPosition===na.START?na.END:na.START)._showValueIndicator(),!this._slider._globalRippleOptions?.disabled||i))return this._ripple.launch({animation:this._slider._noopAnimations?{enterDuration:0,exitDuration:0}:t,centered:!0,persistent:!0})}_hideRipple(t){if(t?.fadeOut(),this._isShowingAnyRipple())return;this._slider._isRange||this._hideValueIndicator();const i=this._getSibling();i._isShowingAnyRipple()||(this._hideValueIndicator(),i._hideValueIndicator())}_showValueIndicator(){this._hostElement.classList.add("mdc-slider__thumb--with-indicator")}_hideValueIndicator(){this._hostElement.classList.remove("mdc-slider__thumb--with-indicator")}_getSibling(){return this._slider._getThumb(this.thumbPosition===na.START?na.END:na.START)}_getValueIndicatorContainer(){return this._valueIndicatorContainer?.nativeElement}_getKnob(){return this._knob.nativeElement}_isShowingAnyRipple(){return this._isShowingRipple(this._hoverRippleRef)||this._isShowingRipple(this._focusRippleRef)||this._isShowingRipple(this._activeRippleRef)}static#e=this.\u0275fac=function(i){return new(i||n)(Lt(Sc),Lt(io),Lt(oo),Lt(iB))};static#t=this.\u0275cmp=rs({type:n,selectors:[["mat-slider-visual-thumb"]],viewQuery:function(i,r){if(1&i&&(_l(k0,5),_l(lbe,5),_l(cbe,5)),2&i){let s;pa(s=ma())&&(r._ripple=s.first),pa(s=ma())&&(r._knob=s.first),pa(s=ma())&&(r._valueIndicatorContainer=s.first)}},hostAttrs:[1,"mdc-slider__thumb","mat-mdc-slider-visual-thumb"],inputs:{discrete:"discrete",thumbPosition:"thumbPosition",valueIndicatorText:"valueIndicatorText"},standalone:!0,features:[qo([{provide:_$,useExisting:n}]),yd],decls:4,vars:2,consts:[["knob",""],["valueIndicatorContainer",""],[1,"mdc-slider__value-indicator-container"],[1,"mdc-slider__thumb-knob"],["matRipple","",1,"mat-mdc-focus-indicator",3,"matRippleDisabled"],[1,"mdc-slider__value-indicator"],[1,"mdc-slider__value-indicator-text"]],template:function(i,r){1&i&&(zs(0,dbe,5,1,"div",2),Vr(1,"div",3,0)(3,"div",4)),2&i&&(R_(0,r.discrete?0:-1),jn(3),Qn("matRippleDisabled",!0))},dependencies:[k0],styles:[".mat-mdc-slider-visual-thumb .mat-ripple{height:100%;width:100%}.mat-mdc-slider .mdc-slider__tick-marks{justify-content:start}.mat-mdc-slider .mdc-slider__tick-marks .mdc-slider__tick-mark--active,.mat-mdc-slider .mdc-slider__tick-marks .mdc-slider__tick-mark--inactive{position:absolute;left:2px}"],encapsulation:2,changeDetection:0})}return n})(),bL=(()=>{class n{get disabled(){return this._disabled}set disabled(t){this._disabled=t;const i=this._getInput(na.END),r=this._getInput(na.START);i&&(i.disabled=this._disabled),r&&(r.disabled=this._disabled)}get discrete(){return this._discrete}set discrete(t){this._discrete=t,this._updateValueIndicatorUIs()}get min(){return this._min}set min(t){const i=isNaN(t)?this._min:t;this._min!==i&&this._updateMin(i)}_updateMin(t){const i=this._min;this._min=t,this._isRange?this._updateMinRange({old:i,new:t}):this._updateMinNonRange(t),this._onMinMaxOrStepChange()}_updateMinRange(t){const i=this._getInput(na.END),r=this._getInput(na.START),s=i.value,o=r.value;r.min=t.new,i.min=Math.max(t.new,r.value),r.max=Math.min(i.max,i.value),r._updateWidthInactive(),i._updateWidthInactive(),t.newt.old?this._onTranslateXChangeBySideEffect(r,i):this._onTranslateXChangeBySideEffect(i,r),s!==i.value&&this._onValueChange(i),o!==r.value&&this._onValueChange(r)}_updateMaxNonRange(t){const i=this._getInput(na.END);if(i){const r=i.value;i.max=t,i._updateThumbUIByValue(),this._updateTrackUI(i),r!==i.value&&this._onValueChange(i)}}get step(){return this._step}set step(t){const i=isNaN(t)?this._step:t;this._step!==i&&this._updateStep(i)}_updateStep(t){this._step=t,this._isRange?this._updateStepRange():this._updateStepNonRange(),this._onMinMaxOrStepChange()}_updateStepRange(){const t=this._getInput(na.END),i=this._getInput(na.START),r=t.value,s=i.value,o=i.value;t.min=this._min,i.max=this._max,t.step=this._step,i.step=this._step,this._platform.SAFARI&&(t.value=t.value,i.value=i.value),t.min=Math.max(this._min,i.value),i.max=Math.min(this._max,t.value),i._updateWidthInactive(),t._updateWidthInactive(),t.value`${d}`,this._rippleRadius=24,this.startValueIndicatorText="",this.endValueIndicatorText="",this._isRange=!1,this._isRtl=!1,this._hasViewInitialized=!1,this._tickMarkTrackWidth=0,this._hasAnimation=!1,this._resizeTimer=null,this._platform=pi(dd),this._knobRadius=8,this._thumbsOverlap=!1,this._noopAnimations="NoopAnimations"===l,this._dirChangeSubscription=this._dir.change.subscribe(()=>this._onDirChange()),this._isRtl="rtl"===this._dir.value}ngAfterViewInit(){this._platform.isBrowser&&this._updateDimensions();const t=this._getInput(na.END),i=this._getInput(na.START);this._isRange=!!t&&!!i,this._cdr.detectChanges();const r=this._getThumb(na.END);this._rippleRadius=r._ripple.radius,this._inputPadding=this._rippleRadius-this._knobRadius,this._isRange?this._initUIRange(t,i):this._initUINonRange(t),this._updateTrackUI(t),this._updateTickMarkUI(),this._updateTickMarkTrackUI(),this._observeHostResize(),this._cdr.detectChanges()}_initUINonRange(t){t.initProps(),t.initUI(),this._updateValueIndicatorUI(t),this._hasViewInitialized=!0,t._updateThumbUIByValue()}_initUIRange(t,i){t.initProps(),t.initUI(),i.initProps(),i.initUI(),t._updateMinMax(),i._updateMinMax(),t._updateStaticStyles(),i._updateStaticStyles(),this._updateValueIndicatorUIs(),this._hasViewInitialized=!0,t._updateThumbUIByValue(),i._updateThumbUIByValue()}ngOnDestroy(){this._dirChangeSubscription.unsubscribe(),this._resizeObserver?.disconnect(),this._resizeObserver=null}_onDirChange(){this._isRtl="rtl"===this._dir.value,this._isRange?this._onDirChangeRange():this._onDirChangeNonRange(),this._updateTickMarkUI()}_onDirChangeRange(){const t=this._getInput(na.END),i=this._getInput(na.START);t._setIsLeftThumb(),i._setIsLeftThumb(),t.translateX=t._calcTranslateXByValue(),i.translateX=i._calcTranslateXByValue(),t._updateStaticStyles(),i._updateStaticStyles(),t._updateWidthInactive(),i._updateWidthInactive(),t._updateThumbUIByValue(),i._updateThumbUIByValue()}_onDirChangeNonRange(){this._getInput(na.END)._updateThumbUIByValue()}_observeHostResize(){typeof ResizeObserver>"u"||!ResizeObserver||this._ngZone.runOutsideAngular(()=>{this._resizeObserver=new ResizeObserver(()=>{this._isActive()||(this._resizeTimer&&clearTimeout(this._resizeTimer),this._onResize())}),this._resizeObserver.observe(this._elementRef.nativeElement)})}_isActive(){return this._getThumb(na.START)._isActive||this._getThumb(na.END)._isActive}_getValue(t=na.END){const i=this._getInput(t);return i?i.value:this.min}_skipUpdate(){return!(!this._getInput(na.START)?._skipUIUpdate&&!this._getInput(na.END)?._skipUIUpdate)}_updateDimensions(){this._cachedWidth=this._elementRef.nativeElement.offsetWidth,this._cachedLeft=this._elementRef.nativeElement.getBoundingClientRect().left}_setTrackActiveStyles(t){const i=this._trackActive.nativeElement.style;i.left=t.left,i.right=t.right,i.transformOrigin=t.transformOrigin,i.transform=t.transform}_calcTickMarkTransform(t){return`translateX(${t*(this._tickMarkTrackWidth/(this._tickMarks.length-1))}px`}_onTranslateXChange(t){this._hasViewInitialized&&(this._updateThumbUI(t),this._updateTrackUI(t),this._updateOverlappingThumbUI(t))}_onTranslateXChangeBySideEffect(t,i){this._hasViewInitialized&&(t._updateThumbUIByValue(),i._updateThumbUIByValue())}_onValueChange(t){this._hasViewInitialized&&(this._updateValueIndicatorUI(t),this._updateTickMarkUI(),this._cdr.detectChanges())}_onMinMaxOrStepChange(){this._hasViewInitialized&&(this._updateTickMarkUI(),this._updateTickMarkTrackUI(),this._cdr.markForCheck())}_onResize(){if(this._hasViewInitialized){if(this._updateDimensions(),this._isRange){const t=this._getInput(na.END),i=this._getInput(na.START);t._updateThumbUIByValue(),i._updateThumbUIByValue(),t._updateStaticStyles(),i._updateStaticStyles(),t._updateMinMax(),i._updateMinMax(),t._updateWidthInactive(),i._updateWidthInactive()}else{const t=this._getInput(na.END);t&&t._updateThumbUIByValue()}this._updateTickMarkUI(),this._updateTickMarkTrackUI(),this._cdr.detectChanges()}}_areThumbsOverlapping(){const t=this._getInput(na.START),i=this._getInput(na.END);return!(!t||!i)&&i.translateX-t.translateX<20}_updateOverlappingThumbClassNames(t){const i=t.getSibling(),r=this._getThumb(t.thumbPosition);this._getThumb(i.thumbPosition)._hostElement.classList.remove("mdc-slider__thumb--top"),r._hostElement.classList.toggle("mdc-slider__thumb--top",this._thumbsOverlap)}_updateOverlappingThumbUI(t){!this._isRange||this._skipUpdate()||this._thumbsOverlap!==this._areThumbsOverlapping()&&(this._thumbsOverlap=!this._thumbsOverlap,this._updateOverlappingThumbClassNames(t))}_updateThumbUI(t){this._skipUpdate()||(this._getThumb(t.thumbPosition===na.END?na.END:na.START)._hostElement.style.transform=`translateX(${t.translateX}px)`)}_updateValueIndicatorUI(t){if(this._skipUpdate())return;const i=this.displayWith(t.value);if(this._hasViewInitialized?t._valuetext=i:t._hostElement.setAttribute("aria-valuetext",i),this.discrete){t.thumbPosition===na.START?this.startValueIndicatorText=i:this.endValueIndicatorText=i;const r=this._getThumb(t.thumbPosition);i.length<3?r._hostElement.classList.add("mdc-slider__thumb--short-value"):r._hostElement.classList.remove("mdc-slider__thumb--short-value")}}_updateValueIndicatorUIs(){const t=this._getInput(na.END),i=this._getInput(na.START);t&&this._updateValueIndicatorUI(t),i&&this._updateValueIndicatorUI(i)}_updateTickMarkTrackUI(){if(!this.showTickMarks||this._skipUpdate())return;const t=this._step&&this._step>0?this._step:1,r=(Math.floor(this.max/t)*t-this.min)/(this.max-this.min);this._tickMarkTrackWidth=this._cachedWidth*r-6}_updateTrackUI(t){this._skipUpdate()||(this._isRange?this._updateTrackUIRange(t):this._updateTrackUINonRange(t))}_updateTrackUIRange(t){const i=t.getSibling();if(!i||!this._cachedWidth)return;const r=Math.abs(i.translateX-t.translateX)/this._cachedWidth;this._setTrackActiveStyles(t._isLeftThumb&&this._cachedWidth?{left:"auto",right:this._cachedWidth-i.translateX+"px",transformOrigin:"right",transform:`scaleX(${r})`}:{left:`${i.translateX}px`,right:"auto",transformOrigin:"left",transform:`scaleX(${r})`})}_updateTrackUINonRange(t){this._setTrackActiveStyles(this._isRtl?{left:"auto",right:"0px",transformOrigin:"right",transform:`scaleX(${1-t.fillPercentage})`}:{left:"0px",right:"auto",transformOrigin:"left",transform:`scaleX(${t.fillPercentage})`})}_updateTickMarkUI(){if(!this.showTickMarks||void 0===this.step||void 0===this.min||void 0===this.max)return;const t=this.step>0?this.step:1;this._isRange?this._updateTickMarkUIRange(t):this._updateTickMarkUINonRange(t),this._isRtl&&this._tickMarks.reverse()}_updateTickMarkUINonRange(t){const i=this._getValue();let r=Math.max(Math.floor((i-this.min)/t),0),s=Math.max(Math.floor((this.max-i)/t),0);this._isRtl?r++:s++,this._tickMarks=Array(r).fill(PC.ACTIVE).concat(Array(s).fill(PC.INACTIVE))}_updateTickMarkUIRange(t){const i=this._getValue(),r=this._getValue(na.START),s=Math.max(Math.floor((r-this.min)/t),0),o=Math.max(Math.floor((i-r)/t)+1,0),l=Math.max(Math.floor((this.max-i)/t),0);this._tickMarks=Array(s).fill(PC.INACTIVE).concat(Array(o).fill(PC.ACTIVE),Array(l).fill(PC.INACTIVE))}_getInput(t){return t===na.END&&this._input?this._input:this._inputs?.length?t===na.START?this._inputs.first:this._inputs.last:void 0}_getThumb(t){return t===na.END?this._thumbs?.last:this._thumbs?.first}_setTransition(t){this._hasAnimation=!this._platform.IOS&&t&&!this._noopAnimations,this._elementRef.nativeElement.classList.toggle("mat-mdc-slider-with-animation",this._hasAnimation)}_isCursorOnSliderThumb(t,i){const r=i.width/2,d=t.clientY-(i.y+r);return Math.pow(t.clientX-(i.x+r),2)+Math.pow(d,2)YE),multi:!0};let YE=(()=>{class n{get value(){return rh(this._hostElement.value,0)}set value(t){const i=(t=isNaN(t)?0:t)+"";this._hasSetInitialValue?this._isActive||this._setValue(i):this._initialValue=i}_setValue(t){this._hostElement.value=t,this._updateThumbUIByValue(),this._slider._onValueChange(this),this._cdr.detectChanges(),this._slider._cdr.markForCheck()}get translateX(){return this._slider.min>=this._slider.max?(this._translateX=this._tickMarkOffset,this._translateX):(void 0===this._translateX&&(this._translateX=this._calcTranslateXByValue()),this._translateX)}set translateX(t){this._translateX=t}get min(){return rh(this._hostElement.min,0)}set min(t){this._hostElement.min=t+"",this._cdr.detectChanges()}get max(){return rh(this._hostElement.max,0)}set max(t){this._hostElement.max=t+"",this._cdr.detectChanges()}get step(){return rh(this._hostElement.step,0)}set step(t){this._hostElement.step=t+"",this._cdr.detectChanges()}get disabled(){return _o(this._hostElement.disabled)}set disabled(t){this._hostElement.disabled=t,this._cdr.detectChanges(),this._slider.disabled!==this.disabled&&(this._slider.disabled=this.disabled)}get percentage(){return this._slider.min>=this._slider.max?this._slider._isRtl?1:0:(this.value-this._slider.min)/(this._slider.max-this._slider.min)}get fillPercentage(){return this._slider._cachedWidth?0===this._translateX?0:this.translateX/this._slider._cachedWidth:this._slider._isRtl?1:0}_setIsFocused(t){this._isFocused=t}constructor(t,i,r,s){this._ngZone=t,this._elementRef=i,this._cdr=r,this._slider=s,this.valueChange=new Ls,this.dragStart=new Ls,this.dragEnd=new Ls,this.thumbPosition=na.END,this._knobRadius=8,this._tickMarkOffset=3,this._isActive=!1,this._isFocused=!1,this._hasSetInitialValue=!1,this._destroyed=new un,this._skipUIUpdate=!1,this._onTouchedFn=()=>{},this._isControlInitialized=!1,this._platform=pi(dd),this._hostElement=i.nativeElement,this._ngZone.runOutsideAngular(()=>{this._hostElement.addEventListener("pointerdown",this._onPointerDown.bind(this)),this._hostElement.addEventListener("pointermove",this._onPointerMove.bind(this)),this._hostElement.addEventListener("pointerup",this._onPointerUp.bind(this))})}ngOnDestroy(){this._hostElement.removeEventListener("pointerdown",this._onPointerDown),this._hostElement.removeEventListener("pointermove",this._onPointerMove),this._hostElement.removeEventListener("pointerup",this._onPointerUp),this._destroyed.next(),this._destroyed.complete(),this.dragStart.complete(),this.dragEnd.complete()}initProps(){this._updateWidthInactive(),this.disabled!==this._slider.disabled&&(this._slider.disabled=!0),this.step=this._slider.step,this.min=this._slider.min,this.max=this._slider.max,this._initValue()}initUI(){this._updateThumbUIByValue()}_initValue(){this._hasSetInitialValue=!0,void 0===this._initialValue?this.value=this._getDefaultValue():(this._hostElement.value=this._initialValue,this._updateThumbUIByValue(),this._slider._onValueChange(this),this._cdr.detectChanges())}_getDefaultValue(){return this.min}_onBlur(){this._setIsFocused(!1),this._onTouchedFn()}_onFocus(){this._slider._setTransition(!1),this._slider._updateTrackUI(this),this._setIsFocused(!0)}_onChange(){this.valueChange.emit(this.value),this._isActive&&this._updateThumbUIByValue({withAnimation:!0})}_onInput(){this._onChangeFn?.(this.value),(this._slider.step||!this._isActive)&&this._updateThumbUIByValue({withAnimation:!0}),this._slider._onValueChange(this)}_onNgControlValueChange(){(!this._isActive||!this._isFocused)&&(this._slider._onValueChange(this),this._updateThumbUIByValue()),this._slider.disabled=this._formControl.disabled}_onPointerDown(t){if(!this.disabled&&0===t.button){if(this._platform.IOS){const i=this._slider._isCursorOnSliderThumb(t,this._slider._getThumb(this.thumbPosition)._hostElement.getBoundingClientRect());return this._isActive=i,this._updateWidthActive(),void this._slider._updateDimensions()}this._isActive=!0,this._setIsFocused(!0),this._updateWidthActive(),this._slider._updateDimensions(),this._slider.step||this._updateThumbUIByPointerEvent(t,{withAnimation:!0}),this.disabled||(this._handleValueCorrection(t),this.dragStart.emit({source:this,parent:this._slider,value:this.value}))}}_handleValueCorrection(t){this._skipUIUpdate=!0,setTimeout(()=>{this._skipUIUpdate=!1,this._fixValue(t)},0)}_fixValue(t){const i=t.clientX-this._slider._cachedLeft,r=this._slider._cachedWidth,s=0===this._slider.step?1:this._slider.step,o=Math.floor((this._slider.max-this._slider.min)/s),h=Math.round((this._slider._isRtl?1-i/r:i/r)*o)/o*(this._slider.max-this._slider.min)+this._slider.min,f=Math.round(h/s)*s;if(f===this.value)return this._slider._onValueChange(this),void(this._slider.step>0?this._updateThumbUIByValue():this._updateThumbUIByPointerEvent(t,{withAnimation:this._slider._hasAnimation}));this.value=f,this.valueChange.emit(this.value),this._onChangeFn?.(this.value),this._slider._onValueChange(this),this._slider.step>0?this._updateThumbUIByValue():this._updateThumbUIByPointerEvent(t,{withAnimation:this._slider._hasAnimation})}_onPointerMove(t){!this._slider.step&&this._isActive&&this._updateThumbUIByPointerEvent(t)}_onPointerUp(){this._isActive&&(this._isActive=!1,this._platform.SAFARI&&this._setIsFocused(!1),this.dragEnd.emit({source:this,parent:this._slider,value:this.value}),setTimeout(()=>this._updateWidthInactive(),this._platform.IOS?10:0))}_clamp(t){const i=this._tickMarkOffset;return Math.max(Math.min(t,this._slider._cachedWidth-this._tickMarkOffset),i)}_calcTranslateXByValue(){return this._slider._isRtl?(1-this.percentage)*(this._slider._cachedWidth-2*this._tickMarkOffset)+this._tickMarkOffset:this.percentage*(this._slider._cachedWidth-2*this._tickMarkOffset)+this._tickMarkOffset}_calcTranslateXByPointerEvent(t){return t.clientX-this._slider._cachedLeft}_updateWidthActive(){}_updateWidthInactive(){this._hostElement.style.padding=`0 ${this._slider._inputPadding}px`,this._hostElement.style.width=`calc(100% + ${this._slider._inputPadding-2*this._tickMarkOffset}px)`,this._hostElement.style.left=`-${this._slider._rippleRadius-this._tickMarkOffset}px`}_updateThumbUIByValue(t){this.translateX=this._clamp(this._calcTranslateXByValue()),this._updateThumbUI(t)}_updateThumbUIByPointerEvent(t,i){this.translateX=this._clamp(this._calcTranslateXByPointerEvent(t)),this._updateThumbUI(i)}_updateThumbUI(t){this._slider._setTransition(!!t?.withAnimation),this._slider._onTranslateXChange(this)}writeValue(t){(this._isControlInitialized||null!==t)&&(this.value=t)}registerOnChange(t){this._onChangeFn=t,this._isControlInitialized=!0}registerOnTouched(t){this._onTouchedFn=t}setDisabledState(t){this.disabled=t}focus(){this._hostElement.focus()}blur(){this._hostElement.blur()}static#e=this.\u0275fac=function(i){return new(i||n)(Lt(io),Lt(oo),Lt(Sc),Lt(iB))};static#t=this.\u0275dir=Ft({type:n,selectors:[["input","matSliderThumb",""]],hostAttrs:["type","range",1,"mdc-slider__input"],hostVars:1,hostBindings:function(i,r){1&i&&Ai("change",function(){return r._onChange()})("input",function(){return r._onInput()})("blur",function(){return r._onBlur()})("focus",function(){return r._onFocus()}),2&i&&sl("aria-valuetext",r._valuetext)},inputs:{value:[mi.HasDecoratorInputTransform,"value","value",rh]},outputs:{valueChange:"valueChange",dragStart:"dragStart",dragEnd:"dragEnd"},exportAs:["matSliderThumb"],standalone:!0,features:[qo([ybe,{provide:A$,useExisting:n}]),ql]})}return n})(),xbe=(()=>{class n{static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275mod=vo({type:n});static#n=this.\u0275inj=ra({imports:[Qd,P4]})}return n})(),xL=(()=>{class n{eventDisplay;clippingEnabled;startClippingAngle;openingClippingAngle;constructor(t){this.eventDisplay=t;const i=this.eventDisplay.getStateManager();i.clippingEnabled.onUpdate(r=>this.clippingEnabled=r),i.startClippingAngle.onUpdate(r=>this.startClippingAngle=r),i.openingClippingAngle.onUpdate(r=>this.openingClippingAngle=r)}changeStartClippingAngle(t){this.eventDisplay.getUIManager().rotateStartAngleClipping(t)}changeOpeningClippingAngle(t){this.eventDisplay.getUIManager().rotateOpeningAngleClipping(t)}toggleClipping(t){const i=t.checked;this.eventDisplay.getUIManager().setClipping(i),this.clippingEnabled=i}static \u0275fac=function(i){return new(i||n)(Lt(Al))};static \u0275cmp=rs({type:n,selectors:[["app-object-clipping"]],decls:17,vars:5,consts:[["menu",""],["clippingCheckbox",""],["startingAngleSlider",""],["openingAngleSlider",""],[1,"mat-menu"],["mat-menu-item","",3,"click"],[3,"click","change","checked"],["mat-menu-item","",1,"slider-btn",3,"focus"],["min","0","max","360","step","1","thumbLabel",""],["matSliderThumb","",3,"valueChange","value"],["tooltip","Geometry clipping","icon","clipping",3,"matMenuTriggerFor","active"]],template:function(i,r){if(1&i){const s=ta();Gt(0,"mat-menu",4,0)(2,"button",5),Ai("click",function(l){Ci(s);const d=Ga(4);return l.stopPropagation(),Mi(d._inputElement.nativeElement.click())}),Gt(3,"mat-checkbox",6,1),Ai("click",function(l){return Ci(s),Mi(l.stopPropagation())})("change",function(l){return Ci(s),Mi(r.toggleClipping(l))}),qi(5," Clipping "),dn()(),Gt(6,"button",7),Ai("focus",function(){return Ci(s),Mi(Ga(9).focus())}),Gt(7,"mat-slider",8)(8,"input",9,2),Ai("valueChange",function(l){return Ci(s),Mi(r.changeStartClippingAngle(l))}),dn()(),qi(10," Start Angle "),dn(),Gt(11,"button",7),Ai("focus",function(){return Ci(s),Mi(Ga(14).focus())}),Gt(12,"mat-slider",8)(13,"input",9,3),Ai("valueChange",function(l){return Ci(s),Mi(r.changeOpeningClippingAngle(l))}),dn()(),qi(15," Opening Angle "),dn()(),Vr(16,"app-menu-toggle",10)}if(2&i){const s=Ga(1);jn(3),Qn("checked",r.clippingEnabled),jn(5),Qn("value",r.startClippingAngle),jn(5),Qn("value",r.openingClippingAngle),jn(3),Qn("matMenuTriggerFor",s)("active",r.clippingEnabled)}},dependencies:[o1,s1,CC,bL,YE,rv,qc],styles:[".slider-btn[_ngcontent-%COMP%]{overflow:visible}mat-slider[_ngcontent-%COMP%]{margin-left:.75rem;margin-right:.75rem}"]})}return n})(),rB=(()=>{class n{eventDisplay;darkTheme=!1;constructor(t){this.eventDisplay=t}ngOnInit(){this.darkTheme=this.eventDisplay.getUIManager().getDarkTheme()}setDarkTheme(){this.darkTheme=!this.darkTheme,this.eventDisplay.getUIManager().setDarkTheme(this.darkTheme)}static \u0275fac=function(i){return new(i||n)(Lt(Al))};static \u0275cmp=rs({type:n,selectors:[["app-dark-theme"]],decls:1,vars:1,consts:[["tooltip","Dark theme","icon","dark",3,"click","active"]],template:function(i,r){1&i&&(Gt(0,"app-menu-toggle",0),Ai("click",function(){return r.setDarkTheme()}),dn()),2&i&&Qn("active",r.darkTheme)},dependencies:[qc]})}return n})(),sB=(()=>{class n{eventDisplay;autoRotate=!1;constructor(t){this.eventDisplay=t}toggleAutoRotate(){this.autoRotate=!this.autoRotate,this.eventDisplay.getUIManager().setAutoRotate(this.autoRotate)}static \u0275fac=function(i){return new(i||n)(Lt(Al))};static \u0275cmp=rs({type:n,selectors:[["app-auto-rotate"]],decls:1,vars:1,consts:[["tooltip","Auto rotate","icon","rotate",3,"click","active"]],template:function(i,r){1&i&&(Gt(0,"app-menu-toggle",0),Ai("click",function(){return r.toggleAutoRotate()}),dn()),2&i&&Qn("active",r.autoRotate)},dependencies:[qc]})}return n})(),y$=(()=>{class n{data;dialogRef;eventDisplay;cartesianPos=new It;originChangedSub=null;stopShiftingSub=null;showCartesianGrid;gridConfig;scale;shiftGrid;constructor(t,i,r){this.data=t,this.dialogRef=i,this.eventDisplay=r}ngOnInit(){this.shiftGrid=this.eventDisplay.getThreeManager().shiftGrid,this.showCartesianGrid=this.data.gridVisible,this.scale=this.data.scale,this.gridConfig=this.eventDisplay.getUIManager().getCartesianGridConfig(),this.cartesianPos=this.eventDisplay.getThreeManager().origin}onClose(){this.dialogRef.close()}onSave(t,i,r){this.shiftCartesianGridByValues(new It(10*t,10*i,10*r))}shiftCartesianGridByPointer(){this.shiftGrid=!0,this.eventDisplay.getUIManager().shiftCartesianGridByPointer(),this.originChangedSub=this.eventDisplay.getThreeManager().originChanged.subscribe(t=>{this.translateGrid(t)}),this.stopShiftingSub=this.eventDisplay.getThreeManager().stopShifting.subscribe(t=>{t&&(this.originChangedSub.unsubscribe(),this.stopShiftingSub.unsubscribe())}),this.onClose()}shiftCartesianGridByValues(t){this.translateGrid(t),this.eventDisplay.getThreeManager().originChangedEmit(t)}translateGrid(t){const i=t,r=this.cartesianPos,s=new It(i.x-r.x,i.y-r.y,i.z-r.z);this.eventDisplay.getUIManager().translateCartesianGrid(s.clone()),this.eventDisplay.getUIManager().translateCartesianLabels(s.clone()),this.cartesianPos=i}addXYPlanes(t){this.gridConfig.zDistance=Number(t.target.value),this.callSetShowCartesianGrid()}addYZPlanes(t){this.gridConfig.xDistance=Number(t.target.value),this.callSetShowCartesianGrid()}addZXPlanes(t){this.gridConfig.yDistance=Number(t.target.value),this.callSetShowCartesianGrid()}changeSparsity(t){this.gridConfig.sparsity=Number(t.target.value),this.callSetShowCartesianGrid()}showXYPlanes(t){this.gridConfig.showXY=t.checked,this.callSetShowCartesianGrid()}showYZPlanes(t){this.gridConfig.showYZ=t.checked,this.callSetShowCartesianGrid()}showZXPlanes(t){this.gridConfig.showZX=t.checked,this.callSetShowCartesianGrid()}callSetShowCartesianGrid(){this.eventDisplay.getUIManager().setShowCartesianGrid(this.showCartesianGrid,this.scale,this.gridConfig)}calcPlanes(t){return Math.max(0,1+2*Math.floor(10*t/(this.scale*this.gridConfig.sparsity)))}static \u0275fac=function(i){return new(i||n)(Lt(AL),Lt(_x),Lt(Al))};static \u0275cmp=rs({type:n,selectors:[["app-cartesian-grid-config"]],decls:65,vars:28,consts:[["xPos",""],["yPos",""],["zPos",""],["showXYPlanesCheckbox",""],["xyPlaneSlider",""],["showYZPlanesCheckbox",""],["yzPlaneSlider",""],["showZXPlanesCheckbox",""],["zxPlaneSlider",""],["sparsitySlider",""],["mat-dialog-title",""],["mat-dialog-content","",1,"container","dialog-content"],[1,"item-config-single"],[1,"item-config-group"],["for","xPos",1,"item-config-label"],["type","number","placeholder","Origin X","name","xPos","id","xPos",1,"form-control",3,"value"],["for","yPos",1,"item-config-label"],["type","number","placeholder","Origin Y","name","yPos","id","yPos",1,"form-control",3,"value"],["for","zPos",1,"item-config-label"],["type","number","placeholder","Origin Z","name","zPos","id","zPos",1,"form-control",3,"value"],["mat-stroked-button","",3,"click","disabled"],["mat-menu-item","",1,"explain-button",2,"margin","0.5rem 0",3,"click","disabled"],[1,"explain-text"],["mat-menu-item","",3,"click"],[3,"ngModelChange","click","change","ngModel"],["mat-menu-item","",1,"slider-btn",3,"focus"],["min","-300","step","300","thumbLabel","",3,"max"],["matSliderThumb","",3,"input","value"],["min","1","max","5","step","1","thumbLabel",""],["mat-dialog-actions","","align","end"],["mat-flat-button","","color","primary","cdkFocusInitial","",3,"click"]],template:function(i,r){if(1&i){const s=ta();Gt(0,"div")(1,"h1",10),qi(2,"Customize Cartesian Grid"),dn(),Gt(3,"div",11)(4,"div",12)(5,"div",13)(6,"label",14),qi(7,"x (cm) : "),dn(),Vr(8,"input",15,0),rS(10,"number"),dn(),Gt(11,"div",13)(12,"label",16),qi(13,"y (cm) : "),dn(),Vr(14,"input",17,1),rS(16,"number"),dn(),Gt(17,"div",13)(18,"label",18),qi(19,"z (cm) : "),dn(),Vr(20,"input",19,2),rS(22,"number"),dn(),Gt(23,"button",20),Ai("click",function(){Ci(s);const l=Ga(9),d=Ga(15),h=Ga(21);return Mi(r.onSave(l.value,d.value,h.value))}),qi(24," Save "),dn(),Gt(25,"button",21),Ai("click",function(l){return Ci(s),l.stopPropagation(),Mi(r.shiftCartesianGridByPointer())}),qi(26," Shift Cartesian Grid on click "),Gt(27,"p",22),qi(28," Click on a point to shift the grid. Keep clicking at various points to continue shifting. Right click to stop. "),dn()()(),Gt(29,"div")(30,"button",23),Ai("click",function(){return Ci(s),Mi(Ga(32)._inputElement.nativeElement.click())}),Gt(31,"mat-checkbox",24,3),qw("ngModelChange",function(l){return Ci(s),nS(r.gridConfig.showXY,l)||(r.gridConfig.showXY=l),Mi(l)}),Ai("click",function(l){return Ci(s),Mi(l.stopPropagation())})("change",function(l){return Ci(s),Mi(r.showXYPlanes(l))}),qi(33,"Show XY Planes "),dn()(),Gt(34,"button",25),Ai("focus",function(){return Ci(s),Mi(Ga(37).focus())}),Gt(35,"mat-slider",26)(36,"input",27,4),Ai("input",function(l){return Ci(s),Mi(r.addXYPlanes(l))}),dn()(),qi(38),dn(),Gt(39,"button",23),Ai("click",function(){return Ci(s),Mi(Ga(41)._inputElement.nativeElement.click())}),Gt(40,"mat-checkbox",24,5),qw("ngModelChange",function(l){return Ci(s),nS(r.gridConfig.showYZ,l)||(r.gridConfig.showYZ=l),Mi(l)}),Ai("click",function(l){return Ci(s),Mi(l.stopPropagation())})("change",function(l){return Ci(s),Mi(r.showYZPlanes(l))}),qi(42,"Show YZ Planes "),dn()(),Gt(43,"button",25),Ai("focus",function(){return Ci(s),Mi(Ga(46).focus())}),Gt(44,"mat-slider",26)(45,"input",27,6),Ai("input",function(l){return Ci(s),Mi(r.addYZPlanes(l))}),dn()(),qi(47),dn(),Gt(48,"button",23),Ai("click",function(){return Ci(s),Mi(Ga(50)._inputElement.nativeElement.click())}),Gt(49,"mat-checkbox",24,7),qw("ngModelChange",function(l){return Ci(s),nS(r.gridConfig.showZX,l)||(r.gridConfig.showZX=l),Mi(l)}),Ai("click",function(l){return Ci(s),Mi(l.stopPropagation())})("change",function(l){return Ci(s),Mi(r.showZXPlanes(l))}),qi(51,"Show ZX Planes "),dn()(),Gt(52,"button",25),Ai("focus",function(){return Ci(s),Mi(Ga(55).focus())}),Gt(53,"mat-slider",26)(54,"input",27,8),Ai("input",function(l){return Ci(s),Mi(r.addZXPlanes(l))}),dn()(),qi(56),dn(),Gt(57,"button",25),Ai("focus",function(){return Ci(s),Mi(Ga(60).focus())}),Gt(58,"mat-slider",28)(59,"input",27,9),Ai("input",function(l){return Ci(s),Mi(r.changeSparsity(l))}),dn()(),qi(61),dn()()(),Gt(62,"div",29)(63,"button",30),Ai("click",function(){return Ci(s),Mi(r.onClose())}),qi(64," Close "),dn()()()}2&i&&(jn(8),Qn("value",G3(10,19,r.cartesianPos.x/10,"1.2-2")),jn(6),Qn("value",G3(16,22,r.cartesianPos.y/10,"1.2-2")),jn(6),Qn("value",G3(22,25,r.cartesianPos.z/10,"1.2-2")),jn(3),Qn("disabled",r.shiftGrid),jn(2),Qn("disabled",r.shiftGrid),jn(6),Gw("ngModel",r.gridConfig.showXY),jn(4),Qn("max",r.scale),jn(),Qn("value",r.gridConfig.zDistance),jn(2),yl(" XY Plane (",r.calcPlanes(r.gridConfig.zDistance),") "),jn(2),Gw("ngModel",r.gridConfig.showYZ),jn(4),Qn("max",r.scale),jn(),Qn("value",r.gridConfig.xDistance),jn(2),yl(" YZ Plane (",r.calcPlanes(r.gridConfig.xDistance),") "),jn(2),Gw("ngModel",r.gridConfig.showZX),jn(4),Qn("max",r.scale),jn(),Qn("value",r.gridConfig.yDistance),jn(2),yl(" ZX Plane (",r.calcPlanes(r.gridConfig.yDistance),") "),jn(3),Qn("value",r.gridConfig.sparsity),jn(2),yl(" Sparsity (",r.gridConfig.sparsity,") "))},dependencies:[jE,XE,$E,BC,UO,X4,s1,bL,YE,rv,E7],styles:[".container[_ngcontent-%COMP%]{display:flex;flex-direction:row}.item-config-single[_ngcontent-%COMP%]{display:flex;flex-direction:column}.item-config-single[_ngcontent-%COMP%] .item-config-group[_ngcontent-%COMP%]{margin:.1rem 2rem}.item-config-single[_ngcontent-%COMP%] .item-config-group[_ngcontent-%COMP%] .item-config-label[_ngcontent-%COMP%]{display:inline;margin:1rem}.item-config-single[_ngcontent-%COMP%] .item-config-group[_ngcontent-%COMP%] .form-control[_ngcontent-%COMP%]{width:60%;display:inline}.item-config-single[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{margin:.5rem 4rem}.item-config-single[_ngcontent-%COMP%] .explain-button[_ngcontent-%COMP%]{padding-top:1rem}.item-config-single[_ngcontent-%COMP%] .explain-text[_ngcontent-%COMP%]{width:20rem;opacity:.7;margin-top:.5rem;font-size:.9rem}"]})}return n})();function wbe(n,e){if(1&n&&(Fl(),Gt(0,"svg",15),Vr(1,"use"),dn()),2&n){const t=Pr().$implicit;jn(),Lw("href","assets/icons/",t.icon,".svg#",t.icon,"")}}function Cbe(n,e){if(1&n){const t=ta();Gt(0,"button",11),Ai("click",function(r){const s=Ci(t).$implicit;return Mi(Pr().displayView(r,s))}),zs(1,wbe,2,3,"svg",14),qi(2),dn()}if(2&n){const t=e.$implicit;jn(),Qn("ngIf",t.icon),jn(),yl(" ",t.name," ")}}let wL=(()=>{class n{eventDisplay;dialog;trigger;showCartesianGrid=!1;scale=3e3;views;show3DPoints;origin=new It(0,0,0);sub;constructor(t,i){this.eventDisplay=t,this.dialog=i}ngOnInit(){this.views=this.eventDisplay.getUIManager().getPresetViews(),this.sub=this.eventDisplay.getThreeManager().originChanged.subscribe(t=>{this.origin=t})}openCartesianGridConfigDialog(){this.dialog.open(y$,{data:{gridVisible:this.showCartesianGrid,scale:this.scale},position:{bottom:"5rem",left:"3rem"}})}displayView(t,i){t.stopPropagation(),this.eventDisplay.getUIManager().displayView(i)}setAxis(t){const i=t.checked;this.eventDisplay.getUIManager().setShowAxis(i)}setEtaPhiGrid(t){const i=t.checked;this.eventDisplay.getUIManager().setShowEtaPhiGrid(i)}setCartesianGrid(t){this.showCartesianGrid=t.checked,this.eventDisplay.getUIManager().setShowCartesianGrid(this.showCartesianGrid,this.scale)}showLabels(t){this.eventDisplay.getUIManager().showLabels(t.checked)}show3DMousePoints(t){this.show3DPoints=t.checked,this.eventDisplay.getUIManager().show3DMousePoints(this.show3DPoints)}toggleShowDistance(t){this.trigger.closeMenu(),this.eventDisplay.getUIManager().show3DDistance(t.checked)}ngOnDestroy(){this.sub.unsubscribe()}static \u0275fac=function(i){return new(i||n)(Lt(Al),Lt(yx))};static \u0275cmp=rs({type:n,selectors:[["app-view-options"]],viewQuery:function(i,r){if(1&i&&_l(CC,5),2&i){let s;pa(s=ma())&&(r.trigger=s.first)}},decls:31,vars:3,consts:[["viewOptions",""],["showCartesianGridCheckbox",""],["showEtaPhiGridCheckbox",""],["showAxisCheckbox",""],["showLabelsCheckbox",""],["showMouse3DPointsCheckbox",""],["show3DDistanceCheckbox",""],["mat-menu-item",""],[3,"click","change"],[1,"icon-wrapper","icon-button","btn-blank","item-settings",3,"click"],["href","assets/icons/gear.svg#gear"],["mat-menu-item","",3,"click"],["mat-menu-item","",3,"click",4,"ngFor","ngForOf"],["tooltip","View options and Tools","icon","views",3,"matMenuTriggerFor","active"],["class","view-icon",4,"ngIf"],[1,"view-icon"]],template:function(i,r){if(1&i){const s=ta();Gt(0,"mat-menu",null,0)(2,"button",7)(3,"mat-checkbox",8,1),Ai("click",function(l){return Ci(s),Mi(l.stopPropagation())})("change",function(l){return Ci(s),Mi(r.setCartesianGrid(l))}),qi(5,"Show Cartesian Grid "),dn(),Gt(6,"button",9),Ai("click",function(){return Ci(s),Mi(r.openCartesianGridConfigDialog())}),Fl(),Gt(7,"svg"),Vr(8,"use",10),dn()()(),Du(),Gt(9,"button",11),Ai("click",function(l){Ci(s);const d=Ga(11);return l.stopPropagation(),Mi(d._inputElement.nativeElement.click())}),Gt(10,"mat-checkbox",8,2),Ai("click",function(l){return Ci(s),Mi(l.stopPropagation())})("change",function(l){return Ci(s),Mi(r.setEtaPhiGrid(l))}),qi(12,"Show Eta Phi Grid "),dn()(),Gt(13,"button",11),Ai("click",function(l){Ci(s);const d=Ga(15);return l.stopPropagation(),Mi(d._inputElement.nativeElement.click())}),Gt(14,"mat-checkbox",8,3),Ai("click",function(l){return Ci(s),Mi(l.stopPropagation())})("change",function(l){return Ci(s),Mi(r.setAxis(l))}),qi(16,"Show Axis "),dn()(),Gt(17,"button",11),Ai("click",function(){return Ci(s),Mi(Ga(19)._inputElement.nativeElement.click())}),Gt(18,"mat-checkbox",8,4),Ai("click",function(l){return Ci(s),Mi(l.stopPropagation())})("change",function(l){return Ci(s),Mi(r.showLabels(l))}),qi(20,"Show Labels "),dn()(),Gt(21,"button",11),Ai("click",function(l){Ci(s);const d=Ga(23);return l.stopPropagation(),Mi(d._inputElement.nativeElement.click())}),Gt(22,"mat-checkbox",8,5),Ai("click",function(l){return Ci(s),Mi(l.stopPropagation())})("change",function(l){return Ci(s),Mi(r.show3DMousePoints(l))}),qi(24,"Show 3D Coordinates "),dn()(),Gt(25,"button",11),Ai("click",function(l){Ci(s);const d=Ga(27);return l.stopPropagation(),Mi(d._inputElement.nativeElement.click())}),Gt(26,"mat-checkbox",8,6),Ai("click",function(l){return Ci(s),Mi(l.stopPropagation())})("change",function(l){return Ci(s),Mi(r.toggleShowDistance(l))}),qi(28,"Show 3D Distance "),dn()(),zs(29,Cbe,3,2,"button",12),dn(),Vr(30,"app-menu-toggle",13)}if(2&i){const s=Ga(1);jn(29),Qn("ngForOf",r.views),jn(),Qn("matMenuTriggerFor",s)("active",!1)}},dependencies:[am,Lu,o1,s1,CC,rv,qc],styles:[".view-icon[_ngcontent-%COMP%]{width:1.2rem;height:1.2rem;margin-right:.5rem}.icon-wrapper[_ngcontent-%COMP%]{display:inline-block;width:1.5rem;height:1.5rem;padding:.23rem;transition:all .4s;transform:translateY(27%)}.icon-wrapper.icon-button[_ngcontent-%COMP%]:hover{background:var(--phoenix-options-icon-bg);border-radius:40%;cursor:pointer}.icon-wrapper[_ngcontent-%COMP%] svg[_ngcontent-%COMP%]{width:100%;height:100%;vertical-align:top}.item-settings[_ngcontent-%COMP%]{margin-right:.2rem;margin-left:.5rem}"]})}return n})();function Sbe(n,e){1&n&&(Gt(0,"li",2),qi(1," No actions. "),dn())}function Ebe(n,e){if(1&n&&(Gt(0,"li",2),qi(1),dn()),2&n){const t=e.$implicit;jn(),yl(" ",t," ")}}let v$=(()=>{class n{eventDisplay;showInfoPanel;actionsList=[];version="2.15.1";constructor(t){this.eventDisplay=t}ngOnInit(){this.actionsList=this.eventDisplay.getInfoLogger().getInfoLoggerList()}static \u0275fac=function(i){return new(i||n)(Lt(Al))};static \u0275cmp=rs({type:n,selectors:[["app-info-panel-overlay"]],inputs:{showInfoPanel:"showInfoPanel"},decls:6,vars:5,consts:[["overlayTitle","Info Panel","icon","info-panel",3,"resizable","active"],[1,"list-group","list-group-flush"],[1,"list-group-item"],["class","list-group-item",4,"ngIf"],["class","list-group-item",4,"ngFor","ngForOf"]],template:function(i,r){1&i&&(Gt(0,"app-overlay",0)(1,"ul",1)(2,"li",2),qi(3),dn(),zs(4,Sbe,2,0,"li",3)(5,Ebe,2,1,"li",4),dn()()),2&i&&(Qn("resizable",!0)("active",r.showInfoPanel),jn(3),yl(" Phoenix Version: ",r.version," "),jn(),Qn("ngIf",0===r.actionsList.length),jn(),Qn("ngForOf",r.actionsList))},dependencies:[am,Lu,IC],styles:[".list-group-item[_ngcontent-%COMP%]{font-size:.8rem;padding:.5rem 1rem}"]})}return n})(),CL=(()=>{class n{overlay;showInfoPanel=!1;overlayWindow;constructor(t){this.overlay=t}ngOnInit(){const t=this.overlay.create(),i=new t1(v$);this.overlayWindow=t.attach(i),this.overlayWindow.instance.showInfoPanel=this.showInfoPanel}ngOnDestroy(){this.overlayWindow.destroy()}toggleOverlay(){this.showInfoPanel=!this.showInfoPanel,this.overlayWindow.instance.showInfoPanel=this.showInfoPanel}static \u0275fac=function(i){return new(i||n)(Lt(fh))};static \u0275cmp=rs({type:n,selectors:[["app-info-panel"]],decls:1,vars:1,consts:[["tooltip","Info panel","icon","info-panel",3,"click","active"]],template:function(i,r){1&i&&(Gt(0,"app-menu-toggle",0),Ai("click",function(){return r.toggleOverlay()}),dn()),2&i&&Qn("active",r.showInfoPanel)},dependencies:[qc]})}return n})(),oB=(()=>{class n{eventDisplay;orthographicView=!1;constructor(t){this.eventDisplay=t}switchMainView(){this.orthographicView=!this.orthographicView,this.eventDisplay.getUIManager().toggleOrthographicView(this.orthographicView)}static \u0275fac=function(i){return new(i||n)(Lt(Al))};static \u0275cmp=rs({type:n,selectors:[["app-main-view-toggle"]],decls:1,vars:2,consts:[[3,"click","icon","matTooltip"]],template:function(i,r){1&i&&(Gt(0,"app-menu-toggle",0),Ai("click",function(){return r.switchMainView()}),dn()),2&i&&Qn("icon",r.orthographicView?"perspective":"orthographic")("matTooltip","Switch to "+(r.orthographicView?"perspective":"orthographic")+" view")},dependencies:[a1,qc]})}return n})(),ML=(()=>{class n{eventDisplay;allCameras;zoomFactor=1.1;zoomTimeout;zoomTime=200;constructor(t){this.eventDisplay=t}zoomTo(t){this.zoomTime=this.zoomTime>30?Math.floor(this.zoomTime/1.1):this.zoomTime,this.eventDisplay.zoomTo(t,this.zoomTime),this.zoomTimeout=setTimeout(()=>{this.zoomTo(t)},this.zoomTime)}zoomIn(t){t&&this.zoomTo(1/this.zoomFactor)}zoomOut(t){t&&this.zoomTo(this.zoomFactor)}clearZoom(){this.zoomTime=200,clearTimeout(this.zoomTimeout)}static \u0275fac=function(i){return new(i||n)(Lt(Al))};static \u0275cmp=rs({type:n,selectors:[["app-zoom-controls"]],decls:3,vars:2,consts:[[1,"d-flex"],["tooltip","Zoom out (hold)","icon","zoom-out",3,"click","touchstart","mousedown","mouseup","mouseleave","touchend","touchcancel","touchmove","active"],["tooltip","Zoom in (hold)","icon","zoom-in",3,"click","touchstart","mousedown","mouseup","mouseleave","touchend","touchcancel","touchmove","active"]],template:function(i,r){1&i&&(Gt(0,"div",0)(1,"app-menu-toggle",1),Ai("click",function(){return r.zoomOut(!0),r.clearZoom()})("touchstart",function(){return r.zoomOut(!0)})("mousedown",function(o){return r.zoomOut(0===o.button)})("mouseup",function(){return r.clearZoom()})("mouseleave",function(){return r.clearZoom()})("touchend",function(){return r.clearZoom()})("touchcancel",function(){return r.clearZoom()})("touchmove",function(){return r.clearZoom()}),dn(),Gt(2,"app-menu-toggle",2),Ai("click",function(){return r.zoomIn(!0),r.clearZoom()})("touchstart",function(){return r.zoomIn(!0)})("mousedown",function(o){return r.zoomIn(0===o.button)})("mouseup",function(){return r.clearZoom()})("mouseleave",function(){return r.clearZoom()})("touchend",function(){return r.clearZoom()})("touchcancel",function(){return r.clearZoom()})("touchmove",function(){return r.clearZoom()}),dn()()),2&i&&(jn(),Qn("active",!1),jn(),Qn("active",!1))},dependencies:[qc]})}return n})(),aB=(()=>{class n{eventDisplay;isAnimating=!1;constructor(t){this.eventDisplay=t}toggleAnimateEvent(){this.isAnimating||(this.isAnimating=!0,this.eventDisplay.animateEventWithCollision(1e4,()=>{this.isAnimating=!1}))}static \u0275fac=function(i){return new(i||n)(Lt(Al))};static \u0275cmp=rs({type:n,selectors:[["app-animate-event"]],decls:1,vars:1,consts:[["tooltip","Animate event","icon","event-folder",3,"click","active"]],template:function(i,r){1&i&&(Gt(0,"app-menu-toggle",0),Ai("click",function(){return r.toggleAnimateEvent()}),dn()),2&i&&Qn("active",r.isAnimating)},dependencies:[qc]})}return n})(),SL=(()=>{class n{eventDisplay;vrSupported=!1;vrActive=!1;constructor(t){this.eventDisplay=t,navigator?.xr?.isSessionSupported?.(Qq.SESSION_TYPE).then(i=>{i&&(this.vrSupported=!0)}).catch(i=>console.warn("Error in VR",i))}toggleVr(){this.vrActive?(this.eventDisplay.endXR(mm.VR),this.vrActive=!1):(this.eventDisplay.initXR(mm.VR,()=>{this.vrActive=!1,this.eventDisplay.endXR(mm.VR)}),this.vrActive=!0)}static \u0275fac=function(i){return new(i||n)(Lt(Al))};static \u0275cmp=rs({type:n,selectors:[["app-vr-toggle"]],decls:1,vars:3,consts:[["icon","vr",3,"click","disabled","active","tooltip"]],template:function(i,r){1&i&&(Gt(0,"app-menu-toggle",0),Ai("click",function(){return r.vrSupported&&r.toggleVr()}),dn()),2&i&&Qn("disabled",!r.vrSupported)("active",r.vrActive)("tooltip",r.vrSupported?r.vrActive?"Exit VR":"Enter VR":"VR not supported")},dependencies:[qc]})}return n})();function Tbe(n,e){if(1&n){const t=ta();ig(0),Gt(1,"button",4),Ai("click",function(){return Ci(t),Mi(Pr().toggleAr(!0))}),qi(2,"AR with overlays"),dn(),Gt(3,"button",4),Ai("click",function(){return Ci(t),Mi(Pr().toggleAr(!1))}),qi(4,"AR without overlays"),dn(),rg()}}function Dbe(n,e){1&n&&(Gt(0,"button",5),qi(1,"AR not supported"),dn())}let EL=(()=>{class n{eventDisplay;arSupported=!1;arActive=!1;constructor(t){this.eventDisplay=t,navigator.xr?.isSessionSupported?.(HF.SESSION_TYPE).then(i=>{i&&(this.arSupported=!0)}).catch(i=>console.warn("Error in AR",i))}toggleAr(t=!0){HF.enableDomOverlay=t,this.arActive?(this.eventDisplay.endXR(mm.AR),this.arActive=!1):(this.eventDisplay.initXR(mm.AR,()=>{this.arActive=!1,this.eventDisplay.endXR(mm.AR)}),this.arActive=!0)}static \u0275fac=function(i){return new(i||n)(Lt(Al))};static \u0275cmp=rs({type:n,selectors:[["app-ar-toggle"]],decls:5,vars:6,consts:[["arToggleOptions",""],[4,"ngIf"],["mat-menu-item","","disabled","",4,"ngIf"],["icon","ar",3,"click","matMenuTriggerFor","disabled","active","tooltip"],["mat-menu-item","",3,"click"],["mat-menu-item","","disabled",""]],template:function(i,r){if(1&i){const s=ta();Gt(0,"mat-menu",null,0),zs(2,Tbe,5,0,"ng-container",1)(3,Dbe,2,0,"button",2),dn(),Gt(4,"app-menu-toggle",3),Ai("click",function(){return Ci(s),Mi(r.arSupported&&(r.arActive?r.toggleAr():null))}),dn()}if(2&i){const s=Ga(1);jn(2),Qn("ngIf",r.arSupported),jn(),Qn("ngIf",!r.arSupported),jn(),Qn("matMenuTriggerFor",s)("disabled",!r.arSupported)("active",r.arActive)("tooltip",r.arSupported?r.arActive?"Exit AR":"Enter AR":"AR not supported")}},dependencies:[Lu,o1,s1,CC,qc]})}return n})(),TL=(()=>{class n{ssMode=!1;ngOnInit(){document.onfullscreenchange=()=>{document.fullscreenElement||this.toggleSSMode()}}toggleSSMode(){this.ssMode=!this.ssMode,document.body.classList.toggle("ss-mode"),this.ssMode?(setTimeout(()=>{document.addEventListener("click",this.onDocumentClick),document.addEventListener("touchstart",this.onDocumentClick)},1),document.documentElement.requestFullscreen?.()):(document.removeEventListener("click",this.onDocumentClick),document.removeEventListener("touchstart",this.onDocumentClick))}onDocumentClick=()=>{document.exitFullscreen?.()};static \u0275fac=function(i){return new(i||n)};static \u0275cmp=rs({type:n,selectors:[["app-ss-mode"]],decls:1,vars:1,consts:[["tooltip","Screenshot mode: phoenix will become fullscreen and the menu is suppressed","icon","ss-mode",3,"click","active"]],template:function(i,r){1&i&&(Gt(0,"app-menu-toggle",0),Ai("click",function(){return r.toggleSSMode()}),dn()),2&i&&Qn("active",r.ssMode)},dependencies:[qc],styles:["#uiMenu,#phoenixMenu,#mainLogo,#statsElement{transition:opacity .4s}.ss-mode #uiMenu,.ss-mode #phoenixMenu,.ss-mode #mainLogo,.ss-mode #statsElement{visibility:hidden;opacity:0}\n"],encapsulation:2})}return n})(),Pbe=(()=>{class n{constructor(){this._listeners=[]}notify(t,i){for(let r of this._listeners)r(t,i)}listen(t){return this._listeners.push(t),()=>{this._listeners=this._listeners.filter(i=>t!==i)}}ngOnDestroy(){this._listeners=[]}static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();const Rbe=["input"],kbe=["formField"],Fbe=["*"];let b$=0;class x${constructor(e,t){this.source=e,this.value=t}}const Obe={provide:Of,useExisting:jt(()=>C$),multi:!0},w$=new Bi("MatRadioGroup"),Lbe=new Bi("mat-radio-default-options",{providedIn:"root",factory:function Nbe(){return{color:"accent"}}});let C$=(()=>{class n{get name(){return this._name}set name(t){this._name=t,this._updateRadioButtonNames()}get labelPosition(){return this._labelPosition}set labelPosition(t){this._labelPosition="before"===t?"before":"after",this._markRadiosForCheck()}get value(){return this._value}set value(t){this._value!==t&&(this._value=t,this._updateSelectedRadioFromValue(),this._checkSelectedRadioButton())}_checkSelectedRadioButton(){this._selected&&!this._selected.checked&&(this._selected.checked=!0)}get selected(){return this._selected}set selected(t){this._selected=t,this.value=t?t.value:null,this._checkSelectedRadioButton()}get disabled(){return this._disabled}set disabled(t){this._disabled=t,this._markRadiosForCheck()}get required(){return this._required}set required(t){this._required=t,this._markRadiosForCheck()}constructor(t){this._changeDetector=t,this._value=null,this._name="mat-radio-group-"+b$++,this._selected=null,this._isInitialized=!1,this._labelPosition="after",this._disabled=!1,this._required=!1,this._controlValueAccessorChangeFn=()=>{},this.onTouched=()=>{},this.change=new Ls}ngAfterContentInit(){this._isInitialized=!0,this._buttonChanges=this._radios.changes.subscribe(()=>{this.selected&&!this._radios.find(t=>t===this.selected)&&(this._selected=null)})}ngOnDestroy(){this._buttonChanges?.unsubscribe()}_touch(){this.onTouched&&this.onTouched()}_updateRadioButtonNames(){this._radios&&this._radios.forEach(t=>{t.name=this.name,t._markForCheck()})}_updateSelectedRadioFromValue(){this._radios&&(null===this._selected||this._selected.value!==this._value)&&(this._selected=null,this._radios.forEach(i=>{i.checked=this.value===i.value,i.checked&&(this._selected=i)}))}_emitChangeEvent(){this._isInitialized&&this.change.emit(new x$(this._selected,this._value))}_markRadiosForCheck(){this._radios&&this._radios.forEach(t=>t._markForCheck())}writeValue(t){this.value=t,this._changeDetector.markForCheck()}registerOnChange(t){this._controlValueAccessorChangeFn=t}registerOnTouched(t){this.onTouched=t}setDisabledState(t){this.disabled=t,this._changeDetector.markForCheck()}static#e=this.\u0275fac=function(i){return new(i||n)(Lt(Sc))};static#t=this.\u0275dir=Ft({type:n,selectors:[["mat-radio-group"]],contentQueries:function(i,r,s){if(1&i&&mp(s,IL,5),2&i){let o;pa(o=ma())&&(r._radios=o)}},hostAttrs:["role","radiogroup",1,"mat-mdc-radio-group"],inputs:{color:"color",name:"name",labelPosition:"labelPosition",value:"value",selected:"selected",disabled:[mi.HasDecoratorInputTransform,"disabled","disabled",_o],required:[mi.HasDecoratorInputTransform,"required","required",_o]},outputs:{change:"change"},exportAs:["matRadioGroup"],standalone:!0,features:[qo([Obe,{provide:w$,useExisting:n}]),ql]})}return n})(),IL=(()=>{class n{get checked(){return this._checked}set checked(t){this._checked!==t&&(this._checked=t,t&&this.radioGroup&&this.radioGroup.value!==this.value?this.radioGroup.selected=this:!t&&this.radioGroup&&this.radioGroup.value===this.value&&(this.radioGroup.selected=null),t&&this._radioDispatcher.notify(this.id,this.name),this._changeDetector.markForCheck())}get value(){return this._value}set value(t){this._value!==t&&(this._value=t,null!==this.radioGroup&&(this.checked||(this.checked=this.radioGroup.value===t),this.checked&&(this.radioGroup.selected=this)))}get labelPosition(){return this._labelPosition||this.radioGroup&&this.radioGroup.labelPosition||"after"}set labelPosition(t){this._labelPosition=t}get disabled(){return this._disabled||null!==this.radioGroup&&this.radioGroup.disabled}set disabled(t){this._setDisabled(t)}get required(){return this._required||this.radioGroup&&this.radioGroup.required}set required(t){this._required=t}get color(){return this._color||this.radioGroup&&this.radioGroup.color||this._providerOverride&&this._providerOverride.color||"accent"}set color(t){this._color=t}get inputId(){return`${this.id||this._uniqueId}-input`}constructor(t,i,r,s,o,l,d,h){this._elementRef=i,this._changeDetector=r,this._focusMonitor=s,this._radioDispatcher=o,this._providerOverride=d,this._uniqueId="mat-radio-"+ ++b$,this.id=this._uniqueId,this.disableRipple=!1,this.tabIndex=0,this.change=new Ls,this._checked=!1,this._value=null,this._removeUniqueSelectionListener=()=>{},this.radioGroup=t,this._noopAnimations="NoopAnimations"===l,h&&(this.tabIndex=rh(h,0))}focus(t,i){i?this._focusMonitor.focusVia(this._inputElement,i,t):this._inputElement.nativeElement.focus(t)}_markForCheck(){this._changeDetector.markForCheck()}ngOnInit(){this.radioGroup&&(this.checked=this.radioGroup.value===this._value,this.checked&&(this.radioGroup.selected=this),this.name=this.radioGroup.name),this._removeUniqueSelectionListener=this._radioDispatcher.listen((t,i)=>{t!==this.id&&i===this.name&&(this.checked=!1)})}ngDoCheck(){this._updateTabIndex()}ngAfterViewInit(){this._updateTabIndex(),this._focusMonitor.monitor(this._elementRef,!0).subscribe(t=>{!t&&this.radioGroup&&this.radioGroup._touch()})}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef),this._removeUniqueSelectionListener()}_emitChangeEvent(){this.change.emit(new x$(this,this._value))}_isRippleDisabled(){return this.disableRipple||this.disabled}_onInputClick(t){t.stopPropagation()}_onInputInteraction(t){if(t.stopPropagation(),!this.checked&&!this.disabled){const i=this.radioGroup&&this.value!==this.radioGroup.value;this.checked=!0,this._emitChangeEvent(),this.radioGroup&&(this.radioGroup._controlValueAccessorChangeFn(this.value),i&&this.radioGroup._emitChangeEvent())}}_onTouchTargetClick(t){this._onInputInteraction(t),this.disabled||this._inputElement.nativeElement.focus()}_setDisabled(t){this._disabled!==t&&(this._disabled=t,this._changeDetector.markForCheck())}_updateTabIndex(){const t=this.radioGroup;let i;if(i=t&&t.selected&&!this.disabled?t.selected===this?this.tabIndex:-1:this.tabIndex,i!==this._previousTabIndex){const r=this._inputElement?.nativeElement;r&&(r.setAttribute("tabindex",i+""),this._previousTabIndex=i)}}static#e=this.\u0275fac=function(i){return new(i||n)(Lt(w$,8),Lt(oo),Lt(Sc),Lt(e1),Lt(Pbe),Lt(Od,8),Lt(Lbe,8),bh("tabindex"))};static#t=this.\u0275cmp=rs({type:n,selectors:[["mat-radio-button"]],viewQuery:function(i,r){if(1&i&&(_l(Rbe,5),_l(kbe,7,oo)),2&i){let s;pa(s=ma())&&(r._inputElement=s.first),pa(s=ma())&&(r._rippleTrigger=s.first)}},hostAttrs:[1,"mat-mdc-radio-button"],hostVars:15,hostBindings:function(i,r){1&i&&Ai("focus",function(){return r._inputElement.nativeElement.focus()}),2&i&&(sl("id",r.id)("tabindex",null)("aria-label",null)("aria-labelledby",null)("aria-describedby",null),Ja("mat-primary","primary"===r.color)("mat-accent","accent"===r.color)("mat-warn","warn"===r.color)("mat-mdc-radio-checked",r.checked)("_mat-animation-noopable",r._noopAnimations))},inputs:{id:"id",name:"name",ariaLabel:[mi.None,"aria-label","ariaLabel"],ariaLabelledby:[mi.None,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[mi.None,"aria-describedby","ariaDescribedby"],disableRipple:[mi.HasDecoratorInputTransform,"disableRipple","disableRipple",_o],tabIndex:[mi.HasDecoratorInputTransform,"tabIndex","tabIndex",t=>null==t?0:rh(t)],checked:[mi.HasDecoratorInputTransform,"checked","checked",_o],value:"value",labelPosition:"labelPosition",disabled:[mi.HasDecoratorInputTransform,"disabled","disabled",_o],required:[mi.HasDecoratorInputTransform,"required","required",_o],color:"color"},outputs:{change:"change"},exportAs:["matRadioButton"],standalone:!0,features:[ql,yd],ngContentSelectors:Fbe,decls:13,vars:16,consts:[["formField",""],["input",""],["mat-internal-form-field","",3,"labelPosition"],[1,"mdc-radio"],[1,"mat-mdc-radio-touch-target",3,"click"],["type","radio",1,"mdc-radio__native-control",3,"change","id","checked","disabled","required"],[1,"mdc-radio__background"],[1,"mdc-radio__outer-circle"],[1,"mdc-radio__inner-circle"],["mat-ripple","",1,"mat-radio-ripple","mat-mdc-focus-indicator",3,"matRippleTrigger","matRippleDisabled","matRippleCentered"],[1,"mat-ripple-element","mat-radio-persistent-ripple"],[1,"mdc-label",3,"for"]],template:function(i,r){if(1&i){const s=ta();yu(),Gt(0,"div",2,0)(2,"div",3)(3,"div",4),Ai("click",function(l){return Ci(s),Mi(r._onTouchTargetClick(l))}),dn(),Gt(4,"input",5,1),Ai("change",function(l){return Ci(s),Mi(r._onInputInteraction(l))}),dn(),Gt(6,"div",6),Vr(7,"div",7)(8,"div",8),dn(),Gt(9,"div",9),Vr(10,"div",10),dn()(),Gt(11,"label",11),ih(12),dn()()}2&i&&(Qn("labelPosition",r.labelPosition),jn(2),Ja("mdc-radio--disabled",r.disabled),jn(2),Qn("id",r.inputId)("checked",r.checked)("disabled",r.disabled)("required",r.required),sl("name",r.name)("value",r.value)("aria-label",r.ariaLabel)("aria-labelledby",r.ariaLabelledby)("aria-describedby",r.ariaDescribedby),jn(5),Qn("matRippleTrigger",r._rippleTrigger.nativeElement)("matRippleDisabled",r._isRippleDisabled())("matRippleCentered",!0),jn(2),Qn("for",r.inputId))},dependencies:[k0,SO],styles:['.mdc-radio{display:inline-block;position:relative;flex:0 0 auto;box-sizing:content-box;width:20px;height:20px;cursor:pointer;will-change:opacity,transform,border-color,color}.mdc-radio[hidden]{display:none}.mdc-radio__background{display:inline-block;position:relative;box-sizing:border-box;width:20px;height:20px}.mdc-radio__background::before{position:absolute;transform:scale(0, 0);border-radius:50%;opacity:0;pointer-events:none;content:"";transition:opacity 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1),transform 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-radio__outer-circle{position:absolute;top:0;left:0;box-sizing:border-box;width:100%;height:100%;border-width:2px;border-style:solid;border-radius:50%;transition:border-color 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-radio__inner-circle{position:absolute;top:0;left:0;box-sizing:border-box;width:100%;height:100%;transform:scale(0, 0);border-width:10px;border-style:solid;border-radius:50%;transition:transform 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1),border-color 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-radio__native-control{position:absolute;margin:0;padding:0;opacity:0;cursor:inherit;z-index:1}.mdc-radio--touch{margin-top:4px;margin-bottom:4px;margin-right:4px;margin-left:4px}.mdc-radio--touch .mdc-radio__native-control{top:calc((40px - 48px) / 2);right:calc((40px - 48px) / 2);left:calc((40px - 48px) / 2);width:48px;height:48px}.mdc-radio.mdc-ripple-upgraded--background-focused .mdc-radio__focus-ring,.mdc-radio:not(.mdc-ripple-upgraded):focus .mdc-radio__focus-ring{pointer-events:none;border:2px solid rgba(0,0,0,0);border-radius:6px;box-sizing:content-box;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:100%;width:100%}@media screen and (forced-colors: active){.mdc-radio.mdc-ripple-upgraded--background-focused .mdc-radio__focus-ring,.mdc-radio:not(.mdc-ripple-upgraded):focus .mdc-radio__focus-ring{border-color:CanvasText}}.mdc-radio.mdc-ripple-upgraded--background-focused .mdc-radio__focus-ring::after,.mdc-radio:not(.mdc-ripple-upgraded):focus .mdc-radio__focus-ring::after{content:"";border:2px solid rgba(0,0,0,0);border-radius:8px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(100% + 4px);width:calc(100% + 4px)}@media screen and (forced-colors: active){.mdc-radio.mdc-ripple-upgraded--background-focused .mdc-radio__focus-ring::after,.mdc-radio:not(.mdc-ripple-upgraded):focus .mdc-radio__focus-ring::after{border-color:CanvasText}}.mdc-radio__native-control:checked+.mdc-radio__background,.mdc-radio__native-control:disabled+.mdc-radio__background{transition:opacity 120ms 0ms cubic-bezier(0, 0, 0.2, 1),transform 120ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-radio__native-control:checked+.mdc-radio__background .mdc-radio__outer-circle,.mdc-radio__native-control:disabled+.mdc-radio__background .mdc-radio__outer-circle{transition:border-color 120ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-radio__native-control:checked+.mdc-radio__background .mdc-radio__inner-circle,.mdc-radio__native-control:disabled+.mdc-radio__background .mdc-radio__inner-circle{transition:transform 120ms 0ms cubic-bezier(0, 0, 0.2, 1),border-color 120ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-radio--disabled{cursor:default;pointer-events:none}.mdc-radio__native-control:checked+.mdc-radio__background .mdc-radio__inner-circle{transform:scale(0.5);transition:transform 120ms 0ms cubic-bezier(0, 0, 0.2, 1),border-color 120ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-radio__native-control:disabled+.mdc-radio__background,[aria-disabled=true] .mdc-radio__native-control+.mdc-radio__background{cursor:default}.mdc-radio__native-control:focus+.mdc-radio__background::before{transform:scale(1);opacity:.12;transition:opacity 120ms 0ms cubic-bezier(0, 0, 0.2, 1),transform 120ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-radio-button{-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-radio-button .mdc-radio{padding:calc((var(--mdc-radio-state-layer-size) - 20px) / 2)}.mat-mdc-radio-button .mdc-radio [aria-disabled=true] .mdc-radio__native-control:checked+.mdc-radio__background .mdc-radio__outer-circle,.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control:disabled:checked+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-disabled-selected-icon-color)}.mat-mdc-radio-button .mdc-radio [aria-disabled=true] .mdc-radio__native-control+.mdc-radio__background .mdc-radio__inner-circle,.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control:disabled+.mdc-radio__background .mdc-radio__inner-circle{border-color:var(--mdc-radio-disabled-selected-icon-color)}.mat-mdc-radio-button .mdc-radio [aria-disabled=true] .mdc-radio__native-control:checked+.mdc-radio__background .mdc-radio__outer-circle,.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control:disabled:checked+.mdc-radio__background .mdc-radio__outer-circle{opacity:var(--mdc-radio-disabled-selected-icon-opacity)}.mat-mdc-radio-button .mdc-radio [aria-disabled=true] .mdc-radio__native-control+.mdc-radio__background .mdc-radio__inner-circle,.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control:disabled+.mdc-radio__background .mdc-radio__inner-circle{opacity:var(--mdc-radio-disabled-selected-icon-opacity)}.mat-mdc-radio-button .mdc-radio [aria-disabled=true] .mdc-radio__native-control:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle,.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control:disabled:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-disabled-unselected-icon-color)}.mat-mdc-radio-button .mdc-radio [aria-disabled=true] .mdc-radio__native-control:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle,.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control:disabled:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle{opacity:var(--mdc-radio-disabled-unselected-icon-opacity)}.mat-mdc-radio-button .mdc-radio.mdc-ripple-upgraded--background-focused .mdc-radio__native-control:enabled:checked+.mdc-radio__background .mdc-radio__outer-circle,.mat-mdc-radio-button .mdc-radio:not(.mdc-ripple-upgraded):focus .mdc-radio__native-control:enabled:checked+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-selected-focus-icon-color)}.mat-mdc-radio-button .mdc-radio.mdc-ripple-upgraded--background-focused .mdc-radio__native-control:enabled+.mdc-radio__background .mdc-radio__inner-circle,.mat-mdc-radio-button .mdc-radio:not(.mdc-ripple-upgraded):focus .mdc-radio__native-control:enabled+.mdc-radio__background .mdc-radio__inner-circle{border-color:var(--mdc-radio-selected-focus-icon-color)}.mat-mdc-radio-button .mdc-radio:hover .mdc-radio__native-control:enabled:checked+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-selected-hover-icon-color)}.mat-mdc-radio-button .mdc-radio:hover .mdc-radio__native-control:enabled+.mdc-radio__background .mdc-radio__inner-circle{border-color:var(--mdc-radio-selected-hover-icon-color)}.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control:enabled:checked+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-selected-icon-color)}.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control:enabled+.mdc-radio__background .mdc-radio__inner-circle{border-color:var(--mdc-radio-selected-icon-color)}.mat-mdc-radio-button .mdc-radio:not(:disabled):active .mdc-radio__native-control:enabled:checked+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-selected-pressed-icon-color)}.mat-mdc-radio-button .mdc-radio:not(:disabled):active .mdc-radio__native-control:enabled+.mdc-radio__background .mdc-radio__inner-circle{border-color:var(--mdc-radio-selected-pressed-icon-color)}.mat-mdc-radio-button .mdc-radio:hover .mdc-radio__native-control:enabled:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-unselected-hover-icon-color)}.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control:enabled:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-unselected-icon-color)}.mat-mdc-radio-button .mdc-radio:not(:disabled):active .mdc-radio__native-control:enabled:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-unselected-pressed-icon-color)}.mat-mdc-radio-button .mdc-radio .mdc-radio__background::before{top:calc(-1 * (var(--mdc-radio-state-layer-size) - 20px) / 2);left:calc(-1 * (var(--mdc-radio-state-layer-size) - 20px) / 2);width:var(--mdc-radio-state-layer-size);height:var(--mdc-radio-state-layer-size)}.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control{top:calc((var(--mdc-radio-state-layer-size) - var(--mdc-radio-state-layer-size)) / 2);right:calc((var(--mdc-radio-state-layer-size) - var(--mdc-radio-state-layer-size)) / 2);left:calc((var(--mdc-radio-state-layer-size) - var(--mdc-radio-state-layer-size)) / 2);width:var(--mdc-radio-state-layer-size);height:var(--mdc-radio-state-layer-size)}.mat-mdc-radio-button .mdc-radio .mdc-radio__background::before{background-color:var(--mat-radio-ripple-color)}.mat-mdc-radio-button .mdc-radio:hover .mdc-radio__native-control:not([disabled]):not(:focus)~.mdc-radio__background::before{opacity:.04;transform:scale(1)}.mat-mdc-radio-button.mat-mdc-radio-checked .mdc-radio__background::before{background-color:var(--mat-radio-checked-ripple-color)}.mat-mdc-radio-button.mat-mdc-radio-checked .mat-ripple-element{background-color:var(--mat-radio-checked-ripple-color)}.mat-mdc-radio-button .mdc-radio--disabled+label{color:var(--mat-radio-disabled-label-color)}.mat-mdc-radio-button .mat-radio-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:50%}.mat-mdc-radio-button .mat-radio-ripple .mat-ripple-element{opacity:.14}.mat-mdc-radio-button .mat-radio-ripple::before{border-radius:50%}.mat-mdc-radio-button._mat-animation-noopable .mdc-radio__background::before,.mat-mdc-radio-button._mat-animation-noopable .mdc-radio__outer-circle,.mat-mdc-radio-button._mat-animation-noopable .mdc-radio__inner-circle{transition:none !important}.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control:focus:enabled:not(:checked)~.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-unselected-focus-icon-color, black)}.mat-mdc-radio-button.cdk-focused .mat-mdc-focus-indicator::before{content:""}.mat-mdc-radio-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%);display:var(--mat-radio-touch-target-display)}[dir=rtl] .mat-mdc-radio-touch-target{left:0;right:50%;transform:translate(50%, -50%)}'],encapsulation:2,changeDetection:0})}return n})(),Ube=(()=>{class n{static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275mod=vo({type:n});static#n=this.\u0275inj=ra({imports:[Qd,uS,P4,IL,Qd]})}return n})();function zbe(n,e){if(1&n&&(Gt(0,"mat-radio-button",12),qi(1),dn()),2&n){const t=e.$implicit;Qn("value",t),jn(),yl("",t," ")}}let BL=(()=>{class n{eventDisplay;fittings=["Crop","Stretch"];fitting="Crop";width=3840;height=2160;disabled=!1;constructor(t){this.eventDisplay=t}ngOnInit(){}checkSize(){return this.eventDisplay.getThreeManager().checkScreenShotCanvasSize(this.width,this.height,this.fitting)}setWidth(t){this.width=t,this.disabled=!this.checkSize()}setHeight(t){this.height=t,this.disabled=!this.checkSize()}buttonText(){return this.disabled?"Size too large":"Create picture"}makePicture(){this.eventDisplay.getThreeManager().makeScreenShot(this.width,this.height,this.fitting)}static \u0275fac=function(i){return new(i||n)(Lt(Al))};static \u0275cmp=rs({type:n,selectors:[["app-make-picture"]],decls:20,vars:11,consts:[["menu",""],["width",""],["height",""],[1,"mat-menu"],["mat-menu-item","",1,"size-input",3,"click"],["mapInput","","type","number",3,"change","click","value"],["mat-menu-item","",3,"click"],[1,"fitting-radios",3,"ngModelChange","ngModel"],[3,"value",4,"ngFor","ngForOf"],["mat-menu-item","",1,"make-picture",3,"click","disabled"],["tooltip","Creates a picture from the current view: directly saves a png of arbitrary size from the current view","icon","png",3,"matMenuTriggerFor"],["hidden","","id","screenshotCanvas"],[3,"value"]],template:function(i,r){if(1&i){const s=ta();Gt(0,"mat-menu",3,0)(2,"button",4),Ai("click",function(l){return Ci(s),Mi(l.stopPropagation())}),Gt(3,"label"),qi(4,"width"),dn(),Gt(5,"input",5,1),Ai("change",function(){Ci(s);const l=Ga(6);return Mi(r.setWidth(l.value))})("click",function(l){return Ci(s),Mi(l.stopPropagation())}),dn()(),Gt(7,"button",4),Ai("click",function(l){return Ci(s),Mi(l.stopPropagation())}),Gt(8,"label"),qi(9,"height"),dn(),Gt(10,"input",5,2),Ai("change",function(){Ci(s);const l=Ga(11);return Mi(r.setHeight(l.value))})("click",function(l){return Ci(s),Mi(l.stopPropagation())}),dn()(),Gt(12,"button",6),Ai("click",function(l){return Ci(s),Mi(l.stopPropagation())}),Gt(13,"mat-radio-group",7),qw("ngModelChange",function(l){return Ci(s),nS(r.fitting,l)||(r.fitting=l),Mi(l)}),zs(14,zbe,2,2,"mat-radio-button",8),dn()(),Gt(15,"button",9),Ai("click",function(){return Ci(s),Mi(r.makePicture())}),qi(16),dn()(),Vr(17,"app-menu-toggle",10),Gt(18,"div"),Vr(19,"canvas",11),dn()}if(2&i){const s=Ga(1);jn(5),Ja("badSize",r.disabled),Qn("value",3840),jn(5),Ja("badSize",r.disabled),Qn("value",2610),jn(3),Gw("ngModel",r.fitting),jn(),Qn("ngForOf",r.fittings),jn(),Qn("disabled",r.disabled),jn(),yl(" ",r.buttonText()," "),jn(),Qn("matMenuTriggerFor",s)}},dependencies:[am,UO,X4,o1,s1,CC,C$,IL,qc],styles:[".size-input{background:transparent;color:var(--phoenix-text-color);text-align:center}.size-input label{width:60px}.size-input input{background:transparent;color:var(--phoenix-text-color);width:80px}.badSize{border-color:red}.make-picture{text-align:center;display:block}.make-picture span{padding:5px 25px;border:2px solid var(--phoenix-text-color);border-radius:8px}\n"],encapsulation:2})}return n})(),PL=(()=>{class n{eventDisplay;performanceMode=!1;constructor(t){this.eventDisplay=t}togglePerformance(){this.performanceMode=!this.performanceMode,this.eventDisplay.getThreeManager().setAntialiasing(!this.performanceMode)}static \u0275fac=function(i){return new(i||n)(Lt(Al))};static \u0275cmp=rs({type:n,selectors:[["app-performance-toggle"]],decls:1,vars:1,consts:[["tooltip","Performance mode","icon","performance",3,"click","active"]],template:function(i,r){1&i&&(Gt(0,"app-menu-toggle",0),Ai("click",function(){return r.togglePerformance()}),dn()),2&i&&Qn("active",r.performanceMode)},dependencies:[qc]})}return n})();var Hbe=Se(1230);const Vbe=["qrcodeCanvas"];let M$=(()=>{class n{dialogRef;baseLink;shareLink;embedLink;urlOptions=Object.assign({},Lge);qrcodeCanvas;constructor(t){this.dialogRef=t;const i=window.location.href,r=-1===i.lastIndexOf("?")?i.length:i.lastIndexOf("?");this.baseLink=i.slice(0,r),this.shareLink=new pC(this.baseLink),this.embedLink=this.getEmbedLink()}ngAfterViewInit(){this.updateQRCode(this.shareLink.value),this.shareLink.onUpdate(this.updateQRCode.bind(this))}onClose(){this.dialogRef.close()}getEmbedLink(t=""){return``}setOptionValue(t,i){this.urlOptions[t]=i,this.onOptionsChange()}onOptionsChange(){const t=Object.getOwnPropertyNames(this.urlOptions).reduce((i,r)=>(this.urlOptions[r]&&i.push(`${r}=${encodeURI(this.urlOptions[r])}`),i),[]).join("&");this.shareLink.update(this.baseLink+(t?"?":"")+t),this.embedLink=this.getEmbedLink(t)}copyText(t,i){const r=document.createElement("input");document.body.appendChild(r),r.value=t,r.select(),document.execCommand("copy"),document.body.removeChild(r),i.focus(),i.innerText="COPIED",setTimeout(()=>{i.innerText="COPY"},2e3)}updateQRCode(t){Hbe.toCanvas(this.qrcodeCanvas.nativeElement,t)}static \u0275fac=function(i){return new(i||n)(Lt(_x))};static \u0275cmp=rs({type:n,selectors:[["app-share-link-dialog"]],viewQuery:function(i,r){if(1&i&&_l(Vbe,5),2&i){let s;pa(s=ma())&&(r.qrcodeCanvas=s.first)}},decls:49,vars:5,consts:[["qrcodeCanvas",""],[1,"dialog"],["mat-dialog-title",""],["mat-dialog-content","",1,"dialog-content"],[1,"form-group","mt-2"],["for","eventDataFile"],["type","text","id","eventDataFile","placeholder","assets/files/event_data/atlaseventdump2.json",1,"form-control",3,"input","value"],[1,"form-group"],["for","eventDataType"],["id","eventDataType",1,"form-control",3,"input"],["selected","","value",""],["value","jivexml"],["value","json"],["for","configuration"],["type","text","id","configuration","placeholder","assets/files/config/phoenix-config.json",1,"form-control",3,"input","value"],[3,"change","checked"],[1,"share-box","my-2"],[1,"share-box-copy",3,"click"],[1,"qrcode","d-flex","justify-content-center"],["mat-dialog-actions",""],["mat-button","","cdkFocusInitial","",3,"click"]],template:function(i,r){if(1&i){const s=ta();Gt(0,"div",1)(1,"h1",2),qi(2,"Create shareable link"),dn(),Gt(3,"div",3)(4,"h5"),qi(5,"URL options"),dn(),Gt(6,"div",4)(7,"label",5),qi(8,"Event data file (URL or path)"),dn(),Gt(9,"input",6),Ai("input",function(l){return Ci(s),Mi(r.setOptionValue("file",l.target.value))}),dn()(),Gt(10,"div",7)(11,"label",8),qi(12,"Event data type"),dn(),Gt(13,"select",9),Ai("input",function(l){return Ci(s),Mi(r.setOptionValue("type",l.target.value))}),Gt(14,"option",10),qi(15,"Select"),dn(),Gt(16,"option",11),qi(17,"JiveXML"),dn(),Gt(18,"option",12),qi(19,"JSON"),dn()()(),Gt(20,"div",7)(21,"label",13),qi(22,"Configuration (URL or path)"),dn(),Gt(23,"input",14),Ai("input",function(l){return Ci(s),Mi(r.setOptionValue("config",l.target.value))}),dn()(),Gt(24,"div",7)(25,"mat-checkbox",15),Ai("change",function(l){return Ci(s),Mi(r.setOptionValue("hideWidgets",l.checked))}),qi(26," Hide all widgets "),dn()(),Gt(27,"h5"),qi(28,"Share"),dn(),Gt(29,"div",16)(30,"span"),qi(31),dn(),Gt(32,"button",17),Ai("click",function(l){return Ci(s),Mi(r.copyText(r.shareLink.value,l.target))}),qi(33," COPY "),dn()(),Gt(34,"h5"),qi(35,"Embed"),dn(),Gt(36,"div",16)(37,"span"),qi(38),dn(),Gt(39,"button",17),Ai("click",function(l){return Ci(s),Mi(r.copyText(r.embedLink,l.target))}),qi(40," COPY "),dn()(),Gt(41,"h5"),qi(42,"QR Code"),dn(),Gt(43,"div",18),Vr(44,"canvas",null,0),dn()(),Gt(46,"div",19)(47,"button",20),Ai("click",function(){return Ci(s),Mi(r.onClose())}),qi(48,"Close"),dn()()()}2&i&&(jn(9),Qn("value",r.urlOptions.file),jn(14),Qn("value",r.urlOptions.config),jn(2),Qn("checked",r.urlOptions.hideWidgets),jn(6),tA(r.shareLink.value),jn(7),tA(r.embedLink))},dependencies:[jE,XE,$E,BC,EC,TC,rv],styles:[".share-box[_ngcontent-%COMP%]{width:30rem;max-width:100%;position:relative;background:var(--phoenix-background-color-tertiary);border:1px solid var(--phoenix-border);border-radius:.5rem;padding:1.25rem;word-wrap:break-word}.share-box[_ngcontent-%COMP%] .share-box-copy[_ngcontent-%COMP%]{position:absolute;top:-1px;right:-1px;background:transparent;color:inherit;cursor:pointer;padding:.25rem .5rem;font-size:.75rem;border:1px solid var(--phoenix-border);border-radius:.5rem}.share-box[_ngcontent-%COMP%] .share-box-copy[_ngcontent-%COMP%]:hover{background:var(--phoenix-border)}"]})}return n})(),RL=(()=>{class n{dialog;constructor(t){this.dialog=t}openShareLinkDialog(){this.dialog.open(M$)}static \u0275fac=function(i){return new(i||n)(Lt(yx))};static \u0275cmp=rs({type:n,selectors:[["app-share-link"]],decls:1,vars:1,consts:[["tooltip","Create shareable link","icon","share",3,"click","active"]],template:function(i,r){1&i&&(Gt(0,"app-menu-toggle",0),Ai("click",function(){return r.openShareLinkDialog()}),dn()),2&i&&Qn("active",!1)},dependencies:[qc]})}return n})();const Gbe=["*"];let KE=(()=>{class n{eventDataImportOptions=Object.values(qu);animationPresets=MW;static \u0275fac=function(i){return new(i||n)};static \u0275cmp=rs({type:n,selectors:[["app-ui-menu"]],inputs:{eventDataImportOptions:"eventDataImportOptions",animationPresets:"animationPresets"},ngContentSelectors:Gbe,decls:23,vars:2,consts:[[3,"animationPresets"],[3,"eventDataImportOptions"]],template:function(i,r){1&i&&(yu(),Gt(0,"app-ui-menu-wrapper"),Vr(1,"app-event-selector")(2,"app-zoom-controls")(3,"app-view-options")(4,"app-auto-rotate")(5,"app-dark-theme")(6,"app-object-clipping")(7,"app-main-view-toggle")(8,"app-overlay-view")(9,"app-object-selection")(10,"app-info-panel")(11,"app-animate-event")(12,"app-animate-camera",0)(13,"app-collections-info")(14,"app-geometry-browser")(15,"app-performance-toggle")(16,"app-vr-toggle")(17,"app-ar-toggle")(18,"app-ss-mode")(19,"app-make-picture")(20,"app-io-options",1)(21,"app-share-link"),ih(22),dn()),2&i&&(jn(12),Qn("animationPresets",r.animationPresets),jn(8),Qn("eventDataImportOptions",r.eventDataImportOptions))},dependencies:[kO,hL,Kj,gL,_L,yL,vL,xL,rB,sB,wL,CL,oB,ML,RO,aB,SL,EL,TL,BL,PL,RL]})}return n})();function qbe(n,e){if(1&n&&(Gt(0,"a",5),Vr(1,"img",6),dn()),2&n){const t=Pr();Qn("href",t.url,K1),jn(),Qn("src",t.logo,K1)}}function Qbe(n,e){if(1&n&&(Gt(0,"p")(1,"b"),qi(2),dn()()),2&n){const t=Pr();jn(2),tA(t.tagline)}}function Wbe(n,e){if(1&n&&(ig(0),Gt(1,"b"),qi(2),dn(),qi(3),rg()),2&n){const t=Pr().$implicit;jn(2),yl("",t.label,": "),jn(),yl("",t.value," ")}}function jbe(n,e){if(1&n&&(ig(0),qi(1),rg()),2&n){const t=Pr().$implicit;jn(),yl(" ",t," ")}}function $be(n,e){if(1&n&&(Gt(0,"p"),zs(1,Wbe,4,2,"ng-container",3)(2,jbe,2,1,"ng-container",3),dn()),2&n){const t=e.$implicit;jn(),Qn("ngIf",t.label),jn(),Qn("ngIf",!t.label)}}let lB=(()=>{class n{eventDisplay;experimentInfo;url;logo;tagline;constructor(t){this.eventDisplay=t}ngOnInit(){this.eventDisplay.listenToDisplayedEventChange(()=>{this.experimentInfo=this.eventDisplay.getEventMetadata()})}static \u0275fac=function(i){return new(i||n)(Lt(Al))};static \u0275cmp=rs({type:n,selectors:[["app-experiment-info"]],inputs:{url:"url",logo:"logo",tagline:"tagline"},decls:5,vars:3,consts:[["id","experimentInfo","cdkDrag","","cdkDragBoundary","body",1,"experimentInfo"],["class","experimentLogoWrapper","target","_blank","rel","noopener noreferrer",3,"href",4,"ngIf"],[1,"textInfo"],[4,"ngIf"],[4,"ngFor","ngForOf"],["target","_blank","rel","noopener noreferrer",1,"experimentLogoWrapper",3,"href"],["alt","",1,"experimentLogo",3,"src"]],template:function(i,r){1&i&&(Gt(0,"div",0),zs(1,qbe,2,2,"a",1),Gt(2,"div",2),zs(3,Qbe,3,1,"p",3)(4,$be,3,2,"p",4),dn()()),2&i&&(jn(),Qn("ngIf",r.url),jn(2),Qn("ngIf",r.tagline),jn(),Qn("ngForOf",r.experimentInfo))},dependencies:[am,Lu,cL],styles:[".experimentInfo[_ngcontent-%COMP%]{position:absolute;top:5rem;left:1rem;display:flex;flex-direction:row;justify-items:flex-end;justify-content:flex-end;align-items:center;align-content:center;font-family:Courier New,Lucida Console,monospace;cursor:move}.experimentLogoWrapper[_ngcontent-%COMP%]{width:6rem}.experimentLogoWrapper[_ngcontent-%COMP%] .experimentLogo[_ngcontent-%COMP%]{width:100%;height:100%}.textInfo[_ngcontent-%COMP%]{margin-left:1rem}.textInfo[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{color:var(--phoenix-text-color-secondary);font-size:.8rem;margin-bottom:.5rem;-webkit-user-select:none;user-select:none}@media screen and (max-width: 768px){.experimentInfo[_ngcontent-%COMP%]{top:4rem;max-width:40%}.experimentLogoWrapper[_ngcontent-%COMP%]{height:4rem}.textInfo[_ngcontent-%COMP%]{display:none}}"]})}return n})();const Xbe=["switch"],Ybe=["*"];function Kbe(n,e){1&n&&(Gt(0,"div",10),Fl(),Gt(1,"svg",12),Vr(2,"path",13),dn(),Gt(3,"svg",14),Vr(4,"path",15),dn()())}const Zbe=new Bi("mat-slide-toggle-default-options",{providedIn:"root",factory:()=>({disableToggleValue:!1,hideIcon:!1})}),Jbe={provide:Of,useExisting:jt(()=>kL),multi:!0};class S${constructor(e,t){this.source=e,this.checked=t}}let exe=0,kL=(()=>{class n{_createChangeEvent(t){return new S$(this,t)}get buttonId(){return`${this.id||this._uniqueId}-button`}focus(){this._switchElement.nativeElement.focus()}get checked(){return this._checked}set checked(t){this._checked=t,this._changeDetectorRef.markForCheck()}get inputId(){return`${this.id||this._uniqueId}-input`}constructor(t,i,r,s,o,l){this._elementRef=t,this._focusMonitor=i,this._changeDetectorRef=r,this.defaults=o,this._onChange=d=>{},this._onTouched=()=>{},this._validatorOnChange=()=>{},this._checked=!1,this.name=null,this.labelPosition="after",this.ariaLabel=null,this.ariaLabelledby=null,this.disabled=!1,this.disableRipple=!1,this.tabIndex=0,this.change=new Ls,this.toggleChange=new Ls,this.tabIndex=parseInt(s)||0,this.color=o.color||"accent",this._noopAnimations="NoopAnimations"===l,this.id=this._uniqueId="mat-mdc-slide-toggle-"+ ++exe,this.hideIcon=o.hideIcon??!1,this._labelId=this._uniqueId+"-label"}ngAfterContentInit(){this._focusMonitor.monitor(this._elementRef,!0).subscribe(t=>{"keyboard"===t||"program"===t?(this._focused=!0,this._changeDetectorRef.markForCheck()):t||Promise.resolve().then(()=>{this._focused=!1,this._onTouched(),this._changeDetectorRef.markForCheck()})})}ngOnChanges(t){t.required&&this._validatorOnChange()}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef)}writeValue(t){this.checked=!!t}registerOnChange(t){this._onChange=t}registerOnTouched(t){this._onTouched=t}validate(t){return this.required&&!0!==t.value?{required:!0}:null}registerOnValidatorChange(t){this._validatorOnChange=t}setDisabledState(t){this.disabled=t,this._changeDetectorRef.markForCheck()}toggle(){this.checked=!this.checked,this._onChange(this.checked)}_emitChangeEvent(){this._onChange(this.checked),this.change.emit(this._createChangeEvent(this.checked))}_handleClick(){this.toggleChange.emit(),this.defaults.disableToggleValue||(this.checked=!this.checked,this._onChange(this.checked),this.change.emit(new S$(this,this.checked)))}_getAriaLabelledBy(){return this.ariaLabelledby?this.ariaLabelledby:this.ariaLabel?null:this._labelId}static#e=this.\u0275fac=function(i){return new(i||n)(Lt(oo),Lt(e1),Lt(Sc),bh("tabindex"),Lt(Zbe),Lt(Od,8))};static#t=this.\u0275cmp=rs({type:n,selectors:[["mat-slide-toggle"]],viewQuery:function(i,r){if(1&i&&_l(Xbe,5),2&i){let s;pa(s=ma())&&(r._switchElement=s.first)}},hostAttrs:[1,"mat-mdc-slide-toggle"],hostVars:13,hostBindings:function(i,r){2&i&&(zw("id",r.id),sl("tabindex",null)("aria-label",null)("name",null)("aria-labelledby",null),P_(r.color?"mat-"+r.color:""),Ja("mat-mdc-slide-toggle-focused",r._focused)("mat-mdc-slide-toggle-checked",r.checked)("_mat-animation-noopable",r._noopAnimations))},inputs:{name:"name",id:"id",labelPosition:"labelPosition",ariaLabel:[mi.None,"aria-label","ariaLabel"],ariaLabelledby:[mi.None,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[mi.None,"aria-describedby","ariaDescribedby"],required:[mi.HasDecoratorInputTransform,"required","required",_o],color:"color",disabled:[mi.HasDecoratorInputTransform,"disabled","disabled",_o],disableRipple:[mi.HasDecoratorInputTransform,"disableRipple","disableRipple",_o],tabIndex:[mi.HasDecoratorInputTransform,"tabIndex","tabIndex",t=>null==t?0:rh(t)],checked:[mi.HasDecoratorInputTransform,"checked","checked",_o],hideIcon:[mi.HasDecoratorInputTransform,"hideIcon","hideIcon",_o]},outputs:{change:"change",toggleChange:"toggleChange"},exportAs:["matSlideToggle"],standalone:!0,features:[qo([Jbe,{provide:ph,useExisting:n,multi:!0}]),ql,kl,yd],ngContentSelectors:Ybe,decls:13,vars:24,consts:[["switch",""],["mat-internal-form-field","",3,"labelPosition"],["role","switch","type","button",1,"mdc-switch",3,"click","tabIndex","disabled"],[1,"mdc-switch__track"],[1,"mdc-switch__handle-track"],[1,"mdc-switch__handle"],[1,"mdc-switch__shadow"],[1,"mdc-elevation-overlay"],[1,"mdc-switch__ripple"],["mat-ripple","",1,"mat-mdc-slide-toggle-ripple","mat-mdc-focus-indicator",3,"matRippleTrigger","matRippleDisabled","matRippleCentered"],[1,"mdc-switch__icons"],[1,"mdc-label",3,"click","for"],["viewBox","0 0 24 24","aria-hidden","true",1,"mdc-switch__icon","mdc-switch__icon--on"],["d","M19.69,5.23L8.96,15.96l-4.23-4.23L2.96,13.5l6,6L21.46,7L19.69,5.23z"],["viewBox","0 0 24 24","aria-hidden","true",1,"mdc-switch__icon","mdc-switch__icon--off"],["d","M20 13H4v-2h16v2z"]],template:function(i,r){if(1&i){const s=ta();yu(),Gt(0,"div",1)(1,"button",2,0),Ai("click",function(){return Ci(s),Mi(r._handleClick())}),Vr(3,"div",3),Gt(4,"div",4)(5,"div",5)(6,"div",6),Vr(7,"div",7),dn(),Gt(8,"div",8),Vr(9,"div",9),dn(),zs(10,Kbe,5,0,"div",10),dn()()(),Gt(11,"label",11),Ai("click",function(l){return Ci(s),Mi(l.stopPropagation())}),ih(12),dn()()}if(2&i){const s=Ga(2);Qn("labelPosition",r.labelPosition),jn(),Ja("mdc-switch--selected",r.checked)("mdc-switch--unselected",!r.checked)("mdc-switch--checked",r.checked)("mdc-switch--disabled",r.disabled),Qn("tabIndex",r.disabled?-1:r.tabIndex)("disabled",r.disabled),sl("id",r.buttonId)("name",r.name)("aria-label",r.ariaLabel)("aria-labelledby",r._getAriaLabelledBy())("aria-describedby",r.ariaDescribedby)("aria-required",r.required||null)("aria-checked",r.checked),jn(8),Qn("matRippleTrigger",s)("matRippleDisabled",r.disableRipple||r.disabled)("matRippleCentered",!0),jn(),R_(10,r.hideIcon?-1:10),jn(),Qn("for",r.buttonId),sl("id",r._labelId)}},dependencies:[k0,SO],styles:['.mdc-elevation-overlay{position:absolute;border-radius:inherit;pointer-events:none;opacity:var(--mdc-elevation-overlay-opacity);transition:opacity 280ms cubic-bezier(0.4, 0, 0.2, 1);background-color:var(--mdc-elevation-overlay-color)}.mdc-switch{align-items:center;background:none;border:none;cursor:pointer;display:inline-flex;flex-shrink:0;margin:0;outline:none;overflow:visible;padding:0;position:relative}.mdc-switch[hidden]{display:none}.mdc-switch:disabled{cursor:default;pointer-events:none}.mdc-switch__track{overflow:hidden;position:relative;width:100%}.mdc-switch__track::before,.mdc-switch__track::after{border:1px solid rgba(0,0,0,0);border-radius:inherit;box-sizing:border-box;content:"";height:100%;left:0;position:absolute;width:100%}@media screen and (forced-colors: active){.mdc-switch__track::before,.mdc-switch__track::after{border-color:currentColor}}.mdc-switch__track::before{transition:transform 75ms 0ms cubic-bezier(0, 0, 0.2, 1);transform:translateX(0)}.mdc-switch__track::after{transition:transform 75ms 0ms cubic-bezier(0.4, 0, 0.6, 1);transform:translateX(-100%)}[dir=rtl] .mdc-switch__track::after,.mdc-switch__track[dir=rtl]::after{transform:translateX(100%)}.mdc-switch--selected .mdc-switch__track::before{transition:transform 75ms 0ms cubic-bezier(0.4, 0, 0.6, 1);transform:translateX(100%)}[dir=rtl] .mdc-switch--selected .mdc-switch__track::before,.mdc-switch--selected .mdc-switch__track[dir=rtl]::before{transform:translateX(-100%)}.mdc-switch--selected .mdc-switch__track::after{transition:transform 75ms 0ms cubic-bezier(0, 0, 0.2, 1);transform:translateX(0)}.mdc-switch__handle-track{height:100%;pointer-events:none;position:absolute;top:0;transition:transform 75ms 0ms cubic-bezier(0.4, 0, 0.2, 1);left:0;right:auto;transform:translateX(0)}[dir=rtl] .mdc-switch__handle-track,.mdc-switch__handle-track[dir=rtl]{left:auto;right:0}.mdc-switch--selected .mdc-switch__handle-track{transform:translateX(100%)}[dir=rtl] .mdc-switch--selected .mdc-switch__handle-track,.mdc-switch--selected .mdc-switch__handle-track[dir=rtl]{transform:translateX(-100%)}.mdc-switch__handle{display:flex;pointer-events:auto;position:absolute;top:50%;transform:translateY(-50%);left:0;right:auto}[dir=rtl] .mdc-switch__handle,.mdc-switch__handle[dir=rtl]{left:auto;right:0}.mdc-switch__handle::before,.mdc-switch__handle::after{border:1px solid rgba(0,0,0,0);border-radius:inherit;box-sizing:border-box;content:"";width:100%;height:100%;left:0;position:absolute;top:0;transition:background-color 75ms 0ms cubic-bezier(0.4, 0, 0.2, 1),border-color 75ms 0ms cubic-bezier(0.4, 0, 0.2, 1);z-index:-1}@media screen and (forced-colors: active){.mdc-switch__handle::before,.mdc-switch__handle::after{border-color:currentColor}}.mdc-switch__shadow{border-radius:inherit;bottom:0;left:0;position:absolute;right:0;top:0}.mdc-elevation-overlay{bottom:0;left:0;right:0;top:0}.mdc-switch__ripple{left:50%;position:absolute;top:50%;transform:translate(-50%, -50%);z-index:-1}.mdc-switch:disabled .mdc-switch__ripple{display:none}.mdc-switch__icons{height:100%;position:relative;width:100%;z-index:1}.mdc-switch__icon{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0;opacity:0;transition:opacity 30ms 0ms cubic-bezier(0.4, 0, 1, 1)}.mdc-switch--selected .mdc-switch__icon--on,.mdc-switch--unselected .mdc-switch__icon--off{opacity:1;transition:opacity 45ms 30ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-slide-toggle .mdc-switch--disabled+label{color:var(--mdc-switch-disabled-label-text-color)}.mdc-switch{width:var(--mdc-switch-track-width)}.mdc-switch.mdc-switch--selected:enabled .mdc-switch__handle::after{background:var(--mdc-switch-selected-handle-color)}.mdc-switch.mdc-switch--selected:enabled:hover:not(:focus):not(:active) .mdc-switch__handle::after{background:var(--mdc-switch-selected-hover-handle-color)}.mdc-switch.mdc-switch--selected:enabled:focus:not(:active) .mdc-switch__handle::after{background:var(--mdc-switch-selected-focus-handle-color)}.mdc-switch.mdc-switch--selected:enabled:active .mdc-switch__handle::after{background:var(--mdc-switch-selected-pressed-handle-color)}.mdc-switch.mdc-switch--selected:disabled .mdc-switch__handle::after{background:var(--mdc-switch-disabled-selected-handle-color)}.mdc-switch.mdc-switch--unselected:enabled .mdc-switch__handle::after{background:var(--mdc-switch-unselected-handle-color)}.mdc-switch.mdc-switch--unselected:enabled:hover:not(:focus):not(:active) .mdc-switch__handle::after{background:var(--mdc-switch-unselected-hover-handle-color)}.mdc-switch.mdc-switch--unselected:enabled:focus:not(:active) .mdc-switch__handle::after{background:var(--mdc-switch-unselected-focus-handle-color)}.mdc-switch.mdc-switch--unselected:enabled:active .mdc-switch__handle::after{background:var(--mdc-switch-unselected-pressed-handle-color)}.mdc-switch.mdc-switch--unselected:disabled .mdc-switch__handle::after{background:var(--mdc-switch-disabled-unselected-handle-color)}.mdc-switch .mdc-switch__handle::before{background:var(--mdc-switch-handle-surface-color)}.mdc-switch:enabled .mdc-switch__shadow{box-shadow:var(--mdc-switch-handle-elevation)}.mdc-switch:disabled .mdc-switch__shadow{box-shadow:var(--mdc-switch-disabled-handle-elevation)}.mdc-switch .mdc-switch__focus-ring-wrapper,.mdc-switch .mdc-switch__handle{height:var(--mdc-switch-handle-height)}.mdc-switch .mdc-switch__handle{border-radius:var(--mdc-switch-handle-shape)}.mdc-switch .mdc-switch__handle{width:var(--mdc-switch-handle-width)}.mdc-switch .mdc-switch__handle-track{width:calc(100% - var(--mdc-switch-handle-width))}.mdc-switch.mdc-switch--selected:enabled .mdc-switch__icon{fill:var(--mdc-switch-selected-icon-color)}.mdc-switch.mdc-switch--selected:disabled .mdc-switch__icon{fill:var(--mdc-switch-disabled-selected-icon-color)}.mdc-switch.mdc-switch--unselected:enabled .mdc-switch__icon{fill:var(--mdc-switch-unselected-icon-color)}.mdc-switch.mdc-switch--unselected:disabled .mdc-switch__icon{fill:var(--mdc-switch-disabled-unselected-icon-color)}.mdc-switch.mdc-switch--selected:disabled .mdc-switch__icons{opacity:var(--mdc-switch-disabled-selected-icon-opacity)}.mdc-switch.mdc-switch--unselected:disabled .mdc-switch__icons{opacity:var(--mdc-switch-disabled-unselected-icon-opacity)}.mdc-switch.mdc-switch--selected .mdc-switch__icon{width:var(--mdc-switch-selected-icon-size);height:var(--mdc-switch-selected-icon-size)}.mdc-switch.mdc-switch--unselected .mdc-switch__icon{width:var(--mdc-switch-unselected-icon-size);height:var(--mdc-switch-unselected-icon-size)}.mdc-switch.mdc-switch--selected:enabled:hover:not(:focus) .mdc-switch__ripple::before,.mdc-switch.mdc-switch--selected:enabled:hover:not(:focus) .mdc-switch__ripple::after{background-color:var(--mdc-switch-selected-hover-state-layer-color)}.mdc-switch.mdc-switch--selected:enabled:focus .mdc-switch__ripple::before,.mdc-switch.mdc-switch--selected:enabled:focus .mdc-switch__ripple::after{background-color:var(--mdc-switch-selected-focus-state-layer-color)}.mdc-switch.mdc-switch--selected:enabled:active .mdc-switch__ripple::before,.mdc-switch.mdc-switch--selected:enabled:active .mdc-switch__ripple::after{background-color:var(--mdc-switch-selected-pressed-state-layer-color)}.mdc-switch.mdc-switch--unselected:enabled:hover:not(:focus) .mdc-switch__ripple::before,.mdc-switch.mdc-switch--unselected:enabled:hover:not(:focus) .mdc-switch__ripple::after{background-color:var(--mdc-switch-unselected-hover-state-layer-color)}.mdc-switch.mdc-switch--unselected:enabled:focus .mdc-switch__ripple::before,.mdc-switch.mdc-switch--unselected:enabled:focus .mdc-switch__ripple::after{background-color:var(--mdc-switch-unselected-focus-state-layer-color)}.mdc-switch.mdc-switch--unselected:enabled:active .mdc-switch__ripple::before,.mdc-switch.mdc-switch--unselected:enabled:active .mdc-switch__ripple::after{background-color:var(--mdc-switch-unselected-pressed-state-layer-color)}.mdc-switch.mdc-switch--selected:enabled:hover:not(:focus):hover .mdc-switch__ripple::before,.mdc-switch.mdc-switch--selected:enabled:hover:not(:focus).mdc-ripple-surface--hover .mdc-switch__ripple::before{opacity:var(--mdc-switch-selected-hover-state-layer-opacity)}.mdc-switch.mdc-switch--selected:enabled:focus.mdc-ripple-upgraded--background-focused .mdc-switch__ripple::before,.mdc-switch.mdc-switch--selected:enabled:focus:not(.mdc-ripple-upgraded):focus .mdc-switch__ripple::before{transition-duration:75ms;opacity:var(--mdc-switch-selected-focus-state-layer-opacity)}.mdc-switch.mdc-switch--selected:enabled:active:not(.mdc-ripple-upgraded) .mdc-switch__ripple::after{transition:opacity 150ms linear}.mdc-switch.mdc-switch--selected:enabled:active:not(.mdc-ripple-upgraded):active .mdc-switch__ripple::after{transition-duration:75ms;opacity:var(--mdc-switch-selected-pressed-state-layer-opacity)}.mdc-switch.mdc-switch--selected:enabled:active.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-switch-selected-pressed-state-layer-opacity)}.mdc-switch.mdc-switch--unselected:enabled:hover:not(:focus):hover .mdc-switch__ripple::before,.mdc-switch.mdc-switch--unselected:enabled:hover:not(:focus).mdc-ripple-surface--hover .mdc-switch__ripple::before{opacity:var(--mdc-switch-unselected-hover-state-layer-opacity)}.mdc-switch.mdc-switch--unselected:enabled:focus.mdc-ripple-upgraded--background-focused .mdc-switch__ripple::before,.mdc-switch.mdc-switch--unselected:enabled:focus:not(.mdc-ripple-upgraded):focus .mdc-switch__ripple::before{transition-duration:75ms;opacity:var(--mdc-switch-unselected-focus-state-layer-opacity)}.mdc-switch.mdc-switch--unselected:enabled:active:not(.mdc-ripple-upgraded) .mdc-switch__ripple::after{transition:opacity 150ms linear}.mdc-switch.mdc-switch--unselected:enabled:active:not(.mdc-ripple-upgraded):active .mdc-switch__ripple::after{transition-duration:75ms;opacity:var(--mdc-switch-unselected-pressed-state-layer-opacity)}.mdc-switch.mdc-switch--unselected:enabled:active.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-switch-unselected-pressed-state-layer-opacity)}.mdc-switch .mdc-switch__ripple{height:var(--mdc-switch-state-layer-size);width:var(--mdc-switch-state-layer-size)}.mdc-switch .mdc-switch__track{height:var(--mdc-switch-track-height)}.mdc-switch:disabled .mdc-switch__track{opacity:var(--mdc-switch-disabled-track-opacity)}.mdc-switch:enabled .mdc-switch__track::after{background:var(--mdc-switch-selected-track-color)}.mdc-switch:enabled:hover:not(:focus):not(:active) .mdc-switch__track::after{background:var(--mdc-switch-selected-hover-track-color)}.mdc-switch:enabled:focus:not(:active) .mdc-switch__track::after{background:var(--mdc-switch-selected-focus-track-color)}.mdc-switch:enabled:active .mdc-switch__track::after{background:var(--mdc-switch-selected-pressed-track-color)}.mdc-switch:disabled .mdc-switch__track::after{background:var(--mdc-switch-disabled-selected-track-color)}.mdc-switch:enabled .mdc-switch__track::before{background:var(--mdc-switch-unselected-track-color)}.mdc-switch:enabled:hover:not(:focus):not(:active) .mdc-switch__track::before{background:var(--mdc-switch-unselected-hover-track-color)}.mdc-switch:enabled:focus:not(:active) .mdc-switch__track::before{background:var(--mdc-switch-unselected-focus-track-color)}.mdc-switch:enabled:active .mdc-switch__track::before{background:var(--mdc-switch-unselected-pressed-track-color)}.mdc-switch:disabled .mdc-switch__track::before{background:var(--mdc-switch-disabled-unselected-track-color)}.mdc-switch .mdc-switch__track{border-radius:var(--mdc-switch-track-shape)}.mdc-switch:enabled .mdc-switch__shadow{box-shadow:var(--mdc-switch-handle-elevation-shadow)}.mdc-switch:disabled .mdc-switch__shadow{box-shadow:var(--mdc-switch-disabled-handle-elevation-shadow)}.mat-mdc-slide-toggle{display:inline-block;-webkit-tap-highlight-color:rgba(0,0,0,0);outline:0}.mat-mdc-slide-toggle .mat-mdc-slide-toggle-ripple,.mat-mdc-slide-toggle .mdc-switch__ripple::after{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:50%;pointer-events:none}.mat-mdc-slide-toggle .mat-mdc-slide-toggle-ripple:not(:empty),.mat-mdc-slide-toggle .mdc-switch__ripple::after:not(:empty){transform:translateZ(0)}.mat-mdc-slide-toggle .mdc-switch__ripple::after{content:"";opacity:0}.mat-mdc-slide-toggle .mdc-switch:hover .mdc-switch__ripple::after{opacity:.04;transition:opacity 75ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-slide-toggle.mat-mdc-slide-toggle-focused .mdc-switch .mdc-switch__ripple::after{opacity:.12}.mat-mdc-slide-toggle.mat-mdc-slide-toggle-focused .mat-mdc-focus-indicator::before{content:""}.mat-mdc-slide-toggle .mat-ripple-element{opacity:.12}.mat-mdc-slide-toggle .mat-mdc-focus-indicator::before{border-radius:50%}.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__handle-track,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-elevation-overlay,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__icon,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__handle::before,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__handle::after,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__track::before,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__track::after{transition:none}.mat-mdc-slide-toggle .mdc-switch:enabled+.mdc-label{cursor:pointer}.mdc-switch__handle{transition:width 75ms cubic-bezier(0.4, 0, 0.2, 1),height 75ms cubic-bezier(0.4, 0, 0.2, 1),margin 75ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-switch--selected .mdc-switch__track::before{opacity:var(--mat-switch-hidden-track-opacity);transition:var(--mat-switch-hidden-track-transition)}.mdc-switch--selected .mdc-switch__track::after{opacity:var(--mat-switch-visible-track-opacity);transition:var(--mat-switch-visible-track-transition)}.mdc-switch--unselected .mdc-switch__track::before{opacity:var(--mat-switch-visible-track-opacity);transition:var(--mat-switch-visible-track-transition)}.mdc-switch--unselected .mdc-switch__track::after{opacity:var(--mat-switch-hidden-track-opacity);transition:var(--mat-switch-hidden-track-transition)}.mat-mdc-slide-toggle .mdc-switch--unselected .mdc-switch__handle{width:var(--mat-switch-unselected-handle-size);height:var(--mat-switch-unselected-handle-size)}.mat-mdc-slide-toggle .mdc-switch--selected .mdc-switch__handle{width:var(--mat-switch-selected-handle-size);height:var(--mat-switch-selected-handle-size)}.mat-mdc-slide-toggle .mdc-switch__handle:has(.mdc-switch__icons){width:var(--mat-switch-with-icon-handle-size);height:var(--mat-switch-with-icon-handle-size)}.mat-mdc-slide-toggle:active .mdc-switch:not(.mdc-switch--disabled) .mdc-switch__handle{width:var(--mat-switch-pressed-handle-size);height:var(--mat-switch-pressed-handle-size)}.mat-mdc-slide-toggle .mdc-switch--selected .mdc-switch__handle{margin:var(--mat-switch-selected-handle-horizontal-margin)}.mat-mdc-slide-toggle .mdc-switch--selected .mdc-switch__handle:has(.mdc-switch__icons){margin:var(--mat-switch-selected-with-icon-handle-horizontal-margin)}.mat-mdc-slide-toggle .mdc-switch--unselected .mdc-switch__handle{margin:var(--mat-switch-unselected-handle-horizontal-margin)}.mat-mdc-slide-toggle .mdc-switch--unselected .mdc-switch__handle:has(.mdc-switch__icons){margin:var(--mat-switch-unselected-with-icon-handle-horizontal-margin)}.mat-mdc-slide-toggle:active .mdc-switch--selected:not(.mdc-switch--disabled) .mdc-switch__handle{margin:var(--mat-switch-selected-pressed-handle-horizontal-margin)}.mat-mdc-slide-toggle:active .mdc-switch--unselected:not(.mdc-switch--disabled) .mdc-switch__handle{margin:var(--mat-switch-unselected-pressed-handle-horizontal-margin)}.mdc-switch__track::after,.mdc-switch__track::before{border-width:var(--mat-switch-track-outline-width);border-color:var(--mat-switch-track-outline-color)}.mdc-switch--selected .mdc-switch__track::after,.mdc-switch--selected .mdc-switch__track::before{border-width:var(--mat-switch-selected-track-outline-width)}.mdc-switch--disabled .mdc-switch__track::after,.mdc-switch--disabled .mdc-switch__track::before{border-width:var(--mat-switch-disabled-unselected-track-outline-width);border-color:var(--mat-switch-disabled-unselected-track-outline-color)}.mdc-switch--disabled.mdc-switch--selected .mdc-switch__handle::after{opacity:var(--mat-switch-disabled-selected-handle-opacity)}.mdc-switch--disabled.mdc-switch--unselected .mdc-switch__handle::after{opacity:var(--mat-switch-disabled-unselected-handle-opacity)}'],encapsulation:2,changeDetection:0})}return n})(),ixe=(()=>{class n{static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275mod=vo({type:n});static#n=this.\u0275inj=ra({imports:[kL,Qd,Qd]})}return n})();function rxe(n,e){if(1&n){const t=ta();Gt(0,"input",4),Ai("input",function(r){return Ci(t),Mi(Pr().onValueChange(r.target.value))}),dn()}2&n&&Qn("value",Pr().value)}let E$=(()=>{class n{value=0;min=0;oldMin=0;max=100;oldMax=0;step=1;allowCustomValue=!1;onChange=new Ls;onValueChange(t){t&&this.onChange.emit(t)}toggleMinCut(t){t.checked?this.min=this.oldMin:(this.oldMin=this.min,this.min=Number.MIN_SAFE_INTEGER)}toggleMaxCut(t){t.checked?this.max=this.oldMax:(this.oldMax=this.max,this.max=Number.MAX_SAFE_INTEGER)}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=rs({type:n,selectors:[["app-config-slider"]],inputs:{value:"value",min:"min",max:"max",step:"step",allowCustomValue:"allowCustomValue"},outputs:{onChange:"onChange"},decls:4,vars:5,consts:[[1,"d-flex","flex-row","align-items-center"],["thumbLabel","",1,"mx-2",3,"min","max","step"],["matSliderThumb","",3,"valueChange","value"],["class","config-slider-input","type","number",3,"value","input",4,"ngIf"],["type","number",1,"config-slider-input",3,"input","value"]],template:function(i,r){1&i&&(Gt(0,"div",0)(1,"mat-slider",1)(2,"input",2),Ai("valueChange",function(o){return r.onValueChange(o)}),dn()(),zs(3,rxe,1,1,"input",3),dn()),2&i&&(jn(),Qn("min",r.min)("max",r.max)("step",r.step),jn(),Qn("value",r.value),jn(),Qn("ngIf",r.allowCustomValue))},dependencies:[Lu,bL,YE],styles:[".config-slider-input[_ngcontent-%COMP%]{background:transparent;color:var(--phoenix-text-color);border:none;border-bottom:1px solid var(--phoenix-text-color);width:25%;-moz-appearance:textfield}input[_ngcontent-%COMP%]::-webkit-outer-spin-button, input[_ngcontent-%COMP%]::-webkit-inner-spin-button{-webkit-appearance:none}"]})}return n})();const sxe=["phoenixMenuItem"],oxe=n=>({"top.px":n}),axe=n=>({"font-weight-bold w-100":n}),lxe=n=>({"p-0":n}),cxe=n=>({expanded:n});function dxe(n,e){1&n&&Uw(0)}function hxe(n,e){if(1&n){const t=ta();ig(0),Gt(1,"mat-slide-toggle",9),Ai("change",function(r){return Ci(t),Mi(Pr().currentNode.toggleSelfAndDescendants(r.checked))}),zs(2,dxe,1,0,"ng-container",10),dn(),rg()}if(2&n){const t=Pr(),i=Ga(5);jn(),Qn("checked",t.currentNode.toggleState),jn(),Qn("ngTemplateOutlet",i)}}function uxe(n,e){if(1&n&&(Gt(0,"span",14),Fl(),Gt(1,"svg"),Vr(2,"use"),dn()()),2&n){const t=Pr(2);jn(2),Lw("href","assets/icons/",t.currentNode.icon,".svg#",t.currentNode.icon,"")}}function fxe(n,e){if(1&n&&(Gt(0,"span",11),zs(1,uxe,3,3,"span",12),Gt(2,"span",13),qi(3),dn()()),2&n){const t=Pr();jn(),Qn("ngIf",t.currentNode.icon),jn(),Qn("title",t.currentNode.name),jn(),tA(t.currentNode.name)}}function pxe(n,e){if(1&n){const t=ta();Gt(0,"div",20),Ai("click",function(){return Ci(t),Mi(Pr(2).currentNode.configActive=!1)}),dn()}}function mxe(n,e){if(1&n&&(Gt(0,"label",26),qi(1),dn()),2&n){const t=Pr(2).$implicit;Qn("ngClass",Ou(2,axe,"label"===t.type)),jn(),yl(" ",t.label," ")}}function Axe(n,e){if(1&n){const t=ta();Gt(0,"mat-checkbox",9),Ai("change",function(r){Ci(t);const s=Pr(3).$implicit;return s.onChange(r.checked),Mi(s.isChecked=r.checked)}),dn()}2&n&&Qn("checked",Pr(3).$implicit.isChecked)}function gxe(n,e){if(1&n){const t=ta();Gt(0,"app-config-slider",34),Ai("onChange",function(r){Ci(t);const s=Pr(3).$implicit;return s.onChange(r),Mi(s.value=r)}),dn()}if(2&n){const t=Pr(3).$implicit;Qn("value",t.value)("min",t.min)("max",t.max)("step",t.step)("allowCustomValue",t.allowCustomValue)}}function _xe(n,e){if(1&n){const t=ta();Gt(0,"button",35),Ai("click",function(){return Ci(t),Mi(Pr(3).$implicit.onClick())}),qi(1),dn()}if(2&n){const t=Pr(3).$implicit;jn(),yl(" ",t.label," ")}}function yxe(n,e){if(1&n){const t=ta();Gt(0,"input",36),Ai("input",function(r){Ci(t);const s=Pr(3).$implicit;return s.onChange(r.target.value),Mi(s.color=r.target.value)}),dn()}2&n&&Qn("value",Pr(3).$implicit.color)}function vxe(n,e){if(1&n){const t=ta();Gt(0,"div",37)(1,"div",38)(2,"mat-checkbox",9),Ai("change",function(r){return Ci(t),Mi(Pr(3).$implicit.setEnableMin(r.checked))}),dn(),Gt(3,"mat-checkbox",9),Ai("change",function(r){return Ci(t),Mi(Pr(3).$implicit.setEnableMax(r.checked))}),dn()(),Gt(4,"div",38)(5,"input",39),Ai("input",function(r){Ci(t);const s=Pr(3).$implicit;return s.value=r.target.value,Mi(s.onChange(s))}),dn(),Gt(6,"input",40),Ai("input",function(r){Ci(t);const s=Pr(3).$implicit;return s.highValue=r.target.value,Mi(s.onChange(s))}),dn()()()}if(2&n){const t=Pr(3).$implicit;jn(2),Qn("checked",t.enableMin),jn(),Qn("checked",t.enableMax),jn(2),Qn("value",t.value),jn(),Qn("value",t.highValue)}}function bxe(n,e){if(1&n&&(Gt(0,"option",43),qi(1),dn()),2&n){const t=e.$implicit;Qn("value",t),jn(),yl(" ",t," ")}}function xxe(n,e){if(1&n){const t=ta();Gt(0,"select",41),Ai("change",function(r){return Ci(t),Mi(Pr(3).$implicit.onChange(r.target.value))}),zs(1,bxe,2,2,"option",42),dn()}if(2&n){const t=Pr(3).$implicit;jn(),Qn("ngForOf",t.options)}}function wxe(n,e){if(1&n&&(Gt(0,"div",27),zs(1,Axe,1,1,"mat-checkbox",28)(2,gxe,1,5,"app-config-slider",29)(3,_xe,2,1,"button",30)(4,yxe,1,1,"input",31)(5,vxe,7,4,"div",32)(6,xxe,2,1,"select",33),dn()),2&n){const t=Pr(2).$implicit;Qn("ngClass",Ou(7,lxe,"button"===t.type)),jn(),Qn("ngSwitchCase","checkbox"),jn(),Qn("ngSwitchCase","slider"),jn(),Qn("ngSwitchCase","button"),jn(),Qn("ngSwitchCase","color"),jn(),Qn("ngSwitchCase","rangeSlider"),jn(),Qn("ngSwitchCase","select")}}function Cxe(n,e){if(1&n&&(Gt(0,"div",23),zs(1,mxe,2,4,"label",24)(2,wxe,7,9,"div",25),dn()),2&n){const t=Pr().$implicit;jn(),Qn("ngIf","button"!==t.type),jn(),Qn("ngIf","label"!==t.type)}}function Mxe(n,e){if(1&n&&(ig(0,21),zs(1,Cxe,3,2,"div",22),rg()),2&n){const t=e.$implicit;Qn("ngSwitch",t.type),jn(),Qn("ngIf",!t.hidden)}}function Sxe(n,e){if(1&n){const t=ta();Gt(0,"div")(1,"button",15),Ai("click",function(){Ci(t);const r=Pr();return r.calculateConfigTop(),Mi(r.currentNode.configActive=!r.currentNode.configActive)}),Fl(),Gt(2,"svg"),Vr(3,"use",16),dn()(),zs(4,pxe,1,0,"div",17),Du(),Gt(5,"div",18),zs(6,Mxe,2,2,"ng-container",19),dn()()}if(2&n){const t=Pr();jn(4),Qn("ngIf",t.currentNode.configActive),jn(),Qn("hidden",!t.currentNode.configActive)("ngStyle",Ou(4,oxe,t.configTop)),jn(),Qn("ngForOf",t.castConfigsToAny(t.currentNode.configs))}}function Exe(n,e){if(1&n){const t=ta();Gt(0,"button",44),Ai("click",function(){Ci(t);const r=Pr();return Mi(r.currentNode.childrenActive=!r.currentNode.childrenActive)}),Fl(),Gt(1,"svg"),Vr(2,"use",45),dn()()}if(2&n){const t=Pr();Qn("ngClass",Ou(1,cxe,t.currentNode.childrenActive))}}function Txe(n,e){1&n&&Vr(0,"app-phoenix-menu-item",48),2&n&&Qn("currentNode",e.$implicit)}function Dxe(n,e){if(1&n&&(Gt(0,"div",46),zs(1,Txe,1,1,"app-phoenix-menu-item",47),dn()),2&n){const t=Pr();jn(),Qn("ngForOf",t.currentNode.children)}}let T$=(()=>{class n{cdr;currentNode;phoenixMenuItem;configTop;constructor(t){this.cdr=t}calculateConfigTop(){this.phoenixMenuItem&&(this.configTop=this.phoenixMenuItem.nativeElement.getBoundingClientRect().top,this.cdr.detectChanges())}castConfigsToAny(t){return t}static \u0275fac=function(i){return new(i||n)(Lt(Sc))};static \u0275cmp=rs({type:n,selectors:[["app-phoenix-menu-item"]],viewQuery:function(i,r){if(1&i&&_l(sxe,5),2&i){let s;pa(s=ma())&&(r.phoenixMenuItem=s.first)}},inputs:{currentNode:"currentNode"},decls:10,vars:5,consts:[["phoenixMenuItem",""],["nodeName",""],[1,"phoenix-menu-item"],[1,"phoenix-menu-item-left","align-items-center"],[4,"ngIf","ngIfElse"],[1,"phoenix-menu-item-right"],[4,"ngIf"],["class","icon-wrapper icon-button btn-blank item-expand","data-testid","dropdown",3,"ngClass","click",4,"ngIf"],["class","phoenix-menu-children",4,"ngIf"],[3,"change","checked"],[4,"ngTemplateOutlet"],[1,"d-flex","w-100","align-items-center"],["class","icon-wrapper item-icon",4,"ngIf"],[1,"item-name",3,"title"],[1,"icon-wrapper","item-icon"],[1,"icon-wrapper","icon-button","btn-blank","item-settings",3,"click"],["href","assets/icons/gear.svg#gear"],["class","item-config-backdrop",3,"click",4,"ngIf"],[1,"item-config",3,"hidden","ngStyle"],[3,"ngSwitch",4,"ngFor","ngForOf"],[1,"item-config-backdrop",3,"click"],[3,"ngSwitch"],["class","item-config-single",4,"ngIf"],[1,"item-config-single"],["class","item-config-label","for","item-config-field",3,"ngClass",4,"ngIf"],["class","item-config-data",3,"ngClass",4,"ngIf"],["for","item-config-field",1,"item-config-label",3,"ngClass"],[1,"item-config-data",3,"ngClass"],[3,"checked","change",4,"ngSwitchCase"],[3,"value","min","max","step","allowCustomValue","onChange",4,"ngSwitchCase"],["class","w-100","mat-button","","mat-stroked-button","",3,"click",4,"ngSwitchCase"],["id","item-config-field","type","color",3,"value","input",4,"ngSwitchCase"],["class","range-slider",4,"ngSwitchCase"],["id","item-config-field","class","w-100",3,"change",4,"ngSwitchCase"],[3,"onChange","value","min","max","step","allowCustomValue"],["mat-button","","mat-stroked-button","",1,"w-100",3,"click"],["id","item-config-field","type","color",3,"input","value"],[1,"range-slider"],[1,"range-slider-inputs","d-flex","justify-content-between"],["type","number","placeholder","Min","step","config.step",1,"form-control","form-control-sm",3,"input","value"],["type","number","placeholder","Max","step","config.step",1,"form-control","form-control-sm",3,"input","value"],["id","item-config-field",1,"w-100",3,"change"],[3,"value",4,"ngFor","ngForOf"],[3,"value"],["data-testid","dropdown",1,"icon-wrapper","icon-button","btn-blank","item-expand",3,"click","ngClass"],["href","assets/icons/expand.svg#expand"],[1,"phoenix-menu-children"],[3,"currentNode",4,"ngFor","ngForOf"],[3,"currentNode"]],template:function(i,r){if(1&i&&(Gt(0,"div",2,0)(2,"div",3),zs(3,hxe,3,2,"ng-container",4)(4,fxe,4,3,"ng-template",null,1,nR),dn(),Gt(6,"div",5),zs(7,Sxe,7,6,"div",6)(8,Exe,3,3,"button",7),dn()(),zs(9,Dxe,2,1,"div",8)),2&i){const s=Ga(5);jn(3),Qn("ngIf",r.currentNode.onToggle)("ngIfElse",s),jn(4),Qn("ngIf",r.currentNode.configs.length>0),jn(),Qn("ngIf",r.currentNode.children.length>0),jn(),Qn("ngIf",r.currentNode.childrenActive)}},dependencies:[om,am,Lu,M7,C7,pD,x7,BC,EC,TC,kL,rv,n,E$],styles:[".phoenix-menu-item{width:100%;padding:.6rem;background:var(--phoenix-background-color-secondary);color:var(--phoenix-text-color);font-size:.8rem;transition:all .5s;display:flex;justify-content:space-between;align-items:center}.phoenix-menu-item-left{display:flex;justify-content:flex-start;min-width:0;padding-right:.5rem;overflow:hidden}.phoenix-menu-item-left .item-name{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.phoenix-menu-item-left .item-icon{margin-right:.2rem}.phoenix-menu-item-right{display:flex;justify-content:flex-end}.phoenix-menu-item-right .item-expand.expanded{transform:scaleY(-1)}.phoenix-menu-item-right .item-settings{margin-right:.2rem}.phoenix-menu-item-right .item-config-backdrop{position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:110}.phoenix-menu-item-right .item-config{position:absolute;margin-top:-5rem;right:100%;width:14rem;padding:.5rem;background:var(--phoenix-background-color-secondary);color:var(--phoenix-text-color-secondary);box-shadow:var(--phoenix-box-shadow);display:flex;flex-direction:column;z-index:120}.phoenix-menu-item-right .item-config>*{margin-bottom:.4rem}.phoenix-menu-item-right .item-config>*:last-child{margin-bottom:0}.phoenix-menu-item-right .item-config .item-config-single{display:flex;flex-direction:row}.phoenix-menu-item-right .item-config .item-config-single .item-config-label{width:30%}.phoenix-menu-item-right .item-config .item-config-single .item-config-data{flex-grow:1;padding-left:.5rem}.phoenix-menu-item .icon-wrapper{display:inline-block;width:1.3rem;height:1.3rem;padding:.23rem;transition:all .4s}.phoenix-menu-item .icon-wrapper.icon-button:hover{background:var(--phoenix-options-icon-bg);border-radius:40%;cursor:pointer}.phoenix-menu-item .icon-wrapper svg{width:100%;height:100%;vertical-align:top}.phoenix-menu-item .mat-slide-toggle-bar{width:30px!important}.phoenix-menu-item .mat-slide-toggle-thumb{width:15px!important;height:15px!important;position:absolute;top:2px}.phoenix-menu-item .mat-slider-horizontal{min-width:0;width:100%;height:20px}.phoenix-menu-item .mat-slider-horizontal .mat-slider-wrapper{top:10px}.phoenix-menu-item label.mat-checkbox-layout{margin:0}@media screen and (max-width: 768px){.phoenix-menu-item{font-size:.75rem;padding:.5rem}.phoenix-menu-item .icon-wrapper{width:1rem;height:1rem;padding:.15rem}}.phoenix-menu-children{margin-left:.5rem;border-left:1px solid var(--phoenix-accent)}.range-slider .range-slider-inputs{gap:20%}\n"],encapsulation:2})}return n})(),ZE=(()=>{class n{rootNode;static \u0275fac=function(i){return new(i||n)};static \u0275cmp=rs({type:n,selectors:[["app-phoenix-menu"]],inputs:{rootNode:"rootNode"},decls:2,vars:1,consts:[["id","phoenixMenu"],[3,"currentNode"]],template:function(i,r){1&i&&(Gt(0,"div",0),Vr(1,"app-phoenix-menu-item",1),dn()),2&i&&(jn(),Qn("currentNode",r.rootNode))},dependencies:[T$],styles:["[_nghost-%COMP%]{width:15rem;max-width:45%;position:absolute;top:5rem;right:1rem}#phoenixMenu[_ngcontent-%COMP%]{background:var(--phoenix-background-color-secondary);max-height:75vh;overflow-y:auto;box-shadow:var(--phoenix-box-shadow);z-index:100}@media screen and (max-width: 768px){#phoenixMenu[_ngcontent-%COMP%]{top:4rem}}"]})}return n})(),D$=(()=>{class n{experimentLink;ngOnInit(){const t=new URL(window.location.href);t.searchParams.delete("embed"),this.experimentLink=t.toString()}goToExperiment(){window.open(this.experimentLink,"_blank")}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=rs({type:n,selectors:[["app-experiment-link"]],decls:1,vars:0,consts:[["tooltip","See full event display","icon","link",3,"click"]],template:function(i,r){1&i&&(Gt(0,"app-menu-toggle",0),Ai("click",function(){return r.goToExperiment()}),dn())},dependencies:[qc]})}return n})(),RC=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275cmp=rs({type:n,selectors:[["app-embed-menu"]],decls:8,vars:0,consts:[["id","embedMenu"],["id","embedMenuInner"]],template:function(i,r){1&i&&(Gt(0,"div",0)(1,"div",1),Vr(2,"app-dark-theme")(3,"app-auto-rotate")(4,"app-main-view-toggle")(5,"app-animate-event")(6,"app-animate-camera")(7,"app-experiment-link"),dn()())},dependencies:[rB,sB,oB,RO,aB,D$],styles:["#embedMenu[_ngcontent-%COMP%]{display:none}#embedMenu[_ngcontent-%COMP%] #embedMenuInner[_ngcontent-%COMP%]{display:flex;position:absolute;left:1rem;bottom:1rem;background:var(--phoenix-background-color-secondary);border:1px solid var(--phoenix-background-color-tertiary);box-shadow:var(--phoenix-box-shadow);border-radius:30px;padding:.25rem 0}"]})}return n})(),I$=(()=>{class n{eventDisplay;phoenixMenuRoot=new yC("Phoenix Menu","phoenix-menu");eventDataImportOptions=[qu.JSON,qu.JIVEXML,qu.ZIP];loaded=!1;loadingProgress=0;constructor(t){this.eventDisplay=t}ngOnInit(){let t;t={eventFile:"assets/files/JiveXML/JiveXML_336567_2327102923.xml",eventType:"jivexml"};const i={eventDataLoader:new J_,presetViews:[new Xh("Left View",[0,0,-12e3],[0,0,0],"left-cube"),new Xh("Center View",[-500,12e3,0],[0,0,0],"top-cube"),new Xh("Right View",[0,0,12e3],[0,0,0],"right-cube")],defaultView:[4e3,0,4e3,0,0,0],phoenixMenuRoot:this.phoenixMenuRoot,defaultEventFile:t};this.eventDisplay.init(i),this.eventDisplay.loadGLTFGeometry("assets/geometry/ATLAS/Barrel-Toroid.gltf","Barrel Toroid","Magnets",1e3),this.eventDisplay.loadGLTFGeometry("assets/geometry/ATLAS/End-Cap-Toroid.gltf","Endcap","Magnets",1e3),this.eventDisplay.loadGLTFGeometry("assets/geometry/ATLAS/Feet.gltf","Feet","Magnets",1e3),this.eventDisplay.loadGLTFGeometry("assets/geometry/ATLAS/Warm-Structure.gltf","Warm structure","Magnets",1e3),this.eventDisplay.loadGLTFGeometry("assets/geometry/ATLAS/Lar-Barrel.gltf","LAr Barrel","Calorimeters",1e3),this.eventDisplay.loadGLTFGeometry("assets/geometry/ATLAS/Lar-EMEC.gltf","LAr EC1","Calorimeters",1e3),this.eventDisplay.loadGLTFGeometry("assets/geometry/ATLAS/Lar-FCAL.gltf","LAr FCAL","Calorimeters",1e3),this.eventDisplay.loadGLTFGeometry("assets/geometry/ATLAS/Lar-HEC.gltf","LAr HEC","Calorimeters",1e3),this.eventDisplay.loadGLTFGeometry("assets/geometry/ATLAS/Tile-Barrel.gltf","Tile Cal","Calorimeters",1e3),this.eventDisplay.loadGLTFGeometry("assets/geometry/ATLAS/Tile-End-Cap.gltf","Tile Cal EC","Calorimeters",1e3),this.eventDisplay.loadGLTFGeometry("assets/geometry/ATLAS/Beam.gltf","Beam","Inner Detector",1e3),this.eventDisplay.loadGLTFGeometry("assets/geometry/ATLAS/Pixel.gltf","Pixel","Inner Detector",1e3,!0),this.eventDisplay.loadGLTFGeometry("assets/geometry/ATLAS/SCT-BAR.gltf","SCT","Inner Detector",1e3),this.eventDisplay.loadGLTFGeometry("assets/geometry/ATLAS/SCT-EC.gltf","SCT Endcaps","Inner Detector",1e3),this.eventDisplay.loadGLTFGeometry("assets/geometry/ATLAS/TRT-BAR.gltf","TRT","Inner Detector",1e3),this.eventDisplay.loadGLTFGeometry("assets/geometry/ATLAS/TRT-EC.gltf","TRT Endcaps","Inner Detector",1e3),this.eventDisplay.loadGLTFGeometry("assets/geometry/ATLAS/Extra-Wheel.gltf","Extra wheel","Muon Spectrometer > Endcaps",1e3),this.eventDisplay.loadGLTFGeometry("assets/geometry/ATLAS/Big-Wheel.gltf","Big wheel","Muon Spectrometer > Endcaps",1e3),this.eventDisplay.loadGLTFGeometry("assets/geometry/ATLAS/Outer-Wheel.gltf","Outer Wheel","Muon Spectrometer > Endcaps",1e3),this.eventDisplay.loadGLTFGeometry("assets/geometry/ATLAS/Muon-Barrel-Inner.gltf","Muon Barrel Inner","Muon Spectrometer > Barrel",1e3),this.eventDisplay.loadGLTFGeometry("assets/geometry/ATLAS/Muon-Barrel-Middle.gltf","Muon Barrel Middle","Muon Spectrometer > Barrel",1e3),this.eventDisplay.loadGLTFGeometry("assets/geometry/ATLAS/Muon-Barrel-Outer.gltf","Muon Barrel Outer","Muon Spectrometer > Barrel",1e3),this.eventDisplay.loadGLTFGeometry("assets/geometry/ATLAS/Muon-Big-Wheel-MDT.gltf","Big Wheel MDT ","Muon Spectrometer > Endcaps",1e3),this.eventDisplay.loadGLTFGeometry("assets/geometry/ATLAS/Small-Wheel-Chambers.gltf","Small Wheel","Muon Spectrometer > Endcaps",1e3),this.eventDisplay.loadGLTFGeometry("assets/geometry/ATLAS/Small-Wheel-Hub.gltf","Small Wheel Hub","Muon Spectrometer > Endcaps",1e3),this.eventDisplay.loadGLTFGeometry("assets/geometry/ATLAS/Small-Wheel-NJD.gltf","Small Wheel Feet","Muon Spectrometer > Endcaps",1e3),this.eventDisplay.loadGLTFGeometry("assets/geometry/ATLAS/TGC2.gltf","TGC2","Muon Spectrometer > Endcaps",1e3),this.eventDisplay.loadGLTFGeometry("assets/geometry/ATLAS/TGC3.gltf","TGC3","Muon Spectrometer > Endcaps",1e3),this.eventDisplay.getLoadingManager().addProgressListener(r=>this.loadingProgress=r),this.eventDisplay.getLoadingManager().addLoadListenerWithCheck(()=>{console.log("Loading default configuration."),this.loaded=!0,this.eventDisplay.getURLOptionsManager().getURLOptions().get("config")||(new fA).loadStateFromJSON(Yge)})}static \u0275fac=function(i){return new(i||n)(Lt(Al))};static \u0275cmp=rs({type:n,selectors:[["app-atlas"]],decls:7,vars:4,consts:[[3,"loaded","progress"],[3,"eventDataImportOptions"],["logo","assets/images/atlas.svg","url","https://home.cern/science/experiments/atlas","tagline","ATLAS Experiment at CERN"],[3,"rootNode"],["id","eventDisplay"]],template:function(i,r){1&i&&Vr(0,"app-loader",0)(1,"app-nav")(2,"app-ui-menu",1)(3,"app-embed-menu")(4,"app-experiment-info",2)(5,"app-phoenix-menu",3)(6,"div",4),2&i&&(Qn("loaded",r.loaded)("progress",r.loadingProgress),jn(2),Qn("eventDataImportOptions",r.eventDataImportOptions),jn(3),Qn("rootNode",r.phoenixMenuRoot))},dependencies:[ax,KE,lB,ZE,lx,RC]})}return n})(),B$=(()=>{class n{lastEventsURL="";lastEventsOptions=!1;unzip(t){return(0,Te.A)(function*(){const i=new(iO());yield i.loadAsync(t);let r="",s=!1;for(const o in i.files){if(s){console.error("Zip archive contains more than one file. Ignoring all but first");break}r=yield i.file(o).async("string"),s=!0}return r})()}makeRequest(t,i,r,s={}){return fetch(t,s).then(o=>o[i]()).then(o=>{"blob"===i?o.arrayBuffer().then(l=>this.unzip(l)).then(l=>r(l)):r(o)}).catch(o=>(console.error(o),!0)),!1}loadJSONEvent(t,i){i.parsePhoenixEvents(JSON.parse(t))}loadJiveXMLEvent(t,i){const r=new CE;r.process(t);const s=r.getEventData();i.buildEventDataFromJSON(s)}loadEvent(t,i,r={}){this.lastEventsURL=t,this.lastEventsOptions=r;const s="zip"===t.split(".").pop(),o=s?t.substring(0,t.length-4):t;return this.makeRequest(t,s?"blob":"text",l=>{switch(o.split(".").pop()){case"xml":this.loadJiveXMLEvent(l,i);break;case"json":this.loadJSONEvent(l,i)}},r)}reloadLastEvents(t){this.lastEventsURL.length>0&&this.loadEvent(this.lastEventsURL,t,this.lastEventsOptions)}static \u0275fac=function(i){return new(i||n)};static \u0275prov=Gi({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();const Ixe=(n,e)=>({"active-icon":n,"reload-icon":e});let P$=(()=>{class n{eventDisplay;fileLoader;interval;tooltip;icon;active=!1;reloading=!1;intervalId;events;constructor(t,i){this.eventDisplay=t,this.fileLoader=i}ngOnInit(){this.eventDisplay.listenToLoadedEventsChange(t=>{this.events=t,this.active&&(clearInterval(this.intervalId),this.startCycleInterval())})}toggleCycle(){this.reloading=this.active&&!this.reloading,this.active=!this.active||this.reloading,console.log(this.active,this.reloading),clearInterval(this.intervalId),this.active&&this.startCycleInterval()}startCycleInterval(t=0){let i=t;this.eventDisplay.loadEvent(this.events[i]),i=i+1>=this.events.length?-1:i+1,this.intervalId=setInterval(()=>{-1==i&&(this.reloading&&this.fileLoader.reloadLastEvents(this.eventDisplay),i=0),this.eventDisplay.loadEvent(this.events[i]),i=i+1>=this.events.length?-1:i+1},this.interval)}static \u0275fac=function(i){return new(i||n)(Lt(Al),Lt(B$))};static \u0275cmp=rs({type:n,selectors:[["app-cycle-events"]],inputs:{interval:"interval",tooltip:"tooltip",icon:"icon"},decls:3,vars:4,consts:[["matTooltip","Cycle (off/on/on+reload)","matTooltipPosition","above","matTooltipTouchGestures","off",1,"cycle-events",3,"click"],[1,"cycle-events-icon",3,"ngClass"],["href","assets/icons/cycle-events.svg#cycle-events"]],template:function(i,r){1&i&&(Gt(0,"button",0),Ai("click",function(){return r.toggleCycle()}),Fl(),Gt(1,"svg",1),Vr(2,"use",2),dn()()),2&i&&(jn(),Qn("ngClass",function tR(n,e,t,i,r){return H6(Zi(),Yc(),n,e,t,i,r)}(1,Ixe,r.active,r.reloading)))},dependencies:[om,a1],styles:["[_nghost-%COMP%]{display:flex;margin:0 .6rem}[_nghost-%COMP%] .cycle-events[_ngcontent-%COMP%]{display:flex;background:unset;border:none;height:2.5rem;width:2.5rem;min-height:2.5rem;min-width:2.5rem;padding:.65rem;cursor:pointer;align-self:center;transition:all .4s}[_nghost-%COMP%] .cycle-events-icon[_ngcontent-%COMP%]{width:100%;height:100%}[_nghost-%COMP%] .cycle-events-icon.active-icon[_ngcontent-%COMP%]{--phoenix-options-icon-path: #00bcd4}[_nghost-%COMP%] .cycle-events-icon.reload-icon[_ngcontent-%COMP%]{--phoenix-options-icon-path: #77dd77}[_nghost-%COMP%] .cycle-events[_ngcontent-%COMP%]:hover{background-color:var(--phoenix-options-icon-bg);border-radius:40%;transition:all .4s}[_nghost-%COMP%] .cycle-events.disabled[_ngcontent-%COMP%]{cursor:not-allowed;opacity:.4}"]})}return n})(),Bxe=(()=>{class n{eventDisplay;open=!1;constructor(t){this.eventDisplay=t}moveVP(t,i){for(const r of["Modules","Support","RFFoil","DeliveryPipes"])t.getObjectByName("VP > Left > "+r).position.setComponent(0,i),t.getObjectByName("VP > Right > "+r).position.setComponent(0,-i)}toggleVP(){this.open=!this.open,this.moveVP(this.eventDisplay.getThreeManager().getSceneManager(),this.open?30:0)}static \u0275fac=function(i){return new(i||n)(Lt(Al))};static \u0275cmp=rs({type:n,selectors:[["app-vp-toggle"]],decls:1,vars:2,consts:[[3,"click","tooltip","icon"]],template:function(i,r){1&i&&(Gt(0,"app-menu-toggle",0),Ai("click",function(){return r.toggleVP()}),dn()),2&i&&Qn("tooltip",(r.open?"Close":"Open")+"VP")("icon",r.open?"closevp":"openvp")},dependencies:[qc]})}return n})(),Pxe=(()=>{class n{eventDisplay;events;phoenixMenuRoot=new yC("Phoenix Menu","phoenix-menu");loaded=!1;loadingProgress=0;eventDataImportOptions=[qu.JSON,qu.ZIP];constructor(t){this.eventDisplay=t}ngOnInit(){const t={eventDataLoader:new J_,presetViews:[new Xh("Global View",[-8e3,6e3,0],[0,0,8e3],"perspective",mC.On,90,90),new Xh("Calo View",[-8e3,6e3,16e3],[0,0,12e3],"perspective",mC.On,90,90),new Xh("Side View",[-12e3,0,12e3],[0,0,12e3],"right-cube"),new Xh("Vertex Locator View",[-500,1e3,0],[0,0,0],"top-cube"),new Xh("Front View",[0,0,-6e3],[0,0,0],"left-cube"),new Xh("Top View",[0,16e3,12e3],[0,0,12e3],"top-cube")],defaultView:[-8e3,6e3,0,0,0,8e3],phoenixMenuRoot:this.phoenixMenuRoot,defaultEventFile:{eventFile:"assets/files/lhcb/LHCbEventData.json",eventType:"json"}};this.eventDisplay.init(t);try{this.eventDisplay.loadGLTFGeometry("assets/geometry/LHCb/LHCb.glb",void 0,void 0,1,!0)}catch(i){console.log("Error:",i)}this.eventDisplay.getLoadingManager().addProgressListener(i=>this.loadingProgress=i),this.eventDisplay.getLoadingManager().addLoadListenerWithCheck(()=>this.loaded=!0)}static \u0275fac=function(i){return new(i||n)(Lt(Al))};static \u0275cmp=rs({type:n,selectors:[["app-lhcb"]],decls:28,vars:5,consts:[[3,"loaded","progress"],[3,"interval"],[3,"eventDataImportOptions"],["logo","assets/images/lhcb.svg","url","https://home.cern/science/experiments/lhcb","tagline","LHCb Experiment at CERN"],[3,"rootNode"],["id","eventDisplay"]],template:function(i,r){1&i&&(Vr(0,"app-loader",0)(1,"app-nav"),Gt(2,"app-ui-menu-wrapper"),Vr(3,"app-event-selector")(4,"app-cycle-events",1)(5,"app-zoom-controls")(6,"app-view-options")(7,"app-auto-rotate")(8,"app-dark-theme")(9,"app-object-clipping")(10,"app-main-view-toggle")(11,"app-overlay-view")(12,"app-object-selection")(13,"app-info-panel")(14,"app-animate-event")(15,"app-collections-info")(16,"app-performance-toggle")(17,"app-vr-toggle")(18,"app-ar-toggle")(19,"app-ss-mode")(20,"app-make-picture")(21,"app-io-options",2)(22,"app-share-link")(23,"app-vp-toggle"),dn(),Vr(24,"app-embed-menu")(25,"app-experiment-info",3)(26,"app-phoenix-menu",4)(27,"div",5)),2&i&&(Qn("loaded",r.loaded)("progress",r.loadingProgress),jn(4),Qn("interval",5e3),jn(17),Qn("eventDataImportOptions",r.eventDataImportOptions),jn(5),Qn("rootNode",r.phoenixMenuRoot))},dependencies:[ax,kO,hL,gL,_L,yL,vL,xL,rB,sB,wL,lB,CL,oB,ML,ZE,aB,SL,EL,TL,BL,PL,lx,RL,RC,P$,Bxe]})}return n})(),Rxe=(()=>{class n{eventDisplay;phoenixMenuRoot=new yC("Phoenix Menu","phoenix-menu");loaded=!1;loadingProgress=0;eventDataImportOptions=[qu.JSON,qu.IG];constructor(t){this.eventDisplay=t}ngOnInit(){const t=new gQ,i={eventDataLoader:t,presetViews:[new Xh("Left View",[0,0,-12e3],[0,0,0],"left-cube"),new Xh("Center View",[-500,12e3,0],[0,0,0],"top-cube"),new Xh("Right View",[0,0,12e3],[0,0,0],"right-cube")],defaultView:[4e3,0,4e3,0,0,0],phoenixMenuRoot:this.phoenixMenuRoot};this.eventDisplay.init(i),this.eventDisplay.loadRootJSONGeometry("https://root.cern/js/files/geom/cms.json.gz","CMS Detector",void 0,10,!0),t.readIgArchive("assets/files/cms/Hto4l_120-130GeV.ig",r=>{const s=t.getAllEventsData(r);this.eventDisplay.parsePhoenixEvents(s)}),this.eventDisplay.getLoadingManager().addProgressListener(r=>this.loadingProgress=r),this.eventDisplay.getLoadingManager().addLoadListenerWithCheck(()=>this.loaded=!0)}static \u0275fac=function(i){return new(i||n)(Lt(Al))};static \u0275cmp=rs({type:n,selectors:[["app-cms"]],decls:7,vars:4,consts:[[3,"loaded","progress"],[3,"eventDataImportOptions"],["logo","assets/images/cms.svg","url","https://home.cern/science/experiments/cms","tagline","CMS Experiment at LHC, CERN"],[3,"rootNode"],["id","eventDisplay"]],template:function(i,r){1&i&&Vr(0,"app-loader",0)(1,"app-nav")(2,"app-ui-menu",1)(3,"app-embed-menu")(4,"app-experiment-info",2)(5,"app-phoenix-menu",3)(6,"div",4),2&i&&(Qn("loaded",r.loaded)("progress",r.loadingProgress),jn(2),Qn("eventDataImportOptions",r.eventDataImportOptions),jn(3),Qn("rootNode",r.phoenixMenuRoot))},dependencies:[ax,KE,lB,ZE,lx,RC]})}return n})(),kxe=(()=>{class n{eventDisplay;http;hitsFile="assets/files/TrackML/event000001000-hits.csv";particlesFile="assets/files/TrackML/event000001000-particles.csv";truthFile="assets/files/TrackML/event000001000-truth.csv";filesProcessed=0;numFiles=3;trackMLLoader;httpOptions={headers:new lm({}),responseType:"text"};phoenixMenuRoot=new yC("Phoenix Menu","phoenix-menu");loaded=!1;loadingProgress=0;constructor(t,i){this.eventDisplay=t,this.http=i}ngOnInit(){this.trackMLLoader=new Vge;const t={eventDataLoader:this.trackMLLoader,presetViews:[new Xh("Right View",[0,0,6e3],[0,0,0],"right-cube"),new Xh("Center View",[-500,1e3,0],[0,0,0],"top-cube"),new Xh("Left View",[0,0,-6e3],[0,0,0],"left-cube")],defaultView:[4e3,0,4e3,0,0,0],phoenixMenuRoot:this.phoenixMenuRoot};this.eventDisplay.init(t),this.eventDisplay.loadOBJGeometry("assets/geometry/TrackML/strip_long_simplified.obj","Long Strip",15311419,void 0,!0),this.eventDisplay.loadOBJGeometry("assets/geometry/TrackML/pixel_simplified.obj","Pixel",14854632,void 0,!0),this.eventDisplay.loadOBJGeometry("assets/geometry/TrackML/strip_short_simplified.obj","Short Strip",3579797,void 0,!0),this.eventDisplay.loadOBJGeometry("assets/geometry/TrackML/beampipe_simplified.obj","Beampipe",8355711,void 0,!0),this.eventDisplay.loadOBJGeometry("assets/geometry/TrackML/pixel_support_tube_simplified.obj","PST",8107007,void 0,!0),this.loadTrackMLData(),this.eventDisplay.getLoadingManager().addProgressListener(i=>this.loadingProgress=i),this.eventDisplay.getLoadingManager().addLoadListenerWithCheck(()=>this.loaded=!0)}loadTrackMLData(){this.http.get(this.hitsFile,this.httpOptions).subscribe(t=>{this.loadHits(t),this.http.get(this.particlesFile,this.httpOptions).subscribe(i=>{this.loadParticles(i),this.http.get(this.truthFile,this.httpOptions).subscribe(r=>this.loadTruth(r))})})}loadHits(t){console.log("loading hits"),this.trackMLLoader.processHits(t),this.filesProcessed++,this.finishConversion()}loadParticles(t){console.log("loading particles"),this.trackMLLoader.processParticles(t),this.filesProcessed++,this.finishConversion()}loadTruth(t){console.log("loading truth"),this.trackMLLoader.processTruth(t),this.filesProcessed++,this.finishConversion()}finishConversion(){if(this.filesProcessed===this.numFiles){const t=this.trackMLLoader.getEventData("TrackMLEvent");this.eventDisplay.buildEventDataFromJSON(t)}}static \u0275fac=function(i){return new(i||n)(Lt(Al),Lt(vS))};static \u0275cmp=rs({type:n,selectors:[["app-trackml"]],decls:6,vars:3,consts:[[3,"loaded","progress"],[3,"rootNode"],["id","eventDisplay"]],template:function(i,r){1&i&&Vr(0,"app-loader",0)(1,"app-nav")(2,"app-ui-menu")(3,"app-embed-menu")(4,"app-phoenix-menu",1)(5,"div",2),2&i&&(Qn("loaded",r.loaded)("progress",r.loadingProgress),jn(4),Qn("rootNode",r.phoenixMenuRoot))},dependencies:[ax,KE,ZE,lx,RC]})}return n})(),jxe=(()=>{class n{static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275mod=vo({type:n});static#n=this.\u0275inj=ra({imports:[Qd,Qd]})}return n})(),Jxe=(()=>{class n{static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275mod=vo({type:n});static#n=this.\u0275inj=ra({})}return n})(),Fwe=(()=>{class n{static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275mod=vo({type:n});static#n=this.\u0275inj=ra({imports:[Qd,Qd]})}return n})(),e2e=(()=>{class n{injector;constructor(t){this.injector=t}handleError(t){console.error("ERROR IN PHOENIX APP","\n",t),this.injector.get(sO).setError(t)}static \u0275fac=function(i){return new(i||n)(xi(ml))};static \u0275prov=Gi({token:n,factory:n.\u0275fac})}return n})(),t2e=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=vo({type:n});static \u0275inj=ra({providers:[Al,sO,{provide:xl,useClass:e2e}],imports:[uS,qz,Jye,Gve,ebe,x1e,NE,wye,h1e,Ube,xbe,ixe,Rye,jxe,Jxe,Fwe]})}return n})(),n2e=(()=>{class n{eventDisplay;http;loaded=!1;loadingProgress=0;constructor(t,i){this.eventDisplay=t,this.http=i}ngOnInit(){const t={presetViews:[new Xh("Left View",[0,0,-12e3],[0,0,0],"left-cube"),new Xh("Center View",[-500,12e3,0],[0,0,0],"top-cube"),new Xh("Right View",[0,0,12e3],[0,0,0],"right-cube")]};this.eventDisplay.init(t),this.eventDisplay.getLoadingManager().addProgressListener(i=>this.loadingProgress=i),this.eventDisplay.getLoadingManager().addLoadListenerWithCheck(()=>this.loaded=!0)}static \u0275fac=function(i){return new(i||n)(Lt(Al),Lt(vS))};static \u0275cmp=rs({type:n,selectors:[["app-playground"]],decls:5,vars:2,consts:[[3,"loaded","progress"],["id","eventDisplay"]],template:function(i,r){1&i&&Vr(0,"app-loader",0)(1,"app-nav")(2,"app-ui-menu")(3,"app-embed-menu")(4,"div",1),2&i&&Qn("loaded",r.loaded)("progress",r.loadingProgress)},dependencies:[ax,KE,lx,RC]})}return n})();function Z$(n){return new Ln(3e3,!1)}function ov(n){switch(n.length){case 0:return new kE;case 1:return n[0];default:return new oW(n)}}function J$(n,e,t=new Map,i=new Map){const r=[],s=[];let o=-1,l=null;if(e.forEach(d=>{const h=d.get("offset"),f=h==o,A=f&&l||new Map;d.forEach((S,R)=>{let G=R,re=S;if("offset"!==R)switch(G=n.normalizePropertyName(G,r),re){case"!":re=t.get(R);break;case n1:re=i.get(R);break;default:re=n.normalizeStyleValue(R,G,re,r)}A.set(G,re)}),f||s.push(A),l=A,o=h}),r.length)throw function M2e(n){return new Ln(3502,!1)}();return s}function zL(n,e,t,i){switch(e){case"start":n.onStart(()=>i(t&&HL(t,"start",n)));break;case"done":n.onDone(()=>i(t&&HL(t,"done",n)));break;case"destroy":n.onDestroy(()=>i(t&&HL(t,"destroy",n)))}}function HL(n,e,t){const s=VL(n.element,n.triggerName,n.fromState,n.toState,e||n.phaseName,t.totalTime??n.totalTime,!!t.disabled),o=n._data;return null!=o&&(s._data=o),s}function VL(n,e,t,i,r="",s=0,o){return{element:n,triggerName:e,fromState:t,toState:i,phaseName:r,totalTime:s,disabled:!!o}}function ym(n,e,t){let i=n.get(e);return i||n.set(e,i=t),i}function eX(n){const e=n.indexOf(":");return[n.substring(1,e),n.slice(e+1)]}const L2e=typeof document>"u"?null:document.documentElement;function GL(n){const e=n.parentNode||n.host||null;return e===L2e?null:e}let bx=null,tX=!1;function nX(n,e){for(;e;){if(e===n)return!0;e=GL(e)}return!1}function iX(n,e,t){if(t)return Array.from(n.querySelectorAll(e));const i=n.querySelector(e);return i?[i]:[]}let qL=(()=>{class n{validateStyleProperty(t){return function U2e(n){bx||(bx=function z2e(){return typeof document<"u"?document.body:null}()||{},tX=!!bx.style&&"WebkitAppearance"in bx.style);let e=!0;return bx.style&&!function N2e(n){return"ebkit"==n.substring(1,6)}(n)&&(e=n in bx.style,!e&&tX&&(e="Webkit"+n.charAt(0).toUpperCase()+n.slice(1)in bx.style)),e}(t)}matchesElement(t,i){return!1}containsElement(t,i){return nX(t,i)}getParentElement(t){return GL(t)}query(t,i,r){return iX(t,i,r)}computeStyle(t,i,r){return r||""}animate(t,i,r,s,o,l=[],d){return new kE(r,s)}static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac})}return n})();class QL{static#e=this.NOOP=new qL}class WL{}const V2e=1e3,jL="ng-enter",mB="ng-leave",AB="ng-trigger",gB=".ng-trigger",sX="ng-animating",$L=".ng-animating";function l1(n){if("number"==typeof n)return n;const e=n.match(/^(-?[\.\d]+)(m?s)/);return!e||e.length<2?0:XL(parseFloat(e[1]),e[2])}function XL(n,e){return"s"===e?n*V2e:n}function _B(n,e,t){return n.hasOwnProperty("duration")?n:function q2e(n,e,t){let r,s=0,o="";if("string"==typeof n){const l=n.match(/^(-?[\.\d]+)(m?s)(?:\s+(-?[\.\d]+)(m?s))?(?:\s+([-a-z]+(?:\(.+?\))?))?$/i);if(null===l)return e.push(Z$()),{duration:0,delay:0,easing:""};r=XL(parseFloat(l[1]),l[2]);const d=l[3];null!=d&&(s=XL(parseFloat(d),l[4]));const h=l[5];h&&(o=h)}else r=n;if(!t){let l=!1,d=e.length;r<0&&(e.push(function i2e(){return new Ln(3100,!1)}()),l=!0),s<0&&(e.push(function r2e(){return new Ln(3101,!1)}()),l=!0),l&&e.splice(d,0,Z$())}return{duration:r,delay:s,easing:o}}(n,e,t)}function N0(n,e,t){e.forEach((i,r)=>{const s=KL(r);t&&!t.has(r)&&t.set(r,n.style[s]),n.style[s]=i})}function xx(n,e){e.forEach((t,i)=>{const r=KL(i);n.style[r]=""})}function tT(n){return Array.isArray(n)?1==n.length?n[0]:function v_e(n,e=null){return{type:aa.Sequence,steps:n,options:e}}(n):n}const YL=new RegExp("{{\\s*(.+?)\\s*}}","g");function aX(n){let e=[];if("string"==typeof n){let t;for(;t=YL.exec(n);)e.push(t[1]);YL.lastIndex=0}return e}function nT(n,e,t){const i=`${n}`,r=i.replace(YL,(s,o)=>{let l=e[o];return null==l&&(t.push(function o2e(n){return new Ln(3003,!1)}()),l=""),l.toString()});return r==i?n:r}const j2e=/-+([a-z0-9])/g;function KL(n){return n.replace(j2e,(...e)=>e[1].toUpperCase())}function vm(n,e,t){switch(e.type){case aa.Trigger:return n.visitTrigger(e,t);case aa.State:return n.visitState(e,t);case aa.Transition:return n.visitTransition(e,t);case aa.Sequence:return n.visitSequence(e,t);case aa.Group:return n.visitGroup(e,t);case aa.Animate:return n.visitAnimate(e,t);case aa.Keyframes:return n.visitKeyframes(e,t);case aa.Style:return n.visitStyle(e,t);case aa.Reference:return n.visitReference(e,t);case aa.AnimateChild:return n.visitAnimateChild(e,t);case aa.AnimateRef:return n.visitAnimateRef(e,t);case aa.Query:return n.visitQuery(e,t);case aa.Stagger:return n.visitStagger(e,t);default:throw function a2e(n){return new Ln(3004,!1)}()}}function ZL(n,e){return window.getComputedStyle(n)[e]}const Y2e=new Set(["width","height","minWidth","minHeight","maxWidth","maxHeight","left","top","bottom","right","fontSize","outlineWidth","outlineOffset","paddingTop","paddingLeft","paddingBottom","paddingRight","marginTop","marginLeft","marginBottom","marginRight","borderRadius","borderWidth","borderTopWidth","borderLeftWidth","borderRightWidth","borderBottomWidth","textIndent","perspective"]);class lX extends WL{normalizePropertyName(e,t){return KL(e)}normalizeStyleValue(e,t,i,r){let s="";const o=i.toString().trim();if(Y2e.has(t)&&0!==i&&"0"!==i)if("number"==typeof i)s="px";else{const l=i.match(/^[+-]?[\d\.]+([a-z]*)$/);l&&0==l[1].length&&r.push(function l2e(n,e){return new Ln(3005,!1)}())}return o+s}}const yB="*";const vB=new Set(["true","1"]),bB=new Set(["false","0"]);function cX(n,e){const t=vB.has(n)||bB.has(n),i=vB.has(e)||bB.has(e);return(r,s)=>{let o=n==yB||n==r,l=e==yB||e==s;return!o&&t&&"boolean"==typeof r&&(o=r?vB.has(n):bB.has(n)),!l&&i&&"boolean"==typeof s&&(l=s?vB.has(e):bB.has(e)),o&&l}}const eCe=new RegExp("s*:selfs*,?","g");function JL(n,e,t,i){return new tCe(n).build(e,t,i)}class tCe{constructor(e){this._driver=e}build(e,t,i){const r=new rCe(t);return this._resetContextStyleTimingState(r),vm(this,tT(e),r)}_resetContextStyleTimingState(e){e.currentQuerySelector="",e.collectedStyles=new Map,e.collectedStyles.set("",new Map),e.currentTime=0}visitTrigger(e,t){let i=t.queryCount=0,r=t.depCount=0;const s=[],o=[];return"@"==e.name.charAt(0)&&t.errors.push(function c2e(){return new Ln(3006,!1)}()),e.definitions.forEach(l=>{if(this._resetContextStyleTimingState(t),l.type==aa.State){const d=l,h=d.name;h.toString().split(/\s*,\s*/).forEach(f=>{d.name=f,s.push(this.visitState(d,t))}),d.name=h}else if(l.type==aa.Transition){const d=this.visitTransition(l,t);i+=d.queryCount,r+=d.depCount,o.push(d)}else t.errors.push(function d2e(){return new Ln(3007,!1)}())}),{type:aa.Trigger,name:e.name,states:s,transitions:o,queryCount:i,depCount:r,options:null}}visitState(e,t){const i=this.visitStyle(e.styles,t),r=e.options&&e.options.params||null;if(i.containsDynamicStyles){const s=new Set,o=r||{};i.styles.forEach(l=>{l instanceof Map&&l.forEach(d=>{aX(d).forEach(h=>{o.hasOwnProperty(h)||s.add(h)})})}),s.size&&t.errors.push(function h2e(n,e){return new Ln(3008,!1)}(0,s.values()))}return{type:aa.State,name:e.name,style:i,options:r?{params:r}:null}}visitTransition(e,t){t.queryCount=0,t.depCount=0;const i=vm(this,tT(e.animation),t),r=function K2e(n,e){const t=[];return"string"==typeof n?n.split(/\s*,\s*/).forEach(i=>function Z2e(n,e,t){if(":"==n[0]){const d=function J2e(n,e){switch(n){case":enter":return"void => *";case":leave":return"* => void";case":increment":return(t,i)=>parseFloat(i)>parseFloat(t);case":decrement":return(t,i)=>parseFloat(i) *"}}(n,t);if("function"==typeof d)return void e.push(d);n=d}const i=n.match(/^(\*|[-\w]+)\s*()\s*(\*|[-\w]+)$/);if(null==i||i.length<4)return t.push(function v2e(n){return new Ln(3015,!1)}()),e;const r=i[1],s=i[2],o=i[3];e.push(cX(r,o)),"<"==s[0]&&(r!=yB||o!=yB)&&e.push(cX(o,r))}(i,t,e)):t.push(n),t}(e.expr,t.errors);return{type:aa.Transition,matchers:r,animation:i,queryCount:t.queryCount,depCount:t.depCount,options:wx(e.options)}}visitSequence(e,t){return{type:aa.Sequence,steps:e.steps.map(i=>vm(this,i,t)),options:wx(e.options)}}visitGroup(e,t){const i=t.currentTime;let r=0;const s=e.steps.map(o=>{t.currentTime=i;const l=vm(this,o,t);return r=Math.max(r,t.currentTime),l});return t.currentTime=r,{type:aa.Group,steps:s,options:wx(e.options)}}visitAnimate(e,t){const i=function oCe(n,e){if(n.hasOwnProperty("duration"))return n;if("number"==typeof n)return eN(_B(n,e).duration,0,"");const t=n;if(t.split(/\s+/).some(s=>"{"==s.charAt(0)&&"{"==s.charAt(1))){const s=eN(0,0,"");return s.dynamic=!0,s.strValue=t,s}const r=_B(t,e);return eN(r.duration,r.delay,r.easing)}(e.timings,t.errors);t.currentAnimateTimings=i;let r,s=e.styles?e.styles:Yh({});if(s.type==aa.Keyframes)r=this.visitKeyframes(s,t);else{let o=e.styles,l=!1;if(!o){l=!0;const h={};i.easing&&(h.easing=i.easing),o=Yh(h)}t.currentTime+=i.duration+i.delay;const d=this.visitStyle(o,t);d.isEmptyStep=l,r=d}return t.currentAnimateTimings=null,{type:aa.Animate,timings:i,style:r,options:null}}visitStyle(e,t){const i=this._makeStyleAst(e,t);return this._validateStyleAst(i,t),i}_makeStyleAst(e,t){const i=[],r=Array.isArray(e.styles)?e.styles:[e.styles];for(let l of r)"string"==typeof l?l===n1?i.push(l):t.errors.push(new Ln(3002,!1)):i.push(new Map(Object.entries(l)));let s=!1,o=null;return i.forEach(l=>{if(l instanceof Map&&(l.has("easing")&&(o=l.get("easing"),l.delete("easing")),!s))for(let d of l.values())if(d.toString().indexOf("{{")>=0){s=!0;break}}),{type:aa.Style,styles:i,easing:o,offset:e.offset,containsDynamicStyles:s,options:null}}_validateStyleAst(e,t){const i=t.currentAnimateTimings;let r=t.currentTime,s=t.currentTime;i&&s>0&&(s-=i.duration+i.delay),e.styles.forEach(o=>{"string"!=typeof o&&o.forEach((l,d)=>{const h=t.collectedStyles.get(t.currentQuerySelector),f=h.get(d);let A=!0;f&&(s!=r&&s>=f.startTime&&r<=f.endTime&&(t.errors.push(function f2e(n,e,t,i,r){return new Ln(3010,!1)}()),A=!1),s=f.startTime),A&&h.set(d,{startTime:s,endTime:r}),t.options&&function W2e(n,e,t){const i=e.params||{},r=aX(n);r.length&&r.forEach(s=>{i.hasOwnProperty(s)||t.push(function s2e(n){return new Ln(3001,!1)}())})}(l,t.options,t.errors)})})}visitKeyframes(e,t){const i={type:aa.Keyframes,styles:[],options:null};if(!t.currentAnimateTimings)return t.errors.push(function p2e(){return new Ln(3011,!1)}()),i;let s=0;const o=[];let l=!1,d=!1,h=0;const f=e.steps.map(le=>{const Ee=this._makeStyleAst(le,t);let Ce=null!=Ee.offset?Ee.offset:function sCe(n){if("string"==typeof n)return null;let e=null;if(Array.isArray(n))n.forEach(t=>{if(t instanceof Map&&t.has("offset")){const i=t;e=parseFloat(i.get("offset")),i.delete("offset")}});else if(n instanceof Map&&n.has("offset")){const t=n;e=parseFloat(t.get("offset")),t.delete("offset")}return e}(Ee.styles),We=0;return null!=Ce&&(s++,We=Ee.offset=Ce),d=d||We<0||We>1,l=l||We0&&s{const Ce=S>0?Ee==R?1:S*Ee:o[Ee],We=Ce*se;t.currentTime=G+re.delay+We,re.duration=We,this._validateStyleAst(le,t),le.offset=Ce,i.styles.push(le)}),i}visitReference(e,t){return{type:aa.Reference,animation:vm(this,tT(e.animation),t),options:wx(e.options)}}visitAnimateChild(e,t){return t.depCount++,{type:aa.AnimateChild,options:wx(e.options)}}visitAnimateRef(e,t){return{type:aa.AnimateRef,animation:this.visitReference(e.animation,t),options:wx(e.options)}}visitQuery(e,t){const i=t.currentQuerySelector,r=e.options||{};t.queryCount++,t.currentQuery=e;const[s,o]=function nCe(n){const e=!!n.split(/\s*,\s*/).find(t=>":self"==t);return e&&(n=n.replace(eCe,"")),n=n.replace(/@\*/g,gB).replace(/@\w+/g,t=>gB+"-"+t.slice(1)).replace(/:animating/g,$L),[n,e]}(e.selector);t.currentQuerySelector=i.length?i+" "+s:s,ym(t.collectedStyles,t.currentQuerySelector,new Map);const l=vm(this,tT(e.animation),t);return t.currentQuery=null,t.currentQuerySelector=i,{type:aa.Query,selector:s,limit:r.limit||0,optional:!!r.optional,includeSelf:o,animation:l,originalSelector:e.selector,options:wx(e.options)}}visitStagger(e,t){t.currentQuery||t.errors.push(function _2e(){return new Ln(3013,!1)}());const i="full"===e.timings?{duration:0,delay:0,easing:"full"}:_B(e.timings,t.errors,!0);return{type:aa.Stagger,animation:vm(this,tT(e.animation),t),timings:i,options:null}}}class rCe{constructor(e){this.errors=e,this.queryCount=0,this.depCount=0,this.currentTransition=null,this.currentQuery=null,this.currentQuerySelector=null,this.currentAnimateTimings=null,this.currentTime=0,this.collectedStyles=new Map,this.options=null,this.unsupportedCSSPropertiesFound=new Set}}function wx(n){return n?(n={...n}).params&&(n.params=function iCe(n){return n?{...n}:null}(n.params)):n={},n}function eN(n,e,t){return{duration:n,delay:e,easing:t}}function tN(n,e,t,i,r,s,o=null,l=!1){return{type:1,element:n,keyframes:e,preStyleProps:t,postStyleProps:i,duration:r,delay:s,totalTime:r+s,easing:o,subTimeline:l}}class xB{constructor(){this._map=new Map}get(e){return this._map.get(e)||[]}append(e,t){let i=this._map.get(e);i||this._map.set(e,i=[]),i.push(...t)}has(e){return this._map.has(e)}clear(){this._map.clear()}}const cCe=new RegExp(":enter","g"),hCe=new RegExp(":leave","g");function nN(n,e,t,i,r,s=new Map,o=new Map,l,d,h=[]){return(new uCe).buildKeyframes(n,e,t,i,r,s,o,l,d,h)}class uCe{buildKeyframes(e,t,i,r,s,o,l,d,h,f=[]){h=h||new xB;const A=new iN(e,t,h,r,s,f,[]);A.options=d;const S=d.delay?l1(d.delay):0;A.currentTimeline.delayNextStep(S),A.currentTimeline.setStyles([o],null,A.errors,d),vm(this,i,A);const R=A.timelines.filter(G=>G.containsAnimation());if(R.length&&l.size){let G;for(let re=R.length-1;re>=0;re--){const se=R[re];if(se.element===t){G=se;break}}G&&!G.allowOnlyTimelineStyles()&&G.setStyles([l],null,A.errors,d)}return R.length?R.map(G=>G.buildKeyframes()):[tN(t,[],[],[],0,S,"",!1)]}visitTrigger(e,t){}visitState(e,t){}visitTransition(e,t){}visitAnimateChild(e,t){const i=t.subInstructions.get(t.element);if(i){const r=t.createSubContext(e.options),s=t.currentTimeline.currentTime,o=this._visitSubInstructions(i,r,r.options);s!=o&&t.transformIntoNewTimeline(o)}t.previousNode=e}visitAnimateRef(e,t){const i=t.createSubContext(e.options);i.transformIntoNewTimeline(),this._applyAnimationRefDelays([e.options,e.animation.options],t,i),this.visitReference(e.animation,i),t.transformIntoNewTimeline(i.currentTimeline.currentTime),t.previousNode=e}_applyAnimationRefDelays(e,t,i){for(const r of e){const s=r?.delay;if(s){const o="number"==typeof s?s:l1(nT(s,r?.params??{},t.errors));i.delayNextStep(o)}}}_visitSubInstructions(e,t,i){let s=t.currentTimeline.currentTime;const o=null!=i.duration?l1(i.duration):null,l=null!=i.delay?l1(i.delay):null;return 0!==o&&e.forEach(d=>{const h=t.appendInstructionToTimeline(d,o,l);s=Math.max(s,h.duration+h.delay)}),s}visitReference(e,t){t.updateOptions(e.options,!0),vm(this,e.animation,t),t.previousNode=e}visitSequence(e,t){const i=t.subContextCount;let r=t;const s=e.options;if(s&&(s.params||s.delay)&&(r=t.createSubContext(s),r.transformIntoNewTimeline(),null!=s.delay)){r.previousNode.type==aa.Style&&(r.currentTimeline.snapshotCurrentStyles(),r.previousNode=wB);const o=l1(s.delay);r.delayNextStep(o)}e.steps.length&&(e.steps.forEach(o=>vm(this,o,r)),r.currentTimeline.applyStylesToKeyframe(),r.subContextCount>i&&r.transformIntoNewTimeline()),t.previousNode=e}visitGroup(e,t){const i=[];let r=t.currentTimeline.currentTime;const s=e.options&&e.options.delay?l1(e.options.delay):0;e.steps.forEach(o=>{const l=t.createSubContext(e.options);s&&l.delayNextStep(s),vm(this,o,l),r=Math.max(r,l.currentTimeline.currentTime),i.push(l.currentTimeline)}),i.forEach(o=>t.currentTimeline.mergeTimelineCollectedStyles(o)),t.transformIntoNewTimeline(r),t.previousNode=e}_visitTiming(e,t){if(e.dynamic){const i=e.strValue;return _B(t.params?nT(i,t.params,t.errors):i,t.errors)}return{duration:e.duration,delay:e.delay,easing:e.easing}}visitAnimate(e,t){const i=t.currentAnimateTimings=this._visitTiming(e.timings,t),r=t.currentTimeline;i.delay&&(t.incrementTime(i.delay),r.snapshotCurrentStyles());const s=e.style;s.type==aa.Keyframes?this.visitKeyframes(s,t):(t.incrementTime(i.duration),this.visitStyle(s,t),r.applyStylesToKeyframe()),t.currentAnimateTimings=null,t.previousNode=e}visitStyle(e,t){const i=t.currentTimeline,r=t.currentAnimateTimings;!r&&i.hasCurrentStyleProperties()&&i.forwardFrame();const s=r&&r.easing||e.easing;e.isEmptyStep?i.applyEmptyStep(s):i.setStyles(e.styles,s,t.errors,t.options),t.previousNode=e}visitKeyframes(e,t){const i=t.currentAnimateTimings,r=t.currentTimeline.duration,s=i.duration,l=t.createSubContext().currentTimeline;l.easing=i.easing,e.styles.forEach(d=>{l.forwardTime((d.offset||0)*s),l.setStyles(d.styles,d.easing,t.errors,t.options),l.applyStylesToKeyframe()}),t.currentTimeline.mergeTimelineCollectedStyles(l),t.transformIntoNewTimeline(r+s),t.previousNode=e}visitQuery(e,t){const i=t.currentTimeline.currentTime,r=e.options||{},s=r.delay?l1(r.delay):0;s&&(t.previousNode.type===aa.Style||0==i&&t.currentTimeline.hasCurrentStyleProperties())&&(t.currentTimeline.snapshotCurrentStyles(),t.previousNode=wB);let o=i;const l=t.invokeQuery(e.selector,e.originalSelector,e.limit,e.includeSelf,!!r.optional,t.errors);t.currentQueryTotal=l.length;let d=null;l.forEach((h,f)=>{t.currentQueryIndex=f;const A=t.createSubContext(e.options,h);s&&A.delayNextStep(s),h===t.element&&(d=A.currentTimeline),vm(this,e.animation,A),A.currentTimeline.applyStylesToKeyframe(),o=Math.max(o,A.currentTimeline.currentTime)}),t.currentQueryIndex=0,t.currentQueryTotal=0,t.transformIntoNewTimeline(o),d&&(t.currentTimeline.mergeTimelineCollectedStyles(d),t.currentTimeline.snapshotCurrentStyles()),t.previousNode=e}visitStagger(e,t){const i=t.parentContext,r=t.currentTimeline,s=e.timings,o=Math.abs(s.duration),l=o*(t.currentQueryTotal-1);let d=o*t.currentQueryIndex;switch(s.duration<0?"reverse":s.easing){case"reverse":d=l-d;break;case"full":d=i.currentStaggerTime}const f=t.currentTimeline;d&&f.delayNextStep(d);const A=f.currentTime;vm(this,e.animation,t),t.previousNode=e,i.currentStaggerTime=r.currentTime-A+(r.startTime-i.currentTimeline.startTime)}}const wB={};class iN{constructor(e,t,i,r,s,o,l,d){this._driver=e,this.element=t,this.subInstructions=i,this._enterClassName=r,this._leaveClassName=s,this.errors=o,this.timelines=l,this.parentContext=null,this.currentAnimateTimings=null,this.previousNode=wB,this.subContextCount=0,this.options={},this.currentQueryIndex=0,this.currentQueryTotal=0,this.currentStaggerTime=0,this.currentTimeline=d||new CB(this._driver,t,0),l.push(this.currentTimeline)}get params(){return this.options.params}updateOptions(e,t){if(!e)return;const i=e;let r=this.options;null!=i.duration&&(r.duration=l1(i.duration)),null!=i.delay&&(r.delay=l1(i.delay));const s=i.params;if(s){let o=r.params;o||(o=this.options.params={}),Object.keys(s).forEach(l=>{(!t||!o.hasOwnProperty(l))&&(o[l]=nT(s[l],o,this.errors))})}}_copyOptions(){const e={};if(this.options){const t=this.options.params;if(t){const i=e.params={};Object.keys(t).forEach(r=>{i[r]=t[r]})}}return e}createSubContext(e=null,t,i){const r=t||this.element,s=new iN(this._driver,r,this.subInstructions,this._enterClassName,this._leaveClassName,this.errors,this.timelines,this.currentTimeline.fork(r,i||0));return s.previousNode=this.previousNode,s.currentAnimateTimings=this.currentAnimateTimings,s.options=this._copyOptions(),s.updateOptions(e),s.currentQueryIndex=this.currentQueryIndex,s.currentQueryTotal=this.currentQueryTotal,s.parentContext=this,this.subContextCount++,s}transformIntoNewTimeline(e){return this.previousNode=wB,this.currentTimeline=this.currentTimeline.fork(this.element,e),this.timelines.push(this.currentTimeline),this.currentTimeline}appendInstructionToTimeline(e,t,i){const r={duration:t??e.duration,delay:this.currentTimeline.currentTime+(i??0)+e.delay,easing:""},s=new fCe(this._driver,e.element,e.keyframes,e.preStyleProps,e.postStyleProps,r,e.stretchStartingKeyframe);return this.timelines.push(s),r}incrementTime(e){this.currentTimeline.forwardTime(this.currentTimeline.duration+e)}delayNextStep(e){e>0&&this.currentTimeline.delayNextStep(e)}invokeQuery(e,t,i,r,s,o){let l=[];if(r&&l.push(this.element),e.length>0){e=(e=e.replace(cCe,"."+this._enterClassName)).replace(hCe,"."+this._leaveClassName);let h=this._driver.query(this.element,e,1!=i);0!==i&&(h=i<0?h.slice(h.length+i,h.length):h.slice(0,i)),l.push(...h)}return!s&&0==l.length&&o.push(function y2e(n){return new Ln(3014,!1)}()),l}}class CB{constructor(e,t,i,r){this._driver=e,this.element=t,this.startTime=i,this._elementTimelineStylesLookup=r,this.duration=0,this.easing=null,this._previousKeyframe=new Map,this._currentKeyframe=new Map,this._keyframes=new Map,this._styleSummary=new Map,this._localTimelineStyles=new Map,this._pendingStyles=new Map,this._backFill=new Map,this._currentEmptyStepKeyframe=null,this._elementTimelineStylesLookup||(this._elementTimelineStylesLookup=new Map),this._globalTimelineStyles=this._elementTimelineStylesLookup.get(t),this._globalTimelineStyles||(this._globalTimelineStyles=this._localTimelineStyles,this._elementTimelineStylesLookup.set(t,this._localTimelineStyles)),this._loadKeyframe()}containsAnimation(){switch(this._keyframes.size){case 0:return!1;case 1:return this.hasCurrentStyleProperties();default:return!0}}hasCurrentStyleProperties(){return this._currentKeyframe.size>0}get currentTime(){return this.startTime+this.duration}delayNextStep(e){const t=1===this._keyframes.size&&this._pendingStyles.size;this.duration||t?(this.forwardTime(this.currentTime+e),t&&this.snapshotCurrentStyles()):this.startTime+=e}fork(e,t){return this.applyStylesToKeyframe(),new CB(this._driver,e,t||this.currentTime,this._elementTimelineStylesLookup)}_loadKeyframe(){this._currentKeyframe&&(this._previousKeyframe=this._currentKeyframe),this._currentKeyframe=this._keyframes.get(this.duration),this._currentKeyframe||(this._currentKeyframe=new Map,this._keyframes.set(this.duration,this._currentKeyframe))}forwardFrame(){this.duration+=1,this._loadKeyframe()}forwardTime(e){this.applyStylesToKeyframe(),this.duration=e,this._loadKeyframe()}_updateStyle(e,t){this._localTimelineStyles.set(e,t),this._globalTimelineStyles.set(e,t),this._styleSummary.set(e,{time:this.currentTime,value:t})}allowOnlyTimelineStyles(){return this._currentEmptyStepKeyframe!==this._currentKeyframe}applyEmptyStep(e){e&&this._previousKeyframe.set("easing",e);for(let[t,i]of this._globalTimelineStyles)this._backFill.set(t,i||n1),this._currentKeyframe.set(t,n1);this._currentEmptyStepKeyframe=this._currentKeyframe}setStyles(e,t,i,r){t&&this._previousKeyframe.set("easing",t);const s=r&&r.params||{},o=function pCe(n,e){const t=new Map;let i;return n.forEach(r=>{if("*"===r){i??=e.keys();for(let s of i)t.set(s,n1)}else for(let[s,o]of r)t.set(s,o)}),t}(e,this._globalTimelineStyles);for(let[l,d]of o){const h=nT(d,s,i);this._pendingStyles.set(l,h),this._localTimelineStyles.has(l)||this._backFill.set(l,this._globalTimelineStyles.get(l)??n1),this._updateStyle(l,h)}}applyStylesToKeyframe(){0!=this._pendingStyles.size&&(this._pendingStyles.forEach((e,t)=>{this._currentKeyframe.set(t,e)}),this._pendingStyles.clear(),this._localTimelineStyles.forEach((e,t)=>{this._currentKeyframe.has(t)||this._currentKeyframe.set(t,e)}))}snapshotCurrentStyles(){for(let[e,t]of this._localTimelineStyles)this._pendingStyles.set(e,t),this._updateStyle(e,t)}getFinalKeyframe(){return this._keyframes.get(this.duration)}get properties(){const e=[];for(let t in this._currentKeyframe)e.push(t);return e}mergeTimelineCollectedStyles(e){e._styleSummary.forEach((t,i)=>{const r=this._styleSummary.get(i);(!r||t.time>r.time)&&this._updateStyle(i,t.value)})}buildKeyframes(){this.applyStylesToKeyframe();const e=new Set,t=new Set,i=1===this._keyframes.size&&0===this.duration;let r=[];this._keyframes.forEach((l,d)=>{const h=new Map([...this._backFill,...l]);h.forEach((f,A)=>{"!"===f?e.add(A):f===n1&&t.add(A)}),i||h.set("offset",d/this.duration),r.push(h)});const s=[...e.values()],o=[...t.values()];if(i){const l=r[0],d=new Map(l);l.set("offset",0),d.set("offset",1),r=[l,d]}return tN(this.element,r,s,o,this.duration,this.startTime,this.easing,!1)}}class fCe extends CB{constructor(e,t,i,r,s,o,l=!1){super(e,t,o.delay),this.keyframes=i,this.preStyleProps=r,this.postStyleProps=s,this._stretchStartingKeyframe=l,this.timings={duration:o.duration,delay:o.delay,easing:o.easing}}containsAnimation(){return this.keyframes.length>1}buildKeyframes(){let e=this.keyframes,{delay:t,duration:i,easing:r}=this.timings;if(this._stretchStartingKeyframe&&t){const s=[],o=i+t,l=t/o,d=new Map(e[0]);d.set("offset",0),s.push(d);const h=new Map(e[0]);h.set("offset",uX(l)),s.push(h);const f=e.length-1;for(let A=1;A<=f;A++){let S=new Map(e[A]);const R=S.get("offset");S.set("offset",uX((t+R*i)/o)),s.push(S)}i=o,t=0,r="",e=s}return tN(this.element,e,this.preStyleProps,this.postStyleProps,i,t,r,!0)}}function uX(n,e=3){const t=Math.pow(10,e-1);return Math.round(n*t)/t}function fX(n,e,t,i,r,s,o,l,d,h,f,A,S){return{type:0,element:n,triggerName:e,isRemovalTransition:r,fromState:t,fromStyles:s,toState:i,toStyles:o,timelines:l,queriedElements:d,preStyleProps:h,postStyleProps:f,totalTime:A,errors:S}}const rN={};class pX{constructor(e,t,i){this._triggerName=e,this.ast=t,this._stateStyles=i}match(e,t,i,r){return function mCe(n,e,t,i,r){return n.some(s=>s(e,t,i,r))}(this.ast.matchers,e,t,i,r)}buildStyles(e,t,i){let r=this._stateStyles.get("*");return void 0!==e&&(r=this._stateStyles.get(e?.toString())||r),r?r.buildStyles(t,i):new Map}build(e,t,i,r,s,o,l,d,h,f){const A=[],S=this.ast.options&&this.ast.options.params||rN,G=this.buildStyles(i,l&&l.params||rN,A),re=d&&d.params||rN,se=this.buildStyles(r,re,A),le=new Set,Ee=new Map,Ce=new Map,We="void"===r,Mt={params:mX(re,S),delay:this.ast.options?.delay},yt=f?[]:nN(e,t,this.ast.animation,s,o,G,se,Mt,h,A);let Et=0;return yt.forEach(Xt=>{Et=Math.max(Xt.duration+Xt.delay,Et)}),A.length?fX(t,this._triggerName,i,r,We,G,se,[],[],Ee,Ce,Et,A):(yt.forEach(Xt=>{const Un=Xt.element,wt=ym(Ee,Un,new Set);Xt.preStyleProps.forEach(Vi=>wt.add(Vi));const Kt=ym(Ce,Un,new Set);Xt.postStyleProps.forEach(Vi=>Kt.add(Vi)),Un!==t&&le.add(Un)}),fX(t,this._triggerName,i,r,We,G,se,yt,[...le.values()],Ee,Ce,Et))}}function mX(n,e){const t={...e};return Object.entries(n).forEach(([i,r])=>{null!=r&&(t[i]=r)}),t}class ACe{constructor(e,t,i){this.styles=e,this.defaultParams=t,this.normalizer=i}buildStyles(e,t){const i=new Map,r=mX(e,this.defaultParams);return this.styles.styles.forEach(s=>{"string"!=typeof s&&s.forEach((o,l)=>{o&&(o=nT(o,r,t));const d=this.normalizer.normalizePropertyName(l,t);o=this.normalizer.normalizeStyleValue(l,d,o,t),i.set(l,o)})}),i}}class _Ce{constructor(e,t,i){this.name=e,this.ast=t,this._normalizer=i,this.transitionFactories=[],this.states=new Map,t.states.forEach(r=>{this.states.set(r.name,new ACe(r.style,r.options&&r.options.params||{},i))}),AX(this.states,"true","1"),AX(this.states,"false","0"),t.transitions.forEach(r=>{this.transitionFactories.push(new pX(e,r,this.states))}),this.fallbackTransition=function yCe(n,e,t){return new pX(n,{type:aa.Transition,animation:{type:aa.Sequence,steps:[],options:null},matchers:[(o,l)=>!0],options:null,queryCount:0,depCount:0},e)}(e,this.states)}get containsQueries(){return this.ast.queryCount>0}matchTransition(e,t,i,r){return this.transitionFactories.find(o=>o.match(e,t,i,r))||null}matchStyles(e,t,i){return this.fallbackTransition.buildStyles(e,t,i)}}function AX(n,e,t){n.has(e)?n.has(t)||n.set(t,n.get(e)):n.has(t)&&n.set(e,n.get(t))}const vCe=new xB;class bCe{constructor(e,t,i){this.bodyNode=e,this._driver=t,this._normalizer=i,this._animations=new Map,this._playersById=new Map,this.players=[]}register(e,t){const i=[],s=JL(this._driver,t,i,[]);if(i.length)throw function S2e(n){return new Ln(3503,!1)}();this._animations.set(e,s)}_buildPlayer(e,t,i){const r=e.element,s=J$(this._normalizer,e.keyframes,t,i);return this._driver.animate(r,s,e.duration,e.delay,e.easing,[],!0)}create(e,t,i={}){const r=[],s=this._animations.get(e);let o;const l=new Map;if(s?(o=nN(this._driver,t,s,jL,mB,new Map,new Map,i,vCe,r),o.forEach(f=>{const A=ym(l,f.element,new Map);f.postStyleProps.forEach(S=>A.set(S,null))})):(r.push(function E2e(){return new Ln(3300,!1)}()),o=[]),r.length)throw function T2e(n){return new Ln(3504,!1)}();l.forEach((f,A)=>{f.forEach((S,R)=>{f.set(R,this._driver.computeStyle(A,R,n1))})});const h=ov(o.map(f=>{const A=l.get(f.element);return this._buildPlayer(f,new Map,A)}));return this._playersById.set(e,h),h.onDestroy(()=>this.destroy(e)),this.players.push(h),h}destroy(e){const t=this._getPlayer(e);t.destroy(),this._playersById.delete(e);const i=this.players.indexOf(t);i>=0&&this.players.splice(i,1)}_getPlayer(e){const t=this._playersById.get(e);if(!t)throw function D2e(n){return new Ln(3301,!1)}();return t}listen(e,t,i,r){const s=VL(t,"","","");return zL(this._getPlayer(e),i,s,r),()=>{}}command(e,t,i,r){if("register"==i)return void this.register(e,r[0]);if("create"==i)return void this.create(e,t,r[0]||{});const s=this._getPlayer(e);switch(i){case"play":s.play();break;case"pause":s.pause();break;case"reset":s.reset();break;case"restart":s.restart();break;case"finish":s.finish();break;case"init":s.init();break;case"setPosition":s.setPosition(parseFloat(r[0]));break;case"destroy":this.destroy(e)}}}const gX="ng-animate-queued",sN="ng-animate-disabled",SCe=[],_X={namespaceId:"",setForRemoval:!1,setForMove:!1,hasAnimation:!1,removedBeforeQueried:!1},ECe={namespaceId:"",setForMove:!1,setForRemoval:!1,hasAnimation:!1,removedBeforeQueried:!0},vg="__ng_removed";class oN{get params(){return this.options.params}constructor(e,t=""){this.namespaceId=t;const i=e&&e.hasOwnProperty("value");if(this.value=function BCe(n){return n??null}(i?e.value:e),i){const{value:s,...o}=e;this.options=o}else this.options={};this.options.params||(this.options.params={})}absorbOptions(e){const t=e.params;if(t){const i=this.options.params;Object.keys(t).forEach(r=>{null==i[r]&&(i[r]=t[r])})}}}const iT="void",aN=new oN(iT);class TCe{constructor(e,t,i){this.id=e,this.hostElement=t,this._engine=i,this.players=[],this._triggers=new Map,this._queue=[],this._elementListeners=new Map,this._hostClassName="ng-tns-"+e,AA(t,this._hostClassName)}listen(e,t,i,r){if(!this._triggers.has(t))throw function I2e(n,e){return new Ln(3302,!1)}();if(null==i||0==i.length)throw function B2e(n){return new Ln(3303,!1)}();if(!function PCe(n){return"start"==n||"done"==n}(i))throw function P2e(n,e){return new Ln(3400,!1)}();const s=ym(this._elementListeners,e,[]),o={name:t,phase:i,callback:r};s.push(o);const l=ym(this._engine.statesByElement,e,new Map);return l.has(t)||(AA(e,AB),AA(e,AB+"-"+t),l.set(t,aN)),()=>{this._engine.afterFlush(()=>{const d=s.indexOf(o);d>=0&&s.splice(d,1),this._triggers.has(t)||l.delete(t)})}}register(e,t){return!this._triggers.has(e)&&(this._triggers.set(e,t),!0)}_getTrigger(e){const t=this._triggers.get(e);if(!t)throw function R2e(n){return new Ln(3401,!1)}();return t}trigger(e,t,i,r=!0){const s=this._getTrigger(t),o=new lN(this.id,t,e);let l=this._engine.statesByElement.get(e);l||(AA(e,AB),AA(e,AB+"-"+t),this._engine.statesByElement.set(e,l=new Map));let d=l.get(t);const h=new oN(i,this.id);if(!(i&&i.hasOwnProperty("value"))&&d&&h.absorbOptions(d.options),l.set(t,h),d||(d=aN),h.value!==iT&&d.value===h.value){if(!function FCe(n,e){const t=Object.keys(n),i=Object.keys(e);if(t.length!=i.length)return!1;for(let r=0;r{xx(e,se),N0(e,le)})}return}const S=ym(this._engine.playersByElement,e,[]);S.forEach(re=>{re.namespaceId==this.id&&re.triggerName==t&&re.queued&&re.destroy()});let R=s.matchTransition(d.value,h.value,e,h.params),G=!1;if(!R){if(!r)return;R=s.fallbackTransition,G=!0}return this._engine.totalQueuedPlayers++,this._queue.push({element:e,triggerName:t,transition:R,fromState:d,toState:h,player:o,isFallbackTransition:G}),G||(AA(e,gX),o.onStart(()=>{FC(e,gX)})),o.onDone(()=>{let re=this.players.indexOf(o);re>=0&&this.players.splice(re,1);const se=this._engine.playersByElement.get(e);if(se){let le=se.indexOf(o);le>=0&&se.splice(le,1)}}),this.players.push(o),S.push(o),o}deregister(e){this._triggers.delete(e),this._engine.statesByElement.forEach(t=>t.delete(e)),this._elementListeners.forEach((t,i)=>{this._elementListeners.set(i,t.filter(r=>r.name!=e))})}clearElementCache(e){this._engine.statesByElement.delete(e),this._elementListeners.delete(e);const t=this._engine.playersByElement.get(e);t&&(t.forEach(i=>i.destroy()),this._engine.playersByElement.delete(e))}_signalRemovalForInnerTriggers(e,t){const i=this._engine.driver.query(e,gB,!0);i.forEach(r=>{if(r[vg])return;const s=this._engine.fetchNamespacesByElement(r);s.size?s.forEach(o=>o.triggerLeaveAnimation(r,t,!1,!0)):this.clearElementCache(r)}),this._engine.afterFlushAnimationsDone(()=>i.forEach(r=>this.clearElementCache(r)))}triggerLeaveAnimation(e,t,i,r){const s=this._engine.statesByElement.get(e),o=new Map;if(s){const l=[];if(s.forEach((d,h)=>{if(o.set(h,d.value),this._triggers.has(h)){const f=this.trigger(e,h,iT,r);f&&l.push(f)}}),l.length)return this._engine.markElementAsRemoved(this.id,e,!0,t,o),i&&ov(l).onDone(()=>this._engine.processLeaveNode(e)),!0}return!1}prepareLeaveAnimationListeners(e){const t=this._elementListeners.get(e),i=this._engine.statesByElement.get(e);if(t&&i){const r=new Set;t.forEach(s=>{const o=s.name;if(r.has(o))return;r.add(o);const d=this._triggers.get(o).fallbackTransition,h=i.get(o)||aN,f=new oN(iT),A=new lN(this.id,o,e);this._engine.totalQueuedPlayers++,this._queue.push({element:e,triggerName:o,transition:d,fromState:h,toState:f,player:A,isFallbackTransition:!0})})}}removeNode(e,t){const i=this._engine;if(e.childElementCount&&this._signalRemovalForInnerTriggers(e,t),this.triggerLeaveAnimation(e,t,!0))return;let r=!1;if(i.totalAnimations){const s=i.players.length?i.playersByQueriedElement.get(e):[];if(s&&s.length)r=!0;else{let o=e;for(;o=o.parentNode;)if(i.statesByElement.get(o)){r=!0;break}}}if(this.prepareLeaveAnimationListeners(e),r)i.markElementAsRemoved(this.id,e,!1,t);else{const s=e[vg];(!s||s===_X)&&(i.afterFlush(()=>this.clearElementCache(e)),i.destroyInnerAnimations(e),i._onRemovalComplete(e,t))}}insertNode(e,t){AA(e,this._hostClassName)}drainQueuedTransitions(e){const t=[];return this._queue.forEach(i=>{const r=i.player;if(r.destroyed)return;const s=i.element,o=this._elementListeners.get(s);o&&o.forEach(l=>{if(l.name==i.triggerName){const d=VL(s,i.triggerName,i.fromState.value,i.toState.value);d._data=e,zL(i.player,l.phase,d,l.callback)}}),r.markedForDestroy?this._engine.afterFlush(()=>{r.destroy()}):t.push(i)}),this._queue=[],t.sort((i,r)=>{const s=i.transition.ast.depCount,o=r.transition.ast.depCount;return 0==s||0==o?s-o:this._engine.driver.containsElement(i.element,r.element)?1:-1})}destroy(e){this.players.forEach(t=>t.destroy()),this._signalRemovalForInnerTriggers(this.hostElement,e)}}class DCe{_onRemovalComplete(e,t){this.onRemovalComplete(e,t)}constructor(e,t,i,r){this.bodyNode=e,this.driver=t,this._normalizer=i,this.scheduler=r,this.players=[],this.newHostElements=new Map,this.playersByElement=new Map,this.playersByQueriedElement=new Map,this.statesByElement=new Map,this.disabledNodes=new Set,this.totalAnimations=0,this.totalQueuedPlayers=0,this._namespaceLookup={},this._namespaceList=[],this._flushFns=[],this._whenQuietFns=[],this.namespacesByHostElement=new Map,this.collectedEnterElements=[],this.collectedLeaveElements=[],this.onRemovalComplete=(s,o)=>{}}get queuedPlayers(){const e=[];return this._namespaceList.forEach(t=>{t.players.forEach(i=>{i.queued&&e.push(i)})}),e}createNamespace(e,t){const i=new TCe(e,t,this);return this.bodyNode&&this.driver.containsElement(this.bodyNode,t)?this._balanceNamespaceList(i,t):(this.newHostElements.set(t,i),this.collectEnterElement(t)),this._namespaceLookup[e]=i}_balanceNamespaceList(e,t){const i=this._namespaceList,r=this.namespacesByHostElement;if(i.length-1>=0){let o=!1,l=this.driver.getParentElement(t);for(;l;){const d=r.get(l);if(d){const h=i.indexOf(d);i.splice(h+1,0,e),o=!0;break}l=this.driver.getParentElement(l)}o||i.unshift(e)}else i.push(e);return r.set(t,e),e}register(e,t){let i=this._namespaceLookup[e];return i||(i=this.createNamespace(e,t)),i}registerTrigger(e,t,i){let r=this._namespaceLookup[e];r&&r.register(t,i)&&this.totalAnimations++}destroy(e,t){e&&(this.afterFlush(()=>{}),this.afterFlushAnimationsDone(()=>{const i=this._fetchNamespace(e);this.namespacesByHostElement.delete(i.hostElement);const r=this._namespaceList.indexOf(i);r>=0&&this._namespaceList.splice(r,1),i.destroy(t),delete this._namespaceLookup[e]}))}_fetchNamespace(e){return this._namespaceLookup[e]}fetchNamespacesByElement(e){const t=new Set,i=this.statesByElement.get(e);if(i)for(let r of i.values())if(r.namespaceId){const s=this._fetchNamespace(r.namespaceId);s&&t.add(s)}return t}trigger(e,t,i,r){if(MB(t)){const s=this._fetchNamespace(e);if(s)return s.trigger(t,i,r),!0}return!1}insertNode(e,t,i,r){if(!MB(t))return;const s=t[vg];if(s&&s.setForRemoval){s.setForRemoval=!1,s.setForMove=!0;const o=this.collectedLeaveElements.indexOf(t);o>=0&&this.collectedLeaveElements.splice(o,1)}if(e){const o=this._fetchNamespace(e);o&&o.insertNode(t,i)}r&&this.collectEnterElement(t)}collectEnterElement(e){this.collectedEnterElements.push(e)}markElementAsDisabled(e,t){t?this.disabledNodes.has(e)||(this.disabledNodes.add(e),AA(e,sN)):this.disabledNodes.has(e)&&(this.disabledNodes.delete(e),FC(e,sN))}removeNode(e,t,i){if(MB(t)){this.scheduler?.notify();const r=e?this._fetchNamespace(e):null;r?r.removeNode(t,i):this.markElementAsRemoved(e,t,!1,i);const s=this.namespacesByHostElement.get(t);s&&s.id!==e&&s.removeNode(t,i)}else this._onRemovalComplete(t,i)}markElementAsRemoved(e,t,i,r,s){this.collectedLeaveElements.push(t),t[vg]={namespaceId:e,setForRemoval:r,hasAnimation:i,removedBeforeQueried:!1,previousTriggersValues:s}}listen(e,t,i,r,s){return MB(t)?this._fetchNamespace(e).listen(t,i,r,s):()=>{}}_buildInstruction(e,t,i,r,s){return e.transition.build(this.driver,e.element,e.fromState.value,e.toState.value,i,r,e.fromState.options,e.toState.options,t,s)}destroyInnerAnimations(e){let t=this.driver.query(e,gB,!0);t.forEach(i=>this.destroyActiveAnimationsForElement(i)),0!=this.playersByQueriedElement.size&&(t=this.driver.query(e,$L,!0),t.forEach(i=>this.finishActiveQueriedAnimationOnElement(i)))}destroyActiveAnimationsForElement(e){const t=this.playersByElement.get(e);t&&t.forEach(i=>{i.queued?i.markedForDestroy=!0:i.destroy()})}finishActiveQueriedAnimationOnElement(e){const t=this.playersByQueriedElement.get(e);t&&t.forEach(i=>i.finish())}whenRenderingDone(){return new Promise(e=>{if(this.players.length)return ov(this.players).onDone(()=>e());e()})}processLeaveNode(e){const t=e[vg];if(t&&t.setForRemoval){if(e[vg]=_X,t.namespaceId){this.destroyInnerAnimations(e);const i=this._fetchNamespace(t.namespaceId);i&&i.clearElementCache(e)}this._onRemovalComplete(e,t.setForRemoval)}e.classList?.contains(sN)&&this.markElementAsDisabled(e,!1),this.driver.query(e,".ng-animate-disabled",!0).forEach(i=>{this.markElementAsDisabled(i,!1)})}flush(e=-1){let t=[];if(this.newHostElements.size&&(this.newHostElements.forEach((i,r)=>this._balanceNamespaceList(i,r)),this.newHostElements.clear()),this.totalAnimations&&this.collectedEnterElements.length)for(let i=0;ii()),this._flushFns=[],this._whenQuietFns.length){const i=this._whenQuietFns;this._whenQuietFns=[],t.length?ov(t).onDone(()=>{i.forEach(r=>r())}):i.forEach(r=>r())}}reportError(e){throw function k2e(n){return new Ln(3402,!1)}()}_flushAnimations(e,t){const i=new xB,r=[],s=new Map,o=[],l=new Map,d=new Map,h=new Map,f=new Set;this.disabledNodes.forEach(zn=>{f.add(zn);const oi=this.driver.query(zn,".ng-animate-queued",!0);for(let ui=0;ui{const ui=jL+re++;G.set(oi,ui),zn.forEach(vi=>AA(vi,ui))});const se=[],le=new Set,Ee=new Set;for(let zn=0;znle.add(vi)):Ee.add(oi))}const Ce=new Map,We=bX(S,Array.from(le));We.forEach((zn,oi)=>{const ui=mB+re++;Ce.set(oi,ui),zn.forEach(vi=>AA(vi,ui))}),e.push(()=>{R.forEach((zn,oi)=>{const ui=G.get(oi);zn.forEach(vi=>FC(vi,ui))}),We.forEach((zn,oi)=>{const ui=Ce.get(oi);zn.forEach(vi=>FC(vi,ui))}),se.forEach(zn=>{this.processLeaveNode(zn)})});const Mt=[],yt=[];for(let zn=this._namespaceList.length-1;zn>=0;zn--)this._namespaceList[zn].drainQueuedTransitions(t).forEach(ui=>{const vi=ui.player,mr=ui.element;if(Mt.push(vi),this.collectedEnterElements.length){const Fs=mr[vg];if(Fs&&Fs.setForMove){if(Fs.previousTriggersValues&&Fs.previousTriggersValues.has(ui.triggerName)){const Us=Fs.previousTriggersValues.get(ui.triggerName),ws=this.statesByElement.get(ui.element);if(ws&&ws.has(ui.triggerName)){const Co=ws.get(ui.triggerName);Co.value=Us,ws.set(ui.triggerName,Co)}}return void vi.destroy()}}const Mr=!A||!this.driver.containsElement(A,mr),ns=Ce.get(mr),$s=G.get(mr),fi=this._buildInstruction(ui,i,$s,ns,Mr);if(fi.errors&&fi.errors.length)return void yt.push(fi);if(Mr)return vi.onStart(()=>xx(mr,fi.fromStyles)),vi.onDestroy(()=>N0(mr,fi.toStyles)),void r.push(vi);if(ui.isFallbackTransition)return vi.onStart(()=>xx(mr,fi.fromStyles)),vi.onDestroy(()=>N0(mr,fi.toStyles)),void r.push(vi);const Rr=[];fi.timelines.forEach(Fs=>{Fs.stretchStartingKeyframe=!0,this.disabledNodes.has(Fs.element)||Rr.push(Fs)}),fi.timelines=Rr,i.append(mr,fi.timelines),o.push({instruction:fi,player:vi,element:mr}),fi.queriedElements.forEach(Fs=>ym(l,Fs,[]).push(vi)),fi.preStyleProps.forEach((Fs,Us)=>{if(Fs.size){let ws=d.get(Us);ws||d.set(Us,ws=new Set),Fs.forEach((Co,lo)=>ws.add(lo))}}),fi.postStyleProps.forEach((Fs,Us)=>{let ws=h.get(Us);ws||h.set(Us,ws=new Set),Fs.forEach((Co,lo)=>ws.add(lo))})});if(yt.length){const zn=[];yt.forEach(oi=>{zn.push(function F2e(n,e){return new Ln(3505,!1)}())}),Mt.forEach(oi=>oi.destroy()),this.reportError(zn)}const Et=new Map,Xt=new Map;o.forEach(zn=>{const oi=zn.element;i.has(oi)&&(Xt.set(oi,oi),this._beforeAnimationBuild(zn.player.namespaceId,zn.instruction,Et))}),r.forEach(zn=>{const oi=zn.element;this._getPreviousPlayers(oi,!1,zn.namespaceId,zn.triggerName,null).forEach(vi=>{ym(Et,oi,[]).push(vi),vi.destroy()})});const Un=se.filter(zn=>wX(zn,d,h)),wt=new Map;vX(wt,this.driver,Ee,h,n1).forEach(zn=>{wX(zn,d,h)&&Un.push(zn)});const Vi=new Map;R.forEach((zn,oi)=>{vX(Vi,this.driver,new Set(zn),d,"!")}),Un.forEach(zn=>{const oi=wt.get(zn),ui=Vi.get(zn);wt.set(zn,new Map([...oi?.entries()??[],...ui?.entries()??[]]))});const Yi=[],En=[],wi={};o.forEach(zn=>{const{element:oi,player:ui,instruction:vi}=zn;if(i.has(oi)){if(f.has(oi))return ui.onDestroy(()=>N0(oi,vi.toStyles)),ui.disabled=!0,ui.overrideTotalTime(vi.totalTime),void r.push(ui);let mr=wi;if(Xt.size>1){let ns=oi;const $s=[];for(;ns=ns.parentNode;){const fi=Xt.get(ns);if(fi){mr=fi;break}$s.push(ns)}$s.forEach(fi=>Xt.set(fi,mr))}const Mr=this._buildAnimation(ui.namespaceId,vi,Et,s,Vi,wt);if(ui.setRealPlayer(Mr),mr===wi)Yi.push(ui);else{const ns=this.playersByElement.get(mr);ns&&ns.length&&(ui.parentPlayer=ov(ns)),r.push(ui)}}else xx(oi,vi.fromStyles),ui.onDestroy(()=>N0(oi,vi.toStyles)),En.push(ui),f.has(oi)&&r.push(ui)}),En.forEach(zn=>{const oi=s.get(zn.element);if(oi&&oi.length){const ui=ov(oi);zn.setRealPlayer(ui)}}),r.forEach(zn=>{zn.parentPlayer?zn.syncPlayerEvents(zn.parentPlayer):zn.destroy()});for(let zn=0;zn!Mr.destroyed);mr.length?RCe(this,oi,mr):this.processLeaveNode(oi)}return se.length=0,Yi.forEach(zn=>{this.players.push(zn),zn.onDone(()=>{zn.destroy();const oi=this.players.indexOf(zn);this.players.splice(oi,1)}),zn.play()}),Yi}afterFlush(e){this._flushFns.push(e)}afterFlushAnimationsDone(e){this._whenQuietFns.push(e)}_getPreviousPlayers(e,t,i,r,s){let o=[];if(t){const l=this.playersByQueriedElement.get(e);l&&(o=l)}else{const l=this.playersByElement.get(e);if(l){const d=!s||s==iT;l.forEach(h=>{h.queued||!d&&h.triggerName!=r||o.push(h)})}}return(i||r)&&(o=o.filter(l=>!(i&&i!=l.namespaceId||r&&r!=l.triggerName))),o}_beforeAnimationBuild(e,t,i){const s=t.element,o=t.isRemovalTransition?void 0:e,l=t.isRemovalTransition?void 0:t.triggerName;for(const d of t.timelines){const h=d.element,f=h!==s,A=ym(i,h,[]);this._getPreviousPlayers(h,f,o,l,t.toState).forEach(R=>{const G=R.getRealPlayer();G.beforeDestroy&&G.beforeDestroy(),R.destroy(),A.push(R)})}xx(s,t.fromStyles)}_buildAnimation(e,t,i,r,s,o){const l=t.triggerName,d=t.element,h=[],f=new Set,A=new Set,S=t.timelines.map(G=>{const re=G.element;f.add(re);const se=re[vg];if(se&&se.removedBeforeQueried)return new kE(G.duration,G.delay);const le=re!==d,Ee=function kCe(n){const e=[];return xX(n,e),e}((i.get(re)||SCe).map(Et=>Et.getRealPlayer())).filter(Et=>!!Et.element&&Et.element===re),Ce=s.get(re),We=o.get(re),Mt=J$(this._normalizer,G.keyframes,Ce,We),yt=this._buildPlayer(G,Mt,Ee);if(G.subTimeline&&r&&A.add(re),le){const Et=new lN(e,l,re);Et.setRealPlayer(yt),h.push(Et)}return yt});h.forEach(G=>{ym(this.playersByQueriedElement,G.element,[]).push(G),G.onDone(()=>function ICe(n,e,t){let i=n.get(e);if(i){if(i.length){const r=i.indexOf(t);i.splice(r,1)}0==i.length&&n.delete(e)}return i}(this.playersByQueriedElement,G.element,G))}),f.forEach(G=>AA(G,sX));const R=ov(S);return R.onDestroy(()=>{f.forEach(G=>FC(G,sX)),N0(d,t.toStyles)}),A.forEach(G=>{ym(r,G,[]).push(R)}),R}_buildPlayer(e,t,i){return t.length>0?this.driver.animate(e.element,t,e.duration,e.delay,e.easing,i):new kE(e.duration,e.delay)}}class lN{constructor(e,t,i){this.namespaceId=e,this.triggerName=t,this.element=i,this._player=new kE,this._containsRealPlayer=!1,this._queuedCallbacks=new Map,this.destroyed=!1,this.parentPlayer=null,this.markedForDestroy=!1,this.disabled=!1,this.queued=!0,this.totalTime=0}setRealPlayer(e){this._containsRealPlayer||(this._player=e,this._queuedCallbacks.forEach((t,i)=>{t.forEach(r=>zL(e,i,void 0,r))}),this._queuedCallbacks.clear(),this._containsRealPlayer=!0,this.overrideTotalTime(e.totalTime),this.queued=!1)}getRealPlayer(){return this._player}overrideTotalTime(e){this.totalTime=e}syncPlayerEvents(e){const t=this._player;t.triggerCallback&&e.onStart(()=>t.triggerCallback("start")),e.onDone(()=>this.finish()),e.onDestroy(()=>this.destroy())}_queueEvent(e,t){ym(this._queuedCallbacks,e,[]).push(t)}onDone(e){this.queued&&this._queueEvent("done",e),this._player.onDone(e)}onStart(e){this.queued&&this._queueEvent("start",e),this._player.onStart(e)}onDestroy(e){this.queued&&this._queueEvent("destroy",e),this._player.onDestroy(e)}init(){this._player.init()}hasStarted(){return!this.queued&&this._player.hasStarted()}play(){!this.queued&&this._player.play()}pause(){!this.queued&&this._player.pause()}restart(){!this.queued&&this._player.restart()}finish(){this._player.finish()}destroy(){this.destroyed=!0,this._player.destroy()}reset(){!this.queued&&this._player.reset()}setPosition(e){this.queued||this._player.setPosition(e)}getPosition(){return this.queued?0:this._player.getPosition()}triggerCallback(e){const t=this._player;t.triggerCallback&&t.triggerCallback(e)}}function MB(n){return n&&1===n.nodeType}function yX(n,e){const t=n.style.display;return n.style.display=e??"none",t}function vX(n,e,t,i,r){const s=[];t.forEach(d=>s.push(yX(d)));const o=[];i.forEach((d,h)=>{const f=new Map;d.forEach(A=>{const S=e.computeStyle(h,A,r);f.set(A,S),(!S||0==S.length)&&(h[vg]=ECe,o.push(h))}),n.set(h,f)});let l=0;return t.forEach(d=>yX(d,s[l++])),o}function bX(n,e){const t=new Map;if(n.forEach(l=>t.set(l,[])),0==e.length)return t;const r=new Set(e),s=new Map;function o(l){if(!l)return 1;let d=s.get(l);if(d)return d;const h=l.parentNode;return d=t.has(h)?h:r.has(h)?1:o(h),s.set(l,d),d}return e.forEach(l=>{const d=o(l);1!==d&&t.get(d).push(l)}),t}function AA(n,e){n.classList?.add(e)}function FC(n,e){n.classList?.remove(e)}function RCe(n,e,t){ov(t).onDone(()=>n.processLeaveNode(e))}function xX(n,e){for(let t=0;tr.add(s)):e.set(n,i),t.delete(n),!0}class rT{constructor(e,t,i,r){this._driver=t,this._normalizer=i,this._triggerCache={},this.onRemovalComplete=(s,o)=>{},this._transitionEngine=new DCe(e.body,t,i,r),this._timelineEngine=new bCe(e.body,t,i),this._transitionEngine.onRemovalComplete=(s,o)=>this.onRemovalComplete(s,o)}registerTrigger(e,t,i,r,s){const o=e+"-"+r;let l=this._triggerCache[o];if(!l){const d=[],f=JL(this._driver,s,d,[]);if(d.length)throw function C2e(n,e){return new Ln(3404,!1)}();l=function gCe(n,e,t){return new _Ce(n,e,t)}(r,f,this._normalizer),this._triggerCache[o]=l}this._transitionEngine.registerTrigger(t,r,l)}register(e,t){this._transitionEngine.register(e,t)}destroy(e,t){this._transitionEngine.destroy(e,t)}onInsert(e,t,i,r){this._transitionEngine.insertNode(e,t,i,r)}onRemove(e,t,i){this._transitionEngine.removeNode(e,t,i)}disableAnimations(e,t){this._transitionEngine.markElementAsDisabled(e,t)}process(e,t,i,r){if("@"==i.charAt(0)){const[s,o]=eX(i);this._timelineEngine.command(s,t,o,r)}else this._transitionEngine.trigger(e,t,i,r)}listen(e,t,i,r,s){if("@"==i.charAt(0)){const[o,l]=eX(i);return this._timelineEngine.listen(o,t,l,s)}return this._transitionEngine.listen(e,t,i,r,s)}flush(e=-1){this._transitionEngine.flush(e)}get players(){return[...this._transitionEngine.players,...this._timelineEngine.players]}whenRenderingDone(){return this._transitionEngine.whenRenderingDone()}afterFlushAnimationsDone(e){this._transitionEngine.afterFlushAnimationsDone(e)}}class sT{static#e=this.initialStylesByElement=new WeakMap;constructor(e,t,i){this._element=e,this._startStyles=t,this._endStyles=i,this._state=0;let r=sT.initialStylesByElement.get(e);r||sT.initialStylesByElement.set(e,r=new Map),this._initialStyles=r}start(){this._state<1&&(this._startStyles&&N0(this._element,this._startStyles,this._initialStyles),this._state=1)}finish(){this.start(),this._state<2&&(N0(this._element,this._initialStyles),this._endStyles&&(N0(this._element,this._endStyles),this._endStyles=null),this._state=1)}destroy(){this.finish(),this._state<3&&(sT.initialStylesByElement.delete(this._element),this._startStyles&&(xx(this._element,this._startStyles),this._endStyles=null),this._endStyles&&(xx(this._element,this._endStyles),this._endStyles=null),N0(this._element,this._initialStyles),this._state=3)}}function cN(n){let e=null;return n.forEach((t,i)=>{(function LCe(n){return"display"===n||"position"===n})(i)&&(e=e||new Map,e.set(i,t))}),e}class CX{constructor(e,t,i,r){this.element=e,this.keyframes=t,this.options=i,this._specialStyles=r,this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._initialized=!1,this._finished=!1,this._started=!1,this._destroyed=!1,this._originalOnDoneFns=[],this._originalOnStartFns=[],this.time=0,this.parentPlayer=null,this.currentSnapshot=new Map,this._duration=i.duration,this._delay=i.delay||0,this.time=this._duration+this._delay}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(e=>e()),this._onDoneFns=[])}init(){this._buildPlayer(),this._preparePlayerBeforeStart()}_buildPlayer(){if(this._initialized)return;this._initialized=!0;const e=this.keyframes;this.domPlayer=this._triggerWebAnimation(this.element,e,this.options),this._finalKeyframe=e.length?e[e.length-1]:new Map;const t=()=>this._onFinish();this.domPlayer.addEventListener("finish",t),this.onDestroy(()=>{this.domPlayer.removeEventListener("finish",t)})}_preparePlayerBeforeStart(){this._delay?this._resetDomPlayerState():this.domPlayer.pause()}_convertKeyframesToObject(e){const t=[];return e.forEach(i=>{t.push(Object.fromEntries(i))}),t}_triggerWebAnimation(e,t,i){return e.animate(this._convertKeyframesToObject(t),i)}onStart(e){this._originalOnStartFns.push(e),this._onStartFns.push(e)}onDone(e){this._originalOnDoneFns.push(e),this._onDoneFns.push(e)}onDestroy(e){this._onDestroyFns.push(e)}play(){this._buildPlayer(),this.hasStarted()||(this._onStartFns.forEach(e=>e()),this._onStartFns=[],this._started=!0,this._specialStyles&&this._specialStyles.start()),this.domPlayer.play()}pause(){this.init(),this.domPlayer.pause()}finish(){this.init(),this._specialStyles&&this._specialStyles.finish(),this._onFinish(),this.domPlayer.finish()}reset(){this._resetDomPlayerState(),this._destroyed=!1,this._finished=!1,this._started=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}_resetDomPlayerState(){this.domPlayer&&this.domPlayer.cancel()}restart(){this.reset(),this.play()}hasStarted(){return this._started}destroy(){this._destroyed||(this._destroyed=!0,this._resetDomPlayerState(),this._onFinish(),this._specialStyles&&this._specialStyles.destroy(),this._onDestroyFns.forEach(e=>e()),this._onDestroyFns=[])}setPosition(e){void 0===this.domPlayer&&this.init(),this.domPlayer.currentTime=e*this.time}getPosition(){return+(this.domPlayer.currentTime??0)/this.time}get totalTime(){return this._delay+this._duration}beforeDestroy(){const e=new Map;this.hasStarted()&&this._finalKeyframe.forEach((i,r)=>{"offset"!==r&&e.set(r,this._finished?i:ZL(this.element,r))}),this.currentSnapshot=e}triggerCallback(e){const t="start"===e?this._onStartFns:this._onDoneFns;t.forEach(i=>i()),t.length=0}}class MX{validateStyleProperty(e){return!0}validateAnimatableStyleProperty(e){return!0}matchesElement(e,t){return!1}containsElement(e,t){return nX(e,t)}getParentElement(e){return GL(e)}query(e,t,i){return iX(e,t,i)}computeStyle(e,t,i){return ZL(e,t)}animate(e,t,i,r,s,o=[]){const d={duration:i,delay:r,fill:0==r?"both":"forwards"};s&&(d.easing=s);const h=new Map,f=o.filter(R=>R instanceof CX);(function $2e(n,e){return 0===n||0===e})(i,r)&&f.forEach(R=>{R.currentSnapshot.forEach((G,re)=>h.set(re,G))});let A=function Q2e(n){return n.length?n[0]instanceof Map?n:n.map(e=>new Map(Object.entries(e))):[]}(t).map(R=>new Map(R));A=function X2e(n,e,t){if(t.size&&e.length){let i=e[0],r=[];if(t.forEach((s,o)=>{i.has(o)||r.push(o),i.set(o,s)}),r.length)for(let s=1;so.set(l,ZL(n,l)))}}return e}(e,A,h);const S=function OCe(n,e){let t=null,i=null;return Array.isArray(e)&&e.length?(t=cN(e[0]),e.length>1&&(i=cN(e[e.length-1]))):e instanceof Map&&(t=cN(e)),t||i?new sT(n,t,i):null}(e,A);return new CX(e,A,d,S)}}const SX="@.disabled";class EX{constructor(e,t,i,r){this.namespaceId=e,this.delegate=t,this.engine=i,this._onDestroy=r,this.\u0275type=0}get data(){return this.delegate.data}destroyNode(e){this.delegate.destroyNode?.(e)}destroy(){this.engine.destroy(this.namespaceId,this.delegate),this.engine.afterFlushAnimationsDone(()=>{queueMicrotask(()=>{this.delegate.destroy()})}),this._onDestroy?.()}createElement(e,t){return this.delegate.createElement(e,t)}createComment(e){return this.delegate.createComment(e)}createText(e){return this.delegate.createText(e)}appendChild(e,t){this.delegate.appendChild(e,t),this.engine.onInsert(this.namespaceId,t,e,!1)}insertBefore(e,t,i,r=!0){this.delegate.insertBefore(e,t,i),this.engine.onInsert(this.namespaceId,t,e,r)}removeChild(e,t,i){this.engine.onRemove(this.namespaceId,t,this.delegate)}selectRootElement(e,t){return this.delegate.selectRootElement(e,t)}parentNode(e){return this.delegate.parentNode(e)}nextSibling(e){return this.delegate.nextSibling(e)}setAttribute(e,t,i,r){this.delegate.setAttribute(e,t,i,r)}removeAttribute(e,t,i){this.delegate.removeAttribute(e,t,i)}addClass(e,t){this.delegate.addClass(e,t)}removeClass(e,t){this.delegate.removeClass(e,t)}setStyle(e,t,i,r){this.delegate.setStyle(e,t,i,r)}removeStyle(e,t,i){this.delegate.removeStyle(e,t,i)}setProperty(e,t,i){"@"==t.charAt(0)&&t==SX?this.disableAnimations(e,!!i):this.delegate.setProperty(e,t,i)}setValue(e,t){this.delegate.setValue(e,t)}listen(e,t,i){return this.delegate.listen(e,t,i)}disableAnimations(e,t){this.engine.disableAnimations(e,t)}}class NCe extends EX{constructor(e,t,i,r,s){super(t,i,r,s),this.factory=e,this.namespaceId=t}setProperty(e,t,i){"@"==t.charAt(0)?"."==t.charAt(1)&&t==SX?this.disableAnimations(e,i=void 0===i||!!i):this.engine.process(this.namespaceId,e,t.slice(1),i):this.delegate.setProperty(e,t,i)}listen(e,t,i){if("@"==t.charAt(0)){const r=function UCe(n){switch(n){case"body":return document.body;case"document":return document;case"window":return window;default:return n}}(e);let s=t.slice(1),o="";return"@"!=s.charAt(0)&&([s,o]=function zCe(n){const e=n.indexOf(".");return[n.substring(0,e),n.slice(e+1)]}(s)),this.engine.listen(this.namespaceId,r,s,o,l=>{this.factory.scheduleListenerCallback(l._data||-1,i,l)})}return this.delegate.listen(e,t,i)}}class HCe{constructor(e,t,i){this.delegate=e,this.engine=t,this._zone=i,this._currentId=0,this._microtaskId=1,this._animationCallbacksBuffer=[],this._rendererCache=new Map,this._cdRecurDepth=0,t.onRemovalComplete=(r,s)=>{const o=s?.parentNode(r);o&&s.removeChild(o,r)}}createRenderer(e,t){const r=this.delegate.createRenderer(e,t);if(!e||!t?.data?.animation){const h=this._rendererCache;let f=h.get(r);return f||(f=new EX("",r,this.engine,()=>h.delete(r)),h.set(r,f)),f}const s=t.id,o=t.id+"-"+this._currentId;this._currentId++,this.engine.register(o,e);const l=h=>{Array.isArray(h)?h.forEach(l):this.engine.registerTrigger(s,o,e,h.name,h)};return t.data.animation.forEach(l),new NCe(this,o,r,this.engine)}begin(){this._cdRecurDepth++,this.delegate.begin&&this.delegate.begin()}_scheduleCountTask(){queueMicrotask(()=>{this._microtaskId++})}scheduleListenerCallback(e,t,i){if(e>=0&&et(i));const r=this._animationCallbacksBuffer;0==r.length&&queueMicrotask(()=>{this._zone.run(()=>{r.forEach(s=>{const[o,l]=s;o(l)}),this._animationCallbacksBuffer=[]})}),r.push([t,i])}end(){this._cdRecurDepth--,0==this._cdRecurDepth&&this._zone.runOutsideAngular(()=>{this._scheduleCountTask(),this.engine.flush(this._microtaskId)}),this.delegate.end&&this.delegate.end()}whenRenderingDone(){return this.engine.whenRenderingDone()}}const TX=[{provide:WL,useFactory:function GCe(){return new lX}},{provide:rT,useClass:(()=>{class n extends rT{constructor(t,i,r){super(t,i,r,pi(sb,{optional:!0}))}ngOnDestroy(){this.flush()}static#e=this.\u0275fac=function(i){return new(i||n)(xi(ba),xi(QL),xi(WL))};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac})}return n})()},{provide:OM,useFactory:function qCe(n,e,t){return new HCe(n,e,t)},deps:[qR,rT,io]}],dN=[{provide:QL,useFactory:()=>new MX},{provide:Od,useValue:"BrowserAnimations"},...TX],DX=[{provide:QL,useClass:qL},{provide:Od,useValue:"NoopAnimations"},...TX];let hN,QCe=(()=>{class n{static withConfig(t){return{ngModule:n,providers:t.disableAnimations?DX:dN}}static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275mod=vo({type:n});static#n=this.\u0275inj=ra({providers:dN,imports:[Z7]})}return n})();hN=[{path:"",component:_Q},{path:"home",component:_Q},{path:"geometry",component:$ge},{path:"atlas",component:I$},{path:"lhcb",component:Pxe},{path:"cms",component:Rxe},{path:"trackml",component:kxe},{path:"playground",component:n2e}];let WCe=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=vo({type:n,bootstrap:[Eae]});static \u0275inj=ra({imports:[Z7,Hre,qz.forRoot(hN,{useHash:!0}),QCe,t2e]})}return n})();Mie().bootstrapModule(WCe).catch(n=>console.error(n))},3511:(Yr,mt,Se)=>{Yr.exports={ResizeSensor:Se(626),ElementQueries:Se(4868)}},4868:function(Yr,mt,Se){"use strict";var Te,x,L;typeof window<"u"&&window,x=[Se(626)],void 0!==(L="function"==typeof(Te=function(ve){var ke=function(){var Ye,Ze={},Re=[];function He(v){v||(v=document.documentElement);var p=window.getComputedStyle(v,null).fontSize;return parseFloat(p)||16}function De(v,p){var C=p.split(/\d/),I=C[C.length-1];switch(p=parseFloat(p),I){case"px":default:return p;case"em":return p*He(v);case"rem":return p*He();case"vw":return p*document.documentElement.clientWidth/100;case"vh":return p*document.documentElement.clientHeight/100;case"vmin":case"vmax":var U=document.documentElement.clientWidth/100,k=document.documentElement.clientHeight/100;return p*(0,Math["vmin"===I?"min":"max"])(U,k)}}function F(v,p){this.element=v;var C,I,U,k,Z,ee,ue,V,b=["min-width","min-height","max-width","max-height"];this.call=function(){for(C in U=function Ve(v){if(!v.getBoundingClientRect)return{width:v.offsetWidth,height:v.offsetHeight};var p=v.getBoundingClientRect();return{width:Math.round(p.width),height:Math.round(p.height)}}(this.element),ee={},Ze[p])Ze[p].hasOwnProperty(C)&&(k=De(this.element,(I=Ze[p][C]).value),Z="width"===I.property?U.width:U.height,ue="","min"===I.mode&&Z>=k&&(ue+=I.value),"max"===I.mode&&Z<=k&&(ue+=I.value),ee[V=I.mode+"-"+I.property]||(ee[V]=""),ue&&-1===(" "+ee[V]+" ").indexOf(" "+ue+" ")&&(ee[V]+=" "+ue));for(var P in b)b.hasOwnProperty(P)&&(ee[b[P]]?this.element.setAttribute(b[P],ee[b[P]].substr(1)):this.element.removeAttribute(b[P]))}}function J(v,p){v.elementQueriesSetupInformation||(v.elementQueriesSetupInformation=new F(v,p)),v.elementQueriesSensor||(v.elementQueriesSensor=new ve(v,function(){v.elementQueriesSetupInformation.call()}))}function Y(v,p,C,I){if(typeof Ze[v]>"u"){Ze[v]=[];var U=Re.length;Ye.innerHTML+="\n"+v+" {animation: 0.1s element-queries;}",Ye.innerHTML+="\n"+v+" > .resize-sensor {min-width: "+U+"px;}",Re.push(v)}Ze[v].push({mode:p,property:C,value:I})}function he(v){var p;if(document.querySelectorAll&&(p=v?v.querySelectorAll.bind(v):document.querySelectorAll.bind(document)),!p&&typeof $$<"u"&&(p=$$),!p&&typeof jQuery<"u"&&(p=jQuery),!p)throw"No document.querySelectorAll, jQuery or Mootools's $$ found.";return p}function me(v){var p=[],C=[],I=[],U=0,k=-1,Z=[];for(var ee in v.children)if(v.children.hasOwnProperty(ee)&&v.children[ee].tagName&&"img"===v.children[ee].tagName.toLowerCase()){p.push(v.children[ee]);var ue=v.children[ee].getAttribute("min-width")||v.children[ee].getAttribute("data-min-width"),V=v.children[ee].getAttribute("data-src")||v.children[ee].getAttribute("url");I.push(V),C.push({minWidth:ue}),ue?v.children[ee].style.display="none":(U=p.length-1,v.children[ee].style.display="block")}function P(){var z,T=!1;for(z in p)p.hasOwnProperty(z)&&C[z].minWidth&&v.offsetWidth>C[z].minWidth&&(T=z);if(T||(T=U),k!==T)if(Z[T])p[k].style.display="none",p[T].style.display="block",k=T;else{var W=new Image;W.onload=function(){p[T].src=I[T],p[k].style.display="none",p[T].style.display="block",Z[T]=!0,k=T},W.src=I[T]}else p[T].src=I[T]}k=U,v.resizeSensorInstance=new ve(v,P),P()}var B=/,?[\s\t]*([^,\n]*?)((?:\[[\s\t]*?(?:min|max)-(?:width|height)[\s\t]*?[~$\^]?=[\s\t]*?"[^"]*?"[\s\t]*?])+)([^,\n\s\{]*)/gim,$=/\[[\s\t]*?(min|max)-(width|height)[\s\t]*?[~$\^]?=[\s\t]*?"([^"]*?)"[\s\t]*?]/gim;function g(v){var p,C,I,U;for(v=v.replace(/'/g,'"');null!==(p=B.exec(v));)for(C=p[1]+p[3],I=p[2];null!==(U=$.exec(I));)Y(C,U[1],U[2],U[3])}function E(v){var p="";if(v)if("string"==typeof v)(-1!==(v=v.toLowerCase()).indexOf("min-width")||-1!==v.indexOf("max-width"))&&g(v);else for(var C=0,I=v.length;C img, [data-responsive-image] {overflow: hidden; padding: 0; } [responsive-image] > img, [data-responsive-image] > img {width: 100%;}",Ye.innerHTML+="\n@keyframes element-queries { 0% { visibility: inherit; } }",document.getElementsByTagName("head")[0].appendChild(Ye),_=!0);for(var p=0,C=document.styleSheets.length;p"u")return null;var L=typeof window<"u"&&window.Math==Math?window:typeof self<"u"&&self.Math==Math?self:Function("return this")(),ve=L.requestAnimationFrame||L.mozRequestAnimationFrame||L.webkitRequestAnimationFrame||function(Ve){return L.setTimeout(Ve,20)},ke=L.cancelAnimationFrame||L.mozCancelAnimationFrame||L.webkitCancelAnimationFrame||function(Ve){L.clearTimeout(Ve)};function ot(Ve,De){var F=Object.prototype.toString.call(Ve),J="[object Array]"===F||"[object NodeList]"===F||"[object HTMLCollection]"===F||"[object Object]"===F||typeof jQuery<"u"&&Ve instanceof jQuery||typeof Elements<"u"&&Ve instanceof Elements,Y=0,he=Ve.length;if(J)for(;Y{"use strict";var mt={single_source_shortest_paths:function(Se,Te,x){var L={},ve={};ve[Te]=0;var ot,Ye,Ze,Re,He,De,ke=mt.PriorityQueue.make();for(ke.push(Te,0);!ke.empty();)for(Ze in Re=(ot=ke.pop()).cost,He=Se[Ye=ot.value]||{})He.hasOwnProperty(Ze)&&(De=Re+He[Ze],(typeof ve[Ze]>"u"||ve[Ze]>De)&&(ve[Ze]=De,ke.push(Ze,De),L[Ze]=Ye));if(typeof x<"u"&&typeof ve[x]>"u"){var Y=["Could not find a path from ",Te," to ",x,"."].join("");throw new Error(Y)}return L},extract_shortest_path_from_predecessor_list:function(Se,Te){for(var x=[],L=Te;L;)x.push(L),L=Se[L];return x.reverse(),x},find_path:function(Se,Te,x){var L=mt.single_source_shortest_paths(Se,Te,x);return mt.extract_shortest_path_from_predecessor_list(L,x)},PriorityQueue:{make:function(Se){var L,Te=mt.PriorityQueue,x={};for(L in Se=Se||{},Te)Te.hasOwnProperty(L)&&(x[L]=Te[L]);return x.queue=[],x.sorter=Se.sorter||Te.default_sorter,x},default_sorter:function(Se,Te){return Se.cost-Te.cost},push:function(Se,Te){this.queue.push({value:Se,cost:Te}),this.queue.sort(this.sorter)},pop:function(){return this.queue.shift()},empty:function(){return 0===this.queue.length}}};Yr.exports=mt},5474:Yr=>{"use strict";Yr.exports=function(Se){for(var Te=[],x=Se.length,L=0;L=55296&&ve<=56319&&x>L+1){var ke=Se.charCodeAt(L+1);ke>=56320&&ke<=57343&&(ve=1024*(ve-55296)+ke-56320+65536,L+=1)}ve<128?Te.push(ve):ve<2048?(Te.push(ve>>6|192),Te.push(63&ve|128)):ve<55296||ve>=57344&&ve<65536?(Te.push(ve>>12|224),Te.push(ve>>6&63|128),Te.push(63&ve|128)):ve>=65536&&ve<=1114111?(Te.push(ve>>18|240),Te.push(ve>>12&63|128),Te.push(ve>>6&63|128),Te.push(63&ve|128)):Te.push(239,191,189)}return new Uint8Array(Te).buffer}},5747:function(Yr){Yr.exports=function(){"use strict";var mt=function(ne,j){return(mt=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(ce,ae){ce.__proto__=ae}||function(ce,ae){for(var Ue in ae)Object.prototype.hasOwnProperty.call(ae,Ue)&&(ce[Ue]=ae[Ue])})(ne,j)};function Se(ne,j){if("function"!=typeof j&&null!==j)throw new TypeError("Class extends value "+String(j)+" is not a constructor or null");function ce(){this.constructor=ne}mt(ne,j),ne.prototype=null===j?Object.create(j):(ce.prototype=j.prototype,new ce)}var Te=function(){return Te=Object.assign||function(j){for(var ce,ae=1,Ue=arguments.length;ae0&&dt[dt.length-1])&&(6===Wn[0]||2===Wn[0])){ce=0;continue}if(3===Wn[0]&&(!dt||Wn[1]>dt[0]&&Wn[1]=55296&&Ue<=56319&&ce>10),Bt%1024+56320),(Ue+1===ce||ae.length>16384)&&(dt+=String.fromCharCode.apply(String,ae),ae.length=0)}return dt},He="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Ve=typeof Uint8Array>"u"?[]:new Uint8Array(256),De=0;De<64;De++)Ve[He.charCodeAt(De)]=De;for(var F="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",J=typeof Uint8Array>"u"?[]:new Uint8Array(256),Y=0;Y<64;Y++)J[F.charCodeAt(Y)]=Y;for(var V=function(ne,j,ce){return ne.slice?ne.slice(j,ce):new Uint16Array(Array.prototype.slice.call(ne,j,ce))},T=function(){function ne(j,ce,ae,Ue,dt,Bt){this.initialValue=j,this.errorValue=ce,this.highStart=ae,this.highValueIndex=Ue,this.index=dt,this.data=Bt}return ne.prototype.get=function(j){var ce;if(j>=0){if(j<55296||j>56319&&j<=65535)return this.data[ce=((ce=this.index[j>>5])<<2)+(31&j)];if(j<=65535)return this.data[ce=((ce=this.index[2048+(j-55296>>5)])<<2)+(31&j)];if(j>11)],this.data[ce=((ce=this.index[ce+=j>>5&63])<<2)+(31&j)];if(j<=1114111)return this.data[this.highValueIndex]}return this.errorValue},ne}(),z="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",W=typeof Uint8Array>"u"?[]:new Uint8Array(256),fe=0;fe<64;fe++)W[z.charCodeAt(fe)]=fe;var ce,ae,Ue,Bt,an,Ne=10,pt=13,vt=15,qt=17,Ot=18,Bn=19,Mn=20,bn=21,Dn=22,Cn=24,yn=25,Sn=26,ii=27,ai=28,ti=30,ss=32,Bs=33,yo=34,xt=35,ge=37,ye=38,Pe=39,At=40,Nt=42,un=[9001,65288],cn="\xd7",ci=(ce=function(ne){var ae,dt,Bt,an,on,j=.75*ne.length,ce=ne.length,Ue=0;"="===ne[ne.length-1]&&(j--,"="===ne[ne.length-2]&&j--);var Wn=typeof ArrayBuffer<"u"&&typeof Uint8Array<"u"&&typeof Uint8Array.prototype.slice<"u"?new ArrayBuffer(j):new Array(j),Zn=Array.isArray(Wn)?Wn:new Uint8Array(Wn);for(ae=0;ae>4,Zn[Ue++]=(15&Bt)<<4|an>>2,Zn[Ue++]=(3&an)<<6|63&on;return Wn}("KwAAAAAAAAAACA4AUD0AADAgAAACAAAAAAAIABAAGABAAEgAUABYAGAAaABgAGgAYgBqAF8AZwBgAGgAcQB5AHUAfQCFAI0AlQCdAKIAqgCyALoAYABoAGAAaABgAGgAwgDKAGAAaADGAM4A0wDbAOEA6QDxAPkAAQEJAQ8BFwF1AH0AHAEkASwBNAE6AUIBQQFJAVEBWQFhAWgBcAF4ATAAgAGGAY4BlQGXAZ8BpwGvAbUBvQHFAc0B0wHbAeMB6wHxAfkBAQIJAvEBEQIZAiECKQIxAjgCQAJGAk4CVgJeAmQCbAJ0AnwCgQKJApECmQKgAqgCsAK4ArwCxAIwAMwC0wLbAjAA4wLrAvMC+AIAAwcDDwMwABcDHQMlAy0DNQN1AD0DQQNJA0kDSQNRA1EDVwNZA1kDdQB1AGEDdQBpA20DdQN1AHsDdQCBA4kDkQN1AHUAmQOhA3UAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AKYDrgN1AHUAtgO+A8YDzgPWAxcD3gPjA+sD8wN1AHUA+wMDBAkEdQANBBUEHQQlBCoEFwMyBDgEYABABBcDSARQBFgEYARoBDAAcAQzAXgEgASIBJAEdQCXBHUAnwSnBK4EtgS6BMIEyAR1AHUAdQB1AHUAdQCVANAEYABgAGAAYABgAGAAYABgANgEYADcBOQEYADsBPQE/AQEBQwFFAUcBSQFLAU0BWQEPAVEBUsFUwVbBWAAYgVgAGoFcgV6BYIFigWRBWAAmQWfBaYFYABgAGAAYABgAKoFYACxBbAFuQW6BcEFwQXHBcEFwQXPBdMF2wXjBeoF8gX6BQIGCgYSBhoGIgYqBjIGOgZgAD4GRgZMBmAAUwZaBmAAYABgAGAAYABgAGAAYABgAGAAYABgAGIGYABpBnAGYABgAGAAYABgAGAAYABgAGAAYAB4Bn8GhQZgAGAAYAB1AHcDFQSLBmAAYABgAJMGdQA9A3UAmwajBqsGqwaVALMGuwbDBjAAywbSBtIG1QbSBtIG0gbSBtIG0gbdBuMG6wbzBvsGAwcLBxMHAwcbByMHJwcsBywHMQcsB9IGOAdAB0gHTgfSBkgHVgfSBtIG0gbSBtIG0gbSBtIG0gbSBiwHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAdgAGAALAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAdbB2MHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsB2kH0gZwB64EdQB1AHUAdQB1AHUAdQB1AHUHfQdgAIUHjQd1AHUAlQedB2AAYAClB6sHYACzB7YHvgfGB3UAzgfWBzMB3gfmB1EB7gf1B/0HlQENAQUIDQh1ABUIHQglCBcDLQg1CD0IRQhNCEEDUwh1AHUAdQBbCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIcAh3CHoIMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIgggwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAALAcsBywHLAcsBywHLAcsBywHLAcsB4oILAcsB44I0gaWCJ4Ipgh1AHUAqgiyCHUAdQB1AHUAdQB1AHUAdQB1AHUAtwh8AXUAvwh1AMUIyQjRCNkI4AjoCHUAdQB1AO4I9gj+CAYJDgkTCS0HGwkjCYIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiAAIAAAAFAAYABgAGIAXwBgAHEAdQBFAJUAogCyAKAAYABgAEIA4ABGANMA4QDxAMEBDwE1AFwBLAE6AQEBUQF4QkhCmEKoQrhCgAHIQsAB0MLAAcABwAHAAeDC6ABoAHDCwMMAAcABwAHAAdDDGMMAAcAB6MM4wwjDWMNow3jDaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAEjDqABWw6bDqABpg6gAaABoAHcDvwOPA+gAaABfA/8DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DpcPAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcAB9cPKwkyCToJMAB1AHUAdQBCCUoJTQl1AFUJXAljCWcJawkwADAAMAAwAHMJdQB2CX4JdQCECYoJjgmWCXUAngkwAGAAYABxAHUApgn3A64JtAl1ALkJdQDACTAAMAAwADAAdQB1AHUAdQB1AHUAdQB1AHUAowYNBMUIMAAwADAAMADICcsJ0wnZCRUE4QkwAOkJ8An4CTAAMAB1AAAKvwh1AAgKDwoXCh8KdQAwACcKLgp1ADYKqAmICT4KRgowADAAdQB1AE4KMAB1AFYKdQBeCnUAZQowADAAMAAwADAAMAAwADAAMAAVBHUAbQowADAAdQC5CXUKMAAwAHwBxAijBogEMgF9CoQKiASMCpQKmgqIBKIKqgquCogEDQG2Cr4KxgrLCjAAMADTCtsKCgHjCusK8Qr5CgELMAAwADAAMAB1AIsECQsRC3UANAEZCzAAMAAwADAAMAB1ACELKQswAHUANAExCzkLdQBBC0kLMABRC1kLMAAwADAAMAAwADAAdQBhCzAAMAAwAGAAYABpC3ELdwt/CzAAMACHC4sLkwubC58Lpwt1AK4Ltgt1APsDMAAwADAAMAAwADAAMAAwAL4LwwvLC9IL1wvdCzAAMADlC+kL8Qv5C/8LSQswADAAMAAwADAAMAAwADAAMAAHDDAAMAAwADAAMAAODBYMHgx1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1ACYMMAAwADAAdQB1AHUALgx1AHUAdQB1AHUAdQA2DDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AD4MdQBGDHUAdQB1AHUAdQB1AEkMdQB1AHUAdQB1AFAMMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQBYDHUAdQB1AF8MMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUA+wMVBGcMMAAwAHwBbwx1AHcMfwyHDI8MMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAYABgAJcMMAAwADAAdQB1AJ8MlQClDDAAMACtDCwHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsB7UMLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AA0EMAC9DDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAsBywHLAcsBywHLAcsBywHLQcwAMEMyAwsBywHLAcsBywHLAcsBywHLAcsBywHzAwwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1ANQM2QzhDDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMABgAGAAYABgAGAAYABgAOkMYADxDGAA+AwADQYNYABhCWAAYAAODTAAMAAwADAAFg1gAGAAHg37AzAAMAAwADAAYABgACYNYAAsDTQNPA1gAEMNPg1LDWAAYABgAGAAYABgAGAAYABgAGAAUg1aDYsGVglhDV0NcQBnDW0NdQ15DWAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAlQCBDZUAiA2PDZcNMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAnw2nDTAAMAAwADAAMAAwAHUArw23DTAAMAAwADAAMAAwADAAMAAwADAAMAB1AL8NMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAB1AHUAdQB1AHUAdQDHDTAAYABgAM8NMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAA1w11ANwNMAAwAD0B5A0wADAAMAAwADAAMADsDfQN/A0EDgwOFA4wABsOMAAwADAAMAAwADAAMAAwANIG0gbSBtIG0gbSBtIG0gYjDigOwQUuDsEFMw7SBjoO0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGQg5KDlIOVg7SBtIGXg5lDm0OdQ7SBtIGfQ6EDooOjQ6UDtIGmg6hDtIG0gaoDqwO0ga0DrwO0gZgAGAAYADEDmAAYAAkBtIGzA5gANIOYADaDokO0gbSBt8O5w7SBu8O0gb1DvwO0gZgAGAAxA7SBtIG0gbSBtIGYABgAGAAYAAED2AAsAUMD9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGFA8sBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAccD9IGLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHJA8sBywHLAcsBywHLAccDywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywPLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAc0D9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAccD9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGFA8sBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHPA/SBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gYUD0QPlQCVAJUAMAAwADAAMACVAJUAlQCVAJUAlQCVAEwPMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAA//8EAAQABAAEAAQABAAEAAQABAANAAMAAQABAAIABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQACgATABcAHgAbABoAHgAXABYAEgAeABsAGAAPABgAHABLAEsASwBLAEsASwBLAEsASwBLABgAGAAeAB4AHgATAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABYAGwASAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAWAA0AEQAeAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAFAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAJABYAGgAbABsAGwAeAB0AHQAeAE8AFwAeAA0AHgAeABoAGwBPAE8ADgBQAB0AHQAdAE8ATwAXAE8ATwBPABYAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAFAATwBAAE8ATwBPAEAATwBQAFAATwBQAB4AHgAeAB4AHgAeAB0AHQAdAB0AHgAdAB4ADgBQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgBQAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAJAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAkACQAJAAkACQAJAAkABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAFAAHgAeAB4AKwArAFAAUABQAFAAGABQACsAKwArACsAHgAeAFAAHgBQAFAAUAArAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAUAAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAYAA0AKwArAB4AHgAbACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQADQAEAB4ABAAEAB4ABAAEABMABAArACsAKwArACsAKwArACsAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAKwArACsAKwBWAFYAVgBWAB4AHgArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AGgAaABoAGAAYAB4AHgAEAAQABAAEAAQABAAEAAQABAAEAAQAEwAEACsAEwATAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABLAEsASwBLAEsASwBLAEsASwBLABoAGQAZAB4AUABQAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABMAUAAEAAQABAAEAAQABAAEAB4AHgAEAAQABAAEAAQABABQAFAABAAEAB4ABAAEAAQABABQAFAASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUAAeAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAFAABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQAUABQAB4AHgAYABMAUAArACsABAAbABsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAFAABAAEAAQABAAEAFAABAAEAAQAUAAEAAQABAAEAAQAKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAArACsAHgArAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAUAAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAABAAEAA0ADQBLAEsASwBLAEsASwBLAEsASwBLAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUAArACsAKwBQAFAAUABQACsAKwAEAFAABAAEAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABABQACsAKwArACsAKwArACsAKwAEACsAKwArACsAUABQACsAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAFAAUAAaABoAUABQAFAAUABQAEwAHgAbAFAAHgAEACsAKwAEAAQABAArAFAAUABQAFAAUABQACsAKwArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQACsAUABQACsAKwAEACsABAAEAAQABAAEACsAKwArACsABAAEACsAKwAEAAQABAArACsAKwAEACsAKwArACsAKwArACsAUABQAFAAUAArAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLAAQABABQAFAAUAAEAB4AKwArACsAKwArACsAKwArACsAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQACsAKwAEAFAABAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAArACsAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAB4AGwArACsAKwArACsAKwArAFAABAAEAAQABAAEAAQAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABAArACsAKwArACsAKwArAAQABAAEACsAKwArACsAUABQACsAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAB4AUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAAQAUAArAFAAUABQAFAAUABQACsAKwArAFAAUABQACsAUABQAFAAUAArACsAKwBQAFAAKwBQACsAUABQACsAKwArAFAAUAArACsAKwBQAFAAUAArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArAAQABAAEAAQABAArACsAKwAEAAQABAArAAQABAAEAAQAKwArAFAAKwArACsAKwArACsABAArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAHgAeAB4AHgAeAB4AGwAeACsAKwArACsAKwAEAAQABAAEAAQAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAUAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAAEACsAKwArACsAKwArACsABAAEACsAUABQAFAAKwArACsAKwArAFAAUAAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAKwAOAFAAUABQAFAAUABQAFAAHgBQAAQABAAEAA4AUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAKwArAAQAUAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAAEACsAKwArACsAKwArACsABAAEACsAKwArACsAKwArACsAUAArAFAAUAAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwBQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAFAABAAEAAQABAAEAAQABAArAAQABAAEACsABAAEAAQABABQAB4AKwArACsAKwBQAFAAUAAEAFAAUABQAFAAUABQAFAAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAFAAUABQAFAAUABQABoAUABQAFAAUABQAFAAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQACsAUAArACsAUABQAFAAUABQAFAAUAArACsAKwAEACsAKwArACsABAAEAAQABAAEAAQAKwAEACsABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArAAQABAAeACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqAFwAXAAqACoAKgAqACoAKgAqACsAKwArACsAGwBcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAeAEsASwBLAEsASwBLAEsASwBLAEsADQANACsAKwArACsAKwBcAFwAKwBcACsAXABcAFwAXABcACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACsAXAArAFwAXABcAFwAXABcAFwAXABcAFwAKgBcAFwAKgAqACoAKgAqACoAKgAqACoAXAArACsAXABcAFwAXABcACsAXAArACoAKgAqACoAKgAqACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwBcAFwAXABcAFAADgAOAA4ADgAeAA4ADgAJAA4ADgANAAkAEwATABMAEwATAAkAHgATAB4AHgAeAAQABAAeAB4AHgAeAB4AHgBLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAFAAUABQAFAAUABQAFAADQAEAB4ABAAeAAQAFgARABYAEQAEAAQAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQADQAEAAQABAAEAAQADQAEAAQAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArAA0ADQAeAB4AHgAeAB4AHgAEAB4AHgAeAB4AHgAeACsAHgAeAA4ADgANAA4AHgAeAB4AHgAeAAkACQArACsAKwArACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgBcAEsASwBLAEsASwBLAEsASwBLAEsADQANAB4AHgAeAB4AXABcAFwAXABcAFwAKgAqACoAKgBcAFwAXABcACoAKgAqAFwAKgAqACoAXABcACoAKgAqACoAKgAqACoAXABcAFwAKgAqACoAKgBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKgAqAFwAKgBLAEsASwBLAEsASwBLAEsASwBLACoAKgAqACoAKgAqAFAAUABQAFAAUABQACsAUAArACsAKwArACsAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgBQAFAAUABQAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUAArACsAUABQAFAAUABQAFAAUAArAFAAKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAKwBQACsAUABQAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsABAAEAAQAHgANAB4AHgAeAB4AHgAeAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUAArACsADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAANAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAWABEAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAA0ADQANAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAANAA0AKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUAArAAQABAArACsAKwArACsAKwArACsAKwArACsAKwBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqAA0ADQAVAFwADQAeAA0AGwBcACoAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwAeAB4AEwATAA0ADQAOAB4AEwATAB4ABAAEAAQACQArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUAAEAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAHgArACsAKwATABMASwBLAEsASwBLAEsASwBLAEsASwBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAArACsAXABcAFwAXABcACsAKwArACsAKwArACsAKwArACsAKwBcAFwAXABcAFwAXABcAFwAXABcAFwAXAArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAXAArACsAKwAqACoAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAArACsAHgAeAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKwAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKwArAAQASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArACoAKgAqACoAKgAqACoAXAAqACoAKgAqACoAKgArACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABABQAFAAUABQAFAAUABQACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwANAA0AHgANAA0ADQANAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAEAAQAHgAeAB4AHgAeAB4AHgAeAB4AKwArACsABAAEAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwAeAB4AHgAeAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArAA0ADQANAA0ADQBLAEsASwBLAEsASwBLAEsASwBLACsAKwArAFAAUABQAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAA0ADQBQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUAAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArAAQABAAEAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAAQAUABQAFAAUABQAFAABABQAFAABAAEAAQAUAArACsAKwArACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsABAAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAKwBQACsAUAArAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgBQAB4AHgAeAFAAUABQACsAHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQACsAKwAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQACsAHgAeAB4AHgAeAB4AHgAOAB4AKwANAA0ADQANAA0ADQANAAkADQANAA0ACAAEAAsABAAEAA0ACQANAA0ADAAdAB0AHgAXABcAFgAXABcAFwAWABcAHQAdAB4AHgAUABQAFAANAAEAAQAEAAQABAAEAAQACQAaABoAGgAaABoAGgAaABoAHgAXABcAHQAVABUAHgAeAB4AHgAeAB4AGAAWABEAFQAVABUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ADQAeAA0ADQANAA0AHgANAA0ADQAHAB4AHgAeAB4AKwAEAAQABAAEAAQABAAEAAQABAAEAFAAUAArACsATwBQAFAAUABQAFAAHgAeAB4AFgARAE8AUABPAE8ATwBPAFAAUABQAFAAUAAeAB4AHgAWABEAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArABsAGwAbABsAGwAbABsAGgAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGgAbABsAGwAbABoAGwAbABoAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAHgAeAFAAGgAeAB0AHgBQAB4AGgAeAB4AHgAeAB4AHgAeAB4AHgBPAB4AUAAbAB4AHgBQAFAAUABQAFAAHgAeAB4AHQAdAB4AUAAeAFAAHgBQAB4AUABPAFAAUAAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAHgBQAFAAUABQAE8ATwBQAFAAUABQAFAATwBQAFAATwBQAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAFAAUABQAFAATwBPAE8ATwBPAE8ATwBPAE8ATwBQAFAAUABQAFAAUABQAFAAUAAeAB4AUABQAFAAUABPAB4AHgArACsAKwArAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHQAdAB4AHgAeAB0AHQAeAB4AHQAeAB4AHgAdAB4AHQAbABsAHgAdAB4AHgAeAB4AHQAeAB4AHQAdAB0AHQAeAB4AHQAeAB0AHgAdAB0AHQAdAB0AHQAeAB0AHgAeAB4AHgAeAB0AHQAdAB0AHgAeAB4AHgAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHgAeAB0AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAeAB0AHQAdAB0AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAeAB4AHgAdAB4AHgAeAB4AHgAeAB4AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABYAEQAWABEAHgAeAB4AHgAeAB4AHQAeAB4AHgAeAB4AHgAeACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAWABEAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAFAAHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAeAB4AHQAdAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHQAdAB4AHgAeAB4AHQAdAB0AHgAeAB0AHgAeAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlAB4AHQAdAB4AHgAdAB4AHgAeAB4AHQAdAB4AHgAeAB4AJQAlAB0AHQAlAB4AJQAlACUAIAAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAeAB4AHgAeAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAdAB0AHQAeAB0AJQAdAB0AHgAdAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAdAB0AHQAdACUAHgAlACUAJQAdACUAJQAdAB0AHQAlACUAHQAdACUAHQAdACUAJQAlAB4AHQAeAB4AHgAeAB0AHQAlAB0AHQAdAB0AHQAdACUAJQAlACUAJQAdACUAJQAgACUAHQAdACUAJQAlACUAJQAlACUAJQAeAB4AHgAlACUAIAAgACAAIAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AFwAXABcAFwAXABcAHgATABMAJQAeAB4AHgAWABEAFgARABYAEQAWABEAFgARABYAEQAWABEATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAWABEAFgARABYAEQAWABEAFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFgARABYAEQAWABEAFgARABYAEQAWABEAFgARABYAEQAWABEAFgARABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAWABEAFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAEAAQABAAeAB4AKwArACsAKwArABMADQANAA0AUAATAA0AUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUAANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAA0ADQANAA0ADQANAA0ADQAeAA0AFgANAB4AHgAXABcAHgAeABcAFwAWABEAFgARABYAEQAWABEADQANAA0ADQATAFAADQANAB4ADQANAB4AHgAeAB4AHgAMAAwADQANAA0AHgANAA0AFgANAA0ADQANAA0ADQANAA0AHgANAB4ADQANAB4AHgAeACsAKwArACsAKwArACsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwArACsAKwArACsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArAA0AEQARACUAJQBHAFcAVwAWABEAFgARABYAEQAWABEAFgARACUAJQAWABEAFgARABYAEQAWABEAFQAWABEAEQAlAFcAVwBXAFcAVwBXAFcAVwBXAAQABAAEAAQABAAEACUAVwBXAFcAVwA2ACUAJQBXAFcAVwBHAEcAJQAlACUAKwBRAFcAUQBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFEAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBRAFcAUQBXAFEAVwBXAFcAVwBXAFcAUQBXAFcAVwBXAFcAVwBRAFEAKwArAAQABAAVABUARwBHAFcAFQBRAFcAUQBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBRAFcAVwBXAFcAVwBXAFEAUQBXAFcAVwBXABUAUQBHAEcAVwArACsAKwArACsAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwAlACUAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACsAKwArACsAKwArACsAKwArACsAKwArAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBPAE8ATwBPAE8ATwBPAE8AJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAEcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAADQATAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABLAEsASwBLAEsASwBLAEsASwBLAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAABAAEAAQABAAeAAQABAAEAAQABAAEAAQABAAEAAQAHgBQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUABQAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAeAA0ADQANAA0ADQArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAB4AHgAeAB4AHgAeAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AUABQAFAAUABQAFAAUABQAFAAUABQAAQAUABQAFAABABQAFAAUABQAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAeAB4AHgAeAAQAKwArACsAUABQAFAAUABQAFAAHgAeABoAHgArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAADgAOABMAEwArACsAKwArACsAKwArACsABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwANAA0ASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUAAeAB4AHgBQAA4AUABQAAQAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAA0ADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArAB4AWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYACsAKwArAAQAHgAeAB4AHgAeAB4ADQANAA0AHgAeAB4AHgArAFAASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArAB4AHgBcAFwAXABcAFwAKgBcAFwAXABcAFwAXABcAFwAXABcAEsASwBLAEsASwBLAEsASwBLAEsAXABcAFwAXABcACsAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArAFAAUABQAAQAUABQAFAAUABQAFAAUABQAAQABAArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAHgANAA0ADQBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAXAAqACoAKgBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqAFwAKgAqACoAXABcACoAKgBcAFwAXABcAFwAKgAqAFwAKgBcACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcACoAKgBQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAA0ADQBQAFAAUAAEAAQAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUAArACsAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQADQAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAVABVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBUAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVACsAKwArACsAKwArACsAKwArACsAKwArAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAKwArACsAKwBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAKwArACsAKwAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAKwArACsAKwArAFYABABWAFYAVgBWAFYAVgBWAFYAVgBWAB4AVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgArAFYAVgBWAFYAVgArAFYAKwBWAFYAKwBWAFYAKwBWAFYAVgBWAFYAVgBWAFYAVgBWAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAEQAWAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAaAB4AKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAGAARABEAGAAYABMAEwAWABEAFAArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACUAJQAlACUAJQAWABEAFgARABYAEQAWABEAFgARABYAEQAlACUAFgARACUAJQAlACUAJQAlACUAEQAlABEAKwAVABUAEwATACUAFgARABYAEQAWABEAJQAlACUAJQAlACUAJQAlACsAJQAbABoAJQArACsAKwArAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAcAKwATACUAJQAbABoAJQAlABYAEQAlACUAEQAlABEAJQBXAFcAVwBXAFcAVwBXAFcAVwBXABUAFQAlACUAJQATACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXABYAJQARACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAWACUAEQAlABYAEQARABYAEQARABUAVwBRAFEAUQBRAFEAUQBRAFEAUQBRAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAEcARwArACsAVwBXAFcAVwBXAFcAKwArAFcAVwBXAFcAVwBXACsAKwBXAFcAVwBXAFcAVwArACsAVwBXAFcAKwArACsAGgAbACUAJQAlABsAGwArAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwAEAAQABAAQAB0AKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsADQANAA0AKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAAQAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAA0AUABQAFAAUAArACsAKwArAFAAUABQAFAAUABQAFAAUAANAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwAeACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAKwArAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUAArACsAKwBQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwANAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAUABQAFAAUABQAAQABAAEACsABAAEACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAKwBQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEACsAKwArACsABABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAA0ADQANAA0ADQANAA0ADQAeACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAArACsAKwArAFAAUABQAFAAUAANAA0ADQANAA0ADQAUACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsADQANAA0ADQANAA0ADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAAQABAAEAAQAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArAAQABAANACsAKwBQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAB4AHgAeAB4AHgArACsAKwArACsAKwAEAAQABAAEAAQABAAEAA0ADQAeAB4AHgAeAB4AKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwAeACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsASwBLAEsASwBLAEsASwBLAEsASwANAA0ADQANAFAABAAEAFAAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAeAA4AUAArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAADQANAB4ADQAEAAQABAAEAB4ABAAEAEsASwBLAEsASwBLAEsASwBLAEsAUAAOAFAADQANAA0AKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAANAA0AHgANAA0AHgAEACsAUABQAFAAUABQAFAAUAArAFAAKwBQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAA0AKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsABAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQACsABAAEAFAABAAEAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABAArACsAUAArACsAKwArACsAKwAEACsAKwArACsAKwBQAFAAUABQAFAABAAEACsAKwAEAAQABAAEAAQABAAEACsAKwArAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAAQABABQAFAAUABQAA0ADQANAA0AHgBLAEsASwBLAEsASwBLAEsASwBLAA0ADQArAB4ABABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAFAAUAAeAFAAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAArACsABAAEAAQABAAEAAQABAAEAAQADgANAA0AEwATAB4AHgAeAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAFAAUABQAFAABAAEACsAKwAEAA0ADQAeAFAAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKwArACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBcAFwADQANAA0AKgBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAKwArAFAAKwArAFAAUABQAFAAUABQAFAAUAArAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQAKwAEAAQAKwArAAQABAAEAAQAUAAEAFAABAAEAA0ADQANACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAArACsABAAEAAQABAAEAAQABABQAA4AUAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAFAABAAEAAQABAAOAB4ADQANAA0ADQAOAB4ABAArACsAKwArACsAKwArACsAUAAEAAQABAAEAAQABAAEAAQABAAEAAQAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAA0ADQANAFAADgAOAA4ADQANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEACsABAAEAAQABAAEAAQABAAEAFAADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwAOABMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAArACsAKwAEACsABAAEACsABAAEAAQABAAEAAQABABQAAQAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAKwBQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQAKwAEAAQAKwAEAAQABAAEAAQAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAaABoAGgAaAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAASABIAEgAQwBDAEMAUABQAFAAUABDAFAAUABQAEgAQwBIAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAASABDAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwAJAAkACQAJAAkACQAJABYAEQArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABIAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwANAA0AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEAAQABAANACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAA0ADQANAB4AHgAeAB4AHgAeAFAAUABQAFAADQAeACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAANAA0AHgAeACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwAEAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAARwBHABUARwAJACsAKwArACsAKwArACsAKwArACsAKwAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACsAKwArACsAKwArACsAKwBXAFcAVwBXAFcAVwBXAFcAVwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUQBRAFEAKwArACsAKwArACsAKwArACsAKwArACsAKwBRAFEAUQBRACsAKwArACsAKwArACsAKwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArACsAHgAEAAQADQAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AHgAeAB4AKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAAQABAAEAAQABAAeAB4AHgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAB4AHgAEAAQABAAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQAHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwBQAFAAKwArAFAAKwArAFAAUAArACsAUABQAFAAUAArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAUAArAFAAUABQAFAAUABQAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAHgAeAFAAUABQAFAAUAArAFAAKwArACsAUABQAFAAUABQAFAAUAArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeACsAKwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4ABAAeAB4AHgAeAB4AHgAeAB4AHgAeAAQAHgAeAA0ADQANAA0AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAAQAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArAAQABAAEAAQABAAEAAQAKwAEAAQAKwAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwBQAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArABsAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArAB4AHgAeAB4ABAAEAAQABAAEAAQABABQACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArABYAFgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAGgBQAFAAUAAaAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAKwBQACsAKwBQACsAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwBQACsAUAArACsAKwArACsAKwBQACsAKwArACsAUAArAFAAKwBQACsAUABQAFAAKwBQAFAAKwBQACsAKwBQACsAUAArAFAAKwBQACsAUAArAFAAUAArAFAAKwArAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUAArAFAAUABQAFAAKwBQACsAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAUABQAFAAKwBQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8AJQAlACUAHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB4AHgAeACUAJQAlAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAlACUAJQAlACUAHgAlACUAJQAlACUAIAAgACAAJQAlACAAJQAlACAAIAAgACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACEAIQAhACEAIQAlACUAIAAgACUAJQAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlACUAIAAlACUAJQAlACAAIAAgACUAIAAgACAAJQAlACUAJQAlACUAJQAgACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAlAB4AJQAeACUAJQAlACUAJQAgACUAJQAlACUAHgAlAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAgACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACAAIAAgACUAJQAlACAAIAAgACAAIAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABcAFwAXABUAFQAVAB4AHgAeAB4AJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAgACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAgACUAJQAgACUAJQAlACUAJQAlACUAJQAgACAAIAAgACAAIAAgACAAJQAlACUAJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAgACAAIAAgACAAIAAgACAAIAAgACUAJQAgACAAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAgACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAlACAAIAAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAgACAAIAAlACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwArAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACUAVwBXACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAA=="),ae=Array.isArray(ce)?function(ne){for(var j=ne.length,ce=[],ae=0;ae0;){var an=ae[--dt];if(Array.isArray(ne)?-1!==ne.indexOf(an):ne===an)for(var on=ce;on<=ae.length;){var Bt;if((Bt=ae[++on])===j)return!0;if(Bt!==Ne)break}if(an!==Ne)break}return!1},O=function(ne,j){for(var ce=ne;ce>=0;){var ae=j[ce];if(ae!==Ne)return ae;ce--}return 0},ie=function(ne,j,ce,ae,Ue){if(0===ce[ae])return cn;var dt=ae-1;if(Array.isArray(Ue)&&!0===Ue[dt])return cn;var Bt=dt-1,an=dt+1,on=j[dt],Wn=Bt>=0?j[Bt]:0,Zn=j[an];if(2===on&&3===Zn)return cn;if(-1!==Si.indexOf(on))return"!";if(-1!==Si.indexOf(Zn)||-1!==bi.indexOf(Zn))return cn;if(8===O(dt,j))return"\xf7";if(11===ci.get(ne[dt])||(on===ss||on===Bs)&&11===ci.get(ne[an])||7===on||7===Zn||9===on||-1===[Ne,pt,vt].indexOf(on)&&9===Zn||-1!==[qt,Ot,Bn,Cn,ai].indexOf(Zn)||O(dt,j)===Dn||D(23,Dn,dt,j)||D([qt,Ot],bn,dt,j)||D(12,12,dt,j))return cn;if(on===Ne)return"\xf7";if(23===on||23===Zn)return cn;if(16===Zn||16===on)return"\xf7";if(-1!==[pt,vt,bn].indexOf(Zn)||14===on||36===Wn&&-1!==Rs.indexOf(on)||on===ai&&36===Zn||Zn===Mn||-1!==Pi.indexOf(Zn)&&on===yn||-1!==Pi.indexOf(on)&&Zn===yn||on===ii&&-1!==[ge,ss,Bs].indexOf(Zn)||-1!==[ge,ss,Bs].indexOf(on)&&Zn===Sn||-1!==Pi.indexOf(on)&&-1!==Jn.indexOf(Zn)||-1!==Jn.indexOf(on)&&-1!==Pi.indexOf(Zn)||-1!==[ii,Sn].indexOf(on)&&(Zn===yn||-1!==[Dn,vt].indexOf(Zn)&&j[an+1]===yn)||-1!==[Dn,vt].indexOf(on)&&Zn===yn||on===yn&&-1!==[yn,ai,Cn].indexOf(Zn))return cn;if(-1!==[yn,ai,Cn,qt,Ot].indexOf(Zn))for(var ri=dt;ri>=0;){if((Xi=j[ri])===yn)return cn;if(-1===[ai,Cn].indexOf(Xi))break;ri--}if(-1!==[ii,Sn].indexOf(Zn))for(ri=-1!==[qt,Ot].indexOf(on)?Bt:dt;ri>=0;){var Xi;if((Xi=j[ri])===yn)return cn;if(-1===[ai,Cn].indexOf(Xi))break;ri--}if(ye===on&&-1!==[ye,Pe,yo,xt].indexOf(Zn)||-1!==[Pe,yo].indexOf(on)&&-1!==[Pe,At].indexOf(Zn)||-1!==[At,xt].indexOf(on)&&Zn===At||-1!==Ln.indexOf(on)&&-1!==[Mn,Sn].indexOf(Zn)||-1!==Ln.indexOf(Zn)&&on===ii||-1!==Pi.indexOf(on)&&-1!==Pi.indexOf(Zn)||on===Cn&&-1!==Pi.indexOf(Zn)||-1!==Pi.concat(yn).indexOf(on)&&Zn===Dn&&-1===un.indexOf(ne[an])||-1!==Pi.concat(yn).indexOf(Zn)&&on===Ot)return cn;if(41===on&&41===Zn){for(var Ss=ce[dt],Ur=1;Ss>0&&41===j[--Ss];)Ur++;if(Ur%2!=0)return cn}return on===ss&&Zn===Bs?cn:"\xf7"},_e=function(ne,j){j||(j={lineBreak:"normal",wordBreak:"normal"});var ce=function(ne,j){void 0===j&&(j="strict");var ce=[],ae=[],Ue=[];return ne.forEach(function(dt,Bt){var an=ci.get(dt);if(an>50?(Ue.push(!0),an-=50):Ue.push(!1),-1!==["normal","auto","loose"].indexOf(j)&&-1!==[8208,8211,12316,12448].indexOf(dt))return ae.push(Bt),ce.push(16);if(4===an||11===an){if(0===Bt)return ae.push(Bt),ce.push(ti);var on=ce[Bt-1];return-1===Wi.indexOf(on)?(ae.push(ae[Bt-1]),ce.push(on)):(ae.push(Bt),ce.push(ti))}return ae.push(Bt),31===an?ce.push("strict"===j?bn:ge):an===Nt||29===an?ce.push(ti):43===an?ce.push(dt>=131072&&dt<=196605||dt>=196608&&dt<=262141?ge:ti):void ce.push(an)}),[ae,ce,Ue]}(ne,j.lineBreak),ae=ce[0],Ue=ce[1],dt=ce[2];return("break-all"===j.wordBreak||"break-word"===j.wordBreak)&&(Ue=Ue.map(function(an){return-1!==[yn,ti,Nt].indexOf(an)?ge:an})),[ae,Ue,"keep-all"===j.wordBreak?dt.map(function(an,on){return an&&ne[on]>=19968&&ne[on]<=40959}):void 0]},Oe=function(){function ne(j,ce,ae,Ue){this.codePoints=j,this.required="!"===ce,this.start=ae,this.end=Ue}return ne.prototype.slice=function(){return Re.apply(void 0,this.codePoints.slice(this.start,this.end))},ne}(),$o=function(ne){return ne>=48&&ne<=57},Uf=function(ne){return $o(ne)||ne>=65&&ne<=70||ne>=97&&ne<=102},xm=function(ne){return 10===ne||9===ne||32===ne},xg=function(ne){return function(ne){return function(ne){return ne>=97&&ne<=122}(ne)||function(ne){return ne>=65&&ne<=90}(ne)}(ne)||function(ne){return ne>=128}(ne)||95===ne},Xu=function(ne){return xg(ne)||$o(ne)||45===ne},wg=function(ne){return ne>=0&&ne<=8||11===ne||ne>=14&&ne<=31||127===ne},Hf=function(ne,j){return 92===ne&&10!==j},go=function(ne,j,ce){return 45===ne?xg(j)||Hf(j,ce):!!xg(ne)||!(92!==ne||!Hf(ne,j))},Wa=function(ne,j,ce){return 43===ne||45===ne?!!$o(j)||46===j&&$o(ce):$o(46===ne?j:ne)},LC=function(ne){var j=0,ce=1;(43===ne[j]||45===ne[j])&&(45===ne[j]&&(ce=-1),j++);for(var ae=[];$o(ne[j]);)ae.push(ne[j++]);var Ue=ae.length?parseInt(Re.apply(void 0,ae),10):0;46===ne[j]&&j++;for(var dt=[];$o(ne[j]);)dt.push(ne[j++]);var Bt=dt.length,an=Bt?parseInt(Re.apply(void 0,dt),10):0;(69===ne[j]||101===ne[j])&&j++;var on=1;(43===ne[j]||45===ne[j])&&(45===ne[j]&&(on=-1),j++);for(var Wn=[];$o(ne[j]);)Wn.push(ne[j++]);var Zn=Wn.length?parseInt(Re.apply(void 0,Wn),10):0;return ce*(Ue+an*Math.pow(10,-Bt))*Math.pow(10,on*Zn)},Ex={type:2},Tx={type:3},Dx={type:4},Cg={type:13},Mg={type:8},va={type:21},Sg={type:9},h1={type:10},jd={type:11},u1={type:12},Ix={type:14},z0={type:23},wp={type:1},f1={type:25},H0={type:24},Bx={type:26},Px={type:27},Rx={type:28},av={type:29},_A={type:31},p1={type:32},Vf=function(){function ne(){this._value=[]}return ne.prototype.write=function(j){this._value=this._value.concat(Ze(j))},ne.prototype.read=function(){for(var j=[],ce=this.consumeToken();ce!==p1;)j.push(ce),ce=this.consumeToken();return j},ne.prototype.consumeToken=function(){var j=this.consumeCodePoint();switch(j){case 34:return this.consumeStringToken(34);case 35:var ce=this.peekCodePoint(0),ae=this.peekCodePoint(1),Ue=this.peekCodePoint(2);if(Xu(ce)||Hf(ae,Ue)){var dt=go(ce,ae,Ue)?2:1;return{type:5,value:this.consumeName(),flags:dt}}break;case 36:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),Cg;break;case 39:return this.consumeStringToken(39);case 40:return Ex;case 41:return Tx;case 42:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),Ix;break;case 43:if(Wa(j,this.peekCodePoint(0),this.peekCodePoint(1)))return this.reconsumeCodePoint(j),this.consumeNumericToken();break;case 44:return Dx;case 45:var an=j,on=this.peekCodePoint(0),Wn=this.peekCodePoint(1);if(Wa(an,on,Wn))return this.reconsumeCodePoint(j),this.consumeNumericToken();if(go(an,on,Wn))return this.reconsumeCodePoint(j),this.consumeIdentLikeToken();if(45===on&&62===Wn)return this.consumeCodePoint(),this.consumeCodePoint(),H0;break;case 46:if(Wa(j,this.peekCodePoint(0),this.peekCodePoint(1)))return this.reconsumeCodePoint(j),this.consumeNumericToken();break;case 47:if(42===this.peekCodePoint(0))for(this.consumeCodePoint();;){var Zn=this.consumeCodePoint();if(42===Zn&&47===(Zn=this.consumeCodePoint()))return this.consumeToken();if(-1===Zn)return this.consumeToken()}break;case 58:return Bx;case 59:return Px;case 60:if(33===this.peekCodePoint(0)&&45===this.peekCodePoint(1)&&45===this.peekCodePoint(2))return this.consumeCodePoint(),this.consumeCodePoint(),f1;break;case 64:var ri=this.peekCodePoint(0),Xi=this.peekCodePoint(1),Ss=this.peekCodePoint(2);if(go(ri,Xi,Ss))return{type:7,value:this.consumeName()};break;case 91:return Rx;case 92:if(Hf(j,this.peekCodePoint(0)))return this.reconsumeCodePoint(j),this.consumeIdentLikeToken();break;case 93:return av;case 61:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),Mg;break;case 123:return jd;case 125:return u1;case 117:case 85:var Ur=this.peekCodePoint(0),zr=this.peekCodePoint(1);return 43===Ur&&(Uf(zr)||63===zr)&&(this.consumeCodePoint(),this.consumeUnicodeRangeToken()),this.reconsumeCodePoint(j),this.consumeIdentLikeToken();case 124:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),Sg;if(124===this.peekCodePoint(0))return this.consumeCodePoint(),va;break;case 126:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),h1;break;case-1:return p1}return xm(j)?(this.consumeWhiteSpace(),_A):$o(j)?(this.reconsumeCodePoint(j),this.consumeNumericToken()):xg(j)?(this.reconsumeCodePoint(j),this.consumeIdentLikeToken()):{type:6,value:Re(j)}},ne.prototype.consumeCodePoint=function(){var j=this._value.shift();return typeof j>"u"?-1:j},ne.prototype.reconsumeCodePoint=function(j){this._value.unshift(j)},ne.prototype.peekCodePoint=function(j){return j>=this._value.length?-1:this._value[j]},ne.prototype.consumeUnicodeRangeToken=function(){for(var j=[],ce=this.consumeCodePoint();Uf(ce)&&j.length<6;)j.push(ce),ce=this.consumeCodePoint();for(var ae=!1;63===ce&&j.length<6;)j.push(ce),ce=this.consumeCodePoint(),ae=!0;if(ae)return{type:30,start:parseInt(Re.apply(void 0,j.map(function(on){return 63===on?48:on})),16),end:parseInt(Re.apply(void 0,j.map(function(on){return 63===on?70:on})),16)};var Bt=parseInt(Re.apply(void 0,j),16);if(45===this.peekCodePoint(0)&&Uf(this.peekCodePoint(1))){this.consumeCodePoint(),ce=this.consumeCodePoint();for(var an=[];Uf(ce)&&an.length<6;)an.push(ce),ce=this.consumeCodePoint();return{type:30,start:Bt,end:parseInt(Re.apply(void 0,an),16)}}return{type:30,start:Bt,end:Bt}},ne.prototype.consumeIdentLikeToken=function(){var j=this.consumeName();return"url"===j.toLowerCase()&&40===this.peekCodePoint(0)?(this.consumeCodePoint(),this.consumeUrlToken()):40===this.peekCodePoint(0)?(this.consumeCodePoint(),{type:19,value:j}):{type:20,value:j}},ne.prototype.consumeUrlToken=function(){var j=[];if(this.consumeWhiteSpace(),-1===this.peekCodePoint(0))return{type:22,value:""};var ce=this.peekCodePoint(0);if(39===ce||34===ce){var ae=this.consumeStringToken(this.consumeCodePoint());return 0===ae.type&&(this.consumeWhiteSpace(),-1===this.peekCodePoint(0)||41===this.peekCodePoint(0))?(this.consumeCodePoint(),{type:22,value:ae.value}):(this.consumeBadUrlRemnants(),z0)}for(;;){var Ue=this.consumeCodePoint();if(-1===Ue||41===Ue)return{type:22,value:Re.apply(void 0,j)};if(xm(Ue))return this.consumeWhiteSpace(),-1===this.peekCodePoint(0)||41===this.peekCodePoint(0)?(this.consumeCodePoint(),{type:22,value:Re.apply(void 0,j)}):(this.consumeBadUrlRemnants(),z0);if(34===Ue||39===Ue||40===Ue||wg(Ue))return this.consumeBadUrlRemnants(),z0;if(92===Ue){if(!Hf(Ue,this.peekCodePoint(0)))return this.consumeBadUrlRemnants(),z0;j.push(this.consumeEscapedCodePoint())}else j.push(Ue)}},ne.prototype.consumeWhiteSpace=function(){for(;xm(this.peekCodePoint(0));)this.consumeCodePoint()},ne.prototype.consumeBadUrlRemnants=function(){for(;;){var j=this.consumeCodePoint();if(41===j||-1===j)return;Hf(j,this.peekCodePoint(0))&&this.consumeEscapedCodePoint()}},ne.prototype.consumeStringSlice=function(j){for(var ae="";j>0;){var Ue=Math.min(5e4,j);ae+=Re.apply(void 0,this._value.splice(0,Ue)),j-=Ue}return this._value.shift(),ae},ne.prototype.consumeStringToken=function(j){for(var ce="",ae=0;;){var Ue=this._value[ae];if(-1===Ue||void 0===Ue||Ue===j)return{type:0,value:ce+=this.consumeStringSlice(ae)};if(10===Ue)return this._value.splice(0,ae),wp;if(92===Ue){var dt=this._value[ae+1];-1!==dt&&void 0!==dt&&(10===dt?(ce+=this.consumeStringSlice(ae),ae=-1,this._value.shift()):Hf(Ue,dt)&&(ce+=this.consumeStringSlice(ae),ce+=Re(this.consumeEscapedCodePoint()),ae=-1))}ae++}},ne.prototype.consumeNumber=function(){var j=[],ce=4,ae=this.peekCodePoint(0);for((43===ae||45===ae)&&j.push(this.consumeCodePoint());$o(this.peekCodePoint(0));)j.push(this.consumeCodePoint());ae=this.peekCodePoint(0);var Ue=this.peekCodePoint(1);if(46===ae&&$o(Ue))for(j.push(this.consumeCodePoint(),this.consumeCodePoint()),ce=8;$o(this.peekCodePoint(0));)j.push(this.consumeCodePoint());ae=this.peekCodePoint(0),Ue=this.peekCodePoint(1);var dt=this.peekCodePoint(2);if((69===ae||101===ae)&&((43===Ue||45===Ue)&&$o(dt)||$o(Ue)))for(j.push(this.consumeCodePoint(),this.consumeCodePoint()),ce=8;$o(this.peekCodePoint(0));)j.push(this.consumeCodePoint());return[LC(j),ce]},ne.prototype.consumeNumericToken=function(){var j=this.consumeNumber(),ce=j[0],ae=j[1],Ue=this.peekCodePoint(0),dt=this.peekCodePoint(1),Bt=this.peekCodePoint(2);return go(Ue,dt,Bt)?{type:15,number:ce,flags:ae,unit:this.consumeName()}:37===Ue?(this.consumeCodePoint(),{type:16,number:ce,flags:ae}):{type:17,number:ce,flags:ae}},ne.prototype.consumeEscapedCodePoint=function(){var j=this.consumeCodePoint();if(Uf(j)){for(var ce=Re(j);Uf(this.peekCodePoint(0))&&ce.length<6;)ce+=Re(this.consumeCodePoint());xm(this.peekCodePoint(0))&&this.consumeCodePoint();var ae=parseInt(ce,16);return 0===ae||function(ne){return ne>=55296&&ne<=57343}(ae)||ae>1114111?65533:ae}return-1===j?65533:j},ne.prototype.consumeName=function(){for(var j="";;){var ce=this.consumeCodePoint();if(Xu(ce))j+=Re(ce);else{if(!Hf(ce,this.peekCodePoint(0)))return this.reconsumeCodePoint(ce),j;j+=Re(this.consumeEscapedCodePoint())}}},ne}(),V0=function(){function ne(j){this._tokens=j}return ne.create=function(j){var ce=new Vf;return ce.write(j),new ne(ce.read())},ne.parseValue=function(j){return ne.create(j).parseComponentValue()},ne.parseValues=function(j){return ne.create(j).parseComponentValues()},ne.prototype.parseComponentValue=function(){for(var j=this.consumeToken();31===j.type;)j=this.consumeToken();if(32===j.type)throw new SyntaxError("Error parsing CSS component value, unexpected EOF");this.reconsumeToken(j);var ce=this.consumeComponentValue();do{j=this.consumeToken()}while(31===j.type);if(32===j.type)return ce;throw new SyntaxError("Error parsing CSS component value, multiple values found when expecting only one")},ne.prototype.parseComponentValues=function(){for(var j=[];;){var ce=this.consumeComponentValue();if(32===ce.type)return j;j.push(ce),j.push()}},ne.prototype.consumeComponentValue=function(){var j=this.consumeToken();switch(j.type){case 11:case 28:case 2:return this.consumeSimpleBlock(j.type);case 19:return this.consumeFunction(j)}return j},ne.prototype.consumeSimpleBlock=function(j){for(var ce={type:j,values:[]},ae=this.consumeToken();;){if(32===ae.type||Ah(ae,j))return ce;this.reconsumeToken(ae),ce.values.push(this.consumeComponentValue()),ae=this.consumeToken()}},ne.prototype.consumeFunction=function(j){for(var ce={name:j.value,values:[],type:18};;){var ae=this.consumeToken();if(32===ae.type||3===ae.type)return ce;this.reconsumeToken(ae),ce.values.push(this.consumeComponentValue())}},ne.prototype.consumeToken=function(){var j=this._tokens.shift();return typeof j>"u"?p1:j},ne.prototype.reconsumeToken=function(j){this._tokens.unshift(j)},ne}(),xi=function(ne){return 15===ne.type},Dd=function(ne){return 17===ne.type},pi=function(ne){return 20===ne.type},bu=function(ne){return 0===ne.type},Ac=function(ne,j){return pi(ne)&&ne.value===j},Cp=function(ne){return 31!==ne.type},$d=function(ne){return 31!==ne.type&&4!==ne.type},pd=function(ne){var j=[],ce=[];return ne.forEach(function(ae){if(4===ae.type){if(0===ce.length)throw new Error("Error parsing function args, zero tokens for arg");return j.push(ce),void(ce=[])}31!==ae.type&&ce.push(ae)}),ce.length&&j.push(ce),j},Ah=function(ne,j){return 11===j&&12===ne.type||28===j&&29===ne.type||2===j&&3===ne.type},nl=function(ne){return 17===ne.type||15===ne.type},cl=function(ne){return 16===ne.type||nl(ne)},G0=function(ne){return ne.length>1?[ne[0],ne[1]]:[ne[0]]},Xl={type:17,number:0,flags:4},Gf={type:16,number:50,flags:4},md={type:16,number:100,flags:4},wm=function(ne,j,ce){var ae=ne[0],Ue=ne[1];return[ua(ae,j),ua(typeof Ue<"u"?Ue:ae,ce)]},ua=function(ne,j){if(16===ne.type)return ne.number/100*j;if(xi(ne))switch(ne.unit){case"rem":case"em":return 16*ne.number;default:return ne.number}return ne.number},kh_parse=function(ne,j){if(15===j.type)switch(j.unit){case"deg":return Math.PI*j.number/180;case"grad":return Math.PI/200*j.number;case"rad":return j.number;case"turn":return 2*Math.PI*j.number}throw new Error("Unsupported angle type")},m1=function(ne){return 15===ne.type&&("deg"===ne.unit||"grad"===ne.unit||"rad"===ne.unit||"turn"===ne.unit)},Yu=function(ne){switch(ne.filter(pi).map(function(ce){return ce.value}).join(" ")){case"to bottom right":case"to right bottom":case"left top":case"top left":return[Xl,Xl];case"to top":case"bottom":return gh(0);case"to bottom left":case"to left bottom":case"right top":case"top right":return[Xl,md];case"to right":case"left":return gh(90);case"to top left":case"to left top":case"right bottom":case"bottom right":return[md,md];case"to bottom":case"top":return gh(180);case"to top right":case"to right top":case"left bottom":case"bottom left":return[md,Xl];case"to left":case"right":return gh(270)}return 0},gh=function(ne){return Math.PI*ne/180},Yl_parse=function(ne,j){if(18===j.type){var ce=zo[j.name];if(typeof ce>"u")throw new Error('Attempting to parse an unsupported color function "'+j.name+'"');return ce(ne,j.values)}if(5===j.type){if(3===j.value.length){var ae=j.value.substring(0,1),Ue=j.value.substring(1,2),dt=j.value.substring(2,3);return Kl(parseInt(ae+ae,16),parseInt(Ue+Ue,16),parseInt(dt+dt,16),1)}if(4===j.value.length){ae=j.value.substring(0,1),Ue=j.value.substring(1,2),dt=j.value.substring(2,3);var Bt=j.value.substring(3,4);return Kl(parseInt(ae+ae,16),parseInt(Ue+Ue,16),parseInt(dt+dt,16),parseInt(Bt+Bt,16)/255)}if(6===j.value.length)return ae=j.value.substring(0,2),Ue=j.value.substring(2,4),dt=j.value.substring(4,6),Kl(parseInt(ae,16),parseInt(Ue,16),parseInt(dt,16),1);if(8===j.value.length)return ae=j.value.substring(0,2),Ue=j.value.substring(2,4),dt=j.value.substring(4,6),Bt=j.value.substring(6,8),Kl(parseInt(ae,16),parseInt(Ue,16),parseInt(dt,16),parseInt(Bt,16)/255)}if(20===j.type){var an=Wc[j.value.toUpperCase()];if(typeof an<"u")return an}return Wc.TRANSPARENT},Xd=function(ne){return!(255&ne)},vl=function(ne){var j=255&ne,ce=255&ne>>8,ae=255&ne>>16,Ue=255&ne>>24;return j<255?"rgba("+Ue+","+ae+","+ce+","+j/255+")":"rgb("+Ue+","+ae+","+ce+")"},Kl=function(ne,j,ce,ae){return(ne<<24|j<<16|ce<<8|Math.round(255*ae))>>>0},ko=function(ne,j){if(17===ne.type)return ne.number;if(16===ne.type){var ce=3===j?1:255;return 3===j?ne.number/100*ce:Math.round(ne.number/100*ce)}return 0},xu=function(ne,j){var ce=j.filter($d);if(3===ce.length){var ae=ce.map(ko);return Kl(ae[0],ae[1],ae[2],1)}if(4===ce.length){var an=ce.map(ko);return Kl(an[0],an[1],an[2],an[3])}return 0};function za(ne,j,ce){return ce<0&&(ce+=1),ce>=1&&(ce-=1),ce<1/6?(j-ne)*ce*6+ne:ce<.5?j:ce<2/3?6*(j-ne)*(2/3-ce)+ne:ne}var Ui=function(ne,j){var ce=j.filter($d),ae=ce[0],Ue=ce[1],dt=ce[2],Bt=ce[3],an=(17===ae.type?gh(ae.number):kh_parse(ne,ae))/(2*Math.PI),on=cl(Ue)?Ue.number/100:0,Wn=cl(dt)?dt.number/100:0,Zn=typeof Bt<"u"&&cl(Bt)?ua(Bt,1):1;if(0===on)return Kl(255*Wn,255*Wn,255*Wn,1);var ri=Wn<=.5?Wn*(on+1):Wn+on-Wn*on,Xi=2*Wn-ri,Ss=za(Xi,ri,an+1/3),Ur=za(Xi,ri,an),zr=za(Xi,ri,an-1/3);return Kl(255*Ss,255*Ur,255*zr,Zn)},zo={hsl:Ui,hsla:Ui,rgb:xu,rgba:xu},eu=function(ne,j){return Yl_parse(ne,V0.create(j).parseComponentValue())},Wc={ALICEBLUE:4042850303,ANTIQUEWHITE:4209760255,AQUA:16777215,AQUAMARINE:2147472639,AZURE:4043309055,BEIGE:4126530815,BISQUE:4293182719,BLACK:255,BLANCHEDALMOND:4293643775,BLUE:65535,BLUEVIOLET:2318131967,BROWN:2771004159,BURLYWOOD:3736635391,CADETBLUE:1604231423,CHARTREUSE:2147418367,CHOCOLATE:3530104575,CORAL:4286533887,CORNFLOWERBLUE:1687547391,CORNSILK:4294499583,CRIMSON:3692313855,CYAN:16777215,DARKBLUE:35839,DARKCYAN:9145343,DARKGOLDENROD:3095837695,DARKGRAY:2846468607,DARKGREEN:6553855,DARKGREY:2846468607,DARKKHAKI:3182914559,DARKMAGENTA:2332068863,DARKOLIVEGREEN:1433087999,DARKORANGE:4287365375,DARKORCHID:2570243327,DARKRED:2332033279,DARKSALMON:3918953215,DARKSEAGREEN:2411499519,DARKSLATEBLUE:1211993087,DARKSLATEGRAY:793726975,DARKSLATEGREY:793726975,DARKTURQUOISE:13554175,DARKVIOLET:2483082239,DEEPPINK:4279538687,DEEPSKYBLUE:12582911,DIMGRAY:1768516095,DIMGREY:1768516095,DODGERBLUE:512819199,FIREBRICK:2988581631,FLORALWHITE:4294635775,FORESTGREEN:579543807,FUCHSIA:4278255615,GAINSBORO:3705462015,GHOSTWHITE:4177068031,GOLD:4292280575,GOLDENROD:3668254975,GRAY:2155905279,GREEN:8388863,GREENYELLOW:2919182335,GREY:2155905279,HONEYDEW:4043305215,HOTPINK:4285117695,INDIANRED:3445382399,INDIGO:1258324735,IVORY:4294963455,KHAKI:4041641215,LAVENDER:3873897215,LAVENDERBLUSH:4293981695,LAWNGREEN:2096890111,LEMONCHIFFON:4294626815,LIGHTBLUE:2916673279,LIGHTCORAL:4034953471,LIGHTCYAN:3774873599,LIGHTGOLDENRODYELLOW:4210742015,LIGHTGRAY:3553874943,LIGHTGREEN:2431553791,LIGHTGREY:3553874943,LIGHTPINK:4290167295,LIGHTSALMON:4288707327,LIGHTSEAGREEN:548580095,LIGHTSKYBLUE:2278488831,LIGHTSLATEGRAY:2005441023,LIGHTSLATEGREY:2005441023,LIGHTSTEELBLUE:2965692159,LIGHTYELLOW:4294959359,LIME:16711935,LIMEGREEN:852308735,LINEN:4210091775,MAGENTA:4278255615,MAROON:2147483903,MEDIUMAQUAMARINE:1724754687,MEDIUMBLUE:52735,MEDIUMORCHID:3126187007,MEDIUMPURPLE:2473647103,MEDIUMSEAGREEN:1018393087,MEDIUMSLATEBLUE:2070474495,MEDIUMSPRINGGREEN:16423679,MEDIUMTURQUOISE:1221709055,MEDIUMVIOLETRED:3340076543,MIDNIGHTBLUE:421097727,MINTCREAM:4127193855,MISTYROSE:4293190143,MOCCASIN:4293178879,NAVAJOWHITE:4292783615,NAVY:33023,OLDLACE:4260751103,OLIVE:2155872511,OLIVEDRAB:1804477439,ORANGE:4289003775,ORANGERED:4282712319,ORCHID:3664828159,PALEGOLDENROD:4008225535,PALEGREEN:2566625535,PALETURQUOISE:2951671551,PALEVIOLETRED:3681588223,PAPAYAWHIP:4293907967,PEACHPUFF:4292524543,PERU:3448061951,PINK:4290825215,PLUM:3718307327,POWDERBLUE:2967529215,PURPLE:2147516671,REBECCAPURPLE:1714657791,RED:4278190335,ROSYBROWN:3163525119,ROYALBLUE:1097458175,SADDLEBROWN:2336560127,SALMON:4202722047,SANDYBROWN:4104413439,SEAGREEN:780883967,SEASHELL:4294307583,SIENNA:2689740287,SILVER:3233857791,SKYBLUE:2278484991,SLATEBLUE:1784335871,SLATEGRAY:1887473919,SLATEGREY:1887473919,SNOW:4294638335,SPRINGGREEN:16744447,STEELBLUE:1182971135,TAN:3535047935,TEAL:8421631,THISTLE:3636451583,TOMATO:4284696575,TRANSPARENT:0,TURQUOISE:1088475391,VIOLET:4001558271,WHEAT:4125012991,WHITE:4294967295,WHITESMOKE:4126537215,YELLOW:4294902015,YELLOWGREEN:2597139199},Tg={name:"background-clip",initialValue:"border-box",prefix:!1,type:1,parse:function(ne,j){return j.map(function(ce){if(pi(ce))switch(ce.value){case"padding-box":return 1;case"content-box":return 2}return 0})}},Ad={name:"background-color",initialValue:"transparent",prefix:!1,type:3,format:"color"},mi=function(ne,j){var ce=Yl_parse(ne,j[0]),ae=j[1];return ae&&cl(ae)?{color:ce,stop:ae}:{color:ce,stop:null}},Dg=function(ne,j){var ce=ne[0],ae=ne[ne.length-1];null===ce.stop&&(ce.stop=Xl),null===ae.stop&&(ae.stop=md);for(var Ue=[],dt=0,Bt=0;Btdt?on:dt),dt=on}else Ue.push(null)}var Wn=null;for(Bt=0;BtBt.optimumDistance)?{optimumCorner:an,optimumDistance:Zn}:Bt},{optimumDistance:Ue?1/0:-1/0,optimumCorner:null}).optimumCorner},Ya=function(ne,j){var ce=gh(180),ae=[];return pd(j).forEach(function(Ue,dt){if(0===dt){var Bt=Ue[0];if(20===Bt.type&&-1!==["top","left","right","bottom"].indexOf(Bt.value))return void(ce=Yu(Ue));if(m1(Bt))return void(ce=(kh_parse(ne,Bt)+gh(270))%gh(360))}var an=mi(ne,Ue);ae.push(an)}),{angle:ce,stops:ae,type:1}},Bg="closest-side",Wf="farthest-side",yh="closest-corner",lv="farthest-corner",$f="ellipse",vh="contain",vA=function(ne,j){var ce=0,ae=3,Ue=[],dt=[];return pd(j).forEach(function(Bt,an){var on=!0;if(0===an?on=Bt.reduce(function(Zn,ri){if(pi(ri))switch(ri.value){case"center":return dt.push(Gf),!1;case"top":case"left":return dt.push(Xl),!1;case"right":case"bottom":return dt.push(md),!1}else if(cl(ri)||nl(ri))return dt.push(ri),!1;return Zn},on):1===an&&(on=Bt.reduce(function(Zn,ri){if(pi(ri))switch(ri.value){case"circle":return ce=0,!1;case $f:return ce=1,!1;case vh:case Bg:return ae=0,!1;case Wf:return ae=1,!1;case yh:return ae=2,!1;case"cover":case lv:return ae=3,!1}else if(nl(ri)||cl(ri))return Array.isArray(ae)||(ae=[]),ae.push(ri),!1;return Zn},on)),on){var Wn=mi(ne,Bt);Ue.push(Wn)}}),{size:ae,shape:ce,stops:Ue,position:dt,type:2}},tu_parse=function(ne,j){if(22===j.type){var ce={url:j.value,type:0};return ne.cache.addImage(j.value),ce}if(18===j.type){var ae=Pg[j.name];if(typeof ae>"u")throw new Error('Attempting to parse an unsupported image function "'+j.name+'"');return ae(ne,j.values)}throw new Error("Unsupported image type "+j.type)};for(var Pg={"linear-gradient":function(ne,j){var ce=gh(180),ae=[];return pd(j).forEach(function(Ue,dt){if(0===dt){var Bt=Ue[0];if(20===Bt.type&&"to"===Bt.value)return void(ce=Yu(Ue));if(m1(Bt))return void(ce=kh_parse(ne,Bt))}var an=mi(ne,Ue);ae.push(an)}),{angle:ce,stops:ae,type:1}},"-moz-linear-gradient":Ya,"-ms-linear-gradient":Ya,"-o-linear-gradient":Ya,"-webkit-linear-gradient":Ya,"radial-gradient":function(ne,j){var ce=0,ae=3,Ue=[],dt=[];return pd(j).forEach(function(Bt,an){var on=!0;if(0===an){var Wn=!1;on=Bt.reduce(function(ri,Xi){if(Wn)if(pi(Xi))switch(Xi.value){case"center":return dt.push(Gf),ri;case"top":case"left":return dt.push(Xl),ri;case"right":case"bottom":return dt.push(md),ri}else(cl(Xi)||nl(Xi))&&dt.push(Xi);else if(pi(Xi))switch(Xi.value){case"circle":return ce=0,!1;case $f:return ce=1,!1;case"at":return Wn=!0,!1;case Bg:return ae=0,!1;case"cover":case Wf:return ae=1,!1;case vh:case yh:return ae=2,!1;case lv:return ae=3,!1}else if(nl(Xi)||cl(Xi))return Array.isArray(ae)||(ae=[]),ae.push(Xi),!1;return ri},on)}if(on){var Zn=mi(ne,Bt);Ue.push(Zn)}}),{size:ae,shape:ce,stops:Ue,position:dt,type:2}},"-moz-radial-gradient":vA,"-ms-radial-gradient":vA,"-o-radial-gradient":vA,"-webkit-radial-gradient":vA,"-webkit-gradient":function(ne,j){var ce=gh(180),ae=[],Ue=1;return pd(j).forEach(function(on,Wn){var Zn=on[0];if(0===Wn){if(pi(Zn)&&"linear"===Zn.value)return void(Ue=1);if(pi(Zn)&&"radial"===Zn.value)return void(Ue=2)}if(18===Zn.type)if("from"===Zn.name){var ri=Yl_parse(ne,Zn.values[0]);ae.push({stop:Xl,color:ri})}else if("to"===Zn.name)ri=Yl_parse(ne,Zn.values[0]),ae.push({stop:md,color:ri});else if("color-stop"===Zn.name){var Xi=Zn.values.filter($d);if(2===Xi.length){ri=Yl_parse(ne,Xi[1]);var Ss=Xi[0];Dd(Ss)&&ae.push({stop:{type:16,number:100*Ss.number,flags:Ss.flags},color:ri})}}}),1===Ue?{angle:(ce+gh(180))%gh(360),stops:ae,type:Ue}:{size:3,shape:0,stops:ae,position:[],type:Ue}}},Os={name:"background-image",initialValue:"none",type:1,prefix:!1,parse:function(ne,j){if(0===j.length)return[];var ce=j[0];return 20===ce.type&&"none"===ce.value?[]:j.filter(function(ae){return $d(ae)&&function rs(ne){return!(20===ne.type&&"none"===ne.value||18===ne.type&&!Pg[ne.name])}(ae)}).map(function(ae){return tu_parse(ne,ae)})}},vo={name:"background-origin",initialValue:"border-box",prefix:!1,type:1,parse:function(ne,j){return j.map(function(ce){if(pi(ce))switch(ce.value){case"padding-box":return 1;case"content-box":return 2}return 0})}},Oh={name:"background-position",initialValue:"0% 0%",type:1,prefix:!1,parse:function(ne,j){return pd(j).map(function(ce){return ce.filter(cl)}).map(G0)}},Ft={name:"background-repeat",initialValue:"repeat",prefix:!1,type:1,parse:function(ne,j){return pd(j).map(function(ce){return ce.filter(pi).map(function(ae){return ae.value}).join(" ")}).map(Ic)}},Ic=function(ne){switch(ne){case"no-repeat":return 1;case"repeat-x":case"repeat no-repeat":return 2;case"repeat-y":case"no-repeat repeat":return 3;default:return 0}},Wo=function(ne){return ne.AUTO="auto",ne.CONTAIN="contain",ne.COVER="cover",ne}(Wo||{}),rl={name:"background-size",initialValue:"0",prefix:!1,type:1,parse:function(ne,j){return pd(j).map(function(ce){return ce.filter(bl)})}},bl=function(ne){return pi(ne)||cl(ne)},Sl=function(ne){return{name:"border-"+ne+"-color",initialValue:"transparent",prefix:!1,type:3,format:"color"}},Bc=Sl("top"),Sp=Sl("right"),Ep=Sl("bottom"),_c=Sl("left"),Pc=function(ne){return{name:"border-radius-"+ne,initialValue:"0 0",prefix:!1,type:1,parse:function(j,ce){return G0(ce.filter(cl))}}},Zu=Pc("top-left"),Lh=Pc("top-right"),Mm=Pc("bottom-right"),Tp=Pc("bottom-left"),Dp=function(ne){return{name:"border-"+ne+"-style",initialValue:"solid",prefix:!1,type:2,parse:function(j,ce){switch(ce){case"none":return 0;case"dashed":return 2;case"dotted":return 3;case"double":return 4}return 1}}},Nh=Dp("top"),g1=Dp("right"),Q0=Dp("bottom"),bA=Dp("left"),Ju=function(ne){return{name:"border-"+ne+"-width",initialValue:"0",type:0,prefix:!1,parse:function(j,ce){return xi(ce)?ce.number:0}}},Yd=Ju("top"),Rg=Ju("right"),Ip=Ju("bottom"),cv=Ju("left"),nu={name:"color",initialValue:"transparent",prefix:!1,type:3,format:"color"},yc={name:"direction",initialValue:"ltr",prefix:!1,type:2,parse:function(ne,j){return"rtl"===j?1:0}},kg={name:"display",initialValue:"inline-block",prefix:!1,type:1,parse:function(ne,j){return j.filter(pi).reduce(function(ce,ae){return ce|ef(ae.value)},0)}},ef=function(ne){switch(ne){case"block":case"-webkit-box":return 2;case"inline":return 4;case"run-in":return 8;case"flow":return 16;case"flow-root":return 32;case"table":return 64;case"flex":case"-webkit-flex":return 128;case"grid":case"-ms-grid":return 256;case"ruby":return 512;case"subgrid":return 1024;case"list-item":return 2048;case"table-row-group":return 4096;case"table-header-group":return 8192;case"table-footer-group":return 16384;case"table-row":return 32768;case"table-cell":return 65536;case"table-column-group":return 131072;case"table-column":return 262144;case"table-caption":return 524288;case"ruby-base":return 1048576;case"ruby-text":return 2097152;case"ruby-base-container":return 4194304;case"ruby-text-container":return 8388608;case"contents":return 16777216;case"inline-block":return 33554432;case"inline-list-item":return 67108864;case"inline-table":return 134217728;case"inline-flex":return 268435456;case"inline-grid":return 536870912}return 0},bo={name:"float",initialValue:"none",prefix:!1,type:2,parse:function(ne,j){switch(j){case"left":return 1;case"right":return 2;case"inline-start":return 3;case"inline-end":return 4}return 0}},Rc={name:"letter-spacing",initialValue:"0",prefix:!1,type:0,parse:function(ne,j){return 20===j.type&&"normal"===j.value?0:17===j.type||15===j.type?j.number:0}},jc=function(ne){return ne.NORMAL="normal",ne.STRICT="strict",ne}(jc||{}),Fg={name:"line-break",initialValue:"normal",prefix:!1,type:2,parse:function(ne,j){return"strict"===j?jc.STRICT:jc.NORMAL}},Sm={name:"line-height",initialValue:"normal",prefix:!1,type:4},iu=function(ne,j){return pi(ne)&&"normal"===ne.value?1.2*j:17===ne.type?j*ne.number:cl(ne)?ua(ne,j):j},Em={name:"list-style-image",initialValue:"none",type:0,prefix:!1,parse:function(ne,j){return 20===j.type&&"none"===j.value?null:tu_parse(ne,j)}},vc={name:"list-style-position",initialValue:"outside",prefix:!1,type:2,parse:function(ne,j){return"inside"===j?0:1}},xA={name:"list-style-type",initialValue:"none",prefix:!1,type:2,parse:function(ne,j){switch(j){case"disc":return 0;case"circle":return 1;case"square":return 2;case"decimal":return 3;case"cjk-decimal":return 4;case"decimal-leading-zero":return 5;case"lower-roman":return 6;case"upper-roman":return 7;case"lower-greek":return 8;case"lower-alpha":return 9;case"upper-alpha":return 10;case"arabic-indic":return 11;case"armenian":return 12;case"bengali":return 13;case"cambodian":return 14;case"cjk-earthly-branch":return 15;case"cjk-heavenly-stem":return 16;case"cjk-ideographic":return 17;case"devanagari":return 18;case"ethiopic-numeric":return 19;case"georgian":return 20;case"gujarati":return 21;case"gurmukhi":case"hebrew":return 22;case"hiragana":return 23;case"hiragana-iroha":return 24;case"japanese-formal":return 25;case"japanese-informal":return 26;case"kannada":return 27;case"katakana":return 28;case"katakana-iroha":return 29;case"khmer":return 30;case"korean-hangul-formal":return 31;case"korean-hanja-formal":return 32;case"korean-hanja-informal":return 33;case"lao":return 34;case"lower-armenian":return 35;case"malayalam":return 36;case"mongolian":return 37;case"myanmar":return 38;case"oriya":return 39;case"persian":return 40;case"simp-chinese-formal":return 41;case"simp-chinese-informal":return 42;case"tamil":return 43;case"telugu":return 44;case"thai":return 45;case"tibetan":return 46;case"trad-chinese-formal":return 47;case"trad-chinese-informal":return 48;case"upper-armenian":return 49;case"disclosure-open":return 50;case"disclosure-closed":return 51;default:return-1}}},Bp=function(ne){return{name:"margin-"+ne,initialValue:"0",prefix:!1,type:4}},tf=Bp("top"),W0=Bp("right"),El=Bp("bottom"),Pp=Bp("left"),j0={name:"overflow",initialValue:"visible",prefix:!1,type:1,parse:function(ne,j){return j.filter(pi).map(function(ce){switch(ce.value){case"hidden":return 1;case"scroll":return 2;case"clip":return 3;case"auto":return 4;default:return 0}})}},wA={name:"overflow-wrap",initialValue:"normal",prefix:!1,type:2,parse:function(ne,j){return"break-word"===j?"break-word":"normal"}},Nl=function(ne){return{name:"padding-"+ne,initialValue:"0",prefix:!1,type:3,format:"length-percentage"}},Rp=Nl("top"),sa=Nl("right"),Id=Nl("bottom"),_1=Nl("left"),Og={name:"text-align",initialValue:"left",prefix:!1,type:2,parse:function(ne,j){switch(j){case"right":return 2;case"center":case"justify":return 1;default:return 0}}},kx={name:"position",initialValue:"static",prefix:!1,type:2,parse:function(ne,j){switch(j){case"relative":return 1;case"absolute":return 2;case"fixed":return 3;case"sticky":return 4}return 0}},y1={name:"text-shadow",initialValue:"none",type:1,prefix:!1,parse:function(ne,j){return 1===j.length&&Ac(j[0],"none")?[]:pd(j).map(function(ce){for(var ae={color:Wc.TRANSPARENT,offsetX:Xl,offsetY:Xl,blur:Xl},Ue=0,dt=0;dt"u")throw new Error('Attempting to parse an unsupported transform function "'+j.name+'"');return ce(j.values)}return null}},MA={matrix:function(ne){var j=ne.filter(function(ce){return 17===ce.type}).map(function(ce){return ce.number});return 6===j.length?j:null},matrix3d:function(ne){var j=ne.filter(function(on){return 17===on.type}).map(function(on){return on.number});return 16===j.length?[j[0],j[1],j[4],j[5],j[12],j[13]]:null}},ru={type:16,number:50,flags:4},Tl=[ru,ru],Gr={name:"transform-origin",initialValue:"50% 50%",prefix:!0,type:1,parse:function(ne,j){var ce=j.filter(cl);return 2!==ce.length?Tl:[ce[0],ce[1]]}},so={name:"visible",initialValue:"none",prefix:!1,type:2,parse:function(ne,j){switch(j){case"hidden":return 1;case"collapse":return 2;default:return 0}}},pl=function(ne){return ne.NORMAL="normal",ne.BREAK_ALL="break-all",ne.KEEP_ALL="keep-all",ne}(pl||{}),Kd={name:"word-break",initialValue:"normal",prefix:!1,type:2,parse:function(ne,j){switch(j){case"break-all":return pl.BREAK_ALL;case"keep-all":return pl.KEEP_ALL;default:return pl.NORMAL}}},oc={name:"z-index",initialValue:"auto",prefix:!1,type:0,parse:function(ne,j){if(20===j.type)return{auto:!0,order:0};if(Dd(j))return{auto:!1,order:j.number};throw new Error("Invalid z-index number parsed")}},Ul={name:"time",parse:function(ne,j){if(15===j.type)switch(j.unit.toLowerCase()){case"s":return 1e3*j.number;case"ms":return j.number}throw new Error("Unsupported time type")}},nf={name:"opacity",initialValue:"1",type:0,prefix:!1,parse:function(ne,j){return Dd(j)?j.number:1}},Ka={name:"text-decoration-color",initialValue:"transparent",prefix:!1,type:3,format:"color"},$c={name:"text-decoration-line",initialValue:"none",prefix:!1,type:1,parse:function(ne,j){return j.filter(pi).map(function(ce){switch(ce.value){case"underline":return 1;case"overline":return 2;case"line-through":return 3;case"none":return 4}return 0}).filter(function(ce){return 0!==ce})}},Uh={name:"font-family",initialValue:"",prefix:!1,type:1,parse:function(ne,j){var ce=[],ae=[];return j.forEach(function(Ue){switch(Ue.type){case 20:case 0:ce.push(Ue.value);break;case 17:ce.push(Ue.number.toString());break;case 4:ae.push(ce.join(" ")),ce.length=0}}),ce.length&&ae.push(ce.join(" ")),ae.map(function(Ue){return-1===Ue.indexOf(" ")?Ue:"'"+Ue+"'"})}},Mo={name:"font-size",initialValue:"0",prefix:!1,type:3,format:"length"},kp={name:"font-weight",initialValue:"normal",type:0,prefix:!1,parse:function(ne,j){return Dd(j)?j.number:pi(j)&&"bold"===j.value?700:400}},$0={name:"font-variant",initialValue:"none",type:1,prefix:!1,parse:function(ne,j){return j.filter(pi).map(function(ce){return ce.value})}},rf={name:"font-style",initialValue:"normal",prefix:!1,type:2,parse:function(ne,j){switch(j){case"oblique":return"oblique";case"italic":return"italic";default:return"normal"}}},Yo=function(ne,j){return!!(ne&j)},Rl={name:"content",initialValue:"none",type:1,prefix:!1,parse:function(ne,j){if(0===j.length)return[];var ce=j[0];return 20===ce.type&&"none"===ce.value?[]:j}},Tm={name:"counter-increment",initialValue:"none",prefix:!0,type:1,parse:function(ne,j){if(0===j.length)return null;var ce=j[0];if(20===ce.type&&"none"===ce.value)return null;for(var ae=[],Ue=j.filter(Cp),dt=0;dt1?1:0],this.overflowWrap=cs(j,wA,ce.overflowWrap),this.paddingTop=cs(j,Rp,ce.paddingTop),this.paddingRight=cs(j,sa,ce.paddingRight),this.paddingBottom=cs(j,Id,ce.paddingBottom),this.paddingLeft=cs(j,_1,ce.paddingLeft),this.paintOrder=cs(j,Dl,ce.paintOrder),this.position=cs(j,kx,ce.position),this.textAlign=cs(j,Og,ce.textAlign),this.textDecorationColor=cs(j,Ka,null!==(ae=ce.textDecorationColor)&&void 0!==ae?ae:ce.color),this.textDecorationLine=cs(j,$c,null!==(Ue=ce.textDecorationLine)&&void 0!==Ue?Ue:ce.textDecoration),this.textShadow=cs(j,y1,ce.textShadow),this.textTransform=cs(j,Lg,ce.textTransform),this.transform=cs(j,CA,ce.transform),this.transformOrigin=cs(j,Gr,ce.transformOrigin),this.visibility=cs(j,so,ce.visibility),this.webkitTextStrokeColor=cs(j,Cs,ce.webkitTextStrokeColor),this.webkitTextStrokeWidth=cs(j,Cu,ce.webkitTextStrokeWidth),this.wordBreak=cs(j,Kd,ce.wordBreak),this.zIndex=cs(j,oc,ce.zIndex)}return ne.prototype.isVisible=function(){return this.display>0&&this.opacity>0&&0===this.visibility},ne.prototype.isTransparent=function(){return Xd(this.backgroundColor)},ne.prototype.isTransformed=function(){return null!==this.transform},ne.prototype.isPositioned=function(){return 0!==this.position},ne.prototype.isPositionedWithZIndex=function(){return this.isPositioned()&&!this.zIndex.auto},ne.prototype.isFloating=function(){return 0!==this.float},ne.prototype.isInlineLevel=function(){return Yo(this.display,4)||Yo(this.display,33554432)||Yo(this.display,268435456)||Yo(this.display,536870912)||Yo(this.display,67108864)||Yo(this.display,134217728)},ne}(),su=function(){return function ne(j,ce){this.content=cs(j,Rl,ce.content),this.quotes=cs(j,Op,ce.quotes)}}(),kc=function(){return function ne(j,ce){this.counterIncrement=cs(j,Tm,ce.counterIncrement),this.counterReset=cs(j,bc,ce.counterReset)}}(),cs=function(ne,j,ce){var ae=new Vf,Ue=null!==ce&&typeof ce<"u"?ce.toString():j.initialValue;ae.write(Ue);var dt=new V0(ae.read());switch(j.type){case 2:var Bt=dt.parseComponentValue();return j.parse(ne,pi(Bt)?Bt.value:j.initialValue);case 0:return j.parse(ne,dt.parseComponentValue());case 1:return j.parse(ne,dt.parseComponentValues());case 4:return dt.parseComponentValue();case 3:switch(j.format){case"angle":return kh_parse(ne,dt.parseComponentValue());case"color":return Yl_parse(ne,dt.parseComponentValue());case"image":return tu_parse(ne,dt.parseComponentValue());case"length":var an=dt.parseComponentValue();return nl(an)?an:Xl;case"length-percentage":var on=dt.parseComponentValue();return cl(on)?on:Xl;case"time":return Ul.parse(ne,dt.parseComponentValue())}}},Fc=function(ne,j){var ce=function(ne){switch(ne.getAttribute("data-html2canvas-debug")){case"all":return 1;case"clone":return 2;case"parse":return 3;case"render":return 4;default:return 0}}(ne);return 1===ce||j===ce},dl=function(){return function ne(j,ce){this.context=j,this.textNodes=[],this.elements=[],this.flags=0,Fc(ce,3),this.styles=new sf(j,window.getComputedStyle(ce,null)),t_(ce)&&(this.styles.animationDuration.some(function(ae){return ae>0})&&(ce.style.animationDuration="0s"),null!==this.styles.transform&&(ce.style.transform="none")),this.bounds=ot(this.context,ce),Fc(ce,4)&&(this.flags|=16)}}(),af="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",zl=typeof Uint8Array>"u"?[]:new Uint8Array(256),Hl=0;Hl<64;Hl++)zl[af.charCodeAt(Hl)]=Hl;for(var lc=function(ne,j,ce){return ne.slice?ne.slice(j,ce):new Uint16Array(Array.prototype.slice.call(ne,j,ce))},Zd=function(){function ne(j,ce,ae,Ue,dt,Bt){this.initialValue=j,this.errorValue=ce,this.highStart=ae,this.highValueIndex=Ue,this.index=dt,this.data=Bt}return ne.prototype.get=function(j){var ce;if(j>=0){if(j<55296||j>56319&&j<=65535)return this.data[ce=((ce=this.index[j>>5])<<2)+(31&j)];if(j<=65535)return this.data[ce=((ce=this.index[2048+(j-55296>>5)])<<2)+(31&j)];if(j>11)],this.data[ce=((ce=this.index[ce+=j>>5&63])<<2)+(31&j)];if(j<=1114111)return this.data[this.highValueIndex]}return this.errorValue},ne}(),Im="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",b1=typeof Uint8Array>"u"?[]:new Uint8Array(256),Su=0;Su<64;Su++)b1[Im.charCodeAt(Su)]=Su;var hf=8,Bm=9,Zf=11,Jf=12,hv=function(){for(var ne=[],j=0;j>10),Bt%1024+56320),(Ue+1===ce||ae.length>16384)&&(dt+=String.fromCharCode.apply(String,ae),ae.length=0)}return dt},Pm=function(ne,j){var ce=function(ne){var ae,dt,Bt,an,on,j=.75*ne.length,ce=ne.length,Ue=0;"="===ne[ne.length-1]&&(j--,"="===ne[ne.length-2]&&j--);var Wn=typeof ArrayBuffer<"u"&&typeof Uint8Array<"u"&&typeof Uint8Array.prototype.slice<"u"?new ArrayBuffer(j):new Array(j),Zn=Array.isArray(Wn)?Wn:new Uint8Array(Wn);for(ae=0;ae>4,Zn[Ue++]=(15&Bt)<<4|an>>2,Zn[Ue++]=(3&an)<<6|63&on;return Wn}(ne),ae=Array.isArray(ce)?function(ne){for(var j=ne.length,ce=[],ae=0;ae=55296&&Ue<=56319&&ce=ce)return{done:!0,value:null};for(var Bt="\xd7";aeBt.x||Zn.y>Bt.y;return Bt=Zn,0===Wn||ri});return ne.body.removeChild(j),an}(document);return Object.defineProperty(Oc,"SUPPORT_WORD_BREAKING",{value:ne}),ne},get SUPPORT_SVG_DRAWING(){var ne=function(ne){var j=new Image,ce=ne.createElement("canvas"),ae=ce.getContext("2d");if(!ae)return!1;j.src="data:image/svg+xml,";try{ae.drawImage(j,0,0),ce.toDataURL()}catch{return!1}return!0}(document);return Object.defineProperty(Oc,"SUPPORT_SVG_DRAWING",{value:ne}),ne},get SUPPORT_FOREIGNOBJECT_DRAWING(){var ne="function"==typeof Array.from&&"function"==typeof window.fetch?function(ne){var j=ne.createElement("canvas"),ce=100;j.width=ce,j.height=ce;var ae=j.getContext("2d");if(!ae)return Promise.reject(!1);ae.fillStyle="rgb(0, 255, 0)",ae.fillRect(0,0,ce,ce);var Ue=new Image,dt=j.toDataURL();Ue.src=dt;var Bt=K0(ce,ce,0,0,Ue);return ae.fillStyle="red",ae.fillRect(0,0,ce,ce),Z0(Bt).then(function(an){ae.drawImage(an,0,0);var on=ae.getImageData(0,0,ce,ce).data;ae.fillStyle="red",ae.fillRect(0,0,ce,ce);var Wn=ne.createElement("div");return Wn.style.backgroundImage="url("+dt+")",Wn.style.height="100px",Hh(on)?Z0(K0(ce,ce,0,0,Wn)):Promise.reject(!1)}).then(function(an){return ae.drawImage(an,0,0),Hh(ae.getImageData(0,0,ce,ce).data)}).catch(function(){return!1})}(document):Promise.resolve(!1);return Object.defineProperty(Oc,"SUPPORT_FOREIGNOBJECT_DRAWING",{value:ne}),ne},get SUPPORT_CORS_IMAGES(){var ne=typeof(new Image).crossOrigin<"u";return Object.defineProperty(Oc,"SUPPORT_CORS_IMAGES",{value:ne}),ne},get SUPPORT_RESPONSE_TYPE(){var ne="string"==typeof(new XMLHttpRequest).responseType;return Object.defineProperty(Oc,"SUPPORT_RESPONSE_TYPE",{value:ne}),ne},get SUPPORT_CORS_XHR(){var ne="withCredentials"in new XMLHttpRequest;return Object.defineProperty(Oc,"SUPPORT_CORS_XHR",{value:ne}),ne},get SUPPORT_NATIVE_TEXT_SEGMENTATION(){var ne=!!(typeof Intl<"u"&&Intl.Segmenter);return Object.defineProperty(Oc,"SUPPORT_NATIVE_TEXT_SEGMENTATION",{value:ne}),ne}},pf=function(){return function ne(j,ce){this.text=j,this.bounds=ce}}(),tp=function(ne,j){var ce=j.ownerDocument;if(ce){var ae=ce.createElement("html2canvaswrapper");ae.appendChild(j.cloneNode(!0));var Ue=j.parentNode;if(Ue){Ue.replaceChild(ae,j);var dt=ot(ne,ae);return ae.firstChild&&Ue.replaceChild(ae.firstChild,ae),dt}}return ke.EMPTY},Hg=function(ne,j,ce){var ae=ne.ownerDocument;if(!ae)throw new Error("Node has no owner document");var Ue=ae.createRange();return Ue.setStart(ne,j),Ue.setEnd(ne,j+ce),Ue},Tu=function(ne){if(Oc.SUPPORT_NATIVE_TEXT_SEGMENTATION){var j=new Intl.Segmenter(void 0,{granularity:"grapheme"});return Array.from(j.segment(ne)).map(function(ce){return ce.segment})}return function(ne){for(var ae,j=Rm(ne),ce=[];!(ae=j.next()).done;)ae.value&&ce.push(ae.value.slice());return ce}(ne)},w1=function(ne,j){return 0!==j.letterSpacing?Tu(ne):function(ne,j){if(Oc.SUPPORT_NATIVE_TEXT_SEGMENTATION){var ce=new Intl.Segmenter(void 0,{granularity:"word"});return Array.from(ce.segment(ne)).map(function(ae){return ae.segment})}return ja(ne,j)}(ne,j)},Fx=[32,160,4961,65792,65793,4153,4241],ja=function(ne,j){for(var Ue,ce=function(ne,j){var ce=Ze(ne),ae=_e(ce,j),Ue=ae[0],dt=ae[1],Bt=ae[2],an=ce.length,on=0,Wn=0;return{next:function(){if(Wn>=an)return{done:!0,value:null};for(var Zn=cn;Wn0)if(Oc.SUPPORT_RANGE_BOUNDS){var on=Hg(ae,Bt,an.length).getClientRects();if(on.length>1){var Wn=Tu(an),Zn=0;Wn.forEach(function(Xi){dt.push(new pf(Xi,ke.fromDOMRectList(ne,Hg(ae,Zn+Bt,Xi.length).getClientRects()))),Zn+=Xi.length})}else dt.push(new pf(an,ke.fromDOMRectList(ne,on)))}else{var ri=ae.splitText(an.length);dt.push(new pf(an,tp(ne,ae))),ae=ri}else Oc.SUPPORT_RANGE_BOUNDS||(ae=ae.splitText(an.length));Bt+=an.length}),dt}(j,this.text,ae,ce)}}(),RA=function(ne,j){switch(j){case 1:return ne.toLowerCase();case 3:return ne.replace(Fm,Om);case 2:return ne.toUpperCase();default:return ne}},Fm=/(^|\s|:|-|\(|\))([a-z])/g,Om=function(ne,j,ce){return ne.length>0?j+ce.toUpperCase():ne},C1=function(ne){function j(ce,ae){var Ue=ne.call(this,ce,ae)||this;return Ue.src=ae.currentSrc||ae.src,Ue.intrinsicWidth=ae.naturalWidth,Ue.intrinsicHeight=ae.naturalHeight,Ue.context.cache.addImage(Ue.src),Ue}return Se(j,ne),j}(dl),M1=function(ne){function j(ce,ae){var Ue=ne.call(this,ce,ae)||this;return Ue.canvas=ae,Ue.intrinsicWidth=ae.width,Ue.intrinsicHeight=ae.height,Ue}return Se(j,ne),j}(dl),S1=function(ne){function j(ce,ae){var Ue=ne.call(this,ce,ae)||this,dt=new XMLSerializer,Bt=ot(ce,ae);return ae.setAttribute("width",Bt.width+"px"),ae.setAttribute("height",Bt.height+"px"),Ue.svg="data:image/svg+xml,"+encodeURIComponent(dt.serializeToString(ae)),Ue.intrinsicWidth=ae.width.baseVal.value,Ue.intrinsicHeight=ae.height.baseVal.value,Ue.context.cache.addImage(Ue.svg),Ue}return Se(j,ne),j}(dl),E1=function(ne){function j(ce,ae){var Ue=ne.call(this,ce,ae)||this;return Ue.value=ae.value,Ue}return Se(j,ne),j}(dl),Vg=function(ne){function j(ce,ae){var Ue=ne.call(this,ce,ae)||this;return Ue.start=ae.start,Ue.reversed="boolean"==typeof ae.reversed&&!0===ae.reversed,Ue}return Se(j,ne),j}(dl),Zi=[{type:15,flags:0,unit:"px",number:3}],wa=[{type:16,flags:0,number:50}],Ha="checkbox",kA="radio",Lm="password",du=707406591,FA=function(ne){function j(ce,ae){var Ue=ne.call(this,ce,ae)||this;switch(Ue.type=ae.type.toLowerCase(),Ue.checked=ae.checked,Ue.value=function(ne){var j=ne.type===Lm?new Array(ne.value.length+1).join("\u2022"):ne.value;return 0===j.length?ne.placeholder||"":j}(ae),(Ue.type===Ha||Ue.type===kA)&&(Ue.styles.backgroundColor=3739148031,Ue.styles.borderTopColor=Ue.styles.borderRightColor=Ue.styles.borderBottomColor=Ue.styles.borderLeftColor=2779096575,Ue.styles.borderTopWidth=Ue.styles.borderRightWidth=Ue.styles.borderBottomWidth=Ue.styles.borderLeftWidth=1,Ue.styles.borderTopStyle=Ue.styles.borderRightStyle=Ue.styles.borderBottomStyle=Ue.styles.borderLeftStyle=1,Ue.styles.backgroundClip=[0],Ue.styles.backgroundOrigin=[0],Ue.bounds=function(ne){return ne.width>ne.height?new ke(ne.left+(ne.width-ne.height)/2,ne.top,ne.height,ne.height):ne.width0)ce.textNodes.push(new uv(ne,Ue,ce.styles));else if(Vp(Ue))if(np(Ue)&&Ue.assignedNodes)Ue.assignedNodes().forEach(function(an){return Yc(ne,an,ce,ae)});else{var Bt=hu(ne,Ue);Bt.styles.isVisible()&&(uu(Ue,Bt,ae)?Bt.flags|=4:mf(Bt.styles)&&(Bt.flags|=2),-1!==D1.indexOf(Ue.tagName)&&(Bt.flags|=8),ce.elements.push(Bt),Ue.shadowRoot?Yc(ne,Ue.shadowRoot,Bt,ae):!LA(Ue)&&!I1(Ue)&&!Lc(Ue)&&Yc(ne,Ue,Bt,ae))}},hu=function(ne,j){return jg(j)?new C1(ne,j):Wg(j)?new M1(ne,j):I1(j)?new S1(ne,j):n_(j)?new E1(ne,j):i_(j)?new Vg(ne,j):r_(j)?new FA(ne,j):Lc(j)?new Gg(ne,j):LA(j)?new T1(ne,j):o_(j)?new fv(ne,j):new dl(ne,j)},J0=function(ne,j){var ce=hu(ne,j);return ce.flags|=4,Yc(ne,j,ce,ce),ce},uu=function(ne,j,ce){return j.styles.isPositionedWithZIndex()||j.styles.opacity<1||j.styles.isTransformed()||Qg(ne)&&ce.styles.isTransparent()},mf=function(ne){return ne.isPositioned()||ne.isFloating()},e_=function(ne){return ne.nodeType===Node.TEXT_NODE},Vp=function(ne){return ne.nodeType===Node.ELEMENT_NODE},t_=function(ne){return Vp(ne)&&typeof ne.style<"u"&&!qg(ne)},qg=function(ne){return"object"==typeof ne.className},n_=function(ne){return"LI"===ne.tagName},i_=function(ne){return"OL"===ne.tagName},r_=function(ne){return"INPUT"===ne.tagName},I1=function(ne){return"svg"===ne.tagName},Qg=function(ne){return"BODY"===ne.tagName},Wg=function(ne){return"CANVAS"===ne.tagName},s_=function(ne){return"VIDEO"===ne.tagName},jg=function(ne){return"IMG"===ne.tagName},o_=function(ne){return"IFRAME"===ne.tagName},a_=function(ne){return"STYLE"===ne.tagName},LA=function(ne){return"TEXTAREA"===ne.tagName},Lc=function(ne){return"SELECT"===ne.tagName},np=function(ne){return"SLOT"===ne.tagName},gl=function(ne){return ne.tagName.indexOf("-")>0},Fl=function(){function ne(){this.counters={}}return ne.prototype.getCounterValue=function(j){var ce=this.counters[j];return ce&&ce.length?ce[ce.length-1]:1},ne.prototype.getCounterValues=function(j){return this.counters[j]||[]},ne.prototype.pop=function(j){var ce=this;j.forEach(function(ae){return ce.counters[ae].pop()})},ne.prototype.parse=function(j){var ce=this,ae=j.counterIncrement,Ue=j.counterReset,dt=!0;null!==ae&&ae.forEach(function(an){var on=ce.counters[an.counter];on&&0!==an.increment&&(dt=!1,on.length||on.push(1),on[Math.max(0,on.length-1)]+=an.increment)});var Bt=[];return dt&&Ue.forEach(function(an){var on=ce.counters[an.counter];Bt.push(an.counter),on||(on=ce.counters[an.counter]=[]),on.push(an.reset)}),Bt},ne}(),B1={integers:[1e3,900,500,400,100,90,50,40,10,9,5,4,1],values:["M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"]},Du={integers:[9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,900,800,700,600,500,400,300,200,100,90,80,70,60,50,40,30,20,10,9,8,7,6,5,4,3,2,1],values:["\u0554","\u0553","\u0552","\u0551","\u0550","\u054f","\u054e","\u054d","\u054c","\u054b","\u054a","\u0549","\u0548","\u0547","\u0546","\u0545","\u0544","\u0543","\u0542","\u0541","\u0540","\u053f","\u053e","\u053d","\u053c","\u053b","\u053a","\u0539","\u0538","\u0537","\u0536","\u0535","\u0534","\u0533","\u0532","\u0531"]},pv={integers:[1e4,9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,400,300,200,100,90,80,70,60,50,40,30,20,19,18,17,16,15,10,9,8,7,6,5,4,3,2,1],values:["\u05d9\u05f3","\u05d8\u05f3","\u05d7\u05f3","\u05d6\u05f3","\u05d5\u05f3","\u05d4\u05f3","\u05d3\u05f3","\u05d2\u05f3","\u05d1\u05f3","\u05d0\u05f3","\u05ea","\u05e9","\u05e8","\u05e7","\u05e6","\u05e4","\u05e2","\u05e1","\u05e0","\u05de","\u05dc","\u05db","\u05d9\u05d8","\u05d9\u05d7","\u05d9\u05d6","\u05d8\u05d6","\u05d8\u05d5","\u05d9","\u05d8","\u05d7","\u05d6","\u05d5","\u05d4","\u05d3","\u05d2","\u05d1","\u05d0"]},P1={integers:[1e4,9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,900,800,700,600,500,400,300,200,100,90,80,70,60,50,40,30,20,10,9,8,7,6,5,4,3,2,1],values:["\u10f5","\u10f0","\u10ef","\u10f4","\u10ee","\u10ed","\u10ec","\u10eb","\u10ea","\u10e9","\u10e8","\u10e7","\u10e6","\u10e5","\u10e4","\u10f3","\u10e2","\u10e1","\u10e0","\u10df","\u10de","\u10dd","\u10f2","\u10dc","\u10db","\u10da","\u10d9","\u10d8","\u10d7","\u10f1","\u10d6","\u10d5","\u10d4","\u10d3","\u10d2","\u10d1","\u10d0"]},Gp=function(ne,j,ce,ae,Ue,dt){return nece?Um(ne,Ue,dt.length>0):ae.integers.reduce(function(Bt,an,on){for(;ne>=an;)ne-=an,Bt+=ae.values[on];return Bt},"")+dt},Nm=function(ne,j,ce,ae){var Ue="";do{ce||ne--,Ue=ae(ne)+Ue,ne/=j}while(ne*j>=j);return Ue},Za=function(ne,j,ce,ae,Ue){var dt=ce-j+1;return(ne<0?"-":"")+(Nm(Math.abs(ne),dt,ae,function(Bt){return Re(Math.floor(Bt%dt)+j)})+Ue)},qp=function(ne,j,ce){void 0===ce&&(ce=". ");var ae=j.length;return Nm(Math.abs(ne),ae,!1,function(Ue){return j[Math.floor(Ue%ae)]})+ce},Iu=function(ne,j,ce,ae,Ue,dt){if(ne<-9999||ne>9999)return Um(ne,4,Ue.length>0);var Bt=Math.abs(ne),an=Ue;if(0===Bt)return j[0]+an;for(var on=0;Bt>0&&on<=4;on++){var Wn=Bt%10;0===Wn&&Yo(dt,1)&&""!==an?an=j[Wn]+an:Wn>1||1===Wn&&0===on||1===Wn&&1===on&&Yo(dt,2)||1===Wn&&1===on&&Yo(dt,4)&&ne>100||1===Wn&&on>1&&Yo(dt,8)?an=j[Wn]+(on>0?ce[on-1]:"")+an:1===Wn&&on>0&&(an=ce[on-1]+an),Bt=Math.floor(Bt/10)}return(ne<0?ae:"")+an},rp="\ub9c8\uc774\ub108\uc2a4",Um=function(ne,j,ce){var ae=ce?". ":"",Ue=ce?"\u3001":"",dt=ce?", ":"",Bt=ce?" ":"";switch(j){case 0:return"\u2022"+Bt;case 1:return"\u25e6"+Bt;case 2:return"\u25fe"+Bt;case 5:var an=Za(ne,48,57,!0,ae);return an.length<4?"0"+an:an;case 4:return qp(ne,"\u3007\u4e00\u4e8c\u4e09\u56db\u4e94\u516d\u4e03\u516b\u4e5d",Ue);case 6:return Gp(ne,1,3999,B1,3,ae).toLowerCase();case 7:return Gp(ne,1,3999,B1,3,ae);case 8:return Za(ne,945,969,!1,ae);case 9:return Za(ne,97,122,!1,ae);case 10:return Za(ne,65,90,!1,ae);case 11:return Za(ne,1632,1641,!0,ae);case 12:case 49:return Gp(ne,1,9999,Du,3,ae);case 35:return Gp(ne,1,9999,Du,3,ae).toLowerCase();case 13:return Za(ne,2534,2543,!0,ae);case 14:case 30:return Za(ne,6112,6121,!0,ae);case 15:return qp(ne,"\u5b50\u4e11\u5bc5\u536f\u8fb0\u5df3\u5348\u672a\u7533\u9149\u620c\u4ea5",Ue);case 16:return qp(ne,"\u7532\u4e59\u4e19\u4e01\u620a\u5df1\u5e9a\u8f9b\u58ec\u7678",Ue);case 17:case 48:return Iu(ne,"\u96f6\u4e00\u4e8c\u4e09\u56db\u4e94\u516d\u4e03\u516b\u4e5d","\u5341\u767e\u5343\u842c","\u8ca0",Ue,14);case 47:return Iu(ne,"\u96f6\u58f9\u8cb3\u53c3\u8086\u4f0d\u9678\u67d2\u634c\u7396","\u62fe\u4f70\u4edf\u842c","\u8ca0",Ue,15);case 42:return Iu(ne,"\u96f6\u4e00\u4e8c\u4e09\u56db\u4e94\u516d\u4e03\u516b\u4e5d","\u5341\u767e\u5343\u842c","\u8d1f",Ue,14);case 41:return Iu(ne,"\u96f6\u58f9\u8d30\u53c1\u8086\u4f0d\u9646\u67d2\u634c\u7396","\u62fe\u4f70\u4edf\u842c","\u8d1f",Ue,15);case 26:return Iu(ne,"\u3007\u4e00\u4e8c\u4e09\u56db\u4e94\u516d\u4e03\u516b\u4e5d","\u5341\u767e\u5343\u4e07","\u30de\u30a4\u30ca\u30b9",Ue,0);case 25:return Iu(ne,"\u96f6\u58f1\u5f10\u53c2\u56db\u4f0d\u516d\u4e03\u516b\u4e5d","\u62fe\u767e\u5343\u4e07","\u30de\u30a4\u30ca\u30b9",Ue,7);case 31:return Iu(ne,"\uc601\uc77c\uc774\uc0bc\uc0ac\uc624\uc721\uce60\ud314\uad6c","\uc2ed\ubc31\ucc9c\ub9cc",rp,dt,7);case 33:return Iu(ne,"\u96f6\u4e00\u4e8c\u4e09\u56db\u4e94\u516d\u4e03\u516b\u4e5d","\u5341\u767e\u5343\u842c",rp,dt,0);case 32:return Iu(ne,"\u96f6\u58f9\u8cb3\u53c3\u56db\u4e94\u516d\u4e03\u516b\u4e5d","\u62fe\u767e\u5343",rp,dt,7);case 18:return Za(ne,2406,2415,!0,ae);case 20:return Gp(ne,1,19999,P1,3,ae);case 21:return Za(ne,2790,2799,!0,ae);case 22:return Za(ne,2662,2671,!0,ae);case 22:return Gp(ne,1,10999,pv,3,ae);case 23:return qp(ne,"\u3042\u3044\u3046\u3048\u304a\u304b\u304d\u304f\u3051\u3053\u3055\u3057\u3059\u305b\u305d\u305f\u3061\u3064\u3066\u3068\u306a\u306b\u306c\u306d\u306e\u306f\u3072\u3075\u3078\u307b\u307e\u307f\u3080\u3081\u3082\u3084\u3086\u3088\u3089\u308a\u308b\u308c\u308d\u308f\u3090\u3091\u3092\u3093");case 24:return qp(ne,"\u3044\u308d\u306f\u306b\u307b\u3078\u3068\u3061\u308a\u306c\u308b\u3092\u308f\u304b\u3088\u305f\u308c\u305d\u3064\u306d\u306a\u3089\u3080\u3046\u3090\u306e\u304a\u304f\u3084\u307e\u3051\u3075\u3053\u3048\u3066\u3042\u3055\u304d\u3086\u3081\u307f\u3057\u3091\u3072\u3082\u305b\u3059");case 27:return Za(ne,3302,3311,!0,ae);case 28:return qp(ne,"\u30a2\u30a4\u30a6\u30a8\u30aa\u30ab\u30ad\u30af\u30b1\u30b3\u30b5\u30b7\u30b9\u30bb\u30bd\u30bf\u30c1\u30c4\u30c6\u30c8\u30ca\u30cb\u30cc\u30cd\u30ce\u30cf\u30d2\u30d5\u30d8\u30db\u30de\u30df\u30e0\u30e1\u30e2\u30e4\u30e6\u30e8\u30e9\u30ea\u30eb\u30ec\u30ed\u30ef\u30f0\u30f1\u30f2\u30f3",Ue);case 29:return qp(ne,"\u30a4\u30ed\u30cf\u30cb\u30db\u30d8\u30c8\u30c1\u30ea\u30cc\u30eb\u30f2\u30ef\u30ab\u30e8\u30bf\u30ec\u30bd\u30c4\u30cd\u30ca\u30e9\u30e0\u30a6\u30f0\u30ce\u30aa\u30af\u30e4\u30de\u30b1\u30d5\u30b3\u30a8\u30c6\u30a2\u30b5\u30ad\u30e6\u30e1\u30df\u30b7\u30f1\u30d2\u30e2\u30bb\u30b9",Ue);case 34:return Za(ne,3792,3801,!0,ae);case 37:return Za(ne,6160,6169,!0,ae);case 38:return Za(ne,4160,4169,!0,ae);case 39:return Za(ne,2918,2927,!0,ae);case 40:return Za(ne,1776,1785,!0,ae);case 43:return Za(ne,3046,3055,!0,ae);case 44:return Za(ne,3174,3183,!0,ae);case 45:return Za(ne,3664,3673,!0,ae);case 46:return Za(ne,3872,3881,!0,ae);default:return Za(ne,48,57,!0,ae)}},gf="data-html2canvas-ignore",$g=function(){function ne(j,ce,ae){if(this.context=j,this.options=ae,this.scrolledElements=[],this.referenceElement=ce,this.counters=new Fl,this.quoteDepth=0,!ce.ownerDocument)throw new Error("Cloned element does not have an owner document");this.documentElement=this.cloneNode(ce.ownerDocument.documentElement,!1)}return ne.prototype.toIFrame=function(j,ce){var ae=this,Ue=Yg(j,ce);if(!Ue.contentWindow)return Promise.reject("Unable to find iframe window");var dt=j.defaultView.pageXOffset,Bt=j.defaultView.pageYOffset,an=Ue.contentWindow,on=an.document,Wn=Kg(Ue).then(function(){return x(ae,void 0,void 0,function(){var Zn,ri;return L(this,function(Xi){switch(Xi.label){case 0:return this.scrolledElements.forEach(h_),an&&(an.scrollTo(ce.left,ce.top),/(iPad|iPhone|iPod)/g.test(navigator.userAgent)&&(an.scrollY!==ce.top||an.scrollX!==ce.left)&&(this.context.logger.warn("Unable to restore scroll position for cloned document"),this.context.windowBounds=this.context.windowBounds.add(an.scrollX-ce.left,an.scrollY-ce.top,0,0))),Zn=this.options.onclone,typeof(ri=this.clonedReferenceElement)>"u"?[2,Promise.reject("Error finding the "+this.referenceElement.nodeName+" in the cloned document")]:on.fonts&&on.fonts.ready?[4,on.fonts.ready]:[3,2];case 1:Xi.sent(),Xi.label=2;case 2:return/(AppleWebKit)/g.test(navigator.userAgent)?[4,Ox(on)]:[3,4];case 3:Xi.sent(),Xi.label=4;case 4:return"function"==typeof Zn?[2,Promise.resolve().then(function(){return Zn(on,ri)}).then(function(){return Ue})]:[2,Ue]}})})});return on.open(),on.write(Zg(document.doctype)+""),d_(this.referenceElement.ownerDocument,dt,Bt),on.replaceChild(on.adoptNode(this.documentElement),on.documentElement),on.close(),Wn},ne.prototype.createElementClone=function(j){if(Fc(j,2),Wg(j))return this.createCanvasClone(j);if(s_(j))return this.createVideoClone(j);if(a_(j))return this.createStyleClone(j);var ce=j.cloneNode(!1);return jg(ce)&&(jg(j)&&j.currentSrc&&j.currentSrc!==j.src&&(ce.src=j.currentSrc,ce.srcset=""),"lazy"===ce.loading&&(ce.loading="eager")),gl(ce)?this.createCustomElementClone(ce):ce},ne.prototype.createCustomElementClone=function(j){var ce=document.createElement("html2canvascustomelement");return k1(j.style,ce),ce},ne.prototype.createStyleClone=function(j){try{var ce=j.sheet;if(ce&&ce.cssRules){var ae=[].slice.call(ce.cssRules,0).reduce(function(dt,Bt){return Bt&&"string"==typeof Bt.cssText?dt+Bt.cssText:dt},""),Ue=j.cloneNode(!1);return Ue.textContent=ae,Ue}}catch(dt){if(this.context.logger.error("Unable to access cssRules property",dt),"SecurityError"!==dt.name)throw dt}return j.cloneNode(!1)},ne.prototype.createCanvasClone=function(j){var ce;if(this.options.inlineImages&&j.ownerDocument){var ae=j.ownerDocument.createElement("img");try{return ae.src=j.toDataURL(),ae}catch{this.context.logger.info("Unable to inline canvas contents, canvas is tainted",j)}}var Ue=j.cloneNode(!1);try{Ue.width=j.width,Ue.height=j.height;var dt=j.getContext("2d"),Bt=Ue.getContext("2d");if(Bt)if(!this.options.allowTaint&&dt)Bt.putImageData(dt.getImageData(0,0,j.width,j.height),0,0);else{var an=null!==(ce=j.getContext("webgl2"))&&void 0!==ce?ce:j.getContext("webgl");if(an){var on=an.getContextAttributes();!1===on?.preserveDrawingBuffer&&this.context.logger.warn("Unable to clone WebGL context as it has preserveDrawingBuffer=false",j)}Bt.drawImage(j,0,0)}return Ue}catch{this.context.logger.info("Unable to clone canvas as it is tainted",j)}return Ue},ne.prototype.createVideoClone=function(j){var ce=j.ownerDocument.createElement("canvas");ce.width=j.offsetWidth,ce.height=j.offsetHeight;var ae=ce.getContext("2d");try{return ae&&(ae.drawImage(j,0,0,ce.width,ce.height),this.options.allowTaint||ae.getImageData(0,0,ce.width,ce.height)),ce}catch{this.context.logger.info("Unable to clone video as it is tainted",j)}var Ue=j.ownerDocument.createElement("canvas");return Ue.width=j.offsetWidth,Ue.height=j.offsetHeight,Ue},ne.prototype.appendChildNode=function(j,ce,ae){(!Vp(ce)||!function(ne){return"SCRIPT"===ne.tagName}(ce)&&!ce.hasAttribute(gf)&&("function"!=typeof this.options.ignoreElements||!this.options.ignoreElements(ce)))&&(!this.options.copyStyles||!Vp(ce)||!a_(ce))&&j.appendChild(this.cloneNode(ce,ae))},ne.prototype.cloneChildNodes=function(j,ce,ae){for(var Ue=this,dt=j.shadowRoot?j.shadowRoot.firstChild:j.firstChild;dt;dt=dt.nextSibling)if(Vp(dt)&&np(dt)&&"function"==typeof dt.assignedNodes){var Bt=dt.assignedNodes();Bt.length&&Bt.forEach(function(an){return Ue.appendChildNode(ce,an,ae)})}else this.appendChildNode(ce,dt,ae)},ne.prototype.cloneNode=function(j,ce){if(e_(j))return document.createTextNode(j.data);if(!j.ownerDocument)return j.cloneNode(!1);var ae=j.ownerDocument.defaultView;if(ae&&Vp(j)&&(t_(j)||qg(j))){var Ue=this.createElementClone(j);Ue.style.transitionProperty="none";var dt=ae.getComputedStyle(j),Bt=ae.getComputedStyle(j,":before"),an=ae.getComputedStyle(j,":after");this.referenceElement===j&&t_(Ue)&&(this.clonedReferenceElement=Ue),Qg(Ue)&&NC(Ue);var on=this.counters.parse(new kc(this.context,dt)),Wn=this.resolvePseudoContent(j,Ue,Bt,Xg.BEFORE);gl(j)&&(ce=!0),s_(j)||this.cloneChildNodes(j,Ue,ce),Wn&&Ue.insertBefore(Wn,Ue.firstChild);var Zn=this.resolvePseudoContent(j,Ue,an,Xg.AFTER);return Zn&&Ue.appendChild(Zn),this.counters.pop(on),(dt&&(this.options.copyStyles||qg(j))&&!o_(j)||ce)&&k1(dt,Ue),(0!==j.scrollTop||0!==j.scrollLeft)&&this.scrolledElements.push([Ue,j.scrollLeft,j.scrollTop]),(LA(j)||Lc(j))&&(LA(Ue)||Lc(Ue))&&(Ue.value=j.value),Ue}return j.cloneNode(!1)},ne.prototype.resolvePseudoContent=function(j,ce,ae,Ue){var dt=this;if(ae){var Bt=ae.content,an=ce.ownerDocument;if(an&&Bt&&"none"!==Bt&&"-moz-alt-content"!==Bt&&"none"!==ae.display){this.counters.parse(new kc(this.context,ae));var on=new su(this.context,ae),Wn=an.createElement("html2canvaspseudoelement");k1(ae,Wn),on.content.forEach(function(ri){if(0===ri.type)Wn.appendChild(an.createTextNode(ri.value));else if(22===ri.type){var Xi=an.createElement("img");Xi.src=ri.value,Xi.style.opacity="1",Wn.appendChild(Xi)}else if(18===ri.type){if("attr"===ri.name){var Ss=ri.values.filter(pi);Ss.length&&Wn.appendChild(an.createTextNode(j.getAttribute(Ss[0].value)||""))}else if("counter"===ri.name){var Ur=ri.values.filter($d),Ho=Ur[1];if((zr=Ur[0])&&pi(zr)){var Ns=dt.counters.getCounterValue(zr.value),Zr=Ho&&pi(Ho)?xA.parse(dt.context,Ho.value):3;Wn.appendChild(an.createTextNode(Um(Ns,Zr,!1)))}}else if("counters"===ri.name){var zr,So=ri.values.filter($d),Xo=So[1];if(Ho=So[2],(zr=So[0])&&pi(zr)){var Fo=dt.counters.getCounterValues(zr.value),Es=Ho&&pi(Ho)?xA.parse(dt.context,Ho.value):3,La=Xo&&0===Xo.type?Xo.value:"",Ba=Fo.map(function(eh){return Um(eh,Es,!1)}).join(La);Wn.appendChild(an.createTextNode(Ba))}}}else if(20===ri.type)switch(ri.value){case"open-quote":Wn.appendChild(an.createTextNode(ac(on.quotes,dt.quoteDepth++,!0)));break;case"close-quote":Wn.appendChild(an.createTextNode(ac(on.quotes,--dt.quoteDepth,!1)));break;default:Wn.appendChild(an.createTextNode(ri.value))}}),Wn.className=u_+" "+Jg;var Zn=Ue===Xg.BEFORE?" "+u_:" "+Jg;return qg(ce)?ce.className.baseValue+=Zn:ce.className+=Zn,Wn}}},ne.destroy=function(j){return!!j.parentNode&&(j.parentNode.removeChild(j),!0)},ne}(),Xg=function(ne){return ne[ne.BEFORE=0]="BEFORE",ne[ne.AFTER=1]="AFTER",ne}(Xg||{}),Yg=function(ne,j){var ce=ne.createElement("iframe");return ce.className="html2canvas-container",ce.style.visibility="hidden",ce.style.position="fixed",ce.style.left="-10000px",ce.style.top="0px",ce.style.border="0",ce.width=j.width.toString(),ce.height=j.height.toString(),ce.scrolling="no",ce.setAttribute(gf,"true"),ne.body.appendChild(ce),ce},mv=function(ne){return new Promise(function(j){ne.complete?j():ne.src?(ne.onload=j,ne.onerror=j):j()})},Ox=function(ne){return Promise.all([].slice.call(ne.images,0).map(mv))},Kg=function(ne){return new Promise(function(j,ce){var ae=ne.contentWindow;if(!ae)return ce("No window assigned for iframe");var Ue=ae.document;ae.onload=ne.onload=function(){ae.onload=ne.onload=null;var dt=setInterval(function(){Ue.body.childNodes.length>0&&"complete"===Ue.readyState&&(clearInterval(dt),j(ne))},50)}})},NA=["all","d","content"],k1=function(ne,j){for(var ce=ne.length-1;ce>=0;ce--){var ae=ne.item(ce);-1===NA.indexOf(ae)&&j.style.setProperty(ae,ne.getPropertyValue(ae))}return j},Zg=function(ne){var j="";return ne&&(j+=""),j},d_=function(ne,j,ce){ne&&ne.defaultView&&(j!==ne.defaultView.pageXOffset||ce!==ne.defaultView.pageYOffset)&&ne.defaultView.scrollTo(j,ce)},h_=function(ne){var j=ne[0],ae=ne[2];j.scrollLeft=ne[1],j.scrollTop=ae},u_="___html2canvas___pseudoelement_before",Jg="___html2canvas___pseudoelement_after",Bu='{\n content: "" !important;\n display: none !important;\n}',NC=function(ne){zm(ne,"."+u_+":before"+Bu+"\n ."+Jg+":after"+Bu)},zm=function(ne,j){var ce=ne.ownerDocument;if(ce){var ae=ce.createElement("style");ae.textContent=j,ne.appendChild(ae)}},Pu=function(){function ne(){}return ne.getOrigin=function(j){var ce=ne._link;return ce?(ce.href=j,ce.href=ce.href,ce.protocol+ce.hostname+ce.port):"about:blank"},ne.isSameOrigin=function(j){return ne.getOrigin(j)===ne._origin},ne.setContext=function(j){ne._link=j.document.createElement("a"),ne._origin=ne.getOrigin(j.location.href)},ne._origin="about:blank",ne}(),gv=function(){function ne(j,ce){this.context=j,this._options=ce,this._cache={}}return ne.prototype.addImage=function(j){var ce=Promise.resolve();return this.has(j)||(m_(j)||Lx(j))&&(this._cache[j]=this.loadImage(j)).catch(function(){}),ce},ne.prototype.match=function(j){return this._cache[j]},ne.prototype.loadImage=function(j){return x(this,void 0,void 0,function(){var ce,ae,Ue,dt,Bt=this;return L(this,function(an){switch(an.label){case 0:return ce=Pu.isSameOrigin(j),ae=!p_(j)&&!0===this._options.useCORS&&Oc.SUPPORT_CORS_IMAGES&&!ce,Ue=!p_(j)&&!ce&&!m_(j)&&"string"==typeof this._options.proxy&&Oc.SUPPORT_CORS_XHR&&!ae,ce||!1!==this._options.allowTaint||p_(j)||m_(j)||Ue||ae?(dt=j,Ue?[4,this.proxy(dt)]:[3,2]):[2];case 1:dt=an.sent(),an.label=2;case 2:return this.context.logger.debug("Added image "+j.substring(0,256)),[4,new Promise(function(on,Wn){var Zn=new Image;Zn.onload=function(){return on(Zn)},Zn.onerror=Wn,(e0(dt)||ae)&&(Zn.crossOrigin="anonymous"),Zn.src=dt,!0===Zn.complete&&setTimeout(function(){return on(Zn)},500),Bt._options.imageTimeout>0&&setTimeout(function(){return Wn("Timed out ("+Bt._options.imageTimeout+"ms) loading image")},Bt._options.imageTimeout)})];case 3:return[2,an.sent()]}})})},ne.prototype.has=function(j){return typeof this._cache[j]<"u"},ne.prototype.keys=function(){return Promise.resolve(Object.keys(this._cache))},ne.prototype.proxy=function(j){var ce=this,ae=this._options.proxy;if(!ae)throw new Error("No proxy defined");var Ue=j.substring(0,256);return new Promise(function(dt,Bt){var an=Oc.SUPPORT_RESPONSE_TYPE?"blob":"text",on=new XMLHttpRequest;on.onload=function(){if(200===on.status)if("text"===an)dt(on.response);else{var ri=new FileReader;ri.addEventListener("load",function(){return dt(ri.result)},!1),ri.addEventListener("error",function(Xi){return Bt(Xi)},!1),ri.readAsDataURL(on.response)}else Bt("Failed to proxy resource "+Ue+" with status code "+on.status)},on.onerror=Bt;var Wn=ae.indexOf("?")>-1?"&":"?";if(on.open("GET",""+ae+Wn+"url="+encodeURIComponent(j)+"&responseType="+an),"text"!==an&&on instanceof XMLHttpRequest&&(on.responseType=an),ce._options.imageTimeout){var Zn=ce._options.imageTimeout;on.timeout=Zn,on.ontimeout=function(){return Bt("Timed out ("+Zn+"ms) proxying "+Ue)}}on.send()})},ne}(),f_=/^data:image\/svg\+xml/i,F1=/^data:image\/.*;base64,/i,_v=/^data:image\/.*/i,Lx=function(ne){return Oc.SUPPORT_SVG_DRAWING||!Nx(ne)},p_=function(ne){return _v.test(ne)},e0=function(ne){return F1.test(ne)},m_=function(ne){return"blob"===ne.substr(0,4)},Nx=function(ne){return"svg"===ne.substr(-3).toLowerCase()||f_.test(ne)},vs=function(){function ne(j,ce){this.type=0,this.x=j,this.y=ce}return ne.prototype.add=function(j,ce){return new ne(this.x+j,this.y+ce)},ne}(),Vh=function(ne,j,ce){return new vs(ne.x+(j.x-ne.x)*ce,ne.y+(j.y-ne.y)*ce)},O1=function(){function ne(j,ce,ae,Ue){this.type=1,this.start=j,this.startControl=ce,this.endControl=ae,this.end=Ue}return ne.prototype.subdivide=function(j,ce){var ae=Vh(this.start,this.startControl,j),Ue=Vh(this.startControl,this.endControl,j),dt=Vh(this.endControl,this.end,j),Bt=Vh(ae,Ue,j),an=Vh(Ue,dt,j),on=Vh(Bt,an,j);return ce?new ne(this.start,ae,Bt,on):new ne(on,an,dt,this.end)},ne.prototype.add=function(j,ce){return new ne(this.start.add(j,ce),this.startControl.add(j,ce),this.endControl.add(j,ce),this.end.add(j,ce))},ne.prototype.reverse=function(){return new ne(this.end,this.endControl,this.startControl,this.start)},ne}(),Nc=function(ne){return 1===ne.type},L1=function(){return function ne(j){var ce=j.styles,ae=j.bounds,Ue=wm(ce.borderTopLeftRadius,ae.width,ae.height),dt=Ue[0],Bt=Ue[1],an=wm(ce.borderTopRightRadius,ae.width,ae.height),on=an[0],Wn=an[1],Zn=wm(ce.borderBottomRightRadius,ae.width,ae.height),ri=Zn[0],Xi=Zn[1],Ss=wm(ce.borderBottomLeftRadius,ae.width,ae.height),Ur=Ss[0],zr=Ss[1],Ho=[];Ho.push((dt+on)/ae.width),Ho.push((Ur+ri)/ae.width),Ho.push((Bt+zr)/ae.height),Ho.push((Wn+Xi)/ae.height);var Ns=Math.max.apply(Math,Ho);Ns>1&&(dt/=Ns,Bt/=Ns,on/=Ns,Wn/=Ns,ri/=Ns,Xi/=Ns,Ur/=Ns,zr/=Ns);var Zr=ae.width-on,So=ae.height-Xi,Xo=ae.width-ri,Fo=ae.height-zr,Es=ce.borderTopWidth,La=ce.borderRightWidth,Ba=ce.borderBottomWidth,Vo=ce.borderLeftWidth,wc=ua(ce.paddingTop,j.bounds.width),eh=ua(ce.paddingRight,j.bounds.width),xh=ua(ce.paddingBottom,j.bounds.width),hl=ua(ce.paddingLeft,j.bounds.width);this.topLeftBorderDoubleOuterBox=dt>0||Bt>0?Oa(ae.left+Vo/3,ae.top+Es/3,dt-Vo/3,Bt-Es/3,Po.TOP_LEFT):new vs(ae.left+Vo/3,ae.top+Es/3),this.topRightBorderDoubleOuterBox=dt>0||Bt>0?Oa(ae.left+Zr,ae.top+Es/3,on-La/3,Wn-Es/3,Po.TOP_RIGHT):new vs(ae.left+ae.width-La/3,ae.top+Es/3),this.bottomRightBorderDoubleOuterBox=ri>0||Xi>0?Oa(ae.left+Xo,ae.top+So,ri-La/3,Xi-Ba/3,Po.BOTTOM_RIGHT):new vs(ae.left+ae.width-La/3,ae.top+ae.height-Ba/3),this.bottomLeftBorderDoubleOuterBox=Ur>0||zr>0?Oa(ae.left+Vo/3,ae.top+Fo,Ur-Vo/3,zr-Ba/3,Po.BOTTOM_LEFT):new vs(ae.left+Vo/3,ae.top+ae.height-Ba/3),this.topLeftBorderDoubleInnerBox=dt>0||Bt>0?Oa(ae.left+2*Vo/3,ae.top+2*Es/3,dt-2*Vo/3,Bt-2*Es/3,Po.TOP_LEFT):new vs(ae.left+2*Vo/3,ae.top+2*Es/3),this.topRightBorderDoubleInnerBox=dt>0||Bt>0?Oa(ae.left+Zr,ae.top+2*Es/3,on-2*La/3,Wn-2*Es/3,Po.TOP_RIGHT):new vs(ae.left+ae.width-2*La/3,ae.top+2*Es/3),this.bottomRightBorderDoubleInnerBox=ri>0||Xi>0?Oa(ae.left+Xo,ae.top+So,ri-2*La/3,Xi-2*Ba/3,Po.BOTTOM_RIGHT):new vs(ae.left+ae.width-2*La/3,ae.top+ae.height-2*Ba/3),this.bottomLeftBorderDoubleInnerBox=Ur>0||zr>0?Oa(ae.left+2*Vo/3,ae.top+Fo,Ur-2*Vo/3,zr-2*Ba/3,Po.BOTTOM_LEFT):new vs(ae.left+2*Vo/3,ae.top+ae.height-2*Ba/3),this.topLeftBorderStroke=dt>0||Bt>0?Oa(ae.left+Vo/2,ae.top+Es/2,dt-Vo/2,Bt-Es/2,Po.TOP_LEFT):new vs(ae.left+Vo/2,ae.top+Es/2),this.topRightBorderStroke=dt>0||Bt>0?Oa(ae.left+Zr,ae.top+Es/2,on-La/2,Wn-Es/2,Po.TOP_RIGHT):new vs(ae.left+ae.width-La/2,ae.top+Es/2),this.bottomRightBorderStroke=ri>0||Xi>0?Oa(ae.left+Xo,ae.top+So,ri-La/2,Xi-Ba/2,Po.BOTTOM_RIGHT):new vs(ae.left+ae.width-La/2,ae.top+ae.height-Ba/2),this.bottomLeftBorderStroke=Ur>0||zr>0?Oa(ae.left+Vo/2,ae.top+Fo,Ur-Vo/2,zr-Ba/2,Po.BOTTOM_LEFT):new vs(ae.left+Vo/2,ae.top+ae.height-Ba/2),this.topLeftBorderBox=dt>0||Bt>0?Oa(ae.left,ae.top,dt,Bt,Po.TOP_LEFT):new vs(ae.left,ae.top),this.topRightBorderBox=on>0||Wn>0?Oa(ae.left+Zr,ae.top,on,Wn,Po.TOP_RIGHT):new vs(ae.left+ae.width,ae.top),this.bottomRightBorderBox=ri>0||Xi>0?Oa(ae.left+Xo,ae.top+So,ri,Xi,Po.BOTTOM_RIGHT):new vs(ae.left+ae.width,ae.top+ae.height),this.bottomLeftBorderBox=Ur>0||zr>0?Oa(ae.left,ae.top+Fo,Ur,zr,Po.BOTTOM_LEFT):new vs(ae.left,ae.top+ae.height),this.topLeftPaddingBox=dt>0||Bt>0?Oa(ae.left+Vo,ae.top+Es,Math.max(0,dt-Vo),Math.max(0,Bt-Es),Po.TOP_LEFT):new vs(ae.left+Vo,ae.top+Es),this.topRightPaddingBox=on>0||Wn>0?Oa(ae.left+Math.min(Zr,ae.width-La),ae.top+Es,Zr>ae.width+La?0:Math.max(0,on-La),Math.max(0,Wn-Es),Po.TOP_RIGHT):new vs(ae.left+ae.width-La,ae.top+Es),this.bottomRightPaddingBox=ri>0||Xi>0?Oa(ae.left+Math.min(Xo,ae.width-Vo),ae.top+Math.min(So,ae.height-Ba),Math.max(0,ri-La),Math.max(0,Xi-Ba),Po.BOTTOM_RIGHT):new vs(ae.left+ae.width-La,ae.top+ae.height-Ba),this.bottomLeftPaddingBox=Ur>0||zr>0?Oa(ae.left+Vo,ae.top+Math.min(Fo,ae.height-Ba),Math.max(0,Ur-Vo),Math.max(0,zr-Ba),Po.BOTTOM_LEFT):new vs(ae.left+Vo,ae.top+ae.height-Ba),this.topLeftContentBox=dt>0||Bt>0?Oa(ae.left+Vo+hl,ae.top+Es+wc,Math.max(0,dt-(Vo+hl)),Math.max(0,Bt-(Es+wc)),Po.TOP_LEFT):new vs(ae.left+Vo+hl,ae.top+Es+wc),this.topRightContentBox=on>0||Wn>0?Oa(ae.left+Math.min(Zr,ae.width+Vo+hl),ae.top+Es+wc,Zr>ae.width+Vo+hl?0:on-Vo+hl,Wn-(Es+wc),Po.TOP_RIGHT):new vs(ae.left+ae.width-(La+eh),ae.top+Es+wc),this.bottomRightContentBox=ri>0||Xi>0?Oa(ae.left+Math.min(Xo,ae.width-(Vo+hl)),ae.top+Math.min(So,ae.height+Es+wc),Math.max(0,ri-(La+eh)),Xi-(Ba+xh),Po.BOTTOM_RIGHT):new vs(ae.left+ae.width-(La+eh),ae.top+ae.height-(Ba+xh)),this.bottomLeftContentBox=Ur>0||zr>0?Oa(ae.left+Vo+hl,ae.top+Fo,Math.max(0,Ur-(Vo+hl)),zr-(Ba+xh),Po.BOTTOM_LEFT):new vs(ae.left+Vo+hl,ae.top+ae.height-(Ba+xh))}}(),Po=function(ne){return ne[ne.TOP_LEFT=0]="TOP_LEFT",ne[ne.TOP_RIGHT=1]="TOP_RIGHT",ne[ne.BOTTOM_RIGHT=2]="BOTTOM_RIGHT",ne[ne.BOTTOM_LEFT=3]="BOTTOM_LEFT",ne}(Po||{}),Oa=function(ne,j,ce,ae,Ue){var dt=(Math.sqrt(2)-1)/3*4,Bt=ce*dt,an=ae*dt,on=ne+ce,Wn=j+ae;switch(Ue){case Po.TOP_LEFT:return new O1(new vs(ne,Wn),new vs(ne,Wn-an),new vs(on-Bt,j),new vs(on,j));case Po.TOP_RIGHT:return new O1(new vs(ne,j),new vs(ne+Bt,j),new vs(on,Wn-an),new vs(on,Wn));case Po.BOTTOM_RIGHT:return new O1(new vs(on,j),new vs(on,j+an),new vs(ne+Bt,Wn),new vs(ne,Wn));default:return new O1(new vs(on,Wn),new vs(on-Bt,Wn),new vs(ne,j+an),new vs(ne,j))}},cc=function(ne){return[ne.topLeftBorderBox,ne.topRightBorderBox,ne.bottomRightBorderBox,ne.bottomLeftBorderBox]},Ca=function(ne){return[ne.topLeftPaddingBox,ne.topRightPaddingBox,ne.bottomRightPaddingBox,ne.bottomLeftPaddingBox]},Wp=function(){return function ne(j,ce,ae){this.offsetX=j,this.offsetY=ce,this.matrix=ae,this.type=0,this.target=6}}(),gd=function(){return function ne(j,ce){this.path=j,this.target=ce,this.type=1}}(),UA=function(){return function ne(j){this.opacity=j,this.type=2,this.target=6}}(),yv=function(ne){return 1===ne.type},t0=function(ne,j){return ne.length===j.length&&ne.some(function(ce,ae){return ce===j[ae]})},ds=function(){return function ne(j){this.element=j,this.inlineLevel=[],this.nonInlineLevel=[],this.negativeZIndex=[],this.zeroOrAutoZIndexOrTransformedOrOpacity=[],this.positiveZIndex=[],this.nonPositionedFloats=[],this.nonPositionedInlineLevel=[]}}(),mu=function(){function ne(j,ce){if(this.container=j,this.parent=ce,this.effects=[],this.curves=new L1(this.container),this.container.styles.opacity<1&&this.effects.push(new UA(this.container.styles.opacity)),null!==this.container.styles.transform&&this.effects.push(new Wp(this.container.bounds.left+this.container.styles.transformOrigin[0].number,this.container.bounds.top+this.container.styles.transformOrigin[1].number,this.container.styles.transform)),0!==this.container.styles.overflowX){var Bt=cc(this.curves),an=Ca(this.curves);t0(Bt,an)?this.effects.push(new gd(Bt,6)):(this.effects.push(new gd(Bt,2)),this.effects.push(new gd(an,4)))}}return ne.prototype.getEffects=function(j){for(var ce=-1===[2,3].indexOf(this.container.styles.position),ae=this.parent,Ue=this.effects.slice(0);ae;){var dt=ae.effects.filter(function(on){return!yv(on)});if(ce||0!==ae.container.styles.position||!ae.parent){if(Ue.unshift.apply(Ue,dt),ce=-1===[2,3].indexOf(ae.container.styles.position),0!==ae.container.styles.overflowX){var Bt=cc(ae.curves),an=Ca(ae.curves);t0(Bt,an)||Ue.unshift(new gd(an,6))}}else Ue.unshift.apply(Ue,dt);ae=ae.parent}return Ue.filter(function(on){return Yo(on.target,j)})},ne}(),Hm=function(ne,j,ce,ae){ne.container.elements.forEach(function(Ue){var dt=Yo(Ue.flags,4),Bt=Yo(Ue.flags,2),an=new mu(Ue,ne);Yo(Ue.styles.display,2048)&&ae.push(an);var on=Yo(Ue.flags,8)?[]:ae;if(dt||Bt){var Wn=dt||Ue.styles.isPositioned()?ce:j,Zn=new ds(an);if(Ue.styles.isPositioned()||Ue.styles.opacity<1||Ue.styles.isTransformed()){var ri=Ue.styles.zIndex.order;if(ri<0){var Xi=0;Wn.negativeZIndex.some(function(Ur,zr){return ri>Ur.element.container.styles.zIndex.order?(Xi=zr,!1):Xi>0}),Wn.negativeZIndex.splice(Xi,0,Zn)}else if(ri>0){var Ss=0;Wn.positiveZIndex.some(function(Ur,zr){return ri>=Ur.element.container.styles.zIndex.order?(Ss=zr+1,!1):Ss>0}),Wn.positiveZIndex.splice(Ss,0,Zn)}else Wn.zeroOrAutoZIndexOrTransformedOrOpacity.push(Zn)}else Ue.styles.isFloating()?Wn.nonPositionedFloats.push(Zn):Wn.nonPositionedInlineLevel.push(Zn);Hm(an,Zn,dt?Zn:ce,on)}else Ue.styles.isInlineLevel()?j.inlineLevel.push(an):j.nonInlineLevel.push(an),Hm(an,j,ce,on);Yo(Ue.flags,8)&&U1(Ue,on)})},U1=function(ne,j){for(var ce=ne instanceof Vg?ne.start:1,ae=ne instanceof Vg&&ne.reversed,Ue=0;Ue"u"?ne[0]:ce},A_=function(ne,j,ce,ae,Ue){var dt=j[0],Bt=j[1],an=ce[0],on=ce[1];switch(ne){case 2:return[new vs(Math.round(ae.left),Math.round(ae.top+Bt)),new vs(Math.round(ae.left+ae.width),Math.round(ae.top+Bt)),new vs(Math.round(ae.left+ae.width),Math.round(on+ae.top+Bt)),new vs(Math.round(ae.left),Math.round(on+ae.top+Bt))];case 3:return[new vs(Math.round(ae.left+dt),Math.round(ae.top)),new vs(Math.round(ae.left+dt+an),Math.round(ae.top)),new vs(Math.round(ae.left+dt+an),Math.round(ae.height+ae.top)),new vs(Math.round(ae.left+dt),Math.round(ae.height+ae.top))];case 1:return[new vs(Math.round(ae.left+dt),Math.round(ae.top+Bt)),new vs(Math.round(ae.left+dt+an),Math.round(ae.top+Bt)),new vs(Math.round(ae.left+dt+an),Math.round(ae.top+Bt+on)),new vs(Math.round(ae.left+dt),Math.round(ae.top+Bt+on))];default:return[new vs(Math.round(Ue.left),Math.round(Ue.top)),new vs(Math.round(Ue.left+Ue.width),Math.round(Ue.top)),new vs(Math.round(Ue.left+Ue.width),Math.round(Ue.height+Ue.top)),new vs(Math.round(Ue.left),Math.round(Ue.height+Ue.top))]}},Vm="Hidden Text",V1=function(){function ne(j){this._data={},this._document=j}return ne.prototype.parseMetrics=function(j,ce){var ae=this._document.createElement("div"),Ue=this._document.createElement("img"),dt=this._document.createElement("span"),Bt=this._document.body;ae.style.visibility="hidden",ae.style.fontFamily=j,ae.style.fontSize=ce,ae.style.margin="0",ae.style.padding="0",ae.style.whiteSpace="nowrap",Bt.appendChild(ae),Ue.src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",Ue.width=1,Ue.height=1,Ue.style.margin="0",Ue.style.padding="0",Ue.style.verticalAlign="baseline",dt.style.fontFamily=j,dt.style.fontSize=ce,dt.style.margin="0",dt.style.padding="0",dt.appendChild(this._document.createTextNode(Vm)),ae.appendChild(dt),ae.appendChild(Ue);var an=Ue.offsetTop-dt.offsetTop+2;ae.removeChild(dt),ae.appendChild(this._document.createTextNode(Vm)),ae.style.lineHeight="normal",Ue.style.verticalAlign="super";var on=Ue.offsetTop-ae.offsetTop+2;return Bt.removeChild(ae),{baseline:an,middle:on}},ne.prototype.getMetrics=function(j,ce){var ae=j+" "+ce;return typeof this._data[ae]>"u"&&(this._data[ae]=this.parseMetrics(j,ce)),this._data[ae]},ne}(),r0=function(){return function ne(j,ce){this.context=j,this.options=ce}}(),GA=function(ne){function j(ce,ae){var Ue=ne.call(this,ce,ae)||this;return Ue._activeEffects=[],Ue.canvas=ae.canvas?ae.canvas:document.createElement("canvas"),Ue.ctx=Ue.canvas.getContext("2d"),ae.canvas||(Ue.canvas.width=Math.floor(ae.width*ae.scale),Ue.canvas.height=Math.floor(ae.height*ae.scale),Ue.canvas.style.width=ae.width+"px",Ue.canvas.style.height=ae.height+"px"),Ue.fontMetrics=new V1(document),Ue.ctx.scale(Ue.options.scale,Ue.options.scale),Ue.ctx.translate(-ae.x,-ae.y),Ue.ctx.textBaseline="bottom",Ue._activeEffects=[],Ue.context.logger.debug("Canvas renderer initialized ("+ae.width+"x"+ae.height+") with scale "+ae.scale),Ue}return Se(j,ne),j.prototype.applyEffects=function(ce){for(var ae=this;this._activeEffects.length;)this.popEffect();ce.forEach(function(Ue){return ae.applyEffect(Ue)})},j.prototype.applyEffect=function(ce){this.ctx.save(),function(ne){return 2===ne.type}(ce)&&(this.ctx.globalAlpha=ce.opacity),function(ne){return 0===ne.type}(ce)&&(this.ctx.translate(ce.offsetX,ce.offsetY),this.ctx.transform(ce.matrix[0],ce.matrix[1],ce.matrix[2],ce.matrix[3],ce.matrix[4],ce.matrix[5]),this.ctx.translate(-ce.offsetX,-ce.offsetY)),yv(ce)&&(this.path(ce.path),this.ctx.clip()),this._activeEffects.push(ce)},j.prototype.popEffect=function(){this._activeEffects.pop(),this.ctx.restore()},j.prototype.renderStack=function(ce){return x(this,void 0,void 0,function(){return L(this,function(Ue){switch(Ue.label){case 0:return ce.element.container.styles.isVisible()?[4,this.renderStackContent(ce)]:[3,2];case 1:Ue.sent(),Ue.label=2;case 2:return[2]}})})},j.prototype.renderNode=function(ce){return x(this,void 0,void 0,function(){return L(this,function(ae){switch(ae.label){case 0:return Yo(ce.container.flags,16),ce.container.styles.isVisible()?[4,this.renderNodeBackgroundAndBorders(ce)]:[3,3];case 1:return ae.sent(),[4,this.renderNodeContent(ce)];case 2:ae.sent(),ae.label=3;case 3:return[2]}})})},j.prototype.renderTextWithLetterSpacing=function(ce,ae,Ue){var dt=this;0===ae?this.ctx.fillText(ce.text,ce.bounds.left,ce.bounds.top+Ue):Tu(ce.text).reduce(function(an,on){return dt.ctx.fillText(on,an,ce.bounds.top+Ue),an+dt.ctx.measureText(on).width},ce.bounds.left)},j.prototype.createFontStyle=function(ce){var ae=ce.fontVariant.filter(function(Bt){return"normal"===Bt||"small-caps"===Bt}).join(""),Ue=Qm(ce.fontFamily).join(", "),dt=xi(ce.fontSize)?""+ce.fontSize.number+ce.fontSize.unit:ce.fontSize.number+"px";return[[ce.fontStyle,ae,ce.fontWeight,dt,Ue].join(" "),Ue,dt]},j.prototype.renderTextNode=function(ce,ae){return x(this,void 0,void 0,function(){var Ue,Bt,an,on,Wn,Zn,ri,Xi=this;return L(this,function(Ss){return Ue=this.createFontStyle(ae),Bt=Ue[1],an=Ue[2],this.ctx.font=Ue[0],this.ctx.direction=1===ae.direction?"rtl":"ltr",this.ctx.textAlign="left",this.ctx.textBaseline="alphabetic",on=this.fontMetrics.getMetrics(Bt,an),Wn=on.baseline,Zn=on.middle,ri=ae.paintOrder,ce.textBounds.forEach(function(Ur){ri.forEach(function(zr){switch(zr){case 0:Xi.ctx.fillStyle=vl(ae.color),Xi.renderTextWithLetterSpacing(Ur,ae.letterSpacing,Wn);var Ho=ae.textShadow;Ho.length&&Ur.text.trim().length&&(Ho.slice(0).reverse().forEach(function(Ns){Xi.ctx.shadowColor=vl(Ns.color),Xi.ctx.shadowOffsetX=Ns.offsetX.number*Xi.options.scale,Xi.ctx.shadowOffsetY=Ns.offsetY.number*Xi.options.scale,Xi.ctx.shadowBlur=Ns.blur.number,Xi.renderTextWithLetterSpacing(Ur,ae.letterSpacing,Wn)}),Xi.ctx.shadowColor="",Xi.ctx.shadowOffsetX=0,Xi.ctx.shadowOffsetY=0,Xi.ctx.shadowBlur=0),ae.textDecorationLine.length&&(Xi.ctx.fillStyle=vl(ae.textDecorationColor||ae.color),ae.textDecorationLine.forEach(function(Ns){switch(Ns){case 1:Xi.ctx.fillRect(Ur.bounds.left,Math.round(Ur.bounds.top+Wn),Ur.bounds.width,1);break;case 2:Xi.ctx.fillRect(Ur.bounds.left,Math.round(Ur.bounds.top),Ur.bounds.width,1);break;case 3:Xi.ctx.fillRect(Ur.bounds.left,Math.ceil(Ur.bounds.top+Zn),Ur.bounds.width,1)}}));break;case 1:ae.webkitTextStrokeWidth&&Ur.text.trim().length&&(Xi.ctx.strokeStyle=vl(ae.webkitTextStrokeColor),Xi.ctx.lineWidth=ae.webkitTextStrokeWidth,Xi.ctx.lineJoin=window.chrome?"miter":"round",Xi.ctx.strokeText(Ur.text,Ur.bounds.left,Ur.bounds.top+Wn)),Xi.ctx.strokeStyle="",Xi.ctx.lineWidth=0,Xi.ctx.lineJoin="miter"}})}),[2]})})},j.prototype.renderReplacedElement=function(ce,ae,Ue){if(Ue&&ce.intrinsicWidth>0&&ce.intrinsicHeight>0){var dt=ml(ce),Bt=Ca(ae);this.path(Bt),this.ctx.save(),this.ctx.clip(),this.ctx.drawImage(Ue,0,0,ce.intrinsicWidth,ce.intrinsicHeight,dt.left,dt.top,dt.width,dt.height),this.ctx.restore()}},j.prototype.renderNodeContent=function(ce){return x(this,void 0,void 0,function(){var ae,Ue,dt,Bt,an,Zn,ri,Xi,Ur,zr,Ho,Ns,Zr,So,Xo,Fo;return L(this,function(Es){switch(Es.label){case 0:this.applyEffects(ce.getEffects(4)),Ue=ce.curves,dt=(ae=ce.container).styles,Bt=0,an=ae.textNodes,Es.label=1;case 1:return Bt0&&bf>0&&($p=dt.ctx.createRadialGradient(eh+ed,xh+Fd,0,eh+ed,xh+Fd,Au),Dg(Zn.stops,2*Au).forEach(function(jm){return $p.addColorStop(jm.stop,vl(jm.color))}),dt.path(wc),dt.ctx.fillStyle=$p,Au!==bf?(Xp=ce.bounds.left+.5*ce.bounds.width,xf=ce.bounds.top+.5*ce.bounds.height,Ru=1/(Yp=bf/Au),dt.ctx.save(),dt.ctx.translate(Xp,xf),dt.ctx.transform(1,0,0,Yp,0,0),dt.ctx.translate(-Xp,-xf),dt.ctx.fillRect(eh,Ru*(xh-xf)+xf,hl,Kc*Ru),dt.ctx.restore()):dt.ctx.fill())):(Ur=op(ce,ae,[null,null,null]),wc=Ur[0],ed=Ur[1],Fd=Ur[2],zr=Cm(Zn.angle,hl=Ur[3],Kc=Ur[4]),Ho=zr[0],Ns=zr[1],Zr=zr[2],So=zr[3],Xo=zr[4],(Fo=document.createElement("canvas")).width=hl,Fo.height=Kc,Es=Fo.getContext("2d"),La=Es.createLinearGradient(Ns,So,Zr,Xo),Dg(Zn.stops,Ho).forEach(function(jm){return La.addColorStop(jm.stop,vl(jm.color))}),Es.fillStyle=La,Es.fillRect(0,0,hl,Kc),hl>0&&Kc>0&&(Ba=dt.ctx.createPattern(Fo,"repeat"),dt.renderRepeat(wc,Ba,ed,Fd))),qA.label=6;case 6:return ae--,[2]}})},dt=this,Bt=0,an=ce.styles.backgroundImage.slice(0).reverse(),Wn.label=1;case 1:return Bt0?2!==Zn.style?[3,5]:[4,this.renderDashedDottedBorder(Zn.color,Zn.width,an,ce.curves,2)]:[3,11]:[3,13];case 4:return Xi.sent(),[3,11];case 5:return 3!==Zn.style?[3,7]:[4,this.renderDashedDottedBorder(Zn.color,Zn.width,an,ce.curves,3)];case 6:return Xi.sent(),[3,11];case 7:return 4!==Zn.style?[3,9]:[4,this.renderDoubleBorder(Zn.color,Zn.width,an,ce.curves)];case 8:return Xi.sent(),[3,11];case 9:return[4,this.renderSolidBorder(Zn.color,an,ce.curves)];case 10:Xi.sent(),Xi.label=11;case 11:an++,Xi.label=12;case 12:return on++,[3,3];case 13:return[2]}})})},j.prototype.renderDashedDottedBorder=function(ce,ae,Ue,dt,Bt){return x(this,void 0,void 0,function(){var an,on,Wn,Zn,ri,Xi,Ss,Ur,zr,Ho,Ns,Zr,So,Xo,Fo,Es;return L(this,function(La){return this.ctx.save(),an=function(ne,j){switch(j){case 0:return Vl(ne.topLeftBorderStroke,ne.topRightBorderStroke);case 1:return Vl(ne.topRightBorderStroke,ne.bottomRightBorderStroke);case 2:return Vl(ne.bottomRightBorderStroke,ne.bottomLeftBorderStroke);default:return Vl(ne.bottomLeftBorderStroke,ne.topLeftBorderStroke)}}(dt,Ue),on=H1(dt,Ue),2===Bt&&(this.path(on),this.ctx.clip()),Nc(on[0])?(Wn=on[0].start.x,Zn=on[0].start.y):(Wn=on[0].x,Zn=on[0].y),Nc(on[1])?(ri=on[1].end.x,Xi=on[1].end.y):(ri=on[1].x,Xi=on[1].y),Ss=0===Ue||2===Ue?Math.abs(Wn-ri):Math.abs(Zn-Xi),this.ctx.beginPath(),this.formatPath(3===Bt?an:on.slice(0,2)),Ur=ae<3?3*ae:2*ae,zr=ae<3?2*ae:ae,3===Bt&&(Ur=ae,zr=ae),Ho=!0,Ss<=2*Ur?Ho=!1:Ss<=2*Ur+zr?(Ur*=Ns=Ss/(2*Ur+zr),zr*=Ns):(Zr=Math.floor((Ss+zr)/(Ur+zr)),So=(Ss-Zr*Ur)/(Zr-1),zr=(Xo=(Ss-(Zr+1)*Ur)/Zr)<=0||Math.abs(zr-So){Yr.exports=function mt(Se,Te,x){function L(ot,Ye){if(!Te[ot]){if(!Se[ot]){if(ve)return ve(ot,!0);var Re=new Error("Cannot find module '"+ot+"'");throw Re.code="MODULE_NOT_FOUND",Re}var He=Te[ot]={exports:{}};Se[ot][0].call(He.exports,function(Ve){return L(Se[ot][1][Ve]||Ve)},He,He.exports,mt,Se,Te,x)}return Te[ot].exports}for(var ve=void 0,ke=0;ke>4,Ve=1>6:64,De=2>2)+ve.charAt(He)+ve.charAt(Ve)+ve.charAt(De));return F.join("")},Te.decode=function(ke){var ot,Ye,Ze,Re,He,Ve,De=0,F=0,J="data:";if(ke.substr(0,5)===J)throw new Error("Invalid base64 input, it looks like a data url.");var Y,he=3*(ke=ke.replace(/[^A-Za-z0-9+/=]/g,"")).length/4;if(ke.charAt(ke.length-1)===ve.charAt(64)&&he--,ke.charAt(ke.length-2)===ve.charAt(64)&&he--,he%1!=0)throw new Error("Invalid base64 input, bad content length.");for(Y=L.uint8array?new Uint8Array(0|he):new Array(0|he);De>4,Ye=(15&Re)<<4|(He=ve.indexOf(ke.charAt(De++)))>>2,Ze=(3&He)<<6|(Ve=ve.indexOf(ke.charAt(De++))),Y[F++]=ot,64!==He&&(Y[F++]=Ye),64!==Ve&&(Y[F++]=Ze);return Y}},{"./support":30,"./utils":32}],2:[function(mt,Se,Te){"use strict";var x=mt("./external"),L=mt("./stream/DataWorker"),ve=mt("./stream/Crc32Probe"),ke=mt("./stream/DataLengthProbe");function ot(Ye,Ze,Re,He,Ve){this.compressedSize=Ye,this.uncompressedSize=Ze,this.crc32=Re,this.compression=He,this.compressedContent=Ve}ot.prototype={getContentWorker:function(){var Ye=new L(x.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new ke("data_length")),Ze=this;return Ye.on("end",function(){if(this.streamInfo.data_length!==Ze.uncompressedSize)throw new Error("Bug : uncompressed data size mismatch")}),Ye},getCompressedWorker:function(){return new L(x.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize",this.compressedSize).withStreamInfo("uncompressedSize",this.uncompressedSize).withStreamInfo("crc32",this.crc32).withStreamInfo("compression",this.compression)}},ot.createWorkerFrom=function(Ye,Ze,Re){return Ye.pipe(new ve).pipe(new ke("uncompressedSize")).pipe(Ze.compressWorker(Re)).pipe(new ke("compressedSize")).withStreamInfo("compression",Ze)},Se.exports=ot},{"./external":6,"./stream/Crc32Probe":25,"./stream/DataLengthProbe":26,"./stream/DataWorker":27}],3:[function(mt,Se,Te){"use strict";var x=mt("./stream/GenericWorker");Te.STORE={magic:"\0\0",compressWorker:function(){return new x("STORE compression")},uncompressWorker:function(){return new x("STORE decompression")}},Te.DEFLATE=mt("./flate")},{"./flate":7,"./stream/GenericWorker":28}],4:[function(mt,Se,Te){"use strict";var x=mt("./utils"),L=function(){for(var ve,ke=[],ot=0;ot<256;ot++){ve=ot;for(var Ye=0;Ye<8;Ye++)ve=1&ve?3988292384^ve>>>1:ve>>>1;ke[ot]=ve}return ke}();Se.exports=function(ve,ke){return void 0!==ve&&ve.length?"string"!==x.getTypeOf(ve)?function(ot,Ye,Ze,Re){var He=L,Ve=0+Ze;ot^=-1;for(var De=0;De>>8^He[255&(ot^Ye[De])];return~ot}(0|ke,ve,ve.length):function(ot,Ye,Ze,Re){var He=L,Ve=0+Ze;ot^=-1;for(var De=0;De>>8^He[255&(ot^Ye.charCodeAt(De))];return~ot}(0|ke,ve,ve.length):0}},{"./utils":32}],5:[function(mt,Se,Te){"use strict";Te.base64=!1,Te.binary=!1,Te.dir=!1,Te.createFolders=!0,Te.date=null,Te.compression=null,Te.compressionOptions=null,Te.comment=null,Te.unixPermissions=null,Te.dosPermissions=null},{}],6:[function(mt,Se,Te){"use strict";var x;x=typeof Promise<"u"?Promise:mt("lie"),Se.exports={Promise:x}},{lie:37}],7:[function(mt,Se,Te){"use strict";var x=typeof Uint8Array<"u"&&typeof Uint16Array<"u"&&typeof Uint32Array<"u",L=mt("pako"),ve=mt("./utils"),ke=mt("./stream/GenericWorker"),ot=x?"uint8array":"array";function Ye(Ze,Re){ke.call(this,"FlateWorker/"+Ze),this._pako=null,this._pakoAction=Ze,this._pakoOptions=Re,this.meta={}}Te.magic="\b\0",ve.inherits(Ye,ke),Ye.prototype.processChunk=function(Ze){this.meta=Ze.meta,null===this._pako&&this._createPako(),this._pako.push(ve.transformTo(ot,Ze.data),!1)},Ye.prototype.flush=function(){ke.prototype.flush.call(this),null===this._pako&&this._createPako(),this._pako.push([],!0)},Ye.prototype.cleanUp=function(){ke.prototype.cleanUp.call(this),this._pako=null},Ye.prototype._createPako=function(){this._pako=new L[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var Ze=this;this._pako.onData=function(Re){Ze.push({data:Re,meta:Ze.meta})}},Te.compressWorker=function(Ze){return new Ye("Deflate",Ze)},Te.uncompressWorker=function(){return new Ye("Inflate",{})}},{"./stream/GenericWorker":28,"./utils":32,pako:38}],8:[function(mt,Se,Te){"use strict";function x(He,Ve){var De,F="";for(De=0;De>>=8;return F}function L(He,Ve,De,F,J,Y){var he,Q,me=He.file,X=He.compression,B=Y!==ot.utf8encode,$=ve.transformTo("string",Y(me.name)),g=ve.transformTo("string",ot.utf8encode(me.name)),E=me.comment,_=ve.transformTo("string",Y(E)),v=ve.transformTo("string",ot.utf8encode(E)),p=g.length!==me.name.length,C=v.length!==E.length,I="",U="",k="",Z=me.dir,ee=me.date,ue={crc32:0,compressedSize:0,uncompressedSize:0};Ve&&!De||(ue.crc32=He.crc32,ue.compressedSize=He.compressedSize,ue.uncompressedSize=He.uncompressedSize);var V=0;Ve&&(V|=8),B||!p&&!C||(V|=2048);var z,fe,b=0,P=0;Z&&(b|=16),"UNIX"===J?(P=798,b|=(fe=z=me.unixPermissions,z||(fe=Z?16893:33204),(65535&fe)<<16)):(P=20,b|=function(z){return 63&(z||0)}(me.dosPermissions)),he=ee.getUTCHours(),he<<=6,he|=ee.getUTCMinutes(),he<<=5,he|=ee.getUTCSeconds()/2,Q=ee.getUTCFullYear()-1980,Q<<=4,Q|=ee.getUTCMonth()+1,Q<<=5,Q|=ee.getUTCDate(),p&&(U=x(1,1)+x(Ye($),4)+g,I+="up"+x(U.length,2)+U),C&&(k=x(1,1)+x(Ye(_),4)+v,I+="uc"+x(k.length,2)+k);var T="";return T+="\n\0",T+=x(V,2),T+=X.magic,T+=x(he,2),T+=x(Q,2),T+=x(ue.crc32,4),T+=x(ue.compressedSize,4),T+=x(ue.uncompressedSize,4),T+=x($.length,2),T+=x(I.length,2),{fileRecord:Ze.LOCAL_FILE_HEADER+T+$+I,dirRecord:Ze.CENTRAL_FILE_HEADER+x(P,2)+T+x(_.length,2)+"\0\0\0\0"+x(b,4)+x(F,4)+$+I+_}}var ve=mt("../utils"),ke=mt("../stream/GenericWorker"),ot=mt("../utf8"),Ye=mt("../crc32"),Ze=mt("../signature");function Re(He,Ve,De,F){ke.call(this,"ZipFileWorker"),this.bytesWritten=0,this.zipComment=Ve,this.zipPlatform=De,this.encodeFileName=F,this.streamFiles=He,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}ve.inherits(Re,ke),Re.prototype.push=function(He){var Ve=He.meta.percent||0,De=this.entriesCount,F=this._sources.length;this.accumulate?this.contentBuffer.push(He):(this.bytesWritten+=He.data.length,ke.prototype.push.call(this,{data:He.data,meta:{currentFile:this.currentFile,percent:De?(Ve+100*(De-F-1))/De:100}}))},Re.prototype.openedSource=function(He){this.currentSourceOffset=this.bytesWritten,this.currentFile=He.file.name;var Ve=this.streamFiles&&!He.file.dir;if(Ve){var De=L(He,Ve,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:De.fileRecord,meta:{percent:0}})}else this.accumulate=!0},Re.prototype.closedSource=function(He){this.accumulate=!1;var F,Ve=this.streamFiles&&!He.file.dir,De=L(He,Ve,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(De.dirRecord),Ve)this.push({data:(F=He,Ze.DATA_DESCRIPTOR+x(F.crc32,4)+x(F.compressedSize,4)+x(F.uncompressedSize,4)),meta:{percent:100}});else for(this.push({data:De.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},Re.prototype.flush=function(){for(var He=this.bytesWritten,Ve=0;Ve=this.index;ke--)ot=(ot<<8)+this.byteAt(ke);return this.index+=ve,ot},readString:function(ve){return x.transformTo("string",this.readData(ve))},readData:function(){},lastIndexOfSignature:function(){},readAndCheckSignature:function(){},readDate:function(){var ve=this.readInt(4);return new Date(Date.UTC(1980+(ve>>25&127),(ve>>21&15)-1,ve>>16&31,ve>>11&31,ve>>5&63,(31&ve)<<1))}},Se.exports=L},{"../utils":32}],19:[function(mt,Se,Te){"use strict";var x=mt("./Uint8ArrayReader");function L(ve){x.call(this,ve)}mt("../utils").inherits(L,x),L.prototype.readData=function(ve){this.checkOffset(ve);var ke=this.data.slice(this.zero+this.index,this.zero+this.index+ve);return this.index+=ve,ke},Se.exports=L},{"../utils":32,"./Uint8ArrayReader":21}],20:[function(mt,Se,Te){"use strict";var x=mt("./DataReader");function L(ve){x.call(this,ve)}mt("../utils").inherits(L,x),L.prototype.byteAt=function(ve){return this.data.charCodeAt(this.zero+ve)},L.prototype.lastIndexOfSignature=function(ve){return this.data.lastIndexOf(ve)-this.zero},L.prototype.readAndCheckSignature=function(ve){return ve===this.readData(4)},L.prototype.readData=function(ve){this.checkOffset(ve);var ke=this.data.slice(this.zero+this.index,this.zero+this.index+ve);return this.index+=ve,ke},Se.exports=L},{"../utils":32,"./DataReader":18}],21:[function(mt,Se,Te){"use strict";var x=mt("./ArrayReader");function L(ve){x.call(this,ve)}mt("../utils").inherits(L,x),L.prototype.readData=function(ve){if(this.checkOffset(ve),0===ve)return new Uint8Array(0);var ke=this.data.subarray(this.zero+this.index,this.zero+this.index+ve);return this.index+=ve,ke},Se.exports=L},{"../utils":32,"./ArrayReader":17}],22:[function(mt,Se,Te){"use strict";var x=mt("../utils"),L=mt("../support"),ve=mt("./ArrayReader"),ke=mt("./StringReader"),ot=mt("./NodeBufferReader"),Ye=mt("./Uint8ArrayReader");Se.exports=function(Ze){var Re=x.getTypeOf(Ze);return x.checkSupport(Re),"string"!==Re||L.uint8array?"nodebuffer"===Re?new ot(Ze):L.uint8array?new Ye(x.transformTo("uint8array",Ze)):new ve(x.transformTo("array",Ze)):new ke(Ze)}},{"../support":30,"../utils":32,"./ArrayReader":17,"./NodeBufferReader":19,"./StringReader":20,"./Uint8ArrayReader":21}],23:[function(mt,Se,Te){"use strict";Te.LOCAL_FILE_HEADER="PK\x03\x04",Te.CENTRAL_FILE_HEADER="PK\x01\x02",Te.CENTRAL_DIRECTORY_END="PK\x05\x06",Te.ZIP64_CENTRAL_DIRECTORY_LOCATOR="PK\x06\x07",Te.ZIP64_CENTRAL_DIRECTORY_END="PK\x06\x06",Te.DATA_DESCRIPTOR="PK\x07\b"},{}],24:[function(mt,Se,Te){"use strict";var x=mt("./GenericWorker"),L=mt("../utils");function ve(ke){x.call(this,"ConvertWorker to "+ke),this.destType=ke}L.inherits(ve,x),ve.prototype.processChunk=function(ke){this.push({data:L.transformTo(this.destType,ke.data),meta:ke.meta})},Se.exports=ve},{"../utils":32,"./GenericWorker":28}],25:[function(mt,Se,Te){"use strict";var x=mt("./GenericWorker"),L=mt("../crc32");function ve(){x.call(this,"Crc32Probe"),this.withStreamInfo("crc32",0)}mt("../utils").inherits(ve,x),ve.prototype.processChunk=function(ke){this.streamInfo.crc32=L(ke.data,this.streamInfo.crc32||0),this.push(ke)},Se.exports=ve},{"../crc32":4,"../utils":32,"./GenericWorker":28}],26:[function(mt,Se,Te){"use strict";var x=mt("../utils"),L=mt("./GenericWorker");function ve(ke){L.call(this,"DataLengthProbe for "+ke),this.propName=ke,this.withStreamInfo(ke,0)}x.inherits(ve,L),ve.prototype.processChunk=function(ke){ke&&(this.streamInfo[this.propName]=(this.streamInfo[this.propName]||0)+ke.data.length),L.prototype.processChunk.call(this,ke)},Se.exports=ve},{"../utils":32,"./GenericWorker":28}],27:[function(mt,Se,Te){"use strict";var x=mt("../utils"),L=mt("./GenericWorker");function ve(ke){L.call(this,"DataWorker");var ot=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type="",this._tickScheduled=!1,ke.then(function(Ye){ot.dataIsReady=!0,ot.data=Ye,ot.max=Ye&&Ye.length||0,ot.type=x.getTypeOf(Ye),ot.isPaused||ot._tickAndRepeat()},function(Ye){ot.error(Ye)})}x.inherits(ve,L),ve.prototype.cleanUp=function(){L.prototype.cleanUp.call(this),this.data=null},ve.prototype.resume=function(){return!!L.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,x.delay(this._tickAndRepeat,[],this)),!0)},ve.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(x.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},ve.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var ke=null,ot=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case"string":ke=this.data.substring(this.index,ot);break;case"uint8array":ke=this.data.subarray(this.index,ot);break;case"array":case"nodebuffer":ke=this.data.slice(this.index,ot)}return this.index=ot,this.push({data:ke,meta:{percent:this.max?this.index/this.max*100:0}})},Se.exports=ve},{"../utils":32,"./GenericWorker":28}],28:[function(mt,Se,Te){"use strict";function x(L){this.name=L||"default",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}x.prototype={push:function(L){this.emit("data",L)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit("end"),this.cleanUp(),this.isFinished=!0}catch(L){this.emit("error",L)}return!0},error:function(L){return!this.isFinished&&(this.isPaused?this.generatedError=L:(this.isFinished=!0,this.emit("error",L),this.previous&&this.previous.error(L),this.cleanUp()),!0)},on:function(L,ve){return this._listeners[L].push(ve),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(L,ve){if(this._listeners[L])for(var ke=0;ke "+L:L}},Se.exports=x},{}],29:[function(mt,Se,Te){"use strict";var x=mt("../utils"),L=mt("./ConvertWorker"),ve=mt("./GenericWorker"),ke=mt("../base64"),ot=mt("../support"),Ye=mt("../external"),Ze=null;if(ot.nodestream)try{Ze=mt("../nodejs/NodejsStreamOutputAdapter")}catch{}function He(Ve,De,F){var J=De;switch(De){case"blob":case"arraybuffer":J="uint8array";break;case"base64":J="string"}try{this._internalType=J,this._outputType=De,this._mimeType=F,x.checkSupport(J),this._worker=Ve.pipe(new L(J)),Ve.lock()}catch(Y){this._worker=new ve("error"),this._worker.error(Y)}}He.prototype={accumulate:function(Ve){return function Re(Ve,De){return new Ye.Promise(function(F,J){var Y=[],he=Ve._internalType,Q=Ve._outputType,me=Ve._mimeType;Ve.on("data",function(X,B){Y.push(X),De&&De(B)}).on("error",function(X){Y=[],J(X)}).on("end",function(){try{var X=function(B,$,g){switch(B){case"blob":return x.newBlob(x.transformTo("arraybuffer",$),g);case"base64":return ke.encode($);default:return x.transformTo(B,$)}}(Q,function(B,$){var g,E=0,_=null,v=0;for(g=0;g<$.length;g++)v+=$[g].length;switch(B){case"string":return $.join("");case"array":return Array.prototype.concat.apply([],$);case"uint8array":for(_=new Uint8Array(v),g=0;g<$.length;g++)_.set($[g],E),E+=$[g].length;return _;case"nodebuffer":return Buffer.concat($);default:throw new Error("concat : unsupported type '"+B+"'")}}(he,Y),me);F(X)}catch(B){J(B)}Y=[]}).resume()})}(this,Ve)},on:function(Ve,De){var F=this;return this._worker.on(Ve,"data"===Ve?function(J){De.call(F,J.data,J.meta)}:function(){x.delay(De,arguments,F)}),this},resume:function(){return x.delay(this._worker.resume,[],this._worker),this},pause:function(){return this._worker.pause(),this},toNodejsStream:function(Ve){if(x.checkSupport("nodestream"),"nodebuffer"!==this._outputType)throw new Error(this._outputType+" is not supported by this method");return new Ze(this,{objectMode:"nodebuffer"!==this._outputType},Ve)}},Se.exports=He},{"../base64":1,"../external":6,"../nodejs/NodejsStreamOutputAdapter":13,"../support":30,"../utils":32,"./ConvertWorker":24,"./GenericWorker":28}],30:[function(mt,Se,Te){"use strict";if(Te.base64=!0,Te.array=!0,Te.string=!0,Te.arraybuffer=typeof ArrayBuffer<"u"&&typeof Uint8Array<"u",Te.nodebuffer=typeof Buffer<"u",Te.uint8array=typeof Uint8Array<"u",typeof ArrayBuffer>"u")Te.blob=!1;else{var x=new ArrayBuffer(0);try{Te.blob=0===new Blob([x],{type:"application/zip"}).size}catch{try{var L=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);L.append(x),Te.blob=0===L.getBlob("application/zip").size}catch{Te.blob=!1}}}try{Te.nodestream=!!mt("readable-stream").Readable}catch{Te.nodestream=!1}},{"readable-stream":16}],31:[function(mt,Se,Te){"use strict";for(var x=mt("./utils"),L=mt("./support"),ve=mt("./nodejsUtils"),ke=mt("./stream/GenericWorker"),ot=new Array(256),Ye=0;Ye<256;Ye++)ot[Ye]=252<=Ye?6:248<=Ye?5:240<=Ye?4:224<=Ye?3:192<=Ye?2:1;function Ze(){ke.call(this,"utf-8 decode"),this.leftOver=null}function Re(){ke.call(this,"utf-8 encode")}ot[254]=ot[254]=1,Te.utf8encode=function(He){return L.nodebuffer?ve.newBufferFrom(He,"utf-8"):function(Ve){var De,F,J,Y,he,Q=Ve.length,me=0;for(Y=0;Y>>6:(F<65536?De[he++]=224|F>>>12:(De[he++]=240|F>>>18,De[he++]=128|F>>>12&63),De[he++]=128|F>>>6&63),De[he++]=128|63&F);return De}(He)},Te.utf8decode=function(He){return L.nodebuffer?x.transformTo("nodebuffer",He).toString("utf-8"):function(Ve){var De,F,J,Y,he=Ve.length,Q=new Array(2*he);for(De=F=0;De>10&1023,Q[F++]=56320|1023&J)}return Q.length!==F&&(Q.subarray?Q=Q.subarray(0,F):Q.length=F),x.applyFromCharCode(Q)}(He=x.transformTo(L.uint8array?"uint8array":"array",He))},x.inherits(Ze,ke),Ze.prototype.processChunk=function(He){var Ve=x.transformTo(L.uint8array?"uint8array":"array",He.data);if(this.leftOver&&this.leftOver.length){if(L.uint8array){var De=Ve;(Ve=new Uint8Array(De.length+this.leftOver.length)).set(this.leftOver,0),Ve.set(De,this.leftOver.length)}else Ve=this.leftOver.concat(Ve);this.leftOver=null}var F=function(Y,he){var Q;for((he=he||Y.length)>Y.length&&(he=Y.length),Q=he-1;0<=Q&&128==(192&Y[Q]);)Q--;return Q<0||0===Q?he:Q+ot[Y[Q]]>he?Q:he}(Ve),J=Ve;F!==Ve.length&&(L.uint8array?(J=Ve.subarray(0,F),this.leftOver=Ve.subarray(F,Ve.length)):(J=Ve.slice(0,F),this.leftOver=Ve.slice(F,Ve.length))),this.push({data:Te.utf8decode(J),meta:He.meta})},Ze.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:Te.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},Te.Utf8DecodeWorker=Ze,x.inherits(Re,ke),Re.prototype.processChunk=function(He){this.push({data:Te.utf8encode(He.data),meta:He.meta})},Te.Utf8EncodeWorker=Re},{"./nodejsUtils":14,"./stream/GenericWorker":28,"./support":30,"./utils":32}],32:[function(mt,Se,Te){"use strict";var x=mt("./support"),L=mt("./base64"),ve=mt("./nodejsUtils"),ke=mt("./external");function ot(De){return De}function Ye(De,F){for(var J=0;J>8;this.dir=!!(16&this.externalFileAttributes),0==He&&(this.dosPermissions=63&this.externalFileAttributes),3==He&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||"/"!==this.fileNameStr.slice(-1)||(this.dir=!0)},parseZIP64ExtraField:function(){if(this.extraFields[1]){var He=x(this.extraFields[1].value);this.uncompressedSize===L.MAX_VALUE_32BITS&&(this.uncompressedSize=He.readInt(8)),this.compressedSize===L.MAX_VALUE_32BITS&&(this.compressedSize=He.readInt(8)),this.localHeaderOffset===L.MAX_VALUE_32BITS&&(this.localHeaderOffset=He.readInt(8)),this.diskNumberStart===L.MAX_VALUE_32BITS&&(this.diskNumberStart=He.readInt(4))}},readExtraFields:function(He){var Ve,De,F,J=He.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});He.index+4>>6:(He<65536?Re[F++]=224|He>>>12:(Re[F++]=240|He>>>18,Re[F++]=128|He>>>12&63),Re[F++]=128|He>>>6&63),Re[F++]=128|63&He);return Re},Te.buf2binstring=function(Ze){return Ye(Ze,Ze.length)},Te.binstring2buf=function(Ze){for(var Re=new x.Buf8(Ze.length),He=0,Ve=Re.length;He>10&1023,Y[Ve++]=56320|1023&De)}return Ye(Y,Ve)},Te.utf8border=function(Ze,Re){var He;for((Re=Re||Ze.length)>Ze.length&&(Re=Ze.length),He=Re-1;0<=He&&128==(192&Ze[He]);)He--;return He<0||0===He?Re:He+ke[Ze[He]]>Re?He:Re}},{"./common":41}],43:[function(mt,Se,Te){"use strict";Se.exports=function(x,L,ve,ke){for(var ot=65535&x,Ye=x>>>16&65535,Ze=0;0!==ve;){for(ve-=Ze=2e3>>1:L>>>1;ve[ke]=L}return ve}();Se.exports=function(L,ve,ke,ot){var Ye=x,Ze=ot+ke;L^=-1;for(var Re=ot;Re>>8^Ye[255&(L^ve[Re])];return~L}},{}],46:[function(mt,Se,Te){"use strict";var x,L=mt("../utils/common"),ve=mt("./trees"),ke=mt("./adler32"),ot=mt("./crc32"),Ye=mt("./messages"),Ze=0,He=0,Ve=-2,J=2,Y=8,Q=286,me=30,X=19,B=2*Q+1,$=15,g=3,E=258,_=E+g+1,v=42,p=113;function Z(te,Je){return te.msg=Ye[Je],Je}function ee(te){return(te<<1)-(4te.avail_out&&(tt=te.avail_out),0!==tt&&(L.arraySet(te.output,Je.pending_buf,Je.pending_out,tt,te.next_out),te.next_out+=tt,Je.pending_out+=tt,te.total_out+=tt,te.avail_out-=tt,Je.pending-=tt,0===Je.pending&&(Je.pending_out=0))}function b(te,Je){ve._tr_flush_block(te,0<=te.block_start?te.block_start:-1,te.strstart-te.block_start,Je),te.block_start=te.strstart,V(te.strm)}function P(te,Je){te.pending_buf[te.pending++]=Je}function T(te,Je){te.pending_buf[te.pending++]=Je>>>8&255,te.pending_buf[te.pending++]=255&Je}function z(te,Je){var tt,Fe,Ne=te.max_chain_length,rt=te.strstart,St=te.prev_length,pt=te.nice_match,st=te.strstart>te.w_size-_?te.strstart-(te.w_size-_):0,vt=te.window,Yt=te.w_mask,qt=te.prev,Ot=te.strstart+E,Bn=vt[rt+St-1],Mn=vt[rt+St];te.prev_length>=te.good_match&&(Ne>>=2),pt>te.lookahead&&(pt=te.lookahead);do{if(vt[(tt=Je)+St]===Mn&&vt[tt+St-1]===Bn&&vt[tt]===vt[rt]&&vt[++tt]===vt[rt+1]){rt+=2,tt++;do{}while(vt[++rt]===vt[++tt]&&vt[++rt]===vt[++tt]&&vt[++rt]===vt[++tt]&&vt[++rt]===vt[++tt]&&vt[++rt]===vt[++tt]&&vt[++rt]===vt[++tt]&&vt[++rt]===vt[++tt]&&vt[++rt]===vt[++tt]&&rtst&&0!=--Ne);return St<=te.lookahead?St:te.lookahead}function W(te){var Je,tt,Fe,Ne,rt,St,pt,st,vt,Yt,qt=te.w_size;do{if(Ne=te.window_size-te.lookahead-te.strstart,te.strstart>=qt+(qt-_)){for(L.arraySet(te.window,te.window,qt,qt,0),te.match_start-=qt,te.strstart-=qt,te.block_start-=qt,Je=tt=te.hash_size;Fe=te.head[--Je],te.head[Je]=qt<=Fe?Fe-qt:0,--tt;);for(Je=tt=qt;Fe=te.prev[--Je],te.prev[Je]=qt<=Fe?Fe-qt:0,--tt;);Ne+=qt}if(0===te.strm.avail_in)break;if(pt=te.window,st=te.strstart+te.lookahead,Yt=void 0,(vt=Ne)<(Yt=(St=te.strm).avail_in)&&(Yt=vt),tt=0===Yt?0:(St.avail_in-=Yt,L.arraySet(pt,St.input,St.next_in,Yt,st),1===St.state.wrap?St.adler=ke(St.adler,pt,Yt,st):2===St.state.wrap&&(St.adler=ot(St.adler,pt,Yt,st)),St.next_in+=Yt,St.total_in+=Yt,Yt),te.lookahead+=tt,te.lookahead+te.insert>=g)for(te.ins_h=te.window[rt=te.strstart-te.insert],te.ins_h=(te.ins_h<=g&&(te.ins_h=(te.ins_h<=g)if(Fe=ve._tr_tally(te,te.strstart-te.match_start,te.match_length-g),te.lookahead-=te.match_length,te.match_length<=te.max_lazy_match&&te.lookahead>=g){for(te.match_length--;te.strstart++,te.ins_h=(te.ins_h<=g&&(te.ins_h=(te.ins_h<=g&&te.match_length<=te.prev_length){for(Ne=te.strstart+te.lookahead-g,Fe=ve._tr_tally(te,te.strstart-1-te.prev_match,te.prev_length-g),te.lookahead-=te.prev_length-1,te.prev_length-=2;++te.strstart<=Ne&&(te.ins_h=(te.ins_h<te.pending_buf_size-5&&(tt=te.pending_buf_size-5);;){if(te.lookahead<=1){if(W(te),0===te.lookahead&&Je===Ze)return 1;if(0===te.lookahead)break}te.strstart+=te.lookahead,te.lookahead=0;var Fe=te.block_start+tt;if((0===te.strstart||te.strstart>=Fe)&&(te.lookahead=te.strstart-Fe,te.strstart=Fe,b(te,!1),0===te.strm.avail_out)||te.strstart-te.block_start>=te.w_size-_&&(b(te,!1),0===te.strm.avail_out))return 1}return te.insert=0,4===Je?(b(te,!0),0===te.strm.avail_out?3:4):(te.strstart>te.block_start&&b(te,!1),1)}),new Me(4,4,8,4,fe),new Me(4,5,16,8,fe),new Me(4,6,32,32,fe),new Me(4,4,16,16,we),new Me(8,16,32,32,we),new Me(8,16,128,128,we),new Me(8,32,128,256,we),new Me(32,128,258,1024,we),new Me(32,258,258,4096,we)],Te.deflateInit=function(te,Je){return bt(te,Je,Y,15,8,0)},Te.deflateInit2=bt,Te.deflateReset=lt,Te.deflateResetKeep=Ge,Te.deflateSetHeader=function(te,Je){return te&&te.state?2!==te.state.wrap?Ve:(te.state.gzhead=Je,He):Ve},Te.deflate=function(te,Je){var tt,Fe,Ne,rt;if(!te||!te.state||5>8&255),P(Fe,Fe.gzhead.time>>16&255),P(Fe,Fe.gzhead.time>>24&255),P(Fe,9===Fe.level?2:2<=Fe.strategy||Fe.level<2?4:0),P(Fe,255&Fe.gzhead.os),Fe.gzhead.extra&&Fe.gzhead.extra.length&&(P(Fe,255&Fe.gzhead.extra.length),P(Fe,Fe.gzhead.extra.length>>8&255)),Fe.gzhead.hcrc&&(te.adler=ot(te.adler,Fe.pending_buf,Fe.pending,0)),Fe.gzindex=0,Fe.status=69):(P(Fe,0),P(Fe,0),P(Fe,0),P(Fe,0),P(Fe,0),P(Fe,9===Fe.level?2:2<=Fe.strategy||Fe.level<2?4:0),P(Fe,3),Fe.status=p);else{var St=Y+(Fe.w_bits-8<<4)<<8;St|=(2<=Fe.strategy||Fe.level<2?0:Fe.level<6?1:6===Fe.level?2:3)<<6,0!==Fe.strstart&&(St|=32),St+=31-St%31,Fe.status=p,T(Fe,St),0!==Fe.strstart&&(T(Fe,te.adler>>>16),T(Fe,65535&te.adler)),te.adler=1}if(69===Fe.status)if(Fe.gzhead.extra){for(Ne=Fe.pending;Fe.gzindex<(65535&Fe.gzhead.extra.length)&&(Fe.pending!==Fe.pending_buf_size||(Fe.gzhead.hcrc&&Fe.pending>Ne&&(te.adler=ot(te.adler,Fe.pending_buf,Fe.pending-Ne,Ne)),V(te),Ne=Fe.pending,Fe.pending!==Fe.pending_buf_size));)P(Fe,255&Fe.gzhead.extra[Fe.gzindex]),Fe.gzindex++;Fe.gzhead.hcrc&&Fe.pending>Ne&&(te.adler=ot(te.adler,Fe.pending_buf,Fe.pending-Ne,Ne)),Fe.gzindex===Fe.gzhead.extra.length&&(Fe.gzindex=0,Fe.status=73)}else Fe.status=73;if(73===Fe.status)if(Fe.gzhead.name){Ne=Fe.pending;do{if(Fe.pending===Fe.pending_buf_size&&(Fe.gzhead.hcrc&&Fe.pending>Ne&&(te.adler=ot(te.adler,Fe.pending_buf,Fe.pending-Ne,Ne)),V(te),Ne=Fe.pending,Fe.pending===Fe.pending_buf_size)){rt=1;break}rt=Fe.gzindexNe&&(te.adler=ot(te.adler,Fe.pending_buf,Fe.pending-Ne,Ne)),0===rt&&(Fe.gzindex=0,Fe.status=91)}else Fe.status=91;if(91===Fe.status)if(Fe.gzhead.comment){Ne=Fe.pending;do{if(Fe.pending===Fe.pending_buf_size&&(Fe.gzhead.hcrc&&Fe.pending>Ne&&(te.adler=ot(te.adler,Fe.pending_buf,Fe.pending-Ne,Ne)),V(te),Ne=Fe.pending,Fe.pending===Fe.pending_buf_size)){rt=1;break}rt=Fe.gzindexNe&&(te.adler=ot(te.adler,Fe.pending_buf,Fe.pending-Ne,Ne)),0===rt&&(Fe.status=103)}else Fe.status=103;if(103===Fe.status&&(Fe.gzhead.hcrc?(Fe.pending+2>Fe.pending_buf_size&&V(te),Fe.pending+2<=Fe.pending_buf_size&&(P(Fe,255&te.adler),P(Fe,te.adler>>8&255),te.adler=0,Fe.status=p)):Fe.status=p),0!==Fe.pending){if(V(te),0===te.avail_out)return Fe.last_flush=-1,He}else if(0===te.avail_in&&ee(Je)<=ee(tt)&&4!==Je)return Z(te,-5);if(666===Fe.status&&0!==te.avail_in)return Z(te,-5);if(0!==te.avail_in||0!==Fe.lookahead||Je!==Ze&&666!==Fe.status){var pt=2===Fe.strategy?function(st,vt){for(var Yt;;){if(0===st.lookahead&&(W(st),0===st.lookahead)){if(vt===Ze)return 1;break}if(st.match_length=0,Yt=ve._tr_tally(st,0,st.window[st.strstart]),st.lookahead--,st.strstart++,Yt&&(b(st,!1),0===st.strm.avail_out))return 1}return st.insert=0,4===vt?(b(st,!0),0===st.strm.avail_out?3:4):st.last_lit&&(b(st,!1),0===st.strm.avail_out)?1:2}(Fe,Je):3===Fe.strategy?function(st,vt){for(var Yt,qt,Ot,Bn,Mn=st.window;;){if(st.lookahead<=E){if(W(st),st.lookahead<=E&&vt===Ze)return 1;if(0===st.lookahead)break}if(st.match_length=0,st.lookahead>=g&&0st.lookahead&&(st.match_length=st.lookahead)}if(st.match_length>=g?(Yt=ve._tr_tally(st,1,st.match_length-g),st.lookahead-=st.match_length,st.strstart+=st.match_length,st.match_length=0):(Yt=ve._tr_tally(st,0,st.window[st.strstart]),st.lookahead--,st.strstart++),Yt&&(b(st,!1),0===st.strm.avail_out))return 1}return st.insert=0,4===vt?(b(st,!0),0===st.strm.avail_out?3:4):st.last_lit&&(b(st,!1),0===st.strm.avail_out)?1:2}(Fe,Je):x[Fe.level].func(Fe,Je);if(3!==pt&&4!==pt||(Fe.status=666),1===pt||3===pt)return 0===te.avail_out&&(Fe.last_flush=-1),He;if(2===pt&&(1===Je?ve._tr_align(Fe):5!==Je&&(ve._tr_stored_block(Fe,0,0,!1),3===Je&&(ue(Fe.head),0===Fe.lookahead&&(Fe.strstart=0,Fe.block_start=0,Fe.insert=0))),V(te),0===te.avail_out))return Fe.last_flush=-1,He}return 4!==Je?He:Fe.wrap<=0?1:(2===Fe.wrap?(P(Fe,255&te.adler),P(Fe,te.adler>>8&255),P(Fe,te.adler>>16&255),P(Fe,te.adler>>24&255),P(Fe,255&te.total_in),P(Fe,te.total_in>>8&255),P(Fe,te.total_in>>16&255),P(Fe,te.total_in>>24&255)):(T(Fe,te.adler>>>16),T(Fe,65535&te.adler)),V(te),0=tt.w_size&&(0===rt&&(ue(tt.head),tt.strstart=0,tt.block_start=0,tt.insert=0),vt=new L.Buf8(tt.w_size),L.arraySet(vt,Je,Yt-tt.w_size,tt.w_size,0),Je=vt,Yt=tt.w_size),St=te.avail_in,pt=te.next_in,st=te.input,te.avail_in=Yt,te.next_in=0,te.input=Je,W(tt);tt.lookahead>=g;){for(Fe=tt.strstart,Ne=tt.lookahead-(g-1);tt.ins_h=(tt.ins_h<>>=g=$>>>24,he-=g,0==(g=$>>>16&255))I[Ye++]=65535&$;else{if(!(16&g)){if(!(64&g)){$=Q[(65535&$)+(Y&(1<>>=g,he-=g),he<15&&(Y+=C[ke++]<>>=g=$>>>24,he-=g,!(16&(g=$>>>16&255))){if(!(64&g)){$=me[(65535&$)+(Y&(1<>>=g,he-=g,(g=Ye-Ze)<_){if(De<(g=_-g)&&ve.sane){x.msg="invalid distance too far back",ve.mode=30;break e}if(p=J,(v=0)===F){if(v+=Ve-g,g>3,Y&=(1<<(he-=E<<3))-1,x.next_in=ke,x.next_out=Ye,x.avail_in=ke>>24&255)+(v>>>8&65280)+((65280&v)<<8)+((255&v)<<24)}function Y(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new x.Buf16(320),this.work=new x.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function he(v){var p;return v&&v.state?(v.total_in=v.total_out=(p=v.state).total=0,v.msg="",p.wrap&&(v.adler=1&p.wrap),p.mode=Ve,p.last=0,p.havedict=0,p.dmax=32768,p.head=null,p.hold=0,p.bits=0,p.lencode=p.lendyn=new x.Buf32(De),p.distcode=p.distdyn=new x.Buf32(F),p.sane=1,p.back=-1,Re):He}function Q(v){var p;return v&&v.state?((p=v.state).wsize=0,p.whave=0,p.wnext=0,he(v)):He}function me(v,p){var C,I;return v&&v.state?(I=v.state,p<0?(C=0,p=-p):(C=1+(p>>4),p<48&&(p&=15)),p&&(p<8||15=k.wsize?(x.arraySet(k.window,p,C-k.wsize,k.wsize,0),k.wnext=0,k.whave=k.wsize):(I<(U=k.wsize-k.wnext)&&(U=I),x.arraySet(k.window,p,C-I,U,k.wnext),(I-=U)?(x.arraySet(k.window,p,C-I,I,0),k.wnext=I,k.whave=k.wsize):(k.wnext+=U,k.wnext===k.wsize&&(k.wnext=0),k.whave>>8&255,C.check=ve(C.check,rt,2,0),b=V=0,C.mode=2;break}if(C.flags=0,C.head&&(C.head.done=!1),!(1&C.wrap)||(((255&V)<<8)+(V>>8))%31){v.msg="incorrect header check",C.mode=30;break}if(8!=(15&V)){v.msg="unknown compression method",C.mode=30;break}if(b-=4,te=8+(15&(V>>>=4)),0===C.wbits)C.wbits=te;else if(te>C.wbits){v.msg="invalid window size",C.mode=30;break}C.dmax=1<>8&1),512&C.flags&&(rt[0]=255&V,rt[1]=V>>>8&255,C.check=ve(C.check,rt,2,0)),b=V=0,C.mode=3;case 3:for(;b<32;){if(0===ee)break e;ee--,V+=I[k++]<>>8&255,rt[2]=V>>>16&255,rt[3]=V>>>24&255,C.check=ve(C.check,rt,4,0)),b=V=0,C.mode=4;case 4:for(;b<16;){if(0===ee)break e;ee--,V+=I[k++]<>8),512&C.flags&&(rt[0]=255&V,rt[1]=V>>>8&255,C.check=ve(C.check,rt,2,0)),b=V=0,C.mode=5;case 5:if(1024&C.flags){for(;b<16;){if(0===ee)break e;ee--,V+=I[k++]<>>8&255,C.check=ve(C.check,rt,2,0)),b=V=0}else C.head&&(C.head.extra=null);C.mode=6;case 6:if(1024&C.flags&&(ee<(z=C.length)&&(z=ee),z&&(C.head&&(te=C.head.extra_len-C.length,C.head.extra||(C.head.extra=new Array(C.head.extra_len)),x.arraySet(C.head.extra,I,k,z,te)),512&C.flags&&(C.check=ve(C.check,I,z,k)),ee-=z,k+=z,C.length-=z),C.length))break e;C.length=0,C.mode=7;case 7:if(2048&C.flags){if(0===ee)break e;for(z=0;te=I[k+z++],C.head&&te&&C.length<65536&&(C.head.name+=String.fromCharCode(te)),te&&z>9&1,C.head.done=!0),v.adler=C.check=0,C.mode=12;break;case 10:for(;b<32;){if(0===ee)break e;ee--,V+=I[k++]<>>=7&b,b-=7&b,C.mode=27;break}for(;b<3;){if(0===ee)break e;ee--,V+=I[k++]<>>=1)){case 0:C.mode=14;break;case 1:if(E(C),C.mode=20,6!==p)break;V>>>=2,b-=2;break e;case 2:C.mode=17;break;case 3:v.msg="invalid block type",C.mode=30}V>>>=2,b-=2;break;case 14:for(V>>>=7&b,b-=7&b;b<32;){if(0===ee)break e;ee--,V+=I[k++]<>>16^65535)){v.msg="invalid stored block lengths",C.mode=30;break}if(C.length=65535&V,b=V=0,C.mode=15,6===p)break e;case 15:C.mode=16;case 16:if(z=C.length){if(ee>>=5)),b-=5,C.ncode=4+(15&(V>>>=5)),V>>>=4,b-=4,286>>=3,b-=3}for(;C.have<19;)C.lens[St[C.have++]]=0;if(C.lencode=C.lendyn,C.lenbits=7,Je=ot(0,C.lens,0,19,C.lencode,0,C.work,tt={bits:C.lenbits}),C.lenbits=tt.bits,Je){v.msg="invalid code lengths set",C.mode=30;break}C.have=0,C.mode=19;case 19:for(;C.have>>16&255,je=65535&Ne,!((we=Ne>>>24)<=b);){if(0===ee)break e;ee--,V+=I[k++]<>>=we,b-=we,C.lens[C.have++]=je;else{if(16===je){for(Fe=we+2;b>>=we,b-=we,0===C.have){v.msg="invalid bit length repeat",C.mode=30;break}te=C.lens[C.have-1],z=3+(3&V),V>>>=2,b-=2}else if(17===je){for(Fe=we+3;b>>=we)),V>>>=3,b-=3}else{for(Fe=we+7;b>>=we)),V>>>=7,b-=7}if(C.have+z>C.nlen+C.ndist){v.msg="invalid bit length repeat",C.mode=30;break}for(;z--;)C.lens[C.have++]=te}}if(30===C.mode)break;if(0===C.lens[256]){v.msg="invalid code -- missing end-of-block",C.mode=30;break}if(C.lenbits=9,Je=ot(1,C.lens,0,C.nlen,C.lencode,0,C.work,tt={bits:C.lenbits}),C.lenbits=tt.bits,Je){v.msg="invalid literal/lengths set",C.mode=30;break}if(C.distbits=6,C.distcode=C.distdyn,Je=ot(2,C.lens,C.nlen,C.ndist,C.distcode,0,C.work,tt={bits:C.distbits}),C.distbits=tt.bits,Je){v.msg="invalid distances set",C.mode=30;break}if(C.mode=20,6===p)break e;case 20:C.mode=21;case 21:if(6<=ee&&258<=ue){v.next_out=Z,v.avail_out=ue,v.next_in=k,v.avail_in=ee,C.hold=V,C.bits=b,ke(v,T),Z=v.next_out,U=v.output,ue=v.avail_out,k=v.next_in,I=v.input,ee=v.avail_in,V=C.hold,b=C.bits,12===C.mode&&(C.back=-1);break}for(C.back=0;Me=(Ne=C.lencode[V&(1<>>16&255,je=65535&Ne,!((we=Ne>>>24)<=b);){if(0===ee)break e;ee--,V+=I[k++]<>Ge)])>>>16&255,je=65535&Ne,!(Ge+(we=Ne>>>24)<=b);){if(0===ee)break e;ee--,V+=I[k++]<>>=Ge,b-=Ge,C.back+=Ge}if(V>>>=we,b-=we,C.back+=we,C.length=je,0===Me){C.mode=26;break}if(32&Me){C.back=-1,C.mode=12;break}if(64&Me){v.msg="invalid literal/length code",C.mode=30;break}C.extra=15&Me,C.mode=22;case 22:if(C.extra){for(Fe=C.extra;b>>=C.extra,b-=C.extra,C.back+=C.extra}C.was=C.length,C.mode=23;case 23:for(;Me=(Ne=C.distcode[V&(1<>>16&255,je=65535&Ne,!((we=Ne>>>24)<=b);){if(0===ee)break e;ee--,V+=I[k++]<>Ge)])>>>16&255,je=65535&Ne,!(Ge+(we=Ne>>>24)<=b);){if(0===ee)break e;ee--,V+=I[k++]<>>=Ge,b-=Ge,C.back+=Ge}if(V>>>=we,b-=we,C.back+=we,64&Me){v.msg="invalid distance code",C.mode=30;break}C.offset=je,C.extra=15&Me,C.mode=24;case 24:if(C.extra){for(Fe=C.extra;b>>=C.extra,b-=C.extra,C.back+=C.extra}if(C.offset>C.dmax){v.msg="invalid distance too far back",C.mode=30;break}C.mode=25;case 25:if(0===ue)break e;if(C.offset>(z=T-ue)){if((z=C.offset-z)>C.whave&&C.sane){v.msg="invalid distance too far back",C.mode=30;break}W=z>C.wnext?C.wsize-(z-=C.wnext):C.wnext-z,z>C.length&&(z=C.length),fe=C.window}else fe=U,W=Z-C.offset,z=C.length;for(ueB?(g=W[fe+F[p]],b[P+F[p]]):(g=96,0),Y=1<>Z)+(he-=Y)]=$<<24|g<<16|E,0!==he;);for(Y=1<>=1;if(0!==Y?(V&=Y-1,V+=Y):V=0,p++,0==--T[v]){if(v===I)break;v=Ze[Re+F[p]]}if(U>>7)]}function P(Ne,rt){Ne.pending_buf[Ne.pending++]=255&rt,Ne.pending_buf[Ne.pending++]=rt>>>8&255}function T(Ne,rt,St){Ne.bi_valid>J-St?(Ne.bi_buf|=rt<>J-Ne.bi_valid,Ne.bi_valid+=St-J):(Ne.bi_buf|=rt<>>=1,St<<=1,0<--rt;);return St>>>1}function fe(Ne,rt,St){var pt,st,vt=new Array(F+1),Yt=0;for(pt=1;pt<=F;pt++)vt[pt]=Yt=Yt+St[pt-1]<<1;for(st=0;st<=rt;st++){var qt=Ne[2*st+1];0!==qt&&(Ne[2*st]=W(vt[qt]++,qt))}}function we(Ne){var rt;for(rt=0;rt<286;rt++)Ne.dyn_ltree[2*rt]=0;for(rt=0;rt<30;rt++)Ne.dyn_dtree[2*rt]=0;for(rt=0;rt<19;rt++)Ne.bl_tree[2*rt]=0;Ne.dyn_ltree[512]=1,Ne.opt_len=Ne.static_len=0,Ne.last_lit=Ne.matches=0}function Me(Ne){8>1;1<=St;St--)Ge(Ne,vt,St);for(st=Ot;St=Ne.heap[1],Ne.heap[1]=Ne.heap[Ne.heap_len--],Ge(Ne,vt,1),pt=Ne.heap[1],Ne.heap[--Ne.heap_max]=St,Ne.heap[--Ne.heap_max]=pt,vt[2*st]=vt[2*St]+vt[2*pt],Ne.depth[st]=(Ne.depth[St]>=Ne.depth[pt]?Ne.depth[St]:Ne.depth[pt])+1,vt[2*St+1]=vt[2*pt+1]=st,Ne.heap[1]=st++,Ge(Ne,vt,1),2<=Ne.heap_len;);Ne.heap[--Ne.heap_max]=Ne.heap[1],function(Mn,bn){var Dn,$n,Cn,yn,Sn,ii,ai=bn.dyn_tree,zi=bn.max_code,ti=bn.stat_desc.static_tree,Lr=bn.stat_desc.has_stree,ss=bn.stat_desc.extra_bits,Bs=bn.stat_desc.extra_base,yo=bn.stat_desc.max_length,xt=0;for(yn=0;yn<=F;yn++)Mn.bl_count[yn]=0;for(ai[2*Mn.heap[Mn.heap_max]+1]=0,Dn=Mn.heap_max+1;Dn<573;Dn++)yo<(yn=ai[2*ai[2*($n=Mn.heap[Dn])+1]+1]+1)&&(yn=yo,xt++),ai[2*$n+1]=yn,zi<$n||(Mn.bl_count[yn]++,Sn=0,Bs<=$n&&(Sn=ss[$n-Bs]),Mn.opt_len+=(ii=ai[2*$n])*(yn+Sn),Lr&&(Mn.static_len+=ii*(ti[2*$n+1]+Sn)));if(0!==xt){do{for(yn=yo-1;0===Mn.bl_count[yn];)yn--;Mn.bl_count[yn]--,Mn.bl_count[yn+1]+=2,Mn.bl_count[yo]--,xt-=2}while(0>=7;st<30;st++)for(ee[st]=vt<<7,rt=0;rt<1<<$[st]-7;rt++)p[256+vt++]=st;for(St=0;St<=F;St++)Yt[St]=0;for(rt=0;rt<=143;)_[2*rt+1]=8,rt++,Yt[8]++;for(;rt<=255;)_[2*rt+1]=9,rt++,Yt[9]++;for(;rt<=279;)_[2*rt+1]=7,rt++,Yt[7]++;for(;rt<=287;)_[2*rt+1]=8,rt++,Yt[8]++;for(fe(_,287,Yt),rt=0;rt<30;rt++)v[2*rt+1]=5,v[2*rt]=W(rt,5);U=new ue(_,B,257,286,F),k=new ue(v,$,0,30,F),Z=new ue(new Array(0),g,0,19,7)}(),tt=!0),Ne.l_desc=new V(Ne.dyn_ltree,U),Ne.d_desc=new V(Ne.dyn_dtree,k),Ne.bl_desc=new V(Ne.bl_tree,Z),Ne.bi_buf=0,Ne.bi_valid=0,we(Ne)},Te._tr_stored_block=Fe,Te._tr_flush_block=function(Ne,rt,St,pt){var st,vt,Yt=0;0>>=1)if(1&Bn&&0!==qt.dyn_ltree[2*Ot])return 0;if(0!==qt.dyn_ltree[18]||0!==qt.dyn_ltree[20]||0!==qt.dyn_ltree[26])return 1;for(Ot=32;Ot<256;Ot++)if(0!==qt.dyn_ltree[2*Ot])return 1;return 0}(Ne)),bt(Ne,Ne.l_desc),bt(Ne,Ne.d_desc),Yt=function(qt){var Ot;for(te(qt,qt.dyn_ltree,qt.l_desc.max_code),te(qt,qt.dyn_dtree,qt.d_desc.max_code),bt(qt,qt.bl_desc),Ot=18;3<=Ot&&0===qt.bl_tree[2*E[Ot]+1];Ot--);return qt.opt_len+=3*(Ot+1)+5+5+4,Ot}(Ne),(vt=Ne.static_len+3+7>>>3)<=(st=Ne.opt_len+3+7>>>3)&&(st=vt)):st=vt=St+5,St+4<=st&&-1!==rt?Fe(Ne,rt,St,pt):4===Ne.strategy||vt===st?(T(Ne,2+(pt?1:0),3),lt(Ne,_,v)):(T(Ne,4+(pt?1:0),3),function(qt,Ot,Bn,Mn){var bn;for(T(qt,Ot-257,5),T(qt,Bn-1,5),T(qt,Mn-4,4),bn=0;bn>>8&255,Ne.pending_buf[Ne.d_buf+2*Ne.last_lit+1]=255&rt,Ne.pending_buf[Ne.l_buf+Ne.last_lit]=255&St,Ne.last_lit++,0===rt?Ne.dyn_ltree[2*St]++:(Ne.matches++,rt--,Ne.dyn_ltree[2*(C[St]+256+1)]++,Ne.dyn_dtree[2*b(rt)]++),Ne.last_lit===Ne.lit_bufsize-1},Te._tr_align=function(Ne){var rt;T(Ne,2,3),z(Ne,256,_),16===(rt=Ne).bi_valid?(P(rt,rt.bi_buf),rt.bi_buf=0,rt.bi_valid=0):8<=rt.bi_valid&&(rt.pending_buf[rt.pending++]=255&rt.bi_buf,rt.bi_buf>>=8,rt.bi_valid-=8)}},{"../utils/common":41}],53:[function(mt,Se,Te){"use strict";Se.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},{}],54:[function(mt,Se,Te){(function(x){!function(L,ve){"use strict";if(!L.setImmediate){var ke,ot,Ye,Ze,Re=1,He={},Ve=!1,De=L.document,F=Object.getPrototypeOf&&Object.getPrototypeOf(L);F=F&&F.setTimeout?F:L,ke="[object process]"==={}.toString.call(L.process)?function(Q){process.nextTick(function(){Y(Q)})}:function(){if(L.postMessage&&!L.importScripts){var Q=!0,me=L.onmessage;return L.onmessage=function(){Q=!1},L.postMessage("","*"),L.onmessage=me,Q}}()?(Ze="setImmediate$"+Math.random()+"$",L.addEventListener?L.addEventListener("message",he,!1):L.attachEvent("onmessage",he),function(Q){L.postMessage(Ze+Q,"*")}):L.MessageChannel?((Ye=new MessageChannel).port1.onmessage=function(Q){Y(Q.data)},function(Q){Ye.port2.postMessage(Q)}):De&&"onreadystatechange"in De.createElement("script")?(ot=De.documentElement,function(Q){var me=De.createElement("script");me.onreadystatechange=function(){Y(Q),me.onreadystatechange=null,ot.removeChild(me),me=null},ot.appendChild(me)}):function(Q){setTimeout(Y,0,Q)},F.setImmediate=function(Q){"function"!=typeof Q&&(Q=new Function(""+Q));for(var me=new Array(arguments.length-1),X=0;X"u"?void 0===x?this:x:self)}).call(this,typeof global<"u"?global:typeof self<"u"?self:typeof window<"u"?window:{})},{}]},{},[10])(10)},1230:(Yr,mt,Se)=>{const Te=Se(8856),x=Se(64),L=Se(7282),ve=Se(5099);function ke(ot,Ye,Ze,Re,He){const Ve=[].slice.call(arguments,1),De=Ve.length,F="function"==typeof Ve[De-1];if(!F&&!Te())throw new Error("Callback required as last argument");if(!F){if(De<1)throw new Error("Too few arguments provided");return 1===De?(Ze=Ye,Ye=Re=void 0):2===De&&!Ye.getContext&&(Re=Ze,Ze=Ye,Ye=void 0),new Promise(function(J,Y){try{const he=x.create(Ze,Re);J(ot(he,Ye,Re))}catch(he){Y(he)}})}if(De<2)throw new Error("Too few arguments provided");2===De?(He=Ze,Ze=Ye,Ye=Re=void 0):3===De&&(Ye.getContext&&typeof He>"u"?(He=Re,Re=void 0):(He=Re,Re=Ze,Ze=Ye,Ye=void 0));try{const J=x.create(Ze,Re);He(null,ot(J,Ye,Re))}catch(J){He(J)}}mt.create=x.create,mt.toCanvas=ke.bind(null,L.render),mt.toDataURL=ke.bind(null,L.renderToDataURL),mt.toString=ke.bind(null,function(ot,Ye,Ze){return ve.render(ot,Ze)})},8856:Yr=>{Yr.exports=function(){return"function"==typeof Promise&&Promise.prototype&&Promise.prototype.then}},1650:(Yr,mt,Se)=>{const Te=Se(4469).getSymbolSize;mt.getRowColCoords=function(L){if(1===L)return[];const ve=Math.floor(L/7)+2,ke=Te(L),ot=145===ke?26:2*Math.ceil((ke-13)/(2*ve-2)),Ye=[ke-7];for(let Ze=1;Ze{const Te=Se(2321),x=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"," ","$","%","*","+","-",".","/",":"];function L(ve){this.mode=Te.ALPHANUMERIC,this.data=ve}L.getBitsLength=function(ke){return 11*Math.floor(ke/2)+ke%2*6},L.prototype.getLength=function(){return this.data.length},L.prototype.getBitsLength=function(){return L.getBitsLength(this.data.length)},L.prototype.write=function(ke){let ot;for(ot=0;ot+2<=this.data.length;ot+=2){let Ye=45*x.indexOf(this.data[ot]);Ye+=x.indexOf(this.data[ot+1]),ke.put(Ye,11)}this.data.length%2&&ke.put(x.indexOf(this.data[ot]),6)},Yr.exports=L},7930:Yr=>{function mt(){this.buffer=[],this.length=0}mt.prototype={get:function(Se){const Te=Math.floor(Se/8);return 1==(this.buffer[Te]>>>7-Se%8&1)},put:function(Se,Te){for(let x=0;x>>Te-x-1&1))},getLengthInBits:function(){return this.length},putBit:function(Se){const Te=Math.floor(this.length/8);this.buffer.length<=Te&&this.buffer.push(0),Se&&(this.buffer[Te]|=128>>>this.length%8),this.length++}},Yr.exports=mt},6393:Yr=>{function mt(Se){if(!Se||Se<1)throw new Error("BitMatrix size must be defined and greater than 0");this.size=Se,this.data=new Uint8Array(Se*Se),this.reservedBit=new Uint8Array(Se*Se)}mt.prototype.set=function(Se,Te,x,L){const ve=Se*this.size+Te;this.data[ve]=x,L&&(this.reservedBit[ve]=!0)},mt.prototype.get=function(Se,Te){return this.data[Se*this.size+Te]},mt.prototype.xor=function(Se,Te,x){this.data[Se*this.size+Te]^=x},mt.prototype.isReserved=function(Se,Te){return this.reservedBit[Se*this.size+Te]},Yr.exports=mt},2333:(Yr,mt,Se)=>{const Te=Se(5474),x=Se(2321);function L(ve){this.mode=x.BYTE,"string"==typeof ve&&(ve=Te(ve)),this.data=new Uint8Array(ve)}L.getBitsLength=function(ke){return 8*ke},L.prototype.getLength=function(){return this.data.length},L.prototype.getBitsLength=function(){return L.getBitsLength(this.data.length)},L.prototype.write=function(ve){for(let ke=0,ot=this.data.length;ke{const Te=Se(6196),x=[1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,4,1,2,4,4,2,4,4,4,2,4,6,5,2,4,6,6,2,5,8,8,4,5,8,8,4,5,8,11,4,8,10,11,4,9,12,16,4,9,16,16,6,10,12,18,6,10,17,16,6,11,16,19,6,13,18,21,7,14,21,25,8,16,20,25,8,17,23,25,9,17,23,34,9,18,25,30,10,20,27,32,12,21,29,35,12,23,34,37,12,25,34,40,13,26,35,42,14,28,38,45,15,29,40,48,16,31,43,51,17,33,45,54,18,35,48,57,19,37,51,60,19,38,53,63,20,40,56,66,21,43,59,70,22,45,62,74,24,47,65,77,25,49,68,81],L=[7,10,13,17,10,16,22,28,15,26,36,44,20,36,52,64,26,48,72,88,36,64,96,112,40,72,108,130,48,88,132,156,60,110,160,192,72,130,192,224,80,150,224,264,96,176,260,308,104,198,288,352,120,216,320,384,132,240,360,432,144,280,408,480,168,308,448,532,180,338,504,588,196,364,546,650,224,416,600,700,224,442,644,750,252,476,690,816,270,504,750,900,300,560,810,960,312,588,870,1050,336,644,952,1110,360,700,1020,1200,390,728,1050,1260,420,784,1140,1350,450,812,1200,1440,480,868,1290,1530,510,924,1350,1620,540,980,1440,1710,570,1036,1530,1800,570,1064,1590,1890,600,1120,1680,1980,630,1204,1770,2100,660,1260,1860,2220,720,1316,1950,2310,750,1372,2040,2430];mt.getBlocksCount=function(ke,ot){switch(ot){case Te.L:return x[4*(ke-1)+0];case Te.M:return x[4*(ke-1)+1];case Te.Q:return x[4*(ke-1)+2];case Te.H:return x[4*(ke-1)+3];default:return}},mt.getTotalCodewordsCount=function(ke,ot){switch(ot){case Te.L:return L[4*(ke-1)+0];case Te.M:return L[4*(ke-1)+1];case Te.Q:return L[4*(ke-1)+2];case Te.H:return L[4*(ke-1)+3];default:return}}},6196:(Yr,mt)=>{mt.L={bit:1},mt.M={bit:0},mt.Q={bit:3},mt.H={bit:2},mt.isValid=function(x){return x&&typeof x.bit<"u"&&x.bit>=0&&x.bit<4},mt.from=function(x,L){if(mt.isValid(x))return x;try{return function Se(Te){if("string"!=typeof Te)throw new Error("Param is not a string");switch(Te.toLowerCase()){case"l":case"low":return mt.L;case"m":case"medium":return mt.M;case"q":case"quartile":return mt.Q;case"h":case"high":return mt.H;default:throw new Error("Unknown EC Level: "+Te)}}(x)}catch{return L}}},6745:(Yr,mt,Se)=>{const Te=Se(4469).getSymbolSize;mt.getPositions=function(ve){const ke=Te(ve);return[[0,0],[ke-7,0],[0,ke-7]]}},7402:(Yr,mt,Se)=>{const Te=Se(4469),ve=Te.getBCHDigit(1335);mt.getEncodedBits=function(ot,Ye){const Ze=ot.bit<<3|Ye;let Re=Ze<<10;for(;Te.getBCHDigit(Re)-ve>=0;)Re^=1335<{const Se=new Uint8Array(512),Te=new Uint8Array(256);(function(){let L=1;for(let ve=0;ve<255;ve++)Se[ve]=L,Te[L]=ve,L<<=1,256&L&&(L^=285);for(let ve=255;ve<512;ve++)Se[ve]=Se[ve-255]})(),mt.log=function(L){if(L<1)throw new Error("log("+L+")");return Te[L]},mt.exp=function(L){return Se[L]},mt.mul=function(L,ve){return 0===L||0===ve?0:Se[Te[L]+Te[ve]]}},3780:(Yr,mt,Se)=>{const Te=Se(2321),x=Se(4469);function L(ve){this.mode=Te.KANJI,this.data=ve}L.getBitsLength=function(ke){return 13*ke},L.prototype.getLength=function(){return this.data.length},L.prototype.getBitsLength=function(){return L.getBitsLength(this.data.length)},L.prototype.write=function(ve){let ke;for(ke=0;ke=33088&&ot<=40956)ot-=33088;else{if(!(ot>=57408&&ot<=60351))throw new Error("Invalid SJIS character: "+this.data[ke]+"\nMake sure your charset is UTF-8");ot-=49472}ot=192*(ot>>>8&255)+(255&ot),ve.put(ot,13)}},Yr.exports=L},357:(Yr,mt)=>{mt.Patterns={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7};function Te(x,L,ve){switch(x){case mt.Patterns.PATTERN000:return(L+ve)%2==0;case mt.Patterns.PATTERN001:return L%2==0;case mt.Patterns.PATTERN010:return ve%3==0;case mt.Patterns.PATTERN011:return(L+ve)%3==0;case mt.Patterns.PATTERN100:return(Math.floor(L/2)+Math.floor(ve/3))%2==0;case mt.Patterns.PATTERN101:return L*ve%2+L*ve%3==0;case mt.Patterns.PATTERN110:return(L*ve%2+L*ve%3)%2==0;case mt.Patterns.PATTERN111:return(L*ve%3+(L+ve)%2)%2==0;default:throw new Error("bad maskPattern:"+x)}}mt.isValid=function(L){return null!=L&&""!==L&&!isNaN(L)&&L>=0&&L<=7},mt.from=function(L){return mt.isValid(L)?parseInt(L,10):void 0},mt.getPenaltyN1=function(L){const ve=L.size;let ke=0,ot=0,Ye=0,Ze=null,Re=null;for(let He=0;He=5&&(ke+=ot-5+3),Ze=De,ot=1),De=L.get(Ve,He),De===Re?Ye++:(Ye>=5&&(ke+=Ye-5+3),Re=De,Ye=1)}ot>=5&&(ke+=ot-5+3),Ye>=5&&(ke+=Ye-5+3)}return ke},mt.getPenaltyN2=function(L){const ve=L.size;let ke=0;for(let ot=0;ot=10&&(1488===ot||93===ot)&&ke++,Ye=Ye<<1&2047|L.get(Re,Ze),Re>=10&&(1488===Ye||93===Ye)&&ke++}return 40*ke},mt.getPenaltyN4=function(L){let ve=0;const ke=L.data.length;for(let Ye=0;Ye{const Te=Se(9797),x=Se(9091);mt.NUMERIC={id:"Numeric",bit:1,ccBits:[10,12,14]},mt.ALPHANUMERIC={id:"Alphanumeric",bit:2,ccBits:[9,11,13]},mt.BYTE={id:"Byte",bit:4,ccBits:[8,16,16]},mt.KANJI={id:"Kanji",bit:8,ccBits:[8,10,12]},mt.MIXED={bit:-1},mt.getCharCountIndicator=function(ke,ot){if(!ke.ccBits)throw new Error("Invalid mode: "+ke);if(!Te.isValid(ot))throw new Error("Invalid version: "+ot);return ot>=1&&ot<10?ke.ccBits[0]:ot<27?ke.ccBits[1]:ke.ccBits[2]},mt.getBestModeForData=function(ke){return x.testNumeric(ke)?mt.NUMERIC:x.testAlphanumeric(ke)?mt.ALPHANUMERIC:x.testKanji(ke)?mt.KANJI:mt.BYTE},mt.toString=function(ke){if(ke&&ke.id)return ke.id;throw new Error("Invalid mode")},mt.isValid=function(ke){return ke&&ke.bit&&ke.ccBits},mt.from=function(ke,ot){if(mt.isValid(ke))return ke;try{return function L(ve){if("string"!=typeof ve)throw new Error("Param is not a string");switch(ve.toLowerCase()){case"numeric":return mt.NUMERIC;case"alphanumeric":return mt.ALPHANUMERIC;case"kanji":return mt.KANJI;case"byte":return mt.BYTE;default:throw new Error("Unknown mode: "+ve)}}(ke)}catch{return ot}}},1200:(Yr,mt,Se)=>{const Te=Se(2321);function x(L){this.mode=Te.NUMERIC,this.data=L.toString()}x.getBitsLength=function(ve){return 10*Math.floor(ve/3)+(ve%3?ve%3*3+1:0)},x.prototype.getLength=function(){return this.data.length},x.prototype.getBitsLength=function(){return x.getBitsLength(this.data.length)},x.prototype.write=function(ve){let ke,ot,Ye;for(ke=0;ke+3<=this.data.length;ke+=3)ot=this.data.substr(ke,3),Ye=parseInt(ot,10),ve.put(Ye,10);const Ze=this.data.length-ke;Ze>0&&(ot=this.data.substr(ke),Ye=parseInt(ot,10),ve.put(Ye,3*Ze+1))},Yr.exports=x},8116:(Yr,mt,Se)=>{const Te=Se(3010);mt.mul=function(L,ve){const ke=new Uint8Array(L.length+ve.length-1);for(let ot=0;ot=0;){const ot=ke[0];for(let Ze=0;Ze{const Te=Se(4469),x=Se(6196),L=Se(7930),ve=Se(6393),ke=Se(1650),ot=Se(6745),Ye=Se(357),Ze=Se(505),Re=Se(2389),He=Se(112),Ve=Se(7402),De=Se(2321),F=Se(584);function me(E,_,v){const p=E.size,C=Ve.getEncodedBits(_,v);let I,U;for(I=0;I<15;I++)U=1==(C>>I&1),E.set(I<6?I:I<8?I+1:p-15+I,8,U,!0),E.set(8,I<8?p-I-1:I<9?15-I-1+1:15-I-1,U,!0);E.set(p-8,8,1,!0)}function g(E,_,v,p){let C;if(Array.isArray(E))C=F.fromArray(E);else{if("string"!=typeof E)throw new Error("Invalid data");{let ee=_;if(!ee){const ue=F.rawSplit(E);ee=He.getBestVersionForData(ue,v)}C=F.fromString(E,ee||40)}}const I=He.getBestVersionForData(C,v);if(!I)throw new Error("The amount of data is too big to be stored in a QR Code");if(_){if(_=0&&k<=6&&(0===Z||6===Z)||Z>=0&&Z<=6&&(0===k||6===k)||k>=2&&k<=4&&Z>=2&&Z<=4,!0)}}(Z,_),function Y(E){const _=E.size;for(let v=8;v<_-8;v++){const p=v%2==0;E.set(v,6,p,!0),E.set(6,v,p,!0)}}(Z),function he(E,_){const v=ke.getPositions(_);for(let p=0;p=7&&function Q(E,_){const v=E.size,p=He.getEncodedBits(_);let C,I,U;for(let k=0;k<18;k++)C=Math.floor(k/3),I=k%3+v-8-3,U=1==(p>>k&1),E.set(C,I,U,!0),E.set(I,C,U,!0)}(Z,_),function X(E,_){const v=E.size;let p=-1,C=v-1,I=7,U=0;for(let k=v-1;k>0;k-=2)for(6===k&&k--;;){for(let Z=0;Z<2;Z++)if(!E.isReserved(C,k-Z)){let ee=!1;U<_.length&&(ee=1==(_[U]>>>I&1)),E.set(C,k-Z,ee),I--,-1===I&&(U++,I=7)}if(C+=p,C<0||v<=C){C-=p,p=-p;break}}}(Z,U),isNaN(p)&&(p=Ye.getBestMask(Z,me.bind(null,Z,v))),Ye.applyMask(p,Z),me(Z,v,p),{modules:Z,version:_,errorCorrectionLevel:v,maskPattern:p,segments:C}}mt.create=function(_,v){if(typeof _>"u"||""===_)throw new Error("No input text");let C,I,p=x.M;return typeof v<"u"&&(p=x.from(v.errorCorrectionLevel,x.M),C=He.from(v.version),I=Ye.from(v.maskPattern),v.toSJISFunc&&Te.setToSJISFunction(v.toSJISFunc)),g(_,C,p,I)}},2389:(Yr,mt,Se)=>{const Te=Se(8116);function x(L){this.genPoly=void 0,this.degree=L,this.degree&&this.initialize(this.degree)}x.prototype.initialize=function(ve){this.degree=ve,this.genPoly=Te.generateECPolynomial(this.degree)},x.prototype.encode=function(ve){if(!this.genPoly)throw new Error("Encoder not initialized");const ke=new Uint8Array(ve.length+this.degree);ke.set(ve);const ot=Te.mod(ke,this.genPoly),Ye=this.degree-ot.length;if(Ye>0){const Ze=new Uint8Array(this.degree);return Ze.set(ot,Ye),Ze}return ot},Yr.exports=x},9091:(Yr,mt)=>{let x="(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+";x=x.replace(/u/g,"\\u");const L="(?:(?![A-Z0-9 $%*+\\-./:]|"+x+")(?:.|[\r\n]))+";mt.KANJI=new RegExp(x,"g"),mt.BYTE_KANJI=new RegExp("[^A-Z0-9 $%*+\\-./:]+","g"),mt.BYTE=new RegExp(L,"g"),mt.NUMERIC=new RegExp("[0-9]+","g"),mt.ALPHANUMERIC=new RegExp("[A-Z $%*+\\-./:]+","g");const ve=new RegExp("^"+x+"$"),ke=new RegExp("^[0-9]+$"),ot=new RegExp("^[A-Z0-9 $%*+\\-./:]+$");mt.testKanji=function(Ze){return ve.test(Ze)},mt.testNumeric=function(Ze){return ke.test(Ze)},mt.testAlphanumeric=function(Ze){return ot.test(Ze)}},584:(Yr,mt,Se)=>{const Te=Se(2321),x=Se(1200),L=Se(742),ve=Se(2333),ke=Se(3780),ot=Se(9091),Ye=Se(4469),Ze=Se(2623);function Re(Q){return unescape(encodeURIComponent(Q)).length}function He(Q,me,X){const B=[];let $;for(;null!==($=Q.exec(X));)B.push({data:$[0],index:$.index,mode:me,length:$[0].length});return B}function Ve(Q){const me=He(ot.NUMERIC,Te.NUMERIC,Q),X=He(ot.ALPHANUMERIC,Te.ALPHANUMERIC,Q);let B,$;return Ye.isKanjiModeEnabled()?(B=He(ot.BYTE,Te.BYTE,Q),$=He(ot.KANJI,Te.KANJI,Q)):(B=He(ot.BYTE_KANJI,Te.BYTE,Q),$=[]),me.concat(X,B,$).sort(function(E,_){return E.index-_.index}).map(function(E){return{data:E.data,mode:E.mode,length:E.length}})}function De(Q,me){switch(me){case Te.NUMERIC:return x.getBitsLength(Q);case Te.ALPHANUMERIC:return L.getBitsLength(Q);case Te.KANJI:return ke.getBitsLength(Q);case Te.BYTE:return ve.getBitsLength(Q)}}function he(Q,me){let X;const B=Te.getBestModeForData(Q);if(X=Te.from(me,B),X!==Te.BYTE&&X.bit=0?me[me.length-1]:null;return B&&B.mode===X.mode?(me[me.length-1].data+=X.data,me):(me.push(X),me)},[])}(_))},mt.rawSplit=function(me){return mt.fromArray(Ve(me,Ye.isKanjiModeEnabled()))}},4469:(Yr,mt)=>{let Se;const Te=[0,26,44,70,100,134,172,196,242,292,346,404,466,532,581,655,733,815,901,991,1085,1156,1258,1364,1474,1588,1706,1828,1921,2051,2185,2323,2465,2611,2761,2876,3034,3196,3362,3532,3706];mt.getSymbolSize=function(L){if(!L)throw new Error('"version" cannot be null or undefined');if(L<1||L>40)throw new Error('"version" should be in range from 1 to 40');return 4*L+17},mt.getSymbolTotalCodewords=function(L){return Te[L]},mt.getBCHDigit=function(x){let L=0;for(;0!==x;)L++,x>>>=1;return L},mt.setToSJISFunction=function(L){if("function"!=typeof L)throw new Error('"toSJISFunc" is not a valid function.');Se=L},mt.isKanjiModeEnabled=function(){return typeof Se<"u"},mt.toSJIS=function(L){return Se(L)}},9797:(Yr,mt)=>{mt.isValid=function(Te){return!isNaN(Te)&&Te>=1&&Te<=40}},112:(Yr,mt,Se)=>{const Te=Se(4469),x=Se(505),L=Se(6196),ve=Se(2321),ke=Se(9797),Ye=Te.getBCHDigit(7973);function Re(De,F){return ve.getCharCountIndicator(De,F)+4}function He(De,F){let J=0;return De.forEach(function(Y){const he=Re(Y.mode,F);J+=he+Y.getBitsLength()}),J}mt.from=function(F,J){return ke.isValid(F)?parseInt(F,10):J},mt.getCapacity=function(F,J,Y){if(!ke.isValid(F))throw new Error("Invalid QR Code version");typeof Y>"u"&&(Y=ve.BYTE);const me=8*(Te.getSymbolTotalCodewords(F)-x.getTotalCodewordsCount(F,J));if(Y===ve.MIXED)return me;const X=me-Re(Y,F);switch(Y){case ve.NUMERIC:return Math.floor(X/10*3);case ve.ALPHANUMERIC:return Math.floor(X/11*2);case ve.KANJI:return Math.floor(X/13);default:return Math.floor(X/8)}},mt.getBestVersionForData=function(F,J){let Y;const he=L.from(J,L.M);if(Array.isArray(F)){if(F.length>1)return function Ve(De,F){for(let J=1;J<=40;J++)if(He(De,J)<=mt.getCapacity(J,F,ve.MIXED))return J}(F,he);if(0===F.length)return 1;Y=F[0]}else Y=F;return function Ze(De,F,J){for(let Y=1;Y<=40;Y++)if(F<=mt.getCapacity(Y,J,De))return Y}(Y.mode,Y.getLength(),he)},mt.getEncodedBits=function(F){if(!ke.isValid(F)||F<7)throw new Error("Invalid QR Code version");let J=F<<12;for(;Te.getBCHDigit(J)-Ye>=0;)J^=7973<{const Te=Se(7569);mt.render=function(ke,ot,Ye){let Ze=Ye,Re=ot;typeof Ze>"u"&&(!ot||!ot.getContext)&&(Ze=ot,ot=void 0),ot||(Re=function L(){try{return document.createElement("canvas")}catch{throw new Error("You need to specify a canvas element")}}()),Ze=Te.getOptions(Ze);const He=Te.getImageWidth(ke.modules.size,Ze),Ve=Re.getContext("2d"),De=Ve.createImageData(He,He);return Te.qrToImageData(De.data,ke,Ze),function x(ve,ke,ot){ve.clearRect(0,0,ke.width,ke.height),ke.style||(ke.style={}),ke.height=ot,ke.width=ot,ke.style.height=ot+"px",ke.style.width=ot+"px"}(Ve,Re,He),Ve.putImageData(De,0,0),Re},mt.renderToDataURL=function(ke,ot,Ye){let Ze=Ye;return typeof Ze>"u"&&(!ot||!ot.getContext)&&(Ze=ot,ot=void 0),Ze||(Ze={}),mt.render(ke,ot,Ze).toDataURL(Ze.type||"image/png",(Ze.rendererOpts||{}).quality)}},5099:(Yr,mt,Se)=>{const Te=Se(7569);function x(ke,ot){const Ye=ke.a/255,Ze=ot+'="'+ke.hex+'"';return Ye<1?Ze+" "+ot+'-opacity="'+Ye.toFixed(2).slice(1)+'"':Ze}function L(ke,ot,Ye){let Ze=ke+ot;return typeof Ye<"u"&&(Ze+=" "+Ye),Ze}mt.render=function(ot,Ye,Ze){const Re=Te.getOptions(Ye),He=ot.modules.size,Ve=ot.modules.data,De=He+2*Re.margin,F=Re.color.light.a?"':"",J="0&&F>0&&ke[De-1]||(Ze+=He?L("M",F+Ye,.5+J+Ye):L("m",Re,0),Re=0,He=!1),F+1',Q=''+F+J+"\n";return"function"==typeof Ze&&Ze(null,Q),Q}},7569:(Yr,mt)=>{function Se(Te){if("number"==typeof Te&&(Te=Te.toString()),"string"!=typeof Te)throw new Error("Color should be defined as hex string");let x=Te.slice().replace("#","").split("");if(x.length<3||5===x.length||x.length>8)throw new Error("Invalid hex color: "+Te);(3===x.length||4===x.length)&&(x=Array.prototype.concat.apply([],x.map(function(ve){return[ve,ve]}))),6===x.length&&x.push("F","F");const L=parseInt(x.join(""),16);return{r:L>>24&255,g:L>>16&255,b:L>>8&255,a:255&L,hex:"#"+x.slice(0,6).join("")}}mt.getOptions=function(x){x||(x={}),x.color||(x.color={});const ve=x.width&&x.width>=21?x.width:void 0;return{width:ve,scale:ve?4:x.scale||4,margin:typeof x.margin>"u"||null===x.margin||x.margin<0?4:x.margin,color:{dark:Se(x.color.dark||"#000000ff"),light:Se(x.color.light||"#ffffffff")},type:x.type,rendererOpts:x.rendererOpts||{}}},mt.getScale=function(x,L){return L.width&&L.width>=x+2*L.margin?L.width/(x+2*L.margin):L.scale},mt.getImageWidth=function(x,L){const ve=mt.getScale(x,L);return Math.floor((x+2*L.margin)*ve)},mt.qrToImageData=function(x,L,ve){const ke=L.modules.size,ot=L.modules.data,Ye=mt.getScale(ke,ve),Ze=Math.floor((ke+2*ve.margin)*Ye),Re=ve.margin*Ye,He=[ve.color.light,ve.color.dark];for(let Ve=0;Ve=Re&&De>=Re&&Ve{"use strict";function Te(L,ve,ke,ot,Ye,Ze,Re){try{var He=L[Ze](Re),Ve=He.value}catch(De){return void ke(De)}He.done?ve(Ve):Promise.resolve(Ve).then(ot,Ye)}function x(L){return function(){var ve=this,ke=arguments;return new Promise(function(ot,Ye){var Ze=L.apply(ve,ke);function Re(Ve){Te(Ze,ot,Ye,Re,He,"next",Ve)}function He(Ve){Te(Ze,ot,Ye,Re,He,"throw",Ve)}Re(void 0)})}}Se.d(mt,{A:()=>x})},2843:(Yr,mt,Se)=>{"use strict";Se.d(mt,{Mw:()=>Ve,NM:()=>De,Ru:()=>Q,Vm:()=>B,YF:()=>He,b8:()=>F,bk:()=>he,lf:()=>J,lg:()=>Ze,md:()=>Ye,nC:()=>Re,xh:()=>ot});var Te=Se(4882),x=Se(8362),L=Se(8872),ve=Se(4246),ke=Se(3147);function ot(g,E){if(!g||g.empty())return{x:0,y:0,width:0,height:0};if((0,L.isNodeJs)()&&"bbox"!==E||g.property("_batch_mode"))return{x:0,y:0,width:parseInt(g.attr("width")),height:parseInt(g.attr("height"))};const _=C=>{let I=g.style(C);return I&&(0,L.isStr)(I)?(I=parseFloat(I.replace("px","")),Number.isFinite(I)?Math.round(I):0):0};let v=g.node().getBoundingClientRect();"bbox"===E&&parseFloat(v.width)>0&&(v=g.node().getBBox());const p={x:0,y:0,width:parseInt(v.width),height:parseInt(v.height)};return void 0!==v.left?(p.x=parseInt(v.left),p.y=parseInt(v.top)):void 0!==v.x&&(p.x=parseInt(v.x),p.y=parseInt(v.y)),(void 0===E||"nopadding"===E)&&(p.width-=_("padding-left")+_("padding-right"),p.height-=_("padding-top")+_("padding-bottom")),p}function Ye(g,E){if(!E)return E;for(;!g.empty()&&!g.classed("root_canvas");){const _=g.attr("class");_&&(_.indexOf("root_frame")>=0||_.indexOf("__root_pad_")>=0)&&(E.x+=g.property("draw_x")||0,E.y+=g.property("draw_y")||0),g=(0,x.Lt)(g.node().parentNode)}return E}function Ze(g,E,_){E||(E="6.4g");const v=(E=E.trim()).length;if(v<2)return _?[g.toFixed(4),"6.4f"]:g.toFixed(4);const p=E[v-1];let C,I=(E=E.slice(0,v-1)).indexOf(".");I=I<0?4:parseInt(E.slice(I+1)),(!Number.isInteger(I)||I<=0)&&(I=4);let U=!1;if("e"===p||"E"===p)C=!0;else if("Q"===p)C=!0,U=!0;else if("f"===p||"F"===p)C=!1;else if("W"===p)C=!1,U=!0;else{if("g"===p||"G"===p){const Z=Ze(g,E+"Q",!0);let ee=Ze(g,E+"W",!0);return Z[0].length0&&(I=20,k=g.toFixed(I));let Z=0;for(;ZZ&&ee--,0!==ee&&(I-=ee,I<0?I=0:I>20&&(I=20),k=g.toFixed(I))}return _?[k,"5."+I+"f"]:k}class Re{constructor(E){this.opt=(0,L.isStr)(E)?E.toUpperCase().trim():"",this.part=""}empty(){return 0===this.opt.length||0===this.opt.replace(/[ ;_,]/g,"").length}remain(){return this.opt}check(E,_){const v=this.opt.indexOf(E);if(v<0)return!1;if(this.opt=this.opt.slice(0,v)+this.opt.slice(v+E.length),this.part="",!_)return!0;let p=v;for(;pv&&(this.part=this.opt.slice(v,p),this.opt=this.opt.slice(0,v)+this.opt.slice(p)),!0}partAsInt(E,_){let v=1;const p=this.part?this.part[this.part.length-1]:"";"K"===p?v=1e3:"M"===p?v=1e6:"G"===p&&(v=1e9);let C=this.part.replace(/^\D+/g,"");return C=C?parseInt(C,10):Number.NaN,Number.isInteger(C)?v*C+(E||0):_||0}partAsFloat(E,_){let v=this.part.replace(/^\D+/g,"");return v=v?parseFloat(v):Number.NaN,Number.isFinite(v)?v+(E||0):_||0}}class He{constructor(E){void 0!==E&&this.seed(E)}seed(E){(E=Math.abs(E))>1e8?E=Math.abs(1e8*Math.sin(E)):E<1&&(E*=1e8),this.m_w=Math.round(E),this.m_z=987654321}random(){if(void 0===this.m_z)return Math.random();this.m_z=36969*(65535&this.m_z)+(this.m_z>>16)&4294967295,this.m_w=18e3*(65535&this.m_w)+(this.m_w>>16)&4294967295;let E=(this.m_z<<16)+this.m_w&4294967295;return E/=4294967296,E+.5}}function Ve(g,E){E||(E={}),E.line?void 0===E.ndig&&(E.ndig=0):E.calc=!0;let _=g.length;if(_<3&&(E.line=!0),E.t=E.t??.2,void 0===E.ndig||E.height){E.maxy=g[0].gry,E.mindiff=100;for(let I=1;I<_;I++)E.maxy=Math.max(E.maxy,g[I].gry),E.mindiff=Math.min(E.mindiff,Math.abs(g[I].grx-g[I-1].grx),Math.abs(g[I].gry-g[I-1].gry));void 0===E.ndig&&(E.ndig=E.mindiff>20?0:E.mindiff>5?1:2)}const v=(I,U,k)=>{const Z=Math.sqrt((U.gry-I.gry)**2+(U.grx-I.grx)**2)*E.t,ee=Math.atan2(U.dgry,U.dgrx),ue=Math.atan2(k*(U.gry-I.gry),k*(U.grx-I.grx));I.dgrx=Z*Math.cos(2*ue-ee),I.dgry=Z*Math.sin(2*ue-ee)},p=I=>{if(!E.ndig||Math.round(I)===I)return I.toFixed(0);let U=I.toFixed(E.ndig),k=U.length-1;for(;"0"===U[k];)k--;return"."===U[k]&&k--,U=U.slice(0,k+1),"-0"===U?"0":U};if(E.calc){for(let I=1;I<_-1;I++)g[I].dgrx=(g[I+1].grx-g[I-1].grx)*E.t,g[I].dgry=(g[I+1].gry-g[I-1].gry)*E.t;_>2?(v(g[0],g[1],1),v(g[_-1],g[_-2],-1)):2===g.length&&(g[0].dgrx=(g[1].grx-g[0].grx)*E.t,g[0].dgry=(g[1].gry-g[0].gry)*E.t,g[1].dgrx=-g[0].dgrx,g[1].dgry=-g[0].dgry)}let C=`${E.cmd??"M"}${p(g[0].grx)},${p(g[0].gry)}`;if(E.line)if(_<1e4){let I=0,U=0,k=Math.round(g[0].grx),Z=Math.round(g[0].gry);const ee=()=>{I&&(C+="h"+I,I=0),U&&(C+="v"+U,U=0)};for(let ue=1;ue<_;++ue){const V=g[ue],b=Math.round(V.grx)-k,P=Math.round(V.gry)-Z;b&&P?(ee(),C+=`l${b},${P}`):!b&&P?((0===U||P<0!=U<0)&&ee(),U+=P):b&&!P&&((0===I||b<0!=I<0)&&ee(),I+=b),k+=b,Z+=P}ee()}else{let I=Math.round(g[0].grx),U=Math.round(g[0].gry),k=U,Z=U,ee=U;for(let ue=1;ue<_;++ue){const V=g[ue],b=Math.round(V.grx),P=Math.round(V.gry),T=b-I;if(0===T){k=Math.min(k,P),Z=Math.max(Z,P),ee=P;continue}k!==Z&&(k!==U&&(C+="v"+(k-U)),C+="v"+(Z-k),Z!==ee&&(C+="v"+(ee-Z)),U=ee);const z=P-U;C+=z?`l${T},${z}`:`h${T}`,I=b,U=P,ee=k=Z=P}k!==Z&&(k!==U&&(C+="v"+(k-U)),C+="v"+(Z-k),Z!==ee&&(C+="v"+(ee-Z)))}else{let I=1;E.qubic&&(_--,I++,C+=`Q${p(g[1].grx-g[1].dgrx)},${p(g[1].gry-g[1].dgry)},${p(g[1].grx)},${p(g[1].gry)}`),C+=`C${p(g[I-1].grx+g[I-1].dgrx)},${p(g[I-1].gry+g[I-1].dgry)},${p(g[I].grx-g[I].dgrx)},${p(g[I].gry-g[I].dgry)},${p(g[I].grx)},${p(g[I].gry)}`;for(let U=I+1;U<_;U++)C+=`S${p(g[U].grx-g[U].dgrx)},${p(g[U].gry-g[U].dgry)},${p(g[U].grx)},${p(g[U].gry)}`;E.qubic&&(C+=`Q${p(g[_].grx-g[_].dgrx)},${p(g[_].gry-g[_].dgry)},${p(g[_].grx)},${p(g[_].gry)}`)}return E.height&&(E.close=`L${p(g[g.length-1].grx)},${p(Math.max(E.maxy,E.height))}H${p(g[0].grx)}Z`),C}function De(g){return(g=g.replace(/url\("#(\w+)"\)/g,"url(#$1)").replace(/ class="\w*"/g,"").replace(/ pad="\w*"/g,"").replace(/ title=""/g,"").replace(/<\/g>/g,"").replace(/<\/g>/g,"")).replace(/<\/svg>/g,"")}class F{constructor(E){this.divid=null,E&&this.setDom(E)}setDom(E){void 0!==E&&(this.divid=E,delete this._selected_main)}getDom(){return this.divid}selectDom(E){if(!this.divid)return(0,x.Lt)(null);let _=this._selected_main;if(!_){if((0,L.isStr)(this.divid)){let I=this.divid;"#"!==I[0]&&(I="#"+I),_=(0,x.Lt)(I),_.empty()||(this.divid=_.node())}else _=(0,x.Lt)(this.divid);this._selected_main=_}if(!_||_.empty()||"origin"===E)return _;const v=_.property("use_enlarge"),C="simple"===(_.property("layout")||"simple")?"":_.property("layout_selector");return C&&(_=_.select(C)),!E&&!_.empty()&&v&&(_=(0,x.Lt)((0,L.getDocument)().getElementById("jsroot_enlarge_div"))),_}_accessTopPainter(E){const _=this.selectDom().node()?.firstChild;return _?(!0===E?_.painter=this:!1===E&&delete _.painter,_.painter):null}setTopPainter(){this._accessTopPainter(!0)}getTopPainter(){return this._accessTopPainter()}clearTopPainter(){this._accessTopPainter(!1)}cleanup(E){this.clearTopPainter();const _=this.selectDom("origin");!_.empty()&&!E&&_.html(""),this.divid=null,delete this._selected_main,(0,L.isFunc)(this._hpainter?.removePainter)&&this._hpainter.removePainter(this),delete this._hitemname,delete this._hdrawopt,delete this._hpainter}checkResize(){}testMainResize(E,_,v){const p=this.enlargeMain("state"),C=this.selectDom("origin"),I=this.selectDom();"on"!==p&&_?.width&&_?.height&&C.style("width",_.width+"px").style("height",_.height+"px");const k=ot(C,!0),Z=C.attr("can_resize");let ee=!1;"height"===Z&&v&&Math.abs(k.width*v-k.height)>.1*k.width&&(ee=!0),(k.height<=5||k.width<=5)&&Z&&"false"!==Z&&(ee=!0),ee&&"on"!==p&&(k.width>5?(v=v||.66,C.style("height",Math.round(k.width*v)+"px")):"height"!==Z&&C.style("width","200px").style("height","100px"));const ue=ot(I),V=I.property("_jsroot_height"),b=I.property("_jsroot_width");return ue.changed=!1,V&&b&&V>0&&b>0?(V!==ue.height||b!==ue.width)&&(ue.changed=E>1||ue.width/b<.99||ue.width/b>1.01||ue.height/V<.99||ue.height/V>1.01):ue.changed=!0,ue.changed&&I.property("_jsroot_height",ue.height).property("_jsroot_width",ue.width),C.property("did_enlarge")&&(ue.changed=!0,C.property("did_enlarge",!1)),ue}enlargeMain(E,_){const v=this.selectDom(!0),p=this.selectDom("origin"),C=(0,L.getDocument)();if(v.empty()||!L.settings.CanEnlarge||!1===p.property("can_enlarge"))return!1;if(void 0===E||"verify"===E)return!0;const I=p.property("use_enlarge")?"on":"off";if("state"===E)return I;"toggle"===E&&(E="off"===I);let U=(0,x.Lt)(C.getElementById("jsroot_enlarge_div"));if(!0===E&&"on"!==I){if(!U.empty())return!1;U=(0,x.Lt)(C.body).append("div").attr("id","jsroot_enlarge_div").attr("style","position: fixed; margin: 0px; border: 0px; padding: 0px; left: 1px; top: 1px; bottom: 1px; right: 1px; background: white; opacity: 0.95; z-index: 100; overflow: hidden;");const k=ot(v),Z=ot(U);if((Z.width<=k.width||Z.height<=k.height)&&Z.width*Z.height0;)U.node().appendChild(v.node().firstChild);return p.property("use_enlarge",!0),p.property("did_enlarge",!0),!0}if(!1===E&&"off"!==I){for(;U.node()&&U.node().childNodes.length>0;)v.node().appendChild(U.node().firstChild);return U.remove(),p.property("use_enlarge",!1),p.property("did_enlarge",!0),!0}return!1}setItemName(E,_,v){(0,L.isStr)(E)?this._hitemname=E:delete this._hitemname,(0,L.isStr)(_)&&(this._hdrawopt=_),this._hpainter=v}getItemName(){return this._hitemname??null}getItemDrawOpt(){return this._hdrawopt??""}}function J(){return Y.apply(this,arguments)}function Y(){return(Y=(0,Te.A)(function*(){return Se.e(398).then(Se.t.bind(Se,7398,19)).then(g=>(L.internals.nodejs_window||(L.internals.nodejs_window=new g.JSDOM("hello").window,L.internals.nodejs_document=L.internals.nodejs_window.document,L.internals.nodejs_body=(0,x.Lt)(L.internals.nodejs_document).select("body")),{JSDOM:g.JSDOM,doc:L.internals.nodejs_document,body:L.internals.nodejs_body}))})).apply(this,arguments)}function he(g,E,_){(0,L.isObject)(g)||(_=E,E=g,g=null);const v=_?`translate(${E},${_})`:E?`translate(${E})`:null;return g?g.attr("transform",v):v}function Q(g,E){E?g.style("stroke","steelblue").style("fill-opacity","0.1"):g.style("stroke","#4572A7").style("fill","#4572A7").style("opacity","0")}function X(){return(X=(0,Te.A)(function*(g,E){const _=(0,L.isNodeJs)();let v,p,C=!1;const I=_?Promise.all([Se.e(76),Se.e(360)]).then(Se.bind(Se,7360)).then(V=>(v=V,Promise.all([Se.e(76),Se.e(537)]).then(Se.bind(Se,6537)))).then(V=>{p=V.default}):(0,L.loadScript)(L.source_dir+"scripts/jspdf.umd.min.js").then(()=>(0,L.loadScript)(L.source_dir+"scripts/svg2pdf.umd.min.js")).then(()=>{v=globalThis.jspdf,p=globalThis.svg2pdf}),U=[],k=[],Z=[],ee=g.node.getAttribute("transform"),ue={};return g.reset_tranform&&g.node.removeAttribute("transform"),I.then(()=>{if((0,x.Lt)(g.node).selectAll("g").each(function(){this.hasAttribute("font-family")&&"Courier New"===this.getAttribute("font-family")&&(this.setAttribute("font-family","courier"),g.can_modify||U.push(this))}),(0,x.Lt)(g.node).selectAll("text").each(function(){this.hasAttribute("dominant-baseline")?(this.setAttribute("dy",".2em"),this.removeAttribute("dominant-baseline"),g.can_modify||k.push(this)):g.can_modify&&_&&".4em"===this.getAttribute("dy")&&this.setAttribute("dy",".2em"),(0,ke.cp)(this)&&(C=!0,g.can_modify||Z.push(this))}),_){const P=L.internals.nodejs_document;P.oldFunc=P.createElementNS,globalThis.document=P,globalThis.CSSStyleSheet=L.internals.nodejs_window.CSSStyleSheet,globalThis.CSSStyleRule=L.internals.nodejs_window.CSSStyleRule,P.createElementNS=function(T,z){const W=P.oldFunc(T,z);return W.getBBox=function(){let fe=50,we=10;if("text"===this.tagName){const Me=(0,ve.dj)(this);fe=(0,ke.N7)(this.textContent,Me),we=Me.size}return{x:0,y:0,width:fe,height:we}},W}}const V=new v.jsPDF({orientation:"landscape",unit:"px",format:[g.width+10,g.height+10]});(0,x.Lt)(g.node).selectAll("style").each(function(){const P=this.$fonthandler;if(!P||ue[P.name]||"ttf"!==P.format)return;const T=P.name.toLowerCase().replace(/\s/g,"")+".ttf";V.addFileToVFS(T,P.base64),V.addFont(T,P.name,"normal","normal","symbol"===P.name?"StandardEncoding":"Identity-H"),ue[P.name]=!0});let b=Promise.resolve(!0);return C&&!ue.symbol&&((0,ve.Zq)("symbol")||(b=_?Se.e(926).then(Se.t.bind(Se,3926,19)).then(P=>{const T=P.readFileSync("../../fonts/symbol.ttf").toString("base64");console.log("reading symbol.ttf",T.length),(0,ve.uT)(25,"symbol","ttf",T)}):(0,L.httpRequest)(L.source_dir+"fonts/symbol.ttf","bin").then(P=>{const T=(0,L.btoa_func)(P);(0,ve.uT)(25,"symbol","ttf",T)})),b=b.then(()=>{const P=(0,ve.Zq)("symbol"),T=new ve.qg(1242,10);T.name="symbol",T.base64=P.base64,T.addCustomFontToSvg((0,x.Lt)(g.node)),V.addFileToVFS("symbol.ttf",P.base64),V.addFont("symbol.ttf","symbol","normal","normal","StandardEncoding")})),b.then(()=>p.svg2pdf(g.node,V,{x:5,y:5,width:g.width,height:g.height})).then(()=>{g.reset_tranform&&!g.can_modify&&ee&&g.node.setAttribute("transform",ee),U.forEach(T=>T.setAttribute("font-family","Courier New")),k.forEach(T=>{T.setAttribute("dominant-baseline","middle"),T.removeAttribute("dy")}),Z.forEach(T=>{T.innerHTML=T.$originalHTML});const P=V.output(E?"arraybuffer":"dataurlstring");return _&&(globalThis.document=void 0,globalThis.CSSStyleSheet=void 0,globalThis.CSSStyleRule=void 0,L.internals.nodejs_document.createElementNS=L.internals.nodejs_document.oldFunc,E)?Buffer.from(P):P})})})).apply(this,arguments)}function B(g,E,_){return $.apply(this,arguments)}function $(){return $=(0,Te.A)(function*(g,E,_){if("svg"===E)return g;if("pdf"===E)return function me(g,E){return X.apply(this,arguments)}(g,_);g=(g=encodeURIComponent(''+g)).replace(/%([0-9A-F]{2})/g,(C,I)=>{const U=String.fromCharCode("0x"+I);return"%"===U?"%25":U}),g=decodeURIComponent(g);const p="data:image/svg+xml;base64,"+(0,L.btoa_func)(g);return(0,L.isNodeJs)()?Se.e(511).then(Se.t.bind(Se,1511,19)).then(function(){var C=(0,Te.A)(function*(I){return I.default.loadImage(p).then(U=>{const k=I.default.createCanvas(U.width,U.height);return k.getContext("2d").drawImage(U,0,0,U.width,U.height),_?k.toBuffer("image/"+E):E?k.toDataURL("image/"+E):k})});return function(I){return C.apply(this,arguments)}}()):new Promise(C=>{const I=document.createElement("img");I.onload=function(){const U=document.createElement("canvas");U.width=I.width,U.height=I.height,U.getContext("2d").drawImage(I,0,0),_&&E?U.toBlob(k=>k.arrayBuffer().then(C),"image/"+E):C(E?U.toDataURL("image/"+E):U)},I.onerror=function(U){console.log(`IMAGE ERROR ${U}`),C(null)},I.src=p})}),$.apply(this,arguments)}},4246:(Yr,mt,Se)=>{"use strict";Se.d(mt,{Zq:()=>He,dj:()=>Ve,qg:()=>Ze,uT:()=>Re});const Te="Arial",x="Times New Roman",L="Courier New",ve="Verdana",ke="Symbol",ot="Wingdings",Ye=[null,{n:x,s:"italic",aw:.5314},{n:x,w:"bold",aw:.5809},{n:x,s:"italic",w:"bold",aw:.554},{n:Te,aw:.5778},{n:Te,s:"oblique",aw:.5783},{n:Te,w:"bold",aw:.6034},{n:Te,s:"oblique",w:"bold",aw:.603},{n:L,aw:.6003},{n:L,s:"oblique",aw:.6004},{n:L,w:"bold",aw:.6003},{n:L,s:"oblique",w:"bold",aw:.6005},{n:ke,aw:.5521},{n:x,aw:.5521},{n:ot,aw:.5664},{n:ke,s:"italic",aw:.5314},{n:ve,aw:.5664},{n:ve,s:"italic",aw:.5495},{n:ve,w:"bold",aw:.5748},{n:ve,s:"italic",w:"bold",aw:.5578}];class Ze{constructor(F,J,Y){Y&&J<1&&(J*=Y,this.scaled=!0),this.size=Math.round(J||11),this.scale=Y,this.func=this.setFont.bind(this);const he=F&&Number.isInteger(F)?Math.floor(F/10):0,Q=Ye[he];Q?this.setNameStyleWeight(Q.n,Q.s,Q.w,Q.aw,Q.format,Q.base64):this.setNameStyleWeight(Te)}setNameStyleWeight(F,J,Y,he,Q,me){this.name=F,this.style=J||null,this.weight=Y||null,this.aver_width=he||(Y?.58:.55),this.format=Q,this.base64=me,this.name===ke||this.name===ot?(this.isSymbol=this.name,this.name=x):this.isSymbol=""}setPainter(F){this.painter=F}addCustomFontToSvg(F){if(!this.base64||!this.name)return;const J="custom_font_"+this.name;let he=F.selectChild(".canvas_defs");he.empty()&&(he=F.insert("svg:defs",":first-child").attr("class","canvas_defs")),he.selectChild("."+J).empty()&&(console.log("Adding style entry for class",J),he.append("style").attr("class",J).property("$fonthandler",this).text(`@font-face { font-family: "${this.name}"; font-weight: normal; font-style: normal; src: url(data:application/font-ttf;charset=utf-8;base64,${this.base64}); }`))}setFont(F){this.base64&&this.painter&&this.addCustomFontToSvg(this.painter.getCanvSvg()),F.attr("font-family",this.name).attr("font-size",this.size).attr("xml:space","preserve").attr("font-weight",this.weight||null).attr("font-style",this.style||null)}setSize(F){this.size=Math.round(F)}setColor(F){this.color=F}setAlign(F){this.align=F}setAngle(F){this.angle=F}roundAngle(F,J){this.angle=parseInt(this.angle||0),Number.isInteger(this.angle)||(this.angle=0),this.angle=Math.round(this.angle/F)*F+(J||0),this.angle<0?this.angle+=360:this.angle>=360&&(this.angle-=360)}clearFont(F){F.attr("font-family",null).attr("font-size",null).attr("xml:space",null).attr("font-weight",null).attr("font-style",null)}isMonospace(){const F=this.name.toLowerCase();return 0===F.indexOf("courier")||"monospace"===F||"monaco"===F}getFontHtml(){let F=Math.round(this.size)+"pt "+this.name;return this.weight&&(F+=" "+this.weight),this.style&&(F+=" "+this.style),F}getFontName(){return this.isSymbol||this.name||"none"}}function Re(De,F,J,Y){Number.isInteger(De)?Ye[De]={n:F,format:J,base64:Y}:console.error(`Wrong index ${De} for custom font`)}function He(De){return Ye.find(F=>F?.n===De&&F?.base64)}function Ve(De){const F=De.getAttribute("font-size"),J=De.getAttribute("font-family"),Y=F.indexOf("px"),he=Y>0?Number.parseInt(F.slice(0,Y)):12;let Q=De.getAttribute("font-style"),me=De.getAttribute("font-weight"),X=null,B="";"normal"===me?me="":"bold"===me&&(B+="b"),"normal"===Q?Q="":"italic"===Q?B+="i":"oblique"===Q&&(B+="o"),"arial"===J?B+="Arial":"times"===J?B+="Times New Roman":"verdana"===J&&(B+="Verdana");for(let g=1;g{"use strict";Se.d(mt,{rb:()=>g,JW:()=>De,tP:()=>$,as:()=>F,OZ:()=>X,m6:()=>J,Nn:()=>Y,XR:()=>B,QD:()=>me});var Te=Se(4882),x=Se(8362),L=Se(8872),ve=Se(3147),ke=Se(2843),ot=Se(2586),Ye=Se(2985);class Ze{constructor(_){this.color="none",this.colorindx=0,this.pattern=0,this.used=!0,this.kind=_.kind||2,this.changed=!1,this.func=this.apply.bind(this),this.setArgs(_),this.changed=!1}setArgs(_){(0,L.isObject)(_.attr)&&(void 0===_.pattern&&void 0!==_.attr.fFillStyle&&(_.pattern=_.attr.fFillStyle),void 0===_.color&&void 0!==_.attr.fFillColor&&(_.color=_.attr.fFillColor));const v=this.changed;this.change(_.color,_.pattern,_.svg,_.color_as_svg,_.painter),this.changed=v}apply(_){this.used=!0,_.style("fill",this.getFillColor()),"opacity"in this&&_.style("opacity",this.opacity),"antialias"in this&&_.style("antialias",this.antialias)}getFillColor(){return this.pattern_url||this.color}getFillColorAlt(_){return this.color&&"none"!==this.color?this.color:_}empty(){const _=this.getFillColor();return!_||"none"===_}setUsed(_){this.used=_}hasColor(){return this.color&&"none"!==this.color}setSolidColor(_){delete this.pattern_url,this.color=_,this.pattern=1001}setOpacity(_){this.opacity=_}isSolid(_){return!(1001!==this.pattern||this.gradient||_&&_!==this.color)}verifyDirectChange(_){(0,L.isStr)(this.pattern)&&(this.pattern=parseInt(this.pattern)),Number.isInteger(this.pattern)||(this.pattern=0),this.change(this.color,this.pattern,_?_.getCanvSvg():null,!0,_)}change(_,v,p,C,I){if(delete this.pattern_url,delete this.gradient,this.changed=!0,void 0!==_&&Number.isInteger(parseInt(_))&&!C&&(this.colorindx=parseInt(_)),void 0!==v&&Number.isInteger(parseInt(v))&&(this.pattern=parseInt(v),delete this.opacity,delete this.antialias),1e3===this.pattern&&0===this.colorindx)return this.pattern_url="white",!0;if(1e3===this.pattern&&(this.pattern=1001),this.pattern<1001)return this.pattern_url="none",!0;if(this.isSolid()&&0===this.colorindx&&1===this.kind&&!C)return this.pattern_url="none",!0;let U=this.colorindx;if(C?(this.color=_,"none"!==_&&(U=(0,x.yW)(_).hex().slice(1))):this.color=I?I.getColor(U):(0,Ye.oU)(U),(0,L.isStr)(this.color)||((0,L.isObject)(this.color)&&(this.color?._typename===Ye.pX||this.color?._typename===Ye.ho)&&(this.gradient=this.color),this.color="none"),this.isSolid())return!0;if(!this.gradient){if(this.pattern>=4e3&&this.pattern<=4100)return this.opacity=(this.pattern-4e3)/100,!0;if(this.pattern<3e3||"none"===this.color)return!1}if(!p||p.empty())return!1;let k="",Z="",ee=null,ue="",V="",b=2,P=2;if(this.gradient)k=`grad_${this.gradient.fNumber}`;else{switch(k=`pat_${this.pattern}_${U}`,this.pattern){case 3001:b=P=2,ue="M0,0h1v1h-1zM1,1h1v1h-1z";break;case 3002:b=4,P=2,ue="M1,0h1v1h-1zM3,1h1v1h-1z";break;case 3003:b=P=4,ue="M2,1h1v1h-1zM0,3h1v1h-1z";break;case 3004:b=P=8,Z="M8,0L0,8";break;case 3005:b=P=8,Z="M0,0L8,8";break;case 3006:b=P=4,Z="M1,0v4";break;case 3007:b=P=4,Z="M0,1h4";break;case 3008:b=P=10,ue="M0,3v-3h3ZM7,0h3v3ZM0,7v3h3ZM7,10h3v-3ZM5,2l3,3l-3,3l-3,-3Z",Z="M0,3l5,5M3,10l5,-5M10,7l-5,-5M7,0l-5,5";break;case 3009:b=12,P=12,Z="M0,0A6,6,0,0,0,12,0M6,6A6,6,0,0,0,12,12M6,6A6,6,0,0,1,0,12",ee="none";break;case 3010:b=P=10,Z="M0,2h10M0,7h10M2,0v2M7,2v5M2,7v3";break;case 3011:b=9,P=18,Z="M5,0v8M2,1l6,6M8,1l-6,6M9,9v8M6,10l3,3l-3,3M0,9v8M3,10l-3,3l3,3",ee="none";break;case 3012:b=10,P=20,Z="M5,1A4,4,0,0,0,5,9A4,4,0,0,0,5,1M0,11A4,4,0,0,1,0,19M10,11A4,4,0,0,0,10,19",ee="none";break;case 3013:b=P=7,Z="M0,0L7,7M7,0L0,7",ee="none";break;case 3014:b=P=16,Z="M0,0h16v16h-16v-16M0,12h16M12,0v16M4,0v8M4,4h8M0,8h8M8,4v8",ee="none";break;case 3015:b=6,P=12,Z="M2,1A2,2,0,0,0,2,5A2,2,0,0,0,2,1M0,7A2,2,0,0,1,0,11M6,7A2,2,0,0,0,6,11",ee="none";break;case 3016:b=12,P=7,Z="M0,1A3,2,0,0,1,3,3A3,2,0,0,0,9,3A3,2,0,0,1,12,1",ee="none";break;case 3017:b=P=4,Z="M3,1l-2,2";break;case 3018:b=P=4,Z="M1,1l2,2";break;case 3019:b=P=12,Z="M1,6A5,5,0,0,0,11,6A5,5,0,0,0,1,6h-1h1A5,5,0,0,1,6,11v1v-1A5,5,0,0,1,11,6h1h-1A5,5,0,0,1,6,1v-1v1A5,5,0,0,1,1,6",ee="none";break;case 3020:b=7,P=12,Z="M1,0A2,3,0,0,0,3,3A2,3,0,0,1,3,9A2,3,0,0,0,1,12",ee="none";break;case 3021:b=P=8,Z="M8,2h-2v4h-4v2M2,0v2h-2",ee="none";break;case 3022:b=P=8,Z="M0,2h2v4h4v2M6,0v2h2",ee="none";break;case 3023:b=P=8,ue="M4,0h4v4zM8,4v4h-4z",V="M4,0L0,4L4,8L8,4Z";break;case 3024:b=P=16,ue="M0,8v8h2v-8zM8,0v8h2v-8M4,14v2h12v-2z",V="M0,2h8v6h4v-6h4v12h-12v-6h-4z";break;case 3025:b=P=18,ue="M5,13v-8h8ZM18,0v18h-18l5,-5h8v-8Z";break;default:{if(this.pattern>3025&&this.pattern<3100){b=4,P=2,ue="M1,0h1v1h-1zM3,1h1v1h-1z";break}const z=this.pattern%1e3,W=z%10,fe=(z-W)%100/10,we=(z-10*fe-W)/100;if(!we)break;const Me=fe===W||0===fe||5===fe||9===fe||0===W||5===W||9===W,je=I?.getPadPainter(),Ge=je?Math.max(je.getPadWidth(),je.getPadHeight()):600,lt=Math.max(.1,L.gStyle.fHatchesSpacing*Ge*.001),bt=6*Math.max(1,Math.round(lt)),te=we*bt;k+=Me?`_hn${Math.round(100*lt)}`:`_ho${bt}`,b=P=6*te;const Fe=Me?(St,pt,st,vt)=>{if(0===st||90===st){const Cn=Math.round(P/(we*lt*3)),yn=P/Cn;let Sn=yn/2;for(;Sn0;){let $n=0,Cn=Dn,yn=b,Sn=Dn+Ot;Cn<-1e-5?($n=-Cn/Ot*b,Cn=0):Sn>P&&(yn=(P-Cn)/Ot*b,Sn=P),vt&&($n=b-$n,yn=b-yn),Z+=`M${Math.round($n)},${Math.round(Cn)}L${Math.round(yn)},${Math.round(Sn)}`,Dn-=Mn}}:(St,pt)=>{const st=[];let Ot,Bn,Mn,vt=te,Yt=0,qt=P;for(Math.abs(St)<3&&(vt=Math.round(te/12*9)),0===St?(vt=Math.round(te/12*8),Yt=vt/2):St>0?qt-=vt:Yt=vt;Yt<=qt;)Ot=Yt+St*vt,Ot<0?(Mn=Math.round(Yt/(Yt-Ot)*b),st.push(0,Yt,Mn,0),st.push(b,P-Yt,b-Mn,P)):Ot>P?(Mn=Math.round((P-Yt)/(Ot-Yt)*b),st.push(0,Yt,Mn,P),st.push(b,P-Yt,b-Mn,0)):st.push(0,Yt,b,Ot),Yt+=vt;for(let bn=0;bnwe===Math.round(we)?we.toFixed(0):we.toFixed(2);z?W.attr("x1",fe(this.gradient.fStart.fX)).attr("y1",fe(1-this.gradient.fStart.fY)).attr("x2",fe(this.gradient.fEnd.fX)).attr("y2",fe(1-this.gradient.fEnd.fY)):W.attr("cx",fe(this.gradient.fStart.fX)).attr("cy",fe(1-this.gradient.fStart.fY)).attr("cr",fe(this.gradient.fR1));for(let we=0;we=0&&(L.gStyle[_]=p)}v&&(L.gStyle[v]=this.pattern)}}var Re=Se(4082);class He{constructor(_){this.used=!0,_._typename&&void 0!==_.fTextFont&&(_={attr:_}),this.setArgs(_)}setArgs(_){_.attr?(_.font=_.attr.fTextFont||_.attr_alt?.fTextFont||0,_.size=_.attr.fTextSize||_.attr_alt?.fTextSize||0,this.color_index=_.attr.fTextColor||_.attr_alt?.fTextColor||0,_.color=_.painter?.getColor(this.color_index)??(0,Ye.oU)(this.color_index),_.align=_.attr.fTextAlign||_.attr_alt?.fTextAlign||0,_.angle=_.attr.fTextAngle||_.attr_alt?.fTextAngle||0):"number"==typeof _.color&&(this.color_index=_.color,_.color=_.painter?.getColor(_.color)??(0,Ye.oU)(_.color)),this.font=_.font,this.size=_.size,this.color=_.color,this.align=_.align,this.angle=_.angle,this.angle_used=!1,this.align_used=!1}empty(){return"none"===this.color}change(_,v,p,C,I){void 0!==_&&(this.font=_),void 0!==v&&(this.size=v),void 0!==p&&(this.color!==p&&delete this.color_index,this.color=p),void 0!==C&&(this.align=C),void 0!==I&&(this.angle=I),this.changed=!0}verifyDirectChange(){this.change(parseInt(this.font),parseFloat(this.size),this.color,parseInt(this.align),parseInt(this.angle))}createArg(_){return _||(_={}),this.align_used=!_.noalign&&!_.align,this.align_used&&(_.align=this.align),this.angle_used=!_.norotate,this.angle_used&&this.angle&&(_.rotate=-this.angle),_.color=this.color||"black",_}getSize(_,v,p,C){return this.size>=1?Math.round(this.size):(_||(_=1e3),v||(v=_),p||(p=1),Math.round((this.size||C||0)*Math.min(_,v)*p))}getAltSize(_,v){return _||(_=this.size),Math.round(_>=1?_:_*v)}getGedFont(){return Math.floor(this.font/10)}setGedFont(_){const v=parseInt(_);return v>0&&v<17&&this.change(10*v+this.font%10),this.font}}var Ve=Se(4246);class De extends ke.b8{constructor(_,v,p){super(_),this.pad_name=_?this.selectCurrentPad():"",this.assignObject(v),(0,L.isStr)(p)&&(this.options={original:p})}assignObject(_){(0,L.isObject)(_)?this.draw_object=_:delete this.draw_object}setPadName(_){this.pad_name=(0,L.isStr)(_)?_:this.selectCurrentPad()}getPadName(){return this.pad_name||""}isBatchMode(){return!!(0,L.isBatchMode)()||(this.getCanvPainter()?.isBatchMode()??!1)}assignSnapId(_){this.snapid=_}cleanup(){this.removeG();let _=!0;if(this.isMainPainter()){const v=this.getPadPainter();(!v||!1===v.normal_canvas)&&(_=!1)}delete this.pad_name,delete this._main_painter,this.draw_object=null,delete this.snapid,delete this.fillatt,delete this.lineatt,delete this.markeratt,delete this.bins,delete this.root_colors,delete this.options,delete this.options_store,delete this.rstyle,delete this.csstype,super.cleanup(_)}getObject(){return this.draw_object}getObjectName(){return this.getObject()?.fName??""}getClassName(){return this.getObject()?._typename??""}matchObjectType(_){const v=this.getClassName();return!(!_||!v)&&((0,L.isStr)(_)?_===v:(0,L.isStr)(_._typename)?_._typename===v:v.match(_))}setItemName(_,v,p){if(super.setItemName(_,v,p),this.no_default_title||!_)return;const C=this.getCanvSvg();C.empty()?this.selectDom().attr("title",_):C.select("title").text(_);const I=this.getCanvPainter();I&&(I===this||this.isMainPainter()&&I===this.getPadPainter())&&I.drawItemNameOnCanvas(_)}storeDrawOpt(_){if(!this.options)return;_||(_="");const v=_.indexOf(";;");v>=0&&(_=_.slice(0,v)),this.options.original=_,this.options_store=Object.assign({},this.options)}getDrawOpt(_){if(!this.options)return"";if((0,L.isFunc)(this.options.asString)){let v=!1;const p=this.getPadPainter();if(!this.options_store||p?._interactively_changed)v=!0;else for(const C in this.options)this.options[C]!==this.options_store[C]&&(v=!0);if(v&&(0,L.isFunc)(this.options.asString))return this.options.asString(this.isMainPainter(),_?null:p?.getRootPad())}return this.options.original||""}getSupportedDrawOptions(){const _=this.getPadPainter(),v=this.getClassName();return v&&(0,L.isFunc)(_?.getObjectDrawSettings)?_.getObjectDrawSettings(L.prROOT+v,"nosame")?.opts:[]}redrawObject(_,v){if(!this.updateObject(_,v))return!1;const p=(0,L.getDocument)(),C=p.body.style.cursor;document.body.style.cursor="wait";const I=this.redrawPad();return p.body.style.cursor=C,I}updateObject(_){return!!this.matchObjectType(_)&&(Object.assign(this.getObject(),_),!0)}getObjectHint(){const _=this.getItemName();return _?_.length>20?"..."+_.slice(_.length-17):_:this.getObjectName()||this.getClassName()||""}getColor(_){return this.root_colors||(this.root_colors=this.getCanvPainter()?.root_colors||(0,Ye.HG)()),this.root_colors[_]}addColor(_){this.root_colors||(this.root_colors=this.getCanvPainter()?.root_colors||(0,Ye.HG)());const v=this.root_colors.indexOf(_);return v>=0?v:(this.root_colors.push(_),this.root_colors.length-1)}isTooltipAllowed(){return(this.getCanvPainter()||this).tooltip_allowed}setTooltipAllowed(_){void 0===_&&(_=!0);const v=this.getCanvPainter()||this;v.tooltip_allowed="toggle"===_?!v.tooltip_allowed:_}checkResize(_){return this.getCanvPainter()?.checkCanvasResize(_)}removeG(){this.draw_g?.remove(),delete this.draw_g}getG(){return this.draw_g}createG(_){let v;if(_){const I=this.getFrameSvg();if(I.empty())return console.error("Not found frame to create g element inside"),I;(0,L.isStr)(_)||(_="main_layer"),v=I.selectChild("."+_)}else v=this.getLayerSvg("primitives_layer");this.draw_g&&this.draw_g.node().parentNode!==v.node()&&(console.log("g element changes its layer!!"),this.removeG()),this.draw_g?this.draw_g.selectAll("*").remove():(this.draw_g=v.append("svg:g"),_||v.selectChildren(".most_upper_primitives").raise());const p=this.getClassName(),C=this.getObjectName();return(C||p)&&this.draw_g.attr("objname",(C||"name").replace(/[^\w]/g,"_")).attr("objtype",(p||"type").replace(/[^\w]/g,"_")),this.draw_g.property("in_frame",!!_),this.draw_g}bringToFront(_){if(!this.draw_g||(this.draw_g.node().parentNode?.appendChild(this.draw_g.node()),!_||!this.snapid))return;const p=this.getPadPainter();p?.snapid&&this.getCanvPainter()?.sendWebsocket("POPOBJ:"+JSON.stringify([p.snapid.toString(),this.snapid.toString()]))}getCanvSvg(){return this.selectDom().select(".root_canvas")}getPadSvg(_){void 0===_&&(_=this.pad_name);let v=this.getCanvSvg();if(!_||v.empty())return v;const p=v.property("pad_painter");return p?.pads_cache&&p.pads_cache[_]?(0,x.Lt)(p.pads_cache[_]):(v=v.select(".primitives_layer .__root_pad_"+_),p&&(p.pads_cache||(p.pads_cache={}),p.pads_cache[_]=v.node()),v)}getUniqueId(_=!1){return!_&&void 0===this._unique_painter_id&&(this._unique_painter_id=L.internals.id_counter++),this._unique_painter_id}setSecondaryId(_,v){this._main_painter_id=_.getUniqueId(),this._secondary_id=v}isSecondary(_){return void 0!==this._main_painter_id&&(!(0,L.isObject)(_)||this._main_painter_id===_.getUniqueId(!0))}getSnapId(_){return this.snapid?this.snapid.toString()+(_?"#"+_:""):""}getLayerSvg(_,v){let p=this.getPadSvg(v);return p.empty()?p:(0===_.indexOf("prim#")&&(p=p.selectChild(".primitives_layer"),_=_.slice(5)),p.selectChild("."+_))}selectCurrentPad(_){const v=this.getCanvSvg();if(v.empty())return"";const p=v.property("current_pad");return void 0!==_&&v.property("current_pad",_),p}getPadPainter(_){const v=this.getPadSvg((0,L.isStr)(_)?_:void 0);return v.empty()?null:v.property("pad_painter")}getCanvPainter(){const _=this.getCanvSvg();return _.empty()?null:_.property("pad_painter")}getAxisToSvgFunc(_,v){const p={isndc:_,nornd:v},C=this.draw_g?.property("in_frame");if(C&&(p.main=this.getFramePainter()),p.main?.grx&&p.main?.gry)v?(p.x=function(I){return this.main.grx(I)},p.y=function(I){return this.main.gry(I)}):(p.x=function(I){return Math.round(this.main.grx(I))},p.y=function(I){return Math.round(this.main.gry(I))});else if(C)console.error(`Problem to create functor for ${this.getClassName()}`),p.x=()=>0,p.y=()=>0;else{const I=this.getPadPainter();_||(p.pad=I?.getRootPad(!0)),p.padw=I?.getPadWidth()??10,p.x=function(U){return this.pad&&(this.pad.fLogx&&(U=U>0?Math.log10(U):this.pad.fUxmin),U=(U-this.pad.fX1)/(this.pad.fX2-this.pad.fX1)),U*=this.padw,this.nornd?U:Math.round(U)},p.padh=I?.getPadHeight()??10,p.y=function(U){return this.pad&&(this.pad.fLogy&&(U=U>0?Math.log10(U):this.pad.fUymin),U=(U-this.pad.fY1)/(this.pad.fY2-this.pad.fY1)),U=(1-U)*this.padh,this.nornd?U:Math.round(U)}}return p}axisToSvg(_,v,p,C){return this.getAxisToSvgFunc(p,C)[_](v)}svgToAxis(_,v,p){if(this.draw_g?.property("in_frame"))return this.getFramePainter()?.revertAxis(_,v)??0;const I=this.getPadPainter(),U=p||!I?null:I.getRootPad(!0);let k=I?"y"===_?1-v/I.getPadHeight():v/I.getPadWidth():0;return U&&("y"===_?(k=U.fY1+k*(U.fY2-U.fY1),U.fLogy&&(k=Math.pow(10,k))):(k=U.fX1+k*(U.fX2-U.fX1),U.fLogx&&(k=Math.pow(10,k)))),k}getFrameSvg(_){const v=this.getLayerSvg("primitives_layer",_);if(v.empty())return v;let p=v.node().firstChild;for(;p;){const C=(0,x.Lt)(p);if(C.classed("root_frame"))return C;p=p.nextSibling}return(0,x.Lt)(null)}getFramePainter(){return this.getPadPainter()?.getFramePainter()}getMainPainter(_){let v=this._main_painter;if(!v){const p=this.getPadPainter();v=p?p.getMainPainter():this.getTopPainter(),v||(v=null),_||(this._main_painter=v)}return v}isMainPainter(){return this===this.getMainPainter()}setAsMainPainter(_){const v=this.getPadPainter();v?v.setMainPainter(this,_):this.setTopPainter()}addToPadPrimitives(_){void 0!==_&&this.setPadName(_);const v=this.getPadPainter(_);return!(!v||v===this||(v.painters.indexOf(this)<0&&v.painters.push(this),!this.rstyle&&v.next_rstyle&&(this.rstyle=v.next_rstyle),0))}removeFromPadPrimitives(){const _=this.getPadPainter();if(!_||_===this)return!1;const v=_.painters.indexOf(this);return v>=0&&_.painters.splice(v,1),!0}createAttMarker(_){(0,L.isObject)(_)?void 0!==_.fMarkerColor&&void 0!==_.fMarkerStyle&&void 0!==_.fMarkerSize&&(_={attr:_,std:!1}):_={std:!0},void 0===_.std&&(_.std=!0),void 0===_.painter&&(_.painter=this);let v=_.std?this.markeratt:null;return v?(!v.changed||_.force)&&v.setArgs(_):v=new ot.e(_),_.std&&(this.markeratt=v),v}createAttLine(_){(0,L.isObject)(_)?void 0!==_.fLineColor&&void 0!==_.fLineStyle&&void 0!==_.fLineWidth&&(_={attr:_,std:!1}):_={std:!0},void 0===_.std&&(_.std=!0),void 0===_.painter&&(_.painter=this);let v=_.std?this.lineatt:null;return v?(!v.changed||_.force)&&v.setArgs(_):v=new Re.gx(_),_.std&&(this.lineatt=v),v}createAttText(_){(0,L.isObject)(_)?void 0!==_.fTextFont&&void 0!==_.fTextSize&&void 0!==_.fTextColor&&(_={attr:_,std:!1}):_={std:!0},void 0===_.std&&(_.std=!0),void 0===_.painter&&(_.painter=this);let v=_.std?this.textatt:null;return v?(!v.changed||_.force)&&v.setArgs(_):v=new He(_),_.std&&(this.textatt=v),v}createAttFill(_){(0,L.isObject)(_)?_._typename&&void 0!==_.fFillColor&&void 0!==_.fFillStyle&&(_={attr:_,std:!1}):_={std:!0},void 0===_.std&&(_.std=!0);let v=_.std?this.fillatt:null;return _.svg||(_.svg=this.getCanvSvg()),void 0===_.painter&&(_.painter=this),v?(!v.changed||_.force)&&v.setArgs(_):v=new Ze(_),_.std&&(this.fillatt=v),v}forEachPainter(_,v){const p=this.getPadPainter();if(p)p.forEachPainterInPad(_,v);else{const C=this.getTopPainter();C&&"pads"!==v&&_(C)}}interactiveRedraw(_,v,p){var C=this;return(0,Te.A)(function*(){let I,U;return(0,L.isStr)(v)&&0!==v.indexOf("exec:")&&(I=v),"pad"===_?U=C.redrawPad(I):!1!==_&&(U=C.redraw(I)),(0,L.getPromise)(U).then(()=>{const k=C.getCanvPainter();return(0,L.isFunc)(k?.producePadEvent)&&k.producePadEvent("redraw",C.getPadPainter(),C,null,p),(0,L.isFunc)(k?.processChanges)&&k.processChanges(v,C,p),C})})()}redrawPad(_){var v=this;return(0,Te.A)(function*(){return v.getPadPainter()?.redrawPad(_)??!1})()}executeMenuCommand(_){return"Inspect"===_.fName&&this.showInspector()}submitCanvExec(_,v){if(!_||!(0,L.isStr)(_))return;const p=this.getCanvPainter();(0,L.isFunc)(p?.submitExec)&&p.submitExec(this,_,v)}deleteAttr(){delete this.lineatt,delete this.fillatt,delete this.markeratt}showInspector(){return!1}fillContextMenu(_){const v=this.getObjectName();let p=this.getClassName();const C=p.lastIndexOf("::");C>0&&(p=p.slice(C+2)),_.add(`header:${p&&v?`${p}:${v}`:p||v||"object"}`);const U=_.size();return(0,L.isFunc)(this.fillContextMenuItems)&&this.fillContextMenuItems(_),_.size()>U&&this.showInspector("check")&&_.add("Inspect",this.showInspector),_.addAttributesMenu(this),_.size()>U}showObjectStatus(_,v,p,C){let I=this.getCanvPainter();if(I&&!(0,L.isFunc)(I.showCanvasStatus)&&(I=null),!I&&!(0,L.isFunc)(L.internals.showStatus)||"on"===this.enlargeMain("state"))return!1;if(void 0===_&&void 0===v){const U=this.getObject();if(!U)return;_=this.getItemName()||U.fName,v=U.fTitle||U._typename,p=U._typename}I?I.showCanvasStatus(_,v,p,C):L.internals.showStatus(_,v,p,C)}redraw(){}startTextDrawing(_,v,p,C){if(p||(p=this.draw_g),!p||p.empty())return;const I="font"===v?_:new Ve.qg(_,v);I.setPainter(this),p.call(I.func),p.property("draw_text_completed",!1).property("all_args",[]).property("text_font",I).property("text_factor",0).property("max_text_width",0).property("max_font_size",C).property("_fast_drawing",this.getPadPainter()?._fast_drawing??!1),p.property("_fast_drawing")&&p.property("_font_too_small",C&&C<5||I.size<4)}scaleTextDrawing(_,v){v||(v=this.draw_g),v&&!v.empty()&&_&&_>v.property("text_factor")&&v.property("text_factor",_)}_checkAllTextDrawing(_,v,p){let C=_.property("all_args"),I=0;if(C||(console.log("Text drawing is finished - why calling _checkAllTextDrawing?????"),C=[]),C.forEach(P=>{P.ready||I++}),I>0)return void((0,L.isFunc)(v)&&(_.node().textResolveFunc=v,_.node().try_optimize=p));_.property("all_args",null);const U=_.property("text_factor"),k=_.property("text_font"),Z=_.property("max_font_size");let ee=k.size,ue=!1,V=!0;U>0&&(U<.9||U>1)&&(k.size=Math.max(1,Math.floor(k.size/U))),Z&&k.size>Z&&(k.size=Z),k.size!==ee&&(_.call(k.func),ee=k.size),C.forEach(P=>{if(P.mj_node&&P.applyAttributesToMathJax){const T=P.mj_node.select("svg");P.applyAttributesToMathJax(this,P.mj_node,T,P,ee,U),delete P.mj_node,V=!1}else P.txt_g&&(V=!1)}),v||(v=_.node().textResolveFunc,p=_.node().try_optimize,delete _.node().textResolveFunc,delete _.node().try_optimize);const b=p&&V?[]:null;C.forEach(P=>{let T,z,W=1;if(P.txt_node)T=P.txt_node,delete P.txt_node,z=!0,null!==b&&b.push(T);else{if(!P.txt_g)return;T=P.txt_g,delete P.txt_g,z=!1}T.attr("visibility",null),ue=!0,P.width&&("middle"===P.align[0]?P.x+=P.width/2:"end"===P.align[0]&&(P.x+=P.width)),P.height&&(0===P.align[1].indexOf("bottom")?P.y+=P.height:"middle"===P.align[1]&&(P.y+=P.height/2));let fe=0,we=0;if(z)(0,L.isNodeJs)()?P.scale&&U>0&&(P.box.width*=1/U,P.box.height*=1/U):!P.plain&&!P.fast&&(P.box=(0,ke.xh)(T,"bbox")),P.plain?(T.attr("text-anchor",P.align[0]),"top"===P.align[1]?T.attr("dy",".8em"):"middle"===P.align[1]&&((0,L.isNodeJs)()?T.attr("dy",".4em"):T.attr("dominant-baseline","middle"))):(T.attr("text-anchor","start"),fe=("middle"===P.align[0]?-.5:"end"===P.align[0]?-1:0)*P.box.width,we=("top"===P.align[1]?P.top_shift||1:"middle"===P.align[1]?P.mid_shift||.5:0)*P.box.height);else if(P.text_rect){const lt=P.text_rect;W=U>0&&Math.abs(1-U)>.01?1/U:1,fe=("middle"===P.align[0]?-.5:"end"===P.align[0]?-1:0)*lt.width*W,"top"===P.align[1]?we=-lt.y1*W:"bottom"===P.align[1]?we=-lt.y2*W:"middle"===P.align[1]&&(we=-.5*(lt.y1+lt.y2)*W)}else console.error("text rect not calcualted - please check code");P.rotate||(P.x+=fe,P.y+=we,fe=we=0);let Me=(0,ke.bk)(Math.round(P.x),Math.round(P.y))||"";const je=(0,ke.bk)(Math.round(fe),Math.round(we)),Ge=lt=>{Me&&(Me+=" "),Me+=lt};P.rotate&&Ge(`rotate(${Math.round(P.rotate)})`),1!==W&&Ge(`scale(${W.toFixed(3)})`),je&&Ge(je),Me&&T.attr("transform",Me)}),ue||k.clearFont(_),null!==b&&b.length>1&&["fill","text-anchor"].forEach(P=>{let T=b[0].attr(P);b.forEach(z=>{const W=z.attr(P);(!W||W!==T)&&(T=void 0)}),T&&(_.attr(P,T),b.forEach(z=>{z.attr(P,null)}))}),v&&v(this)}_postprocessDrawText(_,v){return _.box=(0,L.isNodeJs)()||L.settings.ApproxTextSize||_.fast?_.text_rect||{height:1.2*_.font_size,width:_.text.length*_.font_size*_.font.aver_width}:(0,ke.xh)(v,"bbox"),v.attr("visibility","hidden"),_.box.width>_.draw_g.property("max_text_width")&&_.draw_g.property("max_text_width",_.box.width),_.scale&&this.scaleTextDrawing(Math.max(1.05*_.box.width/_.width,_.box.height/_.height),_.draw_g),_.result_width=_.box.width,_.result_height=_.box.height,(0,L.isFunc)(_.post_process)&&_.post_process(this),_.box.width}drawText(_){if(_.text||(_.text=""),_.draw_g=_.draw_g||this.draw_g,!_.draw_g||_.draw_g.empty())return;const v=_.draw_g.property("text_font");_.font=v,v&&(v.color&&!_.color&&(_.color=v.color),v.align&&!_.align&&(_.align=v.align),v.angle&&!_.rotate&&(_.rotate=v.angle));let p=["start","middle"];if((0,L.isStr)(_.align)?(p=_.align.split(";"),1===p.length&&p.push("middle")):"number"==typeof _.align?(_.align/10>=3?p[0]="end":_.align/10>=2&&(p[0]="middle"),_.align%10==0?p[1]="bottom":_.align%10==1?p[1]="bottom-base":_.align%10==3&&(p[1]="top")):(0,L.isObject)(_.align)&&2===_.align.length&&(p=_.align),void 0===_.latex&&(_.latex=1),_.align=p,_.x=_.x||0,_.y=_.y||0,!1!==_.scale&&(_.scale=_.width&&_.height&&!_.font_size),_.width=_.width||0,_.height=_.height||0,_.draw_g.property("_fast_drawing"))if(_.scale){if(_.height<4)return 0}else if(_.font_size){if(_.font_size<4)return 0}else if(_.draw_g.property("_font_too_small"))return 0;_.draw_g.property("all_args").push(_),_.ready=!1;let C=2===_.latex;const I=L.constants.Latex;return 1===_.latex&&(C=L.settings.Latex===I.AlwaysMathJax||L.settings.Latex===I.MathJax&&_.text.match(/[#{\\]/g)||_.text.match(/[\\]/g)),!C||_.nomathjax?(_.txt_node=_.draw_g.append("svg:text"),_.color&&_.txt_node.attr("fill",_.color),_.font_size?_.txt_node.attr("font-size",_.font_size):_.font_size=v.size,_.plain=!_.latex||L.settings.Latex===I.Off||L.settings.Latex===I.Symbols,_.simple_latex=_.latex&&L.settings.Latex===I.Symbols,!_.plain||_.simple_latex||_.font&&_.font.isSymbol?(_.simple_latex||(0,ve.KA)(_.text)||_.plain?(_.simple_latex=!0,(0,ve.eN)(this,_.txt_node,_)):(_.txt_node.remove(),delete _.txt_node,_.txt_g=_.draw_g.append("svg:g"),(0,ve.Bm)(this,_.txt_g,_)),_.ready=!0,this._postprocessDrawText(_,_.txt_g||_.txt_node),_.draw_g.property("draw_text_completed")&&this._checkAllTextDrawing(_.draw_g),0):(_.plain=!0,_.txt_node.text(_.text),_.ready=!0,this._postprocessDrawText(_,_.txt_node))):(_.mj_node=_.draw_g.append("svg:g").attr("visibility","hidden"),(0,ve._o)(this,_.mj_node,_).then(()=>{_.ready=!0,_.draw_g.property("draw_text_completed")&&this._checkAllTextDrawing(_.draw_g)}),0)}finishTextDrawing(_,v){var p=this;return(0,Te.A)(function*(){return _||(_=p.draw_g),!(!_||_.empty())&&(_.property("draw_text_completed",!0),new Promise(C=>{p._checkAllTextDrawing(_,C,v)}))})()}configureUserContextMenu(_){_&&(0,L.isFunc)(_)?this._userContextMenuFunc=_:delete this._userContextMenuFunc}fillObjectExecMenu(_,v){var p=this;return(0,Te.A)(function*(){if((0,L.isFunc)(p._userContextMenuFunc))return p._userContextMenuFunc(_,v);const C=p.getCanvPainter();if(!p.snapid||!C||C?._readonly||!C?._websocket)return _;function I(Z){const ee=_.exec_painter||this,ue=ee.getCanvPainter(),V=_.exec_items[parseInt(Z)];if(V?.fName){if("Show:Editor"===V.fExec)return void((0,L.isFunc)(ue?.activateGed)&&ue.activateGed(ee));if((!(0,L.isFunc)(ue?.executeObjectMethod)||!ue.executeObjectMethod(ee,V,V.$execid))&&(V.fClassName=ee.getClassName(),(V.$execid.indexOf("#x")>0||V.$execid.indexOf("#y")>0||V.$execid.indexOf("#z")>0)&&(V.fClassName=L.clTAxis),!ee.executeMenuCommand(V)&&V.$execid)){if(!V.fArgs)return ue?.v7canvas?ue.submitExec(ee,V.fExec,v):ee.submitCanvExec(V.fExec,V.$execid);_.showMethodArgsDialog(V).then(b=>{if(!b||ee.executeMenuCommand(V,b))return;const P=V.fExec.slice(0,V.fExec.length-1)+b+")";ue?.v7canvas?ue.submitExec(ee,P,v):ue?.sendWebsocket(`OBJEXEC:${V.$execid}:${P}`)})}}}const U=(Z,ee,ue,V)=>{if(!_._got_menu){if(_._got_menu=!0,V&&ee!==V.fId&&console.error(`missmatch between request ${ee} and reply ${V.fId} identifiers`),_.exec_items=V?.fItems,_.exec_items?.length){let b;Z.size()>0&&Z.add("separator");for(let P=0;P<_.exec_items.length;++P){const T=_.exec_items[P];if(T.$execid=V.fId,T.$menu=_,T.fClassName&&b&&b!==T.fClassName&&(Z.add("endsub:"),b=""),b!==T.fClassName){b=T.fClassName;const z=b.lastIndexOf("::"),W=z>0?b.slice(z+2):b;Z.add("sub:"+W.replace(/[<>]/g,"_"))}void 0===T.fChecked||T.fChecked<0?Z.add(T.fName,P,I):Z.addchk(T.fChecked,T.fName,P,I)}b&&Z.add("endsub:")}ue(Z)}},k=p.getSnapId(v);return _._got_menu=!1,_.painter&&(_.exec_painter=_.painter!==p?p:void 0),new Promise(Z=>{let ee=!1;function ue(V){ee||(ee=!0,Z(V))}setTimeout(()=>U(_,k,ue),2e3),C.submitMenuRequest(p,v,k).then(V=>U(_,k,ue,V))})})()}configureUserTooltipHandler(_,v){_&&(0,L.isFunc)(_)?(this._user_tooltip_handler=_,this._user_tooltip_timeout=v||100):(delete this._user_tooltip_handler,delete this._user_tooltip_timeout)}configureUserClickHandler(_){const v=this.getFramePainter();(0,L.isFunc)(v?.configureUserClickHandler)&&v.configureUserClickHandler(_)}configureUserDblclickHandler(_){const v=this.getFramePainter();(0,L.isFunc)(v?.configureUserDblclickHandler)&&v.configureUserDblclickHandler(_)}hasUserTooltip(){return(0,L.isFunc)(this._user_tooltip_handler)}provideUserTooltip(_){if(this.hasUserTooltip()){if(this._user_tooltip_timeout<=0)return this._user_tooltip_handler(_);if(this._user_tooltip_handle&&(clearTimeout(this._user_tooltip_handle),delete this._user_tooltip_handle),!_)return this._user_tooltip_handler(_);this._user_tooltip_handle=setTimeout(()=>{delete this._user_tooltip_handle,this._user_tooltip_handler&&this._user_tooltip_handler(_)},this._user_tooltip_timeout)}}provideSpecialDrawArea(_){var v=this;return(0,Te.A)(function*(){return _===v._special_draw_area||v.getCanvPainter().toggleProjection(_).then(()=>(v._special_draw_area=_,!0))})()}drawInSpecialArea(_,v,p){var C=this;return(0,Te.A)(function*(){const I=C.getCanvPainter();return!(!C._special_draw_area||!(0,L.isFunc)(I?.drawProjection))&&I.drawProjection(p||C._special_draw_area,_,v)})()}getToolTip(_){if(void 0===_?.clientX||void 0===_?.clientY)return null;const v=this.getFrameSvg();if(v.empty())return null;const p=v.selectChild(".main_layer");if(p.empty())return null;const C=(0,x.Wn)(_,p.node()),I={touch:!1,x:C[0],y:C[1]};if((0,L.isFunc)(this.extractToolTip))return this.extractToolTip(I);I.disabled=!0;const U=(0,L.isFunc)(this.processTooltipEvent)?this.processTooltipEvent(I):null;return U?.user_info||U}}function F(E,_){const v=new ke.b8(E);return v.txt=_,v.redrawObject=function(p){return this.txt=p,this.drawText(),!0},v.drawText=(0,Te.A)(function*(){let p=this.txt._typename===L.clTObjString?this.txt.fString:this.txt.value;(0,L.isStr)(p)||(p="");const C=this.txt.mathjax||L.settings.Latex===L.constants.Latex.AlwaysMathJax;if(!C&&!("as_is"in this.txt)){const k=p.split("\n");p="";for(let Z=0;Z${k[Z]}`}const I=this.selectDom();let U=I.select("div");return U.empty()&&(U=I.append("div").attr("style","max-width:100%;max-height:100%;overflow:auto")),U.html(p),this.setTopPainter(),C&&(0,ve.s7)(I.node()),this}),v.drawText()}function J(E){return new De(E).getCanvPainter()}function Y(E){return new De(E).getMainPainter(!0)}let Q=null;function me(E){E.active?(Q?.getFramePainter()?.setFrameActive(!1),Q=E.pp,Q?.getFramePainter()?.setFrameActive(!0)):Q===E.pp&&(Q=null)}function X(){return Q}function B(E,_){!0===_?_={force:!0}:(0,L.isObject)(_)||(_=null);let v=!1;return new De(E).forEachPainter(p=>{!v&&(0,L.isFunc)(p.checkResize)&&(v=p.checkResize(_))}),v}function $(E){const _=new De(E),v=[];return _.forEachPainter(p=>{v.indexOf(p)<0&&v.push(p)}),v.forEach(p=>p.cleanup()),_.selectDom().html(""),v}const g={kDecimals:(0,L.BIT)(7),kTickPlus:(0,L.BIT)(9),kTickMinus:(0,L.BIT)(10),kAxisRange:(0,L.BIT)(11),kCenterTitle:(0,L.BIT)(12),kCenterLabels:(0,L.BIT)(14),kRotateTitle:(0,L.BIT)(15),kPalette:(0,L.BIT)(16),kNoExponent:(0,L.BIT)(17),kLabelsHori:(0,L.BIT)(18),kLabelsVert:(0,L.BIT)(19),kLabelsDown:(0,L.BIT)(20),kLabelsUp:(0,L.BIT)(21),kIsInteger:(0,L.BIT)(22),kMoreLogLabels:(0,L.BIT)(23),kOppositeTitle:(0,L.BIT)(32)}},4082:(Yr,mt,Se)=>{"use strict";Se.d(mt,{Ov:()=>ot,gx:()=>ke});var Te=Se(8362),x=Se(8872),L=Se(2985);const ve=["","","3,3","1,2","3,4,1,4","5,3,1,3","5,3,1,3,1,3,1,3","5,5","5,3,1,3,1,3","20,5","20,10,1,10","1,3"];class ke{constructor(Ze){this.func=this.apply.bind(this),this.used=!0,Ze._typename&&void 0!==Ze.fLineStyle&&(Ze={attr:Ze}),this.setArgs(Ze)}setArgs(Ze){Ze.attr?(this.color_index=Ze.attr.fLineColor,Ze.color=Ze.color0||(Ze.painter?.getColor(this.color_index)??(0,L.oU)(this.color_index)),void 0===Ze.width&&(Ze.width=Ze.attr.fLineWidth),void 0===Ze.style&&(Ze.style=Ze.attr.fLineStyle)):(0,x.isStr)(Ze.color)?"none"!==Ze.color&&!Ze.width&&(Ze.width=1):"number"==typeof Ze.color&&(this.color_index=Ze.color,Ze.color=Ze.painter?.getColor(Ze.color)??(0,L.oU)(Ze.color)),void 0===Ze.width&&(Ze.width=Ze.color&&"none"!==Ze.color?1:0),this.color=0===Ze.width?"none":Ze.color,this.width=Ze.width,this.style=Ze.style,this.pattern=Ze.pattern||ve[this.style]||null,Ze.can_excl&&(this.excl_side=this.excl_width=0,Math.abs(this.width)>99&&(this.excl_side=this.width<0?-1:1,this.excl_width=5*Math.floor(this.width/100),this.width=Math.abs(this.width%100))),!this.color&&this.width>0&&(this.color="lightgrey")}changeExcl(Ze,Re){void 0!==Re&&(this.excl_width=Re),void 0!==Ze&&(this.excl_side=Ze,0===this.excl_width&&0!==this.excl_side&&(this.excl_width=20)),this.changed=!0}empty(){return"none"===this.color}setUsed(Ze){this.used=Ze}setBorder(Ze,Re){this.rx=Ze,this.ry=Re,this.func=this.applyBorder.bind(this)}apply(Ze){this.used=!0,this.empty()?Ze.style("stroke",null).style("stroke-width",null).style("stroke-dasharray",null):Ze.style("stroke",this.color).style("stroke-width",this.width).style("stroke-dasharray",this.pattern)}applyBorder(Ze){this.used=!0,this.empty()?Ze.style("stroke",null).style("stroke-width",null).style("stroke-dasharray",null).attr("rx",null).attr("ry",null):Ze.style("stroke",this.color).style("stroke-width",this.width).style("stroke-dasharray",this.pattern).attr("rx",this.rx||null).attr("ry",this.ry||null)}change(Ze,Re,He){void 0!==Ze&&(this.color!==Ze&&delete this.color_index,this.color=Ze),void 0!==Re&&(this.width=Re),void 0!==He&&(this.style=He,this.pattern=ve[this.style]||null),this.changed=!0}verifyDirectChange(){this.change(this.color,parseInt(this.width),parseInt(this.style))}createSample(Ze,Re,He,Ve){Ve&&(Ze=(0,Te.Lt)(Ze)),Ze.append("path").attr("d",`M0,${He/2}h${Re}`).call(this.func)}saveToStyle(Ze,Re,He){if(Ze){const Ve=void 0!==this.color_index?this.color_index:(0,L.vB)(this.color);Ve>=0&&(x.gStyle[Ze]=Ve)}Re&&(x.gStyle[Re]=this.width),He&&(x.gStyle[He]=this.style)}}function ot(Ye){return(Ye<0||Ye>=ve.length)&&(Ye=11),ve[Ye]}},2586:(Yr,mt,Se)=>{"use strict";Se.d(mt,{e:()=>ke});var Te=Se(8872),x=Se(8362),L=Se(2985);const ve=[0,1,2,3,4,5,106,107,104,1,1,1,1,1,1,1,1,1,1,1,104,125,126,132,4,25,26,27,28,130,30,3,32,127,128,35,36,37,38,137,40,140,42,142,44,144,46,146,148,149];class ke{constructor(Ye){this.x0=this.y0=0,this.color="black",this.style=1,this.size=8,this.scale=1,this.stroke=!0,this.fill=!0,this.marker="",this.ndig=0,this.used=!0,this.changed=!1,this.func=this.apply.bind(this),this.setArgs(Ye),this.changed=!1}setArgs(Ye){(0,Te.isObject)(Ye)&&"number"==typeof Ye.fMarkerStyle&&(Ye={attr:Ye}),Ye.attr&&(void 0===Ye.color&&(Ye.color=Ye.painter?Ye.painter.getColor(Ye.attr.fMarkerColor):(0,L.oU)(Ye.attr.fMarkerColor)),(!Ye.style||Ye.style<0)&&(Ye.style=Ye.attr.fMarkerStyle),Ye.size||(Ye.size=Ye.attr.fMarkerSize)),this.color=Ye.color,this.style=Ye.style,this.size=Ye.size,this.refsize=Ye.refsize,this._configure()}setUsed(Ye){this.used=Ye}resetPos(){this.lastx=this.lasty=null}create(Ye,Ze){if(!this.optimized)return`M${(Ye+this.x0).toFixed(this.ndig)},${(Ze+this.y0).toFixed(this.ndig)}${this.marker}`;const Re=Math.round(Ye),He=Math.round(Ze);let Ve=`M${Re},${He}`;if(null!==this.lastx)if(Re===this.lastx&&He===this.lasty)Ve="";else{const De=`m${Re-this.lastx},${He-this.lasty}`;De.length=0&&(this.style=Ze),void 0!==Re&&(this.size=Re),this._configure()}_configure(){if(this.x0=this.y0=0,1===this.style||777===this.style)return this.fill=!1,this.marker="h1",this.size=1,this.optimized=!0,this.resetPos(),!0;this.optimized=!1;const Ye=ve[this.style]??104,Ze=Ye%100;this.fill=Ye>=100,this.scale=this.refsize||8;const Re=this.getFullSize();this.ndig=Re>7?0:Re>2?1:2,30===Ze&&this.ndig++;let He=Re.toFixed(this.ndig);const Ve=(Re/2).toFixed(this.ndig),De=(Re/3).toFixed(this.ndig),F=(Re/4).toFixed(this.ndig),J=(Re/8).toFixed(this.ndig),Y=(3*Re/8).toFixed(this.ndig);switch(Ze){case 1:this.marker="h1";break;case 2:this.y0=-Re/2,this.marker=`v${He}m-${Ve},-${Ve}h${He}`;break;case 3:this.x0=this.y0=-Re/2,this.marker=`l${He},${He}m0,-${He}l-${He},${He}m0,-${Ve}h${He}m-${Ve},-${Ve}v${He}`;break;case 4:this.x0=-parseFloat(Ve),He=(2*parseFloat(Ve)).toFixed(this.ndig),this.marker=`a${Ve},${Ve},0,1,0,${He},0a${Ve},${Ve},0,1,0,-${He},0z`;break;case 5:this.x0=this.y0=-Re/2,this.marker=`l${He},${He}m0,-${He}l-${He},${He}`;break;case 6:this.x0=-1,this.marker="a1,1,0,1,0,2,0a1,1,0,1,0,-2,0z";break;case 7:this.x0=-1.5,this.marker="a1.5,1.5,0,1,0,3,0a1.5,1.5,0,1,0,-3,0z";break;case 25:this.x0=this.y0=-Re/2,this.marker=`v${He}h${He}v-${He}z`;break;case 26:this.y0=-Re/2,this.marker=`l-${Ve},${He}h${He}z`;break;case 27:default:this.y0=-Re/2,this.marker=`l${De},${Ve}l-${De},${Ve}l-${De},-${Ve}z`;break;case 28:this.x0=this.y0=Re/6,this.marker=`h${De}v-${De}h-${De}v-${De}h-${De}v${De}h-${De}v${De}h${De}v${De}h${De}z`;break;case 30:{this.y0=-Re/2;const he=(5*Re/6).toFixed(this.ndig),Q=(5*Re/8).toFixed(this.ndig);this.marker=`l${De},${He}l-${he},-${Q}h${He}l-${he},${Q}z`;break}case 32:this.y0=Re/2,this.marker=`l-${Ve},-${He}h${He}z`;break;case 35:this.x0=-Re/2,this.marker=`l${Ve},${Ve}l${Ve},-${Ve}l-${Ve},-${Ve}zh${He}m-${Ve},-${Ve}v${He}`;break;case 36:this.x0=this.y0=-Re/2,this.marker=`h${He}v${He}h-${He}zl${He},${He}m0,-${He}l-${He},${He}`;break;case 37:this.x0=-Re/2,this.marker=`h${He}l-${F},-${Ve}l-${Ve},${He}h${Ve}l-${Ve},-${He}z`;break;case 38:this.x0=-Re/4,this.y0=-Re/2,this.marker=`h${Ve}l${F},${F}v${Ve}l-${F},${F}h-${Ve}l-${F},-${F}v-${Ve}zm${F},0v${He}m-${Ve},-${Ve}h${He}`;break;case 40:this.x0=-Re/4,this.y0=-Re/2,this.marker=`l${Ve},${He}l${F},-${F}l-${He},-${Ve}zm${Ve},0l-${Ve},${He}l-${F},-${F}l${He},-${Ve}z`;break;case 42:this.y0=-Re/2,this.marker=`l${J},${Y}l${Y},${J}l-${Y},${J}l-${J},${Y}l-${J},-${Y}l-${Y},-${J}l${Y},-${J}z`;break;case 44:this.x0=-Re/4,this.y0=-Re/2,this.marker=`h${Ve}l-${J},${Y}l${Y},-${J}v${Ve}l-${Y},-${J}l${J},${Y}h-${Ve}l${J},-${Y}l-${Y},${J}v-${Ve}l${Y},${J}z`;break;case 46:this.x0=-Re/4,this.y0=-Re/2,this.marker=`l${F},${F}l${F},-${F}l${F},${F}l-${F},${F}l${F},${F}l-${F},${F}l-${F},-${F}l-${F},${F}l-${F},-${F}l${F},-${F}l-${F},-${F}z`;break;case 48:this.x0=-Re/4,this.y0=-Re/2,this.marker=`l${F},${F}l-${F},${F}l-${F},-${F}zm${Ve},0l${F},${F}l-${F},${F}l-${F},-${F}zm0,${Ve}l${F},${F}l-${F},${F}l-${F},-${F}zm-${Ve},0l${F},${F}l-${F},${F}l-${F},-${F}z`;break;case 49:this.x0=-Re/6,this.y0=-Re/2,this.marker=`h${De}v${De}h-${De}zm${De},${De}h${De}v${De}h-${De}zm-${De},${De}h${De}v${De}h-${De}zm-${De},-${De}h${De}v${De}h-${De}z`}return!0}getStrokeColor(){return this.stroke?this.color:"none"}getFillColor(){return this.fill?this.color:"none"}empty(){return"none"===this.color||!this.fill&&!this.stroke}apply(Ye){this.used=!0,Ye.style("stroke",this.stroke?this.color:"none").style("fill",this.fill?this.color:"none")}verifyDirectChange(){this.change(this.color,parseInt(this.style),parseFloat(this.size))}createSample(Ye,Ze,Re,He){He&&(Ye=(0,x.Lt)(Ye)),this.resetPos(),Ye.append("path").attr("d",this.create(Ze/2,Re/2)).call(this.func)}}},3847:(Yr,mt,Se)=>{"use strict";Se.d(mt,{Bx:()=>Ze,DH:()=>C,DJ:()=>E,Fc:()=>g,G1:()=>$,KG:()=>_,LR:()=>F,Sc:()=>B,Te:()=>Re,Yw:()=>J,_l:()=>p,ke:()=>Ve,mZ:()=>He,oE:()=>me,rv:()=>Q,yW:()=>he});var Te=Se(4882),x=Se(8362),L=Se(2923),ve=Se(8872),ke=Se(2843),ot=Se(2586),Ye=Se(4082);function Ze(I,U){if((!U||!(0,ve.isObject)(U))&&(U={}),(0,ve.isStr)(I)&&("#"===I[0]&&9===I.length||I.indexOf("rgba")>=0)){const k=(0,x.yW)(I);U.color=new L.Q1f(k.r,k.g,k.b),U.opacity=k.opacity??1,U.transparent=U.opacity<1}else U.color=new L.Q1f(I);return U}const Re=new L.KQV(L.c9P);function He(I,U,k){if(I){void 0!==k&&(globalThis.docuemnt=k);const P=new L.w4A;return P.setPrecision(U),P}const ue={svg_attr:{},svg_style:{},path_attr:{},accPath:"",createElementNS(P,T){return"path"===T?{_wrapper:this,setAttribute(z,W){if("style"===z&&W){const fe=W.indexOf(";stroke-opacity:1;stroke-width:1;stroke-linecap:round");fe>=0&&fe===W.length-53&&(W=W.slice(0,W.length-53));const we=W.indexOf(";fill-opacity:1");we>=0&&we===W.length-15&&(W=W.slice(0,W.length-15))}this._wrapper.path_attr[z]=W}}:"svg"!==T?(console.error(`not supported element for SVGRenderer ${T}`),null):{_wrapper:this,childNodes:[],style:this.svg_style,setAttribute(z,W){this._wrapper.svg_attr[z]=W},appendChild(z){this._wrapper.accPath+=``,this._wrapper.path_attr={}},removeChild(z){this.childNodes=[]}}}};let V;(0,ve.isNodeJs)()&&(V=globalThis.document,globalThis.document=ue);const b=new L.w4A;return(0,ve.isNodeJs)()&&(globalThis.document=V),b.doc_wrapper=ue,b.originalRender=b.render,b.render=function(P,T){const z=globalThis.document;(0,ve.isNodeJs)()&&(globalThis.document=this.doc_wrapper),this.originalRender(P,T),(0,ve.isNodeJs)()&&(globalThis.document=z)},b.clearHTML=function(){this.doc_wrapper.accPath=""},b.makeOuterHTML=function(){const P=this.doc_wrapper;return`${P.accPath}`},b.fillTargetSVG=function(P){if((0,ve.isNodeJs)()){const T=this.doc_wrapper;P.setAttribute("viewBox",T.svg_attr.viewBox),P.setAttribute("width",T.svg_attr.width),P.setAttribute("height",T.svg_attr.height),P.style.background=T.svg_style.backgroundColor||"",P.innerHTML=T.accPath}else{const T=this.domElement;for(P.setAttribute("viewBox",T.getAttribute("viewBox")),P.setAttribute("width",T.getAttribute("width")),P.setAttribute("height",T.getAttribute("height")),P.style.background=T.style.backgroundColor;T.firstChild;){const z=T.firstChild;T.removeChild(z),P.appendChild(z)}}},b.setPrecision(U),b}function Ve(I,U){void 0===U&&(U=(0,ve.isBatchMode)()),I||(I=U?ve.settings.Render3DBatch:ve.settings.Render3D);const k=ve.constants.Render3D;return I===k.Default&&(I=U?k.WebGLImage:k.WebGL),U&&I===k.WebGL&&(I=k.WebGLImage),I}const De={access3dKind(I){const U=this.getPadSvg();if(U.empty())return-1;const k=U.property("can3d");return void 0!==I&&U.property("can3d",I),k??-1},getSizeFor3d(I){void 0===I&&(I=(I=Ve())!==ve.constants.Render3D.WebGL?ve.constants.Embed3D.EmbedSVG:ve.settings.Embed3D!==ve.constants.Embed3D.Default?ve.settings.Embed3D:ve.browser.isFirefox||ve.browser.chromeVersion>95?ve.constants.Embed3D.Embed:ve.constants.Embed3D.Overlay);const U=this.getPadSvg(),k="draw3d_"+(this.getPadName()||"canvas");if(U.empty()){const b=(0,ke.xh)(this.selectDom());return b.height<10&&b.width>10&&(b.height=Math.round(.66*b.width),this.selectDom().style("height",b.height+"px")),b.x=0,b.y=0,b.clname=k,b.can3d=-1,b}const Z=this.getFramePainter(),ee=this.getPadPainter();let ue;if(Z?.mode3d&&I>0)ue=Z.getFrameRect();else{let b=I>0?U:this.getCanvSvg();ue={x:0,y:0,width:b.property("draw_width"),height:b.property("draw_height")},Number.isNaN(ue.width)||Number.isNaN(ue.height)?(ue.width=ee.getPadWidth(),ue.height=ee.getPadHeight()):Z&&!Z.mode3d&&(b=this.getFrameSvg(),ue.x=b.property("draw_x"),ue.y=b.property("draw_y"))}ue.clname=k,ue.can3d=I;const V=ee?.getPadRect();if(V){const b=Math.round(.07*ue.width),P=Math.round(.05*ue.height);ue.x=Math.max(0,ue.x-b),ue.y=Math.max(0,ue.y-P),ue.width=Math.min(ue.width+2*b,V.width-ue.x),ue.height=Math.min(ue.height+2*P,V.height-ue.y)}return 1===I&&(ue=(0,ke.md)(this.getPadSvg(),ue)),ue},clear3dCanvas(){const I=this.access3dKind(null);if(I<0){const k=this.selectDom().node();let Z=k?.firstChild;return Z&&!Z.$jsroot&&(Z=Z.nextSibling),Z?.$jsroot&&(delete Z.painter,k.removeChild(Z)),I}const U=this.getSizeFor3d(I);if(0===U.can3d)(0,x.Lt)(this.getCanvSvg().node().nextSibling).remove(),this.getCanvSvg().style("display",null);else{if(this.getPadSvg().empty())return;this.apply3dSize(U).remove(),this.getFrameSvg().style("display",null)}return I},add3dCanvas(I,U,k){if(U&&!(I.can3d<-1)){if(-1===I.can3d){const Z=this.selectDom().node();return void(null!==Z&&(Z.appendChild(U),U.painter=this,U.$jsroot=!0))}if(I.can3d>0&&!k&&(I.can3d=ve.constants.Embed3D.EmbedSVG),this.access3dKind(I.can3d),0===I.can3d)this.getCanvSvg().style("display","none"),this.getCanvSvg().node().parentNode.appendChild(U);else{if(this.getPadSvg().empty())return;this.getFrameSvg().style("display","none"),this.apply3dSize(I).attr("title","").node().appendChild(U)}}},apply3dSize(I,U){if(I.can3d<0)return(0,x.Lt)(null);let k;if(I.can3d>1){if(k=this.getLayerSvg(I.clname),U)return k;const Z=this.getPadSvg();I.can3d===ve.constants.Embed3D.EmbedSVG?(k.empty()&&(k=Z.insert("g",".primitives_layer").attr("class",I.clname)),(0,ke.bk)(k,I.x,I.y)):(k.empty()&&(k=Z.insert("foreignObject",".primitives_layer").attr("class",I.clname)),k.attr("x",I.x).attr("y",I.y).attr("width",I.width).attr("height",I.height).attr("viewBox",`0 0 ${I.width} ${I.height}`).attr("preserveAspectRatio","xMidYMid"))}else{let Z=this.getCanvSvg().node().parentNode;if(k=(0,x.Lt)(Z).select("."+I.clname),U)return k;this.getCanvSvg().property("redraw_by_resize",!0),k.empty()&&(k=(0,x.Lt)(Z).append("div").attr("class",I.clname).style("user-select","none"));const ee=Z.getBoundingClientRect(),ue=(0,ve.getDocument)();for(;Z;){if(Z===ue){Z=null;break}try{if("static"!==getComputedStyle(Z).position)break}catch{break}Z=Z.parentNode}const V=Z?.getBoundingClientRect()??{top:0,left:0},b=Math.round(ee.left-V.left),P=Math.round(ee.top-V.top);k.style("position","absolute").style("left",I.x+b+"px").style("top",I.y+P+"px").style("width",I.width+"px").style("height",I.height+"px")}return k}};function F(I){Object.assign(I,De)}function J(I,U,k,Z){return Y.apply(this,arguments)}function Y(){return(Y=(0,Te.A)(function*(I,U,k,Z){const ee=ve.constants.Render3D,ue=(0,ve.getDocument)();let V;if(k=Ve(k),Z||(Z={antialias:!0,alpha:!0}),k===ee.SVG){const b=He(!1,0,ue);b.jsroot_dom=ue.createElementNS("http://www.w3.org/2000/svg","svg"),V=Promise.resolve(b)}else if((0,ve.isNodeJs)())V=Se.e(511).then(Se.t.bind(Se,1511,19)).then(b=>(Z.canvas=b.default.createCanvas(I,U),Z.canvas.addEventListener=()=>{},Z.canvas.removeEventListener=()=>{},Z.canvas.style={},Se.e(254).then(Se.t.bind(Se,8254,19)))).then(b=>{const P=b.default(I,U,{preserveDrawingBuffer:!0});if(!P)throw Error("Fail to create headless-gl");Z.context=P,P.canvas=Z.canvas;const T=new L.JeP(Z);return T.jsroot_output=new L.nWS(I,U),T.setRenderTarget(T.jsroot_output),T.jsroot_dom=ue.createElementNS("http://www.w3.org/2000/svg","image"),T});else if(k===ee.WebGL)V=Promise.resolve(new L.JeP(Z));else{const b=new L.JeP(Z);b.jsroot_dom=ue.createElementNS("http://www.w3.org/2000/svg","image"),V=Promise.resolve(b)}return V.then(b=>(b.jsroot_dom?b.jsroot_custom_dom=!0:b.jsroot_dom=b.domElement,b.jsroot_render3d=k,b.jsroot_image_format="png",b.originalSetSize=b.setSize,b.setSize=function(P,T,z){this.jsroot_custom_dom&&(this.jsroot_dom.setAttribute("width",P),this.jsroot_dom.setAttribute("height",T)),this.originalSetSize(P,T,z)},b.setSize(I,U),b))})).apply(this,arguments)}function he(I){if(I)if((0,ve.isNodeJs)()){const U=(0,ve.isFunc)(I.getContext)?I.getContext():null,k=U?.getExtension("STACKGL_destroy_context");(0,ve.isFunc)(k?.destroy)&&k.destroy()}else ve.browser.isChrome&&(0,ve.isFunc)(I.forceContextLoss)&&I.forceContextLoss(),(0,ve.isFunc)(I.dispose)&&I.dispose()}function Q(I){(0,ve.isFunc)(I.clearHTML)&&I.clearHTML()}function me(I){const U=ve.constants.Render3D;if(I.jsroot_render3d!==U.WebGL)if(I.jsroot_render3d===U.SVG)I.fillTargetSVG(I.jsroot_dom);else if((0,ve.isNodeJs)()){const k=I.domElement,Z=k.getContext("2d"),ee=new Uint8Array(4*k.width*k.height);I.readRenderTargetPixels(I.jsroot_output,0,0,k.width,k.height,ee);let b,P,ue=0,V=4*(k.height-1)*k.width;for(;ue=this.parent.offsetWidth&&(k.l=this.parent.offsetWidth-this.tt.offsetWidth-3),k.u+this.tt.offsetHeight+15>=this.parent.offsetHeight&&(k.u=this.parent.offsetHeight-this.tt.offsetHeight-15);let ue=this.parent;for(;ue;){const V=getComputedStyle(ue);if(!V||"static"!==V.position||!ue.parentNode||1!==ue.parentNode.nodeType)break;ue=ue.parentNode}if(ue&&ue!==this.parent){const V=ue.getBoundingClientRect();k.l+=Z.left-V.left,k.u+=Z.top-V.top}}this.tt.style.top=`${k.u+15}px`,this.tt.style.left=`${k.l+3}px`}show(U){if(!U)return this.hide();if((0,ve.isObject)(U)&&(U.lines||U.line)){if(U.only_status)return this.hide();if(U.line)U=U.line;else{let k=U.lines[0];for(let Z=1;Z"+U.lines[Z];U=k}}if(null===this.tt){const k=(0,ve.getDocument)();this.tt=k.createElement("div"),this.tt.setAttribute("style","opacity: 1; filter: alpha(opacity=1); position: absolute; display: block; overflow: hidden; z-index: 101;"),this.cont=k.createElement("div"),this.cont.setAttribute("style","display: block; padding: 2px 12px 3px 7px; margin-left: 5px; font-size: 11px; background: #777; color: #fff;"),this.tt.appendChild(this.cont),this.parent.appendChild(this.tt)}this.lastlbl!==U&&(this.cont.innerHTML=U,this.lastlbl=U,this.tt.style.width="auto")}hide(){null!==this.tt&&this.parent.removeChild(this.tt),this.tt=null,this.lastlbl=""}}function B(I,U,k,Z,ee){const ue=ve.settings.Zooming&&ve.settings.ZoomMouse,V=(0,ve.isFunc)(I.processMouseClick);let b=null;function P(fe){if(b){if(b.mouse_zoom_mesh)return fe.stopImmediatePropagation(),void fe.stopPropagation();if(!(void 0!==fe.button&&0!==fe.button||void 0!==fe.buttons&&1!==fe.buttons)){if(b.enable_zoom&&(b.mouse_zoom_mesh=b.detectZoomMesh(fe),b.mouse_zoom_mesh))return fe.stopImmediatePropagation(),void fe.stopPropagation();b.enable_select&&(b.mouse_select_pnt=b.getMousePos(fe,{}))}}}function T(fe){if(b){if(b.mouse_zoom_mesh&&b.mouse_zoom_mesh.point2&&b.painter.get3dZoomCoord){let we=b.mouse_zoom_mesh.object.zoom,Me=b.painter.get3dZoomCoord(b.mouse_zoom_mesh.point,we),je=b.painter.get3dZoomCoord(b.mouse_zoom_mesh.point2,we);Me>je&&([Me,je]=[je,Me]),"z"===we&&b.mouse_zoom_mesh.object.use_y_for_z&&(we="y"),Methis.delayedProcessMouseMove(),this.mouse_tmout):this.delayedProcessMouseMove()}},b.delayedProcessMouseMove=function(){if(delete this.tmout_handle,!this.painter)return;const fe=this.tmout_mouse,we=this.getMouseIntersects(fe),Me=this.processMouseMove(we);if(Me){let je="",Ge="",lt="",bt="";fe&&(lt=fe.x.toFixed(0)+","+fe.y.toFixed(0)),(0,ve.isStr)(Me)?bt=Me:(je=Me.name,Ge=Me.title,Me.line?bt=Me.line:Me.lines&&(bt=Me.lines.slice(1).join(" "),je=Me.lines[0])),this.painter.showObjectStatus(je,Ge,bt,lt)}if(this.cursor_changed=!1,Me&&this.painter?.isTooltipAllowed())this.tooltip.checkParent(this.painter.selectDom().node()),this.tooltip.show(Me,fe),this.tooltip.pos(this.tmout_ttpos);else if(this.tooltip.hide(),we)for(let je=0;jeb.changeEvent()),b.addEventListener("start",()=>b.startEvent()),b.addEventListener("end",()=>b.endEvent()),b.lstn_contextmenu=fe=>b.mainProcessContextMenu(fe),b.lstn_dblclick=fe=>b.mainProcessDblClick(fe),b.lstn_mousemove=fe=>b.mainProcessMouseMove(fe),b.lstn_mouseleave=()=>b.mainProcessMouseLeave(),Z.domElement.addEventListener("click",b.lstn_click),Z.domElement.addEventListener("dblclick",b.lstn_dblclick),Z.domElement.addEventListener("contextmenu",b.lstn_contextmenu),Z.domElement.addEventListener("mousemove",b.lstn_mousemove),Z.domElement.addEventListener("mouseleave",b.lstn_mouseleave),b}function $(I,U){if(I){if(I.children)for(let k=0;k{const z={size:3*this.scale*k};T?(z.map=T,z.transparent=!0):z.color=U.color||"black";const W=new L.ONl(this.geom,new L.BH$(z));return W.nvertex=1,W};if(1!==k){const T=Z();return this.noPromise?T:Promise.resolve(T)}const ee=new ot.e({style:U.style,color:U.color,size:7}),ue=ee.fill?1:7,V=``,b="data:image/svg+xml;charset=utf8,"+((0,ve.isNodeJs)()?V:encodeURIComponent(V));let P;if((0,ve.isNodeJs)())P=Se.e(511).then(Se.t.bind(Se,1511,19)).then(T=>T.default.loadImage(b).then(z=>{const W=T.default.createCanvas(64,64);return W.getContext("2d").drawImage(z,0,0,64,64),new L.GOR(W)}));else{if(this.noPromise)return Z((new L.Tap).load(b));P=new Promise((T,z)=>{(new L.Tap).load(b,fe=>T(fe),void 0,()=>z())})}return P.then(Z)}}function C(I,U,k=!1){if(!I||!U)return null;let Z,ee,ue;(0,ve.isStr)(U)||k?(Z=I.v7EvalColor(U+"color","black"),ee=parseInt(I.v7EvalAttr(U+"style",0)),ue=parseInt(I.v7EvalAttr(U+"width",1))):(Z=I.getColor(U.fLineColor),ee=U.fLineStyle,ue=U.fLineWidth);const V=ee?(0,Ye.Ov)(ee):"",b=V?V.split(","):[],P=b&&b.length>=2?new L.Fvt({color:Z,dashSize:parseInt(b[0]),gapSize:parseInt(b[1])}):new L.mrM({color:Z});return ue&&ue>1&&(P.linewidth=ue),P}},2985:(Yr,mt,Se)=>{"use strict";Se.d(mt,{$q:()=>ke,HG:()=>he,LQ:()=>I,TZ:()=>X,d_:()=>Q,ho:()=>ve,jh:()=>C,nM:()=>E,nj:()=>F,np:()=>B,oU:()=>$,pX:()=>L,rE:()=>_,tA:()=>ot,uw:()=>me,vB:()=>g});var Te=Se(8872),x=Se(8362);const L="TLinearGradient",ve="TRadialGradient",ke=0,ot=1;function F(U,k=255){const Z=Math.round(U*k).toString(16);return 1===Z.length?"0"+Z:Z}let J=[];function he(){return J}function Q(U){if(U?._typename!==Te.clTColor)return null;let k="#"+F(U.fRed)+F(U.fGreen)+F(U.fBlue);switch(void 0!==U.fAlpha&&1!==U.fAlpha&&(k+=F(U.fAlpha)),k){case"#ffffff":return"white";case"#000000":return"black";case"#ff0000":return"red";case"#00ff00":return"green";case"#0000ff":return"blue";case"#ffff00":return"yellow";case"#ff00ff":return"magenta";case"#00ffff":return"cyan"}return k}function me(U){const k=[];U||(U=he());for(let Z=0;Z=0&&V.fNumber<=1e4&&(ee[V.fNumber]=Q(V)):(ee[V.fNumber]=V,V.toString=()=>"white")}}for(let ue=0;ue=0?Z:(k.push(U),k.length-1)}class _{constructor(k,Z){this.palette=Z?me(k):k}calcColorIndex(k,Z){const ee=this.palette.length,ue=Math.floor((k+.99)*ee/(Z-1));return ue>ee-1?ee-1:ue}getColor(k){return this.palette[k]}getLength(){return this.palette.length}calcColor(k,Z){return this.getColor(this.calcColorIndex(k,Z))}}function v(U){const k=(P,T,z)=>(z<0&&(z+=1),z>1&&(z-=1),z<.16666666666666666?P+6*(T-P)*z:z<.5?T:z<.6666666666666666?P+(T-P)*(.6666666666666666-z)*6:P),Z=(P,T,z)=>{const W=T<.5?T*(1+z):T+z-T*z,fe=2*T-W,we=k(fe,W,P+1/3),Me=k(fe,W,P),je=k(fe,W,P-1/3);return"#"+F(we)+F(Me)+F(je)},b=[];for(let P=0;P<50;++P)b.push(Z((280-5.6*(P+1))/360,.5,1));return new _(b,U)}function C(U,k){if((U=U||Te.settings.Palette)>0&&U<10)return function p(){const U=[];for(let k=0;k<50;++k){const Z=F((k+2)/60);U.push("#"+Z+Z+Z)}return new _(U)}();if(U<51)return v(k);U>113&&(U=57);const Z=[0,.125,.25,.375,.5,.625,.75,.875,1];let ee;switch(U){case 51:ee=[[0,9,13,17,24,32,27,25,29],[0,0,0,2,37,74,113,160,221],[28,42,59,78,98,129,154,184,221]];break;case 52:ee=[[0,32,64,96,128,160,192,224,255],[0,32,64,96,128,160,192,224,255],[0,32,64,96,128,160,192,224,255]];break;case 53:ee=[[0,45,99,156,212,230,237,234,242],[0,0,0,45,101,168,238,238,243],[0,1,1,3,9,8,11,95,230]];break;case 54:ee=[[0,22,44,68,93,124,160,192,237],[0,16,41,67,93,125,162,194,241],[97,100,99,99,93,68,44,26,74]];break;case 55:ee=[[0,5,15,35,102,196,208,199,110],[0,48,124,192,206,226,97,16,0],[99,142,198,201,90,22,13,8,2]];break;case 56:ee=[[242,234,237,230,212,156,99,45,0],[243,238,238,168,101,45,0,0,0],[230,95,11,8,9,3,1,1,0]];break;case 57:ee=[[53.091,15.096,19.89,5.916,45.951,135.1755,208.743,253.878,248.982],[42.432,91.7745,128.5455,163.6845,183.039,191.046,186.864,200.481,250.716],[134.9715,221.442,213.8175,201.807,163.8375,118.881,89.2245,50.184,13.7445]];break;case 58:ee=[[0,24,2,54,176,236,202,194,255],[0,29,92,129,117,120,176,236,255],[0,68,80,34,57,172,252,245,255]];break;case 59:ee=[[13,23,25,63,76,104,137,161,206],[95,67,37,21,0,12,35,52,79],[4,3,2,6,11,22,49,98,208]];break;case 60:ee=[[0,61,89,122,143,160,185,204,231],[0,0,0,0,14,37,72,132,235],[0,140,224,144,4,5,6,9,13]];break;case 61:ee=[[14,7,2,0,5,11,55,131,229],[105,56,26,1,42,74,131,171,229],[2,21,35,60,92,113,160,185,229]];break;case 62:ee=[[0,0,0,70,148,231,235,237,244],[0,0,0,0,0,69,67,216,244],[0,102,228,231,177,124,137,20,244]];break;case 63:ee=[[50,56,63,68,93,121,165,192,241],[66,81,91,96,111,128,155,189,241],[97,91,75,65,77,103,143,167,217]];break;case 64:ee=[[145,166,167,156,131,114,101,112,132],[158,178,179,181,163,154,144,152,159],[190,199,201,192,176,169,160,166,190]];break;case 65:ee=[[93,91,99,108,130,125,132,155,174],[126,124,128,129,131,121,119,153,173],[103,94,87,85,80,85,107,120,146]];break;case 66:ee=[[24,40,69,90,104,114,120,132,103],[29,52,94,127,150,162,159,151,101],[29,52,96,132,162,181,184,186,131]];break;case 67:ee=[[46,38,61,92,113,121,132,150,191],[46,36,40,69,110,135,131,92,34],[46,80,74,70,81,105,165,211,225]];break;case 68:ee=[[0,4,12,30,52,101,142,190,237],[0,40,86,121,140,172,187,213,240],[0,9,14,18,21,23,27,35,101]];break;case 69:ee=[[198,206,206,211,198,181,161,171,244],[103,133,150,172,178,174,163,175,244],[49,54,55,66,91,130,184,224,244]];break;case 70:ee=[[243,243,240,240,241,239,186,151,129],[0,46,99,149,194,220,183,166,147],[6,8,36,91,169,235,246,240,233]];break;case 71:ee=[[22,19,19,25,35,53,88,139,210],[0,32,69,108,135,159,183,198,215],[77,96,110,116,110,100,90,78,70]];break;case 72:ee=[[68,116,165,182,189,180,145,111,71],[37,82,135,178,204,225,221,202,147],[16,55,105,147,196,226,232,224,178]];break;case 73:ee=[[61,99,136,181,213,225,198,136,24],[149,140,96,83,132,178,190,135,22],[214,203,168,135,110,100,111,113,22]];break;case 74:ee=[[76,120,156,183,197,180,162,154,140],[34,35,42,69,102,137,164,188,197],[64,69,78,105,142,177,205,217,198]];break;case 75:ee=[[37,102,157,188,196,214,223,235,251],[37,29,25,37,67,91,132,185,251],[37,32,33,45,66,98,137,187,251]];break;case 76:ee=[[79,100,119,137,153,172,192,205,250],[63,79,93,103,115,135,167,196,250],[51,59,66,61,62,70,110,160,250]];break;case 77:ee=[[43,44,50,66,125,172,178,155,157],[63,63,85,101,138,163,122,51,39],[121,101,58,44,47,55,57,44,43]];break;case 78:ee=[[0,41,62,79,90,87,99,140,228],[0,57,81,93,85,70,71,125,228],[95,91,91,82,60,43,44,112,228]];break;case 79:ee=[[49,59,72,88,114,141,176,205,222],[78,72,66,57,59,75,106,142,173],[78,55,46,40,39,39,40,41,47]];break;case 80:ee=[[243,222,201,185,165,158,166,187,219],[94,108,132,135,125,96,68,51,61],[7,9,12,19,45,89,118,146,118]];break;case 81:ee=[[19,44,74,105,137,166,194,206,220],[19,28,40,55,82,110,159,181,220],[19,42,68,96,129,157,188,203,220]];break;case 82:ee=[[33,44,70,99,140,165,199,211,216],[38,50,76,105,140,165,191,189,167],[55,67,97,124,140,166,163,129,52]];break;case 83:ee=[[0,33,73,124,136,152,159,171,223],[0,43,92,124,134,126,121,144,223],[0,43,68,76,73,64,72,114,223]];break;case 84:ee=[[5,18,45,124,193,223,205,128,49],[48,134,207,230,193,113,28,0,7],[6,15,41,121,193,226,208,130,49]];break;case 85:ee=[[180,106,104,135,164,188,189,165,144],[72,126,154,184,198,207,205,190,179],[41,120,158,188,194,181,145,100,62]];break;case 86:ee=[[57,72,94,117,136,154,174,192,215],[0,33,68,109,140,171,192,196,209],[116,137,173,201,200,201,203,190,187]];break;case 87:ee=[[31,71,123,160,210,222,214,199,183],[40,117,171,211,231,220,190,132,65],[234,214,228,222,210,160,105,60,34]];break;case 88:ee=[[123,108,109,126,154,172,188,196,218],[184,138,130,133,154,175,188,196,218],[208,130,109,99,110,122,150,171,218]];break;case 89:ee=[[105,106,122,143,159,172,176,181,207],[252,197,194,187,174,162,153,136,125],[146,133,144,155,163,167,166,162,174]];break;case 90:ee=[[171,141,145,152,154,159,163,158,177],[236,143,100,63,53,55,44,31,6],[59,48,46,44,42,54,82,112,179]];break;case 91:ee=[[180,190,209,223,204,228,205,152,91],[93,125,147,172,181,224,233,198,158],[236,218,160,133,114,132,162,220,218]];break;case 92:ee=[[225,183,162,135,115,111,119,145,211],[205,177,166,135,124,117,117,132,172],[186,165,155,135,126,130,150,178,226]];break;case 93:ee=[[39,43,59,63,80,116,153,177,223],[39,43,59,74,91,114,139,165,223],[39,50,59,70,85,115,151,176,223]];break;case 94:ee=[[0,38,60,76,84,89,101,128,204],[0,10,15,23,35,57,83,123,199],[0,11,22,40,63,86,97,94,85]];break;case 95:ee=[[94,112,141,165,167,140,91,49,27],[27,46,88,135,166,161,135,97,58],[42,52,81,106,139,158,155,137,116]];break;case 96:ee=[[30,49,79,117,135,151,146,138,147],[63,60,72,90,94,94,68,46,16],[18,28,41,56,62,63,50,36,21]];break;case 97:ee=[[0,30,63,101,143,152,169,187,230],[0,14,28,42,58,61,67,74,91],[39,26,21,18,15,14,14,13,13]];break;case 98:ee=[[149,140,164,179,182,181,131,87,61],[62,70,107,136,144,138,117,87,74],[40,38,45,49,49,49,38,32,34]];break;case 99:ee=[[99,112,148,165,179,182,183,183,208],[39,40,57,79,104,127,148,161,198],[15,16,18,33,51,79,103,129,177]];break;case 100:ee=[[99,116,154,174,200,196,201,201,230],[0,0,8,32,58,83,119,136,173],[5,6,7,9,9,14,17,19,24]];break;case 101:ee=[[82,106,126,141,155,163,142,107,66],[62,44,69,107,135,152,149,132,119],[39,25,31,60,73,68,49,72,188]];break;case 102:ee=[[18,29,44,72,116,158,184,208,221],[27,46,71,105,146,177,189,190,183],[39,55,80,108,130,133,124,100,76]];break;case 103:ee=[[0,48,119,173,212,224,228,228,245],[0,13,30,47,79,127,167,205,245],[0,68,75,43,16,22,55,128,245]];break;case 104:ee=[[34,70,129,187,225,226,216,193,179],[48,91,147,194,226,229,196,110,12],[234,212,216,224,206,110,53,40,29]];break;case 105:ee=[[30,55,103,147,174,203,188,151,105],[0,65,138,182,187,175,121,53,9],[191,202,212,208,171,140,97,57,30]];break;case 106:ee=[[112,97,113,125,138,159,178,188,225],[16,17,24,37,56,81,110,136,189],[38,35,46,59,78,103,130,152,201]];break;case 107:ee=[[18,72,5,23,29,201,200,98,29],[0,0,43,167,211,117,0,0,0],[51,203,177,26,10,9,8,3,0]];break;case 108:ee=[[19,42,64,88,118,147,175,187,205],[19,55,89,125,154,169,161,129,70],[19,32,47,70,100,128,145,130,75]];break;case 109:ee=[[33,31,42,68,86,111,141,172,227],[255,175,145,106,88,55,15,0,0],[255,205,202,203,208,205,203,206,231]];break;case 110:ee=[[0,25,50,79,110,145,181,201,254],[0,16,30,46,63,82,101,124,179],[0,12,21,29,39,49,61,74,103]];break;case 111:ee=[[0,13,30,44,72,120,156,200,247],[0,36,84,117,141,153,151,158,247],[0,94,100,82,56,66,76,131,247]];break;case 112:ee=[[26,51,43,33,28,35,74,144,246],[9,24,55,87,118,150,180,200,222],[30,96,112,114,112,101,72,35,0]];break;case 113:ee=[[0,5,65,97,124,156,189,224,255],[32,54,77,100,123,148,175,203,234],[77,110,107,111,120,119,111,94,70]];break;default:return v()}const V=ee[0],b=ee[1],P=ee[2],T=[];for(let z=1;z0){k[parseInt(ue.slice(0,V))]=(0,x.yW)(`rgb(${ue.slice(V+1)})`).formatHex();continue}if(V=ue.indexOf("="),V>0){k[parseInt(ue.slice(0,V))]=(0,x.yW)(`rgba(${ue.slice(V+1)})`).formatHex8();continue}if(V=ue.indexOf("#"),V<0)continue;const b=parseInt(ue.slice(0,V)),P=JSON.parse(ue.slice(V+1)),T={_typename:10===P[0]?L:ve,fNumber:b,fType:P[0]};let z=1;T.fCoordinateMode=Math.round(P[z++]);const W=Math.round(P[z++]);T.fColorPositions=P.slice(z,z+W),z+=W,T.fColors=P.slice(z,z+4*W),z+=4*W,T.fStart={fX:P[z++],fY:P[z++]},T.fEnd={fX:P[z++],fY:P[z++]},T._typename===ve&&z{const ee=Z.s;for(let ue=0;ue{"use strict";Se.d(mt,{Bm:()=>$,KA:()=>X,N7:()=>He,_o:()=>ee,cp:()=>he,eN:()=>me,s7:()=>V,xV:()=>Ye});var Te=Se(4882),x=Se(8872),L=Se(2843),ve=Se(4246);const ke={"#alpha":"\u03b1","#beta":"\u03b2","#chi":"\u03c7","#delta":"\u03b4","#varepsilon":"\u03b5","#phi":"\u03c6","#gamma":"\u03b3","#eta":"\u03b7","#iota":"\u03b9","#varphi":"\u03c6","#kappa":"\u03ba","#lambda":"\u03bb","#mu":"\u03bc","#nu":"\u03bd","#omicron":"\u03bf","#pi":"\u03c0","#theta":"\u03b8","#rho":"\u03c1","#sigma":"\u03c3","#tau":"\u03c4","#upsilon":"\u03c5","#varomega":"\u03d6","#omega":"\u03c9","#xi":"\u03be","#psi":"\u03c8","#zeta":"\u03b6","#Alpha":"\u0391","#Beta":"\u0392","#Chi":"\u03a7","#Delta":"\u0394","#Epsilon":"\u0395","#Phi":"\u03a6","#Gamma":"\u0393","#Eta":"\u0397","#Iota":"\u0399","#vartheta":"\u03d1","#Kappa":"\u039a","#Lambda":"\u039b","#Mu":"\u039c","#Nu":"\u039d","#Omicron":"\u039f","#Pi":"\u03a0","#Theta":"\u0398","#Rho":"\u03a1","#Sigma":"\u03a3","#Tau":"\u03a4","#Upsilon":"\u03a5","#varsigma":"\u03c2","#Omega":"\u03a9","#Xi":"\u039e","#Psi":"\u03a8","#Zeta":"\u0396","#varUpsilon":"\u03d2","#epsilon":"\u03b5","#leq":"\u2264","#/":"\u2044","#infty":"\u221e","#voidb":"\u0192","#club":"\u2663","#diamond":"\u2666","#heart":"\u2665","#spade":"\u2660","#leftrightarrow":"\u2194","#leftarrow":"\u2190","#uparrow":"\u2191","#rightarrow":"\u2192","#downarrow":"\u2193","#circ":"\u2e30","#pm":"\xb1","#doublequote":"\u2033","#geq":"\u2265","#times":"\xd7","#propto":"\u221d","#partial":"\u2202","#bullet":"\u2022","#divide":"\xf7","#neq":"\u2260","#equiv":"\u2261","#approx":"\u2248","#3dots":"\u2026","#cbar":"|","#topbar":"\xaf","#downleftarrow":"\u21b5","#aleph":"\u2135","#Jgothic":"\u2111","#Rgothic":"\u211c","#voidn":"\u2118","#otimes":"\u2297","#oplus":"\u2295","#oslash":"\u2205","#cap":"\u2229","#cup":"\u222a","#supset":"\u2283","#supseteq":"\u2287","#notsubset":"\u2284","#subset":"\u2282","#subseteq":"\u2286","#in":"\u2208","#notin":"\u2209","#angle":"\u2220","#nabla":"\u2207","#oright":"\xae","#ocopyright":"\xa9","#trademark":"\u2122","#prod":"\u220f","#surd":"\u221a","#upoint":"\u2027","#corner":"\xac","#wedge":"\u2227","#vee":"\u2228","#Leftrightarrow":"\u21d4","#Leftarrow":"\u21d0","#Uparrow":"\u21d1","#Rightarrow":"\u21d2","#Downarrow":"\u21d3","#void2":"","#LT":"<","#void1":"\xae","#copyright":"\xa9","#void3":"\u2122","#sum":"\u2211","#arctop":"\u239b","#lbar":"\u23a2","#arcbottom":"\u239d","#void4":"","#void8":"\u23a2","#bottombar":"\u230a","#arcbar":"\u23a7","#ltbar":"\u23a8","#AA":"\u212b","#aa":"\xe5","#void06":"","#GT":">","#int":"\u222b","#forall":"\u2200","#exists":"\u2203","#koppa":"\u03df","#sampi":"\u03e1","#stigma":"\u03db","#san":"\u03fb","#sho":"\u03f8","#varcoppa":"\u03d9","#digamma":"\u03dd","#Digamma":"\u03dc","#Koppa":"\u03de","#varKoppa":"\u03d8","#Sampi":"\u03e0","#Stigma":"\u03da","#San":"\u03fa","#Sho":"\u03f7","#vec":"","#dot":"\u22c5","#hat":"\xb7","#ddot":"","#acute":"","#grave":"","#check":"\u2713","#tilde":"\u02dc","#slash":"\u2044","#hbar":"\u0127","#box":"\u25fd","#Box":"\u2610","#parallel":"\u2225","#perp":"\u22a5","#odot":"\u2299","#left":"","#right":"","{}":"","#mp":"\u2213","#P":"\xb6","#sqrt":"\u221a","#bar":"","#overline":"","#underline":"","#strike":""},ot=new RegExp(Object.keys(ke).sort((P,T)=>P.lengthT.length?-1:0).join("|"),"g"),Ye=P=>{for(;P.length>2&&"{"===P[0]&&"}"===P[P.length-1];)P=P.slice(1,P.length-1);return P.replace(ot,T=>ke[T]).replace(/\{\}/g,"")},Ze=[453,535,661,973,955,1448,1242,324,593,596,778,1011,431,570,468,492,947,885,947,947,947,947,947,947,947,947,511,495,980,1010,987,893,1624,1185,1147,1193,1216,1080,1028,1270,1274,531,910,1177,1004,1521,1252,1276,1111,1276,1164,1056,1073,1215,1159,1596,1150,1124,1065,540,591,540,837,874,572,929,972,879,973,901,569,967,973,453,458,903,453,1477,973,970,972,976,638,846,548,973,870,1285,884,864,835,656,430,656,1069],Re={945:1002,946:996,967:917,948:953,949:834,966:1149,947:847,951:989,953:516,954:951,955:913,956:1003,957:862,959:967,960:1070,952:954,961:973,963:1017,964:797,965:944,982:1354,969:1359,958:803,968:1232,950:825,913:1194,914:1153,935:1162,916:1178,917:1086,934:1358,915:1016,919:1275,921:539,977:995,922:1189,923:1170,924:1523,925:1253,927:1281,928:1281,920:1285,929:1102,931:1041,932:1069,933:1135,962:848,937:1279,926:1092,936:1334,918:1067,978:1154,8730:986,8804:940,8260:476,8734:1453,402:811,9827:1170,9830:931,9829:1067,9824:965,8596:1768,8592:1761,8593:895,8594:1761,8595:895,710:695,177:955,8243:680,8805:947,215:995,8733:1124,8706:916,8226:626,247:977,8800:969,8801:1031,8776:976,8230:1552,175:883,8629:1454,8501:1095,8465:1002,8476:1490,8472:1493,8855:1417,8853:1417,8709:1205,8745:1276,8746:1404,8839:1426,8835:1426,8836:1426,8838:1426,8834:1426,8747:480,8712:1426,8713:1426,8736:1608,8711:1551,174:1339,169:1339,8482:1469,8719:1364,729:522,172:1033,8743:1383,8744:1383,8660:1768,8656:1496,8657:1447,8658:1496,8659:1447,8721:1182,9115:882,9144:1e3,9117:882,8970:749,9127:1322,9128:1322,8491:1150,229:929,8704:1397,8707:1170,8901:524,183:519,10003:1477,732:692,295:984,9725:1780,9744:1581,8741:737,8869:1390,8857:1421};function He(P,T,z){const W=P.length,fe=(z||T.size)*T.aver_width;if(T.isMonospace())return W*fe;let we=0;for(let Me=0;Me=32&&je<127?Ze[je-32]:Re[je]||1e3}return we/1e3*fe}const Ve=[{name:"#it{"},{name:"#bf{"},{name:"#underline{",deco:"underline"},{name:"#overline{",deco:"overline"},{name:"#strike{",deco:"line-through"},{name:"#kern[",arg:"float"},{name:"#lower[",arg:"float"},{name:"#scale[",arg:"float"},{name:"#color[",arg:"int"},{name:"#font[",arg:"int"},{name:"_{",low_up:"low"},{name:"^{",low_up:"up"},{name:"#bar{",deco:"overline"},{name:"#hat{",accent:"\u02c6",hasw:!0},{name:"#check{",accent:"\u02c7",hasw:!0},{name:"#acute{",accent:"\u02ca"},{name:"#grave{",accent:"\u02cb"},{name:"#dot{",accent:"\u02d9"},{name:"#ddot{",accent:"\u02ba",hasw:!0},{name:"#tilde{",accent:"\u02dc",hasw:!0},{name:"#slash{",accent:"\u2215"},{name:"#vec{",accent:"\u02ed",hasw:!0},{name:"#frac{",twolines:"line"},{name:"#splitline{",twolines:!0},{name:"#sqrt[",arg:"int",sqrt:!0},{name:"#sqrt{",sqrt:!0},{name:"#sum",special:"\u2211",w:.8,h:.9},{name:"#int",special:"\u222b",w:.3,h:1},{name:"#left[",right:"#right]",braces:"[]"},{name:"#left(",right:"#right)",braces:"()"},{name:"#left{",right:"#right}",braces:"{}"},{name:"#left|",right:"#right|",braces:"||"},{name:"#[]{",braces:"[]"},{name:"#(){",braces:"()"},{name:"#{}{",braces:"{}"},{name:"#||{",braces:"||"}],De=[0,8704,0,8707,0,0,8717,0,0,8727,0,0,8722,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8773,913,914,935,916,917,934,915,919,921,977,922,923,924,925,927,928,920,929,931,932,933,962,937,926,936,918,0,8756,0,8869,0,0,945,946,967,948,949,966,947,951,953,981,954,955,956,957,959,960,952,961,963,964,965,982,969,958,968,950,0,402,0,8764,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,978,8242,8804,8260,8734,0,9827,9830,9829,9824,8596,8592,8593,8594,8595,0,0,8243,8805,0,8733,8706,8729,0,8800,8801,8776,8230,0,0,8629,8501,8465,8476,8472,8855,8853,8709,8745,8746,8835,8839,8836,8834,8838,8712,8713,8736,8711,0,0,8482,8719,8730,8901,0,8743,8744,8660,8656,8657,8658,8659,9674,9001,0,0,8482,8721,0,0,0,0,0,0,0,0,0,0,8364,9002,8747,8992,0,8993],F=[128393,9986,9985,128083,128365,128366,128367,128383,9990,128386,128387,128234,128235,128236,128237,128193,128194,128196,128463,128464,128452,8987,128430,128432,128434,128435,128436,128427,128428,9991,9997,128398,9996,128076,128077,128078,9756,9758,9757,9759,128400,9786,128528,9785,128163,9760,127987,127985,9992,9788,128167,10052,128326,10014,128328,10016,10017,9770,9775,2384,9784,9800,9801,9802,9803,9804,9805,9806,9807,9808,9809,9810,9811,128624,128629,9679,128318,9632,9633,128912,10065,10066,11047,10731,9670,10070,11045,8999,11193,8984,127989,127990,128630,128631,0,9450,9312,9313,9314,9315,9316,9317,9318,9319,9320,9321,9471,10102,10103,10104,10105,10106,10107,10108,10109,10110,10111,128610,128608,128609,128611,128606,128604,128605,128607,183,8226,9642,9898,128902,128904,9673,9678,128319,9642,9723,128962,10022,9733,10038,10036,10041,10037,11216,8982,10209,8977,11217,10026,10032,128336,128337,128338,128339,128340,128341,128342,128343,128344,128345,128346,128347,11184,11185,11186,11187,11188,11189,11190,11191,128618,128619,128597,128596,128599,128598,128592,128593,128594,128595,9003,8998,11160,11162,11161,11163,11144,11146,11145,11147,129128,129130,129129,129131,129132,129133,129135,129134,129144,129146,129145,129147,129148,129149,129151,129150,8678,8680,8679,8681,11012,8691,11008,11009,11011,11010,129196,129197,128502,10004,128503,128505],J={};function Y(P){if(!J[945]){let T=0;for(const z in ke){const W=ke[z];if(1===W.length){let fe=0;if(T<54)fe=97+T,T>25&&(fe-=58),52===T&&(fe=161),53===T&&(fe=206);else{const Me=T-54;switch(fe=163+Me,Me){case 75:fe=197;break;case 76:fe=229;break;case 80:fe=34;break;case 81:fe=36}}const we=W.charCodeAt(0);we>128&&(J[we]=fe)}if(++T>136)break}}return J[P]??P}function he(P){if(1!==P.childNodes.length)return!1;const T=P.textContent;if(!T)return!1;let z="",W=-1;for(let fe=0;fe'+String.fromCharCode(Me)+"",W=fe)}return!(W<0||(W32?z[we-33]:0)||we)}return W}function me(P,T,z){z.plain=!0,z.simple_latex&&(z.text=Ye(z.text)),T.text(z.font&&z.font.isSymbol?Q(z.text,z.font.isSymbol):z.text)}function X(P){return!P||P.indexOf("#")<0&&P.indexOf("{")<0}function B(P,T,z,W){let fe=0;const we=()=>(W.g||(W.g=P.append("svg:g")),W.g),Me=Fe=>{W.x+=Math.round(Fe)},je=(Fe,Ne,rt,St)=>{W.rect?(W.rect.x1=Math.min(W.rect.x1,Fe),W.rect.y1=Math.min(W.rect.y1,Ne),W.rect.x2=Math.max(W.rect.x2,rt),W.rect.y2=Math.max(W.rect.y2,St)):W.rect={x1:Fe,y1:Ne,x2:rt,y2:St},W.rect.last_y1=Ne,W.rect.width=W.rect.x2-W.rect.x1,W.rect.height=W.rect.y2-W.rect.y1,W.parent||(T.text_rect=W.rect)},Ge=Fe=>{je(W.x,W.y,W.x+Fe*W.fsize*.4,W.y),Me(Fe*W.fsize*.4)},lt=(Fe,Ne,rt,St)=>{Ne=Math.round(Ne),rt=Math.round(rt),(0,L.bk)(Fe.g,Ne,rt),Fe.rect.x1+=Ne,Fe.rect.x2+=Ne,Fe.rect.y1+=rt,Fe.rect.y2+=rt,St?je(W.x+Fe.rect.x1,W.y+Fe.rect.y1,W.x+Fe.rect.x2,W.y+Fe.rect.y2):je(Fe.rect.x1,Fe.rect.y1,Fe.rect.x2,Fe.rect.y2)},bt=()=>{const Fe=we();return 1!==fe||z||W.x||W.y?(0,L.bk)(Fe.append("svg:g"),W.x,W.y):Fe},te=(Fe,Ne,rt)=>{let St=0,pt=1,st=!1;Ne||(Ne="{"),rt||(rt="}");const vt=qt=>St+qt.length<=z.length&&z.slice(St,St+qt.length)===qt;if(Fe){if(!vt(Ne))return console.log(`not starting with ${Ne} in ${z}`),-1;z=z.slice(Ne.length)}for(;0!==pt&&StFe.append("svg:path").style("stroke",rt?"none":W.color||T.color).style("stroke-width",rt?null:Math.max(1,Math.round(W.fsize*(W.font.weight?.1:.07)))).style("fill",rt?W.color||T.color:"none").attr("d",Ne??null),tt=Fe=>({lvl:W.lvl+1,x:0,y:0,fsize:W.fsize*(Fe||1),color:W.color,font:W.font,parent:W,painter:W.painter});for(;z;){let Fe=z.length,Ne=null;for(let pt=0;pt=0&&st0){const pt=Fe===z.length&&0===fe&&!Ne;fe++;let st=Ye(z.slice(0,Fe)),vt=0,Yt=0;for(;vt0&&(Ge(vt),st=st.slice(vt));Yt0&&(st=st.slice(0,st.length-Yt)),st||pt){const Ot=(W.g||(pt?P:we())).append("svg:text");pt&&!W.g&&(W.g=Ot),W.ufont&&(W.font.setPainter(T.painter),W.font.setFont(W.g)),void 0!==W.bold&&W.g.attr("font-weight",W.bold?"bold":"normal"),void 0!==W.italic&&W.g.attr("font-style",W.italic?"italic":"normal"),Ot.attr("fill",W.color||T.color||null),W.fisze!==W.font.size&&Ot.attr("font-size",Math.round(W.fsize)),Ot.text(W.font&&W.font.isSymbol?Q(st,W.font.isSymbol):st);const Bn=(0,x.isNodeJs)()||x.settings.ApproxTextSize||T.fast?{height:1.2*W.fsize,width:He(st,W.font,W.fsize)}:(0,L.xh)(Ot,"nopadding");W.x&&Ot.attr("x",W.x),W.y&&Ot.attr("y",W.y);const Mn=1===st.length&&!W.font.isMonospace()&&"lfij".indexOf(st)>=0?.1*W.fsize:0;je(W.x,W.y-.8*Bn.height,W.x+Bn.width,W.y+.2*Bn.height),pt?W.deco?(Ot.attr("text-decoration",W.deco),delete W.deco):W.xgap=Mn:(Me(Bn.width+Mn),Ge(Yt),W.xgap=0)}else Ge(Yt)}if(!Ne)return!0;if(z=z.slice(Fe+Ne.name.length),fe++,Ne.accent){const pt=te();if(-1===pt)return!1;const st=bt(),vt=tt(),Yt=1!==pt.length?1:pt>="a"&&pt<="z"&&"tdbfhkli".indexOf(pt)<0?.75:.9;B(st,T,pt,vt);const qt=.6*W.fsize,Ot=Math.round(vt.rect.y1*Yt),Bn=Math.round(.1*W.fsize),Mn=2*Bn,bn=`a${Bn},${Bn},0,0,1,${Mn},0a${Bn},${Bn},0,0,1,${-Mn},0z`;let Dn=0,$n=vt.rect.width;Ne.hasw&&$n0?bn/2:0,Dn-Bn.rect.y1,!0),Ot&&Ot.attr("d",`M0,${Math.round(Dn)}h${Math.round(Mn-.1*W.fsize)}`),Me(Mn),delete W.twolines;continue}const rt=pt=>{const st={};if(pt&&(z="{"+z,st[pt]=te("low"===pt?"_":"^"),-1===st[pt]))return!1;for(;z;)if("_"===z[0]){if(z=z.slice(1),st.low=st.low?-1:te("_"),-1===st.low)return console.log(`error with ${Ne.name} low limit`),!1}else{if("^"!==z[0])break;if(z=z.slice(1),st.up=st.up?-1:te("^"),-1===st.up)return console.log(`error with ${Ne.name} upper limit ${z}`),!1}return st};if(Ne.low_up){const pt=rt(Ne.low_up);if(!pt)return!1;const st=W.x,vt=.03*W.fsize,Yt=.25*W.fsize;let qt,Ot,Bn=0,Mn=0,bn=-W.fsize;pt.up&&(qt=tt(.6),B(we(),T,pt.up,qt)),pt.low&&(Ot=tt(.6),B(we(),T,pt.low,Ot)),qt&&(Ot||(bn=Math.min(bn,W.rect.last_y1)),lt(qt,st+vt,bn-qt.rect.y1-.1*W.fsize),Bn=qt.rect.width),Ot&&(lt(Ot,st+vt,Yt-Ot.rect.y2+.1*W.fsize),Mn=Ot.rect.width),Me(vt+Math.max(Bn,Mn));continue}if(Ne.special){const pt=rt()||{},st=bt(),vt=Je(st),Yt=Math.round(1.7*W.fsize),qt=Math.round(W.fsize),Ot=Math.round(.1*Yt);let Bn,Mn;if("#sum"===Ne.name?(Bn=Mn=qt/2,vt.attr("d",`M${qt},${Math.round(-.75*Yt)}h${-qt}l${Math.round(.4*qt)},${Math.round(.3*Yt)}l${Math.round(-.4*qt)},${Math.round(.7*Yt)}h${qt}`)):(Bn=3*Ot,Mn=Ot,vt.attr("d",`M0,${Math.round(.25*Yt-Ot)}a${Ot},${Ot},0,0,0,${2*Ot},0v${2*Ot-Yt}a${Ot},${Ot},0,1,1,${2*Ot},0`)),je(W.x,W.y-.6*Yt,W.x+qt,W.y+.4*Yt),pt.low){const bn=tt(.6);B(st,T,pt.low,bn),lt(bn,Mn-bn.rect.width/2,.25*Yt-bn.rect.y1,!0)}if(pt.up){const bn=tt(.6);B(st,T,pt.up,bn),lt(bn,Bn-bn.rect.width/2,-.75*Yt-bn.rect.y2,!0)}Me(qt);continue}if(Ne.braces){const pt=Ne.right,vt=te(!1,pt?Ne.name:"{",pt),Yt=bt(),qt=tt(),Ot=Je(Yt);B(Yt,T,vt,qt);const Bn=Je(Yt),Mn=Math.max(2,Math.round(.2*W.fsize)),bn=qt.rect,Dn=Math.round(bn.y2-bn.y1),$n=Math.round(bn.y1),Cn=Math.round(bn.width);switch(Ne.braces){case"||":Ot.attr("d",`M${Mn},${$n}v${Dn}`),Bn.attr("d",`M${3*Mn+Cn},${$n}v${Dn}`);break;case"[]":Ot.attr("d",`M${2*Mn},${$n}h${-Mn}v${Dn}h${Mn}`),Bn.attr("d",`M${2*Mn+Cn},${$n}h${Mn}v${Dn}h${-Mn}`);break;case"{}":Ot.attr("d",`M${2*Mn},${$n}a${Mn},${Mn},0,0,0,${-Mn},${Mn}v${Dn/2-2*Mn}a${Mn},${Mn},0,0,1,${-Mn},${Mn}a${Mn},${Mn},0,0,1,${Mn},${Mn}v${Dn/2-2*Mn}a${Mn},${Mn},0,0,0,${Mn},${Mn}`),Bn.attr("d",`M${2*Mn+Cn},${$n}a${Mn},${Mn},0,0,1,${Mn},${Mn}v${Dn/2-2*Mn}a${Mn},${Mn},0,0,0,${Mn},${Mn}a${Mn},${Mn},0,0,0,${-Mn},${Mn}v${Dn/2-2*Mn}a${Mn},${Mn},0,0,1,${-Mn},${Mn}`);break;default:Ot.attr("d",`M${Mn},${$n}a${4*Dn},${4*Dn},0,0,0,0,${Dn}`),Bn.attr("d",`M${3*Mn+Cn},${$n}a${4*Dn},${4*Dn},0,0,1,0,${Dn}`)}lt(qt,2*Mn,0,!0),je(W.x,W.y+bn.y1,W.x+4*Mn+bn.width,W.y+bn.y2),Me(4*Mn+bn.width);continue}if(Ne.deco){const pt=te(),st=bt(),vt=tt();vt.deco=Ne.deco,B(st,T,pt,vt);const Yt=vt.rect;if(vt.deco){const qt=Je(st),Ot=Math.round(Yt.width);switch(vt.deco){case"underline":qt.attr("d",`M0,${Math.round(Yt.y2)}h${Ot}`);break;case"overline":qt.attr("d",`M0,${Math.round(Yt.y1)}h${Ot}`);break;case"line-through":qt.attr("d",`M0,${Math.round(.45*Yt.y1+.55*Yt.y2)}h${Ot}`)}}lt(vt,0,0,!0),Me(Yt.width);continue}if("#bf{"===Ne.name||"#it{"===Ne.name){const pt=te();if(-1===pt)return!1;const st=tt();"#bf{"===Ne.name?st.bold=!st.bold:st.italic=!st.italic,B(we(),T,pt,st),lt(st,W.x,W.y),Me(st.rect.width);continue}let St=0;if(Ne.arg){const pt=z.indexOf("]{");if(pt<0)return console.log("missing argument for ",Ne.name),!1;if(St=z.slice(0,pt),"int"===Ne.arg){if(St=parseInt(St),!Number.isInteger(St))return console.log("wrong int argument",z.slice(0,pt)),!1}else if("float"===Ne.arg&&(St=parseFloat(St),!Number.isFinite(St)))return console.log("wrong float argument",z.slice(0,pt)),!1;z=z.slice(pt+2)}if("#kern["!==Ne.name&&"#lower["!==Ne.name)if("#color["!==Ne.name&&"#scale["!==Ne.name&&"#font["!==Ne.name){if(Ne.sqrt){const pt=te();if(-1===pt)return!1;const st=bt(),vt=tt();let Yt;Ne.arg&&(Yt=tt(.7),B(st,T,St.toString(),Yt));const qt=Je(st);B(st,T,pt,vt);const Ot=vt.rect,Bn=Math.round(Ot.height),Mn=Math.round(.1*Ot.height),bn=Math.round(Ot.width),Dn=Math.round((Ot.y1+Ot.y2)/2),$n=Math.round(.2*W.fsize),Cn=Math.round(Ot.y2);Yt&<(Yt,0,Dn-.3*Yt.fsize,!0),qt.attr("d",`M0,${Dn}h${Mn}l${Mn},${Cn-Dn-$n}l${Mn},${-Bn+$n}h${Math.round(.2*Bn+bn)}v${Mn}`),lt(vt,.4*Bn,0,!0),je(W.x,W.y+Ot.y1-.1*W.fsize,W.x+bn+.6*Bn,W.y+Ot.y2),Me(bn+.6*Bn)}}else{const pt=te();if(-1===pt)return!1;const st=tt();"#color["===Ne.name?st.color=W.painter.getColor(St):"#font["===Ne.name?(st.font=new ve.qg(St),st.ufont=!0):st.fsize*=St,B(we(),T,pt,st),lt(st,W.x,W.y),Me(st.rect.width)}else{const pt=te();if(-1===pt)return!1;const st=tt();B(we(),T,pt,st);let vt=0,Yt=0;"kern["===Ne.name?vt=St:Yt=St,lt(st,W.x+vt*st.rect.width,W.y+Yt*st.rect.height),Me(st.rect.width*(vt>0?1+St:1))}}return!0}function $(P,T,z){return B(T,z,z.text,{lvl:0,g:T,x:0,y:0,dx:0,dy:-.1,fsize:z.font_size,font:z.font,parent:null,painter:P})}let g;function E(){return _.apply(this,arguments)}function _(){return(_=(0,Te.A)(function*(){const P=void 0!==g;if(!P&&typeof globalThis.MathJax<"u")return globalThis.MathJax;P||(g=[]);const T=new Promise(fe=>{g?g.push(fe):fe(globalThis.MathJax)});if(P)return T;const z={scale:1,minScale:.5,mtextInheritFont:!1,merrorInheritFont:!0,mathmlSpacing:!1,skipAttributes:{},exFactor:.5,displayAlign:"center",displayIndent:"0",fontCache:"local",localID:null,internalSpeechTitles:!0,titleID:0};if(!(0,x.isNodeJs)()){window.MathJax={options:{enableMenu:!1},loader:{load:["[tex]/color","[tex]/upgreek","[tex]/mathtools","[tex]/physics"]},tex:{packages:{"[+]":["color","upgreek","mathtools","physics"]}},svg:z,startup:{ready(){MathJax.startup.defaultReady();const we=g;g=void 0,we.forEach(Me=>Me(globalThis.MathJax))}}};let fe="../mathjax/3.2.0";return x.browser.webwindow&&x.source_dir.indexOf("https://root.cern/js")<0&&x.source_dir.indexOf("https://jsroot.gsi.de")<0&&(fe="mathjax"),(0,x.loadScript)(x.source_dir+fe+"/es5/tex-svg.js").catch(()=>(0,x.loadScript)("https://cdn.jsdelivr.net/npm/mathjax@3.2.0/es5/tex-svg.js")).then(()=>T)}let W;return(0,L.lf)().then(fe=>(W=fe.JSDOM,Se.e(598).then(Se.t.bind(Se,3598,19)))).then(fe=>(fe.init({loader:{load:["input/tex","output/svg","[tex]/color","[tex]/upgreek","[tex]/mathtools","[tex]/physics"]},tex:{packages:{"[+]":["color","upgreek","mathtools","physics"]}},svg:z,config:{JSDOM:W},startup:{typeset:!1,ready(){const we=MathJax;we.startup.registerConstructor("jsdomAdaptor",()=>new we._.adaptors.HTMLAdaptor.HTMLAdaptor((new we.config.config.JSDOM).window)),we.startup.useAdaptor("jsdomAdaptor",!0),we.startup.defaultReady();const Me=g;g=void 0,Me.forEach(je=>je(we))}}}),T))})).apply(this,arguments)}const v={"#LT":"\\langle","#GT":"\\rangle","#club":"\\clubsuit","#spade":"\\spadesuit","#heart":"\\heartsuit","#diamond":"\\diamondsuit","#voidn":"\\wp","#voidb":"f","#copyright":"(c)","#ocopyright":"(c)","#trademark":"TM","#void3":"TM","#oright":"R","#void1":"R","#3dots":"\\ldots","#lbar":"\\mid","#void8":"\\mid","#divide":"\\div","#Jgothic":"\\Im","#Rgothic":"\\Re","#doublequote":'"',"#plus":"+","#minus":"-","#/":"/","#upoint":".","#aa":"\\mathring{a}","#AA":"\\mathring{A}","#omicron":"o","#Alpha":"A","#Beta":"B","#Epsilon":"E","#Zeta":"Z","#Eta":"H","#Iota":"I","#Kappa":"K","#Mu":"M","#Nu":"N","#Omicron":"O","#Rho":"P","#Tau":"T","#Chi":"X","#varomega":"\\varpi","#corner":"?","#ltbar":"?","#bottombar":"?","#notsubset":"?","#arcbottom":"?","#cbar":"?","#arctop":"?","#topbar":"?","#arcbar":"?","#downleftarrow":"?","#splitline":"\\genfrac{}{}{0pt}{}","#it":"\\textit","#bf":"\\textbf","#frac":"\\frac","#left{":"\\lbrace","#right}":"\\rbrace","#left\\[":"\\lbrack","#right\\]":"\\rbrack","#\\[\\]{":"\\lbrack"," } ":"\\rbrack","#\\[":"\\lbrack","#\\]":"\\rbrack","#{":"\\lbrace","#}":"\\rbrace"," ":"\\;"},p={upDelta:"Updelta",upGamma:"Upgamma",upLambda:"Uplambda",upOmega:"Upomega",upPhi:"Upphi",upPi:"Uppi",upPsi:"Uppsi",upSigma:"Upsigma",upTheta:"Uptheta",upUpsilon:"Upupsilon",upXi:"Upxi",notcong:"ncong",notgeq:"ngeq",notgr:"ngtr",notless:"nless",notleq:"nleq",notsucc:"nsucc",notprec:"nprec",notsubseteq:"nsubseteq",notsupseteq:"nsupseteq",openclubsuit:"clubsuit",openspadesuit:"spadesuit",dasharrow:"dashrightarrow",comp:"circ",iiintop:"iiint",iintop:"iint",ointop:"oint"},C={Digamma:988,upDigamma:988,digamma:989,updigamma:989,Koppa:990,koppa:991,upkoppa:991,upKoppa:990,VarKoppa:984,upVarKoppa:984,varkoppa:985,upvarkoppa:985,varkappa:954,upvarkappa:954,varbeta:976,upvarbeta:976,Sampi:992,upSampi:992,sampi:993,upsampi:993,Stigma:986,upStigma:986,stigma:987,upstigma:987,San:1018,upSan:1018,san:1019,upsan:1019,Sho:1015,upSho:1015,sho:1016,upsho:1016,P:182,aa:176,bulletdashcirc:8887,circdashbullet:8886,downuparrows:8693,updownarrows:8645,dashdownarrow:8675,dashuparrow:8673,complement:8705,dbar:396,ddddot:8943,dddot:8943,ddots:8945,defineequal:8797,defineeq:8797,downdownharpoons:10597,downupharpoons:10607,updownharpoons:10606,upupharpoons:10595,hateq:8793,ldbrack:10214,rdbrack:10215,leadsfrom:8604,leftsquigarrow:8668,lightning:9735,napprox:8777,nasymp:8813,nequiv:8802,nsimeq:8772,nsubseteq:8840,nsubset:8836,notapprox:8777,notasymp:8813,notequiv:8802,notni:8716,notsimeq:8772,notsubseteq:8840,notsubset:8836,notsupseteq:8841,notsupset:8837,nsupset:8837,setdif:8726,simarrow:10610,t:8256,u:711,v:711,undercurvearrowright:10555,updbar:396,wwbar:8213,awointop:8754,awoint:8755,barintop:10780,barint:10779,cwintop:8753,cwint:8753,cwointop:8755,cwoint:8754,oiiintop:8752,oiiint:8752,oiintop:8751,oiint:8751,slashintop:10767,slashint:10767},I=['"',"'","`","=","~"];function Z(P,T,z,W,fe,we){let Me=parseInt(z.attr("width")),je=parseInt(z.attr("height"));if(Number.isInteger(je)&&Number.isInteger(Me))we>0&&(Me/=we,je/=we,z.attr("width",Math.round(Me)).attr("height",Math.round(je)));else{const Je=(0,L.xh)(T,"bbox");Me=Je.width||Me||100,je=Je.height||je||10}we>0&&W.valign&&(W.valign=W.valign/we),null===W.valign&&(W.valign=(fe-je)/2);const Ge={x:1,y:1};let lt="x",bt="y";180===W.rotate?Ge.x=Ge.y=-1:(270===W.rotate||90===W.rotate)&&(Ge.x=270===W.rotate?-1:1,Ge.y=-Ge.x,lt="y",bt="x"),"middle"===W.align[0]?W[lt]+=Ge.x*(W.width-Me)/2:"end"===W.align[0]&&(W[lt]+=Ge.x*(W.width-Me)),"middle"===W.align[1]?W[bt]+=Ge.y*(W.height-je)/2:"bottom"===W.align[1]?W[bt]+=Ge.y*(W.height-je):"bottom-base"===W.align[1]&&(W[bt]+=Ge.y*(W.height-je-W.valign));let te=(0,L.bk)(W.x,W.y)||"";W.rotate&&(te&&(te+=" "),te+=`rotate(${W.rotate})`),T.attr("transform",te||null).attr("visibility",null)}function ee(P,T,z){return ue.apply(this,arguments)}function ue(){return(ue=(0,Te.A)(function*(P,T,z){const W=function U(P,T,z,W){if(2!==T){for(const Me in v)P=P.replace(new RegExp(Me,"g"),v[Me]);for(const Me in ke)Me.length>2&&(P=P.replace(new RegExp(Me,"g"),"\\"+Me.slice(1)));let fe="",we=!0;for(;P;){let Me=P.indexOf("#color[");if(Me<0&&we){fe=P;break}if(we=!1,0!==Me&&(fe+=Me<0?P:P.slice(0,Me),Me<0))break;if(Me=(P=P.slice(Me+7)).indexOf("]{"),Me<=0)break;const je=parseInt(P.slice(0,Me));if(!Number.isInteger(je))break;const Ge=W.getColor(je);let lt=1;for(P=P.slice(Me+2),Me=-1;lt&&++Me{P=P.replace(new RegExp(`(\\\\${fe})`,"g"),`\\unicode{0x${fe.charCodeAt(0).toString(16)}}`)});for(const fe in p)P=P.replace(new RegExp(`\\\\\\b${fe}\\b`,"g"),`\\${p[fe]}`)}return(0,x.isStr)(z)?`\\color{${z}}{${P}}`:P}(z.text,z.latex,z.color,P),fe={em:z.font.size,ex:z.font.size/2,family:z.font.name,scale:1,containerWidth:-1,lineWidth:1e5};return E().then(we=>we.tex2svgPromise(W,fe)).then(we=>{const Me=we.querySelector("svg");return T.append(()=>Me),function k(P,T,z,W){const fe=Ge=>{if(!Ge||!(0,x.isStr)(Ge)||Ge.length<3)return null;const lt=Ge.indexOf("ex");return lt<0||lt!==Ge.length-2?null:(Ge=parseFloat(Ge.slice(0,lt)),Number.isFinite(Ge)?Ge*W.font.size*.5:null)};let we=fe(z.getAttribute("width")),Me=fe(z.getAttribute("height")),je=z.getAttribute("style");if(je&&je.length>18&&0===je.indexOf("vertical-align:")){const Ge=je.indexOf("ex;");je=Ge>0&&Ge===je.length-3?fe(je.slice(16,je.length-1)):null}else je=null;if(we=!we||we<=.5?1:Math.round(we),Me=!Me||Me<=.5?1:Math.round(Me),z.setAttribute("width",we),z.setAttribute("height",Me),z.removeAttribute("style"),!(0,x.isNodeJs)()){const Ge=(0,L.xh)(T,"bbox");we=1.05*Ge.width,Me=1.05*Ge.height}W.valign=je,W.scale&&P.scaleTextDrawing(Math.max(we/W.width,Me/W.height),W.draw_g)}(P,T,Me,z),z.applyAttributesToMathJax=Z,!0})})).apply(this,arguments)}function V(P){return b.apply(this,arguments)}function b(){return(b=(0,Te.A)(function*(P){return E().then(T=>T.typesetPromise(P?[P]:void 0))})).apply(this,arguments)}},6983:(Yr,mt,Se)=>{"use strict";Se.r(mt),Se.d(mt,{Beta:()=>Sn,BetaDist:()=>Bs,BetaDistI:()=>yo,BetaIncomplete:()=>Me,BreitWigner:()=>yn,Chebyshev0:()=>In,Chebyshev1:()=>ci,Chebyshev10:()=>D,Chebyshev2:()=>Pi,Chebyshev3:()=>Si,Chebyshev4:()=>bi,Chebyshev5:()=>Jn,Chebyshev6:()=>Wi,Chebyshev7:()=>Ln,Chebyshev8:()=>Rs,Chebyshev9:()=>oe,ChebyshevN:()=>cn,FDist:()=>Mn,FDistI:()=>Dn,Gamma:()=>$,GammaDist:()=>ii,Gaus:()=>Cn,InvPi:()=>Ut,Landau:()=>U,LaplaceDist:()=>ai,LaplaceDistI:()=>zi,LogNormal:()=>ss,Pi:()=>sn,PiOver2:()=>xn,PiOver4:()=>wn,Polynomial1eval:()=>He,Polynomialeval:()=>Re,Prob:()=>$n,Sq:()=>_t,Student:()=>ti,StudentI:()=>Lr,TwoPi:()=>tn,beta:()=>V,beta_cdf_c:()=>Ge,beta_pdf:()=>ue,beta_quantile:()=>je,breitwigner_cdf:()=>tt,breitwigner_cdf_c:()=>Je,cauchy_cdf:()=>Ne,cauchy_cdf_c:()=>Fe,cauchy_pdf:()=>rt,chisquared_cdf:()=>lt,chisquared_cdf_c:()=>b,chisquared_pdf:()=>Bn,crystalball_cdf:()=>un,crystalball_cdf_c:()=>kn,crystalball_function:()=>Ht,crystalball_pdf:()=>Nt,erf:()=>J,erfc:()=>F,expo:()=>ye,exponential_cdf:()=>Ot,exponential_cdf_c:()=>qt,fdistribution_cdf:()=>Dn,fdistribution_cdf_c:()=>bn,fdistribution_pdf:()=>Mn,gamma:()=>$,gamma_pdf:()=>pt,gamma_quantile:()=>te,gamma_quantile_c:()=>bt,gaus:()=>xt,gausn:()=>K,gaussian_cdf:()=>me,gaussian_cdf_c:()=>Q,gaussian_pdf:()=>St,gausxy:()=>ge,getTEfficiencyBoundaryFunc:()=>it,igam:()=>p,igamc:()=>v,igami:()=>C,inc_beta:()=>we,inc_gamma:()=>Z,inc_gamma_c:()=>k,incbet:()=>W,incbi:()=>fe,landau:()=>Pe,landau_pdf:()=>I,landaun:()=>At,lgam:()=>Ve,lgamma:()=>ee,lognormal_cdf:()=>he,lognormal_cdf_c:()=>Y,lognormal_pdf:()=>X,ndtri:()=>g,normal_cdf:()=>me,normal_cdf_c:()=>Q,normal_pdf:()=>B,normal_quantile:()=>E,normal_quantile_c:()=>_,pseries:()=>z,stirf:()=>De,tdistribution_cdf:()=>vt,tdistribution_cdf_c:()=>st,tdistribution_pdf:()=>Yt,tgamma:()=>$});const Te=11102230246251565e-32,x=-708.3964185322641,L=709.782712893384,ve=108.11685576785767,ke=4503599627370496,ot=2220446049250313e-31,Ye=1.4142135623730951,Ze=3.141592653589793;function Re(qe,nt,at){if(!at)return nt[0];let ut=nt[0];for(let Qt=1;Qt<=at;++Qt)ut=ut*qe+nt[Qt];return ut}function He(qe,nt,at){if(!at)return nt[0];let ut=qe+nt[0];for(let Qt=1;Qt=Number.MAX_VALUE||qe==Number.POSITIVE_INFINITY)return Number.POSITIVE_INFINITY;if(qe<-34)return at=-qe,Qt=Ve(at),nt=Math.floor(at),nt===at||(vn=at-nt,vn>.5&&(nt+=1,vn=nt-at),vn=at*Math.sin(Math.PI*vn),vn<1e-300)?Number.POSITIVE_INFINITY:(vn=Math.log(Math.PI)-Math.log(vn)-Qt,vn);if(qe<13){for(vn=1,nt=0,ut=qe;ut>=3;)nt-=1,ut=qe+nt,vn*=ut;for(;ut<2;){if(ut<1e-300)return Number.POSITIVE_INFINITY;vn/=ut,nt+=1,ut=qe+nt}return vn<0&&(vn=-vn),2===ut?Math.log(vn):(nt-=2,nt=(qe+=nt)*Re(qe,Hn,5)/He(qe,Vn,6),Math.log(vn)+nt)}return qe>2556348e299?Number.POSITIVE_INFINITY:(at=(qe-.5)*Math.log(qe)-qe+.9189385332046728,qe>1e8||(nt=1/(qe*qe),at+=qe>=1e3?((.0007936507936507937*nt-.002777777777777778)*nt+.08333333333333333)/qe:Re(nt,[.0008116141674705085,-.0005950619042843014,.0007936503404577169,-.002777777777300997,.08333333333333319],4)/qe),at)}function De(qe){let nt,at,ut;const vn=Math.sqrt(2*Math.PI);return at=1/qe,at=1+at*Re(at,[.0007873113957930937,-.00022954996161337813,-.0026813261780578124,.0034722222160545866,.08333333333334822],4),nt=Math.exp(qe),qe>ve?(ut=Math.pow(qe,.5*qe-.25),nt=ut*(ut/nt)):nt=Math.pow(qe,qe-.5)/nt,nt=vn*nt*at,nt}function F(qe){let vn,en,jt,fn,Hn;return jt=qe<0?-qe:qe,jt<1?1-J(qe):(Hn=-qe*qe,Hn<-L||(Hn=Math.exp(Hn),jt<8?(vn=Re(jt,[2.461969814735305e-10,.5641895648310689,7.463210564422699,48.63719709856814,196.5208329560771,526.4451949954773,934.5285271719576,1027.5518868951572,557.5353353693994],8),en=He(jt,[13.228195115474499,86.70721408859897,354.9377788878199,975.7085017432055,1823.9091668790973,2246.3376081871097,1656.6630919416134,557.5353408177277],8)):(vn=Re(jt,[.5641895835477551,1.275366707599781,5.019050422511805,6.160210979930536,7.4097426995044895,2.9788666537210022],5),en=He(jt,[2.2605286322011726,9.396035249380015,12.048953980809666,17.08144507475659,9.608968090632859,3.369076451000815],6)),fn=Hn*vn/en,qe<0&&(fn=2-fn),0==fn)?qe<0?2:0:fn)}function J(qe){if(Math.abs(qe)>1)return 1-F(qe);const ut=qe*qe;return qe*Re(ut,[9.604973739870516,90.02601972038427,2232.005345946843,7003.325141128051,55592.30130103949],4)/He(ut,[33.56171416475031,521.3579497801527,4594.323829709801,22629.000061389095,49267.39426086359],5)}function Y(qe,nt,at,ut){void 0===ut&&(ut=0);const Qt=(Math.log(qe-ut)-nt)/(at*Ye);return Qt>1?.5*F(Qt):.5*(1-J(Qt))}function he(qe,nt,at,ut=0){const Qt=(Math.log(qe-ut)-nt)/(at*Ye);return Qt<-1?.5*F(-Qt):.5*(1+J(Qt))}function Q(qe,nt,at=0){const ut=(qe-at)/(nt*Ye);return ut>1?.5*F(ut):.5*(1-J(ut))}function me(qe,nt,at=0){const ut=(qe-at)/(nt*Ye);return ut<-1?.5*F(-ut):.5*(1+J(ut))}function X(qe,nt,at,ut=0){if(qe-ut<=0)return 0;const Qt=(Math.log(qe-ut)-nt)/at;return 1/((qe-ut)*Math.abs(at)*Math.sqrt(2*Ze))*Math.exp(-Qt*Qt/2)}function B(qe,nt=1,at=0){const ut=(qe-at)/nt;return 1/(Math.sqrt(2*Ze)*Math.abs(nt))*Math.exp(-ut*ut/2)}function $(qe){let nt,at,ut,Qt,vn=1;if(qe>=Number.MAX_VALUE)return qe;if(at=Math.abs(qe),at>33){if(qe<0){if(nt=Math.floor(at),nt==at)return Number.POSITIVE_INFINITY;if(Qt=Math.round(nt),1&Qt||(vn=-1),ut=at-nt,ut>.5&&(nt+=1,ut=at-nt),ut=at*Math.sin(Math.PI*ut),0==ut)return vn>0?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY;ut=Math.abs(ut),ut=Math.PI/(ut*De(at))}else ut=De(qe);return vn*ut}for(ut=1;qe>=3;)ut*=qe-=1;let en=!1;for(;qe<0&&!en;)qe>-1e-9?en=!0:(ut/=qe,qe+=1);for(;qe<2&&!en;)qe<1e-9?en=!0:(ut/=qe,qe+=1);return en?0==qe?Number.POSITIVE_INFINITY:ut/((1+.5772156649015329*qe)*qe):2==qe?ut:(nt=Re(qe-=2,[.00016011952247675185,.0011913514700658638,.010421379756176158,.04763678004571372,.20744822764843598,.4942148268014971,1],6),at=Re(qe,[-23158187332412014e-21,.0005396055804933034,-.004456419138517973,.011813978522206043,.035823639860549865,-.23459179571824335,.0714304917030273,1],7),ut*nt/at)}function g(qe){if(qe<=0)return Number.NEGATIVE_INFINITY;if(qe>=1)return Number.POSITIVE_INFINITY;const fn=.1353352832366127;let Hi,_r,Li,Hn=1,Vn=qe;if(Vn>1-fn&&(Vn=1-Vn,Hn=0),Vn>fn)return Vn-=.5,_r=Vn*Vn,Hi=Vn+Vn*(_r*Re(_r,[-59.96335010141079,98.00107541859997,-56.67628574690703,13.931260938727968,-1.2391658386738125],4)/He(_r,[1.9544885833814176,4.676279128988815,86.36024213908905,-225.46268785411937,200.26021238006066,-82.03722561683334,15.90562251262117,-1.1833162112133],8)),Hi*=2.5066282746310007,Hi;Hi=Math.sqrt(-2*Math.log(Vn));const Kr=Hi-Math.log(Hi)/Hi,os=1/Hi;return Li=Hi<8?os*Re(os,[4.0554489230596245,31.525109459989388,57.16281922464213,44.08050738932008,14.684956192885803,2.1866330685079025,-.1402560791713545,-.03504246268278482,-.0008574567851546854],8)/He(os,[15.779988325646675,45.39076351288792,41.3172038254672,15.04253856929075,2.504649462083094,-.14218292285478779,-.03808064076915783,-.0009332594808954574],8):os*Re(os,[3.2377489177694603,6.915228890689842,3.9388102529247444,1.3330346081580755,.20148538954917908,.012371663481782003,.00030158155350823543,26580697468673755e-22,6.239745391849833e-9],8)/He(os,[6.02427039364742,3.6798356385616087,1.3770209948908132,.21623699359449663,.013420400608854318,.00032801446468212774,28924786474538068e-22,6.790194080099813e-9],8),Hi=Kr-Li,0!=Hn&&(Hi=-Hi),Hi}function E(qe,nt){return nt*g(qe)}function _(qe,nt){return-nt*g(qe)}function v(qe,nt){if(qe<=0)return 0;if(nt<=0)return 1;if(nt<1||ntke&&(en*=ot,fn*=ot,jt*=ot,Hn*=ot)}while(Li>Te);return Vn*at}function p(qe,nt){if(qe<=0)return 1;if(nt<=0)return 0;if(nt>1&&nt>qe)return 1-v(qe,nt);let at=qe*Math.log(nt)-nt-Ve(qe);if(at<-L)return 0;at=Math.exp(at);let ut=qe,Qt=1,vn=1;do{ut+=1,Qt*=nt/ut,vn+=Qt}while(Qt/vn>Te);return vn*at/qe}function C(qe,nt){if(qe<=0)return console.error(`igami : Wrong domain for parameter a = ${qe} (must be > 0)`),0;if(nt<=0)return Number.POSITIVE_INFINITY;if(nt>=1)return 0;const at=Number.MAX_VALUE,ut=5*Te;let en,Hn,Vn,Hi,_r,Li,Qt=at,vn=0,jt=0,fn=1;for(Vn=1/(9*qe),Hn=1-Vn-g(nt)*Math.sqrt(Vn),en=qe*Hn*Hn*Hn,Hi=Ve(qe),_r=0;_r<10&&!(en>Qt||enfn)||(Hn=nt?(vn=en,fn=Hn,Li<0?(Li=0,Vn=.5):Vn=Li>1?.5*Vn+.5:(nt-jt)/(fn-jt),Li+=1):(Qt=en,jt=Hn,Li>0?(Li=0,Vn=.5):Li<-1?Vn*=.5:Vn=(nt-jt)/(fn-jt),Li-=1);return en}function I(qe,nt,at=0){if(nt<=0)return 0;const ut=(qe-at)/nt;let Qt,vn,en,jt;const fn=[.4259894875,-.124976255,.039842437,-.006298287635,.001511162253],Hn=[1,-.3388260629,.09594393323,-.01608042283,.003778942063],Vn=[.1788541609,.1173957403,.01488850518,-.001394989411,.0001283617211],Hi=[1,.7428795082,.3153932961,.06694219548,.008790609714],_r=[.1788544503,.09359161662,.006325387654,6611667319e-14,-2031049101e-15],Li=[1,.6097809921,.2560616665,.04746722384,.006957301675],Kr=[.9874054407,118.6723273,849.279436,-743.7792444,427.0262186],os=[1,106.8615961,337.6496214,2016.712389,1597.063511],ia=[1.003675074,167.5702434,4789.711289,21217.86767,-22324.9491],Vs=[1,156.9424537,3745.310488,9834.698876,66924.28357],hn=[1.000827619,664.9143136,62972.92665,475554.6998,-5743609.109],di=[1,651.4101098,56974.73333,165917.4725,-2815759.939],Rt=[.04166666667,-.01996527778,.02709538966],hi=[-1.84556867,-4.284640743];if(ut<-5.5){if(Qt=Math.exp(ut+1),Qt<1e-10)return 0;vn=Math.exp(-1/Qt),en=Math.sqrt(Qt),jt=vn/en*.3989422803*(1+(Rt[0]+(Rt[1]+Rt[2]*Qt)*Qt)*Qt)}else ut<-1?(Qt=Math.exp(-ut-1),jt=Math.exp(-Qt)*Math.sqrt(Qt)*(fn[0]+(fn[1]+(fn[2]+(fn[3]+fn[4]*ut)*ut)*ut)*ut)/(Hn[0]+(Hn[1]+(Hn[2]+(Hn[3]+Hn[4]*ut)*ut)*ut)*ut)):ut<1?jt=(Vn[0]+(Vn[1]+(Vn[2]+(Vn[3]+Vn[4]*ut)*ut)*ut)*ut)/(Hi[0]+(Hi[1]+(Hi[2]+(Hi[3]+Hi[4]*ut)*ut)*ut)*ut):ut<5?jt=(_r[0]+(_r[1]+(_r[2]+(_r[3]+_r[4]*ut)*ut)*ut)*ut)/(Li[0]+(Li[1]+(Li[2]+(Li[3]+Li[4]*ut)*ut)*ut)*ut):ut<12?(Qt=1/ut,jt=Qt*Qt*(Kr[0]+(Kr[1]+(Kr[2]+(Kr[3]+Kr[4]*Qt)*Qt)*Qt)*Qt)/(os[0]+(os[1]+(os[2]+(os[3]+os[4]*Qt)*Qt)*Qt)*Qt)):ut<50?(Qt=1/ut,jt=Qt*Qt*(ia[0]+(ia[1]+(ia[2]+(ia[3]+ia[4]*Qt)*Qt)*Qt)*Qt)/(Vs[0]+(Vs[1]+(Vs[2]+(Vs[3]+Vs[4]*Qt)*Qt)*Qt)*Qt)):ut<300?(Qt=1/ut,jt=Qt*Qt*(hn[0]+(hn[1]+(hn[2]+(hn[3]+hn[4]*Qt)*Qt)*Qt)*Qt)/(di[0]+(di[1]+(di[2]+(di[3]+di[4]*Qt)*Qt)*Qt)*Qt)):(Qt=1/(ut-ut*Math.log(ut)/(ut+1)),jt=Qt*Qt*(1+(hi[0]+hi[1]*Qt)*Qt));return jt/nt}function U(qe,nt,at,ut){if(at<=0)return 0;const Qt=I((qe-nt)/at,1,0);return ut?Qt/at:Qt}function k(qe,nt){return v(qe,nt)}function Z(qe,nt){return p(qe,nt)}function ee(qe){return Ve(qe)}function ue(qe,nt,at){if(qe<0||qe>1)return 0;if(0==qe){if(nt<1)return Number.POSITIVE_INFINITY;if(nt>1)return 0;if(1==nt)return at}if(1==qe){if(at<1)return Number.POSITIVE_INFINITY;if(at>1)return 0;if(1==at)return nt}return Math.exp(ee(nt+at)-ee(nt)-ee(at)+Math.log(qe)*(nt-1)+Math.log1p(-qe)*(at-1))}function V(qe,nt){return Math.exp(ee(qe)+ee(nt)-ee(qe+nt))}function b(qe,nt,at=0){return k(.5*nt,.5*(qe-at))}function z(qe,nt,at){let ut,Qt,vn,en,jt;const fn=1/qe;vn=(1-nt)*at,en=vn/(qe+1);const Hn=en;Qt=vn,jt=2,ut=0;const Vn=Te*fn;for(;Math.abs(en)>Vn;)vn=(jt-nt)*at/jt,Qt*=vn,en=Qt/(qe+jt),ut+=en,jt+=1;return ut+=Hn,ut+=fn,vn=qe*Math.log(at),qe+nt=1?1:(Vn=0,fn=1-at,at>qe/(qe+nt)?(Vn=1,ut=nt,Qt=qe,jt=at,en=fn):(ut=qe,Qt=nt,jt=fn,en=at),1==Vn&&Qt*en<=1&&en<=.95?vn=z(ut,Qt,en):(Hn=en*(ut+Qt-2)-(ut-1),fn=Hn<0?function P(qe,nt,at){let ut,Qt,vn,en,jt,fn,Hn,Vn,Hi,_r,Li,Kr,os,ia,Vs,hn,di,Rt,hi;const Pn=3*Te;Vn=qe,Hi=qe+nt,_r=qe,Li=qe+1,Kr=1,os=nt-1,ia=Li,Vs=qe+2,en=0,Hn=1,vn=1,fn=1,Rt=1,hn=1,hi=0;do{if(ut=-at*Vn*Hi/(_r*Li),Qt=vn+en*ut,jt=fn+Hn*ut,en=vn,vn=Qt,Hn=fn,fn=jt,ut=at*Kr*os/(ia*Vs),Qt=vn+en*ut,jt=fn+Hn*ut,en=vn,vn=Qt,Hn=fn,fn=jt,0!=jt&&(hn=Qt/jt),0!=hn?(di=Math.abs((Rt-hn)/hn),Rt=hn):di=1,dike&&(en*=ot,vn*=ot,Hn*=ot,fn*=ot),(Math.abs(jt)ke&&(fn*=ot,jt*=ot,Hi*=ot,Vn*=ot),(Math.abs(Hn)(di&&(fn=fn<=Te?1-Te:1-fn),fn);if(hn=0,at<=0)return 0;if(at>=1)return 1;if(Hn=0,os=0,Vn=1,ia=1,hi=0,qe<=1||nt<=1)Kr=1e-6,di=0,ut=qe,Qt=nt,vn=at,fn=ut/(ut+Qt),jt=W(ut,Qt,fn);else{if(Kr=1e-4,_r=-g(at),at>.5?(di=1,ut=nt,Qt=qe,vn=1-at,_r=-_r):(di=0,ut=qe,Qt=nt,vn=at),Hi=(_r*_r-3)/6,fn=2/(1/(2*ut-1)+1/(2*Qt-1)),en=_r*Math.sqrt(fn+Hi)/fn-(1/(2*Qt-1)-1/(2*ut-1))*(Hi+5/6-2/(3*fn)),en*=2,en0;){if(Pn){for(Rt=0,Li=.5,hn=0;hn<100;hn++){if(0!=hn){if(fn=Hn+Li*(Vn-Hn),1==fn&&(fn=1-Te),0==fn&&(Li=.5,fn=Hn+Li*(Vn-Hn),0==fn))return Fn();if(jt=W(ut,Qt,fn),_r=(Vn-Hn)/(Vn+Hn),Math.abs(_r)3?1-(1-Li)*(1-Li):Rt>1?.5*Li+.5:(vn-jt)/(ia-os),Rt+=1,Hn>.75){1==di?(di=0,ut=qe,Qt=nt,vn=at):(di=1,ut=nt,Qt=qe,vn=1-at),fn=1-fn,jt=W(ut,Qt,fn),Hn=0,os=0,Vn=1,ia=1;continue}}else{if(Vn=fn,1==di&&Vn0?(Rt=0,Li=.5):Rt<-3?Li*=Li:Rt<-1?Li*=.5:Li=(jt-vn)/(ia-os),Rt-=1}}if(Hn>=1)return fn=1-Te,Fn();if(fn<=0)return fn=0,Fn();break}if(Pn=!0,hi)return Fn();for(hi=1,Hi=Ve(ut+Qt)-Ve(ut)-Ve(Qt),hn=0;hn<8&&(0!=hn&&(jt=W(ut,Qt,fn)),jtia?(fn=Vn,jt=ia):jtL||(en=Math.exp(en),en=(jt-vn)/en,Vs=fn-en,Vs<=Hn&&(jt=(fn-Hn)/(Vn-Hn),Vs=Hn+.5*jt*(fn-Hn),Vs<=0))||Vs>=Vn&&(jt=(Vn-fn)/(Vn-Hn),Vs=Vn-.5*jt*(Vn-fn),Vs>=1))break;if(fn=Vs,Math.abs(en/fn)<128*Te)return Fn()}Kr=256*Te}return Fn()}function we(qe,nt,at){return W(nt,at,qe)}const Me=we;function je(qe,nt,at){return fe(nt,at,qe)}function Ge(qe,nt,at){return we(1-qe,at,nt)}function lt(qe,nt,at=0){return Z(.5*nt,.5*(qe-at))}function bt(qe,nt,at){return at*C(nt,qe)}function te(qe,nt,at){return at*C(nt,1-qe)}function Je(qe,nt,at=0){return.5-Math.atan(2*(qe-at)/nt)/Ze}function tt(qe,nt,at=0){return.5+Math.atan(2*(qe-at)/nt)/Ze}function Fe(qe,nt,at=0){return.5-Math.atan((qe-at)/nt)/Ze}function Ne(qe,nt,at=0){return.5+Math.atan((qe-at)/nt)/Ze}function rt(qe,nt=1,at=0){return nt/(Ze*((qe-at)*(qe-at)+nt*nt))}function St(qe,nt=1,at=0){const ut=(qe-at)/nt;return 1/(Math.sqrt(2*Ze)*Math.abs(nt))*Math.exp(-ut*ut/2)}function pt(qe,nt,at,ut=0){return qe-ut<0?0:qe-ut==0?1==nt?1/at:0:1==nt?Math.exp(-(qe-ut)/at)/at:Math.exp((nt-1)*Math.log((qe-ut)/at)-(qe-ut)/at-ee(nt))/at}function st(qe,nt,at=0){const ut=qe-at,Qt=ut>0?1:-1;return.5-.5*we(ut*ut/(nt+ut*ut),.5,.5*nt)*Qt}function vt(qe,nt,at=0){const ut=qe-at,Qt=ut>0?1:-1;return.5+.5*we(ut*ut/(nt+ut*ut),.5,.5*nt)*Qt}function Yt(qe,nt,at=0){return Math.exp(ee((nt+1)/2)-ee(nt/2))/Math.sqrt(Ze*nt)*Math.pow(1+(qe-at)*(qe-at)/nt,-(nt+1)/2)}function qt(qe,nt,at=0){return qe-at<0?1:Math.exp(-nt*(qe-at))}function Ot(qe,nt,at=0){return qe-at<0?0:-Math.expm1(-nt*(qe-at))}function Bn(qe,nt,at=0){return qe-at<0?0:qe==at&&0==nt/2-1?.5:Math.exp((nt/2-1)*Math.log((qe-at)/2)-(qe-at)/2-ee(nt/2))/2}function Mn(qe,nt,at,ut=0){return nt<0||at<0?Number.NaN:qe-ut<0?0:Math.exp(nt/2*Math.log(nt)+at/2*Math.log(at)+ee((nt+at)/2)-ee(nt/2)-ee(at/2)+(nt/2-1)*Math.log(qe-ut)-(nt+at)/2*Math.log(at+nt*(qe-ut)))}function bn(qe,nt,at,ut=0){return nt<0||at<0?Number.NaN:at/(at+nt*(qe-ut))>.9&&nt>1&&at>1?1-Dn(qe,nt,at,ut):we(at/(at+nt*(qe-ut)),.5*at,.5*nt)}function Dn(qe,nt,at,ut=0){if(nt<0||at<0)return Number.NaN;const Qt=nt*(qe-ut)/(at+nt*(qe-ut));return Qt>.9&&nt>1&&at>1?1-bn(qe,nt,at,ut):we(Qt,.5*nt,.5*at)}function $n(qe,nt){return nt<=0?0:qe<=0?qe<0?0:1:b(qe,nt,0)}function Cn(qe,nt,at,ut){if(!at)return 1e30;const Qt=(qe-nt)/at;if(Qt<-39||Qt>39)return 0;const vn=Math.exp(-.5*Qt*Qt);return ut?vn/(2.5066282746310002*at):vn}function yn(qe,nt,at){return at/((qe-nt)*(qe-nt)+at*at/4)/2/Math.PI}function Sn(qe,nt){return Math.exp(ee(qe)+ee(nt)-ee(qe+nt))}function ii(qe,nt,at=0,ut=1){return qe0?1-.5*Me(at/(at+qe*qe),.5*at,.5):.5*Me(at/(at+qe*qe),.5*at,.5)}function ss(qe,nt,at=0,ut=1){return qe1||nt<=0||at<=0)return 0;const ut=Sn(nt,at);return Math.pow(qe,nt-1)*Math.pow(1-qe,at-1)/ut}function yo(qe,nt,at){return qe<0||qe>1||nt<=0||at<=0?0:Me(qe,nt,at)}function xt(qe,nt,at){return qe.GetParValue(at+0)*Math.exp(-.5*Math.pow((nt-qe.GetParValue(at+1))/qe.GetParValue(at+2),2))}function K(qe,nt,at){return xt(qe,nt,at)/(Math.sqrt(2*Math.PI)*qe.GetParValue(at+2))}function ge(qe,nt,at,ut){return qe.GetParValue(ut+0)*Math.exp(-.5*Math.pow((nt-qe.GetParValue(ut+1))/qe.GetParValue(ut+2),2))*Math.exp(-.5*Math.pow((at-qe.GetParValue(ut+3))/qe.GetParValue(ut+4),2))}function ye(qe,nt,at){return Math.exp(qe.GetParValue(at+0)+qe.GetParValue(at+1)*nt)}function Pe(qe,nt,at){return U(nt,qe.GetParValue(at+1),qe.GetParValue(at+2),!1)}function At(qe,nt,at){return U(nt,qe.GetParValue(at+1),qe.GetParValue(at+2),!0)}function Ht(qe,nt,at,ut,Qt=0){if(ut<0)return 0;let vn=(qe-Qt)/ut;nt<0&&(vn=-vn);const en=Math.abs(nt);if(vn>-en)return Math.exp(-.5*vn*vn);const jt=at/en;return Math.exp(-.5*en*en)*Math.pow(jt/(jt-en-vn),at)}function Nt(qe,nt,at,ut,Qt=0){if(ut<0)return 0;if(at<=1)return Number.NaN;const vn=Math.abs(nt);return 1/(ut*(at/vn*1/(at-1)*Math.exp(-nt*nt/2)+Math.sqrt(Ze/2)*(1+J(vn/Math.sqrt(2)))))*Ht(qe,nt,at,ut,Qt)}function nn(qe,nt,at,ut,Qt=0){if(0==ut||0==nt)return 0;const vn=1==at,en=Math.abs(nt);let jt=(qe-Qt)/ut,fn=0,Hn=0;nt<0&&(jt=-jt);const Vn=Math.sqrt(Ze/2),Hi=Math.sqrt(2*Ze),_r=1/Math.sqrt(2);if(jt<=-en){const Li=Math.pow(at/en,at)*Math.exp(-.5*nt*nt),Kr=at/en-en;Hn=vn?-Li*Math.log(at/en)+Li*Math.log(Kr-jt):at/en*(1/(at-1))*Math.exp(-nt*nt/2)-Li/(at-1)*Math.pow(Kr-jt,1-at),fn=Vn*(1+J(en*_r))}else fn=Q(jt,1),fn*=Hi,Hn=0;return ut*(fn+Hn)}function un(qe,nt,at,ut,Qt=0){if(at<=1)return Number.NaN;const vn=Math.abs(nt),fn=ut*(at/vn*1/(at-1)*Math.exp(-nt*nt/2)+Math.sqrt(Ze/2)*(1+J(vn/Math.sqrt(2)))),Hn=nn(qe,nt,at,ut,Qt);return nt>0?1-Hn/fn:Hn/fn}function kn(qe,nt,at,ut,Qt=0){if(at<=1)return Number.NaN;const vn=Math.abs(nt),fn=ut*(at/vn*1/(at-1)*Math.exp(-nt*nt/2)+Math.sqrt(Ze/2)*(1+J(vn/Math.sqrt(2)))),Hn=nn(qe,nt,at,ut,Qt);return nt>0?Hn/fn:1-Hn/fn}function cn(qe,nt,at){let ut=0,Qt=0;const vn=2*nt;for(let en=qe;en>=1;en--){const jt=ut;ut=vn*ut-Qt+at[en],Qt=jt}return nt*ut-Qt+at[0]}function In(qe,nt){return nt}function ci(qe,nt,at){return nt+at*qe}function Pi(qe,nt,at,ut){return nt+at*qe+ut*(2*qe*qe-1)}function Si(qe,...nt){return cn(3,qe,nt)}function bi(qe,...nt){return cn(4,qe,nt)}function Jn(qe,...nt){return cn(5,qe,nt)}function Wi(qe,...nt){return cn(6,qe,nt)}function Ln(qe,...nt){return cn(7,qe,nt)}function Rs(qe,...nt){return cn(8,qe,nt)}function oe(qe,...nt){return cn(9,qe,nt)}function D(qe,...nt){return cn(10,qe,nt)}function O(qe,nt,at,ut){const Qt=(1-at)/2;return ut?nt==qe?1:je(1-Qt,nt+1,qe-nt):0==nt?0:je(Qt,nt,qe-nt+1)}function ie(qe,nt,at,ut){if(0==qe)return ut?1:0;const vn=nt/qe,jt=E(1-(1-at)/2,Math.sqrt(vn*(1-vn)/qe));return ut?vn+jt>1?1:vn+jt:vn-jt<0?0:vn-jt}function _e(qe,nt,at,ut){if(0==qe)return ut?1:0;const vn=nt/qe,en=E(1-(1-at)/2,1),jt=(nt+.5*en*en)/(qe+en*en),fn=en/(qe+en*en)*Math.sqrt(qe*vn*(1-vn)+en*en/4);return ut?jt+fn>1?1:jt+fn:jt-fn<0?0:jt-fn}function Oe(qe,nt,at,ut){const vn=E(1-(1-at)/2,1),en=(nt+.5*vn*vn)/(qe+vn*vn),jt=vn*Math.sqrt(en*(1-en)/(qe+vn*vn));return ut?en+jt>1?1:en+jt:en-jt<0?0:en-jt}function $e(qe,nt,at,ut){const en=(1-at)/2;let fn=0,Hn=1,Vn=0;if(nt>0&&nt<1){const Hi=$e(qe,0,at,ut);return Vn=($e(qe,1,at,ut)-Hi)*nt+Hi,Vn}for(;Math.abs(Hn-fn)>1e-9;){Vn=(fn+Hn)/2;let Hi=.5*ue(Vn,nt+1,qe-nt+1)/(qe+1);nt-1>=0&&(Hi+=Ge(Vn,nt,qe-nt+1)),Hi>(ut?en:1-en)?fn=Vn:Hn=Vn}return Vn}function et(qe,nt,at,ut,Qt,vn){const en=nt+Qt,jt=qe-nt+vn;return ut?en>0&&jt>0?je((1+at)/2,en,jt):1:en>0&&jt>0?je((1-at)/2,en,jt):0}function it(qe,nt){if(nt)return et;switch(qe){case 0:return O;case 1:return ie;case 2:return _e;case 3:return Oe;case 4:return console.log("Feldman-Cousins interval kFFC not supported; using kFCP"),O;case 8:return $e}return console.log(`Not recognized stat option ${qe}, using kFCP`),O}function _t(qe){return qe*qe}function sn(){return Math.PI}function tn(){return 2*Math.PI}function xn(){return Math.PI/2}function wn(){return Math.PI/4}function Ut(){return 1/Math.PI}},8872:(Yr,mt,Se)=>{"use strict";Se.r(mt),Se.d(mt,{BIT:()=>v,_ensureJSROOT:()=>ia,addMethods:()=>I,atob_func:()=>F,browser:()=>Y,btoa_func:()=>J,clTAnnotation:()=>xt,clTAttCanvas:()=>kn,clTAttFill:()=>Fe,clTAttLine:()=>tt,clTAttMarker:()=>Ne,clTAttText:()=>rt,clTAxis:()=>ci,clTBox:()=>ye,clTCanvas:()=>un,clTClonesArray:()=>Je,clTColor:()=>K,clTCutG:()=>vt,clTDiamond:()=>ii,clTF1:()=>D,clTF2:()=>O,clTF3:()=>ie,clTFile:()=>je,clTGaxis:()=>cn,clTGeoNode:()=>it,clTGeoNodeMatrix:()=>_t,clTGeoVolume:()=>et,clTGraph:()=>pt,clTGraph2DAsymmErrors:()=>qt,clTGraph2DErrors:()=>Yt,clTGraphPolar:()=>Ot,clTGraphPolargram:()=>Bn,clTGraphTime:()=>Mn,clTH1:()=>Si,clTH1D:()=>Jn,clTH1I:()=>bi,clTH2:()=>Wi,clTH2F:()=>Rs,clTH2I:()=>Ln,clTH3:()=>oe,clTHStack:()=>St,clTHashList:()=>lt,clTImagePalette:()=>Lr,clTKey:()=>Me,clTLatex:()=>Bs,clTLegend:()=>ai,clTLegendEntry:()=>zi,clTLine:()=>ge,clTList:()=>Ge,clTMap:()=>bt,clTMathText:()=>yo,clTMultiGraph:()=>st,clTNamed:()=>W,clTObjArray:()=>te,clTObjString:()=>we,clTObject:()=>z,clTPad:()=>nn,clTPaletteAxis:()=>ti,clTPave:()=>bn,clTPaveClass:()=>Sn,clTPaveLabel:()=>yn,clTPaveStats:()=>$n,clTPaveText:()=>Dn,clTPavesText:()=>Cn,clTPolyLine:()=>Pe,clTPolyLine3D:()=>At,clTPolyMarker3D:()=>Ht,clTProfile:()=>_e,clTProfile2D:()=>Oe,clTProfile3D:()=>$e,clTString:()=>fe,clTStyle:()=>Pi,clTText:()=>ss,clone:()=>p,constants:()=>Q,create:()=>Ut,createHistogram:()=>qe,createHttpRequest:()=>V,createTGraph:()=>ut,createTHStack:()=>Qt,createTMultiGraph:()=>vn,createTPolyLine:()=>at,decodeUrl:()=>ee,findFunction:()=>ue,gStyle:()=>X,getDocument:()=>B,getMethods:()=>jt,getPromise:()=>os,httpRequest:()=>b,injectCode:()=>$,internals:()=>ot,isArrayProto:()=>he,isBatchMode:()=>He,isFunc:()=>Hi,isNodeJs:()=>De,isObject:()=>Vn,isPromise:()=>Li,isRootCollection:()=>Hn,isStr:()=>_r,kInspect:()=>wn,kNoStats:()=>xn,kNoZoom:()=>tn,loadScript:()=>E,nsREX:()=>sn,parse:()=>U,parseMulti:()=>k,postponePromise:()=>Kr,prROOT:()=>T,registerMethods:()=>fn,setBatchMode:()=>Ve,setHistogramTitle:()=>nt,settings:()=>me,source_dir:()=>Ze,toJSON:()=>Z,version:()=>ve,version_date:()=>L,version_id:()=>x});var Te=Se(4882);const x="7.6.0",L="23/02/2024",ve=x+" "+L,ke=!!("object"==typeof process&&Vn(process.versions)&&process.versions.node&&process.versions.v8),ot={id_counter:1},Ye="file:///home/runner/work/phoenix/phoenix/node_modules/jsroot/modules/core.mjs";let Ze="";if(Ye&&_r(Ye)){const hn=Ye.indexOf("modules/core.mjs");hn>=0?(Ze=Ye.slice(0,hn),console.log(`Set jsroot source_dir to ${Ze}, ${ve}`)):(console.log(`jsroot bundle, ${ve}`),ot.ignore_v6=!0)}let Re=ke;function He(){return Re}function Ve(hn){Re=!!hn}function De(){return ke}const F=De()?hn=>Buffer.from(hn,"base64").toString("latin1"):globalThis?.atob,J=De()?hn=>Buffer.from(hn,"latin1").toString("base64"):globalThis?.btoa,Y={isFirefox:!0,isSafari:!1,isChrome:!1,isWin:!1,touches:!1,screenWidth:1200};function he(hn){if(hn.length<14||0!==hn.indexOf("[object "))return 0;const di=hn.indexOf("Array]");return di<0||di!==hn.length-6?0:14===hn.length?1:2}typeof document<"u"&&typeof window<"u"&&typeof navigator<"u"&&(navigator.userAgentData?.brands?.forEach(hn=>{"HeadlessChrome"===hn.brand?(Y.isChromeHeadless=!0,Y.chromeVersion=parseInt(hn.version)):"Chromium"===hn.brand&&(Y.isChrome=!0,Y.chromeVersion=parseInt(hn.version))}),Y.chromeVersion?(Y.isFirefox=!1,Y.isWin="Windows"===navigator.userAgentData.platform):(Y.isFirefox=navigator.userAgent.indexOf("Firefox")>=0,Y.isSafari=Object.prototype.toString.call(window.HTMLElement).indexOf("Constructor")>0,Y.isChrome=!!window.chrome,Y.isChromeHeadless=navigator.userAgent.indexOf("HeadlessChrome")>=0,Y.chromeVersion=Y.isChrome||Y.isChromeHeadless?parseInt(navigator.userAgent.match(/Chrom(?:e|ium)\/([0-9]+)\.([0-9]+)\.([0-9]+)\.([0-9]+)/)[1]):0,Y.isWin=navigator.userAgent.indexOf("Windows")>=0),Y.touches="ontouchend"in document,Y.screenWidth=window.screen?.width??1200);const Q={Render3D:{Default:0,WebGL:1,WebGLImage:2,SVG:3,fromString(hn){return"webgl"===hn||"gl"===hn?this.WebGL:"img"===hn?this.WebGLImage:"svg"===hn?this.SVG:this.Default}},Embed3D:{NoEmbed:-1,Default:0,Overlay:1,Embed:2,EmbedSVG:3,fromString(hn){return"embed"===hn?this.Embed:"overlay"===hn?this.Overlay:this.Default}},Latex:{Off:0,Symbols:1,Normal:2,MathJax:3,AlwaysMathJax:4,fromString(hn){if(!hn||!_r(hn))return this.Normal;switch(hn){case"off":return this.Off;case"symbols":return this.Symbols;case"normal":case"latex":case"exp":case"experimental":return this.Normal;case"MathJax":case"mathjax":case"math":return this.MathJax;case"AlwaysMathJax":case"alwaysmath":case"alwaysmathjax":return this.AlwaysMathJax}const di=parseInt(hn);return Number.isInteger(di)&&di>=this.Off&&di<=this.AlwaysMathJax?di:this.Normal}}},me={Render3D:Q.Render3D.Default,Render3DBatch:Q.Render3D.Default,Embed3D:Q.Embed3D.Default,Tooltip:!ke,TooltipAnimation:500,ContextMenu:!ke,Zooming:!ke,ZoomMouse:!ke,ZoomWheel:!ke,ZoomTouch:!ke,MoveResize:!Y.touches&&!ke,HandleKeys:!ke,DragAndDrop:!ke,DragGraphs:!0,ProgressBox:!ke,ToolBar:!ke&&"popup",ToolBarSide:"left",ToolBarVert:!1,CanEnlarge:!0,CanAdjustFrame:!1,ApproxTextSize:!1,OptimizeDraw:1,AutoStat:!0,FrameNDC:{},SmallPad:{width:150,height:100},Palette:57,Latex:Q.Latex.Normal,GeoGradPerSegm:6,GeoCompressComp:!0,IgnoreUrlOptions:!1,HierarchyLimit:250,DislpayKind:"simple",BrowserWidth:250,XValuesFormat:void 0,YValuesFormat:void 0,ZValuesFormat:void 0,HandleWrongHttpResponse:!1,UseStamp:!0,MaxRanges:200,WithCredentials:!1,SkipStreamerInfos:!1,OnlyLastCycle:!1,DarkMode:!1,PreferSavedPoints:!1,AxisTiltAngle:25,StripAxisLabels:!0,FuncAsCurve:!1},X={fName:"Modern",fOptLogx:0,fOptLogy:0,fOptLogz:0,fOptDate:0,fOptFile:0,fDateX:.01,fDateY:.01,fOptTitle:1,fCanvasColor:0,fPadColor:0,fPadBottomMargin:.1,fPadTopMargin:.1,fPadLeftMargin:.1,fPadRightMargin:.1,fPadGridX:!1,fPadGridY:!1,fPadTickX:0,fPadTickY:0,fPadBorderSize:2,fPadBorderMode:0,fCanvasBorderSize:2,fCanvasBorderMode:0,fStatColor:0,fStatStyle:1e3,fStatTextColor:1,fStatFontSize:0,fStatFont:42,fStatBorderSize:1,fStatFormat:"6.4g",fStatX:.98,fStatY:.935,fStatW:.2,fStatH:.16,fTitleAlign:23,fTitleColor:0,fTitleTextColor:1,fTitleBorderSize:0,fTitleFont:42,fTitleFontSize:.05,fTitleStyle:0,fTitleX:.5,fTitleY:.995,fTitleW:0,fTitleH:0,fFitFormat:"5.4g",fOptStat:1111,fOptFit:0,fNumberContours:20,fGridColor:0,fGridStyle:3,fGridWidth:1,fFrameFillColor:0,fFrameFillStyle:1001,fFrameLineColor:1,fFrameLineWidth:1,fFrameLineStyle:1,fFrameBorderSize:1,fFrameBorderMode:0,fEndErrorSize:2,fErrorX:.5,fHistMinimumZero:!1,fHistTopMargin:.05,fHistFillColor:0,fHistFillStyle:1001,fHistLineColor:602,fHistLineStyle:1,fHistLineWidth:1,fPaintTextFormat:"g",fTimeOffset:788918400,fLegendBorderSize:1,fLegendFont:42,fLegendTextSize:0,fLegendFillColor:0,fHatchesLineWidth:1,fHatchesSpacing:1,fCandleWhiskerRange:1,fCandleBoxRange:.5,fCandleScaled:!1,fViolinScaled:!0,fOrthoCamera:!1,fXAxisExpXOffset:0,fXAxisExpYOffset:0,fYAxisExpXOffset:0,fYAxisExpYOffset:0,fAxisMaxDigits:5,fStripDecimals:!0,fBarWidth:1};function B(){return ke?ot.nodejs_document:typeof document<"u"?document:"object"==typeof window?window.document:void 0}function $(hn){return g.apply(this,arguments)}function g(){return(g=(0,Te.A)(function*(hn){if(ke){let di,Rt;return Se.e(36).then(Se.t.bind(Se,9036,19)).then(hi=>(di=hi.tmpNameSync()+".js",Se.e(424).then(Se.t.bind(Se,9424,19)))).then(hi=>(Rt=hi,Rt.writeFileSync(di,hn),import("file://"+di))).finally(()=>Rt.unlinkSync(di))}if(typeof document<"u"){const di=document.getElementsByTagName("script");for(let hi=0;hi=0?ia():Promise.resolve(!0)).then(()=>{const hi=document.createElement("script");return hi.setAttribute("type","text/javascript"),hi.innerHTML=hn,document.head.appendChild(hi),Kr(!0,10)})}return!1})).apply(this,arguments)}function E(hn){return _.apply(this,arguments)}function _(){return(_=(0,Te.A)(function*(hn){if(!hn)return!0;if(_r(hn)&&hn.indexOf(";")>=0&&(hn=hn.split(";")),!_r(hn)){const Pn=hn,Fn=()=>!Pn.length||E(Pn.shift()).then(Fn,Fn);return Fn()}0===hn.indexOf("$$$")&&(0===(hn=hn.slice(3)).indexOf("style/")&&hn.indexOf(".css")<0&&(hn+=".css"),hn=Ze+hn);const di=hn.indexOf(".css")>0;if(ke)return di?null:0===hn.indexOf("http:")||0===hn.indexOf("https:")?b(hn,"text").then(Pn=>$(Pn)):0===hn.indexOf("./")?Se.e(424).then(Se.t.bind(Se,9424,19)).then(Pn=>$(Pn.readFileSync(hn))):import(hn);const Rt=Pn=>{if(Pn===hn)return!0;const Fn=Pn.indexOf(hn);return Fn>0&&Fn+hn.length===Pn.length&&"/"===Pn[Fn-1]};if(di){const Pn=document.getElementsByTagName("link");for(let Fn=0;Fn{hi.onload=()=>Pn(!0),hi.onerror=()=>{hi.remove(),Fn(Error(`Fail to load ${hn}`))},document.head.appendChild(hi)})})).apply(this,arguments)}function v(hn){return 1<=0)return di.clones[Fn]}else di={obj:[],clones:[],nofunc:Rt};const hi=he(Object.prototype.toString.apply(hn));if(1===hi){const Fn=[];di.obj.push(hn),di.clones.push(Fn);for(let _i=0;_i{if(null==Fn)return;if(_r(Fn)){if(hi||Fn.length<6||0!==Fn.indexOf("$ref:"))return;const Qr=parseInt(Fn.slice(5));return!Number.isInteger(Qr)||Qr<0||Qr>=Rt.length?void 0:(hi=!1,Rt[Qr])}if("object"!=typeof Fn)return;if(he(Object.prototype.toString.apply(Fn))>0){for(let Qr=0;Qr=Rt.length?void 0:(hi=!0,Rt[Qr])}if(!1!==hi&&gs>1&&"$arr"===Dr[0]&&"len"===Dr[1]){let Qr;switch(Fn.$arr){case"Int8":Qr=new Int8Array(Fn.len);break;case"Uint8":Qr=new Uint8Array(Fn.len);break;case"Int16":Qr=new Int16Array(Fn.len);break;case"Uint16":Qr=new Uint16Array(Fn.len);break;case"Int32":Qr=new Int32Array(Fn.len);break;case"Uint32":Qr=new Uint32Array(Fn.len);break;case"Float32":Qr=new Float32Array(Fn.len);break;case"Int64":case"Uint64":case"Float64":Qr=new Float64Array(Fn.len);break;default:Qr=new Array(Fn.len)}if(Qr.fill("Bool"!==Fn.$arr&&0),void 0!==Fn.b){const ro=F(Fn.b);if(!Qr.buffer)throw new Error("base64 coding supported only for native arrays with binary data");{const Zs=new DataView(Qr.buffer,Fn.o||0),Gi=Math.min(ro.length,Zs.byteLength);for(let Uo=0;Uo=0)){Rt.push(Fn),Fn._typename&&I(Fn);for(let Qr=0;Qr{if(Hi(Fn))return;if(null==Fn||!Vn(Fn))return Fn;if(he(Object.prototype.toString.apply(Fn))>0){const ro=new Array(Fn.length);for(let Zs=0;Zs=0)return{$ref:_i};const Dr=Object.keys(Fn),gs=Dr.length,Qr={};if(3===gs&&"$pair"===Dr[0]&&"first"===Dr[1]&&"second"===Dr[2])return Qr.$pair=Fn.$pair,Qr.first=hi(Fn.first),Qr.second=hi(Fn.second),Qr;Rt.push(Fn);for(let ro=0;ro"u")return di;hn=document.URL}di.url=hn;const Rt=hn.indexOf("?");if(Rt<0)return di;for(hn=decodeURI(hn.slice(Rt+1));hn;){let hi=0,Pn=0,Fn=-1,_i=-1;for(;hi=0&&(Pn=(Pn+1)%2),_i<0&&(_i=hi);break;case'"':Pn<=0&&(Pn=(Pn-1)%2),_i<0&&(_i=hi);break;case"=":_i<0&&Fn<0&&(Fn=hi)}hi++}if(Fn<0&&_i<0)di.opts[hn.slice(0,hi)]="";else if(Fn>0){let Dr=hn.slice(Fn+1,hi);("'"===Dr[0]||'"'===Dr[0])&&Dr[0]===Dr[Dr.length-1]&&(Dr=Dr.slice(1,Dr.length-1)),di.opts[hn.slice(0,Fn)]=Dr}if(hi>=hn.length||"#"===hn[hi])break;hn=hn.slice(hi+1)}return di}function ue(hn){if(Hi(hn))return hn;if(!_r(hn))return null;const di=hn.split(".");let Rt=globalThis;for(let hi=0;Rt&&hi{},Dr.error_callback=Hi(hi)?hi.bind(Dr):function(Zs){console.warn(Zs.message),this.http_callback(null)}.bind(Dr),di||(di="buf");let gs="GET",Qr=!0;const ro=di.indexOf(";sync");switch(ro>0&&(di=di.slice(0,ro),Qr=!1),di){case"head":gs="HEAD";break;case"posttext":gs="POST",di="text";break;case"postbuf":gs="POST",di="buf";break;case"post":case"multi":gs="POST"}return Dr.kind=di,me.WithCredentials&&(Dr.withCredentials=!0),me.HandleWrongHttpResponse&&"GET"===gs&&Hi(Dr.addEventListener)&&Dr.addEventListener("progress",function(Zs){Zs.lengthComputable&&this.expected_size&&Zs.loaded>this.expected_size&&(this.did_abort=!0,this.abort(),this.error_callback(Error(`Server sends more bytes ${Zs.loaded} than expected ${this.expected_size}. Abort I/O operation`),598))}.bind(Dr)),Dr.onreadystatechange=function(){if(!this.did_abort){if(2===this.readyState&&this.expected_size){const Zs=parseInt(this.getResponseHeader("Content-Length"));if(Number.isInteger(Zs)&&Zs>this.expected_size&&!me.HandleWrongHttpResponse)return this.did_abort=!0,this.abort(),this.error_callback(Error(`Server response size ${Zs} larger than expected ${this.expected_size}. Abort I/O operation`),599)}if(4===this.readyState){if(200!==this.status&&206!==this.status&&!Y.qt5&&(0!==this.status||0!==hn.indexOf("file://")&&0!==hn.indexOf("blob:")))return this.error_callback(Error(`Fail to load url ${hn}`),this.status);if(this.nodejs_checkzip&&"gzip"===this.getResponseHeader("content-encoding"))return Se.e(578).then(Se.t.bind(Se,7578,19)).then(Zs=>{const Gi=Zs.unzipSync(Buffer.from(this.response)),Uo=JSON.parse(Gi);return this.http_callback(U(Uo))});switch(this.kind){case"xml":return this.http_callback(this.responseXML);case"text":return this.http_callback(this.responseText);case"object":return this.http_callback(U(this.responseText));case"multi":return this.http_callback(k(this.responseText));case"head":return this.http_callback(this)}if(void 0===this.responseType)return this.http_callback(this.responseText);if("bin"===this.kind&&"byteLength"in this.response){const Zs=new Uint8Array(this.response);let Gi="";for(let Uo=0;Uo0&&(Dr.nodejs_checkzip=!0,Dr.responseType="arraybuffer"),Dr}if(De()){if(!Pn)throw Error("Not allowed to create http requests in node.js without promise");return Se.e(149).then(Se.t.bind(Se,9149,19)).then(Dr=>Fn(new Dr.default))}const _i=Fn(new XMLHttpRequest);return Pn?Promise.resolve(_i):_i}function b(hn,di,Rt){return P.apply(this,arguments)}function P(){return(P=(0,Te.A)(function*(hn,di,Rt){return new Promise((hi,Pn)=>{V(hn,di,hi,Pn,!0).then(Fn=>Fn.send(Rt||null))})})).apply(this,arguments)}const T="ROOT.",z="TObject",W="TNamed",fe="TString",we="TObjString",Me="TKey",je="TFile",Ge="TList",lt="THashList",bt="TMap",te="TObjArray",Je="TClonesArray",tt="TAttLine",Fe="TAttFill",Ne="TAttMarker",rt="TAttText",St="THStack",pt="TGraph",st="TMultiGraph",vt="TCutG",Yt="TGraph2DErrors",qt="TGraph2DAsymmErrors",Ot="TGraphPolar",Bn="TGraphPolargram",Mn="TGraphTime",bn="TPave",Dn="TPaveText",$n="TPaveStats",Cn="TPavesText",yn="TPaveLabel",Sn="TPaveClass",ii="TDiamond",ai="TLegend",zi="TLegendEntry",ti="TPaletteAxis",Lr="TImagePalette",ss="TText",Bs="TLatex",yo="TMathText",xt="TAnnotation",K="TColor",ge="TLine",ye="TBox",Pe="TPolyLine",At="TPolyLine3D",Ht="TPolyMarker3D",Nt="TAttPad",nn="TPad",un="TCanvas",kn="TAttCanvas",cn="TGaxis",In="TAttAxis",ci="TAxis",Pi="TStyle",Si="TH1",bi="TH1I",Jn="TH1D",Wi="TH2",Ln="TH2I",Rs="TH2F",oe="TH3",D="TF1",O="TF2",ie="TF3",_e="TProfile",Oe="TProfile2D",$e="TProfile3D",et="TGeoVolume",it="TGeoNode",_t="TGeoNodeMatrix",sn="ROOT::Experimental::",tn=-1111,xn=v(9),wn="inspect";function Ut(hn,di){const Rt=di||{};switch(hn){case z:C(Rt,{fUniqueID:0,fBits:0});break;case W:C(Rt,{fUniqueID:0,fBits:0,fName:"",fTitle:""});break;case Ge:case lt:C(Rt,{name:hn,arr:[],opt:[]});break;case In:C(Rt,{fNdivisions:510,fAxisColor:1,fLabelColor:1,fLabelFont:42,fLabelOffset:.005,fLabelSize:.035,fTickLength:.03,fTitleOffset:1,fTitleSize:.035,fTitleColor:1,fTitleFont:42});break;case ci:Ut(W,Rt),Ut(In,Rt),C(Rt,{fNbins:1,fXmin:0,fXmax:1,fXbins:[],fFirst:0,fLast:0,fBits2:0,fTimeDisplay:!1,fTimeFormat:"",fLabels:null,fModLabs:null});break;case tt:C(Rt,{fLineColor:1,fLineStyle:1,fLineWidth:1});break;case Fe:C(Rt,{fFillColor:0,fFillStyle:0});break;case Ne:C(Rt,{fMarkerColor:1,fMarkerStyle:1,fMarkerSize:1});break;case ge:Ut(z,Rt),Ut(tt,Rt),C(Rt,{fX1:0,fX2:1,fY1:0,fY2:1});break;case ye:Ut(z,Rt),Ut(tt,Rt),Ut(Fe,Rt),C(Rt,{fX1:0,fX2:1,fY1:0,fY2:1});break;case bn:Ut(ye,Rt),C(Rt,{fX1NDC:0,fY1NDC:0,fX2NDC:1,fY2NDC:1,fBorderSize:0,fInit:1,fShadowColor:1,fCornerRadius:0,fOption:"brNDC",fName:""});break;case rt:C(Rt,{fTextAngle:0,fTextSize:0,fTextAlign:22,fTextColor:1,fTextFont:42});break;case Dn:Ut(bn,Rt),Ut(rt,Rt),C(Rt,{fLabel:"",fLongest:27,fMargin:.05,fLines:Ut(Ge)});break;case $n:Ut(Dn,Rt),C(Rt,{fFillColor:X.fStatColor,fFillStyle:X.fStatStyle,fTextFont:X.fStatFont,fTextSize:X.fStatFontSize,fTextColor:X.fStatTextColor,fBorderSize:X.fStatBorderSize,fOptFit:0,fOptStat:0,fFitFormat:"",fStatFormat:"",fParent:null});break;case ai:Ut(bn,Rt),Ut(rt,Rt),C(Rt,{fColumnSeparation:0,fEntrySeparation:.1,fMargin:.25,fNColumns:1,fPrimitives:Ut(Ge),fName:bn,fBorderSize:X.fLegendBorderSize,fTextFont:X.fLegendFont,fTextSize:X.fLegendTextSize,fFillColor:X.fLegendFillColor});break;case ti:Ut(bn,Rt),C(Rt,{fAxis:Ut(cn),fH:null,fName:bn});break;case zi:Ut(z,Rt),Ut(rt,Rt),Ut(tt,Rt),Ut(Fe,Rt),Ut(Ne,Rt),C(Rt,{fLabel:"",fObject:null,fOption:"",fTextAlign:0,fTextColor:0,fTextFont:0});break;case ss:Ut(W,Rt),Ut(rt,Rt),C(Rt,{fLimitFactorSize:3,fOriginSize:.04});break;case Bs:Ut(ss,Rt),Ut(tt,Rt),C(Rt,{fX:0,fY:0});break;case we:Ut(z,Rt),C(Rt,{fString:""});break;case Si:Ut(W,Rt),Ut(tt,Rt),Ut(Fe,Rt),Ut(Ne,Rt),C(Rt,{fBits:8,fNcells:0,fXaxis:Ut(ci),fYaxis:Ut(ci),fZaxis:Ut(ci),fFillColor:X.fHistFillColor,fFillStyle:X.fHistFillStyle,fLineColor:X.fHistLineColor,fLineStyle:X.fHistLineStyle,fLineWidth:X.fHistLineWidth,fBarOffset:0,fBarWidth:1e3,fEntries:0,fTsumw:0,fTsumw2:0,fTsumwx:0,fTsumwx2:0,fMaximum:tn,fMinimum:tn,fNormFactor:0,fContour:[],fSumw2:[],fOption:"",fFunctions:Ut(Ge),fBufferSize:0,fBuffer:[],fBinStatErrOpt:0,fStatOverflows:2});break;case bi:case Jn:case"TH1L64":case"TH1F":case"TH1S":case"TH1C":Ut(Si,Rt),Rt.fArray=[];break;case Wi:Ut(Si,Rt),C(Rt,{fScalefactor:1,fTsumwy:0,fTsumwy2:0,fTsumwxy:0});break;case Ln:case"TH2L64":case Rs:case"TH2D":case"TH2S":case"TH2C":Ut(Wi,Rt),Rt.fArray=[];break;case oe:Ut(Si,Rt),C(Rt,{fTsumwy:0,fTsumwy2:0,fTsumwz:0,fTsumwz2:0,fTsumwxy:0,fTsumwxz:0,fTsumwyz:0});break;case"TH3I":case"TH3L64":case"TH3F":case"TH3D":case"TH3S":case"TH3C":Ut(oe,Rt),Rt.fArray=[];break;case St:Ut(W,Rt),C(Rt,{fHists:Ut(Ge),fHistogram:null,fMaximum:tn,fMinimum:tn});break;case pt:Ut(W,Rt),Ut(tt,Rt),Ut(Fe,Rt),Ut(Ne,Rt),C(Rt,{fFunctions:Ut(Ge),fHistogram:null,fMaxSize:0,fMaximum:tn,fMinimum:tn,fNpoints:0,fX:[],fY:[]});break;case"TGraphAsymmErrors":Ut(pt,Rt),C(Rt,{fEXlow:[],fEXhigh:[],fEYlow:[],fEYhigh:[]});break;case st:Ut(W,Rt),C(Rt,{fFunctions:Ut(Ge),fGraphs:Ut(Ge),fHistogram:null,fMaximum:tn,fMinimum:tn});break;case Bn:Ut(W,Rt),Ut(rt,Rt),Ut(tt,Rt),C(Rt,{fRadian:!0,fDegree:!1,fGrad:!1,fPolarLabelColor:1,fRadialLabelColor:1,fAxisAngle:0,fPolarOffset:.04,fPolarTextSize:.04,fRadialOffset:.025,fRadialTextSize:.035,fRwrmin:0,fRwrmax:1,fRwtmin:0,fRwtmax:2*Math.PI,fTickpolarSize:.02,fPolarLabelFont:62,fRadialLabelFont:62,fCutRadial:0,fNdivRad:508,fNdivPol:508});break;case Pe:Ut(z,Rt),Ut(tt,Rt),Ut(Fe,Rt),C(Rt,{fLastPoint:-1,fN:0,fOption:"",fX:null,fY:null});break;case cn:Ut(ge,Rt),Ut(rt,Rt),C(Rt,{fChopt:"",fFunctionName:"",fGridLength:0,fLabelColor:1,fLabelFont:42,fLabelOffset:.005,fLabelSize:.035,fName:"",fNdiv:12,fTickSize:.02,fTimeFormat:"",fTitle:"",fTitleOffset:1,fTitleSize:.035,fWmax:100,fWmin:0});break;case Nt:C(Rt,{fLeftMargin:X.fPadLeftMargin,fRightMargin:X.fPadRightMargin,fBottomMargin:X.fPadBottomMargin,fTopMargin:X.fPadTopMargin,fXfile:2,fYfile:2,fAfile:1,fXstat:.99,fYstat:.99,fAstat:2,fFrameFillColor:X.fFrameFillColor,fFrameFillStyle:X.fFrameFillStyle,fFrameLineColor:X.fFrameLineColor,fFrameLineWidth:X.fFrameLineWidth,fFrameLineStyle:X.fFrameLineStyle,fFrameBorderSize:X.fFrameBorderSize,fFrameBorderMode:X.fFrameBorderMode});break;case nn:Ut(z,Rt),Ut(tt,Rt),Ut(Fe,Rt),Ut(Nt,Rt),C(Rt,{fFillColor:X.fPadColor,fFillStyle:1001,fX1:0,fY1:0,fX2:1,fY2:1,fXtoAbsPixelk:1,fXtoPixelk:1,fXtoPixel:1,fYtoAbsPixelk:1,fYtoPixelk:1,fYtoPixel:1,fUtoAbsPixelk:1,fUtoPixelk:1,fUtoPixel:1,fVtoAbsPixelk:1,fVtoPixelk:1,fVtoPixel:1,fAbsPixeltoXk:1,fPixeltoXk:1,fPixeltoX:1,fAbsPixeltoYk:1,fPixeltoYk:1,fPixeltoY:1,fXlowNDC:0,fYlowNDC:0,fXUpNDC:0,fYUpNDC:0,fWNDC:1,fHNDC:1,fAbsXlowNDC:0,fAbsYlowNDC:0,fAbsWNDC:1,fAbsHNDC:1,fUxmin:0,fUymin:0,fUxmax:0,fUymax:0,fTheta:30,fPhi:30,fAspectRatio:0,fNumber:0,fLogx:X.fOptLogx,fLogy:X.fOptLogy,fLogz:X.fOptLogz,fTickx:X.fPadTickX,fTicky:X.fPadTickY,fPadPaint:0,fCrosshair:0,fCrosshairPos:0,fBorderSize:X.fPadBorderSize,fBorderMode:X.fPadBorderMode,fModified:!1,fGridx:X.fPadGridX,fGridy:X.fPadGridY,fAbsCoord:!1,fEditable:!0,fFixedAspectRatio:!1,fPrimitives:Ut(Ge),fExecs:null,fName:"pad",fTitle:"canvas"});break;case kn:C(Rt,{fXBetween:2,fYBetween:2,fTitleFromTop:1.2,fXdate:.2,fYdate:.3,fAdate:1});break;case un:Ut(nn,Rt),C(Rt,{fFillColor:X.fCanvasColor,fFillStyle:1001,fNumPaletteColor:0,fNextPaletteColor:0,fDISPLAY:"$DISPLAY",fDoubleBuffer:0,fRetained:!0,fXsizeUser:0,fYsizeUser:0,fXsizeReal:20,fYsizeReal:10,fWindowTopX:0,fWindowTopY:0,fWindowWidth:0,fWindowHeight:0,fBorderSize:X.fCanvasBorderSize,fBorderMode:X.fCanvasBorderMode,fCw:500,fCh:300,fCatt:Ut(kn),kMoveOpaque:!0,kResizeOpaque:!0,fHighLightColor:5,fBatch:!0,kShowEventStatus:!1,kAutoExec:!0,kMenuBar:!0});break;case et:Ut(W,Rt),Ut(tt,Rt),Ut(Fe,Rt),C(Rt,{fGeoAtt:0,fFinder:null,fMedium:null,fNodes:null,fNtotal:0,fNumber:0,fRefCount:0,fShape:null,fVoxels:null});break;case it:Ut(W,Rt),C(Rt,{fGeoAtt:0,fMother:null,fNovlp:0,fNumber:0,fOverlaps:null,fVolume:null});break;case _t:Ut(it,Rt),C(Rt,{fMatrix:null});break;case"TGeoTrack":Ut(z,Rt),Ut(tt,Rt),Ut(Ne,Rt),C(Rt,{fGeoAtt:0,fNpoints:0,fPoints:[]});break;case At:Ut(z,Rt),Ut(tt,Rt),C(Rt,{fLastPoint:-1,fN:0,fOption:"",fP:[]});break;case Ht:Ut(z,Rt),Ut(Ne,Rt),C(Rt,{fLastPoint:-1,fN:0,fName:"",fOption:"",fP:[]})}return Rt._typename=hn,I(Rt,hn),Rt}function qe(hn,di,Rt,hi){const Pn=Ut(hn);if(!Pn.fXaxis||!Pn.fYaxis||!Pn.fZaxis)return null;switch(Pn.fName="hist",Pn.fTitle="title",di&&C(Pn.fXaxis,{fNbins:di,fXmin:0,fXmax:di}),Rt&&C(Pn.fYaxis,{fNbins:Rt,fXmin:0,fXmax:Rt}),hi&&C(Pn.fZaxis,{fNbins:hi,fXmin:0,fXmax:hi}),parseInt(hn[2])){case 1:di&&(Pn.fNcells=di+2);break;case 2:di&&Rt&&(Pn.fNcells=(di+2)*(Rt+2));break;case 3:di&&Rt&&hi&&(Pn.fNcells=(di+2)*(Rt+2)*(hi+2))}if(Pn.fNcells>0){switch(hn[3]){case"C":Pn.fArray=new Int8Array(Pn.fNcells);break;case"S":Pn.fArray=new Int16Array(Pn.fNcells);break;case"I":Pn.fArray=new Int32Array(Pn.fNcells);break;case"F":Pn.fArray=new Float32Array(Pn.fNcells);break;case"L":case"D":Pn.fArray=new Float64Array(Pn.fNcells);break;default:Pn.fArray=new Array(Pn.fNcells)}Pn.fArray.fill(0)}return Pn}function nt(hn,di){if(hn)if(di.indexOf(";")<0)hn.fTitle=di;else{const Rt=di.split(";");hn.fTitle=Rt[0],Rt.length>1&&(hn.fXaxis.fTitle=Rt[1]),Rt.length>2&&(hn.fYaxis.fTitle=Rt[2]),Rt.length>3&&(hn.fZaxis.fTitle=Rt[3])}}function at(hn,di){const Rt=Ut(Pe);return hn&&(Rt.fN=hn,di?(Rt.fX=new Int32Array(hn),Rt.fY=new Int32Array(hn)):(Rt.fX=new Float32Array(hn),Rt.fY=new Float32Array(hn))),Rt}function ut(hn,di,Rt){const hi=C(Ut(pt),{fBits:1032,fName:"graph",fTitle:"title"});if(hn>0){hi.fMaxSize=hi.fNpoints=hn;const Pn=Vn(di)&&di.length===hn,Fn=Vn(Rt)&&Rt.length===hn;for(let _i=0;_i"u"&&(Rt.TestBit=function(Pn){return!!(this.fBits&Pn)},Rt.InvertBit=function(Pn){this.fBits=this.fBits^16777215&Pn}),hi||((hn===Ge||hn===lt)&&(Rt.Clear=function(){this.arr=[],this.opt=[]},Rt.Add=function(Pn,Fn){this.arr.push(Pn),this.opt.push(_r(Fn)?Fn:"")},Rt.AddFirst=function(Pn,Fn){this.arr.unshift(Pn),this.opt.unshift(_r(Fn)?Fn:"")},Rt.RemoveAt=function(Pn){this.arr.splice(Pn,1),this.opt.splice(Pn,1)}),(hn===Dn||hn===$n)&&(Rt.AddText=function(Pn){const Fn=Ut(Bs);Fn.fTitle=Pn,Fn.fTextAlign=this.fTextAlign,this.fLines.Add(Fn)},Rt.Clear=function(){this.fLines.Clear()}),(0===hn.indexOf(D)||hn===O)&&(Rt.addFormula=function(Pn){Pn&&(void 0===this.formulas&&(this.formulas=[]),this.formulas.push(Pn))},Rt.GetParName=function(Pn){if(this.fParams?.fParNames)return this.fParams.fParNames[Pn];if(this.fFormula?.fParams)for(let Fn=0,_i=this.fFormula.fParams;Fn<_i.length;++Fn)if(_i[Fn].second===Pn)return _i[Fn].first;return this.fNames&&this.fNames[Pn]?this.fNames[Pn]:`p${Pn}`},Rt.GetParValue=function(Pn){return this.fParams?.fParameters?this.fParams.fParameters[Pn]:this.fFormula?.fClingParameters?this.fFormula.fClingParameters[Pn]:this.fParams?this.fParams[Pn]:void 0},Rt.GetParError=function(Pn){return this.fParErrors?this.fParErrors[Pn]:void 0},Rt.GetNumPars=function(){return this.fNpar}),(0===hn.indexOf(pt)||hn===vt)&&hn!==Bn&&hn!==Mn&&(Rt.IsInside=function(Pn,Fn){const _i=this.fX,Dr=this.fY;let gs=0,Qr=this.fNpoints-1,ro=!1;for(;gs=Fn||Dr[Qr]=Fn)&&_i[gs]+(Fn-Dr[gs])/(Dr[Qr]-Dr[gs])*(_i[Qr]-_i[gs])=this.fNcells&&(Pn=this.fNcells-1),Pn<0&&(Pn=0),Pn=0&&PnGi))for(let ra=0;ra$u)continue;ro++;const rc=Ut(nn);rc.fName=rc.fTitle=`${this.fName}_${ro}`,rc.fNumber=ro,this._typename!==un?(rc.fAbsWNDC=($u-ic)*this.fAbsWNDC,rc.fAbsHNDC=(Gi-Uo)*this.fAbsHNDC,rc.fAbsXlowNDC=this.fAbsXlowNDC+ic*this.fAbsWNDC,rc.fAbsYlowNDC=this.fAbsYlowNDC+Uo*this.fAbsWNDC):(rc.fAbsWNDC=$u-ic,rc.fAbsHNDC=Gi-Uo,rc.fAbsXlowNDC=ic,rc.fAbsYlowNDC=Uo),this.fPrimitives.Add(rc)}}return Pn*Fn},Rt.GetPad=function(Pn){return this.fPrimitives.arr.find(Fn=>Fn._typename===nn&&Fn.fNumber===Pn)}),0===hn.indexOf(_e)&&(hn===$e?(Rt.getBin=function(Pn,Fn,_i){return Pn+(this.fXaxis.fNbins+2)*(Fn+(this.fYaxis.fNbins+2)*_i)},Rt.getBinContent=function(Pn,Fn,_i){const Dr=this.getBin(Pn,Fn,_i);return Dr<0||Dr>=this.fNcells||this.fBinEntries[Dr]<1e-300?0:this.fArray?this.fArray[Dr]/this.fBinEntries[Dr]:0},Rt.getBinEntries=function(Pn,Fn,_i){const Dr=this.getBin(Pn,Fn,_i);return Dr<0||Dr>=this.fNcells?0:this.fBinEntries[Dr]}):hn===Oe?(Rt.getBin=function(Pn,Fn){return Pn+(this.fXaxis.fNbins+2)*Fn},Rt.getBinContent=function(Pn,Fn){const _i=this.getBin(Pn,Fn);return _i<0||_i>=this.fNcells||this.fBinEntries[_i]<1e-300||!this.fArray?0:this.fArray[_i]/this.fBinEntries[_i]},Rt.getBinEntries=function(Pn,Fn){const _i=this.getBin(Pn,Fn);return _i<0||_i>=this.fNcells?0:this.fBinEntries[_i]}):(Rt.getBin=function(Pn){return Pn},Rt.getBinContent=function(Pn){return Pn<0||Pn>=this.fNcells||this.fBinEntries[Pn]<1e-300||!this.fArray?0:this.fArray[Pn]/this.fBinEntries[Pn]}),Rt.getBinEffectiveEntries=function(Pn){if(Pn<0||Pn>=this.fNcells)return 0;const Fn=this.fBinEntries[Pn];if(!this.fBinSumw2||this.fBinSumw2.length!==this.fNcells)return Fn;const _i=this.fBinSumw2[Pn];return _i>0?Fn*Fn/_i:0},Rt.getBinError=function(Pn){if(Pn<0||Pn>=this.fNcells)return 0;const Fn=this.fArray[Pn],_i=this.fBinEntries[Pn],Dr=this.fSumw2[Pn],gs=this.getBinEffectiveEntries(Pn);if(_i<1e-300)return 0;if(3===this.fErrorMode)return 1/Math.sqrt(_i);const Zs=Math.sqrt(Math.abs(Dr/_i-(Fn/_i)**2));return 2===this.fErrorMode?0!==Zs?Zs/Math.sqrt(gs):1/Math.sqrt(12*gs):1===this.fErrorMode?Zs:Zs/Math.sqrt(gs)}),hn===ci&&(Rt.GetBinLowEdge=function(Pn){return this.fNbins<=0?0:this.fXbins.length>0&&Pn>0&&Pn<=this.fNbins?this.fXbins[Pn-1]:this.fXmin+(Pn-1)*(this.fXmax-this.fXmin)/this.fNbins},Rt.GetBinCenter=function(Pn){return this.fNbins<=0?0:this.fXbins.length>0&&Pn>0&&Pn=0?Math.sqrt(this.M2()):-Math.sqrt(-this.M2())},Rt.Perp2=Rt.Pt2=function(){return this.fX**2+this.fY**2},Rt.Pt=Rt.pt=function(){return Math.sqrt(this.P2())},Rt.Phi=Rt.phi=function(){return Math.atan2(this.fY,this.fX)},Rt.Eta=Rt.eta=function(){return Math.atanh(this.Pz/this.P())}),en[hn]=Rt),Rt}function fn(hn,di){en[hn]=di}function Hn(hn,di){if(Vn(hn)){if(hn.$kind===Ge||hn.$kind===te)return!0;di||(di=hn._typename)}return di===Ge||di===lt||di===bt||di===te||di===Je}function Vn(hn){return hn&&"object"==typeof hn}function Hi(hn){return"function"==typeof hn}function _r(hn){return"string"==typeof hn}function Li(hn){return Vn(hn)&&Hi(hn.then)}function Kr(hn,di){return new Promise(Rt=>{setTimeout(()=>{const hi=Hi(hn)?hn():hn;Rt(hi)},di)})}function os(hn){return Li(hn)?hn:Promise.resolve(hn)}function ia(){return Vs.apply(this,arguments)}function Vs(){return(Vs=(0,Te.A)(function*(){return(globalThis.JSROOT?Promise.resolve(!0):E(Ze+"scripts/JSRoot.core.js")).then(()=>{if(globalThis.JSROOT?._complete_loading)return globalThis.JSROOT._complete_loading()}).then(()=>globalThis.JSROOT)})).apply(this,arguments)}X.fXaxis=Ut(In),X.fYaxis=Ut(In),X.fZaxis=Ut(In)},8362:(Yr,mt,Se)=>{"use strict";function x(y,H,Ae){y.prototype=H.prototype=Ae,Ae.constructor=y}function L(y,H){var Ae=Object.create(y.prototype);for(var be in H)Ae[be]=H[be];return Ae}function ve(){}Se.d(mt,{$E:()=>yA,DC:()=>$g,D_:()=>xu,F6:()=>sn,JL:()=>bv,JQ:()=>un,Lt:()=>Yu,Qh:()=>p,Wn:()=>ko,ZE:()=>af,aL:()=>Yg,aX:()=>EA,m4:()=>Dl,w7:()=>Bu,yW:()=>g});var ot=1/.7,Ye="\\s*([+-]?\\d+)\\s*",Ze="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",Re="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",He=/^#([0-9a-f]{3,8})$/,Ve=new RegExp(`^rgb\\(${Ye},${Ye},${Ye}\\)$`),De=new RegExp(`^rgb\\(${Re},${Re},${Re}\\)$`),F=new RegExp(`^rgba\\(${Ye},${Ye},${Ye},${Ze}\\)$`),J=new RegExp(`^rgba\\(${Re},${Re},${Re},${Ze}\\)$`),Y=new RegExp(`^hsl\\(${Ze},${Re},${Re}\\)$`),he=new RegExp(`^hsla\\(${Ze},${Re},${Re},${Ze}\\)$`),Q={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function me(){return this.rgb().formatHex()}function $(){return this.rgb().formatRgb()}function g(y){var H,Ae;return y=(y+"").trim().toLowerCase(),(H=He.exec(y))?(Ae=H[1].length,H=parseInt(H[1],16),6===Ae?E(H):3===Ae?new C(H>>8&15|H>>4&240,H>>4&15|240&H,(15&H)<<4|15&H,1):8===Ae?_(H>>24&255,H>>16&255,H>>8&255,(255&H)/255):4===Ae?_(H>>12&15|H>>8&240,H>>8&15|H>>4&240,H>>4&15|240&H,((15&H)<<4|15&H)/255):null):(H=Ve.exec(y))?new C(H[1],H[2],H[3],1):(H=De.exec(y))?new C(255*H[1]/100,255*H[2]/100,255*H[3]/100,1):(H=F.exec(y))?_(H[1],H[2],H[3],H[4]):(H=J.exec(y))?_(255*H[1]/100,255*H[2]/100,255*H[3]/100,H[4]):(H=Y.exec(y))?V(H[1],H[2]/100,H[3]/100,1):(H=he.exec(y))?V(H[1],H[2]/100,H[3]/100,H[4]):Q.hasOwnProperty(y)?E(Q[y]):"transparent"===y?new C(NaN,NaN,NaN,0):null}function E(y){return new C(y>>16&255,y>>8&255,255&y,1)}function _(y,H,Ae,be){return be<=0&&(y=H=Ae=NaN),new C(y,H,Ae,be)}function v(y){return y instanceof ve||(y=g(y)),y?new C((y=y.rgb()).r,y.g,y.b,y.opacity):new C}function p(y,H,Ae,be){return 1===arguments.length?v(y):new C(y,H,Ae,be??1)}function C(y,H,Ae,be){this.r=+y,this.g=+H,this.b=+Ae,this.opacity=+be}function I(){return`#${ue(this.r)}${ue(this.g)}${ue(this.b)}`}function k(){const y=Z(this.opacity);return`${1===y?"rgb(":"rgba("}${ee(this.r)}, ${ee(this.g)}, ${ee(this.b)}${1===y?")":`, ${y})`}`}function Z(y){return isNaN(y)?1:Math.max(0,Math.min(1,y))}function ee(y){return Math.max(0,Math.min(255,Math.round(y)||0))}function ue(y){return((y=ee(y))<16?"0":"")+y.toString(16)}function V(y,H,Ae,be){return be<=0?y=H=Ae=NaN:Ae<=0||Ae>=1?y=H=NaN:H<=0&&(y=NaN),new T(y,H,Ae,be)}function b(y){if(y instanceof T)return new T(y.h,y.s,y.l,y.opacity);if(y instanceof ve||(y=g(y)),!y)return new T;if(y instanceof T)return y;var H=(y=y.rgb()).r/255,Ae=y.g/255,be=y.b/255,Xe=Math.min(H,Ae,be),ht=Math.max(H,Ae,be),gt=NaN,Tt=ht-Xe,Vt=(ht+Xe)/2;return Tt?(gt=H===ht?(Ae-be)/Tt+6*(Ae0&&Vt<1?0:gt,new T(gt,Tt,Vt,y.opacity)}function T(y,H,Ae,be){this.h=+y,this.s=+H,this.l=+Ae,this.opacity=+be}function z(y){return(y=(y||0)%360)<0?y+360:y}function W(y){return Math.max(0,Math.min(1,y||0))}function fe(y,H,Ae){return 255*(y<60?H+(Ae-H)*y/60:y<180?Ae:y<240?H+(Ae-H)*(240-y)/60:H)}x(ve,g,{copy(y){return Object.assign(new this.constructor,this,y)},displayable(){return this.rgb().displayable()},hex:me,formatHex:me,formatHex8:function X(){return this.rgb().formatHex8()},formatHsl:function B(){return b(this).formatHsl()},formatRgb:$,toString:$}),x(C,p,L(ve,{brighter(y){return y=null==y?ot:Math.pow(ot,y),new C(this.r*y,this.g*y,this.b*y,this.opacity)},darker(y){return y=null==y?.7:Math.pow(.7,y),new C(this.r*y,this.g*y,this.b*y,this.opacity)},rgb(){return this},clamp(){return new C(ee(this.r),ee(this.g),ee(this.b),Z(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:I,formatHex:I,formatHex8:function U(){return`#${ue(this.r)}${ue(this.g)}${ue(this.b)}${ue(255*(isNaN(this.opacity)?1:this.opacity))}`},formatRgb:k,toString:k})),x(T,function P(y,H,Ae,be){return 1===arguments.length?b(y):new T(y,H,Ae,be??1)},L(ve,{brighter(y){return y=null==y?ot:Math.pow(ot,y),new T(this.h,this.s,this.l*y,this.opacity)},darker(y){return y=null==y?.7:Math.pow(.7,y),new T(this.h,this.s,this.l*y,this.opacity)},rgb(){var y=this.h%360+360*(this.h<0),H=isNaN(y)||isNaN(this.s)?0:this.s,Ae=this.l,be=Ae+(Ae<.5?Ae:1-Ae)*H,Xe=2*Ae-be;return new C(fe(y>=240?y-240:y+120,Xe,be),fe(y,Xe,be),fe(y<120?y+240:y-120,Xe,be),this.opacity)},clamp(){return new T(z(this.h),W(this.s),W(this.l),Z(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const y=Z(this.opacity);return`${1===y?"hsl(":"hsla("}${z(this.h)}, ${100*W(this.s)}%, ${100*W(this.l)}%${1===y?")":`, ${y})`}`}}));const we=Math.PI/180,Me=180/Math.PI,Ge=.96422,lt=1,bt=.82521,te=4/29,Je=6/29,tt=3*Je*Je,Fe=Je*Je*Je;function Ne(y){if(y instanceof pt)return new pt(y.l,y.a,y.b,y.opacity);if(y instanceof bn)return Dn(y);y instanceof C||(y=v(y));var ht,gt,H=qt(y.r),Ae=qt(y.g),be=qt(y.b),Xe=st((.2225045*H+.7168786*Ae+.0606169*be)/lt);return H===Ae&&Ae===be?ht=gt=Xe:(ht=st((.4360747*H+.3850649*Ae+.1430804*be)/Ge),gt=st((.0139322*H+.0971045*Ae+.7141733*be)/bt)),new pt(116*Xe-16,500*(ht-Xe),200*(Xe-gt),y.opacity)}function pt(y,H,Ae,be){this.l=+y,this.a=+H,this.b=+Ae,this.opacity=+be}function st(y){return y>Fe?Math.pow(y,1/3):y/tt+te}function vt(y){return y>Je?y*y*y:tt*(y-te)}function Yt(y){return 255*(y<=.0031308?12.92*y:1.055*Math.pow(y,1/2.4)-.055)}function qt(y){return(y/=255)<=.04045?y/12.92:Math.pow((y+.055)/1.055,2.4)}function bn(y,H,Ae,be){this.h=+y,this.c=+H,this.l=+Ae,this.opacity=+be}function Dn(y){if(isNaN(y.h))return new pt(y.l,0,0,y.opacity);var H=y.h*we;return new pt(y.l,Math.cos(H)*y.c,Math.sin(H)*y.c,y.opacity)}x(pt,function St(y,H,Ae,be){return 1===arguments.length?Ne(y):new pt(y,H,Ae,be??1)},L(ve,{brighter(y){return new pt(this.l+18*(y??1),this.a,this.b,this.opacity)},darker(y){return new pt(this.l-18*(y??1),this.a,this.b,this.opacity)},rgb(){var y=(this.l+16)/116,H=isNaN(this.a)?y:y+this.a/500,Ae=isNaN(this.b)?y:y-this.b/200;return new C(Yt(3.1338561*(H=Ge*vt(H))-1.6168667*(y=lt*vt(y))-.4906146*(Ae=bt*vt(Ae))),Yt(-.9787684*H+1.9161415*y+.033454*Ae),Yt(.0719453*H-.2289914*y+1.4052427*Ae),this.opacity)}})),x(bn,function Mn(y,H,Ae,be){return 1===arguments.length?function Ot(y){if(y instanceof bn)return new bn(y.h,y.c,y.l,y.opacity);if(y instanceof pt||(y=Ne(y)),0===y.a&&0===y.b)return new bn(NaN,0y+be)}function un(){return function In(y,H){var Ae=0,be=null,Xe=null,ht=null;function gt(Tt){var kr,Vt=Tt.length,Wt=new Array(Vt),pn=Nt(0,Vt),Gn=new Array(Vt*Vt),qn=new Array(Vt),Ei=0;Tt=Float64Array.from({length:Vt*Vt},H?(pr,wr)=>Tt[wr%Vt][wr/Vt|0]:(pr,wr)=>Tt[wr/Vt|0][wr%Vt]);for(let pr=0;prbe(Wt[wr],Wt[Ts]));for(const wr of pn){const Ts=pr;if(y){const jo=Nt(1+~Vt,Vt).filter(qr=>qr<0?Tt[~qr*Vt+wr]:Tt[wr*Vt+qr]);Xe&&jo.sort((qr,nr)=>Xe(qr<0?-Tt[~qr*Vt+wr]:Tt[wr*Vt+qr],nr<0?-Tt[~nr*Vt+wr]:Tt[wr*Vt+nr]));for(const qr of jo)qr<0?(Gn[~qr*Vt+wr]||(Gn[~qr*Vt+wr]={source:null,target:null})).target={index:wr,startAngle:pr,endAngle:pr+=Tt[~qr*Vt+wr]*Ei,value:Tt[~qr*Vt+wr]}:(Gn[wr*Vt+qr]||(Gn[wr*Vt+qr]={source:null,target:null})).source={index:wr,startAngle:pr,endAngle:pr+=Tt[wr*Vt+qr]*Ei,value:Tt[wr*Vt+qr]};qn[wr]={index:wr,startAngle:Ts,endAngle:pr,value:Wt[wr]}}else{const jo=Nt(0,Vt).filter(qr=>Tt[wr*Vt+qr]||Tt[qr*Vt+wr]);Xe&&jo.sort((qr,nr)=>Xe(Tt[wr*Vt+qr],Tt[wr*Vt+nr]));for(const qr of jo){let nr;if(wr=0))throw new Error(`invalid digits: ${y}`);if(H>15)return Jn;const Ae=10**H;return function(be){this._+=be[0];for(let Xe=1,ht=be.length;XeSi)if(Math.abs(Gn*Vt-Wt*pn)>Si&&ht){let Ei=be-gt,kr=Xe-Tt,pr=Vt*Vt+Wt*Wt,wr=Ei*Ei+kr*kr,Ts=Math.sqrt(pr),jo=Math.sqrt(qn),qr=ht*Math.tan((ci-Math.acos((pr+qn-wr)/(2*Ts*jo)))/2),nr=qr/jo,Xs=qr/Ts;Math.abs(nr-1)>Si&&this._append`L${H+nr*pn},${Ae+nr*Gn}`,this._append`A${ht},${ht},0,0,${+(Gn*Ei>pn*kr)},${this._x1=H+Xs*Vt},${this._y1=Ae+Xs*Wt}`}else this._append`L${this._x1=H},${this._y1=Ae}`}arc(H,Ae,be,Xe,ht,gt){if(H=+H,Ae=+Ae,gt=!!gt,(be=+be)<0)throw new Error(`negative radius: ${be}`);let Tt=be*Math.cos(Xe),Vt=be*Math.sin(Xe),Wt=H+Tt,pn=Ae+Vt,Gn=1^gt,qn=gt?Xe-ht:ht-Xe;null===this._x1?this._append`M${Wt},${pn}`:(Math.abs(this._x1-Wt)>Si||Math.abs(this._y1-pn)>Si)&&this._append`L${Wt},${pn}`,be&&(qn<0&&(qn=qn%Pi+Pi),qn>bi?this._append`A${be},${be},0,1,${Gn},${H-Tt},${Ae-Vt}A${be},${be},0,1,${Gn},${this._x1=Wt},${this._y1=pn}`:qn>Si&&this._append`A${be},${be},0,${+(qn>=ci)},${Gn},${this._x1=H+be*Math.cos(ht)},${this._y1=Ae+be*Math.sin(ht)}`)}rect(H,Ae,be,Xe){this._append`M${this._x0=this._x1=+H},${this._y0=this._y1=+Ae}h${be=+be}v${+Xe}h${-be}Z`}toString(){return this._}}function Rs(){return new Ln}Rs.prototype=Ln.prototype;var oe=Array.prototype.slice;function D(y){return function(){return y}}function O(y){return y.source}function ie(y){return y.target}function _e(y){return y.radius}function Oe(y){return y.startAngle}function $e(y){return y.endAngle}function et(){return 0}function sn(){return function _t(y){var H=O,Ae=ie,be=_e,Xe=_e,ht=Oe,gt=$e,Tt=et,Vt=null;function Wt(){var pn,Gn=H.apply(this,arguments),qn=Ae.apply(this,arguments),Ei=Tt.apply(this,arguments)/2,kr=oe.call(arguments),pr=+be.apply(this,(kr[0]=Gn,kr)),wr=ht.apply(this,kr)-ye,Ts=gt.apply(this,kr)-ye,jo=+Xe.apply(this,(kr[0]=qn,kr)),qr=ht.apply(this,kr)-ye,nr=gt.apply(this,kr)-ye;if(Vt||(Vt=pn=Rs()),Ei>Ht&&(yo(Ts-wr)>2*Ei+Ht?Ts>wr?(wr+=Ei,Ts-=Ei):(wr-=Ei,Ts+=Ei):wr=Ts=(wr+Ts)/2,yo(nr-qr)>2*Ei+Ht?nr>qr?(qr+=Ei,nr-=Ei):(qr-=Ei,nr+=Ei):qr=nr=(qr+nr)/2),Vt.moveTo(pr*xt(wr),pr*K(wr)),Vt.arc(0,0,pr,wr,Ts),wr!==qr||Ts!==nr)if(y){var bs=jo-+y.apply(this,arguments),Go=(qr+nr)/2;Vt.quadraticCurveTo(0,0,bs*xt(qr),bs*K(qr)),Vt.lineTo(jo*xt(Go),jo*K(Go)),Vt.lineTo(bs*xt(nr),bs*K(nr))}else Vt.quadraticCurveTo(0,0,jo*xt(qr),jo*K(qr)),Vt.arc(0,0,jo,qr,nr);if(Vt.quadraticCurveTo(0,0,pr*xt(wr),pr*K(wr)),Vt.closePath(),pn)return Vt=null,pn+""||null}return y&&(Wt.headRadius=function(pn){return arguments.length?(y="function"==typeof pn?pn:D(+pn),Wt):y}),Wt.radius=function(pn){return arguments.length?(be=Xe="function"==typeof pn?pn:D(+pn),Wt):be},Wt.sourceRadius=function(pn){return arguments.length?(be="function"==typeof pn?pn:D(+pn),Wt):be},Wt.targetRadius=function(pn){return arguments.length?(Xe="function"==typeof pn?pn:D(+pn),Wt):Xe},Wt.startAngle=function(pn){return arguments.length?(ht="function"==typeof pn?pn:D(+pn),Wt):ht},Wt.endAngle=function(pn){return arguments.length?(gt="function"==typeof pn?pn:D(+pn),Wt):gt},Wt.padAngle=function(pn){return arguments.length?(Tt="function"==typeof pn?pn:D(+pn),Wt):Tt},Wt.source=function(pn){return arguments.length?(H=pn,Wt):H},Wt.target=function(pn){return arguments.length?(Ae=pn,Wt):Ae},Wt.context=function(pn){return arguments.length?(Vt=pn??null,Wt):Vt},Wt}()}var xn={value:()=>{}};function wn(){for(var be,y=0,H=arguments.length,Ae={};y=0&&(be=Ae.slice(Xe+1),Ae=Ae.slice(0,Xe)),Ae&&!H.hasOwnProperty(Ae))throw new Error("unknown type: "+Ae);return{type:Ae,name:be}})}(y+"",Ae),ht=-1,gt=be.length;if(!(arguments.length<2)){if(null!=H&&"function"!=typeof H)throw new Error("invalid callback: "+H);for(;++ht0)for(var Xe,ht,Ae=new Array(Xe),be=0;be=0&&"xmlns"!==(H=y.slice(0,Ae))&&(y=y.slice(Ae+1)),Qt.hasOwnProperty(H)?{space:Qt[H],local:y}:y}function en(y){return function(){var H=this.ownerDocument,Ae=this.namespaceURI;return Ae===ut&&H.documentElement.namespaceURI===ut?H.createElement(y):H.createElementNS(Ae,y)}}function jt(y){return function(){return this.ownerDocument.createElementNS(y.space,y.local)}}function fn(y){var H=vn(y);return(H.local?jt:en)(H)}function Hn(){}function Vn(y){return null==y?Hn:function(){return this.querySelector(y)}}function Li(){return[]}function Kr(y){return null==y?Li:function(){return this.querySelectorAll(y)}}function Vs(y){return function(){return this.matches(y)}}function hn(y){return function(H){return H.matches(y)}}var di=Array.prototype.find;function hi(){return this.firstElementChild}var Fn=Array.prototype.filter;function _i(){return Array.from(this.children)}function ro(y){return new Array(y.length)}function Gi(y,H){this.ownerDocument=y.ownerDocument,this.namespaceURI=y.namespaceURI,this._next=null,this._parent=y,this.__data__=H}function ra(y,H,Ae,be,Xe,ht){for(var Tt,gt=0,Vt=H.length,Wt=ht.length;gtH?1:y>=H?0:NaN}function $o(y){return function(){this.removeAttribute(y)}}function U0(y){return function(){this.removeAttributeNS(y.space,y.local)}}function Uf(y,H){return function(){this.setAttribute(y,H)}}function OC(y,H){return function(){this.setAttributeNS(y.space,y.local,H)}}function zf(y,H){return function(){var Ae=H.apply(this,arguments);null==Ae?this.removeAttribute(y):this.setAttribute(y,Ae)}}function bg(y,H){return function(){var Ae=H.apply(this,arguments);null==Ae?this.removeAttributeNS(y.space,y.local):this.setAttributeNS(y.space,y.local,Ae)}}function xm(y){return y.ownerDocument&&y.ownerDocument.defaultView||y.document&&y||y.defaultView}function xg(y){return function(){this.style.removeProperty(y)}}function Xu(y,H,Ae){return function(){this.style.setProperty(y,H,Ae)}}function wg(y,H,Ae){return function(){var be=H.apply(this,arguments);null==be?this.style.removeProperty(y):this.style.setProperty(y,be,Ae)}}function go(y,H){return y.style.getPropertyValue(H)||xm(y).getComputedStyle(y,null).getPropertyValue(H)}function Wa(y){return function(){delete this[y]}}function LC(y,H){return function(){this[y]=H}}function Ex(y,H){return function(){var Ae=H.apply(this,arguments);null==Ae?delete this[y]:this[y]=Ae}}function Dx(y){return y.trim().split(/^|\s+/)}function Cg(y){return y.classList||new Mg(y)}function Mg(y){this._node=y,this._names=Dx(y.getAttribute("class")||"")}function va(y,H){for(var Ae=Cg(y),be=-1,Xe=H.length;++be=0&&(this._names.splice(H,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(y){return this._names.indexOf(y)>=0}};var Qf=[null];function gc(y,H){this._groups=y,this._parents=H}function kh(){return new gc([[document.documentElement]],Qf)}function Yu(y){return"string"==typeof y?new gc([[document.querySelector(y)]],[document.documentElement]):new gc([[y]],Qf)}gc.prototype=kh.prototype={constructor:gc,select:function Hi(y){"function"!=typeof y&&(y=Vn(y));for(var H=this._groups,Ae=H.length,be=new Array(Ae),Xe=0;Xe=qr&&(qr=jo+1);!(Xs=wr[qr])&&++qr=0;)(gt=be[Xe])&&(ht&&4^gt.compareDocumentPosition(ht)&&ht.parentNode.insertBefore(gt,ht),ht=gt);return this},sort:function Td(y){function H(Gn,qn){return Gn&&qn?y(Gn.__data__,qn.__data__):!Gn-!qn}y||(y=Bi);for(var Ae=this._groups,be=Ae.length,Xe=new Array(be),ht=0;ht1?this.each((null==H?xg:"function"==typeof H?wg:Xu)(y,H,Ae??"")):go(this.node(),y)},property:function Tx(y,H){return arguments.length>1?this.each((null==H?Wa:"function"==typeof H?Ex:LC)(y,H)):this.node()[y]},classed:function Ix(y,H){var Ae=Dx(y+"");if(arguments.length<2){for(var be=Cg(this.node()),Xe=-1,ht=Ae.length;++Xe=0&&(Ae=H.slice(be+1),H=H.slice(0,be)),{type:H,name:Ae}})}(y+""),ht=be.length;if(!(arguments.length<2)){for(Tt=H?Xl:G0,Xe=0;Xeko(Ae,H))}vl.prototype=function Xd(){return new vl}.prototype={constructor:vl,get:function(y){for(var H=this._;!(H in y);)if(!(y=y.parentNode))return;return y[H]},set:function(y,H){return y[this._]=H},remove:function(y){return this._ in y&&delete y[this._]},toString:function(){return this._}};const Ui={passive:!1},zo={capture:!0,passive:!1};function eu(y){y.stopImmediatePropagation()}function Wc(y){y.preventDefault(),y.stopImmediatePropagation()}var mi=y=>()=>y;function Dg(y,{sourceEvent:H,subject:Ae,target:be,identifier:Xe,active:ht,x:gt,y:Tt,dx:Vt,dy:Wt,dispatch:pn}){Object.defineProperties(this,{type:{value:y,enumerable:!0,configurable:!0},sourceEvent:{value:H,enumerable:!0,configurable:!0},subject:{value:Ae,enumerable:!0,configurable:!0},target:{value:be,enumerable:!0,configurable:!0},identifier:{value:Xe,enumerable:!0,configurable:!0},active:{value:ht,enumerable:!0,configurable:!0},x:{value:gt,enumerable:!0,configurable:!0},y:{value:Tt,enumerable:!0,configurable:!0},dx:{value:Vt,enumerable:!0,configurable:!0},dy:{value:Wt,enumerable:!0,configurable:!0},_:{value:pn}})}function Ig(y){return!y.ctrlKey&&!y.button}function Cm(){return this.parentNode}function _h(y,H){return H??{x:y.x,y:y.y}}function Mp(){return navigator.maxTouchPoints||"ontouchstart"in this}function yA(){var Tt,Vt,Wt,pn,y=Ig,H=Cm,Ae=_h,be=Mp,Xe={},ht=wn("start","drag","end"),gt=0,Gn=0;function qn(nr){nr.on("mousedown.drag",Ei).filter(be).on("touchstart.drag",wr).on("touchmove.drag",Ts,Ui).on("touchend.drag touchcancel.drag",jo).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function Ei(nr,Xs){if(!pn&&y.call(this,nr,Xs)){var bs=qr(this,H.call(this,nr,Xs),nr,Xs,"mouse");bs&&(Yu(nr.view).on("mousemove.drag",kr,zo).on("mouseup.drag",pr,zo),function Tg(y){var H=y.document.documentElement,Ae=Yu(y).on("dragstart.drag",Wc,zo);"onselectstart"in H?Ae.on("selectstart.drag",Wc,zo):(H.__noselect=H.style.MozUserSelect,H.style.MozUserSelect="none")}(nr.view),eu(nr),Wt=!1,Tt=nr.clientX,Vt=nr.clientY,bs("start",nr))}}function kr(nr){if(Wc(nr),!Wt){var Xs=nr.clientX-Tt,bs=nr.clientY-Vt;Wt=Xs*Xs+bs*bs>Gn}Xe.mouse("drag",nr)}function pr(nr){Yu(nr.view).on("mousemove.drag mouseup.drag",null),function Ad(y,H){var Ae=y.document.documentElement,be=Yu(y).on("dragstart.drag",null);H&&(be.on("click.drag",Wc,zo),setTimeout(function(){be.on("click.drag",null)},0)),"onselectstart"in Ae?be.on("selectstart.drag",null):(Ae.style.MozUserSelect=Ae.__noselect,delete Ae.__noselect)}(nr.view,Wt),Wc(nr),Xe.mouse("end",nr)}function wr(nr,Xs){if(y.call(this,nr,Xs)){var zc,dc,bs=nr.changedTouches,Go=H.call(this,nr,Xs),ul=bs.length;for(zc=0;zcH?1:y>=H?0:NaN}function Ya(y,H){return null==y||null==H?NaN:Hy?1:H>=y?0:NaN}function wu(y){let H,Ae,be;function Xe(Tt,Vt,Wt=0,pn=Tt.length){if(Wt>>1;Ae(Tt[Gn],Vt)<0?Wt=Gn+1:pn=Gn}while(WtKu(y(Tt),Vt),be=(Tt,Vt)=>y(Tt)-Vt):(H=y===Ku||y===Ya?y:Bg,Ae=y,be=y),{left:Xe,center:function gt(Tt,Vt,Wt=0,pn=Tt.length){const Gn=Xe(Tt,Vt,Wt,pn-1);return Gn>Wt&&be(Tt[Gn-1],Vt)>-be(Tt[Gn],Vt)?Gn-1:Gn},right:function ht(Tt,Vt,Wt=0,pn=Tt.length){if(Wt>>1;Ae(Tt[Gn],Vt)<=0?Wt=Gn+1:pn=Gn}while(Wt=rs?10:ht>=Pg?5:ht>=Os?2:1;let Tt,Vt,Wt;return Xe<0?(Wt=Math.pow(10,-Xe)/gt,Tt=Math.round(y*Wt),Vt=Math.round(H*Wt),Tt/WtH&&--Vt,Wt=-Wt):(Wt=Math.pow(10,Xe)*gt,Tt=Math.round(y/Wt),Vt=Math.round(H/Wt),Tt*WtH&&--Vt),Vt0))return[];if((y=+y)==(H=+H))return[y];const be=H=Xe))return[];const Tt=ht-Xe+1,Vt=new Array(Tt);if(be)if(gt<0)for(let Wt=0;Wt()=>y;function Ju(y,H){var Ae=H-y;return Ae?function g1(y,H){return function(Ae){return y+Ae*H}}(y,Ae):Nh(isNaN(y)?H:y)}var Yd=function y(H){var Ae=function bA(y){return 1==(y=+y)?Ju:function(H,Ae){return Ae-H?function Q0(y,H,Ae){return y=Math.pow(y,Ae),H=Math.pow(H,Ae)-y,Ae=1/Ae,function(be){return Math.pow(y+be*H,Ae)}}(H,Ae,y):Nh(isNaN(H)?Ae:H)}}(H);function be(Xe,ht){var gt=Ae((Xe=p(Xe)).r,(ht=p(ht)).r),Tt=Ae(Xe.g,ht.g),Vt=Ae(Xe.b,ht.b),Wt=Ju(Xe.opacity,ht.opacity);return function(pn){return Xe.r=gt(pn),Xe.g=Tt(pn),Xe.b=Vt(pn),Xe.opacity=Wt(pn),Xe+""}}return be.gamma=y,be}(1);function Rg(y,H){H||(H=[]);var Xe,Ae=y?Math.min(H.length,y.length):0,be=H.slice();return function(ht){for(Xe=0;XeAe&&(ht=H.slice(Ae,ht),Tt[gt]?Tt[gt]+=ht:Tt[++gt]=ht),(be=be[0])===(Xe=Xe[0])?Tt[gt]?Tt[gt]+=Xe:Tt[++gt]=Xe:(Tt[++gt]=null,Vt.push({i:gt,x:yc(be,Xe)})),Ae=bo.lastIndex;return Ae180?pn+=360:pn-Wt>180&&(Wt+=360),qn.push({i:Gn.push(Xe(Gn)+"rotate(",null,be)-2,x:yc(Wt,pn)})):pn&&Gn.push(Xe(Gn)+"rotate("+pn+be)}(Wt.rotate,pn.rotate,Gn,qn),function Tt(Wt,pn,Gn,qn){Wt!==pn?qn.push({i:Gn.push(Xe(Gn)+"skewX(",null,be)-2,x:yc(Wt,pn)}):pn&&Gn.push(Xe(Gn)+"skewX("+pn+be)}(Wt.skewX,pn.skewX,Gn,qn),function Vt(Wt,pn,Gn,qn,Ei,kr){if(Wt!==Gn||pn!==qn){var pr=Ei.push(Xe(Ei)+"scale(",null,",",null,")");kr.push({i:pr-4,x:yc(Wt,Gn)},{i:pr-2,x:yc(pn,qn)})}else(1!==Gn||1!==qn)&&Ei.push(Xe(Ei)+"scale("+Gn+","+qn+")")}(Wt.scaleX,Wt.scaleY,pn.scaleX,pn.scaleY,Gn,qn),Wt=pn=null,function(Ei){for(var wr,kr=-1,pr=qn.length;++krH&&(Ae=y,y=H,H=Ae),function(be){return Math.max(y,Math.min(H,be))}}(y[0],y[qn-1])),Tt=qn>2?y1:kx,Vt=Wt=null,Gn}function Gn(qn){return null==qn||isNaN(qn=+qn)?ht:(Vt||(Vt=Tt(y.map(be),H,Ae)))(be(gt(qn)))}return Gn.invert=function(qn){return gt(Xe((Wt||(Wt=Tt(H,y.map(be),yc)))(qn)))},Gn.domain=function(qn){return arguments.length?(y=Array.from(qn,Rp),pn()):y.slice()},Gn.range=function(qn){return arguments.length?(H=Array.from(qn),pn()):H.slice()},Gn.rangeRound=function(qn){return H=Array.from(qn),Ae=iu,pn()},Gn.clamp=function(qn){return arguments.length?(gt=!!qn||Id,pn()):gt!==Id},Gn.interpolate=function(qn){return arguments.length?(Ae=qn,pn()):Ae},Gn.unknown=function(qn){return arguments.length?(ht=qn,Gn):ht},function(qn,Ei){return be=qn,Xe=Ei,pn()}}function v1(){return CA()(Id,Id)}function MA(y,H){if((Ae=(y=H?y.toExponential(H-1):y.toExponential()).indexOf("e"))<0)return null;var Ae,be=y.slice(0,Ae);return[be.length>1?be[0]+be.slice(2):be,+y.slice(Ae+1)]}function ru(y){return(y=MA(Math.abs(y)))?y[1]:NaN}var Ul,so=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function pl(y){if(!(H=so.exec(y)))throw new Error("invalid format: "+y);var H;return new Kd({fill:H[1],align:H[2],sign:H[3],symbol:H[4],zero:H[5],width:H[6],comma:H[7],precision:H[8]&&H[8].slice(1),trim:H[9],type:H[10]})}function Kd(y){this.fill=void 0===y.fill?" ":y.fill+"",this.align=void 0===y.align?">":y.align+"",this.sign=void 0===y.sign?"-":y.sign+"",this.symbol=void 0===y.symbol?"":y.symbol+"",this.zero=!!y.zero,this.width=void 0===y.width?void 0:+y.width,this.comma=!!y.comma,this.precision=void 0===y.precision?void 0:+y.precision,this.trim=!!y.trim,this.type=void 0===y.type?"":y.type+""}function Ka(y,H){var Ae=MA(y,H);if(!Ae)return y+"";var be=Ae[0],Xe=Ae[1];return Xe<0?"0."+new Array(-Xe).join("0")+be:be.length>Xe+1?be.slice(0,Xe+1)+"."+be.slice(Xe+1):be+new Array(Xe-be.length+2).join("0")}pl.prototype=Kd.prototype,Kd.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(void 0===this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(void 0===this.precision?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type};var $c={"%":(y,H)=>(100*y).toFixed(H),b:y=>Math.round(y).toString(2),c:y=>y+"",d:function Bo(y){return Math.abs(y=Math.round(y))>=1e21?y.toLocaleString("en").replace(/,/g,""):y.toString(10)},e:(y,H)=>y.toExponential(H),f:(y,H)=>y.toFixed(H),g:(y,H)=>y.toPrecision(H),o:y=>Math.round(y).toString(8),p:(y,H)=>Ka(100*y,H),r:Ka,s:function nf(y,H){var Ae=MA(y,H);if(!Ae)return y+"";var be=Ae[0],Xe=Ae[1],ht=Xe-(Ul=3*Math.max(-8,Math.min(8,Math.floor(Xe/3))))+1,gt=be.length;return ht===gt?be:ht>gt?be+new Array(ht-gt+1).join("0"):ht>0?be.slice(0,ht)+"."+be.slice(ht):"0."+new Array(1-ht).join("0")+MA(y,Math.max(0,H+ht-1))[0]},X:y=>Math.round(y).toString(16).toUpperCase(),x:y=>Math.round(y).toString(16)};function Uh(y){return y}var rf,Yo,Rl,Mo=Array.prototype.map,kp=["y","z","a","f","p","n","\xb5","m","","k","M","G","T","P","E","Z","Y"];function Bd(y){var H=y.domain;return y.ticks=function(Ae){var be=H();return Oh(be[0],be[be.length-1],Ae??10)},y.tickFormat=function(Ae,be){var Xe=H();return function ac(y,H,Ae,be){var ht,Xe=Ic(y,H,Ae);switch((be=pl(be??",f")).type){case"s":var gt=Math.max(Math.abs(y),Math.abs(H));return null==be.precision&&!isNaN(ht=function Fp(y,H){return Math.max(0,3*Math.max(-8,Math.min(8,Math.floor(ru(H)/3)))-ru(Math.abs(y)))}(Xe,gt))&&(be.precision=ht),Rl(be,gt);case"":case"e":case"g":case"p":case"r":null==be.precision&&!isNaN(ht=function Op(y,H){return y=Math.abs(y),H=Math.abs(H)-y,Math.max(0,ru(H)-ru(y))+1}(Xe,Math.max(Math.abs(y),Math.abs(H))))&&(be.precision=ht-("e"===be.type));break;case"f":case"%":null==be.precision&&!isNaN(ht=function bc(y){return Math.max(0,-ru(Math.abs(y)))}(Xe))&&(be.precision=ht-2*("%"===be.type))}return Yo(be)}(Xe[0],Xe[Xe.length-1],Ae??10,be)},y.nice=function(Ae){null==Ae&&(Ae=10);var Vt,Wt,be=H(),Xe=0,ht=be.length-1,gt=be[Xe],Tt=be[ht],pn=10;for(Tt0;){if((Wt=Ft(gt,Tt,Ae))===Vt)return be[Xe]=gt,be[ht]=Tt,H(be);if(Wt>0)gt=Math.floor(gt/Wt)*Wt,Tt=Math.ceil(Tt/Wt)*Wt;else{if(!(Wt<0))break;gt=Math.ceil(gt*Wt)/Wt,Tt=Math.floor(Tt*Wt)/Wt}Vt=Wt}return y},y}function Dl(){var y=v1();return y.copy=function(){return Lg(y,Dl())},_c.apply(y,arguments),Bd(y)}function Cu(y,H){var gt,Ae=0,be=(y=y.slice()).length-1,Xe=y[Ae],ht=y[be];return ht-y(-H,Ae)}function af(){const y=function SA(y){const H=y(sf,su),Ae=H.domain;let Xe,ht,be=10;function gt(){return Xe=function Fc(y){return y===Math.E?Math.log:10===y&&Math.log10||2===y&&Math.log2||(y=Math.log(y),H=>Math.log(H)/y)}(be),ht=function X0(y){return 10===y?Ia:y===Math.E?Math.exp:H=>Math.pow(y,H)}(be),Ae()[0]<0?(Xe=dl(Xe),ht=dl(ht),y(kc,cs)):y(sf,su),H}return H.base=function(Tt){return arguments.length?(be=+Tt,gt()):be},H.domain=function(Tt){return arguments.length?(Ae(Tt),gt()):Ae()},H.ticks=Tt=>{const Vt=Ae();let Wt=Vt[0],pn=Vt[Vt.length-1];const Gn=pn0){for(;qn<=Ei;++qn)for(kr=1;krpn)break;Ts.push(pr)}}else for(;qn<=Ei;++qn)for(kr=be-1;kr>=1;--kr)if(pr=qn>0?kr/ht(-qn):kr*ht(qn),!(prpn)break;Ts.push(pr)}2*Ts.length{if(null==Tt&&(Tt=10),null==Vt&&(Vt=10===be?"s":","),"function"!=typeof Vt&&(!(be%1)&&null==(Vt=pl(Vt)).precision&&(Vt.trim=!0),Vt=Yo(Vt)),Tt===1/0)return Vt;const Wt=Math.max(1,be*Tt/H.ticks().length);return pn=>{let Gn=pn/ht(Math.round(Xe(pn)));return Gn*beAe(Cu(Ae(),{floor:Tt=>ht(Math.floor(Xe(Tt))),ceil:Tt=>ht(Math.ceil(Xe(Tt)))})),H}(CA()).domain([1,10]);return y.copy=()=>Lg(y,af()).base(y.base()),_c.apply(y,arguments),y}function zl(y){return function(H){return Math.sign(H)*Math.log1p(Math.abs(H/y))}}function Hl(y){return function(H){return Math.sign(H)*Math.expm1(Math.abs(H))*y}}function EA(){var y=function Lp(y){var H=1,Ae=y(zl(H),Hl(H));return Ae.constant=function(be){return arguments.length?y(zl(H=+be),Hl(H)):H},Bd(Ae)}(CA());return y.copy=function(){return Lg(y,EA()).constant(y.constant())},_c.apply(y,arguments)}!function Tm(y){rf=function $0(y){var H=void 0===y.grouping||void 0===y.thousands?Uh:function Tl(y,H){return function(Ae,be){for(var Xe=Ae.length,ht=[],gt=0,Tt=y[0],Vt=0;Xe>0&&Tt>0&&(Vt+Tt+1>be&&(Tt=Math.max(1,be-Vt)),ht.push(Ae.substring(Xe-=Tt,Xe+Tt)),!((Vt+=Tt+1)>be));)Tt=y[gt=(gt+1)%y.length];return ht.reverse().join(H)}}(Mo.call(y.grouping,Number),y.thousands+""),Ae=void 0===y.currency?"":y.currency[0]+"",be=void 0===y.currency?"":y.currency[1]+"",Xe=void 0===y.decimal?".":y.decimal+"",ht=void 0===y.numerals?Uh:function Gr(y){return function(H){return H.replace(/[0-9]/g,function(Ae){return y[+Ae]})}}(Mo.call(y.numerals,String)),gt=void 0===y.percent?"%":y.percent+"",Tt=void 0===y.minus?"\u2212":y.minus+"",Vt=void 0===y.nan?"NaN":y.nan+"";function Wt(Gn){var qn=(Gn=pl(Gn)).fill,Ei=Gn.align,kr=Gn.sign,pr=Gn.symbol,wr=Gn.zero,Ts=Gn.width,jo=Gn.comma,qr=Gn.precision,nr=Gn.trim,Xs=Gn.type;"n"===Xs?(jo=!0,Xs="g"):$c[Xs]||(void 0===qr&&(qr=12),nr=!0,Xs="g"),(wr||"0"===qn&&"="===Ei)&&(wr=!0,qn="0",Ei="=");var bs="$"===pr?Ae:"#"===pr&&/[boxX]/.test(Xs)?"0"+Xs.toLowerCase():"",Go="$"===pr?be:/[%p]/.test(Xs)?gt:"",ul=$c[Xs],zc=/[defgprs%]/.test(Xs);function dc(ao){var Zo,th,nh,wl=bs,Js=Go;if("c"===Xs)Js=ul(ao)+Js,ao="";else{var td=(ao=+ao)<0||1/ao<0;if(ao=isNaN(ao)?Vt:ul(Math.abs(ao),qr),nr&&(ao=function oc(y){e:for(var Xe,H=y.length,Ae=1,be=-1;Ae0&&(be=0)}return be>0?y.slice(0,be)+y.slice(Xe+1):y}(ao)),td&&0==+ao&&"+"!==kr&&(td=!1),wl=(td?"("===kr?kr:Tt:"-"===kr||"("===kr?"":kr)+wl,Js=("s"===Xs?kp[8+Ul/3]:"")+Js+(td&&"("===kr?")":""),zc)for(Zo=-1,th=ao.length;++Zo(nh=ao.charCodeAt(Zo))||nh>57){Js=(46===nh?Xe+ao.slice(Zo+1):ao.slice(Zo))+Js,ao=ao.slice(0,Zo);break}}jo&&!wr&&(ao=H(ao,1/0));var Ld=wl.length+ao.length+Js.length,Jl=Ld>1)+wl+ao+Js+Jl.slice(Ld);break;default:ao=Jl+wl+ao+Js}return ht(ao)}return qr=void 0===qr?6:/[gprs]/.test(Xs)?Math.max(1,Math.min(21,qr)):Math.max(0,Math.min(20,qr)),dc.toString=function(){return Gn+""},dc}return{format:Wt,formatPrefix:function pn(Gn,qn){var Ei=Wt(((Gn=pl(Gn)).type="f",Gn)),kr=3*Math.max(-8,Math.min(8,Math.floor(ru(qn)/3))),pr=Math.pow(10,-kr),wr=kp[8+kr/3];return function(Ts){return Ei(pr*Ts)+wr}}}}(y),Yo=rf.format,Rl=rf.formatPrefix}({thousands:",",grouping:[3],currency:["$",""]});const Ug=new Date,zg=new Date;function xc(y,H,Ae,be){function Xe(ht){return y(ht=0===arguments.length?new Date:new Date(+ht)),ht}return Xe.floor=ht=>(y(ht=new Date(+ht)),ht),Xe.ceil=ht=>(y(ht=new Date(ht-1)),H(ht,1),y(ht),ht),Xe.round=ht=>{const gt=Xe(ht),Tt=Xe.ceil(ht);return ht-gt(H(ht=new Date(+ht),null==gt?1:Math.floor(gt)),ht),Xe.range=(ht,gt,Tt)=>{const Vt=[];if(ht=Xe.ceil(ht),Tt=null==Tt?1:Math.floor(Tt),!(ht0))return Vt;let Wt;do{Vt.push(Wt=new Date(+ht)),H(ht,Tt),y(ht)}while(Wtxc(gt=>{if(gt>=gt)for(;y(gt),!ht(gt);)gt.setTime(gt-1)},(gt,Tt)=>{if(gt>=gt)if(Tt<0)for(;++Tt<=0;)for(;H(gt,-1),!ht(gt););else for(;--Tt>=0;)for(;H(gt,1),!ht(gt););}),Ae&&(Xe.count=(ht,gt)=>(Ug.setTime(+ht),zg.setTime(+gt),y(Ug),y(zg),Math.floor(Ae(Ug,zg))),Xe.every=ht=>(ht=Math.floor(ht),isFinite(ht)&&ht>0?ht>1?Xe.filter(be?gt=>be(gt)%ht==0:gt=>Xe.count(0,gt)%ht==0):Xe:null)),Xe}const Dm=xc(()=>{},(y,H)=>{y.setTime(+y+H)},(y,H)=>H-y);Dm.every=y=>(y=Math.floor(y),isFinite(y)&&y>0?y>1?xc(H=>{H.setTime(Math.floor(H/y)*y)},(H,Ae)=>{H.setTime(+H+Ae*y)},(H,Ae)=>(Ae-H)/y):Dm:null);const lc=1e3,Xc=6e4,au=60*Xc,Zd=24*au,Im=7*Zd,b1=30*Zd,Su=365*Zd,zh=xc(y=>{y.setTime(y-y.getMilliseconds())},(y,H)=>{y.setTime(+y+H*lc)},(y,H)=>(H-y)/lc,y=>y.getUTCSeconds()),lu=xc(y=>{y.setTime(y-y.getMilliseconds()-y.getSeconds()*lc)},(y,H)=>{y.setTime(+y+H*Xc)},(y,H)=>(H-y)/Xc,y=>y.getMinutes()),kl=xc(y=>{y.setUTCSeconds(0,0)},(y,H)=>{y.setTime(+y+H*Xc)},(y,H)=>(H-y)/Xc,y=>y.getUTCMinutes()),Yf=xc(y=>{y.setTime(y-y.getMilliseconds()-y.getSeconds()*lc-y.getMinutes()*Xc)},(y,H)=>{y.setTime(+y+H*au)},(y,H)=>(H-y)/au,y=>y.getHours()),zp=xc(y=>{y.setUTCMinutes(0,0,0)},(y,H)=>{y.setTime(+y+H*au)},(y,H)=>(H-y)/au,y=>y.getUTCHours()),Kf=xc(y=>y.setHours(0,0,0,0),(y,H)=>y.setDate(y.getDate()+H),(y,H)=>(H-y-(H.getTimezoneOffset()-y.getTimezoneOffset())*Xc)/Zd,y=>y.getDate()-1),hf=xc(y=>{y.setUTCHours(0,0,0,0)},(y,H)=>{y.setUTCDate(y.getUTCDate()+H)},(y,H)=>(H-y)/Zd,y=>y.getUTCDate()-1),Bm=xc(y=>{y.setUTCHours(0,0,0,0)},(y,H)=>{y.setUTCDate(y.getUTCDate()+H)},(y,H)=>(H-y)/Zd,y=>Math.floor(y/Zd));function Eu(y){return xc(H=>{H.setDate(H.getDate()-(H.getDay()+7-y)%7),H.setHours(0,0,0,0)},(H,Ae)=>{H.setDate(H.getDate()+7*Ae)},(H,Ae)=>(Ae-H-(Ae.getTimezoneOffset()-H.getTimezoneOffset())*Xc)/Im)}const Zf=Eu(0),Jf=Eu(1),uf=(Eu(2),Eu(3),Eu(4));function Pm(y){return xc(H=>{H.setUTCDate(H.getUTCDate()-(H.getUTCDay()+7-y)%7),H.setUTCHours(0,0,0,0)},(H,Ae)=>{H.setUTCDate(H.getUTCDate()+7*Ae)},(H,Ae)=>(Ae-H)/Im)}Eu(5),Eu(6);const oa=Pm(0),ep=Pm(1),Rm=(Pm(2),Pm(3),Pm(4)),Rd=(Pm(5),Pm(6),xc(y=>{y.setDate(1),y.setHours(0,0,0,0)},(y,H)=>{y.setMonth(y.getMonth()+H)},(y,H)=>H.getMonth()-y.getMonth()+12*(H.getFullYear()-y.getFullYear()),y=>y.getMonth())),Y0=xc(y=>{y.setUTCDate(1),y.setUTCHours(0,0,0,0)},(y,H)=>{y.setUTCMonth(y.getUTCMonth()+H)},(y,H)=>H.getUTCMonth()-y.getUTCMonth()+12*(H.getUTCFullYear()-y.getUTCFullYear()),y=>y.getUTCMonth()),cu=xc(y=>{y.setMonth(0,1),y.setHours(0,0,0,0)},(y,H)=>{y.setFullYear(y.getFullYear()+H)},(y,H)=>H.getFullYear()-y.getFullYear(),y=>y.getFullYear());cu.every=y=>isFinite(y=Math.floor(y))&&y>0?xc(H=>{H.setFullYear(Math.floor(H.getFullYear()/y)*y),H.setMonth(0,1),H.setHours(0,0,0,0)},(H,Ae)=>{H.setFullYear(H.getFullYear()+Ae*y)}):null;const ff=xc(y=>{y.setUTCMonth(0,1),y.setUTCHours(0,0,0,0)},(y,H)=>{y.setUTCFullYear(y.getUTCFullYear()+H)},(y,H)=>H.getUTCFullYear()-y.getUTCFullYear(),y=>y.getUTCFullYear());function Hh(y,H,Ae,be,Xe,ht){const gt=[[zh,1,lc],[zh,5,5e3],[zh,15,15e3],[zh,30,3e4],[ht,1,Xc],[ht,5,5*Xc],[ht,15,15*Xc],[ht,30,30*Xc],[Xe,1,au],[Xe,3,3*au],[Xe,6,6*au],[Xe,12,12*au],[be,1,Zd],[be,2,2*Zd],[Ae,1,Im],[H,1,b1],[H,3,3*b1],[y,1,Su]];function Vt(Wt,pn,Gn){const qn=Math.abs(pn-Wt)/Gn,Ei=wu(([,,wr])=>wr).right(gt,qn);if(Ei===gt.length)return y.every(Ic(Wt/Su,pn/Su,Gn));if(0===Ei)return Dm.every(Math.max(Ic(Wt,pn,Gn),1));const[kr,pr]=gt[qn/gt[Ei-1][2]isFinite(y=Math.floor(y))&&y>0?xc(H=>{H.setUTCFullYear(Math.floor(H.getUTCFullYear()/y)*y),H.setUTCMonth(0,1),H.setUTCHours(0,0,0,0)},(H,Ae)=>{H.setUTCFullYear(H.getUTCFullYear()+Ae*y)}):null;const[x1,K0]=Hh(ff,Y0,oa,Bm,zp,kl),[Z0,Oc]=Hh(cu,Rd,Zf,Kf,Yf,lu);function pf(y){if(0<=y.y&&y.y<100){var H=new Date(-1,y.m,y.d,y.H,y.M,y.S,y.L);return H.setFullYear(y.y),H}return new Date(y.y,y.m,y.d,y.H,y.M,y.S,y.L)}function Hp(y){if(0<=y.y&&y.y<100){var H=new Date(Date.UTC(-1,y.m,y.d,y.H,y.M,y.S,y.L));return H.setUTCFullYear(y.y),H}return new Date(Date.UTC(y.y,y.m,y.d,y.H,y.M,y.S,y.L))}function tp(y,H,Ae){return{y,m:H,d:Ae,H:0,M:0,S:0,L:0}}var gf,$g,Yg,mv,Tu={"-":"",_:" ",0:"0"},Gs=/^\s*\d+/,w1=/^%/,Fx=/[\\^$*+?|[\]().{}]/g;function ja(y,H,Ae){var be=y<0?"-":"",Xe=(be?-y:y)+"",ht=Xe.length;return be+(ht[H.toLowerCase(),Ae]))}function Om(y,H,Ae){var be=Gs.exec(H.slice(Ae,Ae+1));return be?(y.w=+be[0],Ae+be[0].length):-1}function C1(y,H,Ae){var be=Gs.exec(H.slice(Ae,Ae+1));return be?(y.u=+be[0],Ae+be[0].length):-1}function M1(y,H,Ae){var be=Gs.exec(H.slice(Ae,Ae+2));return be?(y.U=+be[0],Ae+be[0].length):-1}function S1(y,H,Ae){var be=Gs.exec(H.slice(Ae,Ae+2));return be?(y.V=+be[0],Ae+be[0].length):-1}function E1(y,H,Ae){var be=Gs.exec(H.slice(Ae,Ae+2));return be?(y.W=+be[0],Ae+be[0].length):-1}function Vg(y,H,Ae){var be=Gs.exec(H.slice(Ae,Ae+4));return be?(y.y=+be[0],Ae+be[0].length):-1}function Zi(y,H,Ae){var be=Gs.exec(H.slice(Ae,Ae+2));return be?(y.y=+be[0]+(+be[0]>68?1900:2e3),Ae+be[0].length):-1}function wa(y,H,Ae){var be=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(H.slice(Ae,Ae+6));return be?(y.Z=be[1]?0:-(be[2]+(be[3]||"00")),Ae+be[0].length):-1}function Ci(y,H,Ae){var be=Gs.exec(H.slice(Ae,Ae+1));return be?(y.q=3*be[0]-3,Ae+be[0].length):-1}function Mi(y,H,Ae){var be=Gs.exec(H.slice(Ae,Ae+2));return be?(y.m=be[0]-1,Ae+be[0].length):-1}function Ha(y,H,Ae){var be=Gs.exec(H.slice(Ae,Ae+2));return be?(y.d=+be[0],Ae+be[0].length):-1}function kA(y,H,Ae){var be=Gs.exec(H.slice(Ae,Ae+3));return be?(y.m=0,y.d=+be[0],Ae+be[0].length):-1}function Lm(y,H,Ae){var be=Gs.exec(H.slice(Ae,Ae+2));return be?(y.H=+be[0],Ae+be[0].length):-1}function du(y,H,Ae){var be=Gs.exec(H.slice(Ae,Ae+2));return be?(y.M=+be[0],Ae+be[0].length):-1}function FA(y,H,Ae){var be=Gs.exec(H.slice(Ae,Ae+2));return be?(y.S=+be[0],Ae+be[0].length):-1}function Gg(y,H,Ae){var be=Gs.exec(H.slice(Ae,Ae+3));return be?(y.L=+be[0],Ae+be[0].length):-1}function T1(y,H,Ae){var be=Gs.exec(H.slice(Ae,Ae+6));return be?(y.L=Math.floor(be[0]/1e3),Ae+be[0].length):-1}function fv(y,H,Ae){var be=w1.exec(H.slice(Ae,Ae+1));return be?Ae+be[0].length:-1}function D1(y,H,Ae){var be=Gs.exec(H.slice(Ae));return be?(y.Q=+be[0],Ae+be[0].length):-1}function Yc(y,H,Ae){var be=Gs.exec(H.slice(Ae));return be?(y.s=+be[0],Ae+be[0].length):-1}function hu(y,H){return ja(y.getDate(),H,2)}function J0(y,H){return ja(y.getHours(),H,2)}function uu(y,H){return ja(y.getHours()%12||12,H,2)}function mf(y,H){return ja(1+Kf.count(cu(y),y),H,3)}function e_(y,H){return ja(y.getMilliseconds(),H,3)}function Vp(y,H){return e_(y,H)+"000"}function t_(y,H){return ja(y.getMonth()+1,H,2)}function qg(y,H){return ja(y.getMinutes(),H,2)}function n_(y,H){return ja(y.getSeconds(),H,2)}function i_(y){var H=y.getDay();return 0===H?7:H}function r_(y,H){return ja(Zf.count(cu(y)-1,y),H,2)}function OA(y){var H=y.getDay();return H>=4||0===H?uf(y):uf.ceil(y)}function I1(y,H){return y=OA(y),ja(uf.count(cu(y),y)+(4===cu(y).getDay()),H,2)}function Qg(y){return y.getDay()}function Wg(y,H){return ja(Jf.count(cu(y)-1,y),H,2)}function s_(y,H){return ja(y.getFullYear()%100,H,2)}function jg(y,H){return ja((y=OA(y)).getFullYear()%100,H,2)}function o_(y,H){return ja(y.getFullYear()%1e4,H,4)}function a_(y,H){var Ae=y.getDay();return ja((y=Ae>=4||0===Ae?uf(y):uf.ceil(y)).getFullYear()%1e4,H,4)}function l_(y){var H=y.getTimezoneOffset();return(H>0?"-":(H*=-1,"+"))+ja(H/60|0,"0",2)+ja(H%60,"0",2)}function LA(y,H){return ja(y.getUTCDate(),H,2)}function Lc(y,H){return ja(y.getUTCHours(),H,2)}function np(y,H){return ja(y.getUTCHours()%12||12,H,2)}function gl(y,H){return ja(1+hf.count(ff(y),y),H,3)}function Fl(y,H){return ja(y.getUTCMilliseconds(),H,3)}function B1(y,H){return Fl(y,H)+"000"}function Du(y,H){return ja(y.getUTCMonth()+1,H,2)}function pv(y,H){return ja(y.getUTCMinutes(),H,2)}function P1(y,H){return ja(y.getUTCSeconds(),H,2)}function Gp(y){var H=y.getUTCDay();return 0===H?7:H}function Nm(y,H){return ja(oa.count(ff(y)-1,y),H,2)}function Za(y){var H=y.getUTCDay();return H>=4||0===H?Rm(y):Rm.ceil(y)}function qp(y,H){return y=Za(y),ja(Rm.count(ff(y),y)+(4===ff(y).getUTCDay()),H,2)}function Af(y){return y.getUTCDay()}function fu(y,H){return ja(ep.count(ff(y)-1,y),H,2)}function pu(y,H){return ja(y.getUTCFullYear()%100,H,2)}function Qp(y,H){return ja((y=Za(y)).getUTCFullYear()%100,H,2)}function Iu(y,H){return ja(y.getUTCFullYear()%1e4,H,4)}function c_(y,H){var Ae=y.getUTCDay();return ja((y=Ae>=4||0===Ae?Rm(y):Rm.ceil(y)).getUTCFullYear()%1e4,H,4)}function R1(){return"+0000"}function ip(){return"%"}function rp(y){return+y}function Um(y){return Math.floor(+y/1e3)}!function Ox(y){gf=function Hg(y){var H=y.dateTime,Ae=y.date,be=y.time,Xe=y.periods,ht=y.days,gt=y.shortDays,Tt=y.months,Vt=y.shortMonths,Wt=RA(Xe),pn=Fm(Xe),Gn=RA(ht),qn=Fm(ht),Ei=RA(gt),kr=Fm(gt),pr=RA(Tt),wr=Fm(Tt),Ts=RA(Vt),jo=Fm(Vt),qr={a:function td(Qs){return gt[Qs.getDay()]},A:function Ld(Qs){return ht[Qs.getDay()]},b:function Jl(Qs){return Vt[Qs.getMonth()]},B:function cp(Qs){return Tt[Qs.getMonth()]},c:null,d:hu,e:hu,f:Vp,g:jg,G:a_,H:J0,I:uu,j:mf,L:e_,m:t_,M:qg,p:function a0(Qs){return Xe[+(Qs.getHours()>=12)]},q:function l0(Qs){return 1+~~(Qs.getMonth()/3)},Q:rp,s:Um,S:n_,u:i_,U:r_,V:I1,w:Qg,W:Wg,x:null,X:null,y:s_,Y:o_,Z:l_,"%":ip},nr={a:function Xm(Qs){return gt[Qs.getUTCDay()]},A:function em(Qs){return ht[Qs.getUTCDay()]},b:function gu(Qs){return Vt[Qs.getUTCMonth()]},B:function c0(Qs){return Tt[Qs.getUTCMonth()]},c:null,d:LA,e:LA,f:B1,g:Qp,G:c_,H:Lc,I:np,j:gl,L:Fl,m:Du,M:pv,p:function d0(Qs){return Xe[+(Qs.getUTCHours()>=12)]},q:function wf(Qs){return 1+~~(Qs.getUTCMonth()/3)},Q:rp,s:Um,S:P1,u:Gp,U:Nm,V:qp,w:Af,W:fu,x:null,X:null,y:pu,Y:Iu,Z:R1,"%":ip},Xs={a:function dc(Qs,Ma,Va){var Wr=Ei.exec(Ma.slice(Va));return Wr?(Qs.w=kr.get(Wr[0].toLowerCase()),Va+Wr[0].length):-1},A:function ao(Qs,Ma,Va){var Wr=Gn.exec(Ma.slice(Va));return Wr?(Qs.w=qn.get(Wr[0].toLowerCase()),Va+Wr[0].length):-1},b:function wl(Qs,Ma,Va){var Wr=Ts.exec(Ma.slice(Va));return Wr?(Qs.m=jo.get(Wr[0].toLowerCase()),Va+Wr[0].length):-1},B:function Js(Qs,Ma,Va){var Wr=pr.exec(Ma.slice(Va));return Wr?(Qs.m=wr.get(Wr[0].toLowerCase()),Va+Wr[0].length):-1},c:function Zo(Qs,Ma,Va){return ul(Qs,H,Ma,Va)},d:Ha,e:Ha,f:T1,g:Zi,G:Vg,H:Lm,I:Lm,j:kA,L:Gg,m:Mi,M:du,p:function zc(Qs,Ma,Va){var Wr=Wt.exec(Ma.slice(Va));return Wr?(Qs.p=pn.get(Wr[0].toLowerCase()),Va+Wr[0].length):-1},q:Ci,Q:D1,s:Yc,S:FA,u:C1,U:M1,V:S1,w:Om,W:E1,x:function th(Qs,Ma,Va){return ul(Qs,Ae,Ma,Va)},X:function nh(Qs,Ma,Va){return ul(Qs,be,Ma,Va)},y:Zi,Y:Vg,Z:wa,"%":fv};function bs(Qs,Ma){return function(Va){var _u,QA,Vx,Wr=[],nd=-1,Sa=0,ec=Qs.length;for(Va instanceof Date||(Va=new Date(+Va));++nd53)return null;"w"in Wr||(Wr.w=1),"Z"in Wr?(ec=(Sa=Hp(tp(Wr.y,0,1))).getUTCDay(),Sa=ec>4||0===ec?ep.ceil(Sa):ep(Sa),Sa=hf.offset(Sa,7*(Wr.V-1)),Wr.y=Sa.getUTCFullYear(),Wr.m=Sa.getUTCMonth(),Wr.d=Sa.getUTCDate()+(Wr.w+6)%7):(ec=(Sa=pf(tp(Wr.y,0,1))).getDay(),Sa=ec>4||0===ec?Jf.ceil(Sa):Jf(Sa),Sa=Kf.offset(Sa,7*(Wr.V-1)),Wr.y=Sa.getFullYear(),Wr.m=Sa.getMonth(),Wr.d=Sa.getDate()+(Wr.w+6)%7)}else("W"in Wr||"U"in Wr)&&("w"in Wr||(Wr.w="u"in Wr?Wr.u%7:"W"in Wr?1:0),ec="Z"in Wr?Hp(tp(Wr.y,0,1)).getUTCDay():pf(tp(Wr.y,0,1)).getDay(),Wr.m=0,Wr.d="W"in Wr?(Wr.w+6)%7+7*Wr.W-(ec+5)%7:Wr.w+7*Wr.U-(ec+6)%7);return"Z"in Wr?(Wr.H+=Wr.Z/100|0,Wr.M+=Wr.Z%100,Hp(Wr)):pf(Wr)}}function ul(Qs,Ma,Va,Wr){for(var _u,QA,nd=0,Sa=Ma.length,ec=Va.length;nd=ec)return-1;if(37===(_u=Ma.charCodeAt(nd++))){if(_u=Ma.charAt(nd++),!(QA=Xs[_u in Tu?Ma.charAt(nd++):_u])||(Wr=QA(Qs,Va,Wr))<0)return-1}else if(_u!=Va.charCodeAt(Wr++))return-1}return Wr}return qr.x=bs(Ae,qr),qr.X=bs(be,qr),qr.c=bs(H,qr),nr.x=bs(Ae,nr),nr.X=bs(be,nr),nr.c=bs(H,nr),{format:function(Qs){var Ma=bs(Qs+="",qr);return Ma.toString=function(){return Qs},Ma},parse:function(Qs){var Ma=Go(Qs+="",!1);return Ma.toString=function(){return Qs},Ma},utcFormat:function(Qs){var Ma=bs(Qs+="",nr);return Ma.toString=function(){return Qs},Ma},utcParse:function(Qs){var Ma=Go(Qs+="",!0);return Ma.toString=function(){return Qs},Ma}}}(y),$g=gf.format,Yg=gf.utcFormat,mv=gf.utcParse}({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});var Kg="%Y-%m-%dT%H:%M:%S.%LZ";function Av(y){return new Date(y)}function u_(y){return y instanceof Date?+y:+new Date(+y)}function Jg(y,H,Ae,be,Xe,ht,gt,Tt,Vt,Wt){var pn=v1(),Gn=pn.invert,qn=pn.domain,Ei=Wt(".%L"),kr=Wt(":%S"),pr=Wt("%I:%M"),wr=Wt("%I %p"),Ts=Wt("%a %d"),jo=Wt("%b %d"),qr=Wt("%B"),nr=Wt("%Y");function Xs(bs){return(Vt(bs)=1?bh:y<=-1?-bh:Math.asin(y)}function ds(y){return y.innerRadius}function mu(y){return y.outerRadius}function Hm(y){return y.startAngle}function U1(y){return y.endAngle}function z1(y){return y&&y.padAngle}function zA(y,H,Ae,be,Xe,ht,gt){var Tt=y-Ae,Vt=H-be,Wt=(gt?ht:-ht)/Wp(Tt*Tt+Vt*Vt),pn=Wt*Vt,Gn=-Wt*Tt,qn=y+pn,Ei=H+Gn,kr=Ae+pn,pr=be+Gn,wr=(qn+kr)/2,Ts=(Ei+pr)/2,jo=kr-qn,qr=pr-Ei,nr=jo*jo+qr*qr,Xs=Xe-ht,bs=qn*pr-kr*Ei,Go=(qr<0?-1:1)*Wp(cc(0,Xs*Xs*nr-bs*bs)),ul=(bs*qr-jo*Go)/nr,zc=(-bs*jo-qr*Go)/nr,dc=(bs*qr+jo*Go)/nr,ao=(-bs*jo+qr*Go)/nr,wl=ul-wr,Js=zc-Ts,Zo=dc-wr,th=ao-Ts;return wl*wl+Js*Js>Zo*Zo+th*th&&(ul=dc,zc=ao),{cx:ul,cy:zc,x01:-pn,y01:-Gn,x11:ul*(Xe/Xs-1),y11:zc*(Xe/Xs-1)}}function bv(){var y=ds,H=mu,Ae=Nc(0),be=null,Xe=Hm,ht=U1,gt=z1,Tt=null,Vt=function Ko(y){let H=3;return y.digits=function(Ae){if(!arguments.length)return H;if(null==Ae)H=null;else{const be=Math.floor(Ae);if(!(be>=0))throw new RangeError(`invalid digits: ${Ae}`);H=be}return y},()=>new Ln(H)}(Wt);function Wt(){var pn,Gn,qn=+y.apply(this,arguments),Ei=+H.apply(this,arguments),kr=Xe.apply(this,arguments)-bh,pr=ht.apply(this,arguments)-bh,wr=L1(pr-kr),Ts=pr>kr;if(Tt||(Tt=pn=Vt()),Eigd)if(wr>yv-gd)Tt.moveTo(Ei*Oa(kr),Ei*Ca(kr)),Tt.arc(0,0,Ei,kr,pr,!Ts),qn>gd&&(Tt.moveTo(qn*Oa(pr),qn*Ca(pr)),Tt.arc(0,0,qn,pr,kr,Ts));else{var Js,Zo,jo=kr,qr=pr,nr=kr,Xs=pr,bs=wr,Go=wr,ul=gt.apply(this,arguments)/2,zc=ul>gd&&(be?+be.apply(this,arguments):Wp(qn*qn+Ei*Ei)),dc=N1(L1(Ei-qn)/2,+Ae.apply(this,arguments)),ao=dc,wl=dc;if(zc>gd){var th=t0(zc/qn*Ca(ul)),nh=t0(zc/Ei*Ca(ul));(bs-=2*th)>gd?(nr+=th*=Ts?1:-1,Xs-=th):(bs=0,nr=Xs=(kr+pr)/2),(Go-=2*nh)>gd?(jo+=nh*=Ts?1:-1,qr-=nh):(Go=0,jo=qr=(kr+pr)/2)}var td=Ei*Oa(jo),Ld=Ei*Ca(jo),Jl=qn*Oa(Xs),cp=qn*Ca(Xs);if(dc>gd){var gu,a0=Ei*Oa(qr),l0=Ei*Ca(qr),Xm=qn*Oa(nr),em=qn*Ca(nr);if(wr1?0:y<-1?UA:Math.acos(y)}((c0*wf+d0*Qs)/(Wp(c0*c0+d0*d0)*Wp(wf*wf+Qs*Qs)))/2),Va=Wp(gu[0]*gu[0]+gu[1]*gu[1]);ao=N1(dc,(qn-Va)/(Ma-1)),wl=N1(dc,(Ei-Va)/(Ma+1))}else ao=wl=0}Go>gd?wl>gd?(Js=zA(Xm,em,td,Ld,Ei,wl,Ts),Zo=zA(a0,l0,Jl,cp,Ei,wl,Ts),Tt.moveTo(Js.cx+Js.x01,Js.cy+Js.y01),wlgd&&bs>gd?ao>gd?(Js=zA(Jl,cp,a0,l0,qn,-ao,Ts),Zo=zA(td,Ld,Xm,em,qn,-ao,Ts),Tt.lineTo(Js.cx+Js.x01,Js.cy+Js.y01),ao=0&&y._call.call(void 0,H),y=y._next;--sp}()}finally{sp=0,function GA(){for(var y,Ae,H=ml,be=1/0;H;)H._call?(be>H._time&&(be=H._time),y=H,H=H._next):(Ae=H._next,H._next=null,H=y?y._next=Ae:ml=Ae);jp=y,g_(be)}(),op=0}}function Gm(){var y=xl.now(),H=y-HA;H>_f&&(kd-=H,HA=y)}function g_(y){sp||(Vl&&(Vl=clearTimeout(Vl)),y-op>24?(y<1/0&&(Vl=setTimeout(r0,y-xl.now()-kd)),Zl&&(Zl=clearInterval(Zl))):(Zl||(HA=xl.now(),Zl=setInterval(Gm,_f)),sp=1,n0(r0)))}function __(y,H,Ae){var be=new VA;return be.restart(Xe=>{be.stop(),y(Xe+H)},H=null==H?0:+H,Ae),be}VA.prototype=Vm.prototype={constructor:VA,restart:function(y,H,Ae){if("function"!=typeof y)throw new TypeError("callback is not a function");Ae=(null==Ae?Uc():+Ae)+(null==H?0:+H),!this._next&&jp!==this&&(jp?jp._next=this:ml=this,jp=this),this._call=y,this._time=Ae,g_()},stop:function(){this._call&&(this._call=null,this._time=1/0,g_())}};var qm=wn("start","end","cancel","interrupt"),oo=[],Qm=0,Ls=3;function o0(y,H,Ae,be,Xe,ht){var gt=y.__transition;if(gt){if(Ae in gt)return}else y.__transition={};!function ae(y,H,Ae){var Xe,be=y.__transition;function gt(Wt){var pn,Gn,qn,Ei;if(1!==Ae.state)return Vt();for(pn in be)if((Ei=be[pn]).name===Ae.name){if(Ei.state===Ls)return __(gt);4===Ei.state?(Ei.state=6,Ei.timer.stop(),Ei.on.call("interrupt",y,y.__data__,Ei.index,Ei.group),delete be[pn]):+pnQm)throw new Error("too late; already scheduled");return Ae}function j(y,H){var Ae=ce(y,H);if(Ae.state>Ls)throw new Error("too late; already running");return Ae}function ce(y,H){var Ae=y.__transition;if(!Ae||!(Ae=Ae[H]))throw new Error("transition not found");return Ae}function Bt(y,H){var Ae,be;return function(){var Xe=j(this,y),ht=Xe.tween;if(ht!==Ae)for(var gt=0,Tt=(be=Ae=ht).length;gt=0&&(H=H.slice(0,Ae)),!H||"start"===H})}(H)?ne:j;return function(){var gt=ht(this,y),Tt=gt.on;Tt!==be&&(Xe=(be=Tt).copy()).on(H,Ae),gt.on=Xe}}(Ae,y,H))},attr:function Ns(y,H){var Ae=vn(y),be="transform"===Ae?j0:Zn;return this.attrTween(y,"function"==typeof H?(Ae.local?Ho:zr)(Ae,be,Wn(this,"attr."+y,H)):null==H?(Ae.local?Xi:ri)(Ae):(Ae.local?Ur:Ss)(Ae,be,H))},attrTween:function Es(y,H){var Ae="attr."+y;if(arguments.length<2)return(Ae=this.tween(Ae))&&Ae._value;if(null==H)return this.tween(Ae,null);if("function"!=typeof H)throw new Error;var be=vn(y);return this.tween(Ae,(be.local?Xo:Fo)(be,H))},style:function xv(y,H,Ae){var be="transform"==(y+="")?Pp:Zn;return null==H?this.styleTween(y,function UC(y,H){var Ae,be,Xe;return function(){var ht=go(this,y),gt=(this.style.removeProperty(y),go(this,y));return ht===gt?null:ht===Ae&>===be?Xe:Xe=H(Ae=ht,be=gt)}}(y,be)).on("end.style."+y,Ux(y)):"function"==typeof H?this.styleTween(y,function zC(y,H,Ae){var be,Xe,ht;return function(){var gt=go(this,y),Tt=Ae(this),Vt=Tt+"";return null==Tt&&(this.style.removeProperty(y),Vt=Tt=go(this,y)),gt===Vt?null:gt===be&&Vt===Xe?ht:(Xe=Vt,ht=H(be=gt,Tt))}}(y,be,Wn(this,"style."+y,H))).each(function zx(y,H){var Ae,be,Xe,Tt,ht="style."+H,gt="end."+ht;return function(){var Vt=j(this,y),Wt=Vt.on,pn=null==Vt.value[ht]?Tt||(Tt=Ux(H)):void 0;(Wt!==Ae||Xe!==pn)&&(be=(Ae=Wt).copy()).on(gt,Xe=pn),Vt.on=be}}(this._id,y)):this.styleTween(y,function lT(y,H,Ae){var be,ht,Xe=Ae+"";return function(){var gt=go(this,y);return gt===Xe?null:gt===be?ht:ht=H(be=gt,Ae)}}(y,be,H),Ae).on("end.style."+y,null)},styleTween:function v_(y,H,Ae){var be="style."+(y+="");if(arguments.length<2)return(be=this.tween(be))&&be._value;if(null==H)return this.tween(be,null);if("function"!=typeof H)throw new Error;return this.tween(be,function $m(y,H,Ae){var be,Xe;function ht(){var gt=H.apply(this,arguments);return gt!==Xe&&(be=(Xe=gt)&&function HC(y,H,Ae){return function(be){this.style.setProperty(y,H.call(this,be),Ae)}}(y,gt,Ae)),be}return ht._value=H,ht}(y,H,Ae??""))},text:function Kp(y){return this.tween("text","function"==typeof y?function Hx(y){return function(){var H=y(this);this.textContent=H??""}}(Wn(this,"text",y)):function VC(y){return function(){this.textContent=y}}(null==y?"":y+""))},textTween:function wv(y){var H="text";if(arguments.length<1)return(H=this.tween(H))&&H._value;if(null==y)return this.tween(H,null);if("function"!=typeof y)throw new Error;return this.tween(H,function Od(y){var H,Ae;function be(){var Xe=y.apply(this,arguments);return Xe!==Ae&&(H=(Ae=Xe)&&function cT(y){return function(H){this.textContent=y.call(this,H)}}(Xe)),H}return be._value=y,be}(y))},remove:function xf(){return this.on("end.remove",function Xp(y){return function(){var H=this.parentNode;for(var Ae in this.__transition)if(+Ae!==y)return;H&&H.removeChild(this)}}(this._id))},tween:function on(y,H){var Ae=this._id;if(y+="",arguments.length<2){for(var gt,be=ce(this.node(),Ae).tween,Xe=0,ht=be.length;Xe2&&be.state<5,be.state=6,be.timer.stop(),be.on.call(Xe?"interrupt":"cancel",y,y.__data__,be.index,be.group),delete Ae[gt]):ht=!1;ht&&delete y.__transition}}(this,y)})},kh.prototype.transition=function Mv(y){var H,Ae;y instanceof Zp?(H=y._id,y=y._name):(H=q1(),(Ae=Jp).time=Uc(),y=null==y?null:y+"");for(var be=this._groups,Xe=be.length,ht=0;ht{"use strict";Se.d(mt,{$2:()=>ue,AI:()=>b,Xv:()=>k,hd:()=>U,iO:()=>Z,uA:()=>I});var Te=Se(4882),L=(Se(8362),Se(8872)),ve=Se(4369),ke=Se(1949),ot=Se(2843),Ye=Se(1922),Ze=Se(5102);function Re(){return He.apply(this,arguments)}function He(){return(He=(0,Te.A)(function*(){return Se.e(653).then(Se.bind(Se,7653))})).apply(this,arguments)}function Ve(){return De.apply(this,arguments)}function De(){return(De=(0,Te.A)(function*(){return Promise.resolve().then(Se.bind(Se,4483))})).apply(this,arguments)}function F(){return J.apply(this,arguments)}function J(){return(J=(0,Te.A)(function*(){return Promise.all([Se.e(679),Se.e(76),Se.e(122)]).then(Se.bind(Se,1122))})).apply(this,arguments)}function Y(){return he.apply(this,arguments)}function he(){return(he=(0,Te.A)(function*(){return Promise.resolve().then(Se.bind(Se,6043))})).apply(this,arguments)}function Q(){return me.apply(this,arguments)}function me(){return(me=(0,Te.A)(function*(){return Promise.resolve().then(Se.bind(Se,2454)).then(te=>{const Je=U(L.prROOT+"TGeoVolumeAssembly");return Je&&(Je.icon="img_geoassembly"),te})})).apply(this,arguments)}const X="TGraph2D",B="TH2Poly",$="TEllipse",g="TSpline3",E="TTree",_="TCanvasWebSnapshot",v="fPrimitives",p="fFunctions",C={lst:[{name:L.clTCanvas,icon:"img_canvas",class:()=>Ve().then(te=>te.TCanvasPainter),opt:";grid;gridx;gridy;tick;tickx;ticky;log;logx;logy;logz",expand_item:v,noappend:!0},{name:L.clTPad,icon:"img_canvas",func:Ze.jg.draw,opt:";grid;gridx;gridy;tick;tickx;ticky;log;logx;logy;logz",expand_item:v,noappend:!0},{name:"TSlider",icon:"img_canvas",func:Ze.jg.draw},{name:Ze.cw,icon:"img_canvas",func:Ze.jg.draw},{name:"TFrame",icon:"img_frame",draw:()=>Ve().then(te=>te.drawTFrame)},{name:L.clTPave,icon:"img_pavetext",class:()=>Promise.resolve().then(Se.bind(Se,5891)).then(te=>te.TPavePainter)},{name:L.clTPaveText,sameas:L.clTPave},{name:L.clTPavesText,sameas:L.clTPave},{name:L.clTPaveStats,sameas:L.clTPave},{name:L.clTPaveLabel,sameas:L.clTPave},{name:L.clTPaveClass,sameas:L.clTPave},{name:L.clTDiamond,sameas:L.clTPave},{name:L.clTLegend,icon:"img_pavelabel",sameas:L.clTPave},{name:L.clTPaletteAxis,icon:"img_colz",sameas:L.clTPave},{name:L.clTLatex,icon:"img_text",draw:()=>Re().then(te=>te.drawText),direct:!0},{name:L.clTMathText,sameas:L.clTLatex},{name:L.clTText,sameas:L.clTLatex},{name:L.clTAnnotation,sameas:L.clTLatex},{name:/^TH1/,icon:"img_histo1d",class:()=>Promise.resolve().then(Se.bind(Se,8142)).then(te=>te.TH1Painter),opt:";hist;P;P0;E;E1;E2;E3;E4;E1X0;L;LF2;C;B;B1;A;TEXT;LEGO;same",ctrl:"l",expand_item:p,for_derived:!0},{name:L.clTProfile,icon:"img_profile",class:()=>Promise.resolve().then(Se.bind(Se,8142)).then(te=>te.TH1Painter),opt:";E0;E1;E2;p;AH;hist",expand_item:p},{name:B,icon:"img_histo2d",class:()=>Promise.resolve().then(Se.bind(Se,4355)).then(te=>te.TH2Painter),opt:";COL;COL0;COLZ;LCOL;LCOL0;LCOLZ;LEGO;TEXT;same",expand_item:"fBins",theonly:!0},{name:"TProfile2Poly",sameas:B},{name:"TH2PolyBin",icon:"img_histo2d",draw_field:"fPoly",draw_field_opt:"L"},{name:/^TH2/,icon:"img_histo2d",class:()=>Promise.resolve().then(Se.bind(Se,4355)).then(te=>te.TH2Painter),dflt:"col",opt:";COL;COLZ;COL0;COL1;COL0Z;COL1Z;COLA;BOX;BOX1;PROJ;PROJX1;PROJX2;PROJX3;PROJY1;PROJY2;PROJY3;SCAT;TEXT;TEXTE;TEXTE0;CANDLE;CANDLE1;CANDLE2;CANDLE3;CANDLE4;CANDLE5;CANDLE6;CANDLEY1;CANDLEY2;CANDLEY3;CANDLEY4;CANDLEY5;CANDLEY6;VIOLIN;VIOLIN1;VIOLIN2;VIOLINY1;VIOLINY2;CONT;CONT1;CONT2;CONT3;CONT4;ARR;SURF;SURF1;SURF2;SURF4;SURF6;E;A;LEGO;LEGO0;LEGO1;LEGO2;LEGO3;LEGO4;same",ctrl:"lego",expand_item:p,for_derived:!0},{name:L.clTProfile2D,sameas:L.clTH2},{name:/^TH3/,icon:"img_histo3d",class:()=>Promise.resolve().then(Se.bind(Se,1828)).then(te=>te.TH3Painter),opt:";SCAT;BOX;BOX2;BOX3;GLBOX1;GLBOX2;GLCOL",expand_item:p,for_derived:!0},{name:L.clTProfile3D,sameas:L.clTH3},{name:L.clTHStack,icon:"img_histo1d",class:()=>Se.e(217).then(Se.bind(Se,217)).then(te=>te.THStackPainter),expand_item:"fHists",opt:"NOSTACK;HIST;E;PFC;PLC"},{name:L.clTPolyMarker3D,icon:"img_histo3d",draw:()=>Promise.all([Se.e(76),Se.e(289)]).then(Se.bind(Se,4289)).then(te=>te.drawPolyMarker3D),direct:!0,frame:"3d"},{name:L.clTPolyLine3D,icon:"img_graph",draw:()=>Promise.all([Se.e(76),Se.e(289)]).then(Se.bind(Se,4289)).then(te=>te.drawPolyLine3D),direct:!0,frame:"3d"},{name:"TGraphStruct"},{name:"TGraphNode"},{name:"TGraphEdge"},{name:L.clTGraphTime,icon:"img_graph",class:()=>Se.e(280).then(Se.bind(Se,7280)).then(te=>te.TGraphTimePainter),opt:"once;repeat;first",theonly:!0},{name:X,icon:"img_graph",class:()=>Se.e(763).then(Se.bind(Se,5763)).then(te=>te.TGraph2DPainter),opt:";P;PCOL",theonly:!0},{name:L.clTGraph2DErrors,sameas:X,opt:";P;PCOL;ERR",theonly:!0},{name:L.clTGraph2DAsymmErrors,sameas:X,opt:";P;PCOL;ERR",theonly:!0},{name:L.clTGraphPolargram,icon:"img_graph",class:()=>Se.e(675).then(Se.bind(Se,6675)).then(te=>te.TGraphPolargramPainter),theonly:!0},{name:L.clTGraphPolar,icon:"img_graph",class:()=>Se.e(675).then(Se.bind(Se,6675)).then(te=>te.TGraphPolarPainter),opt:";F;L;P;PE",theonly:!0},{name:/^TGraph/,icon:"img_graph",class:()=>Se.e(679).then(Se.bind(Se,2679)).then(te=>te.TGraphPainter),opt:";L;P"},{name:"TEfficiency",icon:"img_graph",class:()=>Promise.all([Se.e(679),Se.e(508)]).then(Se.bind(Se,1508)).then(te=>te.TEfficiencyPainter),opt:";AP"},{name:L.clTCutG,sameas:L.clTGraph},{name:/^RooHist/,sameas:L.clTGraph},{name:/^RooCurve/,sameas:L.clTGraph},{name:"TScatter",icon:"img_graph",class:()=>Promise.all([Se.e(679),Se.e(165)]).then(Se.bind(Se,1165)).then(te=>te.TScatterPainter),opt:";A"},{name:"RooPlot",icon:"img_canvas",func:function lt(te,Je){return bt.apply(this,arguments)}},{name:"TRatioPlot",icon:"img_mgraph",class:()=>Promise.all([Se.e(76),Se.e(103)]).then(Se.bind(Se,6103)).then(te=>te.TRatioPlotPainter),opt:""},{name:L.clTMultiGraph,icon:"img_mgraph",class:()=>Promise.all([Se.e(679),Se.e(76),Se.e(642)]).then(Se.bind(Se,6642)).then(te=>te.TMultiGraphPainter),opt:";l;p;3d",expand_item:"fGraphs"},{name:ve.R0,icon:"img_question",draw:()=>Y().then(te=>te.drawStreamerInfo)},{name:"TWebPainting",icon:"img_graph",class:()=>Se.e(445).then(Se.bind(Se,9445)).then(te=>te.TWebPaintingPainter)},{name:_,icon:"img_canvas",draw:()=>Ve().then(te=>te.drawTPadSnapshot)},{name:"TPadWebSnapshot",sameas:_},{name:"kind:Text",icon:"img_text",func:Ye.as},{name:L.clTObjString,icon:"img_text",func:Ye.as},{name:L.clTF1,icon:"img_tf1",class:()=>Promise.resolve().then(Se.bind(Se,8868)).then(te=>te.TF1Painter),opt:";L;C;FC;FL"},{name:L.clTF2,icon:"img_tf2",class:()=>Se.e(781).then(Se.bind(Se,2781)).then(te=>te.TF2Painter),opt:";BOX;ARR;SURF;SURF1;SURF2;SURF4;SURF6;LEGO;LEGO0;LEGO1;LEGO2;LEGO3;LEGO4;same"},{name:L.clTF3,icon:"img_histo3d",class:()=>Se.e(734).then(Se.bind(Se,4734)).then(te=>te.TF3Painter),opt:";SURF"},{name:g,icon:"img_tf1",class:()=>Se.e(246).then(Se.bind(Se,5246)).then(te=>te.TSplinePainter)},{name:"TSpline5",sameas:g},{name:$,icon:"img_graph",draw:()=>Re().then(te=>te.drawEllipse),direct:!0},{name:"TArc",sameas:$},{name:"TCrown",sameas:$},{name:"TPie",icon:"img_graph",draw:()=>Re().then(te=>te.drawPie),direct:!0},{name:"TPieSlice",icon:"img_graph",dummy:!0},{name:"TExec",icon:"img_graph",dummy:!0},{name:L.clTLine,icon:"img_graph",class:()=>Se.e(76).then(Se.bind(Se,801)).then(te=>te.TLinePainter)},{name:"TArrow",icon:"img_graph",class:()=>Promise.all([Se.e(76),Se.e(302)]).then(Se.bind(Se,3302)).then(te=>te.TArrowPainter)},{name:L.clTPolyLine,icon:"img_graph",draw:()=>Re().then(te=>te.drawPolyLine),direct:!0},{name:"TCurlyLine",sameas:L.clTPolyLine},{name:"TCurlyArc",sameas:L.clTPolyLine},{name:"TParallelCoord",icon:"img_graph",dummy:!0},{name:L.clTGaxis,icon:"img_graph",class:()=>Se.e(15).then(Se.bind(Se,4015)).then(te=>te.TGaxisPainter)},{name:L.clTBox,icon:"img_graph",draw:()=>Re().then(te=>te.drawBox),direct:!0},{name:"TWbox",sameas:L.clTBox},{name:"TSliderBox",sameas:L.clTBox},{name:"TMarker",icon:"img_graph",draw:()=>Re().then(te=>te.drawMarker),direct:!0},{name:"TPolyMarker",icon:"img_graph",draw:()=>Re().then(te=>te.drawPolyMarker),direct:!0},{name:"TASImage",icon:"img_mgraph",class:()=>Se.e(666).then(Se.bind(Se,6666)).then(te=>te.TASImagePainter),opt:";z"},{name:"TJSImage",icon:"img_mgraph",draw:()=>Re().then(te=>te.drawJSImage),opt:";scale;center"},{name:L.clTGeoVolume,icon:"img_histo3d",class:()=>Q().then(te=>te.TGeoPainter),get_expand:()=>Q().then(te=>te.expandGeoObject),opt:";more;all;count;projx;projz;wire;no_screen;dflt",ctrl:"dflt"},{name:"TEveGeoShapeExtract",sameas:L.clTGeoVolume,opt:";more;all;count;projx;projz;wire;dflt"},{name:L.nsREX+"REveGeoShapeExtract",sameas:L.clTGeoVolume,opt:";more;all;count;projx;projz;wire;dflt"},{name:"TGeoOverlap",sameas:L.clTGeoVolume,opt:";more;all;count;projx;projz;wire;dflt",dflt:"dflt",ctrl:"expand"},{name:"TGeoManager",sameas:L.clTGeoVolume,opt:";more;all;count;projx;projz;wire;tracks;no_screen;dflt",dflt:"expand",ctrl:"dflt",noappend:!0,exapnd_after_draw:!0},{name:"TGeoVolumeAssembly",sameas:L.clTGeoVolume,opt:";more;all;count"},{name:/^TGeo/,class:()=>Q().then(te=>te.TGeoPainter),get_expand:()=>Q().then(te=>te.expandGeoObject),opt:";more;all;axis;compa;count;projx;projz;wire;no_screen;dflt",dflt:"dflt",ctrl:"expand"},{name:"TAxis3D",icon:"img_graph",draw:()=>Q().then(te=>te.drawAxis3D),direct:!0},{name:"kind:Command",icon:"img_execute",execute:!0},{name:"TFolder",icon:"img_folder",icon2:"img_folderopen",noinspect:!0,get_expand:()=>Y().then(te=>te.folderHierarchy)},{name:"TTask",icon:"img_task",get_expand:()=>Y().then(te=>te.taskHierarchy),for_derived:!0},{name:E,icon:"img_tree",get_expand:()=>Promise.resolve().then(Se.bind(Se,1949)).then(te=>te.treeHierarchy),draw:()=>F().then(te=>te.drawTree),dflt:"expand",opt:"player;testio",shift:L.kInspect},{name:"TNtuple",sameas:E},{name:"TNtupleD",sameas:E},{name:ke.clTBranchFunc,icon:"img_leaf_method",draw:()=>F().then(te=>te.drawTree),opt:";dump",noinspect:!0},{name:/^TBranch/,icon:"img_branch",draw:()=>F().then(te=>te.drawTree),dflt:"expand",opt:";dump",ctrl:"dump",shift:L.kInspect,ignore_online:!0,always_draw:!0},{name:/^TLeaf/,icon:"img_leaf",noexpand:!0,draw:()=>F().then(te=>te.drawTree),opt:";dump",ctrl:"dump",ignore_online:!0,always_draw:!0},{name:L.clTList,icon:"img_list",draw:()=>Y().then(te=>te.drawList),get_expand:()=>Y().then(te=>te.listHierarchy),dflt:"expand"},{name:L.clTHashList,sameas:L.clTList},{name:L.clTObjArray,sameas:L.clTList},{name:L.clTClonesArray,sameas:L.clTList},{name:L.clTMap,sameas:L.clTList},{name:L.clTColor,icon:"img_color"},{name:L.clTFile,icon:"img_file",noinspect:!0},{name:"TMemFile",icon:"img_file",noinspect:!0},{name:L.clTStyle,icon:"img_question",noexpand:!0},{name:"Session",icon:"img_globe"},{name:"kind:TopFolder",icon:"img_base"},{name:"kind:Folder",icon:"img_folder",icon2:"img_folderopen",noinspect:!0},{name:L.nsREX+"RCanvas",icon:"img_canvas",class:()=>je().then(te=>te.RCanvasPainter),opt:"",expand_item:v},{name:L.nsREX+"RCanvasDisplayItem",icon:"img_canvas",draw:()=>je().then(te=>te.drawRPadSnapshot),opt:"",expand_item:v},{name:L.nsREX+"RHist1Drawable",icon:"img_histo1d",class:()=>je("rh1").then(te=>te.RH1Painter),opt:""},{name:L.nsREX+"RHist2Drawable",icon:"img_histo2d",class:()=>je("rh2").then(te=>te.RH2Painter),opt:""},{name:L.nsREX+"RHist3Drawable",icon:"img_histo3d",class:()=>je("rh3").then(te=>te.RH3Painter),opt:""},{name:L.nsREX+"RHistDisplayItem",icon:"img_histo1d",draw:()=>je("rh3").then(te=>te.drawHistDisplayItem),opt:""},{name:L.nsREX+"RText",icon:"img_text",draw:()=>je("more").then(te=>te.drawText),opt:"",direct:"v7",csstype:"text"},{name:L.nsREX+"RFrameTitle",icon:"img_text",draw:()=>je().then(te=>te.drawRFrameTitle),opt:"",direct:"v7",csstype:"title"},{name:L.nsREX+"RPaletteDrawable",icon:"img_text",class:()=>je("more").then(te=>te.RPalettePainter),opt:""},{name:L.nsREX+"RDisplayHistStat",icon:"img_pavetext",class:()=>je("pave").then(te=>te.RHistStatsPainter),opt:""},{name:L.nsREX+"RLine",icon:"img_graph",draw:()=>je("more").then(te=>te.drawLine),opt:"",direct:"v7",csstype:"line"},{name:L.nsREX+"RBox",icon:"img_graph",draw:()=>je("more").then(te=>te.drawBox),opt:"",direct:"v7",csstype:"box"},{name:L.nsREX+"RMarker",icon:"img_graph",draw:()=>je("more").then(te=>te.drawMarker),opt:"",direct:"v7",csstype:"marker"},{name:L.nsREX+"RPave",icon:"img_pavetext",class:()=>je("pave").then(te=>te.RPavePainter),opt:""},{name:L.nsREX+"RLegend",icon:"img_graph",class:()=>je("pave").then(te=>te.RLegendPainter),opt:""},{name:L.nsREX+"RPaveText",icon:"img_pavetext",class:()=>je("pave").then(te=>te.RPaveTextPainter),opt:""},{name:L.nsREX+"RFrame",icon:"img_frame",draw:()=>je().then(te=>te.drawRFrame),opt:""},{name:L.nsREX+"RFont",icon:"img_text",draw:()=>je().then(te=>te.drawRFont),opt:"",direct:"v7",csstype:"font"},{name:L.nsREX+"RAxisDrawable",icon:"img_frame",draw:()=>je().then(te=>te.drawRAxis),opt:""}],cache:{}};function I(te){return C.lst.push(te),te}function U(te,Je){if(!(0,L.isStr)(te))return null;""===Je&&(Je=null);let tt=null;if(null===Je&&te in C.cache)return C.cache[te];const Fe=0===te.indexOf(L.prROOT)?te.slice(5):`kind:${te}`;let Ne=0;for(let rt=0;rt=0)return St}}else if(Je===Ne)return St;++Ne}return tt}function k(te){return(0,L.isStr)(te)&&(te=U(te)),!!(0,L.isObject)(te)&&(te.func||te.class||te.draw||te.draw_field)}function Z(te,Je){const tt={opts:null,inspect:!1,expand:!1,draw:!1,handle:null};if(!(0,L.isStr)(te))return tt;let Fe=!1,Ne=!1,rt=!1;(0,L.isStr)(Je)||(Je="");for(let St=0;St<1e3;++St){const pt=U(te,St);if(!(pt&&(tt.handle||(tt.handle=pt),pt.noinspect&&(Ne=!0),pt.noappend&&(tt.noappend=!0),(pt.expand||pt.get_expand||pt.expand_item||pt.can_expand)&&(rt=!0),pt.func||pt.class||pt.draw)))break;if(Fe=!0,!("opt"in pt))continue;const st=pt.opt.split(";");for(let vt=0;vt=0))&&(null===tt.opts&&(tt.opts=[]),tt.opts.indexOf(st[vt])<0&&tt.opts.push(st[vt]));if(pt.theonly)break}return Je.indexOf("noinspect")>=0&&(Ne=!0),Fe&&null===tt.opts&&(tt.opts=[""]),!Fe&&0===te.indexOf(L.prROOT)&&!Ne&&(tt.opts=[]),!Ne&&tt.opts&&tt.opts.push(L.kInspect),tt.inspect=!Ne,tt.expand=rt,tt.draw=!!tt.opts,tt}function ue(te,Je,tt){return V.apply(this,arguments)}function V(){return(V=(0,Te.A)(function*(te,Je,tt){if(!(0,L.isObject)(Je))return Promise.reject(Error("not an object in draw call"));if((0,L.isStr)(tt)&&0===tt.indexOf(L.kInspect))return Y().then(pt=>pt.drawInspector(te,Je,tt));let Fe,Ne,St;if("_typename"in Je)Ne="type "+Je._typename,Fe=U(L.prROOT+Je._typename,tt);else{if(!("_kind"in Je))return Y().then(pt=>pt.drawInspector(te,Je,tt));Ne="kind "+Je._kind,Fe=U(Je._kind,tt)}if(!Fe)return Promise.reject(Error(`Object of ${Ne} cannot be shown with draw`));if(Fe.dummy)return null;if(Fe.draw_field&&Je[Fe.draw_field])return ue(te,Je[Fe.draw_field],tt||Fe.draw_field_opt);if(!k(Fe)){if(tt&&tt.indexOf("same")>=0){const pt=(0,Ye.Nn)(te);if((0,L.isFunc)(pt?.performDrop))return pt.performDrop(Je,"",null,tt)}return Promise.reject(Error(`Function not specified to draw object ${Ne}`))}function rt(){let pt,st;return"v7"===Fe.direct?pt=Se.e(990).then(Se.bind(Se,1990)).then(vt=>(st=new vt.RObjectPainter(te,Je,tt,Fe.csstype),st.redraw=Fe.func,vt.ensureRCanvas(st,Fe.frame||!1))).then(()=>st.redraw()):Fe.direct?(st=new Ye.JW(te,Je,tt),st.redraw=Fe.func,pt=Ve().then(vt=>vt.ensureTCanvas(st,Fe.frame||!1)).then(()=>st.redraw())):pt=(0,L.getPromise)(Fe.func(te,Je,tt)),pt.then(vt=>{if(st||(st=vt),!1===st)return null;if(!st)throw Error(`Fail to draw object ${Ne}`);return(0,L.isObject)(st)&&!st.options&&(st.options={original:tt||""}),st})}if((0,L.isFunc)(Fe.func))return rt();if((0,L.isFunc)(Fe.class))St=Fe.class().then(pt=>{Fe.func=pt.draw});else if((0,L.isFunc)(Fe.draw))St=Fe.draw().then(pt=>{Fe.func=pt});else{if(!Fe.func||!(0,L.isStr)(Fe.func))return Promise.reject(Error(`Draw function or class not specified to draw ${Ne}`));if(!Fe.prereq&&!Fe.script)return Promise.reject(Error(`Prerequicities to load ${Fe.func} are not specified`));St=(L.internals.ignore_v6?Promise.resolve(!0):(0,L._ensureJSROOT)().then(st=>(Fe.prereq?st.require(Fe.prereq):Promise.resolve(!0)).then(()=>{if(Fe.script)return(0,L.loadScript)(Fe.script)}).then(()=>st._complete_loading()))).then(()=>{const st=(0,L.findFunction)(Fe.func);if(!(0,L.isFunc)(st))return Promise.reject(Error(`Fail to find function ${Fe.func} after loading ${Fe.prereq||Fe.script}`));Fe.func=st})}return St.then(()=>rt())})).apply(this,arguments)}function b(te,Je,tt){return P.apply(this,arguments)}function P(){return(P=(0,Te.A)(function*(te,Je,tt){if(!(0,L.isObject)(Je))return Promise.reject(Error("not an object in redraw"));const Fe=(0,Ye.m6)(te);let Ne,St,rt=null;if(Je._typename&&(Ne=U(L.prROOT+Je._typename)),Ne?.draw_field&&Je[Ne.draw_field]&&(Je=Je[Ne.draw_field]),Fe)if(Fe.matchObjectType(Je._typename))St=Fe.redrawObject(Je,tt),St&&(rt=Fe);else for(let pt=0;ptrt):((0,Ye.tP)(te),ue(te,Je,tt))})).apply(this,arguments)}function Me(te){te.prototype.drawObject=(...Je)=>ue(...Je).catch(tt=>(console.log(`Error ${tt?.message??tt} at ${tt?.stack??"uncknown place"}`),null)),te.prototype.getObjectDrawSettings=Z}function je(te){return Ge.apply(this,arguments)}function Ge(){return(Ge=(0,Te.A)(function*(te){return Se.e(990).then(Se.bind(Se,1990)).then(Je=>{switch(Me(Je.RPadPainter),te){case"more":return Promise.all([Se.e(990),Se.e(696)]).then(Se.bind(Se,8696));case"pave":return Promise.all([Se.e(990),Se.e(409)]).then(Se.bind(Se,4409));case"rh1":return Promise.all([Se.e(990),Se.e(521),Se.e(908)]).then(Se.bind(Se,7908));case"rh2":return Promise.all([Se.e(990),Se.e(521),Se.e(125)]).then(Se.bind(Se,2125));case"rh3":return Promise.all([Se.e(990),Se.e(521),Se.e(125),Se.e(908),Se.e(746)]).then(Se.bind(Se,8746))}return Je})})).apply(this,arguments)}function bt(){return bt=(0,Te.A)(function*(te,Je){return ue(te,Je._hist,"hist").then(function(){var tt=(0,Te.A)(function*(Fe){const Ne=[];for(let rt=0;rtFe)});return function(Fe){return tt.apply(this,arguments)}}())}),bt.apply(this,arguments)}L.internals.addDrawFunc=I,Me(Ze.jg),L.internals.addStreamerInfosForPainter=function T(te){if(!te)return;const Je=[L.clTObject,L.clTNamed,L.clTString,"TCollection",L.clTAttLine,L.clTAttFill,L.clTAttMarker,L.clTAttText];function tt(Fe,Ne){const rt=Fe.fElements?.arr[0];if("BASE"!==rt?.fTypeName||Ne>4||Je.indexOf(rt.fName)>=0)return null;let St=U(L.prROOT+rt.fName);if(St&&!St.for_derived&&(St=null),null===St)for(let pt=0;pt{if(null!==U(L.prROOT+Fe.fName))return;const Ne=tt(Fe,0);if(Ne){const rt=Object.assign({},Ne);delete rt.for_derived,rt.name=Fe.fName,I(rt)}})}},2454:(Yr,mt,Se)=>{"use strict";Se.r(mt),Se.d(mt,{ClonedNodes:()=>Z.De,GeoDrawingControl:()=>rt,TGeoPainter:()=>$n,build:()=>yo,createGeoPainter:()=>Sn,drawAxis3D:()=>Bs,drawDummy3DGeom:()=>Lr,expandGeoObject:()=>bt,produceRenderOrder:()=>Z.Pz});var Te=Se(4882),x=Se(8872),L=Se(2923),ve=Se(5992);class ke{constructor(K,ge,ye,Pe,At="div"){this.parent=K,this.object=ge,this.property=ye,this._disabled=!1,this._hidden=!1,this.initialValue=this.getValue(),this.domElement=document.createElement("div"),this.domElement.classList.add("controller"),this.domElement.classList.add(Pe),this.$name=document.createElement("div"),this.$name.classList.add("name"),ke.nextNameID=ke.nextNameID||0,this.$name.id="lil-gui-name-"+ ++ke.nextNameID,this.$widget=document.createElement(At),this.$widget.classList.add("widget"),this.$disable=this.$widget,this.domElement.appendChild(this.$name),this.domElement.appendChild(this.$widget),this.domElement.addEventListener("keydown",Ht=>Ht.stopPropagation()),this.domElement.addEventListener("keyup",Ht=>Ht.stopPropagation()),this.parent.children.push(this),this.parent.controllers.push(this),this.parent.$children.appendChild(this.domElement),this._listenCallback=this._listenCallback.bind(this),this.name(ye)}name(K){return this._name=K,this.$name.innerHTML=K,this}onChange(K){return this._onChange=K,this}_callOnChange(){this.parent._callOnChange(this),void 0!==this._onChange&&this._onChange.call(this,this.getValue()),this._changed=!0}onFinishChange(K){return this._onFinishChange=K,this}_callOnFinishChange(){this._changed&&(this.parent._callOnFinishChange(this),void 0!==this._onFinishChange&&this._onFinishChange.call(this,this.getValue())),this._changed=!1}reset(){return this.setValue(this.initialValue),this._callOnFinishChange(),this}enable(K=!0){return this.disable(!K)}disable(K=!0){return K===this._disabled||(this._disabled=K,this.domElement.classList.toggle("disabled",K),this.$disable.toggleAttribute("disabled",K)),this}show(K=!0){return this._hidden=!K,this.domElement.style.display=this._hidden?"none":"",this}hide(){return this.show(!1)}options(K){const ge=this.parent.add(this.object,this.property,K);return ge.name(this._name),this.destroy(),ge}min(K){return this}max(K){return this}step(K){return this}decimals(K){return this}listen(K=!0){return this._listening=K,void 0!==this._listenCallbackID&&(cancelAnimationFrame(this._listenCallbackID),this._listenCallbackID=void 0),this._listening&&this._listenCallback(),this}_listenCallback(){this._listenCallbackID=requestAnimationFrame(this._listenCallback);const K=this.save();K!==this._listenPrevValue&&this.updateDisplay(),this._listenPrevValue=K}getValue(){return this.object[this.property]}setValue(K){return this.object[this.property]=K,this._callOnChange(),this.updateDisplay(),this}updateDisplay(){return this}load(K){return this.setValue(K),this._callOnFinishChange(),this}save(){return this.getValue()}destroy(){this.listen(!1),this.parent.children.splice(this.parent.children.indexOf(this),1),this.parent.controllers.splice(this.parent.controllers.indexOf(this),1),this.parent.$children.removeChild(this.domElement)}}class ot extends ke{constructor(K,ge,ye){super(K,ge,ye,"boolean","label"),this.$input=document.createElement("input"),this.$input.setAttribute("type","checkbox"),this.$input.setAttribute("aria-labelledby",this.$name.id),this.$widget.appendChild(this.$input),this.$input.addEventListener("change",()=>{this.setValue(this.$input.checked),this._callOnFinishChange()}),this.$disable=this.$input,this.updateDisplay()}updateDisplay(){return this.$input.checked=this.getValue(),this}}function Ye(xt){let K,ge;return(K=xt.match(/(#|0x)?([a-f0-9]{6})/i))?ge=K[2]:(K=xt.match(/rgb\(\s*(\d*)\s*,\s*(\d*)\s*,\s*(\d*)\s*\)/))?ge=parseInt(K[1]).toString(16).padStart(2,0)+parseInt(K[2]).toString(16).padStart(2,0)+parseInt(K[3]).toString(16).padStart(2,0):(K=xt.match(/^#?([a-f0-9])([a-f0-9])([a-f0-9])$/i))&&(ge=K[1]+K[1]+K[2]+K[2]+K[3]+K[3]),!!ge&&"#"+ge}const Re={isPrimitive:!0,match:xt=>"number"==typeof xt,fromHexString:xt=>parseInt(xt.substring(1),16),toHexString:xt=>"#"+xt.toString(16).padStart(6,0)},De=[{isPrimitive:!0,match:xt=>"string"==typeof xt,fromHexString:Ye,toHexString:Ye},Re,{isPrimitive:!1,match:xt=>Array.isArray(xt),fromHexString(xt,K,ge=1){const ye=Re.fromHexString(xt);K[0]=(ye>>16&255)/255*ge,K[1]=(ye>>8&255)/255*ge,K[2]=(255&ye)/255*ge},toHexString:([xt,K,ge],ye=1)=>Re.toHexString(xt*(ye=255/ye)<<16^K*ye<<8^ge*ye)},{isPrimitive:!1,match:xt=>Object(xt)===xt,fromHexString(xt,K,ge=1){const ye=Re.fromHexString(xt);K.r=(ye>>16&255)/255*ge,K.g=(ye>>8&255)/255*ge,K.b=(255&ye)/255*ge},toHexString:({r:xt,g:K,b:ge},ye=1)=>Re.toHexString(xt*(ye=255/ye)<<16^K*ye<<8^ge*ye)}];class J extends ke{constructor(K,ge,ye,Pe){super(K,ge,ye,"color"),this.$input=document.createElement("input"),this.$input.setAttribute("type","color"),this.$input.setAttribute("tabindex",-1),this.$input.setAttribute("aria-labelledby",this.$name.id),this.$text=document.createElement("input"),this.$text.setAttribute("type","text"),this.$text.setAttribute("spellcheck","false"),this.$text.setAttribute("aria-labelledby",this.$name.id),this.$display=document.createElement("div"),this.$display.classList.add("display"),this.$display.appendChild(this.$input),this.$widget.appendChild(this.$display),this.$widget.appendChild(this.$text),this._format=function F(xt){return De.find(K=>K.match(xt))}(this.initialValue),this._rgbScale=Pe,this._initialValueHexString=this.save(),this._textFocused=!1,this.$input.addEventListener("input",()=>{this._setValueFromHexString(this.$input.value)}),this.$input.addEventListener("blur",()=>{this._callOnFinishChange()}),this.$text.addEventListener("input",()=>{const At=Ye(this.$text.value);At&&this._setValueFromHexString(At)}),this.$text.addEventListener("focus",()=>{this._textFocused=!0,this.$text.select()}),this.$text.addEventListener("blur",()=>{this._textFocused=!1,this.updateDisplay(),this._callOnFinishChange()}),this.$disable=this.$text,this.updateDisplay()}reset(){return this._setValueFromHexString(this._initialValueHexString),this}_setValueFromHexString(K){if(this._format.isPrimitive){const ge=this._format.fromHexString(K);this.setValue(ge)}else this._format.fromHexString(K,this.getValue(),this._rgbScale),this._callOnChange(),this.updateDisplay()}save(){return this._format.toHexString(this.getValue(),this._rgbScale)}load(K){return this._setValueFromHexString(K),this._callOnFinishChange(),this}updateDisplay(){return this.$input.value=this._format.toHexString(this.getValue(),this._rgbScale),this._textFocused||(this.$text.value=this.$input.value.substring(1)),this.$display.style.backgroundColor=this.$input.value,this}}class Y extends ke{constructor(K,ge,ye){super(K,ge,ye,"function"),this.$button=document.createElement("button"),this.$button.appendChild(this.$name),this.$widget.appendChild(this.$button),this.$button.addEventListener("click",Pe=>{Pe.preventDefault(),this.getValue().call(this.object),this._callOnChange()}),this.$button.addEventListener("touchstart",()=>{},{passive:!0}),this.$disable=this.$button}}class he extends ke{constructor(K,ge,ye,Pe,At,Ht){super(K,ge,ye,"number"),this._initInput(),this.min(Pe),this.max(At);const Nt=void 0!==Ht;this.step(Nt?Ht:this._getImplicitStep(),Nt),this.updateDisplay()}decimals(K){return this._decimals=K,this.updateDisplay(),this}min(K){return this._min=K,this._onUpdateMinMax(),this}max(K){return this._max=K,this._onUpdateMinMax(),this}step(K,ge=!0){return this._step=K,this._stepExplicit=ge,this}updateDisplay(){const K=this.getValue();if(this._hasSlider){let ge=(K-this._min)/(this._max-this._min);ge=Math.max(0,Math.min(ge,1)),this.$fill.style.width=100*ge+"%"}return this._inputFocused||(this.$input.value=void 0===this._decimals?K:K.toFixed(this._decimals)),this}_initInput(){this.$input=document.createElement("input"),this.$input.setAttribute("type","text"),this.$input.setAttribute("aria-labelledby",this.$name.id),window.matchMedia("(pointer: coarse)").matches&&(this.$input.setAttribute("type","number"),this.$input.setAttribute("step","any")),this.$widget.appendChild(this.$input),this.$disable=this.$input;const ye=Wi=>{const Ln=parseFloat(this.$input.value);isNaN(Ln)||(this._snapClampSetValue(Ln+Wi),this.$input.value=this.getValue())};let Nt,nn,un,kn,cn,Ht=!1;const Pi=Wi=>{if(Ht){const Ln=Wi.clientX-Nt;Math.abs(Wi.clientY-nn)>5?(Wi.preventDefault(),this.$input.blur(),Ht=!1,this._setDraggingStyle(!0,"vertical")):Math.abs(Ln)>5&&Si()}Ht||(cn-=(Wi.clientY-un)*this._step*this._arrowKeyMultiplier(Wi),kn+cn>this._max?cn=this._max-kn:kn+cn{this._setDraggingStyle(!1,"vertical"),this._callOnFinishChange(),window.removeEventListener("mousemove",Pi),window.removeEventListener("mouseup",Si)};this.$input.addEventListener("input",()=>{let Wi=parseFloat(this.$input.value);isNaN(Wi)||(this._stepExplicit&&(Wi=this._snap(Wi)),this.setValue(this._clamp(Wi)))}),this.$input.addEventListener("keydown",Wi=>{"Enter"===Wi.key&&this.$input.blur(),"ArrowUp"===Wi.code&&(Wi.preventDefault(),ye(this._step*this._arrowKeyMultiplier(Wi))),"ArrowDown"===Wi.code&&(Wi.preventDefault(),ye(this._step*this._arrowKeyMultiplier(Wi)*-1))}),this.$input.addEventListener("wheel",Wi=>{this._inputFocused&&(Wi.preventDefault(),ye(this._step*this._normalizeMouseWheel(Wi)))},{passive:!1}),this.$input.addEventListener("mousedown",Wi=>{Nt=Wi.clientX,nn=un=Wi.clientY,Ht=!0,kn=this.getValue(),cn=0,window.addEventListener("mousemove",Pi),window.addEventListener("mouseup",Si)}),this.$input.addEventListener("focus",()=>{this._inputFocused=!0}),this.$input.addEventListener("blur",()=>{this._inputFocused=!1,this.updateDisplay(),this._callOnFinishChange()})}_initSlider(){this._hasSlider=!0,this.$slider=document.createElement("div"),this.$slider.classList.add("slider"),this.$fill=document.createElement("div"),this.$fill.classList.add("fill"),this.$slider.appendChild(this.$fill),this.$widget.insertBefore(this.$slider,this.$input),this.domElement.classList.add("hasSlider");const ge=Jn=>{const Wi=this.$slider.getBoundingClientRect();let Ln=((Jn,Wi,Ln,Rs,oe)=>(Jn-Wi)/(Ln-Wi)*(this._max-Rs)+Rs)(Jn,Wi.left,Wi.right,this._min);this._snapClampSetValue(Ln)},Pe=Jn=>{ge(Jn.clientX)},At=()=>{this._callOnFinishChange(),this._setDraggingStyle(!1),window.removeEventListener("mousemove",Pe),window.removeEventListener("mouseup",At)};let Nt,nn,Ht=!1;const un=Jn=>{Jn.preventDefault(),this._setDraggingStyle(!0),ge(Jn.touches[0].clientX),Ht=!1},cn=Jn=>{if(Ht){const Ln=Jn.touches[0].clientY-nn;Math.abs(Jn.touches[0].clientX-Nt)>Math.abs(Ln)?un(Jn):(window.removeEventListener("touchmove",cn),window.removeEventListener("touchend",In))}else Jn.preventDefault(),ge(Jn.touches[0].clientX)},In=()=>{this._callOnFinishChange(),this._setDraggingStyle(!1),window.removeEventListener("touchmove",cn),window.removeEventListener("touchend",In)},ci=this._callOnFinishChange.bind(this);let Si;this.$slider.addEventListener("mousedown",Jn=>{this._setDraggingStyle(!0),ge(Jn.clientX),window.addEventListener("mousemove",Pe),window.addEventListener("mouseup",At)}),this.$slider.addEventListener("touchstart",Jn=>{Jn.touches.length>1||(this._hasScrollBar?(Nt=Jn.touches[0].clientX,nn=Jn.touches[0].clientY,Ht=!0):un(Jn),window.addEventListener("touchmove",cn,{passive:!1}),window.addEventListener("touchend",In))},{passive:!1}),this.$slider.addEventListener("wheel",Jn=>{if(Math.abs(Jn.deltaX)this._max&&(K=this._max),K}_snapClampSetValue(K){this.setValue(this._clamp(this._snap(K)))}get _hasScrollBar(){const K=this.parent.root.$children;return K.scrollHeight>K.clientHeight}get _hasMin(){return void 0!==this._min}get _hasMax(){return void 0!==this._max}}class Q extends ke{constructor(K,ge,ye,Pe){super(K,ge,ye,"option"),this.$select=document.createElement("select"),this.$select.setAttribute("aria-labelledby",this.$name.id),this.$display=document.createElement("div"),this.$display.classList.add("display"),this._values=Array.isArray(Pe)?Pe:Object.values(Pe),this._names=Array.isArray(Pe)?Pe:Object.keys(Pe),this._names.forEach(At=>{const Ht=document.createElement("option");Ht.innerHTML=At,this.$select.appendChild(Ht)}),this.$select.addEventListener("change",()=>{this.setValue(this._values[this.$select.selectedIndex]),this._callOnFinishChange()}),this.$select.addEventListener("focus",()=>{this.$display.classList.add("focus")}),this.$select.addEventListener("blur",()=>{this.$display.classList.remove("focus")}),this.$widget.appendChild(this.$select),this.$widget.appendChild(this.$display),this.$disable=this.$select,this.updateDisplay()}updateDisplay(){const K=this.getValue(),ge=this._values.indexOf(K);return this.$select.selectedIndex=ge,this.$display.innerHTML=-1===ge?K:this._names[ge],this}}class me extends ke{constructor(K,ge,ye){super(K,ge,ye,"string"),this.$input=document.createElement("input"),this.$input.setAttribute("type","text"),this.$input.setAttribute("aria-labelledby",this.$name.id),this.$input.addEventListener("input",()=>{this.setValue(this.$input.value)}),this.$input.addEventListener("keydown",Pe=>{"Enter"===Pe.code&&this.$input.blur()}),this.$input.addEventListener("blur",()=>{this._callOnFinishChange()}),this.$widget.appendChild(this.$input),this.$disable=this.$input,this.updateDisplay()}updateDisplay(){return this.$input.value=this.getValue(),this}}let $=!1;class g{constructor({parent:K,autoPlace:ge=void 0===K,container:ye,width:Pe,title:At="Controls",closeFolders:Ht=!1,injectStyles:Nt=!0,touchStyles:nn=!0}={}){if(this.parent=K,this.root=K?K.root:this,this.children=[],this.controllers=[],this.folders=[],this._closed=!1,this._hidden=!1,this.domElement=document.createElement("div"),this.domElement.classList.add("lil-gui"),this.$title=document.createElement("div"),this.$title.classList.add("title"),this.$title.setAttribute("role","button"),this.$title.setAttribute("aria-expanded",!0),this.$title.setAttribute("tabindex",0),this.$title.addEventListener("click",()=>this.openAnimated(this._closed)),this.$title.addEventListener("keydown",un=>{("Enter"===un.code||"Space"===un.code)&&(un.preventDefault(),this.$title.click())}),this.$title.addEventListener("touchstart",()=>{},{passive:!0}),this.$children=document.createElement("div"),this.$children.classList.add("children"),this.domElement.appendChild(this.$title),this.domElement.appendChild(this.$children),this.title(At),this.parent)return this.parent.children.push(this),this.parent.folders.push(this),void this.parent.$children.appendChild(this.domElement);this.domElement.classList.add("root"),nn&&this.domElement.classList.add("allow-touch-styles"),!$&&Nt&&(function B(xt){const K=document.createElement("style");K.innerHTML=xt;const ge=document.querySelector("head link[rel=stylesheet], head style");ge?document.head.insertBefore(K,ge):document.head.appendChild(K)}('.lil-gui {\n font-family: var(--font-family);\n font-size: var(--font-size);\n line-height: 1;\n font-weight: normal;\n font-style: normal;\n text-align: left;\n background-color: var(--background-color);\n color: var(--text-color);\n user-select: none;\n -webkit-user-select: none;\n touch-action: manipulation;\n --background-color: #1f1f1f;\n --text-color: #ebebeb;\n --title-background-color: #111111;\n --title-text-color: #ebebeb;\n --widget-color: #424242;\n --hover-color: #4f4f4f;\n --focus-color: #595959;\n --number-color: #2cc9ff;\n --string-color: #a2db3c;\n --font-size: 11px;\n --input-font-size: 11px;\n --font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;\n --font-family-mono: Menlo, Monaco, Consolas, "Droid Sans Mono", monospace;\n --padding: 4px;\n --spacing: 4px;\n --widget-height: 20px;\n --title-height: calc(var(--widget-height) + var(--spacing) * 1.25);\n --name-width: 45%;\n --slider-knob-width: 2px;\n --slider-input-width: 27%;\n --color-input-width: 27%;\n --slider-input-min-width: 45px;\n --color-input-min-width: 45px;\n --folder-indent: 7px;\n --widget-padding: 0 0 0 3px;\n --widget-border-radius: 2px;\n --checkbox-size: calc(0.75 * var(--widget-height));\n --scrollbar-width: 5px;\n}\n.lil-gui, .lil-gui * {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n}\n.lil-gui.root {\n width: var(--width, 245px);\n display: flex;\n flex-direction: column;\n}\n.lil-gui.root > .title {\n background: var(--title-background-color);\n color: var(--title-text-color);\n}\n.lil-gui.root > .children {\n overflow-x: hidden;\n overflow-y: auto;\n}\n.lil-gui.root > .children::-webkit-scrollbar {\n width: var(--scrollbar-width);\n height: var(--scrollbar-width);\n background: var(--background-color);\n}\n.lil-gui.root > .children::-webkit-scrollbar-thumb {\n border-radius: var(--scrollbar-width);\n background: var(--focus-color);\n}\n@media (pointer: coarse) {\n .lil-gui.allow-touch-styles, .lil-gui.allow-touch-styles .lil-gui {\n --widget-height: 28px;\n --padding: 6px;\n --spacing: 6px;\n --font-size: 13px;\n --input-font-size: 16px;\n --folder-indent: 10px;\n --scrollbar-width: 7px;\n --slider-input-min-width: 50px;\n --color-input-min-width: 65px;\n }\n}\n.lil-gui.force-touch-styles, .lil-gui.force-touch-styles .lil-gui {\n --widget-height: 28px;\n --padding: 6px;\n --spacing: 6px;\n --font-size: 13px;\n --input-font-size: 16px;\n --folder-indent: 10px;\n --scrollbar-width: 7px;\n --slider-input-min-width: 50px;\n --color-input-min-width: 65px;\n}\n.lil-gui.autoPlace {\n max-height: 100%;\n position: fixed;\n top: 0;\n right: 15px;\n z-index: 1001;\n}\n\n.lil-gui .controller {\n display: flex;\n align-items: center;\n padding: 0 var(--padding);\n margin: var(--spacing) 0;\n}\n.lil-gui .controller.disabled {\n opacity: 0.5;\n}\n.lil-gui .controller.disabled, .lil-gui .controller.disabled * {\n pointer-events: none !important;\n}\n.lil-gui .controller > .name {\n min-width: var(--name-width);\n flex-shrink: 0;\n white-space: pre;\n padding-right: var(--spacing);\n line-height: var(--widget-height);\n}\n.lil-gui .controller .widget {\n position: relative;\n display: flex;\n align-items: center;\n width: 100%;\n min-height: var(--widget-height);\n}\n.lil-gui .controller.string input {\n color: var(--string-color);\n}\n.lil-gui .controller.boolean .widget {\n cursor: pointer;\n}\n.lil-gui .controller.color .display {\n width: 100%;\n height: var(--widget-height);\n border-radius: var(--widget-border-radius);\n position: relative;\n}\n@media (hover: hover) {\n .lil-gui .controller.color .display:hover:before {\n content: " ";\n display: block;\n position: absolute;\n border-radius: var(--widget-border-radius);\n border: 1px solid #fff9;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n }\n}\n.lil-gui .controller.color input[type=color] {\n opacity: 0;\n width: 100%;\n height: 100%;\n cursor: pointer;\n}\n.lil-gui .controller.color input[type=text] {\n margin-left: var(--spacing);\n font-family: var(--font-family-mono);\n min-width: var(--color-input-min-width);\n width: var(--color-input-width);\n flex-shrink: 0;\n}\n.lil-gui .controller.option select {\n opacity: 0;\n position: absolute;\n width: 100%;\n max-width: 100%;\n}\n.lil-gui .controller.option .display {\n position: relative;\n pointer-events: none;\n border-radius: var(--widget-border-radius);\n height: var(--widget-height);\n line-height: var(--widget-height);\n max-width: 100%;\n overflow: hidden;\n word-break: break-all;\n padding-left: 0.55em;\n padding-right: 1.75em;\n background: var(--widget-color);\n}\n@media (hover: hover) {\n .lil-gui .controller.option .display.focus {\n background: var(--focus-color);\n }\n}\n.lil-gui .controller.option .display.active {\n background: var(--focus-color);\n}\n.lil-gui .controller.option .display:after {\n font-family: "lil-gui";\n content: "\u2195";\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n padding-right: 0.375em;\n}\n.lil-gui .controller.option .widget,\n.lil-gui .controller.option select {\n cursor: pointer;\n}\n@media (hover: hover) {\n .lil-gui .controller.option .widget:hover .display {\n background: var(--hover-color);\n }\n}\n.lil-gui .controller.number input {\n color: var(--number-color);\n}\n.lil-gui .controller.number.hasSlider input {\n margin-left: var(--spacing);\n width: var(--slider-input-width);\n min-width: var(--slider-input-min-width);\n flex-shrink: 0;\n}\n.lil-gui .controller.number .slider {\n width: 100%;\n height: var(--widget-height);\n background-color: var(--widget-color);\n border-radius: var(--widget-border-radius);\n padding-right: var(--slider-knob-width);\n overflow: hidden;\n cursor: ew-resize;\n touch-action: pan-y;\n}\n@media (hover: hover) {\n .lil-gui .controller.number .slider:hover {\n background-color: var(--hover-color);\n }\n}\n.lil-gui .controller.number .slider.active {\n background-color: var(--focus-color);\n}\n.lil-gui .controller.number .slider.active .fill {\n opacity: 0.95;\n}\n.lil-gui .controller.number .fill {\n height: 100%;\n border-right: var(--slider-knob-width) solid var(--number-color);\n box-sizing: content-box;\n}\n\n.lil-gui-dragging .lil-gui {\n --hover-color: var(--widget-color);\n}\n.lil-gui-dragging * {\n cursor: ew-resize !important;\n}\n\n.lil-gui-dragging.lil-gui-vertical * {\n cursor: ns-resize !important;\n}\n\n.lil-gui .title {\n height: var(--title-height);\n line-height: calc(var(--title-height) - 4px);\n font-weight: 600;\n padding: 0 var(--padding);\n -webkit-tap-highlight-color: transparent;\n cursor: pointer;\n outline: none;\n text-decoration-skip: objects;\n}\n.lil-gui .title:before {\n font-family: "lil-gui";\n content: "\u25be";\n padding-right: 2px;\n display: inline-block;\n}\n.lil-gui .title:active {\n background: var(--title-background-color);\n opacity: 0.75;\n}\n@media (hover: hover) {\n body:not(.lil-gui-dragging) .lil-gui .title:hover {\n background: var(--title-background-color);\n opacity: 0.85;\n }\n .lil-gui .title:focus {\n text-decoration: underline var(--focus-color);\n }\n}\n.lil-gui.root > .title:focus {\n text-decoration: none !important;\n}\n.lil-gui.closed > .title:before {\n content: "\u25b8";\n}\n.lil-gui.closed > .children {\n transform: translateY(-7px);\n opacity: 0;\n}\n.lil-gui.closed:not(.transition) > .children {\n display: none;\n}\n.lil-gui.transition > .children {\n transition-duration: 300ms;\n transition-property: height, opacity, transform;\n transition-timing-function: cubic-bezier(0.2, 0.6, 0.35, 1);\n overflow: hidden;\n pointer-events: none;\n}\n.lil-gui .children:empty:before {\n content: "Empty";\n padding: 0 var(--padding);\n margin: var(--spacing) 0;\n display: block;\n height: var(--widget-height);\n font-style: italic;\n line-height: var(--widget-height);\n opacity: 0.5;\n}\n.lil-gui.root > .children > .lil-gui > .title {\n border: 0 solid var(--widget-color);\n border-width: 1px 0;\n transition: border-color 300ms;\n}\n.lil-gui.root > .children > .lil-gui.closed > .title {\n border-bottom-color: transparent;\n}\n.lil-gui + .controller {\n border-top: 1px solid var(--widget-color);\n margin-top: 0;\n padding-top: var(--spacing);\n}\n.lil-gui .lil-gui .lil-gui > .title {\n border: none;\n}\n.lil-gui .lil-gui .lil-gui > .children {\n border: none;\n margin-left: var(--folder-indent);\n border-left: 2px solid var(--widget-color);\n}\n.lil-gui .lil-gui .controller {\n border: none;\n}\n\n.lil-gui input {\n -webkit-tap-highlight-color: transparent;\n border: 0;\n outline: none;\n font-family: var(--font-family);\n font-size: var(--input-font-size);\n border-radius: var(--widget-border-radius);\n height: var(--widget-height);\n background: var(--widget-color);\n color: var(--text-color);\n width: 100%;\n}\n@media (hover: hover) {\n .lil-gui input:hover {\n background: var(--hover-color);\n }\n .lil-gui input:active {\n background: var(--focus-color);\n }\n}\n.lil-gui input:disabled {\n opacity: 1;\n}\n.lil-gui input[type=text],\n.lil-gui input[type=number] {\n padding: var(--widget-padding);\n}\n.lil-gui input[type=text]:focus,\n.lil-gui input[type=number]:focus {\n background: var(--focus-color);\n}\n.lil-gui input::-webkit-outer-spin-button,\n.lil-gui input::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0;\n}\n.lil-gui input[type=number] {\n -moz-appearance: textfield;\n}\n.lil-gui input[type=checkbox] {\n appearance: none;\n -webkit-appearance: none;\n height: var(--checkbox-size);\n width: var(--checkbox-size);\n border-radius: var(--widget-border-radius);\n text-align: center;\n cursor: pointer;\n}\n.lil-gui input[type=checkbox]:checked:before {\n font-family: "lil-gui";\n content: "\u2713";\n font-size: var(--checkbox-size);\n line-height: var(--checkbox-size);\n}\n@media (hover: hover) {\n .lil-gui input[type=checkbox]:focus {\n box-shadow: inset 0 0 0 1px var(--focus-color);\n }\n}\n.lil-gui button {\n -webkit-tap-highlight-color: transparent;\n outline: none;\n cursor: pointer;\n font-family: var(--font-family);\n font-size: var(--font-size);\n color: var(--text-color);\n width: 100%;\n height: var(--widget-height);\n text-transform: none;\n background: var(--widget-color);\n border-radius: var(--widget-border-radius);\n border: 1px solid var(--widget-color);\n text-align: center;\n line-height: calc(var(--widget-height) - 4px);\n}\n@media (hover: hover) {\n .lil-gui button:hover {\n background: var(--hover-color);\n border-color: var(--hover-color);\n }\n .lil-gui button:focus {\n border-color: var(--focus-color);\n }\n}\n.lil-gui button:active {\n background: var(--focus-color);\n}\n\n@font-face {\n font-family: "lil-gui";\n src: url("data:application/font-woff;charset=utf-8;base64,d09GRgABAAAAAAUsAAsAAAAACJwAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABHU1VCAAABCAAAAH4AAADAImwmYE9TLzIAAAGIAAAAPwAAAGBKqH5SY21hcAAAAcgAAAD0AAACrukyyJBnbHlmAAACvAAAAF8AAACEIZpWH2hlYWQAAAMcAAAAJwAAADZfcj2zaGhlYQAAA0QAAAAYAAAAJAC5AHhobXR4AAADXAAAABAAAABMAZAAAGxvY2EAAANsAAAAFAAAACgCEgIybWF4cAAAA4AAAAAeAAAAIAEfABJuYW1lAAADoAAAASIAAAIK9SUU/XBvc3QAAATEAAAAZgAAAJCTcMc2eJxVjbEOgjAURU+hFRBK1dGRL+ALnAiToyMLEzFpnPz/eAshwSa97517c/MwwJmeB9kwPl+0cf5+uGPZXsqPu4nvZabcSZldZ6kfyWnomFY/eScKqZNWupKJO6kXN3K9uCVoL7iInPr1X5baXs3tjuMqCtzEuagm/AAlzQgPAAB4nGNgYRBlnMDAysDAYM/gBiT5oLQBAwuDJAMDEwMrMwNWEJDmmsJwgCFeXZghBcjlZMgFCzOiKOIFAB71Bb8AeJy1kjFuwkAQRZ+DwRAwBtNQRUGKQ8OdKCAWUhAgKLhIuAsVSpWz5Bbkj3dEgYiUIszqWdpZe+Z7/wB1oCYmIoboiwiLT2WjKl/jscrHfGg/pKdMkyklC5Zs2LEfHYpjcRoPzme9MWWmk3dWbK9ObkWkikOetJ554fWyoEsmdSlt+uR0pCJR34b6t/TVg1SY3sYvdf8vuiKrpyaDXDISiegp17p7579Gp3p++y7HPAiY9pmTibljrr85qSidtlg4+l25GLCaS8e6rRxNBmsnERunKbaOObRz7N72ju5vdAjYpBXHgJylOAVsMseDAPEP8LYoUHicY2BiAAEfhiAGJgZWBgZ7RnFRdnVJELCQlBSRlATJMoLV2DK4glSYs6ubq5vbKrJLSbGrgEmovDuDJVhe3VzcXFwNLCOILB/C4IuQ1xTn5FPilBTj5FPmBAB4WwoqAHicY2BkYGAA4sk1sR/j+W2+MnAzpDBgAyEMQUCSg4EJxAEAwUgFHgB4nGNgZGBgSGFggJMhDIwMqEAYAByHATJ4nGNgAIIUNEwmAABl3AGReJxjYAACIQYlBiMGJ3wQAEcQBEV4nGNgZGBgEGZgY2BiAAEQyQWEDAz/wXwGAAsPATIAAHicXdBNSsNAHAXwl35iA0UQXYnMShfS9GPZA7T7LgIu03SSpkwzYTIt1BN4Ak/gKTyAeCxfw39jZkjymzcvAwmAW/wgwHUEGDb36+jQQ3GXGot79L24jxCP4gHzF/EIr4jEIe7wxhOC3g2TMYy4Q7+Lu/SHuEd/ivt4wJd4wPxbPEKMX3GI5+DJFGaSn4qNzk8mcbKSR6xdXdhSzaOZJGtdapd4vVPbi6rP+cL7TGXOHtXKll4bY1Xl7EGnPtp7Xy2n00zyKLVHfkHBa4IcJ2oD3cgggWvt/V/FbDrUlEUJhTn/0azVWbNTNr0Ens8de1tceK9xZmfB1CPjOmPH4kitmvOubcNpmVTN3oFJyjzCvnmrwhJTzqzVj9jiSX911FjeAAB4nG3HMRKCMBBA0f0giiKi4DU8k0V2GWbIZDOh4PoWWvq6J5V8If9NVNQcaDhyouXMhY4rPTcG7jwYmXhKq8Wz+p762aNaeYXom2n3m2dLTVgsrCgFJ7OTmIkYbwIbC6vIB7WmFfAAAA==") format("woff");\n}'),$=!0),ye?ye.appendChild(this.domElement):ge&&(this.domElement.classList.add("autoPlace"),document.body.appendChild(this.domElement)),Pe&&this.domElement.style.setProperty("--width",Pe+"px"),this._closeFolders=Ht}add(K,ge,ye,Pe,At){if(Object(ye)===ye)return new Q(this,K,ge,ye);const Ht=K[ge];switch(typeof Ht){case"number":return new he(this,K,ge,ye,Pe,At);case"boolean":return new ot(this,K,ge);case"string":return new me(this,K,ge);case"function":return new Y(this,K,ge)}console.error("gui.add failed\n\tproperty:",ge,"\n\tobject:",K,"\n\tvalue:",Ht)}addColor(K,ge,ye=1){return new J(this,K,ge,ye)}addFolder(K){const ge=new g({parent:this,title:K});return this.root._closeFolders&&ge.close(),ge}load(K,ge=!0){return K.controllers&&this.controllers.forEach(ye=>{ye instanceof Y||ye._name in K.controllers&&ye.load(K.controllers[ye._name])}),ge&&K.folders&&this.folders.forEach(ye=>{ye._title in K.folders&&ye.load(K.folders[ye._title])}),this}save(K=!0){const ge={controllers:{},folders:{}};return this.controllers.forEach(ye=>{if(!(ye instanceof Y)){if(ye._name in ge.controllers)throw new Error(`Cannot save GUI with duplicate property "${ye._name}"`);ge.controllers[ye._name]=ye.save()}}),K&&this.folders.forEach(ye=>{if(ye._title in ge.folders)throw new Error(`Cannot save GUI with duplicate folder "${ye._title}"`);ge.folders[ye._title]=ye.save()}),ge}open(K=!0){return this._setClosed(!K),this.$title.setAttribute("aria-expanded",!this._closed),this.domElement.classList.toggle("closed",this._closed),this}close(){return this.open(!1)}_setClosed(K){this._closed!==K&&(this._closed=K,this._callOnOpenClose(this))}show(K=!0){return this._hidden=!K,this.domElement.style.display=this._hidden?"none":"",this}hide(){return this.show(!1)}openAnimated(K=!0){return this._setClosed(!K),this.$title.setAttribute("aria-expanded",!this._closed),requestAnimationFrame(()=>{this.$children.style.height=this.$children.clientHeight+"px",this.domElement.classList.add("transition");const ye=At=>{At.target===this.$children&&(this.$children.style.height="",this.domElement.classList.remove("transition"),this.$children.removeEventListener("transitionend",ye))};this.$children.addEventListener("transitionend",ye);const Pe=K?this.$children.scrollHeight:0;this.domElement.classList.toggle("closed",!K),requestAnimationFrame(()=>{this.$children.style.height=Pe+"px"})}),this}title(K){return this._title=K,this.$title.innerHTML=K,this}reset(K=!0){return(K?this.controllersRecursive():this.controllers).forEach(ye=>ye.reset()),this}onChange(K){return this._onChange=K,this}_callOnChange(K){this.parent&&this.parent._callOnChange(K),void 0!==this._onChange&&this._onChange.call(this,{object:K.object,property:K.property,value:K.getValue(),controller:K})}onFinishChange(K){return this._onFinishChange=K,this}_callOnFinishChange(K){this.parent&&this.parent._callOnFinishChange(K),void 0!==this._onFinishChange&&this._onFinishChange.call(this,{object:K.object,property:K.property,value:K.getValue(),controller:K})}onOpenClose(K){return this._onOpenClose=K,this}_callOnOpenClose(K){this.parent&&this.parent._callOnOpenClose(K),void 0!==this._onOpenClose&&this._onOpenClose.call(this,K)}destroy(){this.parent&&(this.parent.children.splice(this.parent.children.indexOf(this),1),this.parent.folders.splice(this.parent.folders.indexOf(this),1)),this.domElement.parentElement&&this.domElement.parentElement.removeChild(this.domElement),Array.from(this.children).forEach(K=>K.destroy())}controllersRecursive(){let K=Array.from(this.controllers);return this.folders.forEach(ge=>{K=K.concat(ge.controllersRecursive())}),K}foldersRecursive(){let K=Array.from(this.folders);return this.folders.forEach(ge=>{K=K.concat(ge.foldersRecursive())}),K}}var _=Se(3847),v=Se(2985),p=Se(2843),C=Se(1922),I=Se(7900),U=Se(2866),k=Se(4483),Z=Se(578);const V="TGeoManager",b="TEveGeoShapeExtract",P="TGeoOverlap",T="TGeoVolumeAssembly",z="TEveTrack",W="TEvePointSet",fe=`${x.nsREX}REveGeoShapeExtract`;let Me=0;function je(xt,K,ge){void 0===K&&(K=1),ge||(Me=0,ge="");const ye=(0,x.create)(x.clTGeoVolume);if((0,Z.bg)(ye,Z.Wv.kVisThis,!0),(0,Z.bg)(ye,Z.Wv.kVisDaughters,!0),ge&&xt._typename!==Z.HO||K<=0)return ye.fName=ge,ye.fLineColor=Me++%8+2,ye.fShape=xt,ye;ge&&(ge+="/"),ye.$geoh=!0,ye.fName="";const Pe=(0,x.create)(x.clTGeoNodeMatrix);(0,Z.bg)(Pe,Z.Wv.kVisThis,!0),(0,Z.bg)(Pe,Z.Wv.kVisDaughters,!0),Pe.fName="Left",Pe.fMatrix=xt.fNode.fLeftMat,Pe.fVolume=je(xt.fNode.fLeft,K-1,ge+"Left");const At=(0,x.create)(x.clTGeoNodeMatrix);return(0,Z.bg)(At,Z.Wv.kVisThis,!0),(0,Z.bg)(At,Z.Wv.kVisDaughters,!0),At.fName="Right",At.fMatrix=xt.fNode.fRightMat,At.fVolume=je(xt.fNode.fRight,K-1,ge+"Right"),ye.fNodes=(0,x.create)(x.clTList),ye.fNodes.Add(Pe),ye.fNodes.Add(At),ge||(Me=0),ye}function Ge(xt){const K=xt?.getFramePainter();if(xt?.mode3d&&(0,x.isFunc)(K?.create3DScene)&&K?.renderer){let ge=1,ye=1,Pe=1,At=0,Ht=0,Nt=0;return K.scale_xmax>K.scale_xmin&&(ge=2*K.size_x3d/(K.scale_xmax-K.scale_xmin),At=(K.scale_xmax+K.scale_xmin)/2*ge),K.scale_ymax>K.scale_ymin&&(ye=2*K.size_y3d/(K.scale_ymax-K.scale_ymin),Ht=(K.scale_ymax+K.scale_ymin)/2*ye),K.scale_zmax>K.scale_zmin&&(Pe=2*K.size_z3d/(K.scale_zmax-K.scale_zmin),Nt=(K.scale_zmax+K.scale_zmin)/2*Pe-K.size_z3d),{webgl:K.webgl,scene:K.scene,scene_width:K.scene_width,scene_height:K.scene_height,toplevel:K.toplevel,renderer:K.renderer,camera:K.camera,scale_x:ge,scale_y:ye,scale_z:Pe,offset_x:At,offset_y:Ht,offset_z:Nt}}}function lt(xt,K,ge,ye){if(!K?.arr?.length)return;const Pe={_name:ge,_kind:x.prROOT+x.clTList,_title:ye,_more:!0,_geoobj:K,_parent:xt,_get:At=>Promise.resolve(At._geoobj||null),_expand(At,Ht){if(Ht.fVolume&&(Ht=Ht.fVolume.fNodes),!Ht.arr)return!1;At._childs=[],(0,Z.$T)(null,Ht.arr);for(const Nt in Ht.arr)ti(At,Ht.arr[Nt]);return!0}};xt._childs||(xt._childs=[]),xt._childs.push(Pe)}function bt(xt,K){if(yn(),!xt||!K)return!1;const ge=0===K._typename.indexOf(x.clTGeoNode),ye=0===K._typename.indexOf(x.clTGeoVolume),Pe=K._typename===V,At=K._typename===b||K._typename===fe,Ht=K._typename===P;if(!(ge||ye||Pe||At||Ht))return!1;if(xt._childs)return!0;if(Pe)return lt(xt,K.fMaterials,"Materials","list of materials"),lt(xt,K.fMedia,"Media","list of media"),lt(xt,K.fTracks,"Tracks","list of tracks"),lt(xt,K.fOverlaps,"Overlaps","list of detected overlaps"),ti(xt,K.fMasterVolume),!0;if(Ht)return ti(xt,K.fVolume1),ti(xt,K.fVolume2),ti(xt,K.fMarker,"Marker"),!0;let Nt,nn,un;if(At?(nn=K.fElements?.arr,un=K.fShape):(Nt=ge?K.fVolume:K,nn=Nt?.fNodes?.arr,un=Nt?.fShape),!nn&&un?._typename===Z.HO&&un?.fNode)return xt._childs||(ti(xt,un.fNode.fLeft,"Left"),ti(xt,un.fNode.fRight,"Right")),!0;if(!nn)return!1;(0,Z.$T)(K,nn);for(let kn=0;kn{(xt===ge._volume||xt===ge._geoobj)&&(ge._icon=ge._icon.split(" ")[0]+Je(xt),K.updateTreeNode(ge))})}function Fe(xt){const K=xt?.object;return K?K.stack?K.stack:K.stacks&&void 0!==xt.instanceId&&xt.instanceId{const ye=ge.name;if(!ye)throw new Error("must provide button name in button config");if(-1!==K.indexOf(ye))throw new Error(`button name ${ye} is taken`);K.push(ye);const Pe=ge.title||ge.name;if(!(0,x.isFunc)(ge.click))throw new Error("must provide button click() function in button config");ve.IK.createSVG(this.element,ve.IK[ge.icon],16,Pe,this.bright).on("click",ge.click).style("position","relative").style("padding","3px 1px")})}changeBrightness(K){this.bright!==K&&(this.element.selectAll("*").remove(),this.bright=K,this.createButtons())}cleanup(){this.element?.remove(),delete this.element}}class rt extends _.KG{constructor(K,ge){super(),this.mesh=K?.material?K:null,this.bloom=ge}setHighlight(K,ge){return this.drawSpecial(K,ge)}drawSpecial(K,ge){const ye=this.mesh;if(ye?.material){if(ye.isInstancedMesh){if(ye._highlight_mesh&&(ye.remove(ye._highlight_mesh),delete ye._highlight_mesh),K&&void 0!==ge){const Pe=new L.eaF(ye.geometry,ye.material.clone());this.bloom?(Pe.layers.enable(1),Pe.material.emissive=new L.Q1f(65280)):(Pe.material.color=new L.Q1f(K),Pe.material.opacity=1);const At=new L.kn4;ye.getMatrixAt(ge,At),Pe.applyMatrix4(At),ye.add(Pe),Pe.jsroot_special=!0,ye._highlight_mesh=Pe}return!0}if(K)return ye.origin||(ye.origin={color:ye.material.color,emissive:ye.material.emissive,opacity:ye.material.opacity,width:ye.material.linewidth,size:ye.material.size}),this.bloom?(ye.layers.enable(1),ye.material.emissive=new L.Q1f(65280)):(ye.material.color=new L.Q1f(K),ye.material.opacity=1),ye.hightlightWidthScale&&!x.browser.isWin&&(ye.material.linewidth=ye.origin.width*ye.hightlightWidthScale),ye.highlightScale&&(ye.material.size=ye.origin.size*ye.highlightScale),!0;if(ye.origin)return this.bloom?(ye.material.emissive=ye.origin.emissive,ye.layers.enable(0)):(ye.material.color=ye.origin.color,ye.material.opacity=ye.origin.opacity),ye.hightlightWidthScale&&(ye.material.linewidth=ye.origin.width),ye.highlightScale&&(ye.material.size=ye.origin.size),!0}}}class $n extends C.JW{constructor(K,ge){let ye;ge?._typename===V&&(ye=ge,ge=ge.fMasterVolume),ge?._typename&&0===ge._typename.indexOf(x.clTGeoVolume)&&(ge={_typename:x.clTGeoNode,fVolume:ge,fName:ge.fName,$geoh:ge.$geoh,_proxy:!0}),super(K,ge),Ge(this.getMainPainter())&&(this.superimpose=!0),ye&&(this.geo_manager=ye),this.no_default_title=!0,this.mode3d=!0,this.drawing_stage=0,this.drawing_log="Init",this.ctrl={clipIntersect:!0,clipVisualize:!1,clip:[{name:"x",enabled:!1,value:0,min:-100,max:100,step:1},{name:"y",enabled:!1,value:0,min:-100,max:100,step:1},{name:"z",enabled:!1,value:0,min:-100,max:100,step:1}],_highlight:0,highlight:0,highlight_bloom:0,highlight_scene:0,highlight_color:"#00ff00",bloom_strength:1.5,more:1,maxfaces:0,vislevel:void 0,maxnodes:void 0,dflt_colors:!1,info:{num_meshes:0,num_faces:0,num_shapes:0},depthTest:!0,depthMethod:"dflt",select_in_view:!1,update_browser:!0,use_fog:!1,light:{kind:"points",top:!1,bottom:!1,left:!1,right:!1,front:!1,specular:!0,power:1},lightKindItems:[{name:"AmbientLight",value:"ambient"},{name:"DirectionalLight",value:"points"},{name:"HemisphereLight",value:"hemisphere"},{name:"Ambient + Point",value:"mix"}],trans_radial:0,trans_z:0,scale:new L.Pq0(1,1,1),zoom:1,rotatey:0,rotatez:0,depthMethodItems:[{name:"Default",value:"dflt"},{name:"Raytraicing",value:"ray"},{name:"Boundary box",value:"box"},{name:"Mesh size",value:"size"},{name:"Central point",value:"pnt"}],cameraKindItems:[{name:"Perspective",value:"perspective"},{name:"Perspective (Floor XOZ)",value:"perspXOZ"},{name:"Perspective (Floor YOZ)",value:"perspYOZ"},{name:"Perspective (Floor XOY)",value:"perspXOY"},{name:"Orthographic (XOY)",value:"orthoXOY"},{name:"Orthographic (XOZ)",value:"orthoXOZ"},{name:"Orthographic (ZOY)",value:"orthoZOY"},{name:"Orthographic (ZOX)",value:"orthoZOX"},{name:"Orthographic (XnOY)",value:"orthoXNOY"},{name:"Orthographic (XnOZ)",value:"orthoXNOZ"},{name:"Orthographic (ZnOY)",value:"orthoZNOY"},{name:"Orthographic (ZnOX)",value:"orthoZNOX"}],cameraOverlayItems:[{name:"None",value:"none"},{name:"Bar",value:"bar"},{name:"Axis",value:"axis"},{name:"Grid",value:"grid"},{name:"Grid background",value:"gridb"},{name:"Grid foreground",value:"gridf"}],camera_kind:"perspective",camera_overlay:"gridb",rotate:!1,background:x.settings.DarkMode?"#000000":"#ffffff",can_rotate:!0,_axis:0,instancing:0,_count:!1,wireframe:!1,transparency:0,flatShading:!1,roughness:.5,metalness:.5,shininess:0,reflectivity:.5,material_kind:"lambert",materialKinds:[{name:"MeshLambertMaterial",value:"lambert",emissive:!0,props:[{name:"flatShading"}]},{name:"MeshBasicMaterial",value:"basic"},{name:"MeshStandardMaterial",value:"standard",emissive:!0,props:[{name:"flatShading"},{name:"roughness",min:0,max:1,step:.001},{name:"metalness",min:0,max:1,step:.001}]},{name:"MeshPhysicalMaterial",value:"physical",emissive:!0,props:[{name:"flatShading"},{name:"roughness",min:0,max:1,step:.001},{name:"metalness",min:0,max:1,step:.001},{name:"reflectivity",min:0,max:1,step:.001}]},{name:"MeshPhongMaterial",value:"phong",emissive:!0,props:[{name:"flatShading"},{name:"shininess",min:0,max:100,step:.1}]},{name:"MeshNormalMaterial",value:"normal",props:[{name:"flatShading"}]},{name:"MeshDepthMaterial",value:"depth"},{name:"MeshMatcapMaterial",value:"matcap"},{name:"MeshToonMaterial",value:"toon"}],getMaterialCfg:function(){let Pe;return this.materialKinds.forEach(At=>{At.value===this.material_kind&&(Pe=At)}),Pe}},this.cleanup(!0)}changeDarkMode(K){("#000000"===this.ctrl.background||"#ffffff"===this.ctrl.background)&&this.changedBackground(K??x.settings.DarkMode?"#000000":"#ffffff")}changeStage(K,ge){if(this.drawing_stage=K,!ge)switch(K){case 0:ge="Building done";break;case 1:ge="collect visibles";break;case 2:ge="worker collect visibles";break;case 3:ge="Analyse visibles";break;case 4:ge="collect shapes for building";break;case 5:ge="Start build shapes";break;case 6:ge="Worker build shapes";break;case 7:ge="Build shapes";break;case 8:ge="Build ready";break;case 9:ge="Wait for main painter";break;case 10:ge="Build projection";break;default:ge=`stage ${K}`}this.drawing_log=ge}isStage(K){return K===this.drawing_stage}isBatchMode(){return(0,x.isBatchMode)()||this.batch_mode}createToolbar(){if(this._toolbar||!this._webgl||this.ctrl.notoolbar||this.isBatchMode())return;const K=[{name:"toImage",title:"Save as PNG",icon:"camera",click:()=>this.createSnapshot()},{name:"control",title:"Toggle control UI",icon:"rect",click:()=>this.showControlGui("toggle")},{name:"enlarge",title:"Enlarge geometry drawing",icon:"circle",click:()=>this.toggleEnlarge()}];navigator.getVRDisplays&&(K.push({name:"entervr",title:"Enter VR (It requires a VR Headset connected)",icon:"vrgoggles",click:()=>this.toggleVRMode()}),this.initVRMode()),x.settings.ContextMenu&&K.push({name:"menu",title:"Show context menu",icon:"question",click:ye=>{ye.preventDefault(),ye.stopPropagation(),!(0,I.IV)()&&(0,I.ES)(ye,this).then(Pe=>{Pe.painter.fillContextMenu(Pe),Pe.show()})}});const ge=new L.Q1f(this.ctrl.background);this._toolbar=new Ne(this.selectDom(),ge.r+ge.g+ge.b<1,K),this._toolbar.createButtons()}initVRMode(){this._dolly=new L.YJl,this._scene.add(this._dolly),this._standingMatrix=new L.kn4,this._raycasterEnd=new L.Pq0,this._raycasterOrigin=new L.Pq0,navigator.getVRDisplays().then(K=>{const ge=K[0];ge&&(this._renderer.vr.setDevice(ge),this._vrDisplay=ge,ge.stageParameters&&this._standingMatrix.fromArray(ge.stageParameters.sittingToStandingTransform),this.initVRControllersGeometry())})}initVRControllersGeometry(){const K=new L.Gu$(.025,18,36),ge=new L.V9B({color:"grey",vertexColors:!1}),ye=new L.V9B({color:"fuchsia",vertexColors:!1}),Pe=new L.iNn(.001,.001,2),At=new L.eaF(Pe,ye),Ht=new L.eaF(Pe,ye),Nt=new L.eaF(K,ge),nn=new L.eaF(K,ge);this._controllersMeshes=[],this._controllersMeshes.push(Nt),this._controllersMeshes.push(nn),At.position.z-=1,Ht.position.z-=1,Nt.add(At),nn.add(Ht),this._dolly.add(Nt),this._dolly.add(nn),Nt.visible=!1,nn.visible=!1}updateVRControllersList(){const K=navigator.getGamepads&&navigator.getGamepads();if(!this.vrControllers||K.length!==this.vrControllers.length){this._controllersMeshes.forEach(ge=>{ge.visible=!1}),this._vrControllers=[];for(let ge=0;geK.indexOf(ge)===ye),this._controls.processMouseMove(K)}updateVRControllers(){this.updateVRControllersList();for(let K=0;K{this._previousCameraNear=this._camera.near,this._dolly.position.set(this._camera.position.x/4,-this._camera.position.y/8,-this._camera.position.z/4),this._camera.position.set(0,0,0),this._dolly.add(this._camera),this._camera.near=.1,this._camera.updateProjectionMatrix(),this._renderer.vr.enabled=!0,this._renderer.setAnimationLoop(()=>{this.updateVRControllers(),this.render3D(0)})}),this._renderer.vr.enabled=!0,window.addEventListener("keydown",K=>{"Escape"===K.code&&this.exitVRMode()})}}exitVRMode(){this._vrDisplay.isPresenting&&(this._renderer.vr.enabled=!1,this._dolly.remove(this._camera),this._scene.add(this._camera),this._camera.position.copy(this._previousCameraPosition),this._previousCameraPosition=void 0,this._camera.rotation.copy(this._previousCameraRotation),this._previousCameraRotation=void 0,this._camera.near=this._previousCameraNear,this._camera.updateProjectionMatrix(),this._vrDisplay.exitPresent())}getGeometry(){return this.getObject()}modifyVisisbility(K,ge){if(0!==(0,Z.Dh)(this.getGeometry()))return;if(!K)return(0,Z.bg)(this.getGeometry().fVolume,Z.Wv.kVisThis,"+"===ge);let ye,Pe=!1;K.indexOf("*")<0?(ye=new RegExp("^"+K+"$"),Pe=!0):(ye=new RegExp("^"+K.split("*").join(".*")+"$"),Pe=!1),this.findNodeWithVolume(ye,At=>((0,Z.N_)(At.node.fVolume,"+"!==ge),Pe?At:null))}decodeOptions(K){(0,x.isStr)(K)||(K=""),this.superimpose&&0===K.indexOf("same")&&(K=K.slice(4));const ge=this.ctrl,ye=K.indexOf("macro:");if(ye>=0){let Ht=K.indexOf(";",ye+6);Ht<0&&(Ht=K.length),ge.script_name=K.slice(ye+6,Ht),K=K.slice(0,ye)+K.slice(Ht+1),console.log(`script ${ge.script_name} rest ${K}`)}for(;;){const Ht=K.indexOf("+"),Nt=K.indexOf("-");if(Ht<0&&Nt<0)break;let nn=Ht,un="+";(nn<0||Nt>=0&&Nt{let Ht=1;return"N"===Pe.part[0]&&(Ht=-1,Pe.part=Pe.part.slice(1)),Ht*Pe.partAsFloat()};if(Pe.check("CAMX",!0)&&(ge.camx=At()),Pe.check("CAMY",!0)&&(ge.camy=At()),Pe.check("CAMZ",!0)&&(ge.camz=At()),Pe.check("CAMLX",!0)&&(ge.camlx=At()),Pe.check("CAMLY",!0)&&(ge.camly=At()),Pe.check("CAMLZ",!0)&&(ge.camlz=At()),Pe.check("BLACK")&&(ge.background="#000000"),Pe.check("WHITE")&&(ge.background="#FFFFFF"),Pe.check("BKGR_",!0)){let Ht=null;if(Pe.partAsInt(1)>0)Ht=(0,v.oU)(Pe.partAsInt());else for(let Nt=0;Nt<8;++Nt)(0,v.oU)(Nt).toUpperCase()===Pe.part&&(Ht=(0,v.oU)(Nt));Ht&&(ge.background="#"+new L.Q1f(Ht).getHexString())}Pe.check("R3D_",!0)&&(ge.Render3D=x.constants.Render3D.fromString(Pe.part.toLowerCase())),Pe.check("MORE",!0)&&(ge.more=Pe.partAsInt(0,2)??2),Pe.check("ALL")&&(ge.more=100,ge.vislevel=99),Pe.check("VISLVL",!0)&&(ge.vislevel=Pe.partAsInt()),Pe.check("MAXNODES",!0)&&(ge.maxnodes=Pe.partAsInt()),Pe.check("MAXFACES",!0)&&(ge.maxfaces=Pe.partAsInt()),(Pe.check("CONTROLS")||Pe.check("CTRL"))&&(ge.show_controls=!0),Pe.check("CLIPXYZ")&&(ge.clip[0].enabled=ge.clip[1].enabled=ge.clip[2].enabled=!0),Pe.check("CLIPX")&&(ge.clip[0].enabled=!0),Pe.check("CLIPY")&&(ge.clip[1].enabled=!0),Pe.check("CLIPZ")&&(ge.clip[2].enabled=!0),Pe.check("CLIP")&&(ge.clip[0].enabled=ge.clip[1].enabled=ge.clip[2].enabled=!0),Pe.check("PROJX",!0)&&(ge.project="x",Pe.partAsInt(1)>0&&(ge.projectPos=Pe.partAsInt()),ge.can_rotate=0),Pe.check("PROJY",!0)&&(ge.project="y",Pe.partAsInt(1)>0&&(ge.projectPos=Pe.partAsInt()),ge.can_rotate=0),Pe.check("PROJZ",!0)&&(ge.project="z",Pe.partAsInt(1)>0&&(ge.projectPos=Pe.partAsInt()),ge.can_rotate=0),(Pe.check("DFLT_COLORS")||Pe.check("DFLT"))&&(ge.dflt_colors=!0),Pe.check("SSAO"),Pe.check("NOBLOOM")&&(ge.highlight_bloom=!1),Pe.check("BLOOM")&&(ge.highlight_bloom=!0),Pe.check("OUTLINE")&&(ge.outline=!0),Pe.check("NOWORKER")&&(ge.use_worker=-1),Pe.check("WORKER")&&(ge.use_worker=1),Pe.check("NOFOG")&&(ge.use_fog=!1),Pe.check("FOG")&&(ge.use_fog=!0),(Pe.check("NOHIGHLIGHT")||Pe.check("NOHIGH"))&&(ge.highlight_scene=ge.highlight=!1),Pe.check("HIGHLIGHT")&&(ge.highlight_scene=ge.highlight=!0),Pe.check("HSCENEONLY")&&(ge.highlight_scene=!0,ge.highlight=!1),Pe.check("NOHSCENE")&&(ge.highlight_scene=!1),Pe.check("HSCENE")&&(ge.highlight_scene=!0),(Pe.check("WIREFRAME")||Pe.check("WIRE"))&&(ge.wireframe=!0),Pe.check("ROTATE")&&(ge.rotate=!0),(Pe.check("INVX")||Pe.check("INVERTX"))&&(ge.scale.x=-1),(Pe.check("INVY")||Pe.check("INVERTY"))&&(ge.scale.y=-1),(Pe.check("INVZ")||Pe.check("INVERTZ"))&&(ge.scale.z=-1),Pe.check("COUNT")&&(ge._count=!0),Pe.check("TRANSP",!0)&&(ge.transparency=Pe.partAsInt(0,100)/100),Pe.check("OPACITY",!0)&&(ge.transparency=1-Pe.partAsInt(0,100)/100),(Pe.check("AXISCENTER")||Pe.check("AXISC")||Pe.check("AC"))&&(ge._axis=2),(Pe.check("AXIS")||Pe.check("A"))&&(ge._axis=1),Pe.check("TRR",!0)&&(ge.trans_radial=Pe.partAsInt()/100),Pe.check("TRZ",!0)&&(ge.trans_z=Pe.partAsInt()/100),Pe.check("W")&&(ge.wireframe=!0),Pe.check("Y")&&(ge._yup=!0),Pe.check("Z")&&(ge._yup=!1),void 0===ge._yup&&(ge._yup=this.getCanvSvg().empty()),this.options=ge}activateInBrowser(K,ge){(0,x.isStr)(K)&&(K=[K]),this._hpainter&&(this._hpainter.activateItems(K,ge),this.ctrl.update_browser||setTimeout(()=>this._hpainter.activateItems([]),2e3))}testMatrixes(){let K=0,ge=0,ye=0;const Pe={domatrix:!0,func:()=>{let Nt=this.getmatrix();const nn=this.copyStack(),un=this._clones.createObject3D(nn.stack,this._toplevel,"mesh");if(!un)return!0;ge++;const kn=un.matrixWorld;if(kn.equals(Nt))return!0;if(kn.determinant()>0&&Nt.determinant()<-.9){const In=new L.Pq0(1,1,-1);if(Nt=Nt.clone().scale(In),kn.equals(Nt))return!0}let cn=0;for(let In=0;In<16;++In)cn=Math.max(cn,Math.abs(kn.elements[In]-Nt.elements[In]));return ye=Math.max(cn,ye),cn<1e-4||(console.log(`${this._clones.resolveStack(nn.stack).name} maxdiff ${cn} determ ${kn.determinant()} ${Nt.determinant()}`),K++,!1)}},At=(new Date).getTime();this._clones.scanVisible(Pe);const Ht=(new Date).getTime();console.log(`Compare matrixes total ${ge} errors ${K} takes ${Ht-At} maxdiff ${ye}`)}fillContextMenu(K){K.add("header: Draw options"),K.addchk(this.ctrl.update_browser,"Browser update",()=>{this.ctrl.update_browser=!this.ctrl.update_browser,this.ctrl.update_browser||this.activateInBrowser([])}),K.addchk(this.ctrl.show_controls,"Show Controls",()=>this.showControlGui("toggle")),K.add("sub:Show axes",()=>this.setAxesDraw("toggle")),K.addchk(0===this.ctrl._axis,"off",0,ge=>this.setAxesDraw(parseInt(ge))),K.addchk(1===this.ctrl._axis,"side",1,ge=>this.setAxesDraw(parseInt(ge))),K.addchk(2===this.ctrl._axis,"center",2,ge=>this.setAxesDraw(parseInt(ge))),K.add("endsub:"),this.geo_manager&&K.addchk(this.ctrl.showtop,"Show top volume",()=>this.setShowTop(!this.ctrl.showtop)),K.addchk(this.ctrl.wireframe,"Wire frame",()=>this.toggleWireFrame()),this.getCanvPainter()||K.addchk(this.isTooltipAllowed(),"Show tooltips",()=>this.setTooltipAllowed("toggle")),K.add("sub:Highlight"),K.addchk(!this.ctrl.highlight,"Off",()=>{this.ctrl.highlight=!1,this.changedHighlight()}),K.addchk(this.ctrl.highlight&&!this.ctrl.highlight_bloom,"Normal",()=>{this.ctrl.highlight=!0,this.ctrl.highlight_bloom=!1,this.changedHighlight()}),K.addchk(this.ctrl.highlight&&this.ctrl.highlight_bloom,"Bloom",()=>{this.ctrl.highlight=!0,this.ctrl.highlight_bloom=!0,this.changedHighlight()}),K.add("separator"),K.addchk(this.ctrl.highlight_scene,"Scene",ge=>{this.ctrl.highlight_scene=ge,this.changedHighlight()}),K.add("endsub:"),K.add("sub:Camera"),K.add("Reset position",()=>this.focusCamera()),this.ctrl.project||K.addchk(this.ctrl.rotate,"Autorotate",()=>this.setAutoRotate(!this.ctrl.rotate)),this._geom_viewer||(K.addchk(this.canRotateCamera(),"Can rotate",()=>this.changeCanRotate(!this.ctrl.can_rotate)),K.add("Get position",()=>K.info("Position (as url)","&opt="+this.produceCameraUrl())),this.isOrthoCamera()||K.add("Absolute position",()=>{const ge=this.produceCameraUrl(!0),ye=ge.indexOf("camlx");K.info("Position (as url)","&opt="+(ye<0?ge:ge.slice(0,ye)+"\n"+ge.slice(ye)))}),K.add("sub:Kind"),this.ctrl.cameraKindItems.forEach(ge=>K.addchk(this.ctrl.camera_kind===ge.value,ge.name,ge.value,ye=>{this.ctrl.camera_kind=ye,this.changeCamera()})),K.add("endsub:"),this.isOrthoCamera()&&(K.add("sub:Overlay"),this.ctrl.cameraOverlayItems.forEach(ge=>K.addchk(this.ctrl.camera_overlay===ge.value,ge.name,ge.value,ye=>{this.ctrl.camera_overlay=ye,this.changeCamera()})),K.add("endsub:"))),K.add("endsub:"),K.addchk(this.ctrl.select_in_view,"Select in view",()=>{this.ctrl.select_in_view=!this.ctrl.select_in_view,this.ctrl.select_in_view&&this.startDrawGeometry()})}changedGlobalTransparency(K){const ge=(0,x.isFunc)(K)?K:null;(ge||void 0===K)&&(K=this.ctrl.transparency),this._toplevel?.traverse(ye=>{if(void 0===ye?.material?.inherentOpacity)return;const Pe=ge?ge(ye):void 0;ye.material.opacity=void 0!==Pe?1-Pe:Math.min(1-(K||0),ye.material.inherentOpacity),ye.material.depthWrite=1===ye.material.opacity,ye.material.transparent=ye.material.opacity<1}),this.render3D()}changedMaterial(){this._toplevel?.traverse(K=>{void 0!==K.material?.inherentArgs&&(K.material=(0,Z.Cc)(this.ctrl,K.material.inherentArgs))}),this.render3D(-1)}changeMaterialProperty(K){const ge=this.ctrl[K];if(void 0===ge)return console.error("No property ",K);this._toplevel?.traverse(ye=>{void 0!==ye.material?.inherentArgs&&void 0!==ye.material[K]&&(ye.material[K]=ge,ye.material.needsUpdate=!0)}),this.render3D()}resetTransformation(){this.changedTransformation("reset")}changedTransformation(K){if(!this._toplevel)return;const ge=this.ctrl,ye=new L.kn4,Pe=new L.Pq0;"reset"===K&&(ge.trans_z=ge.trans_radial=0),this._toplevel.traverse(At=>{if(void 0!==At.stack){const Ht=At.parent;if("reset"===K)return Ht.matrix0&&(Ht.matrix.copy(Ht.matrix0),Ht.matrix.decompose(Ht.position,Ht.quaternion,Ht.scale),Ht.matrixWorldNeedsUpdate=!0),delete Ht.matrix0,delete Ht.vect0,delete Ht.vect1,void delete Ht.minvert;if(void 0===Ht.vect0){Ht.matrix0=Ht.matrix.clone(),Ht.minvert=(new L.kn4).copy(Ht.matrixWorld).invert();const Nt=(0,Z.UX)(At,null,!0);Ht.vect0=new L.Pq0((Nt.max.x+Nt.min.x)/2,(Nt.max.y+Nt.min.y)/2,(At._flippedMesh?-1:1)*(Nt.max.z+Nt.min.z)/2).applyMatrix4(Ht.matrixWorld),Ht.vect1=new L.Pq0(0,0,0).applyMatrix4(Ht.minvert)}Pe.set(ge.trans_radial*Ht.vect0.x,ge.trans_radial*Ht.vect0.y,ge.trans_z*Ht.vect0.z).applyMatrix4(Ht.minvert).sub(Ht.vect1),Ht.matrix.multiplyMatrices(Ht.matrix0,ye.makeTranslation(Pe.x,Pe.y,Pe.z)),Ht.matrix.decompose(Ht.position,Ht.quaternion,Ht.scale),Ht.matrixWorldNeedsUpdate=!0}else if(void 0!==At.stacks){if(At.instanceMatrix.needsUpdate=!0,"reset"===K)return At.trans?.forEach((Nt,nn)=>{At.setMatrixAt(nn,Nt.matrix0)}),void delete At.trans;if(void 0===At.trans){At.trans=new Array(At.count),At.geometry.computeBoundingBox();for(let Nt=0;Nt{Pe.set(ge.trans_radial*Nt.vect0.x,ge.trans_radial*Nt.vect0.y,ge.trans_z*Nt.vect0.z).applyMatrix4(Nt.minvert).sub(Nt.vect1),Ht.multiplyMatrices(Nt.matrix0,ye.makeTranslation(Pe.x,Pe.y,Pe.z)),At.setMatrixAt(nn,Ht)})}}),this._toplevel.updateMatrixWorld(),"norender"!==K&&this.drawAxesAndOverlay()}changedAutoRotate(){this.autorotate(2.5)}changedAxes(){(0,x.isStr)(this.ctrl._axis)&&(this.ctrl._axis=parseInt(this.ctrl._axis)),this.drawAxesAndOverlay()}changedBackground(K){if(void 0!==K&&(this.ctrl.background=K),this._scene.background=new L.Q1f(this.ctrl.background),this._renderer.setClearColor(this._scene.background,1),this.render3D(0),this._toolbar){const ge=new L.Q1f(this.ctrl.background);this._toolbar.changeBrightness(ge.r+ge.g+ge.b<1)}}showControlGui(K){if(!this.ctrl)return;if("toggle"===K?K=!this._gui:void 0===K&&(K=this.ctrl.show_controls),this.ctrl.show_controls=K,this._gui)return void(K||(this._gui.destroy(),delete this._gui));if(!K||!this._renderer)return;const ge=this.selectDom();"static"===ge.style("position")&&ge.style("position","relative"),this._gui=new g({container:ge.node(),closeFolders:!0,width:Math.min(300,this._scene_width/2),title:"Settings"});const ye=this._gui.domElement;ye.style.position="absolute",ye.style.top=0,ye.style.right=0,this._gui.painter=this;const Pe=Si=>{const bi={};return Si.forEach(Jn=>{bi[Jn.name]=Jn.value}),bi};if(!this.ctrl.project){const Si=this._gui.addFolder("Selection");this.ctrl.maxnodes||(this.ctrl.maxnodes=this._clones?.getMaxVisNodes()??1e4),this.ctrl.vislevel||(this.ctrl.vislevel=this._clones?.getVisLevel()??3),this.ctrl.maxfaces||(this.ctrl.maxfaces=2e5*this.ctrl.more),this.ctrl.more=1,Si.add(this.ctrl,"vislevel",1,99,1).name("Visibility level").listen().onChange(()=>this.startRedraw(500)),Si.add(this.ctrl,"maxnodes",0,5e5,1e3).name("Visible nodes").listen().onChange(()=>this.startRedraw(500)),Si.add(this.ctrl,"maxfaces",0,5e6,1e5).name("Max faces").listen().onChange(()=>this.startRedraw(500))}if(this.ctrl.project){const Si=this.getGeomBoundingBox(this.getProjectionSource(),.01),bi=this.ctrl.project;void 0===this.ctrl.projectPos&&(this.ctrl.projectPos=(Si.min[bi]+Si.max[bi])/2),this._gui.add(this.ctrl,"projectPos",Si.min[bi],Si.max[bi]).name(bi.toUpperCase()+" projection").onChange(()=>this.startDrawGeometry())}else{const Si=this._gui.addFolder("Clipping");for(let bi=0;bi<3;++bi){const Jn=this.ctrl.clip[bi],Wi=Jn.name.toUpperCase();Si.add(Jn,"enabled").name("Enable "+Wi).listen().onChange(()=>this.changedClipping(-1)),Si.add(Jn,"value",Jn.min,Jn.max,Jn.step).name(Wi+" position").listen().onChange(()=>this.changedClipping(bi))}Si.add(this.ctrl,"clipIntersect").name("Clip intersection").onChange(()=>this.changedClipping(-1)),Si.add(this.ctrl,"clipVisualize").name("Visualize").onChange(()=>this.changedClipping(-1))}const At=this._gui.addFolder("Scene");At.add(this.ctrl.light,"kind",Pe(this.ctrl.lightKindItems)).name("Light").listen().onChange(()=>{Ht.show("mix"===this.ctrl.light.kind||"points"===this.ctrl.light.kind),this.changedLight()}),this.ctrl.light._pnts=this.ctrl.light.specular?0:this.ctrl.light.front?1:2;const Ht=At.add(this.ctrl.light,"_pnts",{specular:0,front:1,box:2}).name("Positions").show("mix"===this.ctrl.light.kind||"points"===this.ctrl.light.kind).onChange(Si=>{this.ctrl.light.specular=0===Si,this.ctrl.light.front=1===Si,this.ctrl.light.top=this.ctrl.light.bottom=this.ctrl.light.left=this.ctrl.light.right=2===Si,this.changedLight()});At.add(this.ctrl.light,"power",0,10,.01).name("Power").listen().onChange(()=>this.changedLight()),At.add(this.ctrl,"use_fog").name("Fog").listen().onChange(()=>this.changedUseFog());const Nt=this._gui.addFolder("Appearance");this.ctrl._highlight=this.ctrl.highlight?this.ctrl.highlight_bloom?2:1:0,Nt.add(this.ctrl,"_highlight",{none:0,normal:1,bloom:2}).name("Highlight Selection").listen().onChange(()=>{this.changedHighlight(this.ctrl._highlight),un.show(2===this.ctrl._highlight),nn.show(1===this.ctrl._highlight)});const nn=Nt.addColor(this.ctrl,"highlight_color").name("Hightlight color").show(1===this.ctrl._highlight),un=Nt.add(this.ctrl,"bloom_strength",0,3).name("Bloom strength").listen().onChange(()=>this.changedHighlight()).show(2===this.ctrl._highlight);Nt.addColor(this.ctrl,"background").name("Background").onChange(Si=>this.changedBackground(Si)),Nt.add(this.ctrl,"_axis",{none:0,side:1,center:2}).name("Axes").onChange(()=>this.changedAxes()),this.ctrl.project||Nt.add(this.ctrl,"rotate").name("Autorotate").listen().onChange(()=>this.changedAutoRotate());const kn=this._gui.addFolder("Material");let cn=[];const In=()=>{cn.forEach(bi=>bi.destroy()),cn=[];const Si=this.ctrl.getMaterialCfg()?.props;Si&&Si.forEach(bi=>{const Jn=kn.add(this.ctrl,bi.name,bi.min,bi.max,bi.step).onChange(()=>{this.changeMaterialProperty(bi.name)});cn.push(Jn)})};kn.add(this.ctrl,"material_kind",Pe(this.ctrl.materialKinds)).name("Kind").listen().onChange(()=>{In(),this.ensureBloom(!1),this.changedMaterial(),this.changedHighlight()}),kn.add(this.ctrl,"transparency",0,1,.001).name("Transparency").listen().onChange(Si=>this.changedGlobalTransparency(Si)),kn.add(this.ctrl,"wireframe").name("Wireframe").listen().onChange(()=>this.changedWireFrame()),kn.add(this,"showMaterialDocu").name("Docu from threejs.org"),In();const ci=this._gui.addFolder("Camera");ci.add(this.ctrl,"camera_kind",Pe(this.ctrl.cameraKindItems)).name("Kind").listen().onChange(()=>{Pi.show(0===this.ctrl.camera_kind.indexOf("ortho")),this.changeCamera()}),ci.add(this.ctrl,"can_rotate").name("Can rotate").listen().onChange(()=>this.changeCanRotate()),ci.add(this,"focusCamera").name("Reset position");const Pi=ci.add(this.ctrl,"camera_overlay",Pe(this.ctrl.cameraOverlayItems)).name("Overlay").listen().onChange(()=>this.changeCamera()).show(0===this.ctrl.camera_kind.indexOf("ortho"));if(this._webgl){const Si=this._gui.addFolder("Advanced");Si.add(this.ctrl,"depthTest").name("Depth test").listen().onChange(()=>this.changedDepthTest()),Si.add(this.ctrl,"depthMethod",Pe(this.ctrl.depthMethodItems)).name("Rendering order").onChange(bi=>this.changedDepthMethod(bi)),Si.add(this,"resetAdvanced").name("Reset")}if(!this.ctrl.project){const Si=this._gui.addFolder("Transform");Si.add(this.ctrl,"trans_z",0,3,.01).name("Z axis").listen().onChange(()=>this.changedTransformation()),Si.add(this.ctrl,"trans_radial",0,3,.01).name("Radial").listen().onChange(()=>this.changedTransformation()),Si.add(this,"resetTransformation").name("Reset"),(this.ctrl.trans_z||this.ctrl.trans_radial)&&Si.open()}}showMaterialDocu(){const K=this.ctrl.getMaterialCfg();K?.name&&typeof window<"u"&&window.open("https://threejs.org/docs/index.html#api/en/materials/"+K.name,"_blank")}changedHighlight(K){void 0!==K&&(this.ctrl.highlight=0!==K,this.ctrl.highlight&&(this.ctrl.highlight_bloom=2===K)),this.ensureBloom(),this.ctrl.highlight||this.highlightMesh(null),this._slave_painters?.forEach(ge=>{ge.ctrl.highlight=this.ctrl.highlight,ge.ctrl.highlight_bloom=this.ctrl.highlight_bloom,ge.ctrl.bloom_strength=this.ctrl.bloom_strength,ge.changedHighlight()})}changeCanRotate(K){void 0!==K&&(this.ctrl.can_rotate=K),this._controls&&(this._controls.enableRotate=this.ctrl.can_rotate)}changedUseFog(){this._scene.fog=this.ctrl.use_fog?this._fog:null,this.render3D()}changeCamera(){this._controls&&(this._controls.cleanup(),delete this._controls),this.ensureBloom(!1),this.createCamera(),this.createSpecialEffects(),this.adjustCameraPosition(!0),this.addOrbitControls(),this.render3D()}ensureBloom(K){if(void 0===K&&(0===this.ctrl.highlight_bloom&&(this.ctrl.highlight_bloom=this._webgl),K=this.ctrl.highlight_bloom&&this.ctrl.getMaterialCfg()?.emissive),K&&!this._bloomComposer){this._camera.layers.enable(1),this._bloomComposer=new L.s0G(this._renderer),this._bloomComposer.addPass(new L.AHc(this._scene,this._camera));const ge=new L.Cgj(new L.I9Y(this._scene_width,this._scene_height),1.5,.4,.85);ge.threshold=0,ge.radius=0,ge.renderToScreen=!0,this._bloomComposer.addPass(ge),this._renderer.autoClear=!1}else!K&&this._bloomComposer&&(this._bloomComposer.dispose(),delete this._bloomComposer,this._renderer&&(this._renderer.autoClear=!0),this._camera?.layers.disable(1),this._camera?.layers.set(0));this._bloomComposer?.passes&&(this._bloomComposer.passes[1].strength=this.ctrl.bloom_strength)}orbitContext(K,ge){(0,I.ES)(K,this).then(ye=>{let Pe=0,At=0,Ht=0;if(ge)for(let Nt=0;Nt1;Nt&&ye.add("header:"+(Pe>0?"Items":"Nodes"));for(let nn=0;nn")&&(In=(this.getItemName()||"top")+In.slice(6)),cn=In.slice(In.lastIndexOf("/")+1),cn||(cn=In),ci=cn;else{if(!kn)continue;cn=this._clones.getStackName(kn),In=this.getStackFullName(kn),ci=this.getItemName(),0===cn.indexOf("Nodes/")?ci=cn.slice(6):cn?ci=cn:ci||(ci="header")}if(Ht++,ye.add((Nt?"sub:":"header:")+ci,In,Si=>this.activateInBrowser([Si],!0)),ye.add("Browse",In,Si=>this.activateInBrowser([Si],!0)),this._hpainter&&ye.add("Inspect",In,Si=>this._hpainter.display(Si,x.kInspect)),(0,x.isFunc)(this.hidePhysicalNode))ye.add("Hide",In,Si=>this.hidePhysicalNode([Si])),Ht>1&&ye.add("Hide all before",nn,Si=>{const bi=[];for(let Jn=0;Jn{const bi=ge[Si].object;bi.visible=!1,bi.geo_object&&(bi.geo_object.$hidden_via_menu=!0),ye.painter.render3D()},"Hide this physical node"),Nt&&ye.add("endsub:");continue}const Pi=this.accessObjectWireFrame(un);void 0!==Pi&&ye.addchk(Pi,"Wireframe",nn,Si=>{const bi=ge[Si].object.material;bi.wireframe=!bi.wireframe,this.render3D()},"Toggle wireframe mode for the node"),Ht>1&&ye.add("Manifest",nn,Si=>{this._last_manifest&&(this._last_manifest.wireframe=!this._last_manifest.wireframe),this._last_hidden&&this._last_hidden.forEach(bi=>{bi.visible=!0}),this._last_hidden=[];for(let bi=0;bi{bi.visible=!1}),this._last_manifest=ge[Si].object.material,this._last_manifest.wireframe=!this._last_manifest.wireframe,this.render3D()},"Manifest selected node"),ye.add("Focus",nn,Si=>{this.focusCamera(ge[Si].object)}),this._geom_viewer||(ye.add("Hide",nn,Si=>{const bi=this._clones.resolveStack(ge[Si].object.stack);bi.obj&&bi.node.kind===Z.k$&&bi.obj.fVolume?((0,Z.bg)(bi.obj.fVolume,Z.Wv.kVisThis,!1),tt(bi.obj.fVolume,this._hpainter)):bi.obj&&bi.node.kind===Z.NN&&(bi.obj.fRnrSelf=!1,tt(bi.obj,this._hpainter)),this.testGeomChanges()},"Hide all logical nodes of that kind"),ye.add("Hide only this",nn,Si=>{this._clones.setPhysNodeVisibility(Fe(ge[Si]),!1),this.testGeomChanges()},"Hide only this physical node"),nn>1&&ye.add("Hide all before",nn,Si=>{for(let bi=0;bi=0;--ye){const Pe=K[ye].object;let At=Pe.visible&&(Fe(K[ye])||void 0!==Pe.geo_name);At&&Pe.material&&void 0!==Pe.material.opacity&&(At=Pe.material.opacity>=.1),Pe.jsroot_special&&(At=!1);for(let Ht=0;Htthis._clipPlanes[0].constant^Ht&&(Nt=!1),ge[1].enabled&&this._clipPlanes[1].normal.dot(At)>this._clipPlanes[1].constant^Ht&&(Nt=!1),ge[2].enabled&&this._clipPlanes[2].normal.dot(At)>this._clipPlanes[2].constant&&(Nt=!1),Nt||ye.push(K[Pe])}K=ye}return K}testCameraPositionChange(){if(!this.ctrl.select_in_view||this._draw_all_nodes)return;const K=(0,Z.d4)(this._camera);(0,Z.P1)(K).CheckBox(this.getGeomBoundingBox())||this.startDrawGeometry()}resolveStack(K){return this._clones&&K?this._clones.resolveStack(K):null}getStackFullName(K){const ge=this.getItemName(),ye=this.resolveStack(K);return ye&&ye.name?ge?ge+"/"+ye.name:ye.name:ge}addHighlightHandler(K){(0,x.isFunc)(K?.highlightMesh)&&(this._highlight_handlers||(this._highlight_handlers=[]),this._highlight_handlers.push(K))}highlightMesh(K,ge,ye,Pe,At,Ht){if(ye){K=K?[K]:[];const kn=this.getExtrasContainer();kn&&kn.traverse(cn=>{cn.geo_object===ye&&K.indexOf(cn)<0&&K.push(cn)})}else At&&this._toplevel?(K=[],this._toplevel.traverse(kn=>{kn instanceof L.eaF&&(0,Z.xq)(kn.stack,At)&&K.push(kn)})):K=K?[K]:[];if(K.length||(K=null),K&&(K[0].geo_object?this.ctrl.highlight_scene||(K=null):this.ctrl.highlight||(K=null)),!Ht){K&&(ye||(ye=K[0].geo_object),At||(At=K[0].stack));const kn=this._highlight_handlers||(this._main_painter?this._main_painter._slave_painters.concat([this._main_painter]):this._slave_painters);for(let cn=0;cnkn.get_ctrl?kn.get_ctrl():new rt(kn,this.ctrl.highlight_bloom&&this._bloomComposer);let un=!1;if(Nt&&K&&Nt.length===K.length){un=!0;for(let kn=0;kn{if(!this.ctrl||!this._controls)return;let Ht,Nt,nn,ge=null,ye=null,Pe=null,At=[];for(let kn=0;kn")&&(ci=this.getItemName()+ci.slice(6)),At.push(ci),ge||(ge=cn,ye=ci,Ht=cn.geo_object,cn.get_ctrl&&(Nt=cn.get_ctrl().extractIndex(K[kn]),void 0!==Nt&&(0,x.isStr)(ye)&&(ye+=" indx:"+JSON.stringify(Nt))),nn=In,nn&&(Pe=this.resolveStack(nn),cn.stacks&&(Nt=K[kn].instanceId))))}if(this.highlightMesh(ge,void 0,Ht,Nt),this.ctrl.update_browser&&(this.ctrl.highlight&&ye&&(At=[ye]),this.activateInBrowser(At)),!Pe?.obj)return ye;const un=(0,Z.V)(Pe.obj);return un.unshift(ye),{name:Pe.obj.fName,title:Pe.obj.fTitle||Pe.obj._typename,lines:un}},this._controls.processMouseLeave=function(){this.processMouseMove([])},this._controls.processDblClick=()=>{!this.ctrl||!this._controls||(this._last_manifest?(this._last_manifest.wireframe=!this._last_manifest.wireframe,this._last_hidden&&this._last_hidden.forEach(K=>{K.visible=!0}),delete this._last_hidden,delete this._last_manifest):this.adjustCameraPosition(!0),this.render3D())})}nextDrawAction(){if(!this._clones||this.isStage(0))return!1;if(this.isStage(1)){if(this._geom_viewer)return this._draw_all_nodes=!1,this.changeStage(3),!0;if(this.ctrl.use_worker>0){if(!this._worker)return this.startWorker(),1;if(!this._worker_ready)return 1}let K=this._first_drawing?this._clones.countVisibles():0,ge=null,ye=null;K||(K=this._clones.markVisibles(!1,!1,!!this.geo_manager&&!this.ctrl.showtop)),this.ctrl.select_in_view&&!this._first_drawing&&(ge=(0,Z.d4)(this._camera),ye=(0,Z.P1)(ge),ye.CheckBox(this.getGeomBoundingBox())&&(ge=null,ye=null)),this._current_face_limit=this.ctrl.maxfaces,ge&&(this._current_face_limit*=1.25);let Pe=!this.isBatchMode()&&x.browser.isChrome&&(K>1e4||ge&&this._clones.scanVisible()>1e5);if(Pe&&0===x.source_dir.indexOf("file://")&&(console.log("disable worker for jsroot from file system"),Pe=!1),Pe&&!this._worker&&this.ctrl.use_worker>=0&&this.startWorker(),!Pe||!this._worker_ready){const Ht=this._clones.collectVisibles(this._current_face_limit,ye);return this._new_draw_nodes=Ht.lst,this._draw_all_nodes=Ht.complete,this.changeStage(3),!0}const At={collect:this._current_face_limit,flags:this._clones.getVisibleFlags(),matrix:ge?ge.elements:null,vislevel:this._clones.getVisLevel(),maxvisnodes:this._clones.getMaxVisNodes()};return this.submitToWorker(At),this.changeStage(2),2}if(this.isStage(2))return 2;if(this.isStage(3)){if(this._new_append_nodes)this._new_draw_nodes=this._draw_nodes.concat(this._new_append_nodes),delete this._new_append_nodes;else if(this._draw_nodes){let K;K=this._geom_viewer?this._draw_nodes:this._clones.mergeVisibles(this._new_draw_nodes,this._draw_nodes);for(let ge=0;ge0&&(this.drawing_log=`Delete ${K.length} nodes`)}return this._draw_nodes=this._new_draw_nodes,delete this._new_draw_nodes,this.changeStage(4),!0}if(this.isStage(4)){const K=this._clones.collectShapes(this._draw_nodes);return this._build_shapes=this._clones.mergeShapesLists(this._build_shapes,K),this.changeStage(5),!0}if(this.isStage(5)){if(this.canSubmitToWorker()){const K={limit:this._current_face_limit,shapes:[]};let ge=0;for(let ye=0;ye0)return this.submitToWorker(K),this.changeStage(6),2}this.changeStage(7)}if(this.isStage(6))return 2;if(this.isStage(7)||this.isStage(8)){if(this.isStage(7)){const At=this._clones.buildShapes(this._build_shapes,this._current_face_limit,500);if(!At.done)return this.ctrl.info.num_shapes=At.shapes,this.drawing_log=`Creating: ${At.shapes} / ${this._build_shapes.length} shapes, ${At.faces} faces`,!0;this.ctrl.info.num_shapes=this._build_shapes.length,this.changeStage(8)}const K=(new Date).getTime(),ge=this.ctrl.project?this._full_geom:this._toplevel;let ye=!1,Pe=!0;if(this.ctrl.project||(ye=this._clones.createInstancedMeshes(this.ctrl,ge,this._draw_nodes,this._build_shapes,(0,v.HG)())),!ye)for(let At=0;At500)){Pe=!1;break}}return Pe?this.ctrl.project?(this.changeStage(10),!0):(this.changeStage(0),!1):(this.isStage(7)||(this.drawing_log=`Building meshes ${this.ctrl.info.num_meshes} / ${this.ctrl.info.num_faces}`),!0)}if(this.isStage(9)){if(!this._main_painter)return this.changeStage(0,"Lost main painter"),!1;if(!this._main_painter._drawing_ready)return 1;this.changeStage(10)}return this.isStage(10)?(this.doProjection(),this.changeStage(0),!1):(console.error(`never come here, stage ${this.drawing_stage}`),!1)}createEntryMesh(K,ge,ye){return this._splitColors&&K.stack&&(0===K.stack[0]?K.custom_color="green":1===K.stack[0]&&(K.custom_color="blue")),this._clones.createEntryMesh(this.ctrl,ye,K,ge,(0,v.HG)()),!0}appendMoreNodes(K,ge){if(!this.isStage(0)&&!ge)return void(this._provided_more_nodes=K);if(this._more_nodes)for(let Pe=0;Pe0&&(this._more_nodes=ye),ge||this.render3D()}getProjectionSource(){return this._clones_owner?this._full_geom:this._main_painter?this._main_painter._drawing_ready?this._main_painter._toplevel:(console.warn("MAIN PAINTER NOT READY WHEN DO PROJECTION"),null):(console.warn("MAIN PAINTER DISAPPER"),null)}extendCustomBoundingBox(K){if(!K)return;this._customBoundingBox||(this._customBoundingBox=(new L.NRn).makeEmpty());const ge=this._customBoundingBox.clone();this._customBoundingBox.union(K),this._customBoundingBox.equals(ge)||(this._adjust_camera_with_render=!0)}getGeomBoundingBox(K,ge){const ye=new L.NRn,Pe=!this._clones;return void 0===K&&(K=this._toplevel),ye.makeEmpty(),this._customBoundingBox&&K===this._toplevel?(ye.union(this._customBoundingBox),ye):K?(K.traverse(At=>{(Pe||At.stack&&At instanceof L.eaF||At.main_track&&At instanceof L.DXC||At.stacks&&At instanceof L.ZLX)&&(0,Z.UX)(At,ye)}),"original"===ge?(ye.translate(new L.Pq0(-K.position.x,-K.position.y,-K.position.z)),ye.min.multiply(new L.Pq0(1/K.scale.x,1/K.scale.y,1/K.scale.z)),ye.max.multiply(new L.Pq0(1/K.scale.x,1/K.scale.y,1/K.scale.z))):void 0!==ge&&ye.expandByVector(ye.getSize(new L.Pq0).multiplyScalar(ge)),ye):(ye.min.x=ye.min.y=ye.min.z=-1,ye.max.x=ye.max.y=ye.max.z=1,ye)}doProjection(){const K=this.getProjectionSource();if(!K)return!1;if((0,_.G1)(this._toplevel,!0),void 0===this.ctrl.projectPos){const ge=this.getGeomBoundingBox(K),ye=ge.min[this.ctrl.project],Pe=ge.max[this.ctrl.project];let At=(ye+Pe)/2;ye<0&&Pe>0&&Math.abs(At)<.2*Math.max(-ye,Pe)&&(At=0),this.ctrl.projectPos=At}return K.traverse(ge=>{if(!(ge instanceof L.eaF&&ge.stack))return;const ye=(0,Z.qr)(ge.geometry,ge.parent.absMatrix||ge.parent.matrixWorld,this.ctrl.project,this.ctrl.projectPos,ge._flippedMesh);if(!ye)return;const Pe=new L.eaF(ye,ge.material.clone());this._toplevel.add(Pe),Pe.stack=ge.stack}),!0}changedLight(K){if(!this._camera)return;const ge=!K;K||(K=this.getGeomBoundingBox());const ye=K.max.x-K.min.x,Pe=K.max.y-K.min.y,At=K.max.z-K.min.z,Ht=[],Nt=.5*(this.ctrl.light.power??1);if(this._camera._lights!==this.ctrl.light.kind)switch((0,_.G1)(this._camera,!0),this._camera._lights=this.ctrl.light.kind,this._camera._lights){case"ambient":this._camera.add(new L.$p8(15724527,Nt));break;case"hemisphere":this._camera.add(new L.dth(16777147,526368,Nt));break;case"mix":this._camera.add(new L.$p8(15724527,Nt));default:for(let nn=0;nn<6;++nn){const un=new L.ZyN(15724527,Nt);this._camera.add(un),un._id=nn}}for(let nn=0;nn{nn.power=4*Nt*Math.PI/Ht.length}),ge&&this.render3D()}isOrthoCamera(){return 0===this.ctrl.camera_kind.indexOf("ortho")}createCamera(){this._camera&&(this._scene.remove(this._camera),(0,_.G1)(this._camera),delete this._camera),this.isOrthoCamera()?this._camera=new L.qUd(-this._scene_width/2,this._scene_width/2,this._scene_height/2,-this._scene_height/2,1,1e4):(this._camera=new L.ubm(25,this._scene_width/this._scene_height,1,1e4),this._camera.up=this.ctrl._yup?new L.Pq0(0,1,0):new L.Pq0(0,0,1));const K=new L.ZyN(15724527,.1);K.position.set(10,10,10),this._camera.add(K),this._scene.add(this._camera)}createSpecialEffects(){this._webgl&&this.ctrl.outline&&(0,x.isFunc)(this.createOutline)&&(this._effectComposer=new L.s0G(this._renderer),this._effectComposer.addPass(new L.AHc(this._scene,this._camera)),this.createOutline(this._scene_width,this._scene_height)),this.ensureBloom()}createScene(K,ge,ye){var Pe=this;return(0,Te.A)(function*(){if(Pe.superimpose){const At=Ge(Pe.getMainPainter());return At?.renderer&&(Pe._scene=At.scene,Pe._scene_width=At.scene_width,Pe._scene_height=At.scene_height,Pe._renderer=At.renderer,Pe._webgl=Pe._renderer.jsroot_render3d===x.constants.Render3D.WebGL,Pe._toplevel=new L.B69,Pe._scene.add(Pe._toplevel),(At.scale_x||At.scale_y||At.scale_z)&&Pe._toplevel.scale.set(At.scale_x,At.scale_y,At.scale_z),(At.offset_x||At.offset_y||At.offset_z)&&Pe._toplevel.position.set(At.offset_x,At.offset_y,At.offset_z),Pe._toplevel.updateMatrix(),Pe._toplevel.updateMatrixWorld(),Pe._camera=At.camera),Pe._renderer?.jsroot_dom}return Pe._scene=new L.Z58,Pe._fog=new L.jUj(16777215,1,1e4),Pe._scene.fog=Pe.ctrl.use_fog?Pe._fog:null,Pe._scene.overrideMaterial=new L.G_z({color:7340287,vertexColors:!1,transparent:!0,opacity:.2,depthTest:!1}),Pe._scene_width=K,Pe._scene_height=ge,Pe.createCamera(),Pe._selected_mesh=null,Pe._overall_size=10,Pe._toplevel=new L.B69,Pe._scene.add(Pe._toplevel),Pe._scene.background=new L.Q1f(Pe.ctrl.background),(0,_.Yw)(K,ge,ye,{antialias:!0,logarithmicDepthBuffer:!1,preserveDrawingBuffer:!0}).then(At=>{if(Pe._renderer=At,Pe.batch_format&&(At.jsroot_image_format=Pe.batch_format),Pe._webgl=Pe._renderer.jsroot_render3d===x.constants.Render3D.WebGL,Pe._renderer.setPixelRatio&&!(0,x.isNodeJs)()&&Pe._renderer.setPixelRatio(window.devicePixelRatio),Pe._renderer.setSize(K,ge,!Pe._fit_main_area),Pe._renderer.localClippingEnabled=!0,Pe._renderer.setClearColor(Pe._scene.background,1),Pe._fit_main_area&&Pe._webgl){Pe._renderer.domElement.style.width="100%",Pe._renderer.domElement.style.height="100%";const Ht=Pe.selectDom();"static"===Ht.style("position")&&Ht.style("position","relative")}if(Pe._animating=!1,Pe.ctrl.doubleside=!1,Pe.createSpecialEffects(),Pe._fit_main_area&&!Pe._webgl){const Nt=(0,x.getDocument)().createElementNS("http://www.w3.org/2000/svg","svg");return Nt.setAttribute("width",K),Nt.setAttribute("height",ge),Nt.appendChild(Pe._renderer.jsroot_dom),Nt}return Pe._renderer.jsroot_dom})})()}startDrawGeometry(K){K||this.isStage(0)?(this._clones_owner&&this._clones&&this._clones.setDefaultColors(this.ctrl.dflt_colors),this._startm=(new Date).getTime(),this._last_render_tm=this._startm,this._last_render_meshes=0,this.changeStage(1),this._drawing_ready=!1,this.ctrl.info.num_meshes=0,this.ctrl.info.num_faces=0,this.ctrl.info.num_shapes=0,this._selected_mesh=null,this.ctrl.project&&(this._clones_owner?this._full_geom?this.changeStage(10):this._full_geom=new L.B69:this.changeStage(9)),delete this._last_manifest,delete this._last_hidden,delete this._draw_nodes_again,this.continueDraw()):this._draw_nodes_again=!0}resetAdvanced(){this.ctrl.depthTest=!0,this.ctrl.clipIntersect=!0,this.ctrl.depthMethod="ray",this.changedDepthMethod("norender"),this.changedDepthTest()}getOverallSize(K){if(!this._overall_size||K||this._customBoundingBox){const ge=this.getGeomBoundingBox();if(!Number.isFinite(ge.min.x))return 1e3;this._overall_size=2*Math.max(ge.max.x-ge.min.x,ge.max.y-ge.min.y,ge.max.z-ge.min.z)}return this._overall_size}createSnapshot(K){if(!this._renderer)return;this.render3D(0);const ge=this._renderer.domElement.toDataURL("image/png");if("asis"===K)return ge;ge.replace("image/png","image/octet-stream");const ye=(0,x.getDocument)(),Pe=ye.createElement("a");(0,x.isStr)(Pe.download)&&(ye.body.appendChild(Pe),Pe.download=K||"geometry.png",Pe.href=ge,Pe.click(),ye.body.removeChild(Pe))}produceCameraUrl(K){if(!this._camera)return"";if(this._camera.isOrthographicCamera){const kn=Math.round(100*this._camera.zoom);return this.ctrl.camera_kind+(100===kn?"":`,zoom=${kn}`)}let ge="";if("perspective"!==this.ctrl.camera_kind&&(ge=this.ctrl.camera_kind+","),!0===K){const kn=this._camera?.position,cn=this._controls?.target;if(!kn||!cn)return"";const In=Pi=>{let Si="";return Pi<0&&(Si="n",Pi=-Pi),Si+Pi.toFixed(0)};let ci=`${ge}camx${In(kn.x)},camy${In(kn.y)},camz${In(kn.z)}`;return(cn.x||cn.y||cn.z)&&(ci+=`,camlx${In(cn.x)},camly${In(cn.y)},camlz${In(cn.z)}`),ci}if(!this._lookat||!this._camera0pos)return"";const ye=(new L.Pq0).add(this._camera0pos).sub(this._lookat),Pe=(new L.Pq0).add(this._camera.position).sub(this._lookat),At=Math.min(1e4,Math.max(1,this.ctrl.zoom*Pe.length()/ye.length()*100));ye.normalize(),Pe.normalize();const Ht=new L.PTz,Nt=new L.O9p;Ht.setFromUnitVectors(ye,Pe),Nt.setFromQuaternion(Ht,"YZX");let nn=Nt.y/Math.PI*180,un=Nt.z/Math.PI*180;return nn<0&&(nn+=360),un<0&&(un+=360),`${ge}roty${nn.toFixed(0)},rotz${un.toFixed(0)},zoom${At.toFixed(0)}`}calculateZoom(){if(this._camera0pos&&this._camera&&this._lookat){const K=(new L.Pq0).add(this._camera0pos).sub(this._lookat);return(new L.Pq0).add(this._camera.position).sub(this._lookat).length()/K.length()}return 0}adjustCameraPosition(K,ge){if(!this._toplevel||this.superimpose)return;const ye=!0===K,Pe="first"===K||ye,At="only_set"===K,Ht=this.getGeomBoundingBox();if(!Number.isFinite(Ht.min.x))return void console.log("FAILS to get geometry bounding box");const Nt=Ht.max.x-Ht.min.x,nn=Ht.max.y-Ht.min.y,un=Ht.max.z-Ht.min.z,kn=(Ht.max.x+Ht.min.x)/2,cn=(Ht.max.y+Ht.min.y)/2,In=(Ht.max.z+Ht.min.z)/2,ci=this.ctrl._axis||"bar"===this.ctrl.camera_overlay?.2:.1;if(this._scene_size&&!ye){const Jn=this._scene_size,Wi=(Rs,oe,D)=>(D||(D=Math.abs((Rs+oe)/2)),D<=1e-20||Math.abs(oe-Rs)/D>.01);if(!(Wi(Nt,Jn.sizex)||Wi(nn,Jn.sizey)||Wi(un,Jn.sizez)||Wi(kn,Jn.midx,Jn.sizex)||Wi(cn,Jn.midy,Jn.sizey)||Wi(In,Jn.midz,Jn.sizez)))return void(this.ctrl.select_in_view&&this.startDrawGeometry())}if(this._scene_size={sizex:Nt,sizey:nn,sizez:un,midx:kn,midy:cn,midz:In},this._overall_size=2*Math.max(Nt,nn,un),this._camera.near=this._overall_size/350,this._camera.far=100*this._overall_size,this._fog.near=.5*this._overall_size,this._fog.far=5*this._overall_size,Pe)for(let Jn=0;Jn<3;++Jn){const Wi=this.ctrl.clip[Jn];Wi.min=Ht.min[Wi.name],Wi.max=Ht.max[Wi.name];const Ln=Wi.max-Wi.min;Wi.max+=.01*Ln,Wi.min-=.01*Ln,Wi.step=Ln>100?.1:Ln>1?.001:void 0,Wi.value?Wi.valueWi.max&&(Wi.value=Wi.max):Wi.value=(Wi.min+Wi.max)/2}let Pi=2*this.ctrl.zoom;const Si=Math.max(Nt,nn,un),bi=this.ctrl.camera_kind.indexOf("N")>0?-1:1;if(this._lookat=new L.Pq0(kn,cn,In),this._camera0pos=new L.Pq0(-2*Si,0,0),this._camera.updateMatrixWorld(),this._camera.updateProjectionMatrix(),(this.ctrl.rotatey||this.ctrl.rotatez)&&this.ctrl.can_rotate){const Jn=this.calculateZoom();ge&&Jn&&(Pi=2*Jn);const Wi=new L.O9p(0,this.ctrl.rotatey/180*Math.PI,this.ctrl.rotatez/180*Math.PI,"YZX");this._camera.position.set(-Pi*Si,0,0),this._camera.position.applyEuler(Wi),this._camera.position.add(new L.Pq0(kn,cn,In)),ge&&Jn&&(Pi*=Jn/this.calculateZoom(),this._camera.position.set(-Pi*Si,0,0),this._camera.position.applyEuler(Wi),this._camera.position.add(new L.Pq0(kn,cn,In)))}else if(void 0!==this.ctrl.camx&&void 0!==this.ctrl.camy&&void 0!==this.ctrl.camz)this._camera.position.set(this.ctrl.camx,this.ctrl.camy,this.ctrl.camz),this._lookat.set(this.ctrl.camlx||0,this.ctrl.camly||0,this.ctrl.camlz||0),this.ctrl.camx=this.ctrl.camy=this.ctrl.camz=this.ctrl.camlx=this.ctrl.camly=this.ctrl.camlz=void 0;else if("orthoXOY"===this.ctrl.camera_kind||"orthoXNOY"===this.ctrl.camera_kind)this._camera.up.set(0,1,0),this._camera.position.set(bi<0?2*kn:0,0,In+bi*un*2),this._lookat.set(bi<0?2*kn:0,0,In),this._camera.left=Ht.min.x-ci*Nt,this._camera.right=Ht.max.x+ci*Nt,this._camera.top=Ht.max.y+ci*nn,this._camera.bottom=Ht.min.y-ci*nn,ge||(this._camera.zoom=this.ctrl.zoom||1),this._camera.orthoSign=bi,this._camera.orthoZ=[In,un/2];else if("orthoXOZ"===this.ctrl.camera_kind||"orthoXNOZ"===this.ctrl.camera_kind)this._camera.up.set(0,0,1),this._camera.position.set(bi<0?2*kn:0,cn-bi*nn*2,0),this._lookat.set(bi<0?2*kn:0,cn,0),this._camera.left=Ht.min.x-ci*Nt,this._camera.right=Ht.max.x+ci*Nt,this._camera.top=Ht.max.z+ci*un,this._camera.bottom=Ht.min.z-ci*un,ge||(this._camera.zoom=this.ctrl.zoom||1),this._camera.orthoIndicies=[0,2,1],this._camera.orthoRotation=Jn=>Jn.rotateX(Math.PI/2),this._camera.orthoSign=bi,this._camera.orthoZ=[cn,-nn/2];else if("orthoZOY"===this.ctrl.camera_kind||"orthoZNOY"===this.ctrl.camera_kind)this._camera.up.set(0,1,0),this._camera.position.set(kn-bi*Nt*2,0,bi<0?2*In:0),this._lookat.set(kn,0,bi<0?2*In:0),this._camera.left=Ht.min.z-ci*un,this._camera.right=Ht.max.z+ci*un,this._camera.top=Ht.max.y+ci*nn,this._camera.bottom=Ht.min.y-ci*nn,ge||(this._camera.zoom=this.ctrl.zoom||1),this._camera.orthoIndicies=[2,1,0],this._camera.orthoRotation=Jn=>Jn.rotateY(-Math.PI/2),this._camera.orthoSign=bi,this._camera.orthoZ=[kn,-Nt/2];else if("orthoZOX"===this.ctrl.camera_kind||"orthoZNOX"===this.ctrl.camera_kind)this._camera.up.set(1,0,0),this._camera.position.set(0,cn-bi*nn*2,bi>0?2*In:0),this._lookat.set(0,cn,bi>0?2*In:0),this._camera.left=Ht.min.z-ci*un,this._camera.right=Ht.max.z+ci*un,this._camera.top=Ht.max.x+ci*Nt,this._camera.bottom=Ht.min.x-ci*Nt,ge||(this._camera.zoom=this.ctrl.zoom||1),this._camera.orthoIndicies=[2,0,1],this._camera.orthoRotation=Jn=>Jn.rotateX(Math.PI/2).rotateY(Math.PI/2),this._camera.orthoSign=bi,this._camera.orthoZ=[cn,-nn/2];else if(this.ctrl.project)switch(this.ctrl.project){case"x":this._camera.position.set(1.5*Pi*Math.max(nn,un),0,0);break;case"y":this._camera.position.set(0,1.5*Pi*Math.max(Nt,un),0);break;case"z":this._camera.position.set(0,0,1.5*Pi*Math.max(Nt,nn))}else"perspXOZ"===this.ctrl.camera_kind?(this._camera.up.set(0,1,0),this._camera.position.set(kn-3*Si,cn,In)):"perspYOZ"===this.ctrl.camera_kind?(this._camera.up.set(1,0,0),this._camera.position.set(kn,cn-3*Si,In)):"perspXOY"===this.ctrl.camera_kind?(this._camera.up.set(0,0,1),this._camera.position.set(kn-3*Si,cn,In)):this.ctrl._yup?(this._camera.up.set(0,1,0),this._camera.position.set(kn-Pi*Math.max(Nt,un),cn+Pi*nn,In-Pi*Math.max(Nt,un))):(this._camera.up.set(0,0,1),this._camera.position.set(kn-Pi*Math.max(Nt,nn),cn-Pi*Math.max(Nt,nn),In+Pi*un));if(this._camera.isOrthographicCamera&&this.isOrthoCamera()&&this._scene_width&&this._scene_height){const Jn=this._scene_width/this._scene_height,Wi=this._camera.right-this._camera.left,Ln=this._camera.top-this._camera.bottom;if(Jn>Wi/Ln){const Rs=(this._camera.right+this._camera.left)/2;this._camera.left=Rs-Ln*Jn/2,this._camera.right=Rs+Ln*Jn/2}else{const Rs=(this._camera.top+this._camera.bottom)/2;this._camera.top=Rs+Wi/Jn/2,this._camera.bottom=Rs-Wi/Jn/2}}this._camera.lookAt(this._lookat),this._camera.updateProjectionMatrix(),this.changedLight(Ht),this._controls&&(this._controls.target.copy(this._lookat),At||this._controls.update()),this.ctrl.select_in_view&&!At&&this.startDrawGeometry()}setCameraPosition(K,ge,ye){if(!this.ctrl)return;this.ctrl.rotatey=K||0,this.ctrl.rotatez=ge||0;let Pe=!1;ye&&Number.isFinite(ye)?this.ctrl.zoom=ye:Pe=!0,this.adjustCameraPosition(!1,Pe)}setCameraPositionAndLook(K,ge,ye,Pe,At,Ht){this.ctrl&&(this.ctrl.camx=K,this.ctrl.camy=ge,this.ctrl.camz=ye,this.ctrl.camlx=Pe,this.ctrl.camly=At,this.ctrl.camlz=Ht,this.adjustCameraPosition(!1))}focusOnItem(K){if(!K||!this._clones)return;const ge=this._clones.findStackByName(K);ge&&this.focusCamera(this._clones.resolveStack(ge,!0),!1)}focusCamera(K,ge){if(this.ctrl.project||this.isOrthoCamera())return this.adjustCameraPosition(!0),this.render3D();let ye=new L.NRn;if(void 0===K)ye=this.getGeomBoundingBox();else if(K instanceof L.eaF)ye.setFromObject(K);else{const Wi=(new L.Pq0).setFromMatrixPosition(K.matrix),Ln=K.node,Rs=new L.Pq0(Ln.fDX,Ln.fDY,Ln.fDZ).multiplyScalar(.5);ye.min=Wi.clone().sub(Rs),ye.max=Wi.clone().add(Rs)}const Pe=ye.max.x-ye.min.x,At=ye.max.y-ye.min.y,Ht=ye.max.z-ye.min.z,Nt=(ye.max.x+ye.min.x)/2,nn=(ye.max.y+ye.min.y)/2,un=(ye.max.z+ye.min.z)/2;let kn,cn=50,In=0;kn=this.ctrl._yup?new L.Pq0(Nt-2*Math.max(Pe,Ht),nn+2*At,un-2*Math.max(Pe,Ht)):new L.Pq0(Nt-2*Math.max(Pe,At),nn-2*Math.max(Pe,At),un+2*Ht);const ci=new L.Pq0(Nt,nn,un),Pi=this._controls.target,Si=kn.sub(this._camera.position).divideScalar(cn),bi=ci.sub(Pi).divideScalar(cn);if(ge=ge&&this._webgl){for(let Wi=0;Wi<3;++Wi){const Ln=this.ctrl.clip[Wi];Ln.enabled||(Ln.value=Ln.min,Ln.enabled=!0),Ln.inc=((Ln.min+Ln.max)/2-Ln.value)/cn}this.updateClipping()}this._animating=!0;const Jn=()=>{if(void 0===this._animating)return;this._animating?requestAnimationFrame(Jn):this._geom_viewer||this.startDrawGeometry();const Wi=1-Math.cos(2*Math.PI*In/cn);this._camera.position.add(Si.clone().multiplyScalar(Wi)),Pi.add(bi.clone().multiplyScalar(Wi)),this._lookat=Pi,this._camera.lookAt(this._lookat),this._camera.updateProjectionMatrix();const Ln=(new Date).getTime();if(ge){for(let oe=0;oe<3;++oe)this.ctrl.clip[oe].value+=this.ctrl.clip[oe].inc*Wi;this.updateClipping()}else this.render3D(0);const Rs=(new Date).getTime();0===In&&Rs-Ln>200&&(cn=20),In++,this._animating=In{if(!this._renderer||!this.ctrl)return;const At=new Date;this.ctrl.rotate&&requestAnimationFrame(Pe),this._controls&&(this._controls.autoRotate=this.ctrl.rotate,this._controls.autoRotateSpeed=ge*(At.getTime()-ye.getTime())/16.6666,this._controls.update()),ye=new Date,this.render3D(0)};this._webgl&&Pe()}completeScene(){}drawCount(K,ge){var ye=this;return(0,Te.A)(function*(){const Pe=In=>(ye.isBatchMode()?"anytime":In.toString())+" ms",At=["Unique nodes: "+ye._clones.nodes.length,"Unique visible: "+K,"Time to clone: "+Pe(ge)];ye._clones.scanVisible();let Ht=0;const Nt={clones:ye._clones,cnt:[],func(In){return void 0===this.cnt[this.last]?this.cnt[this.last]=1:this.cnt[this.last]++,Ht+=(0,Z._b)(this.clones.getNodeShape(In.id)),!0}};let nn=(new Date).getTime(),un=ye._clones.scanVisible(Nt),kn=(new Date).getTime();At.push(`Total visible nodes: ${un}`,`Total shapes: ${Ht}`);for(let In=0;Incn.append("p").text(In)),(0,x.postponePromise)(()=>{Nt.domatrix=!0,nn=(new Date).getTime(),un=ye._clones.scanVisible(Nt),kn=(new Date).getTime();const In=`Time to scan with matrix: ${Pe(kn-nn)}`;return ye.isBatchMode()?At.push(In):cn.append("p").text(In),ye},100)})()}performDrop(K,ge,ye,Pe){var At=this;return(0,Te.A)(function*(){if("TTree"===K?.$kind){let Ht="extract_geo_tracks";Pe&&Pe.indexOf("$")>0&&(Ht=Pe.slice(0,Pe.indexOf("$")),Pe=Pe.slice(Pe.indexOf("$")+1));const Nt=(0,x.findFunction)(Ht);return Nt?Nt(K,Pe).then(nn=>nn?At.drawExtras(nn,"",!1).then(()=>(At.updateClipping(!0),At.render3D(100))):At):Promise.reject(Error(`Function ${Ht} not found`))}return At.drawExtras(K,ge).then(Ht=>Ht?(ye&&(ye._painter=At),At.render3D(100)):At)})()}mouseOverHierarchy(K,ge,ye){if(!this.ctrl)return;const Pe=ye._obj;!Pe||Pe._typename!==z&&Pe._typename!==W&&Pe._typename!==x.clTPolyMarker3D||this.highlightMesh(null,65280,K?Pe:null)}clearExtras(){this.getExtrasContainer("delete"),delete this._extraObjects,this.render3D()}addExtra(K,ge){return void 0===this._extraObjects&&(this._extraObjects=(0,x.create)(x.clTList)),!(this._extraObjects.arr.indexOf(K)>=0||(this._extraObjects.Add(K,ge),delete K.$hidden_via_menu,0))}extraObjectVisible(K,ge,ye){if(!this._extraObjects)return;const Pe=K.itemFullName(ge);let At=this._extraObjects.opt.indexOf(Pe);if(At<0&&ge._obj&&(At=this._extraObjects.arr.indexOf(ge._obj),At>=0&&(this._extraObjects.opt[At]=Pe)),At<0)return;const Ht=this._extraObjects.arr[At];let Nt=!!Ht.$hidden_via_menu;if(ye){Ht.$hidden_via_menu=Nt,Nt=!Nt;let nn=null;this._toplevel.traverse(un=>{un.geo_object===Ht&&(nn=un)}),nn?(nn.visible=Nt,this.render3D()):Nt&&this.drawExtras(Ht,"",!1).then(()=>{this.updateClipping(!0),this.render3D()})}return Nt}drawExtras(K,ge,ye,Pe){var At=this;return(0,Te.A)(function*(){if(!K?._typename||!ye&&K.$hidden_via_menu)return!1;let Ht=!1;void 0===ye?(ye=!0,Ht=!0):Pe&&(Ht=!0);let Nt=!1;if(K._typename===x.clTList||K._typename===x.clTObjArray){if(!K.arr)return!1;const nn=[];for(let un=0;un")+`/[${un}]`),nn.push(At.drawExtras(K.arr[un],cn,ye))}Nt=Promise.all(nn).then(un=>un.indexOf(!0)>=0)}else"Mesh"===K._typename?(At.addToExtrasContainer(K),Nt=Promise.resolve(!0)):"TGeoTrack"===K._typename?(!ye||At.addExtra(K,ge))&&(Nt=At.drawGeoTrack(K,ge)):K._typename===x.clTPolyLine3D?(!ye||At.addExtra(K,ge))&&(Nt=At.drawPolyLine(K,ge)):K._typename===z||K._typename===`${x.nsREX}REveTrack`?(!ye||At.addExtra(K,ge))&&(Nt=At.drawEveTrack(K,ge)):K._typename===W||K._typename===`${x.nsREX}REvePointSet`||K._typename===x.clTPolyMarker3D?(!ye||At.addExtra(K,ge))&&(Nt=At.drawHit(K,ge)):(K._typename===b||K._typename===fe)&&(!ye||At.addExtra(K,ge))&&(Nt=At.drawExtraShape(K,ge));return(0,x.getPromise)(Nt).then(nn=>{if(!nn||!Ht)return nn;At.updateClipping(!0);const un=At.render3D(100,!!Pe&&"nopromise");return Pe?At:un})})()}getExtrasContainer(K,ge){if(!this._toplevel)return null;ge||(ge="tracks");let ye=null;const Pe=[];for(let At=0;At/Tracks")&&(In.main_track=!0),this.addToExtrasContainer(In),!0}drawPolyLine(K,ge){if(!K)return!1;const ye=x.browser.isWin?1:K.fLineWidth||1,Pe=(0,v.oU)(K.fLineColor)||"#ff00ff",At=K.fN,Ht=K.fP,Nt=new Float32Array(6*(At-1)),nn=this.ctrl.projectPos,un="x"===this.ctrl.project,kn="y"===this.ctrl.project,cn="z"===this.ctrl.project;for(let Pi=0,Si=0;Pi(cn.defaultOrder=cn.renderOrder=1e6,cn.highlightScale=2,cn.geo_name=ge,cn.geo_object=K,ye.addToExtrasContainer(cn),!0))})()}drawExtraShape(K,ge){const ye=yo(K);return!!ye&&(ye.geo_name=ge,ye.geo_object=K,this.addToExtrasContainer(ye),!0)}findNodeWithVolume(K,ge,ye,Pe,At){let Ht=!1,Nt=null;if(ye)Pe&&(Pe+="/"),Pe+=ye.fName;else{if(!(ye=this.getGeometry())&&0!==(0,Z.Dh)(ye))return null;Pe=this.geo_manager?ye.fName:"",Ht=!0,At=[]}if(!ye.fVolume||ye.fVolume._searched)return null;if(K.test(ye.fVolume.fName)&&(Nt=ge({node:ye,item:Pe}),Nt))return Nt;if(ye.fVolume._searched=!0,At.push(ye.fVolume),ye.fVolume.fNodes)for(let nn=0,un=ye.fVolume.fNodes.arr.length;nn{const Ht=new RegExp("^"+At+"$"),Nt=ge.findNodeWithVolume(Ht,nn=>nn);return Nt||console.log(`Did not found ${At} volume`),{found:Nt,fVolume:Nt?.node?.fVolume,InvisibleAll(nn){(0,Z.N_)(this.fVolume,nn)},Draw(){!this.found||!this.fVolume||(ye.obj=this.found.node,ye.prefix=this.found.item,console.log(`Select volume for drawing ${this.fVolume.fName} ${ye.prefix}`))},SetTransparency(nn){this.fVolume?.fMedium?.fMaterial&&(this.fVolume.fMedium.fMaterial.fFillStyle=3e3+nn)},SetLineColor(nn){this.fVolume&&(this.fVolume.fLineColor=nn)}}},DefaultColors:()=>{ge.ctrl.dflt_colors=!0},SetMaxVisNodes:At=>{ge.ctrl.maxnodes||(ge.ctrl.maxnodes=parseInt(At)||0)},SetVisLevel:At=>{ge.ctrl.vislevel||(ge.ctrl.vislevel=parseInt(At)||0)}};return(0,ve.Rh)(`Loading macro ${K}`),(0,x.httpRequest)(K,"text").then(At=>{const Ht=At.split("\n");let Nt=0;for(;NtGetVolume",".GetVolume"),nn=nn.replace("->InvisibleAll",".InvisibleAll"),nn=nn.replace("->SetMaxVisNodes",".SetMaxVisNodes"),nn=nn.replace("->DefaultColors",".DefaultColors"),nn=nn.replace("->Draw",".Draw"),nn=nn.replace("->SetTransparency",".SetTransparency"),nn=nn.replace("->SetLineColor",".SetLineColor"),nn=nn.replace("->SetVisLevel",".SetVisLevel"),nn.indexOf("->")>=0)))try{new Function("gGeoManager",nn)(Pe)}catch{console.error(`Problem by processing ${nn}`)}}return ye}).catch(()=>(console.error(`Fail to load ${K}`),ye))})()}assignClones(K){this._clones_owner=!0,this._clones=K}extractRawShapes(K,ge){let ye=null,Pe=0;ge&&(ye=K.numnodes>1e6?{length:K.numnodes}:new Array(K.numnodes)),K.nodes.forEach(Ht=>{Ht=Z.De.formatServerElement(Ht),ye?ye[Ht.id]=Ht:this._clones.updateNode(Ht)}),ge&&(this._clones_owner=!0,this._clones=new Z.De(null,ye),this._clones.name_prefix=this._clones.getNodeName(0),this._clones.setConfig(this.ctrl),this._clones.maxdepth=20);let At=0;K.cfg&&(At=K.cfg.nsegm),At&&(Pe=(0,Z.QL)("GradPerSegm"),(0,Z.QL)("GradPerSegm",360/Math.max(At,6)));for(let Ht=0;Ht(At.fillatt?.color&&(ye.ctrl.background=At.fillatt.color),nn=ye.getFramePainter(),ye.batch_mode=At.isBatchMode(),Nt=(0,_.ke)(void 0,ye.batch_mode),(0,_.LR)(nn),nn.mode3d=!0,Ht=nn.getSizeFor3d(void 0,Nt),ye._fit_main_area=-1===Ht.can3d,ye.createScene(Ht.width,Ht.height,Nt).then(un=>nn.add3dCanvas(Ht,un,Nt===x.constants.Render3D.WebGL))))}else{const Ht=ye.selectDom("origin");ye.batch_mode=(0,x.isBatchMode)()||!Ht.empty()&&Ht.property("_batch_mode"),ye.batch_format=Ht.property("_batch_format");const Nt=(0,_.ke)(ye.options.Render3D,ye.batch_mode);ye.ctrl.use_worker>0&&!ye.batch_mode&&ye.startWorker(),(0,_.LR)(ye);const nn=ye.getSizeFor3d(void 0,Nt);ye._fit_main_area=-1===nn.can3d,Pe=ye.createScene(nn.width,nn.height,Nt).then(un=>ye.add3dCanvas(nn,un,ye._webgl))}}return Pe.then(()=>(ye._first_drawing&&!ye.ctrl.maxfaces&&(ye.ctrl.maxfaces=2e5*ye.ctrl.more),ye.setAsMainPainter(),ye.createToolbar(),ye._clones?new Promise(At=>{ye._resolveFunc=At,ye.showDrawInfo("Drawing geometry"),ye.startDrawGeometry(!0)}):ye.completeDraw()))})()}showDrawInfo(K){if(this.isBatchMode()||!this._first_drawing||!this._start_drawing_time)return;const ge=this._renderer.domElement.parentNode;if(!ge)return;let ye=ge.querySelector(".geo_info");if(K){const Pe=.001*((new Date).getTime()-this._start_drawing_time);ye||(ye=(0,x.getDocument)().createElement("p"),ye.setAttribute("class","geo_info"),ye.setAttribute("style","position: absolute; text-align: center; vertical-align: middle; top: 45%; left: 40%; color: red; font-size: 150%;"),ge.append(ye)),ye.innerHTML=`${K}, ${Pe.toFixed(1)}s`}else ye?.remove()}continueDraw(){if(this.isStage(0))return;const K=(new Date).getTime(),ge=this._first_drawing?1e3:200;let ye=K;for(;;){const At=this.nextDrawAction();if(!At)break;if(ye=(new Date).getTime(),ye-this._startm>1e5){this.changeStage(0,"Abort build after 100s");break}if(!(!0===At&&ye-Kge||1===At||2===At))return(0,ve.Rh)(this.drawing_log),this.showDrawInfo(this.drawing_log),this._first_drawing&&this._webgl&&this._num_meshes-this._last_render_meshes>100&&ye-this._last_render_tm>2.5*ge&&(this.adjustCameraPosition(),this.render3D(-1),this._last_render_meshes=this.ctrl.info.num_meshes),void(2!==At&&setTimeout(()=>this.continueDraw(),1===At?100:1))}const Pe=ye-this._startm;if((this._first_drawing||this._full_redrawing)&&console.log(`Create tm = ${Pe} meshes ${this.ctrl.info.num_meshes} faces ${this.ctrl.info.num_faces}`),Pe>300)return(0,ve.Rh)("Rendering geometry"),this.showDrawInfo("Rendering"),setTimeout(()=>this.completeDraw(!0),10);this.completeDraw(!0)}testCameraPosition(K){this._camera.updateMatrixWorld(),this.drawOverlay();const ge=this._camera.position.clone();if(!(!K&&this._last_camera_position&&this._last_camera_position.distanceTo(ge)<1e-4*(this._overall_size||1e3))){if(this._last_camera_position=ge,this.ctrl._axis){const ye=(this._controls?.target||this._lookat).clone().sub(this._camera.position).normalize();this.getExtrasContainer("get","axis")?.traverse(Pe=>{(0,x.isFunc)(Pe._axis_flip)&&Pe._axis_flip(ye)})}this.ctrl.project||(0,Z.Pz)(this._toplevel,ge,this.ctrl.depthMethod,this._clones)}}render3D(K,ge){if(!this._renderer)return this.did_cleanup?console.warn("try to render after cleanup"):console.warn("renderer object not exists - check code"),this;const ye=void 0!==K&&K>0&&"nopromise"!==ge;if(void 0===K&&(K=5),K>0&&this._webgl)return this.isBatchMode()&&(K=1),ye?new Promise(Ht=>{this._render_resolveFuncs||(this._render_resolveFuncs=[]),this._render_resolveFuncs.push(Ht),this.render_tmout||(this.render_tmout=setTimeout(()=>this.render3D(0),K))}):(this.render_tmout||(this.render_tmout=setTimeout(()=>this.render3D(0),K)),this);this.render_tmout&&(clearTimeout(this.render_tmout),delete this.render_tmout),(0,_.rv)(this._renderer);const Pe=new Date;this._adjust_camera_with_render&&(this.adjustCameraPosition("only_set"),delete this._adjust_camera_with_render),this.testCameraPosition(-1===K),this._webgl&&this._effectComposer&&this._effectComposer.passes.length>0?this._effectComposer.render():this._webgl&&this._bloomComposer&&this._bloomComposer.passes.length>0?(this._renderer.clear(),this._camera.layers.set(1),this._bloomComposer.render(),this._renderer.clearDepth(),this._camera.layers.set(0),this._renderer.render(this._scene,this._camera)):this._renderer.render(this._scene,this._camera);const At=new Date;if(this.last_render_tm=At.getTime(),0===this.first_render_tm&&!0===ge&&(this.first_render_tm=At.getTime()-Pe.getTime(),this.first_render_tm>500&&console.log(`three.js r${L.sPf}, first render tm = ${this.first_render_tm}`)),(0,_.oE)(this._renderer),this._render_resolveFuncs){const Ht=this._render_resolveFuncs;delete this._render_resolveFuncs,Ht.forEach(Nt=>Nt(this))}}startWorker(){this._worker||(this._worker_ready=!1,this._worker_jobs=0,this._worker=new Worker(x.source_dir+"scripts/geoworker.js"),this._worker.onmessage=K=>{if((0,x.isObject)(K.data)){if("log"in K.data)return console.log(`geo: ${K.data.log}`);if("progress"in K.data)return(0,ve.Rh)(K.data.progress);K.data.tm3=(new Date).getTime(),"init"in K.data?(this._worker_ready=!0,console.log("Worker ready: "+(K.data.tm3-K.data.tm0))):this.processWorkerReply(K.data)}},this._worker.postMessage({init:!0,browser:x.browser,tm0:(new Date).getTime(),vislevel:this._clones.getVisLevel(),maxvisnodes:this._clones.getMaxVisNodes(),clones:this._clones.nodes,sortmap:this._clones.sortmap}))}canSubmitToWorker(K){return!!this._worker&&this._worker_ready&&(0===this._worker_jobs||K)}submitToWorker(K){if(!this._worker)return!1;this._worker_jobs++,K.tm0=(new Date).getTime(),this._worker.postMessage(K)}processWorkerReply(K){if(this._worker_jobs--,"collect"in K)return this._new_draw_nodes=K.new_nodes,this._draw_all_nodes=K.complete,this.changeStage(3),this.continueDraw();if("shapes"in K){for(let ge=0;ge{Wi[Ln+Jn[0]]=Oe,Wi[Ln+Jn[1]]=$e,Wi[Ln+Jn[2]]=et??oe,Ln+=3},O=(Oe,$e)=>{const et=new L._l5(Oe,{font:_.Te,size:$e,height:0,curveSegments:5});return et.computeBoundingBox(),et._width=et.boundingBox.max.x-et.boundingBox.min.x,et._height=et.boundingBox.max.y-et.boundingBox.min.y,et.translate(-et._width/2,-et._height/2,0),this._camera.orthoSign<0&&et.rotateY(Math.PI),(0,x.isFunc)(this._camera.orthoRotation)&&this._camera.orthoRotation(et),et},ie=(Oe,$e,et,it,_t)=>{const sn=[0,0,0];sn[Jn[0]]=et,sn[Jn[1]]=it,sn[Jn[2]]=_t??oe;const tn=new L.eaF(Oe,$e);return tn.translateX(sn[0]).translateY(sn[1]).translateZ(sn[2]),tn};if("bar"===this.ctrl.camera_overlay){const Oe=this.getExtrasContainer("create","overlay");let $e=.15*Pe+.85*At,et=.05*Pe+.95*At;const it=.9*Nt+.1*Ht,_t=.86*Nt+.14*Ht,sn=Si.createTicks();sn.major?.length>1&&($e=sn.major[sn.major.length-2],et=sn.major[sn.major.length-1]),Wi=new Float32Array(18),Ln=0,D($e,it,Rs),D($e,_t,Rs),D($e,(it+_t)/2,Rs),D(et,(it+_t)/2,Rs),D(et,it,Rs),D(et,_t,Rs);const tn=new L.mrM({color:"green"}),xn=new L.V9B({color:"green",vertexColors:!1});Oe.add((0,_.Fc)(Wi,tn));const wn=O(Si.format(et-$e,!0),Math.abs(_t-it));return Oe.add(ie(wn,xn,(et+$e)/2,(it+_t)/2+.8*wn._height,Rs)),!0}const _e=0===this.ctrl.camera_overlay.indexOf("grid");if(_e&&this._camera.orthoZ&&("gridf"===this.ctrl.camera_overlay?oe+=this._camera.orthoSign*this._camera.orthoZ[1]:"gridb"===this.ctrl.camera_overlay&&(oe-=this._camera.orthoSign*this._camera.orthoZ[1])),"axis"===this.ctrl.camera_overlay||_e){const Oe=this.getExtrasContainer("create","overlay"),$e=new L.mrM({color:new L.Q1f("black")}),et=_e?new L.mrM({color:new L.Q1f(12303291)}):null,it=_e?new L.Fvt({color:new L.Q1f(14540253),dashSize:kn,gapSize:kn}):null,_t=new L.V9B({color:"black",vertexColors:!1}),sn=Si.createTicks();for(;sn.next();){const xn=sn.tick,wn=1===sn.kind?1:.6;if(_e&&(Wi=new Float32Array(6),Ln=0,D(xn,Nt-wn*nn-kn),D(xn,Ht+wn*nn+kn),Oe.add((0,_.Fc)(Wi,1===sn.kind?et:it))),Wi=new Float32Array(12),Ln=0,D(xn,Nt),D(xn,Nt-wn*nn),D(xn,Ht),D(xn,Ht+wn*nn),Oe.add((0,_.Fc)(Wi,$e)),1!==sn.kind)continue;const Ut=O(Si.format(xn,!0),un);Oe.add(ie(Ut,_t,xn,Nt-nn-un/2-Ut._height/2)),Oe.add(ie(Ut,_t,xn,Ht+nn+un/2+Ut._height/2))}const tn=bi.createTicks();for(;tn.next();){const xn=tn.tick,wn=1===tn.kind?1:.6;if(_e&&(Wi=new Float32Array(6),Ln=0,D(Pe+wn*nn+kn,xn),D(At-wn*nn-kn,xn),Oe.add((0,_.Fc)(Wi,1===tn.kind?et:it))),Wi=new Float32Array(12),Ln=0,D(Pe,xn),D(Pe+wn*nn,xn),D(At,xn),D(At-wn*nn,xn),Oe.add((0,_.Fc)(Wi,$e)),1!==tn.kind)continue;const Ut=O(bi.format(xn,!0),un);Oe.add(ie(Ut,_t,Pe+nn+un/2+Ut._width/2,xn)),Oe.add(ie(Ut,_t,At-nn-un/2-Ut._width/2,xn))}return!0}return!1}drawAxes(){if(this.getExtrasContainer("delete","axis"),!this.ctrl._axis)return!1;const K=this.getGeomBoundingBox(this._toplevel,this.superimpose?"original":void 0),ge=this.getExtrasContainer("create","axis"),ye=.02*Math.max(K.max.x-K.min.x,K.max.y-K.min.y,K.max.z-K.min.z),Pe=[0,0,0],At=["x","y","z"],Ht=["X","Y","Z"],Nt=["red","green","blue"],nn=this.isOrthoCamera(),un=this.ctrl.camera_kind??"perspective";if(2===this.ctrl._axis)for(let kn=0;kn<3;++kn){const cn=At[kn];K.min[cn]<=0&&K.max[cn]>=0||(Pe[kn]=(K.min[cn]+K.max[cn])/2)}for(let kn=0;kn<3;++kn){let Rs=function(O,ie){O._other_side=!1,O._axis_norm=ie??new L.Pq0(1,0,0),O._axis_flip=function(_e){const Oe=_e.dot(this._axis_norm)<0;this._other_side!==Oe&&(this._other_side=Oe,this.rotateY(Math.PI))}},oe=function(O,ie=-1){O._last_angle=ie,O._axis_flip=function(_e){let Oe=0;switch(this._axis_name){case"x":Oe=-Math.atan2(_e.y,_e.z);break;case"y":Oe=-Math.atan2(_e.z,_e.x);break;default:Oe=Math.atan2(_e.y,_e.x)}Oe=Math.round(Oe/Math.PI*2+2)%4,this._last_angle!==Oe&&(this.rotateX((Oe-this._last_angle)*Math.PI/2),this._last_angle=Oe)}};if(nn&&un.indexOf(Ht[kn])<0)continue;const cn=new Float32Array(6),In=Nt[kn],ci=At[kn],Pi=O=>{if(!O)return"0";const ie=Math.log10(Math.abs(O));if(ie<0){if(ie>-1)return O.toFixed(2);if(ie>-2)return O.toFixed(3)}else{if(ie<2)return O.toFixed(1);if(ie<4)return O.toFixed(0)}return O.toExponential(2)},Si=Pi(K.max[ci])+" "+Ht[kn];switch(cn[0]=K.min.x,cn[1]=K.min.y,cn[2]=K.min.z,cn[3]=K.min.x,cn[4]=K.min.y,cn[5]=K.min.z,kn){case 0:cn[3]=K.max.x;break;case 1:cn[4]=K.max.y;break;case 2:cn[5]=K.max.z}if(2===this.ctrl._axis)for(let O=0;O<6;++O)O%3!==kn&&(cn[O]=Pe[O%3]);const bi=new L.mrM({color:In});let Jn=(0,_.Fc)(cn,bi);Jn._no_clip=!0,ge.add(Jn);const Wi=new L.V9B({color:In,vertexColors:!1});if(0===Pe[kn]&&Pe[kn]>=K.min[ci]&&Pe[kn]<=K.max[ci]&&(2!==this.ctrl._axis||0===kn)){const O=nn?new L.tcD(.25*ye):new L.Gu$(.25*ye);Jn=new L.eaF(O,Wi),Jn.translateX(0===kn?Pe[0]:cn[0]),Jn.translateY(1===kn?Pe[1]:cn[1]),Jn.translateZ(2===kn?Pe[2]:cn[2]),Jn._no_clip=!0,ge.add(Jn)}let Ln=new L._l5(Si,{font:_.Te,size:ye,height:0,curveSegments:5});Jn=new L.eaF(Ln,Wi),Jn._no_clip=!0;let D=(new L.NRn).setFromObject(Jn);if(Ln.translate(.5*-D.max.x,-D.max.y/2,0),Jn.translateX(cn[3]),Jn.translateY(cn[4]),Jn.translateZ(cn[5]),Jn._axis_name=ci,0===kn)nn&&un.indexOf("OX")>0?oe(Jn,0):(nn?un.indexOf("OY")>0:this.ctrl._yup)?Rs(Jn,new L.Pq0(0,0,-1)):(Rs(Jn,new L.Pq0(0,1,0)),Jn.rotateX(Math.PI/2)),Jn.translateX(.5*ye+.5*D.max.x);else if(1===kn)(nn?un.indexOf("OY")>0:this.ctrl._yup)?(oe(Jn,2),Jn.rotateX(-Math.PI/2),Jn.rotateY(-Math.PI/2),Jn.translateX(.5*ye+.5*D.max.x)):(Rs(Jn),Jn.rotateX(Math.PI/2),Jn.rotateY(-Math.PI/2),Jn.translateX(.5*-D.max.x-.5*ye));else if(2===kn){if(nn?un.indexOf("OZ")<0:this.ctrl._yup){const O=nn&&(un.indexOf("ZOX")>0||un.indexOf("ZNOX")>0);Rs(Jn,O?new L.Pq0(0,-1,0):void 0),Jn.rotateY(-Math.PI/2),O&&Jn.rotateX(-Math.PI/2)}else oe(Jn),Jn.rotateX(Math.PI/2),Jn.rotateZ(Math.PI/2);Jn.translateX(.5*ye+.5*D.max.x)}if(ge.add(Jn),Ln=new L._l5(Pi(K.min[ci]),{font:_.Te,size:ye,height:0,curveSegments:5}),Jn=new L.eaF(Ln,Wi),Jn._no_clip=!0,D=(new L.NRn).setFromObject(Jn),Ln.translate(.5*-D.max.x,-D.max.y/2,0),Jn._axis_name=ci,Jn.translateX(cn[0]),Jn.translateY(cn[1]),Jn.translateZ(cn[2]),0===kn)nn&&un.indexOf("OX")>0?oe(Jn,0):(nn?un.indexOf("OY")>0:this.ctrl._yup)?Rs(Jn,new L.Pq0(0,0,-1)):(Rs(Jn,new L.Pq0(0,1,0)),Jn.rotateX(Math.PI/2)),Jn.translateX(.5*-ye-.5*D.max.x);else if(1===kn)(nn?un.indexOf("OY")>0:this.ctrl._yup)?(oe(Jn,2),Jn.rotateX(-Math.PI/2),Jn.rotateY(-Math.PI/2),Jn.translateX(.5*-D.max.x-.5*ye)):(Rs(Jn),Jn.rotateX(Math.PI/2),Jn.rotateY(-Math.PI/2),Jn.translateX(.5*D.max.x+.5*ye));else if(2===kn){if(nn?un.indexOf("OZ")<0:this.ctrl._yup){const O=nn&&(un.indexOf("ZOX")>0||un.indexOf("ZNOX")>0);Rs(Jn,O?new L.Pq0(0,-1,0):void 0),Jn.rotateY(-Math.PI/2),O&&Jn.rotateX(-Math.PI/2)}else oe(Jn),Jn.rotateX(Math.PI/2),Jn.rotateZ(Math.PI/2);Jn.translateX(.5*-D.max.x-.5*ye)}ge.add(Jn)}return!0}setAxesDraw(K){return this.ctrl._axis="toggle"===K?this.ctrl._axis?0:1:"number"==typeof K?K:K?1:0,this.drawAxesAndOverlay()}setAutoRotate(K){this.ctrl.project||(void 0!==K&&(this.ctrl.rotate=K),this.autorotate(2.5))}toggleWireFrame(){this.ctrl.wireframe=!this.ctrl.wireframe,this.changedWireFrame()}setWireFrame(K){this.ctrl.wireframe=!!K,this.changedWireFrame()}setShowTop(K){this.ctrl.showtop=!!K,this.redrawObject("same")}changedClipping(K=-1){(K<0||this.ctrl.clip[K]?.enabled)&&this.updateClipping(!1,!0)}changedDepthTest(){if(!this._toplevel)return;const K=this.ctrl.depthTest;this._toplevel.traverse(ge=>{ge instanceof L.eaF&&(ge.material.depthTest=K)}),this.render3D(0)}changedDepthMethod(K){if(delete this._last_camera_position,"norender"!==K)return this.render3D()}updateClipping(K,ge){if(this._renderer?.jsroot_render3d===x.constants.Render3D.SVG)return;this._clipPlanes||(this._clipPlanes=[new L.Zcv(new L.Pq0(1,0,0),0),new L.Zcv(new L.Pq0(0,this.ctrl._yup?-1:1,0),0),new L.Zcv(new L.Pq0(0,0,this.ctrl._yup?1:-1),0)]);const ye=this.ctrl.clip,Pe=[-1*ye[0].value,ye[1].value,(this.ctrl._yup?-1:1)*ye[2].value],At=this.getExtrasContainer(this.ctrl.clipVisualize?"":"delete","clipping");let Ht=[],Nt=!1,nn=this.ctrl.clipIntersect?16:0;for(let In=0;In<3;++In)if(ye[In].enabled&&(nn+=2<{!In._no_clip&&void 0!==In.material?.clippingPlanes&&(In.material.clippingPlanes!==Ht&&(In.material.clipIntersection=kn,In.material.clippingPlanes=Ht,In.material.needsUpdate=!0),void 0!==In.material.emissive&&In.material.side!==cn&&(In.material.side=cn,In.material.needsUpdate=!0))}),this.ctrl.doubleside=un,K||this.render3D(0),Nt}setCompleteHandler(K){this._complete_handler=K}completeDraw(K){var ge=this;return(0,Te.A)(function*(){let ye=!1,Pe=!1,At=!0;if(!ge.ctrl)return console.warn("ctrl object does not exist in completeDraw - something went wrong"),ge;let Ht=Promise.resolve(!0);return ge._clones?(ge._first_drawing||ge._full_redrawing)&&ge.ctrl.tracks&&ge.geo_manager&&(Ht=ge.drawExtras(ge.geo_manager.fTracks,"/Tracks")):(At=!1,ge.getExtrasContainer("delete"),Ht=ge.drawExtras((ge._main_painter?ge._main_painter._extraObjects:null)||ge._extraObjects,"",!1)),Ht.then(()=>{if(ge._full_redrawing&&(ge.adjustCameraPosition("first"),ge._full_redrawing=!1,Pe=!0,ge.changedDepthMethod("norender")),ge._first_drawing&&(ge.adjustCameraPosition("first"),ge.showDrawInfo(),ge._first_drawing=!1,ye=!0,Pe=!0),ye&&ge.completeScene(),Pe&&(ge.ctrl.trans_radial||ge.ctrl.trans_z)&&ge.changedTransformation("norender"),Pe)return ge.drawAxesAndOverlay(!0)}).then(()=>{if(ge._scene.overrideMaterial=null,void 0!==ge._provided_more_nodes&&(ge.appendMoreNodes(ge._provided_more_nodes,!0),delete ge._provided_more_nodes),At)return ge.getExtrasContainer("delete"),ge.drawExtras(ge._main_painter?._extraObjects||ge._extraObjects,"",!1)}).then(()=>(ge.updateClipping(!0),ge.render3D(0,!0),K&&(0,ve.Rh)(),ge.addOrbitControls(),ye&&!ge.isBatchMode()&&(0===ge.ctrl.highlight&&(ge.ctrl.highlight=ge.first_render_tm<1e3),0===ge.ctrl.highlight_scene&&(ge.ctrl.highlight_scene=ge.ctrl.highlight),ge._webgl&&ge.ctrl.rotate&&!ge.ctrl.project&&ge.autorotate(2.5),ge._webgl&&ge.ctrl.show_controls&&ge.showControlGui(!0)),ge.setAsMainPainter(),(0,x.isFunc)(ge._resolveFunc)&&(ge._resolveFunc(ge),delete ge._resolveFunc),(0,x.isFunc)(ge._complete_handler)&&ge._complete_handler(ge),ge._draw_nodes_again?ge.startDrawGeometry():ge._drawing_ready=!0,ge))})()}isDrawingReady(){return this._drawing_ready||!1}removeDrawnNode(K){if(!this._draw_nodes)return;const ge=[];for(let ye=0;ye=0&&this._main_painter._slave_painters.splice(Pe,1)}for(let Pe=0;Pege(this)),delete this._render_resolveFuncs),this.superimpose||(0,_.yW)(this._renderer),this.ensureBloom(!1),delete this._effectComposer,delete this._scene,delete this._scene_size,this._scene_width=0,this._scene_height=0,this._renderer=null,this._toplevel=null,delete this._full_geom,delete this._fog,delete this._camera,delete this._camera0pos,delete this._lookat,delete this._selected_mesh,this._clones&&this._clones_owner&&this._clones.cleanup(this._draw_nodes,this._build_shapes),delete this._clones,delete this._clones_owner,delete this._draw_nodes,delete this._drawing_ready,delete this._build_shapes,delete this._new_draw_nodes,delete this._new_append_nodes,delete this._last_camera_position,this.first_render_tm=0,this.last_render_tm=0,this.changeStage(0,"cleanup"),delete this.drawing_log,delete this._gui,delete this._controls,delete this._context_menu,delete this._toolbar,delete this._worker}performResize(K,ge){return!(this._scene_width===K&&this._scene_height===ge||K<10||ge<10||(this._scene_width=K,this._scene_height=ge,this._camera&&this._renderer&&(this._camera.isPerspectiveCamera?this._camera.aspect=this._scene_width/this._scene_height:this._camera.isOrthographicCamera&&this.adjustCameraPosition(!0,!0),this._camera.updateProjectionMatrix(),this._renderer.setSize(this._scene_width,this._scene_height,!this._fit_main_area),this._effectComposer?.setSize(this._scene_width,this._scene_height),this._bloomComposer?.setSize(this._scene_width,this._scene_height),this.isStage(0)&&this.render3D()),0))}checkResize(K){const ge=this.getCanvPainter();if(ge&&!ge.checkCanvasResize(K))return!1;const ye=this.getSizeFor3d();return this.performResize(ye.width,ye.height)}toggleEnlarge(){this.enlargeMain("toggle")&&this.checkResize()}accessObjectWireFrame(K,ge){if(K?.material)return void 0!==ge&&K.stack&&(K.material.wireframe=ge),K.material.wireframe}changedWireFrame(){this._scene?.traverse(K=>this.accessObjectWireFrame(K,this.ctrl.wireframe)),this.render3D()}updateObject(K){if("same"===K||!K?._typename)return!1;if(K===this.getObject())return!0;let ge;return K._typename===V&&(ge=K,K=K.fMasterVolume),0===K._typename.indexOf(x.clTGeoVolume)&&(K={_typename:x.clTGeoNode,fVolume:K,fName:K.fName,$geoh:K.$geoh,_proxy:!0}),this.geo_manager&&ge?(this.geo_manager=ge,this.assignObject(K),this._did_update=!0,!0):!!this.matchObjectType(K._typename)&&(this.assignObject(K),this._did_update=!0,!0)}clearDrawings(){this._clones&&this._clones_owner&&this._clones.cleanup(this._draw_nodes,this._build_shapes),delete this._clones,delete this._clones_owner,delete this._draw_nodes,delete this._drawing_ready,delete this._build_shapes,delete this._extraObjects,delete this._clipCfg,(0,_.G1)(this._toplevel,!0),this._full_redrawing=!0}redraw(){if(this.superimpose){const ye=Ge(this.getMainPainter());ye&&(this._toplevel.scale.set(ye.scale_x??1,ye.scale_y??1,ye.scale_z??1),this._toplevel.position.set(ye.offset_x??0,ye.offset_y??0,ye.offset_z??0),this._toplevel.updateMatrix(),this._toplevel.updateMatrixWorld())}if(this._did_update)return this.startRedraw();const K=this._on_pad?this.getFramePainter():null;if(!K)return Promise.resolve(!1);const ge=K.getSizeFor3d(K.access3dKind());return K.apply3dSize(ge),this.performResize(ge.width,ge.height)}redrawObject(K,ge){return!!this.updateObject(K,ge)&&this.startRedraw()}startRedraw(K){if(K)return this._redraw_timer&&clearTimeout(this._redraw_timer),void(this._redraw_timer=setTimeout(()=>this.startRedraw(),K));delete this._redraw_timer,delete this._did_update,this.clearDrawings();const ge=this.getGeometry();return this.prepareObjectDraw(ge,this.geo_manager?ge.fName:"")}static draw(K,ge,ye){return(0,Te.A)(function*(){if(!ge)return null;let Pe=null,At=null,Ht="",Nt=!1;if("fShapeBits"in ge&&"fShapeId"in ge?(Pe=ge,ge=null):ge._typename===T||ge._typename===x.clTGeoVolume?Pe=ge.fShape:ge._typename===b||ge._typename===fe?(Pe=ge.fShape,Nt=!0):ge._typename===V?Pe=ge.fMasterVolume.fShape:ge._typename===P?(At=ge.fMarker,Ht="/Marker",ge=function we(xt){const K=(0,x.create)(x.clTGeoVolume);(0,Z.bg)(K,Z.Wv.kVisDaughters,!0),K.$geoh=!0,K.fName="";const ge=(0,x.create)(x.clTGeoNodeMatrix);ge.fName=xt.fVolume1.fName||"Overlap1",ge.fMatrix=xt.fMatrix1,ge.fVolume=xt.fVolume1;const ye=(0,x.create)(x.clTGeoNodeMatrix);return ye.fName=xt.fVolume2.fName||"Overlap2",ye.fMatrix=xt.fMatrix2,ye.fVolume=xt.fVolume2,K.fNodes=(0,x.create)(x.clTList),K.fNodes.Add(ge),K.fNodes.Add(ye),K}(ge),ye||(ye="wire")):"fVolume"in ge?ge.fVolume&&(Pe=ge.fVolume.fShape):ge=null,(0,x.isStr)(ye)&&0===ye.indexOf("comp")&&Pe&&Pe._typename===Z.HO&&Pe.fNode){let un=1;"x"===(ye=ye.slice(4))[0]&&(un=999,ye=ye.slice(1)+"_vislvl999"),ge=je(Pe,un)}if(!ge&&Pe&&(ge=Object.assign((0,x.create)(x.clTNamed),{_typename:b,fTrans:null,fShape:Pe,fRGBA:[0,1,0,1],fElements:null,fRnrSelf:!0})),!ge)return null;const nn=Sn(K,ge,ye);return nn.ctrl.is_main&&!ge.$geo_painter&&(ge.$geo_painter=nn),!nn.ctrl.is_main&&nn.ctrl.project&&ge.$geo_painter&&(nn._main_painter=ge.$geo_painter,nn._main_painter._slave_painters.push(nn)),Nt&&(!nn.ctrl.vislevel||nn.ctrl.vislevel<9)&&(nn.ctrl.vislevel=9),At&&(nn._splitColors=!0,nn.addExtra(At,Ht)),nn.loadMacro(nn.ctrl.script_name).then(un=>nn.prepareObjectDraw(un.obj,un.prefix))})()}}let Cn=!1;function yn(){function xt(K,ge){return`.jsroot .img_${K} { display: inline-block; height: 16px; width: 16px; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQ${ge}'); }`}!Cn&&(0,x.isFunc)(x.internals.addDrawFunc)&&(Cn=!0,x.internals.addDrawFunc({name:W,icon_get:zi,icon_click:ai}),x.internals.addDrawFunc({name:z,icon_get:zi,icon_click:ai})),(0,ve.fz)(`\n${xt("geoarb8","CAAAAAA6mKC9AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAJ0Uk5TAAB2k804AAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAAAEgAAABIAEbJaz4AAAB1SURBVBjTdY6rEYAwEETTy6lzK8/Fo+Jj18dTAjUgaQGfGiggtRDE8RtY93Zu514If2nzk2ux9c5TZkwXbiWTUavzws69oBfpYBrMT4r0Jhsw+QfRgQSw+CaKRsKsnV+SaF8MN49RBSgPUxO85PMl5n4tfGUH2gghs2uPAeQAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTUtMTItMDJUMTQ6MjY6MjkrMDE6MDDARtd2AAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE0LTExLTEyVDA4OjM5OjE5KzAxOjAwO3ydwwAAAABJRU5ErkJggg==")}\n${xt("geocombi","CAQAAAC1+jfqAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAJiS0dEAP+Hj8y/AAAACXBIWXMAAABIAAAASABGyWs+AAAAlUlEQVQoz5VQMQ4CMQyzEUNnBqT7Bo+4nZUH8gj+welWJsQDkHoCEYakTXMHSFiq2jqu4xRAEl2A7w4myWzpzCSZRZ658ldKu1hPnFsequBIc/hcLli3l52MAIANtpWrDsv8waGTW6BPuFtsdZArXyFuj33TQpazGEQF38phipnLgItxRcAoOeNpzv4PTXnC42fb//AGI5YqfQAU8dkAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTUtMTItMDJUMTQ6MjY6MjkrMDE6MDDARtd2AAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE0LTExLTEyVDA4OjM5OjE5KzAxOjAwO3ydwwAAAABJRU5ErkJggg==")}\n${xt("geocone","CAAAAAA6mKC9AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAJ0Uk5TAAB2k804AAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAAAEgAAABIAEbJaz4AAACRSURBVBjTdY+xDcNACEVvEm/ggo6Olva37IB0C3iEzJABvAHFTXBDeJRwthMnUvylk44vPjxK+afeokX0flQhJO7L4pafSOMxzaxIKc/Tc7SIjNLyieyZSjBzc4DqMZI0HTMonWPBNlogOLeuewbg9c0hOiIqH7DKmTCuFykjHe4XOzQ58XVMGxzt575tKzd6AX9yMkcWyPlsAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTEyLTAyVDE0OjI2OjI5KzAxOjAwwEbXdgAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNC0xMS0xMlQwODozOToxOSswMTowMDt8ncMAAAAASUVORK5CYII=")}\n${xt("geogtra","CAAAAAA6mKC9AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAJ0Uk5TAAB2k804AAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAAAEgAAABIAEbJaz4AAACCSURBVBjTVc+hDQMxDAVQD1FyqCQk0MwsCwQEG3+eCW6B0FvheDboFMGepTlVitPP/Cz5y0S/mNkw8pySU9INJDDH4vM4Usm5OrQXasXtkA+tQF+zxfcDY8EVwgNeiwmA37TEccK5oLOwQtuCj7BM2Fq7iGrxVqJbSsH+GzXs+798AThwKMh3/6jDAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTEyLTAyVDE0OjI2OjI5KzAxOjAwwEbXdgAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNC0xMS0xMlQwODozOToxOSswMTowMDt8ncMAAAAASUVORK5CYII=")}\n${xt("geomedium","BAMAAADt3eJSAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAABVQTFRFAAAAAAAAMDAww8PDWKj/////gICAG0/C4AAAAAF0Uk5TAEDm2GYAAAABYktHRAX4b+nHAAAACXBIWXMAAABIAAAASABGyWs+AAAAXElEQVQI102MwRGAMAgEuQ6IDwvQCjQdhAl/H7ED038JHhkd3dcOLAgESFARaAqnEB3yrj6QSEym1RbbOKinN+8q2Esui1GaX7VXSi4RUbxHRbER8X6O5Pg/fLgBBzMN8HfXD3AAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTUtMTItMDJUMTQ6MjY6MjkrMDE6MDDARtd2AAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE0LTExLTEyVDA4OjM5OjE5KzAxOjAwO3ydwwAAAABJRU5ErkJggg==")}\n${xt("geopara","CAAAAAA6mKC9AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAJ0Uk5TAAB2k804AAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAAAEgAAABIAEbJaz4AAABtSURBVBjTY2DADq5MT7+CzD9kaKjp+QhJYIWqublhMbKAgpOnZxWSQJdsVJTndCSBKoWoAM/VSALpqlEBAYeQBKJAAsi2BGgCBZDdEWUYFZCOLFBlGOWJ7AyGFeaotjIccopageK3R12PGHABACTYHWd0tGw6AAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTEyLTAyVDE0OjI2OjI5KzAxOjAwwEbXdgAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNC0xMS0xMlQwODozOToxOSswMTowMDt8ncMAAAAASUVORK5CYII=")}\n${xt("georotation","CAQAAAC1+jfqAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAJiS0dEAP+Hj8y/AAAACXBIWXMAAABIAAAASABGyWs+AAAAiklEQVQoz2NgYGBgYGDg+A/BmIAFIvyDEbs0AwMTAwHACLPiB5QVBTdpGSOSCZjScDcgc4z+32BgYGBgEGIQw3QDLkdCTZD8/xJFeBfDVxQT/j9n/MeIrMCNIRBJwX8GRuzGM/yHKMAljeILNFOuMTyEisEUMKIqucrwB2oyIhyQpH8y/MZrLWkAAHFzIHIc0Q5yAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTEyLTAyVDE0OjI2OjI5KzAxOjAwwEbXdgAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNC0xMS0xMlQwODozOToxOSswMTowMDt8ncMAAAAASUVORK5CYII=")}\n${xt("geotranslation","CAAAAAA6mKC9AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAJ0Uk5TAAB2k804AAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAAAEgAAABIAEbJaz4AAABESURBVBjTY2DgYGAAYzjgAAIQgSLAgSwAAcrWUUCAJBAVhSpgBAQumALGCJPAAsriHIS0IAQ4UAU4cGphQBWwZSAOAADGJBKdZk/rHQAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNS0xMi0wMlQxNDoyNjoyOSswMTowMMBG13YAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTQtMTEtMTJUMDg6Mzk6MTkrMDE6MDA7fJ3DAAAAAElFTkSuQmCC")}\n${xt("geotrd2","CAAAAAA6mKC9AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAJ0Uk5TAAB2k804AAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAAAEgAAABIAEbJaz4AAABsSURBVBjTbY+xDcAwCARZx6UraiaAmpoRvIIb75PWI2QITxIiRQKk0CCO/xcA/NZ9LRs7RkJEYg3QxczUwoGsXiMAoe8lAelqRWFNKpiNXZLAalRDd0f3TMgeMckABKsCDmu+442RddeHz9cf9jUkW8smGn8AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTUtMTItMDJUMTQ6MjY6MjkrMDE6MDDARtd2AAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE0LTExLTEyVDA4OjM5OjE5KzAxOjAwO3ydwwAAAABJRU5ErkJggg==")}\n${xt("geovolume","BAMAAADt3eJSAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAB5QTFRFAAAAMDAw///Ay8uc/7+Q/4BgmJh4gIDgAAD/////CZb2ugAAAAF0Uk5TAEDm2GYAAAABYktHRAnx2aXsAAAACXBIWXMAAABIAAAASABGyWs+AAAAR0lEQVQI12NggAEBIBAEQgYGQUYQAyIGIhgwAZMSGCgwMJuEKimFOhswsKWAGG4JDGxJIBk1EEO9o6NIDVkEpgauC24ODAAASQ8Pkj/retYAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTUtMTItMDJUMTQ6MjY6MjkrMDE6MDDARtd2AAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE0LTExLTEyVDA4OjM5OjE5KzAxOjAwO3ydwwAAAABJRU5ErkJggg==")}\n${xt("geoassembly","BAMAAADt3eJSAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAA9QTFRFAAAAMDAw/wAAAAD/////jEo0BQAAAAF0Uk5TAEDm2GYAAAABYktHRASPaNlRAAAACXBIWXMAAABIAAAASABGyWs+AAAAOklEQVQI12NggAFGRgEgEBRgEBSAMhgYGQQEgAR+oARGDIwCIAYjUL0A2DQQg9nY2ABVBKoGrgsDAADxzgNboMz8zQAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNS0xMi0wMlQxNDoyNjoyOSswMTowMMBG13YAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTQtMTEtMTJUMDg6Mzk6MTkrMDE6MDA7fJ3DAAAAAElFTkSuQmCC")}\n${xt("geocomposite","CAAAAAA6mKC9AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAJ0Uk5TAAB2k804AAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAAAEgAAABIAEbJaz4AAABuSURBVBjTY2AgF2hqgQCCr+0V4O7hFmgCF7CJyKysKkmxhfGNLaw9SppqAi2gfMuY5Agrl+ZaC6iAUXRJZX6Ic0klTMA5urapPFY5NRcmYKFqWl8S5RobBRNg0PbNT3a1dDGH8RlM3LysTRjIBwAG6xrzJt11BAAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNS0xMi0wMlQxNDoyNjoyOSswMTowMMBG13YAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTQtMTEtMTJUMDg6Mzk6MTkrMDE6MDA7fJ3DAAAAAElFTkSuQmCC")}\n${xt("geoctub","CAAAAAA6mKC9AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAJ0Uk5TAAB2k804AAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAAAEgAAABIAEbJaz4AAACESURBVBjTdc+xDcMwDARA7cKKHTuWX37LHaw+vQbQAJomA7j2DB7FhCMFCZB8pxPwJEv5kQcZW+3HencRBekak4aaMQIi8YJdAQ1CMeE0UBkuaLMETklQ9Alhka0JzzXWqLVBuQYPpWcVuBbZjZafNRYcDk9o/b07bvhINz+/zxu1/M0FSRcmAk/HaIcAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTUtMTItMDJUMTQ6MjY6MjkrMDE6MDDARtd2AAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE0LTExLTEyVDA4OjM5OjE5KzAxOjAwO3ydwwAAAABJRU5ErkJggg==")}\n${xt("geohype","CAAAAAA6mKC9AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAJ0Uk5TAAB2k804AAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAAAEgAAABIAEbJaz4AAACKSURBVBjTbU+rFQQhDKQSDDISEYuMREfHx6eHKMpYuf5qoIQt5bgDblfcuJk3nySEhSvceDV3c/ejT66lspopE9pXyIlkCrHMBACpu1DClekQAREi/loviCnF/NhRwJLaQ6hVhPjB8bOCsjlnNnNl0FWJVWxAqGzHONRHpu5Ml+nQ+8GzNW9n+Is3eg80Nk0iiwoAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTUtMTItMDJUMTQ6MjY6MjkrMDE6MDDARtd2AAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE0LTExLTEyVDA4OjM5OjE5KzAxOjAwO3ydwwAAAABJRU5ErkJggg==")}\n${xt("geomixture","BAMAAADt3eJSAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAACFQTFRFAAAAAAAAKysrVVUA//8B//8AgICAqqpV398gv79A////VYJtlwAAAAF0Uk5TAEDm2GYAAAABYktHRApo0PRWAAAACXBIWXMAAABIAAAASABGyWs+AAAAXklEQVQI12NgwASCQsJCgoZAhoADq1tKIJAhEpDGxpYIZKgxsLElgBhibAkOCY4gKTaGkPRGIEPUIYEBrEaAIY0tDawmgYWNgREkkjCVjRWkWCUhLY0FJCIIBljsBgCZTAykgaRiRwAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNS0xMi0wMlQxNDoyNjoyOSswMTowMMBG13YAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTQtMTEtMTJUMDg6Mzk6MTkrMDE6MDA7fJ3DAAAAAElFTkSuQmCC")}\n${xt("geopcon","CAAAAAA6mKC9AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAJ0Uk5TAAB2k804AAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAAAEgAAABIAEbJaz4AAACJSURBVBjTdc+hGcQwCIZhhjl/rkgWiECj8XgGyAbZoD5LdIRMkEnKkV575n75Pp8AgLU54dmh6mauelyAL2Qzxfe2sklioq6FacFAcRFXYhwJHdU5rDD2hEYB/CmoJVRMiIJqgtENuoqA8ltAlYAqRH4d1tGkwzTqN2gA7Nv+fUwkgZ/3mg34txM+szzATJS1HQAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNS0xMi0wMlQxNDoyNjoyOSswMTowMMBG13YAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTQtMTEtMTJUMDg6Mzk6MTkrMDE6MDA7fJ3DAAAAAElFTkSuQmCC")}\n${xt("geosphere","CAAAAAA6mKC9AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAJ0Uk5TAAB2k804AAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAAAEgAAABIAEbJaz4AAACFSURBVBjTdY+xEcQwCAQp5QNFjpQ5vZACFBFTADFFfKYCXINzlUAJruXll2ekxDAEt9zcANFbXb2mqm56dxsymAH0yccAJaeNi0h5QGyfxGJmivMPjj0nmLsbRmyFCss3rlbpcUjfS8wLUNRcJyCF6uqg2IvYCnoKC7f1kSbA6riTz7evfwj3Ml+H3KBqAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTEyLTAyVDE0OjI2OjI5KzAxOjAwwEbXdgAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNC0xMS0xMlQwODozOToxOSswMTowMDt8ncMAAAAASUVORK5CYII=")}\n${xt("geotrap","CAAAAAA6mKC9AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAJ0Uk5TAAB2k804AAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAAAEgAAABIAEbJaz4AAAB5SURBVBjTbY+hFYAwDETZB1OJi4yNPp0JqjtAZ2AELL5DdABmIS2PtLxHXH7u7l2W5W+uHMHpGiCHLYR1yw4SCZMIXBOJWVSjK7QDDAu4g8OBmAKK4sAEDdR3rw8YmcUcrEijKKhl7lN1IQPn9ExlgU6/WEyc75+5AYK0KY5oHBDfAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTEyLTAyVDE0OjI2OjI5KzAxOjAwwEbXdgAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNC0xMS0xMlQwODozOToxOSswMTowMDt8ncMAAAAASUVORK5CYII=")}\n${xt("geotubeseg","CAAAAAA6mKC9AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAJ0Uk5TAAB2k804AAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAAAEgAAABIAEbJaz4AAACBSURBVBjTdc+hEcQwDARA12P6QFBQ9LDwcXEVkA7SQTr4BlJBakgpsWdsh/wfux3NSCrlV86Mlrxmz1pBWq3bAHwETohxABVmDZADQp1BE+wDNnGywzHgmHDOreJNTDH3Xn3CVX0dpu2MHcIFBkYp/gKsQ8SCQ72V+36/+2aWf3kAQfgshnpXF0wAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTUtMTItMDJUMTQ6MjY6MjkrMDE6MDDARtd2AAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE0LTExLTEyVDA4OjM5OjE5KzAxOjAwO3ydwwAAAABJRU5ErkJggg==")}\n${xt("geoxtru","CAAAAAA6mKC9AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAJ0Uk5TAAB2k804AAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAAAEgAAABIAEbJaz4AAABcSURBVBjTY2AgEmhpeZV56vmWwQW00QUYwAJlSAI6XmVqukh8PT1bT03PchhXX09Pr9wQIQDiJ+ZowgWAXD3bck+QQDlCQTkDQgCoxA/ERBKwhbDglgA1lDMQDwCc/Rvq8nYsWgAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNS0xMi0wMlQxNDoyNjoyOSswMTowMMBG13YAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTQtMTEtMTJUMDg6Mzk6MTkrMDE6MDA7fJ3DAAAAAElFTkSuQmCC")}\n${xt("geobbox","CAAAAAA6mKC9AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAJ0Uk5TAAB2k804AAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAAAEgAAABIAEbJaz4AAAB/SURBVBjTVc+hEYAwDAXQLlNRF1tVGxn9NRswQiSSCdgDyQBM0FlIIb2WuL77uf6E8E0N02wKYRwDciTKREVvB04GuZSyOMCABRB1WGzF3uDNQTvs/RcDtJXT4fSEXA5XoiQt0ttVSm8Co2psIOvoimjAOqBmFtH5wEP2373TPIvTK1nrpULXAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTEyLTAyVDE0OjI2OjI5KzAxOjAwwEbXdgAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNC0xMS0xMlQwODozOToxOSswMTowMDt8ncMAAAAASUVORK5CYII=")}\n${xt("geoconeseg","CAAAAAA6mKC9AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAJ0Uk5TAAB2k804AAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAAAEgAAABIAEbJaz4AAAB4SURBVBjTdc6hEcAgDAXQbFNZXHQkFlkd/30myAIMwAws0gmYpVzvoFyv/S5P/B+izzQ387ZA2pkDnvsU1SQLVIFrOM4JFmEaYp2gCQbmPEGODhJ8jt7Am47hwgrzInGAifa/elUZnQLY00iU30BZAV+BWi2VfnIBv1osbHH8jX0AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTUtMTItMDJUMTQ6MjY6MjkrMDE6MDDARtd2AAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE0LTExLTEyVDA4OjM5OjE5KzAxOjAwO3ydwwAAAABJRU5ErkJggg==")}\n${xt("geoeltu","CAAAAAA6mKC9AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAJ0Uk5TAAB2k804AAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAAAEgAAABIAEbJaz4AAACGSURBVBjTdY+hFYUwDEU7xq9CIXC4uNjY6KczQXeoYgVMR2ABRmCGjvIp/6dgiEruueedvBDuOR57LQnKyc8CJmKO+N8bieIUPtmBWjIIx8XDBHYCipsnql1g2D0UP2OoDqwBncf+RdZmzFMHizRjog7KZYzawd4Ay93lEAPWR7WAvNbwMl/XwSxBV8qCjgAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNS0xMi0wMlQxNDoyNjoyOSswMTowMMBG13YAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTQtMTEtMTJUMDg6Mzk6MTkrMDE6MDA7fJ3DAAAAAElFTkSuQmCC")}\n${xt("geomaterial","CAQAAAC1+jfqAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAJiS0dEAP+Hj8y/AAAACXBIWXMAAABIAAAASABGyWs+AAAAbElEQVQoz62QMRbAIAhDP319Xon7j54qHSyCtaMZFCUkRjgDIdRU9yZUCfg8ut5aAHdcxtoNurmgA3ABNKIR9KimhSukPe2qxcCYC0pfFXx/aFWo7i42KKItOpopqvvnLzJmtlZTS7EfGAfwAM4EQbLIGV0sAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTEyLTAyVDE0OjI2OjI5KzAxOjAwwEbXdgAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNC0xMS0xMlQwODozOToxOSswMTowMDt8ncMAAAAASUVORK5CYII=")}\n${xt("geoparab","CAAAAAA6mKC9AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAJ0Uk5TAAB2k804AAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAAAEgAAABIAEbJaz4AAAB/SURBVBjTbY+xDYAwDAQ9UAp3X7p0m9o9dUZgA9oMwAjpMwMzMAnYBAQSX9mn9+tN9KOtzsWsLOvYCziUGNX3nnCLJRzKPgeYrhPW7FJNLUB3YJazYKQKTnBaxgXRzNmJcrt7XCHQp9kEB1wfELEir/KGj4Foh8A+/zW1nf51AFabKZuWK+mNAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTEyLTAyVDE0OjI2OjI5KzAxOjAwwEbXdgAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNC0xMS0xMlQwODozOToxOSswMTowMDt8ncMAAAAASUVORK5CYII=")}\n${xt("geopgon","CAAAAAA6mKC9AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAJ0Uk5TAAB2k804AAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAAAEgAAABIAEbJaz4AAABwSURBVBjTY2AgDlwAAzh3sX1sPRDEeuwDc+8V2dsHgQQ8LCzq74HkLSzs7Yva2tLt7S3sN4MNiDUGKQmysCi6BzWkzcI+PdY+aDPCljZlj1iFOUjW1tvHLjYuQhJIt5/DcAFZYLH9YnSn7iPST9gAACbsJth21haFAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTEyLTAyVDE0OjI2OjI5KzAxOjAwwEbXdgAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNC0xMS0xMlQwODozOToxOSswMTowMDt8ncMAAAAASUVORK5CYII=")}\n${xt("geotorus","CAAAAAA6mKC9AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAJ0Uk5TAAB2k804AAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAAAEgAAABIAEbJaz4AAACGSURBVBjTjY+hFcMwDEQ9SkFggXGIoejhw+LiGkBDlHoAr+AhgjNL5byChuXeE7gvPelUyjOds/f5Zw0ggfj5KVCPMBWeyx+SbQ1XUriAC2XfpWWxjQQEZasRtRHiCUAj3qN4JaolUJppzh4q7dUTdHFXW/tH9OuswWm3nI7tc08+/eGLl758ey9KpKrNOQAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNS0xMi0wMlQxNDoyNjoyOSswMTowMMBG13YAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTQtMTEtMTJUMDg6Mzk6MTkrMDE6MDA7fJ3DAAAAAElFTkSuQmCC")}\n${xt("geotrd1","CAAAAAA6mKC9AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAJ0Uk5TAAB2k804AAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAAAEgAAABIAEbJaz4AAAB/SURBVBjTbc6xDQMhDAVQ9qH6lUtal65/zQ5IDMAMmYAZrmKGm4FJzlEQQUo+bvwkG4fwm9lbodV7w40Y4WGfSxQiXiJlQfZOjWRb8Ioi3tKuBQMCo7+9N72BzPsfAuoTdUP9QN8wgOQwvsfWmHzpeT5BKydMNW0nhJGvGf7mAc5WKO9e5N2dAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTEyLTAyVDE0OjI2OjI5KzAxOjAwwEbXdgAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNC0xMS0xMlQwODozOToxOSswMTowMDt8ncMAAAAASUVORK5CYII=")}\n${xt("geotube","CAAAAAA6mKC9AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAJ0Uk5TAAB2k804AAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAAAEgAAABIAEbJaz4AAACGSURBVBjTRc+tEcAwCAXgLFNbWeSzSDQazw5doWNUZIOM0BEyS/NHy10E30HyklKvWnJ+0le3sJoKn3X2z7GRuvG++YRyMMDt0IIKUXMzxbnugJi5m9K1gNnGBOUFElAWGMaKIKI4xoQggl00gT+A9hXWgDwnfqgsHRAx2m+8bfjfdyrx5AtsSjpwu+M2RgAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNS0xMi0wMlQxNDoyNjoyOSswMTowMMBG13YAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTQtMTEtMTJUMDg6Mzk6MTkrMDE6MDA7fJ3DAAAAAElFTkSuQmCC")}\n${xt("evepoints","BAMAAADt3eJSAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAABJQTFRF////n4mJcEdKRDMzcEdH////lLE/CwAAAAF0Uk5TAEDm2GYAAAABYktHRACIBR1IAAAACXBIWXMAAABIAAAASABGyWs+AAAAI0lEQVQI12NgIAowIpgKEJIZLiAgAKWZGQzQ9UGlWIizBQgAN4IAvGtVrTcAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTYtMDktMDJUMTU6MDQ6MzgrMDI6MDDPyc7hAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE2LTA5LTAyVDE1OjA0OjM4KzAyOjAwvpR2XQAAAABJRU5ErkJggg==")}\n${xt("evetrack","CAQAAAC1+jfqAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAJiS0dEAP+Hj8y/AAAACXBIWXMAAABIAAAASABGyWs+AAAAqElEQVQoz32RMQrCQBBFf4IgSMB0IpGkMpVHCFh7BbHIGTyVhU0K8QYewEKsbVJZaCUiPAsXV8Puzhaz7H8zs5+JUDjikLilQr5zpCRl5xMXZNScQE5gSMGaz70jjUAJcw5c3UBMTsUe+9Kzf065SbropeLXimWfDIgoab/tOyPGzOhz53+oSWcSGh7UdB2ZNKXBZdgAuUdEKJYmrEILyVgG6pE2tEHgDfe42rbjYzSHAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE2LTA5LTAyVDE1OjA0OjQ3KzAyOjAwM0S3EQAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNi0wOS0wMlQxNTowNDo0NyswMjowMEIZD60AAAAASUVORK5CYII=")}\n.jsroot .geovis_this { background-color: lightgreen; }\n.jsroot .geovis_daughters { background-color: lightblue; }\n.jsroot .geovis_all { background-color: yellow; }`)}function Sn(xt,K,ge){yn(),(0,Z.QL)("GradPerSegm",x.settings.GeoGradPerSegm),(0,Z.QL)("CompressComp",x.settings.GeoCompressComp);const ye=new $n(xt,K);return ye.decodeOptions(ge),ye}function ii(xt,K,ge){if(!K._geoobj)return!1;const ye=K._geoobj,Pe=K._volume,At=ye._typename===b||ye._typename===fe;if(!Pe&&!At)return!1;xt.add("separator");const Ht=(cn,In,ci)=>{if(In||(In={visible:0,hidden:0}),ci||(void 0!==In.assign?cn.fRnrSelf=In.assign:cn.fRnrSelf?In.vis++:In.hidden++),cn.fElements)for(let Pi=0;Pi{"self"===cn?(ye.fRnrSelf=!ye.fRnrSelf,K._icon=K._icon.split(" ")[0]+Je(ye),ge.updateTreeNode(K)):(Ht(ye,{assign:"true"===cn},!0),ge.forEachItem(In=>{In._geoobj&&In._icon&&(In._icon=K._icon.split(" ")[0]+Je(In._geoobj),ge.updateTreeNode(In))},K)),te(K,"testGeomChanges")},nn=cn=>{(0,Z.ZE)(Pe,cn);const In=K._icon.split(" ")[0]+Je(Pe);ge.forEachItem(ci=>{K._volume===ci._volume&&(ci._icon=In,ge.updateTreeNode(ci))}),ge.updateTreeNode(K),te(K,"testGeomChanges")},un=te(K),kn=un?ge.itemFullName(K,un):"";if(0===K._geoobj._typename.indexOf(x.clTGeoNode)&&un&&xt.add("Focus",()=>{un&&(0,x.isFunc)(un._painter?.focusOnItem)&&un._painter.focusOnItem(kn)}),At){xt.addchk(ye.fRnrSelf,"Visible","self",Nt);const cn=Ht(ye,void 0,!0);cn.hidden+cn.visible>0&&xt.addchk(0===cn.hidden,"Daughters",0!==cn.hidden?"true":"false",Nt)}else{const cn=un?._painter?._clones?.findStackByName(kn),In=cn?un._painter._clones.getPhysNodeVisibility(cn):null,ci=(0,Z.zL)(Pe,Z.Wv.kVisThis);if(xt.addchk((0,Z.zL)(Pe,Z.Wv.kVisNone),"Invisible",Z.Wv.kVisNone,nn),cn){const Pi=Si=>{un._painter._clones.setPhysNodeVisibility(cn,"off"!==Si&&Si),te(K,"testGeomChanges")};xt.add("sub:Physical vis","Physical node visibility - only for this instance"),xt.addchk(In?.visible,"on","on",Pi,"Enable visibility of phys node"),xt.addchk(In&&!In.visible,"off","off",Pi,"Disable visibility of physical node"),xt.add("reset","clear",Pi,"Reset custom visibility of physical node"),xt.add("reset all","clearall",Pi,"Reset all custom settings for all nodes"),xt.add("endsub:")}xt.addchk(ci,"Logical vis",Z.Wv.kVisThis,nn,"Logical node visibility - all instances"),xt.addchk((0,Z.zL)(Pe,Z.Wv.kVisDaughters),"Daughters",Z.Wv.kVisDaughters,nn,"Logical node daugthers visibility")}return!0}function ai(xt,K){return xt._volume?((0,Z.ZE)(xt._volume,xt._more&&xt._volume.fNodes?.arr?.length?Z.Wv.kVisDaughters:Z.Wv.kVisThis),tt(xt._volume,K),te(xt,"testGeomChanges"),!1):!xt._geoobj||xt._geoobj._typename!==b&&xt._geoobj._typename!==fe?void 0!==te(xt)?._painter?.extraObjectVisible(K,xt,!0):(xt._geoobj.fRnrSelf=!xt._geoobj.fRnrSelf,tt(xt._geoobj,K),te(xt,"testGeomChanges"),!1)}function zi(xt,K){let ge="";switch(xt._kind){case x.prROOT+z:ge="img_evetrack";break;case x.prROOT+W:case x.prROOT+x.clTPolyMarker3D:ge="img_evepoints"}return ge&&te(xt)?._painter?.extraObjectVisible(K,xt)&&(ge+=" geovis_this"),ge}function ti(xt,K,ge){const ye={_kind:x.prROOT+K._typename,_name:ge||(0,Z.Hs)(K),_title:K.fTitle,_parent:xt,_geoobj:K,_get:nn=>(nn._geoobj&&(nn._geoobj.$geoh=!0),Promise.resolve(nn._geoobj))};let Pe,At,Ht,Nt=!1;return"TGeoMaterial"===K._typename?ye._icon="img_geomaterial":"TGeoMedium"===K._typename?ye._icon="img_geomedium":"TGeoMixture"===K._typename?ye._icon="img_geomixture":0===K._typename.indexOf(x.clTGeoNode)&&K.fVolume?(ye._title="node:"+K._typename,K.fTitle&&(ye._title+=" "+K.fTitle),Pe=K.fVolume):0===K._typename.indexOf(x.clTGeoVolume)?Pe=K:K._typename===b||K._typename===fe?(Nt=!0,At=K.fShape,Ht=K.fElements?K.fElements.arr:null):void 0!==K.fShapeBits&&void 0!==K.fShapeId&&(At=K),Pe&&(At=Pe.fShape,Ht=Pe.fNodes?Pe.fNodes.arr:null),(Pe||At||Ht)&&(Pe&&(ye._volume=Pe),Ht?(ye._more=!0,ye._expand=bt):At&&At._typename===Z.HO&&At.fNode&&(ye._more=!0,ye._shape=At,ye._expand=function(nn){return ti(nn,nn._shape.fNode.fLeft,"Left"),ti(nn,nn._shape.fNode.fRight,"Right"),!0}),!ye._title&&K._typename!==x.clTGeoVolume&&(ye._title=K._typename),At?(""===ye._title&&(ye._title=At._typename),ye._icon=(0,Z.fD)(At)):ye._icon=ye._more?"img_geocombi":"img_geobbox",Pe?ye._icon+=Je(Pe):Nt&&(ye._icon+=Je(K)),ye._menu=ii,ye._icon_click=ai),xt._childs||(xt._childs=[]),ye._name||((0,x.isStr)(xt._name)?(ye._name=xt._name,ye._name.lastIndexOf("s")===ye._name.length-1&&(ye._name=ye._name.slice(0,ye._name.length-1)),ye._name+="_"+xt._childs.length):ye._name="item_"+xt._childs.length),xt._childs.push(ye),ye}function Lr(xt){return ss.apply(this,arguments)}function ss(){return(ss=(0,Te.A)(function*(xt){const K=(0,x.create)(x.clTNamed);K._typename=Z.Ce,K.fDX=1e-10,K.fDY=1e-10,K.fDZ=1e-10,K.fShapeId=1,K.fShapeBits=0,K.fOrigin=[0,0,0];const ge=Object.assign((0,x.create)(x.clTNamed),{_typename:b,fTrans:[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0],fShape:K,fRGBA:[0,0,0,0],fElements:null,fRnrSelf:!1}),ye=xt.getPadPainter(),Pe=ye?.pad?.fFillColor&&ye?.pad?.fFillStyle>1e3?"bkgr_"+ye.pad.fFillColor:"";return $n.draw(xt.getDom(),ge,Pe).then(At=>(At._dummy=!0,At))})).apply(this,arguments)}function Bs(){const xt=this.getMainPainter();if((0,x.isFunc)(xt?.setAxesDraw))return xt.setAxesDraw(!0);console.error("no geometry painter found to toggle TAxis3D drawing")}function yo(xt,K){if(!xt)return null;K||(K={}),K.numfaces||(K.numfaces=1e5),K.numnodes||(K.numnodes=1e3),K.frustum||(K.frustum=null),K.res_mesh=K.res_faces=0,void 0===K.instancing&&(K.instancing=-1),K.info={num_meshes:0,num_faces:0};let ge=null,ye=null;if(xt.visibles&&xt.nodes&&xt.numnodes){const Nt=xt.numnodes>1e6?{length:xt.numnodes}:new Array(xt.numnodes);xt.nodes.forEach(un=>{Nt[un.id]=Z.De.formatServerElement(un)}),ge=new Z.De(null,Nt),ge.name_prefix=ge.getNodeName(0),ge.maxdepth=20;const nn=xt.cfg?.nsegm||30;for(let un=0;un{"use strict";Se.d(mt,{De:()=>Pi,$T:()=>St,Ce:()=>B,HO:()=>we,qU:()=>Wi,Wz:()=>K,_b:()=>Ne,P1:()=>kn,Cc:()=>cn,d4:()=>un,uz:()=>Nt,Wv:()=>X,QL:()=>Y,UX:()=>Jn,Dh:()=>Fe,Hs:()=>rt,fD:()=>Rs,xq:()=>ci,NN:()=>Q,k$:()=>he,Pz:()=>Ln,qr:()=>ye,V:()=>nn,bg:()=>lt,N_:()=>te,zL:()=>Ge,ZE:()=>bt});var Te=Se(2923),x=Se(8872);const L=1e-5;class Ze{constructor(D,O,ie,_e,Oe,$e){this.x=D,this.y=O,this.z=ie,this.nx=_e,this.ny=Oe,this.nz=$e}setnormal(D,O,ie){this.nx=D,this.ny=O,this.nz=ie}clone(){return new Ze(this.x,this.y,this.z,this.nx,this.ny,this.nz)}add(D){return this.x+=D.x,this.y+=D.y,this.z+=D.z,this}subtract(D){return this.x-=D.x,this.y-=D.y,this.z-=D.z,this}cross3(D,O,ie){const _e=this.x,Oe=this.y,$e=this.z;return this.x=Oe*ie-$e*O,this.y=$e*D-_e*ie,this.z=_e*O-Oe*D,this}normalize(){const D=Math.sqrt(this.x**2+this.y**2+this.z**2);return this.x/=D,this.y/=D,this.z/=D,this}dot(D){return this.x*D.x+this.y*D.y+this.z*D.z}diff(D){const Oe=this.x**2+this.y**2+this.z**2;return((this.x-D.x)**2+(this.y-D.y)**2+(this.z-D.z)**2)/(Oe>0?Oe:1e-10)}interpolate(D,O){const ie=1-O;return new Ze(this.x*ie+D.x*O,this.y*ie+D.y*O,this.z*ie+D.z*O,this.nx*ie+D.nx*O,this.ny*ie+D.ny*O,this.nz*ie+D.nz*O)}applyMatrix4(D){let O=this.x,ie=this.y,_e=this.z;const Oe=D.elements;return this.x=Oe[0]*O+Oe[4]*ie+Oe[8]*_e+Oe[12],this.y=Oe[1]*O+Oe[5]*ie+Oe[9]*_e+Oe[13],this.z=Oe[2]*O+Oe[6]*ie+Oe[10]*_e+Oe[14],O=this.nx,ie=this.ny,_e=this.nz,this.nx=Oe[0]*O+Oe[4]*ie+Oe[8]*_e,this.ny=Oe[1]*O+Oe[5]*ie+Oe[9]*_e,this.nz=Oe[2]*O+Oe[6]*ie+Oe[10]*_e,this}}class Re{constructor(D,O,ie){this.vertices=D||[],this.nsign=1,O?this.copyProperties(O,ie):this.vertices.length>0&&this.calculateProperties()}copyProperties(D,O){return this.normal=D.normal,this.w=D.w,this.nsign=D.nsign,O&&void 0!==D.id&&(this.id=D.id,this.parent=D),this}calculateProperties(D){if(this.normal&&!D)return;const O=this.vertices[0],ie=this.vertices[1],_e=this.vertices[2];return this.nsign=1,this.normal=new Ze(ie.x-O.x,ie.y-O.y,ie.z-O.z,0,0,0).cross3(_e.x-O.x,_e.y-O.y,_e.z-O.z).normalize(),this.w=this.normal.dot(O),this}clone(){const D=this.vertices.length,O=[];for(let ie=0;ieL?1:0}classifySide(D){let O=0,ie=0;const _e=D.vertices.length;for(let Oe=0;Oe<_e;++Oe){const $e=this.classifyVertex(D.vertices[Oe]);1===$e?++O:2===$e&&++ie}return O>0&&0===ie?1:0===O&&ie>0?2:0===O&&0===ie?0:3}splitPolygon(D,O,ie,_e,Oe){const $e=this.classifySide(D);if(0===$e)(this.nsign*D.nsign*this.normal.dot(D.normal)>0?O:ie).push(D);else if(1===$e)_e.push(D);else if(2===$e)Oe.push(D);else{const et=D.vertices.length,it=this.normal.x,_t=this.normal.y,sn=this.normal.z,tn=[],xn=[];let wn,Ut,qe,nt,at,ut,Qt,vn;for(wn=0;wn=3&&_e.push(new Re(tn,D,!0)),xn.length>=3&&Oe.push(new Re(xn,D,!0))}}}class He{constructor(D,O){if(this.polygons=[],this.front=this.back=void 0,!D)return;this.divider=D[0].clone();const ie=D.length,_e=[],Oe=[];for(let $e=0;$e0&&(this.front=new He(_e)),Oe.length>0&&(this.back=new He(Oe))}build(D){const O=D.length,ie=[],_e=[];let Oe=0;this.divider||(this.divider=D[0].clone(),this.polygons.push(D[0]),Oe=1);for(let $e=Oe;$e0&&(this.front||(this.front=new He),this.front.build(ie)),_e.length>0&&(this.back||(this.back=new He),this.back.build(_e))}collectPolygons(D){void 0===D&&(D=[]);const O=this.polygons.length;for(let ie=0;ieO.clone()),D.front=this.front?.clone(),D.back=this.back?.clone(),D}invert(){const D=this.polygons.length;for(let ie=0;ie1;_e;)for(_e=!1,tn=0;tn0)for(D.splice(0,D.length),$e=0;$e=0){let et=ie[$e]||1;for(;O.indexOf(Oe.fName+"#"+et)>=0;)++et;Oe.$geo_suffix="#"+et,ie[$e]=et+1}}O.push(rt(Oe))}}}function pt(oe,D,O,ie,_e,Oe,$e,et,it){const _t=new Te.Pq0(oe,D,O),sn=new Te.Pq0(ie,_e,Oe),tn=new Te.Pq0($e,et,it),xn=new Te.Pq0,wn=new Te.Pq0;return xn.subVectors(tn,sn),wn.subVectors(_t,sn),xn.cross(wn),xn}class st{constructor(D){this.nfaces=D,this.indx=0,this.pos=new Float32Array(9*D),this.norm=new Float32Array(9*D)}addFace3(D,O,ie,_e,Oe,$e,et,it,_t){const sn=this.indx,tn=this.pos;tn[sn]=D,tn[sn+1]=O,tn[sn+2]=ie,tn[sn+3]=_e,tn[sn+4]=Oe,tn[sn+5]=$e,tn[sn+6]=et,tn[sn+7]=it,tn[sn+8]=_t,this.last4=!1,this.indx=sn+9}startPolygon(){}stopPolygon(){}addFace4(D,O,ie,_e,Oe,$e,et,it,_t,sn,tn,xn,wn){let Ut=this.indx;const qe=this.pos;1!==wn&&(qe[Ut]=D,qe[Ut+1]=O,qe[Ut+2]=ie,qe[Ut+3]=_e,qe[Ut+4]=Oe,qe[Ut+5]=$e,qe[Ut+6]=et,qe[Ut+7]=it,qe[Ut+8]=_t,Ut+=9),2!==wn&&(qe[Ut]=D,qe[Ut+1]=O,qe[Ut+2]=ie,qe[Ut+3]=et,qe[Ut+4]=it,qe[Ut+5]=_t,qe[Ut+6]=sn,qe[Ut+7]=tn,qe[Ut+8]=xn,Ut+=9),this.last4=Ut!==this.indx+9,this.indx=Ut}setNormal4(D,O,ie,_e,Oe,$e,et,it,_t,sn,tn,xn,wn){if(this.last4&&wn)return console.error("missmatch between addFace4 and setNormal4 calls");let Ut=this.indx-(this.last4?18:9);const qe=this.norm;1!==wn&&(qe[Ut]=D,qe[Ut+1]=O,qe[Ut+2]=ie,qe[Ut+3]=_e,qe[Ut+4]=Oe,qe[Ut+5]=$e,qe[Ut+6]=et,qe[Ut+7]=it,qe[Ut+8]=_t,Ut+=9),2!==wn&&(qe[Ut]=D,qe[Ut+1]=O,qe[Ut+2]=ie,qe[Ut+3]=et,qe[Ut+4]=it,qe[Ut+5]=_t,qe[Ut+6]=sn,qe[Ut+7]=tn,qe[Ut+8]=xn)}recalcZ(D){const O=this.pos,ie=this.indx;let _e=ie-(this.last4?18:9);for(;_e0?9:18);const _t=this.norm;1!==et&&(_t[it]=D,_t[it+1]=O,_t[it+2]=ie,_t[it+3]=D,_t[it+4]=O,_t[it+5]=ie,_t[it+6]=_e,_t[it+7]=Oe,_t[it+8]=$e,it+=9),2!==et&&(_t[it]=D,_t[it+1]=O,_t[it+2]=ie,_t[it+3]=_e,_t[it+4]=Oe,_t[it+5]=$e,_t[it+6]=_e,_t[it+7]=Oe,_t[it+8]=$e)}create(){this.nfaces!==this.indx/9&&console.error(`Mismatch with created ${this.nfaces} and filled ${this.indx/9} number of faces`);const D=new Te.LoY;return D.setAttribute("position",new Te.THS(this.pos,3)),D.setAttribute("normal",new Te.THS(this.norm,3)),D}}class vt{constructor(){this.polygons=[]}startPolygon(D){this.multi=1,this.mnormal=D}stopPolygon(){this.multi&&(this.multi=0,console.error("Polygon should be already closed at this moment"))}addFace3(D,O,ie,_e,Oe,$e,et,it,_t){this.addFace4(D,O,ie,_e,Oe,$e,et,it,_t,et,it,_t,2)}addFace4(D,O,ie,_e,Oe,$e,et,it,_t,sn,tn,xn,wn){if(void 0===wn&&(wn=0),this.v1=new Ze(D,O,ie,0,0,0),this.v2=1===wn?null:new Ze(_e,Oe,$e,0,0,0),this.v3=new Ze(et,it,_t,0,0,0),this.v4=2===wn?null:new Ze(sn,tn,xn,0,0,0),this.reduce=wn,this.multi){let qe;return 2!==wn&&console.error("polygon not supported for not-reduced faces"),1==this.multi++?(qe=new Re,qe.vertices.push(this.mnormal?this.v2:this.v3),this.polygons.push(qe)):(qe=this.polygons[this.polygons.length-1],(this.mnormal?this.v2:this.v3).diff(this.mnormal?qe.vertices[qe.vertices.length-1]:qe.vertices[0])>1e-12&&console.error("vertex missmatch when building polygon")),void((this.mnormal?this.v3:this.v2).diff(this.mnormal?qe.vertices[0]:qe.vertices[qe.vertices.length-1])<1e-12?this.multi=0:this.mnormal?qe.vertices.push(this.v3):qe.vertices.unshift(this.v2))}const Ut=new Re;switch(wn){case 0:Ut.vertices.push(this.v1,this.v2,this.v3,this.v4);break;case 1:Ut.vertices.push(this.v1,this.v3,this.v4);break;case 2:Ut.vertices.push(this.v1,this.v2,this.v3)}this.polygons.push(Ut)}setNormal4(D,O,ie,_e,Oe,$e,et,it,_t,sn,tn,xn){this.v1.setnormal(D,O,ie),this.v2&&this.v2.setnormal(_e,Oe,$e),this.v3.setnormal(et,it,_t),this.v4&&this.v4.setnormal(sn,tn,xn)}setNormal_12_34(D,O,ie,_e,Oe,$e){this.v1.setnormal(D,O,ie),this.v2&&this.v2.setnormal(D,O,ie),this.v3.setnormal(_e,Oe,$e),this.v4&&this.v4.setnormal(_e,Oe,$e)}calcNormal(){this.cb||(this.pA=new Te.Pq0,this.pB=new Te.Pq0,this.pC=new Te.Pq0,this.cb=new Te.Pq0,this.ab=new Te.Pq0),this.pA.set(this.v1.x,this.v1.y,this.v1.z),1!==this.reduce?(this.pB.set(this.v2.x,this.v2.y,this.v2.z),this.pC.set(this.v3.x,this.v3.y,this.v3.z)):(this.pB.set(this.v3.x,this.v3.y,this.v3.z),this.pC.set(this.v4.x,this.v4.y,this.v4.z)),this.cb.subVectors(this.pC,this.pB),this.ab.subVectors(this.pA,this.pB),this.cb.cross(this.ab),this.setNormal(this.cb.x,this.cb.y,this.cb.z)}setNormal(D,O,ie){this.v1.setnormal(D,O,ie),this.v2&&this.v2.setnormal(D,O,ie),this.v3.setnormal(D,O,ie),this.v4&&this.v4.setnormal(D,O,ie)}recalcZ(D){this.v1.z=D(this.v1.x,this.v1.y,this.v1.z),this.v2&&(this.v2.z=D(this.v2.x,this.v2.y,this.v2.z)),this.v3.z=D(this.v3.x,this.v3.y,this.v3.z),this.v4&&(this.v4.z=D(this.v4.x,this.v4.y,this.v4.z))}create(){return{polygons:this.polygons}}}function qt(oe,D){const O=[4,7,6,5,0,3,7,4,4,5,1,0,6,2,1,5,7,3,2,6,1,2,3,0],ie=D>0?new vt:new st(12);for(let _e=0;_e0||ie[1]>0;let Oe=0,$e=360;(oe._typename===E||oe._typename===v||oe._typename===p)&&(Oe=oe.fPhi1,$e=oe.fPhi2-oe.fPhi1);const et=Math.max(4,Math.round($e/J.GradPerSegm));let it=et*(O[0]<=0||O[1]<=0?1:2);if(_e&&(it+=et*(ie[0]<=0||ie[1]<=0?1:2)),O[0]>0&&(it+=et*(ie[0]>0?2:1)),O[1]>0&&(it+=et*(ie[1]>0?2:1)),$e<360&&(it+=(O[0]>ie[0]?2:0)+(O[1]>ie[1]?2:0)),D<0)return it;const _t=Oe*Math.PI/180,sn=$e/et*Math.PI/180,tn=new Float32Array(et+1),xn=new Float32Array(et+1);for(let qe=0;qe<=et;++qe)xn[qe]=Math.cos(_t+qe*sn),tn[qe]=Math.sin(_t+qe*sn);const wn=D?new vt:new st(it),Ut=oe._typename!==p?null:(qe,nt,at)=>{const ut=at<0?oe.fNlow:oe.fNhigh;return(at<0?-oe.fDz:oe.fDz)-(qe*ut[0]+nt*ut[1])/ut[2]};for(let qe=0;qe<2&&(1!==qe||_e);++qe){const nt=0===qe?O:ie,at=qe,ut=1-qe;let Qt=1,vn=0;if(nt[0]!==nt[1]){const jt=Math.atan2(nt[1]-nt[0],2*oe.fDZ);Qt=Math.cos(jt),vn=Math.sin(jt)}1===qe&&(Qt*=-1,vn*=-1);const en=nt[0]<=0?2:nt[1]<=0?1:0;for(let jt=0;jt=ie&&Oe.max[O]>=ie||Oe.min[O]<=ie&&Oe.max[O]<=ie)return null;const $e=new De(oe,D,0,_e),et=2*Math.max(Math.abs(Oe.min.x),Math.abs(Oe.max.x)),it=2*Math.max(Math.abs(Oe.min.y),Math.abs(Oe.max.y)),_t=2*Math.max(Math.abs(Oe.min.z),Math.abs(Oe.max.z));let sn=1e4;switch(O){case"x":sn=Math.max(it,_t);break;case"y":sn=Math.max(et,_t);break;case"z":sn=Math.max(et,it)}const tn=function F(oe,D,O){let ie;switch((!O||O<1e4)&&(O=1e4),oe){case"x":ie=[new Ze(D,-3*O,O,1,0,0),new Ze(D,O,-3*O,1,0,0),new Ze(D,O,O,1,0,0)];break;case"y":ie=[new Ze(-3*O,D,O,0,1,0),new Ze(O,D,O,0,1,0),new Ze(O,D,-3*O,0,1,0)];break;default:ie=[new Ze(-3*O,O,D,0,0,1),new Ze(O,-3*O,D,0,0,1),new Ze(O,O,D,0,0,1)]}const _e=new He([new Re(ie)]);return new De(_e)}(O,ie,sn);return $e.cut_from_plane(tn),tn.toBufferGeometry()}function Pe(oe,D){void 0===D&&(D=0);try{switch(oe._typename){case B:return function Yt(oe,D){if(D<0)return 12;const O=oe.fDX,ie=oe.fDY,_e=oe.fDZ,Oe=D?new vt:new st(12);return Oe.addFace4(O,ie,_e,O,-ie,_e,O,-ie,-_e,O,ie,-_e),Oe.setNormal(1,0,0),Oe.addFace4(-O,ie,-_e,-O,-ie,-_e,-O,-ie,_e,-O,ie,_e),Oe.setNormal(-1,0,0),Oe.addFace4(-O,ie,-_e,-O,ie,_e,O,ie,_e,O,ie,-_e),Oe.setNormal(0,1,0),Oe.addFace4(-O,-ie,_e,-O,-ie,-_e,O,-ie,-_e,O,-ie,_e),Oe.setNormal(0,-1,0),Oe.addFace4(-O,ie,_e,-O,-ie,_e,O,-ie,_e,O,ie,_e),Oe.setNormal(0,0,1),Oe.addFace4(O,ie,-_e,O,-ie,-_e,-O,-ie,-_e,-O,ie,-_e),Oe.setNormal(0,0,-1),Oe.create()}(oe,D);case U:return function Ot(oe,D){if(D<0)return 12;const O=oe.fTxy,ie=oe.fTxz,_e=oe.fTyz;return qt([-oe.fZ*ie-O*oe.fY-oe.fX,-oe.fY-oe.fZ*_e,-oe.fZ,-oe.fZ*ie+O*oe.fY-oe.fX,oe.fY-oe.fZ*_e,-oe.fZ,-oe.fZ*ie+O*oe.fY+oe.fX,oe.fY-oe.fZ*_e,-oe.fZ,-oe.fZ*ie-O*oe.fY+oe.fX,-oe.fY-oe.fZ*_e,-oe.fZ,oe.fZ*ie-O*oe.fY-oe.fX,oe.fZ*_e-oe.fY,oe.fZ,oe.fZ*ie+O*oe.fY-oe.fX,oe.fY+oe.fZ*_e,oe.fZ,oe.fZ*ie+O*oe.fY+oe.fX,oe.fY+oe.fZ*_e,oe.fZ,oe.fZ*ie-O*oe.fY+oe.fX,oe.fZ*_e-oe.fY,oe.fZ],D)}(oe,D);case C:case I:return function Bn(oe,D){if(D<0)return 12;let O,ie;return oe._typename===C?O=ie=oe.fDY:(O=oe.fDy1,ie=oe.fDy2),qt([-oe.fDx1,O,-oe.fDZ,oe.fDx1,O,-oe.fDZ,oe.fDx1,-O,-oe.fDZ,-oe.fDx1,-O,-oe.fDZ,-oe.fDx2,ie,oe.fDZ,oe.fDx2,ie,oe.fDZ,oe.fDx2,-ie,oe.fDZ,-oe.fDx2,-ie,oe.fDZ],D)}(oe,D);case $:case T:case z:return function Mn(oe,D){if(D<0)return 12;const O=[oe.fXY[0][0],oe.fXY[0][1],-oe.fDZ,oe.fXY[1][0],oe.fXY[1][1],-oe.fDZ,oe.fXY[2][0],oe.fXY[2][1],-oe.fDZ,oe.fXY[3][0],oe.fXY[3][1],-oe.fDZ,oe.fXY[4][0],oe.fXY[4][1],oe.fDZ,oe.fXY[5][0],oe.fXY[5][1],oe.fDZ,oe.fXY[6][0],oe.fXY[6][1],oe.fDZ,oe.fXY[7][0],oe.fXY[7][1],oe.fDZ],ie=[4,7,6,6,5,4,3,7,4,4,0,3,5,1,0,0,4,5,6,2,1,1,5,6,7,3,2,2,6,7,1,2,3,3,0,1];for(let et=0;et=0||_e.indexOf(_t)>=0||_e.indexOf(sn)>=0?ie[et]=ie[et+1]=ie[et+2]=-1:(_e.push(it,_t,sn),Oe++)}const $e=D?new vt:new st(Oe);for(let et=0;et=0&&tn>=0&&D)if(0===et)Ut=new Te.Pq0(0,0,1);else if(30===et)Ut=new Te.Pq0(0,0,-1);else{const qe=pt(O[it],O[it+1],O[it+2],O[_t],O[_t+1],O[_t+2],O[sn],O[sn+1],O[sn+2]);qe.normalize();const nt=pt(O[tn],O[tn+1],O[tn+2],O[xn],O[xn+1],O[xn+2],O[wn],O[wn+1],O[wn+2]);nt.normalize(),qe.distanceToSquared(nt)<1e-12&&(Ut=qe)}null!==Ut?($e.addFace4(O[it],O[it+1],O[it+2],O[_t],O[_t+1],O[_t+2],O[sn],O[sn+1],O[sn+2],O[xn],O[xn+1],O[xn+2]),$e.setNormal(Ut.x,Ut.y,Ut.z)):(it>=0&&($e.addFace3(O[it],O[it+1],O[it+2],O[_t],O[_t+1],O[_t+2],O[sn],O[sn+1],O[sn+2]),$e.calcNormal()),tn>=0&&($e.addFace3(O[tn],O[tn+1],O[tn+2],O[xn],O[xn+1],O[xn+2],O[wn],O[wn+1],O[wn+2]),$e.calcNormal()))}return $e.create()}(oe,D);case V:return function bn(oe,D){const O=[oe.fRmax,oe.fRmin],ie=oe.fPhi1,_e=oe.fPhi2-oe.fPhi1,Oe=oe.fTheta1,$e=oe.fTheta2-oe.fTheta1,et=O[1]<=0;let it=oe.fNseg,_t=oe.fNz;if(D>0){const en=(et?2:4)*it*_t/D;en>1&&(it=Math.max(4,Math.floor(it/Math.sqrt(en))),_t=Math.max(4,Math.floor(_t/Math.sqrt(en))))}let sn=it*_t*2,tn=it*(et?1:2),xn=it*(et?1:2);const wn=360===_e?0:_t*(et?2:4),Ut=1e-10;if(D<0)return sn*(et?1:2)+tn+xn+wn;const qe=new Float32Array(it+1),nt=new Float32Array(it+1),at=new Float32Array(_t+1),ut=new Float32Array(_t+1);for(let en=0;en<=_t;++en){const jt=(Oe+$e/_t*en)*Math.PI/180;at[en]=Math.sin(jt),ut[en]=Math.cos(jt)}for(let en=0;en<=it;++en){const jt=(ie+_e/it*en)*Math.PI/180;qe[en]=Math.sin(jt),nt[en]=Math.cos(jt)}Math.abs(at[0])<=Ut&&(sn-=it,tn=0),Math.abs(at[_t])<=Ut&&(sn-=it,xn=0);const Qt=sn*(et?1:2)+tn+xn+wn,vn=D?new vt:new st(Qt);for(let en=0;en<2&&(1!==en||!et);++en){const jt=O[en],fn=0===en?1:-1,Hn=1-en,Vn=1-Hn;for(let Hi=0;Hi<_t;++Hi){const _r=Hi+Hn,Li=Hi+Vn;let Kr=0;Math.abs(at[_r])<=Ut?Kr=1:Math.abs(at[Li])<=Ut&&(Kr=2);for(let os=0;os=Ut){const jt=at[en],fn=ut[en],Hn=0===en?0:1,Vn=1-Hn;for(let Hi=0;Hi0?4:2)*ie*(_e+(360!==oe.fDphi?1:0));if(D<0)return Oe;D>0&&Oe>D&&(ie=Math.floor(ie/Math.sqrt(Oe/D)),_e=Math.floor(_e/Math.sqrt(Oe/D)),Oe=(oe.fRmin>0?4:2)*ie*(_e+(360!==oe.fDphi?1:0)));const $e=new Float32Array(ie+1),et=new Float32Array(ie+1),it=new Float32Array(_e+1),_t=new Float32Array(_e+1);for(let en=0;en<=ie;++en)$e[en]=Math.sin(en/ie*2*Math.PI),et[en]=Math.cos(en/ie*2*Math.PI);for(let en=0;en<=_e;++en){const jt=(oe.fPhi1+oe.fDphi*en/_e)/180*Math.PI;it[en]=Math.sin(jt),_t[en]=Math.cos(jt)}const sn=D?new vt:new st(Oe),tn=new Te.Pq0,xn=new Te.Pq0,wn=new Te.Pq0,Ut=new Te.Pq0,qe=new Te.Pq0,nt=new Te.Pq0,at=new Te.Pq0,ut=new Te.Pq0,Qt=new Te.Pq0,vn=new Te.Pq0;for(let en=0;en<2&&!(en>0&&oe.fRmin<=0);++en){const jt=en>0?oe.fRmin:oe.fRmax,fn=1-en,Hn=1-fn,Vn=en>0?-1:1;for(let Hi=0;Hi<_e;++Hi){const _r=Hi+fn,Li=Hi+Hn;Qt.x=O*_t[_r],Qt.y=O*it[_r],vn.x=O*_t[Li],vn.y=O*it[Li];for(let Kr=0;Kr0?0:1,Vn=1-Hn,Hi=oe.fRmin>0?0:1,_r=en>0?1:-1;for(let Li=0;Li0&&(it=!0);if(D<0)return(it?4:2)*_e*(oe.fNz-1);const _t=360===ie?null:[];for(let at=0;at<2;++at){const ut=0===at?"fRmax":"fRmin";for(let Qt=0;Qt0&&Qt0&&(0===at||it)&&($e[2*Qt+at]=1,et++),null!==_t&&(0===at?_t.push(new Te.I9Y(Oe*en,vn)):en0;--at){if(oe.fZ[at]===oe.fZ[at-1])continue;const ut=2*oe.fNz-1-at;tn.push([ut,at-1,at]),tn.push([ut,ut+1,at-1])}}else tn=Te.xJ6.triangulateShape(_t,[]);sn+=2*tn.length}const xn=O*Math.PI/180,wn=ie/_e*Math.PI/180,Ut=new Float32Array(_e+1),qe=new Float32Array(_e+1);for(let at=0;at<=_e;++at)qe[at]=Math.cos(xn+at*wn),Ut[at]=Math.sin(xn+at*wn);const nt=D?new vt:new st(sn);for(let at=0;at<2;++at){const ut=0===at?"fRmax":"fRmin",Qt=1-at,vn=at;let en=oe.fZ[0],jt=Oe*oe[ut][0];for(let fn=0;fn0&&(Hi*=-1,_r*=-1);for(let Li=0;Li<_e;++Li)nt.addFace4(jt*qe[Li+Qt],jt*Ut[Li+Qt],en,Vn*qe[Li+Qt],Vn*Ut[Li+Qt],Hn,Vn*qe[Li+vn],Vn*Ut[Li+vn],Hn,jt*qe[Li+vn],jt*Ut[Li+vn],en),nt.setNormal_12_34(Hi*qe[Li+Qt],Hi*Ut[Li+Qt],_r,Hi*qe[Li+vn],Hi*Ut[Li+vn],_r);en=Hn,jt=Vn}}for(let at=0;at0);for(let Hn=0;Hn<_e;++Hn)nt.addFace4(ut*qe[Hn+en],ut*Ut[Hn+en],vn,Qt*qe[Hn+en],Qt*Ut[Hn+en],vn,Qt*qe[Hn+jt],Qt*Ut[Hn+jt],vn,ut*qe[Hn+jt],ut*Ut[Hn+jt],vn,it?0:2),nt.setNormal(0,0,fn);nt.stopPolygon()}if(tn)for(let at=0;at<=_e;at+=_e){const ut=0===at?1:2,Qt=3-ut;for(let vn=0;vn0){const ut=2*O*(ie+1)/D;ut>1&&(O=Math.max(5,Math.floor(O/Math.sqrt(ut))),ie=Math.max(5,Math.floor(ie/Math.sqrt(ut))))}const _e=oe.fRlo,Oe=oe.fRhi;let $e=(ie+1)*O*2;if(0===_e&&($e-=2*O),0===Oe&&($e-=2*O),D<0)return $e;let et=-oe.fDZ,it=oe.fDZ;oe.fA>=0?oe.fB>et&&(et=oe.fB):oe.fB0?-1:1;const fn=0===qe?1:0===vn?2:0;for(let Hn=0;Hn0?4:2);if(D<0)return _e;D>0&&D>_e&&(O=Math.max(4,Math.floor(O/Math.sqrt(_e/D))),ie=Math.max(4,Math.floor(ie/Math.sqrt(_e/D))),_e=O*(ie+1)*(oe.fRmin>0?4:2));const Oe=new Float32Array(O+1),$e=new Float32Array(O+1);for(let it=0;it<=O;++it)$e[it]=Math.cos(it/O*2*Math.PI),Oe[it]=Math.sin(it/O*2*Math.PI);const et=D?new vt:new st(_e);for(let it=0;it<2&&!(it>0&&oe.fRmin<=0);++it){const _t=it>0?oe.fRmin:oe.fRmax,sn=it>0?oe.fTinsq:oe.fToutsq,tn=1-it,xn=1-tn;for(let wn=0;wn0?Math.sqrt(oe.fRmin**2+oe.fTinsq*_t**2):0,xn=oe.fRmin>0?0:1,wn=1-it,Ut=1-wn;for(let qe=0;qe=D||!ie)return O.polygons&&(O=Ve(O.polygons)),Oe&&O.applyMatrix4(Oe),O._exceed_limit=!0,O;let _t=new De(O,Oe,J.CompressComp?0:void 0);const sn=new De(ie,$e,_t.maxid);switch(_t.maxid=sn.maxid,oe.fNode._typename){case"TGeoIntersection":_t.direct_intersect(sn);break;case"TGeoUnion":_t.direct_union(sn);break;case"TGeoSubtraction":_t.direct_subtract(sn);break;default:tt("unsupported bool operation "+oe.fNode._typename+", use first geom")}return 0===K(_t)&&(tt(`Zero faces in comp shape left: ${oe.fNode.fLeft._typename} ${K(O)} faces right: ${oe.fNode.fRight._typename} ${K(ie)} faces use first`),_t=new De(O,Oe)),_e?{polygons:_t.toPolygons()}:_t.toBufferGeometry()}(oe,D);case ue:break;case je:{const O=Pe(oe.fShape,D);return oe.fScale&&D>=0&&(0,x.isFunc)(O?.scale)&&O.scale(oe.fScale.fScale[0],oe.fScale.fScale[1],oe.fScale.fScale[2]),O}case Me:if(D<0)return 1;default:tt(`unsupported shape type ${oe._typename}`)}}catch(O){let ie="";void 0!==O.stack&&(ie=O.stack.split("\n")[0],ie=ie.indexOf(O.message)>=0?O.stack.split("\n")[1]:"at: "+ie),tt(`${oe._typename} err: ${O.message} ${ie}`)}return D<0?0:null}function Nt(oe,D){if(oe.server_shape&&(oe.nsegm===D||!oe.shape))return oe.server_shape;oe.nsegm=D;let O=null;if(oe.shape)O=Pe(oe.shape);else{if(!oe.raw?.buffer)return console.error("No raw data at all"),null;O=oe.sz?function At(oe){let D=0;if(oe.sz[0]&&(oe.vtxBuff=new Float32Array(oe.raw.buffer,D,oe.sz[0]),D+=4*oe.sz[0]),oe.sz[1]&&(D+=4*oe.sz[1]),oe.sz[2]&&(oe.prefixBuf=new Uint32Array(oe.raw.buffer,D,2),D+=8,oe.idxBuff=new Uint32Array(oe.raw.buffer,D,oe.sz[2]-2)),4!==oe.prefixBuf[0])throw Error("Expect triangles first.");if(oe.idxBuff.length!==3*oe.prefixBuf[1])throw Error("Expect single list of triangles in index buffer.");const _e=new Te.LoY;return _e.setAttribute("position",new Te.THS(oe.vtxBuff,3)),_e.setIndex(new Te.THS(oe.idxBuff,1)),_e.computeVertexNormals(),_e}(oe):function Ht(oe){const D=new Float32Array(oe.raw.buffer,0,oe.raw.buffer.byteLength/4),O=new Te.LoY;return O.setAttribute("position",new Te.THS(D,3)),O.setIndex(new Te.THS(new Uint32Array(oe.idx),1)),O.computeVertexNormals(),O}(oe)}return{_typename:"$$Shape$$",ready:!0,geom:O,nfaces:ss(O)}}function nn(oe){let D=[],O=null;if(void 0!==oe.fVolume?O=oe.fVolume.fShape:void 0!==oe.fShape?O=oe.fShape:void 0!==oe.fShapeBits&&void 0!==oe.fShapeId&&(O=oe),!O)return D.push(oe._typename),D;const ie=Math.max(O.fDX,O.fDY,O.fDZ),_e=ie>1e7||ie<1e-7,Oe=$e=>void 0===$e?"???":$e===Math.round($e)&&$e<1e7?Math.round($e):_e?$e.toExponential(4):$e.toPrecision(7);switch(D.push(O._typename),D.push(`DX=${Oe(O.fDX)} DY=${Oe(O.fDY)} DZ=${Oe(O.fDZ)}`),O._typename){case B:break;case U:D.push(`Alpha=${O.fAlpha} Phi=${O.fPhi} Theta=${O.fTheta}`);break;case I:D.push(`Dy1=${Oe(O.fDy1)} Dy2=${Oe(O.fDy1)}`);case C:D.push(`Dx1=${Oe(O.fDx1)} Dx2=${Oe(O.fDx1)}`);break;case $:case T:case z:break;case V:D.push(`Rmin=${Oe(O.fRmin)} Rmax=${Oe(O.fRmax)}`,`Phi1=${O.fPhi1} Phi2=${O.fPhi2}`,`Theta1=${O.fTheta1} Theta2=${O.fTheta2}`);break;case E:D.push(`Phi1=${O.fPhi1} Phi2=${O.fPhi2}`);case g:D.push(`Rmin1=${Oe(O.fRmin1)} Rmax1=${Oe(O.fRmax1)}`,`Rmin2=${Oe(O.fRmin2)} Rmax2=${Oe(O.fRmax2)}`);break;case p:case v:D.push(`Phi1=${O.fPhi1} Phi2=${O.fPhi2}`);case W:case _:D.push(`Rmin=${Oe(O.fRmin)} Rmax=${Oe(O.fRmax)}`);break;case b:D.push(`Rmin=${Oe(O.fRmin)} Rmax=${Oe(O.fRmax)}`,`Phi1=${O.fPhi1} Dphi=${O.fDphi}`);break;case Z:case ee:case P:break;case k:D.push(`Rlo=${Oe(O.fRlo)} Rhi=${Oe(O.fRhi)}`,`A=${Oe(O.fA)} B=${Oe(O.fB)}`);break;case fe:D.push(`Rmin=${Oe(O.fRmin)} Rmax=${Oe(O.fRmax)}`,`StIn=${Oe(O.fStIn)} StOut=${Oe(O.fStOut)}`);break;case we:case ue:break;case je:D=nn(O.fShape),O.fScale&&D.unshift(`Scale X=${O.fScale.fScale[0]} Y=${O.fScale.fScale[1]} Z=${O.fScale.fScale[2]}`)}return D}function un(oe){const D=new Te.kn4;return oe.updateMatrixWorld(),oe.matrixWorldInverse.copy(oe.matrixWorld).invert(),D.multiplyMatrices(oe.projectionMatrix,oe.matrixWorldInverse),D}function kn(oe){if(!oe)return null;oe instanceof Te.ubm&&(oe=un(oe));const D=new Te.PPD;return D.setFromProjectionMatrix(oe),D.corners=new Float32Array([1,1,1,1,1,-1,1,-1,1,1,-1,-1,-1,1,1,-1,1,-1,-1,-1,1,-1,-1,-1,0,0,0]),D.test=new Te.Pq0(0,0,0),D.CheckShape=function(O,ie){const _e=this.test,Oe=this.corners.length,$e=this.corners;for(let et=0;et5},D}function cn(oe,D){oe||(oe={material_kind:"lambert"});const O=Object.assign({},D);let ie;return void 0===O.opacity&&(O.opacity=1),oe.transparency&&(O.opacity=Math.min(1-oe.transparency,O.opacity)),O.wireframe=oe.wireframe??!1,O.color||(O.color="red"),O.side=Te.hB5,O.transparent=O.opacity<1,O.depthWrite=1===O.opactity,"basic"===oe.material_kind?ie=new Te.V9B(O):"depth"===oe.material_kind?(delete O.color,ie=new Te.CSG(O)):"toon"===oe.material_kind?ie=new Te.Df(O):"matcap"===oe.material_kind?(delete O.wireframe,ie=new Te.FNr(O)):"standard"===oe.material_kind?(O.metalness=oe.metalness??.5,O.roughness=oe.roughness??.1,ie=new Te._4j(O)):"normal"===oe.material_kind?(delete O.color,ie=new Te.qBx(O)):"physical"===oe.material_kind?(O.metalness=oe.metalness??.5,O.roughness=oe.roughness??.1,O.reflectivity=oe.reflectivity??.5,O.emissive=O.color,ie=new Te.uSd(O)):"phong"===oe.material_kind?(O.shininess=oe.shininess??.9,ie=new Te.tXL(O)):(O.vertexColors=!1,ie=new Te.G_z(O)),void 0!==ie.flatShading&&void 0!==oe.flatShading&&(ie.flatShading=oe.flatShading),ie.inherentOpacity=D.opacity??1,ie.inherentArgs=D,ie}function In(oe,D){if(oe===D)return 0;const O=oe?.length??0,ie=D?.length??0,_e=OD[Oe])return 1;++Oe}return Oie?1:0}function ci(oe,D){if(!oe||!D)return!1;if(oe===D)return!0;if(oe.length!==D.length)return!1;for(let O=0;Othis.maxdepth&&(this.maxdepth=O);let _e=null;if(_e=ie===he?D.fVolume?.fNodes?.arr||null:D.fElements?.arr||null,null!==_e){St(D,_e);for(let $e=0;$e<_e.length;++$e)this.createClones(_e[$e],O+1,ie)}if(O>1)return;this.nodes=[];const Oe=[];for(let $e=0;$eet.vol-$e.vol),this.sortmap=new Array(this.nodes.length);for(let $e=0;$e0),lt(et.fVolume,X.kVisDaughters,!0),lt(et,X.kVisDaughters,!0))):($e.vis=!Ge(et.fVolume,X.kVisNone)&&Ge(et.fVolume,X.kVisThis)?99:0,(!Ge(et,X.kVisDaughters)||!Ge(et.fVolume,X.kVisDaughters))&&($e.nochlds=!0),$e.vis>0&&$e.chlds&&!$e.nochlds&&($e.vis=1),0===Oe&&(ie&&($e.vis=0),delete $e.nochlds))):($e.vis=et.fRnrSelf?99:0,0===Oe&&1===this.nodes.length&&($e.vis=99),this.vislevel=9999),($e.vol<=0||$e.nfaces<=0)&&($e.vis=0),$e.vis&&_e++}return _e}produceIdShifts(){for(let O=0;O0)return void(ie||this.fVisibility.splice(_e,0,{visible:O,stack:D}))}ie||this.fVisibility.push({visible:O,stack:D})}}else delete this.fVisibility}getPhysNodeVisibility(D){if(!D||!this.fVisibility)return null;for(let O=0;O0)return null}return null}scanVisible(D,O){if(!this.nodes)return 0;void 0===O&&(D||(D={}),(O=D.vislvl||this.vislevel||4)>88&&(O=88),D.stack=new Array(100),D.nodeid=0,D.counter=0,D.last=0,D.copyStack=function(et){const it={nodeid:this.nodeid,seqid:this.counter,stack:new Array(this.last)};et&&(it.factor=et);for(let _t=0;_t0?D.matrices[D.last-1]:new Te.kn4;ie.matrix?(D.matrices[D.last]=D.mpool[D.last].fromArray(et.elements),D.matrices[D.last].multiply(D.mpool[D.last+1].fromArray(ie.matrix))):D.matrices[D.last]=et}let Oe=ie.vis,$e=ie.nochlds;if(D.testPhysVis){const et=D.testPhysVis();void 0!==et&&(Oe=et&&!ie.chlds?O+1:0,$e=!et)}if($e&&(O=0),Oe>O&&(!D.func||D.func(ie))&&_e++,D.counter++,O>0&&ie.chlds){D.last++;for(let et=0;et1&&1===$e.fLineColor?et.fillcolor=O[$e.fFillColor]:$e.fLineColor>=0&&(et.fillcolor=O[$e.fLineColor]);const _t=$e.fMedium?.fMaterial;if(_t){const sn=_t.fFillStyle;let tn=sn>=3e3&&sn<=3100?sn-3e3:0;if(this.use_dflt_colors){const xn=Math.round(_t.fZ);et.fillcolor=O[this.dflt_table[xn]],_t.fDensity<.1&&(tn=60)}tn>0&&(it=(100-tn)/100),void 0===et.fillcolor&&(et.fillcolor=O[_t.fFillColor])}void 0===et.fillcolor&&(et.fillcolor="lightgrey"),et.material=cn(this._cfg,{opacity:it,color:et.fillcolor})}return et}createObject3D(D,O,ie){let _e=this.nodes[0],Oe=O,$e=0;const et=(0,x.isObject)(ie)||"force"===ie;for(let it=0;it<=D.length;++it){const _t=it>0?D[it-1]:0,sn=it>0?this.nodes[_e.chlds[_t]]:_e;if(!sn)return console.error(`Wrong stack ${JSON.stringify(D)} for nodes at level ${it}, node.id ${_e.id}, numnodes ${this.nodes.length}, nchld ${_t}, numchilds ${_e.chlds.length}, chldid ${_e.chlds[_t]}`),null;let tn;if(_e=sn,Oe.children)for(let xn=0;xn-.9?new Te.eaF(_e.geom,$e.material):function bi(oe,D){void 0===oe.geomZ&&(oe.geomZ=Si(oe.geom));const O=new Te.eaF(oe.geomZ,D);return O.scale.copy(new Te.Pq0(1,1,-1)),O.updateMatrix(),O._flippedMesh=!0,O}(_e,$e.material),et.add(_t),et.absMatrix&&(_t.matrix.copy(et.absMatrix),_t.matrix.decompose(_t.position,_t.quaternion,_t.scale),_t.updateMatrixWorld()),_t.stack=ie.stack,_t.renderOrder=this.maxdepth-ie.stack.length,_t.$jsroot_order=et.$jsroot_depth,void 0!==D.info?.num_meshes&&(D.info.num_meshes++,D.info.num_faces+=_e.nfaces),_t}createInstancedMeshes(D,O,ie,_e,Oe){if(D.instancing<0)return!1;const $e=[];let et=1;for(let _t=0;_twn.nodeid===sn.nodeid);xn?(xn.entries.push(sn),et=Math.max(et,xn.entries.length)):tn.instances.push({nodeid:sn.nodeid,entries:[sn]})}return(D.instancing>0?et>2:ie.length>1e4&&et>10)?($e.forEach(_t=>{_t.used=!0,_t.instances.forEach(sn=>{const tn=sn.entries[0],xn=this.getDrawEntryProperties(tn,Oe);if(xn.material.wireframe=D.wireframe,xn.material.side=D.doubleside?Te.$EB:Te.hB5,1===sn.entries.length)this.createEntryMesh(D,O,tn,_t,Oe);else{const wn=[],Ut=[],qe=[],nt=[];if(sn.entries.forEach(at=>{const ut=this.resolveStack(at.stack,!0);ut.matrix.determinant()>-.9?(wn.push(ut.matrix),qe.push(at.stack)):(Ut.push(ut.matrix),nt.push(at.stack)),at.done=!0}),wn.length>0){const at=new Te.ZLX(_t.geom,xn.material,wn.length);at.stacks=qe,wn.forEach((ut,Qt)=>at.setMatrixAt(Qt,ut)),O.add(at),at.renderOrder=1,at.$jsroot_order=1,D.info.num_meshes++,D.info.num_faces+=_t.nfaces*wn.length}if(Ut.length>0){void 0===_t.geomZ&&(_t.geomZ=Si(_t.geom));const at=new Te.ZLX(_t.geomZ,xn.material,Ut.length);at.stacks=nt;const ut=(new Te.kn4).makeScale(1,1,-1);Ut.forEach((Qt,vn)=>{at.setMatrixAt(vn,Qt.multiply(ut))}),at._flippedMesh=!0,O.add(at),at.renderOrder=1,at.$jsroot_order=1,D.info.num_meshes++,D.info.num_faces+=_t.nfaces*Ut.length}}}),delete _t.instances}),!0):($e.forEach(_t=>{delete _t.instances}),!1)}getVolumeBoundary(D,O,ie){const _e={min:0,max:1,sortidcut:0};if(!this.sortmap)return console.error("sorting map do not exist"),_e;let Oe,$e,et=0,it=0;for(let _t=0;_t0)for(;_e>Oe&&ie.vislvl>1;)ie.vislvl--,ie.reset(),_e=this.scanVisible(ie);this.actual_level=ie.vislvl;let $e=0,et=0,it=-1,_t=10,sn=this.nodes.length+1;if(console.log(`Total visible nodes ${_e} numfaces ${ie.facecnt}`),ie.facecnt>D){const wn=this.getVolumeBoundary(ie.viscnt,D*(O?.8:1),Oe*(O?.8:1));if($e=wn.min,et=wn.max,sn=wn.sortidcut,O){ie.domatrix=!0,ie.frustum=O,ie.totalcam=0,ie.func=function(Ut){return Ut.vol<=$e&&this.frustum.CheckShape(this.getmatrix(),Ut)&&(this.viscnt[Ut.id]++,this.totalcam+=Ut.nfaces),!0};for(let Ut=0;Ut.2*D?this.getVolumeBoundary(ie.viscnt,.2*D,.2*Oe).min:0,_t=et/(it>0?it>0:$e)}}return ie.items=[],ie.func=function(tn){return tn.sortid=0&&tn.vol>it&&this.frustum.CheckShape(this.getmatrix(),tn)&&this.items.push(this.copyStack(_t)),!0},this.scanVisible(ie),{lst:ie.items,complete:0===$e}}mergeVisibles(D,O){let ie=0;const _e=[];for(let Oe=0;Oe_e.shape.factor&&(_e.shape.factor=_e.factor))}O.sort((ie,_e)=>_e.vol*_e.factor-ie.vol*ie.factor);for(let ie=0;ie=O)$e.done=!0;else if(_e>.01*D.length&&void 0!==ie&&(new Date).getTime()-Oe>ie)return $e}return $e.done=!0,$e}static formatServerElement(D){D.kind=2,D.vis=2;const O=D.matr;if(delete D.matr,!O?.length)return D;if(16===O.length)D.matrix=O;else{const ie=D.matrix=new Array(16);ie.fill(0),ie[0]=ie[5]=ie[10]=ie[15]=1,3===O.length?(ie[12]=O[0],ie[13]=O[1],ie[14]=O[2]):4===O.length?(ie[0]=O[0],ie[5]=O[1],ie[10]=O[2],ie[15]=O[3]):9===O.length?(ie[0]=O[0],ie[4]=O[1],ie[8]=O[2],ie[1]=O[3],ie[5]=O[4],ie[9]=O[5],ie[2]=O[6],ie[6]=O[7],ie[10]=O[8]):console.error(`wrong number of elements ${O.length} in the matrix`)}return D}}function Si(oe){let D=oe.getAttribute("position").array,O=oe.getAttribute("normal").array;const ie=oe.getIndex();if(ie){const it=ie.array,_t=oe.drawRange.start;let sn=oe.drawRange.count;_t+sn>it.length&&(sn=it.length-_t);const tn=new Float32Array(3*sn),xn=new Float32Array(3*sn);for(let wn=0;wn=D.length)&&console.log(`strange index ${3*Ut} totallen = ${D.length}`),tn[3*wn]=D[3*Ut],tn[3*wn+1]=D[3*Ut+1],tn[3*wn+2]=D[3*Ut+2],xn[3*wn]=O[3*Ut],xn[3*wn+1]=O[3*Ut+1],xn[3*wn+2]=O[3*Ut+2]}D=tn,O=xn}const _e=D.length,Oe=new Float32Array(_e),$e=new Float32Array(_e);for(let it=0,_t=0;it<_e;it+=3)Oe[it]=D[it+_t],Oe[it+1]=D[it+1+_t],Oe[it+2]=-D[it+2+_t],$e[it]=O[it+_t],$e[it+1]=O[it+1+_t],$e[it+2]=-O[it+2+_t],_t+=3,6===_t&&(_t=-3);const et=new Te.LoY;return et.setAttribute("position",new Te.THS(Oe,3)),et.setAttribute("normal",new Te.THS($e,3)),et}function Jn(oe,D,O){if(!oe?.geometry)return D;if(D||(D=(new Te.NRn).makeEmpty()),oe.isInstancedMesh){const Oe=new Te.kn4,$e=(new Te.NRn).makeEmpty();oe.geometry.computeBoundingBox();for(let et=0;et{sn.renderOrder=sn.defaultOrder||0,sn.material&&(sn.material.depthWrite=!0)})}function $e(_t,sn,tn){if(_t.children)for(let xn=0;xn<_t.children.length;++xn){const wn=_t.children[xn];wn.$jsroot_order===sn?wn.material&&(wn.material.transparent?(wn.material.depthWrite=!1,tn.push(wn)):Oe(wn)):(void 0===_t.$jsroot_depth||_t.$jsroot_depth1e3){for(let Ut=0;Ut<_t.length;++Ut)_t[Ut].renderOrder=(sn+tn)/2;return!1}const xn=new Te.Pq0;for(let Ut=0;Ut<_t.length;++Ut){const qe=_t[Ut];let nt=qe.$jsroot_box3;if(nt||(qe.$jsroot_box3=nt=Jn(qe)),"size"===O){const Qt=nt.getSize(new Te.Pq0);qe.$jsroot_distance=Qt.x*Qt.y*Qt.z;continue}if("pnt"===O){qe.$jsroot_distance=D.distanceTo(nt.getCenter(xn));continue}let at=Math.min(D.distanceTo(nt.min),D.distanceTo(nt.max));const ut=new Te.Pq0(nt.min.x,nt.min.y,nt.max.z);at=Math.min(at,D.distanceTo(ut)),ut.set(nt.min.x,nt.max.y,nt.min.z),at=Math.min(at,D.distanceTo(ut)),ut.set(nt.max.x,nt.min.y,nt.min.z),at=Math.min(at,D.distanceTo(ut)),ut.set(nt.max.x,nt.max.y,nt.min.z),at=Math.min(at,D.distanceTo(ut)),ut.set(nt.max.x,nt.min.y,nt.max.z),at=Math.min(at,D.distanceTo(ut)),ut.set(nt.min.x,nt.max.y,nt.max.z),at=Math.min(at,D.distanceTo(ut)),qe.$jsroot_distance=at}_t.sort((Ut,qe)=>Ut.$jsroot_distance-qe.$jsroot_distance);const wn=new Array(_t.length);for(let Ut=0;Ut<_t.length;++Ut)_t[Ut].$jsroot_index=Ut,wn[Ut]=_t[Ut];if("ray"===O)for(let Ut=_t.length-1;Ut>=0;--Ut){const qe=_t[Ut];let at,ut=qe.$jsroot_box3.getCenter(xn);for(let Qt=0;Qt<2;++Qt){ut.sub(D).normalize(),_e.set(D,ut),at=_e.intersectObjects(_t,!1)||[];const vn=[];for(let jt=0;jt0&&console.log(`MISS ${ie?.resolveStack(qe.stack)?.name}`),at.indexOf(qe)>=0||Qt>0)break;const en=qe.geometry.attributes.position.array;ut=new Te.Pq0((en[0]+en[3]+en[6])/3,(en[1]+en[4]+en[7])/3,(en[2]+en[5]+en[8])/3),ut.applyMatrix4(qe.matrixWorld)}for(let Qt=0;Qt{"use strict";Se.d(mt,{TB:()=>Ve,fm:()=>He,iF:()=>Re,rb:()=>ke.rb});var Te=Se(4882),x=Se(8872),L=Se(8362),ve=Se(2843),ke=Se(1922),ot=Se(4246);function Re(De,F){return De<.5?F?"%S.%L":"%H:%M:%S.%L":De<30?F?"%Mm%S":"%H:%M:%S":(De/=60)<30?F?"%Hh%M":"%d/%m %H:%M":(De/=60)<12?F?"%d-%Hh":"%d/%m/%y %Hh":(De/=24)<15.218425?F?"%d/%m":"%d/%m/%y":(De/=30.43685)<6?"%d/%m/%y":(De/=12)<2?F?"%m/%y":"%d/%m/%y":"%Y"}const He={initAxisPainter(){this.name="yaxis",this.kind="normal",this.func=null,this.order=0,this.full_min=0,this.full_max=1,this.scale_min=0,this.scale_max=1,this.ticks=[]},cleanupAxisPainter(){this.ticks=[],delete this.format,delete this.func,delete this.tfunc1,delete this.tfunc2,delete this.gr},assignFrameMembers(De,F){De[`gr${F}`]=this.gr,De[`log${F}`]=this.log,De[`scale_${F}min`]=this.scale_min,De[`scale_${F}max`]=this.scale_max},convertDate(De){return new Date(this.timeoffset+1e3*De)},revertPoint(De){const F=this.func.invert(De);return"time"===this.kind?(F-this.timeoffset)/1e3:F},formatTime(De,F){return F?this.tfunc1(De):this.tfunc2(De)},formatLog(De,F,J){const Y=parseFloat(De),he=Math.round(Y);if(!F)return he===Y&&Math.abs(he)<1e9?he.toString():(0,ve.lg)(Y,J||x.gStyle.fStatFormat);if(Y<=0)return null;let Q=Math.log10(Y);const me=this.logbase;return 10!==me&&(Q/=Math.log10(me)),this.moreloglabels||Math.abs(Q-Math.round(Q))<.001?this.noexp||2===F?Math.abs(me-Math.E)<.001?(0,ve.lg)(Y,J||x.gStyle.fStatFormat):Y.toFixed(Q<0?Math.round(.5-Q):0):this.formatExp(me,Math.floor(Q+.01),Y):null},formatNormal(De,F,J){let Y=parseFloat(De);if(F&&this.order&&(Y/=Math.pow(10,this.order)),x.gStyle.fStripDecimals&&Y===Math.round(Y))return Math.abs(Y)<1e9?Y.toFixed(0):Y.toExponential(4);if(F){if(this.ndig>10)return Y.toExponential(this.ndig-11);let he=Y.toFixed(this.ndig);const Q=he.indexOf(".");if(Q>0&&x.settings.StripAxisLabels)for(;he.length>=Q&&("0"===he[he.length-1]||"."===he[he.length-1]);)he=he.slice(0,he.length-1);return he}return(0,ve.lg)(Y,J||x.gStyle.fStatFormat)},formatExp(De,F,J){let Y="";if(J&&0!==(J=Math.round(J/Math.pow(De,F)))&&1!==J&&(Y=J.toString()+(x.settings.Latex?"#times":"x")),Math.abs(De-Math.E)<.001?Y+="e":Y+=De.toString(),x.settings.StripAxisLabels){if(0===F)return"1";if(1===F)return Y}if(x.settings.Latex>x.constants.Latex.Symbols)return Y+`^{${F}}`;const he={0:"\u2070",1:"\xb9",2:"\xb2",3:"\xb3",4:"\u2074",5:"\u2075",6:"\u2076",7:"\u2077",8:"\u2078",9:"\u2079","-":"\u207b"},Q=F.toString();for(let me=0;me{let Q=0,me=0;for(let $=1;$4&&J(Y);)F=Math.round(.8*F),Y=De.ticks(F);if(F<5&&J(Y)&&this.logbase&&10!==this.logbase){const he=[];Y.forEach(Q=>{const me=Math.log10(Q)/Math.log10(this.logbase);Math.abs(Math.round(me)-me)<.01&&he.push(Q)}),he.length>0&&(Y=he)}return Y},produceTicks(De,F){if(!this.noticksopt){const he=De*(F||1);if(this.log)return this.poduceLogTicks(this.func,he);const Q=this.func.domain(),me=$=>$.length<=he||!($.length>he+1)&&($[0]===Q[0]||$[he]===Q[1]),X=this.func.ticks(he);if(F||me(X))return X;const B=this.func.ticks(Math.round(.7*he));return B.length>2&&me(B)?B:X}const J=this.func.domain(),Y=[];F&&(De=(De-1)*F);for(let he=0;he<=De;++he)Y.push((J[0]*(De-he)+J[1]*he)/De);return Y},analyzeWheelEvent(De,F,J,Y){J||(J={});let he=0,Q=1,me=1;if("dleft"in J&&(Q=J.dleft,he=1),"dright"in J&&(me=J.dright,he=1),J.delta?he=J.delta:De&&(he=De.wheelDelta?-De.wheelDelta:De.deltaY||De.detail),!he||Y&&J.ignore)return;he=he<0?-.2:.2,Q*=he,me*=he;const X=J.min=this.scale_min,B=J.max=this.scale_max,$=this.full_min,g=this.full_max;if(J.min===J.max&&he<0&&(J.min=$,J.max=g),!(J.min>=J.max)){if(J.reverse&&(F=1-F),F>0&&F<1){if(this.log){let E=J.min>0?Math.log10(J.max/J.min):2;E>10?E=10:E<.01&&(E=.01),J.min=J.min/Math.pow(10,E*Q*F),J.max=J.max*Math.pow(10,E*me*(1-F))}else if(Q!==-me||J.reverse){let E=J.max-J.min,_=E;Q>0&&(E=1.001*E/(1-Q)),J.min+=-Q*F*E,me>0&&(_=1.001*_/(1-me)),J.max-=-me*(1-F)*_}else{let E=(J.max-J.min)*me*F;Math.round(J.max)===J.max&&Math.round(J.min)===J.min&&Math.abs(E)>1&&(E=Math.round(E)),J.min+E<$?E=$-J.min:J.max+E>g&&(E=g-J.max),0!==E?(J.min+=E,J.max+=E):(delete J.min,delete J.max)}J.min>=J.max?J.min=J.max=void 0:Q!==me?(J.min<$&&X===$||J.max>g&&B===g)&&(J.min=J.max=void 0):(J.min<$&&(J.min=$),J.max>g&&(J.max=g))}else J.min=J.max=void 0;return J.changed=void 0!==J.min&&void 0!==J.max,J}}};class Ve extends ke.JW{constructor(F,J,Y){super(F,J),this.is_gaxis=J?._typename===x.clTGaxis,Object.assign(this,He),this.initAxisPainter(),this.embedded=Y,this.invert_side=!1,this.lbls_both_sides=!1}cleanup(){this.cleanupAxisPainter(),super.cleanup()}getAxisType(){return x.clTAxis}configureAxis(F,J,Y,he,Q,me,X,B){this.name=F,this.full_min=J,this.full_max=Y,this.kind="normal",this.vertical=me,this.log=B.log||0,this.noexp_changed=B.noexp_changed,this.symlog=B.symlog||!1,this.reverse=B.reverse||!1,this.swap_side=B.swap_side||!1,this.fixed_ticks=B.fixed_ticks||null,this.maxTickSize=B.maxTickSize||0;const $=this.getObject();if(B.time_scale||$.fTimeDisplay?(this.kind="time",this.timeoffset=function Ye(De){if(!De)return 7889184e5;const J=De.fTimeFormat.indexOf("%F");if(J<0)return 1e3*x.gStyle.fTimeOffset;let Y=De.fTimeFormat.slice(J+2);if(0===Y.indexOf("1995-01-01 00:00:00s0"))return 7889184e5;if("0"===Y||""===Y)return 0;const he=(p,C,I)=>{const U=Y.indexOf(p);if(U<0)return C;const k=parseInt(Y.slice(0,U));return Y=Y.slice(U+1),!Number.isInteger(k)||kI?C:k},Q=he("-",1900,2900),me=he("-",1,12)-1,X=he(" ",1,31),B=he(":",0,23),$=he(":",0,59),g=he("s",0,59),E=he(" ",0,999);let v=new Date(Date.UTC(Q,me,X,B,$,g,E)).getTime();if(Y=Y.toUpperCase(),0===Y.indexOf("GMT")&&(Y=Y.slice(4).trim(),Y.length>3)){let p=0,C=1e3;"-"===Y[0]&&(p=1,C=-1e3),v-=C*(3600*parseInt(Y.slice(p,p+2))+60*parseInt(Y.slice(p+2,p+4)))}return v}($),this.timegmt=function Ze(De){const F=De?.fTimeFormat??"";return F.indexOf("gmt")>0||F.indexOf("GMT")>0}($)):this.kind=B.axis_func?"func":$.fLabels?"labels":"normal","time"===this.kind)this.func=(0,L.w7)().domain([this.convertDate(he),this.convertDate(Q)]);else if(this.log){if(this.logbase=1===this.log||10===this.log?10:3===this.log?Math.E:Math.round(this.log),Q<=0&&(Q=1),he<=0&&$&&!B.logcheckmin)for(let _=0;_<$.fNbins&&!((he=Math.max(he,$.GetBinLowEdge(_+1)))>0);++_);he<=0&&B.log_min_nz&&(he=this.log_min_nz=B.log_min_nz),(he<=0||he>=Q)&&(he=Q*(B.logminfactor||1e-4)),this.func="func"===this.kind?this.createFuncHandle(B.axis_func,this.logbase,he,Q):(0,L.ZE)().base(this.logbase).domain([he,Q])}else if(this.symlog){let _=Math.max(Math.abs(he),Math.abs(Q));Number.isInteger(this.symlog)&&this.symlog>0?_*=Math.pow(10,-1*this.symlog):_*=.01,this.func=(0,L.aX)().constant(_).domain([he,Q])}else this.func="func"===this.kind?this.createFuncHandle(B.axis_func,0,he,Q):(0,L.m4)().domain([he,Q]);if(this.vertical^this.reverse){const _=X[0];X[0]=X[1],X[1]=_}this.func.range(X),this.scale_min=he,this.scale_max=Q,this.gr="time"===this.kind?_=>this.func(this.convertDate(_)):this.log?_=>_20&&(this.nticks=20);let E=Math.abs(this.func.range()[1]-this.func.range()[0]);if(E<=0&&(E=100),"time"===this.kind){this.nticks>8&&(this.nticks=8);const _=this.scale_max-this.scale_min,v=$.fTimeFormat.indexOf("%F"),p=Re(_/E,!1);let C=v>=0?$.fTimeFormat.slice(0,v):$.fTimeFormat;(!C||_<.1*(this.full_max-this.full_min))&&(C=Re(_/this.nticks,!0)),this.tfunc1=this.tfunc2=this.timegmt?(0,L.aL)(C):(0,L.DC)(C),p!==C&&(this.tfunc2=this.timegmt?(0,L.aL)(p):(0,L.DC)(p)),this.format=this.formatTime}else if(this.log)this.nticks2>1&&(this.nticks*=this.nticks2,this.nticks2=1),this.noexp=$?.TestBit(ke.rb.kNoExponent),this.scale_max<300&&this.scale_min>.3&&!this.noexp_changed&&(this.noexp=!0),this.moreloglabels=$?.TestBit(ke.rb.kMoreLogLabels),this.format=this.formatLog;else if("labels"===this.kind){this.nticks=50;const _=this.scale_max-this.scale_min;this.nticks>_&&(this.nticks=Math.round(_)),this.regular_labels=!0,$&&$.fNbins&&$.fLabels&&($.fNbins!==Math.round($.fXmax-$.fXmin)||0!==$.fXmin||$.fXmax!==$.fNbins)&&(this.regular_labels=!1),this.nticks2=1,this.format=this.formatLabels}else this.order=0,this.ndig=0,this.format=this.formatNormal}getScaleMin(){return this.func?.domain()[0]??0}getScaleMax(){return this.func?.domain()[1]??0}formatLabels(F){const J=this.getObject();let Y=parseFloat(F);if(Y=this.regular_labels?Math.floor(Y):Math.round((Y-J.fXmin)/(J.fXmax-J.fXmin)*J.fNbins),Y<0||Y>=J.fNbins)return null;for(let he=0;he{X>=this.scale_min&&X<=this.scale_max&&me.push(X)});else if("labels"!==this.kind||this.regular_labels)me=this.produceTicks(this.nticks);else{me=[],Q.lbl_pos=[];const X=this.getObject();for(let B=0;B=this.scale_min&&$this.scale_min&&me.push($))}}if(Q.minor=Q.middle=Q.major=me,F){const X=Q.major,B=1e-5*(this.scale_max-this.scale_min);return X[0]>this.scale_min+B&&X.unshift(this.scale_min),X[X.length-1]1&&(!this.log||10===this.logbase)&&!this.fixed_ticks){Q.minor=Q.middle=this.produceTicks(Q.major.length,this.nticks2);const X=Math.abs(this.func.range()[1]-this.func.range()[0]);Q.middle.length<=Q.major.length||Q.middle.length>X/3.5?Q.minor=Q.middle=Q.major:this.nticks3>1&&!this.log&&(Q.minor=this.produceTicks(Q.middle.length,this.nticks3),(Q.minor.length<=Q.middle.length||Q.minor.length>X/1.7)&&(Q.minor=Q.middle))}if(Q.reset=function(){this.nminor=this.nmiddle=this.nmajor=0},Q.next=function(X){return!(this.nminor>=this.minor.length||(this.tick=this.minor[this.nminor++],this.grpos=this.func(this.tick),X&&(this.grpos=Math.round(this.grpos)),this.kind=3,this.nmiddle=this.major.length?null:this.func(this.major[this.nmajor])},Q.get_modifier=function(){return this.painter.findLabelModifier(this.painter.getObject(),this.nmajor-1,this.major)},this.order=0,this.ndig=0,("normal"===this.kind||"func"===this.kind)&&!this.log&&Q.major.length>0){let X=0,B=0,$=!1;if(!J){const v=Math.max(Math.abs(Q.major[0]),Math.abs(Q.major[Q.major.length-1])),p=Math.min(Math.abs(Q.major[0]),Math.abs(Q.major[Q.major.length-1])),C=v>0?3*Math.round(Math.log10(v)/3):0,I=p>0?3*Math.round(Math.log10(p)/3):0;$=v<2e4,(v||p)&&(X=Math.max(C,I)+3,B=Math.min(C,I)-3)}let g=0,E=this.ndig,_=1e10;for(let v=B;v<=X;v+=3){if($&&3===v)continue;this.order=v,this.ndig=0;let p=[],C=0,I=0;for(;Cx.gStyle.fAxisMaxDigits||k<0&&U.length>x.gStyle.fAxisMaxDigits)&&(I+=1e10,$=!1),I+=U.length,C++}else{if(++this.ndig>15)break;p=[],C=0,I=0}}!v&&this.ndig<4&&(I-=2*Q.major.length+3),I<_&&(_=I,g=this.order,E=this.ndig)}this.order=g,this.ndig=E,he&&(this.order&&console.warn(`Axis painter - integer labels are configured, but axis order ${this.order} is preferable`),this.ndig&&console.warn(`Axis painter - integer labels are configured, but ${this.ndig} decimal digits are required`),this.ndig=0,this.order=0)}return Q}isCenteredLabels(){return"labels"===this.kind||!this.log&&this.getObject()?.TestBit(ke.rb.kCenterLabels)}addTitleDrag(F,J,Y,he,Q){if(!x.settings.MoveResize||this.isBatchMode())return;let X,B,$,g,E,_,v,me=null;const p=(0,L.$E)().subject(Object);p.on("start",C=>{C.sourceEvent.preventDefault(),C.sourceEvent.stopPropagation();const I=F.node().getBBox(),U=J?I.height:I.width;$=X=F.property("shift_x"),g=B=F.property("shift_y"),E=J?X>0:B>0,_=J?[Q,Q/2,0]:[0,Q/2,Q];const k=J?-U/2:U/2;"middle"===this.title_align?(_[0]+=k,_[2]-=k):"begin"===this.title_align?(_[1]-=k,_[2]-=2*k):(_[0]+=2*k,_[1]+=k),v=this.titleCenter?1:he^this.titleOpposite?0:2,_[v]=J?B:X,me=F.append("rect").attr("x",I.x).attr("y",I.y).attr("width",I.width).attr("height",I.height).style("cursor","move").call(ve.Ru,!0)}).on("drag",C=>{if(!me)return;C.sourceEvent.preventDefault(),C.sourceEvent.stopPropagation(),X+=C.dx,B+=C.dy;let I,U,k=0;const Z=J?B:X;for(let ee=1;ee<3;++ee)Math.abs(Z-_[ee])0:U>0)&&($=I,g=U,v=k,(0,ve.bk)(F,$,g))}).on("end",C=>{if(!me)return;C.sourceEvent.preventDefault(),C.sourceEvent.stopPropagation(),F.property("shift_x",$).property("shift_y",g);const I=this.getObject(),U=this.source_axis,k=(ee,ue)=>{I&&I.TestBit(ee)!==ue&&I.InvertBit(ee),U&&U.TestBit(ee)!==ue&&U.InvertBit(ee)};this.titleOffset=(J?$:g)/Y;const Z=this.titleOffset/this.offsetScaling/this.titleSize;I&&(I.fTitleOffset=Z),U&&(U.fTitleOffset=Z),1===v?(k(ke.rb.kCenterTitle,!0),this.titleCenter=!0,k(ke.rb.kOppositeTitle,!1),this.titleOpposite=!1):0===v?(k(ke.rb.kCenterTitle,!1),this.titleCenter=!1,k(ke.rb.kOppositeTitle,!0),this.titleOpposite=!0):(k(ke.rb.kCenterTitle,!1),this.titleCenter=!1,k(ke.rb.kOppositeTitle,!1),this.titleOpposite=!1),this.submitAxisExec(`SetTitleOffset(${Z});;SetBit(${ke.rb.kCenterTitle},${this.titleCenter?1:0})`),me.remove(),me=null}),F.style("cursor","move").call(p)}setHistPainter(F,J){this.hist_painter=F,this.hist_axis=J}submitAxisExec(F,J){const Y=this.hist_painter?.snapid;Y&&this.hist_axis&&!J?this.submitCanvExec(F,`${Y}#${this.hist_axis}`):this.is_gaxis&&this.submitCanvExec(F)}produceTicksPath(F,J,Y,he,Q,me){let X="",B="";for(this.ticks=[];F.next(!0);){let $=Math.round(Y/4),g=0;F.kind<3&&($=Math.round(Y/2)),1===F.kind&&(null!==this.format(F.tick,!0)&&($=Y),this.ticks.push(F.grpos)),he>0?g=-$:J<0&&(g=-$,$=0),X+=this.vertical?`M${$},${F.grpos}H${g}`:`M${F.grpos},${-$}V${-g}`,Q&&(B+=this.vertical?`M${Q-$},${F.grpos}H${Q-g}`:`M${F.grpos},${Q+$}V${Q+g}`)}return me?X+B:""}findLabelModifier(F,J,Y){if(!F.fModLabs)return null;for(let he=0;he20&&fe>E-B&&(Z=Math.min(Z,(E-B)/fe));Z>1e-4&&Z<.7&&!b&&!W.vertical&&!C&&ee>5&&1===I.length&&!1===V&&(V=!0);let we=Z;V&&(T&&P?(we=Math.min(1,.8*T/P),we1e-4&&we<1||!1!==V)&&(ue=1/we,W.scaleTextDrawing(ue,I[0]))}v.lbls_both_sides&&I.push(F.append("svg:g").attr("class","axis_labels").attr("transform",v.vertical?`translate(${Y})`:`translate(0,${-he})`)),_>0&&(T=_/Math.sin(k/180*Math.PI)-Math.tan(k/180*Math.PI));for(let W=0;W0&&(me=-me);let fe=0;const we=v.vertical?-B*me:B*me+g*$;v.startTextDrawing(X,"font",I[W]);for(let Me=0;Me0&&(lt.color=v.getColor(Ge.fTextColor)),lt.gap_before=Me>0?Math.abs(Math.round(bt-v.func(U[Me-1]))):0,lt.gap_after=Me(v.vertical?he:Y)+5)continue}if(ee=Math.max(ee,je.length),v.vertical?(lt.x=we,lt.y=bt,lt.align=C?me<0?23:20:me<0?12:32):(lt.x=bt,lt.y=we,lt.align=C?me<0?12:32:me<0?20:23,!v.log||v.noexp||v.vertical||23!==lt.align?lt.align%10==3&&(lt.y-=.1*X.size):(lt.align=21,lt.y+=X.size)),C?lt.rotate=270:Ge&&-1!==Ge.fTextAngle&&(lt.rotate=-Ge.fTextAngle),0===W&&(lt.post_process=z),v.drawText(lt),fe&&bt!==fe&&(v.vertical&&!C||!v.vertical&&C)){const te=Math.abs(bt-fe);Z=Math.min(Z,.9*te/X.size)}fe=bt}if(v.order){let Me=0,je=0;"xaxis"===v.name?(Me=x.gStyle.fXAxisExpXOffset||0,je=x.gStyle.fXAxisExpYOffset||0):"yaxis"===v.name&&(Me=x.gStyle.fYAxisExpXOffset||0,je=x.gStyle.fYAxisExpYOffset||0),Me&&(Me=Math.round(Me*(v.getPadPainter()?.getPadWidth()??0))),je&&(je=Math.round(je*(v.getPadPainter()?.getPadHeight()??0))),v.drawText({color:X.color,x:Me+(v.vertical?5*me:Y+5),y:je+(v.has_obstacle?we:v.vertical?-3:-3*me),align:v.vertical?me<0?30:10:v.has_obstacle^me<0?13:10,latex:1,text:"#times"+v.formatExp(10,v.order),draw_g:I[W]})}}return v.finishTextDrawing(I[0],!0).then(()=>{if(I.length>1)return ue&&v.scaleTextDrawing(ue,I[1]),v.finishTextDrawing(I[1],!0)}).then(()=>(V&&I[0].selectAll("text").each(function(){const W=(0,L.Lt)(this),fe=W.attr("transform");W.attr("transform",`${fe} rotate(${k})`).style("text-anchor","start")}),P))})()}extractDrawAttributes(F,J,Y){const he=this.getObject(),Q=this.getPadPainter(),me=Q?.getPadWidth()||F||J/.8,X=Q?.getPadHeight()||F||Y/.8;let g,E,_,B=0,$=0;if(this.scalingSize=F||Math.max(Math.min(me,X),10),this.is_gaxis){const p=he.fChopt.indexOf("S")>=0;this.optionUnlab=he.fChopt.indexOf("U")>=0,this.optionMinus=he.fChopt.indexOf("-")>=0||he.TestBit(ke.rb.kTickMinus),this.optionPlus=he.fChopt.indexOf("+")>=0||he.TestBit(ke.rb.kTickPlus),this.optionNoopt=he.fChopt.indexOf("N")>=0,this.optionInt=he.fChopt.indexOf("I")>=0,this.optionText=he.fChopt.indexOf("T")>=0,this.createAttLine({attr:he}),$=F||(this.vertical?1.7*Y:.6*J),B=p?he.fTickSize:.03,g=this.getColor(he.fTextColor),E=he.fTextFont,_=he.fLabelOffset,(this.vertical&&he.fY1>he.fY2&&!this.optionMinus||!this.vertical&&he.fX1>he.fX2)&&(_=-_)}else this.optionUnlab=!1,this.optionMinus=this.vertical^this.invert_side,this.optionPlus=!this.optionMinus,this.optionNoopt=!1,this.optionInt=!1,this.optionText=!1,this.createAttLine({color:he.fAxisColor,width:1,style:1}),$=F||(this.vertical?me:X),B=he.fTickLength,g=this.getColor(he.fTitleColor),E=he.fTitleFont,_=he.fLabelOffset;_+=this.vertical?.002:.005,"labels"===this.kind&&(this.optionText=!0),this.optionNoexp=he.TestBit(ke.rb.kNoExponent),this.ticksSize=Math.round(B*$),F&&this.ticksSize<0&&(this.ticksSize=-this.ticksSize),this.maxTickSize&&this.ticksSize>this.maxTickSize&&(this.ticksSize=this.maxTickSize),this.ticksColor=this.lineatt.color,this.ticksWidth=this.lineatt.width;const v=this.optionText?.66666:1;this.labelSize=Math.round(he.fLabelSize<1?v*he.fLabelSize*this.scalingSize:v*he.fLabelSize),this.labelsOffset=Math.round(_*this.scalingSize),this.labelsFont=new ot.qg(he.fLabelFont,this.labelSize,F),(this.labelSize<=0||Math.abs(he.fLabelOffset)>1.1)&&(this.optionUnlab=!0),this.labelsFont.setColor(this.getColor(he.fLabelColor)),this.fTitle=he.fTitle,this.fTitle?(this.titleSize=he.fTitleSize>=1?he.fTitleSize:Math.round(he.fTitleSize*this.scalingSize),this.titleFont=new ot.qg(E,this.titleSize,F),this.titleFont.setColor(g),this.offsetScaling=he.fTitleSize>=1?1:(this.vertical?me:X)/this.scalingSize,this.titleOffset=he.fTitleOffset,!this.titleOffset&&"x"===this.name[0]&&(this.titleOffset=x.gStyle.fXaxis.fTitleOffset),this.titleOffset*=this.titleSize*this.offsetScaling,this.titleCenter=he.TestBit(ke.rb.kCenterTitle),this.titleOpposite=he.TestBit(ke.rb.kOppositeTitle)):(delete this.titleSize,delete this.titleFont,delete this.offsetScaling,delete this.titleOffset,delete this.titleCenter,delete this.titleOpposite)}drawAxis(F,J,Y,he,Q,me,X,B,$){var g=this;return(0,Te.A)(function*(){const E=g.getObject(),_=g.swap_side||!1;let v=F,p=!0;Q?g.invert_side&&(Q=-Q):Q=0,g.extractDrawAttributes(void 0,J,Y),g.is_gaxis&&(p=0!==E.fLineColor),g.lineatt.not_standard=!0,(!g.is_gaxis||"zaxis"===g.name)&&(v=F.selectChild(`.${g.name}_container`),v.empty()?v=F.append("svg:g").attr("class",`${g.name}_container`):v.selectAll("*").remove());let C="";p&&(C="M0,0"+(g.vertical?`v${Y}`:`h${J}`),Q&&(C+=g.vertical?`M${Q},0v${Y}`:`M0,${Q}h${J}`)),v.attr("transform",he);let I=1,U=0;g.optionPlus&&g.optionMinus?(I=1,U=1):g.optionMinus?I=_^g.vertical?1:-1:g.optionPlus&&(I=_^g.vertical?-1:1);const k=g.createTicks(!1,g.optionNoexp,g.optionNoopt,g.optionInt);C+=g.produceTicksPath(k,I,g.ticksSize,U,Q,p&&!me&&!g.disable_ticks),!me&&C&&!g.lineatt.empty()&&v.append("svg:path").attr("d",C).call(g.lineatt.func);let Z=0,ee=0,ue=null,V=0;return(me||g.optionUnlab?Promise.resolve(0):g.drawLabels(v,E,J,Y,k,I,g.labelsFont,g.labelsOffset,g.ticksSize,U,X,$)).then(P=>{if(V=P,x.settings.Zooming&&!g.disable_zooming&&!g.isBatchMode()){const we=Math.max(g.labelsFont.size,5),Me=v.append("svg:rect").attr("class","axis_zoom").style("opacity","0").style("cursor","crosshair");if(g.vertical){const je=(V||2*we)+3;Me.attr("x",I>0?-je:0).attr("y",0).attr("width",je).attr("height",Y)}else Me.attr("x",0).attr("y",I>0?0:-we-3).attr("width",J).attr("height",we+3)}if(g.position=0,B){const we=v.node(),Me=g.getPadSvg().node();if(we&&Me&&we.getBoundingClientRect&&Me.getBoundingClientRect){const je=we.getBoundingClientRect(),Ge=Me.getBoundingClientRect();g.position=je.left-Ge.left}we&&!Me&&console.warn("Why PAD element missing when search for position")}if(!g.fTitle||me)return!0;ue=v.append("svg:g").attr("class","axis_title");let T=I;const z=E.TestBit(ke.rb.kRotateTitle)?-1:1;g.startTextDrawing(g.titleFont,"font",ue);const W=_^g.titleOpposite;return g.title_align=g.titleCenter?"middle":z<0^W?"begin":"end",g.vertical?(T*=-1.6,Z=Math.round(T*g.titleOffset),ee=Math.round(g.titleCenter?Y/2:W?Y:0),g.drawText({align:g.title_align+";middle",rotate:z<0?90:270,text:g.fTitle,color:g.titleFont.color,draw_g:ue})):(T*=1.6,Z=Math.round(g.titleCenter?J/2:W?0:J),ee=Math.round(T*g.titleOffset),g.drawText({align:g.title_align+";middle",rotate:z<0?180:0,text:g.fTitle,color:g.titleFont.color,draw_g:ue})),g.addTitleDrag(ue,g.vertical,T,_,g.vertical?Y:J),g.finishTextDrawing(ue)}).then(()=>(ue&&(!g.titleOffset&&g.vertical&&V&&(Z=Math.round(-I*(V+.7*g.offsetScaling*g.titleSize))),(0,ve.bk)(ue,Z,ee),ue.property("shift_x",Z).property("shift_y",ee)),g))})()}}},4483:(Yr,mt,Se)=>{"use strict";Se.r(mt),Se.d(mt,{TCanvasPainter:()=>Y,TPadPainter:()=>Ze.jg,drawTFrame:()=>B,drawTPadSnapshot:()=>me,ensureTCanvas:()=>he});var Te=Se(4882),x=Se(8872),L=Se(8362),ve=Se(5992),ke=Se(6157),ot=Se(1922),Ye=Se(5638),Ze=Se(5102);const Re=(0,x.BIT)(15),He=(0,x.BIT)(17),Ve=(0,x.BIT)(18),De=(0,x.BIT)(19),F=(0,x.BIT)(23);function J(g,E,_){const v=new Ye.nc(g,E);return v.addToPadPrimitives(),"3d"===_&&(v.mode3d=!0),v.redraw()}class Y extends Ze.jg{constructor(E,_){super(E,_,!0),this._websocket=null,this.tooltip_allowed=x.settings.Tooltip,null===E&&null===_&&(x.settings.SmallPad.width=20,x.settings.SmallPad.height=10)}cleanup(){this._changed_layout&&this.setLayoutKind("simple"),delete this._changed_layout,super.cleanup()}getLayoutKind(){const E=this.selectDom("origin");return(E.empty()?"":E.property("layout"))||"simple"}setLayoutKind(E,_){const v=this.selectDom("origin");v.empty()||(E||(E="simple"),v.property("layout",E),v.property("layout_selector","simple"!==E&&_?_:null),this._changed_layout="simple"!==E)}changeLayout(E,_){var v=this;return(0,Te.A)(function*(){if(v.getLayoutKind()===E)return!0;const C=v.selectDom("origin"),I=C.select(".side_panel2"),U=[];let ee,k=C.select(".side_panel"),Z=v.selectDom();for(;Z.node().firstChild;)U.push(Z.node().removeChild(Z.node().firstChild));if(k.empty()||(0,ot.tP)(k.node()),I.empty()||(0,ot.tP)(I.node()),v.setLayoutKind("simple"),C.html(""),"simple"===E){Z=C;for(let ue=0;ue(p.proj_painter[E]=ee,ee))}return(0,x.isStr)(p.proj_painter[E])?(console.log("Not ready with first painting",E),!0):(p.proj_painter[E].getMainPainter()?.updateObject(_,v),p.proj_painter[E].redrawPad())})()}testUI5(){return!!this.use_openui&&(console.warn("full ui5 should be used - not loaded yet? Please check!!"),!0)}drawInSidePanel(E,_,v){var p=this;return(0,Te.A)(function*(){const C="projxy"===p.getLayoutKind()&&"Y"===v?".side_panel2":".side_panel",I=p.selectDom("origin").select(C);return I.empty()?null:p.drawObject(I.node(),E,_)})()}showMessage(E){this.testUI5()||(0,ve.Rh)(E,7e3)}saveCanvasAsFile(E){const _=E.indexOf(".");this.createImage(E.slice(_+1)).then(v=>this.sendWebsocket(`SAVE:${E}:${v}`))}sendSaveCommand(E){this.sendWebsocket("PRODUCE:"+E)}submitMenuRequest(E,_,v){var p=this;return(0,Te.A)(function*(){return new Promise(C=>{p._getmenu_callback=C,p.sendWebsocket("GETMENU:"+v)})})()}submitExec(E,_,v){if(!this._readonly&&E&&(v||(v=E.snapid),v&&(0,x.isStr)(v)&&_))return this.sendWebsocket(`OBJEXEC:${v}:${_}`)}sendWebsocket(E){return this._websocket?.canSend()?(this._websocket.send(E),!0):(console.warn(`DROP SEND: ${E}`),!1)}closeWebsocket(E){this._websocket&&(this._websocket.close(E),this._websocket.cleanup(),delete this._websocket)}useWebsocket(E){this.closeWebsocket(),this._websocket=E,this._websocket.setReceiver(this),this._websocket.connect()}websocketTimeout(E,_){if(!this._websocket)return;this._websocket._tmouts||(this._websocket._tmouts={});const v=this._websocket._tmouts[E];if(void 0===_)return void 0!==v;"reset"===_?v&&(clearTimeout(v),delete this._websocket._tmouts[E]):!v&&Number.isInteger(_)&&(this._websocket._tmouts[E]=setTimeout(()=>{delete this._websocket._tmouts[E]},_))}onWebsocketOpened(){}onWebsocketClosed(){this.embed_canvas||(0,ve.W4)()}onWebsocketMsg(E,_){if("CLOSE"===_)this.onWebsocketClosed(),this.closeWebsocket(!0);else if("SNAP6:"===_.slice(0,6)){const v=_.indexOf(":",6),p=_.slice(6,v),C=(0,x.parse)(_.slice(v+1));this.syncDraw(!0).then(()=>{this.snapid||this.resizeBrowser(C.fSnapshot.fWindowWidth,C.fSnapshot.fWindowHeight),!this.snapid&&(0,x.isFunc)(this.setFixedCanvasSize)&&(this._online_fixed_size=this.setFixedCanvasSize(C.fSnapshot.fCw,C.fSnapshot.fCh,C.fFixedSize))}).then(()=>this.redrawPadSnap(C)).then(()=>{this.completeCanvasSnapDrawing();let I=this.getWebPadOptions();I&&(I=":"+I),E.send(`READY6:${p}${I}`),this.confirmDraw()})}else if("MENU:"===_.slice(0,5)){const v=(0,x.parse)(_.slice(5));(0,x.isFunc)(this._getmenu_callback)&&(this._getmenu_callback(v),delete this._getmenu_callback)}else if("CMD:"===_.slice(0,4)){const v=(_=_.slice(4)).indexOf(":"),p=_.slice(0,v),C=_.slice(v+1),I=`REPLY:${p}:`;"SVG"===C||"PNG"===C||"JPEG"===C?this.createImage(C.toLowerCase()).then(U=>E.send(I+U)):(console.log(`Unrecognized command ${C}`),E.send(I))}else if("DXPROJ:"===_.slice(0,7)||"DYPROJ:"===_.slice(0,7)){const v=_[1],p=(0,x.parse)(_.slice(7));this.websocketTimeout(`proj${v}`,"reset"),this.drawProjection(v,p)}else if("CTRL:"===_.slice(0,5)){const v=(0,x.parse)(_.slice(5))||{};let p=!1;if(void 0!==v.title&&typeof document<"u"&&(document.title=v.title),v.x&&v.y&&typeof window<"u"&&(window.moveTo(v.x,v.y),p=!0),v.w&&v.h&&(this.resizeBrowser(Number.parseInt(v.w),Number.parseInt(v.h)),p=!0),v.cw&&v.ch&&(0,x.isFunc)(this.setFixedCanvasSize)&&(this._online_fixed_size=this.setFixedCanvasSize(Number.parseInt(v.cw),Number.parseInt(v.ch),!0),p=!0),["Menu","StatusBar","Editor","ToolBar","ToolTips"].forEach(I=>{void 0!==v[I]&&this.showSection(I,"1"===v[I])}),v.edit){const I=this.findSnap(v.edit);I&&this.showSection("Editor",!0).then(()=>this.producePadEvent("select",I.getPadPainter(),I))}v.winstate&&typeof window<"u"&&("iconify"===v.winstate?window.blur():window.focus()),p&&this.sendResized(!0)}else console.log(`unrecognized msg ${_}`)}sendResized(E){if(!this.pad||typeof window>"u")return;const _=this.getPadWidth(),v=this.getPadHeight(),p=window.screenLeft,C=window.screenTop,I=window.outerWidth,U=window.outerHeight,k=this._online_fixed_size?1:0;E||(E=_>0&&v>0&&(this.pad.fCw!==_||this.pad.fCh!==v))&&(this.pad.fCw=_,this.pad.fCh=v),E&&this.sendWebsocket(`RESIZED:${JSON.stringify([p,C,I,U,_,v,k])}`)}clickPadButton(E,_){return"ToggleGed"===E?this.activateGed(this,null,"toggle"):"ToggleStatus"===E?this.activateStatusBar("toggle"):super.clickPadButton(E,_)}hasEventStatus(){return!this.testUI5()&&(this.brlayout?this.brlayout.hasStatus():(0,ke.gZ)()?.hasStatusLine()??!1)}canStatusBar(){return this.testUI5()||this.brlayout||(0,ke.gZ)()}activateStatusBar(E){this.testUI5()||(this.brlayout?this.brlayout.createStatusLine(23,E):(0,ke.gZ)()?.createStatusLine(23,E),this.processChanges("sbits",this))}showCanvasStatus(...E){this.testUI5()||(this.brlayout||(0,ke.gZ)()?.brlayout)?.showStatus(...E)}hasGed(){return!this.testUI5()&&(this.brlayout?.hasContent()??!1)}removeGed(){this.testUI5()||(this.registerForPadEvents(null),this.ged_view&&(this.ged_view.getController().cleanupGed(),this.ged_view.destroy(),delete this.ged_view),this.brlayout?.deleteContent(!0),this.processChanges("sbits",this))}getUi5PanelData(){return{jsroot:{settings:x.settings,create:x.create,parse:x.parse,toJSON:x.toJSON,loadScript:x.loadScript,EAxisBits:ot.rb,getColorExec:ve.pp}}}activateGed(E,_,v){var p=this;return(0,Te.A)(function*(){if(p.testUI5()||!p.brlayout)return!1;if(p.brlayout.hasContent())return"toggle"===v||!1===v?p.removeGed():E?.getPadPainter()?.selectObjectPainter(E),!0;if(!1===v)return!1;const C=p.brlayout.createBrowserBtns();return ve.IK.createSVG(C,ve.IK.diamand,15,"toggle fix-pos mode","browser").style("margin","3px").on("click",()=>p.brlayout.toggleKind("fix")),ve.IK.createSVG(C,ve.IK.circle,15,"toggle float mode","browser").style("margin","3px").on("click",()=>p.brlayout.toggleKind("float")),ve.IK.createSVG(C,ve.IK.cross,15,"delete GED","browser").style("margin","3px").on("click",()=>p.removeGed()),p.brlayout.setBrowserContent("
Loading GED ...
"),p.brlayout.setBrowserTitle("GED"),p.brlayout.toggleBrowserKind(_||"float"),new Promise(I=>{(0,ve.cA)().then(U=>{(0,L.Lt)("#ged_placeholder").text(""),U.ui.require(["sap/ui/model/json/JSONModel","sap/ui/core/mvc/XMLView"],(k,Z)=>{const ee=new k({handle:null});Z.create({viewName:"rootui5.canv.view.Ged",viewData:p.getUi5PanelData("Ged")}).then(ue=>{ue.setModel(ee),ue.placeAt("ged_placeholder"),p.ged_view=ue,p.registerForPadEvents(ue.getController().padEventsReceiver.bind(ue.getController())),E?.getPadPainter()?.selectObjectPainter(E),console.log("activate GED"),p.processChanges("sbits",p),I(!0)})})})})})()}showSection(E,_){var v=this;return(0,Te.A)(function*(){if(v.testUI5())return!1;switch(E){case"Menu":case"ToolBar":break;case"StatusBar":v.activateStatusBar(_);break;case"Editor":return v.activateGed(v,null,!!_);case"ToolTips":v.setTooltipAllowed(_)}return!0})()}completeCanvasSnapDrawing(){this.pad&&(typeof document<"u"&&!this.embed_canvas&&this._websocket&&(document.title=this.pad.fTitle),!this._all_sections_showed&&(this._all_sections_showed=!0,this.showSection("Menu",this.pad.TestBit(He)),this.showSection("StatusBar",this.pad.TestBit(Re)),this.showSection("ToolBar",this.pad.TestBit(Ve)),this.showSection("Editor",this.pad.TestBit(De)),this.showSection("ToolTips",this.pad.TestBit(F)||this._highlight_connect)))}processHighlightConnect(E){if(!E||0===E.length||!this._highlight_connect||!this._websocket||this.doingDraw()||!this._websocket.canSend(2))return;const _=E[0]||E[1];if(!(_&&_.painter&&_.painter.snapid&&_.user_info))return;const v=_.painter.getPadPainter()||this;if(!v.snapid)return;const p=[v.snapid,_.painter.snapid,"0","0"];void 0!==_.user_info.binx&&void 0!==_.user_info.biny?(p[2]=_.user_info.binx.toString(),p[3]=_.user_info.biny.toString()):void 0!==_.user_info.bin&&(p[2]=_.user_info.bin.toString());const C=JSON.stringify(p);this._last_highlight_msg!==C&&(this._last_highlight_msg=C,this.sendWebsocket(`HIGHLIGHT:${C}`))}processChanges(E,_,v){if(!this._websocket||this._readonly||!this._websocket.canSend(2)||!(0,x.isStr)(E))return;let p="";switch(_||(_=this),E){case"sbits":p="STATUSBITS:"+this.getStatusBits();break;case"frame":case"zoom":(0,x.isFunc)(_.getWebPadOptions)||(_=_.getPadPainter()),(0,x.isFunc)(_.getWebPadOptions)&&(p="OPTIONS6:"+_.getWebPadOptions("only_this"));break;case"padpos":p="OPTIONS6:"+_.getWebPadOptions("with_subpads");break;case"drawopt":_.snapid&&(p="DRAWOPT:"+JSON.stringify([_.snapid.toString(),_.getDrawOpt()||""]));break;case"pave_moved":{const C=(0,Ze.O4)(_);C&&(p="PRIMIT6:"+(0,x.toJSON)(C));break}case"logx":case"logy":case"logz":{const C=_.getPadPainter();C?.snapid&&C?.pad&&(_=C,E=`exec:${"SetLog"+E[3]}(${C.pad["fLog"+E[3]]})`);break}}if(!p&&(0,x.isFunc)(_?.getSnapId)&&"exec:"===E.slice(0,5)){const C=_.getSnapId(v);C&&(p="PRIMIT6:"+(0,x.toJSON)({_typename:"TWebObjectOptions",snapid:C,opt:E.slice(5),fcust:"exec",fopt:[]}))}p?this._websocket.send(p):console.log(`Unprocessed changes ${E} for painter of ${_?.getObject()?._typename} subelem ${v}`)}selectActivePad(E,_,v){if(!this.snapid||!E)return;let p=null,C=!1;const I=E.matchObjectType(Ze.cw);E.snapid&&this._websocket&&(p={_typename:"TWebPadClick",padid:E.snapid.toString(),objid:"",x:-1,y:-1,dbl:!1}),!E.is_active_pad&&!I&&(C=!0,this.forEachPainterInPad(U=>U.drawActiveBorder(null,U===E),"pads")),void 0!==_?.snapid&&p&&(C=!0,p.objid=_.snapid.toString()),v&&p&&(C=!0,p.x=Math.round(v.x||0),p.y=Math.round(v.y||0),v.dbl&&(p.dbl=!0)),p&&(C||I)&&this.sendWebsocket("PADCLICKED:"+(0,x.toJSON)(p))}getStatusBits(){let E=0;return this.hasEventStatus()&&(E|=Re),this.hasGed()&&(E|=De),this.isTooltipAllowed()&&(E|=F),this.use_openui&&(E|=He),E}produceJSON(){const E=this.getObject(),_=0===E.fFillStyle;_&&(E.fFillStyle=1001),this.normal_canvas||this.forEachPainterInPad(p=>{if(p.isSecondary())return;const C=p.getObject();C?._typename&&E.fPrimitives.Add(C,p.getDrawOpt())},"objects");const v=(0,x.toJSON)(E);return _&&(E.fFillStyle=0),this.normal_canvas||E.fPrimitives.Clear(),v}resizeBrowser(E,_){!E||!_||this.isBatchMode()||this.embed_canvas||this.batch_mode||this._websocket?.resizeWindow(E,_)}static draw(E,_,v){return(0,Te.A)(function*(){const p=!_;p&&(_=(0,x.create)(x.clTCanvas));const C=new Y(E,_);if(C.checkSpecialsInPrimitives(_),!p&&_.fCw&&_.fCh&&!C.isBatchMode()){const I=C.selectDom().node().getBoundingClientRect();!I.height&&I.width>.1*_.fCw&&(C.selectDom().style("width",_.fCw+"px").style("height",_.fCh+"px"),C._fixed_size=!0)}return C.decodeOptions(v),C.normal_canvas=!p,C.createCanvasSvg(0),C.addPadButtons(),p&&v.indexOf("noframe")<0&&J(E,null),(0,ot.QD)({pp:C,active:!0}),C.drawPrimitives().then(()=>(C.showPadButtons(),C))})()}}function he(g,E){return Q.apply(this,arguments)}function Q(){return(Q=(0,Te.A)(function*(g,E){if(!g)return Promise.reject(Error("Painter not provided in ensureTCanvas"));const _=!1===E||"3d"===E?"noframe":"";return(g.getCanvSvg().empty()?Y.draw(g.getDom(),null,_):Promise.resolve(!0)).then(()=>(!1!==E&&g.getFrameSvg().selectChild(".main_layer").empty()&&!g.getFramePainter()&&J(g.getDom(),null,E),g.addToPadPrimitives(),g))})).apply(this,arguments)}function me(g,E){return X.apply(this,arguments)}function X(){return(X=(0,Te.A)(function*(g,E){const _=(0,x.create)(x.clTCanvas),v=new Y(g,_);return v.normal_canvas=!1,v.addPadButtons(),v.syncDraw(!0).then(()=>v.redrawPadSnap(E)).then(()=>(v.confirmDraw(),v.showPadButtons(),v))})).apply(this,arguments)}function B(g,E,_){return $.apply(this,arguments)}function $(){return($=(0,Te.A)(function*(g,E,_){const v=new Ye.nc(g,E);return v.mode3d="3d"===_,he(v,!1).then(()=>v.redraw())})).apply(this,arguments)}},5638:(Yr,mt,Se)=>{"use strict";Se.d(mt,{G_:()=>g,WJ:()=>$,nc:()=>_,qP:()=>Y,wM:()=>E});var Te=Se(4882),x=Se(8872),L=Se(8362),ve=Se(2843),ke=Se(1922),ot=Se(4082),Ye=Se(2866),Ze=Se(4246),Re=Se(7900),He=Se(5992);const De=3e-4;function F(v,p){if(!v)return;const C=v.getFramePainter();(0,x.isFunc)(C?.setTooltipEnabled)&&(C.setTooltipEnabled(p),C.processFrameTooltipEvent(null)),(0,x.isFunc)(v.control?.setTooltipEnabled)&&v.control.setTooltipEnabled(p)}function J(v,p){return v.$touch_arr??(0,L.D_)(v,p)}function Y(v){switch(v){case 1:return(p,C)=>{const I=Math.PI/180,U=p/2*I,k=C*I,Z=Math.sqrt(2),ee=2*Z/Math.PI,ue=Math.cos(k),V=Math.sqrt(1+ue*Math.cos(U));return{x:ue*Math.sin(U)*2*Z/V/ee/I,y:Math.sin(k)*Z/V/ee/I}};case 2:return(p,C)=>({x:p,y:Math.log(Math.tan((Math.PI/2+C/180*Math.PI)/2))});case 3:return(p,C)=>({x:p*Math.cos(C/180*Math.PI),y:C});case 4:return(p,C)=>({x:p*(2*Math.cos(2*C/180*Math.PI/3)-1),y:180*Math.sin(C/180*Math.PI/3)});case 5:return(p,C)=>{const I=C*Math.PI/180;let k,Z,U=I;for(let ee=0;ee<100;ee++){if(k=2*U+Math.sin(2*U)-Math.PI*Math.sin(I),Z=4*Math.cos(U)**2,Z<1e-20){U=I;break}if(U-=k/Z,Math.abs(k/Z)<1e-4)break}return{x:p*Math.cos(U),y:90*Math.sin(U)}}}}function he(v){if(!(0,x.isFunc)(v?.getDimension)||1!==v.getDimension())return;const p=v.draw_content?v.hmin:v.ymin,C=v.draw_content?v.hmax:v.ymax;v.zoom_ymin!==v.zoom_ymax&&p!==C&&p<=v.zoom_ymin&&v.zoom_ymax<=C&&(v.zoom_ymin=v.zoom_ymax=0)}let Q=null,me="",X=null;function B(v,p){return Q&&X===v&&me===p}function $(v,p){if(!x.settings.MoveResize)return;const C=v,I=C.getPadPainter();if(I?._fast_drawing||I?.isBatchMode())return;function U(V,b){function P(T,z){const W="js_"+T.replace(/[-]/g,"_");let fe=V.selectChild("."+W);if(p.cleanup)return fe.remove();fe.empty()&&(fe=V.append("path").classed(W,!0)),fe.style("opacity",0).style("cursor",T).attr("d",z),b&&fe.call(b)}P("nw-resize","M2,2h15v-5h-20v20h5Z"),P("ne-resize",`M${p.width-2},2h-15v-5h20v20h-5 Z`),P("sw-resize",`M2,${p.height-2}h15v5h-20v-20h5Z`),P("se-resize",`M${p.width-2},${p.height-2}h-15v5h20v-20h-5Z`),p.no_change_x||(P("w-resize",`M-3,18h5v${Math.max(0,p.height-36)}h-5Z`),P("e-resize",`M${p.width+3},18h-5v${Math.max(0,p.height-36)}h5Z`)),p.no_change_y||(P("n-resize",`M18,-3v5h${Math.max(0,p.width-36)}v-5Z`),P("s-resize",`M18,${p.height+3}v-5h${Math.max(0,p.width-36)}v5Z`))}!1===I?.isEditable()&&(p.cleanup=!0),(0,x.isFunc)(p.getDrawG)||(p.getDrawG=()=>C?.draw_g);const k=(V,b,P,T)=>{X=null,me="",Q&&(Q.remove(),Q=null);const z=p.getDrawG();if(!z)return!1;const W=p.x,fe=p.y;p.minwidth&&P600?(0,Re.sj)({clientX:b.evnt_x,clientY:b.evnt_y,skip_close:1},C):p.canselect&&P<=600&&C.getPadPainter()?.selectObjectPainter(C)}});const ue=(0,L.$E)().subject(Object);ue.on("start",function(V){if((0,He.iE)(V.sourceEvent)||me||(0,x.isFunc)(p.is_disabled)&&p.is_disabled("resize"))return;(0,Re.IV)(),F(C,!1),V.sourceEvent.stopPropagation(),V.sourceEvent.preventDefault();const b=p.pad_rect??I.getPadRect(),P={x:p.x,y:p.y,width:p.width,height:p.height,acc_x1:p.x,acc_y1:p.y,acc_x2:p.x+p.width,acc_y2:p.y+p.height,pad_w:b.width,pad_h:b.height};X=C,me="resize",Q=(0,L.Lt)(p.getDrawG().node().parentNode).append("rect").style("cursor",(0,L.Lt)(this).style("cursor")).attr("x",P.acc_x1).attr("y",P.acc_y1).attr("width",P.acc_x2-P.acc_x1).attr("height",P.acc_y2-P.acc_y1).property("drag_handle",P).call(ve.Ru,!0)}).on("drag",function(V){if(!B(C,"resize"))return;V.sourceEvent.preventDefault(),V.sourceEvent.stopPropagation();const b=Q.property("drag_handle"),P=(0,L.Lt)(this);let T=V.dx,z=V.dy;p.no_change_x&&(T=0),p.no_change_y&&(z=0),P.classed("js_nw_resize")?(b.acc_x1+=T,b.acc_y1+=z):P.classed("js_ne_resize")?(b.acc_x2+=T,b.acc_y1+=z):P.classed("js_sw_resize")?(b.acc_x1+=T,b.acc_y2+=z):P.classed("js_se_resize")?(b.acc_x2+=T,b.acc_y2+=z):P.classed("js_w_resize")?b.acc_x1+=T:P.classed("js_n_resize")?b.acc_y1+=z:P.classed("js_e_resize")?b.acc_x2+=T:P.classed("js_s_resize")&&(b.acc_y2+=z);const W=Math.max(0,b.acc_x1),fe=Math.min(b.acc_x2,b.pad_w),we=Math.max(0,b.acc_y1),Me=Math.min(b.acc_y2,b.pad_h);b.x=Math.min(W,fe),b.y=Math.min(we,Me),b.width=Math.abs(fe-W),b.height=Math.abs(Me-we),Q.attr("x",b.x).attr("y",b.y).attr("width",b.width).attr("height",b.height)}).on("end",function(V){if(!B(C,"resize"))return;V.sourceEvent.preventDefault();const b=Q.property("drag_handle");k(b.x,b.y,b.width,b.height)}),p.only_resize||p.getDrawG().style("cursor",p.cleanup?null:"move").call(p.cleanup?ee:Z),p.only_move||U(p.getDrawG(),ue)}const g={hints_layer(){return this.getCanvPainter()?.getLayerSvg("info_layer")??(0,L.Lt)(null)},isTooltipShown(){if(!this.tooltip_enabled||!this.isTooltipAllowed())return!1;const v=this.hints_layer().selectChild(".objects_hints");return!v.empty()&&v.property("hints_pad")===this.getPadName()},setTooltipEnabled(v){void 0!==v&&(this.tooltip_enabled=v)},processFrameTooltipEvent(v,p){if(v?.handler){const Sn=this.draw_g?.selectChild(".main_layer");if(!Sn||Sn.empty())v=null;else if(v.touch&&p){const ii=J(p,Sn.node());v=ii&&1===ii.length?{touch:!0,x:ii[0][0],y:ii[0][1]}:null}else if(p){const ii=(0,L.Wn)(p,Sn.node());v={touch:!1,x:ii[0],y:ii[1]}}}let C=0,I=0,U=0,k=0,Z=!1,ee=11;const P=this.getFrameRect(),T=this.getPadPainter(),z=T?.getPadWidth(),W=new Ze.qg(160,ee),fe=!this.isTooltipAllowed()||!this.tooltip_enabled;v&&(v.disabled=fe,v.painters=!0);const we=T?.processPadTooltipEvent(v)??[];T?._deliver_webcanvas_events&&T?.is_active_pad&&v&&(0,x.isFunc)(T?.deliverWebCanvasEvent)&&T.deliverWebCanvasEvent("move",P.x+v.x,P.y+v.y,we),v?.touch&&(ee=15);for(let Sn=0;Sn{U=Math.max(U,ai.length)}),ii.height=Math.round(ii.lines.length*ee*1.2+6-ee*(1.2-1)),void 0!==ii.color1&&"none"!==ii.color1&&(0!==k&&k!==ii.color1&&(Z=!0),k=ii.color1))}}let Me=null,je=we.length>1;for(let Sn=0;Sn0){const zi=ii.lines[0].slice(0,ai+1);null===Me?Me=zi:Me!==zi&&(je=!1)}else je=!1}const Ge=this.hints_layer(),lt=C>15,bt=v?Math.round(v.x)+","+Math.round(v.y):"";let te=Ge.selectChild(".objects_hints"),Je="",tt="",Fe="",Ne=null,rt=1e10,St=null;for(let Sn=0;Sn1?Ne.lines[0]:Ne.name,Je=Ne.title||"",Fe=Ne.line,!Fe&&Ne.lines&&(Fe=Ne.lines.slice(1).join(" "))),this.showObjectStatus(tt,Je,Fe,bt),!v||fe||0===we.length||0===U||lt&&!St)return void te.remove();te.empty()&&(te=Ge.append("svg:g").attr("class","objects_hints").style("pointer-events","none"));let pt={x:0,y:0},st=P.transform||"";T.iscan||(pt=(0,ve.md)(this.getPadSvg(),pt),st=`translate(${pt.x},${pt.y}) ${st}`),te.attr("transform",st).property("last_point",v).property("hints_pad",this.getPadName());let vt=te.property("viewmode")||"",Yt=0,qt=v.x+P.hint_delta_x;if(lt||1===C)vt="single",qt+=15;else{let Sn=.5,ii=.5;"left"===vt?ii=.7:"right"===vt&&(Sn=.3),qt<=Sn*P.width?(vt="left",qt=20):qt>=ii*P.width?(vt="right",qt=P.width-60):qt=te.property("startx")}vt!==te.property("viewmode")&&(te.property("viewmode",vt),te.selectAll("*").remove());let Ot=10,Bn=10,Mn=-1111,bn=-1111;const Dn=-pt.y,$n=this.getCanvPainter(),Cn=$n.getPadHeight()-P.y-pt.y;for(let Sn=0;Sn=Bn-5&&Bs.y<=Bn+Bs.height+5&&(Bn=Bs.y+10,ss=-1)}-1111===Mn&&-1111===bn&&(Mn=bn=ii.x),Mn=Math.min(Mn,ii.x),bn=Math.min(bn,ii.x)}ai.attr("x",qt).attr("y",Ot).property("curry",Ot).property("gapy",Bn),Ot+=ii.height+5,Bn+=ii.height+5,zi||ai.selectAll("*").remove(),ai.attr("width",60).attr("height",ii.height);const ti=ai.append("rect").attr("x",0).attr("y",0).attr("width",60).attr("height",ii.height).style("fill","lightgrey").style("pointer-events","none");if(C>1){const ss=Z?ii.color1:ii.color2;ss&&"none"!==ss&&ti.style("stroke",ss)}ti.attr("stroke-width",ii.exact?3:1);for(let ss=0;ss<(ii.lines?.length??0);ss++){let Bs=ii.lines[ss];if(0===ss&&Me&&je&&(Bs=Bs.slice(Me.length)),Bs){const yo=ai.append("svg:text").attr("text-anchor","start").attr("x",3).attr("y",3+ss*ee*1.2).attr("dy",".8em").style("fill","black").style("pointer-events","none").call(W.func).text(Bs),xt=(0,ve.xh)(yo,"bbox");Yt=Math.max(Yt,xt.width)}}zi&&(x.settings.TooltipAnimation>0?ai.transition().duration(x.settings.TooltipAnimation).attrTween("opacity",Lr()):ai.attr("opacity",1))}Yt+=6;const yn=te.selectAll("svg");if("right"===vt&&qt+Yt>P.width-20&&(qt=P.width-Yt-20,yn.attr("x",qt)),"single"===vt&&qt+Yt>z-P.x&&qt>Yt+20&&(qt-=Yt+20,yn.attr("x",qt)),"single"!==vt&&Bn=qt-5&&yn.attr("y",function(){return(0,L.Lt)(this).property("gapy")});else if("single"!==vt&&Ot>Cn){const Sn=Math.max(Cn-Ot-10,Dn);Sn<0&&yn.attr("y",function(){return(0,L.Lt)(this).property("curry")+Sn})}Yt>10&&yn.attr("width",Yt).select("rect").attr("width",Yt),te.property("startx",qt),$n._highlight_connect&&(0,x.isFunc)($n.processHighlightConnect)&&$n.processHighlightConnect(we)},assign(v){Object.assign(v,this,{tooltip_enabled:!0})}},E={addBasicInteractivity(){g.assign(this),!this._frame_rotate&&!this._frame_fixpos&&$(this,{obj:this,x:this._frame_x,y:this._frame_y,width:this.getFrameWidth(),height:this.getFrameHeight(),is_disabled:k=>"move"===k&&this.mode3d,only_resize:!0,minwidth:20,minheight:20,redraw:()=>this.sizeChanged()});const v=this.draw_g.selectChild("path"),p=this.draw_g.selectChild(".main_layer");v.style("pointer-events","visibleFill").style("cursor","default"),p.style("pointer-events","visibleFill").style("cursor","default").property("handlers_set",0);const C=this.getPadPainter(),I=C?._fast_drawing?0:1;if(p.property("handlers_set")!==I){const k=I?this.processFrameTooltipEvent.bind(this,null):null,Z=I?this.processFrameTooltipEvent.bind(this,{handler:!0,touch:!1}):null;if(p.property("handlers_set",I).on("mouseenter",Z).on("mousemove",Z).on("mouseleave",k),x.browser.touches){const ee=I?this.processFrameTooltipEvent.bind(this,{handler:!0,touch:!0}):null;p.on("touchstart",ee).on("touchmove",ee).on("touchend",k).on("touchcancel",k)}}p.attr("x",0).attr("y",0).attr("width",this.getFrameWidth()).attr("height",this.getFrameHeight());const U=this.hints_layer().selectChild(".objects_hints");!U.empty()&&this.isTooltipAllowed()&&U.property("hints_pad")===this.getPadName()&&setTimeout(this.processFrameTooltipEvent.bind(this,U.property("last_point"),null),10)},addFrameInteractivity(v){var p=this;return(0,Te.A)(function*(){const C=p.getPadPainter(),I=p.getFrameSvg();if(C?._fast_drawing||I.empty())return p;if(v){const Z=I.selectAll(".x2axis_container"),ee=I.selectAll(".y2axis_container");return x.settings.ContextMenu&&(Z.on("contextmenu",ue=>p.showContextMenu("x2",ue)),ee.on("contextmenu",ue=>p.showContextMenu("y2",ue))),Z.on("mousemove",ue=>p.showAxisStatus("x2",ue)),ee.on("mousemove",ue=>p.showAxisStatus("y2",ue)),p}const U=I.selectAll(".xaxis_container"),k=I.selectAll(".yaxis_container");return p.can_zoom_x=p.can_zoom_y=x.settings.Zooming,C?.options&&(C.options.NoZoomX&&(p.can_zoom_x=!1),C.options.NoZoomY&&(p.can_zoom_y=!1)),I.property("interactive_set")||(p.addFrameKeysHandler(),p.zoom_kind=0,p.zoom_rect=null,p.zoom_origin=null,p.zoom_curr=null),x.settings.Zooming&&(x.settings.ZoomMouse&&(I.on("mousedown",Z=>p.startRectSel(Z)),I.on("dblclick",Z=>p.mouseDoubleClick(Z))),x.settings.ZoomWheel&&I.on("wheel",Z=>p.mouseWheel(Z))),x.browser.touches&&(x.settings.Zooming&&x.settings.ZoomTouch||x.settings.ContextMenu)&&I.on("touchstart",Z=>p.startTouchZoom(Z)),x.settings.ContextMenu&&(x.browser.touches&&(U.on("touchstart",Z=>p.startSingleTouchHandling("x",Z)),k.on("touchstart",Z=>p.startSingleTouchHandling("y",Z))),I.on("contextmenu",Z=>p.showContextMenu("",Z)),U.on("contextmenu",Z=>p.showContextMenu("x",Z)),k.on("contextmenu",Z=>p.showContextMenu("y",Z))),U.on("mousemove",Z=>p.showAxisStatus("x",Z)),k.on("mousemove",Z=>p.showAxisStatus("y",Z)),I.property("interactive_set",!0),p})()},addFrameKeysHandler(){this.keys_handler||typeof window>"u"||(this.keys_handler=v=>this.processKeyPress(v),window.addEventListener("keydown",this.keys_handler,!1))},processKeyPress(v){const C=this.selectDom(),I=this.getPadPainter();let U=v.key;if(!x.settings.HandleKeys||C.empty()||!1===this.enabledKeys||(0,ke.OZ)()!==I||["PageUp","PageDown","ArrowLeft","ArrowUp","ArrowRight","ArrowDown","PrintScreen","Escape","*"].indexOf(U)<0)return!1;v.shiftKey&&(U=`Shift ${U}`),v.altKey&&(U=`Alt ${U}`),v.ctrlKey&&(U=`Ctrl ${U}`);const k={name:"x",dleft:0,dright:0};switch(U){case"ArrowLeft":k.dleft=-1,k.dright=1;break;case"ArrowRight":k.dleft=1,k.dright=-1;break;case"Ctrl ArrowLeft":k.dleft=k.dright=-1;break;case"Ctrl ArrowRight":k.dleft=k.dright=1;break;case"ArrowUp":k.name="y",k.dleft=1,k.dright=-1;break;case"ArrowDown":k.name="y",k.dleft=-1,k.dright=1;break;case"Ctrl ArrowUp":k.name="y",k.dleft=k.dright=1;break;case"Ctrl ArrowDown":k.name="y",k.dleft=k.dright=-1;break;case"Escape":return I?.enlargePad(null,!1,!0),!0}if(k.dleft||k.dright){if(!x.settings.Zooming||this.mode3d&&0!==U.indexOf("Ctrl"))return!1;this.analyzeMouseWheelEvent(null,k,.5),k.changed&&(this.zoom(k.name,k.min,k.max),this.zoomChangedInteractive(k.name,!0)),v.stopPropagation(),v.preventDefault()}else{const Z=I?.findPadButton(U);Z&&(I.clickPadButton(Z),v.stopPropagation(),v.preventDefault())}return!0},processFrameClick(v,p){const C=this.getPadPainter();if(!C)return;v.painters=!0,v.disabled=!0;const I=C.processPadTooltipEvent(v);let k,U=null;for(let Z=0;Z100)return;const p=this.getFrameSvg(),C=(0,L.Wn)(v,p.node());if(3===v.buttons||1===v.button)return this.clearInteractiveElements(),this._shifting_buttons=v.buttons,v.$emul||(0,L.Lt)(window).on("mousemove.shiftHandler",k=>this.shiftMoveHanlder(k,C)).on("mouseup.shiftHandler",k=>this.shiftUpHanlder(k),!0),F(this,!1),v.preventDefault(),void v.stopPropagation();if(0!==v.button)return;v.preventDefault(),this.clearInteractiveElements();const I=this.getFrameWidth(),U=this.getFrameHeight();return this.zoom_lastpos=C,this.zoom_curr=[Math.max(0,Math.min(I,C[0])),Math.max(0,Math.min(U,C[1]))],this.zoom_origin=[0,0],this.zoom_second=!1,C[0]<0||C[0]>I?(this.zoom_second=C[0]>I&&this.y2_handle,this.zoom_kind=3,this.zoom_origin[1]=this.zoom_curr[1],this.zoom_curr[0]=I,this.zoom_curr[1]+=1):C[1]<0||C[1]>U?(this.zoom_second=C[1]<0&&this.x2_handle,this.zoom_kind=2,this.zoom_origin[0]=this.zoom_curr[0],this.zoom_curr[0]+=1,this.zoom_curr[1]=U):(this.zoom_kind=1,this.zoom_origin[0]=this.zoom_curr[0],this.zoom_origin[1]=this.zoom_curr[1]),v.$emul||(0,L.Lt)(window).on("mousemove.zoomRect",k=>this.moveRectSel(k)).on("mouseup.zoomRect",k=>this.endRectSel(k),!0),this.zoom_rect=null,F(this,!1),v.stopPropagation(),1!==this.zoom_kind?(0,x.postponePromise)(()=>this.startLabelsMove(),500):void 0},startLabelsMove(){if(this.zoom_rect)return;const v=2===this.zoom_kind?this.x_handle:this.y_handle;!(0,x.isFunc)(v?.processLabelsMove)||!this.zoom_lastpos||v.processLabelsMove("start",this.zoom_lastpos)&&(this.zoom_labels=v)},moveRectSel(v){if(0===this.zoom_kind||this.zoom_kind>100)return;v.preventDefault();const p=(0,L.Wn)(v,this.getFrameSvg().node());if(this.zoom_labels)return this.zoom_labels.processLabelsMove("move",p);switch(this.zoom_lastpos[0]=p[0],this.zoom_lastpos[1]=p[1],p[0]=Math.max(0,Math.min(this.getFrameWidth(),p[0])),p[1]=Math.max(0,Math.min(this.getFrameHeight(),p[1])),this.zoom_kind){case 1:this.zoom_curr[0]=p[0],this.zoom_curr[1]=p[1];break;case 2:this.zoom_curr[0]=p[0];break;case 3:this.zoom_curr[1]=p[1]}const C=Math.min(this.zoom_origin[0],this.zoom_curr[0]),I=Math.min(this.zoom_origin[1],this.zoom_curr[1]),U=Math.abs(this.zoom_curr[0]-this.zoom_origin[0]),k=Math.abs(this.zoom_curr[1]-this.zoom_origin[1]);if(!this.zoom_rect){if(1!==this.zoom_kind&&(U<2||k<2))return;this.zoom_rect=this.getFrameSvg().append("rect").style("pointer-events","none").call(ve.Ru,!0)}this.zoom_rect.attr("x",C).attr("y",I).attr("width",U).attr("height",k)},endRectSel(v){if(0===this.zoom_kind||this.zoom_kind>100)return;v.preventDefault(),v.$emul||(0,L.Lt)(window).on("mousemove.zoomRect",null).on("mouseup.zoomRect",null);const p=(0,L.Wn)(v,this.getFrameSvg().node());let I,C=this.zoom_kind;if(this.zoom_labels)this.zoom_labels.processLabelsMove("stop",p);else{const k=[this.can_zoom_x,this.can_zoom_y];switch(p[0]=Math.max(0,Math.min(this.getFrameWidth(),p[0])),p[1]=Math.max(0,Math.min(this.getFrameHeight(),p[1])),this.zoom_kind){case 1:this.zoom_curr[0]=p[0],this.zoom_curr[1]=p[1];break;case 2:this.zoom_curr[0]=p[0],k[1]=!1;break;case 3:this.zoom_curr[1]=p[1],k[0]=!1}const Z=this.swap_xy?1:0,ee=1-Z;let ue,V,b,P,T=!1,z="x",W="y";k[Z]&&Math.abs(this.zoom_curr[Z]-this.zoom_origin[Z])>10&&(this.zoom_second&&2===this.zoom_kind&&(z="x2"),ue=Math.min(this.revertAxis(z,this.zoom_origin[Z]),this.revertAxis(z,this.zoom_curr[Z])),V=Math.max(this.revertAxis(z,this.zoom_origin[Z]),this.revertAxis(z,this.zoom_curr[Z])),T=!0),k[ee]&&Math.abs(this.zoom_curr[ee]-this.zoom_origin[ee])>10&&(this.zoom_second&&3===this.zoom_kind&&(W="y2"),b=Math.min(this.revertAxis(W,this.zoom_origin[ee]),this.revertAxis(W,this.zoom_curr[ee])),P=Math.max(this.revertAxis(W,this.zoom_origin[ee]),this.revertAxis(W,this.zoom_curr[ee])),T=!0),"x2"===z?(this.zoomChangedInteractive(z,!0),I=this.zoomSingle(z,ue,V),C=0):"y2"===W?(this.zoomChangedInteractive(W,!0),I=this.zoomSingle(W,b,P),C=0):T&&(this.zoomChangedInteractive("x",!0),this.zoomChangedInteractive("y",!0),I=this.zoom(ue,V,b,P),C=0)}const U=1===C?{x:this.zoom_origin[0],y:this.zoom_origin[1]}:null;switch(this.clearInteractiveElements(),C){case 1:this.processFrameClick(U);break;case 2:this.getPadPainter()?.selectObjectPainter(this,null,"xaxis");break;case 3:this.getPadPainter()?.selectObjectPainter(this,null,"yaxis")}return I},mouseDoubleClick(v){v.preventDefault();const p=(0,L.Wn)(v,this.getFrameSvg().node()),C=this.getFrameWidth(),I=this.getFrameHeight();this.clearInteractiveElements();const U=p[0]>=0&&p[0]<=C,k=p[1]>=0&&p[1]<=I;if(U&&k&&this._dblclick_handler&&this.processFrameClick({x:p[0],y:p[1]},!0))return;let Z=(this.can_zoom_x?"x":"")+(this.can_zoom_y?"y":"")+"z";if(U){if(!k){if(!this.can_zoom_x)return;Z=this.swap_xy?"y":"x",p[1]<0&&this[Z+"2_handle"]&&(Z+="2")}}else{if(!this.can_zoom_y)return;Z=this.swap_xy?"x":"y",p[0]>C&&this[Z+"2_handle"]&&(Z+="2")}return this.unzoom(Z).then(ee=>{if(ee)return;const ue=this.getPadPainter(),V=this.getFrameRect();return ue?.selectObjectPainter(ue,{x:p[0]+V.x,y:p[1]+V.y,dbl:!0})})},startTouchZoom(v){if(v.preventDefault(),v.stopPropagation(),0!==this.zoom_kind||me)return;const p=J(v,this.getFrameSvg().node());if(1===p.length){const Z=(new Date).getTime();let ee=1e10,ue=100,V=100;this.last_touch_time&&this.last_touch_pos&&(ee=Z-this.last_touch_time,ue=Math.abs(p[0][0]-this.last_touch_pos[0]),V=Math.abs(p[0][1]-this.last_touch_pos[1])),this.last_touch_time=Z,this.last_touch_pos=p[0],ee<500&&ue<20&&V<20?(this.clearInteractiveElements(),this.unzoom("xyz"),delete this.last_touch_time):x.settings.ContextMenu&&this.startSingleTouchHandling("",v)}if(2!==p.length||!x.settings.Zooming||!x.settings.ZoomTouch)return;this.clearInteractiveElements(),this.endSingleTouchHandling(null);const C=p[0],I=p[1],U=this.getFrameWidth(),k=this.getFrameHeight();this.zoom_curr=[Math.min(C[0],I[0]),Math.min(C[1],I[1])],this.zoom_origin=[Math.max(C[0],I[0]),Math.max(C[1],I[1])],this.zoom_second=!1,this.zoom_curr[0]<0||this.zoom_curr[0]>U?(this.zoom_second=this.zoom_curr[0]>U&&this.y2_handle,this.zoom_kind=103,this.zoom_curr[0]=0,this.zoom_origin[0]=U):this.zoom_origin[1]>k||this.zoom_origin[1]<0?(this.zoom_second=this.zoom_origin[1]<0&&this.x2_handle,this.zoom_kind=102,this.zoom_curr[1]=0,this.zoom_origin[1]=k):this.zoom_kind=101,me="zoom",F(this,!1),this.zoom_rect=this.getFrameSvg().append("rect").attr("id","zoomRect").attr("x",this.zoom_curr[0]).attr("y",this.zoom_curr[1]).attr("width",this.zoom_origin[0]-this.zoom_curr[0]).attr("height",this.zoom_origin[1]-this.zoom_curr[1]).call(ve.Ru,!0),v.$emul||(0,L.Lt)(window).on("touchmove.zoomRect",Z=>this.moveTouchZoom(Z)).on("touchcancel.zoomRect",Z=>this.endTouchZoom(Z)).on("touchend.zoomRect",Z=>this.endTouchZoom(Z))},moveTouchZoom(v){if(this.zoom_kind<100)return;v.preventDefault();const p=J(v,this.getFrameSvg().node());if(2!==p.length)return this.clearInteractiveElements();const C=p[0],I=p[1];103!==this.zoom_kind&&(this.zoom_curr[0]=Math.min(C[0],I[0]),this.zoom_origin[0]=Math.max(C[0],I[0])),102!==this.zoom_kind&&(this.zoom_curr[1]=Math.min(C[1],I[1]),this.zoom_origin[1]=Math.max(C[1],I[1])),this.zoom_rect.attr("x",this.zoom_curr[0]).attr("y",this.zoom_curr[1]).attr("width",this.zoom_origin[0]-this.zoom_curr[0]).attr("height",this.zoom_origin[1]-this.zoom_curr[1]),(this.zoom_origin[0]-this.zoom_curr[0]>10||this.zoom_origin[1]-this.zoom_curr[1]>10)&&F(this,!1),v.stopPropagation()},endTouchZoom(v){if(this.zoom_kind<100)return;me="",v.preventDefault(),v.$emul||(0,L.Lt)(window).on("touchmove.zoomRect",null).on("touchend.zoomRect",null).on("touchcancel.zoomRect",null);let p,C,I,U,k=!1,Z="x",ee="y";const ue=this.swap_xy?1:0,V=1-ue,b=[!0,!0];102===this.zoom_kind&&(b[1]=!1),103===this.zoom_kind&&(b[0]=!1),b[ue]&&Math.abs(this.zoom_curr[ue]-this.zoom_origin[ue])>10&&(this.zoom_second&&102===this.zoom_kind&&(Z="x2"),p=Math.min(this.revertAxis(Z,this.zoom_origin[ue]),this.revertAxis(Z,this.zoom_curr[ue])),C=Math.max(this.revertAxis(Z,this.zoom_origin[ue]),this.revertAxis(Z,this.zoom_curr[ue])),k=!0),b[V]&&Math.abs(this.zoom_curr[V]-this.zoom_origin[V])>10&&(this.zoom_second&&103===this.zoom_kind&&(ee="y2"),I=Math.min(this.revertAxis(ee,this.zoom_origin[V]),this.revertAxis(ee,this.zoom_curr[V])),U=Math.max(this.revertAxis(ee,this.zoom_origin[V]),this.revertAxis(ee,this.zoom_curr[V])),k=!0),this.clearInteractiveElements(),delete this.last_touch_time,"x2"===Z?(this.zoomChangedInteractive(Z,!0),this.zoomSingle(Z,p,C)):"y2"===ee?(this.zoomChangedInteractive(ee,!0),this.zoomSingle(ee,I,U)):k&&(this.zoomChangedInteractive("x",!0),this.zoomChangedInteractive("y",!0),this.zoom(p,C,I,U)),v.stopPropagation()},analyzeMouseWheelEvent(v,p,C,I,U){const k=U?this[p.name+"2_handle"]:null;return k?(p.second=Object.assign({},p),k.analyzeWheelEvent(v,C,p.second,I)):this[p.name+"_handle"]?.analyzeWheelEvent(v,C,p,I)},isAllowedDefaultYZooming(){if(this.self_drawaxes)return!0;const v=this.getPadPainter();if(v?.painters)for(let p=0;p=0&&I[1]<=k,I[1]<0),this.can_zoom_y&&this.analyzeMouseWheelEvent(v,this.swap_xy?p:C,1-I[1]/k,I[0]>=0&&I[0]<=U,I[0]>U);let Z=this.zoom(p.min,p.max,C.min,C.max);return p.changed&&this.zoomChangedInteractive("x",!0),C.changed&&this.zoomChangedInteractive("y",!0),p.second&&(Z=Z.then(()=>this.zoomSingle("x2",p.second.min,p.second.max)),p.second.changed&&this.zoomChangedInteractive("x2",!0)),C.second&&(Z=Z.then(()=>this.zoomSingle("y2",C.second.min,C.second.max)),C.second.changed&&this.zoomChangedInteractive("y2",!0)),Z},showContextMenu(v,p,C){if(3===p?.buttons)return p.preventDefault();if("zoom_kind"in this&&this.zoom_kind>100)return;let I,U=this,k=null,Z=!1,ee=null;const ue=this.getFrameSvg().node();if((0,x.isFunc)(p?.stopPropagation)){p.preventDefault(),p.stopPropagation();const V=(0,L.Wn)(p,ue),b=J(p,ue);1===b.length?I={x:b[0][0],y:b[0][1],touch:!0}:2===V.length&&(I={x:V[0],y:V[1],touch:!1})}else if(void 0!==p?.x&&void 0!==p?.y&&void 0===p?.clientX){I=p;const V=ue.getBoundingClientRect();p={clientX:V.left+I.x,clientY:V.top+I.y}}if("painter"===v&&C)U=C,v="";else if("main"===v)U=this.getMainPainter(!0),v="";else if(v)("x"===v||"y"===v||"z"===v||"pal"===v)&&(k=this.getMainPainter(!0),this.v7_frame&&(0,x.isFunc)(k?.v7EvalAttr)&&(k=null));else{const V=this.getPadPainter();let b=null;if(ee=this,I&&V){I.painters=!0;const P=V.processPadTooltipEvent(I);let T=1e3;for(let z=0;z0&&I.x<20&&I.y>0&&I.y<20),ee.setLastEventPos(I)}return k||(k=U),(0,x.isFunc)(U?.fillContextMenu)?(this.clearInteractiveElements(),(0,Re.ES)(p,U).then(V=>{let b=V.painter.fillContextMenu(V,v,C);if(ee&&(!b||Z&&"frame"!==v)&&(b=ee.fillContextMenu(V)),b)return k.fillObjectExecMenu(V,v).then(P=>(F(P.painter,!1),P.show().then(()=>F(P.painter,!0))))})):void 0},startSingleTouchHandling(v,p){const C=J(p,this.getFrameSvg().node());if(1!==C.length)return;p.preventDefault(),p.stopPropagation(),(0,Re.IV)();const I=(new Date).getTime();this._shifting_dx=0,this._shifting_dy=0,F(this,!1),(0,L.Lt)(window).on("touchmove.singleTouch",v?null:U=>this.moveTouchHandling(U,v,C[0])).on("touchcancel.singleTouch",U=>this.endSingleTouchHandling(U,v,C[0],I)).on("touchend.singleTouch",U=>this.endSingleTouchHandling(U,v,C[0],I))},moveTouchHandling(v,p,C){const I=this.getFrameSvg(),U=this.draw_g.selectChild(".main_layer");let k;try{k=J(v,I.node())[0]}catch{k=[0,0],v?.changedTouches&&(k=[v.changedTouches[0].clientX,v.changedTouches[0].clientY])}const Z=C[0]-k[0],ee=1===this.scales_ndim?0:C[1]-k[1],ue=this.getFrameWidth(),V=this.getFrameHeight();this._shifting_dx=Z,this._shifting_dy=ee,U.attr("viewBox",`${Z} ${ee} ${ue} ${V}`)},endSingleTouchHandling(v,p,C,I){v?.preventDefault(),v?.stopPropagation(),F(this,!0),(0,L.Lt)(window).on("touchmove.singleTouch",null).on("touchcancel.singleTouch",null).on("touchend.singleTouch",null),null!==v&&(Math.abs(this._shifting_dx)>2||Math.abs(this._shifting_dy)>2?this.performScalesShift():(new Date).getTime()-I>700&&this.showContextMenu(p,{x:C[0],y:C[1]}))},clearInteractiveElements(){(0,Re.IV)(),this.zoom_kind=0,this.zoom_rect?.remove(),delete this.zoom_rect,delete this.zoom_curr,delete this.zoom_origin,delete this.zoom_lastpos,delete this.zoom_labels,F(this,!0)},assign(v){Object.assign(v,this)}};class _ extends ke.JW{constructor(p,C){super(p,C&&C.$dummy?null:C),this.zoom_kind=0,this.mode3d=!1,this.shrink_frame_left=0,this.xmin=this.xmax=0,this.ymin=this.ymax=0,this.ranges_set=!1,this.axes_drawn=!1,this.keys_handler=null,this.projection=0}getFramePainter(){return this}is_root6(){return!0}getObject(p){return"xaxis"===p?this.xaxis:"yaxis"===p?this.yaxis:super.getObject()}setFrameActive(p){this.enabledKeys=p&&x.settings.HandleKeys,this.control&&(this.control.enableKeys=this.enabledKeys)}shrinkFrame(p,C){this.fX1NDC+=p,this.fX2NDC-=C}setLastEventPos(p){this.fLastEventPnt=p}getLastEventPos(){return this.fLastEventPnt}getProjectionFunc(){return Y(this.projection)}recalculateRange(p,C,I){this.projection=p||0,2===this.projection&&(this.scale_ymin<=-90||this.scale_ymax>=90)&&(console.warn(`Mercator Projection: Latitude out of range ${this.scale_ymin} ${this.scale_ymax}`),this.projection=0);const U=this.getProjectionFunc();if(!U)return;const k=[U(this.scale_xmin,this.scale_ymin),U(this.scale_xmin,this.scale_ymax),U(this.scale_xmax,this.scale_ymax),U(this.scale_xmax,this.scale_ymin)];this.scale_xmin<0&&this.scale_xmax>0&&(k.push(U(0,this.scale_ymin)),k.push(U(0,this.scale_ymax))),this.scale_ymin<0&&this.scale_ymax>0&&(k.push(U(this.scale_xmin,0)),k.push(U(this.scale_xmax,0))),this.original_xmin=this.scale_xmin,this.original_xmax=this.scale_xmax,this.original_ymin=this.scale_ymin,this.original_ymax=this.scale_ymax,C&&(this.scale_xmin=this.scale_xmax=k[0].x),I&&(this.scale_ymin=this.scale_ymax=k[0].y);for(let Z=1;Z1&&this.applyAxisZoom("y"),P>2&&this.applyAxisZoom("z")}b&&!b._checked_zooming&&(b._checked_zooming=!0,b.options.minimum!==x.kNoZoom&&(this.zoom_zmin=b.options.minimum,this.zoom_zmax=this.zmax),b.options.maximum!==x.kNoZoom&&(this.zoom_zmax=b.options.maximum,void 0===this.zoom_zmin&&(this.zoom_zmin=this.zmin)))}setAxes2Ranges(p,C,I,U,k,Z,ee,ue){p&&(this.x2axis=C,this.x2min=I,this.x2max=U),k&&(this.y2axis=Z,this.y2min=ee,this.y2max=ue)}getAxis(p){switch(p){case"x":return this.xaxis;case"y":return this.yaxis;case"z":return this.zaxis;case"x2":return this.x2axis;case"y2":return this.y2axis}return null}applyPadUserRange(p,C){if(!p)return;let I=p[`fU${C}min`],U=p[`fU${C}max`],k=1e-7;if("x"===C){if(Math.abs(p.fX1)>k||Math.abs(p.fX2-1)>k){const V=p.fX2-p.fX1;I=p.fX1+V*p.fLeftMargin,U=p.fX2-V*p.fRightMargin}}else if(Math.abs(p.fY1)>k||Math.abs(p.fY2-1)>k){const V=p.fY2-p.fY1;I=p.fY1+V*p.fBottomMargin,U=p.fY2-V*p.fTopMargin}if(I>=U||Math.abs(I)0&&(I=Math.exp(I*Math.log(10)),U=Math.exp(U*Math.log(10)));let Z=C;this.swap_xy&&(Z="x"===C?"y":"x");const ee=this[`scale_${Z}min`],ue=this[`scale_${Z}max`];k=1e-7*(ue-ee),(Math.abs(I-ee)>k||Math.abs(U-ue)>k)&&(this[`zoom_${Z}min`]=I,this[`zoom_${Z}max`]=U)}applyAxisZoom(p){if(this.zoomChangedInteractive(p))return;this[`zoom_${p}min`]=this[`zoom_${p}max`]=0;const C=this.getAxis(p);C?.TestBit(ke.rb.kAxisRange)&&C.fFirst!==C.fLast&&(C.fFirst>1||C.fLast1?C.GetBinLowEdge(C.fFirst):C.fXmin,this[`zoom_${p}max`]=C.fLast0?this.scale_ymax=Math.exp(1.1*Math.log(this.scale_ymax)):this.scale_ymax+=.1*(this.scale_ymax-this.scale_ymin)),p.check_pad_range&&(this.applyAxisZoom("x"),p.ndim>1&&this.applyAxisZoom("y"),p.ndim>2&&this.applyAxisZoom("z"),"pad_range"===p.check_pad_range)){const b=this.getCanvPainter();(!b||!b.online_canvas)&&(this.applyPadUserRange(k,"x"),this.applyPadUserRange(k,"y"))}p.zoom_ymin!==p.zoom_ymax&&(this.zoom_ymin===this.zoom_ymax||!this.zoomChangedInteractive("y"))&&(this.zoom_ymin=p.zoom_ymin,this.zoom_ymax=p.zoom_ymax);let ue=!0,V=!0;this.zoom_xmin!==this.zoom_xmax&&(this.scale_xmin=this.zoom_xmin,this.scale_xmax=this.zoom_xmax,ue=!1),this.zoom_ymin!==this.zoom_ymax&&(this.scale_ymin=this.zoom_ymin,this.scale_ymax=this.zoom_ymax,V=!1),this.recalculateRange(p.Proj,ue,V),this.x_handle=new Ye.TB(this.getDom(),this.xaxis,!0),this.x_handle.setPadName(this.getPadName()),this.x_handle.setHistPainter(p.hist_painter,"x"),this.x_handle.configureAxis("xaxis",this.xmin,this.xmax,this.scale_xmin,this.scale_xmax,this.swap_xy,this.swap_xy?[0,I]:[0,C],{reverse:this.reverse_x,log:this.swap_xy?ee:Z,noexp_changed:this.x_noexp_changed,symlog:this.swap_xy?p.symlog_y:p.symlog_x,logcheckmin:this.swap_xy,logminfactor:1e-4}),this.x_handle.assignFrameMembers(this,"x"),this.y_handle=new Ye.TB(this.getDom(),this.yaxis,!0),this.y_handle.setPadName(this.getPadName()),this.y_handle.setHistPainter(p.hist_painter,"y"),this.y_handle.configureAxis("yaxis",this.ymin,this.ymax,this.scale_ymin,this.scale_ymax,!this.swap_xy,this.swap_xy?[0,C]:[0,I],{reverse:this.reverse_y,log:this.swap_xy?Z:ee,noexp_changed:this.y_noexp_changed,symlog:this.swap_xy?p.symlog_x:p.symlog_y,logcheckmin:p.ndim<2||this.swap_xy,log_min_nz:p.ymin_nz&&p.ymin_nz<=this.ymax?.5*p.ymin_nz:0,logminfactor:De}),this.y_handle.assignFrameMembers(this,"y"),this.setRootPadRange(k)}createXY2(p){p||(p={ndim:this.scales_ndim??1}),this.reverse_x2=p.reverse_x||!1,this.reverse_y2=p.reverse_y||!1,this.logx2=this.logy2=0;const C=this.getFrameWidth(),I=this.getFrameHeight(),k=this.getPadPainter().getRootPad();p.second_x&&(this.scale_x2min=this.x2min,this.scale_x2max=this.x2max),p.second_y&&(this.scale_y2min=this.y2min,this.scale_y2max=this.y2max),p.extra_y_space&&p.second_y&&((this.swap_xy?k.fLogx:k.fLogy)&&this.scale_y2max>0?this.scale_y2max=Math.exp(1.1*Math.log(this.scale_y2max)):this.scale_y2max+=.1*(this.scale_y2max-this.scale_y2min)),this.zoom_x2min!==this.zoom_x2max&&p.second_x&&(this.scale_x2min=this.zoom_x2min,this.scale_x2max=this.zoom_x2max),this.zoom_y2min!==this.zoom_y2max&&p.second_y&&(this.scale_y2min=this.zoom_y2min,this.scale_y2max=this.zoom_y2max),p.second_x&&(this.x2_handle=new Ye.TB(this.getDom(),this.x2axis,!0),this.x2_handle.setPadName(this.getPadName()),this.x2_handle.setHistPainter(p.hist_painter,"x"),this.x2_handle.configureAxis("x2axis",this.x2min,this.x2max,this.scale_x2min,this.scale_x2max,this.swap_xy,this.swap_xy?[0,I]:[0,C],{reverse:this.reverse_x2,log:this.swap_xy?k.fLogy:k.fLogx,noexp_changed:this.x2_noexp_changed,logcheckmin:this.swap_xy,logminfactor:1e-4}),this.x2_handle.assignFrameMembers(this,"x2")),p.second_y&&(this.y2_handle=new Ye.TB(this.getDom(),this.y2axis,!0),this.y2_handle.setPadName(this.getPadName()),this.y2_handle.setHistPainter(p.hist_painter,"y"),this.y2_handle.configureAxis("y2axis",this.y2min,this.y2max,this.scale_y2min,this.scale_y2max,!this.swap_xy,this.swap_xy?[0,C]:[0,I],{reverse:this.reverse_y2,log:this.swap_xy?k.fLogx:k.fLogy,noexp_changed:this.y2_noexp_changed,logcheckmin:p.ndim<2||this.swap_xy,log_min_nz:p.ymin_nz&&p.ymin_nz0?x.gStyle.fGridColor:this.getAxis("x")?.fAxisColor??1;let ue="";this.x_handle.ticks.forEach(V=>{ue+=this.swap_xy?`M0,${V}h${k}`:`M${V},0v${U}`}),p.append("svg:path").attr("class","xgrid").attr("d",ue).style("stroke",this.getColor(ee)||"black").style("stroke-width",x.gStyle.fGridWidth).style("stroke-dasharray",(0,ot.Ov)(Z))}if(I?.fGridy&&this.y_handle?.ticks){const ee=x.gStyle.fGridColor>0?x.gStyle.fGridColor:this.getAxis("y")?.fAxisColor??1;let ue="";this.y_handle.ticks.forEach(V=>{ue+=this.swap_xy?`M${V},0v${U}`:`M0,${V}h${k}`}),p.append("svg:path").attr("class","ygrid").attr("d",ue).style("stroke",this.getColor(ee)||"black").style("stroke-width",x.gStyle.fGridWidth).style("stroke-dasharray",(0,ot.Ov)(Z))}}axisAsText(p,C){const I=this[`${p}_handle`];return I?I.axisAsText(C,x.settings[p.toUpperCase()+"ValuesFormat"]):C.toPrecision(4)}hasDrawnAxes(p,C){return!p&&!C&&this.axes_drawn}drawAxes(p,C,I,U,k,Z){var ee=this;return(0,Te.A)(function*(){if(ee.cleanAxesDrawings(),ee.xmin===ee.xmax||ee.ymin===ee.ymax)return!1;void 0===U&&(U=0);const ue=ee.getFrameSvg().selectChild(".axis_layer"),V=ee.getFrameWidth(),b=ee.getFrameHeight(),P=ee.getPadPainter(),T=P.getRootPad(!0);ee.x_handle.invert_side=U>=10,ee.x_handle.lbls_both_sides=!ee.x_handle.invert_side&&T?.fTickx>1,ee.x_handle.has_obstacle=k,ee.y_handle.invert_side=U%10==1,ee.y_handle.lbls_both_sides=!ee.y_handle.invert_side&&T?.fTicky>1,ee.y_handle.has_obstacle=Z;const z=ee.swap_xy?ee.y_handle:ee.x_handle,W=ee.swap_xy?ee.x_handle:ee.y_handle;(!C||!I)&&P._fast_drawing&&(C=I=!0);let fe=Promise.resolve(!0);if(!C||!I){const we=!p&&x.settings.CanAdjustFrame,Me=z.drawAxis(ue,V,b,z.invert_side?null:`translate(0,${b})`,T?.fTickx?-b:0,C,void 0,!1,P.getPadHeight()-b-ee.getFrameY()),je=W.drawAxis(ue,V,b,W.invert_side?`translate(${V})`:null,T?.fTicky?V:0,I,W.invert_side?0:ee._frame_x,we);fe=Promise.all([Me,je]).then(()=>{if(ee.drawGrids(),!we)return;let Ge=0;const lt=W.position;return-.2*V0&<<.3*V&&ee.shrink_frame_left>0&</V>ee.shrink_frame_left&&(Ge=-ee.shrink_frame_left,ee.shrink_frame_left=0),Ge?(ee.shrinkFrame(Ge,0),ee.redraw().then(()=>ee.drawAxes(!0))):void 0})}return fe.then(()=>(p||(ee.axes_drawn=!0),!0))})()}drawAxes2(p,C){const I=this.getFrameSvg().selectChild(".axis_layer"),U=this.getFrameWidth(),k=this.getFrameHeight(),Z=this.getPadPainter(),ee=Z.getRootPad(!0);p&&(this.x2_handle.invert_side=!0,this.x2_handle.lbls_both_sides=!1,this.x2_handle.has_obstacle=!1),C&&(this.y2_handle.invert_side=!0,this.y2_handle.lbls_both_sides=!1);let b,P,ue=this.swap_xy?this.y2_handle:this.x2_handle,V=this.swap_xy?this.x2_handle:this.y2_handle;return(ue||V)&&Z._fast_drawing&&(ue=V=null),ue&&(b=ue.drawAxis(I,U,k,ue.invert_side?null:`translate(0,${k})`,ee?.fTickx?-k:0,!1,void 0,!1)),V&&(P=V.drawAxis(I,U,k,V.invert_side?`translate(${U})`:null,ee?.fTicky?U:0,!1,V.invert_side?0:this._frame_x,!1)),Promise.all([b,P])}updateAttributes(p){const C=this.getPadPainter(),I=C?.getRootPad(!0),U=this.getObject();(void 0===this.fX1NDC||p&&!this.modified_NDC)&&(I?(this.fX1NDC=I.fLeftMargin,this.fX2NDC=1-I.fRightMargin,this.fY1NDC=I.fBottomMargin,this.fY2NDC=1-I.fTopMargin):(this.fX1NDC=x.gStyle.fPadLeftMargin,this.fX2NDC=1-x.gStyle.fPadRightMargin,this.fY1NDC=x.gStyle.fPadBottomMargin,this.fY2NDC=1-x.gStyle.fPadTopMargin)),void 0===this.fillatt&&(this.createAttFill(U?{attr:U}:I?.fFrameFillColor?{pattern:I.fFrameFillStyle,color:I.fFrameFillColor}:I?{attr:I}:{pattern:1001,color:0}),!U&&this.fillatt.empty()&&C?.iscan?this.fillatt.setSolidColor("white"):4e3===I?.fFillStyle&&!this.fillatt.empty()&&this.fillatt.setOpacity(0)),this.createAttLine(U||void 0===I?.fFrameLineColor?{attr:U,color:"black"}:{color:I.fFrameLineColor,width:I.fFrameLineWidth,style:I.fFrameLineStyle})}sizeChanged(){const p=this.getPadPainter()?.getRootPad(!0);p&&(p.fLeftMargin=this.fX1NDC,p.fRightMargin=1-this.fX2NDC,p.fBottomMargin=this.fY1NDC,p.fTopMargin=1-this.fY2NDC,this.setRootPadRange(p)),this.interactiveRedraw("pad","frame")}cleanXY(){delete this.grx,delete this.gry,delete this.grz,delete this.grx2,delete this.gry2,this.x_handle?.cleanup(),this.y_handle?.cleanup(),this.z_handle?.cleanup(),this.x2_handle?.cleanup(),this.y2_handle?.cleanup(),delete this.x_handle,delete this.y_handle,delete this.z_handle,delete this.x2_handle,delete this.y2_handle}cleanAxesDrawings(){this.x_handle?.removeG(),this.y_handle?.removeG(),this.z_handle?.removeG(),this.x2_handle?.removeG(),this.y2_handle?.removeG(),this.draw_g?.selectChild(".axis_layer").selectAll("*").remove(),this.axes_drawn=!1}cleanFrameDrawings(){(0,x.isFunc)(this.create3DScene)&&this.create3DScene(-1),this.cleanAxesDrawings(),this.cleanXY(),this.ranges_set=!1,this.xmin=this.xmax=0,this.ymin=this.ymax=0,this.zmin=this.zmax=0,this.zoom_xmin=this.zoom_xmax=0,this.zoom_ymin=this.zoom_ymax=0,this.zoom_zmin=this.zoom_zmax=0,this.scale_xmin=this.scale_xmax=0,this.scale_ymin=this.scale_ymax=0,this.scale_zmin=this.scale_zmax=0,this.draw_g?.selectChild(".main_layer").selectAll("*").remove(),this.draw_g?.selectChild(".upper_layer").selectAll("*").remove(),this.xaxis=null,this.yaxis=null,this.zaxis=null,this.draw_g&&(this.draw_g.selectAll("*").remove(),this.draw_g.on("mousedown",null).on("dblclick",null).on("wheel",null).on("contextmenu",null).property("interactive_set",null),this.draw_g.remove()),delete this.draw_g,this.keys_handler&&(window.removeEventListener("keydown",this.keys_handler,!1),this.keys_handler=null)}cleanup(){this.cleanFrameDrawings(),delete this._click_handler,delete this._dblclick_handler,delete this.enabledKeys;const p=this.getPadPainter();p?.frame_painter_ref===this&&delete p.frame_painter_ref,super.cleanup()}redraw(){const p=this.getPadPainter();p&&(p.frame_painter_ref=this),this.updateAttributes();const C=p?.getPadRect()??{width:10,height:10},I=Math.round(C.width*this.fX1NDC),U=Math.round(C.height*(1-this.fY2NDC));let V,b,P,k=Math.round(C.width*(this.fX2NDC-this.fX1NDC)),Z=Math.round(C.height*(this.fY2NDC-this.fY1NDC)),ee=!1,ue=!1;return p?.options&&(p.options.RotateFrame&&(ee=!0),p.options.FixFrame&&(ue=!0)),ee?(V=`rotate(-90,${I},${U}) translate(${I-Z},${U})`,[k,Z]=[Z,k]):V=(0,ve.bk)(I,U),this._frame_x=I,this._frame_y=U,this._frame_width=k,this._frame_height=Z,this._frame_rotate=ee,this._frame_fixpos=ue,this.mode3d||(this.draw_g=this.getFrameSvg(),this.draw_g.empty()?(this.draw_g=this.getLayerSvg("primitives_layer").append("svg:g").attr("class","root_frame"),this.isBatchMode()||this.draw_g.append("svg:title").text(""),b=this.draw_g.append("svg:path"),P=this.draw_g.append("svg:svg").attr("class","main_layer").attr("x",0).attr("y",0).attr("overflow","hidden"),this.draw_g.append("svg:g").attr("class","axis_layer"),this.draw_g.append("svg:g").attr("class","upper_layer")):(b=this.draw_g.selectChild("path"),P=this.draw_g.selectChild(".main_layer")),this.axes_drawn=!1,this.draw_g.attr("transform",V),b.attr("d",`M0,0H${k}V${Z}H0Z`).call(this.fillatt.func).call(this.lineatt.func),P.attr("width",k).attr("height",Z).attr("viewBox",`0 0 ${k} ${Z}`)),this}changeAxisLog(p,C){const I=this.getPadPainter(),U=I?.getRootPad(!0);if(!U)return;I._interactively_changed=!0;const k=`fLog${p}`;return U[k]||(this.swap_xy&&"x"===p?p="y":this.swap_xy&&"y"===p&&(p="x"),"labels"!==this[`${p}_handle`]?.kind)?(("toggle"===C||void 0===C)&&(C=U[k]?0:1),U[k]=C,this.interactiveRedraw("pad",`log${p}`)):void 0}toggleAxisLog(p){return this.changeAxisLog(p,"toggle")}fillContextMenu(p,C,I){const U=this.getMainPainter(!0),k=this.getPadPainter(),Z=k?.getRootPad(!0),ee="pal"===C;if(ee&&(C="z"),"x"===C||"y"===C||"z"===C||"x2"===C||"y2"===C){const V=I||this[C+"axis"],b=this[`${C}_handle`];if(!(0,x.isFunc)(V?.TestBit))return!1;if(p.add(`header: ${C.toUpperCase()} axis`),p.add("Unzoom",()=>this.unzoom(C)),Z){const P="fLog"+C[0];p.add("sub:SetLog "+C[0],()=>{p.input("Enter log kind: 0 - off, 1 - log10, 2 - log2, 3 - ln, ...",Z[P],"int",0,1e4).then(T=>{this.changeAxisLog(C[0],T)})}),p.addchk(0===Z[P],"linear",()=>this.changeAxisLog(C[0],0)),p.addchk(1===Z[P],"log10",()=>this.changeAxisLog(C[0],1)),p.addchk(2===Z[P],"log2",()=>this.changeAxisLog(C[0],2)),p.addchk(3===Z[P],"ln",()=>this.changeAxisLog(C[0],3)),p.addchk(4===Z[P],"log4",()=>this.changeAxisLog(C[0],4)),p.addchk(8===Z[P],"log8",()=>this.changeAxisLog(C[0],8)),p.add("endsub:")}return p.addchk(V.TestBit(ke.rb.kMoreLogLabels),"More log",P=>{V.InvertBit(ke.rb.kMoreLogLabels),U?.snapid&&1===C.length?U.interactiveRedraw("pad",`exec:SetMoreLogLabels(${P})`,C):this.interactiveRedraw("pad")}),p.addchk(b?.noexp??V.TestBit(ke.rb.kNoExponent),"No exponent",P=>{P!==V.TestBit(ke.rb.kNoExponent)&&V.InvertBit(ke.rb.kNoExponent),b&&(b.noexp_changed=!0),this[`${C}_noexp_changed`]=!0,U?.snapid&&1===C.length?U.interactiveRedraw("pad",`exec:SetNoExponent(${P})`,C):this.interactiveRedraw("pad")}),"z"===C&&(0,x.isFunc)(U?.fillPaletteMenu)&&U.fillPaletteMenu(p,!ee),"labels"===b?.kind&&V.fNbins>20&&p.add("Find label",()=>p.input("Label id").then(P=>{if(P)for(let T=0;Tthis.unzoom("x")),this.zoom_ymin!==this.zoom_ymax&&p.add("Unzoom Y",()=>this.unzoom("y")),this.zoom_zmin!==this.zoom_zmax&&p.add("Unzoom Z",()=>this.unzoom("z")),this.zoom_x2min!==this.zoom_x2max&&p.add("Unzoom X2",()=>this.unzoom("x2")),this.zoom_y2min!==this.zoom_y2max&&p.add("Unzoom Y2",()=>this.unzoom("y2")),p.add("Unzoom all",()=>this.unzoom("all")),Z&&(p.addchk(Z.fLogx,"SetLogx",()=>this.toggleAxisLog("x")),p.addchk(Z.fLogy,"SetLogy",()=>this.toggleAxisLog("y")),(0,x.isFunc)(U?.getDimension)&&U.getDimension()>1&&p.addchk(Z.fLogz,"SetLogz",()=>this.toggleAxisLog("z")),p.add("separator")),p.addchk(this.isTooltipAllowed(),"Show tooltips",()=>this.setTooltipAllowed("toggle")),p.addAttributesMenu(this,ue?"":"Frame "),p.add("Save to gStyle",()=>{x.gStyle.fPadBottomMargin=this.fY1NDC,x.gStyle.fPadTopMargin=1-this.fY2NDC,x.gStyle.fPadLeftMargin=this.fX1NDC,x.gStyle.fPadRightMargin=1-this.fX2NDC,this.fillatt?.saveToStyle("fFrameFillColor","fFrameFillStyle"),this.lineatt?.saveToStyle("fFrameLineColor","fFrameLineWidth","fFrameLineStyle")},"Store frame position and graphical attributes to gStyle"),p.add("separator"),p.add("sub:Save as"),["svg","png","jpeg","pdf","webp"].forEach(V=>p.add(`frame.${V}`,()=>k.saveAs(V,"frame",`frame.${V}`))),p.add("endsub:"),!0}fillWebObjectOptions(p){p.fcust="frame",p.fopt=[this.scale_xmin||0,this.scale_ymin||0,this.scale_xmax||0,this.scale_ymax||0]}getFrameX(){return this._frame_x||0}getFrameY(){return this._frame_y||0}getFrameWidth(){return this._frame_width||0}getFrameHeight(){return this._frame_height||0}getFrameRect(){return{x:this._frame_x||0,y:this._frame_y||0,width:this.getFrameWidth(),height:this.getFrameHeight(),transform:this.draw_g?.attr("transform")||"",hint_delta_x:0,hint_delta_y:0}}configureUserClickHandler(p){this._click_handler=(0,x.isFunc)(p)?p:null}configureUserDblclickHandler(p){this._dblclick_handler=(0,x.isFunc)(p)?p:null}zoom(p,C,I,U,k,Z){var ee=this;return(0,Te.A)(function*(){"x"===p?(p=C,C=I,I=void 0):"y"===p?(U=I,I=C,p=C=void 0):"z"===p&&(k=C,Z=I,p=C=I=void 0);let ue=p!==C,V=I!==U,b=k!==Z,P=!1,T=!1,z=!1;if(ue){let fe=0;p<=ee.xmin&&(p=ee.xmin,fe++),C>=ee.xmax&&(C=ee.xmax,fe++),2===fe&&(ue=!1,P=!0)}else P=p===C&&0===p;if(V){let fe=0;(I<=ee.ymin||!ee.ymin&&ee.logy&&(!ee.y_handle?.log_min_nz&&I=ee.ymax&&(U=ee.ymax,fe++),2===fe&&1!==ee.scales_ndim&&(V=!1,T=!0)}else T=I===U&&0===I;if(b){let fe=0;k<=ee.zmin&&(k=ee.zmin,fe++),Z>=ee.zmax&&(Z=ee.zmax,fe++),2===fe&&ee.scales_ndim>2&&(b=!1,z=!0)}else z=k===Z&&0===k;let W=!1;return(ue||V||b)&&ee.forEachPainter(fe=>{(0,x.isFunc)(fe.canZoomInside)&&(ue&&fe.canZoomInside("x",p,C)&&(ee.zoom_xmin=p,ee.zoom_xmax=C,W=!0,ue=!1),V&&fe.canZoomInside("y",I,U)&&(ee.zoom_ymin=I,ee.zoom_ymax=U,W=!0,V=!1),b&&fe.canZoomInside("z",k,Z)&&(ee.zoom_zmin=k,ee.zoom_zmax=Z,W=!0,b=!1))}),(P||T||z)&&(P&&(ee.zoom_xmin!==ee.zoom_xmax&&(W=!0),ee.zoom_xmin=ee.zoom_xmax=0),T&&(ee.zoom_ymin!==ee.zoom_ymax&&(W=!0,he(ee.getMainPainter())),ee.zoom_ymin=ee.zoom_ymax=0),z&&(ee.zoom_zmin!==ee.zoom_zmax&&(W=!0),ee.zoom_zmin=ee.zoom_zmax=0),W||ee.getPadPainter()?.painters?.forEach(fe=>{(0,x.isFunc)(fe?.unzoomUserRange)&&fe.unzoomUserRange(P,T,z)&&(W=!0)})),!!W&&ee.interactiveRedraw("pad","zoom").then(()=>!0)})()}zoomSingle(p,C,I){var U=this;return(0,Te.A)(function*(){if(!U[p+"_handle"])return!1;let k=C!==I,Z=!1;if(k){let ue=0;C<=U[p+"min"]&&(C=U[p+"min"],ue++),I>=U[p+"max"]&&(I=U[p+"max"],ue++),2===ue&&(k=!1,Z=!0)}else Z=C===I&&0===C;let ee=!1;return k&&U.forEachPainter(ue=>{(0,x.isFunc)(ue.canZoomInside)&&k&&ue.canZoomInside(p[0],C,I)&&(U[`zoom_${p}min`]=C,U[`zoom_${p}max`]=I,ee=!0,k=!1)}),Z&&(U[`zoom_${p}min`]!==U[`zoom_${p}max`]&&(ee=!0,"y"===p&&he(U.getMainPainter())),U[`zoom_${p}min`]=U[`zoom_${p}max`]=0),!!ee&&U.interactiveRedraw("pad","zoom").then(()=>!0)})()}isAxisZoomed(p){return this[`zoom_${p}min`]!==this[`zoom_${p}max`]}unzoom(p,C,I){var U=this;return(0,Te.A)(function*(){return"all"===p?U.unzoom("x2").then(()=>U.unzoom("y2")).then(()=>U.unzoom("xyz")):"x2"===p||"y2"===p?U.zoomSingle(p,0,0).then(k=>(k&&U.zoomChangedInteractive(p,"unzoom"),k)):(typeof p>"u"?p=C=I=!0:(0,x.isStr)(p)&&(I=p.indexOf("z")>=0,C=p.indexOf("y")>=0,p=p.indexOf("x")>=0),U.zoom(p?0:void 0,p?0:void 0,C?0:void 0,C?0:void 0,I?0:void 0,I?0:void 0).then(k=>(k&&p&&U.zoomChangedInteractive("x","unzoom"),k&&C&&U.zoomChangedInteractive("y","unzoom"),k&&I&&U.zoomChangedInteractive("z","unzoom"),k)))})()}zoomChangedInteractive(p,C){if("reset"===p)return void(this.zoom_changed_x=this.zoom_changed_y=this.zoom_changed_z=void 0);if(!p||"any"===p)return this.zoom_changed_x||this.zoom_changed_y||this.zoom_changed_z;if("x"!==p&&"y"!==p&&"z"!==p)return;const I="zoom_changed_"+p;if(void 0===C)return this[I];"unzoom"!==C?C&&(this[I]=!0):this[I]=void 0===this[I]}revertAxis(p,C){return this[`${p}_handle`]?.revertPoint(C)??0}showAxisStatus(p,C){const I=this.getAxis(p),U=(0,L.Wn)(C,this.getFrameSvg().node());let k=p,Z=x.clTAxis,ee="x"===p?0:1;I&&(k=I.fName,Z=I.fTitle||`TAxis object for ${p}`),this.swap_xy&&(ee=1-ee);const ue=this.revertAxis(p,U[ee]);this.showObjectStatus(k,Z,`${p} : ${this.axisAsText(p,ue)}`,`${U[0]},${U[1]}`)}addKeysHandler(){this.isBatchMode()||(E.assign(this),this.addFrameKeysHandler())}addInteractivity(p){return!(this.isBatchMode()||!x.settings.Zooming&&!x.settings.ContextMenu)&&(E.assign(this),p||this.addBasicInteractivity(),this.addFrameInteractivity(p))}}},5102:(Yr,mt,Se)=>{"use strict";Se.d(mt,{DR:()=>Q,O4:()=>X,cw:()=>F,jg:()=>B});var Te=Se(4882),x=Se(8872),L=Se(8362),ve=Se(2985),ke=Se(2843),ot=Se(1922),Ye=Se(4082),Ze=Se(4246),Re=Se(5638),He=Se(7900),Ve=Se(5992),De=Se(6157);const F="TButton",J=(0,x.BIT)(22);function Y($,g){return Math.round((g||1)*($.iscan||!$.has_canvas?16:12))}function he($,g,E){E?.preventDefault(),E?.stopPropagation();const _=$.getLayerSvg("btns_layer",$.this_pad_name),v=_.select("[name='Toggle']");if(v.empty())return;let p=v.property("buttons_state");v.property("timout_handler")&&("timeout"!==g&&clearTimeout(v.property("timout_handler")),v.property("timout_handler",null));let C=!1;switch(g){case"enable":C=!0,$.btns_active_flag=!0;break;case"enterbtn":return void($.btns_active_flag=!0);case"timeout":C=!1;break;case"toggle":p=!p,v.property("buttons_state",p),C=p;break;case"disable":case"leavebtn":return $.btns_active_flag=!1,void(p||v.property("timout_handler",setTimeout(()=>he($,"timeout"),1200)))}_.selectAll("svg").each(function(){this!==v.node()&&(0,L.Lt)(this).style("display",C?"":"none")})}const Q={alignButtons($,g,E){const _=Y(this,1.25),v=($.property("nextx")||0)+_;let p,C;$.property("vertical")?(p=$.property("leftside")?2:g-_,C=E-v):(p=$.property("leftside")?2:g-v,C=E-_),(0,ke.bk)($,p,C)},findPadButton($){const g=this.getLayerSvg("btns_layer",this.this_pad_name);let E="";return g.empty()||g.selectAll("svg").each(function(){(0,L.Lt)(this).attr("key")===$&&(E=(0,L.Lt)(this).attr("name"))}),E},removePadButtons(){const $=this.getLayerSvg("btns_layer",this.this_pad_name);$.empty()||($.selectAll("*").remove(),$.property("nextx",null))},showPadButtons(){const $=this.getLayerSvg("btns_layer",this.this_pad_name);if($.empty()||($.selectAll("*").remove(),!this._buttons))return;const g=this.iscan||!this.has_canvas;let _,v=$.property("leftside")?Y(this,1.25):0;if(this._fast_drawing)_=Ve.IK.createSVG($,Ve.IK.circle,Y(this),"enlargePad",!1).attr("name","Enlarge").attr("x",0).attr("y",0).on("click",p=>this.clickPadButton("enlargePad",p));else{_=Ve.IK.createSVG($,Ve.IK.rect,Y(this),"Toggle tool buttons",!1).attr("name","Toggle").attr("x",0).attr("y",0).property("buttons_state","popup"!==x.settings.ToolBar||x.browser.touches).on("click",p=>he(this,"toggle",p)),_.node()._mouseenter=()=>he(this,"enable"),_.node()._mouseleave=()=>he(this,"disable");for(let p=0;pthis.clickPadButton(C.funcname,k)),U.node()._mouseenter=()=>he(this,"enterbtn"),U.node()._mouseleave=()=>he(this,"leavebtn"),v+=Y(this,1.25)}}$.property("nextx",v),this.alignButtons($,this.getPadWidth(),this.getPadHeight()),$.property("vertical")?_.attr("y",v):$.property("leftside")||_.attr("x",v)},assign($){Object.assign($,this)}};function X($){if(!$?.snapid)return null;const g={_typename:"TWebObjectOptions",snapid:$.snapid.toString(),opt:$.getDrawOpt(!0),fcust:"",fopt:[]};return(0,x.isFunc)($.fillWebObjectOptions)&&$.fillWebObjectOptions(g),g}class B extends ot.JW{constructor(g,E,_){super(g,E),this.pad=E,this.iscan=_,this.this_pad_name="",!this.iscan&&E?.fName&&(this.this_pad_name=E.fName.replace(" ","_"),(!/^[A-Za-z][A-Za-z0-9_]*$/.test(this.this_pad_name)||"button"===this.this_pad_name&&E._typename===F)&&(this.this_pad_name="jsroot_pad_"+x.internals.id_counter++)),this.painters=[],this.has_canvas=!0,this.forEachPainter=this.forEachPainterInPad;const v=this.selectDom();!v.empty()&&v.property("_batch_mode")&&(this.batch_mode=!0)}isBatchMode(){return void 0!==this.batch_mode?this.batch_mode:!!(0,x.isBatchMode)()||!(this.iscan||!this.has_canvas)&&this.getCanvPainter()?.isBatchMode()}isRoot6(){return!0}isEditable(){return this.pad?.fEditable??!0}svg_this_pad(){return this.getPadSvg(this.this_pad_name)}getMainPainter(){return this.main_painter_ref||null}setMainPainter(g,E){(!this.main_painter_ref||E)&&(this.main_painter_ref=g)}cleanup(){this._doing_draw&&console.error("pad drawing is not completed when cleanup is called"),this.painters.forEach(E=>E.cleanup());const g=this.svg_this_pad();g.empty()||(g.property("pad_painter",null),this.iscan||g.remove()),delete this.main_painter_ref,delete this.frame_painter_ref,delete this.pads_cache,delete this.custom_palette,delete this._pad_x,delete this._pad_y,delete this._pad_width,delete this._pad_height,delete this._doing_draw,delete this._interactively_changed,delete this._snap_primitives,delete this._last_grayscale,delete this._custom_colors,delete this._custom_palette_indexes,delete this._custom_palette_colors,delete this.root_colors,this.painters=[],this.pad=null,this.this_pad_name=void 0,this.has_canvas=!1,(0,ot.QD)({pp:this,active:!1}),super.cleanup()}getFramePainter(){return this.frame_painter_ref}getPadWidth(){return this._pad_width||0}getPadHeight(){return this._pad_height||0}getPadRect(){return{x:this._pad_x||0,y:this._pad_y||0,width:this.getPadWidth(),height:this.getPadHeight()}}getFrameRect(){const g=this.getFramePainter();if(g)return g.getFrameRect();const E=this.getPadWidth(),_=this.getPadHeight(),v={};return this.pad?(v.szx=Math.round(Math.max(0,.5-Math.max(this.pad.fLeftMargin,this.pad.fRightMargin))*E),v.szy=Math.round(Math.max(0,.5-Math.max(this.pad.fBottomMargin,this.pad.fTopMargin))*_)):(v.szx=Math.round(.5*E),v.szy=Math.round(.5*_)),v.width=2*v.szx,v.height=2*v.szy,v.x=Math.round(E/2-v.szx),v.y=Math.round(_/2-v.szy),v.hint_delta_x=v.szx,v.hint_delta_y=v.szy,v.transform=(0,ke.bk)(v.x,v.y)||"",v}getRootPad(g){return void 0===g||g?this.pad:null}cleanPrimitives(g){if((0,x.isFunc)(g))for(let E=this.painters.length-1;E>=0;--E)g(this.painters[E])&&(this.painters[E].cleanup(),this.painters.splice(E,1))}removePrimitive(g){const E=this.painters[g],_=[];let v=g;for(let p=this.painters.length-1;p>=0;--p)(p===g||this.painters[p].isSecondary(E))&&(_.push(this.painters[p]),this.painters.splice(p,1),p<=g&&v--);return _.forEach(p=>{p.cleanup(),this.main_painter_ref===p&&(delete this.main_painter_ref,v=-111)}),v}getCustomPalette(){return this.custom_palette||this.getCanvPainter()?.custom_palette}getNumPainters(){return this.painters.length}getAutoColor(g){g||(g=this._num_primitives||5),g<2&&(g=2);let E=this._auto_color??0;this._auto_color=(E+1)%g,E>=g&&(E=g-1);const _=this._custom_palette_indexes||this.getCanvPainter()?._custom_palette_indexes;if(_?.length)return _[Math.round(E*(_.length-3)/(g-1))];this._auto_palette||(this._auto_palette=(0,ve.jh)(x.settings.Palette,this.isGrayscale()));const v=Math.round(E*(this._auto_palette.getLength()-3)/(g-1)),p=this._auto_palette.getColor(v);return this.addColor(p)}forEachPainterInPad(g,E){E||(E="all"),"objects"!==E&&g(this);for(let _=0;_{delete _._color_palette}),this.root_colors=g?(0,ve.uw)(this._custom_colors):this._custom_colors,this._last_grayscale=g,this.custom_palette=this._custom_palette_colors?new ve.rE(this._custom_palette_colors,g):null}createCanvasSvg(g,E){const _=this.isBatchMode();let U,k,Z,p=null,C=null,I=null;if(g>0){if(this._fixed_size)return g>1;if(C=this.getCanvSvg(),C.empty()||(p=C.property("height_factor"),I=this.testMainResize(g,null,p),!I.changed&&1===g))return!1;_||(U=this.getLayerSvg("btns_layer",this.this_pad_name)),k=this.getLayerSvg("info_layer",this.this_pad_name),Z=C.selectChild(".canvas_fillrect")}else{const ue=this.selectDom();"static"===ue.style("position")&&ue.style("position","relative"),C=ue.append("svg").attr("class","jsroot root_canvas").property("pad_painter",this).property("current_pad","").property("redraw_by_resize",!1),this.setTopPainter(),_?C.attr("xmlns","http://www.w3.org/2000/svg"):this.online_canvas||C.append("svg:title").text("ROOT canvas"),(!_||this.pad.fFillStyle>0)&&(Z=C.append("svg:path").attr("class","canvas_fillrect")),_||Z.style("pointer-events","visibleFill").on("dblclick",V=>this.enlargePad(V,!0)).on("click",()=>this.selectObjectPainter()).on("mouseenter",()=>this.showObjectStatus()).on("contextmenu",x.settings.ContextMenu?V=>this.padContextMenu(V):null),C.append("svg:g").attr("class","primitives_layer"),k=C.append("svg:g").attr("class","info_layer"),_||(U=C.append("svg:g").attr("class","btns_layer").property("leftside","left"===x.settings.ToolBarSide).property("vertical",x.settings.ToolBarVert)),p=.66,this.pad?.fCw&&this.pad?.fCh&&this.pad?.fCw>0&&(p=this.pad.fCh/this.pad.fCw,(p<.1||p>10)&&(p=.66)),this._fixed_size?(ue.style("overflow","auto"),I={width:this.pad.fCw,height:this.pad.fCh},(!I.width||!I.height)&&(I=(0,ke.xh)(ue))):I=this.testMainResize(2,E,p)}this.setGrayscale(),this.createAttFill({attr:this.pad}),I.width<=5||I.height<=5?(C.style("display","none"),console.warn(`Hide canvas while geometry too small w=${I.width} h=${I.height}`),this._pad_width&&this._pad_height?(I.width=this._pad_width,I.height=this._pad_height):(I.width=800,I.height=600)):C.style("display",null),C.attr("x",0).attr("y",0).style("position","absolute"),this._fixed_size?C.attr("width",I.width).attr("height",I.height):C.style("width","100%").style("height","100%").style("left",0).style("top",0).style("bottom",0).style("right",0),C.style("filter",x.settings.DarkMode||this.pad?.$dark?"invert(100%)":null),C.attr("viewBox",`0 0 ${I.width} ${I.height}`).attr("preserveAspectRatio","none").property("height_factor",p).property("draw_x",0).property("draw_y",0).property("draw_width",I.width).property("draw_height",I.height),this._pad_x=0,this._pad_y=0,this._pad_width=I.width,this._pad_height=I.height,Z&&(Z.attr("d",`M0,0H${I.width}V${I.height}H0Z`).call(this.fillatt.func),this.drawActiveBorder(Z)),this.setFastDrawing(I.width*(1-this.pad.fLeftMargin-this.pad.fRightMargin),I.height*(1-this.pad.fBottomMargin-this.pad.fTopMargin)),this.alignButtons&&U&&this.alignButtons(U,I.width,I.height);let ee=k.selectChild(".canvas_date");if(x.gStyle.fOptDate){ee.empty()&&(ee=k.append("text").attr("class","canvas_date"));const ue=new Date,V=Math.round(I.height*(1-x.gStyle.fDateY));let b=Math.round(I.width*x.gStyle.fDateX);!_&&b<25&&(b=25),x.gStyle.fOptDate>1&&ue.setTime(1e3*x.gStyle.fOptDate),(0,ke.bk)(ee,b,V).style("text-anchor","start").text(ue.toLocaleString("en-GB"))}else ee.remove();return x.gStyle.fOptFile&&this.getItemName()?this.drawItemNameOnCanvas(this.getItemName()):k.selectChild(".canvas_item").remove(),!0}drawItemNameOnCanvas(g){const E=this.getLayerSvg("info_layer",this.this_pad_name);let _=E.selectChild(".canvas_item");if(x.gStyle.fOptFile&&g){_.empty()&&(_=E.append("text").attr("class","canvas_item"));const v=this.getPadRect();(0,ke.bk)(_,Math.round(v.width*(1-x.gStyle.fDateX)),Math.round(v.height*(1-x.gStyle.fDateY))).style("text-anchor","end").text(g)}else _.remove()}isPadEnlarged(){return this.iscan||!this.has_canvas?"on"===this.enlargeMain("state"):this.getCanvSvg().property("pad_enlarged")===this.pad}enlargePad(g,E,_){if(g?.preventDefault(),g?.stopPropagation(),E&&this._websocket&&"off"===this.enlargeMain("state"))return;const v=this.getCanvSvg(),p=v.property("pad_enlarged");if(!this.iscan&&this.has_canvas&&(p||this.hasObjectsToDraw()||this.painters))p||_?p===this.pad?(this.enlargeMain(!1),v.property("pad_enlarged",null)):!_&&E&&console.error("missmatch with pad double click events"):(this.enlargeMain(!0,!0),v.property("pad_enlarged",this.pad),(0,ot.QD)({pp:this,active:!0}));else{if(this._fixed_size||!this.enlargeMain(!_&&"toggle"))return;"off"===this.enlargeMain("state")?v.property("pad_enlarged",null):(0,ot.QD)({pp:this,active:!0})}return this.checkResize(!0)}createPadSvg(g){if(!this.has_canvas)return this.createCanvasSvg(g?2:0),!0;const E=this.getCanvSvg(),_=E.property("draw_width"),v=E.property("draw_height"),p=E.property("pad_enlarged"),C=!(this.pad_draw_disabled||p&&p!==this.pad),I=this.isBatchMode();let ue,V,b,U=Math.round(this.pad.fAbsWNDC*_),k=Math.round(this.pad.fAbsHNDC*v),Z=Math.round(this.pad.fAbsXlowNDC*_),ee=Math.round(v*(1-this.pad.fAbsYlowNDC))-k;if(p===this.pad&&(U=_,k=v,Z=ee=0),g?(ue=this.svg_this_pad(),V=ue.selectChild(".root_pad_border"),I||(b=this.getLayerSvg("btns_layer",this.this_pad_name)),this.addPadInteractive(!0)):(ue=E.selectChild(".primitives_layer").append("svg:svg").classed("__root_pad_"+this.this_pad_name,!0).attr("pad",this.this_pad_name).property("pad_painter",this),I||ue.append("svg:title").text("subpad "+this.this_pad_name),(!I||this.pad.fFillStyle>0||this.pad.fLineStyle>0&&this.pad.fLineColor>0)&&(V=ue.append("svg:path").attr("class","root_pad_border")),I||V.style("pointer-events","visibleFill").on("dblclick",P=>this.enlargePad(P,!0)).on("click",()=>this.selectObjectPainter()).on("mouseenter",()=>this.showObjectStatus()).on("contextmenu",x.settings.ContextMenu?P=>this.padContextMenu(P):null),ue.append("svg:g").attr("class","primitives_layer"),I||(b=ue.append("svg:g").attr("class","btns_layer").property("leftside","left"!==x.settings.ToolBarSide).property("vertical",x.settings.ToolBarVert))),this.createAttFill({attr:this.pad}),this.createAttLine({attr:this.pad,color0:this.pad.fBorderMode?"":"none"}),ue.style("display",C?null:"none").attr("viewBox",`0 0 ${U} ${k}`).attr("preserveAspectRatio","none").attr("x",Z).attr("y",ee).attr("width",U).attr("height",k).property("draw_x",Z).property("draw_y",ee).property("draw_width",U).property("draw_height",k),this._pad_x=Z,this._pad_y=ee,this._pad_width=U,this._pad_height=k,V){V.attr("d",`M0,0H${U}V${k}H0Z`).call(this.fillatt.func).call(this.lineatt.func),this.drawActiveBorder(V);let P=ue.selectChild(".root_pad_border1"),T=ue.selectChild(".root_pad_border2");if(this.pad.fBorderMode&&this.pad.fBorderSize){const z=this.pad.fBorderSize,W=this.pad.fBorderSize,fe=`M0,0h${U}l${-z},${W}h${2*z-U}v${k-2*W}l${-z},${W}z`,we=`M${U},${k}v${-k}l${-z},${W}v${k-2*W}h${2*z-U}l${-z},${W}z`;T.empty()&&(T=ue.insert("svg:path",".primitives_layer").attr("class","root_pad_border2")),P.empty()&&(P=ue.insert("svg:path",".primitives_layer").attr("class","root_pad_border1")),P.attr("d",this.pad.fBorderMode>0?fe:we).call(this.fillatt.func).style("fill",(0,L.Qh)(this.fillatt.color).brighter(.5).formatHex()),T.attr("d",this.pad.fBorderMode>0?we:fe).call(this.fillatt.func).style("fill",(0,L.Qh)(this.fillatt.color).darker(.5).formatHex())}else P.remove(),T.remove()}return this.setFastDrawing(U*(1-this.pad.fLeftMargin-this.pad.fRightMargin),k*(1-this.pad.fBottomMargin-this.pad.fTopMargin)),ue.property("can3d")===x.constants.Embed3D.Overlay&&this.selectDom().select(".draw3d_"+this.this_pad_name).style("display",C?"":"none"),this.alignButtons&&b&&this.alignButtons(b,U,k),C}addPadInteractive(g=!1){if(this.iscan||this.isBatchMode())return;const E=this.getCanvSvg(),_=E.property("draw_width"),v=E.property("draw_height");(0,Re.WJ)(this,{cleanup:g,x:this._pad_x,y:this._pad_y,width:this._pad_width,height:this._pad_height,no_transform:!0,only_resize:!0,is_disabled:p=>E.property("pad_enlarged")||this.btns_active_flag||"move"===p&&(this._disable_dragging||this.getFramePainter()?.mode3d),getDrawG:()=>this.svg_this_pad(),pad_rect:{width:_,height:v},minwidth:20,minheight:20,move_resize:(p,C,I,U)=>{const k=this.pad.fAbsXlowNDC,Z=this.pad.fAbsYlowNDC,ee=I/_/this.pad.fAbsWNDC,ue=U/v/this.pad.fAbsHNDC,V=p/_-k,b=1-(C+U)/v-Z;this.forEachPainterInPad(P=>{P.pad.fAbsXlowNDC+=(P.pad.fAbsXlowNDC-k)*(ee-1)+V,P.pad.fAbsYlowNDC+=(P.pad.fAbsYlowNDC-Z)*(ue-1)+b,P.pad.fAbsWNDC*=ee,P.pad.fAbsHNDC*=ue},"pads")},redraw:()=>this.interactiveRedraw("pad","padpos")})}disablePadDrawing(){!this.pad_draw_disabled&&this.has_canvas&&!this.iscan&&(this.pad_draw_disabled=!0,this.createPadSvg(!0))}checkSpecial(g){if(!g)return!1;if(g._typename===x.clTStyle)return Object.assign(x.gStyle,g),!0;if(g._typename===x.clTObjArray&&"ListOfColors"===g.name){if(this.options?.CreatePalette){let E=[];for(let _=g.arr.length-this.options.CreatePalette;_p&&p?.fName===g&&(!E||p?._typename===E),v=this._snap_primitives?.find(p=>_(1===p.fKind?p.fSnapshot:null));return v?v.fSnapshot:this.pad?.fPrimitives?.arr.find(_)}findPainterFor(g,E,_){return this.painters.find(v=>{const p=v.getObject();return!(!p||(!g||p!==g)&&(!E&&!_||E&&p.fName!==E||_&&p._typename!==_))})}hasObjectsToDraw(){return this.pad?.fPrimitives?.arr?.find(g=>g._typename!==x.clTPad)}syncDraw(g){const E={kind:g||"redraw"};return void 0===this._doing_draw?(this._doing_draw=[E],Promise.resolve(!0)):!(!0!==E.kind&&this._doing_draw.findIndex((_,v)=>v>0&&_.kind===E.kind)>0)&&(this._doing_draw.push(E),new Promise(_=>{E.func=_}))}doingDraw(){return void 0!==this._doing_draw}confirmDraw(){if(void 0===this._doing_draw)return console.warn("failure, should not happen");if(this._doing_draw.shift(),0===this._doing_draw.length)delete this._doing_draw;else{const g=this._doing_draw[0];g.func&&(g.func(),delete g.func)}}drawObject(){return(0,Te.A)(function*(){return console.log("Not possible to draw object without loading of draw.mjs"),null})()}drawPrimitives(g){var E=this;return(0,Te.A)(function*(){if(void 0===g)return E.iscan&&(E._start_tm=(new Date).getTime()),E._num_primitives=E.pad?.fPrimitives?.arr?.length||0,E.syncDraw(!0).then(()=>E.drawPrimitives(0));if(!E.pad||g>=E._num_primitives){if(E._start_tm){const v=(new Date).getTime()-E._start_tm;v>1e3&&console.log(`Canvas ${E.pad?.fName||"---"} drawing took ${(.001*v).toFixed(2)}s`),delete E._start_tm}return void E.confirmDraw()}const _=E.pad.fPrimitives.arr[g];return!_||g>0&&"TFrame"===_._typename&&E.getFramePainter()?E.drawPrimitives(g+1):E.drawObject(E.getDom(),_,E.pad.fPrimitives.opt[g]).then(v=>((0,x.isObject)(v)&&(v._primitive=!0),E.drawPrimitives(g+1)))})()}divide(g,E){var _=this;return(0,Te.A)(function*(){if(!_.pad.Divide(g,E))return _;const v=p=>p>=_.pad.fPrimitives.arr.length?_:_.drawObject(_.getDom(),_.pad.fPrimitives.arr[p]).then(()=>v(p+1));return v(0)})()}getSubPadPainter(g){for(let E=0;E{(0,x.isFunc)(v.processTooltipEvent)&&E.push(v)}),g&&(g.nproc=E.length),E.forEach(v=>{const p=v.processTooltipEvent(g)||{user_info:null};_.push(p),g?.painters&&(p.painter=v)}),_}changeDarkMode(g){this.getCanvSvg().style("filter",g??x.settings.DarkMode?"invert(100%)":null)}fillContextMenu(g){if(g.add(this.pad?`header:${this.pad._typename}::${this.pad.fName}`:"header:Canvas"),g.addchk(this.isTooltipAllowed(),"Show tooltips",()=>this.setTooltipAllowed("toggle")),!this._websocket){let _=function(v){this.pad[v.slice(1)]=parseInt(v[0]),this.interactiveRedraw("pad",v.slice(1))};g.addchk(this.pad?.fGridx,"Grid x",(this.pad?.fGridx?"0":"1")+"fGridx",_),g.addchk(this.pad?.fGridy,"Grid y",(this.pad?.fGridy?"0":"1")+"fGridy",_),g.add("sub:Ticks x"),g.addchk(0===this.pad?.fTickx,"normal","0fTickx",_),g.addchk(1===this.pad?.fTickx,"ticks on both sides","1fTickx",_),g.addchk(2===this.pad?.fTickx,"labels on both sides","2fTickx",_),g.add("endsub:"),g.add("sub:Ticks y"),g.addchk(0===this.pad?.fTicky,"normal","0fTicky",_),g.addchk(1===this.pad?.fTicky,"ticks on both sides","1fTicky",_),g.addchk(2===this.pad?.fTicky,"labels on both sides","2fTicky",_),g.add("endsub:"),g.addchk(this.pad?.fEditable,"Editable",v=>{this.pad.fEditable=v,this.interactiveRedraw("pad")}),this.iscan&&g.addchk(this.pad?.TestBit(J),"Gray scale",v=>{this.setGrayscale(v),this.interactiveRedraw("pad")}),(0,x.isFunc)(this.drawObject)&&g.add("Build legend",()=>this.buildLegend()),g.addAttributesMenu(this),g.add("Save to gStyle",()=>{this.pad&&(this.fillatt?.saveToStyle(this.iscan?"fCanvasColor":"fPadColor"),x.gStyle.fPadGridX=this.pad.fGridX,x.gStyle.fPadGridY=this.pad.fGridX,x.gStyle.fPadTickX=this.pad.fTickx,x.gStyle.fPadTickY=this.pad.fTicky,x.gStyle.fOptLogx=this.pad.fLogx,x.gStyle.fOptLogy=this.pad.fLogy,x.gStyle.fOptLogz=this.pad.fLogz)},"Store pad fill attributes, grid, tick and log scale settings to gStyle"),this.iscan&&g.addSettingsMenu(!1,!1,v=>{"dark"===v&&this.changeDarkMode()})}g.add("separator"),(0,x.isFunc)(this.hasMenuBar)&&(0,x.isFunc)(this.actiavteMenuBar)&&g.addchk(this.hasMenuBar(),"Menu bar",_=>this.actiavteMenuBar(_)),(0,x.isFunc)(this.hasEventStatus)&&(0,x.isFunc)(this.activateStatusBar)&&(0,x.isFunc)(this.canStatusBar)&&this.canStatusBar()&&g.addchk(this.hasEventStatus(),"Event status",()=>this.activateStatusBar("toggle")),(this.enlargeMain()||this.has_canvas&&this.hasObjectsToDraw())&&g.addchk(this.isPadEnlarged(),"Enlarge "+(this.iscan?"canvas":"pad"),()=>this.enlargePad());const E=this.this_pad_name||(this.iscan?"canvas":"pad");return g.add("sub:Save as"),["svg","png","jpeg","pdf","webp"].forEach(_=>g.add(`${E}.${_}`,()=>this.saveAs(_,this.iscan,`${E}.${_}`))),g.add("endsub:"),!0}padContextMenu(g){var E=this;return(0,Te.A)(function*(){return g.stopPropagation&&(g.stopPropagation(),g.preventDefault(),E.getFramePainter()?.setLastEventPos()),(0,He.ES)(g,E).then(_=>(E.fillContextMenu(_),E.fillObjectExecMenu(_,""))).then(_=>_.show())})()}redrawPad(g){var E=this;return(0,Te.A)(function*(){const _=E.syncDraw(g);if(!1===_)return console.log(`Prevent redrawing of ${E.pad.fName}`),!1;let v=!0;const p=C=>{for(;Cp(C))}return!0};return _.then(()=>(E.iscan?E.createCanvasSvg(2):v=E.createPadSvg(!0),p(0))).then(()=>(E.addPadInteractive(),E.confirmDraw(),(0,ot.OZ)()===E&&E.getCanvPainter()?.producePadEvent("padredraw",E),!0))})()}redraw(g){this.redrawPad(g)}needRedrawByResize(){const g=this.svg_this_pad();return!g.empty()&&g.property("can3d")===x.constants.Embed3D.Overlay||this.painters.findIndex(E=>!!(0,x.isFunc)(E.needRedrawByResize)&&E.needRedrawByResize())>=0}checkCanvasResize(g,E){if(this._ignore_resize||!this.iscan&&this.has_canvas)return!1;const _=this.syncDraw("canvas_resize");if(!1===_)return!1;(!0===g||!1===g)&&(E=g,g=null),(0,x.isObject)(g)&&g.force&&(E=!0),E||(E=this.needRedrawByResize());let v=!1;const p=C=>!v||C>=this.painters.length?(this.confirmDraw(),v):(0,x.getPromise)(this.painters[C].redraw(E?"redraw":"resize")).then(()=>p(C+1));return _.then(()=>(v=this.createCanvasSvg(E?2:1,g),v&&this.iscan&&this.pad&&this.online_canvas&&!this.embed_canvas&&!this.isBatchMode()&&(this._resize_tmout&&clearTimeout(this._resize_tmout),this._resize_tmout=setTimeout(()=>{delete this._resize_tmout,(0,x.isFunc)(this.sendResized)&&this.sendResized()},1e3)),p(0)))}updateObject(g){if(!g)return!1;this.pad.fBits=g.fBits,this.pad.fTitle=g.fTitle,this.pad.fGridx=g.fGridx,this.pad.fGridy=g.fGridy,this.pad.fTickx=g.fTickx,this.pad.fTicky=g.fTicky,this.pad.fLogx=g.fLogx,this.pad.fLogy=g.fLogy,this.pad.fLogz=g.fLogz,this.pad.fUxmin=g.fUxmin,this.pad.fUxmax=g.fUxmax,this.pad.fUymin=g.fUymin,this.pad.fUymax=g.fUymax,this.pad.fX1=g.fX1,this.pad.fX2=g.fX2,this.pad.fY1=g.fY1,this.pad.fY2=g.fY2,this.pad.fLeftMargin=g.fLeftMargin,this.pad.fRightMargin=g.fRightMargin,this.pad.fBottomMargin=g.fBottomMargin,this.pad.fTopMargin=g.fTopMargin,this.pad.fFillColor=g.fFillColor,this.pad.fFillStyle=g.fFillStyle,this.pad.fLineColor=g.fLineColor,this.pad.fLineStyle=g.fLineStyle,this.pad.fLineWidth=g.fLineWidth,this.pad.fPhi=g.fPhi,this.pad.fTheta=g.fTheta,this.pad.fEditable=g.fEditable,this.iscan&&this.checkSpecialsInPrimitives(g);const E=this.getFramePainter();if(E&&E.updateAttributes(!E.modified_NDC),!g.fPrimitives)return!1;let _=!1,v=0;for(let p=0;p8&&(ue=8),ue*=.1,g===_||E===v?(k.fX1NDC=.4*Z.fLeftMargin+.6*(1-Z.fRightMargin),k.fY1NDC=(1-ue)*(1-Z.fTopMargin)+ue*Z.fBottomMargin,k.fX2NDC=.99-Z.fRightMargin,k.fY2NDC=.99-Z.fTopMargin,void 0===C&&(C="autoplace")):(k.fX1NDC=g,k.fY1NDC=E,k.fX2NDC=_,k.fY2NDC=v),k.fFillStyle=1001,k.fTitle=p??"";const V=I.has_canvas?I.selectCurrentPad(I.this_pad_name):void 0;return I.drawObject(I.getDom(),k,C).then(b=>(I.selectCurrentPad(V),b))})()}addObjectPainter(g,E,_){if(g&&E&&E[_]&&void 0===g.snapid){this.painters.indexOf(g)<0&&this.painters.push(g),g.snapid=E[_].fObjectID;const v=p=>{if(p._unique_painter_id)for(let C=0;C=g.length)return delete _._snaps_map,_;const v=g[E];if(5===v.fKind)return _.processSnapStyle(v),_.drawNextSnap(g,E);if(4===v.fKind)return _.processSnapColors(v),_.drawNextSnap(g,E);const p=v.fObjectID;let C=(_._snaps_map[p]||0)+1,I=null;_._snaps_map[p]=C;for(let U=0;U<_.painters.length;++U)if(_.painters[U].snapid===p&&0==--C){I=_.painters[U];break}if(I){if(3===v.fKind)return I.redrawPadSnap(v).then(()=>_.drawNextSnap(g,E));let U;return 1===v.fKind?I.updateObject(v.fSnapshot,v.fOption,!0)&&(U=I.redraw()):2===v.fKind&&I.updateObject(v.fSnapshot)&&(U=I.redraw()),(0,x.getPromise)(U).then(()=>_.drawNextSnap(g,E))}if(3===v.fKind){const U=v.fSnapshot;U.fPrimitives=null;const k=new B(_.getDom(),U,!1);k.decodeOptions(v.fOption),k.addToPadPrimitives(_.this_pad_name),k.snapid=v.fObjectID,k.is_active_pad=!!v.fActive,k._readonly=v.fReadOnly??!1,k._snap_primitives=v.fPrimitives,k._has_execs=v.fHasExecs??!1,k.processSpecialSnaps(v.fPrimitives),k.createPadSvg(),k.matchObjectType(x.clTPad)&&v.fPrimitives.length>0&&k.addPadButtons(!0);const Z=k.selectCurrentPad(k.this_pad_name);return k.drawNextSnap(v.fPrimitives).then(()=>(k.addPadInteractive(),k.selectCurrentPad(Z),_.drawNextSnap(g,E)))}return 1!==v.fKind&&2!==v.fKind||"__ignore_drawing__"===v.fOption?_.drawNextSnap(g,E):_.drawObject(_.getDom(),v.fSnapshot,v.fOption).then(U=>(_.addObjectPainter(U,g,E),_.drawNextSnap(g,E)))})()}findSnap(g){if(this.snapid===g)return this;if(!this.painters)return null;for(let E=0;E0,void 0===E.snapid){E.snapid=g.fObjectID,E.draw_object=E.pad=_,E.isBatchMode()&&(!_.fCw||!_.fCh)&&(_.fCw=900,_.fCh=700),(!_.fCw||!_.fCh)&&(E._fixed_size=!1);const U=E.selectDom().attr("id");!E.isBatchMode()&&!E.use_openui&&!E.brlayout&&U&&(0,x.isStr)(U)&&(E.brlayout=new De.jX(U,null,E),E.brlayout.create(U,!0),E.setDom(E.brlayout.drawing_divid()),(0,Ve.d7)(E.brlayout)),E.processSpecialSnaps(g.fPrimitives),E.createCanvasSvg(0),E.isBatchMode()||E.addPadButtons(!0),typeof g.fHighlightConnect<"u"&&(E._highlight_connect=g.fHighlightConnect);let k=Promise.resolve(!0);if((0,x.isStr)(g.fScripts)&&g.fScripts){let Z="";0===g.fScripts.indexOf("load:")?Z=g.fScripts.slice(5).split(";"):0===g.fScripts.indexOf("assert:")&&(Z=g.fScripts.slice(7)),k=Z?(0,x.loadScript)(Z):(0,x.injectCode)(g.fScripts)}return k.then(()=>E.drawNextSnap(g.fPrimitives))}E.updateObject(_),E.iscan?E.createCanvasSvg(2):E.createPadSvg(!0);const v=(U,k,Z,ee)=>{const ue=U.find(b=>!(void 0===b.snapid||!b.matchObjectType(Z)||ee&&(!b.getObject()||b.getObject().fName!==ee)));if(!ue)return;const V=k.find(b=>!(1!==b.fKind||!b.fSnapshot||b.fSnapshot._typename!==Z||ee&&b.fSnapshot.fName!==ee));V&&ue.snapid!==V.fObjectID&&(ue.snapid=V.fObjectID)};g.fWithoutPrimitives||(v(E.painters,g.fPrimitives,"TFrame"),v(E.painters,g.fPrimitives,x.clTPaveText,"title"));let p=!1,C=!1;if(!g.fWithoutPrimitives)for(let U=0;Uee.fObjectID===k.snapid&&!ee.$checked);if(Z)p=!0,Z.$checked=!0;else if(U=E.removePrimitive(U),C=!0,-111===U){p=!1;break}}if(C&&delete E.pads_cache,!p&&!g.fWithoutPrimitives){const U=E.getFramePainter(),k=E.painters;E.painters=[],k.forEach(Z=>{U!==Z&&Z.cleanup()}),delete E.main_painter_ref,U&&(E.painters.push(U),U.cleanFrameDrawings(),U.redraw()),(0,x.isFunc)(E.removePadButtons)&&E.removePadButtons(),E.addPadButtons(!0)}const I=E.selectCurrentPad(E.this_pad_name);return E.drawNextSnap(g.fPrimitives).then(()=>(E.addPadInteractive(),E.selectCurrentPad(I),(0,ot.OZ)()===E&&E.getCanvPainter()?.producePadEvent("padredraw",E),E))})()}deliverWebCanvasEvent(g,E,_,v){if(!this._deliver_webcanvas_events||!this.is_active_pad||this.doingDraw()||void 0===E||void 0===_)return;const p=this.getCanvPainter();if(!p||!p._websocket||!p._websocket.canSend(2)||p._readonly)return;let C="";v&&v[0]&&v[0].painter?.snapid&&(C=v[0].painter.snapid.toString());const I=JSON.stringify([this.snapid,g,E.toString(),_.toString(),C]);p.sendWebsocket(`EVENT:${I}`)}createImage(g){var E=this;return(0,Te.A)(function*(){return"png"===g||"jpeg"===g||"svg"===g||"pdf"===g?E.produceImage(!0,g).then(_=>{if(!_||"svg"===g)return _;const v=_.indexOf("base64,");return v>0?_.slice(v+7):""}):""})()}getWebPadOptions(g,E){let _=void 0===g,v=null,p=!0;if(_&&this._readonly)return"";if("only_this"===g?(_=!0,p=!1):"with_subpads"===g&&(_=!0,p=!0),_&&(g=[]),E||(E=this.iscan?this:this.getCanvPainter()),this.snapid){if(v={_typename:"TWebPadOptions",snapid:this.snapid.toString(),active:!!this.is_active_pad,cw:0,ch:0,w:[],bits:0,primitives:[],logx:this.pad.fLogx,logy:this.pad.fLogy,logz:this.pad.fLogz,gridx:this.pad.fGridx,gridy:this.pad.fGridy,tickx:this.pad.fTickx,ticky:this.pad.fTicky,mleft:this.pad.fLeftMargin,mright:this.pad.fRightMargin,mtop:this.pad.fTopMargin,mbottom:this.pad.fBottomMargin,xlow:0,ylow:0,xup:1,yup:1,zx1:0,zx2:0,zy1:0,zy2:0,zz1:0,zz2:0},this.iscan)v.bits=this.getStatusBits(),v.cw=this.getPadWidth(),v.ch=this.getPadHeight(),v.w=[window.screenLeft,window.screenTop,window.outerWidth,window.outerHeight];else if(E){const C=E.getPadWidth(),I=E.getPadHeight(),U=this.getPadRect();v.cw=C,v.ch=I,v.xlow=U.x/C,v.ylow=1-(U.y+U.height)/I,v.xup=v.xlow+U.width/C,v.yup=v.ylow+U.height/I}this.getPadRanges(v)?g.push(v):console.log(`fail to get ranges for pad ${this.pad.fName}`)}return this.painters.forEach(C=>{if((0,x.isFunc)(C.getWebPadOptions))p&&C.getWebPadOptions(g,E);else{const I=X(C);I&&v.primitives.push(I)}}),_?(0,x.toJSON)(g):void 0}getPadRanges(g){if(!g)return!1;const E=this.getFramePainter(),_=this.svg_this_pad();if(g.ranges=E?.ranges_set??!1,g.ux1=g.px1=g.ranges?E.scale_xmin:0,g.uy1=g.py1=g.ranges?E.scale_ymin:0,g.ux2=g.px2=g.ranges?E.scale_xmax:0,g.uy2=g.py2=g.ranges?E.scale_ymax:0,g.uz1=g.ranges?E.scale_zmin??0:0,g.uz2=g.ranges?E.scale_zmax??0:0,E&&(E.zoom_xmin!==E.zoom_xmax&&(g.zx1=E.zoom_xmin,g.zx2=E.zoom_xmax),E.zoom_ymin!==E.zoom_ymax&&(g.zy1=E.zoom_ymin,g.zy2=E.zoom_ymax),E.zoom_zmin!==E.zoom_zmax&&(g.zz1=E.zoom_zmin,g.zz2=E.zoom_zmax)),!g.ranges||_.empty())return!0;const v=(I,U,k)=>I?U<=0?k:(U=Math.log10(U),I>1&&(U/=Math.log10(I)),U):U,p=E.getFrameRect();g.ux1=v(E.logx,g.ux1,0),g.ux2=v(E.logx,g.ux2,1);let C=(g.ux2-g.ux1)/(p.width||10);return g.px1=g.ux1-C*p.x,g.px2=g.px1+C*this.getPadWidth(),g.uy1=v(E.logy,g.uy1,0),g.uy2=v(E.logy,g.uy2,1),C=(g.uy2-g.uy1)/(p.height||10),g.py1=g.uy1-C*p.y,g.py2=g.py1+C*this.getPadHeight(),!0}itemContextMenu(g){const E=this.svg_this_pad().node().getBoundingClientRect(),_={clientX:E.left+10,clientY:E.top+10};if("pad"===g)return(0,x.postponePromise)(()=>this.padContextMenu(_),50);let p,v=null;switch(g){case"xaxis":case"yaxis":case"zaxis":v=this.getFramePainter(),p=g[0];break;case"frame":v=this.getFramePainter();break;default:{const C=parseInt(g);Number.isInteger(C)&&(v=this.painters[C])}}return(0,x.isFunc)(v?.fillContextMenu)?(0,He.ES)(_,v).then(C=>{if(v.fillContextMenu(C,p)||v.snapid)return v.fillObjectExecMenu(C,p).then(()=>(0,x.postponePromise)(()=>C.show(),50))}):void 0}saveAs(g,E,_){_||(_=(this.this_pad_name||(this.iscan?"canvas":"pad"))+"."+g),this.produceImage(E,g).then(v=>{if(!v)return console.error(`Fail to produce image ${_}`);(0,Ve.OJ)(_,"svg"!==g?v:"data:image/svg+xml;charset=utf-8,"+encodeURIComponent(v))})}findActivePad(){let g;return this.forEachPainterInPad(E=>{E.is_active_pad&&!g&&(g=E)},"pads"),g}produceImage(g,E){var _=this;return(0,Te.A)(function*(){const v="frame"===g,p=v?_.getFrameSvg(_.this_pad_name):g?_.getCanvSvg():_.svg_this_pad(),C=g&&!v?_.getCanvPainter():_,I=[];if(p.empty())return"";if(v||!g){const ue=_.getCanvSvg().selectChild(".canvas_defs");ue.empty()||(I.push({prnt:_.getCanvSvg(),defs:ue}),p.node().insertBefore(ue.node(),p.node().firstChild))}let U=null;C.forEachPainterInPad(ue=>{if(ue.is_active_pad&&!U&&(U=ue,U.drawActiveBorder(null,!1)),v)return;const V={prnt:ue.svg_this_pad()};I.push(V);const b=ue.getLayerSvg("btns_layer",ue.this_pad_name);V.btns_node=b.node(),V.btns_node&&(V.btns_prnt=V.btns_node.parentNode,V.btns_next=V.btns_node.nextSibling,b.remove());const P=ue.getFramePainter();if(!(0,x.isFunc)(P?.render3D)||!(0,x.isFunc)(P?.access3dKind))return;const T=P.access3dKind();if(T!==x.constants.Embed3D.Overlay&&T!==x.constants.Embed3D.Embed)return;const z=P.getSizeFor3d(x.constants.Embed3D.Embed),W=P.renderer.domElement;P.render3D(0);const fe=W.toDataURL("image/png");T===x.constants.Embed3D.Embed&&(V.foreign=V.prnt.select("."+z.clname),V.foreign.remove());const we=P.getFrameSvg();V.frame_node=we.node(),V.frame_node&&(V.frame_next=V.frame_node.nextSibling,we.remove()),V.img=V.prnt.insert("image",".primitives_layer").attr("x",z.x).attr("y",z.y).attr("width",W.width).attr("height",W.height).attr("href",fe)},"pads");let k=p.property("draw_width"),Z=p.property("draw_height");if(v){const ue=_.getFramePainter();k=ue.getFrameWidth(),Z=ue.getFrameHeight()}const ee="pdf"===E?{node:p.node(),width:k,height:Z,reset_tranform:v}:(0,ke.NM)(`${p.node().innerHTML}`);return(0,ke.Vm)(ee,E).then(ue=>{U?.drawActiveBorder(null,!0);for(let V=0;V{p.add("header:Menus"),p.add(this.iscan?"Canvas":"Pad","pad",this.itemContextMenu),this.getFramePainter()&&p.add("Frame","frame",this.itemContextMenu);const C=this.getMainPainter();if(C&&(p.add("X axis","xaxis",this.itemContextMenu),p.add("Y axis","yaxis",this.itemContextMenu),(0,x.isFunc)(C.getDimension)&&C.getDimension()>1&&p.add("Z axis","zaxis",this.itemContextMenu)),this.painters?.length){p.add("separator");const I=[];this.painters.forEach((U,k)=>{const Z=U?.getObject();if(!Z||I.indexOf(Z)>=0)return;let ee=(0,x.isFunc)(U.getClassName)?U.getClassName():Z._typename||"";ee&&(ee+="::"),ee+=(0,x.isFunc)(U.getObjectName)?U.getObjectName():Z.fName||`item${k}`,p.add(ee,k,this.itemContextMenu),I.push(Z)})}p.show()});let _=!1;const v=[];for(let p=0;p{p.fLeftMargin=p.fRightMargin=p.fBottomMargin=p.fTopMargin=0}),_.check("WHITE")&&v(p=>{p.fFillColor=0}),_.check("LOG2X")&&v(p=>{p.fLogx=2,p.fUxmin=0,p.fUxmax=1,p.fX1=0,p.fX2=1}),_.check("LOGX")&&v(p=>{p.fLogx=1,p.fUxmin=0,p.fUxmax=1,p.fX1=0,p.fX2=1}),_.check("LOG2Y")&&v(p=>{p.fLogy=2,p.fUymin=0,p.fUymax=1,p.fY1=0,p.fY2=1}),_.check("LOGY")&&v(p=>{p.fLogy=1,p.fUymin=0,p.fUymax=1,p.fY1=0,p.fY2=1}),_.check("LOG2Z")&&v(p=>{p.fLogz=2}),_.check("LOGZ")&&v(p=>{p.fLogz=1}),_.check("LOGV")&&v(p=>{p.fLogv=1}),_.check("LOG2")&&v(p=>{p.fLogx=p.fLogy=p.fLogz=2}),_.check("LOG")&&v(p=>{p.fLogx=p.fLogy=p.fLogz=1}),_.check("LNX")&&v(p=>{p.fLogx=3,p.fUxmin=0,p.fUxmax=1,p.fX1=0,p.fX2=1}),_.check("LNY")&&v(p=>{p.fLogy=3,p.fUymin=0,p.fUymax=1,p.fY1=0,p.fY2=1}),_.check("LN")&&v(p=>{p.fLogx=p.fLogy=p.fLogz=3}),_.check("GRIDX")&&v(p=>{p.fGridx=1}),_.check("GRIDY")&&v(p=>{p.fGridy=1}),_.check("GRID")&&v(p=>{p.fGridx=p.fGridy=1}),_.check("TICKX")&&v(p=>{p.fTickx=1}),_.check("TICKY")&&v(p=>{p.fTicky=1}),_.check("TICKZ")&&v(p=>{p.fTickz=1}),_.check("TICK")&&v(p=>{p.fTickx=p.fTicky=1}),_.check("OTX")&&v(p=>{p.$OTX=!0}),_.check("OTY")&&v(p=>{p.$OTY=!0}),_.check("CTX")&&v(p=>{p.$CTX=!0}),_.check("CTY")&&v(p=>{p.$CTY=!0}),_.check("RX")&&v(p=>{p.$RX=!0}),_.check("RY")&&v(p=>{p.$RY=!0}),this.storeDrawOpt(g)}static draw(g,E,_){return(0,Te.A)(function*(){const v=new B(g,E,!1);v.decodeOptions(_),v.getCanvSvg().empty()?(v.has_canvas=!1,v.this_pad_name="",v.setTopPainter()):v.addToPadPrimitives(v.pad_name),v.createPadSvg(),v.matchObjectType(x.clTPad)&&(!v.has_canvas||v.hasObjectsToDraw())&&v.addPadButtons();const p=v.has_canvas?v.selectCurrentPad(v.this_pad_name):void 0;return(0,ot.QD)({pp:v,active:!0}),v.drawPrimitives().then(()=>(v.showPadButtons(),v.addPadInteractive(),v.selectCurrentPad(p),v))})()}}},6043:(Yr,mt,Se)=>{"use strict";Se.r(mt),Se.d(mt,{HierarchyPainter:()=>U,drawInspector:()=>ee,drawList:()=>Y,drawStreamerInfo:()=>k,folderHierarchy:()=>Q,getHPainter:()=>He.gZ,keysHierarchy:()=>B,listHierarchy:()=>X,markAsStreamerInfo:()=>E,objectHierarchy:()=>$,taskHierarchy:()=>me});var Te=Se(4882),x=Se(8872),L=Se(8362),ve=Se(4369),ke=Se(2985),ot=Se(2843),Ye=Se(1922),Ze=Se(7900),Re=Se(6923),He=Se(6157),Ve=Se(5992);const De="TopFolder";function J(V){return V<1e4?V.toFixed(0)+"B":V<1e6?(V/1e3).toFixed(2)+"KiB":V<1e9?(V/1e6).toFixed(2)+"MiB":(V/1e9).toFixed(2)+"GiB"}function Y(V,b,P){return he.apply(this,arguments)}function he(){return(he=(0,Te.A)(function*(V,b,P){return b&&b.arr?{dom:V,lst:b,opt:P,indx:-1,painter:null,draw_next(){for(;++this.indx(fe&&!this.painter&&(this.painter=fe),this.draw_next()))}return this.painter}}.draw_next():null})).apply(this,arguments)}function Q(V,b){if(!b?.fFolders)return!1;if(0===b.fFolders.arr.length)return V._more=!1,!0;V._childs=[];for(let P=0;P=0?fe[lt]++:(fe[W.length]=we[W.length]=1,W.push(Ge))}V._childs=[];for(let Me=0;Me=0&&fe[lt]>1&&(Ge._cycle=we[lt]++,Ge._keyname=Ge._name,Ge._name=Ge._keyname+";"+Ge._cycle)}}else Ge={_name:Me.toString(),_kind:x.prROOT+"NULL",_title:"NULL",_value:"null",_obj:null};V._childs.push(Ge)}return!0}function B(V,b,P,T){if(void 0===b)return!1;V._childs=[];for(let z=0;z0&&W.fName===b[z-1].fName&&W.fCycle0&&b.length,Me=we&&b.length>x.settings.HierarchyLimit;let Ge,lt,bt,te,je=!1;if(we&&"Object"===V._name&&!V._parent&&(V._name="Array"),Me){je=!0;for(let Je=0;Je=0)continue;if(Me&&Ge){if(bt===tt){++te,lt=Je;continue}te>0&&(Ge._name+=".."+lt)}const Fe={_parent:V,_name:Je};if(Me&&(Ge=Fe,lt=Je,bt=tt,te=0),null===tt){Fe._value=Fe._title="null",z||V._childs.push(Fe);continue}let Ne=!1;if((0,x.isObject)(tt))if(T=Object.prototype.toString.apply(tt),(0,x.isArrayProto)(T)>0)Fe._title="array len="+tt.length,Ne="[object Array]"!==T,0===tt.length?(Fe._value="[ ]",Fe._more=!1):(Fe._value="[...]",Fe._more=!0,Fe._expand=$,Fe._obj=tt);else if("[object DataView]"===T)Fe._title="DataView len="+tt.byteLength,Fe._value="[...]",Fe._more=!0,Fe._expand=$,Fe._obj=tt;else if("[object Date]"===T)Fe._more=!1,Fe._title="Date",Fe._value=tt.toString(),Fe._vclass="h_value_num";else{(tt.$kind||tt._typename)&&(Fe._kind=Fe._title=x.prROOT+(tt.$kind||tt._typename)),tt._typename&&(Fe._title=tt._typename,W&&(0,Re.Xv)(tt._typename)&&(Fe._direct_context=!0));let rt=V,St=!1;for(;rt&&!St;)St=rt._obj===tt,rt=rt._parent;if(St)Fe._value="{ prnt }",Fe._vclass="h_value_num",Fe._more=!1,Ne=!0;else switch(Fe._obj=tt,Fe._more=!1,tt._typename){case x.clTColor:Fe._value=(0,ke.d_)(tt);break;case x.clTText:case x.clTLatex:Fe._value=tt.fTitle;break;case x.clTObjString:Fe._value=tt.fString;break;default:(0,x.isRootCollection)(tt)&&(0,x.isObject)(tt.arr)?(Fe._value=tt.arr.length?"[...]":"[]",Fe._title+=", size:"+tt.arr.length,tt.arr.length>0&&(Fe._more=!0)):(Fe._more=!0,Fe._value="{ }")}}else"number"==typeof tt||"boolean"==typeof tt?(Ne=!0,Fe._value="fBits"===Je?"0x"+tt.toString(16):tt.toString(),Fe._vclass="h_value_num"):(0,x.isStr)(tt)?(Ne=!0,Fe._value="""+tt.replace(/&/g,"&").replace(/"/g,""").replace(//g,">")+""",Fe._vclass="h_value_str"):typeof tt>"u"?(Ne=!0,Fe._value="undefined",Fe._vclass="h_value_num"):(Ne=!0,alert(`miss ${Je} type ${typeof tt}`));(!Ne||!z)&&V._childs.push(Fe)}return Me&&Ge&&te>0&&(Ge._name+=".."+lt),!0}function g(V){const b={_name:ve.D1,_childs:[]};for(let P=0;P"u"){console.warn(`strange element in StreamerInfo with type ${T._typename}`);continue}const z={_name:`${T.fName};${T.fClassVersion}`,_kind:`class ${T.fName}`,_title:`class:${T.fName} version:${T.fClassVersion} checksum:${T.fCheckSum}`,_icon:"img_class",_childs:[]};if(T.fTitle&&(z._title+=" "+T.fTitle),b._childs.push(z),!(typeof T.fElements>"u")){for(let W=0;W0)"'"===V[fe]&&T--;else if(z>0)'"'===V[fe]&&z--;else switch(V[fe]){case"'":T++;break;case'"':z++;break;case"[":P++;break;case"]":if(fe1&&we[0]===we[we.length-1]&&('"'===we[0]||"'"===we[0])&&(we=we.slice(1,we.length-1)),b.push(we),W=fe+1}}return 0===b.length&&b.push(V.slice(1,V.length-1).trim()),b}function p(V,b){if(b&&V&&"_childs"in b){for(let P=0;P(this._file||(this._file=we),we?we.readObject(W).then(Me=>{if(!z&&Me){const je=T.findItem({name:W,top:this,last_exists:!0,check_keys:!0});if(void 0!==je?.last&&je.last!==this){const Ge=we.getDir(T.itemFullName(je.last,this));if(Ge){je.last._name=je.last._keyname;const lt=T.itemFullName(je.last,this);B(je.last,Ge.fKeys,we,lt+"/")}}else B(this,we.fKeys,we,"");z=T.findItem({name:W,top:this})}return z&&(z._readobj=Me,"_expand"in z&&(z._name=z._keyname)),Me}):Promise.resolve(null));return this._file?fe(this._file):this._localfile?(0,ve.Tq)(this._localfile).then(we=>fe(we)):this._fullurl?(0,ve.Tq)(this._fullurl).then(we=>fe(we)):Promise.resolve(null)},B(P,b.fKeys,b,""),P}forEachItem(b,P){(0,x.isFunc)(b)&&function T(z,W){if(z&&(W&&(z._parent=W),b(z),"_childs"in z))for(let fe=0;fe=fe.length-1||we<0?je:P(je,fe.slice(we+1))}for(;we>0;){let je=we>=fe.length?fe:fe.slice(0,we);if(W._childs){for(let lt=0;lt=0&<Ge.showCommandArgsDialog(W._name,Me)):Promise.resolve(Me)).then(Ge=>{if(null===Ge)return!1;let lt="";for(let bt=0;bt0?"&":"?"}arg${bt+1}=${Ge[bt]}`;return we.empty()||(we.style("background","yellow"),W._title&&we.attr("title","Executing "+W._title)),(0,x.httpRequest)(fe+lt,"text").then(bt=>{if(we.empty())return bt;const te=bt&&"false"!==bt?"green":"red";return we.style("background",te),W._title&&we.attr("title",W._title+" lastres="+bt),setTimeout(()=>{we.style("background",null),W._icon&&we.classed("jsroot_fastcmd_btn")&&we.style("background-image",`url('${W._icon}')`)},2e3),"green"===te&&"_hreload"in W&&z.reload(),"green"===te&&"_update_item"in W&&z.updateItems(W._update_item.split(";")),bt})})})()}getObject(b,P){var T=this;return(0,Te.A)(function*(){const z={item:null,obj:null};let W,fe;if(null===b)return z;if((0,x.isStr)(b)?W=b:(0,x.isObject)(b)&&(void 0!==b._parent&&void 0!==b._name&&void 0!==b._kind?fe=b:void 0!==b.name?W=b.name:void 0!==b.arg?W=b.arg:void 0!==b.item&&(fe=b.item)),(0,x.isStr)(W)&&0===W.indexOf("img:"))return z.obj={_typename:"TJSImage",fName:W.slice(4)},z;fe?W=T.itemFullName(fe):fe=T.findItem({name:W,allow_index:!0,check_keys:!0});const we=fe?null:T.findItem({name:W,last_exists:!0,check_keys:!0,allow_index:!0});if(null!==we&&"last"in we&&null!==we.last){const je=T.itemFullName(we.last);return(0,x.isObject)(b)&&"rest"in b&&(b.rest===we.rest||b.rest.length<=we.rest.length)?z:T.expandItem(je,void 0,"hierarchy_expand_verbose"!==P).then(Ge=>{if(!Ge)return z;let lt=T.itemFullName(we.last);return lt&&(lt+="/"),T.getObject({name:lt+we.rest,rest:we.rest},P)})}if(z.item=fe,null!==fe&&(0,x.isObject)(fe._obj))return z.obj=fe._obj,z;let Me=fe;for(;Me;){if((0,x.isFunc)(Me._get))return Me._get(fe,null,P).then(je=>(z.obj=je,z));Me="_parent"in Me?Me._parent:null}return z})()}isLastSibling(b){if(!b||!b._parent||!b._parent._childs)return!1;const P=b._parent._childs;let T=P.indexOf(b);if(T<0)return!1;for(;++T=(b._parent._show_limit||x.settings.HierarchyLimit)&&(lt=!0)),b._d3cont=bt.node(),bt.attr("item",we);const Je=bt.append("div").attr("class","h_line");let tt=z?null:b._parent;for(;tt&&tt!==this.h;)Je.insert("div",":first-child").attr("class",this.isLastSibling(tt)?"img_empty":"img_line"),tt=tt._parent;let Fe="",Ne=!1;z||(W&&!lt?(Fe=b._isopen?"img_minus":"img_plus",Ne=!0):Fe="img_join");const rt=this;if(Fe){(lt||this.isLastSibling(b))&&(Fe+="bottom");const vt=Je.append("div").attr("class",Fe);Ne&&vt.style("cursor","pointer").on("click",function(Yt){rt.tree_click(Yt,this,"plusminus")})}if(this.with_icons&&!lt){const vt=b._isopen?je:Me,Yt=0===vt.indexOf("img_")?Je.append("div").attr("class",vt).attr("title",b._kind):Je.append("img").attr("src",vt).attr("alt","").attr("title",b._kind).style("vertical-align","top").style("width","18px").style("height","18px");("_icon_click"in b||fe&&"icon_click"in fe)&&Yt.on("click",function(qt){rt.tree_click(qt,this,"icon")})}const St=Je.append("a");if((Ge||W||lt)&&St.attr("class","h_item").on("click",function(vt){rt.tree_click(vt,this)}),lt)return b._break_point=!0,St.attr("title","there are "+(b._parent._childs.length-T)+" more items").text("...more..."),!1;"disp_kind"in rt?(x.settings.DragAndDrop&&Ge&&this.enableDrag(St,we),x.settings.ContextMenu&&te&&St.on("contextmenu",function(vt){rt.tree_contextmenu(vt,this)}),St.on("mouseover",function(){rt.tree_mouseover(!0,this)}).on("mouseleave",function(){rt.tree_mouseover(!1,this)})):b._direct_context&&x.settings.ContextMenu&&St.on("contextmenu",function(vt){rt.direct_contextmenu(vt,this)});let pt=b._name,st="";if("_realname"in b&&(pt=b._realname),"_title"in b&&(st=b._title),"_fullname"in b&&(st+=" fullname: "+b._fullname),st||(st=pt),St.attr("title",st).text(pt+("_value"in b?":":"")).style("background",b._background?b._background:null),"_value"in b){const vt=Je.append("p");"_vclass"in b&&vt.attr("class",b._vclass),b._isopen||vt.html(b._value)}if(W&&(z||b._isopen)){const vt=bt.append("div").attr("class","h_childs");this.show_overflow&&vt.style("overflow","initial");for(let Yt=0;YtP.exapndToLevel(b-1))})()}refreshHtml(){var b=this;return(0,Te.A)(function*(){const P=b.selectDom();if(P.empty())return b;P.html("").style("overflow",b.show_overflow?"auto":"hidden").style("display","flex").style("flex-direction","column"),function F(V){function b(W,fe,we,Me){return`.jsroot .img_${W} { display: inline-block; height: ${fe}px; width: ${fe}px; background-image: url("data:image/${we};base64,${Me}"); }`}(0,Ve.fz)(`\n.jsroot .h_tree { display: block; white-space: nowrap; }\n.jsroot .h_tree * { padding: 0; margin: 0; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; box-sizing: content-box; line-height: 14px }\n.jsroot .h_tree img { border: 0px; vertical-align: middle; }\n.jsroot .h_tree a { text-decoration: none; vertical-align: top; white-space: nowrap; padding: 1px 2px 0px 2px; display: inline-block; margin: 0; }\n.jsroot .h_tree p { font-weight: bold; white-space: nowrap; text-decoration: none; vertical-align: top; white-space: nowrap; padding: 1px 2px 0px 2px; display: inline-block; margin: 0; }\n.jsroot .h_value_str { color: green; }\n.jsroot .h_value_num { color: blue; }\n.jsroot .h_line { height: 18px; display: block; }\n.jsroot .h_button { cursor: pointer; color: blue; text-decoration: underline; }\n.jsroot .h_item { cursor: pointer; }\n.jsroot .h_item:hover { text-decoration: underline; }\n.jsroot .h_childs { overflow: hidden; display: block; }\n.jsroot_fastcmd_btn { height: 32px; width: 32px; display: inline-block; margin: 2px; padding: 2px; background-position: left 2px top 2px;\n background-repeat: no-repeat; background-size: 24px 24px; border-color: inherit; }\n.jsroot_inspector { border: 1px solid ${x.settings.DarkMode?"green":"black"}; box-shadow: 1px 1px 2px 2px ${x.settings.DarkMode?"#555":"#aaa"}; opacity: 0.95; background-color: ${x.settings.DarkMode?"black":"#E6E6FA"}; }\n.jsroot_drag_area { background-color: #007fff; }\n${b("minus",18,"gif","R0lGODlhEgASAJEDAIKCgoCAgAAAAP///yH5BAEAAAMALAAAAAASABIAAAInnD+By+2rnpyhWvsizE0zf4CIIpRlgiqaiDosa7zZdU22A9y6u98FADs=")}\n${b("minusbottom",18,"gif","R0lGODlhEgASAJECAICAgAAAAP///wAAACH5BAEAAAIALAAAAAASABIAAAImlC+Ay+2rnpygWvsizE0zf4CIEpRlgiqaiDosa7zZdU32jed6XgAAOw==")}\n${b("plus",18,"gif","R0lGODlhEgASAJECAICAgAAAAP///wAAACH5BAEAAAIALAAAAAASABIAAAIqlC+Ay+2rnpygWvsizCcczWieAW7BeSaqookfZ4yqU5LZdU06vfe8rysAADs=")}\n${b("plusbottom",18,"gif","R0lGODlhEgASAJECAICAgAAAAP///wAAACH5BAEAAAIALAAAAAASABIAAAIplC+Ay+2rnpygWvsizCcczWieAW7BeSaqookfZ4yqU5LZdU36zvd+XwAAOw==")}\n${b("empty",18,"gif","R0lGODlhEgASAJEAAAAAAP///4CAgP///yH5BAEAAAMALAAAAAASABIAAAIPnI+py+0Po5y02ouz3pwXADs=")}\n${b("line",18,"gif","R0lGODlhEgASAIABAICAgP///yH5BAEAAAEALAAAAAASABIAAAIZjB+Ay+2rnpwo0uss3kfz7X1XKE5k+ZxoAQA7")}\n${b("join",18,"gif","R0lGODlhEgASAIABAICAgP///yH5BAEAAAEALAAAAAASABIAAAIcjB+Ay+2rnpwo0uss3kf5BGocNJZiSZ2opK5BAQA7")}\n${b("joinbottom",18,"gif","R0lGODlhEgASAIABAICAgP///yH5BAEAAAEALAAAAAASABIAAAIZjB+Ay+2rnpwo0uss3kf5BGrcSJbmiaZGAQA7")}\n${b("base",18,"gif","R0lGODlhEwASAPcAAPv6/Pn4+mnN/4zf/764x2vO//Dv84HZ/5jl/0ZGmfTz9vLy8lHB/+zr70u+/7S03IODtd7d6c/P0ndqiq/w/4Pb/5SKo/Py9fPy9tTU121kjd/f4MzM062tx5+zy5rO67GwxNDM14d8mJzn/7awwry713zX/9bW27u71lFRmW5uoZ+fxjOy/zm1/9HQ2o3g/2xfgZeMplav7sn9/6Cgv37X/6Dp/3jU/2uJ2M7J1JC63vn5+v38/d7e38PD0Z7o/9LR4LS01cPDzPb1+Nzb5IJ2lHCEv5bk/53C3MrJ3X56t+np6YF7o3JsndTU5Wtgh5GHoKaesuLi4mrO/19RdnnV/4WBqF5QdWPK/4+PvW5uu4+PuuHh4q7w/97e68C9z63w/9PT0+zs7FtbmWVXerS0yaqitpuSqWVlpcL6/8jD0H/C9mVajqWu3nFwpYqHtFfE/42DnaWl0bTz/5OPt+7u7tra5Y+Yz+Tk56fM6Gek5pG50LGpvOHh72LJ/9XU5lbD/6GnwHpujfDu8mxpntzb45qav7PH41+n6JeXyUZGopyYsWeGyDu2/6LQ44re/1yV41TD/8LC1zix/sS/zdTU4Y+gsd/c5L7z+a6uzE+3+XG89L6+087O1sTD3K2twoGBtWVbgomo4P///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAKMALAAAAAATABIAAAjtAEcJFLgDTyE7SVCsAAJgoMNRYTII8fEpkAckOpiEaPhwlARLexxhmpEGzJEmBAJ0HMXhw6MfXeZQsDHADZ8hK13kMTEAwQgEL2oYiaJgJZFDU24cqHCgSgFGFgysBJAJkB8BBQRggQNJxKCVo0rIcMAgEgMHmnBMaADWEyIWLRptEqWETRG2K//ombSmjRZFoaCo4djRyZ0HchIlSECIRNGVXur0WcAlCJoUoOhcAltpyQIxPSRtGQPhjRkMKyN0krLhBCcaKrJoOCO1I48vi0CU6WDIyhNBKcEGyBEDBpUrZOJQugC2ufPnDwMCADs=")}\n${b("folder",18,"gif","R0lGODlhEgASANUAAPv7++/v79u3UsyZNOTk5MHBwaNxC8KPKre3t55sBrqHIpxqBMmWMb2KJbOBG5lnAdu3cbWCHaBuCMuYM///urB+GMWSLad1D8eUL6ampqVzDbeEH6t5E8iVMMCNKMbGxq58FppoAqh2EKx6FP/Ub//4k+vr6///nP/bdf/kf//viba2tv//////mQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAC4ALAAAAAASABIAAAaRQJdwSCwaj8ik0jUYTBidAEA5YFkplANhehxABGAwpKHYRByVwHBibbvbo8+Q0TrZ7/jWBTHEtP6AgX8GK0MWLSWJiostEoVCBy0qk5SVLQmPLh4tKZ2eny0LmQ0tKKanqC0hmQotJK+wsS0PfEIBZxUgHCIaBhIJCw8ZBUMABAUrycrLBQREAAEm0tPUUktKQQA7")}\n${b("folderopen",18,"gif","R0lGODlhEgASANUAAO/v76VzDfv7+8yZNMHBweTk5JpoAqBuCMuYM8mWMZ5sBpxqBPr7/Le3t///pcaaGvDker2KJc+iJqd1D7B+GOKzQ8KPKqJwCrOBG7WCHbeEH9e4QNq/bP/rhJlnAffwiaampuLBUMmgIf3VcKRyDP/XhLqHIqNxC8iVMMbGxqx6FP/kf//bdf/vievr67a2tv/4k8aaGf//nP//mf///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAADUALAAAAAASABIAAAaVwJpwSCwaj8ikUjgYIBIogEA5oFkZDEtheqzKvl9axKTJYCiAIYIGblutqtQwQYPZ73jZpCGM+f+AfiEdJy99M21tMxwxJQeGNTGIeHcyHzEjCpAAki2en54OIhULkAKSMiuqqysOGxIGkDWcMyy2t7YQDx58QqcBwMAkFwcKCwYgBEQFBC/Oz9AEBUUALtbX2FJLSUEAOw==")}\n${b("page",18,"gif","R0lGODlhEgASAOYAAPv7++/v7/j7/+32/8HBweTk5P39/djr/8Df//7///P5/8Ph//T09fn5+YGVw2t0pc7n/15hkFWn7ZOq0nqDsMDA/9nh7YSbyoqo2eTx/5G46pK873N+sPX6//f395Cjy83m/7rd/9jl9m13qGVqmoeh0n+OvI+z5Yyu387T//b6/2dtnvz9/32JtpS/8sbGxv7+/tvn92lwom96rHJ8rnSAsoep3NHp/8nk/7e3t+vr67a2tun1/3V4o+Hw/9vt/////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAEEALAAAAAASABIAAAejgEGCg4SFhoeILjaLjDY1AQCHG0AGAA0eDBY1E5CGGjBAoQkCMTUSHwGGJwaiAh0iNbEvhiihAgIDPDwpFRw5hhgsuLk8Pz8HNL+FJSoKuT4+xzczyoQXzjzQxjcgI9WDDrraPzc4OA/fgibZ0eTmCzLpQS0Z7TflCwgr8hT2EOYIQpCQ16OgwYMRCBgqQGCHw4cOCRQwBCCAjosYL3ZCxNFQIAA7")}\n${b("question",18,"gif","R0lGODlhEgASAPelAOP0//7//9bs//n///j//9Ls/8Pn//r//6rB1t3f5crO2N7g5k1livT4+7PW9dXt/+v4/+Xl5LHW9Ov6/+j1/6CyxrfCz9rd5Nzj6un1/Z6ouwcvj8HBzO7+/+3//+Ln7BUuXNHv/6K4y+/9/wEBZvX08snn/19qhufs8fP7/87n/+/t7czr/5q1yk55q97v/3Cfztnu//z//+X6/ypIdMHY7rPc/7fX9cbl/9/h52WHr2yKrd/0/9fw/4KTs9rm75Svzb2+ya690pu92mWJrcT3//H//+Dv/Xym35S216Ouwsvt/3N/mMnZ5gEBcMnq/wEBXs/o/wEBetzw/zdYpTdZpsvP2ClGml2N3b3H0Nzu/2Z2lF1ricrl/93w/97h6JqluktojM/u/+/z9g8pVff4+ebu9q+1xa6/zzdFaIiXr5Wyz0xslrTK4uL//2uIp11rh8Xj/NXn+Oz2/9bf6bG2xAEBePP//1xwkK/K5Nbr/8fp/2OBtG53kai3ykVCYwEBde/6/7O4xabI+fD//+by/x8+jDhZpM/q/6jK58nO19ny/7jV7ZO42NHr/9H4/2ZwimSV6VBxwMDX7Nvf5hYwX5m20sfb6Ieqyk9Yjr/k/cPM2NDp/+/098Tl9yQ9jLfW+Mne8sjU30JklP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAKUALAAAAAASABIAAAjxAEsJHEiwoMEyGMaQWthg0xeDAlGUWKjoz5mFAegY/LBiIalMUK54JCWEoJkIpA6kSDmoAykKgRaqGSiq04A5A5r4AKOEAAAtE2S0USAwSwYIhUb8METiUwAvemLMCMVEoIUjAF5MIYXAThUCDzgVWDQJjkA0cngIEHAHCCAqRqJ0QeQoDxeBFS71KKDCwxonhwiZwPEkzo4+AimJqBFCjBs+UjZ4WmLgxhAQVgb6acGIBShJkbAgMSAhCQ1IBTW8sZRI055HDhoRqXQCYo4tDMJgsqGDTJo6EAlyYFNkVJDgBgXBcJEAucEFeC44n04wIAA7")}\n${b("histo1d",16,"gif","iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAADAFBMVEW9vb2np6empqanpqenpqivr6//AAD3+fn09vb19vf3+Pv8+v//+//29/v3+fr19vbZ3Nza3d7X0+Lb3t7b3N3AwMP2+PimpqXe4+Th6uvQ0dTi6uzg5ebFx8nt6vb////r5/T2+fnl4e3a3uDN0NT7/P6lpqX3+vvn9vhcVVHu+//W1uH48//29P///f+mpqelpqb4/v/t/f9oY2H6///59v/x8fXw9fny9/78/v+lpqf7//9iXl12dHPW2t/R1tdtaGbT2dpoZmT6/v9ycnKCgoJpZGJ6dnT3///2///0//95entpa2t+gIKLjI55d3aDgYBvcXL1+/z9/v6lpaWGiIt7fH6Ji42SlJeEhIZubGyMjI17fYD+//+kpKSmpaaRk5WIioyRk5aYmp2OkJJ+f4KTlZilpKWcnqGVl5qcnqCfoaOYmp6PkZOdn6GsrrGoqq6qrK+rrbGpq66lp6uqrbCoqq20tLSsrKzc3NzMzMzPz88AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB6enrU4/9iYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmLU4/9KSkoAAAAAAAAAAAB6enrU4//m5uZiYmLm5uZiYmLm5uZiYmLm5uZiYmLm5ubU4/9KSkoAAAAAAAAAAAB6enrU4/9KSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkrU4/9KSkoAAAAAAAAAAABubm7U4//U4//U4//U4//U4//U4//U4//U4//U4//U4//U4/9KSkoAAAAAAAAAAABubm5KSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABt6dBwBYjWHVG2AAAAB3RSTlP///////8AGksDRgAAAAlwSFlzAAALEgAACxIB0t1+/AAAAOxJREFUeNpjYGBkggBmFmYmRlY2BkZ2DhDg5OLm4eblY2RjYOIXEBQSFhEFkgKCYkxsDOKcEpJS0jKycvJS8gpcIAFFJWUVGFIFCqipa8hrymtpy+sI6crr6bMxGBgayRvLm8iamkmZW1gCBayslWxs7ewd7OwdlZStrYC2ODm7uLrJu3t4usl7mRiwMeh7+/j6+VsHBMr7+wQFhwAFQsPCIyKjomOiIsOiYuPYGOITEpOSU1LTElNTElPlgQLpGZlZ2Tm5eZm5OZm5IAGm/ILCouKS0rKS4oISeaDDypniEICpgo2hsgoZVLMBAHIaNxuoIXy2AAAAAElFTkSuQmCC")}\n${b("histo2d",16,"gif","iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAACXBIWXMAAAsSAAALEgHS3X78AAABUUlEQVR42o1R0U7CQBDkU/w/v8qk1/OhCS+88miMiQYMBMNRTqiisQiRhF6h13adsuVKDEYvm81kdmdv9q7V7XallP65I30UrpErLGW73SaiFtDF5dXWmNNITJrubJ4RWUI2qU33GTorAdSJMeMwhOxpEE20noRTYISaajBcMrsdOlkgME+/vILtPw6j+BPg5vZuFRuUgZGX71tc2AjALuYrpWcP/WE1+ADAADMAY/OyFghfpJnlSTCAvLb1YDbJmArC5izwQa0K4g5EdgSbTQKTX8keOC8bgXSWAEbqmbs5BmPF3iyR8I+vdNrhIj3ewzdnlaBeWroCDHBZxWtm9DzaEyU2L8pSCNEI+N76+fVs8rE8fbeRUiWR53kHgWgs6cXbD2OOIScQnji7g7OE2UVZNILflnbrulx/XKfTAfL+OugJgqAShGF4/7/T6/Ug+AYZrx7y3UV8agAAAABJRU5ErkJggg==")}\n${b("histo3d",16,"gif","iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAADAFBMVEX////48OjIgTrHfjjKgTr78+yixH9HiQBHiACiw37jvJXfpVP6wzT7zTn7yj3lp1qOhyJzvgCa3wCa3gB2ugBinQ6Pt2D4+vfOjEr96p3986z83mT99rD99a3WhEvC0kaU3gCV3ADG71zo/KORzw1gowBonS3Z5snHfTb6uyD6tzD+/Nb7z0/70D3KdTXI1l3h+qTi+KXD7luU3ACY3gCc4QCi3g1QjwXHfjr710T6xi/+9sn70UH73E/MdDqhvQCi1BKkug2XxACU1wCS2ADD51rr9aJXkw/MpYDgpkb71U7+9MP7007hnEO3niOj0hGq3SCZtQCbtQCjtwj//+7F4Vui0wBDhgDk5eTMxcGxfi3TfTq+fyPPz4ak3xux5TG87kmZuwCZvACWtgDf8a+c0gCy3yNLiwD7/Ps1iwCiyAPF3F7j7bG67EW77kmq5yWYzwCZwwCTugDc8KTE51ve9YZCigCgwgCVuQDa5p7U9YSq4yWT2gCV2wCT2wCp2h/y+9HC6lW87DlChQBGigCixgCYvgDK3nyXvgC72UjG7mSj3xXL7XDK7W7b9J+36TrG9lBDhQBHigClywCbxQDJ33SXvwCYvQCcwADq+8S77Ei460Hd+KDD9VHU/2VEhgBdlR1rowCXwwDK4W6bxgCaxQCVvQDp/L+/8k7F91fn/6zC9V18tiNbkx/U1dSyv6RglihnoQCYwwChyQDs/7/P/2fE92F5tCBdkib19vXW1taoupVLiwNooQCWwADo/7h5tSBFhgaouZXx8vHOz86ftYVJiQBNjQKetIXt7u3Nzs0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBfAAAAAAAAAA2tmA2tmAAACQAAAAAAAAAAAAAAAAAAAAAATgAABNBfMAAAAAAAAA2tpQ2tpQAACQAAAAAAAAAAAAAAAAAAAAAAdQAABNBfMAAAAAAAAA2tsg2tsgAACQAAAAAAAAAAAAAAAAAAAAAAggAABNBfMCaVmCSAAAAAXRSTlMAQObYZgAAAAlwSFlzAAALEgAACxIB0t1+/AAAAQVJREFUeNpjYGBkYmZhZWBj5+BkAAMubh5ePn4BQSFhEVExcaCAhKSUtIysnLyCopKyiqqaOoOGppa2jq6evoGhkbGJqZk5g4WllbWNrZ29g6OTs4urmzuDh6eXt4+vn39AYFBwSGhYOENEZFR0TGxcfEJiUnJKalo6A0NGZlZ2Tm5efkFhUXFJqTnQnrLyisqq6prauvqGxqZmoEBLa1t7R2dXd09vX/+EiUCBSZOnTJ02fcbMWbPnzJ03HyiwYOGixUuWLlu+YuWq1WvWAgXWrd+wcdPmTVu2btu+Y/06kHd27tq9Z+++/QcOHtq1E+JBhsNHjh47fuLIYQYEOHnq1EkwAwCuO1brXBOTOwAAAABJRU5ErkJggg==")}\n${b("graph",16,"png","iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4AEFCgohaz8VogAAAT9JREFUOMulkz1LQlEYx39XmrIhcLa5i4mD4JBQrtHieDbb+gx3dbl9hca7tLi4VOsRMkKQVO7LLAQNNdSQgyJPg903tDT8w4HzPDznd56Xc1BKCVsokzTGjhPBXDcQAAEZDgPZCHDQaESH5/PYXyqZxp8A349vGHkjOXo3uXtp035sy79KABi8DQCwshb7x3U6gIYU6KNej+1kEwUEjbQeWtIb9mTsOCIgN1eXgiYd96OdcKNBOoCuQc47pFgoGmHw7skZTK9X16CUku5zV9BIkhz4vgSuG/nsWzvKIhmXAah+VpfJsxnGZMKkUln05NwykqOORq6UWkn+TRokXFEG/Vx/45c3fbrnFKjpRVkZgHKxbAC8NptrAfm9PAD2l42VtdJjDDwv2CSLpSaGMgsFc91hpdRFKtNtf6OxLeAbVYSb7ipFh3AAAAAASUVORK5CYII=")}\n${b("mgraph",16,"gif","iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAADAFBMVEW9vb2np6empqanpqenpqivr68AAAD3+fn09vb19vf3+Pv8+v//+//29/v3+fr19vbZ3Nza3d6/wcLb3t7b3N3AwMPi4et2oz0yfwDh3+n2+PimpqXe4+Th6uvD0NHi6uzg5ebFx8nt6vY2ggDs/881gQDr5/T2+fnFz9DDZVrAIhDEZVvJ0tTN0NTX0+IvZAA4hAAuYgDT0N77/P6lpqX3+vvn9vi/JRL81cHBJhTu+//W1uEkXgD48//29P8fWwD//f+mpqelpqb4/v/t/f+yCwDBKBi3CgD6//8kYAD59v/x8fXQ0dTw9fny9/78/v+lpqf7//+wAADV5ezZ5e7g6PQjZQDf4+/W2t/R1tfT2drT3+OvAAD9///6/v/////k4vIiXwC1AAD3///2///X6Oz0//9+rUgzfwAwdADa6u6xCwDAJxb5///1+/z9/v6lpaUwfADo/8vl4e3a3uDb6eu+IxL808C+IhDZ5+nW2tr+//+kpKSmpaaArUgvewB1oj39/v/e5ebVd227HgvJa2H8///6/PylpKXn4+ze4eLg5+j9/v20tLSsrKzc3NzMzMzPz88AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAPAAAAAAEAAAEAAABzL1z/CSMAAAAAAAAAAAAAAAMAAAAmCTsAAAAAAAAAAAAAAAAAAAQAAQEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7op0gAAAAB3RSTlP///////8AGksDRgAAAAlwSFlzAAALEgAACxIB0t1+/AAAAOhJREFUeNpjYGBkggBmFmYmRlY2BkZ2DhDg5OLm4eblY2RjYOIXEBQSFhEVE5cQl5RiYmOQ5pSRlZNXUFRSVlFV4wIJqGtoamnr6OrpGxgaGQMFTEzNzC0sraxtbPXs7B0c2RicnF1c3dw9PL28fXz9/IECAYFBwSGhYeERkVHRMYEBQFti4+ITEuOTklNSg9I8nNgYHOPTMzLjA7Oyc7Jz8/ILQAKFRRnFJaVl5RWVVdU1bAy18XX1DfGNTc0trW3t8UCBjvj4+M746q74+O7qHpAAUzwyADqsl6kGAZj62Bj6JyCDiWwAyPNF46u5fYIAAAAASUVORK5CYII=")}\n${b("tree",16,"gif","iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAABIAAAASABGyWs+AAAACXZwQWcAAAAQAAAAEABcxq3DAAACjklEQVQ4y4WTy49LcRzFP+2tzmVUr9dIDJOWGGVBicgEyTQTCzIetUFssDKJSFhY2SARCYvBbGrj8QcIkYglk8xCmEQ9xqNexbQVY2Zub3un9/W7PwstHZH4Jie/7+Kc8/suzgnwr+kjBqSBbm2lkm6bHyH3XM9SZQ8Z8s3UQJPo0IJVof5EZ7v2faxMrKONlhmQWN5GSFEwLbhybjBPhDwVsmQ4AaA09Mou+k8d702EAzXiS6KEgzahoIthGOi6DtKlN71GS+/cEPs0WewaX2R9ZphssP776UhESY0WSpQNg7Jh4Anx+zgJVKpV3uZyvHjzir27NwGs/XVBH8c7N2nnjx7eSqlYxPM8JCCkxBU+rhA4dVhCYJgmyc4Ej96/7rLi8nNAPc/k2ZNp7cnTpziuiy8lvpSI+tvYhS/xpY8vJXMiEbZv3MzFq3cJqaqiPX72jnKt9kfQRPZ9f5qZ70sMawyAas1GseIy1rNtVXK8Mkm1VsP2PBzhYQuB5Qns+t6AJQSqqlIcrTAy+ONGENBWLF3MN71MxXGo1mE6DqbrYLou8z/a7L3uMKvgUnU8xk2T3u71ADGFDdgvCx/3TwkLEfKxhWDHbY+eYZ+Obz6tJcmRApRsuJ8Ex4Po7Jl8/TDBl7flm4Gm5F1vSZKaFQUh4cB9OLgaDB3UVrjwA+6tBnKAis4El8lwujmJSVQeoKAxFzqDcG0KWhZC6R30tUJRQD3Odxqy4G+DDFks4pisY5RLgRx5pZ5T4cKy95yhSrxZDBCaVqIMOpAd2EIeSEW7wLQh3Ar7RtCHbk0v0vQy1WdgCymgf147Sa0dhAOVMZgoALDu2BDZ/xloQAzQgIOhMCnPYQ+gHRvi4d/8n00kYDRVLifLAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDEwLTAyLTExVDE0OjUxOjE3LTA2OjAwHh/NoQAAACV0RVh0ZGF0ZTptb2RpZnkAMjAwNC0wOS0yMFQxNzoxMDoyNi0wNTowMCcJijsAAAAASUVORK5CYII=")}\n${b("branch",16,"gif","iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAADAFBMVEX///99plFAfADL27hpmyfP8YxyoilSiRiv0XGGygK02VtRiBmVwjh8xQCcziFZkhLz9+9BfQB2rwaCyACRygFQigXw9Ox0mkpXkQCJzwBblgBmkzP8/fxEgQBCfwBEgQejwITe3t5hkC1CfgBfjynZ2tmSq3eArDu72oNvoDJajyTY2dhFgQDCzLqhvn9EgAazx55XkwCVzC2824GMs1J0oUTY48xajiK72YR9qj2Tq3dhkix+th99xAB3uADA3oQ+fABEgABIgwW82oOUyi5VkgCf0CaEygB+wwCbzjN1mkrA3YZ1tAB7wAB+uB1vl0JdmgCJwwCKzwBoqAB4nVBikiuayzZ8wQCFywCg0Sjd3t1lkjFBfABLgwhKgwlmpgCK0QCJxQBclwDMzMzPz89GggCDpFxDfgCIpmPl5eUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABhAABQEABuZQBjYQBvcgAIZABiYQBlZAAABQDU/wCx/wCO/wBr/wBI/wAl/wAA/wAA3AAAuQAAlgAAcwAAUADU/wCx/wCO/wBr/wBI/wAl/wAA/gAA3AAAuQAAlgAAcwAAUADj/wDH/wCr/wCP/wBz/wBX/wBV/wBJ3AA9uQAxlgAlcwAZUADw/wDi/wDU/wDG/wC4/wCq/wCq/wCS3AB6uQBilgBKcwAyUAD//wD//wD//wD//wD//wD//wD+/gDc3AC5uQCWlgBzcwBQUAD/8AD/4gD/1AD/xgD/uAD/qgD/qgDckgC5egCWYgBzSgBQMgD/4wD/xwD/qwD/jwD/cwD/VwD/VQDcSQC5PQCWMQBzJQBQGQD/1AD/sQD/jgD/awD/SAD/JQD+AADcAAC5AACWAABzAABQAAD/1AD/sQD/jgD/awD/SAD/JQD/AADcAACwULzWAAAAAXRSTlMAQObYZgAAAAlwSFlzAAALEgAACxIB0t1+/AAAALZJREFUeNpjYAADRiZGBmTAzMLKxowswM7BycWNLMDEw8vHL4AkICgkLCIqhiQgLiEpJS0D5cjKySsoKimrqMJk1dQ1NLW0dXQZ9PTlZEECBoZGxiamOmbmmhaWViABaxtbO3sHRycTZxdXA7ANbu4enkxeDt4+vn7WIAH/gMCg4JBQprDwiEhBkEBUtGBMrI5OXHxCYpI/2BrV5OSU5NS09BjB6CiE01JTM5KTVZHcmpycCWEAANfrHJleKislAAAAAElFTkSuQmCC")}\n${b("leaf",16,"gif","iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAADAFBMVEX////M27mQs2tilDA9eQA7egBbkhVTjAxJgwWBqVdGgQBrnySdxViu0WrE4oaYv2PC35NtoCqxvaSevX5FgAB7qje73nDK6neu109vpyVupCGo2kJ9xwBQhBtilC9pnx7G63PM6olgnAB/vQBDigCVv0yb1CaDzAB8uBJwmkNnnBnB52ui2Ca94WZopAE/hgCtz2ue2CmDywCByACKujtdjyqdvHpdlhLV9YdkowCFxwCw1lFXmAJvpC5jng1coABlpwBprAB8sitAfABDfgKx31Gr3TuCsi5sqABtqgBUkxTV85zL7I213mef0j+OxyKk00k/ewCp3TCSyhCw0mRRjQC23HmU0h55wQB5vQB4uQB1tgCIwBeJxgCBvQDC3ndCjACYx1204Fx6wwB7vQB1tABzsQBBfQBpkzdtpQB9tQA/iQCMu1SMukNUlQBYmQBsqAd4rh11rwZyrQBvqgBDfwCqvZVWkQBUnACp0Hq/43K733C+4X+w12eZyT2IvSN5sgpZkwBxmUSDqFlbnACJzQy742p/wwB2ugBysgBwrwBvqwBwqQBhmgBCfwDV2NN8pk1foACO1QBZmABRkABpqwB3uQB0sgB0rgBnogBUjgC7w7NymkFdnQBUhxmis41okjdCfgBGgQWHpWPMzMzb3NtumD5NhQzT09Pv8O/a2trOz87l5eXc3NzPz88AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABtHAA4HXQAAEgAAB9CTigAAABCfCQ4HTxy6Kw4HXRy+8xy+8wAAMwAAAAAAAAAAAAAAAAAAAAAAAgAAAgAABgYAAG7AAAAACgAAAgAAAgYAAEAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4Hnw4HnwAAFRpRiYmO2V0aWRtSSY7ZWdsZVNpdGNBO251amRGO3R0bCYmO3J3ZWlvVCY7c2xuaVc7d28ABCwBG8q3AAAAAXRSTlMAQObYZgAAAAlwSFlzAAALEgAACxIB0t1+/AAAAOtJREFUeNpjYIACRiZmFlY2dg4ol5OLm4eXj19AUAjMFRYRFROXkJSSlpEF8+XkFRSVlFVU1dQ1NMF8LW0dXT19A0MjYxNTIN/M3MLSytrG1s7ewdHJGSjg4urm7uHp5e3j6+cfABIIDAoOCVUJC4+IjIqOAQk4x8bFJyQmJadEpaalpQMFMjKzsnNy8/ILCouKS0qBAmXlFZVV1TW1dfUNJY1NQIHmlta29o7ozq7unt6+fgaGCRMnTZ4ydVrU9BkzZ5XOBiqYM3HuvPkL0tPTFy5avATkzqXLlq9YuWoJEKxeA/Ho2nUMyAAA9OtDOfv2TiUAAAAASUVORK5CYII=")}\n${b("leaf_method",16,"png","iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAKlBMVEUAAAAAgADzExMAgIAAAADAwMCAgADxGRnuFxLnHhHuIyPKJQ/rLi7////aW8ZOAAAAAXRSTlMAQObYZgAAAAFiS0dEDfa0YfUAAAAHdElNRQfgCxIPFR/msbP7AAAAaUlEQVQI12NggANBBiYFMMNQxAjCYA4UUoZIBRpBGMyiQorGIIaxWRCEwSYo3igiCNJlaLkwGSwkJn1QGMhgNDQ0TDU2dACqERYTDksGG5SkmGoApBnFhBRTBUAiaYJpDIJgs10cGBgdACxbDamu76Z5AAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE3LTAxLTE3VDA5OjMwOjM1KzAxOjAwyGHxKQAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNi0xMS0xOFQxNToyMTozMSswMTowMJgvuUkAAAAASUVORK5CYII=")}\n${b("globe",18,"gif","R0lGODlhEwASAPcAAPr7/AFyAQFCpwGD6jy3/wE9on7N0AE+pAFjyMLI0AE2mwF94wGP9QFpzgU3nISSopWgrmJsfTNLfgFHqAFuBilNiTp4sLnGzwWb/0xYb/P09mRygGl0hRlnMgR12V2Pr6e4xF9peS2Cyh5FpBdSfgF84YmisdPa30hjvw+foQFYvlWj4HWIlkWb5gk5n/b4+gw+kgFMscXb6ylmieDj5ju2pylTsniElgqd/u/x8wGW/O7v8SVMsUq+JSSJXQFiwfv+/AFqvB9ntobZeKbc/9vt+B+YmW2rvKruzQGPkm3PPrjmxQFIklrFLVbD4QGMYaXkoIPD13LC+nGw5AGFQHG66gF2eBaJxket9sLf84HI+wF7axBdbg2c0CR+1QFsEIfJ7yqoUIbH41tldgF+KzVTjn3QfitZgTJZkaDR8gKDsXeWrE+zogE3nCeKzQFtJ0tknjdnbQGB6EJgxQFqAcLJ0WC//yKm/wE+o7vI0ARozEOz/4/g/4KToyaX4/D09pCpuNHV24HA6gw7oAF/AXWKnEVSb5TI6VzDTrPprxBQts7e6FNdcBA9oySd9RRjPAhnD2NvgIydrF+6wdLo9v7//2K+twKSdDmKyeD56wGCyHq12VnF+ZXXsARdTjZWthShoo7gtilDlAFw1RCXvF+z6p/R8kqZzAF0Oj5jjFuJqgFoAkRgxtzr9YmcrJKsugFlylfBgxJGhjJIeFnFuhmi/+bo65ipt8Hn+UhVco7B5SZowAGBKoaZqAGGAVHBUwF8Qq7Y819qe4DEoVyYwrnb8QGN9GCy6QFTuHB9jgGY/gFRtuTu9ZOhr150iwFbwTFiwFus4h9mYt/y+kWZ35vM7hGfccz43Xy/6m3BuS1GiYveqDRfwnbUV4rdu////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAN8ALAAAAAATABIAAAj/AL8JHEiwVTVspar8ITiwiJhswyaBibJJUq9Trxh+S2OAVihvSzqRcoTpmy5ADIPFqrHtGpBETbrIuXJEBgiGbHoogTItExJOoAbw8rHmAkFTC8KYwTWkGx8COp4AozAjD8Epo4wQQfTLCQEcxqigoiONBUFqerRYspYCgzIGmgi98cRlA8EVLaR4UJPk0oASVgKs6kAiBMFDdrzAarDFF5kgCJA9ilNBGMFjWAQse/YjwBcVMfCcgTMr2UBKe0QIaHNgAiQmBRS4+CSKEYSBWe44E6JoEAxZDhrxmDPCEAcaA4vVinTCwi5uKFhBs6EtQ4QEOQYy8+NGUDRiqdCUJJGQa8yNQDsADHyxSNUHE4Vc3erzoFkdWxoAVNLIv7///98EBAA7")}\n${b("canvas",16,"gif","iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAADAFBMVEX/AAC1t7etsLCsrq6rrq6rrq2tr6+0tratsK/////p6enIysrl5OTn5uXo5+ajpaXo5+dhhKdliKlmialgg6elp6f6+/vIycnr7Ozw7u7x7u7x7u3t6+vLzMvp7vbs7/bz8PD17+3z7u2rrq/6xS76xy13zv9+z/+EwLF4zP/38/NfgqWAoL36uCj6vCmR2f+TxamSrBmNvoj++fz8+Pf69/WZ3f+g4P+n4/+Cnw2Dox16nQ3//f9hg6eBob6x5/+46f+77P+p2NKSZhOi1s////7//fusrq98sB6CsyWDtSmFuC9+dBl/tilfgqasr6+sr7DbAADcAABcgqWAoLyusLC4urqssLCssLGrsLCrr7Ctr67c3NzMzMwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABoAAAKAgJldmV0dU8GB3JvTnZDBWVyb2xsYwdjYWxhUBB0bmVrY2F1b3IICGRPYmFyZWQAAAXj1P/Hsf+rjv+Pa/9zSP9XJf9VAP9JANw9ALkxAJYlAHMZAFDU1P+xsf+Ojv9ra/9ISP8lJf8AAP4AANwAALkAAJYAAHMAAFDU4/+xx/+Oq/9rj/9Ic/8lV/8AVf8ASdwAPbkAMZYAJXMAGVDU8P+x4v+O1P9rxv9IuP8lqv8Aqv8AktwAerkAYpYASnMAMlDU//+x//+O//9r//9I//8l//8A/v4A3NwAubkAlpYAc3MAUFDU//Cx/+KO/9Rr/8ZI/7gl/6oA/6oA3JIAuXoAlmIAc0oAUDLU/+Ox/8eO/6tr/49I/3Ml/1cA/1UA3EkAuT0AljEAcyUAUBnU/9Sx/7GO/45r/2tI/0gl/yUA/gAA3AAAuQAAlgAAcwAAUADj/9TH/7Gr/46P/2tz/0hX/yVV/wBJ3AAQ+AFLAAAAAXRSTlMAQObYZgAAAAlwSFlzAAALEgAACxIB0t1+/AAAALpJREFUeNpjYGBkYmZhYWFlYWNngAAOTijg4oYIMHPy8PLx8nDycwpwQwUEhYSFRDhFxTi5xCECEpJS0jKcsqL8nGwgARZOOXkFRSWwMcwgAWVOFVU1dQ1NLW0dmICunr6BoZGxiSlEgJnTzNzC0sraxtYOJmDv4Ojk7MLp6gYRcOf08PTy9vHl9IOa4c+JAGCBAM7AoEDOwEDO4BCIABOSilCQQBhTeERkVGS4f3R0aBhIICYWAWIYGAClIBsa7hXG7gAAAABJRU5ErkJggg==")}\n${b("profile",16,"gif","iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAACXBIWXMAAAsSAAALEgHS3X78AAABZElEQVR42o1R22rCQBD1U/p//apCNtsHwRdfBaFIKbRoUVKMMTWBWIxVCq2b+07POrn4UKjDMpw9O2fm7G5vNBpJKe2/Qto4uEc2WMrBYEBEPaAky36UulwnlSRpUeZEBSGrpEiyHJVGAPVJqZvbO3ftv83Dle+vvPV4/LD0PGYAcKrSFJUsEOgHKoj3s9dFGH9uou3k8ekQKxyDQcYpBnYC7Hm9zBZmlL8BiIJDC0AWpa4FwhZJXoDCBgYAjgU5ToBt+k1tL14ssFNNvIEBAFwVljJlSDBfpwyg1ISnYoEsiHju5XLcd+T50q0tEQm7eaWKKNfUWgKApUsbPFY0lzY6DraEZm585Do/CLMzqLQWQnSC9k34lVa7PTsBs/zYOa4LB5ZlnQXCbif40Ra50jUwE6JtCcMlUiMQlugEQYisG8CWtGlRdQL+jmui/rjhcAhk/Reo6ff7RuB53vN1MZ1OIfgFQC1cuR3Y6lIAAAAASUVORK5CYII=")}\n${b("execute",16,"png","iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAABlBMVEXAwMAAxwCvbOAvAAAAAXRSTlMAQObYZgAAAAlwSFlzAAALEgAACxIB0t1+/AAAACBJREFUCFtjYIABHgYGfiA6wMD/gYH/B5g8ABLhYUAGAHniBNrUPuoHAAAAAElFTkSuQmCC")}\n${b("file",16,"png","iVBORw0KGgoAAAANSUhEUgAAABAAAAAQEAYAAABPYyMiAAAABmJLR0T///////8JWPfcAAAACXBIWXMAAABIAAAASABGyWs+AAAACXZwQWcAAAAQAAAAEABcxq3DAAAA2klEQVRIx61VURbDIAgTX+9ljg4n2z5sNouj1ml+LE9rQkSU5PA6kTZBToTznj5aqKqq+py4lFJKScnMzCwlAAB6IbnNuyXycd1g3oHrf32CmR9mZqpVOdDHs2DmI+c+AiJixu1RAN9xFUcdWCjVIr8xCX8Jubc8Ao9CJF8nRFgNJBxZSCEkjmrIxxSS0yIAoBU4OkpfU8sCPEbEvqaOXcR31zWORbYJ8EI8rsK+DWm7gMVb8F/GK7eg6818jNjJZjMn0agY7x6oxqL5sWbIbhLHoQN78PQ5F3kDgX8u9tphBfoAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTUtMDItMDZUMTA6Mjc6MzErMDE6MDChLu/mAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE0LTExLTEyVDA4OjM5OjIwKzAxOjAwIGvf8wAAAABJRU5ErkJggg==")}\n${b("text",16,"gif","R0lGODlhEgASALMAAP/////MzP+Zmf9mZv8zM/8AAMzM/8zMzJmZ/5mZmWZm/2ZmZjMz/zMzMwAA/////yH5BAUUAA8ALAAAAAASABIAAARo8MlJq73SKGSwdSDjUQoIjhNYOujDnGAnFXRBZKoBIpMw1ICHaaigBAq/AUK1CVEIhcfPNFlRbAEBEvWr0VDYQLYgkCQWh8XiAfgRymPyoTFRa2uPO009maP8ZmsjAHxnBygLDQ1zihEAOw==")}\n${b("task",18,"png","iVBORw0KGgoAAAANSUhEUgAAABUAAAAVCAAAAACMfPpKAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAJiS0dEAP+Hj8y/AAAACXBIWXMAAABIAAAASABGyWs+AAAATklEQVQY05XQUQoAIAgD0N3JY3fIChWttKR9xYvBCj0J0FsI3VVKQflwV22J0oyo3LOCc6pHW4dqi56v2CebbpMLtcmr+uTizz6UYpBnADSS8gvhaL5WAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE2LTA0LTA3VDA5OjQyOjQ4KzAyOjAwMgzRmQAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNC0xMS0xMlQwODozOToxOCswMTowMJ0LlncAAAAASUVORK5CYII=")}\n${b("pavetext",18,"png","iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAJ0Uk5TAAB2k804AAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAAAEgAAABIAEbJaz4AAAAsSURBVBjTY2CgCuBAAt1gASS5KKgARBpJACSEooIsARRbkABYoDsKCRDhEQBA2Am/6OrPewAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNi0wMS0wNFQxMDoxODoyNyswMTowMHsz6UQAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTQtMTEtMTJUMDg6Mzk6MjArMDE6MDAga9/zAAAAAElFTkSuQmCC")}\n${b("pavelabel",18,"png","iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAJ0Uk5TAAB2k804AAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAAAEgAAABIAEbJaz4AAAApSURBVBjTY2CgCuBAAt1gASS5KJgABzUEgABFANUWJAAWYIhCAkR4BAAHoAkEyi2U3wAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNi0wMS0wNFQxMDoxODoyNyswMTowMHsz6UQAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTQtMTEtMTJUMDg6Mzk6MjArMDE6MDAga9/zAAAAAElFTkSuQmCC")}\n${b("list",16,"png","iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4AEECTc01vBgywAAAE9JREFUOMu1k8ERwDAMwqRc9l/Z/eeRpKZlABkOLFD0JQGgAAah5kp8Y30F2HEwDhGTCG6tX5yqtAV/acEdwHQHl0Y8RbA7pLIxRPziGyM9xLEOKSpp/5AAAAAASUVORK5CYII=")}\n${b("color",16,"png","iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAM1BMVEUAAAAA4xcavGZGS1xZT79lW+9wdvFz/3N6fo3RISTZwXbyniXz80v/AAD/zAD/66v//6vGWiYeAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAADswAAA7MAbGhBn4AAAAHdElNRQfgAQQLLBhOmhPcAAAAIklEQVQY02NgRgEMDAzMnLzcfDwC7IxMbKwsQ10A3XMEAQA3JQVNowlkTAAAAABJRU5ErkJggg==")}\n${b("colz",16,"png","iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAMFBMVEV6fo0A4xcavGZGS1xZT79lW+9wdvFz/3PRISTZwXbyniXz80v/AAD/zAD/66v//6t1AkcGAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAADswAAA7MAbGhBn4AAAAHdElNRQfgAQQLNwdqpNWzAAAAT0lEQVQI12NgYGAwNjZmAAOLjmY0hs2ZwxCG1arFEIbt3csQhvXuzRCG/f/PEIZ5eTGEYSgoDGEYKSlDGGZpyRCGaWgwhGHi4gxhwG0HAwCr3BFWzqCkcAAAAABJRU5ErkJggg==")}\n${b("frame",16,"png","iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfgAQQLOwq4oOYCAAAAcUlEQVQoz7WQMQqAMAxFX0Uk4OLgIbp4oZ7BA/cOXR0KDnGpRbGayT+EQF74nw+GHIBo+5hdWdqAaFDoLIsegCSeWE0VcMxXYM6xvmiZSYDTooSR4WlxzzBZwGYBuwWs4mWUpVHJe1H9F1J7yC4ov+kAkTYXFCNzDrEAAAAASUVORK5CYII=")}\n${b("class",16,"png","iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QAvQC9AL1pQtWoAAAAjUlEQVR42p2T2wnAIAxFM0g/O6jDdBBHcAyHKKQYjfiI0UY4P8I9BG4CID8smB4+8SUsohpO3CFzKqmBFrhCO4kqQnCR6MJF4BEJTVQFhBAmASNIZkH6a0OMc8oUDAu8z7RhTTBVyIIEhxeCdYWjQApvK2TBrgGpwpP1livsBXC0ROMO/LqDKjKEzaf8AZWbJP6pTT9BAAAATHpUWHRTb2Z0d2FyZQAAeNpz0FDW9MxNTE/1TUzPTM5WMNEz0jNQsLTUNzDWNzBUSC7KLC6pdMitLC7JTNZLLdZLKS3IzyvRS87PBQDzvxJ8u4pLSgAAADN6VFh0U2lnbmF0dXJlAAB42ktKs0hLMkk2MzJKNEuzMLKwtEizSElMMbNITUw0NUtNAQCc7Qma0Goe1QAAAABJRU5ErkJggg==")}\n${b("member",16,"png","iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QAvQC9AL1pQtWoAAAAX0lEQVR42mNgAAIVBob/+DADPgBS8GCPBV6M1xCKDcDnBRcoZhgW4D8DBV75v2bLATAmxyC4ZmRMrCFYNfeU9BBvwJwpS8AYWTNZBoAwTDPFBpAciDCDyNFMtXSAFwAAUyq0GRPbbz4AAABMelRYdFNvZnR3YXJlAAB42nPQUNb0zE1MT/VNTM9MzlYw0TPSM1CwtNQ3MNY3MFRILsosLql0yK0sLslM1kst1kspLcjPK9FLzs8FAPO/Eny7iktKAAAAM3pUWHRTaWduYXR1cmUAAHjaS01JNrE0S00zSbU0NEsxMbMwM0xOSjYwNzY3NLRIMjUCAJcdCJ2BHe6SAAAAAElFTkSuQmCC")}\n${b("tf1",16,"png","iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAgMAAABinRfyAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX/////AP8/SMz///+Cf5VqAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAAHdElNRQfgCw4QHgSCla+2AAAAL0lEQVQI12MQYAACrAQXiFBoABINCgwMQgwcDAwSDEwMDKmhodMYJjAwaKDrAAEAoRAEjHDJ/uQAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTYtMTEtMTRUMTc6Mjk6MjErMDE6MDDxcSccAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE2LTExLTE0VDE3OjI5OjA1KzAxOjAwNka8zgAAAABJRU5ErkJggg==")}\n${b("tf2",16,"png","iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAgMAAABinRfyAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX/////AP8A/wD////pL6WoAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAAHdElNRQfgCw4PNgzGaW1jAAAARUlEQVQI12NgEGDQZAASKkBigQKQ6GhgYBDiYgASIiAigIGBS8iBgUFhEpCnoAEkUkNDQxkagUIMrUDMMAVETAARQI0MAD5GCJ7tAr1aAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE2LTExLTE0VDE2OjUxOjUzKzAxOjAwi1Gz3gAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNi0xMS0xNFQxNjo1MTozNiswMTowMG5bLUIAAAAASUVORK5CYII=")}\n`,V,"jsroot_hstyle")}(P.node());const T=b,z=[];let W=null;if(b.forEachItem(Me=>{delete Me._d3cont,"_fastcmd"in Me&&"Command"===Me._kind&&z.push(Me),"_status"in Me&&!W&&(W=Me)}),!b.h||P.empty())return b;if(z.length){const Me=P.append("div").attr("style","display: inline; vertical-align: middle; white-space: nowrap;");for(let je=0;jeb.toggleOpenState(!0)),fe.append("text").text(" | "),fe.append("a").attr("class","h_button").text("collapse all").attr("title","collapse all items in the browser").on("click",()=>b.toggleOpenState(!1)),(0,x.isFunc)(b.removeInspector)&&(fe.append("text").text(" | "),fe.append("a").attr("class","h_button").text("remove").attr("title","remove inspector").on("click",()=>b.removeInspector())),"_online"in b.h&&(fe.append("text").text(" | "),fe.append("a").attr("class","h_button").text("reload").attr("title","reload object list from the server").on("click",()=>b.reload())),"disp_kind"in b&&(fe.append("text").text(" | "),fe.append("a").attr("class","h_button").text("clear").attr("title","clear all drawn objects").on("click",()=>b.clearHierarchy(!1)));const we=P.append("div").attr("class","jsroot").style("font-size",b.with_icons?"12px":"15px").style("flex","1");if(b.show_overflow||we.style("overflow","auto"),b.background&&we.style("background-color",b.background).style("margin","2px").style("padding","2px"),b.textcolor&&we.style("color",b.textcolor),b.addItemHtml(b.h,we.append("div").attr("class","h_tree")),b.setTopPainter(),W&&!b.status_disabled&&!(0,x.decodeUrl)().has("nostatus")){const Me=(0,x.findFunction)(W._status);if((0,x.isFunc)(Me))return b.createStatusLine().then(je=>{je&&Me(je,b.itemFullName(W))})}return b})()}updateTreeNode(b,P){if(void 0===P||P.empty()){P=(0,L.Lt)(b._d3cont?b._d3cont:null);const T=this.itemFullName(b);if(P.empty()&&(P=this.selectDom().select(`[item='${T}']`)),P.empty()&&"_cycle"in b&&(P=this.selectDom().select(`[item='${T};${b._cycle}']`)),P.empty())return}this.addItemHtml(b,P,"update"),this.brlayout?.adjustBrowserSize(!0)}updateBackground(b,P){if(!b||!b._d3cont)return;const T=(0,L.Lt)(b._d3cont);if(T.empty())return;const z=T.select(".h_item");z.style("background",b._background?b._background:null),P&&b._background&&z.node().scrollIntoView(!1)}focusOnItem(b){var P=this;return(0,Te.A)(function*(){(0,x.isStr)(b)&&(b=P.findItem(b));const T=b?P.itemFullName(b):"";if(!T)return!1;let z=b,W=!1;for(;z;)void 0!==z._childs&&!z._isopen&&(z._isopen=!0,W=!0),z=z._parent;return(W?P.refreshHtml():Promise.resolve(!0)).then(()=>{const we=P.selectDom().select(`[item='${T}']`);return!we.empty()&&(we.node().scrollIntoView(),!0)})})()}tree_click(b,P,T){if(!P)return;const z=(0,L.Lt)(P.parentNode.parentNode),W=z.attr("item"),fe=W?this.findItem(W):null;if(!fe)return;if(fe._break_point){delete fe._break_point,this.addItemHtml(fe,z,"update");const bt=fe._parent,te=bt._childs.indexOf(fe),Je=(0,L.Lt)(z.node().parentNode);if(te<0)return console.error("internal error");bt._show_limit=2*(bt._show_limit||x.settings.HierarchyLimit);for(let tt=te+1;tt{this.fill_context(W,z),W.size()>0&&(W.tree_node=P.parentNode,W.show())})}fillSettingsMenu(b,P){b.addSettingsMenu(!0,P,T=>{"refresh"===T?(this.forEachRootFile(z=>B(z,z._file.fKeys,z._file,"")),this.refreshHtml()):"dark"===T?this.changeDarkMode():"width"===T&&this.brlayout?.adjustSeparators(x.settings.BrowserWidth,null)})}changeDarkMode(){this.textcolor&&(this.setBasicColors(),this.refreshHtml()),this.brlayout?.createStyle(),this.createButtons(),(0,x.isFunc)(this.disp?.changeDarkMode)&&this.disp.changeDarkMode(),this.disp?.forEachFrame(b=>{let P=(0,Ye.m6)(b);P||(P=(0,Ye.Nn)(b)),(0,x.isFunc)(P?.changeDarkMode)&&P!==this&&P.changeDarkMode()})}toggleDarkMode(){x.settings.DarkMode=!x.settings.DarkMode,this.changeDarkMode()}tree_contextmenu(b,P){b.preventDefault();const T=(0,L.Lt)(P.parentNode.parentNode).attr("item"),z=this.findItem(T);if(!z)return;const W=this.getOnlineProp(T),fe=this.getFileProp(T);return(0,Ze.ES)(b,this).then(Me=>{if(T&&z._parent||"_jsonfile"in z)if(W)this.fillOnlineMenu(Me,W,T);else{const je=(0,Re.iO)(z._kind,"nosame");if(z._can_draw&&(je.opts||(je.opts=[""]),je.opts.indexOf("")<0&&je.opts.unshift("")),je.opts){Me.addDrawMenu("Draw",je.opts,lt=>this.display(T,lt),"Draw item in the new frame");const Ge=this.disp?.getActiveFrame();!je.noappend&&Ge&&((0,Ye.m6)(Ge)||(0,Ye.Nn)(Ge))&&Me.addDrawMenu("Superimpose",je.opts,lt=>this.dropItem(T,Ge,lt),"Superimpose item with drawing on active frame")}if(fe&&je.opts&&!fe.localfile){let Ge=function we(Me){const Ge=document.createElement("div");return Ge.innerHTML=`x`,Ge.firstChild.href;var lt}(fe.fileurl);if(0===Ge.indexOf(x.source_dir)&&(Ge=Ge.slice(x.source_dir.length)),Ge=`${fe.kind}=${Ge}`,fe.itemname){let bt=fe.itemname;bt.search(/\+| |,/)>=0&&(bt=`'${bt}'`),Ge+=`&item=${bt}`}let lt="nobrowser";x.settings.WithCredentials&&(lt+="&with_credentials"),Me.addDrawMenu("Draw in new tab",je.opts,bt=>window.open(`${x.source_dir}?${lt}&${Ge}&opt=${bt}`),"Draw item in the new browser tab or window")}(je.expand||je.get_expand)&&(z._more||void 0===z._more)&&(void 0===z._childs?Me.add("Expand",()=>this.expandItem(T),"Exapnd content of object"):Me.add("Unexpand",()=>{z._more=!0,delete z._childs,delete z._isopen,z.expand_item&&delete z._expand,this.updateTreeNode(z)},"Remove all childs from hierarchy")),z._kind===x.prROOT+x.clTStyle&&Me.add("Apply",()=>this.applyStyle(T))}else{let je="",Ge=0;const lt=[],bt=()=>Ge++>0?"&":"?";this.forEachRootFile(tt=>lt.push(tt._file.fFullURL)),this.getTopOnlineItem()||(je=x.source_dir+"index.htm"),this.isMonitoring()&&(je+=bt()+"monitoring="+this.getMonitoringInterval()),1===lt.length?je+=`${bt()}file=${lt[0]}`:lt.length>1&&(je+=`${bt()}files=${JSON.stringify(lt)}`),this.disp_kind&&(je+=bt()+"layout="+this.disp_kind.replace(/ /g,""));const te=[],Je=[];this.disp?.forEachFrame(tt=>{const Fe=new Ye.JW(tt);let St,Ne=Fe.getTopPainter(),rt=Ne?Ne.getItemName():null;rt?St=Ne.getDrawOpt()||Ne.getItemDrawOpt():(Ne=null,Fe.forEachPainter(pt=>{const st=pt.getItemName();if(!st)return;let vt=pt.getDrawOpt()||pt.getItemDrawOpt()||"";Ne?Ne.getPadPainter()===pt.getPadPainter()&&(0===vt.indexOf("same ")&&(vt=vt.slice(5)),rt+="+"+st,St+="+"+vt):(Ne=pt,rt=st,St=vt)})),rt&&(te.push(rt),Je.push(St||""))}),1===te.length?je+=bt()+"item="+te[0]+bt()+"opt="+Je[0]:te.length>1&&(je+=bt()+"items="+JSON.stringify(te)+bt()+"opts="+JSON.stringify(Je)),Me.add("Direct link",()=>window.open(je)),Me.add("Only items",()=>window.open(je+"&nobrowser")),this.fillSettingsMenu(Me)}(0,x.isFunc)(z._menu)&&z._menu(Me,z,this),Me.size()>0&&(Me.tree_node=P.parentNode,Me.separ&&Me.add("separator"),Me.add("Close"),Me.show())}),!1}player(b,P){var T=this;return(0,Te.A)(function*(){const z=T.findItem(b);if(!z||!z._player||!(0,x.isStr)(z._player))return null;let W=null;if(z._module){const fe=yield T.importModule(z._module);W=fe?fe[z._player]:null}else(z._prereq||z._player.indexOf("JSROOT.")>=0)&&(yield T.loadScripts("",z._prereq)),W=(0,x.findFunction)(z._player);return(0,x.isFunc)(W)?(yield T.createDisplay(),W(T,b,P)):null})()}canDisplay(b,P){if(!b)return!1;if(b._player)return!0;if(void 0!==b._can_draw)return b._can_draw;if((0,x.isStr)(P)&&0===P.indexOf(x.kInspect))return!0;const T=(0,Re.hd)(b._kind,P);return(0,Re.Xv)(T)}isItemDisplayed(b){const P=this.getDisplay();return!!P&&null!==P.findFrame(b)}display(b,P,T){var z=this;return(0,Te.A)(function*(){const W=b;let we=null,Me=!1,je=null,Ge=b;const lt=P?.indexOf("::_display_on_frame_::")??-1;lt>=0&&(Ge=P.slice(lt+22),P=P.slice(0,lt));const bt=(te,Je)=>(Je&&console.log("When display ",b,"got",Je),Me&&je&&delete je._doing_update,Me||(0,Ve.Rh)(),(0,x.isFunc)(te?.setItemName)&&(te.setItemName(W,Me?null:P,z),je&&!je._painter&&(je._painter=te)),te||we);return z.createDisplay().then(te=>{if(!te)return bt();if(je=z.findItem(W),je&&"_player"in je)return z.player(W,P).then(Fe=>bt(Fe));if(Me=(0,x.isStr)(P)&&0===P.indexOf("update:"),Me){if(P=P.slice(7),!je||je._doing_update)return bt();je._doing_update=!0}if(je&&!z.canDisplay(je,P))return bt();let Je="",tt=!1;if((0,x.isStr)(P)&&P.indexOf("divid:")>=0){const Fe=P.indexOf("divid:");Je=P.slice(Fe+6),P=P.slice(0,Fe)}return"__default_draw_option__"===P&&(tt=!0,P=""),Me||(0,Ve.Rh)(`Loading ${W} ...`),z.getObject(W,P).then(Fe=>{Me||(0,Ve.Rh)(),je||(je=Fe.item);let Ne=Fe.obj;if(!Ne)return bt();Me||(0,Ve.Rh)(`Drawing ${W} ...`);let rt=Ne._typename?(0,Re.hd)(x.prROOT+Ne._typename):null;if(rt?.draw_field&&Ne[rt.draw_field]&&(Ne=Ne[rt.draw_field],P||(P=rt.draw_field_opt||""),rt=Ne._typename?(0,Re.hd)(x.prROOT+Ne._typename):null),tt&&!P&&rt?.dflt&&"expand"!==rt.dflt&&(P=rt.dflt),Je)return(Me?Re.AI:Re.$2)(Je,Ne,P).then(vt=>bt(vt)).catch(vt=>bt(null,vt));let St=!1;if(te.forEachPainter((st,vt)=>{if(st.getItemName()!==W)return;const Yt=st.getItemDrawOpt();tt&&T&&(P=Yt),(Me||!P||Yt===P)&&(T&&!St&&(St=!0,te.activateFrame(vt)),(0,x.isFunc)(st.redrawObject)&&st.redrawObject(Ne,P)&&(we=st))}),we)return bt();if(Me)return console.warn(`something went wrong - did not found painter when doing update of ${W}`),bt();const pt=te.findFrame(Ge,!0);return(0,Ye.tP)(pt),te.activateFrame(pt),(0,Re.$2)(pt,Ne,P).then(st=>bt(st)).catch(st=>bt(null,st))})})})()}enableDrag(b){b.attr("draggable","true").on("dragstart",function(P){const T=this.parentNode.parentNode.getAttribute("item");P.dataTransfer.setData("item",T)})}enableDrop(b){const P=this;(0,L.Lt)(b).on("dragover",function(T){const z=T.dataTransfer.getData("item"),W=P.findItem(z);(0,x.isStr)(W?._kind)&&0===W._kind.indexOf(x.prROOT)&&T.preventDefault()}).on("dragenter",function(){(0,L.Lt)(this).classed("jsroot_drag_area",!0)}).on("dragleave",function(){(0,L.Lt)(this).classed("jsroot_drag_area",!1)}).on("drop",function(T){(0,L.Lt)(this).classed("jsroot_drag_area",!1);const z=T.dataTransfer.getData("item");z&&P.dropItem(z,this)})}clearDrop(b){(0,L.Lt)(b).on("dragover",null).on("dragenter",null).on("dragleave",null).on("drop",null)}dropItem(b,P,T){var z=this;return(0,Te.A)(function*(){(!T||!(0,x.isStr)(T))&&(T="");const W=(fe,we)=>(!we&&(0,x.isFunc)(fe?.setItemName)&&fe.setItemName(b,null,z),fe);if("$legend"===b){const fe=(0,Ye.m6)(P);return(0,x.isFunc)(fe?.buildLegend)?fe.buildLegend(0,0,0,0,"",T).then(we=>W(we)):(console.error("Not possible to build legend"),W(null))}return z.getObject(b).then(fe=>{if(!fe.obj)return null;const we=(0,Ye.Nn)(P);return(0,x.isFunc)(we?.performDrop)?we.performDrop(fe.obj,b,fe.item,T).then(Me=>W(Me,we===Me)):we?.accept_drops?(0,Re.$2)(P,fe.obj,"same "+T).then(Me=>W(Me,we===Me)):(z.cleanupFrame(P),(0,Re.$2)(P,fe.obj,T).then(Me=>W(Me)))})})()}updateItems(b){var P=this;return(0,Te.A)(function*(){if(!P.disp)return!1;const T=[],z=[];let W=!1,fe=!1;return(0,x.isStr)(b)?b=[b]:(0,x.isObject)(b)||(void 0===b&&(b=!P.isMonitoring()),fe=!0,W=!!b),P.disp.forEachPainter(we=>{const Me=we.getItemName();if((0,x.isStr)(Me)&&!(T.indexOf(Me)>=0)){if(fe){const je=P.findItem(Me);if(!je||"_not_monitor"in je||"_player"in je)return;if(!("_always_monitor"in je)){const Ge=(0,Re.hd)(je._kind);let lt=!1;if(void 0!==Ge?.monitor){if(!1===Ge.monitor||"never"===Ge.monitor)return;"always"===Ge.monitor&&(lt=!0)}if(!lt&&W)return}}else if(b.indexOf(Me)<0)return;T.push(Me),z.push("update:"+we.getItemDrawOpt())}},!0),P.files_monitoring&&!W&&fe&&P.forEachRootFile(we=>{P.forEachItem(Me=>{delete Me._readobj},we),delete we._file}),P.displayItems(T,z)})()}displayItems(b,P){var T=this;return(0,Te.A)(function*(){if(!b||0===b.length)return!0;const z=T;for(P||(P=[]);P.lengthStart I/O test");const Ge=new Date;return T.getObject(b[0]).then(()=>{const lt=new Date;return(0,L.Lt)("#"+T.disp_frameid).append("h2").html("Item "+b[0]+" reading time = "+(lt.getTime()-Ge.getTime())+"ms"),!0})}const W=new Array(b.length),fe=new Array(b.length),we=new Array(b.length);for(let Ge=0;Ge1&&"'"===lt[0]&&"'"===lt[lt.length-1]&&(b[Ge]=lt.slice(1,lt.length-1),bt=!1);let te=z.findItem({name:b[Ge],check_keys:!0});if(te){b[Ge]=z.itemFullName(te);continue}if(bt&&"["===b[Ge][0]&&"]"===b[Ge][b[Ge].length-1]?(W[Ge]=v(b[Ge]),b[Ge]=W[Ge].shift()):bt&&b[Ge].indexOf("+")>0&&(W[Ge]=b[Ge].split("+"),b[Ge]=W[Ge].shift()),W[Ge]&&W[Ge].length>0){for(let tt=0;tt0&&null===z.findItem(W[Ge][tt])&&(W[Ge][tt]=W[Ge][tt].slice(0,Fe)+b[Ge].slice(Fe)),te=z.findItem({name:W[Ge][tt],check_keys:!0}),te&&(W[Ge][tt]=z.itemFullName(te))}for("["===P[Ge][0]&&"]"===P[Ge][P[Ge].length-1]?(fe[Ge]=v(P[Ge]),P[Ge]=fe[Ge].shift()):P[Ge].indexOf("+")>0?(fe[Ge]=P[Ge].split("+"),P[Ge]=fe[Ge].shift()):fe[Ge]=[];fe[Ge].length0&&!z.findItem(b[Ge])&&Ge>0&&(b[Ge]=b[Ge].slice(0,Je)+b[0].slice(Je)),te=z.findItem({name:b[Ge],check_keys:!0}),te&&(b[Ge]=z.itemFullName(te))}for(let Ge=b.length-1;Ge>=0;--Ge){if(we[Ge])continue;const lt=z.findItem(b[Ge]);!lt||z.canDisplay(lt,P[Ge])||(z.expandItem(b[Ge],null,!0),b.splice(Ge,1),P.splice(Ge,1),W.splice(Ge,1))}if(0===b.length)return!0;const Me=new Array(b.length),je=new Array(b.length);for(let Ge=0;Ge=0)lt=P[Ge].slice(te+8),P[Ge]=P[Ge].slice(0,te);else for(;Me.indexOf(lt)>=0;)lt=b[Ge]+"_"+bt++;Me[Ge]=lt}for(let Ge=0;Ge=0&&(lt=bt);for(let bt=0;bt{if(!Ge)return!1;for(let te=0;te0)return z.dropItem(W[te].shift(),Je.getDom(),fe[te].shift()).then(()=>lt(te,Je));W[te]=null,b[te]=null;for(let tt=0;ttlt(tt,Fe))}const bt=[];if(T._one_by_one){let te=function(Je){return Je>=b.length||(je[Je]?te(Je+1):z.display(b[Je],P[Je]).then(tt=>lt(Je,tt)).then(()=>te(Je+1)))};bt.push(te(0))}else for(let te=0;telt(te,Je)));return Promise.all(bt)})})()}reload(){var b=this;return(0,Te.A)(function*(){return"_online"in b.h&&b.openOnline(b.h._online).then(()=>b.refreshHtml())})()}activateItems(b,P){(0,x.isStr)(b)&&(b=[b]);const T=[],z=[];this.forEachItem(we=>{we._background&&(T.push(we),delete we._background)});const W=()=>{for(let we=z.length-1;we>=0;--we)this.updateTreeNode(z[we]);for(let we=0;we{if(void 0===we){if(0===b.length)return W();we=b.shift()}let je=this.findItem(we);if(!je){const Ge=this.findItem({name:we,last_exists:!0,check_keys:!0,allow_index:!0});if(!Ge||!Ge.last)return fe();if(Ge.now_found=this.itemFullName(Ge.last),P)return void 0!==Me&&Ge.now_found===Me?fe():this.expandItem(Ge.now_found).then(lt=>{if(!lt)return fe();let bt=this.itemFullName(Ge.last);bt&&(bt+="/"),fe(bt+Ge.rest,Ge.now_found)});je=Ge.last}if(je){let Ge=je._parent;for(;Ge;){if(!Ge._isopen){if(!P){je=Ge;break}Ge._isopen=!0,z.indexOf(Ge)<0&&z.push(Ge)}Ge=Ge._parent}je._background="LightSteelBlue",T.indexOf(je)<0&&T.push(je)}fe()};if(P&&this.brlayout){if(!this.brlayout.browser_kind)return this.createBrowser("float",!0).then(()=>fe());this.brlayout.browser_visible||this.brlayout.toggleBrowserVisisbility()}fe()}canExpandItem(b){if(!b)return!1;if(b._expand)return!0;const P=(0,Re.hd)(b._kind,"::expand");return P&&C(P)}expandItem(b,P,T){var z=this;return(0,Te.A)(function*(){const W=z.findItem(b),fe=z;if(!W&&P)return;function we(Ge,lt){return Me.apply(this,arguments)}function Me(){return(Me=(0,Te.A)(function*(Ge,lt){if((0,x.isStr)(Ge._expand)&&(Ge._expand=(0,x.findFunction)(Ge._expand)),!(0,x.isFunc)(Ge._expand)){let bt=(0,Re.hd)(Ge._kind,"::expand");if(bt?.expand_item&&!fe._inspector&&(lt=lt[bt.expand_item],Ge.expand_item=bt.expand_item,bt=lt?._typename?(0,Re.hd)(x.prROOT+lt._typename,"::expand"):null),bt?.expand||bt?.get_expand)if((0,x.isFunc)(bt.expand))Ge._expand=bt.expand;else if((0,x.isStr)(bt.expand)){if(!x.internals.ignore_v6){const te=yield(0,x._ensureJSROOT)();yield te.require(bt.prereq),yield te._complete_loading()}Ge._expand=bt.expand=(0,x.findFunction)(bt.expand)}else(0,x.isFunc)(bt.get_expand)&&(Ge._expand=bt.expand=yield bt.get_expand())}return lt&&(0,x.isFunc)(Ge._expand)&&Ge._expand(Ge,lt)||lt&&$(Ge,lt)?(Ge._isopen=!0,Ge._parent&&!Ge._parent._isopen?(Ge._parent._isopen=!0,T||fe.updateTreeNode(Ge._parent)):T||fe.updateTreeNode(Ge,P),Ge):-1})).apply(this,arguments)}let je=Promise.resolve(-1);if(W){if(!1===W._more||!W._parent&&W._childs)return;if(W._childs&&W._isopen)return W._isopen=!1,void(T||z.updateTreeNode(W,P));W._obj&&(je=we(W,W._obj))}return je.then(Ge=>-1!==Ge?Ge:((0,Ve.Rh)("Loading "+b),z.getObject(b,T?"hierarchy_expand":"hierarchy_expand_verbose").then(lt=>{if((0,Ve.Rh)(),lt.obj)return we(lt.item,lt.obj).then(bt=>-1!==bt?bt:void 0)})))})()}getTopOnlineItem(b){if(b){for(;b&&!("_online"in b);)b=b._parent;return b}return this.h?"_online"in this.h?this.h:this.h._childs&&"_online"in this.h._childs[0]?this.h._childs[0]:null:null}forEachJsonFile(b){if(this.h){if("_jsonfile"in this.h)return b(this.h);if(this.h._childs)for(let P=0;P{z._jsonfile===b&&(T=!0)}),!T)return(0,x.httpRequest)(b,"object").then(z=>{if(!z)return;const W={_jsonfile:b,_kind:x.prROOT+z._typename,_jsontmp:z,_name:b.split("/").pop()};if(z.fTitle&&(W._title=z.fTitle),W._get=function(fe){return fe._jsontmp?Promise.resolve(fe._jsontmp):(0,x.httpRequest)(fe._jsonfile,"object").then(we=>(fe._jsontmp=we,we))},P.h)if(P.h._kind===De)P.h._childs.push(W);else{const fe=P.h;P.h={_name:"_jsonfile"in fe?"Files":"Items",_kind:De,_childs:[fe,W]}}else P.h=W;return P.refreshHtml()})})()}forEachRootFile(b){if(this.h){if(this.h._kind===I&&this.h._file)return b(this.h);if(this.h._childs)for(let P=0;P{W._fullurl===b&&(T=!0)}),T)return;const z=(0,x.isStr)(b)?b:"file";return(0,Ve.Rh)(`Opening ${z} ...`),(0,ve.Tq)(b).then(W=>{const fe=P.fileHierarchy(W);if(fe._isopen=!0,P.h)if(P.h._kind===De)P.h._childs.push(fe);else{const we=P.h;P.h={_name:we._kind===I?"Files":"Items",_kind:De,_childs:[we,fe],_isopen:!0}}else P.h=fe,P._topname&&(fe._name=P._topname);return P.refreshHtml()}).catch(()=>((0,x.isBatchMode)()?console.error(`Fail to open ${z} - check CORS headers`):(0,L.Lt)("#gui_fileCORS").style("background","red").empty()||setTimeout(()=>(0,L.Lt)("#gui_fileCORS").style("background",""),5e3),!1)).finally(()=>(0,Ve.Rh)())})()}listServerDir(b){var P=this;return(0,Te.A)(function*(){return(0,x.httpRequest)(b,"text").then(T=>{if(!T)return!1;const z={_name:"Files",_kind:De,_childs:[],_isopen:!0};let W=0;for(;W5?z._childs.push({_name:we,_title:b+we,_url:b+we,_kind:I,_click_action:"expand",_more:!0,_obj:{},_expand:Me=>(0,ve.Tq)(Me._url).then(je=>{if(!je)return!1;delete Me._exapnd,delete Me._more,delete Me._click_action,delete Me._obj,Me._isopen=!0,P.fileHierarchy(je,Me),P.updateTreeNode(Me)})}):(we.lastIndexOf(".json.gz")===we.length-8&&we.length>8||we.lastIndexOf(".json")===we.length-5&&we.length>5)&&z._childs.push({_name:we,_title:b+we,_jsonfile:b+we,_can_draw:!0,_get:Me=>(0,x.httpRequest)(Me._jsonfile,"object").then(je=>(je&&(Me._kind=x.prROOT+je._typename,Me._jsontmp=je,P.updateTreeNode(Me)),je))})}return z._childs.length>0&&(P.h=z),!0})})()}applyStyle(b){var P=this;return(0,Te.A)(function*(){if(!b)return!0;let T=Promise.resolve(b);if((0,x.isStr)(b)){const z=P.findItem({name:b,allow_index:!0,check_keys:!0});null!==z?T=P.getObject(z).then(W=>W.obj):b.indexOf(".json")>0&&(T=(0,x.httpRequest)(b,"object"))}return T.then(z=>{z?._typename===x.clTStyle&&Object.assign(x.gStyle,z)})})()}getFileProp(b){let P=this.findItem(b);if(!P)return null;let T=P._name;for(;P._parent;){if(P=P._parent,"_file"in P)return{kind:"file",fileurl:P._file.fURL,itemname:T,localfile:!!P._file.fLocalFile};if("_jsonfile"in P)return{kind:"json",fileurl:P._jsonfile,itemname:T};T=P._name+"/"+T}return null}getOnlineItemUrl(b){(0,x.isStr)(b)&&(b=this.findItem(b));let P=b;for(;P&&void 0===P._online;)P=P._parent;return P?P._online+this.itemFullName(b,P):null}isOnlineItem(b){return null!==this.getOnlineItemUrl(b)}importModule(b){return(0,Te.A)(function*(){switch(b){case"core":return Promise.resolve().then(Se.bind(Se,8872));case"draw_tree":return Promise.all([Se.e(679),Se.e(76),Se.e(122)]).then(Se.bind(Se,1122));case"hierarchy":return{HierarchyPainter:U,markAsStreamerInfo:E}}return import(b)})()}getOnlineItem(b,P,T){var z=this;return(0,Te.A)(function*(){let W=P,fe=!1,we="",Me="object",je=null;if((0,x.isStr)(T)&&0===T.indexOf("hierarchy_expand")&&(fe=!0,T=void 0),b){W=z.getOnlineItemUrl(b);let Ge=null;if("_kind"in b&&(je=(0,Re.hd)(b._kind)),fe?(we="h.json?compact=3",b._expand=p):b._make_request?Ge=b._module?(yield z.importModule(b._module))[b._make_request]:(0,x.findFunction)(b._make_request):je?.make_request&&(Ge=je.make_request),(0,x.isFunc)(Ge)){const lt=Ge(z,b,W,T);lt&&((0,x.isStr)(lt)?we=lt:("req"in lt&&(we=lt.req),"kind"in lt&&(Me=lt.kind)))}!we&&0!==b._kind.indexOf(x.prROOT)&&(we="item.json.gz?compact=3")}if(!P&&b&&"_cached_draw_object"in z&&!we){const Ge=z._cached_draw_object;return delete z._cached_draw_object,Ge}return we||(we="root.json.gz?compact=23"),W&&(W+="/"),W+=we,new Promise(Ge=>{let lt=null;(0,x.createHttpRequest)(W,Me,bt=>{const te=Je=>{if((0,x.isFunc)(Je)){const tt=Je(z,b,bt,T,lt);(0,x.isObject)(tt)&&(bt=tt)}Ge(bt)};!fe&&b?._after_request?b._module?z.importModule(b._module).then(Je=>te(Je[b._after_request])):te((0,x.findFunction)(b._after_request)):te(je?.after_request)},void 0,!0).then(bt=>{lt=bt,bt.send(null)})})})()}openOnline(b){var P=this;return(0,Te.A)(function*(){const T=function(){var z=(0,Te.A)(function*(W){if(P.h=W,!W)return Promise.resolve(null);P.h?._title&&typeof document<"u"&&(document.title=P.h._title),W._isopen=!0,P.h._online=b,P.h._get=(Ge,lt,bt)=>P.getOnlineItem(Ge,lt,bt),P.h._expand=p;const fe=[],we=[],Me=[],je=[];return P.forEachItem(Ge=>{void 0!==Ge._childs&&(Ge._expand=p),Ge._autoload&&Ge._autoload.split(";").forEach(bt=>{bt.length>4&&bt.lastIndexOf(".mjs")===bt.length-4?je.push(P.importModule(bt)):bt.length>3&&bt.lastIndexOf(".js")===bt.length-3?we.find(te=>te===bt)||we.push(bt):bt.length>4&&bt.lastIndexOf(".css")===bt.length-4?fe.find(te=>te===bt)||fe.push(bt):bt&&!Me.find(te=>te===bt)&&Me.push(bt)})}),P.loadScripts(we,Me).then(()=>(0,x.loadScript)(fe)).then(()=>Promise.all(je)).then(()=>(P.forEachItem(Ge=>{if(!("_drawfunc"in Ge)||!("_kind"in Ge))return;let lt="kind:"+Ge._kind;0===Ge._kind.indexOf(x.prROOT)&&(lt=Ge._kind.slice(5));const bt=Ge._drawopt;(!(0,Re.Xv)(lt)||bt)&&(0,Re.uA)({name:lt,func:Ge._drawfunc,script:Ge._drawscript,opt:bt})}),P))});return function(fe){return z.apply(this,arguments)}}();if(b||(b=""),(0,x.isObject)(b)){const z=b;return b="",T(z)}return(0,x.httpRequest)(b+"h.json?compact=3","object").then(z=>T(z))})()}getOnlineProp(b){let P=this.findItem(b);if(!P)return null;let T=P._name;for(;P._parent;){if(P=P._parent,"_online"in P)return{server:P._online,itemname:T};T=P._name+"/"+T}return null}fillOnlineMenu(b,P,T){const z=this.findItem(T),W=(0,Re.iO)(z._kind,"nosame;noinspect"),fe=(0,Re.hd)(z._kind),we=!!(0,x.isStr)(z._kind)&&0===z._kind.indexOf(x.prROOT);W.opts&&!1!==z._can_draw&&(W.opts.push(x.kInspect),b.addDrawMenu("Draw",W.opts,Me=>this.display(T,Me))),!z._childs&&!1!==z._more&&(z._more||we||W.expand||W.get_expand)&&b.add("Expand",()=>this.expandItem(T)),fe?.execute&&b.add("Execute",()=>this.executeCommand(T,b.tree_node)),W.opts&&!1!==z._can_draw&&b.addDrawMenu("Draw in new window",W.opts,Me=>window.open(P.server+`?nobrowser&item=${P.itemname}`+(this.isMonitoring()?`&monitoring=${this.getMonitoringInterval()}`:"")+(Me?`&opt=${Me}`:""))),W.opts?.length&&we&&!1!==z._can_draw&&b.addDrawMenu("Draw as png",W.opts,Me=>window.open(P.server+P.itemname+"/root.png?w=600&h=400"+(Me?"&opt="+Me:"")),"Request PNG image from the server"),"_player"in z&&b.add("Player",()=>this.player(T))}setHierarchy(b){this.h=b,this.refreshHtml()}setMonitoring(b,P){this._runMonitoring("cleanup"),b&&(b=parseInt(b),Number.isInteger(b)&&b>0?(this._monitoring_interval=Math.max(100,b),P=!0):this._monitoring_interval=3e3),this._monitoring_on=P,this.isMonitoring()&&this._runMonitoring()}_runMonitoring(b){return"cleanup"!==b&&this.isMonitoring()?"frame"===b?(delete this._monitoring_handle,void(this._monitoring_frame=requestAnimationFrame(this._runMonitoring.bind(this,"draw")))):("draw"===b&&(delete this._monitoring_frame,this.updateItems()),void(this._monitoring_handle=setTimeout(this._runMonitoring.bind(this,"frame"),this.getMonitoringInterval()))):(this._monitoring_handle&&(clearTimeout(this._monitoring_handle),delete this._monitoring_handle),void(this._monitoring_frame&&(cancelAnimationFrame(this._monitoring_frame),delete this._monitoring_frame)))}getMonitoringInterval(){return this._monitoring_interval||3e3}isMonitoring(){return this._monitoring_on}setDisplay(b,P){!P&&(0,x.isObject)(b)?(this.disp=b,this.disp_kind="custom",this.disp_frameid=null):(this.disp_kind=b,this.disp_frameid=P),!this.register_resize&&"batch"!==this.disp_kind&&(this.register_resize=!0,(0,Ve.d7)(this))}getLayout(){return this.disp_kind}removePainter(b){this.forEachItem(P=>{P._painter===b&&(delete P._painter,(0,x.isFunc)(P.clear)&&P.clear())})}clearHierarchy(b){this.disp&&(this.disp.cleanup(),delete this.disp);const P=[];this.forEachItem(T=>{delete T._painter,!b&&(0,x.isFunc)(T.clear)&&T.clear(),b&&P.push(T)}),b&&(this.enableMonitoring(!1),this.selectDom().html(""),P.forEach(T=>{delete T._parent,delete T._childs,delete T._obj,delete T._d3cont}),delete this.h)}getDisplay(){return this.disp}cleanupFrame(b){(0,L.Lt)(b).attr("frame_title",null),this.clearDrop(b);const P=(0,Ye.tP)(b);P.length>0&&this.forEachItem(T=>{T._painter&&P.indexOf(T._painter)>=0&&delete T._painter})}createDisplay(){var b=this;return(0,Te.A)(function*(){if("disp"in b){if(b.disp.numDraw()>0||"custom"===b.disp_kind)return b.disp;b.disp.cleanup(),delete b.disp}return"batch"===b.disp_kind?((0,x.isNodeJs)()?(0,ot.lf)():Promise.resolve(null)).then(T=>(b.disp=new He.bG(1200,800,T?.body),b.disp)):document.getElementById(b.disp_frameid)?(b.disp=0===b.disp_kind.indexOf("flex")||0===b.disp_kind.indexOf("coll")?new He.o5(b.disp_frameid):"tabs"===b.disp_kind?new He.Hb(b.disp_frameid):new He.ho(b.disp_frameid,b.disp_kind),b.disp.cleanupFrame=b.cleanupFrame.bind(b),x.settings.DragAndDrop&&b.disp.setInitFrame(b.enableDrop.bind(b)),b.disp):null})()}createCustomDisplay(b,P){var T=this;return(0,Te.A)(function*(){if("simple"!==T.disp_kind)return T.createDisplay();if(T.disp_kind=P,T.disp){const z=T.disp.numDraw();if(z>1||1===z&&!T.disp.findFrame(b))return T.createDisplay();T.disp.cleanup(),delete T.disp}return T.createDisplay()})()}updateOnOtherFrames(b,P){const T=this.disp;if(!T)return!1;const z=P._typename?(0,Re.hd)(x.prROOT+P._typename):null;z?.draw_field&&P[z?.draw_field]&&(P=P[z?.draw_field]);let W=!1;return T.forEachPainter(fe=>{fe===b||fe.getItemName()!==b.getItemName()||(0,x.isFunc)(fe.redrawObject)&&fe.redrawObject(P)&&(W=!0)}),W}checkResize(b){this.disp&&this.disp.checkMDIResize(null,b)}loadScripts(b,P,T){return(0,Te.A)(function*(){return!b?.length&&!P?.length||(T&&!globalThis.JSROOT&&(globalThis.JSROOT={version:x.version,gStyle:x.gStyle,create:x.create,httpRequest:x.httpRequest,loadScript:x.loadScript,decodeUrl:x.decodeUrl,source_dir:x.source_dir,settings:x.settings,addUserStreamer:ve.Ub,addDrawFunc:Re.uA,draw:Re.$2,redraw:Re.AI}),x.internals.ignore_v6||T?(0,x.loadScript)(b):(0,x._ensureJSROOT)().then(z=>z.require(P).then(()=>(0,x.loadScript)(b)).then(()=>z._complete_loading())))})()}startGUI(b,P){var T=this;return(0,Te.A)(function*(){const z=(0,x.decodeUrl)(P),W=Dn=>{let $n=z.get(Dn,null);return null===$n&&b&&!b.empty()&&b.node().hasAttribute(Dn)&&($n=b.attr(Dn)),$n},we=Dn=>{let $n=(Dn=>{let $n=[];for(;Dn;){const Cn=Dn.indexOf(";");let yn=Cn>0?Dn.slice(0,Cn):Dn;Dn=Cn>0?Dn.slice(Cn+1):"";let Sn=!0;"#"===yn[0]&&(yn=yn.slice(1),Sn=!1);const ii=z.get(yn,null);Sn?$n=$n.concat(v(ii)):null!==ii&&$n.push(ii)}return $n})(Dn);if($n.length>0||!b||b.empty())return $n;for(;Dn;){const Cn=Dn.indexOf(";");let yn=Cn>0?Dn.slice(0,Cn):Dn;Dn=Cn>0?Dn.slice(Cn+1):"";let Sn=!0;if("#"===yn[0]&&(yn=yn.slice(1),Sn=!1),"files"===yn||!b.node().hasAttribute(yn))continue;const ii=b.attr(yn);Sn?$n=$n.concat(v(ii)):null!==ii&&$n.push(ii)}return $n},Me=z.get("path")||"",je=we("#json;jsons"),Ge=we("expand"),lt=W("focus"),bt=W("layout"),te=we("#style"),Je=W("title");T._one_by_one=x.settings.drop_items_one_by_one??null!==W("one_by_one");let tt=W("prereq")||"",Fe=W("load"),Ne=W("dir"),rt=W("inject"),St=we("#file;files"),pt=we("#item;items"),st=we("#opt;opts"),vt=W("monitoring"),Yt=0,qt=W("status"),Ot=W("browser"),Bn=!!Ot;if(vt=null===vt?0:""===vt?3e3:parseInt(vt),null!==W("float")?(Ot="float",Bn=!0):null!==W("fix")&&(Ot="fix",Bn=!0),!Bn&&x.browser.screenWidth<=640&&(Ot="float"),T.no_select=W("noselect"),null!==W("files_monitoring")&&(T.files_monitoring=!0),Je&&typeof document<"u"&&(document.title=Je),0===Ge.length&&""===W("expand")&&Ge.push(""),Me){for(let Dn=0;Dn{let Dn;if(Fe||tt)Dn=T.loadScripts(Fe,tt),Fe="",tt="";else if(rt)Dn=T.loadScripts(rt,"",!0),rt="";else if(Ot)Dn=T.createBrowser(Ot),Ot="";else if(null!==qt)Dn=T.createStatusLine(Yt,qt),qt=null;else if(je.length>0)Dn=T.openJsonFile(je.shift());else if(St.length>0)Dn=T.openRootFile(St.shift());else if(Ne)Dn=T.listServerDir(Ne),Ne="";else if(Ge.length>0)Dn=T.expandItem(Ge.shift());else{if(!(te.length>0))return T.refreshHtml().then(()=>T.displayItems(pt,st)).then(()=>lt?T.focusOnItem(lt):T).then(()=>(T.setMonitoring(vt),pt?T.refreshHtml():T));Dn=T.applyStyle(te.shift())}return Dn.then(Mn)};let bn=null;if(T.is_online){const Dn=x.internals.getCachedHierarchy||(0,x.findFunction)("GetCachedHierarchy");(0,x.isFunc)(Dn)&&(bn=Dn()),(0,x.isObject)(bn)||(bn=""),"draw"===T.is_online&&!pt.length&&pt.push("")}return null!==bn?T.openOnline(bn).then(()=>(!T.exclude_browser&&!Bn&&"_browser"in T.h&&(Ot=T.h._browser,"no"===Ot?Ot="":"off"===Ot&&(Ot="",qt=null,T.exclude_browser=!0)),"_monitoring"in T.h&&!vt&&(vt=T.h._monitoring),"_loadfile"in T.h&&0===St.length&&(St=v(T.h._loadfile)),"_drawitem"in T.h&&0===pt.length&&(pt=v(T.h._drawitem),st=v(T.h._drawopt)),"_layout"in T.h&&!bt&&("draw"!==T.is_online||pt.length>1)&&(T.disp_kind=T.h._layout),"_toptitle"in T.h&&T.exclude_browser&&typeof document<"u"&&(document.title=T.h._toptitle),b&&T.prepareGuiDiv(b.attr("id"),T.disp_kind),Mn())):(b&&T.prepareGuiDiv(b.attr("id"),T.disp_kind),Mn())})()}prepareGuiDiv(b,P){this.gui_div=(0,x.isStr)(b)?b:b.attr("id"),this.brlayout=new He.jX(this.gui_div,this),this.brlayout.create(!this.exclude_browser),this.createButtons(),this.setDisplay(P,this.brlayout.drawing_divid())}createButtons(){if(this.exclude_browser)return;const b=this.brlayout?.createBrowserBtns();b&&(Ve.IK.createSVG(b,Ve.IK.diamand,15,"toggle fix-pos browser","browser").style("margin","3px").on("click",()=>this.createBrowser("fix",!0)),this.float_browser_disabled||Ve.IK.createSVG(b,Ve.IK.circle,15,"toggle float browser","browser").style("margin","3px").on("click",()=>this.createBrowser("float",!0)),this.status_disabled||Ve.IK.createSVG(b,Ve.IK.three_circles,15,"toggle status line","browser").style("margin","3px").on("click",()=>this.createStatusLine(0,"toggle")))}hasStatusLine(){return!(this.status_disabled||!this.gui_div||!this.brlayout)&&this.brlayout.hasStatus()}createStatusLine(b,P){var T=this;return(0,Te.A)(function*(){return!T.status_disabled&&T.gui_div&&T.brlayout?T.brlayout.createStatusLine(b,P):""})()}redrawObject(b){return!(!this._inspector&&!this._streamer_info)&&(this.h=this._streamer_info?g(b):_(b),this.refreshHtml().then(()=>{this.setTopPainter()}))}createBrowser(b,P){var T=this;return(0,Te.A)(function*(){if(!T.gui_div||T.exclude_browser||!T.brlayout)return!1;const z=(0,L.Lt)(`#${T.gui_div} .jsroot_browser`);if(z.empty())return!1;if("float"===b&&T.float_browser_disabled&&(b="fix"),!z.select(".jsroot_browser_area").empty())return P&&T.brlayout.toggleKind(b),!0;let W=`

JSROOT version ${x.version}

`;if(T.is_online)W+='

Hierarchy in json and xml format

';else if(T.no_select)"file"===T.no_select&&(W+='
');else{const Me=(0,L.Lt)("#"+T.gui_div),je=Me.attr("files")||"../files/hsimple.root",Ge=(0,x.decodeUrl)().get("path")||Me.attr("path")||"",lt=je.split(";");W+='

Read docu how to open files from other servers.

'}(T.is_online||!T.no_select||"file"===T.no_select)&&(W+='
'),W+=`
`,T.brlayout.setBrowserContent(W),T.brlayout.setBrowserTitle(T.is_online?"ROOT online server":"Read a ROOT file")?.on("contextmenu",Me=>{Me.preventDefault(),(0,Ze.ES)(Me).then(je=>{T.fillSettingsMenu(je,!0),je.show()})}).on("dblclick",()=>{T.createBrowser("float"===T.brlayout?.browser_kind?"fix":"float",!0)}),!T.is_online&&!T.no_select&&(T.readSelectedFile=function(){const Me=z.select(".gui_urlToLoad").property("value").trim();Me&&(Me.toLowerCase().lastIndexOf(".json")===Me.length-5?this.openJsonFile(Me):this.openRootFile(Me))},z.select(".gui_selectFileName").property("value","").on("change",Me=>z.select(".gui_urlToLoad").property("value",Me.target.value)),z.select(".gui_fileBtn").on("click",()=>z.select(".gui_localFile").node().click()),z.select(".gui_ReadFileBtn").on("click",()=>T.readSelectedFile()),z.select(".gui_ResetUIBtn").on("click",()=>T.clearHierarchy(!0)),z.select(".gui_urlToLoad").on("keyup",Me=>{"Enter"===Me.code&&T.readSelectedFile()}),z.select(".gui_localFile").on("change",Me=>{const je=Me.target.files;for(let Ge=0;Gewe.append("option").attr("value",Me).html(Me)),we.on("change",Me=>{const je=Me.target.value||"flex";T.setDisplay(je,T.gui_div+"_drawing"),x.settings.DislpayKind=je})),T.setDom(T.gui_div+"_browser_hierarchy"),P&&(T.refreshHtml(),T.initializeBrowser()),T.brlayout.toggleBrowserKind(b||"fix")})()}initializeBrowser(){const b=(0,L.Lt)(`#${this.gui_div} .jsroot_browser`);if(b.empty()||!this.brlayout)return;this.brlayout.adjustBrowserSize();const P=b.select(".gui_layout").node();if(P){let T=!1;for(const z in P.options){const W=P.options[z].text;if((0,x.isStr)(W)&&(W===this.getLayout()||W.replace(/ /g,"")===this.getLayout())){P.selectedIndex=z,T=!0;break}}if(!T){const z=document.createElement("option");z.innerHTML=z.value=this.getLayout(),P.appendChild(z),P.selectedIndex=P.options.length-1}}if(this.is_online)this.h?._toptitle&&this.brlayout.setBrowserTitle(this.h._toptitle),b.select(".gui_monitoring").property("checked",this.isMonitoring()).on("click",T=>{this.enableMonitoring(T.target.checked),this.updateItems()});else if(!this.no_select){let T="";this.forEachRootFile(z=>{T||(T=z._fullurl)}),b.select(".gui_urlToLoad").property("value",T)}}enableMonitoring(b){this.setMonitoring(void 0,b);const P=(0,L.Lt)(`#${this.gui_div} .jsroot_browser .gui_monitoring`);!P.empty()&&P.property("checked")!==b&&P.property("checked",b)}}function k(V,b){return Z.apply(this,arguments)}function Z(){return(Z=(0,Te.A)(function*(V,b){const P=new U("sinfo",V,"__as_dark_mode__");return(0,x.isBatchMode)()?(P.selectDom().property("_json_object_",b),P):(P._streamer_info=!0,P.h=g(b),P.refreshHtml().then(()=>(P.setTopPainter(),P)))})).apply(this,arguments)}function ee(V,b,P){return ue.apply(this,arguments)}function ue(){return(ue=(0,Te.A)(function*(V,b,P){(0,Ye.tP)(V);const T=new U("inspector",V,"__as_dark_mode__");if((0,x.isBatchMode)())return T.selectDom().property("_json_object_",b),T;T.default_by_click="expand",T.with_icons=!1,T._inspector=!0;let z=0;return(0,x.isStr)(P)&&0===P.indexOf(x.kInspect)&&(P=P.slice(x.kInspect.length)).length>0&&(z=Number.parseInt(P)),T.selectDom().classed("jsroot_inspector")&&(T.removeInspector=function(){this.selectDom().remove()}),T.fill_context=function(W,fe){const we=(0,Re.iO)(fe._kind,"nosame");we.opts&&W.addDrawMenu("nosub:Draw",we.opts,Me=>{if(!fe?._obj)return;const je=fe._obj;let Ge=this.selectDom().node();if((0,x.isFunc)(this.removeInspector)&&(Ge=Ge.parentNode,this.removeInspector(),0===Me.indexOf(x.kInspect)))return this.showInspector(Me,je);(0,Ye.tP)(Ge),(0,Re.$2)(Ge,je,Me)})},T.h=_(b),T.refreshHtml().then(()=>(T.setTopPainter(),T.exapndToLevel(z)))})).apply(this,arguments)}Ye.JW.prototype.showInspector=function(V,b){if("check"===V)return!0;const P=this.selectDom(),T=(0,ot.xh)(P),z=Math.round(.05*T.width)+"px",W=Math.round(.05*T.height)+"px",fe="root_inspector_"+x.internals.id_counter++;return P.append("div").attr("id",fe).attr("class","jsroot_inspector").style("position","absolute").style("top",W).style("bottom",W).style("left",z).style("right",z),b?._typename||(b=(0,x.isFunc)(this.getPrimaryObject)?this.getPrimaryObject():this.getObject()),ee(fe,b,V)},x.internals.drawInspector=ee},6157:(Yr,mt,Se)=>{"use strict";Se.d(mt,{Hb:()=>J,bG:()=>he,gZ:()=>Re,ho:()=>F,jX:()=>Q,kV:()=>He,o5:()=>Y});var Te=Se(4882),x=Se(8362),L=Se(8872),ve=Se(2843),ke=Se(1922),ot=Se(7900),Ye=Se(5992);let Ze=null;function Re(){return Ze}function He(me){Ze=me}class Ve extends ve.b8{constructor(X){super(),this.frameid=X,"$batch$"!==X&&(this.setDom(X),this.selectDom().property("mdi",this)),this.cleanupFrame=ke.tP,this.active_frame_title=""}setInitFrame(X){this.initFrame=X,this.forEachFrame(B=>X(B))}beforeCreateFrame(X){this.active_frame_title=X}afterCreateFrame(X){return(0,L.isFunc)(this.initFrame)&&this.initFrame(X),X}forEachFrame(X,B){console.warn(`forEachFrame not implemented in MDIDisplay ${typeof X} ${B}`)}forEachPainter(X,B){this.forEachFrame($=>{new ke.JW($).forEachPainter(g=>X(g,$))},B)}numDraw(){let X=0;return this.forEachFrame(()=>++X),X}findFrame(X,B){let $=null;return this.forEachFrame(g=>{(0,x.Lt)(g).attr("frame_title")===X&&($=g)}),!$&&B&&($=this.createFrame(X)),$}activateFrame(X){this.active_frame_title=X?(0,x.Lt)(X).attr("frame_title"):""}getActiveFrame(){return this.findFrame(this.active_frame_title)}checkMDIResize(X,B){let $=null;this.forEachPainter((g,E)=>{if((!X||(0,x.Lt)(E).attr("id")===X)&&null!==g.getItemName()&&(0,L.isFunc)(g.checkResize)){if($===E)return;g.checkResize(B),$=E}})}cleanup(){this.active_frame_title="",this.forEachFrame(this.cleanupFrame),this.selectDom().html("").property("mdi",null)}}class F extends Ve{constructor(X,B,$){super(X),this.framecnt=0,this.getcnt=0,this.groups=[],this.vertical=B&&"v"===B[0],this.use_separarators=!B||B.indexOf("x")<0,this.simple_layout=!1;const g=this.selectDom();if(g.style("overflow","hidden"),"simple"===B)return this.simple_layout=!0,this.use_separarators=!1,void(this.framecnt=1);let _,v,p,E=2;if("projxy"===B)this.vertical=!1,this.use_separarators=!0,_=[2,2],v=[1,3],p=[[3,1],[3,1]],B="",this.match_sizes=!0;else if(0===B.indexOf("grid")||$){B=$?B+"x"+$:B.slice(4).trim(),this.use_separarators=!1,"i"===B[0]&&(this.use_separarators=!0,B=B.slice(1));const C=B.indexOf("x");let I,U;if(C>0?(U=parseInt(B.slice(C+1)),I=parseInt(B.slice(0,C))):I=U=parseInt(B),Number.isInteger(I)||(I=3),Number.isInteger(U)||(U=3),U>1)this.vertical=!0,E=U,I>1&&(_=new Array(E).fill(I));else{if(!(I>1))return this.simple_layout=!0,this.use_separarators=!1,void(this.framecnt=1);this.vertical=!1,E=I}B=""}if(B&&B.indexOf("_")>0){let C=parseInt(B.slice(B.indexOf("_")+1),10);if(Number.isInteger(C)&&C>10)for(B=B.slice(0,B.indexOf("_")),v=[];C>0;)v.unshift(Math.max(C%10,1)),C=Math.round((C-v[0])/10),0===v[0]&&(v[0]=1)}if(B=B?parseInt(B.replace(/^\D+/g,""),10):0,Number.isInteger(B)&&B>1)if(B<10)E=B;else{for(_=[];B>0;)_.unshift(B%10),B=Math.round((B-_[0])/10),0===_[0]&&(_[0]=1);E=_.length}v?.length!==E&&(v=void 0),p?.length!==E&&(p=void 0),this.simple_layout||this.createGroup(this,g,E,_,v,p)}createGroup(X,B,$,g,E,_){E||(E=new Array($));let v=0,p=0;for(let C=0;C<$;++C)v+=E[C]||1;for(let C=0;C<$;++C)E[C]=Math.round(100*(E[C]||1)/v),p+=E[C],C===$-1&&(E[C]+=100-p);for(let C=0;C<$;++C){const I={id:C,drawid:-1,position:0,size:E[C],parent:X};C>0&&(I.position=X.groups[C-1].position+X.groups[C-1].size),I.position0=I.position,(!g||!g[C]||g[C]<2)&&(I.drawid=this.framecnt++),X.groups.push(I);const U=B.append("div").attr("groupid",I.id);X.match_sizes&&(I.node=U.node()),X.vertical?U.style("float","bottom").style("height",I.size.toFixed(2)+"%").style("width","100%"):U.style("float","left").style("width",I.size.toFixed(2)+"%").style("height","100%"),I.drawid>=0?(U.classed("jsroot_newgrid",!0),(0,L.isStr)(this.frameid)&&U.attr("id",`${this.frameid}_${I.drawid}`)):U.style("display","flex").style("flex-direction",X.vertical?"row":"column"),g&&g[C]>1&&(I.vertical=!X.vertical,I.groups=[],U.style("overflow","hidden"),this.createGroup(I,U,g[C],null,_?_[C]:null))}if(this.use_separarators&&(0,L.isFunc)(this.createSeparator))for(let C=1;C<$;++C)this.createSeparator(X,B,X.groups[C])}handleSeparator(X,B){const $=(ee,ue)=>{let V=ee?.firstChild;for(;V;){if(V.getAttribute("groupid")===ue)return(0,x.Lt)(V);V=V.nextSibling}return(0,x.Lt)(ee).select(`[groupid='${ue}']`)},g=(ee,ue,V)=>{const b=ee.vertical?"height":"width",P=ee.groups[V].size.toFixed(2)+"%";$(ue,V).style(b,P).selectAll(".jsroot_separator").style(b,P)},E=(ee,ue)=>{let V=$(ee,ue);V.classed("jsroot_newgrid")||(V=V.select(".jsroot_newgrid")),V.each(function(){(0,ke.XR)(this)})},_=(ee,ue,V)=>{V.style(ee.vertical?"top":"left",`calc(${ue.position.toFixed(2)}% - 2px)`)},v=(0,x.Lt)(X),p=X.parentNode,C=v.property("handle"),I=v.property("separator_id"),U=C.groups[I];let k=!1,Z=!1;if("start"===B)return U.startpos=U.position,void(U.acc_drag=0);if("end"===B){if(Math.abs(U.startpos-U.position)<.5)return;k=!0}else{let ee;"restore"===B?ee=U.position0:C.vertical?(U.acc_drag+=B.dy,ee=U.startpos+(U.acc_drag+2)/p.clientHeight*100):(U.acc_drag+=B.dx,ee=U.startpos+(U.acc_drag+2)/p.clientWidth*100);const ue=U.position-ee;if(Math.abs(ue)<.3||Math.min(C.groups[I-1].size-ue,U.size+ue)<3)return;C.groups[I-1].size-=ue,U.size+=ue,U.position=ee,_(C,U,v),Z=!0,k="restore"===B}if(Z&&(g(C,p,I-1),g(C,p,I)),k&&(E(p,I-1),E(p,I)),C.parent?.match_sizes)for(let ee=0;ee{})}forEachFrame(X){this.simple_layout?X(this.getGridFrame()):this.selectDom().selectAll(".jsroot_newgrid").each(function(){X(this)})}getActiveFrame(){if(this.simple_layout)return this.getGridFrame();let X=super.getActiveFrame();return X||(this.forEachFrame(B=>{X||(X=B)}),X)}numGridFrames(){return this.framecnt}getGridFrame(X){if(this.simple_layout)return this.selectDom("origin").node();let B=null;return this.selectDom().selectAll(".jsroot_newgrid").each(function(){0==X--&&(B=this)}),B}createFrame(X){this.beforeCreateFrame(X);let B=null,$=this.framecnt||2;for(;!B&&$--;)B=this.getGridFrame(this.getcnt),!this.simple_layout&&this.framecnt&&(this.getcnt=(this.getcnt+1)%this.framecnt),(0,x.Lt)(B).classed("jsroot_fixed_frame")&&(B=null);return B&&(this.cleanupFrame(B),(0,x.Lt)(B).attr("frame_title",X)),this.afterCreateFrame(B)}}class J extends Ve{constructor(X){super(X),this.cnt=0,this.selectDom().style("overflow","hidden")}cleanup(){this.selectDom().style("overflow",null),this.cnt=0,super.cleanup()}forEachFrame(X,B){if((0,L.isFunc)(X))if(B){const g=this.getActiveFrame();g&&X(g)}else this.selectDom().select(".jsroot_tabs_main").selectAll(".jsroot_tabs_draw").each(function(){X(this)})}modifyTabsFrame(X,B){const $=this.selectDom().select(".jsroot_tabs"),g=$.select(".jsroot_tabs_labels"),E=$.select(".jsroot_tabs_main");let _,v;if(g.selectAll(".jsroot_tabs_label").each(function(){const C=(0,x.Lt)(this).property("frame_id")===X,I=L.settings.DarkMode?"#333":"white";"activate"===B?(0,x.Lt)(this).style("background",C?I:L.settings.DarkMode?"black":"#ddd").style("color",L.settings.DarkMode?"#ddd":"inherit").style("border-color",I):"close"===B&&C&&this.parentNode.remove()}),E.selectAll(".jsroot_tabs_draw").each(function(){(0,x.Lt)(this).property("frame_id")===X?_=this:v=this,"activate"===B&&(0,x.Lt)(this).style("background",L.settings.DarkMode?"black":"white")}),_)if("activate"===B)_.parentNode.appendChild(_);else if("close"===B){const p=_===this.getActiveFrame();(0,ke.tP)(_),_.remove(),p&&this.activateFrame(v)}}activateFrame(X){X&&this.modifyTabsFrame((0,x.Lt)(X).property("frame_id"),"activate"),super.activateFrame(X)}createFrame(X){this.beforeCreateFrame(X);const B=this.selectDom();let g,E,$=B.select(".jsroot_tabs");$.empty()?($=B.append("div").attr("class","jsroot_tabs").attr("style","display: flex; flex-direction: column; position: absolute; overflow: hidden; left: 0px; top: 0px; bottom: 0px; right: 0px;"),g=$.append("div").attr("class","jsroot_tabs_labels").attr("style","white-space: nowrap; position: relative; overflow-x: auto"),E=$.append("div").attr("class","jsroot_tabs_main").attr("style","margin: 0; flex: 1 1 0%; position: relative")):(g=$.select(".jsroot_tabs_labels"),E=$.select(".jsroot_tabs_main"));const _=this.cnt++,v=this;let p=X;if((!p||!(0,L.isStr)(p))&&(p=`frame_${_}`),p.length>15){let I=p.lastIndexOf("/");I===p.length-1&&(I=p.lastIndexOf("/",I-1)),p=I>0&&p.length-I<20&&p.length-I>1?p.slice(I+1):"..."+p.slice(p.length-17)}g.append("span").attr("tabindex",0).append("label").attr("class","jsroot_tabs_label").attr("style","border: 1px solid; display: inline-block; font-size: 1rem; left: 1px;margin-left: 3px; padding: 0px 5px 1px 5px; position: relative; vertical-align: bottom;").property("frame_id",_).text(p).attr("title",X).on("click",function(I){I.preventDefault(),v.modifyTabsFrame((0,x.Lt)(this).property("frame_id"),"activate")}).append("button").attr("title","close").attr("style","margin-left: .5em; padding: 0; font-size: 0.5em; width: 1.8em; height: 1.8em; vertical-align: center;").html("✕").on("click",function(){v.modifyTabsFrame((0,x.Lt)(this.parentNode).property("frame_id"),"close")});const C=E.append("div").attr("frame_title",X).attr("class","jsroot_tabs_draw").attr("style","overflow: hidden; position: absolute; left: 0px; top: 0px; bottom: 0px; right: 0px;").property("frame_id",_);return this.modifyTabsFrame(_,"activate"),this.afterCreateFrame(C.node())}changeDarkMode(){const X=this.getActiveFrame();this.modifyTabsFrame((0,x.Lt)(X).property("frame_id"),"activate")}}class Y extends Ve{constructor(X){super(X),this.cnt=0,this.selectDom().on("contextmenu",B=>this.showContextMenu(B)).style("overflow","auto")}cleanup(){this.selectDom().style("overflow",null).on("contextmenu",null),this.cnt=0,super.cleanup()}forEachFrame(X,B){if(!(0,L.isFunc)(X))return;const $=this;this.selectDom().select(".jsroot_flex_top").selectAll(".jsroot_flex_draw").each(function(){B&&"min"===$.getFrameState(this)||X(this)})}getActiveFrame(){let X=super.getActiveFrame();return X&&"min"!==(0,x.Lt)(X.parentNode).property("state")||(X=null,this.forEachFrame(B=>{X=B},!0)),X}activateFrame(X){if("first"===X||"last"===X){let $=null;this.forEachFrame(g=>{("last"===X||!$)&&($=g)},!0),X=$}if(!X||"jsroot_flex_draw"!==X.getAttribute("class")||this.getActiveFrame()===X)return;super.activateFrame(X);const B=X.parentNode;B.parentNode.append(B),"min"!==this.getFrameState(X)&&((0,ke.QD)({pp:(0,ke.m6)(X),active:!0}),(0,ke.XR)(X))}getFrameState(X){return(0,x.Lt)(X.parentNode).property("state")}getFrameRect(X){if("max"===this.getFrameState(X)){const E=this.selectDom().select(".jsroot_flex_top");return{x:0,y:0,w:E.node().clientWidth,h:E.node().clientHeight}}const B=(0,x.Lt)(X.parentNode),$=B.style("left"),g=B.style("top");return{x:parseInt($.slice(0,$.length-2)),y:parseInt(g.slice(0,g.length-2)),w:B.node().clientWidth,h:B.node().clientHeight}}changeFrameState(X,B,$){const g=(0,x.Lt)(X.parentNode),E=g.property("state"),_=this.selectDom().select(".jsroot_flex_top");if(E===B)return!1;switch("normal"===E&&g.property("original_style",g.attr("style")),_.style("overflow",null),B){case"min":g.style("height","auto").style("width","auto"),g.select(".jsroot_flex_draw").style("display","none");break;case"max":g.style("height","100%").style("width","100%").style("left","").style("top",""),g.select(".jsroot_flex_draw").style("display",null),_.style("overflow","hidden");break;default:g.select(".jsroot_flex_draw").style("display",null),g.attr("style",g.property("original_style"))}if(g.select(".jsroot_flex_header").selectAll("button").each(function(v){const p=(0,x.Lt)(this);"minimize"===v.t&&"min"===B||"maximize"===v.t&&"max"===B?p.html("▞").attr("title","restore"):p.html(v.n).attr("title",v.t)}),g.property("state",B),g.select(".jsroot_flex_resize").style("display","normal"===B?null:"none"),"min"===B){const v=this.getFrameRect(X),p=this.selectDom().select(".jsroot_flex_top"),C=p.node().clientWidth,I=p.node().clientHeight,U=[],k=4,Z=(ue,V)=>ue.x<=V.x&&ue.x+ue.w>=V.x||V.x<=ue.x&&V.x+V.w>=ue.x,ee=(ue,V)=>ue.y<=V.y&&ue.y+ue.h>=V.y||V.y<=ue.y&&V.y+V.h>=ue.y;this.forEachFrame(ue=>{ue!==X&&"min"===this.getFrameState(ue)&&U.push(this.getFrameRect(ue))}),v.y=I;do{v.x=k,v.y-=v.h+k;let ue=k,V=!1;U.forEach(b=>{ee(b,v)&&(ue=Math.max(ue,b.x+b.w+k),Z(b,v)&&(V=!0))}),V&&(v.x=ue)}while(v.x+v.w>C-k&&v.y>0);v.y<0&&(v.x=k,v.y=I-v.h-k),g.style("left",v.x+"px").style("top",v.y+"px")}else $||(0,ke.XR)(X);return!0}_clickButton(X){const B=(0,x.Lt)(X).datum(),$=(0,x.Lt)(X.parentNode.parentNode),g=$.select(".jsroot_flex_draw").node();if("close"===B.t)return this.cleanupFrame(g),$.remove(),void this.activateFrame("last");const E=$.property("state");let _;_="maximize"===B.t?"max"===E?"normal":"max":"min"===E?"normal":"min",this.changeFrameState(g,_)&&this.activateFrame("min"!==_?g:"last")}createFrame(X){this.beforeCreateFrame(X);const B=this,$=this.selectDom();let g=$.select(".jsroot_flex_top");g.empty()&&(g=$.append("div").attr("class","jsroot_flex_top").attr("style","overflow: auto; position: relative; height: 100%; width: 100%"));const E=g.node().clientWidth,_=g.node().clientHeight,v=g.append("div");v.html(`

${X}

`),v.attr("class","jsroot_flex_frame").style("position","absolute").style("left",Math.round(E*(this.cnt%5)/10)+"px").style("top",Math.round(_*(this.cnt%5)/10)+"px").style("width",Math.round(.58*E)+"px").style("height",Math.round(.58*_)+"px").style("border","1px solid black").style("box-shadow","1px 1px 2px 2px #aaa").property("state","normal").select(".jsroot_flex_header").on("click",function(){B.activateFrame((0,x.Lt)(this.parentNode).select(".jsroot_flex_draw").node())}).selectAll("button").data([{n:"✕",t:"close"},{n:"▔",t:"maximize"},{n:"▁",t:"minimize"}]).enter().append("button").attr("type","button").attr("style","float: right; padding: 0; width: 1.4em; text-align: center; font-size: 10px; margin-top: 2px; margin-right: 4px").attr("title",ee=>ee.t).html(ee=>ee.n).on("click",function(){B._clickButton(this)});let p=null,C=null,I=!1,U=[];const k=(0,x.$E)().subject(Object);k.on("start",function(ee){if("button"===ee.sourceEvent.target.type)return B._clickButton(ee.sourceEvent.target);if((0,Ye.iE)(ee.sourceEvent))return;const ue=(0,x.Lt)(this.parentNode);!ue.classed("jsroot_flex_frame")||"max"===ue.property("state")||(I=!(0,x.Lt)(this).classed("jsroot_flex_resize"),(I||"min"!==ue.property("state"))&&(B.activateFrame(ue.select(".jsroot_flex_draw").node()),C=g.append("div").attr("style",ue.attr("style")).style("border","2px dotted #00F"),"min"===ue.property("state")&&C.style("width",ue.node().clientWidth+"px").style("height",ue.node().clientHeight+"px"),ee.sourceEvent.preventDefault(),ee.sourceEvent.stopPropagation(),p=ue,U=[]))}).on("drag",function(ee){if(!C)return;ee.sourceEvent.preventDefault(),ee.sourceEvent.stopPropagation();const ue=(V,b,P)=>{if(V>=U.length){const T=C.style(b);U[V]=parseInt(T.slice(0,T.length-2))}U[V]+=P,C.style(b,Math.max(0,U[V])+"px")};I?(ue(0,"left",ee.dx),ue(1,"top",ee.dy)):(ue(0,"width",ee.dx),ue(1,"height",ee.dy))}).on("end",function(ee){C&&(ee.sourceEvent.preventDefault(),ee.sourceEvent.stopPropagation(),I?(p.style("left",C.style("left")),p.style("top",C.style("top"))):(p.style("width",C.style("width")),p.style("height",C.style("height"))),C.remove(),C=null,I||(0,ke.XR)(p.select(".jsroot_flex_draw").node()))}),v.select(".jsroot_flex_header").call(k),v.select(".jsroot_flex_resize").call(k);const Z=v.select(".jsroot_flex_draw").attr("frame_title",X).property("frame_cnt",this.cnt++).node();return this.afterCreateFrame(Z)}minimizeAll(){this.forEachFrame(X=>this.changeFrameState(X,"min"))}showAll(){this.forEachFrame(X=>{"min"===this.getFrameState(X)&&this.changeFrameState(X,"normal")})}closeAllFrames(){const X=[];this.forEachFrame(B=>X.push(B)),X.forEach(B=>{this.cleanupFrame(B),(0,x.Lt)(B.parentNode).remove()})}sortFrames(X){const B=[];if(this.forEachFrame(I=>{const U=this.getFrameState(I);"min"!==U&&("max"===U&&this.changeFrameState(I,"normal",!0),B.push(I))}),0===B.length)return;const $=this.selectDom(),g=$.node().clientWidth,E=$.node().clientHeight,_=Math.min(40,Math.round(.4*g/B.length)),v=Math.min(40,Math.round(.4*E/B.length));let p=Math.ceil(Math.sqrt(B.length)),C=p;p>1&&p*(p-1)>=B.length&&(g>E?C--:p--),B.forEach((I,U)=>{const k=(0,x.Lt)(I.parentNode);"cascade"===X?k.style("left",U*_+"px").style("top",U*v+"px").style("width",Math.round(.58*g)+"px").style("height",Math.round(.58*E)+"px"):k.style("left",Math.round(g/p*(U%p))+"px").style("top",Math.round(E/C*((U-U%p)/p))+"px").style("width",Math.round(g/p-4)+"px").style("height",Math.round(E/C-4)+"px"),(0,ke.XR)(I)})}showContextMenu(X){if("jsroot_flex_top"!==X.target.getAttribute("class")||0===this.numDraw())return;X.preventDefault();const B=[];let $=0;this.forEachFrame(E=>{B.push(E),"min"===this.getFrameState(E)&&$++});const g=this.getActiveFrame();B.sort((E,_)=>(0,x.Lt)(E).property("frame_cnt")<(0,x.Lt)(_).property("frame_cnt")?-1:1),(0,ot.ES)(X,this).then(E=>{E.add("header:Flex"),E.add("Cascade",()=>this.sortFrames("cascade"),"Cascade frames"),E.add("Tile",()=>this.sortFrames("tile"),"Tile all frames"),$this.minimizeAll(),"Minimize all frames"),$>0&&E.add("Show all",()=>this.showAll(),"Restore minimized frames"),E.add("Close all",()=>this.closeAllFrames()),E.add("separator"),B.forEach((_,v)=>E.addchk(_===g,("min"===this.getFrameState(_)?"[min] ":"")+(0,x.Lt)(_).attr("frame_title"),v,p=>{const C=B[p];"min"===this.getFrameState(C)&&this.changeFrameState(C,"normal"),this.activateFrame(C)})),E.show()})}}class he extends Ve{constructor(X,B,$){super("$batch$"),this.frames=[],this.width=X||1200,this.height=B||800,this.jsdom_body=$||(0,x.Lt)("body")}forEachFrame(X){this.frames.forEach(X)}createFrame(X){this.beforeCreateFrame(X);const B=this.jsdom_body.append("div").style("visible","hidden").attr("width",this.width).attr("height",this.height).style("width",this.width+"px").style("height",this.height+"px").attr("id","jsroot_batch_"+this.frames.length).attr("frame_title",X);return this.frames.push(B.node()),this.afterCreateFrame(B.node())}numFrames(){return this.frames.length}makeJSON(X,B){const $=this.frames[X];if(!$)return;const g=(0,x.Lt)($).property("_json_object_");return g?((0,x.Lt)($).property("_json_object_",null),(0,ke.tP)($),(0,x.Lt)($).remove(),(0,L.toJSON)(g,B)):void 0}makeSVG(X){const B=this.frames[X];if(!B)return;const $=(0,x.Lt)(B);function g(){const _=(0,x.Lt)(this);"none"===_.style("display")&&_.remove()}$.select("svg").attr("xmlns","http://www.w3.org/2000/svg").attr("width",this.width).attr("height",this.height).attr("title",null).attr("style",null).attr("class",null).attr("x",null).attr("y",null),$.selectAll("g.root_frame").each(g),$.selectAll("svg").each(g);const E=(0,ve.NM)($.html());return(0,ke.tP)(B),$.remove(),E}}class Q{constructor(X,B,$){this.gui_div=X,this.hpainter=B,this.objpainter=$,this.browser_kind=null}main(){return(0,x.Lt)("#"+this.gui_div)}browser(){return this.main().select(".jsroot_browser")}drawing(){return(0,x.Lt)(`#${this.gui_div}_drawing`)}status(){return(0,x.Lt)(`#${this.gui_div}_status`)}drawing_divid(){return this.gui_div+"_drawing"}checkResize(){(0,L.isFunc)(this.hpainter?.checkResize)?this.hpainter.checkResize():(0,L.isFunc)(this.objpainter?.checkResize)&&this.objpainter.checkResize(!0)}createStyle(){const X=L.settings.DarkMode?"black":"#E6E6FA",$=L.settings.DarkMode?"#ddd":"inherit",g=L.settings.DarkMode?`background-color: #222; color: ${$}`:"";(0,Ye.fz)(`.jsroot_browser { pointer-events: none; position: absolute; left: 0px; top: 0px; bottom: 0px; right: 0px; margin: 0px; border: 0px; overflow: hidden; }.jsroot_draw_area { background-color: ${X}; overflow: hidden; margin: 0px; border: 0px; }.jsroot_browser_area { color: ${$}; background-color: ${X}; font-size: 12px; font-family: Verdana; pointer-events: all; box-sizing: initial; }.jsroot_browser_area input { ${g} }.jsroot_browser_area select { ${g} }.jsroot_browser_title { font-family: Verdana; font-size: 20px; color: ${L.settings.DarkMode?"#ccc":"inherit"}; }.jsroot_browser_btns { pointer-events: all; display: flex; flex-direction: column; }.jsroot_browser_area p { margin-top: 5px; margin-bottom: 5px; white-space: nowrap; }.jsroot_browser_hierarchy { flex: 1; margin-top: 2px; }.jsroot_status_area { background-color: ${X}; overflow: hidden; font-size: 12px; font-family: Verdana; pointer-events: all; }.jsroot_browser_resize { position: absolute; right: 3px; bottom: 3px; margin-bottom: 0px; margin-right: 0px; opacity: 0.5; cursor: se-resize; z-index: 1; }`,this.main().node(),"browser_layout_style")}create(X){const B=this.main();B.append("div").attr("id",this.drawing_divid()).classed("jsroot_draw_area",!0).style("position","absolute").style("left",0).style("top",0).style("bottom",0).style("right",0),X&&B.append("div").classed("jsroot_browser",!0),this.createStyle()}createBrowserBtns(){const X=this.browser();if(X.empty())return;let B=X.select(".jsroot_browser_btns");return B.empty()?B=X.append("div").attr("class","jsroot jsroot_browser_btns").attr("style","position: absolute; left: 7px; top: 7px"):B.html(""),B}removeBrowserBtns(){this.browser().select(".jsroot_browser_btns").remove()}setBrowserContent(X){const B=this.browser();B.empty()||B.insert("div",".jsroot_browser_btns").classed("jsroot_browser_area",!0).style("position","absolute").style("left","0px").style("top","0px").style("bottom","0px").style("width","250px").style("overflow","hidden").style("padding-left","5px").style("display","flex").style("flex-direction","column").html(`

title

${X}`)}hasContent(){const X=this.browser();return!X.empty()&&!X.select(".jsroot_browser_area").empty()}deleteContent(X){const B=this.browser();B.empty()||(X||this.createStatusLine(0,"delete"),this.toggleBrowserVisisbility(!0),X?(B.select(".jsroot_browser_area").remove(),B.select(".jsroot_browser_btns").remove(),B.select(".jsroot_v_separator").remove()):B.selectAll("*").remove(),delete this.browser_visible,delete this.browser_kind,this.checkResize())}hasStatus(){return!this.browser().empty()&&!this.status().empty()}setBrowserTitle(X){const B=this.browser(),$=B.empty()?null:B.select(".jsroot_browser_title");return $&&$.text(X).style("cursor","flex"===this.browser_kind?"move":null),$}toggleKind(X){"changing"!==this.browser_visible&&(X===this.browser_kind?this.toggleBrowserVisisbility():this.toggleBrowserKind(X))}createStatusLine(X,B){var $=this;return(0,Te.A)(function*(){const g=$.browser();if(g.empty())return"";const E=$.gui_div+"_status",_=(0,x.Lt)("#"+E),v=!_.empty();if("toggle"===B?B=!v:"delete"===B?(B=!1,X=0,delete $.status_layout):void 0===B&&(B=!0,$.status_layout="app"),v)return!0===B?E:(g.select(".jsroot_h_separator").remove(),_.remove(),"app"!==$.status_layout&&delete $.status_layout,$.status_handler&&L.internals.showStatus===$.status_handler&&(delete L.internals.showStatus,delete $.status_handler),$.adjustSeparators(null,0,!0),"");if(!1===B)return"";const p=$.drawing().style("left");g.insert("div",".jsroot_browser_area").attr("id",E).classed("jsroot_status_area",!0).style("position","absolute").style("left",p).style("height","20px").style("bottom","0px").style("right","0px").style("margin",0).style("border",0);const C=L.settings.DarkMode?"grey":"azure",I=g.insert("div",".jsroot_browser_area").classed("jsroot_h_separator",!0).attr("style",`pointer-events: all; border: 0; margin: 0; padding: 0; background-color: ${C}; position: absolute; left: ${p}; right: 0; bottom: 20px; height: 5px; cursor: ns-resize;`),U=(0,x.$E)().on("start",()=>{$._hsepar_move=$._hsepar_position,I.style("background-color","grey")}).on("drag",Z=>{$._hsepar_move-=Z.dy,$.adjustSeparators(null,Math.max(5,Math.round($._hsepar_move)))}).on("end",()=>{delete $._hsepar_move,I.style("background-color",null),$.checkResize()});if(I.call(U),L.browser.touches&&!g.on("touchmove")&&g.on("touchmove",()=>{}),(!X||(0,L.isStr)(X))&&(X=$.last_hsepar_height||20),$.adjustSeparators(null,X,!0),"app"===$.status_layout)return E;$.status_layout=new F(E,"horizx4_1213");const k=["object name","object title","mouse coordinates","object info"];for(let Z=0;Z<4;++Z)(0,x.Lt)($.status_layout.getGridFrame(Z)).attr("title",k[Z]).style("overflow","hidden").append("label").attr("style","margin: 3px; margin-left: 5px; font-size: 14px; vertical-align: middle; white-space: nowrap;");return L.internals.showStatus=$.status_handler=$.showStatus.bind($),E})()}adjustSeparators(X,B,$,g){if(!this.gui_div)return;const E=this.browser();if(null===B&&g&&!E.select(".jsroot_h_separator").empty()&&(B=E.select(".jsroot_h_separator").style("bottom"),B=(0,L.isStr)(B)&&B.length>2&&B.indexOf("px")===B.length-2?B.slice(0,B.length-2):null),null!==B){B=parseInt(B);const v=E.select(".jsroot_h_separator");let p=0;if(!v.empty()){B<5&&(B=5);const C=E.node().clientHeight-5;C>0&&(B<0&&(B+=C),B>C&&(B=C)),this.last_hsepar_height=B,v.style("bottom",B+"px").style("height","5px"),this.status().style("height",B+"px"),p=B+5}this._hsepar_position=B,this.drawing().style("bottom",`${p}px`)}null!==X&&(X=Math.max(50,Number.parseInt(X)),this._vsepar_position=X,E.select(".jsroot_browser_area").style("width",X-5+"px"),this.drawing().style("left",X+5+"px"),E.select(".jsroot_h_separator").style("left",X+5+"px"),this.status().style("left",X+5+"px"),E.select(".jsroot_v_separator").style("left",X+"px").style("width","5px")),$&&this.checkResize()}showStatus(...X){if(!(0,L.isObject)(this.status_layout)||!(0,L.isFunc)(this.status_layout.getGridFrame))return;let B=0;for(let $=0;$<4;++$){const g=this.status_layout.getGridFrame($).querySelector("label");B=Math.max(B,g.clientHeight),g.innerHTML=X[$]||""}this.status_layout.first_check||(this.status_layout.first_check=!0,B>5&&(B>this.last_hsepar_height||BU/2&&(_=U+10+"px"),v="-10px",p="0px"}else{if(X)return;$.property("last_left",null).property("last_vsepar",null).property("last_drawing",null)}const C=!this.browser_visible,I=X?0:700;this.browser_visible="changing",$.transition().style("left",_).duration(I).on("end",()=>{X||(this.browser_visible=C,C&&this.setButtonsPosition())}),C||B.select(".jsroot_browser_btns").transition().style("left","7px").style("top","7px").duration(I),g.empty()||(g.transition().style("left",v).duration(I),E.transition().style("left",p).duration(I).on("end",this.checkResize.bind(this))),this.status_layout&&"fix"===this.browser_kind&&(B.select(".jsroot_h_separator").transition().style("left",p).duration(I),B.select(".jsroot_status_area").transition().style("left",p).duration(I))}adjustBrowserSize(X){if(!this.gui_div||"float"!==this.browser_kind)return;const B=this.browser();if(B.empty())return;const $=B.select(".jsroot_browser_area"),g=B.select(".jsroot_browser_hierarchy"),E=(0,x.Lt)(g.node().firstChild);if(X)return void($.node().parentNode.clientHeight-10<$.node().clientHeight&&$.style("bottom","0px").style("top","0px"));if(E.empty())return;const _=g.node().clientHeight,v=E.node().clientHeight;void 0!==v&&v<.7*_&&$.style("bottom","")}setButtonsPosition(){if(!this.gui_div)return;const X=this.browser(),B=X.select(".jsroot_browser_btns");if(B.empty())return;let $=7,g=7;if(this.browser_visible){const E=X.select(".jsroot_browser_area");$=E.node().offsetTop+7,g=E.node().offsetLeft-X.node().offsetLeft+E.node().clientWidth-27}B.style("left",`${g}px`).style("top",`${$}px`)}toggleBrowserKind(X){var B=this;return(0,Te.A)(function*(){if(!B.gui_div)return null;if(!X){if(!B.browser_kind)return null;X="float"===B.browser_kind?"fix":"float"}const $=B.browser(),g=$.select(".jsroot_browser_area");if("float"===B.browser_kind?g.style("bottom","0px").style("top","0px").style("width","").style("height","").classed("jsroot_float_browser",!1).style("border",null):"fix"===B.browser_kind&&($.select(".jsroot_v_separator").remove(),g.style("left","0px"),B.drawing().style("left","0px"),$.select(".jsroot_h_separator").style("left","0px"),B.status().style("left","0px"),B.checkResize()),B.browser_kind=X,B.browser_visible=!0,$.select(".jsroot_browser_resize").style("display","float"===X?null:"none"),$.select(".jsroot_browser_title").style("cursor","float"===X?"move":null),"float"===X){g.style("bottom","40px").classed("jsroot_float_browser",!0).style("border","solid 3px white");const E=(0,x.$E)().on("start",()=>{const v=g.style("left"),p=g.style("top");B._float_left=parseInt(v.slice(0,v.length-2)),B._float_top=parseInt(p.slice(0,p.length-2)),B._max_left=Math.max(0,$.node().clientWidth-g.node().offsetWidth-1),B._max_top=Math.max(0,$.node().clientHeight-g.node().offsetHeight-1)}).filter(v=>$.select(".jsroot_browser_title").node()===v.target).on("drag",v=>{B._float_left+=v.dx,B._float_top+=v.dy,g.style("left",Math.min(Math.max(0,B._float_left),B._max_left)+"px").style("top",Math.min(Math.max(0,B._float_top),B._max_top)+"px"),B.setButtonsPosition()}),_=(0,x.$E)().on("start",()=>{const v=g.style("width");B._float_width=parseInt(v.slice(0,v.length-2)),B._float_height=g.node().clientHeight,B._max_width=$.node().clientWidth-g.node().offsetLeft-1,B._max_height=$.node().clientHeight-g.node().offsetTop-1}).on("drag",v=>{B._float_width+=v.dx,B._float_height+=v.dy,g.style("width",Math.min(Math.max(100,B._float_width),B._max_width)+"px").style("height",Math.min(Math.max(100,B._float_height),B._max_height)+"px"),B.setButtonsPosition()});$.call(E),$.select(".jsroot_browser_resize").call(_),B.adjustBrowserSize()}else{g.style("left","0px").style("top","0px").style("bottom","0px").style("height",null);const E=L.settings.DarkMode?"grey":"azure",_=$.append("div").classed("jsroot_v_separator",!0).attr("style",`pointer-events: all; border: 0; margin: 0; padding: 0; background-color: ${E}; position: absolute; top: 0; bottom: 0; cursor: ew-resize;`),v=(0,x.$E)().on("start",()=>{B._vsepar_move=B._vsepar_position,_.style("background-color","grey")}).on("drag",p=>{B._vsepar_move+=p.dx,B.setButtonsPosition(),L.settings.BrowserWidth=Math.max(50,Math.round(B._vsepar_move)),B.adjustSeparators(L.settings.BrowserWidth,null)}).on("end",()=>{delete B._vsepar_move,_.style("background-color",null),B.checkResize()});_.call(v),L.browser.touches&&!$.on("touchmove")&&$.on("touchmove",()=>{}),B.adjustSeparators(L.settings.BrowserWidth,null,!0,!0)}return B.setButtonsPosition(),B})()}}},7900:(Yr,mt,Se)=>{"use strict";Se.d(mt,{ES:()=>De,Ew:()=>Re,IV:()=>F,sj:()=>J,wh:()=>Y});var Te=Se(4882),x=Se(8872),L=Se(8362),ve=Se(5992),ke=Se(2985),ot=Se(2586),Ye=Se(4082),Ze=Se(4246);const Re="__front__";class He{constructor(Q,me,X){this.painter=Q,this.menuname=me,(0,x.isObject)(X)&&void 0!==X.clientX&&void 0!==X.clientY&&(this.show_evnt={clientX:X.clientX,clientY:X.clientY,skip_close:X.skip_close}),this.remove_handler=()=>this.remove(),this.element=null,this.cnt=0}native(){return!1}load(){var Q=this;return(0,Te.A)(function*(){return Q})()}getEventPosition(){return this.show_evnt}add(){throw Error("add() method has to be implemented in the menu")}size(){return this.cnt}remove(){if(this.element){if(this.show_evnt?.skip_close)return void(this.show_evnt.skip_close=0);if(this.element.remove(),this.element=null,(0,x.isFunc)(this.resolveFunc)){const Q=this.resolveFunc;delete this.resolveFunc,Q()}document.body.removeEventListener("click",this.remove_handler)}}show(){throw Error("show() method has to be implemented in the menu class")}addchk(Q,me,X,B,$){let g=B;(0,x.isFunc)(X)&&($=B,B=X,g=E=>B("1"===E),X=Q?"0":"1"),this.add((Q?"chk:":"unk:")+me,X,g,$)}addDrawMenu(Q,me,X,B){if(!me||!me.length)return;let $=!1;if(0===Q.indexOf("nosub:")&&($=!0,Q=Q.slice(6)),1===me.length)return me[0]===x.kInspect&&(Q=Q.replace("Draw","Inspect")),void this.add(Q,me[0],X);$||this.add("sub:"+Q,me[0],X,B);for(let g=1;g":"<dflt>"),_=g+1;if(me.length>5)for(;_=g+2){this.add("sub:"+E,me[g],X);for(let v=g+1;v<_;++v)this.add(me[v],me[v],X);this.add("endsub:"),g=_-1}else if(E===x.kInspect){this.add("sub:"+E,me[g],X,"Inspect object content");for(let v=0;v<10;++v)this.add(v.toString(),x.kInspect+v,X,`Inspect object and expand to level ${v}`);this.add("endsub:")}else this.add(E,me[g],X)}$||(this.add("",()=>{const g=(0,x.isFunc)(this.painter?.getDrawOpt)?this.painter.getDrawOpt():me[0];this.input("Provide draw option",g,"text").then(X)},"Enter draw option in dialog"),this.add("endsub:"))}addColorMenu(Q,me,X,B){if(void 0===me)return;const $=!(0,x.isStr)(me);this.add("sub:"+Q,()=>{this.input("Enter color "+($?"(only id number)":"(name or id)"),me,$?"int":"text",$?0:void 0,$?9999:void 0).then(g=>{const E=parseInt(g);if(Number.isInteger(E)&&(0,ke.oU)(E))g=(0,ke.oU)(E);else if($)return;X($?E:g)})});for(let g=0;g<5;++g){this.add("column:");for(let E=0;E<10;E++){let _=10*g+E;$||--_;let v=_<0?"none":(0,ke.oU)(_);0===_&&1===B&&(v="none"),this.add(`${me===($?_:v)?``:""}${_<=0||"#"!==v[0]?v:`col ${_}`}`,$?_:v,Z=>X($?parseInt(Z):Z),"Select color "+v)}if(this.add("endcolumn:"),!this.native())break}this.add("endsub:")}addSizeMenu(Q,me,X,B,$,g,E){if(void 0===$)return;let _=[],v=!1;if((0,x.isObject)(B))_=B,B=1;else for(let I=me;I<=X;I+=B)_.push(I);const p=I=>Math.abs(I-$)<1e-5*(X-me),C=(I,U)=>(I===$&&v&&(U=!0),I.toFixed(B>=1?0:B>=.1?U?2:1:U?4:2));_.findIndex(p)<0&&(v=!0,_.push($),_=_.sort((I,U)=>I>U)),this.add("sub:"+Q,()=>this.input("Enter value of "+Q,C($,!0),B>=1?"int":"float").then(g),E),_.forEach(I=>this.addchk(p(I),C(I),I,U=>g(B>=1?parseInt(U):parseFloat(U)))),this.add("endsub:")}addPaletteMenu(Q,me){const X=(B,$,g,E)=>{$?g||(g=$):$=`pal ${B}`,g&&(g+=`, code ${B}`),this.addchk(B===Q||E,""+$+"",B,me,g||$)};if(this.add("sub:Palette",()=>this.input("Enter palette code [1..113]",Q,"int",1,113).then(me)),this.add("column:"),X(57,"Bird","Default color palette",Q>113),X(55,"Rainbow"),X(51,"Deep Sea"),X(52,"Grayscale","New gray scale"),X(1,"","Old gray scale",Q>0&&Q<10),X(50,"ROOT 5","Default color palette in ROOT 5",Q>=10&&Q<51),X(53,"","Dark body radiator"),X(54,"","Two-color hue"),X(56,"","Inverted dark body radiator"),X(58,"Cubehelix"),X(59,"","Green Red Violet"),X(60,"","Blue Red Yellow"),X(61,"Ocean"),this.add("endcolumn:"),!this.native())return this.add("endsub:");this.add("column:"),X(62,"","Color Printable On Grey"),X(63,"Alpine"),X(64,"Aquamarine"),X(65,"Army"),X(66,"Atlantic"),X(67,"Aurora"),X(68,"Avocado"),X(69,"Beach"),X(70,"Black Body"),X(71,"","Blue Green Yellow"),X(72,"Brown Cyan"),X(73,"CMYK"),X(74,"Candy"),this.add("endcolumn:"),this.add("column:"),X(75,"Cherry"),X(76,"Coffee"),X(77,"","Dark Rain Bow"),X(78,"","Dark Terrain"),X(79,"Fall"),X(80,"Fruit Punch"),X(81,"Fuchsia"),X(82,"Grey Yellow"),X(83,"","Green Brown Terrain"),X(84,"Green Pink"),X(85,"Island"),X(86,"Lake"),X(87,"","Light Temperature"),this.add("endcolumn:"),this.add("column:"),X(88,"","Light Terrain"),X(89,"Mint"),X(90,"Neon"),X(91,"Pastel"),X(92,"Pearl"),X(93,"Pigeon"),X(94,"Plum"),X(95,"Red Blue"),X(96,"Rose"),X(97,"Rust"),X(98,"","Sandy Terrain"),X(99,"Sienna"),X(100,"Solar"),this.add("endcolumn:"),this.add("column:"),X(101,"","South West"),X(102,"","Starry Night"),X(103,"","Sunset"),X(104,"","Temperature Map"),X(105,"","Thermometer"),X(106,"Valentine"),X(107,"","Visible Spectrum"),X(108,"","Water Melon"),X(109,"Cool"),X(110,"Copper"),X(111,"","Gist Earth"),X(112,"Viridis"),X(113,"Cividis"),this.add("endcolumn:"),this.add("endsub:")}addRebinMenu(Q){this.add("sub:Rebin",()=>this.input("Enter rebin value",2,"int",2).then(Q));for(let me=2;me<=7;me++)this.add(me.toString(),me,X=>Q(parseInt(X)));this.add("endsub:")}addSelectMenu(Q,me,X,B){const $="number"==typeof X;this.add("sub:"+Q);for(let g=0;gB($?Number.parseInt(E):E));this.add("endsub:")}addRColorMenu(Q,me,X){const B=["default","black","white","red","green","blue","yellow","magenta","cyan"];this.add("sub:"+Q,()=>{this.input("Enter color name - empty string will reset color",me).then(X)});let $="black";for(let g=0;g0?(v="background-color:"+E,$="white"===E?"black":"white",(0,x.isStr)(me)&&me&&"auto"!==me&&"["!==me[0]&&(_=(0,L.Qh)(me).toString()===(0,L.Qh)(E).toString())):_=!me,this.addchk(_,`${E}`,E,C=>X("default"===C?null:C))}this.add("endsub:")}addRAttrTextItems(Q,me,X){me||(me={}),this.addRColorMenu("color",Q.color,B=>X({name:"color",value:B})),Q.scaled?this.addSizeMenu("size",.01,.1,.01,Q.size/Q.scale,B=>X({name:"size",value:B})):this.addSizeMenu("size",6,20,2,Q.size,B=>X({name:"size",value:B})),this.addSelectMenu("family",["Arial","Times New Roman","Courier New","Symbol"],Q.name,B=>X({name:"font_family",value:B})),this.addSelectMenu("style",["normal","italic","oblique"],Q.style||"normal",B=>X({name:"font_style",value:"normal"===B?null:B})),this.addSelectMenu("weight",["normal","lighter","bold","bolder"],Q.weight||"normal",B=>X({name:"font_weight",value:"normal"===B?null:B})),me.noalign||this.add("align"),me.noangle||this.add("angle")}addLineStyleMenu(Q,me,X){this.add("sub:"+Q,()=>this.input("Enter line style id (1-solid)",me,"int",1,11).then(B=>{(0,Ye.Ov)(B)&&X(B)}));for(let B=1;B<11;++B){const $=(0,Ye.Ov)(B);this.addchk(me===B,`${B}`,B,E=>X(parseInt(E)))}this.add("endsub:")}addFillStyleMenu(Q,me,X,B,$){this.add("sub:"+Q,()=>{this.input("Enter fill style id (1001-solid, 3000..3010)",me,"int",0,4e3).then(E=>{E>=0&&E<=4e3&&$(E)})});const g=[1,1001,3001,3002,3003,3004,3005,3006,3007,3010,3021,3022];for(let E=0;E${g[E].toString()}`}this.addchk(me===g[E],_,g[E],v=>$(parseInt(v)))}this.add("endsub:")}addFontMenu(Q,me,X){const B=me&&Number.isInteger(me)?me%10:2;this.add("sub:"+Q,()=>{this.input("Enter font id from [0..20]",Math.floor(me/10),"int",0,20).then(g=>{g>=0&&g<=20&&X(10*g+B)})}),this.add("column:");const $=(0,x.getDocument)();for(let g=1;g<20;++g){const E=10*g+B,_=new Ze.qg(E,14),v=(0,L.Lt)($.createElementNS("http://www.w3.org/2000/svg","text"));let p=_.getFontName(),C="";_.weight&&(C+="b",p+=" "+_.weight),_.style&&(C+=_.style[0],p+=" "+_.style),C&&(C=" "+C),v.attr("x",1).attr("y",15).text(p.split(" ")[0]+C),_.setFont(v);const I=me!==E?"":"",U=`${v.node().outerHTML}${I}`;this.add(U,E,k=>X(parseInt(k)),`${E}: ${p}`),10===g&&(this.add("endcolumn:"),this.add("column:"))}this.add("endcolumn:"),this.add("endsub:")}addAlignMenu(Q,me,X){this.add(`sub:${Q}`,()=>{this.input("Enter align like 12 or 31",me).then(g=>{const E=parseInt(g);if(E<11||E>33)return;const _=Math.floor(E/10),v=E%10;_>0&&_<4&&v>0&&v<4&&X(E)})});const B=["left","middle","right"],$=["bottom","centered","top"];for(let g=1;g<4;++g)for(let E=1;E<4;++E)this.addchk(10*g+E===me,`${10*g+E}: ${B[g-1]} ${$[g-1]}`,10*g+E,_=>X(parseInt(_)));this.add("endsub:")}addAttributesMenu(Q,me){if(me||(me=""),Q.lineatt?.used&&(this.add(`sub:${me}Line att`),this.addSizeMenu("width",1,10,1,Q.lineatt.width,X=>{Q.lineatt.change(void 0,X),Q.interactiveRedraw(!0,`exec:SetLineWidth(${X})`)}),this.addColorMenu("color",Q.lineatt.color,X=>{Q.lineatt.change(X),Q.interactiveRedraw(!0,(0,ve.pp)(X,"SetLineColor"))}),this.addLineStyleMenu("style",Q.lineatt.style,X=>{Q.lineatt.change(void 0,void 0,X),Q.interactiveRedraw(!0,`exec:SetLineStyle(${X})`)}),this.add("endsub:"),Q.lineatt?.excl_side)){this.add("sub:Exclusion"),this.add("sub:side");for(let X=-1;X<=1;++X)this.addchk(Q.lineatt.excl_side===X,X,X,B=>{Q.lineatt.changeExcl(parseInt(B)),Q.interactiveRedraw()});this.add("endsub:"),this.addSizeMenu("width",10,100,10,Q.lineatt.excl_width,X=>{Q.lineatt.changeExcl(void 0,X),Q.interactiveRedraw()}),this.add("endsub:")}if(Q.fillatt?.used&&(this.add(`sub:${me}Fill att`),this.addColorMenu("color",Q.fillatt.colorindx,X=>{Q.fillatt.change(X,void 0,Q.getCanvSvg()),Q.interactiveRedraw(!0,(0,ve.pp)(X,"SetFillColor"))},Q.fillatt.kind),this.addFillStyleMenu("style",Q.fillatt.pattern,Q.fillatt.colorindx,Q,X=>{Q.fillatt.change(void 0,X,Q.getCanvSvg()),Q.interactiveRedraw(!0,`exec:SetFillStyle(${X})`)}),this.add("endsub:")),Q.markeratt?.used){this.add(`sub:${me}Marker att`),this.addColorMenu("color",Q.markeratt.color,B=>{Q.markeratt.change(B),Q.interactiveRedraw(!0,(0,ve.pp)(B,"SetMarkerColor"))}),this.addSizeMenu("size",.5,6,.5,Q.markeratt.size,B=>{Q.markeratt.change(void 0,void 0,B),Q.interactiveRedraw(!0,`exec:SetMarkerSize(${B})`)}),this.add("sub:style");const X=[1,2,3,4,5,6,7,8,21,22,23,24,25,26,27,28,29,30,31,32,33,34];for(let B=0;B${X[B].toString()}`;this.addchk(Q.markeratt.style===X[B],g,X[B],E=>{Q.markeratt.change(void 0,parseInt(E)),Q.interactiveRedraw(!0,`exec:SetMarkerStyle(${E})`)})}this.add("endsub:"),this.add("endsub:")}if(Q.textatt?.used){this.add(`sub:${me}Text att`),this.addFontMenu("font",Q.textatt.font,B=>{Q.textatt.change(B),Q.interactiveRedraw(!0,`exec:SetTextFont(${B})`)});const X=Q.textatt.size<1;this.addSizeMenu("size",X?.03:6,X?.2:26,X?.01:2,Q.textatt.size,B=>{Q.textatt.change(void 0,parseFloat(B)),Q.interactiveRedraw(!0,`exec:SetTextSize(${B})`)}),this.addColorMenu("color",Q.textatt.color,B=>{Q.textatt.change(void 0,void 0,B),Q.interactiveRedraw(!0,(0,ve.pp)(B,"SetTextColor"))}),this.addAlignMenu("align",Q.textatt.align,B=>{Q.textatt.change(void 0,void 0,void 0,B),Q.interactiveRedraw(!0,`exec:SetTextAlign(${B})`)}),this.addSizeMenu("angle",-180,180,45,Q.textatt.angle,B=>{Q.textatt.change(void 0,void 0,void 0,void 0,parseFloat(B)),Q.interactiveRedraw(!0,`exec:SetTextAngle(${B})`)}),this.add("endsub:")}}addTAxisMenu(Q,me,X,B){const $=X._typename===x.clTGaxis;this.add("Divisions",()=>this.input("Set Ndivisions",X.fNdivisions,"int",0).then(E=>{X.fNdivisions=E,me.interactiveRedraw("pad",`exec:SetNdivisions(${E})`,B)})),this.add("sub:Labels"),this.addchk(X.TestBit(Q.kCenterLabels),"Center",E=>{X.InvertBit(Q.kCenterLabels),me.interactiveRedraw("pad",`exec:CenterLabels(${E})`,B)}),this.addchk(X.TestBit(Q.kLabelsVert),"Rotate",E=>{X.InvertBit(Q.kLabelsVert),me.interactiveRedraw("pad",`exec:SetBit(TAxis::kLabelsVert,${E})`,B)}),this.addColorMenu("Color",X.fLabelColor,E=>{X.fLabelColor=E,me.interactiveRedraw("pad",(0,ve.pp)(E,"SetLabelColor"),B)}),this.addSizeMenu("Offset",-.02,.1,.01,X.fLabelOffset,E=>{X.fLabelOffset=E,me.interactiveRedraw("pad",`exec:SetLabelOffset(${E})`,B)});let g=X.fLabelSize>=1;this.addSizeMenu("Size",g?2:.02,g?30:.11,g?2:.01,X.fLabelSize,E=>{X.fLabelSize=E,me.interactiveRedraw("pad",`exec:SetLabelSize(${E})`,B)}),this.add("endsub:"),this.add("sub:Title"),this.add("SetTitle",()=>{this.input("Enter axis title",X.fTitle).then(E=>{X.fTitle=E,me.interactiveRedraw("pad",`exec:SetTitle("${E}")`,B)})}),this.addchk(X.TestBit(Q.kCenterTitle),"Center",E=>{X.InvertBit(Q.kCenterTitle),me.interactiveRedraw("pad",`exec:CenterTitle(${E})`,B)}),this.addchk(X.TestBit(Q.kOppositeTitle),"Opposite",()=>{X.InvertBit(Q.kOppositeTitle),me.redrawPad()}),this.addchk(X.TestBit(Q.kRotateTitle),"Rotate",E=>{X.InvertBit(Q.kRotateTitle),me.interactiveRedraw("pad",$?`exec:SetBit(TAxis::kRotateTitle, ${E})`:`exec:RotateTitle(${E})`,B)}),$?this.addColorMenu("Color",X.fTextColor,E=>{X.fTextColor=E,me.interactiveRedraw("pad",(0,ve.pp)(E,"SetTitleColor"),B)}):this.addColorMenu("Color",X.fTitleColor,E=>{X.fTitleColor=E,me.interactiveRedraw("pad",(0,ve.pp)(E,"SetTitleColor"),B)}),this.addSizeMenu("Offset",0,3,.2,X.fTitleOffset,E=>{X.fTitleOffset=E,me.interactiveRedraw("pad",`exec:SetTitleOffset(${E})`,B)}),g=X.fTitleSize>=1,this.addSizeMenu("Size",g?2:.02,g?30:.11,g?2:.01,X.fTitleSize,E=>{X.fTitleSize=E,me.interactiveRedraw("pad",`exec:SetTitleSize(${E})`,B)}),this.add("endsub:"),this.add("sub:Ticks"),$?(this.addColorMenu("Color",X.fLineColor,E=>{X.fLineColor=E,me.interactiveRedraw("pad",(0,ve.pp)(E,"SetLineColor"),B)}),this.addSizeMenu("Size",-.05,.055,.01,X.fTickSize,E=>{X.fTickSize=E,me.interactiveRedraw("pad",`exec:SetTickLength(${E})`,B)})):(this.addColorMenu("Color",X.fAxisColor,E=>{X.fAxisColor=E,me.interactiveRedraw("pad",(0,ve.pp)(E,"SetAxisColor"),B)}),this.addSizeMenu("Size",-.05,.055,.01,X.fTickLength,E=>{X.fTickLength=E,me.interactiveRedraw("pad",`exec:SetTickLength(${E})`,B)})),this.add("endsub:"),$&&this.add("Options",()=>this.input("Enter TGaxis options like +L or -G",X.fChopt,"string").then(E=>{X.fChopt=E,me.interactiveRedraw("pad",`exec:SetOption("${E}")`,B)}))}addSettingsMenu(Q,me,X){this.add(me?"header:Settings":"sub:Settings"),this.add("sub:Files"),Q&&(this.addchk(x.settings.OnlyLastCycle,"Last cycle",g=>{x.settings.OnlyLastCycle=g,X&&X("refresh")}),this.addchk(!x.settings.SkipStreamerInfos,"Streamer infos",g=>{x.settings.SkipStreamerInfos=!g,X&&X("refresh")})),this.addchk(x.settings.UseStamp,"Use stamp arg",g=>{x.settings.UseStamp=g}),this.addSizeMenu("Max ranges",1,1e3,[1,10,20,50,200,1e3],x.settings.MaxRanges,g=>{x.settings.MaxRanges=g},"Maximal number of ranges in single http request"),this.addchk(x.settings.HandleWrongHttpResponse,"Handle wrong http response",g=>{x.settings.HandleWrongHttpResponse=g}),this.addchk(x.settings.WithCredentials,"With credentials",g=>{x.settings.WithCredentials=g},"Submit http request with user credentials"),this.add("endsub:"),this.add("sub:Toolbar"),this.addchk(!1===x.settings.ToolBar,"Off",g=>{x.settings.ToolBar=!g}),this.addchk(!0===x.settings.ToolBar,"On",g=>{x.settings.ToolBar=g}),this.addchk("popup"===x.settings.ToolBar,"Popup",g=>{x.settings.ToolBar=!!g&&"popup"}),this.add("separator"),this.addchk("left"===x.settings.ToolBarSide,"Left side",g=>{x.settings.ToolBarSide=g?"left":"right"}),this.addchk(x.settings.ToolBarVert,"Vertical",g=>{x.settings.ToolBarVert=g}),this.add("endsub:"),this.add("sub:Interactive"),this.addchk(x.settings.Tooltip,"Tooltip",g=>{x.settings.Tooltip=g}),this.addchk(x.settings.ContextMenu,"Context menus",g=>{x.settings.ContextMenu=g}),this.add("sub:Zooming"),this.addchk(x.settings.Zooming,"Global",g=>{x.settings.Zooming=g}),this.addchk(x.settings.ZoomMouse,"Mouse",g=>{x.settings.ZoomMouse=g}),this.addchk(x.settings.ZoomWheel,"Wheel",g=>{x.settings.ZoomWheel=g}),this.addchk(x.settings.ZoomTouch,"Touch",g=>{x.settings.ZoomTouch=g}),this.add("endsub:"),this.addchk(x.settings.HandleKeys,"Keypress handling",g=>{x.settings.HandleKeys=g}),this.addchk(x.settings.MoveResize,"Move and resize",g=>{x.settings.MoveResize=g}),this.addchk(x.settings.DragAndDrop,"Drag and drop",g=>{x.settings.DragAndDrop=g}),this.addchk(x.settings.DragGraphs,"Drag graph points",g=>{x.settings.DragGraphs=g}),this.addSelectMenu("Progress box",["off","on","modal"],(0,x.isStr)(x.settings.ProgressBox)?x.settings.ProgressBox:x.settings.ProgressBox?"on":"off",g=>{x.settings.ProgressBox="off"!==g&&(" on"===g||g)}),this.add("endsub:"),this.add("sub:Drawing"),this.addSelectMenu("Optimize",["None","Smart","Always"],x.settings.OptimizeDraw,g=>{x.settings.OptimizeDraw=g}),this.addPaletteMenu(x.settings.Palette,g=>{x.settings.Palette=g}),this.addchk(x.settings.AutoStat,"Auto stat box",g=>{x.settings.AutoStat=g}),this.addSelectMenu("Latex",["Off","Symbols","Normal","MathJax","Force MathJax"],x.settings.Latex,g=>{x.settings.Latex=g}),this.addSelectMenu("3D rendering",["Default","WebGL","Image"],x.settings.Render3D,g=>{x.settings.Render3D=g}),this.addSelectMenu("WebGL embeding",["Default","Overlay","Embed"],x.settings.Embed3D,g=>{x.settings.Embed3D=g}),this.add("endsub:"),this.add("sub:Geometry"),this.add("Grad per segment: "+x.settings.GeoGradPerSegm,()=>this.input("Grad per segment in geometry",x.settings.GeoGradPerSegm,"int",1,60).then(g=>{x.settings.GeoGradPerSegm=g})),this.addchk(x.settings.GeoCompressComp,"Compress composites",g=>{x.settings.GeoCompressComp=g}),this.add("endsub:"),Q&&(this.add("sub:Browser"),this.add("Hierarchy limit: "+x.settings.HierarchyLimit,()=>this.input("Max number of items in hierarchy",x.settings.HierarchyLimit,"int",10,1e5).then(g=>{x.settings.HierarchyLimit=g,X&&X("refresh")})),this.add("Browser width: "+x.settings.BrowserWidth,()=>this.input("Browser width in px",x.settings.BrowserWidth,"int",50,2e3).then(g=>{x.settings.BrowserWidth=g,X&&X("width")})),this.add("endsub:")),this.add("Dark mode: "+(x.settings.DarkMode?"On":"Off"),()=>{x.settings.DarkMode=!x.settings.DarkMode,X&&X("dark")});const B=g=>{x.gStyle[g.slice(1)]=parseInt(g[0])},$=(g,E,_)=>{this.add("sub:"+g);for(let v=0;v<_.length;++v)this.addchk(x.gStyle[E]===v,_[v],`${v}${E}`,B);this.add("endsub:")};this.add("sub:gStyle"),this.add("sub:Canvas"),this.addColorMenu("Color",x.gStyle.fCanvasColor,g=>{x.gStyle.fCanvasColor=g}),this.addchk(x.gStyle.fOptDate,"Draw date",g=>{x.gStyle.fOptDate=g?1:0}),this.addchk(x.gStyle.fOptFile,"Draw item",g=>{x.gStyle.fOptFile=g?1:0}),this.addSizeMenu("Date X",.01,.1,.01,x.gStyle.fDateX,g=>{x.gStyle.fDateX=g},"configure gStyle.fDateX for date/item name drawings"),this.addSizeMenu("Date Y",.01,.1,.01,x.gStyle.fDateY,g=>{x.gStyle.fDateY=g},"configure gStyle.fDateY for date/item name drawings"),this.add("endsub:"),this.add("sub:Pad"),this.addColorMenu("Color",x.gStyle.fPadColor,g=>{x.gStyle.fPadColor=g}),this.add("sub:Grid"),this.addchk(x.gStyle.fPadGridX,"X",g=>{x.gStyle.fPadGridX=g}),this.addchk(x.gStyle.fPadGridY,"Y",g=>{x.gStyle.fPadGridY=g}),this.addColorMenu("Color",x.gStyle.fGridColor,g=>{x.gStyle.fGridColor=g}),this.addSizeMenu("Width",1,10,1,x.gStyle.fGridWidth,g=>{x.gStyle.fGridWidth=g}),this.addLineStyleMenu("Style",x.gStyle.fGridStyle,g=>{x.gStyle.fGridStyle=g}),this.add("endsub:"),$("Ticks X","fPadTickX",["normal","ticks on both sides","labels on both sides"]),$("Ticks Y","fPadTickY",["normal","ticks on both sides","labels on both sides"]),$("Log X","fOptLogx",["off","on","log 2"]),$("Log Y","fOptLogy",["off","on","log 2"]),$("Log Z","fOptLogz",["off","on","log 2"]),this.add("endsub:"),this.add("sub:Frame"),this.addColorMenu("Fill color",x.gStyle.fFrameFillColor,g=>{x.gStyle.fFrameFillColor=g}),this.addFillStyleMenu("Fill style",x.gStyle.fFrameFillStyle,x.gStyle.fFrameFillColor,null,g=>{x.gStyle.fFrameFillStyle=g}),this.addColorMenu("Line color",x.gStyle.fFrameLineColor,g=>{x.gStyle.fFrameLineColor=g}),this.addSizeMenu("Line width",1,10,1,x.gStyle.fFrameLineWidth,g=>{x.gStyle.fFrameLineWidth=g}),this.addLineStyleMenu("Line style",x.gStyle.fFrameLineStyle,g=>{x.gStyle.fFrameLineStyle=g}),this.addSizeMenu("Border size",0,10,1,x.gStyle.fFrameBorderSize,g=>{x.gStyle.fFrameBorderSize=g}),this.add("sub:Margins"),this.addSizeMenu("Bottom",0,.5,.05,x.gStyle.fPadBottomMargin,g=>{x.gStyle.fPadBottomMargin=g}),this.addSizeMenu("Top",0,.5,.05,x.gStyle.fPadTopMargin,g=>{x.gStyle.fPadTopMargin=g}),this.addSizeMenu("Left",0,.5,.05,x.gStyle.fPadLeftMargin,g=>{x.gStyle.fPadLeftMargin=g}),this.addSizeMenu("Right",0,.5,.05,x.gStyle.fPadRightMargin,g=>{x.gStyle.fPadRightMargin=g}),this.add("endsub:"),this.add("endsub:"),this.add("sub:Title"),this.addColorMenu("Fill color",x.gStyle.fTitleColor,g=>{x.gStyle.fTitleColor=g}),this.addFillStyleMenu("Fill style",x.gStyle.fTitleStyle,x.gStyle.fTitleColor,null,g=>{x.gStyle.fTitleStyle=g}),this.addColorMenu("Text color",x.gStyle.fTitleTextColor,g=>{x.gStyle.fTitleTextColor=g}),this.addSizeMenu("Border size",0,10,1,x.gStyle.fTitleBorderSize,g=>{x.gStyle.fTitleBorderSize=g}),this.addSizeMenu("Font size",.01,.1,.01,x.gStyle.fTitleFontSize,g=>{x.gStyle.fTitleFontSize=g}),this.addFontMenu("Font",x.gStyle.fTitleFont,g=>{x.gStyle.fTitleFont=g}),this.addSizeMenu("X: "+x.gStyle.fTitleX.toFixed(2),0,1,.1,x.gStyle.fTitleX,g=>{x.gStyle.fTitleX=g}),this.addSizeMenu("Y: "+x.gStyle.fTitleY.toFixed(2),0,1,.1,x.gStyle.fTitleY,g=>{x.gStyle.fTitleY=g}),this.addSizeMenu("W: "+x.gStyle.fTitleW.toFixed(2),0,1,.1,x.gStyle.fTitleW,g=>{x.gStyle.fTitleW=g}),this.addSizeMenu("H: "+x.gStyle.fTitleH.toFixed(2),0,1,.1,x.gStyle.fTitleH,g=>{x.gStyle.fTitleH=g}),this.add("endsub:"),this.add("sub:Stat box"),this.addColorMenu("Fill color",x.gStyle.fStatColor,g=>{x.gStyle.fStatColor=g}),this.addFillStyleMenu("Fill style",x.gStyle.fStatStyle,x.gStyle.fStatColor,null,g=>{x.gStyle.fStatStyle=g}),this.addColorMenu("Text color",x.gStyle.fStatTextColor,g=>{x.gStyle.fStatTextColor=g}),this.addSizeMenu("Border size",0,10,1,x.gStyle.fStatBorderSize,g=>{x.gStyle.fStatBorderSize=g}),this.addSizeMenu("Font size",0,30,5,x.gStyle.fStatFontSize,g=>{x.gStyle.fStatFontSize=g}),this.addFontMenu("Font",x.gStyle.fStatFont,g=>{x.gStyle.fStatFont=g}),this.add("Stat format",()=>this.input("Stat format",x.gStyle.fStatFormat).then(g=>{x.gStyle.fStatFormat=g})),this.addSizeMenu("X: "+x.gStyle.fStatX.toFixed(2),.2,1,.1,x.gStyle.fStatX,g=>{x.gStyle.fStatX=g}),this.addSizeMenu("Y: "+x.gStyle.fStatY.toFixed(2),.2,1,.1,x.gStyle.fStatY,g=>{x.gStyle.fStatY=g}),this.addSizeMenu("Width: "+x.gStyle.fStatW.toFixed(2),.1,1,.1,x.gStyle.fStatW,g=>{x.gStyle.fStatW=g}),this.addSizeMenu("Height: "+x.gStyle.fStatH.toFixed(2),.1,1,.1,x.gStyle.fStatH,g=>{x.gStyle.fStatH=g}),this.add("endsub:"),this.add("sub:Legend"),this.addColorMenu("Fill color",x.gStyle.fLegendFillColor,g=>{x.gStyle.fLegendFillColor=g}),this.addSizeMenu("Border size",0,10,1,x.gStyle.fLegendBorderSize,g=>{x.gStyle.fLegendBorderSize=g}),this.addFontMenu("Font",x.gStyle.fLegendFont,g=>{x.gStyle.fLegendFont=g}),this.addSizeMenu("Text size",0,.1,.01,x.gStyle.fLegendTextSize,g=>{x.gStyle.fLegendTextSize=g},"legend text size, when 0 - auto adjustment is used"),this.add("endsub:"),this.add("sub:Histogram"),this.addchk(1===x.gStyle.fOptTitle,"Hist title",g=>{x.gStyle.fOptTitle=g?1:0}),this.addchk(x.gStyle.fOrthoCamera,"Orthographic camera",g=>{x.gStyle.fOrthoCamera=g}),this.addchk(x.gStyle.fHistMinimumZero,"Base0",g=>{x.gStyle.fHistMinimumZero=g},"when true, BAR and LEGO drawing using base = 0"),this.add("Text format",()=>this.input("Paint text format",x.gStyle.fPaintTextFormat).then(g=>{x.gStyle.fPaintTextFormat=g})),this.add("Time offset",()=>this.input("Time offset in seconds, default is 788918400 for 1/1/1995",x.gStyle.fTimeOffset,"int").then(g=>{x.gStyle.fTimeOffset=g})),this.addSizeMenu("ErrorX: "+x.gStyle.fErrorX.toFixed(2),0,1,.1,x.gStyle.fErrorX,g=>{x.gStyle.fErrorX=g}),this.addSizeMenu("End error",0,12,1,x.gStyle.fEndErrorSize,g=>{x.gStyle.fEndErrorSize=g},"size in pixels of end error for E1 draw options, gStyle.fEndErrorSize"),this.addSizeMenu("Top margin",0,.5,.05,x.gStyle.fHistTopMargin,g=>{x.gStyle.fHistTopMargin=g},"Margin between histogram top and frame top"),this.addColorMenu("Fill color",x.gStyle.fHistFillColor,g=>{x.gStyle.fHistFillColor=g}),this.addFillStyleMenu("Fill style",x.gStyle.fHistFillStyle,x.gStyle.fHistFillColor,null,g=>{x.gStyle.fHistFillStyle=g}),this.addColorMenu("Line color",x.gStyle.fHistLineColor,g=>{x.gStyle.fHistLineColor=g}),this.addSizeMenu("Line width",1,10,1,x.gStyle.fHistLineWidth,g=>{x.gStyle.fHistLineWidth=g}),this.addLineStyleMenu("Line style",x.gStyle.fHistLineStyle,g=>{x.gStyle.fHistLineStyle=g}),this.add("endsub:"),this.add("separator"),this.add("sub:Predefined"),["Modern","Plain","Bold"].forEach(g=>this.addchk(x.gStyle.fName===g,g,g,ve.Jb)),this.add("endsub:"),this.add("endsub:"),this.add("separator"),this.add("Save settings",()=>{((0,ve.sb)(!0)?Promise.resolve(!0):this.confirm("Save settings","Pressing OK one agreess that JSROOT will store settings as browser cookies")).then(E=>{E&&((0,ve.DZ)(),(0,ve.PL)())})},"Store settings and gStyle as cookies"),this.add("Delete settings",()=>{(0,ve.DZ)(-1),(0,ve.PL)(-1)},"Delete settings and gStyle from cookies"),me||this.add("endsub:")}runModal(){return(0,Te.A)(function*(){throw Error("runModal() must be reimplemented")})()}info(Q,me){return this.runModal(Q,`

${me}

`,{height:120,width:400,resizable:!0})}confirm(Q,me){var X=this;return(0,Te.A)(function*(){return X.runModal(Q,me,{btns:!0,height:120,width:400}).then(B=>!!B)})()}input(Q,me,X,B,$){var g=this;return(0,Te.A)(function*(){X||(X="text");let _="";null==me&&(me=""),"int"===X&&(void 0!==B&&(_+=` min="${B}"`),void 0!==$&&(_+=` max="${$}"`));const v=`
`;return new Promise(p=>{g.runModal(Q,v,{btns:!0,height:150,width:400}).then(C=>{if(!C)return;let I=C.querySelector(".jsroot_dlginp").value;"float"===X?(I=parseFloat(I),Number.isFinite(I)&&p(I)):"int"===X?(I=parseInt(I),Number.isInteger(I)&&p(I)):p(I)})})})()}showMethodArgsDialog(Q){var me=this;return(0,Te.A)(function*(){const X=me.menuname+"_dialog";let B='
';for(let $=0;$${g.fName}\n `}return B+="
",new Promise($=>{me.runModal(Q.fClassName+"::"+Q.fName,B,{btns:!0,height:100+60*Q.fArgs.length,width:400,resizable:!0}).then(g=>{if(!g)return;let E="";for(let _=0;_0?",":"")+p}$(E)})})})()}showCommandArgsDialog(Q,me){var X=this;return(0,Te.A)(function*(){const B=X.menuname+"_dialog";let $='
';for(let g=0;garg${g+1}`;return $+="
",new Promise(g=>{X.runModal("Arguments for command "+Q,$,{btns:!0,height:110+60*me.length,width:400,resizable:!0}).then(E=>{if(!E)return g(null);const _=[];for(let v=0;v0;)I[0].parentNode.removeChild(I[0]);g.className="jsroot_ctxt_container",g.style=E,g.style.position="fixed",g.style.left=me+"px",g.style.top=X+"px"}else me<0&&X===me?(g.className="jsroot_ctxt_column",g.style.float="left",g.style.width=(100/-me).toFixed(1)+"%"):(g.className="jsroot_ctxt_container",g.style=E,g.style.left=-B.offsetLeft+B.offsetWidth+"px");let _=!1,v=0;Q.forEach(I=>{I.checked&&(_=!0),I.column&&v++}),Q.forEach(I=>{if(v>0)return g.style.display="flex",void(I.column&&this._buildContextmenu(I.sub,-v,-v,g));if(I.divider){const ue=$.createElement("hr");return ue.style="width: 85%; margin: 3px auto; border: 1px solid rgb(0, 0, 0, 0.15)",void g.appendChild(ue)}const U=$.createElement("div");if(U.style.position="relative",g.appendChild(U),I.header)return U.style="background-color: lightblue; padding: 3px 7px; font-weight: bold; border-bottom: 1px;",void(U.innerHTML=I.text);const k=$.createElement("div");k.style.width="100%",k.style.height="100%",k.style.display="flex",k.style.justifyContent="space-between",k.style.cursor="pointer",I.title&&k.setAttribute("title",I.title),U.appendChild(k),I.text||(I.text="item");const Z=$.createElement("div");if(Z.style="margin: 0; padding: 3px 7px; pointer-events: none; white-space: nowrap",I.text.indexOf("=0)if(_){Z.style.display="flex";const ue=$.createElement("span");ue.innerHTML=I.checked?"\u2713":"",ue.style.display="inline-block",ue.style.width="1em",Z.appendChild(ue);const V=$.createElement("div");V.innerHTML=I.text,Z.appendChild(V)}else Z.innerHTML=I.text;else{if(_){const V=$.createElement("span");V.innerHTML=I.checked?"\u2713":"",V.style.display="inline-block",V.style.width="1em",Z.appendChild(V)}const ue=$.createElement("span");ue.textContent=0===I.text.indexOf("")?I.text.slice(6,I.text.length-7):I.text,Z.appendChild(ue)}function ee(ue,V){V?(ue.classList.add("jsroot_ctxt_focus"),ue.style["background-color"]="rgb(220, 220, 220)"):ue.classList.contains("jsroot_ctxt_focus")&&(ue.style["background-color"]=null,ue.classList.remove("jsroot_ctxt_focus"),ue.querySelector(".jsroot_ctxt_container")?.remove())}if(k.appendChild(Z),I.extraText||I.sub){const ue=$.createElement("span");ue.className="jsroot_ctxt_extraText",ue.style="margin: 0; padding: 3px 7px; color: rgb(0, 0, 0, 0.6);",ue.textContent=I.sub?"\u25b6":I.extraText,k.appendChild(ue),I.sub&&x.browser.touches&&ue.addEventListener("click",V=>{V.preventDefault(),V.stopPropagation();const b=U.parentNode.querySelector(".jsroot_ctxt_focus");b&&ee(b,!1),U!==b&&(ee(U,!0),this._buildContextmenu(I.sub,0,0,U))})}x.browser.touches||k.addEventListener("mouseenter",()=>{this.prevHovArea&&(this.prevHovArea.style["background-color"]=null),k.style["background-color"]="rgb(235, 235, 235)",this.prevHovArea=k,g.childNodes.forEach(ue=>ee(ue,!1)),I.sub&&(ee(U,!0),this._buildContextmenu(I.sub,0,0,U))}),I.func&&U.addEventListener("click",ue=>{(this.painter?I.func.bind(this.painter):I.func)(I.arg),ue.stopPropagation(),this.remove()})}),B.appendChild(g);const p=$.documentElement.clientWidth,C=$.documentElement.clientHeight;if(B===$.body)me+g.offsetWidth>p&&(g.style.left=p-g.offsetWidth+"px"),g.offsetHeight>C?(g.style.top=0,g.style.overflowY="scroll",g.style.overflowX="hidden",g.style.height=C+"px"):X+g.offsetHeight>C&&(g.style.top=C-g.offsetHeight+"px");else if("jsroot_ctxt_column"!==g.className){const I=B.getBoundingClientRect(),U=g.getBoundingClientRect();U.left+U.width>p&&(g.style.left=-B.offsetLeft-U.width+"px"),U.height>C?(g.style.top=-U.top+"px",g.style.overflowY="scroll",g.style.overflowX="hidden",g.style.height=C+"px"):U.heightC/2?g.style.top=U.top-C/2>=0?-U.top-U.height+C+"px":-U.top+"px":U.top+U.height>C&&(g.style.top=-U.height+I.height+"px")}return g}show(Q){var me=this;return(0,Te.A)(function*(){me.remove(),!Q&&me.show_evnt&&(Q=me.show_evnt);const X=(0,x.getDocument)(),B=typeof window>"u"?{x:0,y:0}:{x:window.scrollX,y:window.scrollY};X.body.addEventListener("click",me.remove_handler);const $=X.getElementById(me.menuname);return $&&$.remove(),me.element=me._buildContextmenu(me.code,(Q?.clientX||0)+B.x,(Q?.clientY||0)+B.y,X.body),me.element.setAttribute("id",me.menuname),me})()}createModal(Q,me,X){X||(X={}),X.Ok||(X.Ok="Ok");const B={args:X},$=(this?.menuname??"root_modal")+"_dialog";(0,L.Lt)(`#${$}`).remove(),(0,L.Lt)(`#${$}_block`).remove();const g=Math.min(X.width||450,Math.round(.9*x.browser.screenWidth));B.block=(0,L.Lt)("body").append("div").attr("id",`${$}_block`).attr("class","jsroot_dialog_block").attr("style","z-index: 100000; position: absolute; left: 0px; top: 0px; bottom: 0px; right: 0px; opacity: 0.2; background-color: white"),B.element=(0,L.Lt)("body").append("div").attr("id",$).attr("class","jsroot_dialog").style("position","absolute").style("width",`${g}px`).style("left","50%").style("top","50%").style("z-index",100001).attr("tabindex","0").html(`
${Q}
${me}
"),B.done=function(_){this._done||(this._done=!0,(0,x.isFunc)(this.call_back)&&this.call_back(_),this.element.remove(),this.block.remove())},B.setContent=function(_,v){this._done||(this.element.select(".jsroot_dialog_content").html(_),v&&(this.args.Ok=v,this.element.select(".jsroot_dialog_button").text(v)))},B.element.on("keyup",_=>{("Enter"===_.code||"Escape"===_.code)&&(_.preventDefault(),_.stopPropagation(),B.done("Enter"===_.code?B.element.node():null))}),B.element.on("keydown",_=>{("Enter"===_.code||"Escape"===_.code)&&(_.preventDefault(),_.stopPropagation())}),B.element.selectAll(".jsroot_dialog_button").on("click",_=>{B.done(X.btns&&(0,L.Lt)(_.target).text()===X.Ok?B.element.node():null)});let E=B.element.select(".jsroot_dialog_content").select("input");return E.empty()&&(E=B.element.select(".jsroot_dialog_footer").select("button")),E.empty()||E.node().focus(),B}runModal(Q,me,X){var B=this;return(0,Te.A)(function*(){const $=B.createModal(Q,me,X);return new Promise(g=>{$.call_back=g})})()}}function De(he,Q,me){return new Ve(Q,me||"root_ctx_menu",he).load()}function F(he){const Q=(0,x.getDocument)().getElementById(he||"root_ctx_menu");return Q?.remove(),!!Q}function J(he,Q,me){(0,x.isFunc)(he.stopPropagation)&&(he.stopPropagation(),he.preventDefault()),De(he,Q).then(X=>(Q.fillContextMenu(X),me===Re&&(0,x.isFunc)(Q.bringToFront)&&(X.add("Bring to front",()=>Q.bringToFront(!0)),me=void 0),Q.fillObjectExecMenu(X,me))).then(X=>X.show())}function Y(he,Q){!he?.isBatchMode()&&he?.draw_g&&he.draw_g.on("contextmenu",x.settings.ContextMenu?me=>J(me,he,Q):null)}x.internals._modalProgress=function(he,Q){if(!he||!(0,x.isStr)(he))return x.internals.modal?.done(),void delete x.internals.modal;x.internals.modal||(x.internals.modal=Ve.prototype.createModal("Progress",he)),x.internals.modal.setContent(he,Q?"Abort":"Ok"),x.internals.modal.call_back=Q}},5992:(Yr,mt,Se)=>{"use strict";Se.d(mt,{DZ:()=>B,IK:()=>De,Jb:()=>Q,OJ:()=>p,PL:()=>g,Rh:()=>Ye,W4:()=>Ze,X2:()=>Y,cA:()=>He,d7:()=>F,fz:()=>he,iE:()=>J,pp:()=>U,sb:()=>$});var Te=Se(4882),x=Se(8872),L=Se(8362),ve=Se(2843),ke=Se(1922),ot=Se(2985);function Ye(k,Z,ee){if((0,x.isBatchMode)()||typeof document>"u")return;const ue="jsroot_progressbox",V="modal"===x.settings.ProgressBox&&(0,x.isFunc)(x.internals._modalProgress)?x.internals._modalProgress:null;let b=(0,L.Lt)("#"+ue);if(!x.settings.ProgressBox)return V&&V(),b.remove();if(0===arguments.length||!k)return(-1!==Z||!b.empty()&&b.property("with_timeout"))&&b.remove(),void(V&&V());if(V)b.remove(),V(k,ee);else{b.empty()&&(b=(0,L.Lt)(document.body).append("div").attr("id",ue).attr("style","position: fixed; min-width: 100px; height: auto; overflow: visible; z-index: 101; border: 1px solid #999; background: #F8F8F8; left: 10px; bottom: 10px;"),b.append("p")),b.property("with_timeout",!1);const P=b.select("p");(0,x.isStr)(k)&&P.html(k).on("click",(0,x.isFunc)(ee)?ee:null).attr("title",(0,x.isFunc)(ee)?"Click element to abort current operation":""),P.attr("style","font-size: 10px; margin-left: 10px; margin-right: 10px; margin-top: 3px; margin-bottom: 3px")}Number.isFinite(Z)&&Z>0&&(b.empty()||b.property("with_timeout",!0),setTimeout(()=>Ye("",-1),Z))}function Ze(){typeof window>"u"||(window.close(),window.open("","_self").close())}function Re(k,Z){if(!k||0===k.length)return void((0,x.isFunc)(Z.rejectFunc)&&(Z.rejectFunc(Error("openui5 was not possible to load")),Z.rejectFunc=null));let ee=k.shift();0===ee.indexOf("roothandler")&&ee.indexOf("://")<0&&(ee=ee.replace(/:\//g,"://"));const ue=document.createElement("script");ue.setAttribute("type","text/javascript"),ue.setAttribute("id","sap-ui-bootstrap"),ue.setAttribute("src",ee+(Z.ui5dbg?"resources/sap-ui-core-dbg.js":"resources/sap-ui-core.js")),ue.setAttribute("data-sap-ui-libs",Z.openui5libs??"sap.m, sap.ui.layout, sap.ui.unified, sap.ui.commons"),ue.setAttribute("data-sap-ui-theme",Z.openui5theme||"sap_belize"),ue.setAttribute("data-sap-ui-compatVersion","edge"),ue.setAttribute("data-sap-ui-async","true"),ue.setAttribute("data-sap-ui-preload","async"),ue.setAttribute("data-sap-ui-evt-oninit","completeUI5Loading()"),ue.onerror=function(){ue.parentNode.removeChild(ue),Re(k,Z)},ue.onload=function(){console.log(`Load openui5 from ${ee}`)},document.head.appendChild(ue)}function He(k){return Ve.apply(this,arguments)}function Ve(){return(Ve=(0,Te.A)(function*(k){if("object"==typeof globalThis.sap)return globalThis.sap;k||(k={});let Z=x.source_dir.replace(/jsrootsys/g,"rootui5sys");Z===x.source_dir&&(Z=window.location.port&&window.location.pathname.indexOf("/win")>=0&&(!k.openui5src||"nojsroot"===k.openui5src||"jsroot"===k.openui5src)?window.location.origin+window.location.pathname+"../rootui5sys/":void 0);const ee=[];let ue="https://openui5.hana.ondemand.com/1.98.0/",V=Z?Z+"distribution/":"";if((0,x.isStr)(k.openui5src))switch(k.openui5src){case"nodefault":ue="";break;case"default":ee.push(ue),ue="";break;case"nojsroot":break;case"jsroot":ee.push(V),V="";break;default:ee.push(k.openui5src)}else k.ui5dbg&&(V="");return V&&ee.indexOf(V)<0&&ee.push(V),ue&&ee.indexOf(ue)<0&&ee.push(ue),new Promise((b,P)=>{k.resolveFunc=b,k.rejectFunc=P,globalThis.completeUI5Loading=function(){globalThis.sap.ui.loader.config({paths:{jsroot:x.source_dir,rootui5:Z}}),k.resolveFunc&&(k.resolveFunc(globalThis.sap),k.resolveFunc=null)},Re(ee,k)})})).apply(this,arguments)}const De={camera:{path:"M 152.00,304.00c0.00,57.438, 46.562,104.00, 104.00,104.00s 104.00-46.562, 104.00-104.00s-46.562-104.00-104.00-104.00S 152.00,246.562, 152.00,304.00z M 480.00,128.00L 368.00,128.00 c-8.00-32.00-16.00-64.00-48.00-64.00L 192.00,64.00 c-32.00,0.00-40.00,32.00-48.00,64.00L 32.00,128.00 c-17.60,0.00-32.00,14.40-32.00,32.00l0.00,288.00 c0.00,17.60, 14.40,32.00, 32.00,32.00l 448.00,0.00 c 17.60,0.00, 32.00-14.40, 32.00-32.00L 512.00,160.00 C 512.00,142.40, 497.60,128.00, 480.00,128.00z M 256.00,446.00c-78.425,0.00-142.00-63.574-142.00-142.00c0.00-78.425, 63.575-142.00, 142.00-142.00c 78.426,0.00, 142.00,63.575, 142.00,142.00 C 398.00,382.426, 334.427,446.00, 256.00,446.00z M 480.00,224.00l-64.00,0.00 l0.00-32.00 l 64.00,0.00 L 480.00,224.00 z"},disk:{path:"M384,0H128H32C14.336,0,0,14.336,0,32v448c0,17.656,14.336,32,32,32h448c17.656,0,32-14.344,32-32V96L416,0H384z M352,160 V32h32v128c0,17.664-14.344,32-32,32H160c-17.664,0-32-14.336-32-32V32h128v128H352z M96,288c0-17.656,14.336-32,32-32h256 c17.656,0,32,14.344,32,32v192H96V288z"},question:{path:"M256,512c141.375,0,256-114.625,256-256S397.375,0,256,0S0,114.625,0,256S114.625,512,256,512z M256,64 c63.719,0,128,36.484,128,118.016c0,47.453-23.531,84.516-69.891,110.016C300.672,299.422,288,314.047,288,320 c0,17.656-14.344,32-32,32c-17.664,0-32-14.344-32-32c0-40.609,37.25-71.938,59.266-84.031 C315.625,218.109,320,198.656,320,182.016C320,135.008,279.906,128,256,128c-30.812,0-64,20.227-64,64.672 c0,17.664-14.336,32-32,32s-32-14.336-32-32C128,109.086,193.953,64,256,64z M256,449.406c-18.211,0-32.961-14.75-32.961-32.969 c0-18.188,14.75-32.953,32.961-32.953c18.219,0,32.969,14.766,32.969,32.953C288.969,434.656,274.219,449.406,256,449.406z"},undo:{path:"M450.159,48.042c8.791,9.032,16.983,18.898,24.59,29.604c7.594,10.706,14.146,22.207,19.668,34.489 c5.509,12.296,9.82,25.269,12.92,38.938c3.113,13.669,4.663,27.834,4.663,42.499c0,14.256-1.511,28.863-4.532,43.822 c-3.009,14.952-7.997,30.217-14.953,45.795c-6.955,15.577-16.202,31.52-27.755,47.826s-25.88,32.9-42.942,49.807 c-5.51,5.444-11.787,11.67-18.834,18.651c-7.033,6.98-14.496,14.366-22.39,22.168c-7.88,7.802-15.955,15.825-24.187,24.069 c-8.258,8.231-16.333,16.203-24.252,23.888c-18.3,18.13-37.354,37.016-57.191,56.65l-56.84-57.445 c19.596-19.472,38.54-38.279,56.84-56.41c7.75-7.685,15.772-15.604,24.108-23.757s16.438-16.163,24.33-24.057 c7.894-7.893,15.356-15.33,22.402-22.312c7.034-6.98,13.312-13.193,18.821-18.651c22.351-22.402,39.165-44.648,50.471-66.738 c11.279-22.09,16.932-43.567,16.932-64.446c0-15.785-3.217-31.005-9.638-45.671c-6.422-14.665-16.229-28.504-29.437-41.529 c-3.282-3.282-7.358-6.395-12.217-9.325c-4.871-2.938-10.381-5.503-16.516-7.697c-6.121-2.201-12.815-3.992-20.058-5.373 c-7.242-1.374-14.9-2.064-23.002-2.064c-8.218,0-16.802,0.834-25.788,2.507c-8.961,1.674-18.053,4.429-27.222,8.271 c-9.189,3.842-18.456,8.869-27.808,15.089c-9.358,6.219-18.521,13.819-27.502,22.793l-59.92,60.271l93.797,94.058H0V40.91 l93.27,91.597l60.181-60.532c13.376-15.018,27.222-27.248,41.536-36.697c14.308-9.443,28.608-16.776,42.89-21.992 c14.288-5.223,28.505-8.74,42.623-10.557C294.645,0.905,308.189,0,321.162,0c13.429,0,26.389,1.185,38.84,3.562 c12.478,2.377,24.2,5.718,35.192,10.029c11.006,4.311,21.126,9.404,30.374,15.265C434.79,34.724,442.995,41.119,450.159,48.042z"},arrow_right:{path:"M30.796,226.318h377.533L294.938,339.682c-11.899,11.906-11.899,31.184,0,43.084c11.887,11.899,31.19,11.893,43.077,0 l165.393-165.386c5.725-5.712,8.924-13.453,8.924-21.539c0-8.092-3.213-15.84-8.924-21.551L338.016,8.925 C332.065,2.975,324.278,0,316.478,0c-7.802,0-15.603,2.968-21.539,8.918c-11.899,11.906-11.899,31.184,0,43.084l113.391,113.384 H30.796c-16.822,0-30.463,13.645-30.463,30.463C0.333,212.674,13.974,226.318,30.796,226.318z"},arrow_up:{path:"M295.505,629.446V135.957l148.193,148.206c15.555,15.559,40.753,15.559,56.308,0c15.555-15.538,15.546-40.767,0-56.304 L283.83,11.662C276.372,4.204,266.236,0,255.68,0c-10.568,0-20.705,4.204-28.172,11.662L11.333,227.859 c-7.777,7.777-11.666,17.965-11.666,28.158c0,10.192,3.88,20.385,11.657,28.158c15.563,15.555,40.762,15.555,56.317,0 l148.201-148.219v493.489c0,21.993,17.837,39.82,39.82,39.82C277.669,669.267,295.505,651.439,295.505,629.446z"},arrow_diag:{path:"M279.875,511.994c-1.292,0-2.607-0.102-3.924-0.312c-10.944-1.771-19.333-10.676-20.457-21.71L233.97,278.348 L22.345,256.823c-11.029-1.119-19.928-9.51-21.698-20.461c-1.776-10.944,4.031-21.716,14.145-26.262L477.792,2.149 c9.282-4.163,20.167-2.165,27.355,5.024c7.201,7.189,9.199,18.086,5.024,27.356L302.22,497.527 C298.224,506.426,289.397,511.994,279.875,511.994z M118.277,217.332l140.534,14.294c11.567,1.178,20.718,10.335,21.878,21.896 l14.294,140.519l144.09-320.792L118.277,217.332z"},auto_zoom:{path:"M505.441,242.47l-78.303-78.291c-9.18-9.177-24.048-9.171-33.216,0c-9.169,9.172-9.169,24.045,0.006,33.217l38.193,38.188 H280.088V80.194l38.188,38.199c4.587,4.584,10.596,6.881,16.605,6.881c6.003,0,12.018-2.297,16.605-6.875 c9.174-9.172,9.174-24.039,0.011-33.217L273.219,6.881C268.803,2.471,262.834,0,256.596,0c-6.229,0-12.202,2.471-16.605,6.881 l-78.296,78.302c-9.178,9.172-9.178,24.045,0,33.217c9.177,9.171,24.051,9.171,33.21,0l38.205-38.205v155.4H80.521l38.2-38.188 c9.177-9.171,9.177-24.039,0.005-33.216c-9.171-9.172-24.039-9.178-33.216,0L7.208,242.464c-4.404,4.403-6.881,10.381-6.881,16.611 c0,6.227,2.477,12.207,6.881,16.61l78.302,78.291c4.587,4.581,10.599,6.875,16.605,6.875c6.006,0,12.023-2.294,16.61-6.881 c9.172-9.174,9.172-24.036-0.005-33.211l-38.205-38.199h152.593v152.063l-38.199-38.211c-9.171-9.18-24.039-9.18-33.216-0.022 c-9.178,9.18-9.178,24.059-0.006,33.222l78.284,78.302c4.41,4.404,10.382,6.881,16.611,6.881c6.233,0,12.208-2.477,16.611-6.881 l78.302-78.296c9.181-9.18,9.181-24.048,0-33.205c-9.174-9.174-24.054-9.174-33.21,0l-38.199,38.188v-152.04h152.051l-38.205,38.199 c-9.18,9.175-9.18,24.037-0.005,33.211c4.587,4.587,10.596,6.881,16.604,6.881c6.01,0,12.024-2.294,16.605-6.875l78.303-78.285 c4.403-4.403,6.887-10.378,6.887-16.611C512.328,252.851,509.845,246.873,505.441,242.47z"},statbox:{path:"M28.782,56.902H483.88c15.707,0,28.451-12.74,28.451-28.451C512.331,12.741,499.599,0,483.885,0H28.782 C13.074,0,0.331,12.741,0.331,28.451C0.331,44.162,13.074,56.902,28.782,56.902zM483.885,136.845H28.782c-15.708,0-28.451,12.741-28.451,28.451c0,15.711,12.744,28.451,28.451,28.451H483.88 c15.707,0,28.451-12.74,28.451-28.451C512.331,149.586,499.599,136.845,483.885,136.845zM483.885,273.275H28.782c-15.708,0-28.451,12.731-28.451,28.452c0,15.707,12.744,28.451,28.451,28.451H483.88 c15.707,0,28.451-12.744,28.451-28.451C512.337,286.007,499.599,273.275,483.885,273.275zM256.065,409.704H30.492c-15.708,0-28.451,12.731-28.451,28.451c0,15.707,12.744,28.451,28.451,28.451h225.585 c15.707,0,28.451-12.744,28.451-28.451C284.516,422.436,271.785,409.704,256.065,409.704z"},circle:{path:"M256,256 m-150,0 a150,150 0 1,0 300,0 a150,150 0 1,0 -300,0"},three_circles:{path:"M256,85 m-70,0 a70,70 0 1,0 140,0 a70,70 0 1,0 -140,0 M256,255 m-70,0 a70,70 0 1,0 140,0 a70,70 0 1,0 -140,0 M256,425 m-70,0 a70,70 0 1,0 140,0 a70,70 0 1,0 -140,0 "},diamand:{path:"M256,0L384,256L256,511L128,256z"},rect:{path:"M90,90h352v352h-352z"},cross:{path:"M80,40l176,176l176,-176l40,40l-176,176l176,176l-40,40l-176,-176l-176,176l-40,-40l176,-176l-176,-176z"},vrgoggles:{size:"245.82 141.73",path:"M175.56,111.37c-22.52,0-40.77-18.84-40.77-42.07S153,27.24,175.56,27.24s40.77,18.84,40.77,42.07S198.08,111.37,175.56,111.37ZM26.84,69.31c0-23.23,18.25-42.07,40.77-42.07s40.77,18.84,40.77,42.07-18.26,42.07-40.77,42.07S26.84,92.54,26.84,69.31ZM27.27,0C11.54,0,0,12.34,0,28.58V110.9c0,16.24,11.54,30.83,27.27,30.83H99.57c2.17,0,4.19-1.83,5.4-3.7L116.47,118a8,8,0,0,1,12.52-.18l11.51,20.34c1.2,1.86,3.22,3.61,5.39,3.61h72.29c15.74,0,27.63-14.6,27.63-30.83V28.58C245.82,12.34,233.93,0,218.19,0H27.27Z"},th2colorz:{recs:[{x:128,y:486,w:256,h:26,f:"rgb(38,62,168)"},{y:461,f:"rgb(22,82,205)"},{y:435,f:"rgb(16,100,220)"},{y:410,f:"rgb(18,114,217)"},{y:384,f:"rgb(20,129,214)"},{y:358,f:"rgb(14,143,209)"},{y:333,f:"rgb(9,157,204)"},{y:307,f:"rgb(13,167,195)"},{y:282,f:"rgb(30,175,179)"},{y:256,f:"rgb(46,183,164)"},{y:230,f:"rgb(82,186,146)"},{y:205,f:"rgb(116,189,129)"},{y:179,f:"rgb(149,190,113)"},{y:154,f:"rgb(179,189,101)"},{y:128,f:"rgb(209,187,89)"},{y:102,f:"rgb(226,192,75)"},{y:77,f:"rgb(244,198,59)"},{y:51,f:"rgb(253,210,43)"},{y:26,f:"rgb(251,230,29)"},{y:0,f:"rgb(249,249,15)"}]},th2color:{recs:[{x:0,y:256,w:13,h:39,f:"rgb(38,62,168)"},{x:13,y:371,w:39,h:39},{y:294,h:39},{y:256,h:39},{y:218,h:39},{x:51,y:410,w:39,h:39},{y:371,h:39},{y:333,h:39},{y:294},{y:256,h:39},{y:218,h:39},{y:179,h:39},{y:141,h:39},{y:102,h:39},{y:64},{x:90,y:448,w:39,h:39},{y:410},{y:371,h:39},{y:333,h:39,f:"rgb(22,82,205)"},{y:294},{y:256,h:39,f:"rgb(16,100,220)"},{y:218,h:39},{y:179,h:39,f:"rgb(22,82,205)"},{y:141,h:39},{y:102,h:39,f:"rgb(38,62,168)"},{y:64},{y:0,h:27},{x:128,y:448,w:39,h:39},{y:410},{y:371,h:39},{y:333,h:39,f:"rgb(22,82,205)"},{y:294,f:"rgb(20,129,214)"},{y:256,h:39,f:"rgb(9,157,204)"},{y:218,h:39,f:"rgb(14,143,209)"},{y:179,h:39,f:"rgb(20,129,214)"},{y:141,h:39,f:"rgb(16,100,220)"},{y:102,h:39,f:"rgb(22,82,205)"},{y:64,f:"rgb(38,62,168)"},{y:26,h:39},{y:0,h:27},{x:166,y:486,h:14},{y:448,h:39},{y:410},{y:371,h:39,f:"rgb(22,82,205)"},{y:333,h:39,f:"rgb(20,129,214)"},{y:294,f:"rgb(82,186,146)"},{y:256,h:39,f:"rgb(179,189,101)"},{y:218,h:39,f:"rgb(116,189,129)"},{y:179,h:39,f:"rgb(82,186,146)"},{y:141,h:39,f:"rgb(14,143,209)"},{y:102,h:39,f:"rgb(16,100,220)"},{y:64,f:"rgb(38,62,168)"},{y:26,h:39},{x:205,y:486,w:39,h:14},{y:448,h:39},{y:410},{y:371,h:39,f:"rgb(16,100,220)"},{y:333,h:39,f:"rgb(9,157,204)"},{y:294,f:"rgb(149,190,113)"},{y:256,h:39,f:"rgb(244,198,59)"},{y:218,h:39},{y:179,h:39,f:"rgb(226,192,75)"},{y:141,h:39,f:"rgb(13,167,195)"},{y:102,h:39,f:"rgb(18,114,217)"},{y:64,f:"rgb(22,82,205)"},{y:26,h:39,f:"rgb(38,62,168)"},{x:243,y:448,w:39,h:39},{y:410},{y:371,h:39,f:"rgb(18,114,217)"},{y:333,h:39,f:"rgb(30,175,179)"},{y:294,f:"rgb(209,187,89)"},{y:256,h:39,f:"rgb(251,230,29)"},{y:218,h:39,f:"rgb(249,249,15)"},{y:179,h:39,f:"rgb(226,192,75)"},{y:141,h:39,f:"rgb(30,175,179)"},{y:102,h:39,f:"rgb(18,114,217)"},{y:64,f:"rgb(38,62,168)"},{y:26,h:39},{x:282,y:448,h:39},{y:410},{y:371,h:39,f:"rgb(18,114,217)"},{y:333,h:39,f:"rgb(14,143,209)"},{y:294,f:"rgb(149,190,113)"},{y:256,h:39,f:"rgb(226,192,75)"},{y:218,h:39,f:"rgb(244,198,59)"},{y:179,h:39,f:"rgb(149,190,113)"},{y:141,h:39,f:"rgb(9,157,204)"},{y:102,h:39,f:"rgb(18,114,217)"},{y:64,f:"rgb(38,62,168)"},{y:26,h:39},{x:320,y:448,w:39,h:39},{y:410},{y:371,h:39,f:"rgb(22,82,205)"},{y:333,h:39,f:"rgb(20,129,214)"},{y:294,f:"rgb(46,183,164)"},{y:256,h:39},{y:218,h:39,f:"rgb(82,186,146)"},{y:179,h:39,f:"rgb(9,157,204)"},{y:141,h:39,f:"rgb(20,129,214)"},{y:102,h:39,f:"rgb(16,100,220)"},{y:64,f:"rgb(38,62,168)"},{y:26,h:39},{x:358,y:448,h:39},{y:410},{y:371,h:39,f:"rgb(22,82,205)"},{y:333,h:39},{y:294,f:"rgb(16,100,220)"},{y:256,h:39,f:"rgb(20,129,214)"},{y:218,h:39,f:"rgb(14,143,209)"},{y:179,h:39,f:"rgb(18,114,217)"},{y:141,h:39,f:"rgb(22,82,205)"},{y:102,h:39,f:"rgb(38,62,168)"},{y:64},{y:26,h:39},{x:397,y:448,w:39,h:39},{y:371,h:39},{y:333,h:39},{y:294,f:"rgb(22,82,205)"},{y:256,h:39},{y:218,h:39},{y:179,h:39,f:"rgb(38,62,168)"},{y:141,h:39},{y:102,h:39},{y:64},{y:26,h:39},{x:435,y:410,h:39},{y:371,h:39},{y:333,h:39},{y:294},{y:256,h:39},{y:218,h:39},{y:179,h:39},{y:141,h:39},{y:102,h:39},{y:64},{x:474,y:256,h:39},{y:179,h:39}]},th2draw3d:{path:"M172.768,0H51.726C23.202,0,0.002,23.194,0.002,51.712v89.918c0,28.512,23.2,51.718,51.724,51.718h121.042 c28.518,0,51.724-23.2,51.724-51.718V51.712C224.486,23.194,201.286,0,172.768,0z M177.512,141.63c0,2.611-2.124,4.745-4.75,4.745 H51.726c-2.626,0-4.751-2.134-4.751-4.745V51.712c0-2.614,2.125-4.739,4.751-4.739h121.042c2.62,0,4.75,2.125,4.75,4.739 L177.512,141.63L177.512,141.63z M460.293,0H339.237c-28.521,0-51.721,23.194-51.721,51.712v89.918c0,28.512,23.2,51.718,51.721,51.718h121.045 c28.521,0,51.721-23.2,51.721-51.718V51.712C512.002,23.194,488.802,0,460.293,0z M465.03,141.63c0,2.611-2.122,4.745-4.748,4.745 H339.237c-2.614,0-4.747-2.128-4.747-4.745V51.712c0-2.614,2.133-4.739,4.747-4.739h121.045c2.626,0,4.748,2.125,4.748,4.739 V141.63z M172.768,256.149H51.726c-28.524,0-51.724,23.205-51.724,51.726v89.915c0,28.504,23.2,51.715,51.724,51.715h121.042 c28.518,0,51.724-23.199,51.724-51.715v-89.915C224.486,279.354,201.286,256.149,172.768,256.149z M177.512,397.784 c0,2.615-2.124,4.736-4.75,4.736H51.726c-2.626-0.006-4.751-2.121-4.751-4.736v-89.909c0-2.626,2.125-4.753,4.751-4.753h121.042 c2.62,0,4.75,2.116,4.75,4.753L177.512,397.784L177.512,397.784z M460.293,256.149H339.237c-28.521,0-51.721,23.199-51.721,51.726v89.915c0,28.504,23.2,51.715,51.721,51.715h121.045 c28.521,0,51.721-23.199,51.721-51.715v-89.915C512.002,279.354,488.802,256.149,460.293,256.149z M465.03,397.784 c0,2.615-2.122,4.736-4.748,4.736H339.237c-2.614,0-4.747-2.121-4.747-4.736v-89.909c0-2.626,2.121-4.753,4.747-4.753h121.045 c2.615,0,4.748,2.116,4.748,4.753V397.784z"},createSVG(k,Z,ee,ue,V){const b=!0===V||!1===V?V:x.settings.DarkMode,P="browser"===V?x.browser.touches?.2:0:b?.8:.2,T=k.append("svg:svg").attr("width",ee+"px").attr("height",ee+"px").attr("viewBox","0 0 512 512").style("overflow","hidden").style("cursor","pointer").style("fill",b?"rgba(255, 224, 160)":"steelblue").style("opacity",P).property("opacity0",P).property("opacity1",b?1:.8).on("mouseenter",function(){const z=(0,L.Lt)(this);z.style("opacity",z.property("opacity1"));const W=z.node()._mouseenter;(0,x.isFunc)(W)&&W()}).on("mouseleave",function(){const z=(0,L.Lt)(this);z.style("opacity",z.property("opacity0"));const W=z.node()._mouseleave;(0,x.isFunc)(W)&&W()});if("recs"in Z){const z={};for(let W=0;W"u"||typeof document>"u")return;let ee=null,ue=Z||300;function V(){if(ee=null,document.body.style.cursor="wait",(0,x.isFunc)(k))k();else if((0,x.isFunc)(k?.checkResize))k.checkResize();else{const b=new ve.b8(k).selectDom();if(!b.empty()){const P=b.property("mdi");(0,x.isFunc)(P?.checkMDIResize)?P.checkMDIResize():(0,ke.XR)(b.node())}}document.body.style.cursor="auto"}ue<20&&(ue=20),window.addEventListener("resize",()=>{null!==ee&&clearTimeout(ee),ee=setTimeout(V,ue)})}function J(k){return 2===k?.buttons||2===k?.button}function Y(k,Z=!0){if(!x.settings.MoveResize||k.isBatchMode()||!k.draw_g)return;if(!1===k.getPadPainter()?.isEditable()&&(Z=!1),!Z){if(k.draw_g.property("assigned_move")){const b=(0,L.$E)().subject(Object);b.on("start",null).on("drag",null).on("end",null),k.draw_g.style("cursor",null).property("assigned_move",null).call(b)}return}if(k.draw_g.property("assigned_move"))return;const ee=(0,L.$E)().subject(Object);let ue=!0,V=!1;ee.on("start",function(b){if(V=!!this.moveEnabled&&!this.moveEnabled(),V||J(b.sourceEvent))return;b.sourceEvent.preventDefault(),b.sourceEvent.stopPropagation();const P=(0,L.Wn)(b,this.draw_g.node());ue=!0,this.moveStart&&this.moveStart(P[0],P[1])}.bind(k)).on("drag",function(b){V||(b.sourceEvent.preventDefault(),b.sourceEvent.stopPropagation(),ue=!1,this.moveDrag&&this.moveDrag(b.dx,b.dy))}.bind(k)).on("end",function(b){if(V)return;b.sourceEvent.preventDefault(),b.sourceEvent.stopPropagation(),this.moveEnd&&this.moveEnd(ue);let P=null;if(ue){const T=(0,L.Wn)(b,this.draw_g.node());P={x:T[0],y:T[1],dbl:!1}}this.getPadPainter()?.selectObjectPainter(this,P)}.bind(k)),k.draw_g.style("cursor","move").property("assigned_move",!0).call(ee)}function he(k,Z,ee){if((0,x.isBatchMode)()||!k||typeof document>"u")return!0;const ue=(Z||document).getElementsByTagName("style");for(let b=0;b"u")return null;const ee=decodeURIComponent(document.cookie).split(";");k+="=";for(let ue=0;ue0){const ue=k.slice(ee+7);return(0,x.atob_func)(ue)}}return k}function p(k,Z){return C.apply(this,arguments)}function C(){return(C=(0,Te.A)(function*(k,Z){if((0,x.isFunc)(_))return _(k,v(Z));if((0,x.isNodeJs)())return Se.e(756).then(Se.t.bind(Se,9756,19)).then(ee=>(ee.writeFileSync(k,v(Z)),!0));if(typeof document<"u"){const ee=document.createElement("a");return ee.download=k,ee.href=Z,document.body.appendChild(ee),new Promise(ue=>{ee.addEventListener("click",()=>{ee.parentNode.removeChild(ee),ue(!0)}),ee.click()})}return!1})).apply(this,arguments)}function U(k,Z){const ee=(0,ot.HG)();let ue=-1;if((0,x.isStr)(k)){if(k&&"none"!==k){for(let V=1;V=50){const V=(0,L.yW)(k);ue=`TColor::GetColor(${V.r},${V.g},${V.b})`}return`exec:${Z}(${ue})`}},8868:(Yr,mt,Se)=>{"use strict";Se.r(mt),Se.d(mt,{TF1Painter:()=>De,getTF1Value:()=>He,produceTAxisLogScale:()=>Ve,proivdeEvalPar:()=>Ze});var Te=Se(4882),x=Se(8872),L=Se(2843),ve=Se(1922),ke=Se(4615),ot=Se(212),Ye=Se(6983);function Ze(F,J){F.$math=Ye;let Y=F.fTitle,he=!1,Q="[";if("gaus"===Y&&(Y="gaus(0)"),(0,x.isStr)(F.fFormula?.fFormula)&&(0===F.fFormula.fFormula.indexOf("[](double*x,double*p)")?(he=!0,Q="p[",Y=F.fFormula.fFormula.slice(21)):(Y=F.fFormula.fFormula,Q="[p"),F.fFormula.fClingParameters&&F.fFormula.fParams&&F.fFormula.fParams.forEach(me=>{const X=new RegExp(`(\\[${me.first}\\])`,"g"),B=F.fFormula.fClingParameters[me.second];Y=Y.replace(X,B<0?`(${B})`:B)})),!Y)return!J||F.fSave?.length>2;if(F.formulas?.forEach(me=>{Y=Y.replaceAll(me.fName,me.fTitle)}),Y=Y.replace(/\b(TMath::SinH)\b/g,"Math.sinh").replace(/\b(TMath::CosH)\b/g,"Math.cosh").replace(/\b(TMath::TanH)\b/g,"Math.tanh").replace(/\b(TMath::ASinH)\b/g,"Math.asinh").replace(/\b(TMath::ACosH)\b/g,"Math.acosh").replace(/\b(TMath::ATanH)\b/g,"Math.atanh").replace(/\b(TMath::ASin)\b/g,"Math.asin").replace(/\b(TMath::ACos)\b/g,"Math.acos").replace(/\b(TMath::Atan)\b/g,"Math.atan").replace(/\b(TMath::ATan2)\b/g,"Math.atan2").replace(/\b(sin|SIN|TMath::Sin)\b/g,"Math.sin").replace(/\b(cos|COS|TMath::Cos)\b/g,"Math.cos").replace(/\b(tan|TAN|TMath::Tan)\b/g,"Math.tan").replace(/\b(exp|EXP|TMath::Exp)\b/g,"Math.exp").replace(/\b(log|LOG|TMath::Log)\b/g,"Math.log").replace(/\b(log10|LOG10|TMath::Log10)\b/g,"Math.log10").replace(/\b(pow|POW|TMath::Power)\b/g,"Math.pow").replace(/\b(pi|PI)\b/g,"Math.PI").replace(/\b(abs|ABS|TMath::Abs)\b/g,"Math.abs").replace(/\bsqrt\(/g,"Math.sqrt(").replace(/\bxygaus\(/g,"this.$math.gausxy(this, x, y, ").replace(/\bgaus\(/g,"this.$math.gaus(this, x, ").replace(/\bgausn\(/g,"this.$math.gausn(this, x, ").replace(/\bexpo\(/g,"this.$math.expo(this, x, ").replace(/\blandau\(/g,"this.$math.landau(this, x, ").replace(/\blandaun\(/g,"this.$math.landaun(this, x, ").replace(/\b(TMath::|ROOT::Math::)/g,"this.$math."),Y.match(/^pol[0-9]$/)&&parseInt(Y[3])===F.fNpar-1){Y="[0]";for(let me=1;meQ)return F.fSave[Y];const X=Math.min(Y-1,Math.floor((J-he)/me));let B=he+X*me,$=B+me,g=F.fSave[X],E=F.fSave[X+1];return!Number.isFinite(g)&&X0&&($-=me,B-=me,E=g,g=F.fSave[X-1]),($*g-B*E+J*(E-g))/me}function He(F,J,Y=void 0){let he=0,Q=!1;if(!F)return 0;if(!Y&&!F.evalPar)try{Ze(F)||(Q=!0)}catch{Q=!0}if(F.evalPar&&!Q)try{return he=F.evalPar(J),he}catch{he=0}const me=F.fSave.length-3;return me<2||F.fSave[me+1]===F.fSave[me+2]?0:Re(F,J)}function Ve(F,J,Y,he){let Q,me;he>0?(me=Math.log(he),Q=Y>0?Math.log(Y):me-5):(me=-10,Q=-15),F.fNbins=J,F.fXbins=new Array(J+1);for(let X=0;X<=J;++X)F.fXbins[X]=Math.exp(Q+X/J*(me-Q));F.fXmin=Math.exp(Q),F.fXmax=Math.exp(me)}class De extends ot.N{getObjectName(){return this.$func?.fName??"func"}getClassName(){return this.$func?._typename??x.clTF1}isTF1(){return!0}getPrimaryObject(){return this.$func}updateObject(J){if(!J||this.getClassName()!==J._typename)return!1;delete J.evalPar;const Y=this.getHisto();if(this.webcanv_hist){const he=this.getPadPainter()?.findInPrimitives("Func",x.clTH1D);he&&this.updateAxes(Y,he,this.getFramePainter())}return this.$func=J,this.createTF1Histogram(J,Y),this.scanContent(),!0}redraw(J){return!this._use_saved_points&&("logx"===J||"zoom"===J)&&(this.createTF1Histogram(this.$func,this.getHisto()),this.scanContent()),super.redraw(J)}createTF1Histogram(J,Y){const he=this.getFramePainter(),Q=this.getPadPainter()?.getRootPad(!0),me=Q?.fLogx,X=he?.getGrFuncs(this.second_x,this.second_y);let B=J.fXmin,$=J.fXmax;X?.zoom_xmin!==X?.zoom_xmax&&(B=Math.min(B,X.zoom_xmin),$=Math.max($,X.zoom_xmax)),this._use_saved_points=J.fSave.length>3&&(x.settings.PreferSavedPoints||this.force_saved);const g=E=>{Y.fNcells!==E+2&&(Y.fNcells=E+2,Y.fArray=new Float32Array(Y.fNcells)),Y.fArray.fill(0),Y.fXaxis.fNbins=E,Y.fXaxis.fXbins=[]};if(delete this._fail_eval,!this._use_saved_points){const E=Math.max(J.fNpx,100);let _=!1;if(!J.evalPar)try{Ze(J)||(_=!0)}catch{_=!0}g(E),me?Ve(Y.fXaxis,E,B,$):(Y.fXaxis.fXmin=B,Y.fXaxis.fXmax=$);for(let v=0;v3&&(this._use_saved_points=!0)}if(this._use_saved_points){const E=J.fSave.length-3;let _=null;if(B=J.fSave[E+1],$=J.fSave[E+2],B===$){const v=this.getMainPainter();(0,x.isFunc)(v?.getHisto)&&(_=v?.getHisto()?.fXaxis)}if(_){g(Y.fXaxis.fNbins),Object.assign(Y.fXaxis,_);for(let v=0;v3&&this._use_saved_points&&(this.xmin=Math.min(this.xmin,Y.fSave[he-2]),this.xmax=Math.max(this.xmax,Y.fSave[he-1])),Y&&(this.xmin=Math.min(this.xmin,Y.fXmin),this.xmax=Math.max(this.xmax,Y.fXmax))}canZoomInside(J,Y,he){if(this.$func?.fSave.length>0&&this._use_saved_points&&"x"===J){const Q=this.$func.fNpx;return Math.abs(this.$func.fSave[Q+2]-this.$func.fSave[Q+1])/Q":(0,L.lg)(me,x.gStyle.fStatFormat))),B||(this.$tmp_tooltip={y:me,gry:X}),Y}processTooltipEvent(J){if(this._use_saved_points)return super.processTooltipEvent(J);let Y=this.draw_g?.selectChild(".tooltip_bin");if(!this.draw_g||!J)return Y?.remove(),null;const he={name:this.$func?.fName,title:this.$func?.fTitle,x:J.x,y:J.y,color1:this.lineatt?.color??"green",color2:this.fillatt?.getFillColorAlt("blue")??"blue",lines:this.getTF1Tooltips(J),exact:!0,menu:!0};return J.disabled?Y.remove():(Y.empty()&&(Y=this.draw_g.append("svg:circle").attr("class","tooltip_bin").style("pointer-events","none").style("fill","none").attr("r",(this.lineatt?.width??1)+4)),Y.attr("cx",J.x).attr("cy",this.$tmp_tooltip.gry??J.y).call(this.lineatt?.func)),he}fillWebObjectOptions(J){J.fcust=this._fail_eval?"func_fail":""}static draw(J,Y,he){return(0,Te.A)(function*(){(0,x.isStr)(he)||(he="");let B,Q=he.indexOf(";webcanv_hist"),me=!1,X=!1;Q>=0&&(me=!0,he=he.slice(0,Q)),Q=he.indexOf(";force_saved"),Q>=0&&(X=!0,he=he.slice(0,Q)),me&&(B=new ve.JW(J).getPadPainter()?.findInPrimitives("Func",x.clTH1D)),B||(B=(0,x.createHistogram)(x.clTH1D,100),B.fBits|=x.kNoStats),!he&&(0,ve.Nn)(J)&&(he="same");const $=new De(J,B);return $.$func=Y,$.webcanv_hist=me,$.force_saved=X,$.createTF1Histogram(Y,B),ke.mf._drawHist($,he)})()}}},8142:(Yr,mt,Se)=>{"use strict";Se.r(mt),Se.d(mt,{TH1Painter:()=>Ye});var Te=Se(4882),x=Se(8872),L=Se(8537),ve=Se(2866),ke=Se(4615),ot=Se(212);class Ye extends ot.N{draw3D(Re){this.mode3d=!0;const He=this.getFramePainter(),Ve=this.isMainPainter(),De=this.getHisto(),F=1+2*x.gStyle.fHistTopMargin;let J=Promise.resolve(!0);return"resize"===Re?Ve&&He.resize3D()&&He.render3D():(this.createHistDrawAttributes(!0),this.scanContent(!0),Ve&&((0,L.wx)(He),J=He.create3DScene(this.options.Render3D,this.options.x3dscale,this.options.y3dscale,this.options.Ortho).then(()=>{He.setAxesRanges(De.fXaxis,this.xmin,this.xmax,De.fYaxis,this.ymin,this.ymax,De.fZaxis,0,0,this),He.set3DOptions(this.options),He.drawXYZ(He.toplevel,ve.TB,{use_y_for_z:!0,zmult:F,zoom:x.settings.Zooming,ndim:1,draw:-1!==this.options.Axis,drawany:this.options.isCartesian()})})),He.mode3d&&(J=J.then(()=>{(0,L.CS)(this),He.render3D(),this.updateStatWebCanvas(),He.addKeysHandler()}))),Ve&&(J=J.then(()=>this.drawColorPalette(this.options.Zscale&&(12===this.options.Lego||14===this.options.Lego))).then(()=>this.drawHistTitle())),J.then(()=>this.updateFunctions()).then(()=>this)}static draw(Re,He,Ve){return(0,Te.A)(function*(){return ke.mf._drawHist(new Ye(Re,He),Ve)})()}}},4355:(Yr,mt,Se)=>{"use strict";Se.r(mt),Se.d(mt,{TH2Painter:()=>He});var Te=Se(4882),x=Se(8872),L=Se(2923),ve=Se(3847),ke=Se(8537),ot=Se(2866),Ye=Se(4615),Ze=Se(9997);class He extends Ze.AJ{draw3D(De){var F=this;return(0,Te.A)(function*(){F.mode3d=!0;const J=F.getFramePainter(),Y=F.isMainPainter(),he=F.getHisto();let Q=Promise.resolve(!0);if("resize"===De)Y&&J.resize3D()&&J.render3D();else{const me=F.getPadPainter().getRootPad(!0),X=me?.fLogv??me?.fLogz;let B=1;F.options.minimum!==x.kNoZoom&&F.options.maximum!==x.kNoZoom?(F.zmin=F.options.minimum,F.zmax=F.options.maximum):(F.draw_content||0!==F.gmaxbin)&&(F.zmin=X?.3*F.gminposbin:F.gminbin,F.zmax=F.gmaxbin,B=1+2*x.gStyle.fHistTopMargin),X&&F.zmin<=0&&(F.zmin=1e-5*F.zmax),F.createHistDrawAttributes(!0),Y&&((0,ke.wx)(J),Q=J.create3DScene(F.options.Render3D,F.options.x3dscale,F.options.y3dscale,F.options.Ortho).then(()=>{J.setAxesRanges(he.fXaxis,F.xmin,F.xmax,he.fYaxis,F.ymin,F.ymax,he.fZaxis,F.zmin,F.zmax,F),J.set3DOptions(F.options),J.drawXYZ(J.toplevel,ot.TB,{zmult:B,zoom:x.settings.Zooming,ndim:2,draw:-1!==F.options.Axis,drawany:F.options.isCartesian(),reverse_x:F.options.RevX,reverse_y:F.options.RevY})})),J.mode3d&&(Q=Q.then(()=>{F.draw_content?F.isTH2Poly()?function Re(Ve){const De=Ve.getHisto(),F=Ve.getFramePainter(),J=F.z_handle.getScaleMin(),Y=F.z_handle.getScaleMax(),he=De.fBins.arr.length,Q=F.grz(J);let me,X,B,$;Ve.maxbin=Ve.gmaxbin,Ve.minbin=Ve.gminbin,Ve.minposbin=Ve.gminposbin;const g=Ve.getContour(!0),E=Ve.getHistPalette();for(B=0;BF.scale_xmax||X.fXmaxF.scale_ymax||X.fYmaxY?Y:X.fContent);const _=[],v=[];let p=1,C=X.fPoly,I=0;C._typename===x.clTMultiGraph&&(p=X.fPoly.fGraphs.arr.length,C=null);for(let V=0;V0)&&(C=X.fPoly.fGraphs.arr[V]);const b=C.fX,P=C.fY;let z,W,T=C.fNpoints;for(;T>2&&b[0]===b[T-1]&&P[0]===P[T-1];)--T;for(let fe=0;fe<2;++fe){let we,Me,je,Ge,lt=F.size_x3d*F.size_z3d;const bt=fe>0?0:lt/1e6;z=[],W=null;for(let te=0;te0&&(lt=(je-we)*(je-we)+(Ge-Me)*(Ge-Me)),lt>bt&&(z.push(new L.I9Y(je,Ge)),we=je,Me=Ge);try{z.length>2&&(W=L.xJ6.triangulateShape(z,[]))}catch{W=null}if(W&&W.length>z.length-3)break}W&&W.length&&z&&(_.push(z),v.push(W),I+=2*W.length,$>Q&&(I+=2*z.length))}const U=new Float32Array(9*I);let k=0;for(let V=0;V<_.length;++V){const b=_[V],P=v[V];for(let T=0;T<2;++T)for(let z=0;zQ)for(let T=0;T0?T-1:b.length-1];U[k]=z.x,U[k+1]=z.y,U[k+2]=Q,k+=3,U[k]=W.x,U[k+1]=W.y,U[k+2]=Q,k+=3,U[k]=W.x,U[k+1]=W.y,U[k+2]=$,k+=3,U[k]=z.x,U[k+1]=z.y,U[k+2]=Q,k+=3,U[k]=W.x,U[k+1]=W.y,U[k+2]=$,k+=3,U[k]=z.x,U[k+1]=z.y,U[k+2]=$,k+=3}}const Z=new L.LoY;Z.setAttribute("position",new L.THS(U,3)),Z.computeVertexNormals();const ee=new L.V9B((0,ve.Bx)(Ve._color_palette?.getColor(me),{vertexColors:!1})),ue=new L.eaF(Z,ee);F.add3DMesh(ue),ue.painter=Ve,ue.bins_index=B,ue.draw_z0=Q,ue.draw_z1=$,ue.tip_color=65280,ue.tooltip=function(){const V=this.painter,b=V.getFramePainter(),P=V.getObject().fBins.arr[this.bins_index];return{use_itself:!0,x1:b.grx(P.fXmin),x2:b.grx(P.fXmax),y1:b.gry(P.fYmin),y2:b.gry(P.fYmax),z1:this.draw_z0,z2:this.draw_z1,bin:this.bins_index,value:P.fContent,color:this.tip_color,lines:V.getPolyBinTooltips(this.bins_index)}}}}(F):F.options.Contour?(0,ke.SF)(F,!0):F.options.Surf?(0,ke.u$)(F):F.options.Error?(0,ke.s6)(F):(0,ke.CS)(F):F.options.Axis&&F.options.Zscale&&(F.getContourLevels(!0),F.getHistPalette()),J.render3D(),F.updateStatWebCanvas(),J.addKeysHandler()}))}return Y&&(Q=Q.then(()=>F.drawColorPalette(F.options.Zscale&&(12===F.options.Lego||14===F.options.Lego||11===F.options.Surf||12===F.options.Surf))).then(()=>F.drawHistTitle())),Q.then(()=>F.updateFunctions()).then(()=>F)})()}static draw(De,F,J){return(0,Te.A)(function*(){return Ye.mf._drawHist(new He(De,F),J)})()}}},1828:(Yr,mt,Se)=>{"use strict";Se.r(mt),Se.d(mt,{TH3Painter:()=>Ve});var Te=Se(4882),x=Se(8872),L=Se(2923),ve=Se(2843),ke=Se(4483),ot=Se(2866),Ye=Se(3847),Ze=Se(4615),Re=Se(8537),He=Se(8868);class Ve extends Ze.mf{getDimension(){return 3}scanContent(F){if(F&&this.nbinsx&&this.nbinsy&&this.nbinsz)return;const J=this.getHisto();this.extractAxesProperties(3),this.gminbin=this.gmaxbin=J.getBinContent(1,1,1),this.gminposbin=null;for(let Y=0;Ythis.gmaxbin&&(this.gmaxbin=me),me>0&&(null===this.gminposbin||this.gminposbin>me)&&(this.gminposbin=me)}null===this.gminposbin&&this.gmaxbin>0&&(this.gminposbin=1e-4*this.gmaxbin),this.draw_content=0!==this.gmaxbin||0!==this.gminbin,this.transferFunc=this.findFunction(x.clTF1,"TransferFunction"),this.transferFunc&&!this.transferFunc.TestBit((0,x.BIT)(9))&&this.transferFunc.InvertBit((0,x.BIT)(9))}countStat(F,J){const Y=this.getHisto(),he=Y.fXaxis,Q=Y.fYaxis,me=Y.fZaxis,X=this.getSelectIndex("x","left"),B=this.getSelectIndex("x","right"),$=this.getSelectIndex("y","left"),g=this.getSelectIndex("y","right"),E=this.getSelectIndex("z","left"),_=this.getSelectIndex("z","right"),v=this.getFramePainter(),p={name:Y.fName,entries:0,eff_entries:0,integral:0,meanx:0,meany:0,meanz:0,rmsx:0,rmsy:0,rmsz:0,skewx:0,skewy:0,skewz:0,skewd:0,kurtx:0,kurty:0,kurtz:0,kurtd:0},C=Math.abs(Y.fTsumw)>1e-300&&!v.isAxisZoomed("x")&&!v.isAxisZoomed("y")&&!v.isAxisZoomed("z");let I,U,k,Z,ee,ue,V,b,P,T,z=0,W=0,fe=0,we=0,Me=0,je=0,Ge=0,lt=0;for((0,x.isFunc)(F)||(F=null),I=0;IB?2:1,U=0;Ug?2:1,k=0;k_?2:1,(!F||F(Z,ue,b))&&(T=Y.getBinContent(I,U,k),p.entries+=T,!C&&1===ee&&1===V&&1===P&&(z+=T,W+=T*T,fe+=Z*T,we+=ue*T,Me+=b*T,je+=Z**2*T,Ge+=ue**2*T,lt+=b**2*T));if(C&&(z=Y.fTsumw,W=Y.fTsumw2,fe=Y.fTsumwx,je=Y.fTsumwx2,we=Y.fTsumwy,Ge=Y.fTsumwy2,Me=Y.fTsumwz,lt=Y.fTsumwz2),Math.abs(z)>1e-300&&(p.meanx=fe/z,p.meany=we/z,p.meanz=Me/z,p.rmsx=Math.sqrt(Math.abs(je/z-p.meanx*p.meanx)),p.rmsy=Math.sqrt(Math.abs(Ge/z-p.meany*p.meany)),p.rmsz=Math.sqrt(Math.abs(lt/z-p.meanz*p.meanz))),p.integral=z,Y.fEntries>1&&(p.entries=Y.fEntries),p.eff_entries=W?z*z/W:Math.abs(z),J&&!this.isTH2Poly()){let bt=0,te=0,Je=0,tt=0,Fe=0,Ne=0,rt=0,St=0;for(let Bn=X;Bn0?Math.sqrt(6/p.eff_entries):0,rt*Yt!=0&&(p.kurtx=tt/(rt*Yt)-3),rt*qt!=0&&(p.kurty=Fe/(rt*qt)-3),rt*Ot!=0&&(p.kurtz=Ne/(rt*Ot)-3),p.kurtd=p.eff_entries>0?Math.sqrt(24/p.eff_entries):0}return p}fillStatistic(F,J,Y){if(this.isIgnoreStatsFill())return!1;1===J&&(J=1111);const he=J%10,Q=Math.floor(J/10)%10,me=Math.floor(J/100)%10,X=Math.floor(J/1e3)%10,B=Math.floor(J/1e6)%10,$=Math.floor(J/1e7)%10,g=Math.floor(J/1e8)%10,E=this.countStat(void 0,$>0||g>0);return F.clearPave(),he>0&&F.addText(E.name),Q>0&&F.addText("Entries = "+F.format(E.entries,"entries")),me>0&&(F.addText("Mean x = "+F.format(E.meanx)),F.addText("Mean y = "+F.format(E.meany)),F.addText("Mean z = "+F.format(E.meanz))),X>0&&(F.addText("Std Dev x = "+F.format(E.rmsx)),F.addText("Std Dev y = "+F.format(E.rmsy)),F.addText("Std Dev z = "+F.format(E.rmsz))),B>0&&F.addText("Integral = "+F.format(E.integral,"entries")),2===$?(F.addText(`Skewness x = ${F.format(E.skewx)} #pm ${F.format(E.skewd)}`),F.addText(`Skewness y = ${F.format(E.skewy)} #pm ${F.format(E.skewd)}`),F.addText(`Skewness z = ${F.format(E.skewz)} #pm ${F.format(E.skewd)}`)):$>0&&(F.addText(`Skewness x = ${F.format(E.skewx)}`),F.addText(`Skewness y = ${F.format(E.skewy)}`),F.addText(`Skewness z = ${F.format(E.skewz)}`)),2===g?(F.addText(`Kurtosis x = ${F.format(E.kurtx)} #pm ${F.format(E.kurtd)}`),F.addText(`Kurtosis y = ${F.format(E.kurty)} #pm ${F.format(E.kurtd)}`),F.addText(`Kurtosis z = ${F.format(E.kurtz)} #pm ${F.format(E.kurtd)}`)):g>0&&(F.addText(`Kurtosis x = ${F.format(E.kurtx)}`),F.addText(`Kurtosis y = ${F.format(E.kurty)}`),F.addText(`Kurtosis z = ${F.format(E.kurtz)}`)),Y&&F.fillFunctionStat(this.findFunction(x.clTF3),Y,3),!0}getBinTooltips(F,J,Y){const he=[],Q=this.getHisto();he.push(this.getObjectHint(),`x = ${this.getAxisBinTip("x",Q.fXaxis,F)} xbin=${F+1}`,`y = ${this.getAxisBinTip("y",Q.fYaxis,J)} ybin=${J+1}`,`z = ${this.getAxisBinTip("z",Q.fZaxis,Y)} zbin=${Y+1}`);const me=Q.getBinContent(F+1,J+1,Y+1);if(me===Math.round(me)?he.push(`entries = ${me}`):he.push(`entries = ${(0,ve.lg)(me,x.gStyle.fStatFormat)}`),this.matchObjectType(x.clTProfile3D)){const X=Q.getBinError(Q.getBin(F+1,J+1,Y+1));he.push("error = "+(X===Math.round(X)?X.toString():(0,ve.lg)(X,x.gStyle.fPaintTextFormat)))}return he}draw3DScatter(){const F=this.getObject(),J=this.getFramePainter(),Y=this.getSelectIndex("x","left",.5),he=this.getSelectIndex("x","right",0),Q=this.getSelectIndex("y","left",.5),me=this.getSelectIndex("y","right",0),X=this.getSelectIndex("z","left",.5),B=this.getSelectIndex("z","right",0);let $,g,E,_;if(he<=Y||me<=Q||B<=X)return Promise.resolve(!0);const v=this.gmaxbin>1e3?1e3/this.gmaxbin:1,p=Math.max(0,this.gminbin);let C=0,I=0;for($=Y;$(J.webgl?1e5:3e4))return!1;const U=new Ye._l(C,J.webgl,J.size_x3d/200),k=new Int32Array(C),Z=new ve.YF(I);let ee=0;for($=Y;$(J.add3DMesh(ue),ue.bins=k,ue.painter=this,ue.tip_color=3===F.fMarkerColor?16711680:65280,ue.tooltip=function(V){const b=Math.floor(V.index/this.nvertex);if(b<0||b>=this.bins.length)return null;const P=this.painter,T=P.getHisto(),z=P.getFramePainter(),W=P.get3DToolTip(this.bins[b]);return W.x1=z.grx(T.fXaxis.GetBinLowEdge(W.ix)),W.x2=z.grx(T.fXaxis.GetBinLowEdge(W.ix+1)),W.y1=z.gry(T.fYaxis.GetBinLowEdge(W.iy)),W.y2=z.gry(T.fYaxis.GetBinLowEdge(W.iy+1)),W.z1=z.grz(T.fZaxis.GetBinLowEdge(W.iz)),W.z2=z.grz(T.fZaxis.GetBinLowEdge(W.iz+1)),W.color=this.tip_color,W.opacity=.3,W},!0))}draw3DBins(){var F=this;return(0,Te.A)(function*(){if(!F.draw_content)return!1;let J=F.options.Box?F.options.BoxStyle:0;if(!J&&F.options.Scat){const yn=F.draw3DScatter();if(!1!==yn)return yn;J=12}else!J&&!F.options.GLBox&&!F.options.GLColor&&!F.options.Lego&&(J=12);const Y=F.getHisto(),he=F.getFramePainter();let p,C,Q=0,me=!1,X=!1,B=!1,$=1,g=-1,E=F.getPadPainter()?.getRootPad()?.fLogv,_=!0,v=0,I=F.getColor(Y.fFillColor),U=.5;if(!J&&F.options.Lego&&(J=1===F.options.Lego?10:F.options.Lego),11===F.options.GLBox||12===F.options.GLBox){U=.4,me=!0,12===F.options.GLBox&&(B=!0);const yn=he.webgl?new L.Gu$(.5,16,12):new L.Gu$(.5,8,6);yn.applyMatrix4((new L.kn4).makeRotationX(Math.PI/2)),yn.computeVertexNormals();const Sn=yn.getIndex().array,ii=yn.getAttribute("position").array,ai=yn.getAttribute("normal").array;Q=3*Sn.length,p=new Float32Array(Q),C=new Float32Array(Q);for(let zi=0;ziF.gminposbin?(v=Math.log(F.gminposbin)-.1,_=1/(Math.log(F.gmaxbin)-v)):(E=0,_=1):_&&(_=F.gminbin||F.gmaxbin?1/Math.max(Math.abs(F.gminbin),Math.abs(F.gmaxbin)):1);const k=yn=>{if(g>=0&&yn{const Sn=3*(0,He.getTF1Value)(Ne,tt,!1);return!Sn||Sn<0||Sn>=1?yn:yn+1e4*Math.round(200*Sn)};for(lt=Z;lt65520?2:1),pt[Sn]=new Float32Array(Ge*Q),st[Sn]=new Float32Array(Ge*Q),vt[Sn]=new Int32Array(Ge),1===Yt[Sn]&&(qt[Sn]=new Uint16Array(Ge*Ye.DJ.MeshSegments.length)),2===Yt[Sn]&&(Ot[Sn]=new Float32Array(Ge*Ye.DJ.Segments.length*3))}let Bn,Mn,bn,Dn,$n,Cn;for(lt=Z;lt1e4&&(ai=Math.floor(yn/1e4)/200));const zi=me?new L.G_z({color:I,opacity:ai,transparent:ai<1,vertexColors:!1}):new L.V9B({color:I,opacity:ai,transparent:ai<1,vertexColors:!1}),ti=new L.eaF(ii,zi);if(ti.bins=vt[Sn],ti.bins_faces=Q/9,ti.painter=F,ti.scalex=U*T,ti.scaley=U*z,ti.scalez=U*W,ti.tip_color=3===Y.fFillColor?16711680:65280,ti.get_weight=k,ti.tooltip=function(Lr){const ss=Math.floor(Lr.faceIndex/this.bins_faces);if(ss<0||ss>=this.bins.length)return null;const Bs=this.painter,yo=Bs.getHisto(),xt=Bs.getFramePainter(),K=Bs.get3DToolTip(this.bins[ss]),ge=xt.grx(yo.fXaxis.GetBinCoord(K.ix-.5)),ye=xt.gry(yo.fYaxis.GetBinCoord(K.iy-.5)),Pe=xt.grz(yo.fZaxis.GetBinCoord(K.iz-.5)),At=this.get_weight(K.value);return K.x1=ge-this.scalex*At,K.x2=ge+this.scalex*At,K.y1=ye-this.scaley*At,K.y2=ye+this.scaley*At,K.z1=Pe-this.scalez*At,K.z2=Pe+this.scalez*At,K.color=this.tip_color,K},he.add3DMesh(ti),Yt[Sn]>0){const Lr=new L.mrM({color:F.getColor(Y.fLineColor)}),ss=1===Yt[Sn]?(0,Ye.Fc)(pt[Sn],Lr,qt[Sn]):(0,Ye.Fc)(Ot[Sn],Lr);he.add3DMesh(ss)}}return!0})()}redraw(F){var J=this;return(0,Te.A)(function*(){const Y=J.getFramePainter(),he=J.getHisto();let Q=Promise.resolve(!0);return"resize"===F?Y.resize3D()&&Y.render3D():((0,Re.wx)(Y),Q=Y.create3DScene(J.options.Render3D,J.options.x3dscale,J.options.y3dscale,J.options.Ortho).then(()=>(Y.setAxesRanges(he.fXaxis,J.xmin,J.xmax,he.fYaxis,J.ymin,J.ymax,he.fZaxis,J.zmin,J.zmax,J),Y.set3DOptions(J.options),Y.drawXYZ(Y.toplevel,ot.TB,{zoom:x.settings.Zooming,ndim:3,draw:-1!==J.options.Axis,drawany:J.options.isCartesian()}),J.draw3DBins())).then(()=>{Y.render3D(),J.updateStatWebCanvas(),Y.addKeysHandler()})),J.isMainPainter()&&(Q=Q.then(()=>J.drawColorPalette(J.options.Zscale&&(12===J._box_option||13===J._box_option))).then(()=>J.drawHistTitle())),Q.then(()=>J.updateFunctions()).then(()=>J)})()}fillToolbar(){const F=this.getPadPainter();F&&(F.addPadButton("auto_zoom","Unzoom all axes","ToggleZoom","Ctrl *"),this.draw_content&&F.addPadButton("statbox","Toggle stat box","ToggleStatBox"),F.showPadButtons())}canZoomInside(F,J,Y){let he=this.getHisto();return he&&(he=he[`f${F.toUpperCase()}axis`]),!he||he.FindBin(Y,.5)-he.FindBin(J,0)>1}autoZoom(){const F=this.getSelectIndex("x","left"),J=this.getSelectIndex("x","right"),Y=this.getSelectIndex("y","left"),he=this.getSelectIndex("y","right"),Q=this.getSelectIndex("z","left"),me=this.getSelectIndex("z","right"),X=this.getObject();let B,$,g;if(F===J||Y===he||Q===me)return;let E=X.getBinContent(F+1,Y+1,Q+1);for(B=F;B0)return;let _=J,v=F,p=he,C=Y,I=me,U=Q;for(B=F;BE&&(B<_&&(_=B),B>=v&&(v=B+1),$=C&&(C=$+1),g=U&&(U=g+1));let k,Z,ee,ue,V,b,P=!1;return _===v-1&&_>F+1&&vY+1&&CQ+1&&UF||vY||CQ||U{if(0===Y.indexOf(x.kInspect))return this.showInspector(Y);this.decodeOptions(Y),this.interactiveRedraw(!0,"drawopt")})}static draw(F,J,Y){return(0,Te.A)(function*(){const he=new Ve(F,J);return he.mode3d=!0,(0,ke.ensureTCanvas)(he,"3d").then(()=>(he.setAsMainPainter(),he.decodeOptions(Y),he.checkPadRange(),he.scanContent(),he.createStat(),he.redraw())).then(()=>he.drawFunctions()).then(()=>(he.fillToolbar(),he))})()}}},5891:(Yr,mt,Se)=>{"use strict";Se.r(mt),Se.d(mt,{TPavePainter:()=>F});var Te=Se(4882),x=Se(8872),L=Se(8362),ve=Se(6983),ke=Se(2843),ot=Se(1922),Ye=Se(7900),Ze=Se(2866),Re=Se(5638),He=Se(4483);const Ve=(0,x.BIT)(17);class F extends ot.JW{constructor(Y,he){super(Y,he),this.Enabled=!0,this.UseContextMenu=!0}autoPlaceLegend(Y,he,Q){var me=this;return(0,Te.A)(function*(){let B=me.getFrameSvg().selectChild(".main_layer").node().outerHTML;B=(0,ke.NM)(B),B='{if(!v)return!1;let p=100,C=100;const U=v.getContext("2d").getImageData(0,0,v.width,v.height).data,k=Math.floor(v.width/p),Z=Math.floor(v.height/C),ee=new Array(p*C);U.length!==v.width*v.height*4&&(console.log(`Image size missmatch in TLegend autoplace ${U.length} expected ${v.width*v.height*4}`),p=C=0);for(let z=0;z{for(let fe=z;fe=0;--W)if(T(z,W))return Y.fX1NDC=$+z/p*(1-$-g),Y.fX2NDC=Y.fX1NDC+ue*(1-$-g),Y.fY2NDC=1-E-W/C*(1-_-E),Y.fY1NDC=Y.fY2NDC-V*(1-_-E),!0}).then(v=>{if(v||Q)return v;Y.fX1NDC=Math.max($??0,Y.fX2NDC-.3),Y.fX2NDC=Math.min(Y.fX1NDC+.3,1-g);const p=Math.max(Y.fPrimitives?.05*Y.fPrimitives.arr.length:0,.2);return Y.fY2NDC=Math.min(1-E,Y.fY1NDC+p),Y.fY1NDC=Math.max(Y.fY2NDC-p,_),!0})})()}drawPave(Y){var he=this;return(0,Te.A)(function*(){if(!he.Enabled)return he.removeG(),he;const Q=he.getObject(),me=Q.fOption.toUpperCase(),X=he.getFramePainter(),B=he.getPadPainter(),$=B.getRootPad(!0);let g,E,_;0===Q.fInit&&(he.stored=Object.assign({},Q),Q.fInit=1,Q._typename!==x.clTPaletteAxis||Q.fX1||Q.fX2||Q.fY1||Q.fY2?me.indexOf("NDC")>=0?(Q.fX1NDC=Q.fX1,Q.fX2NDC=Q.fX2,Q.fY1NDC=Q.fY1,Q.fY2NDC=Q.fY2):$&&0===$.fX1&&1===$.fX2&&0===$.fY1&&1===$.fY2&&(0,x.isStr)(Y)&&Y.indexOf("postpone")>=0?(Q.fInit=0,Q.fX1NDC=Q.fY1NDC=.99,Q.fX2NDC=Q.fY2NDC=1):$?($.fLogx&&(Q.fX1>0&&(Q.fX1=Math.log10(Q.fX1)),Q.fX2>0&&(Q.fX2=Math.log10(Q.fX2))),$.fLogy&&(Q.fY1>0&&(Q.fY1=Math.log10(Q.fY1)),Q.fY2>0&&(Q.fY2=Math.log10(Q.fY2))),Q.fX1NDC=(Q.fX1-$.fX1)/($.fX2-$.fX1),Q.fY1NDC=(Q.fY1-$.fY1)/($.fY2-$.fY1),Q.fX2NDC=(Q.fX2-$.fX1)/($.fX2-$.fX1),Q.fY2NDC=(Q.fY2-$.fY1)/($.fY2-$.fY1)):(Q.fX1NDC=Q.fY1NDC=.1,Q.fX2NDC=Q.fY2NDC=.9):X?(Q.fX1NDC=X.fX2NDC+.01,Q.fX2NDC=Math.min(.96,X.fX2NDC+.06),Q.fY1NDC=X.fY1NDC,Q.fY2NDC=X.fY2NDC):(Q.fX2NDC=.8,Q.fX1NDC=.9,Q.fY1NDC=.1,Q.fY2NDC=.9));let v=Promise.resolve(!0);return Q._typename===x.clTLegend&&(he.AutoPlace||Q.fX1NDC===Q.fX2NDC&&Q.fY1NDC===Q.fY2NDC)&&(v=he.autoPlaceLegend(Q,$).then(p=>(delete he.AutoPlace,p||(Q.fX1NDC=X.fX2NDC-.2,Q.fX2NDC=X.fX2NDC,Q.fY1NDC=X.fY2NDC-.1,Q.fY2NDC=X.fY2NDC),p))),v.then(()=>{if(he.isStats()&&!he.NoFillStats&&!B._fast_drawing){const Z=Q.$main_painter||he.getMainPainter();if((0,x.isFunc)(Z?.fillStatistic)){let ee=parseInt(Q.fOptStat),ue=parseInt(Q.fOptFit);if((!Number.isInteger(ee)||Q.TestBit(Ve))&&(ee=x.gStyle.fOptStat),(!Number.isInteger(ue)||Q.TestBit(Ve))&&(ue=x.gStyle.fOptFit),Z.fillStatistic(he,ee,ue)){let V=Q.fLines?.arr.length||0;if(V>0&&!he.moved_interactive&&function De(J){const Y=(he,Q)=>Math.abs(he-Q)<.001;return Y(J.fX1NDC,x.gStyle.fStatX-x.gStyle.fStatW)&&Y(J.fY1NDC,x.gStyle.fStatY-x.gStyle.fStatH)&&Y(J.fX2NDC,x.gStyle.fStatX)&&Y(J.fY2NDC,x.gStyle.fStatY)}(Q)){const b=he._has_fit&&he._fit_dim>1?x.gStyle.fStatH:0;b&&(V-=he._fit_cnt);let P=x.gStyle.fStatH,T=x.gStyle.fStatW;he._has_fit&&(T=1.8*x.gStyle.fStatW),x.gStyle.fStatFontSize<=0||x.gStyle.fStatFont%10==3?P=.25*V*x.gStyle.fStatH:x.gStyle.fStatFontSize<1&&(P=V*x.gStyle.fStatFontSize),Q.fX1NDC=Math.max(.02,Q.fX2NDC-T),Q.fY1NDC=Math.max(.02,Q.fY2NDC-P-b)}}}}const p=B.getPadRect(),C=Q.fBorderSize,I=me.indexOf("NB")>=0,U=me.indexOf("L")>=0?-1:me.indexOf("R")>=0?1:0,k=me.indexOf("T")>=0?-1:me.indexOf("B")>=0?1:0;if(he.createG(),he._pave_x=Math.round(Q.fX1NDC*p.width),he._pave_y=Math.round((1-Q.fY2NDC)*p.height),E=Math.round((Q.fX2NDC-Q.fX1NDC)*p.width),_=Math.round((Q.fY2NDC-Q.fY1NDC)*p.height),(0,ke.bk)(he.draw_g,he._pave_x,he._pave_y),he.createAttLine({attr:Q,width:C>0?Q.fLineWidth:0}),he.createAttFill({attr:Q}),Q._typename===x.clTDiamond){const Z=Math.round(_/2),ee=Math.round(E/2),ue=`l${ee},${-Z}l${ee},${Z}l${-ee},${Z}z`;C>1&&Q.fShadowColor>0&&(U||k)&&!he.fillatt.empty()&&!I&&he.draw_g.append("svg:path").attr("d","M0,"+(Z+C)+ue).style("fill",he.getColor(Q.fShadowColor)).style("stroke",he.getColor(Q.fShadowColor)).style("stroke-width","1px"),g=he.draw_g.append("svg:path").attr("d","M0,"+Z+ue).call(he.fillatt.func).call(he.lineatt.func);const V=he.draw_g.append("svg:g");return(0,ke.bk)(V,Math.round(E/4),Math.round(_/4)),he.drawPaveText(ee,Z,Y,V)}if(C>1&&Q.fShadowColor>0&&!Q.fNpaves&&(U||k)&&!I){const Z=he.getColor(Q.fShadowColor);let ee="";ee=U<0&&k<0?`M0,0v${_-C}h${-C}v${-_}h${E}v${C}z`:U<0&&k>0?`M0,${_}v${C-_}h${-C}v${_}h${E}v${-C}z`:U>0&&k<0?`M${C},0v${-C}h${E}v${_}h${-C}v${C-_}z`:`M${E},${C}h${C}v${_}h${-E}v${-C}h${E-C}z`,he.draw_g.append("svg:path").attr("d",ee).style("fill",Z).style("stroke",Z).style("stroke-width","1px")}if(Q.fNpaves)for(let Z=Q.fNpaves-1;Z>0;--Z)he.draw_g.append("svg:path").attr("d",`M${4*U*Z},${4*k*Z}h${E}v${_}h${-E}z`).call(he.fillatt.func).call(he.lineatt.func);return(!he.isBatchMode()||!he.fillatt.empty()||!he.lineatt.empty()&&!I)&&(g=he.draw_g.append("svg:path").attr("d",`M0,0H${E}V${_}H0Z`).call(he.fillatt.func),I||g.call(he.lineatt.func)),!(0,x.isFunc)(he.paveDrawFunc)||he.paveDrawFunc(E,_,Y)}).then(()=>(he.isBatchMode()||Q._typename===x.clTPave||(g&&g.style("pointer-events","visibleFill").on("mouseenter",()=>he.showObjectStatus()),(0,Re.WJ)(he,{obj:Q,x:he._pave_x,y:he._pave_y,width:E,height:_,minwidth:10,minheight:20,canselect:!0,redraw:()=>{he.moved_interactive=!0,he.interactiveRedraw(!1,"pave_moved"),he.drawPave()},ctxmenu:x.browser.touches&&x.settings.ContextMenu&&he.UseContextMenu}),he.UseContextMenu&&x.settings.ContextMenu&&he.draw_g.on("contextmenu",p=>he.paveContextMenu(p)),Q._typename===x.clTPaletteAxis&&he.interactivePaletteAxis(E,_)),he))})()}fillWebObjectOptions(Y){const he=this.getObject();return he?.fInit&&(Y.fcust="pave",Y.fopt=[he.fX1NDC,he.fY1NDC,he.fX2NDC,he.fY2NDC],"stats"===he.fName&&this.isStats()&&he.fLines.arr.forEach(Q=>{(Q._typename===x.clTText||Q._typename===x.clTLatex)&&(Y.fcust+=`;;${Q.fTitle}`)})),Y}drawPaveLabel(Y,he){var Q=this;return(0,Te.A)(function*(){const me=Q.getObject();return me.fLabel&&me.fLabel.trim()?(Q.createAttText({attr:me}),Q.startTextDrawing(Q.textatt.font,he/1.2),Q.drawText(Q.textatt.createArg({width:Y,height:he,text:me.fLabel,norotate:!0})),Q.finishTextDrawing()):Q})()}drawPaveStats(Y,he){const Q=this.getObject(),me=[],X=[];let B=0,$=0,g=0;for(let I=0;I0&&(g=Math.max(g,U.length)),0===I||U.indexOf("|")<0)continue;0===B&&(B=I);const k=U.split("|");k.length>$&&($=k.length)}const _=he/E,v=Q.fMargin*Y;let p=!1;if(this.createAttText({attr:Q}),this.startTextDrawing(this.textatt.font,he/(1.2*E)),1===E)this.drawText(this.textatt.createArg({width:Y,height:he,text:me[0],latex:1,norotate:!0}));else for(let I=0;I1?this.getColor(X[I]):this.textatt.color;if(B&&I>=B){const Z=me[I].split("|");for(let ee=0;ee0&&p&&(C+=`M0,${Math.round(_)}h${Y}`),B>0&&$>1){for(let I=B;I1)}drawPaveText(Y,he,Q,me){const X=this.getObject(),B=X.fLines?.arr||[],$=B.length,g=this.getPadPainter(),E=g.getPadHeight(),_=X.fLabel.length>0,v=[],p=X.fMargin*Y,C=he/($||1);let I=0;this.createAttText({attr:X}),1===$&&this.textatt.size>0&&(I=Math.max(3,this.textatt.getSize(E))),me||(me=this.draw_g);const U=1===$&&g._fast_drawing;let k=0;for(let Z=0;Z<$;++Z){const ee=B[Z],ue=Z*C;switch(ee._typename){case x.clTText:case x.clTLatex:{if(!ee.fTitle||!ee.fTitle.trim())continue;let V=ee.fTextColor?this.getColor(ee.fTextColor):"";if(V||(V=this.textatt.color),ee.fX||ee.fY||ee.fTextSize){const b=ee.fTextAlign||this.textatt.align,P=Math.floor(b/10),T=b%10,z=ee.fX?ee.fX*Y:1===P?p:2===P?Y/2:Y-p,W=ee.fY?(1-ee.fY)*he:ue+(2===T?C/2:3===T?C:0),fe=me.append("svg:g");this.startTextDrawing(this.textatt.font,this.textatt.getAltSize(ee.fTextSize,E),fe),this.drawText({align:b,x:z,y:W,text:ee.fTitle,color:V,latex:ee._typename===x.clTText?0:1,draw_g:fe,fast:U}),v.push(this.finishTextDrawing(fe))}else 0==k++&&this.startTextDrawing(this.textatt.font,.85*he/$,me,I),this.drawText({x:p,y:ue,width:Y-2*p,height:C,align:ee.fTextAlign||this.textatt.align,draw_g:me,latex:ee._typename===x.clTText?0:1,text:ee.fTitle,color:V,fast:U});break}case x.clTLine:{const V=ee.fX1?Math.round(ee.fX1*Y):0,b=ee.fX2?Math.round(ee.fX2*Y):Y,P=ee.fY1?Math.round((1-ee.fY1)*he):Math.round(ue+.5*C),T=ee.fY2?Math.round((1-ee.fY2)*he):Math.round(ue+.5*C),z=this.createAttLine(ee);me.append("svg:path").attr("d",`M${V},${P}L${b},${T}`).call(z.func);break}case x.clTBox:{const V=ee.fX1?Math.round(ee.fX1*Y):0,b=ee.fX2?Math.round(ee.fX2*Y):Y,P=ee.fY1?Math.round((1-ee.fY1)*he):Math.round(ue),T=ee.fY2?Math.round((1-ee.fY2)*he):Math.round(ue+C),z=this.createAttFill(ee);me.append("svg:path").attr("d",`M${V},${P}H${b}V${T}H${V}Z`).call(z.func);break}}}if(k>0&&v.push(this.finishTextDrawing(me,k>1)),_){const Z=Math.round(.25*Y),ee=Math.round(.02*-he),ue=Math.round(.5*Y),V=Math.round(.04*he),b=me.append("svg:g");b.append("svg:path").attr("d",`M${Z},${ee}h${ue}v${V}h${-ue}z`).call(this.fillatt.func).call(this.lineatt.func),this.startTextDrawing(this.textatt.font,V/1.5,b),this.drawText({align:22,x:Z,y:ee,width:ue,height:V,text:X.fLabel,color:this.textatt.color,draw_g:b}),v.push(this.finishTextDrawing(b))}return Promise.all(v).then(()=>this)}format(Y,he){he||(he="stat");const Q=this.getObject();switch(he){case"stat":he=Q.fStatFormat||x.gStyle.fStatFormat;break;case"fit":he=Q.fFitFormat||x.gStyle.fFitFormat;break;case"entries":if(Math.abs(Y)<1e9&&Math.round(Y)===Y)return Y.toFixed(0);he="14.7g";break;case"last":he=this.lastformat}const me=(0,ke.lg)(Y,he||"6.4g",!0);return this.lastformat=me[1],me[0]}drawLegend(Y,he){const Q=this.getObject(),me=Q.fPrimitives.arr.length;let X=Q.fNColumns,B=me,$=!1,g=!1;if(X<2)X=1;else for(;(B-1)*X>=me;)B--;const E=V=>!(V.fObject||V.fOption||V.fLabel&&" "!==V.fLabel);for(let V=0;V1){const V=new Array(X).fill(1);for(let P=0;P1&&(Ot=Math.max(Ot,8*bt.fMarkerSize*.66)));const Bn=3===qt?.03:0,Mn=Math.round(Ge+C*(.1+Bn)),bn=Math.round(Ge+C*(.9-Bn)),Dn=Math.round(.66*Ot);Ot=Math.round(Ot);let $n=`M${je},${Mn}V${bn}`;switch(qt){case 1:$n+=`M${je-Ot},${Mn}h${2*Ot}M${je-Ot},${bn}h${2*Ot}`;break;case 2:$n+=`M${je-Ot},${Mn+Dn}v${-Dn}h${2*Ot}v${Dn}M${je-Ot},${bn-Dn}v${Dn}h${2*Ot}v${-Dn}`;break;case 3:$n+=`M${je-Ot},${Mn}h${2*Ot}l${-Ot},${-Dn}zM${je-Ot},${bn}h${2*Ot}l${-Ot},${Dn}z`;break;case 4:$n+=`M${je-Ot},${Mn+Dn}l${Ot},${-Dn}l${Ot},${Dn}M${je-Ot},${bn-Dn}l${Ot},${Dn}l${Ot},${-Dn}`}this.draw_g.append("svg:path").attr("d",$n).call(Yt.func).style("fill",qt>1?"none":null)}}if(Fe){const Yt=pt?.markeratt?.used?pt.markeratt:this.createAttMarker(rt);Yt.empty()||(st=!0,this.draw_g.append("svg:path").attr("d",Yt.create((fe+Me)/2,lt)).call(Yt.func))}!st&&pt?.lineatt&&!pt.lineatt.empty()&&this.draw_g.append("svg:path").attr("d",`M${fe+v},${Math.round(Ge+.1*C)}v${Math.round(.8*C)}h${Me-2*v-fe}v${-Math.round(.8*C)}z`).style("fill","none").call(pt.lineatt.func);let vt=Me;if((0,x.isStr)(T)&&"h"!==T.toLowerCase()?ee=!0:ee||(vt=fe+v),P.fLabel){let Yt=this.draw_g;const qt=this.createAttText({attr:P,std:!1,attr_alt:Q});if(g){Yt=this.draw_g.append("svg:g");const Ot=qt.getSize(U.getPadHeight());this.startTextDrawing(qt.font,Ot,Yt,Z)}this.drawText({draw_g:Yt,align:qt.align,x:vt,y:Ge,scale:g&&!P.fTextSize||!Q.fTextSize,width:fe+we-vt-v,height:C,text:P.fLabel,color:qt.color}),g&&I.push(this.finishTextDrawing(Yt))}}return $&&!g&&I.push(this.finishTextDrawing()),Promise.all(I)}drawPaletteAxis(Y,he,Q){const me=this.getObject(),X=me.fAxis,B=(0,x.isStr)(Q)&&Q.indexOf("can_move")>=0,$=(0,x.isStr)(Q)&&Q.indexOf("postpone")>=0,g=(0,x.isStr)(Q)&&Q.indexOf("cjust")>=0,E=this.getPadPainter(),_=E.getPadWidth(),v=E.getPadHeight(),p=E.getRootPad(!0),C=me.$main_painter||this.getMainPainter(),I=this.getFramePainter(),U=C.fContour,k=U?.getLevels(),Z=(0,x.isFunc)(C.getDimension)&&3===C.getDimension(),ee=(Z?p?.fLogv:p?.fLogz)??0,ue=C._color_palette,V=C.getObject()?.fZaxis,b=p?.fTickz?.35:.7;let z,W,P=0,T=100,fe="",we=0;if(this._palette_vertical=me.fX2NDC-me.fX1NDC.5,this.z_handle.configureAxis("zaxis",z,W,P,T,!1,[0,Y],{log:ee,fixed_ticks:g?k:null,maxTickSize:Math.round(he*b),swap_side:this._swap_side}),fe=this._swap_side?null:`translate(0,${he})`,p?.fTickz&&(we=this._swap_side?he:-he)),U&&ue&&!$)for(let Me=0;Me=he||je<0)continue;je+=1,je>he?(je=he,lt=.001*k[Me]+.999*k[Me+1]):Ge<0&&(Ge=0,lt=.999*k[Me]+.001*k[Me+1]),bt=`M0,${Ge}H${Y}V${je}H0Z`}else{if(je>=Y||Ge<0)continue;Ge+=1,Ge>Y?(Ge=Y,lt=.999*k[Me]+.001*k[Me+1]):je<0&&(je=0,lt=.001*k[Me]+.999*k[Me+1]),bt=`M${je},0V${he}H${Ge}V0Z`}const te=U.getPaletteColor(ue,lt);if(!te)continue;const Je=this.draw_g.append("svg:path").attr("d",bt).style("fill",te).property("fill0",te).property("fill1",(0,L.Qh)(te).darker(.5).formatHex());this.isTooltipAllowed()&&Je.on("mouseover",function(){(0,L.Lt)(this).transition().duration(100).style("fill",(0,L.Lt)(this).property("fill1"))}).on("mouseout",function(){(0,L.Lt)(this).transition().duration(100).style("fill",(0,L.Lt)(this).property("fill0"))}).append("svg:title").text(k[Me].toFixed(2)+" - "+k[Me+1].toFixed(2)),x.settings.Zooming&&Je.on("dblclick",()=>this.getFramePainter().unzoom("z"))}else this.draw_g.append("svg:path").attr("d",`M0,0H${Y}V${he}H0Z`).style("fill","white");return this.z_handle.drawAxis(this.draw_g,Y,he,fe,we).then(()=>{if(B&&"getBoundingClientRect"in this.draw_g.node()){const Me=this.draw_g.node().getBoundingClientRect();if(this._palette_vertical){const je=this._pave_x+parseInt(Me.width)-Math.round(.995*_)+3;je>0&&(this._pave_x-=je,(0,ke.bk)(this.draw_g,this._pave_x,this._pave_y),me.fX1NDC-=je/_,me.fX2NDC-=je/_)}else{const je=Math.round((1.05-x.gStyle.fTitleY)*v)-Me.y;je>0&&(this._pave_y+=je,(0,ke.bk)(this.draw_g,this._pave_x,this._pave_y),me.fY1NDC-=je/v,me.fY2NDC-=je/v)}}return this})}interactivePaletteAxis(Y,he){let Q=!1,me=0,X=0,B=null;const $=_=>{if(!Q)return;_.preventDefault();const v=(0,L.Wn)(_,this.draw_g.node());this._palette_vertical?(X=Math.min(Math.max(v[1],0),he),B.attr("y",Math.min(me,X)).attr("height",Math.abs(X-me))):(X=Math.min(Math.max(v[0],0),Y),B.attr("x",Math.min(me,X)).attr("width",Math.abs(X-me)))},g=_=>{if(!Q)return;_.preventDefault(),(0,L.Lt)(window).on("mousemove.colzoomRect",null).on("mouseup.colzoomRect",null),B.remove(),B=null,Q=!1;const v=this.z_handle.gr,p=v.invert(me),C=v.invert(X);this.getFramePainter().zoom("z",Math.min(p,C),Math.max(p,C))};x.settings.Zooming&&this.draw_g.selectAll(".axis_zoom").on("mousedown",_=>{if(Q)return;Q=!0,_.preventDefault(),_.stopPropagation();const v=(0,L.Wn)(_,this.draw_g.node());B=this.draw_g.append("svg:rect").attr("id","colzoomRect").call(ke.Ru,!0),this._palette_vertical?(me=X=v[1],B.attr("x","0").attr("width",Y).attr("y",me).attr("height",1)):(me=X=v[0],B.attr("x",me).attr("width",1).attr("y",0).attr("height",he)),(0,L.Lt)(window).on("mousemove.colzoomRect",$).on("mouseup.colzoomRect",g,!0)}).on("dblclick",()=>this.getFramePainter().unzoom("z")),x.settings.ZoomWheel&&this.draw_g.on("wheel",_=>{const v=(0,L.Wn)(_,this.draw_g.node()),C=this.z_handle.analyzeWheelEvent(_,this._palette_vertical?1-v[1]/he:v[0]/Y);C?.changed&&this.getFramePainter().zoom("z",C.min,C.max)})}fillContextMenuItems(Y){const he=this.getObject();if(this.isStats()){Y.add("Default position",()=>{he.fX2NDC=x.gStyle.fStatX,he.fX1NDC=he.fX2NDC-x.gStyle.fStatW,he.fY2NDC=x.gStyle.fStatY,he.fY1NDC=he.fY2NDC-x.gStyle.fStatH,he.fInit=1,this.interactiveRedraw(!0,"pave_moved")}),Y.add("Save to gStyle",()=>{x.gStyle.fStatX=he.fX2NDC,x.gStyle.fStatW=he.fX2NDC-he.fX1NDC,x.gStyle.fStatY=he.fY2NDC,x.gStyle.fStatH=he.fY2NDC-he.fY1NDC,this.fillatt?.saveToStyle("fStatColor","fStatStyle"),x.gStyle.fStatTextColor=he.fTextColor,x.gStyle.fStatFontSize=he.fTextSize,x.gStyle.fStatFont=he.fTextFont},"Store stats position and graphical attributes to gStyle"),Y.add("SetStatFormat",()=>{Y.input("Enter StatFormat",he.fStatFormat).then(me=>{me&&(he.fStatFormat=me,this.interactiveRedraw(!0,`exec:SetStatFormat("${me}")`))})}),Y.add("SetFitFormat",()=>{Y.input("Enter FitFormat",he.fFitFormat).then(me=>{me&&(he.fFitFormat=me,this.interactiveRedraw(!0,`exec:SetFitFormat("${me}")`))})}),Y.add("separator"),Y.add("sub:SetOptStat",()=>{Y.input("Enter OptStat",he.fOptStat,"int").then(me=>{he.fOptStat=me,this.interactiveRedraw(!0,`exec:SetOptStat(${me})`)})});const Q=(me,X)=>{let B=me<10?he.fOptStat:he.fOptFit;B=parseInt(parseInt(B)/parseInt(Math.pow(10,me%10)))%10,Y.addchk(B,X,100*B+me,$=>{const g=parseInt($/100);let E=$%100<10?he.fOptStat:he.fOptFit;E-=(g>0?g:-1)*parseInt(Math.pow(10,$%10)),$%100<10?(he.fOptStat=E,this.interactiveRedraw(!0,`exec:SetOptStat(${E})`)):(he.fOptFit=E,this.interactiveRedraw(!0,`exec:SetOptFit(${E})`))})};Q(0,"Histogram name"),Q(1,"Entries"),Q(2,"Mean"),Q(3,"Std Dev"),Q(4,"Underflow"),Q(5,"Overflow"),Q(6,"Integral"),Q(7,"Skewness"),Q(8,"Kurtosis"),Y.add("endsub:"),Y.add("sub:SetOptFit",()=>{Y.input("Enter OptStat",he.fOptFit,"int").then(me=>{he.fOptFit=me,this.interactiveRedraw(!0,`exec:SetOptFit(${me})`)})}),Q(10,"Fit parameters"),Q(11,"Par errors"),Q(12,"Chi square / NDF"),Q(13,"Probability"),Y.add("endsub:"),Y.add("separator")}else he._typename===x.clTLegend?Y.add("Autoplace",()=>{this.autoPlaceLegend(he,this.getPadPainter()?.getRootPad(!0),!0).then(Q=>{Q&&this.interactiveRedraw(!0,"pave_moved")})}):"title"===he.fName&&(Y.add("Default position",()=>{he.fX1NDC=x.gStyle.fTitleW>0?x.gStyle.fTitleX-x.gStyle.fTitleW/2:x.gStyle.fPadLeftMargin,he.fY1NDC=x.gStyle.fTitleY-Math.min(1.1*x.gStyle.fTitleFontSize,.06),he.fX2NDC=x.gStyle.fTitleW>0?x.gStyle.fTitleX+x.gStyle.fTitleW/2:1-x.gStyle.fPadRightMargin,he.fY2NDC=x.gStyle.fTitleY,he.fInit=1,this.interactiveRedraw(!0,"pave_moved")}),Y.add("Save to gStyle",()=>{x.gStyle.fTitleX=(he.fX2NDC+he.fX1NDC)/2,x.gStyle.fTitleY=he.fY2NDC,this.fillatt?.saveToStyle("fTitleColor","fTitleStyle"),x.gStyle.fTitleTextColor=he.fTextColor,x.gStyle.fTitleFontSize=he.fTextSize,x.gStyle.fTitleFont=he.fTextFont},"Store title position and graphical attributes to gStyle"));Y.add("Bring to front",()=>this.bringToFront(!this.isStats()&&!this.z_handle))}paveContextMenu(Y){if(this.z_handle){const he=this.getFramePainter();(0,x.isFunc)(he?.showContextMenu)&&he.showContextMenu("pal",Y)}else(0,Ye.sj)(Y,this,this.isTitle()?"title":void 0)}isStats(){return this.matchObjectType(x.clTPaveStats)}isTitle(){return this.matchObjectType(x.clTPaveText)&&"title"===this.getObject()?.fName}clearPave(){this.getObject().Clear()}addText(Y){this.getObject().AddText(Y)}fillFunctionStat(Y,he,Q=1){if(this._has_fit=!1,!he||!Y)return!1;this._has_fit=!0,this._fit_dim=Q,this._fit_cnt=0;const me=1===Q?he%10:1,X=1===Q?Math.floor(he/10)%10:1,B=1===Q?Math.floor(he/100)%10:1,$=1===Q?Math.floor(he/1e3)%10:0;if(B&&(this.addText("#chi^{2} / ndf = "+this.format(Y.fChisquare,"fit")+" / "+Y.fNDF),this._fit_cnt++),$&&(this.addText("Prob = "+this.format((0,ve.Prob)(Y.fChisquare,Y.fNDF))),this._fit_cnt++),me)for(let g=0;g":this.format(Number(_),"fit"),void 0!==v&&(v=this.format(v,"last"),0===Number(v)&&0!==Y.GetParError(g)&&(v=this.format(Y.GetParError(g),"4.2g"))),this.addText(X&&v?`${E} = ${_} #pm ${v}`:`${E} = ${_}`),this._fit_cnt++}return!0}isDummyPos(Y){return!Y||!(Y.fInit||Y.fX1||Y.fX2||Y.fY1||Y.fY2||Y.fX1NDC||Y.fX2NDC||Y.fY1NDC||Y.fY2NDC)}updateObject(Y,he){if(!this.matchObjectType(Y))return!1;const Q=this.getObject();switch(!Q.modified_NDC&&!this.isDummyPos(Y)&&(this.stored&&!Y.fInit&&this.stored.fX1===Y.fX1&&this.stored.fX2===Y.fX2&&this.stored.fY1===Y.fY1&&this.stored.fY2===Y.fY2?(this.stored.fX1NDC!==Y.fX1NDC&&(Q.fX1NDC=Y.fX1NDC),this.stored.fX2NDC!==Y.fX2NDC&&(Q.fX2NDC=Y.fX2NDC),this.stored.fY1NDC!==Y.fY1NDC&&(Q.fY1NDC=Y.fY1NDC),this.stored.fY2NDC!==Y.fY2NDC&&(Q.fY2NDC=Y.fY2NDC)):(Q.fInit=Y.fInit,Q.fX1=Y.fX1,Q.fX2=Y.fX2,Q.fY1=Y.fY1,Q.fY2=Y.fY2,Q.fX1NDC=Y.fX1NDC,Q.fX2NDC=Y.fX2NDC,Q.fY1NDC=Y.fY1NDC,Q.fY2NDC=Y.fY2NDC),this.stored=Object.assign({},Y)),Q.fOption=Y.fOption,Q.fBorderSize=Y.fBorderSize,void 0!==Q.fTextColor&&void 0!==Y.fTextColor&&(Q.fTextAngle=Y.fTextAngle,Q.fTextSize=Y.fTextSize,Q.fTextAlign=Y.fTextAlign,Q.fTextColor=Y.fTextColor,Q.fTextFont=Y.fTextFont),Y._typename){case x.clTDiamond:case x.clTPaveText:return Q.fLines=(0,x.clone)(Y.fLines),!0;case x.clTPavesText:return Q.fLines=(0,x.clone)(Y.fLines),Q.fNpaves=Y.fNpaves,!0;case x.clTPaveLabel:case x.clTPaveClass:return Q.fLabel=Y.fLabel,!0;case x.clTPaveStats:return Q.fOptStat=Y.fOptStat,Q.fOptFit=Y.fOptFit,!0;case x.clTLegend:{const me=Q.fPrimitives;if(Q.fPrimitives=Y.fPrimitives,Q.fNColumns=Y.fNColumns,this.AutoPlace="autoplace"===he,me?.arr?.length&&me?.arr?.length===Q.fPrimitives?.arr?.length)for(let X=0;X{if("title"===he.fName&&he._typename===x.clTPaveText){const X=me.getPadPainter().findPainterFor(null,"title");if(X&&X!==me)X.removeFromPadPrimitives(),X.cleanup();else if("postitle"===Q||me.isDummyPos(he)){const B=x.gStyle,$=me.getFramePainter();if(B&&$){const g=B.fTitleX,E=B.fTitleY;let _=B.fTitleW,v=B.fTitleH;v||(v=.7*(E-$.fY2NDC)),_||(_=$.fX2NDC-$.fX1NDC),(!Number.isFinite(v)||v<=0)&&(v=.06),(!Number.isFinite(_)||_<=0)&&(_=.44),he.fX1NDC=g-_/2,he.fY1NDC=E-v,he.fX2NDC=g+_/2,he.fY2NDC=E,he.fInit=1}}}else he._typename===x.clTPaletteAxis&&(he.fBorderSize=1,he.fShadowColor=0,he.fAxis&&(he.fAxis.fChopt||(he.fAxis.fChopt="+"),he.fAxis.fNdiv||(he.fAxis.fNdiv=12),he.fAxis.fLabelOffset||(he.fAxis.fLabelOffset=.005)),me.z_handle=new Ze.TB(Y,he.fAxis,!0),me.z_handle.setPadName(me.getPadName()),me.UseContextMenu=!0);switch(me.NoFillStats="nofillstats"===Q||"stats"!==he.fName,he._typename){case x.clTPaveLabel:case x.clTPaveClass:me.paveDrawFunc=me.drawPaveLabel;break;case x.clTPaveStats:me.paveDrawFunc=me.drawPaveStats;break;case x.clTPaveText:case x.clTPavesText:case x.clTDiamond:me.paveDrawFunc=me.drawPaveText;break;case x.clTLegend:me.AutoPlace="autoplace"===Q,me.paveDrawFunc=me.drawLegend;break;case x.clTPaletteAxis:me.paveDrawFunc=me.drawPaletteAxis}return me.drawPave(Q)})})()}}},8537:(Yr,mt,Se)=>{"use strict";Se.d(mt,{CS:()=>p,QK:()=>He,SF:()=>I,cD:()=>Ve,s6:()=>C,u$:()=>U,wx:()=>v});var Te=Se(8872),x=Se(8362),L=Se(2923),ve=Se(3847),ke=Se(3147),ot=Se(4615),Ye=Se(9997);function Ze(k,Z,ee){if((0,ke.KA)(Z))return new L._l5((0,ke.xV)(Z),{font:ve.Te,size:ee,height:0,curveSegments:5});const ue=100*ee,V=[];let b=5;class P{constructor(lt,bt){this.kind=lt??"g",this.childs=[],this.x=0,this.y=0,this.font_size=bt?.font_size??ue,bt?.childs.push(this)}append(lt){return"svg:g"===lt?new P("g",this):"svg:text"===lt?new P("text",this):"svg:path"===lt?new P("path",this):void console.log("should create",lt)}style(lt,bt){return"stroke-width"===lt&&bt&&(b=Number.parseInt(bt)),this}translate(){this.geom&&this.geom.translate(this.x,this.y,0),this.childs.forEach(lt=>{lt.x+=this.x,lt.y+=this.y,lt.translate()})}attr(lt,bt){const te=()=>{if(!bt)return"";const tt=bt[0];return bt=bt.slice(1),tt},Je=tt=>{let Fe=0;for(;bt[Fe]>="0"&&bt[Fe]<="9"||"-"===bt[Fe];)Fe++;const Ne=Number.parseInt(bt.slice(0,Fe));return bt=bt.slice(Fe),tt&&te(),Ne};if("font-size"===lt&&bt)this.font_size=Number.parseInt(bt);else if("transform"===lt&&(0,Te.isStr)(bt)&&0===bt.indexOf("translate")){const tt=bt.slice(bt.indexOf("(")+1,bt.lastIndexOf(")")).split(",");this.x+=tt[0]?.01*Number.parseInt(tt[0]):0,this.y-=tt[1]?.01*Number.parseInt(tt[1]):0}else if("x"===lt&&"text"===this.kind)this.x+=.01*Number.parseInt(bt);else if("y"===lt&&"text"===this.kind)this.y-=.01*Number.parseInt(bt);else if("d"===lt&&"path"===this.kind){if("M"!==te())return console.error("Not starts with M");const tt=[];let rt,Fe=Je(!0),Ne=Je();for(;rt=te();){let pt=Fe,st=Ne;switch(rt){case"L":pt=Je(!0),st=Je();break;case"l":pt+=Je(!0),st+=Je();break;case"H":pt=Je();break;case"h":pt+=Je();break;case"V":st=Je();break;case"v":st+=Je();break;default:console.log("not supported operator",rt)}const vt=Math.atan2(st-Ne,pt-Fe),Yt=.5*b*Math.sin(vt),qt=-.5*b*Math.cos(vt);tt.push(Fe-Yt,Ne-qt,0,pt-Yt,st-qt,0,pt+Yt,st+qt,0,Fe-Yt,Ne-qt,0,pt+Yt,st+qt,0,Fe+Yt,Ne+qt,0),Fe=pt,Ne=st}const St=new Float32Array(tt);this.geom=new L.LoY,this.geom.setAttribute("position",new L.THS(St,3)),this.geom.scale(.01,-.01,.01),this.geom.computeVertexNormals(),V.push(this.geom)}return this}text(lt){"text"===this.kind&&(this.geom=new L._l5(lt,{font:ve.Te,size:Math.round(.01*this.font_size),height:0,curveSegments:5}),V.push(this.geom))}}const T=new P;if((0,ke.Bm)(k,T,{font_size:ue,latex:1,x:0,y:0,text:Z,align:["start","top"],fast:!0,font:{size:ue,isMonospace:()=>!1,aver_width:.9}}),!V.length)return new L._l5((0,ke.xV)(Z),{font:ve.Te,size:ee,height:0,curveSegments:5});if(T.translate(),1===V.length)return V[0];let W=0;V.forEach(Ge=>{W+=Ge.getAttribute("position").array.length});const fe=new Float32Array(W),we=new Float32Array(W);let Me=0;V.forEach(Ge=>{const lt=Ge.getAttribute("position").array,bt=Ge.getAttribute("normal").array;for(let te=0;te=0&&(P=2),b.x>=0&&b.y>=0&&(P=3),b.x>=0&&b.y<0&&(P=4);const T=(W,fe)=>(W<=P&&(W+=4),W>P&&W{for(let fe=0;feb?k.camera.position.set(-2*V,-3.5*b,ue*k.size_z3d):k.camera.position.set(-3.5*V,-2*b,ue*k.size_z3d)),ee&&(Z||!k.zoomChangedInteractive())&&Number.isFinite(ee.fTheta)&&Number.isFinite(ee.fPhi)&&(ee.fTheta!==k.camera_Theta||ee.fPhi!==k.camera_Phi)){k.camera_Phi=ee.fPhi,k.camera_Theta=ee.fTheta,V=3*Math.max(k.size_x3d,k.size_z3d),b=3*Math.max(k.size_y3d,k.size_z3d);const P=(270-ee.fPhi)/180*Math.PI,T=(ee.fTheta-10)/180*Math.PI;k.camera.position.set(V*Math.cos(P)*Math.cos(T),b*Math.sin(P)*Math.cos(T),k.size_z3d+(ue-.9)*(V+b)*Math.sin(T)),Z=!0}if(Z&&k.camera.lookAt(k.lookat),Z&&k.camera.isOrthographicCamera&&k.scene_width&&k.scene_height){const P=k.scene_width/k.scene_height,T=k.camera.right-k.camera.left,z=k.camera.top-k.camera.bottom;if(P>T/z){const W=(k.camera.right+k.camera.left)/2;k.camera.left=W-z*P/2,k.camera.right=W+z*P/2}else{const W=(k.camera.top+k.camera.bottom)/2;k.camera.top=W+T/P/2,k.camera.bottom=W-T/P/2}}k.camera.updateProjectionMatrix()}function J(k){k.control=(0,ve.Sc)(k,k.camera,k.scene,k.renderer,k.lookat);const Z=k,ee=k.getMainPainter();k.control.processMouseMove=function(ue){let V=null,b=null,P=null;const T=Z.isTooltipAllowed();for(let z=0;zV.x2||V.y1>V.y2||V.z1>V.z2)&&console.warn("check 3D hints coordinates"),V.x1-=z,V.x2+=z,V.y1-=W,V.y2+=W,V.z1-=fe,V.z2+=fe}if(Z.highlightBin3D(V,b),!V&&P&&(0,Te.isFunc)(Z.get3dZoomCoord)){let z=P.zoom;const W=P.globalIntersect(this.raycaster),fe=Z.get3dZoomCoord(W,z);return"z"===z&&P.use_y_for_z&&(z="y"),{name:z,title:"axis object",line:z+" : "+Z.axisAsText(z,fe),only_status:!0}}return V?.lines?V:""},k.control.processMouseLeave=function(){Z.highlightBin3D(null)},k.control.contextMenu=function(ue,V){let b="painter",P=ee;if(V)for(let z=0;z10&&V.width>10?Math.round(V.width/V.height*this.size_z3d):this.size_z3d,Z&&(this.size_x3d*=Z),ee&&(this.size_y3d*=ee),this.scene=new L.Z58,this.toplevel=new L.B69,this.scene.add(this.toplevel),this.scene_width=V.width,this.scene_height=V.height,this.scene_x=V.x??0,this.scene_y=V.y??0,this.camera_Phi=30,this.camera_Theta=30,De(this,ue),F(this,!0),(0,ve.Yw)(this.scene_width,this.scene_height,k).then(b=>(this.renderer=b,this.webgl=k===Te.constants.Render3D.WebGL,this.add3dCanvas(V,this.renderer.jsroot_dom,this.webgl),this.first_render_tm=0,this.enable_highlight=!1,!this.isBatchMode()&&this.webgl&&J(this),this))}function he(k){let Z=!1;this.control&&(this.control.cleanup(),delete this.control,Z=!0),De(this,k),F(this,!0),Z&&J(this),this.render3D()}function Q(k,Z,ee){if(k){if(!this.toplevel)return console.error("3D objects are not yet created in the frame");Z&&ee&&this.remove3DMeshes(Z),this.toplevel.add(k),k._painter=Z}}function me(k){if(!k||!this.toplevel)return;let Z=this.toplevel.children.length;for(;Z>0;){const ee=this.toplevel.children[--Z];ee._painter===k&&(this.toplevel.remove(ee),(0,ve.G1)(ee))}}function X(k){if(-1111===k){const V=(0,Te.getDocument)(),b=(0,ve.mZ)(!1,0,V);if(b.setSize(this.scene_width,this.scene_height),b.render(this.scene,this.camera),b.makeOuterHTML){const P=V.createElement("div");return P.innerHTML=b.makeOuterHTML(),P.childNodes[0]}return b.domElement}void 0===k&&(k=5);const Z=this.isBatchMode();if(k>0&&!this.usesvg&&!Z)return void(this.render_tmout||(this.render_tmout=setTimeout(()=>this.render3D(0),k)));if(this.render_tmout&&(clearTimeout(this.render_tmout),delete this.render_tmout),!this.renderer)return;(0,ve.rv)(this.renderer);const ee=new Date;Re(this.camera,this.toplevel,this.opt3d?.FrontBox,this.opt3d?.BackBox),this.renderer.render(this.scene,this.camera),(0,ve.oE)(this.renderer),0===this.first_render_tm&&(this.first_render_tm=(new Date).getTime()-ee.getTime(),this.enable_highlight=this.first_render_tm<1200&&this.isTooltipAllowed(),this.first_render_tm>500&&console.log(`three.js r${L.sPf}, first render tm = ${this.first_render_tm}`)),this.processRender3D&&this.getPadPainter()?.painters?.forEach(V=>{(0,Te.isFunc)(V.handleRender3D)&&V.handleRender3D()})}function B(){const k=this.getSizeFor3d(this.access3dKind());return this.apply3dSize(k),!(this.scene_width===k.width&&this.scene_height===k.height||k.width<10||k.height<10||(this.scene_width=k.width,this.scene_height=k.height,this.camera.aspect=this.scene_width/this.scene_height,this.camera.updateProjectionMatrix(),this.renderer.setSize(this.scene_width,this.scene_height),0))}function $(k,Z){const ee=!k||void 0===k.x1||!this.enable_highlight;let ue=!1,V=null,b=!0,P=this.getMainPainter();if(P&&(!P.provideUserTooltip||!P.hasUserTooltip())&&(P=null),this.tooltip_selfmesh&&(b=this.tooltip_selfmesh!==Z,this.tooltip_selfmesh.material.color=this.tooltip_selfmesh.save_color,delete this.tooltip_selfmesh,ue=!0),this.tooltip_mesh&&(V=this.tooltip_mesh,this.toplevel.remove(this.tooltip_mesh),delete this.tooltip_mesh,ue=!0),ee)return ue&&this.render3D(),void(ue&&P&&P.provideUserTooltip(null));if(k.use_itself)Z.save_color=Z.material.color,Z.material.color=new L.Q1f(k.color),this.tooltip_selfmesh=Z,ue=b;else{ue=!0;const T=ve.DJ.Indexes,z=ve.DJ.Normals,W=ve.DJ.Vertices,fe=new L.Q1f(k.color?k.color:16711680),we=k.opacity||1;let Me,je;if(V)Me=V.geometry.attributes.position.array,V.geometry.attributes.position.needsUpdate=!0,V.material.color=fe,V.material.opacity=we;else{Me=new Float32Array(3*T.length),je=new Float32Array(3*T.length);const Ge=new L.LoY;Ge.setAttribute("position",new L.THS(Me,3)),Ge.setAttribute("normal",new L.THS(je,3));const lt=new L.V9B({color:fe,opacity:we,vertexColors:!1});V=new L.eaF(Ge,lt)}k.x1===k.x2&&console.warn(`same tip X ${k.x1} ${k.x2}`),k.y1===k.y2&&console.warn(`same tip Y ${k.y1} ${k.y2}`),k.z1===k.z2&&(k.z2=k.z1+1e-4);for(let Ge=0,lt=-3;Ge0&&Nt>0&&(pt=Math.min(pt,.9*Nt/At))),this.x_handle.isCenteredLabels()&&(Nt||(Nt=Math.min(xt-V,b-xt)),Pe.grx+=Nt/2)}qt.push(xt,0,0,xt,this.x_handle.ticksSize*(K?-1:-.6),0)}if(this.x_handle.fTitle&&ee.draw){const xt=Ze(this,this.x_handle.fTitle,this.x_handle.titleFont.size);xt.computeBoundingBox(),xt.center=this.x_handle.titleCenter,xt.opposite=this.x_handle.titleOpposite,xt.offsety=1.6*this.x_handle.titleOffset+.005*(T-P),xt.grx=(V+b)/2,xt.kind="title",Ot.push(xt)}this.get3dZoomCoord=function(xt,K){const ge=this[`scale_${K}min`],ye=this[`scale_${K}max`];let Pe=xt[K];switch(K){case"x":Pe=(Pe+this.size_x3d)/2/this.size_x3d;break;case"y":Pe=(Pe+this.size_y3d)/2/this.size_y3d;break;case"z":Pe=Pe/2/this.size_z3d}return Pe=this["log"+K]?Math.exp(Math.log(ge)+Pe*(Math.log(ye)-Math.log(ge))):ge+Pe*(ye-ge),Pe};const Mn=(xt,K,ge)=>{const ye=new L.LoY,Pe=Math.max(this[xt+"_handle"].ticksSize,.005*K);let At;At="z"===xt?new Float32Array([0,0,0,4*Pe,0,2*K,4*Pe,0,0,0,0,0,0,0,2*K,4*Pe,0,2*K]):new Float32Array([-K,0,0,K,4*-Pe,0,K,0,0,-K,0,0,-K,4*-Pe,0,K,4*-Pe,0]),ye.setAttribute("position",new L.THS(At,3)),ye.computeVertexNormals();const Ht=new L.V9B({transparent:!0,vertexColors:!1,side:L.$EB,opacity:0}),Nt=new L.eaF(ye,Ht);return Nt.zoom=xt,Nt.size_3d=K,Nt.tsz=Pe,Nt.use_y_for_z=ge,"y"===xt&&Nt.rotateZ(Math.PI/2).rotateX(Math.PI),Nt.v1=new L.Pq0(At[0],At[1],At[2]),Nt.v2=new L.Pq0(At[6],At[7],At[8]),Nt.v3=new L.Pq0(At[3],At[4],At[5]),Nt.globalIntersect=function(nn){if(!this.v1||!this.v2||!this.v3)return;const un=new L.Zcv;un.setFromCoplanarPoints(this.v1,this.v2,this.v3),un.applyMatrix4(this.matrixWorld);const kn=nn.ray.origin.clone(),cn=kn.clone().addScaledVector(nn.ray.direction,1e10),In=un.intersectLine(new L.cZY(kn,cn),new L.Pq0);if(!In)return;let ci=-this.size_3d,Pi=this.size_3d;return"z"===this.zoom&&(ci=0,Pi=2*this.size_3d),In[this.zoom]Pi&&(In[this.zoom]=Pi),In},Nt.showSelection=function(nn,un){const kn=this.zoom;let In,cn=this.children?this.children[0]:null;if(!nn||!un)return cn&&(this.remove(cn),(0,ve.G1)(cn)),cn;if(!this.geometry)return!1;if(cn)In=cn.geometry;else{In=this.geometry.clone();const Pi=In.getAttribute("position").array;"z"===kn?Pi[6]=Pi[3]=Pi[15]=this.tsz:Pi[4]=Pi[16]=Pi[13]=-this.tsz,cn=new L.eaF(In,new L.V9B({color:65280,side:L.$EB,vertexColors:!1})),this.add(cn)}const ci=In.getAttribute("position").array;return"z"===kn?(ci[2]=ci[11]=ci[8]=nn[kn],ci[5]=ci[17]=ci[14]=un[kn]):(ci[0]=ci[9]=ci[12]=nn[kn],ci[6]=ci[3]=ci[15]=un[kn]),In.getAttribute("position").needsUpdate=!0,!0},Nt};let Dn,bn=new L.B69;for(bn.position.set(0,P,z),bn.rotation.x=1/4*Math.PI,bn.xyid=2,ee.draw&&(Dn=(0,ve.Fc)(qt,st(this.x_handle,"ticks")),bn.add(Dn)),Ot.forEach(xt=>{const K=xt.boundingBox.max.x-xt.boundingBox.min.x,ge=xt.center?xt.grx-K/2:xt.opposite?V:b-K,ye=new L.kn4;ye.set(pt,0,0,ge,0,pt,0,-Bn*pt-this.x_handle.ticksSize-xt.offsety,0,0,1,0,0,0,0,1);const Pe=new L.eaF(xt,vt(this.x_handle,xt.kind,xt.color));Pe.applyMatrix4(ye),bn.add(Pe)}),ee.zoom&&ee.drawany&&bn.add(Mn("x",this.size_x3d)),Yt.add(bn),bn=new L.B69,bn.position.set(0,T,z),bn.rotation.x=3/4*Math.PI,ee.draw&&bn.add(new L.DXC(Dn.geometry,Dn.material)),Ot.forEach(xt=>{const K=xt.boundingBox.max.x-xt.boundingBox.min.x,ge=xt.center?xt.grx+K/2:xt.opposite?V+K:b,ye=new L.kn4;ye.set(-pt,0,0,ge,0,pt,0,-Bn*pt-this.x_handle.ticksSize-xt.offsety,0,0,-1,0,0,0,0,1);const Pe=new L.eaF(xt,vt(this.x_handle,xt.kind,xt.color));Pe.applyMatrix4(ye),bn.add(Pe)}),bn.xyid=4,ee.zoom&&ee.drawany&&bn.add(Mn("x",this.size_x3d)),Yt.add(bn),Ot=[],pt=1,Bn=0,qt=[];rt.next();){const xt=rt.grpos;let K=1===rt.kind,ge=this.y_handle.format(rt.tick,2);if(rt.last_major()?this.y_handle.fTitle||(ge="y"):null===ge&&(K=!1,ge=""),K&&ge&&ee.draw){const ye=rt.get_modifier();ye?.fLabText&&(ge=ye.fLabText);const Pe=Ze(this,ge,this.y_handle.labelsFont.size);Pe.computeBoundingBox();const At=Pe.boundingBox.max.x-Pe.boundingBox.min.x,Ht=Pe.boundingBox.max.y-Pe.boundingBox.min.y;Pe.center=!0,Bn=Math.max(Bn,Ht),ye?.fTextColor&&(Pe.color=this.getColor(ye.fTextColor)),Pe.gry=xt,Pe.offsetx=this.y_handle.labelsOffset+.005*(b-V),Ot.push(Pe);let Nt=0;rt.last_major()||(Nt=Math.abs(rt.next_major_grpos()-xt),At>0&&(pt=Math.min(pt,.9*Nt/At))),this.y_handle.isCenteredLabels()&&(Nt||(Nt=Math.min(xt-P,T-xt)),Pe.gry+=Nt/2)}qt.push(0,xt,0,this.y_handle.ticksSize*(K?-1:-.6),xt,0)}if(this.y_handle.fTitle&&ee.draw){const xt=Ze(this,this.y_handle.fTitle,this.y_handle.titleFont.size);xt.computeBoundingBox(),xt.center=this.y_handle.titleCenter,xt.opposite=this.y_handle.titleOpposite,xt.offsetx=1.6*this.y_handle.titleOffset+.005*(b-V),xt.gry=(P+T)/2,xt.kind="title",Ot.push(xt)}if(!ee.use_y_for_z){let xt,K=new L.B69;K.position.set(V,0,z),K.rotation.y=-1/4*Math.PI,ee.draw&&(xt=(0,ve.Fc)(qt,st(this.y_handle,"ticks")),K.add(xt)),Ot.forEach(ge=>{const ye=ge.boundingBox.max.x-ge.boundingBox.min.x,Pe=ge.center?ge.gry+ye/2:ge.opposite?P+ye:T,At=new L.kn4;At.set(0,pt,0,-Bn*pt-this.y_handle.ticksSize-ge.offsetx,-pt,0,0,Pe,0,0,1,0,0,0,0,1);const Ht=new L.eaF(ge,vt(this.y_handle,ge.kind,ge.color));Ht.applyMatrix4(At),K.add(Ht)}),K.xyid=3,ee.zoom&&ee.drawany&&K.add(Mn("y",this.size_y3d)),Yt.add(K),K=new L.B69,K.position.set(b,0,z),K.rotation.y=-3/4*Math.PI,ee.draw&&K.add(new L.DXC(xt.geometry,xt.material)),Ot.forEach(ge=>{const ye=ge.boundingBox.max.x-ge.boundingBox.min.x,Pe=ge.center?ge.gry-ye/2:ge.opposite?P:T-ye,At=new L.kn4;At.set(0,pt,0,-Bn*pt-this.y_handle.ticksSize-ge.offsetx,pt,0,0,Pe,0,0,-1,0,0,0,0,1);const Ht=new L.eaF(ge,vt(this.y_handle,ge.kind,ge.color));Ht.applyMatrix4(At),K.add(Ht)}),K.xyid=1,ee.zoom&&ee.drawany&&K.add(Mn("y",this.size_y3d)),Yt.add(K)}Ot=[],pt=1,qt=[];let $n=null,Cn=null,yn=null,Sn=0;for(this.size_z3d&&ee.drawany&&($n=[],Cn=[]);St.next();){const xt=St.grpos;let K=1===St.kind,ge=this.z_handle.format(St.tick,2);if(null===ge&&(K=!1,ge=""),K&&ge&&ee.draw){const ye=St.get_modifier();ye?.fLabText&&(ge=ye.fLabText);const Pe=Ze(this,ge,this.z_handle.labelsFont.size);Pe.computeBoundingBox();const At=Pe.boundingBox.max.x-Pe.boundingBox.min.x,Ht=Pe.boundingBox.max.y-Pe.boundingBox.min.y;Pe.translate(-At,-Ht/2,0),ye?.fTextColor&&(Pe.color=this.getColor(ye.fTextColor)),Pe.grz=xt,Ot.push(Pe),null!==yn&&Ht>0&&(pt=Math.min(pt,.9*(xt-yn)/Ht)),Sn=Math.max(Sn,At),yn=xt}$n&&K&&$n.push(V,0,xt,b,0,xt),Cn&&K&&Cn.push(0,P,xt,0,T,xt),qt.push(0,0,xt,this.z_handle.ticksSize*(K?1:.6),0,xt)}if($n&&$n.length>0){const xt=new L.Fvt({color:this.x_handle.ticksColor,dashSize:2,gapSize:2}),K=(0,ve.Fc)($n,xt);K.position.set(0,T,0),K.grid=2,K.visible=!1,Yt.add(K);const ge=new L.DXC(K.geometry,xt);ge.position.set(0,P,0),ge.grid=4,ge.visible=!1,Yt.add(ge)}if(Cn&&Cn.length>0){const xt=new L.Fvt({color:this.y_handle.ticksColor,dashSize:2,gapSize:2}),K=(0,ve.Fc)(Cn,xt);K.position.set(b,0,0),K.grid=3,K.visible=!1,Yt.add(K);const ge=new L.DXC(K.geometry,xt);ge.position.set(V,0,0),ge.grid=1,ge.visible=!1,Yt.add(ge)}const ii=[],ai=ee.draw?(0,ve.Fc)(qt,st(this.z_handle,"ticks")):null;for(let xt=0;xt<4;++xt){if(ii.push(new L.B69),Ot.forEach((K,ge)=>{const ye=new L.kn4;let Pe=K.grz;this.z_handle.isCenteredLabels()&&(ge0&&(Pe=Math.min(1.5*Pe-.5*Ot[ge-1].grz,W))),ye.set(-pt,0,0,this.z_handle.ticksSize+.005*(b-V)+this.z_handle.labelsOffset,0,0,1,0,0,pt,0,Pe);const At=new L.eaF(K,vt(this.z_handle));At.applyMatrix4(ye),ii[xt].add(At)}),this.z_handle.fTitle&&ee.draw){const K=Ze(this,this.z_handle.fTitle,this.z_handle.titleFont.size);K.computeBoundingBox();const ge=K.boundingBox.max.x-K.boundingBox.min.x,ye=this.z_handle.titleCenter?(W+z-ge)/2:this.z_handle.titleOpposite?z:W-ge;K.rotateZ(Math.PI/2);const Pe=new L.kn4;Pe.set(-pt,0,0,this.z_handle.ticksSize+.005*(b-V)+Sn+this.z_handle.titleOffset,0,0,1,0,0,pt,0,ye);const At=new L.eaF(K,vt(this.z_handle,"title"));At.applyMatrix4(Pe),ii[xt].add(At)}ee.draw&&ai&&ii[xt].add(0===xt?ai:new L.DXC(ai.geometry,ai.material)),ee.zoom&&ee.drawany&&ii[xt].add(Mn("z",this.size_z3d,ee.use_y_for_z)),ii[xt].zid=xt+2,Yt.add(ii[xt])}if(ii[0].position.set(V,T,0),ii[0].rotation.z=3/4*Math.PI,ii[1].position.set(b,T,0),ii[1].rotation.z=1/4*Math.PI,ii[2].position.set(b,P,0),ii[2].rotation.z=-1/4*Math.PI,ii[3].position.set(V,P,0),ii[3].rotation.z=-3/4*Math.PI,!ee.drawany)return;const zi=st(this.x_handle),ti=(0,ve.Fc)([V,0,0,b,0,0],zi,null,!0);for(let xt=0;xt<2;++xt){let K=new L.DXC(ti,zi);K.position.set(0,P,0===xt?z:W),K.xyboxid=2,K.bottom=0===xt,Yt.add(K),K=new L.DXC(ti,zi),K.position.set(0,T,0===xt?z:W),K.xyboxid=4,K.bottom=0===xt,Yt.add(K)}const Lr=st(this.y_handle),ss=(0,ve.Fc)([0,P,0,0,T,0],Lr,null,!0);for(let xt=0;xt<2;++xt){let K=new L.DXC(ss,Lr);K.position.set(V,0,0===xt?z:W),K.xyboxid=3,K.bottom=0===xt,Yt.add(K),K=new L.DXC(ss,Lr),K.position.set(b,0,0===xt?z:W),K.xyboxid=1,K.bottom=0===xt,Yt.add(K)}const Bs=st(this.z_handle),yo=(0,ve.Fc)([0,0,z,0,0,W],Bs,null,!0);for(let xt=0;xt<4;++xt){const K=new L.DXC(yo,Bs);K.zboxid=ii[xt].zid,K.position.copy(ii[xt].position),Yt.add(K)}}function _(k,Z,ee){k=this.x_handle.gr(k),Z=this.y_handle.gr(Z),ee=this.z_handle.gr(ee);const ue=(new L.Pq0).set(k,Z,ee);ue.project(this.camera),ue.x=(ue.x+1)/2,ue.y=(ue.y+1)/2;const V=this.getPadPainter(),b=V?.getPadWidth(),P=V?.getPadHeight();return b&&P&&(ue.x=(this.scene_x+ue.x*this.scene_width)/b,ue.y=(this.scene_y+ue.y*this.scene_height)/P),ue}function v(k){Object.assign(k,{create3DScene:Y,add3DMesh:Q,remove3DMeshes:me,render3D:X,resize3D:B,change3DCamera:he,highlightBin3D:$,set3DOptions:g,drawXYZ:E,convert3DtoPadNDC:_})}function p(k,Z=!1){if(!k.draw_content)return;const ee=ve.DJ.Vertices,ue=ve.DJ.Indexes,V=ve.DJ.Normals,b=ve.DJ.Segments,P=[0,1,1,2,2,3,3,0],T=[new L.Pq0(0,0,0),new L.Pq0(0,1,0),new L.Pq0(1,1,0),new L.Pq0(1,0,0)],z=k.getFramePainter(),W=k.prepareDraw({rounding:!1,use3d:!0,extra:1}),fe=k.options.cutg,we=W.i1,Me=W.i2,je=W.j1,Ge=W.j2,lt=k.getHisto(),bt=lt.$baseh,te=11===k.options.Lego||13===k.options.Lego,Je=lt.getBin(Me,Ge)<65535;if(we>=Me||je>=Ge)return;let tt,Fe,Ne,rt,St,pt,st,vt,Yt,qt,Ot,Bn,Mn,bn,Dn,$n=z.z_handle.getScaleMin(),Cn=z.z_handle.getScaleMax();const yn=(Nt,nn,un)=>(Bn=lt.getBinContent(Nt+1,nn+1),Ot=bt?bt.getBinContent(Nt+1,nn+1):!1!==k.options.BaseLine?k.options.BaseLine:k.options.Zero?$n:0,Bn=Fe||Bn=Bn,!Mn||un>0||!bt&&(!!(k.options.Zero||$n>0)||k._show_empty_bins)));let Sn=[$n,Cn],ii=null;(12===k.options.Lego||14===k.options.Lego)&&(Z?(ii=z.getHistPalette(),k.createContour(z,ii,{full_z_range:!0}),Sn=ii.getContour(),$n=Sn[0],Cn=Sn[Sn.length-1]):(Sn=k.createContour(lt.fContour?lt.fContour.length:20,z.lego_zmin,z.lego_zmax).arr,ii=k.getHistPalette()));for(let Nt=0;Nt0,Dn=!Mn&&Bn>Fe&&Nt0,Dn=!Mn&&Bn>Fe&&NtFe?un:z.grz(Bn),ie=0,O=0,Mn&&(ie+=12,O+=24);const _t=lt.getBin(Ne+1,rt+1);let sn=ue.length;for(bn&&(sn-=6);O=this.face_to_bins_index.length)return null;const sn=this.painter,tn=this.handle,xn=sn.getFramePainter(),wn=sn.getHisto(),Ut=sn.get3DToolTip(this.face_to_bins_index[_t.faceIndex]),qe=Math.min(xn.size_x3d,Math.max(-xn.size_x3d,tn.grx[Ut.ix-1]+tn.xbar1*(tn.grx[Ut.ix]-tn.grx[Ut.ix-1]))),nt=Math.min(xn.size_x3d,Math.max(-xn.size_x3d,tn.grx[Ut.ix-1]+tn.xbar2*(tn.grx[Ut.ix]-tn.grx[Ut.ix-1]))),at=Math.min(xn.size_y3d,Math.max(-xn.size_y3d,tn.gry[Ut.iy-1]+tn.ybar1*(tn.gry[Ut.iy]-tn.gry[Ut.iy-1]))),ut=Math.min(xn.size_y3d,Math.max(-xn.size_y3d,tn.gry[Ut.iy-1]+tn.ybar2*(tn.gry[Ut.iy]-tn.gry[Ut.iy-1])));Ut.x1=Math.min(qe,nt),Ut.x2=Math.max(qe,nt),Ut.y1=Math.min(at,ut),Ut.y2=Math.max(at,ut);let Qt=this.baseline,vn=Ut.value;return wn.$baseh&&(Qt=wn.$baseh.getBinContent(Ut.ix,Ut.iy)),vn0){const _t=Ve(k,Jn,Wi),sn=new L.Q1f(Oe<2?16711680:(0,x.Qh)($e).darker(.5).toString()),tn=new L.V9B({color:sn,vertexColors:!1}),xn=new L.eaF(_t,tn);xn.face_to_bins_index=Ln,xn.painter=k,xn.handle=it.handle,xn.tooltip=it.tooltip,xn.zmin=it.zmin,xn.zmax=it.zmax,xn.baseline=it.baseline,xn.tip_color=it.tip_color,z.add3DMesh(xn)}}if(k.options.Lego>12)return;let ai=0,zi=0;for(Fe=Cn,tt=$n,Ne=we;NeCn?yo:z.grz(Bn);const Nt=Mn?P:b,nn=Mn?T:ee;if(ti){for(St=0;StP)&&(we!==b||k.options.Zero||b>0||k._show_empty_bins)&&(!T||T.IsInside(ue.fXaxis.GetBinCoord(z+.5),ue.fYaxis.GetBinCoord(W+.5)))){if(0===Yt){tt+=3;continue}fe=ue.getBin(z+1,W+1),Me=ue.getBinError(fe),Ne[rt/18]=fe,Ge=V.gry[W],bt=V.gry[W+1],te=ee.grz(we-MeP?P:we+Me),Fe[rt]=je,Fe[rt+3]=lt,Fe[rt+1]=Fe[rt+4]=(Ge+bt)/2,Fe[rt+2]=Fe[rt+5]=(te+Je)/2,rt+=6,Fe[rt]=Fe[rt+3]=(je+lt)/2,Fe[rt+1]=Ge,Fe[rt+4]=bt,Fe[rt+2]=Fe[rt+5]=(te+Je)/2,rt+=6,Fe[rt]=Fe[rt+3]=(je+lt)/2,Fe[rt+1]=Fe[rt+4]=(Ge+bt)/2,Fe[rt+2]=te,Fe[rt+5]=Je,rt+=6}if(0===Yt){if(0===tt)return;Fe=new Float32Array(6*tt),Ne=new Int32Array(tt/3)}}const pt=Z?k.v7EvalColor("line_color","lightblue"):k.getColor(ue.fLineColor),st=new L.mrM((0,ve.Bx)(pt,{linewidth:Z?k.v7EvalAttr("line_width",1):ue.fLineWidth})),vt=(0,ve.Fc)(Fe,st);vt.painter=k,vt.intersect_index=Ne,vt.zmin=b,vt.zmax=P,vt.tip_color=3===ue.fLineColor?16711680:65280,vt.tooltip=function(Yt){const qt=Math.floor(Yt.index/6);if(qt<0||qt>=this.intersect_index.length)return null;const Ot=this.painter,Bn=Ot.getHisto(),Mn=Ot.getFramePainter(),bn=Ot.get3DToolTip(this.intersect_index[qt]),Dn=Math.min(Mn.size_x3d,Math.max(-Mn.size_x3d,Mn.grx(Bn.fXaxis.GetBinLowEdge(bn.ix)))),$n=Math.min(Mn.size_x3d,Math.max(-Mn.size_x3d,Mn.grx(Bn.fXaxis.GetBinLowEdge(bn.ix+1)))),Cn=Math.min(Mn.size_y3d,Math.max(-Mn.size_y3d,Mn.gry(Bn.fYaxis.GetBinLowEdge(bn.iy)))),yn=Math.min(Mn.size_y3d,Math.max(-Mn.size_y3d,Mn.gry(Bn.fYaxis.GetBinLowEdge(bn.iy+1))));return bn.x1=Math.min(Dn,$n),bn.x2=Math.max(Dn,$n),bn.y1=Math.min(Cn,yn),bn.y2=Math.max(Cn,yn),bn.z1=Mn.grz(bn.value-bn.errorthis.zmax?this.zmax:bn.value+bn.error),bn.color=this.tip_color,bn},ee.add3DMesh(vt)}function I(k,Z=!1,ee=!1){const ue=k.getFramePainter(),V=k.prepareDraw({rounding:!1,use3d:!0,extra:100,middle:0}),b=k.getHisto(),P=k.getContourLevels(),T=k.getHistPalette(),z=[];let W=2*ue.size_z3d;(0,Ye.Hn)(b,V,P,T,(we,Me,je,Ge,lt,bt)=>{if(!(lt-Ge<3||Z&&(W=ue.grz(P[bt]),W<0||W>2*ue.size_z3d)))for(let te=Ge;teMe0&&(we=ue.getHistPalette(),2===Me&&k.createContour(ue,we,{full_z_range:!0}),W=we.getContour())}else switch(k.options.Surf){case 11:W=k.getContourLevels(),we=k.getHistPalette();break;case 12:case 15:case 17:W=k.getContourLevels(),we=k.getHistPalette(),z.dolines=!1;break;case 14:z.dolines=!1,z.donormals=!0;break;case 16:W=k.getContourLevels(),z.dogrid=!0,z.dolines=!1;break;default:W=ue.z_handle.createTicks(!0),z.dogrid=!0}if(W){fe=new Float32Array(W.length);for(let Me=0;Me{const lt=Ve(k,je,null,z.i2-z.i1,z.j2-z.j1),bt=lt.getAttribute("normal").array;if(z.donormals&&1===Me)for(let Fe=z.i1;Fe=0?rt:rt+9+Ge[rt],pt=rt+8;let st=0,vt=0,Yt=0;for(let qt=St;qt1?k.getColor(ee.fFillColor):"white",14===k.options.Surf&&ee.fFillColor<2&&(te=k.getColor(48))),te||(te="white"),Je=14===k.options.Surf?new L.G_z((0,ve.Bx)(te,{side:L.$EB,vertexColors:!1})):new L.V9B((0,ve.Bx)(te,{side:L.$EB,vertexColors:!1}));const tt=new L.eaF(lt,Je);ue.add3DMesh(tt),tt.painter=k},(Me,je)=>{const Ge=k.getColor(ee.fLineColor)??"white";let lt;lt=Me?1===k.options.Surf?new L.Fvt({color:0,dashSize:2,gapSize:2}):new L.mrM((0,ve.Bx)(Ge)):new L.mrM((0,ve.Bx)(Ge,{linewidth:ee.fLineWidth}));const bt=(0,ve.Fc)(He(k,je,z.i2-z.i1,z.j2-z.j1),lt);bt.painter=k,ue.add3DMesh(bt)}),17===k.options.Surf&&I(k,!1,Z),13===k.options.Surf){z=k.prepareDraw({rounding:!1,use3d:!0,extra:100,middle:0});const Me=k.getContourLevels(),je=k.getHistPalette();let Ge=-1,lt=T;(0,Ye.Hn)(ee,z,Me,je,(bt,te,Je,tt,Fe)=>{if(te[Fe]===te[tt]&&Je[Fe]===Je[tt]&&Fe--,Fe-tt<3)return;const Ne=[];for(let Ot=tt;Ot<=Fe;++Ot)(Ot===tt||te[Ot]!==te[Ot-1]||Je[Ot]!==Je[Ot-1])&&Ne.push(new L.I9Y(te[Ot],Je[Ot]));if(Ne.length<3)return;const rt=L.xJ6.triangulateShape(Ne,[]);if(!rt||0===rt.length)return;(Ge<0||Ge!==bt)&&(Ge=bt,lt+=5e-5*T);const St=new Float32Array(9*rt.length),pt=new Float32Array(9*rt.length);let st=0;for(let Ot=0;Ot{"use strict";Se.d(mt,{N:()=>Ye,c:()=>ot});var Te=Se(4882),x=Se(8872),L=Se(8362),ve=Se(2843),ke=Se(4615);const ot=["LOGXY","LOGX","LOGY","LOGZ","LOGV","LOG","LOG2X","LOG2Y","LOG2","LNX","LNY","LN","GRIDXY","GRIDX","GRIDY","TICKXY","TICKX","TICKY","TICKZ","FB","GRAYSCALE"];class Ye extends ke.mf{convertTH1K(){const Re=this.getObject();if(Re.fReady)return;const He=Re.fArray,Ve=Re.fEntries;Re.fNcells=Re.fXaxis.fNbins+2,Re.fArray=new Float64Array(Re.fNcells).fill(0);for(let De=0;De0),this.scan_xleft=Ve,this.scan_xright=De;const F=this.isTProfile();let X,B,J=0,Y=0,he=0,Q=0,me=!0;for(let g=0;g=De)&&(X>0&&(0===Y||X1?He.fEntries:Q,this.hmin=J,this.hmax=he,(0===this.nbinsx||Math.abs(J)<1e-300&&Math.abs(he)<1e-300)&&(this.draw_content=!1);let $=!1;if(this.draw_content||this.isMainPainter()&&this.options.Axis>0&&!this.options.ohmin&&!this.options.ohmax&&He.fMinimum===x.kNoZoom&&He.fMaximum===x.kNoZoom)if(J>=he)0===J?(this.ymin=0,this.ymax=1):J<0?(this.ymin=2*J,this.ymax=0):(this.ymin=0,this.ymax=2*J);else{const g=this.getPadPainter()?.getRootPad();(this.options.BarStyle>=20?g.fLogx:g?.fLogv??g?.fLogy)?(this.ymin=.5*(Y||J),this.ymax=2*he*(.9/.95)):(this.ymin=J-(he-J)*x.gStyle.fHistTopMargin,this.ymin<0&&J>=0&&(this.ymin=0),this.ymax=he+(he-this.ymin)*x.gStyle.fHistTopMargin)}J=this.options.minimum,he=this.options.maximum,J===he&&J!==x.kNoZoom&&(J<0?(J*=2,he=0):(J=0,he*=2,he||(he=1))),J!==x.kNoZoom&&he!==x.kNoZoom&&!this.draw_content&&(this.ymin===this.ymax||this.ymin>J||this.ymaxthis.ymax&&(this.ymax=he),$=!0)),Re||($?(this.zoom_ymin=J===x.kNoZoom?this.ymin:J,this.zoom_ymax=he===x.kNoZoom?this.ymax:he):(delete this.zoom_ymin,delete this.zoom_ymax)),this.wheel_zoomy=this.getDimension()>1||!this.draw_content}countStat(Re,He){const Ve=this.isTProfile(),De=this.getHisto(),F=De.fXaxis,J=this.getSelectIndex("x","left"),Y=this.getSelectIndex("x","right"),he=this.getFramePainter(),Q={name:De.fName,meanx:0,meany:0,rmsx:0,rmsy:0,integral:0,entries:this.stat_entries,eff_entries:0,xmax:0,wmax:0,skewx:0,skewd:0,kurtx:0,kurtd:0},me=!he.isAxisZoomed("x")&&Math.abs(De.fTsumw)>1e-300;let v,X=0,B=0,$=0,g=0,E=0,_=0,p=0,C=0,I=null,U=null;for((0,x.isFunc)(Re)||(Re=null),v=J;vU)&&(I=p,U=C),me||(X+=C,B+=C*C,$+=C*p,g+=C*p**2));if(me&&(X=De.fTsumw,B=De.fTsumw2,$=De.fTsumwx,g=De.fTsumwx2),Q.integral=X,Q.eff_entries=B?X*X/B:Math.abs(X),Math.abs(X)>1e-300&&(Q.meanx=$/X,Q.meany=E/X,Q.rmsx=Math.sqrt(Math.abs(g/X-Q.meanx**2)),Q.rmsy=Math.sqrt(Math.abs(_/X-Q.meany**2))),null!==I&&(Q.xmax=I,Q.wmax=U),He){let k=0,Z=0,ee=0;for(v=J;v0?Math.sqrt(6/Q.eff_entries):0,ee*V!=0&&(Q.kurtx=Z/(ee*V)-3),Q.kurtd=Q.eff_entries>0?Math.sqrt(24/Q.eff_entries):0}return Q}fillStatistic(Re,He,Ve){if(this.isIgnoreStatsFill())return!1;1===He&&(He=1111),1===Ve&&(Ve=111);const De=this.getHisto(),F=He%10,J=Math.floor(He/10)%10,Y=Math.floor(He/100)%10,he=Math.floor(He/1e3)%10,Q=Math.floor(He/1e4)%10,me=Math.floor(He/1e5)%10,X=Math.floor(He/1e6)%10,B=Math.floor(He/1e7)%10,$=Math.floor(He/1e8)%10,g=this.countStat(void 0,B>0||$>0);return Re.clearPave(),F>0&&Re.addText(g.name),this.isTProfile()?(J>0&&Re.addText("Entries = "+Re.format(g.entries,"entries")),Y>0&&(Re.addText("Mean = "+Re.format(g.meanx)),Re.addText("Mean y = "+Re.format(g.meany))),he>0&&(Re.addText("Std Dev = "+Re.format(g.rmsx)),Re.addText("Std Dev y = "+Re.format(g.rmsy)))):(J>0&&Re.addText("Entries = "+Re.format(g.entries,"entries")),Y>0&&Re.addText("Mean = "+Re.format(g.meanx)),he>0&&Re.addText("Std Dev = "+Re.format(g.rmsx)),Q>0&&Re.addText("Underflow = "+Re.format(De.fArray.length>0?De.fArray[0]:0,"entries")),me>0&&Re.addText("Overflow = "+Re.format(De.fArray.length>0?De.fArray[De.fArray.length-1]:0,"entries")),X>0&&Re.addText("Integral = "+Re.format(g.integral,"entries")),2===B?Re.addText(`Skewness = ${Re.format(g.skewx)} #pm ${Re.format(g.skewd)}`):B>0&&Re.addText(`Skewness = ${Re.format(g.skewx)}`),2===$?Re.addText(`Kurtosis = ${Re.format(g.kurtx)} #pm ${Re.format(g.kurtd)}`):$>0&&Re.addText(`Kurtosis = ${Re.format(g.kurtx)}`)),Ve&&Re.fillFunctionStat(this.findFunction(x.clTF1),Ve,1),!0}drawBars(Re,He){var Ve=this;return(0,Te.A)(function*(){const De=Ve.getSelectIndex("x","left",-1),F=Ve.getSelectIndex("x","right",1),J=Ve.getHisto(),Y=J.fXaxis,he=Ve.options.Text;let Q,me,X,B,$,g,E,_,v,p,C,I,U="",k="",Z="",ee=Ve.options.BarStyle>10?Ve.options.BarStyle%10:0;for(ee>4&&(ee=4),C=Re.swap_xy?0:He,Number.isFinite(Ve.options.BaseLine)&&Ve.options.BaseLine>=Re.scale_ymin&&(C=Math.round(Re.gry(Ve.options.BaseLine))),he&&(Q=Ve.getColor(J.fMarkerColor),me=-1*Ve.options.TextAngle,X=20,1!==J.fMarkerSize&&me&&(X=.02*He*J.fMarkerSize),Ve.startTextDrawing(42,X,Ve.draw_g,X)),B=De;B0&&(_=E+I,I=Math.round(I*ee/10),Re.swap_xy?(k+=`M${C},${E}h${p-C}v${I}h${C-p}z`,Z+=`M${C},${_}h${p-C}v${-I}h${C-p}z`):(k+=`M${E},${p}h${I}v${C-p}h${-I}z`,Z+=`M${_},${p}h${-I}v${C-p}h${I}z`)),he&&v))){const ue=v===Math.round(v)?v.toString():(0,ve.lg)(v,x.gStyle.fPaintTextFormat);Ve.drawText(Re.swap_xy?{align:12,x:Math.round(p+X/2),y:Math.round(E+.1),height:Math.round(.8*I),text:ue,color:Q,latex:0}:me?{align:12,x:E+I/2,y:Math.round(p-2-X/5),width:0,height:0,rotate:me,text:ue,color:Q,latex:0}:{align:22,x:Math.round(E+.1*I),y:Math.round(p-2-X),width:Math.round(.8*I),height:X,text:ue,color:Q,latex:0})}if(U&&Ve.draw_g.append("svg:path").attr("d",U).call(Ve.fillatt.func),k&&Ve.draw_g.append("svg:path").attr("d",k).call(Ve.fillatt.func).style("fill",(0,L.Qh)(Ve.fillatt.color).brighter(.5).formatHex()),Z&&Ve.draw_g.append("svg:path").attr("d",Z).call(Ve.fillatt.func).style("fill",(0,L.Qh)(Ve.fillatt.color).darker(.5).formatHex()),he)return Ve.finishTextDrawing()})()}drawFilledErrors(Re){const He=this.getSelectIndex("x","left",-1),Ve=this.getSelectIndex("x","right",1),De=this.getHisto(),F=De.fXaxis,J=[],Y=[];let he,Q,me,X,B;for(he=He;he1&&(v=!0),2===this.options.ErrorKind?this.fillatt.empty()?v=!0:Me="":me&&(p=!1,je="",bt=Y?"":null,Fe=!0),rt=this.lineatt.width+x.gStyle.fEndErrorSize,1===this.options.ErrorKind&&(Ne=Math.floor((this.lineatt.width-1)/2)),v){let ye=this.options.MarkStyle;!ye&&1===J.fMarkerStyle&&(ye=8),this.createAttMarker({attr:J,style:ye}),this.markeratt.size>0?(Ge="",tt=!0,this.markeratt.resetPos(),null===bt&&Y&&(!this.markeratt.fill||this.markeratt.getFullSize()<7)&&(te="",Je=Math.max(5,Math.round(.7*this.markeratt.getFullSize())))):v=!1}const ii=me||v,ai=ii||B||p||X,zi=this.options.Hist&&(!this.lineatt.empty()||!this.fillatt.empty());if(!zi&&!ai)return this.removeG();if(B){if(Cn=this.getColor(J.fMarkerColor),yn=-1*this.options.TextAngle,Sn=20,1!==J.fMarkerSize&&yn&&(Sn=.02*Ve*J.fMarkerSize),!yn&&!this.options.TextKind){const ye=He/(F-De+1);ye<3*Sn&&(yn=270,Sn=Math.round(.7*ye))}this.startTextDrawing(42,Sn,this.draw_g,Sn)}const ti=ai||F-De>3*He,Lr=ye=>(vt=J.getBinContent(ye+1),!(Q&&0===vt||(qt=Math.round(Re.grx(he.GetBinLowEdge(ye+1))),Ot=Math.round(Re.grx(he.GetBinLowEdge(ye+2))),Bn=Math.round((qt+Ot)/2),void 0===I&&(I=Bn),St=Math.round(Re.gry(vt)),me?(Yt=J.getBinError(ye+1),pt=Math.round(St-Re.gry(vt+Yt)),st=Math.round(Re.gry(vt-Yt)-St)):pt=st=20,0))),ss=()=>{let ye=5;if(this.options.errorX>0&&(ye=Math.round((Ot-qt)*this.options.errorX),Dn=Bn-ye,$n=Bn+ye,je+=1===this.options.ErrorKind?`M${Dn+Ne},${St-rt}v${2*rt}m0,-${rt}h${$n-Dn-2*Ne}m0,-${rt}v${2*rt}`:`M${Dn+Ne},${St}h${$n-Dn-2*Ne}`),je+=1===this.options.ErrorKind?`M${Bn-rt},${St-pt+Ne}h${2*rt}m${-rt},0v${pt+st-2*Ne}m${-rt},0h${2*rt}`:`M${Bn},${St-pt+Ne}v${pt+st-2*Ne}`,null!==bt){const Pe=Math.max(pt,5),At=Math.max(st,5);bt+=`M${Bn-ye},${St-Pe}h${2*ye}v${Pe+At}h${-2*ye}z`}},Bs=ye=>{if(Lr(ye)){if(B){const Pe=$?J.fBinEntries[ye+1]:vt;if(0!==Pe){const At=Pe===Math.round(Pe)?Pe.toString():(0,ve.lg)(Pe,x.gStyle.fPaintTextFormat);this.drawText(yn?{align:12,x:Bn,y:Math.round(St-2-Sn/5),width:0,height:0,rotate:yn,text:At,color:Cn,latex:0}:{align:22,x:Math.round(qt+.1*(Ot-qt)),y:Math.round(St-2-Sn),width:Math.round(.8*(Ot-qt)),height:Sn,text:At,color:Cn,latex:0})}}p?(0===lt.length?lt=`M${Bn},${St}`:lt+=Mn===Bn?"v"+(St-bn):bn===St?"h"+(Bn-Mn):`l${Bn-Mn},${St-bn}`,Mn=Bn,bn=St):X&&g.push({grx:(qt+Ot)/2,gry:Re.gry(vt)}),ii&&St>=-pt&&St<=Ve+st&&(null!==Me&&(Me+=`M${qt},${St-pt}h${Ot-qt}v${pt+st+1}h${qt-Ot}z`),null!==Ge&&tt&&(Ge+=this.markeratt.create(Bn,St),null!==te&&(te+=`M${Bn-Je},${St-Je}h${2*Je}v${2*Je}h${-2*Je}z`)),null!==je&&Fe&&ss())}};if((tt||Fe)&&(!x.settings.OptimizeDraw||F-De<5e4&&1===x.settings.OptimizeDraw)){for(W=De;WP&&(fe=W),b=Math.min(b,V),P=Math.max(P,V),k=V):(V!==k||_)&&(ee!==U&&(E+="h"+(ee-U)),V!==k&&(E+="v"+(V-k)),k=V,U=ee));const yo=Y&&this.fillatt.empty()&&zi&&!ii&&!p&&!X,xt=()=>{this.draw_g.append("svg:path").attr("d",E+(!this.fillatt.empty()||yo?ge:"")).style("stroke-linejoin","miter").call(this.lineatt.func).call(this.fillatt.func)};let K=Ve+3;if(!yo){const ye=Math.round(Re.gry(0));ye<=0?K=-3:ye{if(1===this.options.ErrorKind)return this.drawNormal(He,Ve,De)}):3===this.options.ErrorKind||4===this.options.ErrorKind?this.drawFilledErrors(He):this.drawNormal(He,Ve,De))}getBinTooltips(Re){const He=[],Ve=this.getObjectHint(),F=this.getFramePainter().getGrFuncs(this.options.second_x,this.options.second_y),J=this.getHisto(),Y=J.fXaxis.GetBinLowEdge(Re+1),he=J.fXaxis.GetBinLowEdge(Re+2),Q=this.getAxisBinTip("x",J.fXaxis,Re);let me=J.getBinContent(Re+1);return Ve&&He.push(Ve),this.options.Error||this.options.Mark||this.isTF1()?(He.push("x = "+Q,"y = "+F.axisAsText("y",me)),this.options.Error&&("["===Q[0]&&He.push("error x = "+((he-Y)/2).toPrecision(4)),He.push("error y = "+J.getBinError(Re+1).toPrecision(4)))):(He.push(`bin = ${Re+1}`,`x = ${Q}`),J.$baseh&&(me-=J.$baseh.getBinContent(Re+1)),me===Math.round(me)?He.push("entries = "+me):He.push("entries = "+(0,ve.lg)(me,x.gStyle.fStatFormat))),He}processTooltipEvent(Re){if(!Re||!this.draw_content||!this.draw_g||this.options.Mode3D)return this.draw_g?.selectChild(".tooltip_bin").remove(),null;const He=this.getFramePainter(),Ve=He.getGrFuncs(this.options.second_x,this.options.second_y),De=this.getHisto(),F=this.getSelectIndex("x","left",-1),J=this.getSelectIndex("x","right",2);let me,X,B,$,g,Y=He.getFrameWidth(),he=He.getFrameHeight(),Q=null,E=2,_=F,v=J,p=Re.x,C=Re.y;const I=b=>{const P=De.fXaxis.GetBinLowEdge(b+1);return Ve.logx&&P<=0?null:Ve.grx(P)},U=b=>{const P=De.getBinContent(b+1);return Ve.logy&&Pp+.5?k?_=b:v=b:(_++,v--)}if(Q=v=_,X=I(Q),k){for(;_>F&&I(_-1)X-2;)++v}else{for(;_>F&&I(_-1)>X-2;)--_;for(;vhe/10&&(Q=Math.round(_+(v-_)/he*C)),X=I(Q)}if(X=Math.round(X),B=Math.round(I(Q+1)),this.options.Bar){const b=B-X;X+=Math.round(De.fBarOffset/1e3*b),B=X+Math.round(De.fBarWidth/1e3*b)}X>B&&([X,B]=[B,X]);const Z=Math.round((X+B)/2),ee=$=g=U(Q);if(this.options.Bar)me=!0,E=0,$=Math.round(Ve.gry(!1!==this.options.BaseLine&&this.options.BaseLine>Ve.scale_ymin?this.options.BaseLine:Ve.scale_ymin)),$>g&&([$,g]=[g,$]),!Re.touch&&1===Re.nproc&&(C<$||C>g)&&(Q=null);else if(this.options.Error&&!0!==this.options.Hist||this.options.Mark||this.options.Line||this.options.Curve){me=!this.isTF1();let b=3;if(this.markeratt&&(b=Math.max(b,this.markeratt.getFullSize())),this.options.Error){const P=De.getBinContent(Q+1),T=De.getBinError(Q+1);$=Math.round(Ve.gry(P+T)),g=Math.round(Ve.gry(P-T)),0===P&&this.isTProfile()&&(Q=null);const z=(B-X)*this.options.errorX;X=Math.round(Z-z),B=Math.round(Z+z)}B-X<2*b&&(X=Z-b,B=Z+b),$=Math.min($,ee-b),g=Math.max(g,ee+b),!Re.touch&&1===Re.nproc&&(C<$||C>g)&&(Q=null)}else me=1===Re.nproc&&J-Fg)&&!Re.touch&&(Q=null));null!==Q&&(Q===F&&X>p+E||Q===J-1&&BB+E||!this.options.Zero&&0===De.getBinContent(Q+1))&&(Q=null);let ue=this.draw_g.selectChild(".tooltip_bin");if(null===Q||g<=0||$>=he)return ue.remove(),null;const V={name:this.getObjectName(),title:De.fTitle,x:Z,y:ee,exact:!0,color1:this.lineatt?.color??"green",color2:this.fillatt?.getFillColorAlt("blue")??"blue",lines:this.getBinTooltips(Q)};if(Re.disabled)ue.remove(),V.changed=!0;else if(me)ue.empty()&&(ue=this.draw_g.append("svg:rect").attr("class","tooltip_bin").style("pointer-events","none").call(ve.Ru)),V.changed=ue.property("current_bin")!==Q,V.changed&&ue.attr("x",Ve.swap_xy?$:X).attr("width",Ve.swap_xy?g-$:B-X).attr("y",Ve.swap_xy?X:$).attr("height",Ve.swap_xy?B-X:g-$).style("opacity","0.3").property("current_bin",Q),V.exact=Math.abs(ee-C)<=5||C>=$&&C<=g,V.menu=V.exact,V.menu_dist=Math.sqrt((Z-p)**2+(ee-C)**2);else{const b=this.lineatt.width+3;ue.empty()&&(ue=this.draw_g.append("svg:circle").attr("class","tooltip_bin").style("pointer-events","none").attr("r",b).call(this.lineatt.func).call(this.fillatt.func)),V.exact=Math.abs(Z-Re.x)<=b&&Math.abs(ee-Re.y)<=b,V.menu=V.exact,V.menu_dist=Math.sqrt((Z-Re.x)**2+(ee-Re.y)**2),V.changed=ue.property("current_bin")!==Q,V.changed&&ue.attr("cx",Z).attr("cy",ee).property("current_bin",Q)}return V.changed&&(V.user_info={obj:De,name:De.fName,bin:Q,cont:De.getBinContent(Q+1),grx:Z,gry:ee}),V}fillHistContextMenu(Re){Re.add("Auto zoom-in",()=>this.autoZoom());const He=this.getSupportedDrawOptions();Re.addDrawMenu("Draw with",He,Ve=>{if(0===Ve.indexOf(x.kInspect))return this.showInspector(Ve);this.decodeOptions(Ve),this.options.need_fillcol&&this.fillatt?.empty()&&this.fillatt.change(5,1001),this.interactiveRedraw("pad","drawopt")}),!this.snapid&&!this.isTProfile()&&!this.isTF1()&&Re.addRebinMenu(Ve=>this.rebinHist(Ve))}rebinHist(Re){const He=this.getHisto(),Ve=He.fXaxis,De=Math.floor(Ve.fNbins/Re);if(De<2)return;const F=new Array(De+2),J=Ve.fXbins.length>0?new Array(De):null;F[0]=He.fArray[0];let Y=1;for(let Q=1;Q<=De;++Q){J&&(J[Q-1]=Ve.fXbins[Y-1]);let me=0;for(let X=0;X0)){for(;Re2&&He1||"y"===Re&&Math.abs(Ve-He)>1e-6*Math.abs(this.ymax-this.ymin))}callDrawFunc(Re){var He=this;return(0,Te.A)(function*(){const Ve=He.getMainPainter(),De=He.getFramePainter();return Ve!==He&&De&&De.mode3d!==He.options.Mode3D&&He.copyOptionsFrom(Ve),He.options.Mode3D?He.draw3D(Re):He.draw2D(Re)})()}draw2D(){var Re=this;return(0,Te.A)(function*(){return Re.clear3DScene(),Re.scanContent(!0),(Re.isMainPainter()?Re.drawColorPalette(!1):Promise.resolve(!0)).then(()=>Re.drawAxes()).then(()=>Re.draw1DBins()).then(()=>Re.drawHistTitle()).then(()=>Re.updateFunctions()).then(()=>(Re.updateStatWebCanvas(),Re.addInteractivity()))})()}draw3D(Re){var He=this;return(0,Te.A)(function*(){return console.log("3D drawing is disabled, load ./hist/TH1Painter.mjs"),He.draw2D(Re)})()}redraw(Re){return this.callDrawFunc(Re)}static draw(Re,He,Ve){return(0,Te.A)(function*(){return ke.mf._drawHist(new Ye(Re,He),Ve)})()}}},9997:(Yr,mt,Se)=>{"use strict";Se.d(mt,{AJ:()=>Ve,Hn:()=>Ze,N7:()=>Re,YB:()=>He});var Te=Se(4882),x=Se(8872),L=Se(8362),ve=Se(2985),ke=Se(2843),ot=Se(1922),Ye=Se(4615);function Ze(De,F,J,Y,he){const X=new Float32Array(4008),B=new Float32Array(4008),$=new Int32Array(4008),g=J.length,E=J[0],_=J[g-1],v=[],p=[0,0,0,0],C=[0,0,0,0],I=[0,0,0,0],U=[0,0,0,0],k=F.grx,Z=F.gry;let ue,V,b,T,z,W,fe,we,Me,je,Ge,lt,bt,te,Je,ee=0,P=0;const Ne=g<10?qt=>{if(qt>=_)return g-1;for(let Ot=0;Ot{if(qt=_)return g-1;let Mn,Ot=0,Bn=g-1;for(;Bn-Ot>1;)Mn=Math.round((Bn+Ot)/2),qt{const yn=Bn===$n,Sn=yn?Cn-Mn:$n-Bn,ii=bn-qt;let Lr,ss,Bs,yo,ai=Ot+1,zi=ee-1,ti=0;const xt=zi+1002-3;for(;ai<=Dn&&zi<=xt;)yo=J[ai],Bs=yo-qt,ss=Bs/ii,Lr=Sn*ss,yn?(X[zi]=Bn,B[zi]=Mn+Lr):(X[zi]=Bn+Lr,B[zi]=Mn),$[zi]=ai,ti++,zi+=2,ai++;return ti};for(z=F.j1;zI[we]&&(fe=we),fe++,ee=1,te=1;te<=4;te++)we=fe%4+1,Me=rt(I[fe-1],U[fe-1],p[fe-1],C[fe-1],I[we-1],U[we-1],p[we-1],C[we-1]),ee+=2*Me,fe=we;for(fe=I[0]<=I[1]?0:1,we=I[2]<=I[3]?2:3,I[fe]>I[we]&&(fe=we),fe++,ee=2,te=1;te<=4;te++)we=1===fe?4:fe-1,Me=rt(I[fe-1],U[fe-1],p[fe-1],C[fe-1],I[we-1],U[we-1],p[we-1],C[we-1]),ee+=2*Me,fe=we;for(je=0,te=1;te<=ee-5;te+=2)for(;$[te-1]!==$[te];){for(Ge=X[te],lt=B[te],bt=$[te],Je=te;Je<=ee-5;Je+=2)X[Je]=X[Je+2],B[Je]=B[Je+2],$[Je]=$[Je+2];if(X[ee-3]=Ge,B[ee-3]=lt,$[ee-3]=bt,je>2e3)break;je++}if(je>100)continue;for(te=1;te<=ee-2;te+=2)ue=$[te-1],ue>=0&&ue=0){pt=ue;break}for(W=0,ue=pt-1;ue>=0;ue--)St[W]=ue,W++;for(ue=pt;ue0&&Ot[T+1]===st[Cn]&&Bn[T+1]===vt[Cn]&&(Cn--,st[Cn]=Ot[T],vt[Cn]=Bn[T],Ot[T]=Ot[T+1]=bn,Bn[T]=Bn[T+1]=Dn,Sn++);if(0===Sn)break}for(Cn+1=0&&he(qt,st,vt,Cn,yn,ue),$n=0,T=2;TMe+je?1:0}function z(fe,we,Me,je,Ge,lt,bt,te){V>=_.length&&console.log("more than 6 points???");const Je=(bt-Me)/(lt-Me);let tt=3;0!==b&&Math.abs(Je)=0)return console.error("More than 8 vertexes for the bin");const lt=Ge+8+ue[Ge];ue[Ge]--,ue[lt]=fe}this.createNormIndex=function(fe){fe.donormals&&(ue=new Int32Array((fe.i2-fe.i1)*(fe.j2-fe.j1)*8).fill(-1))},this.createBuffers=function(){if(this.loop){for(let fe=1;fe0&&(I=new Float32Array(6*C)),this.dogrid&&k>0&&(Z=new Float32Array(6*k))}},this.addLineSegment=function(fe,we,Me,je,Ge,lt){if(!this.dolines)return;const bt=T(Me,this.grz_min,this.grz_max,0),te=T(lt,this.grz_min,this.grz_max,0);if(bt!==te||0===bt){if(!this.loop)return++C;if(0!==bt){const Je=lt-Me;fe=je-(je-fe)/Je*(lt-(Me=bt<0?this.grz_min:this.grz_max)),we=Ge-(Ge-we)/Je*(lt-Me)}if(0!==te){const Je=Me-lt;je=fe-(fe-je)/Je*(Me-(lt=te<0?this.grz_min:this.grz_max)),Ge=we-(we-Ge)/Je*(Me-lt)}I[U]=fe,I[U+1]=we,I[U+2]=Me,U+=3,I[U]=je,I[U+1]=Ge,I[U+2]=lt,U+=3}},this.addMainTriangle=function(fe,we,Me,je,Ge,lt,bt,te,Je,tt,Fe,Ne,rt){for(let St=1;St1&&St===B.length-1&&3===Yt&&Me<=this.grz_max&&(pt=st=vt=Yt=0),3===Yt)continue;if(-3===Yt)return;if(!this.loop){let Bn=Math.abs(st-pt)+Math.abs(vt-st)+Math.abs(pt-vt);0===pt&&++Bn,0===st&&++Bn,0===vt&&++Bn,(1===Bn||2===Bn)&&console.error(`FOUND npnts = ${Bn}`),Bn>2&&(void 0===$[St]&&($[St]=0),$[St]+=Bn-2),(pt>0||st>0||vt>0)&&(pt!==st||st!==vt||vt!==pt)&&++k;continue}if(P=0,V=0,0===pt&&(_[V]=fe,_[V+1]=we,_[V+2]=Me,V+=3),pt!==st&&(b=0,(pt<0||st<0)&&z(fe,we,Me,je,Ge,lt,B[St-1]),(pt>0||st>0)&&z(fe,we,Me,je,Ge,lt,B[St],!0)),0===st&&(_[V]=je,_[V+1]=Ge,_[V+2]=lt,V+=3),st!==vt&&(b=0,(st<0||vt<0)&&z(je,Ge,lt,bt,te,Je,B[St-1]),(st>0||vt>0)&&z(je,Ge,lt,bt,te,Je,B[St],!0)),0===vt&&(_[V]=bt,_[V+1]=te,_[V+2]=Je,V+=3),vt!==pt&&(b=0,(vt<0||pt<0)&&z(bt,te,Je,fe,we,Me,B[St-1]),(vt>0||pt>0)&&z(bt,te,Je,fe,we,Me,B[St],!0)),0===V)continue;if(V<9){console.log(`found ${V/3} points, must be at least 3`);continue}if(Z&&6===P){for(let Bn=0;Bn<6;++Bn)Z[ee+Bn]=v[Bn];ee+=6}const qt=g[St];let Ot=E[St];this.donormals&&9===V&&(W(Ot,Fe,Ne,rt),W(Ot+3,Fe,Ne+1,tt?rt+1:rt),W(Ot+6,Fe,tt?Ne:Ne+1,rt+1));for(let Bn=3;Bn2?F.slice(2):"";F="XY",Y=he=parseInt(me)||1}else if((0,x.isStr)(F)&&F.length>1){const me=F.indexOf("_");me>0&&"X"===F[0]&&"Y"===F[me+1]?(Y=parseInt(F.slice(1,me))||1,he=parseInt(F.slice(me+2))||1,F="XY"):me>0&&"Y"===F[0]&&"X"===F[me+1]?(he=parseInt(F.slice(1,me))||1,Y=parseInt(F.slice(me+2))||1,F="XY"):(Y=he=parseInt(F.slice(1))||1,F=F[0])}if(!Y&&!he&&(Y=he=1),F&&this.is_projection===F){if(this.projection_widthX!==Y||this.projection_widthY!==he)return this.projection_widthX=Y,void(this.projection_widthY=he);F=""}delete this.proj_hist;const Q=this.is_projection===F?"":F;this.projection_widthX=Y,this.projection_widthY=he,this.is_projection="",this.provideSpecialDrawArea(Q).then(()=>(this.is_projection=Q,this.redrawProjection()))}redrawProjection(F,J,Y,he){var Q=this;return(0,Te.A)(function*(){if(!Q.is_projection)return!1;if(void 0===he){if(!Q.tt_handle)return;F=Math.round((Q.tt_handle.i1+Q.tt_handle.i2)/2),J=F+1,Y=Math.round((Q.tt_handle.j1+Q.tt_handle.j2)/2),he=Y+1}const me=Q.getCanvPainter();if(me&&!me._readonly&&void 0!==Q.snapid)return("X"===Q.is_projection||"XY"===Q.is_projection)&&!me.websocketTimeout("projX")&&me.sendWebsocket(`EXECANDSEND:DXPROJ:${Q.snapid}:ProjectionX("_projx",${Y+1},${he},"")`)&&me.websocketTimeout("projX",1e3),("Y"===Q.is_projection||"XY"===Q.is_projection)&&!me.websocketTimeout("projY")&&me.sendWebsocket(`EXECANDSEND:DYPROJ:${Q.snapid}:ProjectionY("_projy",${F+1},${J},"")`)&&me.websocketTimeout("projY",1e3),!0;if(Q.doing_projection)return!1;Q.doing_projection=!0;const X=Q.getHisto(),B=()=>{const E=(0,x.createHistogram)(x.clTH1D,Q.nbinsx);return Object.assign(E.fXaxis,X.fXaxis),E.fName="xproj",E.fTitle="X projection",E},$=()=>{const E=(0,x.createHistogram)(x.clTH1D,Q.nbinsy);return Object.assign(E.fXaxis,X.fYaxis),E.fName="yproj",E.fTitle="Y projection",E},g=(E,_)=>{let v=0,p=-1;if("X"===E){for(let C=0;CQ.drawInSpecialArea(Q.proj_hist2,"","Y")).then(E=>(delete Q.doing_projection,E))):(g(Q.is_projection,Q.proj_hist),Q.drawInSpecialArea(Q.proj_hist).then(E=>(delete Q.doing_projection,E)))})()}executeMenuCommand(F,J){return!!super.executeMenuCommand(F,J)||("SetShowProjectionX"===F.fName||"SetShowProjectionY"===F.fName?(this.toggleProjection(F.fName[17],J&&parseInt(J)?parseInt(J):1),!0):"SetShowProjectionXY"===F.fName&&(this.toggleProjection("X"+J.replaceAll(",","_Y")),!0))}fillHistContextMenu(F){if(!this.isTH2Poly()&&this.getPadPainter()?.iscan){let Y=this.is_projection||"";Y&&(Y+=this.projection_widthX),this.projection_widthX!==this.projection_widthY&&"XY"===this.is_projection&&(Y=`X${this.projection_widthX}_Y${this.projection_widthY}`);const he=["X1","X2","X3","X5","X10","Y1","Y2","Y3","Y5","Y10","XY1","XY2","XY3","XY5","XY10"];Y&&he.unshift("Off"),F.add("sub:Projections",()=>F.input("Input projection kind X1 or XY2 or X3_Y4",Y,"string").then(Q=>this.toggleProjection(Q)));for(let Q=0;Qthis.toggleProjection(me));F.add("endsub:")}this.isTH2Poly()||F.add("Auto zoom-in",()=>this.autoZoom());const J=this.getSupportedDrawOptions();F.addDrawMenu("Draw with",J,Y=>{if(0===Y.indexOf(x.kInspect))return this.showInspector(Y);this.decodeOptions(Y),this.interactiveRedraw("pad","drawopt")}),(this.options.Color||this.options.Contour||this.options.Surf||12===this.options.Lego||14===this.options.Lego)&&this.fillPaletteMenu(F,!0)}clickButton(F){const J=super.clickButton(F);if(J)return J;if(this.isMainPainter())switch(F){case"ToggleColor":return this.toggleColor();case"ToggleColorZ":return this.toggleColz();case"Toggle3D":return this.toggleMode3D()}return!1}fillToolbar(){super.fillToolbar(!0);const F=this.getPadPainter();F&&(!this.isTH2Poly()&&!this.options.Axis&&F.addPadButton("th2color","Toggle color","ToggleColor"),this.options.Axis||F.addPadButton("th2colorz","Toggle color palette","ToggleColorZ"),F.addPadButton("th2draw3d","Toggle 3D mode","Toggle3D"),F.showPadButtons())}toggleColor(){return this.options.Mode3D?(this.options.Mode3D=!1,this.options.Color=!0):(this.options.Color=!this.options.Color,this.options.Scat=!this.options.Color),this._can_move_colz=!0,this.copyOptionsToOthers(),this.interactiveRedraw("pad","drawopt")}autoZoom(){if(this.isTH2Poly())return;const F=this.getSelectIndex("x","left",-1),J=this.getSelectIndex("x","right",1),Y=this.getSelectIndex("y","left",-1),he=this.getSelectIndex("y","right",1),Q=this.getObject();if(F===J||Y===he)return;let me=Q.getBinContent(F+1,Y+1);for(let I=F;I0)return;let X=J,B=F,$=he,g=Y;for(let I=F;Ime&&(I=B&&(B=I+1),U<$&&($=U),U>=g&&(g=U+1));let E,_,v,p,C=!1;return X===B-1&&X>F+1&&BY+1&&gF||BY||gthis.gmaxbin&&(this.gmaxbin=X),X>0&&(null===this.gminposbin||this.gminposbin>X)&&(this.gminposbin=X)}}else for(this.gminbin=this.gmaxbin=J.getBinContent(1,1),this.gminposbin=null,Y=0;Ythis.gmaxbin&&(this.gmaxbin=Q),Q>0&&(null===this.gminposbin||this.gminposbin>Q)&&(this.gminposbin=Q)}null===this.gminposbin&&this.gmaxbin>0&&(this.gminposbin=1e-4*this.gmaxbin),this.options.Axis>0?this.draw_content=!1:(this.draw_content=0!==this.gmaxbin||0!==this.gminbin,!this.draw_content&&this.options.Zero&&this.isTH2Poly()&&(this.draw_content=!0,this.options.Line=1))}countStat(F,J){(0,x.isFunc)(F)||(F=this.options.cutg?(T,z)=>this.options.cutg.IsInside(T,z):null);const Y=this.getHisto(),he=Y.fXaxis,Q=Y.fYaxis,me=this.getFramePainter(),X=me.getGrFuncs(this.options.second_x,this.options.second_y),B={name:Y.fName,entries:0,eff_entries:0,integral:0,meanx:0,meany:0,rmsx:0,rmsy:0,matrix:[0,0,0,0,0,0,0,0,0],xmax:0,ymax:0,wmax:null,skewx:0,skewy:0,skewd:0,kurtx:0,kurty:0,kurtd:0},$=!me.isAxisZoomed("x")&&!me.isAxisZoomed("y")&&Math.abs(Y.fTsumw)>1e-300&&!F;let I,U,k,Z,ee,ue,V,b,P,g=0,E=0,_=0,v=0,p=0,C=0;if(this.isTH2Poly()){const T=Y.fBins.arr.length;let z,W,fe,we,Me,je,Ge;for(z=0;zX.scale_xmax?2:W.fXmaxX.scale_ymax?2:W.fYmax0)&&(we=W.fPoly.fGraphs.arr[Me]),fe=0;fe1&&(k/=Ge,Z/=Ge),ee=W.fContent,B.entries+=ee,B.matrix[3*U+I]+=ee,1===I&&1===U&&(!F||F(k,Z))&&((null===B.wmax||ee>B.wmax)&&(B.wmax=ee,B.xmax=k,B.ymax=Z),$||(g+=ee,E+=ee*ee,_+=k*ee,v+=Z*ee,p+=k*k*ee,C+=Z*Z*ee))}}else{ue=this.getSelectIndex("x","left"),V=this.getSelectIndex("x","right"),b=this.getSelectIndex("y","left"),P=this.getSelectIndex("y","right");for(let T=0;T<=this.nbinsx+1;++T){I=T<=ue?0:T>V?2:1,k=he.GetBinCoord(T-.5);for(let z=0;z<=this.nbinsy+1;++z)U=z<=b?0:z>P?2:1,Z=Q.GetBinCoord(z-.5),ee=Y.getBinContent(T,z),B.entries+=ee,B.matrix[3*U+I]+=ee,1===I&&1===U&&(!F||F(k,Z))&&((null===B.wmax||ee>B.wmax)&&(B.wmax=ee,B.xmax=k,B.ymax=Z),$||(g+=ee,E+=ee*ee,_+=k*ee,v+=Z*ee,p+=k**2*ee,C+=Z**2*ee))}}if($&&(g=Y.fTsumw,E=Y.fTsumw2,_=Y.fTsumwx,p=Y.fTsumwx2,v=Y.fTsumwy,C=Y.fTsumwy2),Math.abs(g)>1e-300&&(B.meanx=_/g,B.meany=v/g,B.rmsx=Math.sqrt(Math.abs(p/g-B.meanx**2)),B.rmsy=Math.sqrt(Math.abs(C/g-B.meany**2))),null===B.wmax&&(B.wmax=0),B.integral=g,Y.fEntries>1&&(B.entries=Y.fEntries),B.eff_entries=E?g*g/E:Math.abs(g),J&&!this.isTH2Poly()){let T=0,z=0,W=0,fe=0,we=0,Me=0;for(let te=ue;te0?Math.sqrt(6/B.eff_entries):0,we*lt!=0&&(B.kurtx=W/(we*lt)-3),we*bt!=0&&(B.kurty=fe/(we*bt)-3),B.kurtd=B.eff_entries>0?Math.sqrt(24/B.eff_entries):0}return B}fillStatistic(F,J,Y){if(this.isIgnoreStatsFill())return!1;1===J&&(J=1111);const he=Math.floor(J%10),Q=Math.floor(J/10)%10,me=Math.floor(J/100)%10,X=Math.floor(J/1e3)%10,B=Math.floor(J/1e4)%10,$=Math.floor(J/1e5)%10,g=Math.floor(J/1e6)%10,E=Math.floor(J/1e7)%10,_=Math.floor(J/1e8)%10,v=this.countStat(void 0,E>0||_>0);if(F.clearPave(),he>0&&F.addText(v.name),Q>0&&F.addText("Entries = "+F.format(v.entries,"entries")),me>0&&(F.addText("Mean x = "+F.format(v.meanx)),F.addText("Mean y = "+F.format(v.meany))),X>0&&(F.addText("Std Dev x = "+F.format(v.rmsx)),F.addText("Std Dev y = "+F.format(v.rmsy))),g>0&&F.addText("Integral = "+F.format(v.matrix[4],"entries")),2===E?(F.addText(`Skewness x = ${F.format(v.skewx)} #pm ${F.format(v.skewd)}`),F.addText(`Skewness y = ${F.format(v.skewy)} #pm ${F.format(v.skewd)}`)):E>0&&(F.addText(`Skewness x = ${F.format(v.skewx)}`),F.addText(`Skewness y = ${F.format(v.skewy)}`)),2===_?(F.addText(`Kurtosis x = ${F.format(v.kurtx)} #pm ${F.format(v.kurtd)}`),F.addText(`Kurtosis y = ${F.format(v.kurty)} #pm ${F.format(v.kurtd)}`)):_>0&&(F.addText(`Kurtosis x = ${F.format(v.kurtx)}`),F.addText(`Kurtosis y = ${F.format(v.kurty)}`)),B>0||$>0){const p=C=>v.matrix[C].toFixed(0);F.addText(`${p(6)} | ${p(7)} | ${p(7)}`),F.addText(`${p(3)} | ${p(4)} | ${p(5)}`),F.addText(`${p(0)} | ${p(1)} | ${p(2)}`)}return Y&&F.fillFunctionStat(this.findFunction(x.clTF2),Y,2),!0}drawBinsColor(){const F=this.getHisto(),J=this.prepareDraw(),Y=this.getContour(),he=this.getHistPalette(),Q=[],me=this._show_empty_bins,X=1===J.xbar2&&0===J.xbar1,B=1===J.ybar2&&0===J.ybar1;let $,g,E,_,v,p,C,I=null,U=!this.options.Zero;const k=this.options.cutg,Z=()=>{I.path+=`h${$}v${I.y1-I.y2}h${-$}z`,I=null};!U&&!me&&null===Y.getPaletteIndex(he,0)&&(U=!0);for(let ee=J.i1;ee=J.j1;--ue){if(v=F.getBinContent(ee+1,ue+1),p=0===v,p&&U||k&&!k.IsInside(F.fXaxis.GetBinCoord(ee+.5),F.fYaxis.GetBinCoord(ue+.5))){I&&Z();continue}if(C=Y.getPaletteIndex(he,v),null===C){if(!p||!me){I&&Z();continue}C=0}g=J.gry[ue]-J.gry[ue+1]||1,B?_=J.gry[ue+1]:(_=Math.round(J.gry[ue]-g*J.ybar2),g=Math.round(g*(J.ybar2-J.ybar1))||1);const V=`M${E},${_}`;let b=Q[C];if(b){if(B&&b===I){b.y1=_+g;continue}{const P=E-b.x1,T=_-b.y2;if(P||T){const z=`m${P},${T}`;b.path+=z.length{ee&&this.draw_g.append("svg:path").attr("fill",he.getColor(ue)).attr("d",ee.path)}),J}drawBinsProjected(){const F=this.prepareDraw({rounding:!1,nozoom:!0,extra:100,original:!0}),J=this.getFramePainter(),Y=J.getGrFuncs(this.options.second_x,this.options.second_y),he=this.getContourLevels(),Q=this.getHistPalette(),me=J.getProjectionFunc();return F.grz=X=>X,F.grz_min=he[0],F.grz_max=he[he.length-1],He(this.getHisto(),F,he,(X,B)=>{let g,E,$="";for(let _=0;_{const E=$.x2-$.x1,_=$.y2-$.y1,v=g.x2-g.x1,p=g.y2-g.y1,C=E*p-v*_;if(0===C)return 0;const I=C>0,U=$.x1-g.x1,k=$.y1-g.y1,Z=E*k-_*U;if(Z<0===I)return null;const ee=v*k-p*U;if(ee<0===I||Z>C===I||ee>C===I)return null;const ue=ee/C;return{x:Math.round($.x1+ue*E),y:Math.round($.y1+ue*_)}},B=($,g,E,_,v,p)=>{let I,U,k,Z,ue,V,b,C="",ee=!1;for(let Ge=E;Ge<=_;++Ge){if(V=Math.round($[Ge]),b=Math.round(g[Ge]),C)if(Ge===_&&E!==_&&V===k&&b===Z){if(!ee)return"";C+="z",v=!1,ue=!0}else{const lt=V-I,bt=b-U;lt?(ee=!0,C+=bt?`l${lt},${bt}`:`h${lt}`):bt&&(ee=!0,C+=`v${bt}`)}else C=`M${V},${b}`,k=V,Z=b;I=V,U=b}if(!v||ue||!p)return v?C+"z":C;const P=[{x:0,y:0},{x:Y,y:0},{x:Y,y:he},{x:0,y:he}],T=(Ge,lt)=>{const bt={x1:$[Ge],y1:g[Ge],x2:2*$[Ge]-$[Ge+lt],y2:2*g[Ge]-g[Ge+lt]};for(let te=0;te<4;++te){const Je=X(bt,{x1:P[te].x,y1:P[te].y,x2:P[(te+1)%4].x,y2:P[(te+1)%4].y});if(Je)return Je.indx=te+.5,Je}return null};let z,W;for(E--;E<_-1&&!z;)z=T(++E,1);if(!z)return"";for(_++;E<_-1&&!W;)W=T(--_,-1);if(!W)return"";let fe=B($,g,E,_),we=W.indx;for(fe+=`L${W.x},${W.y}`;Math.abs(we-z.indx)>.1;)we=Math.round(we+.5)%4,fe+=`L${P[we].x},${P[we].y}`,we+=.5;return fe+`L${z.x},${z.y}z`};return 14===this.options.Contour&&this.draw_g.append("svg:path").attr("d",`M0,0h${Y}v${he}h${-Y}z`).style("fill",me.calcColor(0,Q.length)),Ze(this.getHisto(),F,Q,me,($,g,E,_,v,p)=>{const C=me.getColor($);let U,I=C;switch(this.options.Contour){case 1:case 14:break;case 11:I="none",U=this.createAttLine({color:C,std:!1});break;case 12:I="none",U=this.createAttLine({color:1,style:p%5+1,width:1,std:!1});break;case 13:I="none",U=this.lineatt}const k=B(g,E,_,v,"none"!==I,!0);if(!k)return;const Z=this.draw_g.append("svg:path").attr("d",k).style("fill",I);U&&Z.call(U.func)}),F.hide_only_zeros=!0,F}createPolyBin(F,J,Y){let B,he="",Q="",me=0,X=0,$=1,g=null;J.fPoly._typename===x.clTMultiGraph?$=J.fPoly.fGraphs.arr.length:g=J.fPoly,Y&&(J._sumx=J._sumy=J._suml=0);const E=(v,p,C,I)=>{const U=Math.sqrt((v-C)**2+(p-I)**2);J._sumx+=(v+C)*U/2,J._sumy+=(p+I)*U/2,J._suml+=U},_=()=>{me&&(Q+="h"+me,me=0),X&&(Q+="v"+X,X=0)};for(B=0;B<$;++B){(!g||B>0)&&(g=J.fPoly.fGraphs.arr[B]);const v=g.fX,p=g.fY;let C,I,U,Z,ee,k=g.fNpoints,ue=Math.round(F.grx(v[0])),V=Math.round(F.gry(p[0]));k>2&&v[0]===v[k-1]&&p[0]===p[k-1]&&k--;const b=`M${ue},${V}`;for(Q="",C=1;C0?(J._midx=Math.round(J._sumx/J._suml),J._midy=Math.round(J._sumy/J._suml)):(J._midx=Math.round(F.grx((J.fXmin+J.fXmax)/2)),J._midy=Math.round(F.gry((J.fYmin+J.fYmax)/2)))),he}drawPolyBinsColor(){var F=this;return(0,Te.A)(function*(){const J=F.getObject(),Y=F.getFramePainter(),he=Y.getGrFuncs(F.options.second_x,F.options.second_y),Q=Y.getFrameHeight(),me=[],X=[],B=J.fBins.arr.length;let $,g,E,_,v;F.maxbin=F.gmaxbin,F.minbin=F.gminbin,F.minposbin=F.gminposbin;const p=F.getContour(!0),C=F.getHistPalette(),I=F.options.Line||F.options.Text;for(v=0;vhe.scale_xmax||E.fXmaxhe.scale_ymax||E.fYmax0){const k=F.getColor(J.fMarkerColor),Z=-1*F.options.TextAngle,ee=F.draw_g.append("svg:g").attr("class","th2poly_text"),ue=1!==J.fMarkerSize&&Z?Math.round(.02*Q*J.fMarkerSize):12;for(F.startTextDrawing(42,ue,ee,ue),v=0;v({poly:!0}))})()}drawBinsText(F){var J=this;return(0,Te.A)(function*(){const Y=J.getObject(),he=J.options.cutg,Q=J.getColor(Y.fMarkerColor),me=-1*J.options.TextAngle,X=J.draw_g.append("svg:g").attr("class","th2_text"),B=J.matchObjectType(x.clTProfile2D)&&(0,x.isFunc)(Y.getBinEntries),$="E"===J.options.TextKind,g=$&&!J.options.TextLine?1:0;let E,_,v,p,C=20,I=0;F||(F=J.prepareDraw({rounding:!1})),1!==Y.fMarkerSize&&me&&(C=Math.round(.02*Y.fMarkerSize*J.getFramePainter().getFrameHeight())),0!==Y.fBarOffset&&(I=.001*Y.fBarOffset),J.startTextDrawing(42,C,X,C);for(let U=F.i1;UF)})()}drawBinsArrow(){const F=this.getObject(),J=this.options.cutg,Y=this.prepareDraw({rounding:!1}),he=(Y.grx[Y.i2]-Y.grx[Y.i1])/(Y.i2-Y.i1+1)/2,Q=(Y.gry[Y.j2]-Y.gry[Y.j1])/(Y.j2-Y.j1+1)/2,me=(P,T)=>P?T?`l${P},${T}`:`h${P}`:T?`v${T}`:"";let X,B,g,E,_,v,C,I,U,k,Z,ee,ue,V,b,$=1e-30,p="";for(let P=0;P<2;++P)for(X=Y.i1;X5||Math.abs(E)>5)&&(ue=Math.sqrt(9/(g**2+E**2)),V=Math.round(ue*(g+E)),b=Math.round(ue*(g-E)),(V||b)&&(p+=`m${-V},${b}${me(V,-b)}${me(-b,-V)}`)))));return this.draw_g.append("svg:path").attr("d",p).style("fill","none").call(this.lineatt.func),Y}drawBinsBox(){const F=this.getObject(),J=this.prepareDraw({rounding:!1}),Y=this.getMainPainter();Y===this&&(Y.maxbin===Y.minbin&&(Y.maxbin=Y.gmaxbin,Y.minbin=Y.gminbin,Y.minposbin=Y.gminposbin),Y.maxbin===Y.minbin&&(Y.minbin=Math.min(0,Y.maxbin-1)));const he=Math.max(Math.abs(Y.maxbin),Math.abs(Y.minbin)),Q=Math.max(0,Y.minbin),me=this.getPadPainter().getRootPad(!0),X=this.options.cutg;let B,$,g,E,I,U,k,Z,ee,ue,V,b,_="",v="",p="",C="",P=!1,T=0;if((me?.fLogv??me?.fLogz)&&he>0){P=!0;const z=Math.log(he);T=Q>0?Math.log(Q):Y.minposbin>=1&&Y.minposbin<100?Math.log(.7):Y.minposbin>0?Math.log(.7*Y.minposbin):z-10,T>=z&&(T=z-10),b=1/(z-T)}else b=1/(he-Q);for(B=J.i1;B0?Math.log(E)-T:0:E-Q,I=.5*(I<0?1:1-Math.sqrt(I*b)),I<0&&(I=0),ue=J.grx[B+1]-J.grx[B],V=J.gry[$]-J.gry[$+1],U=I*ue,k=I*V,Z=Math.round(J.grx[B]+U),ee=Math.round(J.gry[$+1]+k),ue=Math.max(Math.round(ue-2*U),1),V=Math.max(Math.round(V-2*k),1),_+=`M${Z},${ee}v${V}h${ue}v${-V}z`,g<0&&10===this.options.BoxStyle&&(v+=`M${Z},${ee}l${ue},${V}m0,${-V}l${-ue},${V}`),11===this.options.BoxStyle&&ue>5&&V>5)){const z=Math.round(.1*ue),W=Math.round(.1*V),fe=`M${Z},${ee}h${ue}l${-z},${W}h${2*z-ue}v${V-2*W}l${-z},${W}z`,we=`M${Z+ue},${ee+V}v${-V}l${-z},${W}v${V-2*W}h${2*z-ue}l${-z},${W}z`;p+=g<0?we:fe,C+=g<0?fe:we}if(_){const z=this.draw_g.append("svg:path").attr("d",_).call(this.fillatt.func);11!==this.options.BoxStyle&&this.fillatt.empty()&&z.call(this.lineatt.func)}if(p&&this.fillatt.hasColor()&&this.draw_g.append("svg:path").attr("d",p).call(this.fillatt.func).style("fill",(0,L.Qh)(this.fillatt.color).brighter(.5).formatHex()),C&&this.draw_g.append("svg:path").attr("d",C).call(this.fillatt.func).style("fill",this.fillatt.hasColor()?(0,L.Qh)(this.fillatt.color).darker(.5).formatHex():"red"),v){const z=this.draw_g.append("svg:path").attr("d",v).style("fill","none");this.lineatt.empty()?z.style("stroke","black"):z.call(this.lineatt.func)}return J}drawBinsCandle(){let ue=0;const V=Cn=>{let yn=1;for(;Cn>=yn;)yn*=10;return yn/=10,Math.floor(ue/yn)%10===Math.floor(Cn/yn)},b=(Cn,yn)=>{let Sn="",ii="",ai=0;const zi=Cn[0],ti=Cn[1];if(zi>="A"&&zi<="Z"&&(Sn=zi),zi>="1"&&zi<="9"&&(ii=zi),ti>="A"&&ti<="Z"&&ii&&(Sn=ti),ti>="1"&&ti<="9"&&Sn&&(ii=ti),yn)switch(ii){case"1":default:ai+=11311;break;case"2":ai+=112111;break;case"3":ai+=112311;break;case"4":ai+=112321;break;case"5":ai+=212111;break;case"6":ai+=312311}else switch(ii){case"1":default:ai+=13001300;break;case"2":ai+=13102300}const Lr=Cn.indexOf("("),ss=Cn.lastIndexOf(")");Lr>=0&&ss>Lr+1&&(ai=parseInt(Cn.slice(Lr+1,ss))),ue=ai,("Y"===Sn||"H"===Sn)&&!V(1e8)&&(ue+=1e8)};this.options.Candle?b(this.options.Candle,!0):this.options.Violin&&b(this.options.Violin,!1);const T=this.getHisto(),z=this.prepareDraw(),W=this.getFramePainter(),fe=this.getCanvPainter(),we=W.getGrFuncs(this.options.second_x,this.options.second_y),Me=V(1e8);let Ne,rt,je="",Ge="",lt="",bt="",te="",Je="",tt="",Fe=null,St=x.gStyle.fViolinScaled,pt=x.gStyle.fCandleScaled,st=0,vt=0;if(null!==this.options.Scaled?St=pt=this.options.Scaled:fe?.online_canvas||(T.fTitle.indexOf("unscaled")>=0?St=pt=!1:T.fTitle.indexOf("scaled")>=0&&(St=pt=!0)),St&&(V(2e6)||V(1e6)||V(3e6)))for(let Cn=0;Cn{"array"===Cn[1]&&(Cn=Cn[0]);const yn=Cn.length;let Sn=2,ii=Cn[0],ai=Cn[1],zi=Me?`M${ai},${ii}`:`M${ii},${ai}`;for(;Sn{Je||(this.createAttMarker({attr:T,style:V(3e5)?0:5}),this.markeratt.resetPos()),Je+=Me?this.markeratt.create(yn,Cn):this.markeratt.create(Cn,yn)},Ot=(Cn,yn)=>{Fe||(Fe=this.createAttMarker({attr:T,style:24,std:!1}),Fe.resetPos()),tt+=Me?Fe.create(yn,Cn):Fe.create(Cn,yn)};1===T.fMarkerColor&&(T.fMarkerColor=T.fLineColor),z.candle=[];const Bn=x.gStyle.fCandleWhiskerRange,Mn=x.gStyle.fCandleBoxRange,bn=[Bn>=1?1e-15:.5-Bn/2,Mn>=1?1e-14:.5-Mn/2,.5,Mn>=1?1-1e-14:.5+Mn/2,Bn>=1?1-1e-15:.5+Bn/2],Dn=(Cn,yn,Sn,ii,ai)=>{const zi=((Cn,yn,Sn)=>{let ii=0,ai=0,zi=0;const ti={max:0,first:-1,last:-1,entries:0};for(let Lr=0;Lr0&&(ti.max=Math.max(ti.max,yn[Lr]),ti.first<0&&(ti.first=Lr),ti.last=Lr),ii+=yn[Lr],zi+=yn[Lr]*(Cn[Lr]+Cn[Lr+1])/2;if(ii<=0)return null;ti.entries=ii,ti.mean=zi/ii,ti.quantiles=new Array(Sn.length),ti.indx=new Array(Sn.length);for(let Lr=0,ss=0,Bs=0;Lr=yo&&Sn[ai]cn&&In>0;)In--;for(;!rt[In];)In++;for(ss=Ne[In],cn=ti.fBoxUp+1.5*Lr,In=zi.indx[3];Ne[In]0&&1e3!==T.fBarWidth?ge=ye=K*T.fBarWidth/1e3:(ge=.66*K,ye=.8*K),St&&st>0&&(ye*=zi.max/st),pt&&vt>0&&(ge*=zi.entries/vt),ti.x1=Math.round(Pe-ge/2),ti.x2=Math.round(Pe+ge/2),Pe=Math.round(Pe);const At=Math.round(Pe-ge/3),Ht=Math.round(Pe+ge/3),Nt=Me?we.grx:we.gry;ti.yy1=Math.round(Nt(Bs)),ti.y1=Math.round(Nt(ti.fBoxUp)),ti.y0=Math.round(Nt(ti.fMedian)),ti.y2=Math.round(Nt(ti.fBoxDown)),ti.yy2=Math.round(Nt(ss));const nn=Math.round(Nt(yo)),un=Math.round(Nt(ti.fMedian+xt)),kn=Math.round(Nt(ti.fMedian-xt));if(V(1e7)&&(te+=Yt(Pe,Math.round(Nt(Ne[ii])),"V",Math.round(Nt(Ne[ai])))),V(10)?Ge+=Yt(ti.x1,ti.y0,"H",ti.x2):V(20)?Ge+=Yt(At,ti.y0,"H",Ht):V(30)&&Ot(Pe,ti.y0),V(300)?Ot(Pe,nn):V(100)&&(lt+=Yt(ti.x1,nn,"H",ti.x2)),V(1)&&(V(20)?je+=Yt(ti.x1,ti.y1,"V",un,At,ti.y0,ti.x1,kn,"V",ti.y2,"H",ti.x2,"V",kn,Ht,ti.y0,ti.x2,un,"V",ti.y1,"Z"):je+=Yt(ti.x1,ti.y1,"V",ti.y2,"H",ti.x2,"V",ti.y1,"Z")),V(1e4)&&(Ge+=Yt(ti.x1,ti.yy1,"H",ti.x2)+Yt(ti.x1,ti.yy2,"H",ti.x2)),V(1e3)&&!V(1e7)?lt+=Yt(Pe,ti.y1,"V",ti.yy1)+Yt(Pe,ti.y2,"V",ti.yy2):(V(1e3)&&V(1e7)||V(2e3))&&(Ge+=Yt(Pe,ti.y1,"V",ti.yy1)+Yt(Pe,ti.y2,"V",ti.yy2)),V(1e5)||V(2e5)||V(3e5)){const cn=new ke.YF(7521*Cn+Math.round(zi.integral)),In=!V(1e5),ci=V(3e5);for(let Pi=0;Pi=ss&&bi<=Bs))for(let Ln=0;Ln0&&zi.first>=0){const cn=[],In=(Me?-.5:.5)*ye/zi.max;if(ii=Math.max(ii,zi.first),ai=Math.min(ai-1,zi.last),V(2e6)||V(3e6)){let ci=Pe,Pi=Math.round(Nt(Ne[ii]));cn.push(ci,Pi);for(let Si=ii;Si<=ai;Si++){const bi=Math.round(Pe+In*rt[Si]),Jn=Math.round(Nt(Ne[Si+1]));bi!==ci&&(Si!==ii&&cn.push("V",Pi),cn.push("H",bi)),ci=bi,Pi=Jn}cn.push("V",Pi)}if(V(1e6)||V(3e6)){let ci=Pe,Pi=Math.round(Nt(Ne[ai+1]));0===cn.length&&cn.push(ci,Pi);for(let Si=ai;Si>=ii;Si--){const bi=Math.round(Pe-In*rt[Si]),Jn=Math.round(Nt(Ne[Si]));bi!==ci&&(Si!==ai&&cn.push("V",Pi),cn.push("H",bi)),ci=bi,Pi=Jn}cn.push("V",Pi)}cn.push("H",Pe),bt+=Yt(cn,"array"),this.fillatt.empty()||(bt+="Z")}z.candle.push(ti)};if(Me){Ne=new Array(this.nbinsx+1),rt=new Array(this.nbinsx);for(let Cn=0;Cn0&&this.draw_g.append("svg:path").attr("d",te).style("stroke",this.getColor(T.fFillColor));const $n=V(1e7)&&0!==T.fFillStyle?this.fillatt.color:this.lineatt.color;if(bt&&(!this.fillatt.empty()||"none"!==$n)&&this.draw_g.append("svg:path").attr("d",bt).style("stroke","none"!==$n?$n:null).style("pointer-events",this.isBatchMode()?null:"visibleFill").call(this.fillatt.func),je&&this.draw_g.append("svg:path").attr("d",je).call(this.lineatt.func).call(this.fillatt.func),Ge&&this.draw_g.append("svg:path").attr("d",Ge).call(this.lineatt.func).style("fill","none"),lt){const Cn=this.createAttLine({attr:T,style:2,std:!1,color:ve.tA});this.draw_g.append("svg:path").attr("d",lt).call(Cn.func).style("fill","none")}return tt&&this.draw_g.append("svg:path").attr("d",tt).call(Fe.func),Je&&this.draw_g.append("svg:path").attr("d",Je).call(this.markeratt.func),z}drawBinsScatter(){const F=this.getObject(),J=this.prepareDraw({rounding:!0,pixel_density:!0}),Y=this.options.cutg,he=[],Q=[],me=[],X=[],B=[],$=this.options.ScatCoef*(this.gmaxbin>2e3?2e3/this.gmaxbin:1),g=new ke.YF(J.sumz);let E,_,v,p,C,I,U,k,Z=1;if(J.ScatterPlot=!0,$*J.sumz<1e5){this.createAttMarker({attr:F}),this.markeratt.resetPos();let P="";for(p=J.i1;p.7&&(Z=.7/this.maxbin);const ee=Math.round(J.max-J.min),ue=this.createContour(ee>50?50:ee,this.minposbin,this.maxbin,this.minposbin);for(p=J.i1;p0&&(b=V.insert("svg:defs",":first-child")),this.createAttMarker({attr:F}),E=0;E{this.tt_handle=Y})}drawBinsCircular(){this.getFrameSvg().style("display","none"),this._hide_frame=!0;const F=this.getPadPainter().getFrameRect(),J=this.getHisto(),Y=this.options.Circular>10?this.getHistPalette():null,me=J.fXaxis,X=v=>{if(me.fLabels)for(let p=0;p90)&&(ee+=180,ue=32);const V=Math.round(10),b=2*V;this.draw_g.append("path").attr("d",`M${C-V},${I} a${V},${V},0,1,0,${b},0a${V},${V},0,1,0,${-b},0z`).style("stroke",Z).style("fill","none"),this.drawText({align:ue,rotate:ee,x:U,y:k,text:X(v)})}let E=0,_=0;if(this.options.Circular>11)for(let v=0;v0&&(E=Math.max(E,C),(!_||C<_)&&(_=C))}for(let v=0;v11&&E>_){const b=Math.round((U-_)/(E-_)*7+1);this.draw_g.append("path").attr("d",C).style("stroke",p.color).style("stroke-width",b).style("fill","none"),C=""}}C&&this.draw_g.append("path").attr("d",C).style("stroke",p.color).style("fill","none")}return this.finishTextDrawing()}drawBinsChord(){var F=this;return(0,Te.A)(function*(){F.getFrameSvg().style("display","none"),F._hide_frame=!0;const J=[],Y=Math.min(F.nbinsx,F.nbinsy),he=F.getHisto();let Q=0,me=!0;for(let z=0;z0&&(W+=we,me&&Math.round(we)!==we&&(me=!1))}W>0&&J.push(z),Q+=W}if(J.length<2)return!0;let X=0,B=1;const $=F.getPadPainter().getFrameRect(),g=F.getHistPalette(),E=Math.max(10,.5*Math.min($.width,$.height)-60),_=Math.max(2,E-10),v=[],p=[],C=z=>g.calcColor(z,J.length),I=z=>z.toString(),k=(z,W)=>Wz?1:W>=z?0:Number.NaN;if(!me&&Q<10){const z=Math.round(Math.log10(Q)-2.3);X=-z,B=Math.pow(10,z)}else if(Q>200){const z=Math.round(Math.log10(Q)-2.3);B=Math.pow(10,z)}250*BC(z.index)).attr("d",V),ue.append("title").text(z=>`${p[z.index]} ${I(z.value)}`);const T=ue.append("g").selectAll("g").data(function P({startAngle:z,endAngle:W,value:fe}){const we=(W-z)/fe,Me=[];for(let je=0;je<=fe;je+=B)Me.push({value:je,angle:je*we+z});return Me}).join("g").attr("transform",z=>`rotate(${Math.round(180*z.angle/Math.PI-90)}) translate(${E})`);return T.append("line").attr("stroke","currentColor").attr("x2",6),T.append("text").attr("x",8).attr("dy","0.35em").attr("transform",z=>z.angle>Math.PI?"rotate(180) translate(-16)":null).attr("text-anchor",z=>z.angle>Math.PI?"end":null).text(z=>(z=>X>3?z.toExponential(0):z.toFixed(X))(z.value)),ue.select("text").attr("font-weight","bold").text(function(z){return"end"===this.getAttribute("text-anchor")?`\u2191 ${p[z.index]}`:`${p[z.index]} \u2193`}),F.draw_g.append("g").attr("fill-opacity",.8).selectAll("path").data(ee).join("path").style("mix-blend-mode","multiply").attr("fill",z=>C(z.source.index)).attr("d",b).append("title").text(z=>`${I(z.source.value)} ${p[z.target.index]} \u2192 ${p[z.source.index]}${z.source.index===z.target.index?"":`\n${I(z.target.value)} ${p[z.source.index]} \u2192 ${p[z.target.index]}`}`),!0})()}getBinTooltips(F,J){const Y=this.getHisto();let he=Y.getBinContent(F+1,J+1);Y.$baseh&&(he-=Y.$baseh.getBinContent(F+1,J+1));const Q=[this.getObjectHint(),"x = "+this.getAxisBinTip("x",Y.fXaxis,F),"y = "+this.getAxisBinTip("y",Y.fYaxis,J),`bin = ${Y.getBin(F+1,J+1)} x: ${F+1} y: ${J+1}`,"entries = "+(he===Math.round(he)?he:(0,ke.lg)(he,x.gStyle.fStatFormat))];if("E"===this.options.TextKind||this.matchObjectType(x.clTProfile2D)){const me=Y.getBinError(Y.getBin(F+1,J+1));Q.push("error = "+(me===Math.round(me)?me.toString():(0,ke.lg)(me,x.gStyle.fPaintTextFormat)))}return Q}getCandleTooltips(F){const Y=this.getFramePainter().getGrFuncs(this.options.second_x,this.options.second_y),he=this.getHisto();return[this.getObjectHint(),F.swapXY?"y = "+Y.axisAsText("y",he.fYaxis.GetBinLowEdge(F.bin+1)):"x = "+Y.axisAsText("x",he.fXaxis.GetBinLowEdge(F.bin+1)),"m-25% = "+(0,ke.lg)(F.fBoxDown,x.gStyle.fStatFormat),"median = "+(0,ke.lg)(F.fMedian,x.gStyle.fStatFormat),"m+25% = "+(0,ke.lg)(F.fBoxUp,x.gStyle.fStatFormat)]}getPolyBinTooltips(F,J,Y){const Q=this.getHisto().fBins.arr[F],X=this.getFramePainter().getGrFuncs(this.options.second_x,this.options.second_y),B=[];let $=Q.fPoly.fName,g=0;if("Graph"===$&&($=""),0===$.length&&($=Q.fNumber),void 0===J&&void 0===Y){J=Y=0;let E=Q.fPoly,_=1;E._typename===x.clTMultiGraph&&(_=Q.fPoly.fGraphs.arr.length,E=null);for(let v=0;v<_;++v){(!E||v>0)&&(E=Q.fPoly.fGraphs.arr[v]);for(let p=0;p1&&(J/=g,Y/=g)}return B.push(this.getObjectHint(),"x = "+X.axisAsText("x",J),"y = "+X.axisAsText("y",Y)),g>0&&B.push("npnts = "+g),B.push(`bin = ${$}`),Q.fContent===Math.round(Q.fContent)?B.push("content = "+Q.fContent):B.push("content = "+(0,ke.lg)(Q.fContent,x.gStyle.fStatFormat)),B}processTooltipEvent(F){const J=this.getHisto(),Y=this.tt_handle;let he=this.draw_g?.selectChild(".tooltip_bin");if(!F||!this.draw_content||!this.draw_g||!Y||this.options.Proj)return he?.remove(),null;if(Y.poly){const ee=this.getFramePainter().getGrFuncs(this.options.second_x,this.options.second_y),ue=ee.revertAxis("x",F.x),V=ee.revertAxis("y",F.y);let P,b=-1;if(void 0!==ue&&void 0!==V){const z=J.fBins.arr.length;for(let W=0;WP.fXmax||VP.fYmax||0===P.fContent&&!this.options.Zero)continue;let fe=P.fPoly,we=1;fe._typename===x.clTMultiGraph&&(we=P.fPoly.fGraphs.arr.length,fe=null);for(let Me=0;Me0)&&(fe=P.fPoly.fGraphs.arr[Me]),fe.IsInside(ue,V)){b=W;break}}}if(b<0)return he.remove(),null;const T={name:J.fName,title:J.fTitle,x:F.x,y:F.y,color1:this.lineatt?.color??"green",color2:this.fillatt?.getFillColorAlt("blue")??"blue",exact:!0,menu:!0,lines:this.getPolyBinTooltips(b,ue,V)};return F.disabled?(he.remove(),T.changed=!0):(he.empty()&&(he=this.draw_g.append("svg:path").attr("class","tooltip_bin").style("pointer-events","none").call(ke.Ru)),T.changed=he.property("current_bin")!==b,T.changed&&he.attr("d",this.createPolyBin(ee,P)).style("opacity","0.7").property("current_bin",b)),T.changed&&(T.user_info={obj:J,name:J.fName,bin:b,cont:P.fContent,grx:F.x,gry:F.y}),T}if(Y.candle){let Z,ee,ue;for(Z=0;Z=F.x&&F.x>=ee.yy2:ee.x1<=F.x&&F.x<=ee.x2&&ee.yy1<=F.y&&F.y<=ee.yy2,!ue);++Z);if(!ue)return he.remove(),null;const V={name:J.fName,title:J.fTitle,x:F.x,y:F.y,color1:this.lineatt?.color??"green",color2:this.fillatt?.getFillColorAlt("blue")??"blue",lines:this.getCandleTooltips(ee),exact:!0,menu:!0};return F.disabled?(he.remove(),V.changed=!0):(he.empty()&&(he=this.draw_g.append("svg:path").attr("class","tooltip_bin").style("pointer-events","none").call(ke.Ru).style("opacity","0.7")),V.changed=he.property("current_bin")!==Z,V.changed&&he.attr("d",ee.swapXY?`M${ee.yy1},${ee.x1}H${ee.yy2}V${ee.x2}H${ee.yy1}Z`:`M${ee.x1},${ee.yy1}H${ee.x2}V${ee.yy2}H${ee.x1}Z`).property("current_bin",Z)),V.changed&&(V.user_info={obj:J,name:J.fName,bin:Z+1,cont:ee.fMedian,binx:Z+1,biny:1,grx:F.x,gry:F.y}),V}const Q=this.getFramePainter();let me,X,g,E,_,v,p,C,I,U,B=0,$=null;if(Q.reverse_x)for(me=Y.i1;me=Y.grx[me+1]);++me);else for(me=Y.i1;me=Y.grx[me]&&F.x<=Y.grx[me+1]);++me);if(Q.reverse_y)for(X=Y.j1;X=Y.gry[X]);++X);else for(X=Y.j1;X=Y.gry[X+1]&&F.y<=Y.gry[X]);++X);if(mep||F.x<=C)&&(Z=!1):(F.x=C)&&(Z=!1),Q.reverse_y?(F.y>I||F.y<=U)&&(Z=!1):(F.y=U)&&(Z=!1)}B=J.getBinContent(me+1,X+1),this.is_projection?$=0:Z?Y.hide_only_zeros?$=0!==B||this._show_empty_bins?0:null:($=this.getContour().getPaletteIndex(this.getHistPalette(),B),null===$&&0===B&&this._show_empty_bins&&($=0)):$=null}if(null===$)return he.remove(),null;const k={name:J.fName,title:J.fTitle,x:F.x,y:F.y,color1:this.lineatt?.color??"green",color2:this.fillatt?.getFillColorAlt("blue")??"blue",lines:this.getBinTooltips(me,X),exact:!0,menu:!0};if(this.options.Color&&(k.color2=this.getHistPalette().getColor($)),F.disabled&&!this.is_projection)he.remove(),k.changed=!0;else{he.empty()&&(he=this.draw_g.append("svg:path").attr("class","tooltip_bin").style("pointer-events","none").call(ke.Ru));let ee,Z=1e4*me+X;if(this.is_projection){const ue=this.projection_widthX||1,V=(ue-1)/2;this.is_projection.indexOf("X")>=0&&ue>1&&(v+V>=Y.j2?(v=Math.min(Math.round(v+V),Y.j2),_=Math.max(v-ue,Y.j1)):(_=Math.max(Math.round(_-V),Y.j1),v=Math.min(_+ue,Y.j2)));const b=this.projection_widthY||1,P=(b-1)/2;this.is_projection.indexOf("Y")>=0&&b>1&&(E+P>=Y.i2?(E=Math.min(Math.round(E+P),Y.i2),g=Math.max(E-b,Y.i1)):(g=Math.max(Math.round(g-P),Y.i1),E=Math.min(g+b,Y.i2)))}"X"===this.is_projection?(p=0,C=Q.getFrameWidth(),I=Y.gry[v],U=Y.gry[_],Z=777*_+333*v):"Y"===this.is_projection?(I=0,U=Q.getFrameHeight(),p=Y.grx[g],C=Y.grx[E],Z=777*g+333*E):"XY"===this.is_projection&&(I=Y.gry[v],U=Y.gry[_],p=Y.grx[g],C=Y.grx[E],Z=789*g+653*E+12345*_+654321*v,ee=`M${p},0H${C}V${I}H${Q.getFrameWidth()}V${U}H${C}V${Q.getFrameHeight()}H${p}V${U}H0V${I}H${p}Z`),k.changed=he.property("current_bin")!==Z,k.changed&&he.attr("d",ee||`M${p},${I}H${C}V${U}H${p}Z`).style("opacity","0.7").property("current_bin",Z),this.is_projection&&k.changed&&this.redrawProjection(g,E,_,v)}return k.changed&&(k.user_info={obj:J,name:J.fName,bin:J.getBin(me+1,X+1),cont:B,binx:me+1,biny:X+1,grx:F.x,gry:F.y}),k}canZoomInside(F,J,Y){if("z"===F||this.options.Proj)return!0;let he=this.getHisto();return he&&(he="y"===F?he.fYaxis:he.fXaxis),!he||he.FindBin(Y,.5)-he.FindBin(J,0)>1}completePalette(F){return!F||(F.$main_painter=this,this.options.Zvert=F._palette_vertical,F.drawPave(this.options.Cjust?"cjust":""))}draw2D(){var F=this;return(0,Te.A)(function*(){F.clear3DScene();const J=F.options.Zscale&&F.options.canHavePalette();return F.drawColorPalette(J,!0).then(function(){var Y=(0,Te.A)(function*(he){let Q;return Q=F.options.Circular&&F.isMainPainter()?F.drawBinsCircular():F.options.Chord&&F.isMainPainter()?F.drawBinsChord():F.drawAxes().then(()=>F.draw2DBins()),Q.then(()=>F.completePalette(he))});return function(he){return Y.apply(this,arguments)}}()).then(()=>F.drawHistTitle()).then(()=>F.updateFunctions()).then(()=>(F.updateStatWebCanvas(),F.addInteractivity()))})()}draw3D(F){var J=this;return(0,Te.A)(function*(){return console.log("3D drawing is disabled, load ./hist/TH2Painter.mjs"),J.draw2D(F)})()}callDrawFunc(F){var J=this;return(0,Te.A)(function*(){const Y=J.getMainPainter(),he=J.getFramePainter();return Y!==J&&he&&he.mode3d!==J.options.Mode3D&&J.copyOptionsFrom(Y),J.options.Mode3D?J.draw3D(F):J.draw2D(F)})()}redraw(F){var J=this;return(0,Te.A)(function*(){return J.callDrawFunc(F)})()}static draw(F,J,Y){return(0,Te.A)(function*(){return Ye.mf._drawHist(new Ve(F,J),Y)})()}}},4615:(Yr,mt,Se)=>{"use strict";Se.d(mt,{Ee:()=>Re,Z8:()=>J,ZE:()=>Ve,eP:()=>Y,ef:()=>He,kH:()=>De,m:()=>Ze,mf:()=>me});var Te=Se(4882),x=Se(8872),L=Se(2985),ve=Se(2843),ke=Se(1922),ot=Se(5891),Ye=Se(4483);const Ze=1,Re=2,He=3,Ve=4,De=5;class F{constructor(){this.reset()}reset(){Object.assign(this,{Axis:0,RevX:!1,RevY:!1,SymlogX:0,SymlogY:0,Bar:!1,BarStyle:0,Curve:!1,Hist:1,Line:!1,Fill:!1,Error:0,ErrorKind:-1,errorX:x.gStyle.fErrorX,Mark:!1,Same:!1,Scat:!1,ScatCoef:1,Func:!0,AllFunc:!1,Arrow:!1,Box:!1,BoxStyle:0,Text:!1,TextAngle:0,TextKind:"",Char:0,Color:!1,Contour:0,Cjust:!1,Lego:0,Surf:0,Off:0,Tri:0,Proj:0,AxisPos:0,Ortho:x.gStyle.fOrthoCamera,Spec:!1,Pie:!1,List:!1,Zscale:!1,Zvert:!0,PadPalette:!1,Candle:"",Violin:"",Scaled:null,Circular:0,GLBox:0,GLColor:!1,Project:"",System:Ze,AutoColor:!1,NoStat:!1,ForceStat:!1,PadStats:!1,PadTitle:!1,AutoZoom:!1,HighRes:0,Zero:1,Palette:0,BaseLine:!1,Optimize:x.settings.OptimizeDraw,adjustFrame:!1,Mode3D:!1,x3dscale:1,y3dscale:1,Render3D:x.constants.Render3D.Default,FrontBox:!0,BackBox:!0,need_fillcol:!1,minimum:x.kNoZoom,maximum:x.kNoZoom,ymin:0,ymax:0,cutg:null,IgnoreMainScale:!1})}isCartesian(){return this.System===Ze}decodeSumw2(B,$){const g=B.fSumw2?.length??0;let E=!1;for(let _=0;_0){E=!0;break}(Number.isInteger(this.Error)||$)&&(this.Error=E?1:0),(Number.isInteger(this.Hist)||$)&&(this.Hist=E?0:1),(Number.isInteger(this.Zero)||$)&&(this.Zero=E?0:1)}canHavePalette(){return 2===this.ndim&&(this.Mode3D?12===this.Lego||14===this.Lego||11===this.Surf||12===this.Surf:!!(this.Color||this.Contour||this.Axis)||!(this.Scat||this.Box||this.Arrow||this.Proj||this.Candle||this.Violin||this.Text))}decode(B,$,g,E,_,v){if(this.orginal=B,this.cutg_name="",(0,x.isStr)(B)&&2===$){const ee=B.lastIndexOf("["),ue=B.lastIndexOf("]");ee>=0&&ue>ee+1&&(this.cutg_name=B.slice(ee+1,ue),B=B.slice(0,ee)+B.slice(ue+1),this.cutg=E?.findInPrimitives(this.cutg_name,x.clTCutG),this.cutg&&(this.cutg.$redraw_pad=!0))}const p=new ve.nC(B);1===$&&this.decodeSumw2(g,!0),this.ndim=$||1,p.check("USE_PAD_TITLE"),p.check("USE_PAD_PALETTE"),p.check("USE_PAD_STATS"),p.check("PAL",!0)&&(this.Palette=p.partAsInt()),p.check("MINIMUM:",!0)?(this.ominimum=!0,this.minimum=parseFloat(p.part)):(this.ominimum=!1,this.minimum=g.fMinimum),p.check("MAXIMUM:",!0)?(this.omaximum=!0,this.maximum=parseFloat(p.part)):(this.omaximum=!1,this.maximum=g.fMaximum),p.check("HMIN:",!0)?(this.ohmin=!0,this.hmin=parseFloat(p.part)):(this.ohmin=!1,delete this.hmin),p.check("HMAX:",!0)?(this.ohmax=!0,this.hmax=parseFloat(p.part)):(this.ohmax=!1,delete this.hmax),p.check("HTITLE:",!0)&&(g.fTitle=decodeURIComponent(p.part.toLowerCase())),p.check("XTITLE:",!0)&&(g.fXaxis.fTitle=decodeURIComponent(p.part.toLowerCase())),p.check("YTITLE:",!0)&&(g.fYaxis.fTitle=decodeURIComponent(p.part.toLowerCase())),p.check("ZTITLE:",!0)&&(g.fZaxis.fTitle=decodeURIComponent(p.part.toLowerCase())),p.check("FORCE_TITLE")&&(this.ForceTitle=!0),p.check("_ADJUST_FRAME_")&&(this.adjustFrame=!0),p.check("NOOPTIMIZE")&&(this.Optimize=0),p.check("OPTIMIZE")&&(this.Optimize=2),p.check("AUTOCOL")&&(this.AutoColor=!0),p.check("AUTOZOOM")&&(this.AutoZoom=!0),p.check("OPTSTAT",!0)&&(this.optstat=p.partAsInt()),p.check("OPTFIT",!0)&&(this.optfit=p.partAsInt()),(this.optstat||this.optstat)&&g?.TestBit(x.kNoStats)&&g?.InvertBit(x.kNoStats),p.check("NOSTAT")&&(this.NoStat=!0),p.check("STAT")&&(this.ForceStat=!0),p.check("NOTOOLTIP")&&v&&v.setTooltipAllowed(!1),p.check("TOOLTIP")&&v&&v.setTooltipAllowed(!0),p.check("SYMLOGX",!0)&&(this.SymlogX=p.partAsInt(0,3)),p.check("SYMLOGY",!0)&&(this.SymlogY=p.partAsInt(0,3)),p.check("X3DSC",!0)&&(this.x3dscale=p.partAsInt(0,100)/100),p.check("Y3DSC",!0)&&(this.y3dscale=p.partAsInt(0,100)/100),(p.check("PERSPECTIVE")||p.check("PERSP"))&&(this.Ortho=!1),p.check("ORTHO")&&(this.Ortho=!0);let C=0,I=0,U="";p.check("LOG2XY")&&(C=I=2),p.check("LOGXY")&&(C=I=1),p.check("LOG2X")&&(C=2),p.check("LOGX")&&(C=1),p.check("LOG2Y")&&(I=2),p.check("LOGY")&&(I=1),C&&_&&(_.fLogx=C,_.fUxmin=0,_.fUxmax=1,_.fX1=0,_.fX2=1),I&&_&&(_.fLogy=I,_.fUymin=0,_.fUymax=1,_.fY1=0,_.fY2=1),p.check("LOG2Z")&&_&&(_.fLogz=2),p.check("LOGZ")&&_&&(_.fLogz=1),p.check("LOGV")&&_&&(_.fLogv=1),p.check("GRIDXY")&&_&&(_.fGridx=_.fGridy=1),p.check("GRIDX")&&_&&(_.fGridx=1),p.check("GRIDY")&&_&&(_.fGridy=1),p.check("TICKXY")&&_&&(_.fTickx=_.fTicky=1),p.check("TICKX")&&_&&(_.fTickx=1),p.check("TICKY")&&_&&(_.fTicky=1),p.check("TICKZ")&&_&&(_.fTickz=1),p.check("GRAYSCALE")&&E?.setGrayscale(!0),p.getColor=function(){if(this.color=this.partAsInt(1)-1,this.color>=0)return!0;for(let ee=0;ee<8;++ee)if((0,L.oU)(ee).toUpperCase()===this.part)return this.color=ee,!0;return!1},p.check("FILL_",!0)&&p.getColor()&&(this.histoFillColor=p.color,this.histoFillPattern=1001),p.check("LINE_",!0)&&p.getColor()&&(this.histoLineColor=(0,L.oU)(p.color)),p.check("XAXIS_",!0)&&p.getColor()&&(g.fXaxis.fAxisColor=g.fXaxis.fLabelColor=g.fXaxis.fTitleColor=p.color),p.check("YAXIS_",!0)&&p.getColor()&&(g.fYaxis.fAxisColor=g.fYaxis.fLabelColor=g.fYaxis.fTitleColor=p.color);const k=!!v&&!!v.getMainPainter();p.check("X+")&&(this.AxisPos=10,this.second_x=k),p.check("Y+")&&(this.AxisPos+=1,this.second_y=k),p.check("SAME0")&&(this.Same=!0,this.IgnoreMainScale=!0),p.check("SAMES")&&(this.Same=!0,this.ForceStat=!0),p.check("SAME")&&(this.Same=!0,this.Func=!0),p.check("SPEC")&&(this.Spec=!0),(p.check("BASE0")||p.check("MIN0")||x.gStyle.fHistMinimumZero)&&(this.BaseLine=0),p.check("PIE")&&(this.Pie=!0),p.check("CANDLE",!0)&&(this.Candle=p.part||"1"),p.check("VIOLIN",!0)&&(this.Violin=p.part||"1",delete this.Candle),p.check("NOSCALED")&&(this.Scaled=!1),p.check("SCALED")&&(this.Scaled=!0),p.check("GLBOX",!0)&&(this.GLBox=10+p.partAsInt()),p.check("GLCOL")&&(this.GLColor=!0),p.check("GL"),(p.check("CIRCULAR",!0)||p.check("CIRC",!0))&&(this.Circular=11,p.part.indexOf("0")>=0&&(this.Circular=10),p.part.indexOf("1")>=0&&(this.Circular=11),p.part.indexOf("2")>=0&&(this.Circular=12)),this.Chord=p.check("CHORD"),p.check("LEGO",!0)&&(this.Lego=1,p.part.indexOf("0")>=0&&(this.Zero=!1),p.part.indexOf("1")>=0&&(this.Lego=11),p.part.indexOf("2")>=0&&(this.Lego=12),p.part.indexOf("3")>=0&&(this.Lego=13),p.part.indexOf("4")>=0&&(this.Lego=14),U=p.part,p.part.indexOf("Z")>=0&&(this.Zscale=!0),p.part.indexOf("H")>=0&&(this.Zvert=!1)),p.check("R3D_",!0)&&(this.Render3D=x.constants.Render3D.fromString(p.part.toLowerCase())),p.check("POL")&&(this.System=Re),p.check("CYL")&&(this.System=He),p.check("SPH")&&(this.System=Ve),p.check("PSR")&&(this.System=De),p.check("SURF",!0)&&(this.Surf=p.partAsInt(10,1),U=p.part,p.part.indexOf("Z")>=0&&(this.Zscale=!0),p.part.indexOf("H")>=0&&(this.Zvert=!1)),p.check("TF3",!0)&&(U=p.part),p.check("ISO",!0)&&(U=p.part),p.check("LIST")&&(this.List=!0),p.check("CONT",!0)&&$>1&&(this.Contour=1,p.part.indexOf("Z")>=0&&(this.Zscale=!0),p.part.indexOf("H")>=0&&(this.Zvert=!1),p.part.indexOf("1")>=0?this.Contour=11:p.part.indexOf("2")>=0?this.Contour=12:p.part.indexOf("3")>=0?this.Contour=13:p.part.indexOf("4")>=0&&(this.Contour=14)),p.check("HBAR",!0)?this.BarStyle=20:p.check("BAR",!0)&&(this.BarStyle=10),this.BarStyle>0&&(this.Hist=!1,this.need_fillcol=!0,this.BarStyle+=p.partAsInt()),p.check("ARR")&&(this.Arrow=!0),p.check("BOX",!0)&&(this.BoxStyle=10,p.part.indexOf("1")>=0?this.BoxStyle=11:p.part.indexOf("2")>=0?this.BoxStyle=12:p.part.indexOf("3")>=0&&(this.BoxStyle=13),p.part.indexOf("Z")>=0&&(this.Zscale=!0),p.part.indexOf("H")>=0&&(this.Zvert=!1)),this.Box=this.BoxStyle>0,p.check("CJUST")&&(this.Cjust=!0),p.check("COL")&&(this.Color=!0),p.check("CHAR")&&(this.Char=1),p.check("ALLFUNC")&&(this.AllFunc=!0),p.check("FUNC")&&(this.Func=!0,this.Hist=!1),p.check("AXIS")&&(this.Axis=1),p.check("AXIG")&&(this.Axis=2),p.check("TEXT",!0)&&(this.Text=!0,this.Hist=!1,this.TextAngle=Math.min(p.partAsInt(),90),p.part.indexOf("N")>=0&&(this.TextKind="N"),p.part.indexOf("E0")>=0&&(this.TextLine=!0),p.part.indexOf("E")>=0&&(this.TextKind="E")),p.check("SCAT=",!0)&&(this.Scat=!0,this.ScatCoef=parseFloat(p.part),(!Number.isFinite(this.ScatCoef)||this.ScatCoef<=0)&&(this.ScatCoef=1)),p.check("SCAT")&&(this.Scat=!0),p.check("TRI",!0)&&(this.Color=!1,this.Tri=1,U=p.part,p.part.indexOf("ERR")>=0&&(this.Error=!0)),p.check("AITOFF")&&(this.Proj=1),p.check("MERCATOR")&&(this.Proj=2),p.check("SINUSOIDAL")&&(this.Proj=3),p.check("PARABOLIC")&&(this.Proj=4),p.check("MOLLWEIDE")&&(this.Proj=5),this.Proj>0&&(this.Contour=14),p.check("PROJXY",!0)&&(this.Project="XY"+p.partAsInt(0,1)),p.check("PROJX",!0)&&(this.Project="X"+p.part),p.check("PROJY",!0)&&(this.Project="Y"+p.part),p.check("PROJ")&&(this.Project="Y1"),U&&(U.indexOf("FB")>=0&&(this.FrontBox=!1),U.indexOf("BB")>=0&&(this.BackBox=!1)),3===$&&p.check("FB")&&(this.FrontBox=!1),3===$&&p.check("BB")&&(this.BackBox=!1),p.check("PFC")&&!this._pfc&&(this._pfc=2),(p.check("PLC")||this.AutoColor)&&!this._plc&&(this._plc=2),p.check("PMC")&&!this._pmc&&(this._pmc=2),p.check("L")&&(this.Line=!0,this.Hist=!1),p.check("F")&&(this.Fill=!0,this.need_fillcol=!0),p.check("A")&&(this.Axis=-1),(p.check("RX")||_?.$RX)&&(this.RevX=!0),(p.check("RY")||_?.$RY)&&(this.RevY=!0);const Z=(ee,ue,V)=>{let b=p.check(ee);_&&_["$"+ee]&&(b=!0,_["$"+ee]=void 0),b&&g&&(g[ue].TestBit(V)||g[ue].InvertBit(V))};Z("OTX","fXaxis",ke.rb.kOppositeTitle),Z("OTY","fYaxis",ke.rb.kOppositeTitle),Z("CTX","fXaxis",ke.rb.kCenterTitle),Z("CTY","fYaxis",ke.rb.kCenterTitle),p.check("B1")&&(this.BarStyle=1,this.BaseLine=0,this.Hist=!1,this.need_fillcol=!0),p.check("B")&&(this.BarStyle=1,this.Hist=!1,this.need_fillcol=!0),p.check("C")&&(this.Curve=!0,this.Hist=!1),p.check("][")&&(this.Off=1,this.Hist=!0),p.check("HIST")&&(this.Hist=!0,this.Func=!0,this.Error=!1),this.Bar=this.BarStyle>0,delete this.MarkStyle,p.check("P0")&&(this.Mark=!0,this.Hist=!1,this.Zero=!0),p.check("P")&&(this.Mark=!0,this.Hist=!1,this.Zero=!1),p.check("HZ")&&(this.Zscale=!0,this.Zvert=!1),p.check("Z")&&(this.Zscale=!0),p.check("*")&&(this.Mark=!0,this.MarkStyle=3,this.Hist=!1),p.check("H")&&(this.Hist=!0),p.check("E",!0)&&(this.Error=!0,1===$&&(this.Zero=!1,1===this.Hist&&(this.Hist=!1),Number.isInteger(parseInt(p.part[0]))&&(this.ErrorKind=parseInt(p.part[0])),(3===this.ErrorKind||4===this.ErrorKind)&&(this.need_fillcol=!0),0===this.ErrorKind&&(this.Zero=!0),p.part.indexOf("X0")>=0&&(this.errorX=0))),p.check("9")&&(this.HighRes=1),p.check("0")&&(this.Zero=!1),this.Color&&p.check("1")&&(this.Zero=!1),(this.Lego>0||3===$||(this.Surf>0||this.Error)&&2===$)&&(this.Mode3D=!0),v?.isTF1()&&1===$&&1===this.Hist&&!this.Line&&!this.Fill&&!this.Curve&&!this.Mark&&(this.Hist=!1,this.Curve=x.settings.FuncAsCurve,this.Line=!this.Curve,this.Fill=!0),15===this.Surf&&(this.System===Re||this.System===Ze)&&(this.Surf=13)}asString(B,$){let g="",E="";return this.Zscale&&(E=this.Zvert?"Z":"HZ"),this.Mode3D?(this.Lego?(g="LEGO",this.Zero||(g+="0"),this.Lego>10&&(g+=this.Lego-10),g+=E):this.Surf&&(g="SURF"+(this.Surf-10),g+=E),this.FrontBox||(g+="FB"),this.BackBox||(g+="BB"),1!==this.x3dscale&&(g+=`_X3DSC${Math.round(100*this.x3dscale)}`),1!==this.y3dscale&&(g+=`_Y3DSC${Math.round(100*this.y3dscale)}`)):(this.Candle?g="CANDLE"+this.Candle:this.Violin?g="VIOLIN"+this.Violin:this.Scat?g="SCAT":this.Color?(g="COL",this.Zero||(g+="0"),g+=E,this.Axis<0&&(g+="A")):this.Contour?(g="CONT",this.Contour>10&&(g+=this.Contour-10),g+=E):this.Bar?g=!1===this.BaseLine?"B":"B1":this.Mark?g=this.Zero?"P0":"P":this.Error?(g="E",this.ErrorKind>=0&&(g+=this.ErrorKind)):this.Line&&(g+="L",this.Fill&&(g+="F")),this.Cjust&&(g+=" CJUST"),this.Text&&(g+="TEXT",this.TextAngle&&(g+=this.TextAngle),g+=this.TextKind)),B&&g&&(this.ForceStat||!0===this.StatEnabled?g+="_STAT":(this.NoStat||!1===this.StatEnabled)&&(g+="_NOSTAT")),B&&$&&g&&(2===$.fLogx?g+="_LOG2X":$.fLogx&&(g+="_LOGX"),2===$.fLogy?g+="_LOG2Y":$.fLogy&&(g+="_LOGY"),2===$.fLogz?g+="_LOG2Z":$.fLogz&&(g+="_LOGZ"),$.fGridx&&(g+="_GRIDX"),$.fGridy&&(g+="_GRIDY"),$.fTickx&&(g+="_TICKX"),$.fTicky&&(g+="_TICKY"),$.fTickz&&(g+="_TICKZ")),this.cutg_name&&(g+=` [${this.cutg_name}]`),g}}class J{constructor(B,$){this.arr=[],this.colzmin=B,this.colzmax=$,this.below_min_indx=-1,this.exact_min_indx=0}getLevels(){return this.arr}createNormal(B,$,g){if($){this.colzmax<=0&&(this.colzmax=1),this.colzmin<=0&&(this.colzmin=void 0===g||g<=0?1e-4*this.colzmax:g<3||g>100?.3*g:1),this.colzmin>=this.colzmax&&(this.colzmin=1e-4*this.colzmax);const E=Math.log(this.colzmin)/Math.log(10),v=(Math.log(this.colzmax)/Math.log(10)-E)/B;this.arr.push(this.colzmin);for(let p=1;pthis.arr[this.arr.length-1]&&this.arr.push(this.colzmax)}configIndicies(B,$){this.below_min_indx=B,this.exact_min_indx=$}getContourIndex(B){if(B=this.arr[g])return g;for(;$B?g=E:$=E}return $}getPaletteColor(B,$){const g=this.getContourIndex($);if(g<0)return null;const E=B.calcColorIndex(g,this.arr.length);return B.getColor(E)}getPaletteIndex(B,$){const g=this.getContourIndex($);return g<0?null:B.calcColorIndex(g,this.arr.length)}}class Y{constructor(B,$,g,E){this.painter=B,this.pp=$;const _=[],v=[],p=!0===E;this.newfuncs=[],this.newopts=[],p||$?.forEachPainterInPad(C=>{C.isSecondary(B)&&C._secondary_id?.match(/^func_|^indx_/)&&_.push(C)},"objects");for(let C=0;C=0&&(_.splice(Z,1),v.push(k))):(this.newfuncs[C]=I,this.newopts[C]=U)}if((0,x.isObject)(E)){const C=_.indexOf(E);C>=0&&_.splice(C,1)}_.length>0&&$?.cleanPrimitives(C=>_.indexOf(C)>=0),v.length>0&&(this._extraPainters=v)}drawNext(B){if(this._extraPainters){const v=this._extraPainters.shift();return 0===this._extraPainters.length&&delete this._extraPainters,(0,x.getPromise)(v.redraw()).then(()=>this.drawNext(0))}if(!this.newfuncs||B>=this.newfuncs.length)return delete this.newfuncs,delete this.newopts,Promise.resolve(this.painter);const $=this.newfuncs[B],g=this.newopts[B];if(!$||this.pp?.findPainterFor($))return this.drawNext(B+1);const E=$?.fName?`func_${$.fName}`:`indx_${B}`;return $.$main_painter=this.painter,(ot.TPavePainter.canDraw($)?ot.TPavePainter.draw(this.painter.getDom(),$,g):this.pp.drawObject(this.painter.getDom(),$,g)).then(v=>(v.setSecondaryId(this.painter,E),this.drawNext(B+1)))}}const he=(0,x.BIT)(10),Q=(0,x.BIT)(17);class me extends ke.JW{constructor(B,$){super(B,$),this.draw_content=!0,this.nbinsx=this.nbinsy=0,this.accept_drops=!0,this.mode3d=!1}getHisto(){return this.getObject()}getAxis(B){const $=this.getObject();switch(B){case"x":return $?.fXaxis;case"y":return $?.fYaxis;case"z":return $?.fZaxis}return null}isTProfile(){return this.matchObjectType(x.clTProfile)}isTF1(){return!1}isTH1K(){return this.matchObjectType("TH1K")}isTH2Poly(){return this.matchObjectType(/^TH2Poly/)||this.matchObjectType(/^TProfile2Poly/)}clear3DScene(){const B=this.getFramePainter();(0,x.isFunc)(B?.create3DScene)&&B.create3DScene(-1),this.mode3d=!1}cleanup(){this.clear3DScene(),delete this._color_palette,delete this.fContour,delete this.options,super.cleanup()}getDimension(){const B=this.getHisto();return B?B._typename.match(/^TH2/)||B._typename===x.clTProfile2D?2:B._typename.match(/^TH3/)||B._typename===x.clTProfile3D?3:this.isTH2Poly()?2:1:0}decodeOptions(B){const $=this.getHisto(),g=this.getDimension(),E=this.getPadPainter(),_=E?.getRootPad(!0);this.options?this.options.reset():this.options=new F,this.lineatt?.setUsed(!1),this.fillatt?.setUsed(!1),this.markeratt?.setUsed(!1),this.options.decode(B||$.fOption,g,$,E,_,this),this.storeDrawOpt(B)}copyOptionsFrom(B){if(B===this)return;const $=this.options,g=B.options;$.Mode3D=g.Mode3D,$.Zero=g.Zero,g.Mode3D?($.Lego=g.Lego,$.Surf=g.Surf):($.Color=g.Color,$.Contour=g.Contour)}copyOptionsToOthers(){this.forEachPainter(B=>{B!==this&&(0,x.isFunc)(B.copyOptionsFrom)&&B.copyOptionsFrom(this)},"objects")}scanContent(){}checkPadRange(B){this.isMainPainter()&&(this.check_pad_range=!B||"pad_range")}createHistDrawAttributes(B){const $=this.getHisto(),g=this.options;if(g._pfc>1||g._plc>1||g._pmc>1){const E=this.getPadPainter();if((0,x.isFunc)(E?.getAutoColor)){const _=E.getAutoColor($.$num_histos);this._auto_exec="",g._pfc>1&&(g._pfc=1,$.fFillColor=_,this._auto_exec+=`SetFillColor(${_});;`,delete this.fillatt),g._plc>1&&(g._plc=1,$.fLineColor=_,this._auto_exec+=`SetLineColor(${_});;`,delete this.lineatt),g._pmc>1&&(g._pmc=1,$.fMarkerColor=_,this._auto_exec+=`SetMarkerColor(${_});;`,delete this.markeratt)}}B?this.deleteAttr():(this.createAttFill({attr:$,color:this.options.histoFillColor,pattern:this.options.histoFillPattern,kind:1}),this.createAttLine({attr:$,color0:this.options.histoLineColor}))}updateAxes(B,$,g){const E=(_,v,p)=>{_.fTitle=v.fTitle,_.fLabels=v.fLabels,_.fXmin=v.fXmin,_.fXmax=v.fXmax,_.fTimeDisplay=v.fTimeDisplay,_.fTimeFormat=v.fTimeFormat,_.fAxisColor=v.fAxisColor,_.fLabelColor=v.fLabelColor,_.fLabelFont=v.fLabelFont,_.fLabelOffset=v.fLabelOffset,_.fLabelSize=v.fLabelSize,_.fNdivisions=v.fNdivisions,_.fTickLength=v.fTickLength,_.fTitleColor=v.fTitleColor,_.fTitleFont=v.fTitleFont,_.fTitleOffset=v.fTitleOffset,_.fTitleSize=v.fTitleSize,p&&(_.fFirst=v.fFirst,_.fLast=v.fLast,_.fBits=v.fBits)};E(B.fXaxis,$.fXaxis,this.snapid&&!g?.zoomChangedInteractive("x")),E(B.fYaxis,$.fYaxis,this.snapid&&!g?.zoomChangedInteractive("y")),E(B.fZaxis,$.fZaxis,this.snapid&&!g?.zoomChangedInteractive("z"))}updateObject(B,$){const g=this.getHisto(),E=this.getFramePainter(),_=this.getPadPainter(),v=this.options;if(B!==g){if(!this.matchObjectType(B))return!1;const p=_?.findPainterFor(this.findStat());g.TestBit(x.kNoStats)!==B.TestBit(x.kNoStats)&&(g.fBits=B.fBits,p&&(p.Enabled=!g.TestBit(x.kNoStats))),void 0!==this.snapid&&(g.fName=B.fName,v._pfc=v._plc=v._pmc=0),v._pfc||(g.fFillColor=B.fFillColor),g.fFillStyle=B.fFillStyle,v._plc||(g.fLineColor=B.fLineColor),g.fLineStyle=B.fLineStyle,g.fLineWidth=B.fLineWidth,v._pmc||(g.fMarkerColor=B.fMarkerColor),g.fMarkerSize=B.fMarkerSize,g.fMarkerStyle=B.fMarkerStyle,g.fEntries=B.fEntries,g.fTsumw=B.fTsumw,g.fTsumwx=B.fTsumwx,g.fTsumwx2=B.fTsumwx2,g.fXaxis.fNbins=B.fXaxis.fNbins,this.getDimension()>1&&(g.fTsumwy=B.fTsumwy,g.fTsumwy2=B.fTsumwy2,g.fTsumwxy=B.fTsumwxy,g.fYaxis.fNbins=B.fYaxis.fNbins,this.getDimension()>2&&(g.fTsumwz=B.fTsumwz,g.fTsumwz2=B.fTsumwz2,g.fTsumwxz=B.fTsumwxz,g.fTsumwyz=B.fTsumwyz,g.fZaxis.fNbins=B.fZaxis.fNbins)),this.updateAxes(g,B,E),g.fArray=B.fArray,g.fNcells=B.fNcells,g.fTitle=B.fTitle,g.fMinimum=B.fMinimum,g.fMaximum=B.fMaximum,g.fSumw2=B.fSumw2,1===this.getDimension()&&v.decodeSumw2(g),this.isTProfile()?g.fBinEntries=B.fBinEntries:this.isTH1K()?(g.fNIn=B.fNIn,g.fReady=0):this.isTH2Poly()&&(g.fBins=B.fBins),this._funcHandler=new Y(this,_,B.fFunctions,p);const C=g.fOption!==B.fOption;g.fOption=B.fOption,(void 0!==$&&v.original!==$||C)&&this.decodeOptions($||g.fOption)}return v.ominimum||(v.minimum=g.fMinimum),v.omaximum||(v.maximum=g.fMaximum),(this.snapid||!E||!E.zoomChangedInteractive())&&this.checkPadRange(),this.scanContent(),this.histogram_updated=!0,!0}extractAxesProperties(B){const $=E=>{E.fXbins.length>=E.fNbins?(E.regular=!1,E.GetBinCoord=function(_){const v=Math.round(_);if(v<=0)return this.fXmin;if(v>this.fNbins)return this.fXmax;if(v===_)return this.fXbins[v];const p=_1&&(this.nbinsy=g.fYaxis.fNbins,$(g.fYaxis),this.zmin=g.fZaxis.fXmin,this.zmax=g.fZaxis.fXmax,2===B&&this.options.ohmin&&this.options.ohmax&&(this.zmin=this.options.hmin,this.zmax=this.options.hmax)),B>2&&(this.nbinsz=g.fZaxis.fNbins,$(g.fZaxis))}drawAxes(){var B=this;return(0,Te.A)(function*(){const $=B.getFramePainter();if(!$)return!1;const g=B.getHisto();if(B.ymin===B.ymax&&(B.ymax+=1),!B.isMainPainter()){const _={second_x:B.options.AxisPos>=10,second_y:B.options.AxisPos%10==1,hist_painter:B};return!(!_.second_x&&!_.second_y||$.hasDrawnAxes(_.second_x,_.second_y))&&($.setAxes2Ranges(_.second_x,g.fXaxis,B.xmin,B.xmax,_.second_y,g.fYaxis,B.ymin,B.ymax),$.createXY2(_),$.drawAxes2(_.second_x,_.second_y))}if(B.options.adjustFrame){const _=B.getPadPainter().getRootPad();_&&(_.fUxmin<_.fUxmax&&($.fX1NDC=(B.xmin-_.fUxmin)/(_.fUxmax-_.fUxmin),$.fX2NDC=(B.xmax-_.fUxmin)/(_.fUxmax-_.fUxmin)),_.fUymin<_.fUymax&&($.fY1NDC=(B.ymin-_.fUymin)/(_.fUymax-_.fUymin),$.fY2NDC=(B.ymax-_.fUymin)/(_.fUymax-_.fUymin)),_.fLeftMargin=$.fX1NDC,_.fRightMargin=1-$.fX2NDC,_.fBottomMargin=$.fY1NDC,_.fTopMargin=1-$.fY2NDC,_.fFrameLineColor=0,_.fFrameLineWidth=0,$.setRootPadRange(_),$.fillatt.setSolidColor("none"),$.redraw()),B.options.adjustFrame=!1}if($.setAxesRanges(g.fXaxis,B.xmin,B.xmax,g.fYaxis,B.ymin,B.ymax,g.fZaxis,0,0),$.createXY({ndim:B.getDimension(),check_pad_range:B.check_pad_range,zoom_ymin:B.zoom_ymin,zoom_ymax:B.zoom_ymax,ymin_nz:B.ymin_nz,swap_xy:B.options.BarStyle>=20,reverse_x:B.options.RevX,reverse_y:B.options.RevY,symlog_x:B.options.SymlogX,symlog_y:B.options.SymlogY,Proj:B.options.Proj,extra_y_space:B.options.Text&&B.options.BarStyle>0,hist_painter:B}),delete B.check_pad_range,B.options.Same)return!1;const E=B.options.Axis<0||2===B.options.Axis;return $.drawAxes(!1,E,E,B.options.AxisPos,B.options.Zscale&&B.options.Zvert,B.options.Zscale&&!B.options.Zvert)})()}processOnlineChange(B){const $=this.getCanvPainter();(0,x.isFunc)($?.processChanges)&&$.processChanges(B,this)}fillWebObjectOptions(B){this._auto_exec&&B&&(B.fcust="auto_exec:"+this._auto_exec,delete this._auto_exec)}toggleTitle(B){const $=this.getHisto();return!(!this.isMainPainter()||!$)&&("only-check"===B?!$.TestBit(Q):($.InvertBit(Q),void this.drawHistTitle().then(()=>this.processOnlineChange(`exec:SetBit(TH1::kNoTitle,${$.TestBit(Q)?1:0})`))))}drawHistTitle(){var B=this;return(0,Te.A)(function*(){if(!B.isMainPainter()||B.options.Same||B.options.Axis>0&&!B.options.ForceTitle)return B;const $=B.getHisto(),g=x.gStyle,E=B.getPadPainter(),_=E?.findPainterFor(null,"title"),v=!$.TestBit(Q)&&g.fOptTitle>0;let p=_?.getObject();if(!p&&(0,x.isFunc)(E?.findInPrimitives)&&(p=E.findInPrimitives("title",x.clTPaveText)),p){if(p.Clear(),v&&p.AddText($.fTitle),_)return _.redraw().then(()=>B)}else if(v&&!_&&$.fTitle)return p=(0,x.create)(x.clTPaveText),Object.assign(p,{fName:"title",fFillColor:g.fTitleColor,fFillStyle:g.fTitleStyle,fBorderSize:g.fTitleBorderSize,fTextFont:g.fTitleFont,fTextSize:g.fTitleFontSize,fTextColor:g.fTitleTextColor,fTextAlign:g.fTitleAlign}),p.AddText($.fTitle),ot.TPavePainter.draw(B.getDom(),p,"postitle").then(C=>(C?.setSecondaryId(B),B));return B})()}processTitleChange(B){const $=this.getHisto(),g=this.getPadPainter()?.findPainterFor(null,"title");return $&&g?"check"===B?!this.isMainPainter()||this.options.Same?null:$:(g.clearPave(),g.addText($.fTitle),g.redraw(),void this.submitCanvExec(`SetTitle("${$.fTitle}")`)):null}updateStatWebCanvas(){if(!this.snapid)return;const B=this.findStat(),$=this.getPadPainter()?.findPainterFor(B);$&&!$.snapid&&$.redraw()}findStat(){return this.findFunction(x.clTPaveStats,"stats")}toggleStat(B){let g,E,$=this.findStat();if(B||(B=""),$)g=this.getPadPainter()?.findPainterFor($);else{if(B.indexOf("-check")>0)return!1;$=this.createStat(!0)}if("only-check"===B)return g?.Enabled||!1;if("fitpar-check"===B)return $?.fOptFit||!1;if("fitpar-toggle"===B)return!!$&&($.fOptFit=$.fOptFit?0:1111,g?.redraw(),!0);if(g)g.Enabled=!g.Enabled,this.options.StatEnabled=g.Enabled,g.redraw(),E=g.Enabled;else{const _=this.selectCurrentPad(this.getPadName());E=ot.TPavePainter.draw(this.getDom(),$).then(()=>this.selectCurrentPad(_))}return this.processOnlineChange(`exec:SetBit(TH1::kNoStats,${E?0:1})`,this),E}isIgnoreStatsFill(){return!this.getObject()||!this.draw_content&&!this.create_stats&&!this.snapid}createStat(B){const $=this.getHisto();if(!$||!B&&!this.options.ForceStat&&(this.options.NoStat||$.TestBit(x.kNoStats)||!x.settings.AutoStat||!this.isMainPainter()))return null;const g=x.gStyle;let E=this.findStat(),_=this.options.optstat,v=this.options.optfit;return void 0!==_?(E&&(E.fOptStat=_),delete this.options.optstat):_=$.$custom_stat||g.fOptStat,void 0!==v?(E&&(E.fOptFit=v),delete this.options.optfit):v=g.fOptFit,E||_||v?(this.create_stats=!0,E||(E=(0,x.create)(x.clTPaveStats),Object.assign(E,{fName:"stats",fOptStat:_,fOptFit:v,fX1NDC:g.fStatX-g.fStatW,fY1NDC:g.fStatY-g.fStatH,fX2NDC:g.fStatX,fY2NDC:g.fStatY,fTextAlign:12}),E.AddText($.fName),this.addFunction(E),E)):null}findFunction(B,$){const g=this.getHisto()?.fFunctions?.arr;if(!g)return null;for(let E=0;Ev&&(E=v)):E="left"===$?0:v,_&&(_.fFirst===_.fLast||!_.TestBit(ke.rb.kAxisRange)||_.fFirst<=1&&_.fLast>=v)&&(_=void 0),"left"===$?(E<0&&(E=0),_&&_.fFirst>1&&E<_.fFirst&&(E=_.fFirst-1)):(E>v&&(E=v),_&&_.fLast<=v&&E>_.fLast&&(E=_.fLast)),E}unzoomUserRange(B,$,g){const E=this.getHisto();if(!E)return!1;let _=!1;const v=C=>!(!C||!C.TestBit(ke.rb.kAxisRange)||C.fFirst===C.fLast||C.fFirst<=1&&C.fLast>=C.fNbins||(C.InvertBit(ke.rb.kAxisRange),0)),p=C=>!(this.getDimension()!==C||this.options.minimum===x.kNoZoom&&this.options.maximum===x.kNoZoom||!this.draw_content||(this.options.minimum=this.options.maximum=x.kNoZoom,this.scanContent(!0),0));return B&&v(E.fXaxis)&&(_=!0),$&&(v(E.fYaxis)||p(1))&&(_=!0),g&&(v(E.fZaxis)||p(2))&&(_=!0),_}addInteractivity(){var B=this;return(0,Te.A)(function*(){const $=B.isMainPainter(),g=B.options.AxisPos>0;return($||g?B.getFramePainter():null)?.addInteractivity(!$&&g)??!1})()}changeUserRange(B,$){const g=this.getHisto(),E=g?g[`f${$}axis`]:null;if(!E)return;let _=`[1,${E.fNbins}]`;E.TestBit(ke.rb.kAxisRange)&&(_=`[${E.fFirst},${E.fLast}]`),B.input(`Enter user range for axis ${$} like [1,${E.fNbins}]`,_).then(v=>{if(!v||!(v=JSON.parse(v))||2!==v.length)return;const p=parseInt(v[0]),C=parseInt(v[1]);Number.isInteger(p)&&Number.isInteger(C)&&(E.fFirst=p,E.fLast=C,(E.fFirst=1&&E.fLast<=E.fNbins)!==E.TestBit(ke.rb.kAxisRange)&&E.InvertBit(ke.rb.kAxisRange),this.interactiveRedraw())})}changeValuesRange(B){let $;$=this.options.minimum!==x.kNoZoom&&this.options.maximum!==x.kNoZoom?`[${this.options.minimum},${this.options.maximum}]`:`[${this.gminbin},${this.gmaxbin}]`,B.input("Enter min/max hist values or empty string to reset",$).then(g=>{g=g?JSON.parse(g):[],(0,x.isObject)(g)&&2===g.length&&Number.isFinite(g[0])&&Number.isFinite(g[1])?(this.options.minimum=g[0],this.options.maximum=g[1]):this.options.minimum=this.options.maximum=x.kNoZoom,this.interactiveRedraw()})}executeMenuCommand(B,$){if(super.executeMenuCommand(B,$))return!0;if(B.fClassName===x.clTAxis){const g=(0,x.isStr)(B.$execid)?B.$execid.indexOf("#"):-1,E=g>0?B.$execid.slice(g+1):"x",_=this.getFramePainter();if("UnZoom"===B.fName)return _?.unzoom(E),!0;if("SetRange"===B.fName){const v=_?.getAxis(E),p=JSON.parse(`[${$}]`);v&&2===p?.length&&_?.zoom(E,v.GetBinLowEdge(p[0]),v.GetBinLowEdge(p[1]+1))}else if("SetRangeUser"===B.fName){const v=JSON.parse(`[${$}]`);2===v?.length&&_?.zoom(E,v[0],v[1])}}return!1}fillContextMenuItems(B){const $=this.getHisto(),g=this.getFramePainter();if($){if(this.options.Axis<=0&&!this.isTF1()&&B.addchk(this.toggleStat("only-check"),"Show statbox",()=>this.toggleStat()),$.fTitle&&this.isMainPainter()&&B.addchk(this.toggleTitle("only-check"),"Show title",()=>this.toggleTitle()),this.draw_content&&(1===this.getDimension()?B.add("User range X",()=>this.changeUserRange(B,"X")):(B.add("sub:User ranges"),B.add("X",()=>this.changeUserRange(B,"X")),B.add("Y",()=>this.changeUserRange(B,"Y")),this.getDimension()>2?B.add("Z",()=>this.changeUserRange(B,"Z")):B.add("Values",()=>this.changeValuesRange(B)),B.add("endsub:")),(0,x.isFunc)(this.fillHistContextMenu)&&this.fillHistContextMenu(B)),this.options.Mode3D){B.size()>0&&B.add("separator");const E=this.getMainPainter()||this;B.addchk(E.isTooltipAllowed(),"Show tooltips",()=>E.setTooltipAllowed("toggle")),B.addchk(g?.enable_highlight,"Highlight bins",()=>{g.enable_highlight=!g.enable_highlight,!g.enable_highlight&&g.mode3d&&(0,x.isFunc)(g.highlightBin3D)&&g.highlightBin3D(null)}),(0,x.isFunc)(g?.render3D)&&(B.addchk(E.options.FrontBox,"Front box",()=>{E.options.FrontBox=!E.options.FrontBox,g.render3D()}),B.addchk(E.options.BackBox,"Back box",()=>{E.options.BackBox=!E.options.BackBox,g.render3D()}),B.addchk(g.camera?.isOrthographicCamera,"Othographic camera",_=>g.change3DCamera(_))),this.draw_content&&(B.addchk(!this.options.Zero,"Suppress zeros",()=>{this.options.Zero=!this.options.Zero,this.interactiveRedraw("pad")}),(12===this.options.Lego||14===this.options.Lego)&&(B.addchk(this.options.Zscale,"Z scale",()=>this.toggleColz()),this.fillPaletteMenu(B,!0))),(0,x.isFunc)(E.control?.reset)&&B.add("Reset camera",()=>E.control.reset())}this.histogram_updated&&g.zoomChangedInteractive()&&B.add("Let update zoom",()=>g.zoomChangedInteractive("reset"))}}getSnapId(B){if(!this.snapid)return"";let $=this.snapid.toString();return B&&($+="#",this.isTF1()&&("x"===B||"y"===B||"z"===B)&&($+="hist#"),$+=B),$}autoZoom(){}clickButton(B){const $=this.getFramePainter();if(!this.isMainPainter()||!$)return!1;switch(B){case"ToggleZoom":if($.zoom_xmin!==$.zoom_xmax||$.zoom_ymin!==$.zoom_ymax||$.zoom_zmin!==$.zoom_zmax){const g=$.unzoom();return $.zoomChangedInteractive("reset"),g}if(this.draw_content)return this.autoZoom();break;case"ToggleLogX":return $.toggleAxisLog("x");case"ToggleLogY":return $.toggleAxisLog("y");case"ToggleLogZ":return $.toggleAxisLog("z");case"ToggleStatBox":return(0,x.getPromise)(this.toggleStat())}return!1}fillToolbar(B){const $=this.getPadPainter();$&&($.addPadButton("auto_zoom","Toggle between unzoom and autozoom-in","ToggleZoom","Ctrl *"),$.addPadButton("arrow_right","Toggle log x","ToggleLogX","PageDown"),$.addPadButton("arrow_up","Toggle log y","ToggleLogY","PageUp"),this.getDimension()>1&&$.addPadButton("arrow_diag","Toggle log z","ToggleLogZ"),$.addPadButton("statbox","Toggle stat box","ToggleStatBox"),B||$.showPadButtons())}get3DToolTip(B){const $=this.getHisto(),g={bin:B,name:$.fName,title:$.fTitle};switch(this.getDimension()){case 1:g.ix=B,g.iy=1,g.value=$.getBinContent(g.ix),g.error=$.getBinError(B),g.lines=this.getBinTooltips(B-1);break;case 2:g.ix=B%(this.nbinsx+2),g.iy=(B-g.ix)/(this.nbinsx+2),g.value=$.getBinContent(g.ix,g.iy),g.error=$.getBinError(B),g.lines=this.getBinTooltips(g.ix-1,g.iy-1);break;case 3:g.ix=B%(this.nbinsx+2),g.iy=(B-g.ix)/(this.nbinsx+2)%(this.nbinsy+2),g.iz=(B-g.ix-g.iy*(this.nbinsx+2))/(this.nbinsx+2)/(this.nbinsy+2),g.value=$.getBinContent(g.ix,g.iy,g.iz),g.error=$.getBinError(B),g.lines=this.getBinTooltips(g.ix-1,g.iy-1,g.iz-1)}return g}createContour(B,$,g,E,_){const v=new J($,g),p=this.getDimension();if(_)v.createCustom(_);else{B<2&&(B=x.gStyle.fNumberContours);const I=this.getPadPainter().getRootPad(!0);v.createNormal(B,I?.fLogv??(2===p&&I?.fLogz)??0,E)}v.configIndicies(this.options.Zero?-1:0,0!==v.colzmin||!this.options.Zero||this.isTH2Poly()?0:-1);const C=this.getFramePainter();return C&&p<3&&!C.mode3d&&(C.zmin=v.colzmin,C.zmax=v.colzmax),this.fContour=v,v}getContour(B){if(this.fContour&&!B)return this.fContour;const $=this.getMainPainter(),g=this.getFramePainter();if($?.fContour&&$!==this&&!this.options.IgnoreMainScale)return this.fContour=$.fContour,this.fContour;const E=this.getObject(),_=this===$||void 0===$?.minbin||this.options.IgnoreMainScale||$?.tt_handle?.ScatterPlot?this:$;let p,k,v=0,C=_.minbin,I=_.maxbin,U=_.minposbin;C===I&&(C=_.gminbin,I=_.gmaxbin,U=_.gminposbin);let Z=C,ee=I;this.options.minimum!==x.kNoZoom&&(C=this.options.minimum,Z=Math.min(Z,C),p=!0),this.options.maximum!==x.kNoZoom&&(I=this.options.maximum,ee=Math.max(ee,I),p=!1),C>=I&&(p?I=C+1:C=I-1),g&&g.zoom_zmin!==g.zoom_zmax&&(C=g.zoom_zmin,I=g.zoom_zmax),E.fContour?.length>1&&(E.TestBit(he)?k=E.fContour:v=E.fContour.length);const ue=this.createContour(v,C,I,U,k);return this.getDimension()<3&&g&&(g.zmin=Z,g.zmax=ee,Z!==ue.colzmin||ee!==ue.colzmax?(g.zoom_zmin=ue.colzmin,g.zoom_zmax=ue.colzmax):g.zoom_zmin=g.zoom_zmax=void 0),ue}getContourLevels(B){return this.getContour(B).getLevels()}getHistPalette(B){B&&(this._color_palette=null);const $=this.getPadPainter();return!this._color_palette&&!this.options.Palette&&(0,x.isFunc)($?.getCustomPalette)&&(this._color_palette=$.getCustomPalette()),this._color_palette||(this._color_palette=(0,L.jh)(this.options.Palette,$?.isGrayscale())),this._color_palette}fillPaletteMenu(B,$){if(B.addPaletteMenu(this.options.Palette||x.settings.Palette,g=>{this.options.Palette=parseInt(g),this.getHistPalette(!0),this.redraw()}),!$){B.add("Default position",()=>{this.drawColorPalette(this.options.Zscale,!1,!0).then(()=>this.processOnlineChange("drawopt"))},"Set default position for palette");const g=this.findFunction(x.clTPaletteAxis);B.addchk(!g||g.fX2NDC-g.fX1NDC{this.options.Zvert=_,this.drawColorPalette(this.options.Zscale,!1,"toggle").then(()=>this.processOnlineChange("drawopt"))},"Toggle palette vertical/horizontal flag"),B.add("Bring to front",()=>this.getPadPainter()?.findPainterFor(g)?.bringToFront())}}drawColorPalette(B,$,g){var E=this;return(0,Te.A)(function*(){const _=E.getMainPainter(),v=E.getPadPainter();if(_!==E&&_&&!1!==_.draw_content&&_.options.Zscale)return null;let p=E.findFunction(x.clTPaletteAxis),C=v?.findPainterFor(p);const I=!!p;if(E._can_move_colz&&(delete E._can_move_colz,g||(g=!0)),!C&&!p&&!E.options.Axis&&(C=v?.findPainterFor(void 0,void 0,x.clTPaletteAxis),C&&(p=C.getObject(),E.addFunction(p,!0))),!B)return C&&(E.options.Zvert=C._palette_vertical,C.Enabled=!1,C.removeG()),null;if(p)void 0!==v?._palette_vertical&&(E.options.Zvert=v._palette_vertical);else{if(p=(0,x.create)(x.clTPaletteAxis),p.fInit=1,p.$can_move=!0,p.$generated=!0,Object.assign(p,E.options.Zvert?{fX1NDC:1.005-x.gStyle.fPadRightMargin,fX2NDC:1.045-x.gStyle.fPadRightMargin,fY1NDC:x.gStyle.fPadBottomMargin,fY2NDC:1-x.gStyle.fPadTopMargin}:{fX1NDC:x.gStyle.fPadLeftMargin,fX2NDC:1-x.gStyle.fPadRightMargin,fY1NDC:1.005-x.gStyle.fPadTopMargin,fY2NDC:1.045-x.gStyle.fPadTopMargin}),Object.assign(p.fAxis,{fChopt:"+",fLineSyle:1,fLineWidth:1,fTextAngle:0,fTextAlign:11}),2===E.getDimension()){const ee=E.getHisto().fZaxis;Object.assign(p.fAxis,{fTitle:ee.fTitle,fTitleSize:ee.fTitleSize,fTitleOffset:ee.fTitleOffset,fTitleColor:ee.fTitleColor,fLineColor:ee.fAxisColor,fTextSize:ee.fLabelSize,fTextColor:ee.fLabelColor,fTextFont:ee.fLabelFont,fLabelOffset:ee.fLabelOffset})}E.addFunction(p,!0),g=!0}const U=E.getFramePainter();if(g&&U&&p.$can_move)if(E.options.Zvert){if("toggle"===g){const ee=p.fY2NDC-p.fY1NDC;p.fX1NDC=U.fX2NDC+.005,p.fX2NDC=p.fX1NDC+ee}p.fX1NDC>.5*(U.fX1NDC+U.fX2NDC)?(p.fX2NDC=U.fX2NDC+.005+(p.fX2NDC-p.fX1NDC),p.fX1NDC=U.fX2NDC+.005):(p.fX1NDC=U.fX1NDC-.03-(p.fX2NDC-p.fX1NDC),p.fX2NDC=U.fX1NDC-.03),p.fY1NDC=U.fY1NDC,p.fY2NDC=U.fY2NDC}else{if("toggle"===g){const ee=p.fX2NDC-p.fX1NDC;p.fY1NDC=U.fY2NDC+.005,p.fY2NDC=p.fY1NDC+ee}p.fX1NDC=U.fX1NDC,p.fX2NDC=U.fX2NDC,p.fY2NDC>.5*(U.fY1NDC+U.fY2NDC)?(p.fY2NDC=U.fY2NDC+.005+(p.fY2NDC-p.fY1NDC),p.fY1NDC=U.fY2NDC+.005):(p.fY1NDC=U.fY1NDC-.05-(p.fY2NDC-p.fY1NDC),p.fY2NDC=U.fY1NDC-.05)}p.$main_painter=E;let Z,k="";if($&&(k+=";postpone"),g&&!E.do_redraw_palette&&(k+=";can_move"),E.options.Cjust&&(k+=";cjust"),C){if(C.Enabled=!0,$)return C;Z=C.drawPave(k)}else{const ee=E.selectCurrentPad(E.getPadName());Z=ot.TPavePainter.draw(E.getDom(),p,k).then(ue=>{C=ue,E.selectCurrentPad(ee),C.setSecondaryId(E,I&&!p.$generated?`func_${p.fName}`:void 0)})}return Z.then(()=>{E.options.Zvert=C._palette_vertical,C.redraw=()=>{};let ee=!1;if(g&&U&&!E.do_redraw_palette){const V=v?.getRootPad(!0);E.options.Zvert?(p.fX1NDC>.5&&U.fX2NDC>p.fX1NDC?(ee=!0,U.fX2NDC=p.fX1NDC-.01,U.fX1NDC>U.fX2NDC-.1&&(U.fX1NDC=Math.max(0,U.fX2NDC-.1))):p.fX2NDC<.5&&U.fX1NDC.5&&U.fY2NDC>p.fY1NDC?(ee=!0,U.fY2NDC=p.fY1NDC-.01,U.fY1NDC>U.fY2NDC-.1&&(U.fY1NDC=Math.max(0,U.fXYNDC-.1))):p.fY2NDC<.5&&U.fY1NDC(delete E.do_redraw_palette,C))):C})})()}toggleColz(){if(this.options.canHavePalette())return this.options.Zscale=!this.options.Zscale,this.drawColorPalette(this.options.Zscale,!1,!0).then(()=>this.processOnlineChange("drawopt"))}toggleMode3D(){return this.options.Mode3D=!this.options.Mode3D,this.options.Mode3D&&!this.options.Surf&&!this.options.Lego&&!this.options.Error&&(this.options.Lego=this.nbinsx>=50||this.nbinsy>=50?this.options.Scat?13:14:this.options.Scat?1:12,this.options.Zero=!1),this.copyOptionsToOthers(),this.interactiveRedraw("pad","drawopt")}prepareDraw(B){B||(B={rounding:!0,extra:0,middle:0}),void 0===B.extra&&(B.extra=0),void 0===B.middle&&(B.middle=0);const $=this.getHisto(),g=$.fXaxis,E=$.fYaxis,_=this.getFramePainter(),v=this.getDimension(),p={i1:B.nozoom?0:this.getSelectIndex("x","left",0-B.extra),i2:B.nozoom?this.nbinsx:this.getSelectIndex("x","right",1+B.extra),j1:1===v||B.nozoom?0:this.getSelectIndex("y","left",0-B.extra),j2:1===v?1:B.nozoom?this.nbinsy:this.getSelectIndex("y","right",1+B.extra),min:0,max:0,sumz:0,xbar1:0,xbar2:1,ybar1:0,ybar2:1};if(B.cutg){let V=p.i2,b=p.i1,P=p.j2,T=p.j1;for(let z=p.i1;z_.size_x3d&&(p.grx[C]=_.size_x3d,this.options.RevX?p.i1=C:p.i2=C)));if(1===v)p.gry[0]=ue.gry(0),p.gry[1]=ue.gry(1);else for(I=p.j1;I<=p.j2;++I)k=E.GetBinCoord(I+B.middle),ue.logy&&k<=0?p.j1=I+1:(p.origy&&(p.origy[I]=k),p.gry[I]=ue.gry(k),B.rounding&&(p.gry[I]=Math.round(p.gry[I])),B.use3d&&(p.gry[I]<-_.size_y3d&&(p.gry[I]=-_.size_y3d,this.options.RevY?p.j2=I:p.j1=I),p.gry[I]>_.size_y3d&&(p.gry[I]=_.size_y3d,this.options.RevY?p.j1=I:p.j2=I)));for(this.maxbin=this.minbin=this.minposbin=null,C=p.i1;C0&&(Z0&&(null===this.minposbin||Z(B.setAsMainPainter(),B.decodeOptions($),B.isTH2Poly()&&(B.options.Mode3D?B.options.Lego=12:B.options.Color||(B.options.Color=!0)),B.checkPadRange(14!==B.options.Contour),B.scanContent(),B.createStat(),B.callDrawFunc())).then(()=>B.drawFunctions()).then(()=>{if(!B.Mode3D&&B.options.AutoZoom)return B.autoZoom()}).then(()=>{if(B.options.Project&&!B.mode3d&&(0,x.isFunc)(B.toggleProjection))return B.toggleProjection(B.options.Project)}).then(()=>(B.fillToolbar(),B))})()}}},4369:(Yr,mt,Se)=>{"use strict";Se.d(mt,{$o:()=>lt,D1:()=>De,FF:()=>T,Fk:()=>Ye,Hg:()=>B,Mx:()=>Lr,N8:()=>bt,NE:()=>U,PI:()=>Z,Ph:()=>b,Pk:()=>V,Q_:()=>$,Ql:()=>je,Qu:()=>k,R0:()=>ot,Tq:()=>Rs,Ub:()=>Sn,V$:()=>W,_T:()=>zi,aM:()=>J,bP:()=>_,bm:()=>ue,c4:()=>v,h0:()=>E,k:()=>X,k1:()=>Q,lW:()=>kn,lZ:()=>Ze,mU:()=>te,nc:()=>Y,ry:()=>nn,s4:()=>I,v5:()=>Ge,w1:()=>P,yd:()=>F,ym:()=>He});var Te=Se(4882),x=Se(8872);const L="TStreamerElement",ve="TStreamerObject",ke="TStreamerSTL",ot="TStreamerInfoList",Ye="TDirectory",Ze="TDirectoryFile",He="TBasket",Ve="TDatime",De="StreamerInfo",F=1,J=2,Y=3,he=4,Q=5,me=6,X=7,B=8,$=9,g=10,E=11,_=12,v=13,p=14,C=15,I=16,U=17,k=18,Z=19,ee=0,ue=20,V=40,b=61,P=62,T=63,z=64,W=65,fe=66,we=67,Me=68,je=69,Ge=71,lt=300,bt=500,te=501,tt=1073741824,Fe=4294967295,Ne=2147483648,rt=(0,x.BIT)(14),St=0,pt=1,st=2,vt=3,Yt=4,qt=5,Ot=6,Bn=7,Mn=8,bn=["BASE","char","short","int","long","float","int","const char*","double","Double32_t","char","unsigned char","unsigned short","unsigned","unsigned long","unsigned","Long64_t","ULong64_t","bool","Float16_t"],Dn=["","vector","list","deque","map","multimap","set","multiset","bitset"],$n=(0,x.BIT)(4),Cn=(0,x.BIT)(5),yn={TObject(oe,D){D.fUniqueID=oe.ntou4(),D.fBits=oe.ntou4(),D.fBits&$n&&oe.ntou2()},TNamed:[{basename:x.clTObject,base:1,func(oe,D){D._typename||(D._typename=x.clTNamed),oe.classStreamer(D,x.clTObject)}},{name:"fName",func(oe,D){D.fName=oe.readTString()}},{name:"fTitle",func(oe,D){D.fTitle=oe.readTString()}}],TObjString:[{basename:x.clTObject,base:1,func(oe,D){D._typename||(D._typename=x.clTObjString),oe.classStreamer(D,x.clTObject)}},{name:"fString",func(oe,D){D.fString=oe.readTString()}}],TClonesArray(oe,D){D._typename||(D._typename=x.clTClonesArray),D.$kind=x.clTClonesArray,D.name="";const O=oe.last_read_version;O>2&&oe.classStreamer(D,x.clTObject),O>1&&(D.name=oe.readTString());let ie=oe.readTString(),_e=0;const Oe=ie.lastIndexOf(";");Oe>0&&(_e=parseInt(ie.slice(Oe+1)),ie=ie.slice(0,Oe));let $e=oe.ntou4();$e<0&&($e=-$e),D.arr=new Array($e),D.fLast=$e-1,D.fLowerBound=oe.ntou4();let et=oe.fFile.getStreamer(ie,{val:_e});if(et=oe.fFile.getSplittedStreamer(et),et){for(let it=0;it<$e;++it)D.arr[it]={_typename:ie};for(let it=0;it2&&oe.classStreamer(D,x.clTObject),O>1&&(D.name=oe.readTString());const ie=oe.ntou4();for(let _e=0;_e1&&(D.fIndexValuesMinor=oe.readFastArray(D.fN,I)),D.fIndex=oe.readFastArray(D.fN,I)},TRefArray(oe,D){D._typename="TRefArray",oe.classStreamer(D,x.clTObject),D.name=oe.readTString();const O=oe.ntoi4();D.fLast=O-1,D.fLowerBound=oe.ntoi4(),oe.ntou2(),D.fUIDs=oe.readFastArray(O,v)},TCanvas(oe,D){D._typename=x.clTCanvas,oe.classStreamer(D,x.clTPad),D.fDISPLAY=oe.readTString(),D.fDoubleBuffer=oe.ntoi4(),D.fRetained=0!==oe.ntou1(),D.fXsizeUser=oe.ntoi4(),D.fYsizeUser=oe.ntoi4(),D.fXsizeReal=oe.ntoi4(),D.fYsizeReal=oe.ntoi4(),D.fWindowTopX=oe.ntoi4(),D.fWindowTopY=oe.ntoi4(),D.fWindowWidth=oe.ntoi4(),D.fWindowHeight=oe.ntoi4(),D.fCw=oe.ntou4(),D.fCh=oe.ntou4(),D.fCatt=oe.classStreamer({},x.clTAttCanvas),oe.ntou1(),oe.ntou1(),D.fHighLightColor=oe.ntoi2(),D.fBatch=0!==oe.ntou1(),oe.ntou1(),oe.ntou1(),oe.ntou1()},TObjArray(oe,D){D._typename||(D._typename=x.clTObjArray),D.$kind=x.clTObjArray,D.name="";const O=oe.last_read_version;O>2&&oe.classStreamer(D,x.clTObject),O>1&&(D.name=oe.readTString());const ie=oe.ntou4();let _e=0;for(D.arr=new Array(ie),D.fLast=ie-1,D.fLowerBound=oe.ntou4();_e1?oe.readTString():x.clTPolyMarker3D},TPolyLine3D(oe,D){oe.classStreamer(D,x.clTObject),oe.classStreamer(D,x.clTAttLine),D.fN=oe.ntoi4(),D.fP=oe.readFastArray(3*D.fN,Q),D.fOption=oe.readTString()},TStreamerInfo(oe,D){oe.classStreamer(D,x.clTNamed),D.fCheckSum=oe.ntou4(),D.fClassVersion=oe.ntou4(),D.fElements=oe.readObjectAny()},TStreamerElement(oe,D){const O=oe.last_read_version;if(oe.classStreamer(D,x.clTNamed),D.fType=oe.ntou4(),D.fSize=oe.ntou4(),D.fArrayLength=oe.ntou4(),D.fArrayDim=oe.ntou4(),D.fMaxIndex=oe.readFastArray(1===O?oe.ntou4():5,v),D.fTypeName=oe.readTString(),D.fType===E&&("Bool_t"===D.fTypeName||"bool"===D.fTypeName)&&(D.fType=k),D.fXmin=D.fXmax=D.fFactor=0,3===O)D.fXmin=oe.ntod(),D.fXmax=oe.ntod(),D.fFactor=oe.ntod();else if(O>3&&D.fBits&(0,x.BIT)(6)){let ie=D.fTitle.indexOf("[");ie>=0&&D.fType>V&&(ie=D.fTitle.indexOf("[",ie+1));const _e=D.fTitle.indexOf("]",ie+1);if(ie>=0&&_e>=ie+2){const Oe=D.fTitle.slice(ie+1,_e).split(",");let $e=32;if(!Oe||Oe.length<2)throw new Error(`Problem to decode range setting from streamer element title ${D.fTitle}`);3===Oe.length&&($e=parseInt(Oe[2])),(!Number.isInteger($e)||$e<2||$e>32)&&($e=32);const et=_t=>{if(!_t)return 0;if(_t.indexOf("pi")<0)return parseFloat(_t);let sn=1;switch("-"===(_t=_t.trim())[0]&&(sn=-1,_t=_t.slice(1)),_t){case"2pi":case"2*pi":case"twopi":return 2*sn*Math.PI;case"pi/2":return sn*Math.PI/2;case"pi/4":return sn*Math.PI/4}return sn*Math.PI};D.fXmin=et(Oe[0]),D.fXmax=et(Oe[1]);const it=$e>=0&&$e<32?Math.pow(2,$e):4294967295;D.fXmin2&&(D.fBaseVersion=oe.ntou4())},TStreamerSTL(oe,D){oe.classStreamer(D,L),D.fSTLtype=oe.ntou4(),D.fCtype=oe.ntou4(),D.fSTLtype===qt&&(0===D.fTypeName.indexOf("std::set")||0===D.fTypeName.indexOf("set"))&&(D.fSTLtype=Ot),D.fSTLtype===Ot&&(0===D.fTypeName.indexOf("std::multimap")||0===D.fTypeName.indexOf("multimap"))&&(D.fSTLtype=qt)},TStreamerSTLstring(oe,D){oe.last_read_version>0&&oe.classStreamer(D,ke)},TList(oe,D){if(D._typename||(D._typename=this.typename),D.$kind=x.clTList,oe.last_read_version>3){oe.classStreamer(D,x.clTObject),D.name=oe.readTString();const O=oe.ntou4();D.arr=new Array(O),D.opt=new Array(O);for(let ie=0;ie1&&(oe.classStreamer(D,L),D.fCountVersion=oe.ntou4(),D.fCountName=oe.readTString(),D.fCountClass=oe.readTString())},TStreamerBasicPointer:"TStreamerLoop",TStreamerObject(oe,D){oe.last_read_version>1&&oe.classStreamer(D,L)},TStreamerBasicType:ve,TStreamerObjectAny:ve,TStreamerString:ve,TStreamerObjectPointer:ve,TStreamerObjectAnyPointer(oe,D){oe.last_read_version>0&&oe.classStreamer(D,L)},TTree:{name:"$file",func(oe,D){D.$kind="TTree",D.$file=oe.fFile}},RooRealVar(oe,D){const O=oe.last_read_version;oe.classStreamer(D,"RooAbsRealLValue"),1===O&&(oe.ntod(),oe.ntod(),oe.ntoi4()),D._error=oe.ntod(),D._asymErrLo=oe.ntod(),D._asymErrHi=oe.ntod(),O>=2&&(D._binning=oe.readObjectAny()),3===O&&(D._sharedProp=oe.readObjectAny()),O>=4&&(D._sharedProp=oe.classStreamer({},"RooRealVarSharedProperties"))},RooAbsBinning(oe,D){oe.classStreamer(D,1===oe.last_read_version?x.clTObject:x.clTNamed),oe.classStreamer(D,"RooPrintable")},RooCategory(oe,D){const O=oe.last_read_version;oe.classStreamer(D,"RooAbsCategoryLValue"),D._sharedProp=1===O?oe.readObjectAny():oe.classStreamer({},"RooCategorySharedProperties")},"RooWorkspace::CodeRepo":oe=>{const D=2===oe.last_read_version?3:2;for(let O=0;O1&&(D._name=oe.readTString())},TImagePalette:[{basename:x.clTObject,base:1,func(oe,D){D._typename||(D._typename=x.clTImagePalette),oe.classStreamer(D,x.clTObject)}},{name:"fNumPoints",func(oe,D){D.fNumPoints=oe.ntou4()}},{name:"fPoints",func(oe,D){D.fPoints=oe.readFastArray(D.fNumPoints,B)}},{name:"fColorRed",func(oe,D){D.fColorRed=oe.readFastArray(D.fNumPoints,_)}},{name:"fColorGreen",func(oe,D){D.fColorGreen=oe.readFastArray(D.fNumPoints,_)}},{name:"fColorBlue",func(oe,D){D.fColorBlue=oe.readFastArray(D.fNumPoints,_)}},{name:"fColorAlpha",func(oe,D){D.fColorAlpha=oe.readFastArray(D.fNumPoints,_)}}],TAttImage:[{name:"fImageQuality",func(oe,D){D.fImageQuality=oe.ntoi4()}},{name:"fImageCompression",func(oe,D){D.fImageCompression=oe.ntou4()}},{name:"fConstRatio",func(oe,D){D.fConstRatio=0!==oe.ntou1()}},{name:"fPalette",func(oe,D){D.fPalette=oe.classStreamer({},x.clTImagePalette)}}],TASImage(oe,D){if(1===oe.last_read_version&&oe.fFile.fVersion>0&&oe.fFile.fVersion<5e4)return console.warn("old TASImage version - not yet supported");if(oe.classStreamer(D,x.clTNamed),0!==oe.ntou1()){const O=oe.ntoi4();D.fPngBuf=oe.readFastArray(O,E)}else oe.classStreamer(D,"TAttImage"),D.fWidth=oe.ntoi4(),D.fHeight=oe.ntoi4(),D.fImgBuf=oe.readFastArray(D.fWidth*D.fHeight,B)},TMaterial(oe,D){const O=oe.last_read_version;oe.classStreamer(D,x.clTNamed),D.fNumber=oe.ntoi4(),D.fA=oe.ntof(),D.fZ=oe.ntof(),D.fDensity=oe.ntof(),O>2?(oe.classStreamer(D,x.clTAttFill),D.fRadLength=oe.ntof(),D.fInterLength=oe.ntof()):D.fRadLength=D.fInterLength=0},TMixture(oe,D){oe.classStreamer(D,"TMaterial"),D.fNmixt=oe.ntoi4(),D.fAmixt=oe.readFastArray(oe.ntoi4(),Q),D.fZmixt=oe.readFastArray(oe.ntoi4(),Q),D.fWmixt=oe.readFastArray(oe.ntoi4(),Q)},TVirtualPerfStats:x.clTObject,TMethodCall:x.clTObject};function Sn(oe,D){yn[oe]=D}const ii={TQObject(){},TGraphStruct(){},TGraphNode(){},TGraphEdge(){},TDatime(oe,D){D.fDatime=oe.ntou4()},TKey(oe,D){D.fNbytes=oe.ntoi4(),D.fVersion=oe.ntoi2(),D.fObjlen=oe.ntou4(),D.fDatime=oe.classStreamer({},Ve),D.fKeylen=oe.ntou2(),D.fCycle=oe.ntou2(),D.fVersion>1e3?(D.fSeekKey=oe.ntou8(),oe.shift(8)):(D.fSeekKey=oe.ntou4(),oe.shift(4)),D.fClassName=oe.readTString(),D.fName=oe.readTString(),D.fTitle=oe.readTString()},TDirectory(oe,D){const O=oe.ntou2();D.fDatimeC=oe.classStreamer({},Ve),D.fDatimeM=oe.classStreamer({},Ve),D.fNbytesKeys=oe.ntou4(),D.fNbytesName=oe.ntou4(),D.fSeekDir=O>1e3?oe.ntou8():oe.ntou4(),D.fSeekParent=O>1e3?oe.ntou8():oe.ntou4(),D.fSeekKeys=O>1e3?oe.ntou8():oe.ntou4()},TBasket(oe,D){oe.classStreamer(D,x.clTKey);const O=oe.readVersion();D.fBufferSize=oe.ntoi4(),D.fNevBufSize=oe.ntoi4(),D.fNevBuf=oe.ntoi4(),D.fLast=oe.ntoi4(),D.fLast>D.fBufferSize&&(D.fBufferSize=D.fLast);const ie=oe.ntoi1();if(0!==ie){if(ie%10!=2){if(D.fNevBuf&&(D.fEntryOffset=oe.readFastArray(oe.ntoi4(),Y),ie>20&&ie<40))for(let _e=0,Oe=4278190080;_e40&&(D.fDisplacement=oe.readFastArray(oe.ntoi4(),Y))}if(1===ie||ie>10){const _e=O.val<=1?oe.ntoi4():D.fLast;if(_e>D.fKeylen){const Oe=oe.extract([oe.o+D.fKeylen,_e-D.fKeylen]);D.fBufferRef=new kn(Oe,0,oe.fFile,_e-D.fKeylen),D.fBufferRef.fTagOffset=D.fKeylen}oe.shift(_e)}}},TRef(oe,D){oe.classStreamer(D,x.clTObject),D.fBits&Cn?D.fUUID=oe.readTString():D.fPID=oe.ntou2()},"TMatrixTSym":(oe,D)=>{oe.classStreamer(D,"TMatrixTBase"),D.fElements=new Float32Array(D.fNelems);const O=oe.readFastArray(D.fNrows*(D.fNcols+1)/2,Q);for(let ie=0,_e=0;ie":(oe,D)=>{oe.classStreamer(D,"TMatrixTBase"),D.fElements=new Float64Array(D.fNelems);const O=oe.readFastArray(D.fNrows*(D.fNcols+1)/2,B);for(let ie=0,_e=0;ie0)return ie;const _e=D.indexOf("<");let Oe=St;if(_e>0&&D.indexOf(">")>_e+2)for(let et=1;et=0;){switch(D[it]){case"<":_t++;break;case",":0===_t&&_t--;break;case">":_t--}_t>=0&&(et+=D[it]),it++}return _e=it-1,et.trim()},_e=D.indexOf("<");const Oe=D.lastIndexOf(">");(oe={_typename:"TStreamerInfo",fVersion:1,fName:D,fElements:(0,x.create)(x.clTList)}).fElements.Add(zi("first",$e(),O)),oe.fElements.Add(zi("second",$e(),O))}}const ie=O.getStreamer(D,null,oe);if(!ie)return null;if(2!==ie.length)return console.error(`Streamer for pair class contains ${ie.length} elements`),null;for(let _e=0;_e<2;++_e)ie[_e].readelem&&!ie[_e].pair_name&&(ie[_e].pair_name=0===_e?"first":"second",ie[_e].func=function(Oe,$e){$e[this.pair_name]=this.readelem(Oe)});return ie}function Lr(oe,D){const O={name:oe.fName,type:oe.fType,fArrayLength:oe.fArrayLength,fArrayDim:oe.fArrayDim,fMaxIndex:oe.fMaxIndex};switch("BASE"===oe.fTypeName&&(ss(O.name)>0?(O.name="fArray",O.type=P):O.type=ee),O.type){case ee:O.base=oe.fBaseVersion,O.basename=oe.fName,O.func=function(ie,_e){ie.classStreamer(_e,this.basename)};break;case J:O.func=function(ie,_e){_e[this.name]=ie.ntoi2()};break;case Y:case me:O.func=function(ie,_e){_e[this.name]=ie.ntoi4()};break;case he:case I:O.func=function(ie,_e){_e[this.name]=ie.ntoi8()};break;case B:O.func=function(ie,_e){_e[this.name]=ie.ntod()};break;case Q:O.func=function(ie,_e){_e[this.name]=ie.ntof()};break;case g:case E:O.func=function(ie,_e){_e[this.name]=ie.ntou1()};break;case _:O.func=function(ie,_e){_e[this.name]=ie.ntou2()};break;case C:case v:O.func=function(ie,_e){_e[this.name]=ie.ntou4()};break;case U:case p:O.func=function(ie,_e){_e[this.name]=ie.ntou8()};break;case k:O.func=function(ie,_e){_e[this.name]=0!==ie.ntou1()};break;case ue+k:case ue+Y:case ue+me:case ue+B:case ue+E:case ue+J:case ue+_:case ue+C:case ue+v:case ue+p:case ue+U:case ue+he:case ue+I:case ue+Q:oe.fArrayDim<2?(O.arrlength=oe.fArrayLength,O.func=function(ie,_e){_e[this.name]=ie.readFastArray(this.arrlength,this.type-ue)}):(O.arrlength=oe.fMaxIndex[oe.fArrayDim-1],O.minus1=!0,O.func=function(ie,_e){_e[this.name]=ie.readNdimArray(this,(Oe,$e)=>Oe.readFastArray($e.arrlength,$e.type-ue))});break;case ue+F:oe.fArrayDim<2?(O.arrlength=oe.fArrayLength,O.func=function(ie,_e){_e[this.name]=ie.readFastString(this.arrlength)}):(O.minus1=!0,O.arrlength=oe.fMaxIndex[oe.fArrayDim-1],O.func=function(ie,_e){_e[this.name]=ie.readNdimArray(this,(Oe,$e)=>Oe.readFastString($e.arrlength))});break;case V+k:case V+Y:case V+B:case V+E:case V+J:case V+_:case V+C:case V+v:case V+p:case V+U:case V+he:case V+I:case V+Q:O.cntname=oe.fCountName,O.func=function(ie,_e){_e[this.name]=1===ie.ntou1()?ie.readFastArray(_e[this.cntname],this.type-V):[]};break;case V+F:O.cntname=oe.fCountName,O.func=function(ie,_e){_e[this.name]=1===ie.ntou1()?ie.readFastString(_e[this.cntname]):null};break;case $:case ue+$:case V+$:O.double32=!0;case Z:case ue+Z:case V+Z:0!==oe.fFactor?(O.factor=1/oe.fFactor,O.min=oe.fXmin,O.read=function(ie){return ie.ntou4()*this.factor+this.min}):0===oe.fXmin&&O.double32?O.read=function(ie){return ie.ntof()}:(O.nbits=Math.round(oe.fXmin),0===O.nbits&&(O.nbits=12),O.dv=new DataView(new ArrayBuffer(8),0),O.read=function(ie){const _e=ie.ntou1(),Oe=ie.ntou2();return this.dv.setUint32(0,_e<<23|(Oe&(1<V?(O.cntname=oe.fCountName,O.func=function(ie,_e){_e[this.name]=1===ie.ntou1()?this.readarr(ie,_e[this.cntname]):null}):oe.fArrayDim<2?(O.arrlength=oe.fArrayLength,O.func=function(ie,_e){_e[this.name]=this.readarr(ie,this.arrlength)}):(O.arrlength=oe.fMaxIndex[oe.fArrayDim-1],O.minus1=!0,O.func=function(ie,_e){_e[this.name]=ie.readNdimArray(this,(Oe,$e)=>$e.readarr(Oe,$e.arrlength))});break;case je:case z:O.func=function(ie,_e){_e[this.name]=ie.readNdimArray(this,Oe=>Oe.readObjectAny())};break;case P:case Me:case T:case b:{let ie="BASE"===oe.fTypeName?oe.fName:oe.fTypeName;"*"===ie[ie.length-1]&&(ie=ie.slice(0,ie.length-1));const _e=ss(ie);_e>0?(O.arrkind=_e,O.func=function(Oe,$e){$e[this.name]=Oe.readFastArray(Oe.ntou4(),this.arrkind)}):0===_e?O.func=function(Oe,$e){$e[this.name]=Oe.readTString()}:(O.classname=ie,O.func=oe.fArrayLength>1?function(Oe,$e){$e[this.name]=Oe.readNdimArray(this,(et,it)=>et.classStreamer({},it.classname))}:function(Oe,$e){$e[this.name]=Oe.classStreamer({},this.classname)});break}case ue+b:case ue+P:case ue+Me:case ue+T:{let ie=oe.fTypeName;"*"===ie[ie.length-1]&&(ie=ie.slice(0,ie.length-1)),O.arrkind=ss(ie),O.arrkind<0&&(O.classname=ie),O.func=function(_e,Oe){Oe[this.name]=_e.readNdimArray(this,($e,et)=>et.arrkind>0?$e.readFastArray($e.ntou4(),et.arrkind):0===et.arrkind?$e.readTString():$e.classStreamer({},et.classname))};break}case F:O.func=function(ie,_e){_e[this.name]=ie.ntoi1()};break;case X:O.func=function(ie,_e){const Oe=ie.ntoi4();_e[this.name]=ie.substring(ie.o,ie.o+Oe),ie.o+=Oe};break;case W:O.func=function(ie,_e){_e[this.name]=ie.readTString()};break;case fe:case we:O.typename=oe.fTypeName,O.func=function(ie,_e){_e[this.name]=ie.classStreamer({},this.typename)};break;case ue+W:case ue+fe:case ue+we:O.typename=oe.fTypeName,O.func=function(ie,_e){const Oe=ie.readVersion();_e[this.name]=ie.readNdimArray(this,($e,et)=>et.typename===x.clTString?$e.readTString():$e.classStreamer({},et.typename)),ie.checkByteCount(Oe,this.typename+"[]")};break;case te:case ue+te:O.typename=oe.fTypeName,O.cntname=oe.fCountName,O.typename.lastIndexOf("**")>0?(O.typename=O.typename.slice(0,O.typename.lastIndexOf("**")),O.isptrptr=!0):(O.typename=O.typename.slice(0,O.typename.lastIndexOf("*")),O.isptrptr=!1),O.isptrptr?O.readitem=function(ie){return ie.readObjectAny()}:(O.arrkind=ss(O.typename),O.readitem=O.arrkind>0?function(ie){return ie.readFastArray(ie.ntou4(),this.arrkind)}:0===O.arrkind?function(ie){return ie.readTString()}:function(ie){return ie.classStreamer({},this.typename)}),void 0!==O.readitem?(O.read_loop=function(ie,_e){return ie.readNdimArray(this,(Oe,$e)=>{const et=new Array(_e);for(let it=0;it<_e;++it)et[it]=$e.readitem(Oe);return et})},O.func=function(ie,_e){const Oe=ie.readVersion(),$e=this.read_loop(ie,_e[this.cntname]);_e[this.name]=ie.checkByteCount(Oe,this.typename)?$e:null},O.branch_func=function(ie,_e){const Oe=ie.readVersion(),$e=_e[this.stl_size],et=new Array($e);for(let it=0;it<$e;++it)et[it]=this.read_loop(ie,_e[this.cntname][it]);_e[this.name]=ie.checkByteCount(Oe,this.typename)?et:null},O.objs_branch_func=function(ie,_e){const Oe=ie.readVersion(),$e=_e[this.name0];for(let et=0;et<$e.length;++et){const it=this.get($e,et);it[this.name]=this.read_loop(ie,it[this.cntname])}ie.checkByteCount(Oe,this.typename)}):(console.error(`fail to provide function for ${oe.fName} (${oe.fTypeName}) typ = ${oe.fType}`),O.func=function(ie,_e){const Oe=ie.readVersion();ie.checkByteCount(Oe),_e[this.name]=null});break;case bt:{O.typename=oe.fTypeName;const ie=(oe.fSTLtype||0)%40;if("TStreamerSTLstring"===oe._typename||"string"===O.typename||"string*"===O.typename)O.readelem=_e=>_e.readTString();else if(ie===pt||ie===st||ie===vt||ie===Ot||ie===Bn){const _e=O.typename.indexOf("<"),Oe=O.typename.lastIndexOf(">");if(O.conttype=O.typename.slice(_e+1,Oe).trim(),O.typeid=ai(O.conttype),O.typeid<0&&D.fBasicTypes[O.conttype]&&(O.typeid=D.fBasicTypes[O.conttype],console.log(`!!! Reuse basic type ${O.conttype} from file streamer infos`)),oe.fCtype&&oe.fCtype<20&&oe.fCtype!==O.typeid&&(console.warn(`Contained type ${O.conttype} not recognized as basic type ${oe.fCtype} FORCE`),O.typeid=oe.fCtype),O.typeid>0)O.readelem=function($e){return $e.readFastArray($e.ntoi4(),this.typeid)};else if(O.isptr=!1,O.conttype.lastIndexOf("*")===O.conttype.length-1&&(O.isptr=!0,O.conttype=O.conttype.slice(0,O.conttype.length-1)),oe.fCtype===T&&(O.isptr=!0),O.arrkind=ss(O.conttype),O.readelem=Pi,!O.isptr&&O.arrkind<0){const $e=zi("temp",O.conttype);$e.fType===bt&&($e.$fictional=!0,O.submember=Lr($e,D))}}else if(ie===Yt||ie===qt){const _e=O.typename.indexOf("<"),Oe=O.typename.lastIndexOf(">");O.pairtype="pair<"+O.typename.slice(_e+1,Oe)+">",O.si=D.findStreamerInfo(O.pairtype),O.streamer=ti(O.si,O.pairtype,D),(!O.streamer||2!==O.streamer.length)&&(console.error(`Fail to build streamer for pair ${O.pairtype}`),delete O.streamer),O.streamer&&(O.readelem=Si)}else ie===Mn&&(O.readelem=_e=>_e.readFastArray(_e.ntou4(),k));O.readelem?oe.$fictional||(O.read_version=function(_e,Oe){if(0===Oe)return null;const $e=_e.readVersion();return this.member_wise=!!($e.val&rt),this.stl_version=void 0,this.member_wise&&($e.val=$e.val&~rt,this.stl_version={val:_e.ntoi2()},this.stl_version.val<=0&&(this.stl_version.checksum=_e.ntou4())),$e},O.func=function(_e,Oe){const $e=this.read_version(_e);let et=_e.readNdimArray(this,(it,_t)=>_t.readelem(it));_e.checkByteCount($e,this.typename)||(et=null),Oe[this.name]=et},O.branch_func=function(_e,Oe){const $e=Oe[this.stl_size],et=this.read_version(_e,$e),it=new Array($e);for(let _t=0;_t<$e;++_t)it[_t]=_e.readNdimArray(this,(sn,tn)=>tn.readelem(sn));et&&_e.checkByteCount(et,`branch ${this.typename}`),Oe[this.name]=it},O.split_func=function(_e,Oe,$e){const et=this.read_version(_e);for(let it=0;it<$e;++it)Oe[it][this.name]=_e.readNdimArray(this,(_t,sn)=>sn.readelem(_t));_e.checkByteCount(et,this.typename)},O.objs_branch_func=function(_e,Oe){const $e=Oe[this.name0],et=this.read_version(_e,$e.length);for(let it=0;it<$e.length;++it)this.get($e,it)[this.name]=_e.readNdimArray(this,(sn,tn)=>tn.readelem(sn));et&&_e.checkByteCount(et,`branch ${this.typename}`)}):(console.error(`failed to create streamer for element ${O.typename} ${O.name} element ${oe._typename} STL type ${oe.fSTLtype}`),O.func=function(_e,Oe){const $e=_e.readVersion();_e.checkByteCount($e),Oe[this.name]=null});break}default:console.error(`fail to provide function for ${oe.fName} (${oe.fTypeName}) typ = ${oe.fType}`),O.func=function(){}}return O}function ss(oe){if(oe===x.clTString||"string"===oe||yn[oe]===x.clTString)return 0;if(oe.length<7||0!==oe.indexOf("TArray"))return-1;if(7===oe.length)switch(oe[6]){case"I":return Y;case"D":return B;case"F":return Q;case"S":return J;case"C":return F;case"L":return he;default:return-1}return"TArrayL64"===oe?I:-1}function Bs(oe,D){if(null===D)return D;const O=(0,x.getMethods)(oe);if(O)for(const ie in O)((0,x.isFunc)(O[ie])||0===ie.indexOf("_"))&&D.push({name:ie,method:O[ie],func(_e,Oe){Oe[this.name]=this.method}});return D}const yo=32768,xt=[0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535],K=[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],ge=[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,99,99],ye=[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],Pe=[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],At=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];function Ht(oe,D){const O=new Array(2*yo),ie=oe,_e=oe.byteLength;let et,it,_t,at,ut,Qt,Oe=0,$e=null,sn=0,tn=0,xn=-1,wn=!1,Ut=0,qe=0,nt=null,vn=0;function en(Vs){for(;tn>=Vs,tn-=Vs}function Hn(Vs,hn,di,Rt,hi,Pn){const Fn={status:0,root:null,m:0},gs=Array(17).fill(0),Qr=Array(17).fill(0),ro=Array(16).fill(null),Zs=Array(288).fill(0),Gi=Array(17).fill(0),Uo={e:0,b:0,n:0,t:null},ra=hn>256?Vs[256]:16;let $u,rc,mh,Io,$l,Td,Bi,mc,ll,sc,Zh,ic=null,ud=Vs,fd=0,Jh=null,tl=hn;do{gs[ud[fd++]]++}while(--tl>0);if(gs[0]===hn)return Fn;for(Io=1;Io<=16&&0===gs[Io];++Io);for($l=Io,Pntl&&(Pn=tl),ll=1<0;)Gi[mc++]=Io+=ud[fd++];ud=Vs,fd=0,tl=0;do{0!==(Io=ud[fd++])&&(Zs[Gi[Io]++]=tl)}while(++tl0;){for(;$l>Bi+Qr[1+mh];){if(Bi+=Qr[1+mh++],sc=(sc=$o-Bi)>Pn?Pn:sc,(rc=1<<(Io=$l-Bi))>$u+1)for(rc-=$u+1,mc=$l;++Iora&&Bi0&&(Gi[mh]=tl,Uo.b=Qr[mh],Uo.e=16+Io,Uo.t=Td,Io=(tl&(1<>Bi-Qr[mh],ic=ro[mh-1][Io],ic.e=Uo.e,ic.b=Uo.b,ic.n=Uo.n,ic.t=Uo.t)}for(Uo.b=$l-Bi,fd>=hn?Uo.e=99:ud[fd]>Bi;Io>=1)tl^=Io;for(tl^=Io;(tl&(1<16;){if(99===Rt)return-1;fn(hi.b),Rt-=16,en(Rt),hi=hi.t[jt(Rt)],Rt=hi.e}if(fn(hi.b),16!==Rt){if(15===Rt)break;for(en(Rt),Ut=hi.n+jt(Rt),fn(Rt),en(Qt),hi=at.list[jt(Qt)],Rt=hi.e;Rt>16;){if(99===Rt)return-1;fn(hi.b),Rt-=16,en(Rt),hi=hi.t[jt(Rt)],Rt=hi.e}for(fn(hi.b),en(Rt),qe=Oe-hi.n-jt(Rt),fn(Rt);Ut>0&&Pn0&&Rt1)throw $e=null,new Error("HufBuild error: "+hi.status);et=hi.root,_t=hi.m}return nt=$e,at=et,ut=it,Qt=_t,Vn(Vs,hn,di)}function Li(Vs,hn,di){let Rt,hi,Pn,Fn,_i;const Dr=new Array(316).fill(0);en(5);const gs=257+jt(5);fn(5),en(5);const Qr=1+jt(5);fn(5),en(4);const ro=4+jt(4);if(fn(4),gs>286||Qr>30)return-1;for(hi=0;hiZs)return-1;for(;hi-- >0;)Dr[Rt++]=Pn}else if(17===hi){if(en(3),hi=3+jt(3),fn(3),Rt+hi>Zs)return-1;for(;hi-- >0;)Dr[Rt++]=0;Pn=0}else{if(en(7),hi=11+jt(7),fn(7),Rt+hi>Zs)return-1;for(;hi-- >0;)Dr[Rt++]=0;Pn=0}if(ut=9,_i=Hn(Dr,gs,257,K,ge,ut),0===ut&&(_i.status=1),0!==_i.status)return-1;for(nt=_i.root,ut=_i.m,Rt=0;Rt257||0!==_i.status?-1:Vn(Vs,hn,di)}function Kr(Vs,hn,di){let hi,Rt=0;for(;Rt0){if(0!==xn)for(;Ut>0&&Rt0&&Rt0;)ia+=os;return ia}function Nt(oe,D,O,ie){let _e=0;for(let Oe=O=O||0,$e=ie=ie||oe.length-O;Oe<$e;){const et=oe[Oe++];let it=et>>4;if(it>0){let Ut=it+240;for(;255===Ut;)Ut=oe[Oe++],it+=Ut;const qe=Oe+it;for(;Oe_e)return-(Oe-2);let sn=15&et,tn=sn+240;for(;255===tn;)tn=oe[Oe++],sn+=tn;let xn=_e-_t;const wn=_e+sn+4;for(;_eString.fromCharCode(oe.getUint8(xn))===wn,et=xn=>oe.getUint8(xn);let it=ie||0,_t=0,sn=null;const tn=()=>{for(;_t=Oe)return O||console.error("Error R__unzip: header size exceeds buffer size"),Promise.resolve(null);if($e(it,"Z")&&$e(it+1,"L")&&8===et(it+2)?(xn="new",wn=2):$e(it,"C")&&$e(it+1,"S")&&8===et(it+2)?(xn="old",wn=0):$e(it,"X")&&$e(it+1,"Z")&&0===et(it+2)?(xn="LZMA",wn=0):$e(it,"Z")&&$e(it+1,"S")&&1===et(it+2)?xn="ZSTD":$e(it,"L")&&$e(it+1,"4")&&(xn="LZ4",wn=0,Ut=8),"new"!==xn&&"old"!==xn&&"LZ4"!==xn&&"ZSTD"!==xn&&"LZMA"!==xn)return O||console.error(`R__unzip: ${xn} format is not supported!`),Promise.resolve(null);const qe=9+(255&et(it+3)|(255&et(it+4))<<8|(255&et(it+5))<<16),nt=new Uint8Array(oe.buffer,oe.byteOffset+it+9+wn+Ut,Math.min(oe.byteLength-it-9-wn-Ut,qe-9-Ut));sn||(sn=new ArrayBuffer(D));const at=new Uint8Array(sn,_t);if("ZSTD"===xn)return(x.internals._ZstdStream?Promise.resolve(x.internals._ZstdStream):((0,x.isNodeJs)()?Se.e(817).then(Se.t.bind(Se,9817,19)):import("./base/zstd.mjs")).then(({ZstdInit:vn})=>vn()).then(({ZstdStream:vn})=>(x.internals._ZstdStream=vn,vn))).then(vn=>{const en=vn.decompress(nt),jt=en.length;for(let fn=0;fn{const vn=255&et(it+6)|(255&et(it+7))<<8|(255&et(it+8))<<16,en=Qt.decompress(nt,at,vn);return _t+=en,it+=qe,tn()});const ut="LZ4"===xn?Nt(nt,at):Ht(nt,at);if(ut<=0)break;_t+=ut,it+=qe}return _t!==D?(O||console.error(`R__unzip: fail to unzip data expects ${D}, got ${_t}`),Promise.resolve(null)):Promise.resolve(new DataView(sn))};return tn()})).apply(this,arguments)}class kn{constructor(D,O,ie,_e){this._typename="TBuffer",this.arr=D,this.o=O||0,this.fFile=ie,this.length=_e||(D?D.byteLength:0),this.clearObjectMap(),this.fTagOffset=0,this.last_read_version=0}locate(D){this.o=D}shift(D){this.o+=D}remain(){return this.length-this.o}getMappedObject(D){return this.fObjectMap[D]}mapObject(D,O){null!==O&&(this.fObjectMap[D]=O)}mapClass(D,O){this.fClassMap[D]=O}getMappedClass(D){return D in this.fClassMap?this.fClassMap[D]:-1}clearObjectMap(){this.fObjectMap={},this.fClassMap={},this.fObjectMap[0]=null,this.fDisplacement=0}readVersion(){const D={},O=this.ntou4();return O&tt?D.bytecnt=O-tt-2:this.o-=4,this.last_read_version=D.val=this.ntoi2(),this.last_read_checksum=0,D.off=this.o,D.val<=0&&D.bytecnt&&D.bytecnt>=4&&(D.checksum=this.ntou4(),this.fFile.findStreamerInfo(void 0,void 0,D.checksum)?this.last_read_checksum=D.checksum:(this.o-=4,delete D.checksum)),D}checkByteCount(D,O){return void 0===D.bytecnt||D.off+D.bytecnt===this.o||(O&&console.log(`Missmatch in ${O} bytecount expected = ${D.bytecnt} got = ${this.o-D.off}`),this.o=D.off+D.bytecnt,!1)}readTString(){let D=this.ntou1();if(255===D&&(D=this.ntou4()),0===D)return"";const O=this.o;return this.o+=D,0===this.codeAt(O)?"":this.substring(O,O+D)}readFastString(D){let ie,O="",_e=!1;for(let Oe=0;(D<0||Oethis.length)return!1;return!0}extract(D){if(!this.arr||!this.arr.buffer||!this.canExtract(D))return null;if(2===D.length)return new DataView(this.arr.buffer,this.arr.byteOffset+D[0],D[1]);const O=new Array(D.length/2);for(let ie=0;ie0&&(ie=1,_e=[D.fArrayLength]),D.minus1&&--ie,ie<1)return O(this,D);if(1===ie){Oe=new Array(_e[0]);for(let $e=0;$e<_e[0];++$e)Oe[$e]=O(this,D)}else if(2===ie){Oe=new Array(_e[0]);for(let $e=0;$e<_e[0];++$e){const et=new Array(_e[1]);for(let it=0;it<_e[1];++it)et[it]=O(this,D);Oe[$e]=et}}else{const $e=new Array(ie).fill(0),et=new Array(ie);for(let it=0;it0;)$e[it]=0,et[it-1].push(et[it]),et[it]=[],++$e[--it]}}return Oe}readTKey(D){D||(D={}),this.classStreamer(D,x.clTKey);const O=D.fName.replace(/['"]/g,"");return O!==D.fName&&(D.fRealName=D.fName,D.fName=O),D}readBasketEntryOffset(D,O){if(this.locate(D.fLast-O),this.remain()<=0)return!D.fEntryOffset&&D.fNevBuf<=1&&(D.fEntryOffset=[D.fKeylen]),void(D.fEntryOffset||console.warn(`No fEntryOffset when expected for basket with ${D.fNevBuf} entries`));const ie=this.ntoi4();if(ie<0||ie>4*this.remain())return console.error(`Error when reading entries offset from basket fNevBuf ${D.fNevBuf} remains ${this.remain()} want to read ${ie}`),void(D.fNevBuf<=1&&(D.fEntryOffset=[D.fKeylen]));D.fEntryOffset=this.readFastArray(ie,Y),D.fEntryOffset||(D.fEntryOffset=[D.fKeylen]),D.fDisplacement=this.remain()>0?this.readFastArray(this.ntoi4(),Y):void 0}readClass(){const D={name:-1},O=this.ntou4(),ie=this.o;let _e;if(_e=O&tt&&O!==Fe?this.ntou4():O,!(_e&Ne))return D.objtag=_e+this.fDisplacement,D;if(_e===Fe)D.name=this.readFastString(-1),-1===this.getMappedClass(this.fTagOffset+ie+2)&&this.mapClass(this.fTagOffset+ie+2,D.name);else{const Oe=(_e&~Ne)+this.fDisplacement;D.name=this.getMappedClass(Oe),-1===D.name&&console.error(`Did not found class with tag ${Oe}`)}return D}readObjectAny(){const D=this.fTagOffset+this.o+2,O=this.readClass();if("objtag"in O)return this.getMappedObject(O.objtag);if(-1===O.name)return null;const ie=ss(O.name);let _e;return 0===ie?_e=this.readTString():ie>0?(_e=this.readFastArray(this.ntou4(),ie),this.mapObject(D,_e)):(_e={},this.mapObject(D,_e),this.classStreamer(_e,O.name)),_e}classStreamer(D,O){void 0===D._typename&&(D._typename=O);const ie=ii[O];if(ie)return ie(this,D),D;const _e=this.readVersion(),Oe=this.fFile.getStreamer(O,_e);if(null!==Oe){const $e=Oe.length;for(let et=0;et<$e;++et)Oe[et].func(this,D)}else(0,x.addMethods)(D);return this.checkByteCount(_e,O),D}}class cn{constructor(D,O,ie){this.fFile=D,this._typename=Ye,this.dir_name=O,this.dir_cycle=ie,this.fKeys=[]}getKey(D,O,ie){"number"!=typeof O&&(O=-1);let _e=null;for(let $e=0;$e_e.fCycle)&&(_e=et)}}if(_e)return ie?_e:Promise.resolve(_e);let Oe=D.lastIndexOf("/");for(;Oe>0;){const $e=D.slice(0,Oe),et=D.slice(Oe+1),it=this.getKey($e,void 0,!0);if(it&&!ie&&0===it.fClassName.indexOf(Ye))return this.fFile.readObject(this.dir_name+"/"+$e,1).then(_t=>_t.getKey(et,O));Oe=D.lastIndexOf("/",Oe-1)}return ie?null:Promise.reject(Error(`Key not found ${D}`))}readObject(D,O){return this.fFile.readObject(this.dir_name+"/"+D,O)}readKeys(D){var O=this;return(0,Te.A)(function*(){return D.classStreamer(O,Ye),O.fSeekKeys<=0||O.fNbytesKeys<=0?O:O.fFile.readBuffer([O.fSeekKeys,O.fNbytesKeys]).then(ie=>{const _e=new kn(ie,0,O.fFile);_e.readTKey();const Oe=_e.ntoi4();for(let $e=0;$e=0?this.fURL.slice(O+1):this.fURL}assignFileContent(D){this.fFileContent=new kn(new DataView(D)),this.fAcceptRanges=!1,this.fUseStampPar=!1,this.fEND=this.fFileContent.length}_open(){var D=this;return(0,Te.A)(function*(){return D.readKeys()})()}readBuffer(D,O,ie){var _e=this;return(0,Te.A)(function*(){if(null!==_e.fFileContent&&!O&&(!_e.fAcceptRanges||_e.fFileContent.canExtract(D)))return _e.fFileContent.extract(D);let Oe,$e;const et=_e,it=0===D[0]&&2===D.length,_t=[],sn=new Promise((ut,Qt)=>{Oe=ut,$e=Qt});let Ut,qe,tn=et.fURL,xn=0,wn=0,nt=!1;if((0,x.isStr)(O)&&O){const ut=tn.lastIndexOf("/");tn=ut<0?O:tn.slice(0,ut+1)+O}function at(ut){if(ut&&(xn=wn,wn=Math.min(xn+2*et.fMaxRanges,D.length),xn>=D.length))return Oe(_t);let Qt=tn,vn="bytes",en=0;et.fUseStampPar&&(Qt+=(Qt.indexOf("?")<0?"?":"&")+et.fUseStampPar);for(let jt=xn;jtxn?",":"=")+`${D[jt]}-${D[jt]+D[jt+1]-1}`,en+=D[jt+1];return wn-xn>2&&(en+=60*(wn-xn)),et.fAcceptRanges&&it&&(en=Math.max(en,1e7)),(0,x.createHttpRequest)(Qt,"buf",Ut,void 0,!0).then(jt=>{if(et.fAcceptRanges&&(jt.setRequestHeader("Range",vn),jt.expected_size=Math.max(Math.round(1.1*en),en+200)),(0,x.isFunc)(ie)&&(0,x.isFunc)(jt.addEventListener)){let fn=0,Hn=0,Vn=0;for(let Li=1;Li{Li.lengthComputable&&"break"===ie(Hi+_r*Li.loaded/Li.total)&&jt.abort()})}else nt&&(0,x.isFunc)(jt.addEventListener)&&jt.addEventListener("progress",fn=>{fn.total?fn.total>5e7&&(console.error(`Try to load very large file ${fn.total} at once - abort`),jt.abort()):console.warn("Fail to get file size information")});qe=it?jt:null,jt.send(null)})}return Ut=function(ut){if(!ut&&it){if(et.fUseStampPar)return et.fUseStampPar=!1,at();if(et.fAcceptRanges)return et.fAcceptRanges=!1,nt=!0,at()}if(ut&&qe){if(et.fAcceptRanges&&!qe.getResponseHeader("Accept-Ranges")&&(et.fAcceptRanges=!1,ut?.byteLength===D[1]))return console.warn(`First block is ${D[1]} bytes but browser does not provides access to header - try to read full file`),nt=!0,at();const Hi=x.browser.isFirefox?qe.getResponseHeader("Server"):"";(0,x.isStr)(Hi)&&0===Hi.indexOf("SimpleHTTP")&&(et.fMaxRanges=1,et.fUseStampPar=!1)}if(ut&&it&&!et.fFileContent)return et.fFileContent=new kn((0,x.isStr)(ut)?ut:new DataView(ut)),et.fAcceptRanges||(et.fEND=et.fFileContent.length),Oe(et.fFileContent.extract(D));if(!ut)return 0===xn&&wn>2&&et.fMaxRanges>1?(et.fMaxRanges=wn/2>200?200:wn/2>50?50:wn/2>20?20:wn/2>5?5:1,wn=Math.min(wn,2*et.fMaxRanges),at()):$e(Error("Fail to read with several ranges"));if(wn-xn==2){const Hi=new DataView(ut);return 2===D.length?Oe(Hi):(_t.push(Hi),at(!0))}const Qt=this.getResponseHeader("Content-Type"),vn=(0,x.isStr)(Qt)&&Qt.indexOf("multipart")>=0,en=new DataView(ut);if(!vn){const Hi=this.getResponseHeader("Content-Range");let _r=0,Li=-1;if((0,x.isStr)(Hi)&&Hi.indexOf("bytes")>=0){const os=Hi.slice(Hi.indexOf("bytes")+6).split(/[\s-/]+/);3===os.length&&(_r=parseInt(os[0]),Li=parseInt(os[1]),(!Number.isInteger(_r)||!Number.isInteger(Li)||_r>Li)&&(_r=0,Li=-1))}let Kr=_r<=Li;for(let os=xn;osLi)&&(Kr=!1);if(Kr){for(let os=xn;os0?(fn=Qt.slice(jt+9),'"'===fn[0]&&'"'===fn[fn.length-1]&&(fn=fn.slice(1,fn.length-1)),fn="--"+fn):console.error("Did not found boundary id in the response header");Hn2&&"--"===Kr.slice(0,2)&&Kr!==fn)return $e(Error(`Decode multipart message, expect boundary ${fn} got ${Kr}`));if(Kr=Kr.toLowerCase(),Kr.indexOf("content-range")>=0&&Kr.indexOf("bytes")>0){const hn=Kr.slice(Kr.indexOf("bytes")+6).split(/[\s-/]+/);3===hn.length?(ia=parseInt(hn[0]),Vs=parseInt(hn[1]),(!Number.isInteger(ia)||!Number.isInteger(Vs)||ia>Vs)&&(ia=0,Vs=-1)):console.error(`Fail to decode content-range ${Kr} ${hn}`)}Li>1&&0===Kr.length&&(os=!0),Li++,Kr="",10!==Hi&&(Vn++,_r=en.getUint8(Vn+1))}else Kr+=String.fromCharCode(Hi);Vn++}if(!os)return $e(Error("Cannot decode header in multipart message"));if(ia>Vs)_t.push(new DataView(ut,Vn,D[Hn+1])),Vn+=D[Hn+1],Hn+=2;else{for(;Hn=ia&&D[Hn]+D[Hn+1]-1<=Vs;)_t.push(new DataView(ut,Vn+D[Hn]-ia,D[Hn+1])),Hn+=2;Vn+=Vs-ia+1}}at(!0)},at(!0).then(()=>sn)})()}getFileName(){return this.fFileName}getDir(D,O){if(void 0===O&&(0,x.isStr)(D)){const ie=D.lastIndexOf(";");ie>0&&(O=parseInt(D.slice(ie+1)),D=D.slice(0,ie))}for(let ie=0;ie_e.fCycle)&&(_e=et)}}if(_e)return ie?_e:Promise.resolve(_e);let Oe=D.lastIndexOf("/");for(;Oe>0;){const $e=D.slice(0,Oe),et=D.slice(Oe+1),it=this.getDir($e);if(it)return it.getKey(et,O,ie);const _t=this.getKey($e,void 0,!0);if(_t&&!ie&&0===_t.fClassName.indexOf(Ye))return this.readObject($e).then(sn=>sn.getKey(et,O));Oe=D.lastIndexOf("/",Oe-1)}return ie?null:Promise.reject(Error(`Key not found ${D}`))}readObjBuffer(D){var O=this;return(0,Te.A)(function*(){return O.readBuffer([D.fSeekKey+D.fKeylen,D.fNbytes-D.fKeylen]).then(ie=>{if(D.fObjlen<=D.fNbytes-D.fKeylen){const _e=new kn(ie,0,O);return _e.fTagOffset=D.fKeylen,_e}return nn(ie,D.fObjlen).then(_e=>{if(!_e)return Promise.reject(Error(`Fail to UNZIP buffer for ${D.fName}`));const Oe=new kn(_e,0,O);return Oe.fTagOffset=D.fKeylen,Oe})})})()}readObject(D,O,ie){var _e=this;return(0,Te.A)(function*(){const Oe=D.lastIndexOf(";");for(Oe>0&&(O=parseInt(D.slice(Oe+1)),D=D.slice(0,Oe)),"number"!=typeof O&&(O=-1);D.length&&"/"===D[0];)D=D.slice(1);return _e.getKey(D,O).then($e=>{if(D===De&&$e.fClassName===x.clTList)return _e.fStreamerInfos;let et=!1;if($e.fClassName===Ye||$e.fClassName===Ze){const it=_e.getDir(D,O);if(it)return it;et=!0}return!et&&ie?Promise.reject(Error(`Key ${D} is not directory}`)):_e.readObjBuffer($e).then(it=>{if(et){const sn=new cn(_e,D,O);return sn.fTitle=$e.fTitle,sn.readKeys(it)}const _t={};return it.mapObject(1,_t),it.classStreamer(_t,$e.fClassName),$e.fClassName===x.clTF1||$e.fClassName===x.clTF2?_e._readFormulas(_t):_t})})})()}_readFormulas(D){var O=this;return(0,Te.A)(function*(){const ie=[];for(let _e=0;_e(_e.forEach(Oe=>D.addFormula(Oe)),D))})()}extractStreamerInfos(D){if(!D)return;const O={};D.mapObject(1,O);try{D.classStreamer(O,x.clTList)}catch(ie){return void console.error("Fail extract streamer infos",ie)}O._typename=ot,this.fStreamerInfos=O,(0,x.isFunc)(x.internals.addStreamerInfosForPainter)&&x.internals.addStreamerInfosForPainter(O);for(let ie=0;ie=60){if(et===bt&&$e._typename===ke&&$e.fSTLtype&&$e.fCtype&&$e.fCtype<20){const sn=(Dn[$e.fSTLtype]||"undef")+"<";if(0===it.indexOf(sn)&&">"===it[it.length-1]&&(et=$e.fCtype,it=it.slice(sn.length,it.length-1).trim(),$e.fSTLtype===Yt||$e.fSTLtype===qt)){if(!(it.indexOf(",")>0))continue;it=it.slice(0,it.indexOf(",")).trim()}}if(et>=60)continue}else et>20&&"*"===it[it.length-1]&&(it=it.slice(0,it.length-1)),et%=20;const _t=ai(it);_t!==et&&(et===C&&_t===v||et===me&&_t===Y||it&&et&&this.fBasicTypes[it]!==et&&(this.fBasicTypes[it]=et))}}}readKeys(){var D=this;return(0,Te.A)(function*(){return D.readBuffer([0,1024]).then(O=>{const ie=new kn(O,0,D);if("root"!==ie.substring(0,4))return Promise.reject(Error(`Not a ROOT file ${D.fURL}`));if(ie.shift(4),D.fVersion=ie.ntou4(),D.fBEGIN=ie.ntou4(),D.fVersion<1e6?(D.fEND=ie.ntou4(),D.fSeekFree=ie.ntou4(),D.fNbytesFree=ie.ntou4(),ie.shift(4),D.fNbytesName=ie.ntou4(),D.fUnits=ie.ntou1(),D.fCompress=ie.ntou4(),D.fSeekInfo=ie.ntou4(),D.fNbytesInfo=ie.ntou4()):(D.fEND=ie.ntou8(),D.fSeekFree=ie.ntou8(),D.fNbytesFree=ie.ntou4(),ie.shift(4),D.fNbytesName=ie.ntou4(),D.fUnits=ie.ntou1(),D.fCompress=ie.ntou4(),D.fSeekInfo=ie.ntou8(),D.fNbytesInfo=ie.ntou4()),!D.fSeekInfo||!D.fNbytesInfo)return Promise.reject(Error(`File ${D.fURL} does not provide streamer infos`));if(!D.fNbytesName||D.fNbytesName>1e5)return Promise.reject(Error(`Cannot read directory info of the file ${D.fURL}`));let _e=D.fNbytesName+22;return _e+=4,_e+=4,_e+=18,D.fVersion>=4e4&&(_e+=12),D.readBuffer([D.fBEGIN,Math.max(300,_e)])}).then(O=>{const ie=new kn(O,0,D);return D.fTitle=ie.readTKey().fTitle,ie.locate(D.fNbytesName),ie.classStreamer(D,Ye),D.fSeekKeys?D.readBuffer([D.fSeekKeys,D.fNbytesKeys,D.fSeekInfo,D.fNbytesInfo]):Promise.reject(Error(`Empty keys list in ${D.fURL}`))}).then(O=>{const ie=new kn(O[0],0,D);ie.readTKey();const _e=ie.ntoi4();for(let et=0;et<_e;++et)D.fKeys.push(ie.readTKey());const $e=new kn(O[1],0,D).readTKey();return $e?(D.fKeys.push($e),D.readObjBuffer($e)):Promise.reject(Error(`Fail to read StreamerInfo data in ${D.fURL}`))}).then(O=>(D.extractStreamerInfos(O),D))})()}readDirectory(D,O){var ie=this;return(0,Te.A)(function*(){return ie.readObject(D,O,!0)})()}findStreamerInfo(D,O,ie){if(!this.fStreamerInfos)return null;const _e=this.fStreamerInfos.arr,Oe=_e.length;if(void 0!==ie){let $e=this.fStreamerInfos.cache;$e||($e=this.fStreamerInfos.cache={});let et=$e[ie];if(void 0!==et)return et;for(let it=0;it{"fLineStyle"===et.fName&&(et.fName="fLineStyles")}),ie.fElements)for(let et=0;et1e6)throw new Error(`member-wise streaming of ${this.conttype} num ${_e} member ${this.name}`);Oe.val===this.member_ver&&Oe.checksum===this.member_checksum?$e=this.member_streamer:($e=oe.fFile.getStreamer(this.conttype,Oe),this.member_streamer=$e=oe.fFile.getSplittedStreamer($e),this.member_ver=Oe.val,this.member_checksum=Oe.checksum);const et=new Array(_e);let it,_t,sn;for(it=0;it<_e;++it)et[it]={_typename:this.conttype};if($e)for(_t=0;_t<$e.length;++_t)if(sn=$e[_t],sn.split_func)sn.split_func(oe,et,_e);else for(it=0;it<_e;++it)sn.func(oe,et[it]);else console.error(`Fail to create split streamer for ${this.conttype} need to read ${_e} objects version ${Oe}`);return et}const D=oe.ntou4(),O=new Array(D);let ie=0;if(D>2e5)return console.error(`vector streaming for ${this.conttype} at ${D}`),O;if(this.arrkind>0)for(;ie=6&&(oe.ntoi2()===rt?oe.shift(4):oe.shift(-2));for(let _e=0;_e=6&&(oe.ntoi2()===rt?oe.shift(4):oe.shift(-2));for(let _e=0;_e{if(O)return $e(Error(`Cannot access other local file ${O}`));const et=new FileReader,it=[];let _t=0;et.onload=function(sn){const tn=new DataView(sn.target.result);return 2===D.length?Oe(tn):(it.push(tn),_t+=2,_t>=D.length?Oe(it):void et.readAsArrayBuffer(_e.slice(D[_t],D[_t]+D[_t+1])))},et.readAsArrayBuffer(_e.slice(D[0],D[0]+D[1]))})})()}}class Jn extends In{constructor(D){super(null),this.fUseStampPar=!1,this.fEND=0,this.fFullURL=D,this.fURL=D,this.fFileName=D}_open(){var D=this;return(0,Te.A)(function*(){return Se.e(424).then(Se.t.bind(Se,9424,19)).then(O=>(D.fs=O,new Promise((ie,_e)=>D.fs.open(D.fFileName,"r",(Oe,$e)=>{if(Oe)return console.log(Oe.message),_e(Error(`Not possible to open ${D.fFileName} inside node.js`));const et=D.fs.fstatSync($e);D.fEND=et.size,D.fd=$e,D.readKeys().then(ie).catch(_e)}))))})()}readBuffer(D,O){var ie=this;return(0,Te.A)(function*(){return new Promise((_e,Oe)=>{if(O)return Oe(Error(`Cannot access other local file ${O}`));if(!ie.fs||!ie.fd)return Oe(Error(`File is not opened ${ie.fFileName}`));const $e=[];let et=0;const it=(_t,sn,tn)=>{const xn=new DataView(tn.buffer,tn.byteOffset,D[et+1]);return 2===D.length?_e(xn):($e.push(xn),et+=2,et>=D.length?_e($e):void ie.fs.read(ie.fd,Buffer.alloc(D[et+1]),0,D[et+1],D[et],it))};ie.fs.read(ie.fd,Buffer.alloc(D[1]),0,D[1],D[0],it)})})()}}class Wi{openFile(){return(0,Te.A)(function*(){return!1})()}getFileName(){return""}getFileSize(){return 0}readBuffer(){return(0,Te.A)(function*(){return null})()}}class Ln extends In{constructor(D){super(null),this.fUseStampPar=!1,this.proxy=D}_open(){var D=this;return(0,Te.A)(function*(){return D.proxy.openFile().then(O=>{if(!O)return!1;if(D.fEND=D.proxy.getFileSize(),D.fFullURL=D.fURL=D.fFileName=D.proxy.getFileName(),(0,x.isStr)(D.fFileName)){const ie=D.fFileName.lastIndexOf("/");ie>0&&ie{"use strict";Se.d(mt,{$EB:()=>Y,$p8:()=>YT,AHc:()=>yP,B69:()=>Rl,BH$:()=>XC,CSG:()=>em,Cgj:()=>ab,DXC:()=>uT,Df:()=>hM,FNr:()=>LT,Fvt:()=>uM,GOR:()=>Qx,G_z:()=>OT,Gu$:()=>Hv,I9Y:()=>Ui,JeP:()=>BB,KQV:()=>fP,LoY:()=>Cs,NRn:()=>rl,NUf:()=>vy,O9p:()=>Gr,ONl:()=>pT,PPD:()=>ef,PTz:()=>Oh,Pq0:()=>Ft,Q1f:()=>Os,THS:()=>sa,Tap:()=>UT,V9B:()=>Xc,YJl:()=>nd,Z58:()=>QC,ZLX:()=>WC,ZM4:()=>r3,Zcv:()=>nu,ZyN:()=>XT,_4j:()=>Gv,_l5:()=>s3,c9P:()=>NM,cZY:()=>eb,dth:()=>$T,eaF:()=>Jc,hB5:()=>F,iNn:()=>Cu,jUj:()=>Gx,kn4:()=>bo,mrM:()=>$1,nWS:()=>Fh,qBx:()=>FT,qUd:()=>kd,qtW:()=>Bo,s0G:()=>ZA,sPf:()=>x,tBo:()=>dP,tXL:()=>kT,tcD:()=>eM,uSd:()=>qv,ubm:()=>Vl,w4A:()=>bP,xJ6:()=>Ym});var Te=Se(4882);const x="158",He=1,Ve=2,De=3,F=0,Y=2,E=100,Ne=0,rt=1,St=2,pt=0,st=1,vt=2,Yt=3,qt=4,Ot=5,Dn=301,$n=302,Sn=306,ai=1001,ti=1003,xt=1006,ye=1008,At=1009,kn=1014,cn=1015,In=1016,Si=1020,Jn=1023,Rs=1026,oe=1027,$l=3001,ll="srgb",sc="srgb-linear",Zh="display-p3",Jh="display-p3-linear",tl="linear",$o="srgb",U0="rec709",Uf="p3",zf=7680,V0="300 es",Dd=2e3;class bu{addEventListener(a,c){void 0===this._listeners&&(this._listeners={});const u=this._listeners;void 0===u[a]&&(u[a]=[]),-1===u[a].indexOf(c)&&u[a].push(c)}hasEventListener(a,c){if(void 0===this._listeners)return!1;const u=this._listeners;return void 0!==u[a]&&-1!==u[a].indexOf(c)}removeEventListener(a,c){if(void 0===this._listeners)return;const m=this._listeners[a];if(void 0!==m){const M=m.indexOf(c);-1!==M&&m.splice(M,1)}}dispatchEvent(a){if(void 0===this._listeners)return;const u=this._listeners[a.type];if(void 0!==u){a.target=this;const m=u.slice(0);for(let M=0,N=m.length;M>8&255]+Ac[w>>16&255]+Ac[w>>24&255]+"-"+Ac[255&a]+Ac[a>>8&255]+"-"+Ac[a>>16&15|64]+Ac[a>>24&255]+"-"+Ac[63&c|128]+Ac[c>>8&255]+"-"+Ac[c>>16&255]+Ac[c>>24&255]+Ac[255&u]+Ac[u>>8&255]+Ac[u>>16&255]+Ac[u>>24&255]).toLowerCase()}function nl(w,a,c){return Math.max(a,Math.min(c,w))}function Gf(w,a,c){return(1-c)*w+c*a}function gh(w){return!(w&w-1)&&0!==w}function Xd(w){return Math.pow(2,Math.floor(Math.log(w)/Math.LN2))}function Kl(w,a){switch(a.constructor){case Float32Array:return w;case Uint32Array:return w/4294967295;case Uint16Array:return w/65535;case Uint8Array:return w/255;case Int32Array:return Math.max(w/2147483647,-1);case Int16Array:return Math.max(w/32767,-1);case Int8Array:return Math.max(w/127,-1);default:throw new Error("Invalid component type.")}}function ko(w,a){switch(a.constructor){case Float32Array:return w;case Uint32Array:return Math.round(4294967295*w);case Uint16Array:return Math.round(65535*w);case Uint8Array:return Math.round(255*w);case Int32Array:return Math.round(2147483647*w);case Int16Array:return Math.round(32767*w);case Int8Array:return Math.round(127*w);default:throw new Error("Invalid component type.")}}class Ui{constructor(a=0,c=0){Ui.prototype.isVector2=!0,this.x=a,this.y=c}get width(){return this.x}set width(a){this.x=a}get height(){return this.y}set height(a){this.y=a}set(a,c){return this.x=a,this.y=c,this}setScalar(a){return this.x=a,this.y=a,this}setX(a){return this.x=a,this}setY(a){return this.y=a,this}setComponent(a,c){switch(a){case 0:this.x=c;break;case 1:this.y=c;break;default:throw new Error("index is out of range: "+a)}return this}getComponent(a){switch(a){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+a)}}clone(){return new this.constructor(this.x,this.y)}copy(a){return this.x=a.x,this.y=a.y,this}add(a){return this.x+=a.x,this.y+=a.y,this}addScalar(a){return this.x+=a,this.y+=a,this}addVectors(a,c){return this.x=a.x+c.x,this.y=a.y+c.y,this}addScaledVector(a,c){return this.x+=a.x*c,this.y+=a.y*c,this}sub(a){return this.x-=a.x,this.y-=a.y,this}subScalar(a){return this.x-=a,this.y-=a,this}subVectors(a,c){return this.x=a.x-c.x,this.y=a.y-c.y,this}multiply(a){return this.x*=a.x,this.y*=a.y,this}multiplyScalar(a){return this.x*=a,this.y*=a,this}divide(a){return this.x/=a.x,this.y/=a.y,this}divideScalar(a){return this.multiplyScalar(1/a)}applyMatrix3(a){const c=this.x,u=this.y,m=a.elements;return this.x=m[0]*c+m[3]*u+m[6],this.y=m[1]*c+m[4]*u+m[7],this}min(a){return this.x=Math.min(this.x,a.x),this.y=Math.min(this.y,a.y),this}max(a){return this.x=Math.max(this.x,a.x),this.y=Math.max(this.y,a.y),this}clamp(a,c){return this.x=Math.max(a.x,Math.min(c.x,this.x)),this.y=Math.max(a.y,Math.min(c.y,this.y)),this}clampScalar(a,c){return this.x=Math.max(a,Math.min(c,this.x)),this.y=Math.max(a,Math.min(c,this.y)),this}clampLength(a,c){const u=this.length();return this.divideScalar(u||1).multiplyScalar(Math.max(a,Math.min(c,u)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(a){return this.x*a.x+this.y*a.y}cross(a){return this.x*a.y-this.y*a.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){return Math.atan2(-this.y,-this.x)+Math.PI}angleTo(a){const c=Math.sqrt(this.lengthSq()*a.lengthSq());if(0===c)return Math.PI/2;const u=this.dot(a)/c;return Math.acos(nl(u,-1,1))}distanceTo(a){return Math.sqrt(this.distanceToSquared(a))}distanceToSquared(a){const c=this.x-a.x,u=this.y-a.y;return c*c+u*u}manhattanDistanceTo(a){return Math.abs(this.x-a.x)+Math.abs(this.y-a.y)}setLength(a){return this.normalize().multiplyScalar(a)}lerp(a,c){return this.x+=(a.x-this.x)*c,this.y+=(a.y-this.y)*c,this}lerpVectors(a,c,u){return this.x=a.x+(c.x-a.x)*u,this.y=a.y+(c.y-a.y)*u,this}equals(a){return a.x===this.x&&a.y===this.y}fromArray(a,c=0){return this.x=a[c],this.y=a[c+1],this}toArray(a=[],c=0){return a[c]=this.x,a[c+1]=this.y,a}fromBufferAttribute(a,c){return this.x=a.getX(c),this.y=a.getY(c),this}rotateAround(a,c){const u=Math.cos(c),m=Math.sin(c),M=this.x-a.x,N=this.y-a.y;return this.x=M*u-N*m+a.x,this.y=M*m+N*u+a.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}}class zo{constructor(a,c,u,m,M,N,q,de,pe){zo.prototype.isMatrix3=!0,this.elements=[1,0,0,0,1,0,0,0,1],void 0!==a&&this.set(a,c,u,m,M,N,q,de,pe)}set(a,c,u,m,M,N,q,de,pe){const xe=this.elements;return xe[0]=a,xe[1]=m,xe[2]=q,xe[3]=c,xe[4]=M,xe[5]=de,xe[6]=u,xe[7]=N,xe[8]=pe,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(a){const c=this.elements,u=a.elements;return c[0]=u[0],c[1]=u[1],c[2]=u[2],c[3]=u[3],c[4]=u[4],c[5]=u[5],c[6]=u[6],c[7]=u[7],c[8]=u[8],this}extractBasis(a,c,u){return a.setFromMatrix3Column(this,0),c.setFromMatrix3Column(this,1),u.setFromMatrix3Column(this,2),this}setFromMatrix4(a){const c=a.elements;return this.set(c[0],c[4],c[8],c[1],c[5],c[9],c[2],c[6],c[10]),this}multiply(a){return this.multiplyMatrices(this,a)}premultiply(a){return this.multiplyMatrices(a,this)}multiplyMatrices(a,c){const u=a.elements,m=c.elements,M=this.elements,N=u[0],q=u[3],de=u[6],pe=u[1],xe=u[4],Ie=u[7],Be=u[2],Le=u[5],Ke=u[8],ft=m[0],Qe=m[3],ze=m[6],Ct=m[1],ct=m[4],Dt=m[7],Jt=m[2],ln=m[5],rn=m[8];return M[0]=N*ft+q*Ct+de*Jt,M[3]=N*Qe+q*ct+de*ln,M[6]=N*ze+q*Dt+de*rn,M[1]=pe*ft+xe*Ct+Ie*Jt,M[4]=pe*Qe+xe*ct+Ie*ln,M[7]=pe*ze+xe*Dt+Ie*rn,M[2]=Be*ft+Le*Ct+Ke*Jt,M[5]=Be*Qe+Le*ct+Ke*ln,M[8]=Be*ze+Le*Dt+Ke*rn,this}multiplyScalar(a){const c=this.elements;return c[0]*=a,c[3]*=a,c[6]*=a,c[1]*=a,c[4]*=a,c[7]*=a,c[2]*=a,c[5]*=a,c[8]*=a,this}determinant(){const a=this.elements,c=a[0],u=a[1],m=a[2],M=a[3],N=a[4],q=a[5],de=a[6],pe=a[7],xe=a[8];return c*N*xe-c*q*pe-u*M*xe+u*q*de+m*M*pe-m*N*de}invert(){const a=this.elements,c=a[0],u=a[1],m=a[2],M=a[3],N=a[4],q=a[5],de=a[6],pe=a[7],xe=a[8],Ie=xe*N-q*pe,Be=q*de-xe*M,Le=pe*M-N*de,Ke=c*Ie+u*Be+m*Le;if(0===Ke)return this.set(0,0,0,0,0,0,0,0,0);const ft=1/Ke;return a[0]=Ie*ft,a[1]=(m*pe-xe*u)*ft,a[2]=(q*u-m*N)*ft,a[3]=Be*ft,a[4]=(xe*c-m*de)*ft,a[5]=(m*M-q*c)*ft,a[6]=Le*ft,a[7]=(u*de-pe*c)*ft,a[8]=(N*c-u*M)*ft,this}transpose(){let a;const c=this.elements;return a=c[1],c[1]=c[3],c[3]=a,a=c[2],c[2]=c[6],c[6]=a,a=c[5],c[5]=c[7],c[7]=a,this}getNormalMatrix(a){return this.setFromMatrix4(a).invert().transpose()}transposeIntoArray(a){const c=this.elements;return a[0]=c[0],a[1]=c[3],a[2]=c[6],a[3]=c[1],a[4]=c[4],a[5]=c[7],a[6]=c[2],a[7]=c[5],a[8]=c[8],this}setUvTransform(a,c,u,m,M,N,q){const de=Math.cos(M),pe=Math.sin(M);return this.set(u*de,u*pe,-u*(de*N+pe*q)+N+a,-m*pe,m*de,-m*(-pe*N+de*q)+q+c,0,0,1),this}scale(a,c){return this.premultiply(eu.makeScale(a,c)),this}rotate(a){return this.premultiply(eu.makeRotation(-a)),this}translate(a,c){return this.premultiply(eu.makeTranslation(a,c)),this}makeTranslation(a,c){return a.isVector2?this.set(1,0,a.x,0,1,a.y,0,0,1):this.set(1,0,a,0,1,c,0,0,1),this}makeRotation(a){const c=Math.cos(a),u=Math.sin(a);return this.set(c,-u,0,u,c,0,0,0,1),this}makeScale(a,c){return this.set(a,0,0,0,c,0,0,0,1),this}equals(a){const c=this.elements,u=a.elements;for(let m=0;m<9;m++)if(c[m]!==u[m])return!1;return!0}fromArray(a,c=0){for(let u=0;u<9;u++)this.elements[u]=a[u+c];return this}toArray(a=[],c=0){const u=this.elements;return a[c]=u[0],a[c+1]=u[1],a[c+2]=u[2],a[c+3]=u[3],a[c+4]=u[4],a[c+5]=u[5],a[c+6]=u[6],a[c+7]=u[7],a[c+8]=u[8],a}clone(){return(new this.constructor).fromArray(this.elements)}}const eu=new zo;function Wc(w){for(let a=w.length-1;a>=0;--a)if(w[a]>=65535)return!0;return!1}function mi(w){return document.createElementNS("http://www.w3.org/1999/xhtml",w)}function Dg(){const w=mi("canvas");return w.style.display="block",w}Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array;const Ig={};function Cm(w){w in Ig||(Ig[w]=!0,console.warn(w))}const _h=(new zo).set(.8224621,.177538,0,.0331941,.9668058,0,.0170827,.0723974,.9105199),Mp=(new zo).set(1.2249401,-.2249404,0,-.0420569,1.0420571,0,-.0196376,-.0786361,1.0982735),yA={[sc]:{transfer:tl,primaries:U0,toReference:w=>w,fromReference:w=>w},[ll]:{transfer:$o,primaries:U0,toReference:w=>w.convertSRGBToLinear(),fromReference:w=>w.convertLinearToSRGB()},[Jh]:{transfer:tl,primaries:Uf,toReference:w=>w.applyMatrix3(Mp),fromReference:w=>w.applyMatrix3(_h)},[Zh]:{transfer:$o,primaries:Uf,toReference:w=>w.convertSRGBToLinear().applyMatrix3(Mp),fromReference:w=>w.applyMatrix3(_h).convertLinearToSRGB()}},Ku=new Set([sc,Jh]),Ya={enabled:!0,_workingColorSpace:sc,get legacyMode(){return console.warn("THREE.ColorManagement: .legacyMode=false renamed to .enabled=true in r150."),!this.enabled},set legacyMode(w){console.warn("THREE.ColorManagement: .legacyMode=false renamed to .enabled=true in r150."),this.enabled=!w},get workingColorSpace(){return this._workingColorSpace},set workingColorSpace(w){if(!Ku.has(w))throw new Error(`Unsupported working color space, "${w}".`);this._workingColorSpace=w},convert:function(w,a,c){return!1!==this.enabled&&a!==c&&a&&c?(0,yA[c].fromReference)((0,yA[a].toReference)(w)):w},fromWorkingColorSpace:function(w,a){return this.convert(w,this._workingColorSpace,a)},toWorkingColorSpace:function(w,a){return this.convert(w,a,this._workingColorSpace)},getPrimaries:function(w){return yA[w].primaries},getTransfer:function(w){return""===w?tl:yA[w].transfer}};function wu(w){return w<.04045?.0773993808*w:Math.pow(.9478672986*w+.0521327014,2.4)}function Bg(w){return w<.0031308?12.92*w:1.055*Math.pow(w,.41666)-.055}let Wf;class yh{static getDataURL(a){if(/^data:/i.test(a.src)||typeof HTMLCanvasElement>"u")return a.src;let c;if(a instanceof HTMLCanvasElement)c=a;else{void 0===Wf&&(Wf=mi("canvas")),Wf.width=a.width,Wf.height=a.height;const u=Wf.getContext("2d");a instanceof ImageData?u.putImageData(a,0,0):u.drawImage(a,0,0,a.width,a.height),c=Wf}return c.width>2048||c.height>2048?(console.warn("THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons",a),c.toDataURL("image/jpeg",.6)):c.toDataURL("image/png")}static sRGBToLinear(a){if(typeof HTMLImageElement<"u"&&a instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&a instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&a instanceof ImageBitmap){const c=mi("canvas");c.width=a.width,c.height=a.height;const u=c.getContext("2d");u.drawImage(a,0,0,a.width,a.height);const m=u.getImageData(0,0,a.width,a.height),M=m.data;for(let N=0;N{class w extends bu{constructor(c=w.DEFAULT_IMAGE,u=w.DEFAULT_MAPPING,m=ai,M=ai,N=xt,q=ye,de=Jn,pe=At,xe=w.DEFAULT_ANISOTROPY,Ie=""){super(),this.isTexture=!0,Object.defineProperty(this,"id",{value:q0++}),this.uuid=Ah(),this.name="",this.source=new jf(c),this.mipmaps=[],this.mapping=u,this.channel=0,this.wrapS=m,this.wrapT=M,this.magFilter=N,this.minFilter=q,this.anisotropy=xe,this.format=de,this.internalFormat=null,this.type=pe,this.offset=new Ui(0,0),this.repeat=new Ui(1,1),this.center=new Ui(0,0),this.rotation=0,this.matrixAutoUpdate=!0,this.matrix=new zo,this.generateMipmaps=!0,this.premultiplyAlpha=!1,this.flipY=!0,this.unpackAlignment=4,"string"==typeof Ie?this.colorSpace=Ie:(Cm("THREE.Texture: Property .encoding has been replaced by .colorSpace."),this.colorSpace=Ie===$l?ll:""),this.userData={},this.version=0,this.onUpdate=null,this.isRenderTargetTexture=!1,this.needsPMREMUpdate=!1}get image(){return this.source.data}set image(c=null){this.source.data=c}updateMatrix(){this.matrix.setUvTransform(this.offset.x,this.offset.y,this.repeat.x,this.repeat.y,this.rotation,this.center.x,this.center.y)}clone(){return(new this.constructor).copy(this)}copy(c){return this.name=c.name,this.source=c.source,this.mipmaps=c.mipmaps.slice(0),this.mapping=c.mapping,this.channel=c.channel,this.wrapS=c.wrapS,this.wrapT=c.wrapT,this.magFilter=c.magFilter,this.minFilter=c.minFilter,this.anisotropy=c.anisotropy,this.format=c.format,this.internalFormat=c.internalFormat,this.type=c.type,this.offset.copy(c.offset),this.repeat.copy(c.repeat),this.center.copy(c.center),this.rotation=c.rotation,this.matrixAutoUpdate=c.matrixAutoUpdate,this.matrix.copy(c.matrix),this.generateMipmaps=c.generateMipmaps,this.premultiplyAlpha=c.premultiplyAlpha,this.flipY=c.flipY,this.unpackAlignment=c.unpackAlignment,this.colorSpace=c.colorSpace,this.userData=JSON.parse(JSON.stringify(c.userData)),this.needsUpdate=!0,this}toJSON(c){const u=void 0===c||"string"==typeof c;if(!u&&void 0!==c.textures[this.uuid])return c.textures[this.uuid];const m={metadata:{version:4.6,type:"Texture",generator:"Texture.toJSON"},uuid:this.uuid,name:this.name,image:this.source.toJSON(c).uuid,mapping:this.mapping,channel:this.channel,repeat:[this.repeat.x,this.repeat.y],offset:[this.offset.x,this.offset.y],center:[this.center.x,this.center.y],rotation:this.rotation,wrap:[this.wrapS,this.wrapT],format:this.format,internalFormat:this.internalFormat,type:this.type,colorSpace:this.colorSpace,minFilter:this.minFilter,magFilter:this.magFilter,anisotropy:this.anisotropy,flipY:this.flipY,generateMipmaps:this.generateMipmaps,premultiplyAlpha:this.premultiplyAlpha,unpackAlignment:this.unpackAlignment};return Object.keys(this.userData).length>0&&(m.userData=this.userData),u||(c.textures[this.uuid]=m),m}dispose(){this.dispatchEvent({type:"dispose"})}transformUv(c){if(300!==this.mapping)return c;if(c.applyMatrix3(this.matrix),c.x<0||c.x>1)switch(this.wrapS){case 1e3:c.x=c.x-Math.floor(c.x);break;case ai:c.x=c.x<0?0:1;break;case 1002:c.x=1===Math.abs(Math.floor(c.x)%2)?Math.ceil(c.x)-c.x:c.x-Math.floor(c.x)}if(c.y<0||c.y>1)switch(this.wrapT){case 1e3:c.y=c.y-Math.floor(c.y);break;case ai:c.y=c.y<0?0:1;break;case 1002:c.y=1===Math.abs(Math.floor(c.y)%2)?Math.ceil(c.y)-c.y:c.y-Math.floor(c.y)}return this.flipY&&(c.y=1-c.y),c}set needsUpdate(c){!0===c&&(this.version++,this.source.needsUpdate=!0)}get encoding(){return Cm("THREE.Texture: Property .encoding has been replaced by .colorSpace."),this.colorSpace===ll?$l:3e3}set encoding(c){Cm("THREE.Texture: Property .encoding has been replaced by .colorSpace."),this.colorSpace=c===$l?ll:""}}return w.DEFAULT_IMAGE=null,w.DEFAULT_MAPPING=300,w.DEFAULT_ANISOTROPY=1,w})();class il{constructor(a=0,c=0,u=0,m=1){il.prototype.isVector4=!0,this.x=a,this.y=c,this.z=u,this.w=m}get width(){return this.z}set width(a){this.z=a}get height(){return this.w}set height(a){this.w=a}set(a,c,u,m){return this.x=a,this.y=c,this.z=u,this.w=m,this}setScalar(a){return this.x=a,this.y=a,this.z=a,this.w=a,this}setX(a){return this.x=a,this}setY(a){return this.y=a,this}setZ(a){return this.z=a,this}setW(a){return this.w=a,this}setComponent(a,c){switch(a){case 0:this.x=c;break;case 1:this.y=c;break;case 2:this.z=c;break;case 3:this.w=c;break;default:throw new Error("index is out of range: "+a)}return this}getComponent(a){switch(a){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error("index is out of range: "+a)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(a){return this.x=a.x,this.y=a.y,this.z=a.z,this.w=void 0!==a.w?a.w:1,this}add(a){return this.x+=a.x,this.y+=a.y,this.z+=a.z,this.w+=a.w,this}addScalar(a){return this.x+=a,this.y+=a,this.z+=a,this.w+=a,this}addVectors(a,c){return this.x=a.x+c.x,this.y=a.y+c.y,this.z=a.z+c.z,this.w=a.w+c.w,this}addScaledVector(a,c){return this.x+=a.x*c,this.y+=a.y*c,this.z+=a.z*c,this.w+=a.w*c,this}sub(a){return this.x-=a.x,this.y-=a.y,this.z-=a.z,this.w-=a.w,this}subScalar(a){return this.x-=a,this.y-=a,this.z-=a,this.w-=a,this}subVectors(a,c){return this.x=a.x-c.x,this.y=a.y-c.y,this.z=a.z-c.z,this.w=a.w-c.w,this}multiply(a){return this.x*=a.x,this.y*=a.y,this.z*=a.z,this.w*=a.w,this}multiplyScalar(a){return this.x*=a,this.y*=a,this.z*=a,this.w*=a,this}applyMatrix4(a){const c=this.x,u=this.y,m=this.z,M=this.w,N=a.elements;return this.x=N[0]*c+N[4]*u+N[8]*m+N[12]*M,this.y=N[1]*c+N[5]*u+N[9]*m+N[13]*M,this.z=N[2]*c+N[6]*u+N[10]*m+N[14]*M,this.w=N[3]*c+N[7]*u+N[11]*m+N[15]*M,this}divideScalar(a){return this.multiplyScalar(1/a)}setAxisAngleFromQuaternion(a){this.w=2*Math.acos(a.w);const c=Math.sqrt(1-a.w*a.w);return c<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=a.x/c,this.y=a.y/c,this.z=a.z/c),this}setAxisAngleFromRotationMatrix(a){let c,u,m,M;const de=a.elements,pe=de[0],xe=de[4],Ie=de[8],Be=de[1],Le=de[5],Ke=de[9],ft=de[2],Qe=de[6],ze=de[10];if(Math.abs(xe-Be)<.01&&Math.abs(Ie-ft)<.01&&Math.abs(Ke-Qe)<.01){if(Math.abs(xe+Be)<.1&&Math.abs(Ie+ft)<.1&&Math.abs(Ke+Qe)<.1&&Math.abs(pe+Le+ze-3)<.1)return this.set(1,0,0,0),this;c=Math.PI;const ct=(pe+1)/2,Dt=(Le+1)/2,Jt=(ze+1)/2,ln=(xe+Be)/4,rn=(Ie+ft)/4,Rn=(Ke+Qe)/4;return ct>Dt&&ct>Jt?ct<.01?(u=0,m=.707106781,M=.707106781):(u=Math.sqrt(ct),m=ln/u,M=rn/u):Dt>Jt?Dt<.01?(u=.707106781,m=0,M=.707106781):(m=Math.sqrt(Dt),u=ln/m,M=Rn/m):Jt<.01?(u=.707106781,m=.707106781,M=0):(M=Math.sqrt(Jt),u=rn/M,m=Rn/M),this.set(u,m,M,c),this}let Ct=Math.sqrt((Qe-Ke)*(Qe-Ke)+(Ie-ft)*(Ie-ft)+(Be-xe)*(Be-xe));return Math.abs(Ct)<.001&&(Ct=1),this.x=(Qe-Ke)/Ct,this.y=(Ie-ft)/Ct,this.z=(Be-xe)/Ct,this.w=Math.acos((pe+Le+ze-1)/2),this}min(a){return this.x=Math.min(this.x,a.x),this.y=Math.min(this.y,a.y),this.z=Math.min(this.z,a.z),this.w=Math.min(this.w,a.w),this}max(a){return this.x=Math.max(this.x,a.x),this.y=Math.max(this.y,a.y),this.z=Math.max(this.z,a.z),this.w=Math.max(this.w,a.w),this}clamp(a,c){return this.x=Math.max(a.x,Math.min(c.x,this.x)),this.y=Math.max(a.y,Math.min(c.y,this.y)),this.z=Math.max(a.z,Math.min(c.z,this.z)),this.w=Math.max(a.w,Math.min(c.w,this.w)),this}clampScalar(a,c){return this.x=Math.max(a,Math.min(c,this.x)),this.y=Math.max(a,Math.min(c,this.y)),this.z=Math.max(a,Math.min(c,this.z)),this.w=Math.max(a,Math.min(c,this.w)),this}clampLength(a,c){const u=this.length();return this.divideScalar(u||1).multiplyScalar(Math.max(a,Math.min(c,u)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this.w=Math.trunc(this.w),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this}dot(a){return this.x*a.x+this.y*a.y+this.z*a.z+this.w*a.w}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)}normalize(){return this.divideScalar(this.length()||1)}setLength(a){return this.normalize().multiplyScalar(a)}lerp(a,c){return this.x+=(a.x-this.x)*c,this.y+=(a.y-this.y)*c,this.z+=(a.z-this.z)*c,this.w+=(a.w-this.w)*c,this}lerpVectors(a,c,u){return this.x=a.x+(c.x-a.x)*u,this.y=a.y+(c.y-a.y)*u,this.z=a.z+(c.z-a.z)*u,this.w=a.w+(c.w-a.w)*u,this}equals(a){return a.x===this.x&&a.y===this.y&&a.z===this.z&&a.w===this.w}fromArray(a,c=0){return this.x=a[c],this.y=a[c+1],this.z=a[c+2],this.w=a[c+3],this}toArray(a=[],c=0){return a[c]=this.x,a[c+1]=this.y,a[c+2]=this.z,a[c+3]=this.w,a}fromBufferAttribute(a,c){return this.x=a.getX(c),this.y=a.getY(c),this.z=a.getZ(c),this.w=a.getW(c),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this.w=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z,yield this.w}}class vA extends bu{constructor(a=1,c=1,u={}){super(),this.isRenderTarget=!0,this.width=a,this.height=c,this.depth=1,this.scissor=new il(0,0,a,c),this.scissorTest=!1,this.viewport=new il(0,0,a,c);const m={width:a,height:c,depth:1};void 0!==u.encoding&&(Cm("THREE.WebGLRenderTarget: option.encoding has been replaced by option.colorSpace."),u.colorSpace=u.encoding===$l?ll:""),u=Object.assign({generateMipmaps:!1,internalFormat:null,minFilter:xt,depthBuffer:!0,stencilBuffer:!1,depthTexture:null,samples:0},u),this.texture=new vh(m,u.mapping,u.wrapS,u.wrapT,u.magFilter,u.minFilter,u.format,u.type,u.anisotropy,u.colorSpace),this.texture.isRenderTargetTexture=!0,this.texture.flipY=!1,this.texture.generateMipmaps=u.generateMipmaps,this.texture.internalFormat=u.internalFormat,this.depthBuffer=u.depthBuffer,this.stencilBuffer=u.stencilBuffer,this.depthTexture=u.depthTexture,this.samples=u.samples}setSize(a,c,u=1){(this.width!==a||this.height!==c||this.depth!==u)&&(this.width=a,this.height=c,this.depth=u,this.texture.image.width=a,this.texture.image.height=c,this.texture.image.depth=u,this.dispose()),this.viewport.set(0,0,a,c),this.scissor.set(0,0,a,c)}clone(){return(new this.constructor).copy(this)}copy(a){this.width=a.width,this.height=a.height,this.depth=a.depth,this.scissor.copy(a.scissor),this.scissorTest=a.scissorTest,this.viewport.copy(a.viewport),this.texture=a.texture.clone(),this.texture.isRenderTargetTexture=!0;const c=Object.assign({},a.texture.image);return this.texture.source=new jf(c),this.depthBuffer=a.depthBuffer,this.stencilBuffer=a.stencilBuffer,null!==a.depthTexture&&(this.depthTexture=a.depthTexture.clone()),this.samples=a.samples,this}dispose(){this.dispatchEvent({type:"dispose"})}}class Fh extends vA{constructor(a=1,c=1,u={}){super(a,c,u),this.isWebGLRenderTarget=!0}}const A1={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},tu={h:0,s:0,l:0},rs={h:0,s:0,l:0};function Pg(w,a,c){return c<0&&(c+=1),c>1&&(c-=1),c<1/6?w+6*(a-w)*c:c<.5?a:c<2/3?w+6*(a-w)*(2/3-c):w}class Os{constructor(a,c,u){return this.isColor=!0,this.r=1,this.g=1,this.b=1,this.set(a,c,u)}set(a,c,u){if(void 0===c&&void 0===u){const m=a;m&&m.isColor?this.copy(m):"number"==typeof m?this.setHex(m):"string"==typeof m&&this.setStyle(m)}else this.setRGB(a,c,u);return this}setScalar(a){return this.r=a,this.g=a,this.b=a,this}setHex(a,c=ll){return a=Math.floor(a),this.r=(a>>16&255)/255,this.g=(a>>8&255)/255,this.b=(255&a)/255,Ya.toWorkingColorSpace(this,c),this}setRGB(a,c,u,m=Ya.workingColorSpace){return this.r=a,this.g=c,this.b=u,Ya.toWorkingColorSpace(this,m),this}setHSL(a,c,u,m=Ya.workingColorSpace){if(a=function cl(w,a){return(w%a+a)%a}(a,1),c=nl(c,0,1),u=nl(u,0,1),0===c)this.r=this.g=this.b=u;else{const M=u<=.5?u*(1+c):u+c-u*c,N=2*u-M;this.r=Pg(N,M,a+1/3),this.g=Pg(N,M,a),this.b=Pg(N,M,a-1/3)}return Ya.toWorkingColorSpace(this,m),this}setStyle(a,c=ll){function u(M){void 0!==M&&parseFloat(M)<1&&console.warn("THREE.Color: Alpha component of "+a+" will be ignored.")}let m;if(m=/^(\w+)\(([^\)]*)\)/.exec(a)){let M;const q=m[2];switch(m[1]){case"rgb":case"rgba":if(M=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(q))return u(M[4]),this.setRGB(Math.min(255,parseInt(M[1],10))/255,Math.min(255,parseInt(M[2],10))/255,Math.min(255,parseInt(M[3],10))/255,c);if(M=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(q))return u(M[4]),this.setRGB(Math.min(100,parseInt(M[1],10))/100,Math.min(100,parseInt(M[2],10))/100,Math.min(100,parseInt(M[3],10))/100,c);break;case"hsl":case"hsla":if(M=/^\s*(\d*\.?\d+)\s*,\s*(\d*\.?\d+)\%\s*,\s*(\d*\.?\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(q))return u(M[4]),this.setHSL(parseFloat(M[1])/360,parseFloat(M[2])/100,parseFloat(M[3])/100,c);break;default:console.warn("THREE.Color: Unknown color model "+a)}}else if(m=/^\#([A-Fa-f\d]+)$/.exec(a)){const M=m[1],N=M.length;if(3===N)return this.setRGB(parseInt(M.charAt(0),16)/15,parseInt(M.charAt(1),16)/15,parseInt(M.charAt(2),16)/15,c);if(6===N)return this.setHex(parseInt(M,16),c);console.warn("THREE.Color: Invalid hex color "+a)}else if(a&&a.length>0)return this.setColorName(a,c);return this}setColorName(a,c=ll){const u=A1[a.toLowerCase()];return void 0!==u?this.setHex(u,c):console.warn("THREE.Color: Unknown color "+a),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(a){return this.r=a.r,this.g=a.g,this.b=a.b,this}copySRGBToLinear(a){return this.r=wu(a.r),this.g=wu(a.g),this.b=wu(a.b),this}copyLinearToSRGB(a){return this.r=Bg(a.r),this.g=Bg(a.g),this.b=Bg(a.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(a=ll){return Ya.fromWorkingColorSpace(vo.copy(this),a),65536*Math.round(nl(255*vo.r,0,255))+256*Math.round(nl(255*vo.g,0,255))+Math.round(nl(255*vo.b,0,255))}getHexString(a=ll){return("000000"+this.getHex(a).toString(16)).slice(-6)}getHSL(a,c=Ya.workingColorSpace){Ya.fromWorkingColorSpace(vo.copy(this),c);const u=vo.r,m=vo.g,M=vo.b,N=Math.max(u,m,M),q=Math.min(u,m,M);let de,pe;const xe=(q+N)/2;if(q===N)de=0,pe=0;else{const Ie=N-q;switch(pe=xe<=.5?Ie/(N+q):Ie/(2-N-q),N){case u:de=(m-M)/Ie+(m=0?1:-1,ct=1-ze*ze;if(ct>Number.EPSILON){const Jt=Math.sqrt(ct),ln=Math.atan2(Jt,ze*Ct);Qe=Math.sin(Qe*ln)/Jt,q=Math.sin(q*ln)/Jt}const Dt=q*Ct;if(de=de*Qe+Be*Dt,pe=pe*Qe+Le*Dt,xe=xe*Qe+Ke*Dt,Ie=Ie*Qe+ft*Dt,Qe===1-q){const Jt=1/Math.sqrt(de*de+pe*pe+xe*xe+Ie*Ie);de*=Jt,pe*=Jt,xe*=Jt,Ie*=Jt}}a[c]=de,a[c+1]=pe,a[c+2]=xe,a[c+3]=Ie}static multiplyQuaternionsFlat(a,c,u,m,M,N){const q=u[m],de=u[m+1],pe=u[m+2],xe=u[m+3],Ie=M[N],Be=M[N+1],Le=M[N+2],Ke=M[N+3];return a[c]=q*Ke+xe*Ie+de*Le-pe*Be,a[c+1]=de*Ke+xe*Be+pe*Ie-q*Le,a[c+2]=pe*Ke+xe*Le+q*Be-de*Ie,a[c+3]=xe*Ke-q*Ie-de*Be-pe*Le,a}get x(){return this._x}set x(a){this._x=a,this._onChangeCallback()}get y(){return this._y}set y(a){this._y=a,this._onChangeCallback()}get z(){return this._z}set z(a){this._z=a,this._onChangeCallback()}get w(){return this._w}set w(a){this._w=a,this._onChangeCallback()}set(a,c,u,m){return this._x=a,this._y=c,this._z=u,this._w=m,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(a){return this._x=a.x,this._y=a.y,this._z=a.z,this._w=a.w,this._onChangeCallback(),this}setFromEuler(a,c){const u=a._x,m=a._y,M=a._z,N=a._order,q=Math.cos,de=Math.sin,pe=q(u/2),xe=q(m/2),Ie=q(M/2),Be=de(u/2),Le=de(m/2),Ke=de(M/2);switch(N){case"XYZ":this._x=Be*xe*Ie+pe*Le*Ke,this._y=pe*Le*Ie-Be*xe*Ke,this._z=pe*xe*Ke+Be*Le*Ie,this._w=pe*xe*Ie-Be*Le*Ke;break;case"YXZ":this._x=Be*xe*Ie+pe*Le*Ke,this._y=pe*Le*Ie-Be*xe*Ke,this._z=pe*xe*Ke-Be*Le*Ie,this._w=pe*xe*Ie+Be*Le*Ke;break;case"ZXY":this._x=Be*xe*Ie-pe*Le*Ke,this._y=pe*Le*Ie+Be*xe*Ke,this._z=pe*xe*Ke+Be*Le*Ie,this._w=pe*xe*Ie-Be*Le*Ke;break;case"ZYX":this._x=Be*xe*Ie-pe*Le*Ke,this._y=pe*Le*Ie+Be*xe*Ke,this._z=pe*xe*Ke-Be*Le*Ie,this._w=pe*xe*Ie+Be*Le*Ke;break;case"YZX":this._x=Be*xe*Ie+pe*Le*Ke,this._y=pe*Le*Ie+Be*xe*Ke,this._z=pe*xe*Ke-Be*Le*Ie,this._w=pe*xe*Ie-Be*Le*Ke;break;case"XZY":this._x=Be*xe*Ie-pe*Le*Ke,this._y=pe*Le*Ie-Be*xe*Ke,this._z=pe*xe*Ke+Be*Le*Ie,this._w=pe*xe*Ie+Be*Le*Ke;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+N)}return!1!==c&&this._onChangeCallback(),this}setFromAxisAngle(a,c){const u=c/2,m=Math.sin(u);return this._x=a.x*m,this._y=a.y*m,this._z=a.z*m,this._w=Math.cos(u),this._onChangeCallback(),this}setFromRotationMatrix(a){const c=a.elements,u=c[0],m=c[4],M=c[8],N=c[1],q=c[5],de=c[9],pe=c[2],xe=c[6],Ie=c[10],Be=u+q+Ie;if(Be>0){const Le=.5/Math.sqrt(Be+1);this._w=.25/Le,this._x=(xe-de)*Le,this._y=(M-pe)*Le,this._z=(N-m)*Le}else if(u>q&&u>Ie){const Le=2*Math.sqrt(1+u-q-Ie);this._w=(xe-de)/Le,this._x=.25*Le,this._y=(m+N)/Le,this._z=(M+pe)/Le}else if(q>Ie){const Le=2*Math.sqrt(1+q-u-Ie);this._w=(M-pe)/Le,this._x=(m+N)/Le,this._y=.25*Le,this._z=(de+xe)/Le}else{const Le=2*Math.sqrt(1+Ie-u-q);this._w=(N-m)/Le,this._x=(M+pe)/Le,this._y=(de+xe)/Le,this._z=.25*Le}return this._onChangeCallback(),this}setFromUnitVectors(a,c){let u=a.dot(c)+1;return uMath.abs(a.z)?(this._x=-a.y,this._y=a.x,this._z=0,this._w=u):(this._x=0,this._y=-a.z,this._z=a.y,this._w=u)):(this._x=a.y*c.z-a.z*c.y,this._y=a.z*c.x-a.x*c.z,this._z=a.x*c.y-a.y*c.x,this._w=u),this.normalize()}angleTo(a){return 2*Math.acos(Math.abs(nl(this.dot(a),-1,1)))}rotateTowards(a,c){const u=this.angleTo(a);if(0===u)return this;const m=Math.min(1,c/u);return this.slerp(a,m),this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(a){return this._x*a._x+this._y*a._y+this._z*a._z+this._w*a._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let a=this.length();return 0===a?(this._x=0,this._y=0,this._z=0,this._w=1):(a=1/a,this._x=this._x*a,this._y=this._y*a,this._z=this._z*a,this._w=this._w*a),this._onChangeCallback(),this}multiply(a){return this.multiplyQuaternions(this,a)}premultiply(a){return this.multiplyQuaternions(a,this)}multiplyQuaternions(a,c){const u=a._x,m=a._y,M=a._z,N=a._w,q=c._x,de=c._y,pe=c._z,xe=c._w;return this._x=u*xe+N*q+m*pe-M*de,this._y=m*xe+N*de+M*q-u*pe,this._z=M*xe+N*pe+u*de-m*q,this._w=N*xe-u*q-m*de-M*pe,this._onChangeCallback(),this}slerp(a,c){if(0===c)return this;if(1===c)return this.copy(a);const u=this._x,m=this._y,M=this._z,N=this._w;let q=N*a._w+u*a._x+m*a._y+M*a._z;if(q<0?(this._w=-a._w,this._x=-a._x,this._y=-a._y,this._z=-a._z,q=-q):this.copy(a),q>=1)return this._w=N,this._x=u,this._y=m,this._z=M,this;const de=1-q*q;if(de<=Number.EPSILON){const Le=1-c;return this._w=Le*N+c*this._w,this._x=Le*u+c*this._x,this._y=Le*m+c*this._y,this._z=Le*M+c*this._z,this.normalize(),this._onChangeCallback(),this}const pe=Math.sqrt(de),xe=Math.atan2(pe,q),Ie=Math.sin((1-c)*xe)/pe,Be=Math.sin(c*xe)/pe;return this._w=N*Ie+this._w*Be,this._x=u*Ie+this._x*Be,this._y=m*Ie+this._y*Be,this._z=M*Ie+this._z*Be,this._onChangeCallback(),this}slerpQuaternions(a,c,u){return this.copy(a).slerp(c,u)}random(){const a=Math.random(),c=Math.sqrt(1-a),u=Math.sqrt(a),m=2*Math.PI*Math.random(),M=2*Math.PI*Math.random();return this.set(c*Math.cos(m),u*Math.sin(M),u*Math.cos(M),c*Math.sin(m))}equals(a){return a._x===this._x&&a._y===this._y&&a._z===this._z&&a._w===this._w}fromArray(a,c=0){return this._x=a[c],this._y=a[c+1],this._z=a[c+2],this._w=a[c+3],this._onChangeCallback(),this}toArray(a=[],c=0){return a[c]=this._x,a[c+1]=this._y,a[c+2]=this._z,a[c+3]=this._w,a}fromBufferAttribute(a,c){return this._x=a.getX(c),this._y=a.getY(c),this._z=a.getZ(c),this._w=a.getW(c),this}toJSON(){return this.toArray()}_onChange(a){return this._onChangeCallback=a,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._w}}class Ft{constructor(a=0,c=0,u=0){Ft.prototype.isVector3=!0,this.x=a,this.y=c,this.z=u}set(a,c,u){return void 0===u&&(u=this.z),this.x=a,this.y=c,this.z=u,this}setScalar(a){return this.x=a,this.y=a,this.z=a,this}setX(a){return this.x=a,this}setY(a){return this.y=a,this}setZ(a){return this.z=a,this}setComponent(a,c){switch(a){case 0:this.x=c;break;case 1:this.y=c;break;case 2:this.z=c;break;default:throw new Error("index is out of range: "+a)}return this}getComponent(a){switch(a){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+a)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(a){return this.x=a.x,this.y=a.y,this.z=a.z,this}add(a){return this.x+=a.x,this.y+=a.y,this.z+=a.z,this}addScalar(a){return this.x+=a,this.y+=a,this.z+=a,this}addVectors(a,c){return this.x=a.x+c.x,this.y=a.y+c.y,this.z=a.z+c.z,this}addScaledVector(a,c){return this.x+=a.x*c,this.y+=a.y*c,this.z+=a.z*c,this}sub(a){return this.x-=a.x,this.y-=a.y,this.z-=a.z,this}subScalar(a){return this.x-=a,this.y-=a,this.z-=a,this}subVectors(a,c){return this.x=a.x-c.x,this.y=a.y-c.y,this.z=a.z-c.z,this}multiply(a){return this.x*=a.x,this.y*=a.y,this.z*=a.z,this}multiplyScalar(a){return this.x*=a,this.y*=a,this.z*=a,this}multiplyVectors(a,c){return this.x=a.x*c.x,this.y=a.y*c.y,this.z=a.z*c.z,this}applyEuler(a){return this.applyQuaternion(Wo.setFromEuler(a))}applyAxisAngle(a,c){return this.applyQuaternion(Wo.setFromAxisAngle(a,c))}applyMatrix3(a){const c=this.x,u=this.y,m=this.z,M=a.elements;return this.x=M[0]*c+M[3]*u+M[6]*m,this.y=M[1]*c+M[4]*u+M[7]*m,this.z=M[2]*c+M[5]*u+M[8]*m,this}applyNormalMatrix(a){return this.applyMatrix3(a).normalize()}applyMatrix4(a){const c=this.x,u=this.y,m=this.z,M=a.elements,N=1/(M[3]*c+M[7]*u+M[11]*m+M[15]);return this.x=(M[0]*c+M[4]*u+M[8]*m+M[12])*N,this.y=(M[1]*c+M[5]*u+M[9]*m+M[13])*N,this.z=(M[2]*c+M[6]*u+M[10]*m+M[14])*N,this}applyQuaternion(a){const c=this.x,u=this.y,m=this.z,M=a.x,N=a.y,q=a.z,de=a.w,pe=2*(N*m-q*u),xe=2*(q*c-M*m),Ie=2*(M*u-N*c);return this.x=c+de*pe+N*Ie-q*xe,this.y=u+de*xe+q*pe-M*Ie,this.z=m+de*Ie+M*xe-N*pe,this}project(a){return this.applyMatrix4(a.matrixWorldInverse).applyMatrix4(a.projectionMatrix)}unproject(a){return this.applyMatrix4(a.projectionMatrixInverse).applyMatrix4(a.matrixWorld)}transformDirection(a){const c=this.x,u=this.y,m=this.z,M=a.elements;return this.x=M[0]*c+M[4]*u+M[8]*m,this.y=M[1]*c+M[5]*u+M[9]*m,this.z=M[2]*c+M[6]*u+M[10]*m,this.normalize()}divide(a){return this.x/=a.x,this.y/=a.y,this.z/=a.z,this}divideScalar(a){return this.multiplyScalar(1/a)}min(a){return this.x=Math.min(this.x,a.x),this.y=Math.min(this.y,a.y),this.z=Math.min(this.z,a.z),this}max(a){return this.x=Math.max(this.x,a.x),this.y=Math.max(this.y,a.y),this.z=Math.max(this.z,a.z),this}clamp(a,c){return this.x=Math.max(a.x,Math.min(c.x,this.x)),this.y=Math.max(a.y,Math.min(c.y,this.y)),this.z=Math.max(a.z,Math.min(c.z,this.z)),this}clampScalar(a,c){return this.x=Math.max(a,Math.min(c,this.x)),this.y=Math.max(a,Math.min(c,this.y)),this.z=Math.max(a,Math.min(c,this.z)),this}clampLength(a,c){const u=this.length();return this.divideScalar(u||1).multiplyScalar(Math.max(a,Math.min(c,u)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(a){return this.x*a.x+this.y*a.y+this.z*a.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(a){return this.normalize().multiplyScalar(a)}lerp(a,c){return this.x+=(a.x-this.x)*c,this.y+=(a.y-this.y)*c,this.z+=(a.z-this.z)*c,this}lerpVectors(a,c,u){return this.x=a.x+(c.x-a.x)*u,this.y=a.y+(c.y-a.y)*u,this.z=a.z+(c.z-a.z)*u,this}cross(a){return this.crossVectors(this,a)}crossVectors(a,c){const u=a.x,m=a.y,M=a.z,N=c.x,q=c.y,de=c.z;return this.x=m*de-M*q,this.y=M*N-u*de,this.z=u*q-m*N,this}projectOnVector(a){const c=a.lengthSq();if(0===c)return this.set(0,0,0);const u=a.dot(this)/c;return this.copy(a).multiplyScalar(u)}projectOnPlane(a){return Ic.copy(this).projectOnVector(a),this.sub(Ic)}reflect(a){return this.sub(Ic.copy(a).multiplyScalar(2*this.dot(a)))}angleTo(a){const c=Math.sqrt(this.lengthSq()*a.lengthSq());if(0===c)return Math.PI/2;const u=this.dot(a)/c;return Math.acos(nl(u,-1,1))}distanceTo(a){return Math.sqrt(this.distanceToSquared(a))}distanceToSquared(a){const c=this.x-a.x,u=this.y-a.y,m=this.z-a.z;return c*c+u*u+m*m}manhattanDistanceTo(a){return Math.abs(this.x-a.x)+Math.abs(this.y-a.y)+Math.abs(this.z-a.z)}setFromSpherical(a){return this.setFromSphericalCoords(a.radius,a.phi,a.theta)}setFromSphericalCoords(a,c,u){const m=Math.sin(c)*a;return this.x=m*Math.sin(u),this.y=Math.cos(c)*a,this.z=m*Math.cos(u),this}setFromCylindrical(a){return this.setFromCylindricalCoords(a.radius,a.theta,a.y)}setFromCylindricalCoords(a,c,u){return this.x=a*Math.sin(c),this.y=u,this.z=a*Math.cos(c),this}setFromMatrixPosition(a){const c=a.elements;return this.x=c[12],this.y=c[13],this.z=c[14],this}setFromMatrixScale(a){const c=this.setFromMatrixColumn(a,0).length(),u=this.setFromMatrixColumn(a,1).length(),m=this.setFromMatrixColumn(a,2).length();return this.x=c,this.y=u,this.z=m,this}setFromMatrixColumn(a,c){return this.fromArray(a.elements,4*c)}setFromMatrix3Column(a,c){return this.fromArray(a.elements,3*c)}setFromEuler(a){return this.x=a._x,this.y=a._y,this.z=a._z,this}setFromColor(a){return this.x=a.r,this.y=a.g,this.z=a.b,this}equals(a){return a.x===this.x&&a.y===this.y&&a.z===this.z}fromArray(a,c=0){return this.x=a[c],this.y=a[c+1],this.z=a[c+2],this}toArray(a=[],c=0){return a[c]=this.x,a[c+1]=this.y,a[c+2]=this.z,a}fromBufferAttribute(a,c){return this.x=a.getX(c),this.y=a.getY(c),this.z=a.getZ(c),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){const a=2*(Math.random()-.5),c=Math.random()*Math.PI*2,u=Math.sqrt(1-a**2);return this.x=u*Math.cos(c),this.y=u*Math.sin(c),this.z=a,this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}}const Ic=new Ft,Wo=new Oh;class rl{constructor(a=new Ft(1/0,1/0,1/0),c=new Ft(-1/0,-1/0,-1/0)){this.isBox3=!0,this.min=a,this.max=c}set(a,c){return this.min.copy(a),this.max.copy(c),this}setFromArray(a){this.makeEmpty();for(let c=0,u=a.length;cthis.max.x||a.ythis.max.y||a.zthis.max.z)}containsBox(a){return this.min.x<=a.min.x&&a.max.x<=this.max.x&&this.min.y<=a.min.y&&a.max.y<=this.max.y&&this.min.z<=a.min.z&&a.max.z<=this.max.z}getParameter(a,c){return c.set((a.x-this.min.x)/(this.max.x-this.min.x),(a.y-this.min.y)/(this.max.y-this.min.y),(a.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(a){return!(a.max.xthis.max.x||a.max.ythis.max.y||a.max.zthis.max.z)}intersectsSphere(a){return this.clampPoint(a.center,Sl),Sl.distanceToSquared(a.center)<=a.radius*a.radius}intersectsPlane(a){let c,u;return a.normal.x>0?(c=a.normal.x*this.min.x,u=a.normal.x*this.max.x):(c=a.normal.x*this.max.x,u=a.normal.x*this.min.x),a.normal.y>0?(c+=a.normal.y*this.min.y,u+=a.normal.y*this.max.y):(c+=a.normal.y*this.max.y,u+=a.normal.y*this.min.y),a.normal.z>0?(c+=a.normal.z*this.min.z,u+=a.normal.z*this.max.z):(c+=a.normal.z*this.max.z,u+=a.normal.z*this.min.z),c<=-a.constant&&u>=-a.constant}intersectsTriangle(a){if(this.isEmpty())return!1;this.getCenter(Mm),Tp.subVectors(this.max,Mm),Sp.subVectors(a.a,Mm),Ep.subVectors(a.b,Mm),_c.subVectors(a.c,Mm),Pc.subVectors(Ep,Sp),Zu.subVectors(_c,Ep),Lh.subVectors(Sp,_c);let c=[0,-Pc.z,Pc.y,0,-Zu.z,Zu.y,0,-Lh.z,Lh.y,Pc.z,0,-Pc.x,Zu.z,0,-Zu.x,Lh.z,0,-Lh.x,-Pc.y,Pc.x,0,-Zu.y,Zu.x,0,-Lh.y,Lh.x,0];return!(!g1(c,Sp,Ep,_c,Tp)||(c=[1,0,0,0,1,0,0,0,1],!g1(c,Sp,Ep,_c,Tp)))&&(Dp.crossVectors(Pc,Zu),c=[Dp.x,Dp.y,Dp.z],g1(c,Sp,Ep,_c,Tp))}clampPoint(a,c){return c.copy(a).clamp(this.min,this.max)}distanceToPoint(a){return this.clampPoint(a,Sl).distanceTo(a)}getBoundingSphere(a){return this.isEmpty()?a.makeEmpty():(this.getCenter(a.center),a.radius=.5*this.getSize(Sl).length()),a}intersect(a){return this.min.max(a.min),this.max.min(a.max),this.isEmpty()&&this.makeEmpty(),this}union(a){return this.min.min(a.min),this.max.max(a.max),this}applyMatrix4(a){return this.isEmpty()||(bl[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(a),bl[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(a),bl[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(a),bl[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(a),bl[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(a),bl[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(a),bl[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(a),bl[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(a),this.setFromPoints(bl)),this}translate(a){return this.min.add(a),this.max.add(a),this}equals(a){return a.min.equals(this.min)&&a.max.equals(this.max)}}const bl=[new Ft,new Ft,new Ft,new Ft,new Ft,new Ft,new Ft,new Ft],Sl=new Ft,Bc=new rl,Sp=new Ft,Ep=new Ft,_c=new Ft,Pc=new Ft,Zu=new Ft,Lh=new Ft,Mm=new Ft,Tp=new Ft,Dp=new Ft,Nh=new Ft;function g1(w,a,c,u,m){for(let M=0,N=w.length-3;M<=N;M+=3){Nh.fromArray(w,M);const q=m.x*Math.abs(Nh.x)+m.y*Math.abs(Nh.y)+m.z*Math.abs(Nh.z),de=a.dot(Nh),pe=c.dot(Nh),xe=u.dot(Nh);if(Math.max(-Math.max(de,pe,xe),Math.min(de,pe,xe))>q)return!1}return!0}const Q0=new rl,bA=new Ft,Ju=new Ft;class Yd{constructor(a=new Ft,c=-1){this.center=a,this.radius=c}set(a,c){return this.center.copy(a),this.radius=c,this}setFromPoints(a,c){const u=this.center;void 0!==c?u.copy(c):Q0.setFromPoints(a).getCenter(u);let m=0;for(let M=0,N=a.length;Mthis.radius*this.radius&&(c.sub(this.center).normalize(),c.multiplyScalar(this.radius).add(this.center)),c}getBoundingBox(a){return this.isEmpty()?(a.makeEmpty(),a):(a.set(this.center,this.center),a.expandByScalar(this.radius),a)}applyMatrix4(a){return this.center.applyMatrix4(a),this.radius=this.radius*a.getMaxScaleOnAxis(),this}translate(a){return this.center.add(a),this}expandByPoint(a){if(this.isEmpty())return this.center.copy(a),this.radius=0,this;bA.subVectors(a,this.center);const c=bA.lengthSq();if(c>this.radius*this.radius){const u=Math.sqrt(c),m=.5*(u-this.radius);this.center.addScaledVector(bA,m/u),this.radius+=m}return this}union(a){return a.isEmpty()?this:this.isEmpty()?(this.copy(a),this):(!0===this.center.equals(a.center)?this.radius=Math.max(this.radius,a.radius):(Ju.subVectors(a.center,this.center).setLength(a.radius),this.expandByPoint(bA.copy(a.center).add(Ju)),this.expandByPoint(bA.copy(a.center).sub(Ju))),this)}equals(a){return a.center.equals(this.center)&&a.radius===this.radius}clone(){return(new this.constructor).copy(this)}}const Rg=new Ft,Ip=new Ft,cv=new zo;class nu{constructor(a=new Ft(1,0,0),c=0){this.isPlane=!0,this.normal=a,this.constant=c}set(a,c){return this.normal.copy(a),this.constant=c,this}setComponents(a,c,u,m){return this.normal.set(a,c,u),this.constant=m,this}setFromNormalAndCoplanarPoint(a,c){return this.normal.copy(a),this.constant=-c.dot(this.normal),this}setFromCoplanarPoints(a,c,u){const m=Rg.subVectors(u,c).cross(Ip.subVectors(a,c)).normalize();return this.setFromNormalAndCoplanarPoint(m,a),this}copy(a){return this.normal.copy(a.normal),this.constant=a.constant,this}normalize(){const a=1/this.normal.length();return this.normal.multiplyScalar(a),this.constant*=a,this}negate(){return this.constant*=-1,this.normal.negate(),this}distanceToPoint(a){return this.normal.dot(a)+this.constant}distanceToSphere(a){return this.distanceToPoint(a.center)-a.radius}projectPoint(a,c){return c.copy(a).addScaledVector(this.normal,-this.distanceToPoint(a))}intersectLine(a,c){const u=a.delta(Rg),m=this.normal.dot(u);if(0===m)return 0===this.distanceToPoint(a.start)?c.copy(a.start):null;const M=-(a.start.dot(this.normal)+this.constant)/m;return M<0||M>1?null:c.copy(a.start).addScaledVector(u,M)}intersectsLine(a){const c=this.distanceToPoint(a.start),u=this.distanceToPoint(a.end);return c<0&&u>0||u<0&&c>0}intersectsBox(a){return a.intersectsPlane(this)}intersectsSphere(a){return a.intersectsPlane(this)}coplanarPoint(a){return a.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(a,c){const u=c||cv.getNormalMatrix(a),m=this.coplanarPoint(Rg).applyMatrix4(a),M=this.normal.applyMatrix3(u).normalize();return this.constant=-m.dot(M),this}translate(a){return this.constant-=a.dot(this.normal),this}equals(a){return a.normal.equals(this.normal)&&a.constant===this.constant}clone(){return(new this.constructor).copy(this)}}const yc=new Yd,kg=new Ft;class ef{constructor(a=new nu,c=new nu,u=new nu,m=new nu,M=new nu,N=new nu){this.planes=[a,c,u,m,M,N]}set(a,c,u,m,M,N){const q=this.planes;return q[0].copy(a),q[1].copy(c),q[2].copy(u),q[3].copy(m),q[4].copy(M),q[5].copy(N),this}copy(a){const c=this.planes;for(let u=0;u<6;u++)c[u].copy(a.planes[u]);return this}setFromProjectionMatrix(a,c=Dd){const u=this.planes,m=a.elements,M=m[0],N=m[1],q=m[2],de=m[3],pe=m[4],xe=m[5],Ie=m[6],Be=m[7],Le=m[8],Ke=m[9],ft=m[10],Qe=m[11],ze=m[12],Ct=m[13],ct=m[14],Dt=m[15];if(u[0].setComponents(de-M,Be-pe,Qe-Le,Dt-ze).normalize(),u[1].setComponents(de+M,Be+pe,Qe+Le,Dt+ze).normalize(),u[2].setComponents(de+N,Be+xe,Qe+Ke,Dt+Ct).normalize(),u[3].setComponents(de-N,Be-xe,Qe-Ke,Dt-Ct).normalize(),u[4].setComponents(de-q,Be-Ie,Qe-ft,Dt-ct).normalize(),c===Dd)u[5].setComponents(de+q,Be+Ie,Qe+ft,Dt+ct).normalize();else{if(2001!==c)throw new Error("THREE.Frustum.setFromProjectionMatrix(): Invalid coordinate system: "+c);u[5].setComponents(q,Ie,ft,ct).normalize()}return this}intersectsObject(a){if(void 0!==a.boundingSphere)null===a.boundingSphere&&a.computeBoundingSphere(),yc.copy(a.boundingSphere).applyMatrix4(a.matrixWorld);else{const c=a.geometry;null===c.boundingSphere&&c.computeBoundingSphere(),yc.copy(c.boundingSphere).applyMatrix4(a.matrixWorld)}return this.intersectsSphere(yc)}intersectsSprite(a){return yc.center.set(0,0,0),yc.radius=.7071067811865476,yc.applyMatrix4(a.matrixWorld),this.intersectsSphere(yc)}intersectsSphere(a){const c=this.planes,u=a.center,m=-a.radius;for(let M=0;M<6;M++)if(c[M].distanceToPoint(u)0?a.max.x:a.min.x,kg.y=m.normal.y>0?a.max.y:a.min.y,kg.z=m.normal.z>0?a.max.z:a.min.z,m.distanceToPoint(kg)<0)return!1}return!0}containsPoint(a){const c=this.planes;for(let u=0;u<6;u++)if(c[u].distanceToPoint(a)<0)return!1;return!0}clone(){return(new this.constructor).copy(this)}}class bo{constructor(a,c,u,m,M,N,q,de,pe,xe,Ie,Be,Le,Ke,ft,Qe){bo.prototype.isMatrix4=!0,this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],void 0!==a&&this.set(a,c,u,m,M,N,q,de,pe,xe,Ie,Be,Le,Ke,ft,Qe)}set(a,c,u,m,M,N,q,de,pe,xe,Ie,Be,Le,Ke,ft,Qe){const ze=this.elements;return ze[0]=a,ze[4]=c,ze[8]=u,ze[12]=m,ze[1]=M,ze[5]=N,ze[9]=q,ze[13]=de,ze[2]=pe,ze[6]=xe,ze[10]=Ie,ze[14]=Be,ze[3]=Le,ze[7]=Ke,ze[11]=ft,ze[15]=Qe,this}identity(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this}clone(){return(new bo).fromArray(this.elements)}copy(a){const c=this.elements,u=a.elements;return c[0]=u[0],c[1]=u[1],c[2]=u[2],c[3]=u[3],c[4]=u[4],c[5]=u[5],c[6]=u[6],c[7]=u[7],c[8]=u[8],c[9]=u[9],c[10]=u[10],c[11]=u[11],c[12]=u[12],c[13]=u[13],c[14]=u[14],c[15]=u[15],this}copyPosition(a){const c=this.elements,u=a.elements;return c[12]=u[12],c[13]=u[13],c[14]=u[14],this}setFromMatrix3(a){const c=a.elements;return this.set(c[0],c[3],c[6],0,c[1],c[4],c[7],0,c[2],c[5],c[8],0,0,0,0,1),this}extractBasis(a,c,u){return a.setFromMatrixColumn(this,0),c.setFromMatrixColumn(this,1),u.setFromMatrixColumn(this,2),this}makeBasis(a,c,u){return this.set(a.x,c.x,u.x,0,a.y,c.y,u.y,0,a.z,c.z,u.z,0,0,0,0,1),this}extractRotation(a){const c=this.elements,u=a.elements,m=1/Rc.setFromMatrixColumn(a,0).length(),M=1/Rc.setFromMatrixColumn(a,1).length(),N=1/Rc.setFromMatrixColumn(a,2).length();return c[0]=u[0]*m,c[1]=u[1]*m,c[2]=u[2]*m,c[3]=0,c[4]=u[4]*M,c[5]=u[5]*M,c[6]=u[6]*M,c[7]=0,c[8]=u[8]*N,c[9]=u[9]*N,c[10]=u[10]*N,c[11]=0,c[12]=0,c[13]=0,c[14]=0,c[15]=1,this}makeRotationFromEuler(a){const c=this.elements,u=a.x,m=a.y,M=a.z,N=Math.cos(u),q=Math.sin(u),de=Math.cos(m),pe=Math.sin(m),xe=Math.cos(M),Ie=Math.sin(M);if("XYZ"===a.order){const Be=N*xe,Le=N*Ie,Ke=q*xe,ft=q*Ie;c[0]=de*xe,c[4]=-de*Ie,c[8]=pe,c[1]=Le+Ke*pe,c[5]=Be-ft*pe,c[9]=-q*de,c[2]=ft-Be*pe,c[6]=Ke+Le*pe,c[10]=N*de}else if("YXZ"===a.order){const Be=de*xe,Le=de*Ie,Ke=pe*xe,ft=pe*Ie;c[0]=Be+ft*q,c[4]=Ke*q-Le,c[8]=N*pe,c[1]=N*Ie,c[5]=N*xe,c[9]=-q,c[2]=Le*q-Ke,c[6]=ft+Be*q,c[10]=N*de}else if("ZXY"===a.order){const Be=de*xe,Le=de*Ie,Ke=pe*xe,ft=pe*Ie;c[0]=Be-ft*q,c[4]=-N*Ie,c[8]=Ke+Le*q,c[1]=Le+Ke*q,c[5]=N*xe,c[9]=ft-Be*q,c[2]=-N*pe,c[6]=q,c[10]=N*de}else if("ZYX"===a.order){const Be=N*xe,Le=N*Ie,Ke=q*xe,ft=q*Ie;c[0]=de*xe,c[4]=Ke*pe-Le,c[8]=Be*pe+ft,c[1]=de*Ie,c[5]=ft*pe+Be,c[9]=Le*pe-Ke,c[2]=-pe,c[6]=q*de,c[10]=N*de}else if("YZX"===a.order){const Be=N*de,Le=N*pe,Ke=q*de,ft=q*pe;c[0]=de*xe,c[4]=ft-Be*Ie,c[8]=Ke*Ie+Le,c[1]=Ie,c[5]=N*xe,c[9]=-q*xe,c[2]=-pe*xe,c[6]=Le*Ie+Ke,c[10]=Be-ft*Ie}else if("XZY"===a.order){const Be=N*de,Le=N*pe,Ke=q*de,ft=q*pe;c[0]=de*xe,c[4]=-Ie,c[8]=pe*xe,c[1]=Be*Ie+ft,c[5]=N*xe,c[9]=Le*Ie-Ke,c[2]=Ke*Ie-Le,c[6]=q*xe,c[10]=ft*Ie+Be}return c[3]=0,c[7]=0,c[11]=0,c[12]=0,c[13]=0,c[14]=0,c[15]=1,this}makeRotationFromQuaternion(a){return this.compose(Fg,a,Sm)}lookAt(a,c,u){const m=this.elements;return vc.subVectors(a,c),0===vc.lengthSq()&&(vc.z=1),vc.normalize(),iu.crossVectors(u,vc),0===iu.lengthSq()&&(1===Math.abs(u.z)?vc.x+=1e-4:vc.z+=1e-4,vc.normalize(),iu.crossVectors(u,vc)),iu.normalize(),Em.crossVectors(vc,iu),m[0]=iu.x,m[4]=Em.x,m[8]=vc.x,m[1]=iu.y,m[5]=Em.y,m[9]=vc.y,m[2]=iu.z,m[6]=Em.z,m[10]=vc.z,this}multiply(a){return this.multiplyMatrices(this,a)}premultiply(a){return this.multiplyMatrices(a,this)}multiplyMatrices(a,c){const u=a.elements,m=c.elements,M=this.elements,N=u[0],q=u[4],de=u[8],pe=u[12],xe=u[1],Ie=u[5],Be=u[9],Le=u[13],Ke=u[2],ft=u[6],Qe=u[10],ze=u[14],Ct=u[3],ct=u[7],Dt=u[11],Jt=u[15],ln=m[0],rn=m[4],Rn=m[8],kt=m[12],Zt=m[1],li=m[5],Ti=m[9],hr=m[13],Yn=m[2],Di=m[6],rr=m[10],Oi=m[14],br=m[3],Ji=m[7],lr=m[11],ei=m[15];return M[0]=N*ln+q*Zt+de*Yn+pe*br,M[4]=N*rn+q*li+de*Di+pe*Ji,M[8]=N*Rn+q*Ti+de*rr+pe*lr,M[12]=N*kt+q*hr+de*Oi+pe*ei,M[1]=xe*ln+Ie*Zt+Be*Yn+Le*br,M[5]=xe*rn+Ie*li+Be*Di+Le*Ji,M[9]=xe*Rn+Ie*Ti+Be*rr+Le*lr,M[13]=xe*kt+Ie*hr+Be*Oi+Le*ei,M[2]=Ke*ln+ft*Zt+Qe*Yn+ze*br,M[6]=Ke*rn+ft*li+Qe*Di+ze*Ji,M[10]=Ke*Rn+ft*Ti+Qe*rr+ze*lr,M[14]=Ke*kt+ft*hr+Qe*Oi+ze*ei,M[3]=Ct*ln+ct*Zt+Dt*Yn+Jt*br,M[7]=Ct*rn+ct*li+Dt*Di+Jt*Ji,M[11]=Ct*Rn+ct*Ti+Dt*rr+Jt*lr,M[15]=Ct*kt+ct*hr+Dt*Oi+Jt*ei,this}multiplyScalar(a){const c=this.elements;return c[0]*=a,c[4]*=a,c[8]*=a,c[12]*=a,c[1]*=a,c[5]*=a,c[9]*=a,c[13]*=a,c[2]*=a,c[6]*=a,c[10]*=a,c[14]*=a,c[3]*=a,c[7]*=a,c[11]*=a,c[15]*=a,this}determinant(){const a=this.elements,c=a[0],u=a[4],m=a[8],M=a[12],N=a[1],q=a[5],de=a[9],pe=a[13],xe=a[2],Ie=a[6],Be=a[10],Le=a[14];return a[3]*(+M*de*Ie-m*pe*Ie-M*q*Be+u*pe*Be+m*q*Le-u*de*Le)+a[7]*(+c*de*Le-c*pe*Be+M*N*Be-m*N*Le+m*pe*xe-M*de*xe)+a[11]*(+c*pe*Ie-c*q*Le-M*N*Ie+u*N*Le+M*q*xe-u*pe*xe)+a[15]*(-m*q*xe-c*de*Ie+c*q*Be+m*N*Ie-u*N*Be+u*de*xe)}transpose(){const a=this.elements;let c;return c=a[1],a[1]=a[4],a[4]=c,c=a[2],a[2]=a[8],a[8]=c,c=a[6],a[6]=a[9],a[9]=c,c=a[3],a[3]=a[12],a[12]=c,c=a[7],a[7]=a[13],a[13]=c,c=a[11],a[11]=a[14],a[14]=c,this}setPosition(a,c,u){const m=this.elements;return a.isVector3?(m[12]=a.x,m[13]=a.y,m[14]=a.z):(m[12]=a,m[13]=c,m[14]=u),this}invert(){const a=this.elements,c=a[0],u=a[1],m=a[2],M=a[3],N=a[4],q=a[5],de=a[6],pe=a[7],xe=a[8],Ie=a[9],Be=a[10],Le=a[11],Ke=a[12],ft=a[13],Qe=a[14],ze=a[15],Ct=Ie*Qe*pe-ft*Be*pe+ft*de*Le-q*Qe*Le-Ie*de*ze+q*Be*ze,ct=Ke*Be*pe-xe*Qe*pe-Ke*de*Le+N*Qe*Le+xe*de*ze-N*Be*ze,Dt=xe*ft*pe-Ke*Ie*pe+Ke*q*Le-N*ft*Le-xe*q*ze+N*Ie*ze,Jt=Ke*Ie*de-xe*ft*de-Ke*q*Be+N*ft*Be+xe*q*Qe-N*Ie*Qe,ln=c*Ct+u*ct+m*Dt+M*Jt;if(0===ln)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);const rn=1/ln;return a[0]=Ct*rn,a[1]=(ft*Be*M-Ie*Qe*M-ft*m*Le+u*Qe*Le+Ie*m*ze-u*Be*ze)*rn,a[2]=(q*Qe*M-ft*de*M+ft*m*pe-u*Qe*pe-q*m*ze+u*de*ze)*rn,a[3]=(Ie*de*M-q*Be*M-Ie*m*pe+u*Be*pe+q*m*Le-u*de*Le)*rn,a[4]=ct*rn,a[5]=(xe*Qe*M-Ke*Be*M+Ke*m*Le-c*Qe*Le-xe*m*ze+c*Be*ze)*rn,a[6]=(Ke*de*M-N*Qe*M-Ke*m*pe+c*Qe*pe+N*m*ze-c*de*ze)*rn,a[7]=(N*Be*M-xe*de*M+xe*m*pe-c*Be*pe-N*m*Le+c*de*Le)*rn,a[8]=Dt*rn,a[9]=(Ke*Ie*M-xe*ft*M-Ke*u*Le+c*ft*Le+xe*u*ze-c*Ie*ze)*rn,a[10]=(N*ft*M-Ke*q*M+Ke*u*pe-c*ft*pe-N*u*ze+c*q*ze)*rn,a[11]=(xe*q*M-N*Ie*M-xe*u*pe+c*Ie*pe+N*u*Le-c*q*Le)*rn,a[12]=Jt*rn,a[13]=(xe*ft*m-Ke*Ie*m+Ke*u*Be-c*ft*Be-xe*u*Qe+c*Ie*Qe)*rn,a[14]=(Ke*q*m-N*ft*m-Ke*u*de+c*ft*de+N*u*Qe-c*q*Qe)*rn,a[15]=(N*Ie*m-xe*q*m+xe*u*de-c*Ie*de-N*u*Be+c*q*Be)*rn,this}scale(a){const c=this.elements,u=a.x,m=a.y,M=a.z;return c[0]*=u,c[4]*=m,c[8]*=M,c[1]*=u,c[5]*=m,c[9]*=M,c[2]*=u,c[6]*=m,c[10]*=M,c[3]*=u,c[7]*=m,c[11]*=M,this}getMaxScaleOnAxis(){const a=this.elements;return Math.sqrt(Math.max(a[0]*a[0]+a[1]*a[1]+a[2]*a[2],a[4]*a[4]+a[5]*a[5]+a[6]*a[6],a[8]*a[8]+a[9]*a[9]+a[10]*a[10]))}makeTranslation(a,c,u){return a.isVector3?this.set(1,0,0,a.x,0,1,0,a.y,0,0,1,a.z,0,0,0,1):this.set(1,0,0,a,0,1,0,c,0,0,1,u,0,0,0,1),this}makeRotationX(a){const c=Math.cos(a),u=Math.sin(a);return this.set(1,0,0,0,0,c,-u,0,0,u,c,0,0,0,0,1),this}makeRotationY(a){const c=Math.cos(a),u=Math.sin(a);return this.set(c,0,u,0,0,1,0,0,-u,0,c,0,0,0,0,1),this}makeRotationZ(a){const c=Math.cos(a),u=Math.sin(a);return this.set(c,-u,0,0,u,c,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(a,c){const u=Math.cos(c),m=Math.sin(c),M=1-u,N=a.x,q=a.y,de=a.z,pe=M*N,xe=M*q;return this.set(pe*N+u,pe*q-m*de,pe*de+m*q,0,pe*q+m*de,xe*q+u,xe*de-m*N,0,pe*de-m*q,xe*de+m*N,M*de*de+u,0,0,0,0,1),this}makeScale(a,c,u){return this.set(a,0,0,0,0,c,0,0,0,0,u,0,0,0,0,1),this}makeShear(a,c,u,m,M,N){return this.set(1,u,M,0,a,1,N,0,c,m,1,0,0,0,0,1),this}compose(a,c,u){const m=this.elements,M=c._x,N=c._y,q=c._z,de=c._w,pe=M+M,xe=N+N,Ie=q+q,Be=M*pe,Le=M*xe,Ke=M*Ie,ft=N*xe,Qe=N*Ie,ze=q*Ie,Ct=de*pe,ct=de*xe,Dt=de*Ie,Jt=u.x,ln=u.y,rn=u.z;return m[0]=(1-(ft+ze))*Jt,m[1]=(Le+Dt)*Jt,m[2]=(Ke-ct)*Jt,m[3]=0,m[4]=(Le-Dt)*ln,m[5]=(1-(Be+ze))*ln,m[6]=(Qe+Ct)*ln,m[7]=0,m[8]=(Ke+ct)*rn,m[9]=(Qe-Ct)*rn,m[10]=(1-(Be+ft))*rn,m[11]=0,m[12]=a.x,m[13]=a.y,m[14]=a.z,m[15]=1,this}decompose(a,c,u){const m=this.elements;let M=Rc.set(m[0],m[1],m[2]).length();const N=Rc.set(m[4],m[5],m[6]).length(),q=Rc.set(m[8],m[9],m[10]).length();this.determinant()<0&&(M=-M),a.x=m[12],a.y=m[13],a.z=m[14],jc.copy(this);const pe=1/M,xe=1/N,Ie=1/q;return jc.elements[0]*=pe,jc.elements[1]*=pe,jc.elements[2]*=pe,jc.elements[4]*=xe,jc.elements[5]*=xe,jc.elements[6]*=xe,jc.elements[8]*=Ie,jc.elements[9]*=Ie,jc.elements[10]*=Ie,c.setFromRotationMatrix(jc),u.x=M,u.y=N,u.z=q,this}makePerspective(a,c,u,m,M,N,q=Dd){const de=this.elements,pe=2*M/(c-a),xe=2*M/(u-m),Ie=(c+a)/(c-a),Be=(u+m)/(u-m);let Le,Ke;if(q===Dd)Le=-(N+M)/(N-M),Ke=-2*N*M/(N-M);else{if(2001!==q)throw new Error("THREE.Matrix4.makePerspective(): Invalid coordinate system: "+q);Le=-N/(N-M),Ke=-N*M/(N-M)}return de[0]=pe,de[4]=0,de[8]=Ie,de[12]=0,de[1]=0,de[5]=xe,de[9]=Be,de[13]=0,de[2]=0,de[6]=0,de[10]=Le,de[14]=Ke,de[3]=0,de[7]=0,de[11]=-1,de[15]=0,this}makeOrthographic(a,c,u,m,M,N,q=Dd){const de=this.elements,pe=1/(c-a),xe=1/(u-m),Ie=1/(N-M),Be=(c+a)*pe,Le=(u+m)*xe;let Ke,ft;if(q===Dd)Ke=(N+M)*Ie,ft=-2*Ie;else{if(2001!==q)throw new Error("THREE.Matrix4.makeOrthographic(): Invalid coordinate system: "+q);Ke=M*Ie,ft=-1*Ie}return de[0]=2*pe,de[4]=0,de[8]=0,de[12]=-Be,de[1]=0,de[5]=2*xe,de[9]=0,de[13]=-Le,de[2]=0,de[6]=0,de[10]=ft,de[14]=-Ke,de[3]=0,de[7]=0,de[11]=0,de[15]=1,this}equals(a){const c=this.elements,u=a.elements;for(let m=0;m<16;m++)if(c[m]!==u[m])return!1;return!0}fromArray(a,c=0){for(let u=0;u<16;u++)this.elements[u]=a[u+c];return this}toArray(a=[],c=0){const u=this.elements;return a[c]=u[0],a[c+1]=u[1],a[c+2]=u[2],a[c+3]=u[3],a[c+4]=u[4],a[c+5]=u[5],a[c+6]=u[6],a[c+7]=u[7],a[c+8]=u[8],a[c+9]=u[9],a[c+10]=u[10],a[c+11]=u[11],a[c+12]=u[12],a[c+13]=u[13],a[c+14]=u[14],a[c+15]=u[15],a}}const Rc=new Ft,jc=new bo,Fg=new Ft(0,0,0),Sm=new Ft(1,1,1),iu=new Ft,Em=new Ft,vc=new Ft;function xA(){let w=null,a=!1,c=null,u=null;function m(M,N){c(M,N),u=w.requestAnimationFrame(m)}return{start:function(){!0!==a&&null!==c&&(u=w.requestAnimationFrame(m),a=!0)},stop:function(){w.cancelAnimationFrame(u),a=!1},setAnimationLoop:function(M){c=M},setContext:function(M){w=M}}}function Bp(w,a){const c=a.isWebGL2,u=new WeakMap;return{get:function N(pe){return pe.isInterleavedBufferAttribute&&(pe=pe.data),u.get(pe)},remove:function q(pe){pe.isInterleavedBufferAttribute&&(pe=pe.data);const xe=u.get(pe);xe&&(w.deleteBuffer(xe.buffer),u.delete(pe))},update:function de(pe,xe){if(pe.isGLBufferAttribute){const Be=u.get(pe);return void((!Be||Be.version{class w{constructor(c=0,u=0,m=0,M=w.DEFAULT_ORDER){this.isEuler=!0,this._x=c,this._y=u,this._z=m,this._order=M}get x(){return this._x}set x(c){this._x=c,this._onChangeCallback()}get y(){return this._y}set y(c){this._y=c,this._onChangeCallback()}get z(){return this._z}set z(c){this._z=c,this._onChangeCallback()}get order(){return this._order}set order(c){this._order=c,this._onChangeCallback()}set(c,u,m,M=this._order){return this._x=c,this._y=u,this._z=m,this._order=M,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(c){return this._x=c._x,this._y=c._y,this._z=c._z,this._order=c._order,this._onChangeCallback(),this}setFromRotationMatrix(c,u=this._order,m=!0){const M=c.elements,N=M[0],q=M[4],de=M[8],pe=M[1],xe=M[5],Ie=M[9],Be=M[2],Le=M[6],Ke=M[10];switch(u){case"XYZ":this._y=Math.asin(nl(de,-1,1)),Math.abs(de)<.9999999?(this._x=Math.atan2(-Ie,Ke),this._z=Math.atan2(-q,N)):(this._x=Math.atan2(Le,xe),this._z=0);break;case"YXZ":this._x=Math.asin(-nl(Ie,-1,1)),Math.abs(Ie)<.9999999?(this._y=Math.atan2(de,Ke),this._z=Math.atan2(pe,xe)):(this._y=Math.atan2(-Be,N),this._z=0);break;case"ZXY":this._x=Math.asin(nl(Le,-1,1)),Math.abs(Le)<.9999999?(this._y=Math.atan2(-Be,Ke),this._z=Math.atan2(-q,xe)):(this._y=0,this._z=Math.atan2(pe,N));break;case"ZYX":this._y=Math.asin(-nl(Be,-1,1)),Math.abs(Be)<.9999999?(this._x=Math.atan2(Le,Ke),this._z=Math.atan2(pe,N)):(this._x=0,this._z=Math.atan2(-q,xe));break;case"YZX":this._z=Math.asin(nl(pe,-1,1)),Math.abs(pe)<.9999999?(this._x=Math.atan2(-Ie,xe),this._y=Math.atan2(-Be,N)):(this._x=0,this._y=Math.atan2(de,Ke));break;case"XZY":this._z=Math.asin(-nl(q,-1,1)),Math.abs(q)<.9999999?(this._x=Math.atan2(Le,xe),this._y=Math.atan2(de,N)):(this._x=Math.atan2(-Ie,Ke),this._y=0);break;default:console.warn("THREE.Euler: .setFromRotationMatrix() encountered an unknown order: "+u)}return this._order=u,!0===m&&this._onChangeCallback(),this}setFromQuaternion(c,u,m){return ru.makeRotationFromQuaternion(c),this.setFromRotationMatrix(ru,u,m)}setFromVector3(c,u=this._order){return this.set(c.x,c.y,c.z,u)}reorder(c){return Tl.setFromEuler(this),this.setFromQuaternion(Tl,c)}equals(c){return c._x===this._x&&c._y===this._y&&c._z===this._z&&c._order===this._order}fromArray(c){return this._x=c[0],this._y=c[1],this._z=c[2],void 0!==c[3]&&(this._order=c[3]),this._onChangeCallback(),this}toArray(c=[],u=0){return c[u]=this._x,c[u+1]=this._y,c[u+2]=this._z,c[u+3]=this._order,c}_onChange(c){return this._onChangeCallback=c,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._order}}return w.DEFAULT_ORDER="XYZ",w})();class so{constructor(){this.mask=1}set(a){this.mask=1<>>0}enable(a){this.mask|=1<{class w extends bu{constructor(){super(),this.isObject3D=!0,Object.defineProperty(this,"id",{value:pl++}),this.uuid=Ah(),this.name="",this.type="Object3D",this.parent=null,this.children=[],this.up=w.DEFAULT_UP.clone();const c=new Ft,u=new Gr,m=new Oh,M=new Ft(1,1,1);u._onChange(function N(){m.setFromEuler(u,!1)}),m._onChange(function q(){u.setFromQuaternion(m,void 0,!1)}),Object.defineProperties(this,{position:{configurable:!0,enumerable:!0,value:c},rotation:{configurable:!0,enumerable:!0,value:u},quaternion:{configurable:!0,enumerable:!0,value:m},scale:{configurable:!0,enumerable:!0,value:M},modelViewMatrix:{value:new bo},normalMatrix:{value:new zo}}),this.matrix=new bo,this.matrixWorld=new bo,this.matrixAutoUpdate=w.DEFAULT_MATRIX_AUTO_UPDATE,this.matrixWorldNeedsUpdate=!1,this.matrixWorldAutoUpdate=w.DEFAULT_MATRIX_WORLD_AUTO_UPDATE,this.layers=new so,this.visible=!0,this.castShadow=!1,this.receiveShadow=!1,this.frustumCulled=!0,this.renderOrder=0,this.animations=[],this.userData={}}onBeforeRender(){}onAfterRender(){}applyMatrix4(c){this.matrixAutoUpdate&&this.updateMatrix(),this.matrix.premultiply(c),this.matrix.decompose(this.position,this.quaternion,this.scale)}applyQuaternion(c){return this.quaternion.premultiply(c),this}setRotationFromAxisAngle(c,u){this.quaternion.setFromAxisAngle(c,u)}setRotationFromEuler(c){this.quaternion.setFromEuler(c,!0)}setRotationFromMatrix(c){this.quaternion.setFromRotationMatrix(c)}setRotationFromQuaternion(c){this.quaternion.copy(c)}rotateOnAxis(c,u){return oc.setFromAxisAngle(c,u),this.quaternion.multiply(oc),this}rotateOnWorldAxis(c,u){return oc.setFromAxisAngle(c,u),this.quaternion.premultiply(oc),this}rotateX(c){return this.rotateOnAxis(Mo,c)}rotateY(c){return this.rotateOnAxis(kp,c)}rotateZ(c){return this.rotateOnAxis($0,c)}translateOnAxis(c,u){return Kd.copy(c).applyQuaternion(this.quaternion),this.position.add(Kd.multiplyScalar(u)),this}translateX(c){return this.translateOnAxis(Mo,c)}translateY(c){return this.translateOnAxis(kp,c)}translateZ(c){return this.translateOnAxis($0,c)}localToWorld(c){return this.updateWorldMatrix(!0,!1),c.applyMatrix4(this.matrixWorld)}worldToLocal(c){return this.updateWorldMatrix(!0,!1),c.applyMatrix4(Ul.copy(this.matrixWorld).invert())}lookAt(c,u,m){c.isVector3?nf.copy(c):nf.set(c,u,m);const M=this.parent;this.updateWorldMatrix(!0,!1),Ka.setFromMatrixPosition(this.matrixWorld),this.isCamera||this.isLight?Ul.lookAt(Ka,nf,this.up):Ul.lookAt(nf,Ka,this.up),this.quaternion.setFromRotationMatrix(Ul),M&&(Ul.extractRotation(M.matrixWorld),oc.setFromRotationMatrix(Ul),this.quaternion.premultiply(oc.invert()))}add(c){if(arguments.length>1){for(let u=0;u1){for(let m=0;m0&&(m=m.concat(q))}return m}getWorldPosition(c){return this.updateWorldMatrix(!0,!1),c.setFromMatrixPosition(this.matrixWorld)}getWorldQuaternion(c){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(Ka,c,$c),c}getWorldScale(c){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(Ka,Uh,c),c}getWorldDirection(c){this.updateWorldMatrix(!0,!1);const u=this.matrixWorld.elements;return c.set(u[8],u[9],u[10]).normalize()}raycast(){}traverse(c){c(this);const u=this.children;for(let m=0,M=u.length;m0&&(M.userData=this.userData),M.layers=this.layers.mask,M.matrix=this.matrix.toArray(),M.up=this.up.toArray(),!1===this.matrixAutoUpdate&&(M.matrixAutoUpdate=!1),this.isInstancedMesh&&(M.type="InstancedMesh",M.count=this.count,M.instanceMatrix=this.instanceMatrix.toJSON(),null!==this.instanceColor&&(M.instanceColor=this.instanceColor.toJSON())),this.isScene)this.background&&(this.background.isColor?M.background=this.background.toJSON():this.background.isTexture&&(M.background=this.background.toJSON(c).uuid)),this.environment&&this.environment.isTexture&&!0!==this.environment.isRenderTargetTexture&&(M.environment=this.environment.toJSON(c).uuid);else if(this.isMesh||this.isLine||this.isPoints){M.geometry=N(c.geometries,this.geometry);const de=this.geometry.parameters;if(void 0!==de&&void 0!==de.shapes){const pe=de.shapes;if(Array.isArray(pe))for(let xe=0,Ie=pe.length;xe0){M.children=[];for(let de=0;de0){M.animations=[];for(let de=0;de0&&(m.geometries=de),pe.length>0&&(m.materials=pe),xe.length>0&&(m.textures=xe),Ie.length>0&&(m.images=Ie),Be.length>0&&(m.shapes=Be),Le.length>0&&(m.skeletons=Le),Ke.length>0&&(m.animations=Ke),ft.length>0&&(m.nodes=ft)}return m.object=M,m;function q(de){const pe=[];for(const xe in de){const Ie=de[xe];delete Ie.metadata,pe.push(Ie)}return pe}}clone(c){return(new this.constructor).copy(this,c)}copy(c,u=!0){if(this.name=c.name,this.up.copy(c.up),this.position.copy(c.position),this.rotation.order=c.rotation.order,this.quaternion.copy(c.quaternion),this.scale.copy(c.scale),this.matrix.copy(c.matrix),this.matrixWorld.copy(c.matrixWorld),this.matrixAutoUpdate=c.matrixAutoUpdate,this.matrixWorldNeedsUpdate=c.matrixWorldNeedsUpdate,this.matrixWorldAutoUpdate=c.matrixWorldAutoUpdate,this.layers.mask=c.layers.mask,this.visible=c.visible,this.castShadow=c.castShadow,this.receiveShadow=c.receiveShadow,this.frustumCulled=c.frustumCulled,this.renderOrder=c.renderOrder,this.animations=c.animations.slice(),this.userData=JSON.parse(JSON.stringify(c.userData)),!0===u)for(let m=0;m0&&(a.userData=this.userData),void 0!==this.parameters){const de=this.parameters;for(const pe in de)void 0!==de[pe]&&(a[pe]=de[pe]);return a}a.data={attributes:{}};const c=this.index;null!==c&&(a.data.index={type:c.array.constructor.name,array:Array.prototype.slice.call(c.array)});const u=this.attributes;for(const de in u)a.data.attributes[de]=u[de].toJSON(a.data);const m={};let M=!1;for(const de in this.morphAttributes){const pe=this.morphAttributes[de],xe=[];for(let Ie=0,Be=pe.length;Ie0&&(m[de]=xe,M=!0)}M&&(a.data.morphAttributes=m,a.data.morphTargetsRelative=this.morphTargetsRelative);const N=this.groups;N.length>0&&(a.data.groups=JSON.parse(JSON.stringify(N)));const q=this.boundingSphere;return null!==q&&(a.data.boundingSphere={center:q.center.toArray(),radius:q.radius}),a}clone(){return(new this.constructor).copy(this)}copy(a){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;const c={};this.name=a.name;const u=a.index;null!==u&&this.setIndex(u.clone(c));const m=a.attributes;for(const pe in m)this.setAttribute(pe,m[pe].clone(c));const M=a.morphAttributes;for(const pe in M){const xe=[],Ie=M[pe];for(let Be=0,Le=Ie.length;Be0?1:-1,xe.push(Ji.x,Ji.y,Ji.z),Ie.push(sr/rn),Ie.push(1-lr/Rn),Oi+=1}for(let lr=0;lr0!=a>0&&this.version++,this._alphaTest=a}onBuild(){}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(a){if(void 0!==a)for(const c in a){const u=a[c];if(void 0===u){console.warn(`THREE.Material: parameter '${c}' has value of undefined.`);continue}const m=this[c];void 0!==m?m&&m.isColor?m.set(u):m&&m.isVector3&&u&&u.isVector3?m.copy(u):this[c]=u:console.warn(`THREE.Material: '${c}' is not a property of THREE.${this.type}.`)}}toJSON(a){const c=void 0===a||"string"==typeof a;c&&(a={textures:{},images:{}});const u={metadata:{version:4.6,type:"Material",generator:"Material.toJSON"}};function m(M){const N=[];for(const q in M){const de=M[q];delete de.metadata,N.push(de)}return N}if(u.uuid=this.uuid,u.type=this.type,""!==this.name&&(u.name=this.name),this.color&&this.color.isColor&&(u.color=this.color.getHex()),void 0!==this.roughness&&(u.roughness=this.roughness),void 0!==this.metalness&&(u.metalness=this.metalness),void 0!==this.sheen&&(u.sheen=this.sheen),this.sheenColor&&this.sheenColor.isColor&&(u.sheenColor=this.sheenColor.getHex()),void 0!==this.sheenRoughness&&(u.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(u.emissive=this.emissive.getHex()),this.emissiveIntensity&&1!==this.emissiveIntensity&&(u.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(u.specular=this.specular.getHex()),void 0!==this.specularIntensity&&(u.specularIntensity=this.specularIntensity),this.specularColor&&this.specularColor.isColor&&(u.specularColor=this.specularColor.getHex()),void 0!==this.shininess&&(u.shininess=this.shininess),void 0!==this.clearcoat&&(u.clearcoat=this.clearcoat),void 0!==this.clearcoatRoughness&&(u.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(u.clearcoatMap=this.clearcoatMap.toJSON(a).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(u.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(a).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(u.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(a).uuid,u.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),void 0!==this.iridescence&&(u.iridescence=this.iridescence),void 0!==this.iridescenceIOR&&(u.iridescenceIOR=this.iridescenceIOR),void 0!==this.iridescenceThicknessRange&&(u.iridescenceThicknessRange=this.iridescenceThicknessRange),this.iridescenceMap&&this.iridescenceMap.isTexture&&(u.iridescenceMap=this.iridescenceMap.toJSON(a).uuid),this.iridescenceThicknessMap&&this.iridescenceThicknessMap.isTexture&&(u.iridescenceThicknessMap=this.iridescenceThicknessMap.toJSON(a).uuid),void 0!==this.anisotropy&&(u.anisotropy=this.anisotropy),void 0!==this.anisotropyRotation&&(u.anisotropyRotation=this.anisotropyRotation),this.anisotropyMap&&this.anisotropyMap.isTexture&&(u.anisotropyMap=this.anisotropyMap.toJSON(a).uuid),this.map&&this.map.isTexture&&(u.map=this.map.toJSON(a).uuid),this.matcap&&this.matcap.isTexture&&(u.matcap=this.matcap.toJSON(a).uuid),this.alphaMap&&this.alphaMap.isTexture&&(u.alphaMap=this.alphaMap.toJSON(a).uuid),this.lightMap&&this.lightMap.isTexture&&(u.lightMap=this.lightMap.toJSON(a).uuid,u.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(u.aoMap=this.aoMap.toJSON(a).uuid,u.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(u.bumpMap=this.bumpMap.toJSON(a).uuid,u.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(u.normalMap=this.normalMap.toJSON(a).uuid,u.normalMapType=this.normalMapType,u.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(u.displacementMap=this.displacementMap.toJSON(a).uuid,u.displacementScale=this.displacementScale,u.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(u.roughnessMap=this.roughnessMap.toJSON(a).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(u.metalnessMap=this.metalnessMap.toJSON(a).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(u.emissiveMap=this.emissiveMap.toJSON(a).uuid),this.specularMap&&this.specularMap.isTexture&&(u.specularMap=this.specularMap.toJSON(a).uuid),this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(u.specularIntensityMap=this.specularIntensityMap.toJSON(a).uuid),this.specularColorMap&&this.specularColorMap.isTexture&&(u.specularColorMap=this.specularColorMap.toJSON(a).uuid),this.envMap&&this.envMap.isTexture&&(u.envMap=this.envMap.toJSON(a).uuid,void 0!==this.combine&&(u.combine=this.combine)),void 0!==this.envMapIntensity&&(u.envMapIntensity=this.envMapIntensity),void 0!==this.reflectivity&&(u.reflectivity=this.reflectivity),void 0!==this.refractionRatio&&(u.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(u.gradientMap=this.gradientMap.toJSON(a).uuid),void 0!==this.transmission&&(u.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(u.transmissionMap=this.transmissionMap.toJSON(a).uuid),void 0!==this.thickness&&(u.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(u.thicknessMap=this.thicknessMap.toJSON(a).uuid),void 0!==this.attenuationDistance&&this.attenuationDistance!==1/0&&(u.attenuationDistance=this.attenuationDistance),void 0!==this.attenuationColor&&(u.attenuationColor=this.attenuationColor.getHex()),void 0!==this.size&&(u.size=this.size),null!==this.shadowSide&&(u.shadowSide=this.shadowSide),void 0!==this.sizeAttenuation&&(u.sizeAttenuation=this.sizeAttenuation),1!==this.blending&&(u.blending=this.blending),this.side!==F&&(u.side=this.side),!0===this.vertexColors&&(u.vertexColors=!0),this.opacity<1&&(u.opacity=this.opacity),!0===this.transparent&&(u.transparent=!0),204!==this.blendSrc&&(u.blendSrc=this.blendSrc),205!==this.blendDst&&(u.blendDst=this.blendDst),this.blendEquation!==E&&(u.blendEquation=this.blendEquation),null!==this.blendSrcAlpha&&(u.blendSrcAlpha=this.blendSrcAlpha),null!==this.blendDstAlpha&&(u.blendDstAlpha=this.blendDstAlpha),null!==this.blendEquationAlpha&&(u.blendEquationAlpha=this.blendEquationAlpha),this.blendColor&&this.blendColor.isColor&&(u.blendColor=this.blendColor.getHex()),0!==this.blendAlpha&&(u.blendAlpha=this.blendAlpha),3!==this.depthFunc&&(u.depthFunc=this.depthFunc),!1===this.depthTest&&(u.depthTest=this.depthTest),!1===this.depthWrite&&(u.depthWrite=this.depthWrite),!1===this.colorWrite&&(u.colorWrite=this.colorWrite),255!==this.stencilWriteMask&&(u.stencilWriteMask=this.stencilWriteMask),519!==this.stencilFunc&&(u.stencilFunc=this.stencilFunc),0!==this.stencilRef&&(u.stencilRef=this.stencilRef),255!==this.stencilFuncMask&&(u.stencilFuncMask=this.stencilFuncMask),this.stencilFail!==zf&&(u.stencilFail=this.stencilFail),this.stencilZFail!==zf&&(u.stencilZFail=this.stencilZFail),this.stencilZPass!==zf&&(u.stencilZPass=this.stencilZPass),!0===this.stencilWrite&&(u.stencilWrite=this.stencilWrite),void 0!==this.rotation&&0!==this.rotation&&(u.rotation=this.rotation),!0===this.polygonOffset&&(u.polygonOffset=!0),0!==this.polygonOffsetFactor&&(u.polygonOffsetFactor=this.polygonOffsetFactor),0!==this.polygonOffsetUnits&&(u.polygonOffsetUnits=this.polygonOffsetUnits),void 0!==this.linewidth&&1!==this.linewidth&&(u.linewidth=this.linewidth),void 0!==this.dashSize&&(u.dashSize=this.dashSize),void 0!==this.gapSize&&(u.gapSize=this.gapSize),void 0!==this.scale&&(u.scale=this.scale),!0===this.dithering&&(u.dithering=!0),this.alphaTest>0&&(u.alphaTest=this.alphaTest),!0===this.alphaHash&&(u.alphaHash=!0),!0===this.alphaToCoverage&&(u.alphaToCoverage=!0),!0===this.premultipliedAlpha&&(u.premultipliedAlpha=!0),!0===this.forceSinglePass&&(u.forceSinglePass=!0),!0===this.wireframe&&(u.wireframe=!0),this.wireframeLinewidth>1&&(u.wireframeLinewidth=this.wireframeLinewidth),"round"!==this.wireframeLinecap&&(u.wireframeLinecap=this.wireframeLinecap),"round"!==this.wireframeLinejoin&&(u.wireframeLinejoin=this.wireframeLinejoin),!0===this.flatShading&&(u.flatShading=!0),!1===this.visible&&(u.visible=!1),!1===this.toneMapped&&(u.toneMapped=!1),!1===this.fog&&(u.fog=!1),Object.keys(this.userData).length>0&&(u.userData=this.userData),c){const M=m(a.textures),N=m(a.images);M.length>0&&(u.textures=M),N.length>0&&(u.images=N)}return u}clone(){return(new this.constructor).copy(this)}copy(a){this.name=a.name,this.blending=a.blending,this.side=a.side,this.vertexColors=a.vertexColors,this.opacity=a.opacity,this.transparent=a.transparent,this.blendSrc=a.blendSrc,this.blendDst=a.blendDst,this.blendEquation=a.blendEquation,this.blendSrcAlpha=a.blendSrcAlpha,this.blendDstAlpha=a.blendDstAlpha,this.blendEquationAlpha=a.blendEquationAlpha,this.blendColor.copy(a.blendColor),this.blendAlpha=a.blendAlpha,this.depthFunc=a.depthFunc,this.depthTest=a.depthTest,this.depthWrite=a.depthWrite,this.stencilWriteMask=a.stencilWriteMask,this.stencilFunc=a.stencilFunc,this.stencilRef=a.stencilRef,this.stencilFuncMask=a.stencilFuncMask,this.stencilFail=a.stencilFail,this.stencilZFail=a.stencilZFail,this.stencilZPass=a.stencilZPass,this.stencilWrite=a.stencilWrite;const c=a.clippingPlanes;let u=null;if(null!==c){const m=c.length;u=new Array(m);for(let M=0;M!==m;++M)u[M]=c[M].clone()}return this.clippingPlanes=u,this.clipIntersection=a.clipIntersection,this.clipShadows=a.clipShadows,this.shadowSide=a.shadowSide,this.colorWrite=a.colorWrite,this.precision=a.precision,this.polygonOffset=a.polygonOffset,this.polygonOffsetFactor=a.polygonOffsetFactor,this.polygonOffsetUnits=a.polygonOffsetUnits,this.dithering=a.dithering,this.alphaTest=a.alphaTest,this.alphaHash=a.alphaHash,this.alphaToCoverage=a.alphaToCoverage,this.premultipliedAlpha=a.premultipliedAlpha,this.forceSinglePass=a.forceSinglePass,this.visible=a.visible,this.toneMapped=a.toneMapped,this.userData=JSON.parse(JSON.stringify(a.userData)),this}dispose(){this.dispatchEvent({type:"dispose"})}set needsUpdate(a){!0===a&&this.version++}}function cs(w){const a={};for(const c in w){a[c]={};for(const u in w[c]){const m=w[c][u];m&&(m.isColor||m.isMatrix3||m.isMatrix4||m.isVector2||m.isVector3||m.isVector4||m.isTexture||m.isQuaternion)?m.isRenderTargetTexture?(console.warn("UniformsUtils: Textures of render targets cannot be cloned via cloneUniforms() or mergeUniforms()."),a[c][u]=null):a[c][u]=m.clone():a[c][u]=Array.isArray(m)?m.slice():m}}return a}function Ia(w){const a={};for(let c=0;c0&&(c.defines=this.defines),c.vertexShader=this.vertexShader,c.fragmentShader=this.fragmentShader,c.lights=this.lights,c.clipping=this.clipping;const u={};for(const m in this.extensions)!0===this.extensions[m]&&(u[m]=!0);return Object.keys(u).length>0&&(c.extensions=u),c}}const Hl=new Ft,Lp=new Ft,EA=new Ft,lf=new Ft,ou=new Ft,Np=new Ft,Up=new Ft;class cf{constructor(a=new Ft,c=new Ft(0,0,-1)){this.origin=a,this.direction=c}set(a,c){return this.origin.copy(a),this.direction.copy(c),this}copy(a){return this.origin.copy(a.origin),this.direction.copy(a.direction),this}at(a,c){return c.copy(this.origin).addScaledVector(this.direction,a)}lookAt(a){return this.direction.copy(a).sub(this.origin).normalize(),this}recast(a){return this.origin.copy(this.at(a,Hl)),this}closestPointToPoint(a,c){c.subVectors(a,this.origin);const u=c.dot(this.direction);return u<0?c.copy(this.origin):c.copy(this.origin).addScaledVector(this.direction,u)}distanceToPoint(a){return Math.sqrt(this.distanceSqToPoint(a))}distanceSqToPoint(a){const c=Hl.subVectors(a,this.origin).dot(this.direction);return c<0?this.origin.distanceToSquared(a):(Hl.copy(this.origin).addScaledVector(this.direction,c),Hl.distanceToSquared(a))}distanceSqToSegment(a,c,u,m){Lp.copy(a).add(c).multiplyScalar(.5),EA.copy(c).sub(a).normalize(),lf.copy(this.origin).sub(Lp);const M=.5*a.distanceTo(c),N=-this.direction.dot(EA),q=lf.dot(this.direction),de=-lf.dot(EA),pe=lf.lengthSq(),xe=Math.abs(1-N*N);let Ie,Be,Le,Ke;if(xe>0)if(Ie=N*de-q,Be=N*q-de,Ke=M*xe,Ie>=0)if(Be>=-Ke)if(Be<=Ke){const ft=1/xe;Ie*=ft,Be*=ft,Le=Ie*(Ie+N*Be+2*q)+Be*(N*Ie+Be+2*de)+pe}else Be=M,Ie=Math.max(0,-(N*Be+q)),Le=-Ie*Ie+Be*(Be+2*de)+pe;else Be=-M,Ie=Math.max(0,-(N*Be+q)),Le=-Ie*Ie+Be*(Be+2*de)+pe;else Be<=-Ke?(Ie=Math.max(0,-(-N*M+q)),Be=Ie>0?-M:Math.min(Math.max(-M,-de),M),Le=-Ie*Ie+Be*(Be+2*de)+pe):Be<=Ke?(Ie=0,Be=Math.min(Math.max(-M,-de),M),Le=Be*(Be+2*de)+pe):(Ie=Math.max(0,-(N*M+q)),Be=Ie>0?M:Math.min(Math.max(-M,-de),M),Le=-Ie*Ie+Be*(Be+2*de)+pe);else Be=N>0?-M:M,Ie=Math.max(0,-(N*Be+q)),Le=-Ie*Ie+Be*(Be+2*de)+pe;return u&&u.copy(this.origin).addScaledVector(this.direction,Ie),m&&m.copy(Lp).addScaledVector(EA,Be),Le}intersectSphere(a,c){Hl.subVectors(a.center,this.origin);const u=Hl.dot(this.direction),m=Hl.dot(Hl)-u*u,M=a.radius*a.radius;if(m>M)return null;const N=Math.sqrt(M-m),q=u-N,de=u+N;return de<0?null:this.at(q<0?de:q,c)}intersectsSphere(a){return this.distanceSqToPoint(a.center)<=a.radius*a.radius}distanceToPlane(a){const c=a.normal.dot(this.direction);if(0===c)return 0===a.distanceToPoint(this.origin)?0:null;const u=-(this.origin.dot(a.normal)+a.constant)/c;return u>=0?u:null}intersectPlane(a,c){const u=this.distanceToPlane(a);return null===u?null:this.at(u,c)}intersectsPlane(a){const c=a.distanceToPoint(this.origin);return 0===c||a.normal.dot(this.direction)*c<0}intersectBox(a,c){let u,m,M,N,q,de;const pe=1/this.direction.x,xe=1/this.direction.y,Ie=1/this.direction.z,Be=this.origin;return pe>=0?(u=(a.min.x-Be.x)*pe,m=(a.max.x-Be.x)*pe):(u=(a.max.x-Be.x)*pe,m=(a.min.x-Be.x)*pe),xe>=0?(M=(a.min.y-Be.y)*xe,N=(a.max.y-Be.y)*xe):(M=(a.max.y-Be.y)*xe,N=(a.min.y-Be.y)*xe),u>N||M>m||((M>u||isNaN(u))&&(u=M),(N=0?(q=(a.min.z-Be.z)*Ie,de=(a.max.z-Be.z)*Ie):(q=(a.max.z-Be.z)*Ie,de=(a.min.z-Be.z)*Ie),u>de||q>m)||((q>u||u!=u)&&(u=q),(de=0?u:m,c)}intersectsBox(a){return null!==this.intersectBox(a,Hl)}intersectTriangle(a,c,u,m,M){ou.subVectors(c,a),Np.subVectors(u,a),Up.crossVectors(ou,Np);let q,N=this.direction.dot(Up);if(N>0){if(m)return null;q=1}else{if(!(N<0))return null;q=-1,N=-N}lf.subVectors(this.origin,a);const de=q*this.direction.dot(Np.crossVectors(lf,Np));if(de<0)return null;const pe=q*this.direction.dot(ou.cross(lf));if(pe<0||de+pe>N)return null;const xe=-q*lf.dot(Up);return xe<0?null:this.at(xe/N,M)}applyMatrix4(a){return this.origin.applyMatrix4(a),this.direction.transformDirection(a),this}equals(a){return a.origin.equals(this.origin)&&a.direction.equals(this.direction)}clone(){return(new this.constructor).copy(this)}}const Mu=new Ft,df=new Ft,Ng=new Ft,Xf=new Ft,TA=new Ft,DA=new Ft,dv=new Ft,Ug=new Ft,zg=new Ft,xc=new Ft;let Dm=!1;class lc{constructor(a=new Ft,c=new Ft,u=new Ft){this.a=a,this.b=c,this.c=u}static getNormal(a,c,u,m){m.subVectors(u,c),Mu.subVectors(a,c),m.cross(Mu);const M=m.lengthSq();return M>0?m.multiplyScalar(1/Math.sqrt(M)):m.set(0,0,0)}static getBarycoord(a,c,u,m,M){Mu.subVectors(m,c),df.subVectors(u,c),Ng.subVectors(a,c);const N=Mu.dot(Mu),q=Mu.dot(df),de=Mu.dot(Ng),pe=df.dot(df),xe=df.dot(Ng),Ie=N*pe-q*q;if(0===Ie)return M.set(-2,-1,-1);const Be=1/Ie,Le=(pe*de-q*xe)*Be,Ke=(N*xe-q*de)*Be;return M.set(1-Le-Ke,Ke,Le)}static containsPoint(a,c,u,m){return this.getBarycoord(a,c,u,m,Xf),Xf.x>=0&&Xf.y>=0&&Xf.x+Xf.y<=1}static getUV(a,c,u,m,M,N,q,de){return!1===Dm&&(console.warn("THREE.Triangle.getUV() has been renamed to THREE.Triangle.getInterpolation()."),Dm=!0),this.getInterpolation(a,c,u,m,M,N,q,de)}static getInterpolation(a,c,u,m,M,N,q,de){return this.getBarycoord(a,c,u,m,Xf),de.setScalar(0),de.addScaledVector(M,Xf.x),de.addScaledVector(N,Xf.y),de.addScaledVector(q,Xf.z),de}static isFrontFacing(a,c,u,m){return Mu.subVectors(u,c),df.subVectors(a,c),Mu.cross(df).dot(m)<0}set(a,c,u){return this.a.copy(a),this.b.copy(c),this.c.copy(u),this}setFromPointsAndIndices(a,c,u,m){return this.a.copy(a[c]),this.b.copy(a[u]),this.c.copy(a[m]),this}setFromAttributeAndIndices(a,c,u,m){return this.a.fromBufferAttribute(a,c),this.b.fromBufferAttribute(a,u),this.c.fromBufferAttribute(a,m),this}clone(){return(new this.constructor).copy(this)}copy(a){return this.a.copy(a.a),this.b.copy(a.b),this.c.copy(a.c),this}getArea(){return Mu.subVectors(this.c,this.b),df.subVectors(this.a,this.b),.5*Mu.cross(df).length()}getMidpoint(a){return a.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(a){return lc.getNormal(this.a,this.b,this.c,a)}getPlane(a){return a.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(a,c){return lc.getBarycoord(a,this.a,this.b,this.c,c)}getUV(a,c,u,m,M){return!1===Dm&&(console.warn("THREE.Triangle.getUV() has been renamed to THREE.Triangle.getInterpolation()."),Dm=!0),lc.getInterpolation(a,this.a,this.b,this.c,c,u,m,M)}getInterpolation(a,c,u,m,M){return lc.getInterpolation(a,this.a,this.b,this.c,c,u,m,M)}containsPoint(a){return lc.containsPoint(a,this.a,this.b,this.c)}isFrontFacing(a){return lc.isFrontFacing(this.a,this.b,this.c,a)}intersectsBox(a){return a.intersectsTriangle(this)}closestPointToPoint(a,c){const u=this.a,m=this.b,M=this.c;let N,q;TA.subVectors(m,u),DA.subVectors(M,u),Ug.subVectors(a,u);const de=TA.dot(Ug),pe=DA.dot(Ug);if(de<=0&&pe<=0)return c.copy(u);zg.subVectors(a,m);const xe=TA.dot(zg),Ie=DA.dot(zg);if(xe>=0&&Ie<=xe)return c.copy(m);const Be=de*Ie-xe*pe;if(Be<=0&&de>=0&&xe<=0)return N=de/(de-xe),c.copy(u).addScaledVector(TA,N);xc.subVectors(a,M);const Le=TA.dot(xc),Ke=DA.dot(xc);if(Ke>=0&&Le<=Ke)return c.copy(M);const ft=Le*pe-de*Ke;if(ft<=0&&pe>=0&&Ke<=0)return q=pe/(pe-Ke),c.copy(u).addScaledVector(DA,q);const Qe=xe*Ke-Le*Ie;if(Qe<=0&&Ie-xe>=0&&Le-Ke>=0)return dv.subVectors(M,m),q=(Ie-xe)/(Ie-xe+(Le-Ke)),c.copy(m).addScaledVector(dv,q);const ze=1/(Qe+ft+Be);return N=ft*ze,q=Be*ze,c.copy(u).addScaledVector(TA,N).addScaledVector(DA,q)}equals(a){return a.a.equals(this.a)&&a.b.equals(this.b)&&a.c.equals(this.c)}}class Xc extends kc{constructor(a){super(),this.isMeshBasicMaterial=!0,this.type="MeshBasicMaterial",this.color=new Os(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=Ne,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(a)}copy(a){return super.copy(a),this.color.copy(a.color),this.map=a.map,this.lightMap=a.lightMap,this.lightMapIntensity=a.lightMapIntensity,this.aoMap=a.aoMap,this.aoMapIntensity=a.aoMapIntensity,this.specularMap=a.specularMap,this.alphaMap=a.alphaMap,this.envMap=a.envMap,this.combine=a.combine,this.reflectivity=a.reflectivity,this.refractionRatio=a.refractionRatio,this.wireframe=a.wireframe,this.wireframeLinewidth=a.wireframeLinewidth,this.wireframeLinecap=a.wireframeLinecap,this.wireframeLinejoin=a.wireframeLinejoin,this.fog=a.fog,this}}const au=new bo,Zd=new cf,Im=new Yd,b1=new Ft,Su=new Ft,zh=new Ft,lu=new Ft,kl=new Ft,Yf=new Ft,zp=new Ui,Kf=new Ui,hf=new Ui,Bm=new Ft,Eu=new Ft,Zf=new Ft,Jf=new Ft,Jd=new Ft;class Jc extends Rl{constructor(a=new Cs,c=new Xc){super(),this.isMesh=!0,this.type="Mesh",this.geometry=a,this.material=c,this.updateMorphTargets()}copy(a,c){return super.copy(a,c),void 0!==a.morphTargetInfluences&&(this.morphTargetInfluences=a.morphTargetInfluences.slice()),void 0!==a.morphTargetDictionary&&(this.morphTargetDictionary=Object.assign({},a.morphTargetDictionary)),this.material=Array.isArray(a.material)?a.material.slice():a.material,this.geometry=a.geometry,this}updateMorphTargets(){const c=this.geometry.morphAttributes,u=Object.keys(c);if(u.length>0){const m=c[u[0]];if(void 0!==m){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let M=0,N=m.length;M(a.far-a.near)**2))&&(au.copy(M).invert(),Zd.copy(a.ray).applyMatrix4(au),(null===u.boundingBox||!1!==Zd.intersectsBox(u.boundingBox))&&this._computeIntersections(a,c,Zd)))}_computeIntersections(a,c,u){let m;const M=this.geometry,N=this.material,q=M.index,de=M.attributes.position,pe=M.attributes.uv,xe=M.attributes.uv1,Ie=M.attributes.normal,Be=M.groups,Le=M.drawRange;if(null!==q)if(Array.isArray(N))for(let Ke=0,ft=Be.length;Kec.far?null:{distance:pe,point:Jd.clone(),object:w}}(w,a,c,u,Su,zh,lu,Jf);if(xe){m&&(zp.fromBufferAttribute(m,q),Kf.fromBufferAttribute(m,de),hf.fromBufferAttribute(m,pe),xe.uv=lc.getInterpolation(Jf,Su,zh,lu,zp,Kf,hf,new Ui)),M&&(zp.fromBufferAttribute(M,q),Kf.fromBufferAttribute(M,de),hf.fromBufferAttribute(M,pe),xe.uv1=lc.getInterpolation(Jf,Su,zh,lu,zp,Kf,hf,new Ui),xe.uv2=xe.uv1),N&&(Bm.fromBufferAttribute(N,q),Eu.fromBufferAttribute(N,de),Zf.fromBufferAttribute(N,pe),xe.normal=lc.getInterpolation(Jf,Su,zh,lu,Bm,Eu,Zf,new Ft),xe.normal.dot(u.direction)>0&&xe.normal.multiplyScalar(-1));const Ie={a:q,b:de,c:pe,normal:new Ft,materialIndex:0};lc.getNormal(Su,zh,lu,Ie.normal),xe.face=Ie}return xe}const Ko={alphahash_fragment:"#ifdef USE_ALPHAHASH\n\tif ( diffuseColor.a < getAlphaHashThreshold( vPosition ) ) discard;\n#endif",alphahash_pars_fragment:"#ifdef USE_ALPHAHASH\n\tconst float ALPHA_HASH_SCALE = 0.05;\n\tfloat hash2D( vec2 value ) {\n\t\treturn fract( 1.0e4 * sin( 17.0 * value.x + 0.1 * value.y ) * ( 0.1 + abs( sin( 13.0 * value.y + value.x ) ) ) );\n\t}\n\tfloat hash3D( vec3 value ) {\n\t\treturn hash2D( vec2( hash2D( value.xy ), value.z ) );\n\t}\n\tfloat getAlphaHashThreshold( vec3 position ) {\n\t\tfloat maxDeriv = max(\n\t\t\tlength( dFdx( position.xyz ) ),\n\t\t\tlength( dFdy( position.xyz ) )\n\t\t);\n\t\tfloat pixScale = 1.0 / ( ALPHA_HASH_SCALE * maxDeriv );\n\t\tvec2 pixScales = vec2(\n\t\t\texp2( floor( log2( pixScale ) ) ),\n\t\t\texp2( ceil( log2( pixScale ) ) )\n\t\t);\n\t\tvec2 alpha = vec2(\n\t\t\thash3D( floor( pixScales.x * position.xyz ) ),\n\t\t\thash3D( floor( pixScales.y * position.xyz ) )\n\t\t);\n\t\tfloat lerpFactor = fract( log2( pixScale ) );\n\t\tfloat x = ( 1.0 - lerpFactor ) * alpha.x + lerpFactor * alpha.y;\n\t\tfloat a = min( lerpFactor, 1.0 - lerpFactor );\n\t\tvec3 cases = vec3(\n\t\t\tx * x / ( 2.0 * a * ( 1.0 - a ) ),\n\t\t\t( x - 0.5 * a ) / ( 1.0 - a ),\n\t\t\t1.0 - ( ( 1.0 - x ) * ( 1.0 - x ) / ( 2.0 * a * ( 1.0 - a ) ) )\n\t\t);\n\t\tfloat threshold = ( x < ( 1.0 - a ) )\n\t\t\t? ( ( x < a ) ? cases.x : cases.y )\n\t\t\t: cases.z;\n\t\treturn clamp( threshold , 1.0e-6, 1.0 );\n\t}\n#endif",alphamap_fragment:"#ifdef USE_ALPHAMAP\n\tdiffuseColor.a *= texture2D( alphaMap, vAlphaMapUv ).g;\n#endif",alphamap_pars_fragment:"#ifdef USE_ALPHAMAP\n\tuniform sampler2D alphaMap;\n#endif",alphatest_fragment:"#ifdef USE_ALPHATEST\n\tif ( diffuseColor.a < alphaTest ) discard;\n#endif",alphatest_pars_fragment:"#ifdef USE_ALPHATEST\n\tuniform float alphaTest;\n#endif",aomap_fragment:"#ifdef USE_AOMAP\n\tfloat ambientOcclusion = ( texture2D( aoMap, vAoMapUv ).r - 1.0 ) * aoMapIntensity + 1.0;\n\treflectedLight.indirectDiffuse *= ambientOcclusion;\n\t#if defined( USE_CLEARCOAT ) \n\t\tclearcoatSpecularIndirect *= ambientOcclusion;\n\t#endif\n\t#if defined( USE_SHEEN ) \n\t\tsheenSpecularIndirect *= ambientOcclusion;\n\t#endif\n\t#if defined( USE_ENVMAP ) && defined( STANDARD )\n\t\tfloat dotNV = saturate( dot( geometryNormal, geometryViewDir ) );\n\t\treflectedLight.indirectSpecular *= computeSpecularOcclusion( dotNV, ambientOcclusion, material.roughness );\n\t#endif\n#endif",aomap_pars_fragment:"#ifdef USE_AOMAP\n\tuniform sampler2D aoMap;\n\tuniform float aoMapIntensity;\n#endif",begin_vertex:"vec3 transformed = vec3( position );\n#ifdef USE_ALPHAHASH\n\tvPosition = vec3( position );\n#endif",beginnormal_vertex:"vec3 objectNormal = vec3( normal );\n#ifdef USE_TANGENT\n\tvec3 objectTangent = vec3( tangent.xyz );\n#endif",bsdfs:"float G_BlinnPhong_Implicit( ) {\n\treturn 0.25;\n}\nfloat D_BlinnPhong( const in float shininess, const in float dotNH ) {\n\treturn RECIPROCAL_PI * ( shininess * 0.5 + 1.0 ) * pow( dotNH, shininess );\n}\nvec3 BRDF_BlinnPhong( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float shininess ) {\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\tvec3 F = F_Schlick( specularColor, 1.0, dotVH );\n\tfloat G = G_BlinnPhong_Implicit( );\n\tfloat D = D_BlinnPhong( shininess, dotNH );\n\treturn F * ( G * D );\n} // validated",iridescence_fragment:"#ifdef USE_IRIDESCENCE\n\tconst mat3 XYZ_TO_REC709 = mat3(\n\t\t 3.2404542, -0.9692660, 0.0556434,\n\t\t-1.5371385, 1.8760108, -0.2040259,\n\t\t-0.4985314, 0.0415560, 1.0572252\n\t);\n\tvec3 Fresnel0ToIor( vec3 fresnel0 ) {\n\t\tvec3 sqrtF0 = sqrt( fresnel0 );\n\t\treturn ( vec3( 1.0 ) + sqrtF0 ) / ( vec3( 1.0 ) - sqrtF0 );\n\t}\n\tvec3 IorToFresnel0( vec3 transmittedIor, float incidentIor ) {\n\t\treturn pow2( ( transmittedIor - vec3( incidentIor ) ) / ( transmittedIor + vec3( incidentIor ) ) );\n\t}\n\tfloat IorToFresnel0( float transmittedIor, float incidentIor ) {\n\t\treturn pow2( ( transmittedIor - incidentIor ) / ( transmittedIor + incidentIor ));\n\t}\n\tvec3 evalSensitivity( float OPD, vec3 shift ) {\n\t\tfloat phase = 2.0 * PI * OPD * 1.0e-9;\n\t\tvec3 val = vec3( 5.4856e-13, 4.4201e-13, 5.2481e-13 );\n\t\tvec3 pos = vec3( 1.6810e+06, 1.7953e+06, 2.2084e+06 );\n\t\tvec3 var = vec3( 4.3278e+09, 9.3046e+09, 6.6121e+09 );\n\t\tvec3 xyz = val * sqrt( 2.0 * PI * var ) * cos( pos * phase + shift ) * exp( - pow2( phase ) * var );\n\t\txyz.x += 9.7470e-14 * sqrt( 2.0 * PI * 4.5282e+09 ) * cos( 2.2399e+06 * phase + shift[ 0 ] ) * exp( - 4.5282e+09 * pow2( phase ) );\n\t\txyz /= 1.0685e-7;\n\t\tvec3 rgb = XYZ_TO_REC709 * xyz;\n\t\treturn rgb;\n\t}\n\tvec3 evalIridescence( float outsideIOR, float eta2, float cosTheta1, float thinFilmThickness, vec3 baseF0 ) {\n\t\tvec3 I;\n\t\tfloat iridescenceIOR = mix( outsideIOR, eta2, smoothstep( 0.0, 0.03, thinFilmThickness ) );\n\t\tfloat sinTheta2Sq = pow2( outsideIOR / iridescenceIOR ) * ( 1.0 - pow2( cosTheta1 ) );\n\t\tfloat cosTheta2Sq = 1.0 - sinTheta2Sq;\n\t\tif ( cosTheta2Sq < 0.0 ) {\n\t\t\treturn vec3( 1.0 );\n\t\t}\n\t\tfloat cosTheta2 = sqrt( cosTheta2Sq );\n\t\tfloat R0 = IorToFresnel0( iridescenceIOR, outsideIOR );\n\t\tfloat R12 = F_Schlick( R0, 1.0, cosTheta1 );\n\t\tfloat T121 = 1.0 - R12;\n\t\tfloat phi12 = 0.0;\n\t\tif ( iridescenceIOR < outsideIOR ) phi12 = PI;\n\t\tfloat phi21 = PI - phi12;\n\t\tvec3 baseIOR = Fresnel0ToIor( clamp( baseF0, 0.0, 0.9999 ) );\t\tvec3 R1 = IorToFresnel0( baseIOR, iridescenceIOR );\n\t\tvec3 R23 = F_Schlick( R1, 1.0, cosTheta2 );\n\t\tvec3 phi23 = vec3( 0.0 );\n\t\tif ( baseIOR[ 0 ] < iridescenceIOR ) phi23[ 0 ] = PI;\n\t\tif ( baseIOR[ 1 ] < iridescenceIOR ) phi23[ 1 ] = PI;\n\t\tif ( baseIOR[ 2 ] < iridescenceIOR ) phi23[ 2 ] = PI;\n\t\tfloat OPD = 2.0 * iridescenceIOR * thinFilmThickness * cosTheta2;\n\t\tvec3 phi = vec3( phi21 ) + phi23;\n\t\tvec3 R123 = clamp( R12 * R23, 1e-5, 0.9999 );\n\t\tvec3 r123 = sqrt( R123 );\n\t\tvec3 Rs = pow2( T121 ) * R23 / ( vec3( 1.0 ) - R123 );\n\t\tvec3 C0 = R12 + Rs;\n\t\tI = C0;\n\t\tvec3 Cm = Rs - T121;\n\t\tfor ( int m = 1; m <= 2; ++ m ) {\n\t\t\tCm *= r123;\n\t\t\tvec3 Sm = 2.0 * evalSensitivity( float( m ) * OPD, float( m ) * phi );\n\t\t\tI += Cm * Sm;\n\t\t}\n\t\treturn max( I, vec3( 0.0 ) );\n\t}\n#endif",bumpmap_pars_fragment:"#ifdef USE_BUMPMAP\n\tuniform sampler2D bumpMap;\n\tuniform float bumpScale;\n\tvec2 dHdxy_fwd() {\n\t\tvec2 dSTdx = dFdx( vBumpMapUv );\n\t\tvec2 dSTdy = dFdy( vBumpMapUv );\n\t\tfloat Hll = bumpScale * texture2D( bumpMap, vBumpMapUv ).x;\n\t\tfloat dBx = bumpScale * texture2D( bumpMap, vBumpMapUv + dSTdx ).x - Hll;\n\t\tfloat dBy = bumpScale * texture2D( bumpMap, vBumpMapUv + dSTdy ).x - Hll;\n\t\treturn vec2( dBx, dBy );\n\t}\n\tvec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy, float faceDirection ) {\n\t\tvec3 vSigmaX = normalize( dFdx( surf_pos.xyz ) );\n\t\tvec3 vSigmaY = normalize( dFdy( surf_pos.xyz ) );\n\t\tvec3 vN = surf_norm;\n\t\tvec3 R1 = cross( vSigmaY, vN );\n\t\tvec3 R2 = cross( vN, vSigmaX );\n\t\tfloat fDet = dot( vSigmaX, R1 ) * faceDirection;\n\t\tvec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 );\n\t\treturn normalize( abs( fDet ) * surf_norm - vGrad );\n\t}\n#endif",clipping_planes_fragment:"#if NUM_CLIPPING_PLANES > 0\n\tvec4 plane;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\n\t\tplane = clippingPlanes[ i ];\n\t\tif ( dot( vClipPosition, plane.xyz ) > plane.w ) discard;\n\t}\n\t#pragma unroll_loop_end\n\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\n\t\tbool clipped = true;\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\n\t\t\tplane = clippingPlanes[ i ];\n\t\t\tclipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t\tif ( clipped ) discard;\n\t#endif\n#endif",clipping_planes_pars_fragment:"#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n\tuniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];\n#endif",clipping_planes_pars_vertex:"#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n#endif",clipping_planes_vertex:"#if NUM_CLIPPING_PLANES > 0\n\tvClipPosition = - mvPosition.xyz;\n#endif",color_fragment:"#if defined( USE_COLOR_ALPHA )\n\tdiffuseColor *= vColor;\n#elif defined( USE_COLOR )\n\tdiffuseColor.rgb *= vColor;\n#endif",color_pars_fragment:"#if defined( USE_COLOR_ALPHA )\n\tvarying vec4 vColor;\n#elif defined( USE_COLOR )\n\tvarying vec3 vColor;\n#endif",color_pars_vertex:"#if defined( USE_COLOR_ALPHA )\n\tvarying vec4 vColor;\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\n\tvarying vec3 vColor;\n#endif",color_vertex:"#if defined( USE_COLOR_ALPHA )\n\tvColor = vec4( 1.0 );\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\n\tvColor = vec3( 1.0 );\n#endif\n#ifdef USE_COLOR\n\tvColor *= color;\n#endif\n#ifdef USE_INSTANCING_COLOR\n\tvColor.xyz *= instanceColor.xyz;\n#endif",common:"#define PI 3.141592653589793\n#define PI2 6.283185307179586\n#define PI_HALF 1.5707963267948966\n#define RECIPROCAL_PI 0.3183098861837907\n#define RECIPROCAL_PI2 0.15915494309189535\n#define EPSILON 1e-6\n#ifndef saturate\n#define saturate( a ) clamp( a, 0.0, 1.0 )\n#endif\n#define whiteComplement( a ) ( 1.0 - saturate( a ) )\nfloat pow2( const in float x ) { return x*x; }\nvec3 pow2( const in vec3 x ) { return x*x; }\nfloat pow3( const in float x ) { return x*x*x; }\nfloat pow4( const in float x ) { float x2 = x*x; return x2*x2; }\nfloat max3( const in vec3 v ) { return max( max( v.x, v.y ), v.z ); }\nfloat average( const in vec3 v ) { return dot( v, vec3( 0.3333333 ) ); }\nhighp float rand( const in vec2 uv ) {\n\tconst highp float a = 12.9898, b = 78.233, c = 43758.5453;\n\thighp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );\n\treturn fract( sin( sn ) * c );\n}\n#ifdef HIGH_PRECISION\n\tfloat precisionSafeLength( vec3 v ) { return length( v ); }\n#else\n\tfloat precisionSafeLength( vec3 v ) {\n\t\tfloat maxComponent = max3( abs( v ) );\n\t\treturn length( v / maxComponent ) * maxComponent;\n\t}\n#endif\nstruct IncidentLight {\n\tvec3 color;\n\tvec3 direction;\n\tbool visible;\n};\nstruct ReflectedLight {\n\tvec3 directDiffuse;\n\tvec3 directSpecular;\n\tvec3 indirectDiffuse;\n\tvec3 indirectSpecular;\n};\n#ifdef USE_ALPHAHASH\n\tvarying vec3 vPosition;\n#endif\nvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n}\nvec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );\n}\nmat3 transposeMat3( const in mat3 m ) {\n\tmat3 tmp;\n\ttmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x );\n\ttmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y );\n\ttmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z );\n\treturn tmp;\n}\nfloat luminance( const in vec3 rgb ) {\n\tconst vec3 weights = vec3( 0.2126729, 0.7151522, 0.0721750 );\n\treturn dot( weights, rgb );\n}\nbool isPerspectiveMatrix( mat4 m ) {\n\treturn m[ 2 ][ 3 ] == - 1.0;\n}\nvec2 equirectUv( in vec3 dir ) {\n\tfloat u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5;\n\tfloat v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\n\treturn vec2( u, v );\n}\nvec3 BRDF_Lambert( const in vec3 diffuseColor ) {\n\treturn RECIPROCAL_PI * diffuseColor;\n}\nvec3 F_Schlick( const in vec3 f0, const in float f90, const in float dotVH ) {\n\tfloat fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\n\treturn f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\n}\nfloat F_Schlick( const in float f0, const in float f90, const in float dotVH ) {\n\tfloat fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\n\treturn f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\n} // validated",cube_uv_reflection_fragment:"#ifdef ENVMAP_TYPE_CUBE_UV\n\t#define cubeUV_minMipLevel 4.0\n\t#define cubeUV_minTileSize 16.0\n\tfloat getFace( vec3 direction ) {\n\t\tvec3 absDirection = abs( direction );\n\t\tfloat face = - 1.0;\n\t\tif ( absDirection.x > absDirection.z ) {\n\t\t\tif ( absDirection.x > absDirection.y )\n\t\t\t\tface = direction.x > 0.0 ? 0.0 : 3.0;\n\t\t\telse\n\t\t\t\tface = direction.y > 0.0 ? 1.0 : 4.0;\n\t\t} else {\n\t\t\tif ( absDirection.z > absDirection.y )\n\t\t\t\tface = direction.z > 0.0 ? 2.0 : 5.0;\n\t\t\telse\n\t\t\t\tface = direction.y > 0.0 ? 1.0 : 4.0;\n\t\t}\n\t\treturn face;\n\t}\n\tvec2 getUV( vec3 direction, float face ) {\n\t\tvec2 uv;\n\t\tif ( face == 0.0 ) {\n\t\t\tuv = vec2( direction.z, direction.y ) / abs( direction.x );\n\t\t} else if ( face == 1.0 ) {\n\t\t\tuv = vec2( - direction.x, - direction.z ) / abs( direction.y );\n\t\t} else if ( face == 2.0 ) {\n\t\t\tuv = vec2( - direction.x, direction.y ) / abs( direction.z );\n\t\t} else if ( face == 3.0 ) {\n\t\t\tuv = vec2( - direction.z, direction.y ) / abs( direction.x );\n\t\t} else if ( face == 4.0 ) {\n\t\t\tuv = vec2( - direction.x, direction.z ) / abs( direction.y );\n\t\t} else {\n\t\t\tuv = vec2( direction.x, direction.y ) / abs( direction.z );\n\t\t}\n\t\treturn 0.5 * ( uv + 1.0 );\n\t}\n\tvec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) {\n\t\tfloat face = getFace( direction );\n\t\tfloat filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 );\n\t\tmipInt = max( mipInt, cubeUV_minMipLevel );\n\t\tfloat faceSize = exp2( mipInt );\n\t\thighp vec2 uv = getUV( direction, face ) * ( faceSize - 2.0 ) + 1.0;\n\t\tif ( face > 2.0 ) {\n\t\t\tuv.y += faceSize;\n\t\t\tface -= 3.0;\n\t\t}\n\t\tuv.x += face * faceSize;\n\t\tuv.x += filterInt * 3.0 * cubeUV_minTileSize;\n\t\tuv.y += 4.0 * ( exp2( CUBEUV_MAX_MIP ) - faceSize );\n\t\tuv.x *= CUBEUV_TEXEL_WIDTH;\n\t\tuv.y *= CUBEUV_TEXEL_HEIGHT;\n\t\t#ifdef texture2DGradEXT\n\t\t\treturn texture2DGradEXT( envMap, uv, vec2( 0.0 ), vec2( 0.0 ) ).rgb;\n\t\t#else\n\t\t\treturn texture2D( envMap, uv ).rgb;\n\t\t#endif\n\t}\n\t#define cubeUV_r0 1.0\n\t#define cubeUV_v0 0.339\n\t#define cubeUV_m0 - 2.0\n\t#define cubeUV_r1 0.8\n\t#define cubeUV_v1 0.276\n\t#define cubeUV_m1 - 1.0\n\t#define cubeUV_r4 0.4\n\t#define cubeUV_v4 0.046\n\t#define cubeUV_m4 2.0\n\t#define cubeUV_r5 0.305\n\t#define cubeUV_v5 0.016\n\t#define cubeUV_m5 3.0\n\t#define cubeUV_r6 0.21\n\t#define cubeUV_v6 0.0038\n\t#define cubeUV_m6 4.0\n\tfloat roughnessToMip( float roughness ) {\n\t\tfloat mip = 0.0;\n\t\tif ( roughness >= cubeUV_r1 ) {\n\t\t\tmip = ( cubeUV_r0 - roughness ) * ( cubeUV_m1 - cubeUV_m0 ) / ( cubeUV_r0 - cubeUV_r1 ) + cubeUV_m0;\n\t\t} else if ( roughness >= cubeUV_r4 ) {\n\t\t\tmip = ( cubeUV_r1 - roughness ) * ( cubeUV_m4 - cubeUV_m1 ) / ( cubeUV_r1 - cubeUV_r4 ) + cubeUV_m1;\n\t\t} else if ( roughness >= cubeUV_r5 ) {\n\t\t\tmip = ( cubeUV_r4 - roughness ) * ( cubeUV_m5 - cubeUV_m4 ) / ( cubeUV_r4 - cubeUV_r5 ) + cubeUV_m4;\n\t\t} else if ( roughness >= cubeUV_r6 ) {\n\t\t\tmip = ( cubeUV_r5 - roughness ) * ( cubeUV_m6 - cubeUV_m5 ) / ( cubeUV_r5 - cubeUV_r6 ) + cubeUV_m5;\n\t\t} else {\n\t\t\tmip = - 2.0 * log2( 1.16 * roughness );\t\t}\n\t\treturn mip;\n\t}\n\tvec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) {\n\t\tfloat mip = clamp( roughnessToMip( roughness ), cubeUV_m0, CUBEUV_MAX_MIP );\n\t\tfloat mipF = fract( mip );\n\t\tfloat mipInt = floor( mip );\n\t\tvec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt );\n\t\tif ( mipF == 0.0 ) {\n\t\t\treturn vec4( color0, 1.0 );\n\t\t} else {\n\t\t\tvec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 );\n\t\t\treturn vec4( mix( color0, color1, mipF ), 1.0 );\n\t\t}\n\t}\n#endif",defaultnormal_vertex:"vec3 transformedNormal = objectNormal;\n#ifdef USE_INSTANCING\n\tmat3 m = mat3( instanceMatrix );\n\ttransformedNormal /= vec3( dot( m[ 0 ], m[ 0 ] ), dot( m[ 1 ], m[ 1 ] ), dot( m[ 2 ], m[ 2 ] ) );\n\ttransformedNormal = m * transformedNormal;\n#endif\ntransformedNormal = normalMatrix * transformedNormal;\n#ifdef FLIP_SIDED\n\ttransformedNormal = - transformedNormal;\n#endif\n#ifdef USE_TANGENT\n\tvec3 transformedTangent = ( modelViewMatrix * vec4( objectTangent, 0.0 ) ).xyz;\n\t#ifdef FLIP_SIDED\n\t\ttransformedTangent = - transformedTangent;\n\t#endif\n#endif",displacementmap_pars_vertex:"#ifdef USE_DISPLACEMENTMAP\n\tuniform sampler2D displacementMap;\n\tuniform float displacementScale;\n\tuniform float displacementBias;\n#endif",displacementmap_vertex:"#ifdef USE_DISPLACEMENTMAP\n\ttransformed += normalize( objectNormal ) * ( texture2D( displacementMap, vDisplacementMapUv ).x * displacementScale + displacementBias );\n#endif",emissivemap_fragment:"#ifdef USE_EMISSIVEMAP\n\tvec4 emissiveColor = texture2D( emissiveMap, vEmissiveMapUv );\n\ttotalEmissiveRadiance *= emissiveColor.rgb;\n#endif",emissivemap_pars_fragment:"#ifdef USE_EMISSIVEMAP\n\tuniform sampler2D emissiveMap;\n#endif",colorspace_fragment:"gl_FragColor = linearToOutputTexel( gl_FragColor );",colorspace_pars_fragment:"\nconst mat3 LINEAR_SRGB_TO_LINEAR_DISPLAY_P3 = mat3(\n\tvec3( 0.8224621, 0.177538, 0.0 ),\n\tvec3( 0.0331941, 0.9668058, 0.0 ),\n\tvec3( 0.0170827, 0.0723974, 0.9105199 )\n);\nconst mat3 LINEAR_DISPLAY_P3_TO_LINEAR_SRGB = mat3(\n\tvec3( 1.2249401, - 0.2249404, 0.0 ),\n\tvec3( - 0.0420569, 1.0420571, 0.0 ),\n\tvec3( - 0.0196376, - 0.0786361, 1.0982735 )\n);\nvec4 LinearSRGBToLinearDisplayP3( in vec4 value ) {\n\treturn vec4( value.rgb * LINEAR_SRGB_TO_LINEAR_DISPLAY_P3, value.a );\n}\nvec4 LinearDisplayP3ToLinearSRGB( in vec4 value ) {\n\treturn vec4( value.rgb * LINEAR_DISPLAY_P3_TO_LINEAR_SRGB, value.a );\n}\nvec4 LinearTransferOETF( in vec4 value ) {\n\treturn value;\n}\nvec4 sRGBTransferOETF( in vec4 value ) {\n\treturn vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a );\n}\nvec4 LinearToLinear( in vec4 value ) {\n\treturn value;\n}\nvec4 LinearTosRGB( in vec4 value ) {\n\treturn sRGBTransferOETF( value );\n}",envmap_fragment:"#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvec3 cameraToFrag;\n\t\tif ( isOrthographic ) {\n\t\t\tcameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n\t\t} else {\n\t\t\tcameraToFrag = normalize( vWorldPosition - cameraPosition );\n\t\t}\n\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvec3 reflectVec = reflect( cameraToFrag, worldNormal );\n\t\t#else\n\t\t\tvec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio );\n\t\t#endif\n\t#else\n\t\tvec3 reflectVec = vReflect;\n\t#endif\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tvec4 envColor = textureCube( envMap, vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\n\t#else\n\t\tvec4 envColor = vec4( 0.0 );\n\t#endif\n\t#ifdef ENVMAP_BLENDING_MULTIPLY\n\t\toutgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_MIX )\n\t\toutgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_ADD )\n\t\toutgoingLight += envColor.xyz * specularStrength * reflectivity;\n\t#endif\n#endif",envmap_common_pars_fragment:"#ifdef USE_ENVMAP\n\tuniform float envMapIntensity;\n\tuniform float flipEnvMap;\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tuniform samplerCube envMap;\n\t#else\n\t\tuniform sampler2D envMap;\n\t#endif\n\t\n#endif",envmap_pars_fragment:"#ifdef USE_ENVMAP\n\tuniform float reflectivity;\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\tvarying vec3 vWorldPosition;\n\t\tuniform float refractionRatio;\n\t#else\n\t\tvarying vec3 vReflect;\n\t#endif\n#endif",envmap_pars_vertex:"#ifdef USE_ENVMAP\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\t\n\t\tvarying vec3 vWorldPosition;\n\t#else\n\t\tvarying vec3 vReflect;\n\t\tuniform float refractionRatio;\n\t#endif\n#endif",envmap_physical_pars_fragment:"#ifdef USE_ENVMAP\n\tvec3 getIBLIrradiance( const in vec3 normal ) {\n\t\t#ifdef ENVMAP_TYPE_CUBE_UV\n\t\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, worldNormal, 1.0 );\n\t\t\treturn PI * envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n\tvec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) {\n\t\t#ifdef ENVMAP_TYPE_CUBE_UV\n\t\t\tvec3 reflectVec = reflect( - viewDir, normal );\n\t\t\treflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );\n\t\t\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, reflectVec, roughness );\n\t\t\treturn envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n\t#ifdef USE_ANISOTROPY\n\t\tvec3 getIBLAnisotropyRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in vec3 bitangent, const in float anisotropy ) {\n\t\t\t#ifdef ENVMAP_TYPE_CUBE_UV\n\t\t\t\tvec3 bentNormal = cross( bitangent, viewDir );\n\t\t\t\tbentNormal = normalize( cross( bentNormal, bitangent ) );\n\t\t\t\tbentNormal = normalize( mix( bentNormal, normal, pow2( pow2( 1.0 - anisotropy * ( 1.0 - roughness ) ) ) ) );\n\t\t\t\treturn getIBLRadiance( viewDir, bentNormal, roughness );\n\t\t\t#else\n\t\t\t\treturn vec3( 0.0 );\n\t\t\t#endif\n\t\t}\n\t#endif\n#endif",envmap_vertex:"#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvWorldPosition = worldPosition.xyz;\n\t#else\n\t\tvec3 cameraToVertex;\n\t\tif ( isOrthographic ) {\n\t\t\tcameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n\t\t} else {\n\t\t\tcameraToVertex = normalize( worldPosition.xyz - cameraPosition );\n\t\t}\n\t\tvec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvReflect = reflect( cameraToVertex, worldNormal );\n\t\t#else\n\t\t\tvReflect = refract( cameraToVertex, worldNormal, refractionRatio );\n\t\t#endif\n\t#endif\n#endif",fog_vertex:"#ifdef USE_FOG\n\tvFogDepth = - mvPosition.z;\n#endif",fog_pars_vertex:"#ifdef USE_FOG\n\tvarying float vFogDepth;\n#endif",fog_fragment:"#ifdef USE_FOG\n\t#ifdef FOG_EXP2\n\t\tfloat fogFactor = 1.0 - exp( - fogDensity * fogDensity * vFogDepth * vFogDepth );\n\t#else\n\t\tfloat fogFactor = smoothstep( fogNear, fogFar, vFogDepth );\n\t#endif\n\tgl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\n#endif",fog_pars_fragment:"#ifdef USE_FOG\n\tuniform vec3 fogColor;\n\tvarying float vFogDepth;\n\t#ifdef FOG_EXP2\n\t\tuniform float fogDensity;\n\t#else\n\t\tuniform float fogNear;\n\t\tuniform float fogFar;\n\t#endif\n#endif",gradientmap_pars_fragment:"#ifdef USE_GRADIENTMAP\n\tuniform sampler2D gradientMap;\n#endif\nvec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {\n\tfloat dotNL = dot( normal, lightDirection );\n\tvec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 );\n\t#ifdef USE_GRADIENTMAP\n\t\treturn vec3( texture2D( gradientMap, coord ).r );\n\t#else\n\t\tvec2 fw = fwidth( coord ) * 0.5;\n\t\treturn mix( vec3( 0.7 ), vec3( 1.0 ), smoothstep( 0.7 - fw.x, 0.7 + fw.x, coord.x ) );\n\t#endif\n}",lightmap_fragment:"#ifdef USE_LIGHTMAP\n\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\n\treflectedLight.indirectDiffuse += lightMapIrradiance;\n#endif",lightmap_pars_fragment:"#ifdef USE_LIGHTMAP\n\tuniform sampler2D lightMap;\n\tuniform float lightMapIntensity;\n#endif",lights_lambert_fragment:"LambertMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularStrength = specularStrength;",lights_lambert_pars_fragment:"varying vec3 vViewPosition;\nstruct LambertMaterial {\n\tvec3 diffuseColor;\n\tfloat specularStrength;\n};\nvoid RE_Direct_Lambert( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometryNormal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Lambert( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_Lambert\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Lambert",lights_pars_begin:"uniform bool receiveShadow;\nuniform vec3 ambientLightColor;\n#if defined( USE_LIGHT_PROBES )\n\tuniform vec3 lightProbe[ 9 ];\n#endif\nvec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {\n\tfloat x = normal.x, y = normal.y, z = normal.z;\n\tvec3 result = shCoefficients[ 0 ] * 0.886227;\n\tresult += shCoefficients[ 1 ] * 2.0 * 0.511664 * y;\n\tresult += shCoefficients[ 2 ] * 2.0 * 0.511664 * z;\n\tresult += shCoefficients[ 3 ] * 2.0 * 0.511664 * x;\n\tresult += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y;\n\tresult += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z;\n\tresult += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 );\n\tresult += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z;\n\tresult += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y );\n\treturn result;\n}\nvec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) {\n\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\tvec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe );\n\treturn irradiance;\n}\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\n\tvec3 irradiance = ambientLightColor;\n\treturn irradiance;\n}\nfloat getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {\n\t#if defined ( LEGACY_LIGHTS )\n\t\tif ( cutoffDistance > 0.0 && decayExponent > 0.0 ) {\n\t\t\treturn pow( saturate( - lightDistance / cutoffDistance + 1.0 ), decayExponent );\n\t\t}\n\t\treturn 1.0;\n\t#else\n\t\tfloat distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\n\t\tif ( cutoffDistance > 0.0 ) {\n\t\t\tdistanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\n\t\t}\n\t\treturn distanceFalloff;\n\t#endif\n}\nfloat getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) {\n\treturn smoothstep( coneCosine, penumbraCosine, angleCosine );\n}\n#if NUM_DIR_LIGHTS > 0\n\tstruct DirectionalLight {\n\t\tvec3 direction;\n\t\tvec3 color;\n\t};\n\tuniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];\n\tvoid getDirectionalLightInfo( const in DirectionalLight directionalLight, out IncidentLight light ) {\n\t\tlight.color = directionalLight.color;\n\t\tlight.direction = directionalLight.direction;\n\t\tlight.visible = true;\n\t}\n#endif\n#if NUM_POINT_LIGHTS > 0\n\tstruct PointLight {\n\t\tvec3 position;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t};\n\tuniform PointLight pointLights[ NUM_POINT_LIGHTS ];\n\tvoid getPointLightInfo( const in PointLight pointLight, const in vec3 geometryPosition, out IncidentLight light ) {\n\t\tvec3 lVector = pointLight.position - geometryPosition;\n\t\tlight.direction = normalize( lVector );\n\t\tfloat lightDistance = length( lVector );\n\t\tlight.color = pointLight.color;\n\t\tlight.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay );\n\t\tlight.visible = ( light.color != vec3( 0.0 ) );\n\t}\n#endif\n#if NUM_SPOT_LIGHTS > 0\n\tstruct SpotLight {\n\t\tvec3 position;\n\t\tvec3 direction;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t\tfloat coneCos;\n\t\tfloat penumbraCos;\n\t};\n\tuniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];\n\tvoid getSpotLightInfo( const in SpotLight spotLight, const in vec3 geometryPosition, out IncidentLight light ) {\n\t\tvec3 lVector = spotLight.position - geometryPosition;\n\t\tlight.direction = normalize( lVector );\n\t\tfloat angleCos = dot( light.direction, spotLight.direction );\n\t\tfloat spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos );\n\t\tif ( spotAttenuation > 0.0 ) {\n\t\t\tfloat lightDistance = length( lVector );\n\t\t\tlight.color = spotLight.color * spotAttenuation;\n\t\t\tlight.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay );\n\t\t\tlight.visible = ( light.color != vec3( 0.0 ) );\n\t\t} else {\n\t\t\tlight.color = vec3( 0.0 );\n\t\t\tlight.visible = false;\n\t\t}\n\t}\n#endif\n#if NUM_RECT_AREA_LIGHTS > 0\n\tstruct RectAreaLight {\n\t\tvec3 color;\n\t\tvec3 position;\n\t\tvec3 halfWidth;\n\t\tvec3 halfHeight;\n\t};\n\tuniform sampler2D ltc_1;\tuniform sampler2D ltc_2;\n\tuniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];\n#endif\n#if NUM_HEMI_LIGHTS > 0\n\tstruct HemisphereLight {\n\t\tvec3 direction;\n\t\tvec3 skyColor;\n\t\tvec3 groundColor;\n\t};\n\tuniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];\n\tvec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) {\n\t\tfloat dotNL = dot( normal, hemiLight.direction );\n\t\tfloat hemiDiffuseWeight = 0.5 * dotNL + 0.5;\n\t\tvec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\n\t\treturn irradiance;\n\t}\n#endif",lights_toon_fragment:"ToonMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;",lights_toon_pars_fragment:"varying vec3 vViewPosition;\nstruct ToonMaterial {\n\tvec3 diffuseColor;\n};\nvoid RE_Direct_Toon( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n\tvec3 irradiance = getGradientIrradiance( geometryNormal, directLight.direction ) * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_Toon\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Toon",lights_phong_fragment:"BlinnPhongMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularColor = specular;\nmaterial.specularShininess = shininess;\nmaterial.specularStrength = specularStrength;",lights_phong_pars_fragment:"varying vec3 vViewPosition;\nstruct BlinnPhongMaterial {\n\tvec3 diffuseColor;\n\tvec3 specularColor;\n\tfloat specularShininess;\n\tfloat specularStrength;\n};\nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometryNormal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n\treflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometryViewDir, geometryNormal, material.specularColor, material.specularShininess ) * material.specularStrength;\n}\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_BlinnPhong\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_BlinnPhong",lights_physical_fragment:"PhysicalMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\nvec3 dxy = max( abs( dFdx( nonPerturbedNormal ) ), abs( dFdy( nonPerturbedNormal ) ) );\nfloat geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );\nmaterial.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness;\nmaterial.roughness = min( material.roughness, 1.0 );\n#ifdef IOR\n\tmaterial.ior = ior;\n\t#ifdef USE_SPECULAR\n\t\tfloat specularIntensityFactor = specularIntensity;\n\t\tvec3 specularColorFactor = specularColor;\n\t\t#ifdef USE_SPECULAR_COLORMAP\n\t\t\tspecularColorFactor *= texture2D( specularColorMap, vSpecularColorMapUv ).rgb;\n\t\t#endif\n\t\t#ifdef USE_SPECULAR_INTENSITYMAP\n\t\t\tspecularIntensityFactor *= texture2D( specularIntensityMap, vSpecularIntensityMapUv ).a;\n\t\t#endif\n\t\tmaterial.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor );\n\t#else\n\t\tfloat specularIntensityFactor = 1.0;\n\t\tvec3 specularColorFactor = vec3( 1.0 );\n\t\tmaterial.specularF90 = 1.0;\n\t#endif\n\tmaterial.specularColor = mix( min( pow2( ( material.ior - 1.0 ) / ( material.ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor );\n#else\n\tmaterial.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor );\n\tmaterial.specularF90 = 1.0;\n#endif\n#ifdef USE_CLEARCOAT\n\tmaterial.clearcoat = clearcoat;\n\tmaterial.clearcoatRoughness = clearcoatRoughness;\n\tmaterial.clearcoatF0 = vec3( 0.04 );\n\tmaterial.clearcoatF90 = 1.0;\n\t#ifdef USE_CLEARCOATMAP\n\t\tmaterial.clearcoat *= texture2D( clearcoatMap, vClearcoatMapUv ).x;\n\t#endif\n\t#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\t\tmaterial.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vClearcoatRoughnessMapUv ).y;\n\t#endif\n\tmaterial.clearcoat = saturate( material.clearcoat );\tmaterial.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 );\n\tmaterial.clearcoatRoughness += geometryRoughness;\n\tmaterial.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 );\n#endif\n#ifdef USE_IRIDESCENCE\n\tmaterial.iridescence = iridescence;\n\tmaterial.iridescenceIOR = iridescenceIOR;\n\t#ifdef USE_IRIDESCENCEMAP\n\t\tmaterial.iridescence *= texture2D( iridescenceMap, vIridescenceMapUv ).r;\n\t#endif\n\t#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\t\tmaterial.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vIridescenceThicknessMapUv ).g + iridescenceThicknessMinimum;\n\t#else\n\t\tmaterial.iridescenceThickness = iridescenceThicknessMaximum;\n\t#endif\n#endif\n#ifdef USE_SHEEN\n\tmaterial.sheenColor = sheenColor;\n\t#ifdef USE_SHEEN_COLORMAP\n\t\tmaterial.sheenColor *= texture2D( sheenColorMap, vSheenColorMapUv ).rgb;\n\t#endif\n\tmaterial.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 );\n\t#ifdef USE_SHEEN_ROUGHNESSMAP\n\t\tmaterial.sheenRoughness *= texture2D( sheenRoughnessMap, vSheenRoughnessMapUv ).a;\n\t#endif\n#endif\n#ifdef USE_ANISOTROPY\n\t#ifdef USE_ANISOTROPYMAP\n\t\tmat2 anisotropyMat = mat2( anisotropyVector.x, anisotropyVector.y, - anisotropyVector.y, anisotropyVector.x );\n\t\tvec3 anisotropyPolar = texture2D( anisotropyMap, vAnisotropyMapUv ).rgb;\n\t\tvec2 anisotropyV = anisotropyMat * normalize( 2.0 * anisotropyPolar.rg - vec2( 1.0 ) ) * anisotropyPolar.b;\n\t#else\n\t\tvec2 anisotropyV = anisotropyVector;\n\t#endif\n\tmaterial.anisotropy = length( anisotropyV );\n\tanisotropyV /= material.anisotropy;\n\tmaterial.anisotropy = saturate( material.anisotropy );\n\tmaterial.alphaT = mix( pow2( material.roughness ), 1.0, pow2( material.anisotropy ) );\n\tmaterial.anisotropyT = tbn[ 0 ] * anisotropyV.x - tbn[ 1 ] * anisotropyV.y;\n\tmaterial.anisotropyB = tbn[ 1 ] * anisotropyV.x + tbn[ 0 ] * anisotropyV.y;\n#endif",lights_physical_pars_fragment:"struct PhysicalMaterial {\n\tvec3 diffuseColor;\n\tfloat roughness;\n\tvec3 specularColor;\n\tfloat specularF90;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat clearcoat;\n\t\tfloat clearcoatRoughness;\n\t\tvec3 clearcoatF0;\n\t\tfloat clearcoatF90;\n\t#endif\n\t#ifdef USE_IRIDESCENCE\n\t\tfloat iridescence;\n\t\tfloat iridescenceIOR;\n\t\tfloat iridescenceThickness;\n\t\tvec3 iridescenceFresnel;\n\t\tvec3 iridescenceF0;\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tvec3 sheenColor;\n\t\tfloat sheenRoughness;\n\t#endif\n\t#ifdef IOR\n\t\tfloat ior;\n\t#endif\n\t#ifdef USE_TRANSMISSION\n\t\tfloat transmission;\n\t\tfloat transmissionAlpha;\n\t\tfloat thickness;\n\t\tfloat attenuationDistance;\n\t\tvec3 attenuationColor;\n\t#endif\n\t#ifdef USE_ANISOTROPY\n\t\tfloat anisotropy;\n\t\tfloat alphaT;\n\t\tvec3 anisotropyT;\n\t\tvec3 anisotropyB;\n\t#endif\n};\nvec3 clearcoatSpecularDirect = vec3( 0.0 );\nvec3 clearcoatSpecularIndirect = vec3( 0.0 );\nvec3 sheenSpecularDirect = vec3( 0.0 );\nvec3 sheenSpecularIndirect = vec3(0.0 );\nvec3 Schlick_to_F0( const in vec3 f, const in float f90, const in float dotVH ) {\n float x = clamp( 1.0 - dotVH, 0.0, 1.0 );\n float x2 = x * x;\n float x5 = clamp( x * x2 * x2, 0.0, 0.9999 );\n return ( f - vec3( f90 ) * x5 ) / ( 1.0 - x5 );\n}\nfloat V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {\n\tfloat a2 = pow2( alpha );\n\tfloat gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\n\tfloat gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\n\treturn 0.5 / max( gv + gl, EPSILON );\n}\nfloat D_GGX( const in float alpha, const in float dotNH ) {\n\tfloat a2 = pow2( alpha );\n\tfloat denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;\n\treturn RECIPROCAL_PI * a2 / pow2( denom );\n}\n#ifdef USE_ANISOTROPY\n\tfloat V_GGX_SmithCorrelated_Anisotropic( const in float alphaT, const in float alphaB, const in float dotTV, const in float dotBV, const in float dotTL, const in float dotBL, const in float dotNV, const in float dotNL ) {\n\t\tfloat gv = dotNL * length( vec3( alphaT * dotTV, alphaB * dotBV, dotNV ) );\n\t\tfloat gl = dotNV * length( vec3( alphaT * dotTL, alphaB * dotBL, dotNL ) );\n\t\tfloat v = 0.5 / ( gv + gl );\n\t\treturn saturate(v);\n\t}\n\tfloat D_GGX_Anisotropic( const in float alphaT, const in float alphaB, const in float dotNH, const in float dotTH, const in float dotBH ) {\n\t\tfloat a2 = alphaT * alphaB;\n\t\thighp vec3 v = vec3( alphaB * dotTH, alphaT * dotBH, a2 * dotNH );\n\t\thighp float v2 = dot( v, v );\n\t\tfloat w2 = a2 / v2;\n\t\treturn RECIPROCAL_PI * a2 * pow2 ( w2 );\n\t}\n#endif\n#ifdef USE_CLEARCOAT\n\tvec3 BRDF_GGX_Clearcoat( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material) {\n\t\tvec3 f0 = material.clearcoatF0;\n\t\tfloat f90 = material.clearcoatF90;\n\t\tfloat roughness = material.clearcoatRoughness;\n\t\tfloat alpha = pow2( roughness );\n\t\tvec3 halfDir = normalize( lightDir + viewDir );\n\t\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\t\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\t\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\t\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\t\tvec3 F = F_Schlick( f0, f90, dotVH );\n\t\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\t\tfloat D = D_GGX( alpha, dotNH );\n\t\treturn F * ( V * D );\n\t}\n#endif\nvec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material ) {\n\tvec3 f0 = material.specularColor;\n\tfloat f90 = material.specularF90;\n\tfloat roughness = material.roughness;\n\tfloat alpha = pow2( roughness );\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\tvec3 F = F_Schlick( f0, f90, dotVH );\n\t#ifdef USE_IRIDESCENCE\n\t\tF = mix( F, material.iridescenceFresnel, material.iridescence );\n\t#endif\n\t#ifdef USE_ANISOTROPY\n\t\tfloat dotTL = dot( material.anisotropyT, lightDir );\n\t\tfloat dotTV = dot( material.anisotropyT, viewDir );\n\t\tfloat dotTH = dot( material.anisotropyT, halfDir );\n\t\tfloat dotBL = dot( material.anisotropyB, lightDir );\n\t\tfloat dotBV = dot( material.anisotropyB, viewDir );\n\t\tfloat dotBH = dot( material.anisotropyB, halfDir );\n\t\tfloat V = V_GGX_SmithCorrelated_Anisotropic( material.alphaT, alpha, dotTV, dotBV, dotTL, dotBL, dotNV, dotNL );\n\t\tfloat D = D_GGX_Anisotropic( material.alphaT, alpha, dotNH, dotTH, dotBH );\n\t#else\n\t\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\t\tfloat D = D_GGX( alpha, dotNH );\n\t#endif\n\treturn F * ( V * D );\n}\nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {\n\tconst float LUT_SIZE = 64.0;\n\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\n\tconst float LUT_BIAS = 0.5 / LUT_SIZE;\n\tfloat dotNV = saturate( dot( N, V ) );\n\tvec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );\n\tuv = uv * LUT_SCALE + LUT_BIAS;\n\treturn uv;\n}\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\n\tfloat l = length( f );\n\treturn max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\n}\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\n\tfloat x = dot( v1, v2 );\n\tfloat y = abs( x );\n\tfloat a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;\n\tfloat b = 3.4175940 + ( 4.1616724 + y ) * y;\n\tfloat v = a / b;\n\tfloat theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\n\treturn cross( v1, v2 ) * theta_sintheta;\n}\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {\n\tvec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];\n\tvec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];\n\tvec3 lightNormal = cross( v1, v2 );\n\tif( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );\n\tvec3 T1, T2;\n\tT1 = normalize( V - N * dot( V, N ) );\n\tT2 = - cross( N, T1 );\n\tmat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\n\tvec3 coords[ 4 ];\n\tcoords[ 0 ] = mat * ( rectCoords[ 0 ] - P );\n\tcoords[ 1 ] = mat * ( rectCoords[ 1 ] - P );\n\tcoords[ 2 ] = mat * ( rectCoords[ 2 ] - P );\n\tcoords[ 3 ] = mat * ( rectCoords[ 3 ] - P );\n\tcoords[ 0 ] = normalize( coords[ 0 ] );\n\tcoords[ 1 ] = normalize( coords[ 1 ] );\n\tcoords[ 2 ] = normalize( coords[ 2 ] );\n\tcoords[ 3 ] = normalize( coords[ 3 ] );\n\tvec3 vectorFormFactor = vec3( 0.0 );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\n\tfloat result = LTC_ClippedSphereFormFactor( vectorFormFactor );\n\treturn vec3( result );\n}\n#if defined( USE_SHEEN )\nfloat D_Charlie( float roughness, float dotNH ) {\n\tfloat alpha = pow2( roughness );\n\tfloat invAlpha = 1.0 / alpha;\n\tfloat cos2h = dotNH * dotNH;\n\tfloat sin2h = max( 1.0 - cos2h, 0.0078125 );\n\treturn ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI );\n}\nfloat V_Neubelt( float dotNV, float dotNL ) {\n\treturn saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) );\n}\nvec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) {\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat D = D_Charlie( sheenRoughness, dotNH );\n\tfloat V = V_Neubelt( dotNV, dotNL );\n\treturn sheenColor * ( D * V );\n}\n#endif\nfloat IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat r2 = roughness * roughness;\n\tfloat a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95;\n\tfloat b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72;\n\tfloat DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) );\n\treturn saturate( DG * RECIPROCAL_PI );\n}\nvec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tconst vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\n\tconst vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\n\tvec4 r = roughness * c0 + c1;\n\tfloat a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\n\tvec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw;\n\treturn fab;\n}\nvec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) {\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\treturn specularColor * fab.x + specularF90 * fab.y;\n}\n#ifdef USE_IRIDESCENCE\nvoid computeMultiscatteringIridescence( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float iridescence, const in vec3 iridescenceF0, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#else\nvoid computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#endif\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\t#ifdef USE_IRIDESCENCE\n\t\tvec3 Fr = mix( specularColor, iridescenceF0, iridescence );\n\t#else\n\t\tvec3 Fr = specularColor;\n\t#endif\n\tvec3 FssEss = Fr * fab.x + specularF90 * fab.y;\n\tfloat Ess = fab.x + fab.y;\n\tfloat Ems = 1.0 - Ess;\n\tvec3 Favg = Fr + ( 1.0 - Fr ) * 0.047619;\tvec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg );\n\tsingleScatter += FssEss;\n\tmultiScatter += Fms * Ems;\n}\n#if NUM_RECT_AREA_LIGHTS > 0\n\tvoid RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\t\tvec3 normal = geometryNormal;\n\t\tvec3 viewDir = geometryViewDir;\n\t\tvec3 position = geometryPosition;\n\t\tvec3 lightPos = rectAreaLight.position;\n\t\tvec3 halfWidth = rectAreaLight.halfWidth;\n\t\tvec3 halfHeight = rectAreaLight.halfHeight;\n\t\tvec3 lightColor = rectAreaLight.color;\n\t\tfloat roughness = material.roughness;\n\t\tvec3 rectCoords[ 4 ];\n\t\trectCoords[ 0 ] = lightPos + halfWidth - halfHeight;\t\trectCoords[ 1 ] = lightPos - halfWidth - halfHeight;\n\t\trectCoords[ 2 ] = lightPos - halfWidth + halfHeight;\n\t\trectCoords[ 3 ] = lightPos + halfWidth + halfHeight;\n\t\tvec2 uv = LTC_Uv( normal, viewDir, roughness );\n\t\tvec4 t1 = texture2D( ltc_1, uv );\n\t\tvec4 t2 = texture2D( ltc_2, uv );\n\t\tmat3 mInv = mat3(\n\t\t\tvec3( t1.x, 0, t1.y ),\n\t\t\tvec3( 0, 1, 0 ),\n\t\t\tvec3( t1.z, 0, t1.w )\n\t\t);\n\t\tvec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );\n\t\treflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\n\t\treflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );\n\t}\n#endif\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometryNormal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNLcc = saturate( dot( geometryClearcoatNormal, directLight.direction ) );\n\t\tvec3 ccIrradiance = dotNLcc * directLight.color;\n\t\tclearcoatSpecularDirect += ccIrradiance * BRDF_GGX_Clearcoat( directLight.direction, geometryViewDir, geometryClearcoatNormal, material );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecularDirect += irradiance * BRDF_Sheen( directLight.direction, geometryViewDir, geometryNormal, material.sheenColor, material.sheenRoughness );\n\t#endif\n\treflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometryViewDir, geometryNormal, material );\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatSpecularIndirect += clearcoatRadiance * EnvironmentBRDF( geometryClearcoatNormal, geometryViewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecularIndirect += irradiance * material.sheenColor * IBLSheenBRDF( geometryNormal, geometryViewDir, material.sheenRoughness );\n\t#endif\n\tvec3 singleScattering = vec3( 0.0 );\n\tvec3 multiScattering = vec3( 0.0 );\n\tvec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;\n\t#ifdef USE_IRIDESCENCE\n\t\tcomputeMultiscatteringIridescence( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness, singleScattering, multiScattering );\n\t#else\n\t\tcomputeMultiscattering( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering );\n\t#endif\n\tvec3 totalScattering = singleScattering + multiScattering;\n\tvec3 diffuse = material.diffuseColor * ( 1.0 - max( max( totalScattering.r, totalScattering.g ), totalScattering.b ) );\n\treflectedLight.indirectSpecular += radiance * singleScattering;\n\treflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;\n\treflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;\n}\n#define RE_Direct\t\t\t\tRE_Direct_Physical\n#define RE_Direct_RectArea\t\tRE_Direct_RectArea_Physical\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Physical\n#define RE_IndirectSpecular\t\tRE_IndirectSpecular_Physical\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\n\treturn saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\n}",lights_fragment_begin:"\nvec3 geometryPosition = - vViewPosition;\nvec3 geometryNormal = normal;\nvec3 geometryViewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );\nvec3 geometryClearcoatNormal = vec3( 0.0 );\n#ifdef USE_CLEARCOAT\n\tgeometryClearcoatNormal = clearcoatNormal;\n#endif\n#ifdef USE_IRIDESCENCE\n\tfloat dotNVi = saturate( dot( normal, geometryViewDir ) );\n\tif ( material.iridescenceThickness == 0.0 ) {\n\t\tmaterial.iridescence = 0.0;\n\t} else {\n\t\tmaterial.iridescence = saturate( material.iridescence );\n\t}\n\tif ( material.iridescence > 0.0 ) {\n\t\tmaterial.iridescenceFresnel = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.specularColor );\n\t\tmaterial.iridescenceF0 = Schlick_to_F0( material.iridescenceFresnel, 1.0, dotNVi );\n\t}\n#endif\nIncidentLight directLight;\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\n\tPointLight pointLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tpointLight = pointLights[ i ];\n\t\tgetPointLightInfo( pointLight, geometryPosition, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS )\n\t\tpointLightShadow = pointLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\n\tSpotLight spotLight;\n\tvec4 spotColor;\n\tvec3 spotLightCoord;\n\tbool inSpotLightMap;\n\t#if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tspotLight = spotLights[ i ];\n\t\tgetSpotLightInfo( spotLight, geometryPosition, directLight );\n\t\t#if ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\n\t\t#define SPOT_LIGHT_MAP_INDEX UNROLLED_LOOP_INDEX\n\t\t#elif ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\t#define SPOT_LIGHT_MAP_INDEX NUM_SPOT_LIGHT_MAPS\n\t\t#else\n\t\t#define SPOT_LIGHT_MAP_INDEX ( UNROLLED_LOOP_INDEX - NUM_SPOT_LIGHT_SHADOWS + NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\n\t\t#endif\n\t\t#if ( SPOT_LIGHT_MAP_INDEX < NUM_SPOT_LIGHT_MAPS )\n\t\t\tspotLightCoord = vSpotLightCoord[ i ].xyz / vSpotLightCoord[ i ].w;\n\t\t\tinSpotLightMap = all( lessThan( abs( spotLightCoord * 2. - 1. ), vec3( 1.0 ) ) );\n\t\t\tspotColor = texture2D( spotLightMap[ SPOT_LIGHT_MAP_INDEX ], spotLightCoord.xy );\n\t\t\tdirectLight.color = inSpotLightMap ? directLight.color * spotColor.rgb : directLight.color;\n\t\t#endif\n\t\t#undef SPOT_LIGHT_MAP_INDEX\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\tspotLightShadow = spotLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )\n\tDirectionalLight directionalLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tdirectionalLight = directionalLights[ i ];\n\t\tgetDirectionalLightInfo( directionalLight, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )\n\t\tdirectionalLightShadow = directionalLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )\n\tRectAreaLight rectAreaLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {\n\t\trectAreaLight = rectAreaLights[ i ];\n\t\tRE_Direct_RectArea( rectAreaLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if defined( RE_IndirectDiffuse )\n\tvec3 iblIrradiance = vec3( 0.0 );\n\tvec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\n\t#if defined( USE_LIGHT_PROBES )\n\t\tirradiance += getLightProbeIrradiance( lightProbe, geometryNormal );\n\t#endif\n\t#if ( NUM_HEMI_LIGHTS > 0 )\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\n\t\t\tirradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometryNormal );\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n#endif\n#if defined( RE_IndirectSpecular )\n\tvec3 radiance = vec3( 0.0 );\n\tvec3 clearcoatRadiance = vec3( 0.0 );\n#endif",lights_fragment_maps:"#if defined( RE_IndirectDiffuse )\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n\t\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\n\t\tirradiance += lightMapIrradiance;\n\t#endif\n\t#if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV )\n\t\tiblIrradiance += getIBLIrradiance( geometryNormal );\n\t#endif\n#endif\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\n\t#ifdef USE_ANISOTROPY\n\t\tradiance += getIBLAnisotropyRadiance( geometryViewDir, geometryNormal, material.roughness, material.anisotropyB, material.anisotropy );\n\t#else\n\t\tradiance += getIBLRadiance( geometryViewDir, geometryNormal, material.roughness );\n\t#endif\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatRadiance += getIBLRadiance( geometryViewDir, geometryClearcoatNormal, material.clearcoatRoughness );\n\t#endif\n#endif",lights_fragment_end:"#if defined( RE_IndirectDiffuse )\n\tRE_IndirectDiffuse( irradiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n#endif\n#if defined( RE_IndirectSpecular )\n\tRE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n#endif",logdepthbuf_fragment:"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tgl_FragDepthEXT = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;\n#endif",logdepthbuf_pars_fragment:"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tuniform float logDepthBufFC;\n\tvarying float vFragDepth;\n\tvarying float vIsPerspective;\n#endif",logdepthbuf_pars_vertex:"#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvarying float vFragDepth;\n\t\tvarying float vIsPerspective;\n\t#else\n\t\tuniform float logDepthBufFC;\n\t#endif\n#endif",logdepthbuf_vertex:"#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvFragDepth = 1.0 + gl_Position.w;\n\t\tvIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) );\n\t#else\n\t\tif ( isPerspectiveMatrix( projectionMatrix ) ) {\n\t\t\tgl_Position.z = log2( max( EPSILON, gl_Position.w + 1.0 ) ) * logDepthBufFC - 1.0;\n\t\t\tgl_Position.z *= gl_Position.w;\n\t\t}\n\t#endif\n#endif",map_fragment:"#ifdef USE_MAP\n\tvec4 sampledDiffuseColor = texture2D( map, vMapUv );\n\t#ifdef DECODE_VIDEO_TEXTURE\n\t\tsampledDiffuseColor = vec4( mix( pow( sampledDiffuseColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), sampledDiffuseColor.rgb * 0.0773993808, vec3( lessThanEqual( sampledDiffuseColor.rgb, vec3( 0.04045 ) ) ) ), sampledDiffuseColor.w );\n\t\n\t#endif\n\tdiffuseColor *= sampledDiffuseColor;\n#endif",map_pars_fragment:"#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif",map_particle_fragment:"#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\t#if defined( USE_POINTS_UV )\n\t\tvec2 uv = vUv;\n\t#else\n\t\tvec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;\n\t#endif\n#endif\n#ifdef USE_MAP\n\tdiffuseColor *= texture2D( map, uv );\n#endif\n#ifdef USE_ALPHAMAP\n\tdiffuseColor.a *= texture2D( alphaMap, uv ).g;\n#endif",map_particle_pars_fragment:"#if defined( USE_POINTS_UV )\n\tvarying vec2 vUv;\n#else\n\t#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\t\tuniform mat3 uvTransform;\n\t#endif\n#endif\n#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif\n#ifdef USE_ALPHAMAP\n\tuniform sampler2D alphaMap;\n#endif",metalnessmap_fragment:"float metalnessFactor = metalness;\n#ifdef USE_METALNESSMAP\n\tvec4 texelMetalness = texture2D( metalnessMap, vMetalnessMapUv );\n\tmetalnessFactor *= texelMetalness.b;\n#endif",metalnessmap_pars_fragment:"#ifdef USE_METALNESSMAP\n\tuniform sampler2D metalnessMap;\n#endif",morphcolor_vertex:"#if defined( USE_MORPHCOLORS ) && defined( MORPHTARGETS_TEXTURE )\n\tvColor *= morphTargetBaseInfluence;\n\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t#if defined( USE_COLOR_ALPHA )\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ) * morphTargetInfluences[ i ];\n\t\t#elif defined( USE_COLOR )\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ).rgb * morphTargetInfluences[ i ];\n\t\t#endif\n\t}\n#endif",morphnormal_vertex:"#ifdef USE_MORPHNORMALS\n\tobjectNormal *= morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1 ).xyz * morphTargetInfluences[ i ];\n\t\t}\n\t#else\n\t\tobjectNormal += morphNormal0 * morphTargetInfluences[ 0 ];\n\t\tobjectNormal += morphNormal1 * morphTargetInfluences[ 1 ];\n\t\tobjectNormal += morphNormal2 * morphTargetInfluences[ 2 ];\n\t\tobjectNormal += morphNormal3 * morphTargetInfluences[ 3 ];\n\t#endif\n#endif",morphtarget_pars_vertex:"#ifdef USE_MORPHTARGETS\n\tuniform float morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tuniform float morphTargetInfluences[ MORPHTARGETS_COUNT ];\n\t\tuniform sampler2DArray morphTargetsTexture;\n\t\tuniform ivec2 morphTargetsTextureSize;\n\t\tvec4 getMorph( const in int vertexIndex, const in int morphTargetIndex, const in int offset ) {\n\t\t\tint texelIndex = vertexIndex * MORPHTARGETS_TEXTURE_STRIDE + offset;\n\t\t\tint y = texelIndex / morphTargetsTextureSize.x;\n\t\t\tint x = texelIndex - y * morphTargetsTextureSize.x;\n\t\t\tivec3 morphUV = ivec3( x, y, morphTargetIndex );\n\t\t\treturn texelFetch( morphTargetsTexture, morphUV, 0 );\n\t\t}\n\t#else\n\t\t#ifndef USE_MORPHNORMALS\n\t\t\tuniform float morphTargetInfluences[ 8 ];\n\t\t#else\n\t\t\tuniform float morphTargetInfluences[ 4 ];\n\t\t#endif\n\t#endif\n#endif",morphtarget_vertex:"#ifdef USE_MORPHTARGETS\n\ttransformed *= morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0 ).xyz * morphTargetInfluences[ i ];\n\t\t}\n\t#else\n\t\ttransformed += morphTarget0 * morphTargetInfluences[ 0 ];\n\t\ttransformed += morphTarget1 * morphTargetInfluences[ 1 ];\n\t\ttransformed += morphTarget2 * morphTargetInfluences[ 2 ];\n\t\ttransformed += morphTarget3 * morphTargetInfluences[ 3 ];\n\t\t#ifndef USE_MORPHNORMALS\n\t\t\ttransformed += morphTarget4 * morphTargetInfluences[ 4 ];\n\t\t\ttransformed += morphTarget5 * morphTargetInfluences[ 5 ];\n\t\t\ttransformed += morphTarget6 * morphTargetInfluences[ 6 ];\n\t\t\ttransformed += morphTarget7 * morphTargetInfluences[ 7 ];\n\t\t#endif\n\t#endif\n#endif",normal_fragment_begin:"float faceDirection = gl_FrontFacing ? 1.0 : - 1.0;\n#ifdef FLAT_SHADED\n\tvec3 fdx = dFdx( vViewPosition );\n\tvec3 fdy = dFdy( vViewPosition );\n\tvec3 normal = normalize( cross( fdx, fdy ) );\n#else\n\tvec3 normal = normalize( vNormal );\n\t#ifdef DOUBLE_SIDED\n\t\tnormal *= faceDirection;\n\t#endif\n#endif\n#if defined( USE_NORMALMAP_TANGENTSPACE ) || defined( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY )\n\t#ifdef USE_TANGENT\n\t\tmat3 tbn = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\n\t#else\n\t\tmat3 tbn = getTangentFrame( - vViewPosition, normal,\n\t\t#if defined( USE_NORMALMAP )\n\t\t\tvNormalMapUv\n\t\t#elif defined( USE_CLEARCOAT_NORMALMAP )\n\t\t\tvClearcoatNormalMapUv\n\t\t#else\n\t\t\tvUv\n\t\t#endif\n\t\t);\n\t#endif\n\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\n\t\ttbn[0] *= faceDirection;\n\t\ttbn[1] *= faceDirection;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\t#ifdef USE_TANGENT\n\t\tmat3 tbn2 = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\n\t#else\n\t\tmat3 tbn2 = getTangentFrame( - vViewPosition, normal, vClearcoatNormalMapUv );\n\t#endif\n\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\n\t\ttbn2[0] *= faceDirection;\n\t\ttbn2[1] *= faceDirection;\n\t#endif\n#endif\nvec3 nonPerturbedNormal = normal;",normal_fragment_maps:"#ifdef USE_NORMALMAP_OBJECTSPACE\n\tnormal = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\n\t#ifdef FLIP_SIDED\n\t\tnormal = - normal;\n\t#endif\n\t#ifdef DOUBLE_SIDED\n\t\tnormal = normal * faceDirection;\n\t#endif\n\tnormal = normalize( normalMatrix * normal );\n#elif defined( USE_NORMALMAP_TANGENTSPACE )\n\tvec3 mapN = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\n\tmapN.xy *= normalScale;\n\tnormal = normalize( tbn * mapN );\n#elif defined( USE_BUMPMAP )\n\tnormal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection );\n#endif",normal_pars_fragment:"#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif",normal_pars_vertex:"#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif",normal_vertex:"#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n\t#ifdef USE_TANGENT\n\t\tvTangent = normalize( transformedTangent );\n\t\tvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\n\t#endif\n#endif",normalmap_pars_fragment:"#ifdef USE_NORMALMAP\n\tuniform sampler2D normalMap;\n\tuniform vec2 normalScale;\n#endif\n#ifdef USE_NORMALMAP_OBJECTSPACE\n\tuniform mat3 normalMatrix;\n#endif\n#if ! defined ( USE_TANGENT ) && ( defined ( USE_NORMALMAP_TANGENTSPACE ) || defined ( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) )\n\tmat3 getTangentFrame( vec3 eye_pos, vec3 surf_norm, vec2 uv ) {\n\t\tvec3 q0 = dFdx( eye_pos.xyz );\n\t\tvec3 q1 = dFdy( eye_pos.xyz );\n\t\tvec2 st0 = dFdx( uv.st );\n\t\tvec2 st1 = dFdy( uv.st );\n\t\tvec3 N = surf_norm;\n\t\tvec3 q1perp = cross( q1, N );\n\t\tvec3 q0perp = cross( N, q0 );\n\t\tvec3 T = q1perp * st0.x + q0perp * st1.x;\n\t\tvec3 B = q1perp * st0.y + q0perp * st1.y;\n\t\tfloat det = max( dot( T, T ), dot( B, B ) );\n\t\tfloat scale = ( det == 0.0 ) ? 0.0 : inversesqrt( det );\n\t\treturn mat3( T * scale, B * scale, N );\n\t}\n#endif",clearcoat_normal_fragment_begin:"#ifdef USE_CLEARCOAT\n\tvec3 clearcoatNormal = nonPerturbedNormal;\n#endif",clearcoat_normal_fragment_maps:"#ifdef USE_CLEARCOAT_NORMALMAP\n\tvec3 clearcoatMapN = texture2D( clearcoatNormalMap, vClearcoatNormalMapUv ).xyz * 2.0 - 1.0;\n\tclearcoatMapN.xy *= clearcoatNormalScale;\n\tclearcoatNormal = normalize( tbn2 * clearcoatMapN );\n#endif",clearcoat_pars_fragment:"#ifdef USE_CLEARCOATMAP\n\tuniform sampler2D clearcoatMap;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tuniform sampler2D clearcoatNormalMap;\n\tuniform vec2 clearcoatNormalScale;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tuniform sampler2D clearcoatRoughnessMap;\n#endif",iridescence_pars_fragment:"#ifdef USE_IRIDESCENCEMAP\n\tuniform sampler2D iridescenceMap;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tuniform sampler2D iridescenceThicknessMap;\n#endif",opaque_fragment:"#ifdef OPAQUE\ndiffuseColor.a = 1.0;\n#endif\n#ifdef USE_TRANSMISSION\ndiffuseColor.a *= material.transmissionAlpha;\n#endif\ngl_FragColor = vec4( outgoingLight, diffuseColor.a );",packing:"vec3 packNormalToRGB( const in vec3 normal ) {\n\treturn normalize( normal ) * 0.5 + 0.5;\n}\nvec3 unpackRGBToNormal( const in vec3 rgb ) {\n\treturn 2.0 * rgb.xyz - 1.0;\n}\nconst float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;\nconst vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );\nconst vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. );\nconst float ShiftRight8 = 1. / 256.;\nvec4 packDepthToRGBA( const in float v ) {\n\tvec4 r = vec4( fract( v * PackFactors ), v );\n\tr.yzw -= r.xyz * ShiftRight8;\treturn r * PackUpscale;\n}\nfloat unpackRGBAToDepth( const in vec4 v ) {\n\treturn dot( v, UnpackFactors );\n}\nvec2 packDepthToRG( in highp float v ) {\n\treturn packDepthToRGBA( v ).yx;\n}\nfloat unpackRGToDepth( const in highp vec2 v ) {\n\treturn unpackRGBAToDepth( vec4( v.xy, 0.0, 0.0 ) );\n}\nvec4 pack2HalfToRGBA( vec2 v ) {\n\tvec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ) );\n\treturn vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w );\n}\nvec2 unpackRGBATo2Half( vec4 v ) {\n\treturn vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) );\n}\nfloat viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn ( viewZ + near ) / ( near - far );\n}\nfloat orthographicDepthToViewZ( const in float depth, const in float near, const in float far ) {\n\treturn depth * ( near - far ) - near;\n}\nfloat viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn ( ( near + viewZ ) * far ) / ( ( far - near ) * viewZ );\n}\nfloat perspectiveDepthToViewZ( const in float depth, const in float near, const in float far ) {\n\treturn ( near * far ) / ( ( far - near ) * depth - far );\n}",premultiplied_alpha_fragment:"#ifdef PREMULTIPLIED_ALPHA\n\tgl_FragColor.rgb *= gl_FragColor.a;\n#endif",project_vertex:"vec4 mvPosition = vec4( transformed, 1.0 );\n#ifdef USE_INSTANCING\n\tmvPosition = instanceMatrix * mvPosition;\n#endif\nmvPosition = modelViewMatrix * mvPosition;\ngl_Position = projectionMatrix * mvPosition;",dithering_fragment:"#ifdef DITHERING\n\tgl_FragColor.rgb = dithering( gl_FragColor.rgb );\n#endif",dithering_pars_fragment:"#ifdef DITHERING\n\tvec3 dithering( vec3 color ) {\n\t\tfloat grid_position = rand( gl_FragCoord.xy );\n\t\tvec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 );\n\t\tdither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position );\n\t\treturn color + dither_shift_RGB;\n\t}\n#endif",roughnessmap_fragment:"float roughnessFactor = roughness;\n#ifdef USE_ROUGHNESSMAP\n\tvec4 texelRoughness = texture2D( roughnessMap, vRoughnessMapUv );\n\troughnessFactor *= texelRoughness.g;\n#endif",roughnessmap_pars_fragment:"#ifdef USE_ROUGHNESSMAP\n\tuniform sampler2D roughnessMap;\n#endif",shadowmap_pars_fragment:"#if NUM_SPOT_LIGHT_COORDS > 0\n\tvarying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\n#endif\n#if NUM_SPOT_LIGHT_MAPS > 0\n\tuniform sampler2D spotLightMap[ NUM_SPOT_LIGHT_MAPS ];\n#endif\n#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tstruct DirectionalLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ];\n\t\tstruct SpotLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tstruct PointLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t\tfloat shadowCameraNear;\n\t\t\tfloat shadowCameraFar;\n\t\t};\n\t\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n\t#endif\n\tfloat texture2DCompare( sampler2D depths, vec2 uv, float compare ) {\n\t\treturn step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) );\n\t}\n\tvec2 texture2DDistribution( sampler2D shadow, vec2 uv ) {\n\t\treturn unpackRGBATo2Half( texture2D( shadow, uv ) );\n\t}\n\tfloat VSMShadow (sampler2D shadow, vec2 uv, float compare ){\n\t\tfloat occlusion = 1.0;\n\t\tvec2 distribution = texture2DDistribution( shadow, uv );\n\t\tfloat hard_shadow = step( compare , distribution.x );\n\t\tif (hard_shadow != 1.0 ) {\n\t\t\tfloat distance = compare - distribution.x ;\n\t\t\tfloat variance = max( 0.00000, distribution.y * distribution.y );\n\t\t\tfloat softness_probability = variance / (variance + distance * distance );\t\t\tsoftness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 );\t\t\tocclusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 );\n\t\t}\n\t\treturn occlusion;\n\t}\n\tfloat getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) {\n\t\tfloat shadow = 1.0;\n\t\tshadowCoord.xyz /= shadowCoord.w;\n\t\tshadowCoord.z += shadowBias;\n\t\tbool inFrustum = shadowCoord.x >= 0.0 && shadowCoord.x <= 1.0 && shadowCoord.y >= 0.0 && shadowCoord.y <= 1.0;\n\t\tbool frustumTest = inFrustum && shadowCoord.z <= 1.0;\n\t\tif ( frustumTest ) {\n\t\t#if defined( SHADOWMAP_TYPE_PCF )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx0 = - texelSize.x * shadowRadius;\n\t\t\tfloat dy0 = - texelSize.y * shadowRadius;\n\t\t\tfloat dx1 = + texelSize.x * shadowRadius;\n\t\t\tfloat dy1 = + texelSize.y * shadowRadius;\n\t\t\tfloat dx2 = dx0 / 2.0;\n\t\t\tfloat dy2 = dy0 / 2.0;\n\t\t\tfloat dx3 = dx1 / 2.0;\n\t\t\tfloat dy3 = dy1 / 2.0;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\n\t\t\t) * ( 1.0 / 17.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_PCF_SOFT )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx = texelSize.x;\n\t\t\tfloat dy = texelSize.y;\n\t\t\tvec2 uv = shadowCoord.xy;\n\t\t\tvec2 f = fract( uv * shadowMapSize + 0.5 );\n\t\t\tuv -= f * texelSize;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, uv, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ),\n\t\t\t\t\t f.x ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ),\n\t\t\t\t\t f.x ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t f.y ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t f.y ) +\n\t\t\t\tmix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t\t f.x ),\n\t\t\t\t\t mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t\t f.x ),\n\t\t\t\t\t f.y )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_VSM )\n\t\t\tshadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#else\n\t\t\tshadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#endif\n\t\t}\n\t\treturn shadow;\n\t}\n\tvec2 cubeToUV( vec3 v, float texelSizeY ) {\n\t\tvec3 absV = abs( v );\n\t\tfloat scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) );\n\t\tabsV *= scaleToCube;\n\t\tv *= scaleToCube * ( 1.0 - 2.0 * texelSizeY );\n\t\tvec2 planar = v.xy;\n\t\tfloat almostATexel = 1.5 * texelSizeY;\n\t\tfloat almostOne = 1.0 - almostATexel;\n\t\tif ( absV.z >= almostOne ) {\n\t\t\tif ( v.z > 0.0 )\n\t\t\t\tplanar.x = 4.0 - v.x;\n\t\t} else if ( absV.x >= almostOne ) {\n\t\t\tfloat signX = sign( v.x );\n\t\t\tplanar.x = v.z * signX + 2.0 * signX;\n\t\t} else if ( absV.y >= almostOne ) {\n\t\t\tfloat signY = sign( v.y );\n\t\t\tplanar.x = v.x + 2.0 * signY + 2.0;\n\t\t\tplanar.y = v.z * signY - 2.0;\n\t\t}\n\t\treturn vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 );\n\t}\n\tfloat getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) {\n\t\tvec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );\n\t\tvec3 lightToPosition = shadowCoord.xyz;\n\t\tfloat dp = ( length( lightToPosition ) - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear );\t\tdp += shadowBias;\n\t\tvec3 bd3D = normalize( lightToPosition );\n\t\t#if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM )\n\t\t\tvec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;\n\t\t\treturn (\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#else\n\t\t\treturn texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );\n\t\t#endif\n\t}\n#endif",shadowmap_pars_vertex:"#if NUM_SPOT_LIGHT_COORDS > 0\n\tuniform mat4 spotLightMatrix[ NUM_SPOT_LIGHT_COORDS ];\n\tvarying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\n#endif\n#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\tuniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tstruct DirectionalLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tstruct SpotLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\tuniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tstruct PointLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t\tfloat shadowCameraNear;\n\t\t\tfloat shadowCameraFar;\n\t\t};\n\t\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n\t#endif\n#endif",shadowmap_vertex:"#if ( defined( USE_SHADOWMAP ) && ( NUM_DIR_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0 ) ) || ( NUM_SPOT_LIGHT_COORDS > 0 )\n\tvec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\tvec4 shadowWorldPosition;\n#endif\n#if defined( USE_SHADOWMAP )\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 );\n\t\t\tvDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 );\n\t\t\tvPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n#endif\n#if NUM_SPOT_LIGHT_COORDS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_COORDS; i ++ ) {\n\t\tshadowWorldPosition = worldPosition;\n\t\t#if ( defined( USE_SHADOWMAP ) && UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\t\tshadowWorldPosition.xyz += shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias;\n\t\t#endif\n\t\tvSpotLightCoord[ i ] = spotLightMatrix[ i ] * shadowWorldPosition;\n\t}\n\t#pragma unroll_loop_end\n#endif",shadowmask_pars_fragment:"float getShadowMask() {\n\tfloat shadow = 1.0;\n\t#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\tdirectionalLight = directionalLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\n\t\tspotLight = spotLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\tpointLight = pointLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#endif\n\treturn shadow;\n}",skinbase_vertex:"#ifdef USE_SKINNING\n\tmat4 boneMatX = getBoneMatrix( skinIndex.x );\n\tmat4 boneMatY = getBoneMatrix( skinIndex.y );\n\tmat4 boneMatZ = getBoneMatrix( skinIndex.z );\n\tmat4 boneMatW = getBoneMatrix( skinIndex.w );\n#endif",skinning_pars_vertex:"#ifdef USE_SKINNING\n\tuniform mat4 bindMatrix;\n\tuniform mat4 bindMatrixInverse;\n\tuniform highp sampler2D boneTexture;\n\tuniform int boneTextureSize;\n\tmat4 getBoneMatrix( const in float i ) {\n\t\tfloat j = i * 4.0;\n\t\tfloat x = mod( j, float( boneTextureSize ) );\n\t\tfloat y = floor( j / float( boneTextureSize ) );\n\t\tfloat dx = 1.0 / float( boneTextureSize );\n\t\tfloat dy = 1.0 / float( boneTextureSize );\n\t\ty = dy * ( y + 0.5 );\n\t\tvec4 v1 = texture2D( boneTexture, vec2( dx * ( x + 0.5 ), y ) );\n\t\tvec4 v2 = texture2D( boneTexture, vec2( dx * ( x + 1.5 ), y ) );\n\t\tvec4 v3 = texture2D( boneTexture, vec2( dx * ( x + 2.5 ), y ) );\n\t\tvec4 v4 = texture2D( boneTexture, vec2( dx * ( x + 3.5 ), y ) );\n\t\tmat4 bone = mat4( v1, v2, v3, v4 );\n\t\treturn bone;\n\t}\n#endif",skinning_vertex:"#ifdef USE_SKINNING\n\tvec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );\n\tvec4 skinned = vec4( 0.0 );\n\tskinned += boneMatX * skinVertex * skinWeight.x;\n\tskinned += boneMatY * skinVertex * skinWeight.y;\n\tskinned += boneMatZ * skinVertex * skinWeight.z;\n\tskinned += boneMatW * skinVertex * skinWeight.w;\n\ttransformed = ( bindMatrixInverse * skinned ).xyz;\n#endif",skinnormal_vertex:"#ifdef USE_SKINNING\n\tmat4 skinMatrix = mat4( 0.0 );\n\tskinMatrix += skinWeight.x * boneMatX;\n\tskinMatrix += skinWeight.y * boneMatY;\n\tskinMatrix += skinWeight.z * boneMatZ;\n\tskinMatrix += skinWeight.w * boneMatW;\n\tskinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;\n\tobjectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;\n\t#ifdef USE_TANGENT\n\t\tobjectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz;\n\t#endif\n#endif",specularmap_fragment:"float specularStrength;\n#ifdef USE_SPECULARMAP\n\tvec4 texelSpecular = texture2D( specularMap, vSpecularMapUv );\n\tspecularStrength = texelSpecular.r;\n#else\n\tspecularStrength = 1.0;\n#endif",specularmap_pars_fragment:"#ifdef USE_SPECULARMAP\n\tuniform sampler2D specularMap;\n#endif",tonemapping_fragment:"#if defined( TONE_MAPPING )\n\tgl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\n#endif",tonemapping_pars_fragment:"#ifndef saturate\n#define saturate( a ) clamp( a, 0.0, 1.0 )\n#endif\nuniform float toneMappingExposure;\nvec3 LinearToneMapping( vec3 color ) {\n\treturn saturate( toneMappingExposure * color );\n}\nvec3 ReinhardToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\treturn saturate( color / ( vec3( 1.0 ) + color ) );\n}\nvec3 OptimizedCineonToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\tcolor = max( vec3( 0.0 ), color - 0.004 );\n\treturn pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );\n}\nvec3 RRTAndODTFit( vec3 v ) {\n\tvec3 a = v * ( v + 0.0245786 ) - 0.000090537;\n\tvec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081;\n\treturn a / b;\n}\nvec3 ACESFilmicToneMapping( vec3 color ) {\n\tconst mat3 ACESInputMat = mat3(\n\t\tvec3( 0.59719, 0.07600, 0.02840 ),\t\tvec3( 0.35458, 0.90834, 0.13383 ),\n\t\tvec3( 0.04823, 0.01566, 0.83777 )\n\t);\n\tconst mat3 ACESOutputMat = mat3(\n\t\tvec3( 1.60475, -0.10208, -0.00327 ),\t\tvec3( -0.53108, 1.10813, -0.07276 ),\n\t\tvec3( -0.07367, -0.00605, 1.07602 )\n\t);\n\tcolor *= toneMappingExposure / 0.6;\n\tcolor = ACESInputMat * color;\n\tcolor = RRTAndODTFit( color );\n\tcolor = ACESOutputMat * color;\n\treturn saturate( color );\n}\nvec3 CustomToneMapping( vec3 color ) { return color; }",transmission_fragment:"#ifdef USE_TRANSMISSION\n\tmaterial.transmission = transmission;\n\tmaterial.transmissionAlpha = 1.0;\n\tmaterial.thickness = thickness;\n\tmaterial.attenuationDistance = attenuationDistance;\n\tmaterial.attenuationColor = attenuationColor;\n\t#ifdef USE_TRANSMISSIONMAP\n\t\tmaterial.transmission *= texture2D( transmissionMap, vTransmissionMapUv ).r;\n\t#endif\n\t#ifdef USE_THICKNESSMAP\n\t\tmaterial.thickness *= texture2D( thicknessMap, vThicknessMapUv ).g;\n\t#endif\n\tvec3 pos = vWorldPosition;\n\tvec3 v = normalize( cameraPosition - pos );\n\tvec3 n = inverseTransformDirection( normal, viewMatrix );\n\tvec4 transmitted = getIBLVolumeRefraction(\n\t\tn, v, material.roughness, material.diffuseColor, material.specularColor, material.specularF90,\n\t\tpos, modelMatrix, viewMatrix, projectionMatrix, material.ior, material.thickness,\n\t\tmaterial.attenuationColor, material.attenuationDistance );\n\tmaterial.transmissionAlpha = mix( material.transmissionAlpha, transmitted.a, material.transmission );\n\ttotalDiffuse = mix( totalDiffuse, transmitted.rgb, material.transmission );\n#endif",transmission_pars_fragment:"#ifdef USE_TRANSMISSION\n\tuniform float transmission;\n\tuniform float thickness;\n\tuniform float attenuationDistance;\n\tuniform vec3 attenuationColor;\n\t#ifdef USE_TRANSMISSIONMAP\n\t\tuniform sampler2D transmissionMap;\n\t#endif\n\t#ifdef USE_THICKNESSMAP\n\t\tuniform sampler2D thicknessMap;\n\t#endif\n\tuniform vec2 transmissionSamplerSize;\n\tuniform sampler2D transmissionSamplerMap;\n\tuniform mat4 modelMatrix;\n\tuniform mat4 projectionMatrix;\n\tvarying vec3 vWorldPosition;\n\tfloat w0( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * ( a * ( - a + 3.0 ) - 3.0 ) + 1.0 );\n\t}\n\tfloat w1( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * a * ( 3.0 * a - 6.0 ) + 4.0 );\n\t}\n\tfloat w2( float a ){\n\t\treturn ( 1.0 / 6.0 ) * ( a * ( a * ( - 3.0 * a + 3.0 ) + 3.0 ) + 1.0 );\n\t}\n\tfloat w3( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * a * a );\n\t}\n\tfloat g0( float a ) {\n\t\treturn w0( a ) + w1( a );\n\t}\n\tfloat g1( float a ) {\n\t\treturn w2( a ) + w3( a );\n\t}\n\tfloat h0( float a ) {\n\t\treturn - 1.0 + w1( a ) / ( w0( a ) + w1( a ) );\n\t}\n\tfloat h1( float a ) {\n\t\treturn 1.0 + w3( a ) / ( w2( a ) + w3( a ) );\n\t}\n\tvec4 bicubic( sampler2D tex, vec2 uv, vec4 texelSize, float lod ) {\n\t\tuv = uv * texelSize.zw + 0.5;\n\t\tvec2 iuv = floor( uv );\n\t\tvec2 fuv = fract( uv );\n\t\tfloat g0x = g0( fuv.x );\n\t\tfloat g1x = g1( fuv.x );\n\t\tfloat h0x = h0( fuv.x );\n\t\tfloat h1x = h1( fuv.x );\n\t\tfloat h0y = h0( fuv.y );\n\t\tfloat h1y = h1( fuv.y );\n\t\tvec2 p0 = ( vec2( iuv.x + h0x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p1 = ( vec2( iuv.x + h1x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p2 = ( vec2( iuv.x + h0x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p3 = ( vec2( iuv.x + h1x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\n\t\treturn g0( fuv.y ) * ( g0x * textureLod( tex, p0, lod ) + g1x * textureLod( tex, p1, lod ) ) +\n\t\t\tg1( fuv.y ) * ( g0x * textureLod( tex, p2, lod ) + g1x * textureLod( tex, p3, lod ) );\n\t}\n\tvec4 textureBicubic( sampler2D sampler, vec2 uv, float lod ) {\n\t\tvec2 fLodSize = vec2( textureSize( sampler, int( lod ) ) );\n\t\tvec2 cLodSize = vec2( textureSize( sampler, int( lod + 1.0 ) ) );\n\t\tvec2 fLodSizeInv = 1.0 / fLodSize;\n\t\tvec2 cLodSizeInv = 1.0 / cLodSize;\n\t\tvec4 fSample = bicubic( sampler, uv, vec4( fLodSizeInv, fLodSize ), floor( lod ) );\n\t\tvec4 cSample = bicubic( sampler, uv, vec4( cLodSizeInv, cLodSize ), ceil( lod ) );\n\t\treturn mix( fSample, cSample, fract( lod ) );\n\t}\n\tvec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) {\n\t\tvec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior );\n\t\tvec3 modelScale;\n\t\tmodelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) );\n\t\tmodelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) );\n\t\tmodelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) );\n\t\treturn normalize( refractionVector ) * thickness * modelScale;\n\t}\n\tfloat applyIorToRoughness( const in float roughness, const in float ior ) {\n\t\treturn roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 );\n\t}\n\tvec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) {\n\t\tfloat lod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior );\n\t\treturn textureBicubic( transmissionSamplerMap, fragCoord.xy, lod );\n\t}\n\tvec3 volumeAttenuation( const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) {\n\t\tif ( isinf( attenuationDistance ) ) {\n\t\t\treturn vec3( 1.0 );\n\t\t} else {\n\t\t\tvec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance;\n\t\t\tvec3 transmittance = exp( - attenuationCoefficient * transmissionDistance );\t\t\treturn transmittance;\n\t\t}\n\t}\n\tvec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor,\n\t\tconst in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix,\n\t\tconst in mat4 viewMatrix, const in mat4 projMatrix, const in float ior, const in float thickness,\n\t\tconst in vec3 attenuationColor, const in float attenuationDistance ) {\n\t\tvec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix );\n\t\tvec3 refractedRayExit = position + transmissionRay;\n\t\tvec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );\n\t\tvec2 refractionCoords = ndcPos.xy / ndcPos.w;\n\t\trefractionCoords += 1.0;\n\t\trefractionCoords /= 2.0;\n\t\tvec4 transmittedLight = getTransmissionSample( refractionCoords, roughness, ior );\n\t\tvec3 transmittance = diffuseColor * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance );\n\t\tvec3 attenuatedColor = transmittance * transmittedLight.rgb;\n\t\tvec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness );\n\t\tfloat transmittanceFactor = ( transmittance.r + transmittance.g + transmittance.b ) / 3.0;\n\t\treturn vec4( ( 1.0 - F ) * attenuatedColor, 1.0 - ( 1.0 - transmittedLight.a ) * transmittanceFactor );\n\t}\n#endif",uv_pars_fragment:"#if defined( USE_UV ) || defined( USE_ANISOTROPY )\n\tvarying vec2 vUv;\n#endif\n#ifdef USE_MAP\n\tvarying vec2 vMapUv;\n#endif\n#ifdef USE_ALPHAMAP\n\tvarying vec2 vAlphaMapUv;\n#endif\n#ifdef USE_LIGHTMAP\n\tvarying vec2 vLightMapUv;\n#endif\n#ifdef USE_AOMAP\n\tvarying vec2 vAoMapUv;\n#endif\n#ifdef USE_BUMPMAP\n\tvarying vec2 vBumpMapUv;\n#endif\n#ifdef USE_NORMALMAP\n\tvarying vec2 vNormalMapUv;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tvarying vec2 vEmissiveMapUv;\n#endif\n#ifdef USE_METALNESSMAP\n\tvarying vec2 vMetalnessMapUv;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tvarying vec2 vRoughnessMapUv;\n#endif\n#ifdef USE_ANISOTROPYMAP\n\tvarying vec2 vAnisotropyMapUv;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tvarying vec2 vClearcoatMapUv;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tvarying vec2 vClearcoatNormalMapUv;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tvarying vec2 vClearcoatRoughnessMapUv;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tvarying vec2 vIridescenceMapUv;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tvarying vec2 vIridescenceThicknessMapUv;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tvarying vec2 vSheenColorMapUv;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tvarying vec2 vSheenRoughnessMapUv;\n#endif\n#ifdef USE_SPECULARMAP\n\tvarying vec2 vSpecularMapUv;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tvarying vec2 vSpecularColorMapUv;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tvarying vec2 vSpecularIntensityMapUv;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tuniform mat3 transmissionMapTransform;\n\tvarying vec2 vTransmissionMapUv;\n#endif\n#ifdef USE_THICKNESSMAP\n\tuniform mat3 thicknessMapTransform;\n\tvarying vec2 vThicknessMapUv;\n#endif",uv_pars_vertex:"#if defined( USE_UV ) || defined( USE_ANISOTROPY )\n\tvarying vec2 vUv;\n#endif\n#ifdef USE_MAP\n\tuniform mat3 mapTransform;\n\tvarying vec2 vMapUv;\n#endif\n#ifdef USE_ALPHAMAP\n\tuniform mat3 alphaMapTransform;\n\tvarying vec2 vAlphaMapUv;\n#endif\n#ifdef USE_LIGHTMAP\n\tuniform mat3 lightMapTransform;\n\tvarying vec2 vLightMapUv;\n#endif\n#ifdef USE_AOMAP\n\tuniform mat3 aoMapTransform;\n\tvarying vec2 vAoMapUv;\n#endif\n#ifdef USE_BUMPMAP\n\tuniform mat3 bumpMapTransform;\n\tvarying vec2 vBumpMapUv;\n#endif\n#ifdef USE_NORMALMAP\n\tuniform mat3 normalMapTransform;\n\tvarying vec2 vNormalMapUv;\n#endif\n#ifdef USE_DISPLACEMENTMAP\n\tuniform mat3 displacementMapTransform;\n\tvarying vec2 vDisplacementMapUv;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tuniform mat3 emissiveMapTransform;\n\tvarying vec2 vEmissiveMapUv;\n#endif\n#ifdef USE_METALNESSMAP\n\tuniform mat3 metalnessMapTransform;\n\tvarying vec2 vMetalnessMapUv;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tuniform mat3 roughnessMapTransform;\n\tvarying vec2 vRoughnessMapUv;\n#endif\n#ifdef USE_ANISOTROPYMAP\n\tuniform mat3 anisotropyMapTransform;\n\tvarying vec2 vAnisotropyMapUv;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tuniform mat3 clearcoatMapTransform;\n\tvarying vec2 vClearcoatMapUv;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tuniform mat3 clearcoatNormalMapTransform;\n\tvarying vec2 vClearcoatNormalMapUv;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tuniform mat3 clearcoatRoughnessMapTransform;\n\tvarying vec2 vClearcoatRoughnessMapUv;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tuniform mat3 sheenColorMapTransform;\n\tvarying vec2 vSheenColorMapUv;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tuniform mat3 sheenRoughnessMapTransform;\n\tvarying vec2 vSheenRoughnessMapUv;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tuniform mat3 iridescenceMapTransform;\n\tvarying vec2 vIridescenceMapUv;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tuniform mat3 iridescenceThicknessMapTransform;\n\tvarying vec2 vIridescenceThicknessMapUv;\n#endif\n#ifdef USE_SPECULARMAP\n\tuniform mat3 specularMapTransform;\n\tvarying vec2 vSpecularMapUv;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tuniform mat3 specularColorMapTransform;\n\tvarying vec2 vSpecularColorMapUv;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tuniform mat3 specularIntensityMapTransform;\n\tvarying vec2 vSpecularIntensityMapUv;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tuniform mat3 transmissionMapTransform;\n\tvarying vec2 vTransmissionMapUv;\n#endif\n#ifdef USE_THICKNESSMAP\n\tuniform mat3 thicknessMapTransform;\n\tvarying vec2 vThicknessMapUv;\n#endif",uv_vertex:"#if defined( USE_UV ) || defined( USE_ANISOTROPY )\n\tvUv = vec3( uv, 1 ).xy;\n#endif\n#ifdef USE_MAP\n\tvMapUv = ( mapTransform * vec3( MAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ALPHAMAP\n\tvAlphaMapUv = ( alphaMapTransform * vec3( ALPHAMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_LIGHTMAP\n\tvLightMapUv = ( lightMapTransform * vec3( LIGHTMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_AOMAP\n\tvAoMapUv = ( aoMapTransform * vec3( AOMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_BUMPMAP\n\tvBumpMapUv = ( bumpMapTransform * vec3( BUMPMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_NORMALMAP\n\tvNormalMapUv = ( normalMapTransform * vec3( NORMALMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_DISPLACEMENTMAP\n\tvDisplacementMapUv = ( displacementMapTransform * vec3( DISPLACEMENTMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tvEmissiveMapUv = ( emissiveMapTransform * vec3( EMISSIVEMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_METALNESSMAP\n\tvMetalnessMapUv = ( metalnessMapTransform * vec3( METALNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tvRoughnessMapUv = ( roughnessMapTransform * vec3( ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ANISOTROPYMAP\n\tvAnisotropyMapUv = ( anisotropyMapTransform * vec3( ANISOTROPYMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tvClearcoatMapUv = ( clearcoatMapTransform * vec3( CLEARCOATMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tvClearcoatNormalMapUv = ( clearcoatNormalMapTransform * vec3( CLEARCOAT_NORMALMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tvClearcoatRoughnessMapUv = ( clearcoatRoughnessMapTransform * vec3( CLEARCOAT_ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tvIridescenceMapUv = ( iridescenceMapTransform * vec3( IRIDESCENCEMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tvIridescenceThicknessMapUv = ( iridescenceThicknessMapTransform * vec3( IRIDESCENCE_THICKNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tvSheenColorMapUv = ( sheenColorMapTransform * vec3( SHEEN_COLORMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tvSheenRoughnessMapUv = ( sheenRoughnessMapTransform * vec3( SHEEN_ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULARMAP\n\tvSpecularMapUv = ( specularMapTransform * vec3( SPECULARMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tvSpecularColorMapUv = ( specularColorMapTransform * vec3( SPECULAR_COLORMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tvSpecularIntensityMapUv = ( specularIntensityMapTransform * vec3( SPECULAR_INTENSITYMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tvTransmissionMapUv = ( transmissionMapTransform * vec3( TRANSMISSIONMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_THICKNESSMAP\n\tvThicknessMapUv = ( thicknessMapTransform * vec3( THICKNESSMAP_UV, 1 ) ).xy;\n#endif",worldpos_vertex:"#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION ) || NUM_SPOT_LIGHT_COORDS > 0\n\tvec4 worldPosition = vec4( transformed, 1.0 );\n\t#ifdef USE_INSTANCING\n\t\tworldPosition = instanceMatrix * worldPosition;\n\t#endif\n\tworldPosition = modelMatrix * worldPosition;\n#endif",background_vert:"varying vec2 vUv;\nuniform mat3 uvTransform;\nvoid main() {\n\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n\tgl_Position = vec4( position.xy, 1.0, 1.0 );\n}",background_frag:"uniform sampler2D t2D;\nuniform float backgroundIntensity;\nvarying vec2 vUv;\nvoid main() {\n\tvec4 texColor = texture2D( t2D, vUv );\n\t#ifdef DECODE_VIDEO_TEXTURE\n\t\ttexColor = vec4( mix( pow( texColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), texColor.rgb * 0.0773993808, vec3( lessThanEqual( texColor.rgb, vec3( 0.04045 ) ) ) ), texColor.w );\n\t#endif\n\ttexColor.rgb *= backgroundIntensity;\n\tgl_FragColor = texColor;\n\t#include \n\t#include \n}",backgroundCube_vert:"varying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n\tgl_Position.z = gl_Position.w;\n}",backgroundCube_frag:"#ifdef ENVMAP_TYPE_CUBE\n\tuniform samplerCube envMap;\n#elif defined( ENVMAP_TYPE_CUBE_UV )\n\tuniform sampler2D envMap;\n#endif\nuniform float flipEnvMap;\nuniform float backgroundBlurriness;\nuniform float backgroundIntensity;\nvarying vec3 vWorldDirection;\n#include \nvoid main() {\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tvec4 texColor = textureCube( envMap, vec3( flipEnvMap * vWorldDirection.x, vWorldDirection.yz ) );\n\t#elif defined( ENVMAP_TYPE_CUBE_UV )\n\t\tvec4 texColor = textureCubeUV( envMap, vWorldDirection, backgroundBlurriness );\n\t#else\n\t\tvec4 texColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\t#endif\n\ttexColor.rgb *= backgroundIntensity;\n\tgl_FragColor = texColor;\n\t#include \n\t#include \n}",cube_vert:"varying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n\tgl_Position.z = gl_Position.w;\n}",cube_frag:"uniform samplerCube tCube;\nuniform float tFlip;\nuniform float opacity;\nvarying vec3 vWorldDirection;\nvoid main() {\n\tvec4 texColor = textureCube( tCube, vec3( tFlip * vWorldDirection.x, vWorldDirection.yz ) );\n\tgl_FragColor = texColor;\n\tgl_FragColor.a *= opacity;\n\t#include \n\t#include \n}",depth_vert:"#include \n#include \n#include \n#include \n#include \n#include \n#include \nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include \n\t#include \n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvHighPrecisionZW = gl_Position.zw;\n}",depth_frag:"#if DEPTH_PACKING == 3200\n\tuniform float opacity;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( 1.0 );\n\t#if DEPTH_PACKING == 3200\n\t\tdiffuseColor.a = opacity;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tfloat fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;\n\t#if DEPTH_PACKING == 3200\n\t\tgl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );\n\t#elif DEPTH_PACKING == 3201\n\t\tgl_FragColor = packDepthToRGBA( fragCoordZ );\n\t#endif\n}",distanceRGBA_vert:"#define DISTANCE\nvarying vec3 vWorldPosition;\n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvWorldPosition = worldPosition.xyz;\n}",distanceRGBA_frag:"#define DISTANCE\nuniform vec3 referencePosition;\nuniform float nearDistance;\nuniform float farDistance;\nvarying vec3 vWorldPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main () {\n\t#include \n\tvec4 diffuseColor = vec4( 1.0 );\n\t#include \n\t#include \n\t#include \n\t#include \n\tfloat dist = length( vWorldPosition - referencePosition );\n\tdist = ( dist - nearDistance ) / ( farDistance - nearDistance );\n\tdist = saturate( dist );\n\tgl_FragColor = packDepthToRGBA( dist );\n}",equirect_vert:"varying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n}",equirect_frag:"uniform sampler2D tEquirect;\nvarying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvec3 direction = normalize( vWorldDirection );\n\tvec2 sampleUV = equirectUv( direction );\n\tgl_FragColor = texture2D( tEquirect, sampleUV );\n\t#include \n\t#include \n}",linedashed_vert:"uniform float scale;\nattribute float lineDistance;\nvarying float vLineDistance;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\tvLineDistance = scale * lineDistance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",linedashed_frag:"uniform vec3 diffuse;\nuniform float opacity;\nuniform float dashSize;\nuniform float totalSize;\nvarying float vLineDistance;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tif ( mod( vLineDistance, totalSize ) > dashSize ) {\n\t\tdiscard;\n\t}\n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshbasic_vert:"#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#if defined ( USE_ENVMAP ) || defined ( USE_SKINNING )\n\t\t#include \n\t\t#include \n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshbasic_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n\t\treflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity * RECIPROCAL_PI;\n\t#else\n\t\treflectedLight.indirectDiffuse += vec3( 1.0 );\n\t#endif\n\t#include \n\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\n\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshlambert_vert:"#define LAMBERT\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n\t#include \n}",meshlambert_frag:"#define LAMBERT\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshmatcap_vert:"#define MATCAP\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n}",meshmatcap_frag:"#define MATCAP\nuniform vec3 diffuse;\nuniform float opacity;\nuniform sampler2D matcap;\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 viewDir = normalize( vViewPosition );\n\tvec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) );\n\tvec3 y = cross( viewDir, x );\n\tvec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5;\n\t#ifdef USE_MATCAP\n\t\tvec4 matcapColor = texture2D( matcap, uv );\n\t#else\n\t\tvec4 matcapColor = vec4( vec3( mix( 0.2, 0.8, uv.y ) ), 1.0 );\n\t#endif\n\tvec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshnormal_vert:"#define NORMAL\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\n\tvarying vec3 vViewPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\n\tvViewPosition = - mvPosition.xyz;\n#endif\n}",meshnormal_frag:"#define NORMAL\nuniform float opacity;\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\n\tvarying vec3 vViewPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\tgl_FragColor = vec4( packNormalToRGB( normal ), opacity );\n\t#ifdef OPAQUE\n\t\tgl_FragColor.a = 1.0;\n\t#endif\n}",meshphong_vert:"#define PHONG\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n\t#include \n}",meshphong_frag:"#define PHONG\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform vec3 specular;\nuniform float shininess;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshphysical_vert:"#define STANDARD\nvarying vec3 vViewPosition;\n#ifdef USE_TRANSMISSION\n\tvarying vec3 vWorldPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n#ifdef USE_TRANSMISSION\n\tvWorldPosition = worldPosition.xyz;\n#endif\n}",meshphysical_frag:"#define STANDARD\n#ifdef PHYSICAL\n\t#define IOR\n\t#define USE_SPECULAR\n#endif\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float roughness;\nuniform float metalness;\nuniform float opacity;\n#ifdef IOR\n\tuniform float ior;\n#endif\n#ifdef USE_SPECULAR\n\tuniform float specularIntensity;\n\tuniform vec3 specularColor;\n\t#ifdef USE_SPECULAR_COLORMAP\n\t\tuniform sampler2D specularColorMap;\n\t#endif\n\t#ifdef USE_SPECULAR_INTENSITYMAP\n\t\tuniform sampler2D specularIntensityMap;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT\n\tuniform float clearcoat;\n\tuniform float clearcoatRoughness;\n#endif\n#ifdef USE_IRIDESCENCE\n\tuniform float iridescence;\n\tuniform float iridescenceIOR;\n\tuniform float iridescenceThicknessMinimum;\n\tuniform float iridescenceThicknessMaximum;\n#endif\n#ifdef USE_SHEEN\n\tuniform vec3 sheenColor;\n\tuniform float sheenRoughness;\n\t#ifdef USE_SHEEN_COLORMAP\n\t\tuniform sampler2D sheenColorMap;\n\t#endif\n\t#ifdef USE_SHEEN_ROUGHNESSMAP\n\t\tuniform sampler2D sheenRoughnessMap;\n\t#endif\n#endif\n#ifdef USE_ANISOTROPY\n\tuniform vec2 anisotropyVector;\n\t#ifdef USE_ANISOTROPYMAP\n\t\tuniform sampler2D anisotropyMap;\n\t#endif\n#endif\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;\n\tvec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;\n\t#include \n\tvec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;\n\t#ifdef USE_SHEEN\n\t\tfloat sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor );\n\t\toutgoingLight = outgoingLight * sheenEnergyComp + sheenSpecularDirect + sheenSpecularIndirect;\n\t#endif\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNVcc = saturate( dot( geometryClearcoatNormal, geometryViewDir ) );\n\t\tvec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );\n\t\toutgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + ( clearcoatSpecularDirect + clearcoatSpecularIndirect ) * material.clearcoat;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshtoon_vert:"#define TOON\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n}",meshtoon_frag:"#define TOON\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",points_vert:"uniform float size;\nuniform float scale;\n#include \n#include \n#include \n#include \n#include \n#include \n#ifdef USE_POINTS_UV\n\tvarying vec2 vUv;\n\tuniform mat3 uvTransform;\n#endif\nvoid main() {\n\t#ifdef USE_POINTS_UV\n\t\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tgl_PointSize = size;\n\t#ifdef USE_SIZEATTENUATION\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\n\t\tif ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z );\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n}",points_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",shadow_vert:"#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",shadow_frag:"uniform vec3 color;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tgl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) );\n\t#include \n\t#include \n\t#include \n}",sprite_vert:"uniform float rotation;\nuniform vec2 center;\n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );\n\tvec2 scale;\n\tscale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) );\n\tscale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) );\n\t#ifndef USE_SIZEATTENUATION\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\n\t\tif ( isPerspective ) scale *= - mvPosition.z;\n\t#endif\n\tvec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale;\n\tvec2 rotatedPosition;\n\trotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;\n\trotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;\n\tmvPosition.xy += rotatedPosition;\n\tgl_Position = projectionMatrix * mvPosition;\n\t#include \n\t#include \n\t#include \n}",sprite_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n}"},ds={common:{diffuse:{value:new Os(16777215)},opacity:{value:1},map:{value:null},mapTransform:{value:new zo},alphaMap:{value:null},alphaMapTransform:{value:new zo},alphaTest:{value:0}},specularmap:{specularMap:{value:null},specularMapTransform:{value:new zo}},envmap:{envMap:{value:null},flipEnvMap:{value:-1},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1},aoMapTransform:{value:new zo}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1},lightMapTransform:{value:new zo}},bumpmap:{bumpMap:{value:null},bumpMapTransform:{value:new zo},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalMapTransform:{value:new zo},normalScale:{value:new Ui(1,1)}},displacementmap:{displacementMap:{value:null},displacementMapTransform:{value:new zo},displacementScale:{value:1},displacementBias:{value:0}},emissivemap:{emissiveMap:{value:null},emissiveMapTransform:{value:new zo}},metalnessmap:{metalnessMap:{value:null},metalnessMapTransform:{value:new zo}},roughnessmap:{roughnessMap:{value:null},roughnessMapTransform:{value:new zo}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new Os(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotLightMap:{value:[]},spotShadowMap:{value:[]},spotLightMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null}},points:{diffuse:{value:new Os(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaMapTransform:{value:new zo},alphaTest:{value:0},uvTransform:{value:new zo}},sprite:{diffuse:{value:new Os(16777215)},opacity:{value:1},center:{value:new Ui(.5,.5)},rotation:{value:0},map:{value:null},mapTransform:{value:new zo},alphaMap:{value:null},alphaMapTransform:{value:new zo},alphaTest:{value:0}}},mu={basic:{uniforms:Ia([ds.common,ds.specularmap,ds.envmap,ds.aomap,ds.lightmap,ds.fog]),vertexShader:Ko.meshbasic_vert,fragmentShader:Ko.meshbasic_frag},lambert:{uniforms:Ia([ds.common,ds.specularmap,ds.envmap,ds.aomap,ds.lightmap,ds.emissivemap,ds.bumpmap,ds.normalmap,ds.displacementmap,ds.fog,ds.lights,{emissive:{value:new Os(0)}}]),vertexShader:Ko.meshlambert_vert,fragmentShader:Ko.meshlambert_frag},phong:{uniforms:Ia([ds.common,ds.specularmap,ds.envmap,ds.aomap,ds.lightmap,ds.emissivemap,ds.bumpmap,ds.normalmap,ds.displacementmap,ds.fog,ds.lights,{emissive:{value:new Os(0)},specular:{value:new Os(1118481)},shininess:{value:30}}]),vertexShader:Ko.meshphong_vert,fragmentShader:Ko.meshphong_frag},standard:{uniforms:Ia([ds.common,ds.envmap,ds.aomap,ds.lightmap,ds.emissivemap,ds.bumpmap,ds.normalmap,ds.displacementmap,ds.roughnessmap,ds.metalnessmap,ds.fog,ds.lights,{emissive:{value:new Os(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:Ko.meshphysical_vert,fragmentShader:Ko.meshphysical_frag},toon:{uniforms:Ia([ds.common,ds.aomap,ds.lightmap,ds.emissivemap,ds.bumpmap,ds.normalmap,ds.displacementmap,ds.gradientmap,ds.fog,ds.lights,{emissive:{value:new Os(0)}}]),vertexShader:Ko.meshtoon_vert,fragmentShader:Ko.meshtoon_frag},matcap:{uniforms:Ia([ds.common,ds.bumpmap,ds.normalmap,ds.displacementmap,ds.fog,{matcap:{value:null}}]),vertexShader:Ko.meshmatcap_vert,fragmentShader:Ko.meshmatcap_frag},points:{uniforms:Ia([ds.points,ds.fog]),vertexShader:Ko.points_vert,fragmentShader:Ko.points_frag},dashed:{uniforms:Ia([ds.common,ds.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:Ko.linedashed_vert,fragmentShader:Ko.linedashed_frag},depth:{uniforms:Ia([ds.common,ds.displacementmap]),vertexShader:Ko.depth_vert,fragmentShader:Ko.depth_frag},normal:{uniforms:Ia([ds.common,ds.bumpmap,ds.normalmap,ds.displacementmap,{opacity:{value:1}}]),vertexShader:Ko.meshnormal_vert,fragmentShader:Ko.meshnormal_frag},sprite:{uniforms:Ia([ds.sprite,ds.fog]),vertexShader:Ko.sprite_vert,fragmentShader:Ko.sprite_frag},background:{uniforms:{uvTransform:{value:new zo},t2D:{value:null},backgroundIntensity:{value:1}},vertexShader:Ko.background_vert,fragmentShader:Ko.background_frag},backgroundCube:{uniforms:{envMap:{value:null},flipEnvMap:{value:-1},backgroundBlurriness:{value:0},backgroundIntensity:{value:1}},vertexShader:Ko.backgroundCube_vert,fragmentShader:Ko.backgroundCube_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:Ko.cube_vert,fragmentShader:Ko.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:Ko.equirect_vert,fragmentShader:Ko.equirect_frag},distanceRGBA:{uniforms:Ia([ds.common,ds.displacementmap,{referencePosition:{value:new Ft},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:Ko.distanceRGBA_vert,fragmentShader:Ko.distanceRGBA_frag},shadow:{uniforms:Ia([ds.lights,ds.fog,{color:{value:new Os(0)},opacity:{value:1}}]),vertexShader:Ko.shadow_vert,fragmentShader:Ko.shadow_frag}};mu.physical={uniforms:Ia([mu.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatMapTransform:{value:new zo},clearcoatNormalMap:{value:null},clearcoatNormalMapTransform:{value:new zo},clearcoatNormalScale:{value:new Ui(1,1)},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatRoughnessMapTransform:{value:new zo},iridescence:{value:0},iridescenceMap:{value:null},iridescenceMapTransform:{value:new zo},iridescenceIOR:{value:1.3},iridescenceThicknessMinimum:{value:100},iridescenceThicknessMaximum:{value:400},iridescenceThicknessMap:{value:null},iridescenceThicknessMapTransform:{value:new zo},sheen:{value:0},sheenColor:{value:new Os(0)},sheenColorMap:{value:null},sheenColorMapTransform:{value:new zo},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},sheenRoughnessMapTransform:{value:new zo},transmission:{value:0},transmissionMap:{value:null},transmissionMapTransform:{value:new zo},transmissionSamplerSize:{value:new Ui},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},thicknessMapTransform:{value:new zo},attenuationDistance:{value:0},attenuationColor:{value:new Os(0)},specularColor:{value:new Os(1,1,1)},specularColorMap:{value:null},specularColorMapTransform:{value:new zo},specularIntensity:{value:1},specularIntensityMap:{value:null},specularIntensityMapTransform:{value:new zo},anisotropyVector:{value:new Ui},anisotropyMap:{value:null},anisotropyMapTransform:{value:new zo}}]),vertexShader:Ko.meshphysical_vert,fragmentShader:Ko.meshphysical_frag};const Hm={r:0,b:0,g:0};function U1(w,a,c,u,m,M,N){const q=new Os(0);let pe,xe,de=!0===M?0:1,Ie=null,Be=0,Le=null;function ft(Qe,ze){Qe.getRGB(Hm,Fc(w)),u.buffers.color.setClear(Hm.r,Hm.g,Hm.b,ze,N)}return{getClearColor:function(){return q},setClearColor:function(Qe,ze=1){q.set(Qe),de=ze,ft(q,de)},getClearAlpha:function(){return de},setClearAlpha:function(Qe){de=Qe,ft(q,de)},render:function Ke(Qe,ze){let Ct=!1,ct=!0===ze.isScene?ze.background:null;ct&&ct.isTexture&&(ct=(ze.backgroundBlurriness>0?c:a).get(ct)),null===ct?ft(q,de):ct&&ct.isColor&&(ft(ct,1),Ct=!0);const Dt=w.xr.getEnvironmentBlendMode();"additive"===Dt?u.buffers.color.setClear(0,0,0,1,N):"alpha-blend"===Dt&&u.buffers.color.setClear(0,0,0,0,N),(w.autoClear||Ct)&&w.clear(w.autoClearColor,w.autoClearDepth,w.autoClearStencil),ct&&(ct.isCubeTexture||ct.mapping===Sn)?(void 0===xe&&(xe=new Jc(new Cu(1,1,1),new zl({name:"BackgroundCubeMaterial",uniforms:cs(mu.backgroundCube.uniforms),vertexShader:mu.backgroundCube.vertexShader,fragmentShader:mu.backgroundCube.fragmentShader,side:1,depthTest:!1,depthWrite:!1,fog:!1})),xe.geometry.deleteAttribute("normal"),xe.geometry.deleteAttribute("uv"),xe.onBeforeRender=function(Jt,ln,rn){this.matrixWorld.copyPosition(rn.matrixWorld)},Object.defineProperty(xe.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),m.update(xe)),xe.material.uniforms.envMap.value=ct,xe.material.uniforms.flipEnvMap.value=ct.isCubeTexture&&!1===ct.isRenderTargetTexture?-1:1,xe.material.uniforms.backgroundBlurriness.value=ze.backgroundBlurriness,xe.material.uniforms.backgroundIntensity.value=ze.backgroundIntensity,xe.material.toneMapped=Ya.getTransfer(ct.colorSpace)!==$o,(Ie!==ct||Be!==ct.version||Le!==w.toneMapping)&&(xe.material.needsUpdate=!0,Ie=ct,Be=ct.version,Le=w.toneMapping),xe.layers.enableAll(),Qe.unshift(xe,xe.geometry,xe.material,0,0,null)):ct&&ct.isTexture&&(void 0===pe&&(pe=new Jc(new sf(2,2),new zl({name:"BackgroundMaterial",uniforms:cs(mu.background.uniforms),vertexShader:mu.background.vertexShader,fragmentShader:mu.background.fragmentShader,side:F,depthTest:!1,depthWrite:!1,fog:!1})),pe.geometry.deleteAttribute("normal"),Object.defineProperty(pe.material,"map",{get:function(){return this.uniforms.t2D.value}}),m.update(pe)),pe.material.uniforms.t2D.value=ct,pe.material.uniforms.backgroundIntensity.value=ze.backgroundIntensity,pe.material.toneMapped=Ya.getTransfer(ct.colorSpace)!==$o,!0===ct.matrixAutoUpdate&&ct.updateMatrix(),pe.material.uniforms.uvTransform.value.copy(ct.matrix),(Ie!==ct||Be!==ct.version||Le!==w.toneMapping)&&(pe.material.needsUpdate=!0,Ie=ct,Be=ct.version,Le=w.toneMapping),pe.layers.enableAll(),Qe.unshift(pe,pe.geometry,pe.material,0,0,null))}}}function z1(w,a,c,u){const m=w.getParameter(w.MAX_VERTEX_ATTRIBS),M=u.isWebGL2?null:a.get("OES_vertex_array_object"),N=u.isWebGL2||null!==M,q={},de=Qe(null);let pe=de,xe=!1;function Le(Yn){return u.isWebGL2?w.bindVertexArray(Yn):M.bindVertexArrayOES(Yn)}function Ke(Yn){return u.isWebGL2?w.deleteVertexArray(Yn):M.deleteVertexArrayOES(Yn)}function Qe(Yn){const Di=[],rr=[],Oi=[];for(let br=0;br=0){const xs=br[sr];let Ds=Ji[sr];if(void 0===Ds&&("instanceMatrix"===sr&&Yn.instanceMatrix&&(Ds=Yn.instanceMatrix),"instanceColor"===sr&&Yn.instanceColor&&(Ds=Yn.instanceColor)),void 0===xs||xs.attribute!==Ds||Ds&&xs.data!==Ds.data)return!0;lr++}return pe.attributesNum!==lr||pe.index!==Oi}(Yn,Oi,rr,br),Ji&&function Ct(Yn,Di,rr,Oi){const br={},Ji=Di.attributes;let lr=0;const ei=rr.getAttributes();for(const sr in ei)if(ei[sr].location>=0){let xs=Ji[sr];void 0===xs&&("instanceMatrix"===sr&&Yn.instanceMatrix&&(xs=Yn.instanceMatrix),"instanceColor"===sr&&Yn.instanceColor&&(xs=Yn.instanceColor));const Ds={};Ds.attribute=xs,xs&&xs.data&&(Ds.data=xs.data),br[sr]=Ds,lr++}pe.attributes=br,pe.attributesNum=lr,pe.index=Oi}(Yn,Oi,rr,br)}else{const lr=!0===Di.wireframe;(pe.geometry!==Oi.id||pe.program!==rr.id||pe.wireframe!==lr)&&(pe.geometry=Oi.id,pe.program=rr.id,pe.wireframe=lr,Ji=!0)}null!==br&&c.update(br,w.ELEMENT_ARRAY_BUFFER),(Ji||xe)&&(xe=!1,function Rn(Yn,Di,rr,Oi){if(!1===u.isWebGL2&&(Yn.isInstancedMesh||Oi.isInstancedBufferGeometry)&&null===a.get("ANGLE_instanced_arrays"))return;ct();const br=Oi.attributes,Ji=rr.getAttributes(),lr=Di.defaultAttributeValues;for(const ei in Ji){const sr=Ji[ei];if(sr.location>=0){let as=br[ei];if(void 0===as&&("instanceMatrix"===ei&&Yn.instanceMatrix&&(as=Yn.instanceMatrix),"instanceColor"===ei&&Yn.instanceColor&&(as=Yn.instanceColor)),void 0!==as){const xs=as.normalized,Ds=as.itemSize,fs=c.get(as);if(void 0===fs)continue;const eo=fs.buffer,er=fs.type,Or=fs.bytesPerElement,yr=!0===u.isWebGL2&&(er===w.INT||er===w.UNSIGNED_INT||1013===as.gpuType);if(as.isInterleavedBufferAttribute){const vr=as.data,_n=vr.stride,Ki=as.offset;if(vr.isInstancedInterleavedBuffer){for(let si=0;si0&&w.getShaderPrecisionFormat(w.FRAGMENT_SHADER,w.HIGH_FLOAT).precision>0)return"highp";rn="mediump"}return"mediump"===rn&&w.getShaderPrecisionFormat(w.VERTEX_SHADER,w.MEDIUM_FLOAT).precision>0&&w.getShaderPrecisionFormat(w.FRAGMENT_SHADER,w.MEDIUM_FLOAT).precision>0?"mediump":"lowp"}const N=typeof WebGL2RenderingContext<"u"&&"WebGL2RenderingContext"===w.constructor.name;let q=void 0!==c.precision?c.precision:"highp";const de=M(q);de!==q&&(console.warn("THREE.WebGLRenderer:",q,"not supported, using",de,"instead."),q=de);const pe=N||a.has("WEBGL_draw_buffers"),xe=!0===c.logarithmicDepthBuffer,Ie=w.getParameter(w.MAX_TEXTURE_IMAGE_UNITS),Be=w.getParameter(w.MAX_VERTEX_TEXTURE_IMAGE_UNITS),Le=w.getParameter(w.MAX_TEXTURE_SIZE),Ke=w.getParameter(w.MAX_CUBE_MAP_TEXTURE_SIZE),ft=w.getParameter(w.MAX_VERTEX_ATTRIBS),Qe=w.getParameter(w.MAX_VERTEX_UNIFORM_VECTORS),ze=w.getParameter(w.MAX_VARYING_VECTORS),Ct=w.getParameter(w.MAX_FRAGMENT_UNIFORM_VECTORS),ct=Be>0,Dt=N||a.has("OES_texture_float");return{isWebGL2:N,drawBuffers:pe,getMaxAnisotropy:function m(){if(void 0!==u)return u;if(!0===a.has("EXT_texture_filter_anisotropic")){const rn=a.get("EXT_texture_filter_anisotropic");u=w.getParameter(rn.MAX_TEXTURE_MAX_ANISOTROPY_EXT)}else u=0;return u},getMaxPrecision:M,precision:q,logarithmicDepthBuffer:xe,maxTextures:Ie,maxVertexTextures:Be,maxTextureSize:Le,maxCubemapSize:Ke,maxAttributes:ft,maxVertexUniforms:Qe,maxVaryings:ze,maxFragmentUniforms:Ct,vertexTextures:ct,floatFragmentTextures:Dt,floatVertexTextures:ct&&Dt,maxSamples:N?w.getParameter(w.MAX_SAMPLES):0}}function bv(w){const a=this;let c=null,u=0,m=!1,M=!1;const N=new nu,q=new zo,de={value:null,needsUpdate:!1};function xe(Ie,Be,Le,Ke){const ft=null!==Ie?Ie.length:0;let Qe=null;if(0!==ft){if(Qe=de.value,!0!==Ke||null===Qe){const ze=Le+4*ft,Ct=Be.matrixWorldInverse;q.getNormalMatrix(Ct),(null===Qe||Qe.length0),a.numPlanes=u,a.numIntersection=0}();else{const Ct=M?0:u,ct=4*Ct;let Dt=ze.clippingState||null;de.value=Dt,Dt=xe(Ke,Be,ct,Le);for(let Jt=0;Jt!==ct;++Jt)Dt[Jt]=c[Jt];ze.clippingState=Dt,this.numIntersection=ft?this.numPlanes:0,this.numPlanes+=Ct}}}class sp extends Rl{constructor(){super(),this.isCamera=!0,this.type="Camera",this.matrixWorldInverse=new bo,this.projectionMatrix=new bo,this.projectionMatrixInverse=new bo,this.coordinateSystem=Dd}copy(a,c){return super.copy(a,c),this.matrixWorldInverse.copy(a.matrixWorldInverse),this.projectionMatrix.copy(a.projectionMatrix),this.projectionMatrixInverse.copy(a.projectionMatrixInverse),this.coordinateSystem=a.coordinateSystem,this}getWorldDirection(a){return super.getWorldDirection(a).negate()}updateMatrixWorld(a){super.updateMatrixWorld(a),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(a,c){super.updateWorldMatrix(a,c),this.matrixWorldInverse.copy(this.matrixWorld).invert()}clone(){return(new this.constructor).copy(this)}}class Vl extends sp{constructor(a=50,c=1,u=.1,m=2e3){super(),this.isPerspectiveCamera=!0,this.type="PerspectiveCamera",this.fov=a,this.zoom=1,this.near=u,this.far=m,this.focus=10,this.aspect=c,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}copy(a,c){return super.copy(a,c),this.fov=a.fov,this.zoom=a.zoom,this.near=a.near,this.far=a.far,this.focus=a.focus,this.aspect=a.aspect,this.view=null===a.view?null:Object.assign({},a.view),this.filmGauge=a.filmGauge,this.filmOffset=a.filmOffset,this}setFocalLength(a){const c=.5*this.getFilmHeight()/a;this.fov=2*pd*Math.atan(c),this.updateProjectionMatrix()}getFocalLength(){const a=Math.tan(.5*$d*this.fov);return.5*this.getFilmHeight()/a}getEffectiveFOV(){return 2*pd*Math.atan(Math.tan(.5*$d*this.fov)/this.zoom)}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1)}getFilmHeight(){return this.filmGauge/Math.max(this.aspect,1)}setViewOffset(a,c,u,m,M,N){this.aspect=a/c,null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=a,this.view.fullHeight=c,this.view.offsetX=u,this.view.offsetY=m,this.view.width=M,this.view.height=N,this.updateProjectionMatrix()}clearViewOffset(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const a=this.near;let c=a*Math.tan(.5*$d*this.fov)/this.zoom,u=2*c,m=this.aspect*u,M=-.5*m;const N=this.view;if(null!==this.view&&this.view.enabled){const de=N.fullWidth,pe=N.fullHeight;M+=N.offsetX*m/de,c-=N.offsetY*u/pe,m*=N.width/de,u*=N.height/pe}const q=this.filmOffset;0!==q&&(M+=a*q/this.getFilmWidth()),this.projectionMatrix.makePerspective(M,M+m,c,c-u,a,this.far,this.coordinateSystem),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(a){const c=super.toJSON(a);return c.object.fov=this.fov,c.object.zoom=this.zoom,c.object.near=this.near,c.object.far=this.far,c.object.focus=this.focus,c.object.aspect=this.aspect,null!==this.view&&(c.object.view=Object.assign({},this.view)),c.object.filmGauge=this.filmGauge,c.object.filmOffset=this.filmOffset,c}}class ml extends Rl{constructor(a,c,u){super(),this.type="CubeCamera",this.renderTarget=u,this.coordinateSystem=null,this.activeMipmapLevel=0;const m=new Vl(-90,1,a,c);m.layers=this.layers,this.add(m);const M=new Vl(-90,1,a,c);M.layers=this.layers,this.add(M);const N=new Vl(-90,1,a,c);N.layers=this.layers,this.add(N);const q=new Vl(-90,1,a,c);q.layers=this.layers,this.add(q);const de=new Vl(-90,1,a,c);de.layers=this.layers,this.add(de);const pe=new Vl(-90,1,a,c);pe.layers=this.layers,this.add(pe)}updateCoordinateSystem(){const a=this.coordinateSystem,c=this.children.concat(),[u,m,M,N,q,de]=c;for(const pe of c)this.remove(pe);if(a===Dd)u.up.set(0,1,0),u.lookAt(1,0,0),m.up.set(0,1,0),m.lookAt(-1,0,0),M.up.set(0,0,-1),M.lookAt(0,1,0),N.up.set(0,0,1),N.lookAt(0,-1,0),q.up.set(0,1,0),q.lookAt(0,0,1),de.up.set(0,1,0),de.lookAt(0,0,-1);else{if(2001!==a)throw new Error("THREE.CubeCamera.updateCoordinateSystem(): Invalid coordinate system: "+a);u.up.set(0,-1,0),u.lookAt(-1,0,0),m.up.set(0,-1,0),m.lookAt(1,0,0),M.up.set(0,0,1),M.lookAt(0,1,0),N.up.set(0,0,-1),N.lookAt(0,-1,0),q.up.set(0,-1,0),q.lookAt(0,0,1),de.up.set(0,-1,0),de.lookAt(0,0,-1)}for(const pe of c)this.add(pe),pe.updateMatrixWorld()}update(a,c){null===this.parent&&this.updateMatrixWorld();const{renderTarget:u,activeMipmapLevel:m}=this;this.coordinateSystem!==a.coordinateSystem&&(this.coordinateSystem=a.coordinateSystem,this.updateCoordinateSystem());const[M,N,q,de,pe,xe]=this.children,Ie=a.getRenderTarget(),Be=a.getActiveCubeFace(),Le=a.getActiveMipmapLevel(),Ke=a.xr.enabled;a.xr.enabled=!1;const ft=u.texture.generateMipmaps;u.texture.generateMipmaps=!1,a.setRenderTarget(u,0,m),a.render(c,M),a.setRenderTarget(u,1,m),a.render(c,N),a.setRenderTarget(u,2,m),a.render(c,q),a.setRenderTarget(u,3,m),a.render(c,de),a.setRenderTarget(u,4,m),a.render(c,pe),u.texture.generateMipmaps=ft,a.setRenderTarget(u,5,m),a.render(c,xe),a.setRenderTarget(Ie,Be,Le),a.xr.enabled=Ke,u.texture.needsPMREMUpdate=!0}}class jp extends vh{constructor(a,c,u,m,M,N,q,de,pe,xe){super(a=void 0!==a?a:[],c=void 0!==c?c:Dn,u,m,M,N,q,de,pe,xe),this.isCubeTexture=!0,this.flipY=!1}get images(){return this.image}set images(a){this.image=a}}class HA extends Fh{constructor(a=1,c={}){super(a,a,c),this.isWebGLCubeRenderTarget=!0;const u={width:a,height:a,depth:1},m=[u,u,u,u,u,u];void 0!==c.encoding&&(Cm("THREE.WebGLCubeRenderTarget: option.encoding has been replaced by option.colorSpace."),c.colorSpace=c.encoding===$l?ll:""),this.texture=new jp(m,c.mapping,c.wrapS,c.wrapT,c.magFilter,c.minFilter,c.format,c.type,c.anisotropy,c.colorSpace),this.texture.isRenderTargetTexture=!0,this.texture.generateMipmaps=void 0!==c.generateMipmaps&&c.generateMipmaps,this.texture.minFilter=void 0!==c.minFilter?c.minFilter:xt}fromEquirectangularTexture(a,c){this.texture.type=c.type,this.texture.colorSpace=c.colorSpace,this.texture.generateMipmaps=c.generateMipmaps,this.texture.minFilter=c.minFilter,this.texture.magFilter=c.magFilter;const u_uniforms={tEquirect:{value:null}},u_vertexShader="\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\tvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\n\t\t\t\t\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n\n\t\t\t\t}\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvWorldDirection = transformDirection( position, modelMatrix );\n\n\t\t\t\t\t#include \n\t\t\t\t\t#include \n\n\t\t\t\t}\n\t\t\t",u_fragmentShader="\n\n\t\t\t\tuniform sampler2D tEquirect;\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\t#include \n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvec3 direction = normalize( vWorldDirection );\n\n\t\t\t\t\tvec2 sampleUV = equirectUv( direction );\n\n\t\t\t\t\tgl_FragColor = texture2D( tEquirect, sampleUV );\n\n\t\t\t\t}\n\t\t\t",m=new Cu(5,5,5),M=new zl({name:"CubemapFromEquirect",uniforms:cs(u_uniforms),vertexShader:u_vertexShader,fragmentShader:u_fragmentShader,side:1,blending:0});M.uniforms.tEquirect.value=c;const N=new Jc(m,M),q=c.minFilter;return c.minFilter===ye&&(c.minFilter=xt),new ml(1,10,this).update(a,N),c.minFilter=q,N.geometry.dispose(),N.material.dispose(),this}clear(a,c,u,m){const M=a.getRenderTarget();for(let N=0;N<6;N++)a.setRenderTarget(this,N),a.clear(c,u,m);a.setRenderTarget(M)}}function op(w){let a=new WeakMap;function c(N,q){return 303===q?N.mapping=Dn:304===q&&(N.mapping=$n),N}function m(N){const q=N.target;q.removeEventListener("dispose",m);const de=a.get(q);void 0!==de&&(a.delete(q),de.dispose())}return{get:function u(N){if(N&&N.isTexture&&!1===N.isRenderTargetTexture){const q=N.mapping;if(303===q||304===q){if(a.has(N))return c(a.get(N).texture,N.mapping);{const de=N.image;if(de&&de.height>0){const pe=new HA(de.height/2);return pe.fromEquirectangularTexture(w,N),a.set(N,pe),N.addEventListener("dispose",m),c(pe.texture,N.mapping)}return null}}}return N},dispose:function M(){a=new WeakMap}}}class kd extends sp{constructor(a=-1,c=1,u=1,m=-1,M=.1,N=2e3){super(),this.isOrthographicCamera=!0,this.type="OrthographicCamera",this.zoom=1,this.view=null,this.left=a,this.right=c,this.top=u,this.bottom=m,this.near=M,this.far=N,this.updateProjectionMatrix()}copy(a,c){return super.copy(a,c),this.left=a.left,this.right=a.right,this.top=a.top,this.bottom=a.bottom,this.near=a.near,this.far=a.far,this.zoom=a.zoom,this.view=null===a.view?null:Object.assign({},a.view),this}setViewOffset(a,c,u,m,M,N){null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=a,this.view.fullHeight=c,this.view.offsetX=u,this.view.offsetY=m,this.view.width=M,this.view.height=N,this.updateProjectionMatrix()}clearViewOffset(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const a=(this.right-this.left)/(2*this.zoom),c=(this.top-this.bottom)/(2*this.zoom),u=(this.right+this.left)/2,m=(this.top+this.bottom)/2;let M=u-a,N=u+a,q=m+c,de=m-c;if(null!==this.view&&this.view.enabled){const pe=(this.right-this.left)/this.view.fullWidth/this.zoom,xe=(this.top-this.bottom)/this.view.fullHeight/this.zoom;M+=pe*this.view.offsetX,N=M+pe*this.view.width,q-=xe*this.view.offsetY,de=q-xe*this.view.height}this.projectionMatrix.makeOrthographic(M,N,q,de,this.near,this.far,this.coordinateSystem),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(a){const c=super.toJSON(a);return c.object.zoom=this.zoom,c.object.left=this.left,c.object.right=this.right,c.object.top=this.top,c.object.bottom=this.bottom,c.object.near=this.near,c.object.far=this.far,null!==this.view&&(c.object.view=Object.assign({},this.view)),c}}const n0=[.125,.215,.35,.446,.526,.582],A_=new kd,VA=new Os;let Vm=null,V1=0,r0=0;const Gm=(1+Math.sqrt(5))/2,GA=1/Gm,g_=[new Ft(1,1,1),new Ft(-1,1,1),new Ft(1,1,-1),new Ft(-1,1,-1),new Ft(0,Gm,GA),new Ft(0,Gm,-GA),new Ft(GA,0,Gm),new Ft(-GA,0,Gm),new Ft(Gm,GA,0),new Ft(-Gm,GA,0)];class __{constructor(a){this._renderer=a,this._pingPongRenderTarget=null,this._lodMax=0,this._cubeSize=0,this._lodPlanes=[],this._sizeLods=[],this._sigmas=[],this._blurMaterial=null,this._cubemapMaterial=null,this._equirectMaterial=null,this._compileMaterial(this._blurMaterial)}fromScene(a,c=0,u=.1,m=100){Vm=this._renderer.getRenderTarget(),V1=this._renderer.getActiveCubeFace(),r0=this._renderer.getActiveMipmapLevel(),this._setSize(256);const M=this._allocateTargets();return M.depthBuffer=!0,this._sceneToCubeUV(a,u,m,M),c>0&&this._blur(M,0,0,c),this._applyPMREM(M),this._cleanup(M),M}fromEquirectangular(a,c=null){return this._fromTexture(a,c)}fromCubemap(a,c=null){return this._fromTexture(a,c)}compileCubemapShader(){null===this._cubemapMaterial&&(this._cubemapMaterial=Ls(),this._compileMaterial(this._cubemapMaterial))}compileEquirectangularShader(){null===this._equirectMaterial&&(this._equirectMaterial=Wm(),this._compileMaterial(this._equirectMaterial))}dispose(){this._dispose(),null!==this._cubemapMaterial&&this._cubemapMaterial.dispose(),null!==this._equirectMaterial&&this._equirectMaterial.dispose()}_setSize(a){this._lodMax=Math.floor(Math.log2(a)),this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){null!==this._blurMaterial&&this._blurMaterial.dispose(),null!==this._pingPongRenderTarget&&this._pingPongRenderTarget.dispose();for(let a=0;aw-4?de=n0[N-w+4-1]:0===N&&(de=0),u.push(de);const pe=1/(q-2),xe=-pe,Ie=1+pe,Be=[xe,xe,Ie,xe,Ie,Ie,xe,xe,Ie,Ie,xe,Ie],Le=6,Ke=6,ft=3,Qe=2,ze=1,Ct=new Float32Array(ft*Ke*Le),ct=new Float32Array(Qe*Ke*Le),Dt=new Float32Array(ze*Ke*Le);for(let ln=0;ln2?0:-1;Ct.set([rn,Rn,0,rn+2/3,Rn,0,rn+2/3,Rn+1,0,rn,Rn,0,rn+2/3,Rn+1,0,rn,Rn+1,0],ft*Ke*ln),ct.set(Be,Qe*Ke*ln),Dt.set([ln,ln,ln,ln,ln,ln],ze*Ke*ln)}const Jt=new Cs;Jt.setAttribute("position",new sa(Ct,ft)),Jt.setAttribute("uv",new sa(ct,Qe)),Jt.setAttribute("faceIndex",new sa(Dt,ze)),a.push(Jt),m>4&&m--}return{lodPlanes:a,sizeLods:c,sigmas:u}}(M)),this._blurMaterial=function y_(w,a,c){const u=new Float32Array(20),m=new Ft(0,1,0);return new zl({name:"SphericalGaussianBlur",defines:{n:20,CUBEUV_TEXEL_WIDTH:1/a,CUBEUV_TEXEL_HEIGHT:1/c,CUBEUV_MAX_MIP:`${w}.0`},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:u},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:m}},vertexShader:"\n\n\t\tprecision mediump float;\n\t\tprecision mediump int;\n\n\t\tattribute float faceIndex;\n\n\t\tvarying vec3 vOutputDirection;\n\n\t\t// RH coordinate system; PMREM face-indexing convention\n\t\tvec3 getDirection( vec2 uv, float face ) {\n\n\t\t\tuv = 2.0 * uv - 1.0;\n\n\t\t\tvec3 direction = vec3( uv, 1.0 );\n\n\t\t\tif ( face == 0.0 ) {\n\n\t\t\t\tdirection = direction.zyx; // ( 1, v, u ) pos x\n\n\t\t\t} else if ( face == 1.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xz *= -1.0; // ( -u, 1, -v ) pos y\n\n\t\t\t} else if ( face == 2.0 ) {\n\n\t\t\t\tdirection.x *= -1.0; // ( -u, v, 1 ) pos z\n\n\t\t\t} else if ( face == 3.0 ) {\n\n\t\t\t\tdirection = direction.zyx;\n\t\t\t\tdirection.xz *= -1.0; // ( -1, v, -u ) neg x\n\n\t\t\t} else if ( face == 4.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xy *= -1.0; // ( -u, -1, v ) neg y\n\n\t\t\t} else if ( face == 5.0 ) {\n\n\t\t\t\tdirection.z *= -1.0; // ( u, v, -1 ) neg z\n\n\t\t\t}\n\n\t\t\treturn direction;\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\tvOutputDirection = getDirection( uv, faceIndex );\n\t\t\tgl_Position = vec4( position, 1.0 );\n\n\t\t}\n\t",fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\t\t\tuniform int samples;\n\t\t\tuniform float weights[ n ];\n\t\t\tuniform bool latitudinal;\n\t\t\tuniform float dTheta;\n\t\t\tuniform float mipInt;\n\t\t\tuniform vec3 poleAxis;\n\n\t\t\t#define ENVMAP_TYPE_CUBE_UV\n\t\t\t#include \n\n\t\t\tvec3 getSample( float theta, vec3 axis ) {\n\n\t\t\t\tfloat cosTheta = cos( theta );\n\t\t\t\t// Rodrigues' axis-angle rotation\n\t\t\t\tvec3 sampleDirection = vOutputDirection * cosTheta\n\t\t\t\t\t+ cross( axis, vOutputDirection ) * sin( theta )\n\t\t\t\t\t+ axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta );\n\n\t\t\t\treturn bilinearCubeUV( envMap, sampleDirection, mipInt );\n\n\t\t\t}\n\n\t\t\tvoid main() {\n\n\t\t\t\tvec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection );\n\n\t\t\t\tif ( all( equal( axis, vec3( 0.0 ) ) ) ) {\n\n\t\t\t\t\taxis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x );\n\n\t\t\t\t}\n\n\t\t\t\taxis = normalize( axis );\n\n\t\t\t\tgl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\t\t\t\tgl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis );\n\n\t\t\t\tfor ( int i = 1; i < n; i++ ) {\n\n\t\t\t\t\tif ( i >= samples ) {\n\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tfloat theta = dTheta * float( i );\n\t\t\t\t\tgl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis );\n\t\t\t\t\tgl_FragColor.rgb += weights[ i ] * getSample( theta, axis );\n\n\t\t\t\t}\n\n\t\t\t}\n\t\t",blending:0,depthTest:!1,depthWrite:!1})}(M,a,c)}return m}_compileMaterial(a){const c=new Jc(this._lodPlanes[0],a);this._renderer.compile(c,A_)}_sceneToCubeUV(a,c,u,m){const q=new Vl(90,1,c,u),de=[1,-1,1,1,1,1],pe=[1,1,1,-1,-1,-1],xe=this._renderer,Ie=xe.autoClear,Be=xe.toneMapping;xe.getClearColor(VA),xe.toneMapping=pt,xe.autoClear=!1;const Le=new Xc({name:"PMREM.Background",side:1,depthWrite:!1,depthTest:!1}),Ke=new Jc(new Cu,Le);let ft=!1;const Qe=a.background;Qe?Qe.isColor&&(Le.color.copy(Qe),a.background=null,ft=!0):(Le.color.copy(VA),ft=!0);for(let ze=0;ze<6;ze++){const Ct=ze%3;0===Ct?(q.up.set(0,de[ze],0),q.lookAt(pe[ze],0,0)):1===Ct?(q.up.set(0,0,de[ze]),q.lookAt(0,pe[ze],0)):(q.up.set(0,de[ze],0),q.lookAt(0,0,pe[ze]));const ct=this._cubeSize;Qm(m,Ct*ct,ze>2?ct:0,ct,ct),xe.setRenderTarget(m),ft&&xe.render(Ke,q),xe.render(a,q)}Ke.geometry.dispose(),Ke.material.dispose(),xe.toneMapping=Be,xe.autoClear=Ie,a.background=Qe}_textureToCubeUV(a,c){const u=this._renderer,m=a.mapping===Dn||a.mapping===$n;m?(null===this._cubemapMaterial&&(this._cubemapMaterial=Ls()),this._cubemapMaterial.uniforms.flipEnvMap.value=!1===a.isRenderTargetTexture?-1:1):null===this._equirectMaterial&&(this._equirectMaterial=Wm());const M=m?this._cubemapMaterial:this._equirectMaterial,N=new Jc(this._lodPlanes[0],M);M.uniforms.envMap.value=a;const de=this._cubeSize;Qm(c,0,0,3*de,2*de),u.setRenderTarget(c),u.render(N,A_)}_applyPMREM(a){const c=this._renderer,u=c.autoClear;c.autoClear=!1;for(let m=1;m20&&console.warn(`sigmaRadians, ${M}, is too large and will clip, as it requested ${Qe} samples when the maximum is set to 20`);const ze=[];let Ct=0;for(let rn=0;rn<20;++rn){const Rn=rn/ft,kt=Math.exp(-Rn*Rn/2);ze.push(kt),0===rn?Ct+=kt:rnct-4?m-ct+4:0),4*(this._cubeSize-Dt),3*Dt,2*Dt),de.setRenderTarget(c),de.render(Ie,A_)}}function oo(w,a,c){const u=new Fh(w,a,c);return u.texture.mapping=Sn,u.texture.name="PMREM.cubeUv",u.scissorTest=!0,u}function Qm(w,a,c,u,m){w.viewport.set(a,c,u,m),w.scissor.set(a,c,u,m)}function Wm(){return new zl({name:"EquirectangularToCubeUV",uniforms:{envMap:{value:null}},vertexShader:"\n\n\t\tprecision mediump float;\n\t\tprecision mediump int;\n\n\t\tattribute float faceIndex;\n\n\t\tvarying vec3 vOutputDirection;\n\n\t\t// RH coordinate system; PMREM face-indexing convention\n\t\tvec3 getDirection( vec2 uv, float face ) {\n\n\t\t\tuv = 2.0 * uv - 1.0;\n\n\t\t\tvec3 direction = vec3( uv, 1.0 );\n\n\t\t\tif ( face == 0.0 ) {\n\n\t\t\t\tdirection = direction.zyx; // ( 1, v, u ) pos x\n\n\t\t\t} else if ( face == 1.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xz *= -1.0; // ( -u, 1, -v ) pos y\n\n\t\t\t} else if ( face == 2.0 ) {\n\n\t\t\t\tdirection.x *= -1.0; // ( -u, v, 1 ) pos z\n\n\t\t\t} else if ( face == 3.0 ) {\n\n\t\t\t\tdirection = direction.zyx;\n\t\t\t\tdirection.xz *= -1.0; // ( -1, v, -u ) neg x\n\n\t\t\t} else if ( face == 4.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xy *= -1.0; // ( -u, -1, v ) neg y\n\n\t\t\t} else if ( face == 5.0 ) {\n\n\t\t\t\tdirection.z *= -1.0; // ( u, v, -1 ) neg z\n\n\t\t\t}\n\n\t\t\treturn direction;\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\tvOutputDirection = getDirection( uv, faceIndex );\n\t\t\tgl_Position = vec4( position, 1.0 );\n\n\t\t}\n\t",fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\n\t\t\t#include \n\n\t\t\tvoid main() {\n\n\t\t\t\tvec3 outputDirection = normalize( vOutputDirection );\n\t\t\t\tvec2 uv = equirectUv( outputDirection );\n\n\t\t\t\tgl_FragColor = vec4( texture2D ( envMap, uv ).rgb, 1.0 );\n\n\t\t\t}\n\t\t",blending:0,depthTest:!1,depthWrite:!1})}function Ls(){return new zl({name:"CubemapToCubeUV",uniforms:{envMap:{value:null},flipEnvMap:{value:-1}},vertexShader:"\n\n\t\tprecision mediump float;\n\t\tprecision mediump int;\n\n\t\tattribute float faceIndex;\n\n\t\tvarying vec3 vOutputDirection;\n\n\t\t// RH coordinate system; PMREM face-indexing convention\n\t\tvec3 getDirection( vec2 uv, float face ) {\n\n\t\t\tuv = 2.0 * uv - 1.0;\n\n\t\t\tvec3 direction = vec3( uv, 1.0 );\n\n\t\t\tif ( face == 0.0 ) {\n\n\t\t\t\tdirection = direction.zyx; // ( 1, v, u ) pos x\n\n\t\t\t} else if ( face == 1.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xz *= -1.0; // ( -u, 1, -v ) pos y\n\n\t\t\t} else if ( face == 2.0 ) {\n\n\t\t\t\tdirection.x *= -1.0; // ( -u, v, 1 ) pos z\n\n\t\t\t} else if ( face == 3.0 ) {\n\n\t\t\t\tdirection = direction.zyx;\n\t\t\t\tdirection.xz *= -1.0; // ( -1, v, -u ) neg x\n\n\t\t\t} else if ( face == 4.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xy *= -1.0; // ( -u, -1, v ) neg y\n\n\t\t\t} else if ( face == 5.0 ) {\n\n\t\t\t\tdirection.z *= -1.0; // ( u, v, -1 ) neg z\n\n\t\t\t}\n\n\t\t\treturn direction;\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\tvOutputDirection = getDirection( uv, faceIndex );\n\t\t\tgl_Position = vec4( position, 1.0 );\n\n\t\t}\n\t",fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tuniform float flipEnvMap;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform samplerCube envMap;\n\n\t\t\tvoid main() {\n\n\t\t\t\tgl_FragColor = textureCube( envMap, vec3( flipEnvMap * vOutputDirection.x, vOutputDirection.yz ) );\n\n\t\t\t}\n\t\t",blending:0,depthTest:!1,depthWrite:!1})}function yf(w){let a=new WeakMap,c=null;function M(q){const de=q.target;de.removeEventListener("dispose",M);const pe=a.get(de);void 0!==pe&&(a.delete(de),pe.dispose())}return{get:function u(q){if(q&&q.isTexture){const de=q.mapping,pe=303===de||304===de,xe=de===Dn||de===$n;if(pe||xe){if(q.isRenderTargetTexture&&!0===q.needsPMREMUpdate){q.needsPMREMUpdate=!1;let Ie=a.get(q);return null===c&&(c=new __(w)),Ie=pe?c.fromEquirectangular(q,Ie):c.fromCubemap(q,Ie),a.set(q,Ie),Ie.texture}if(a.has(q))return a.get(q).texture;{const Ie=q.image;if(pe&&Ie&&Ie.height>0||xe&&Ie&&function m(q){let de=0;for(let xe=0;xe<6;xe++)void 0!==q[xe]&&de++;return 6===de}(Ie)){null===c&&(c=new __(w));const Be=pe?c.fromEquirectangular(q):c.fromCubemap(q);return a.set(q,Be),q.addEventListener("dispose",M),Be.texture}return null}}}return q},dispose:function N(){a=new WeakMap,null!==c&&(c.dispose(),c=null)}}}function ap(w){const a={};function c(u){if(void 0!==a[u])return a[u];let m;switch(u){case"WEBGL_depth_texture":m=w.getExtension("WEBGL_depth_texture")||w.getExtension("MOZ_WEBGL_depth_texture")||w.getExtension("WEBKIT_WEBGL_depth_texture");break;case"EXT_texture_filter_anisotropic":m=w.getExtension("EXT_texture_filter_anisotropic")||w.getExtension("MOZ_EXT_texture_filter_anisotropic")||w.getExtension("WEBKIT_EXT_texture_filter_anisotropic");break;case"WEBGL_compressed_texture_s3tc":m=w.getExtension("WEBGL_compressed_texture_s3tc")||w.getExtension("MOZ_WEBGL_compressed_texture_s3tc")||w.getExtension("WEBKIT_WEBGL_compressed_texture_s3tc");break;case"WEBGL_compressed_texture_pvrtc":m=w.getExtension("WEBGL_compressed_texture_pvrtc")||w.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc");break;default:m=w.getExtension(u)}return a[u]=m,m}return{has:function(u){return null!==c(u)},init:function(u){u.isWebGL2?c("EXT_color_buffer_float"):(c("WEBGL_depth_texture"),c("OES_texture_float"),c("OES_texture_half_float"),c("OES_texture_half_float_linear"),c("OES_standard_derivatives"),c("OES_element_index_uint"),c("OES_vertex_array_object"),c("ANGLE_instanced_arrays")),c("OES_texture_float_linear"),c("EXT_color_buffer_half_float"),c("WEBGL_multisampled_render_to_texture")},get:function(u){const m=c(u);return null===m&&console.warn("THREE.WebGLRenderer: "+u+" extension not supported."),m}}}function o0(w,a,c,u){const m={},M=new WeakMap;function N(Ie){const Be=Ie.target;null!==Be.index&&a.remove(Be.index);for(const Ke in Be.attributes)a.remove(Be.attributes[Ke]);for(const Ke in Be.morphAttributes){const ft=Be.morphAttributes[Ke];for(let Qe=0,ze=ft.length;Qea.maxTextureSize&&(Zt=Math.ceil(kt/a.maxTextureSize),kt=a.maxTextureSize);const li=new Float32Array(kt*Zt*4*Ke),Ti=new ce(li,kt,Zt,Ke);Ti.type=cn,Ti.needsUpdate=!0;const hr=4*Rn;for(let Di=0;Di0)return w;const m=a*c;let M=Xi[m];if(void 0===M&&(M=new Float32Array(m),Xi[m]=M),0!==a){u.toArray(M,0);for(let N=1,q=0;N!==a;++N)q+=c,w[N].toArray(M,q)}return M}function Zr(w,a){if(w.length!==a.length)return!1;for(let c=0,u=w.length;c":" "} ${q}: ${c[N]}`)}return u.join("\n")}(w.getShaderSource(a),N)}return m}function Ae(w,a){const c=function y(w){const a=Ya.getPrimaries(Ya.workingColorSpace),c=Ya.getPrimaries(w);let u;switch(a===c?u="":a===Uf&&c===U0?u="LinearDisplayP3ToLinearSRGB":a===U0&&c===Uf&&(u="LinearSRGBToLinearDisplayP3"),w){case sc:case Jh:return[u,"LinearTransferOETF"];case ll:case Zh:return[u,"sRGBTransferOETF"];default:return console.warn("THREE.WebGLProgram: Unsupported color space:",w),[u,"LinearTransferOETF"]}}(a);return`vec4 ${w}( vec4 value ) { return ${c[0]}( ${c[1]}( value ) ); }`}function be(w,a){let c;switch(a){case st:c="Linear";break;case vt:c="Reinhard";break;case Yt:c="OptimizedCineon";break;case qt:c="ACESFilmic";break;case Ot:c="Custom";break;default:console.warn("THREE.WebGLProgram: Unsupported toneMapping:",a),c="Linear"}return"vec3 "+w+"( vec3 color ) { return "+c+"ToneMapping( color ); }"}function Tt(w){return""!==w}function Vt(w,a){const c=a.numSpotLightShadows+a.numSpotLightMaps-a.numSpotLightShadowsWithMaps;return w.replace(/NUM_DIR_LIGHTS/g,a.numDirLights).replace(/NUM_SPOT_LIGHTS/g,a.numSpotLights).replace(/NUM_SPOT_LIGHT_MAPS/g,a.numSpotLightMaps).replace(/NUM_SPOT_LIGHT_COORDS/g,c).replace(/NUM_RECT_AREA_LIGHTS/g,a.numRectAreaLights).replace(/NUM_POINT_LIGHTS/g,a.numPointLights).replace(/NUM_HEMI_LIGHTS/g,a.numHemiLights).replace(/NUM_DIR_LIGHT_SHADOWS/g,a.numDirLightShadows).replace(/NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS/g,a.numSpotLightShadowsWithMaps).replace(/NUM_SPOT_LIGHT_SHADOWS/g,a.numSpotLightShadows).replace(/NUM_POINT_LIGHT_SHADOWS/g,a.numPointLightShadows)}function Wt(w,a){return w.replace(/NUM_CLIPPING_PLANES/g,a.numClippingPlanes).replace(/UNION_CLIPPING_PLANES/g,a.numClippingPlanes-a.numClipIntersection)}const pn=/^[ \t]*#include +<([\w\d./]+)>/gm;function Gn(w){return w.replace(pn,Ei)}const qn=new Map([["encodings_fragment","colorspace_fragment"],["encodings_pars_fragment","colorspace_pars_fragment"],["output_fragment","opaque_fragment"]]);function Ei(w,a){let c=Ko[a];if(void 0===c){const u=qn.get(a);if(void 0===u)throw new Error("Can not resolve #include <"+a+">");c=Ko[u],console.warn('THREE.WebGLRenderer: Shader chunk "%s" has been deprecated. Use "%s" instead.',a,u)}return Gn(c)}const kr=/#pragma unroll_loop_start\s+for\s*\(\s*int\s+i\s*=\s*(\d+)\s*;\s*i\s*<\s*(\d+)\s*;\s*i\s*\+\+\s*\)\s*{([\s\S]+?)}\s+#pragma unroll_loop_end/g;function pr(w){return w.replace(kr,wr)}function wr(w,a,c,u){let m="";for(let M=parseInt(a);M0&&(Qe+="\n"),ze=[Le,"#define SHADER_TYPE "+c.shaderType,"#define SHADER_NAME "+c.shaderName,Ke].filter(Tt).join("\n"),ze.length>0&&(ze+="\n")):(Qe=[Ts(c),"#define SHADER_TYPE "+c.shaderType,"#define SHADER_NAME "+c.shaderName,Ke,c.instancing?"#define USE_INSTANCING":"",c.instancingColor?"#define USE_INSTANCING_COLOR":"",c.useFog&&c.fog?"#define USE_FOG":"",c.useFog&&c.fogExp2?"#define FOG_EXP2":"",c.map?"#define USE_MAP":"",c.envMap?"#define USE_ENVMAP":"",c.envMap?"#define "+xe:"",c.lightMap?"#define USE_LIGHTMAP":"",c.aoMap?"#define USE_AOMAP":"",c.bumpMap?"#define USE_BUMPMAP":"",c.normalMap?"#define USE_NORMALMAP":"",c.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",c.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",c.displacementMap?"#define USE_DISPLACEMENTMAP":"",c.emissiveMap?"#define USE_EMISSIVEMAP":"",c.anisotropy?"#define USE_ANISOTROPY":"",c.anisotropyMap?"#define USE_ANISOTROPYMAP":"",c.clearcoatMap?"#define USE_CLEARCOATMAP":"",c.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",c.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",c.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",c.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",c.specularMap?"#define USE_SPECULARMAP":"",c.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",c.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",c.roughnessMap?"#define USE_ROUGHNESSMAP":"",c.metalnessMap?"#define USE_METALNESSMAP":"",c.alphaMap?"#define USE_ALPHAMAP":"",c.alphaHash?"#define USE_ALPHAHASH":"",c.transmission?"#define USE_TRANSMISSION":"",c.transmissionMap?"#define USE_TRANSMISSIONMAP":"",c.thicknessMap?"#define USE_THICKNESSMAP":"",c.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",c.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",c.mapUv?"#define MAP_UV "+c.mapUv:"",c.alphaMapUv?"#define ALPHAMAP_UV "+c.alphaMapUv:"",c.lightMapUv?"#define LIGHTMAP_UV "+c.lightMapUv:"",c.aoMapUv?"#define AOMAP_UV "+c.aoMapUv:"",c.emissiveMapUv?"#define EMISSIVEMAP_UV "+c.emissiveMapUv:"",c.bumpMapUv?"#define BUMPMAP_UV "+c.bumpMapUv:"",c.normalMapUv?"#define NORMALMAP_UV "+c.normalMapUv:"",c.displacementMapUv?"#define DISPLACEMENTMAP_UV "+c.displacementMapUv:"",c.metalnessMapUv?"#define METALNESSMAP_UV "+c.metalnessMapUv:"",c.roughnessMapUv?"#define ROUGHNESSMAP_UV "+c.roughnessMapUv:"",c.anisotropyMapUv?"#define ANISOTROPYMAP_UV "+c.anisotropyMapUv:"",c.clearcoatMapUv?"#define CLEARCOATMAP_UV "+c.clearcoatMapUv:"",c.clearcoatNormalMapUv?"#define CLEARCOAT_NORMALMAP_UV "+c.clearcoatNormalMapUv:"",c.clearcoatRoughnessMapUv?"#define CLEARCOAT_ROUGHNESSMAP_UV "+c.clearcoatRoughnessMapUv:"",c.iridescenceMapUv?"#define IRIDESCENCEMAP_UV "+c.iridescenceMapUv:"",c.iridescenceThicknessMapUv?"#define IRIDESCENCE_THICKNESSMAP_UV "+c.iridescenceThicknessMapUv:"",c.sheenColorMapUv?"#define SHEEN_COLORMAP_UV "+c.sheenColorMapUv:"",c.sheenRoughnessMapUv?"#define SHEEN_ROUGHNESSMAP_UV "+c.sheenRoughnessMapUv:"",c.specularMapUv?"#define SPECULARMAP_UV "+c.specularMapUv:"",c.specularColorMapUv?"#define SPECULAR_COLORMAP_UV "+c.specularColorMapUv:"",c.specularIntensityMapUv?"#define SPECULAR_INTENSITYMAP_UV "+c.specularIntensityMapUv:"",c.transmissionMapUv?"#define TRANSMISSIONMAP_UV "+c.transmissionMapUv:"",c.thicknessMapUv?"#define THICKNESSMAP_UV "+c.thicknessMapUv:"",c.vertexTangents&&!1===c.flatShading?"#define USE_TANGENT":"",c.vertexColors?"#define USE_COLOR":"",c.vertexAlphas?"#define USE_COLOR_ALPHA":"",c.vertexUv1s?"#define USE_UV1":"",c.vertexUv2s?"#define USE_UV2":"",c.vertexUv3s?"#define USE_UV3":"",c.pointsUvs?"#define USE_POINTS_UV":"",c.flatShading?"#define FLAT_SHADED":"",c.skinning?"#define USE_SKINNING":"",c.morphTargets?"#define USE_MORPHTARGETS":"",c.morphNormals&&!1===c.flatShading?"#define USE_MORPHNORMALS":"",c.morphColors&&c.isWebGL2?"#define USE_MORPHCOLORS":"",c.morphTargetsCount>0&&c.isWebGL2?"#define MORPHTARGETS_TEXTURE":"",c.morphTargetsCount>0&&c.isWebGL2?"#define MORPHTARGETS_TEXTURE_STRIDE "+c.morphTextureStride:"",c.morphTargetsCount>0&&c.isWebGL2?"#define MORPHTARGETS_COUNT "+c.morphTargetsCount:"",c.doubleSided?"#define DOUBLE_SIDED":"",c.flipSided?"#define FLIP_SIDED":"",c.shadowMapEnabled?"#define USE_SHADOWMAP":"",c.shadowMapEnabled?"#define "+de:"",c.sizeAttenuation?"#define USE_SIZEATTENUATION":"",c.numLightProbes>0?"#define USE_LIGHT_PROBES":"",c.useLegacyLights?"#define LEGACY_LIGHTS":"",c.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",c.logarithmicDepthBuffer&&c.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 modelMatrix;","uniform mat4 modelViewMatrix;","uniform mat4 projectionMatrix;","uniform mat4 viewMatrix;","uniform mat3 normalMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;","#ifdef USE_INSTANCING","\tattribute mat4 instanceMatrix;","#endif","#ifdef USE_INSTANCING_COLOR","\tattribute vec3 instanceColor;","#endif","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_UV1","\tattribute vec2 uv1;","#endif","#ifdef USE_UV2","\tattribute vec2 uv2;","#endif","#ifdef USE_UV3","\tattribute vec2 uv3;","#endif","#ifdef USE_TANGENT","\tattribute vec4 tangent;","#endif","#if defined( USE_COLOR_ALPHA )","\tattribute vec4 color;","#elif defined( USE_COLOR )","\tattribute vec3 color;","#endif","#if ( defined( USE_MORPHTARGETS ) && ! defined( MORPHTARGETS_TEXTURE ) )","\tattribute vec3 morphTarget0;","\tattribute vec3 morphTarget1;","\tattribute vec3 morphTarget2;","\tattribute vec3 morphTarget3;","\t#ifdef USE_MORPHNORMALS","\t\tattribute vec3 morphNormal0;","\t\tattribute vec3 morphNormal1;","\t\tattribute vec3 morphNormal2;","\t\tattribute vec3 morphNormal3;","\t#else","\t\tattribute vec3 morphTarget4;","\t\tattribute vec3 morphTarget5;","\t\tattribute vec3 morphTarget6;","\t\tattribute vec3 morphTarget7;","\t#endif","#endif","#ifdef USE_SKINNING","\tattribute vec4 skinIndex;","\tattribute vec4 skinWeight;","#endif","\n"].filter(Tt).join("\n"),ze=[Le,Ts(c),"#define SHADER_TYPE "+c.shaderType,"#define SHADER_NAME "+c.shaderName,Ke,c.useFog&&c.fog?"#define USE_FOG":"",c.useFog&&c.fogExp2?"#define FOG_EXP2":"",c.map?"#define USE_MAP":"",c.matcap?"#define USE_MATCAP":"",c.envMap?"#define USE_ENVMAP":"",c.envMap?"#define "+pe:"",c.envMap?"#define "+xe:"",c.envMap?"#define "+Ie:"",Be?"#define CUBEUV_TEXEL_WIDTH "+Be.texelWidth:"",Be?"#define CUBEUV_TEXEL_HEIGHT "+Be.texelHeight:"",Be?"#define CUBEUV_MAX_MIP "+Be.maxMip+".0":"",c.lightMap?"#define USE_LIGHTMAP":"",c.aoMap?"#define USE_AOMAP":"",c.bumpMap?"#define USE_BUMPMAP":"",c.normalMap?"#define USE_NORMALMAP":"",c.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",c.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",c.emissiveMap?"#define USE_EMISSIVEMAP":"",c.anisotropy?"#define USE_ANISOTROPY":"",c.anisotropyMap?"#define USE_ANISOTROPYMAP":"",c.clearcoat?"#define USE_CLEARCOAT":"",c.clearcoatMap?"#define USE_CLEARCOATMAP":"",c.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",c.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",c.iridescence?"#define USE_IRIDESCENCE":"",c.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",c.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",c.specularMap?"#define USE_SPECULARMAP":"",c.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",c.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",c.roughnessMap?"#define USE_ROUGHNESSMAP":"",c.metalnessMap?"#define USE_METALNESSMAP":"",c.alphaMap?"#define USE_ALPHAMAP":"",c.alphaTest?"#define USE_ALPHATEST":"",c.alphaHash?"#define USE_ALPHAHASH":"",c.sheen?"#define USE_SHEEN":"",c.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",c.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",c.transmission?"#define USE_TRANSMISSION":"",c.transmissionMap?"#define USE_TRANSMISSIONMAP":"",c.thicknessMap?"#define USE_THICKNESSMAP":"",c.vertexTangents&&!1===c.flatShading?"#define USE_TANGENT":"",c.vertexColors||c.instancingColor?"#define USE_COLOR":"",c.vertexAlphas?"#define USE_COLOR_ALPHA":"",c.vertexUv1s?"#define USE_UV1":"",c.vertexUv2s?"#define USE_UV2":"",c.vertexUv3s?"#define USE_UV3":"",c.pointsUvs?"#define USE_POINTS_UV":"",c.gradientMap?"#define USE_GRADIENTMAP":"",c.flatShading?"#define FLAT_SHADED":"",c.doubleSided?"#define DOUBLE_SIDED":"",c.flipSided?"#define FLIP_SIDED":"",c.shadowMapEnabled?"#define USE_SHADOWMAP":"",c.shadowMapEnabled?"#define "+de:"",c.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",c.numLightProbes>0?"#define USE_LIGHT_PROBES":"",c.useLegacyLights?"#define LEGACY_LIGHTS":"",c.decodeVideoTexture?"#define DECODE_VIDEO_TEXTURE":"",c.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",c.logarithmicDepthBuffer&&c.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",c.toneMapping!==pt?"#define TONE_MAPPING":"",c.toneMapping!==pt?Ko.tonemapping_pars_fragment:"",c.toneMapping!==pt?be("toneMapping",c.toneMapping):"",c.dithering?"#define DITHERING":"",c.opaque?"#define OPAQUE":"",Ko.colorspace_pars_fragment,Ae("linearToOutputTexel",c.outputColorSpace),c.useDepthPacking?"#define DEPTH_PACKING "+c.depthPacking:"","\n"].filter(Tt).join("\n")),N=Gn(N),N=Vt(N,c),N=Wt(N,c),q=Gn(q),q=Vt(q,c),q=Wt(q,c),N=pr(N),q=pr(q),c.isWebGL2&&!0!==c.isRawShaderMaterial&&(Ct="#version 300 es\n",Qe=["precision mediump sampler2DArray;","#define attribute in","#define varying out","#define texture2D texture"].join("\n")+"\n"+Qe,ze=["precision mediump sampler2DArray;","#define varying in",c.glslVersion===V0?"":"layout(location = 0) out highp vec4 pc_fragColor;",c.glslVersion===V0?"":"#define gl_FragColor pc_fragColor","#define gl_FragDepthEXT gl_FragDepth","#define texture2D texture","#define textureCube texture","#define texture2DProj textureProj","#define texture2DLodEXT textureLod","#define texture2DProjLodEXT textureProjLod","#define textureCubeLodEXT textureLod","#define texture2DGradEXT textureGrad","#define texture2DProjGradEXT textureProjGrad","#define textureCubeGradEXT textureGrad"].join("\n")+"\n"+ze);const Dt=Ct+ze+q,Jt=Q1(m,m.VERTEX_SHADER,Ct+Qe+N),ln=Q1(m,m.FRAGMENT_SHADER,Dt);function rn(li){if(w.debug.checkShaderErrors){const Ti=m.getProgramInfoLog(ft).trim(),hr=m.getShaderInfoLog(Jt).trim(),Yn=m.getShaderInfoLog(ln).trim();let Di=!0,rr=!0;if(!1===m.getProgramParameter(ft,m.LINK_STATUS))if(Di=!1,"function"==typeof w.debug.onShaderError)w.debug.onShaderError(m,ft,Jt,ln);else{const Oi=H(m,Jt,"vertex"),br=H(m,ln,"fragment");console.error("THREE.WebGLProgram: Shader Error "+m.getError()+" - VALIDATE_STATUS "+m.getProgramParameter(ft,m.VALIDATE_STATUS)+"\n\nProgram Info Log: "+Ti+"\n"+Oi+"\n"+br)}else""!==Ti?console.warn("THREE.WebGLProgram: Program Info Log:",Ti):(""===hr||""===Yn)&&(rr=!1);rr&&(li.diagnostics={runnable:Di,programLog:Ti,vertexShader:{log:hr,prefix:Qe},fragmentShader:{log:Yn,prefix:ze}})}m.deleteShader(Jt),m.deleteShader(ln),Rn=new Jp(m,ft),kt=function gt(w,a){const c={},u=w.getProgramParameter(a,w.ACTIVE_ATTRIBUTES);for(let m=0;m0,co=kt.clearcoat>0,_s=kt.iridescence>0,$t=kt.sheen>0,Pt=kt.transmission>0,ni=hs&&!!kt.anisotropyMap,cr=co&&!!kt.clearcoatMap,Ar=co&&!!kt.clearcoatNormalMap,Br=co&&!!kt.clearcoatRoughnessMap,ks=_s&&!!kt.iridescenceMap,Ir=_s&&!!kt.iridescenceThicknessMap,es=$t&&!!kt.sheenColorMap,Nn=$t&&!!kt.sheenRoughnessMap,Hr=!!kt.specularMap,xr=!!kt.specularColorMap,Oo=!!kt.specularIntensityMap,Ao=Pt&&!!kt.transmissionMap,fo=Pt&&!!kt.thicknessMap,Ps=!!kt.alphaMap,ys=!!kt.extensions,jr=!!Di.attributes.uv1,dr=!!Di.attributes.uv2,ts=!!Di.attributes.uv3;let xo=pt;return kt.toneMapped&&(null===eo||!0===eo.isXRRenderTarget)&&(xo=w.toneMapping),{isWebGL2:xe,shaderID:Ji,shaderType:kt.type,shaderName:kt.name,vertexShader:as,fragmentShader:xs,defines:kt.defines,customVertexShaderID:Ds,customFragmentShaderID:fs,isRawShaderMaterial:!0===kt.isRawShaderMaterial,glslVersion:kt.glslVersion,precision:Le,instancing:er,instancingColor:er&&null!==hr.instanceColor,supportsVertexTextures:Be,outputColorSpace:null===eo?w.outputColorSpace:!0===eo.isXRRenderTarget?eo.texture.colorSpace:sc,map:Or,matcap:!!kt.matcap,envMap:vr,envMapMode:vr&&Oi.mapping,envMapCubeUVHeight:br,aoMap:_n,lightMap:Ki,bumpMap:si,normalMap:Ri,displacementMap:Be&&Ii,emissiveMap:Jr,normalMapObjectSpace:Ri&&1===kt.normalMapType,normalMapTangentSpace:Ri&&0===kt.normalMapType,metalnessMap:Nr,roughnessMap:fr,anisotropy:hs,anisotropyMap:ni,clearcoat:co,clearcoatMap:cr,clearcoatNormalMap:Ar,clearcoatRoughnessMap:Br,iridescence:_s,iridescenceMap:ks,iridescenceThicknessMap:Ir,sheen:$t,sheenColorMap:es,sheenRoughnessMap:Nn,specularMap:Hr,specularColorMap:xr,specularIntensityMap:Oo,transmission:Pt,transmissionMap:Ao,thicknessMap:fo,gradientMap:!!kt.gradientMap,opaque:!1===kt.transparent&&1===kt.blending,alphaMap:Ps,alphaTest:kt.alphaTest>0,alphaHash:!!kt.alphaHash,combine:kt.combine,mapUv:Or&&ft(kt.map.channel),aoMapUv:_n&&ft(kt.aoMap.channel),lightMapUv:Ki&&ft(kt.lightMap.channel),bumpMapUv:si&&ft(kt.bumpMap.channel),normalMapUv:Ri&&ft(kt.normalMap.channel),displacementMapUv:Ii&&ft(kt.displacementMap.channel),emissiveMapUv:Jr&&ft(kt.emissiveMap.channel),metalnessMapUv:Nr&&ft(kt.metalnessMap.channel),roughnessMapUv:fr&&ft(kt.roughnessMap.channel),anisotropyMapUv:ni&&ft(kt.anisotropyMap.channel),clearcoatMapUv:cr&&ft(kt.clearcoatMap.channel),clearcoatNormalMapUv:Ar&&ft(kt.clearcoatNormalMap.channel),clearcoatRoughnessMapUv:Br&&ft(kt.clearcoatRoughnessMap.channel),iridescenceMapUv:ks&&ft(kt.iridescenceMap.channel),iridescenceThicknessMapUv:Ir&&ft(kt.iridescenceThicknessMap.channel),sheenColorMapUv:es&&ft(kt.sheenColorMap.channel),sheenRoughnessMapUv:Nn&&ft(kt.sheenRoughnessMap.channel),specularMapUv:Hr&&ft(kt.specularMap.channel),specularColorMapUv:xr&&ft(kt.specularColorMap.channel),specularIntensityMapUv:Oo&&ft(kt.specularIntensityMap.channel),transmissionMapUv:Ao&&ft(kt.transmissionMap.channel),thicknessMapUv:fo&&ft(kt.thicknessMap.channel),alphaMapUv:Ps&&ft(kt.alphaMap.channel),vertexTangents:!!Di.attributes.tangent&&(Ri||hs),vertexColors:kt.vertexColors,vertexAlphas:!0===kt.vertexColors&&!!Di.attributes.color&&4===Di.attributes.color.itemSize,vertexUv1s:jr,vertexUv2s:dr,vertexUv3s:ts,pointsUvs:!0===hr.isPoints&&!!Di.attributes.uv&&(Or||Ps),fog:!!Yn,useFog:!0===kt.fog,fogExp2:Yn&&Yn.isFogExp2,flatShading:!0===kt.flatShading,sizeAttenuation:!0===kt.sizeAttenuation,logarithmicDepthBuffer:Ie,skinning:!0===hr.isSkinnedMesh,morphTargets:void 0!==Di.morphAttributes.position,morphNormals:void 0!==Di.morphAttributes.normal,morphColors:void 0!==Di.morphAttributes.color,morphTargetsCount:ei,morphTextureStride:sr,numDirLights:Zt.directional.length,numPointLights:Zt.point.length,numSpotLights:Zt.spot.length,numSpotLightMaps:Zt.spotLightMap.length,numRectAreaLights:Zt.rectArea.length,numHemiLights:Zt.hemi.length,numDirLightShadows:Zt.directionalShadowMap.length,numPointLightShadows:Zt.pointShadowMap.length,numSpotLightShadows:Zt.spotShadowMap.length,numSpotLightShadowsWithMaps:Zt.numSpotLightShadowsWithMaps,numLightProbes:Zt.numLightProbes,numClippingPlanes:N.numPlanes,numClipIntersection:N.numIntersection,dithering:kt.dithering,shadowMapEnabled:w.shadowMap.enabled&&li.length>0,shadowMapType:w.shadowMap.type,toneMapping:xo,useLegacyLights:w._useLegacyLights,decodeVideoTexture:Or&&!0===kt.map.isVideoTexture&&Ya.getTransfer(kt.map.colorSpace)===$o,premultipliedAlpha:kt.premultipliedAlpha,doubleSided:kt.side===Y,flipSided:1===kt.side,useDepthPacking:kt.depthPacking>=0,depthPacking:kt.depthPacking||0,index0AttributeName:kt.index0AttributeName,extensionDerivatives:ys&&!0===kt.extensions.derivatives,extensionFragDepth:ys&&!0===kt.extensions.fragDepth,extensionDrawBuffers:ys&&!0===kt.extensions.drawBuffers,extensionShaderTextureLOD:ys&&!0===kt.extensions.shaderTextureLOD,rendererExtensionFragDepth:xe||u.has("EXT_frag_depth"),rendererExtensionDrawBuffers:xe||u.has("WEBGL_draw_buffers"),rendererExtensionShaderTextureLod:xe||u.has("EXT_shader_texture_lod"),rendererExtensionParallelShaderCompile:u.has("KHR_parallel_shader_compile"),customProgramCacheKey:kt.customProgramCacheKey()}},getProgramCacheKey:function ze(kt){const Zt=[];if(kt.shaderID?Zt.push(kt.shaderID):(Zt.push(kt.customVertexShaderID),Zt.push(kt.customFragmentShaderID)),void 0!==kt.defines)for(const li in kt.defines)Zt.push(li),Zt.push(kt.defines[li]);return!1===kt.isRawShaderMaterial&&(function Ct(kt,Zt){kt.push(Zt.precision),kt.push(Zt.outputColorSpace),kt.push(Zt.envMapMode),kt.push(Zt.envMapCubeUVHeight),kt.push(Zt.mapUv),kt.push(Zt.alphaMapUv),kt.push(Zt.lightMapUv),kt.push(Zt.aoMapUv),kt.push(Zt.bumpMapUv),kt.push(Zt.normalMapUv),kt.push(Zt.displacementMapUv),kt.push(Zt.emissiveMapUv),kt.push(Zt.metalnessMapUv),kt.push(Zt.roughnessMapUv),kt.push(Zt.anisotropyMapUv),kt.push(Zt.clearcoatMapUv),kt.push(Zt.clearcoatNormalMapUv),kt.push(Zt.clearcoatRoughnessMapUv),kt.push(Zt.iridescenceMapUv),kt.push(Zt.iridescenceThicknessMapUv),kt.push(Zt.sheenColorMapUv),kt.push(Zt.sheenRoughnessMapUv),kt.push(Zt.specularMapUv),kt.push(Zt.specularColorMapUv),kt.push(Zt.specularIntensityMapUv),kt.push(Zt.transmissionMapUv),kt.push(Zt.thicknessMapUv),kt.push(Zt.combine),kt.push(Zt.fogExp2),kt.push(Zt.sizeAttenuation),kt.push(Zt.morphTargetsCount),kt.push(Zt.morphAttributeCount),kt.push(Zt.numDirLights),kt.push(Zt.numPointLights),kt.push(Zt.numSpotLights),kt.push(Zt.numSpotLightMaps),kt.push(Zt.numHemiLights),kt.push(Zt.numRectAreaLights),kt.push(Zt.numDirLightShadows),kt.push(Zt.numPointLightShadows),kt.push(Zt.numSpotLightShadows),kt.push(Zt.numSpotLightShadowsWithMaps),kt.push(Zt.numLightProbes),kt.push(Zt.shadowMapType),kt.push(Zt.toneMapping),kt.push(Zt.numClippingPlanes),kt.push(Zt.numClipIntersection),kt.push(Zt.depthPacking)}(Zt,kt),function ct(kt,Zt){q.disableAll(),Zt.isWebGL2&&q.enable(0),Zt.supportsVertexTextures&&q.enable(1),Zt.instancing&&q.enable(2),Zt.instancingColor&&q.enable(3),Zt.matcap&&q.enable(4),Zt.envMap&&q.enable(5),Zt.normalMapObjectSpace&&q.enable(6),Zt.normalMapTangentSpace&&q.enable(7),Zt.clearcoat&&q.enable(8),Zt.iridescence&&q.enable(9),Zt.alphaTest&&q.enable(10),Zt.vertexColors&&q.enable(11),Zt.vertexAlphas&&q.enable(12),Zt.vertexUv1s&&q.enable(13),Zt.vertexUv2s&&q.enable(14),Zt.vertexUv3s&&q.enable(15),Zt.vertexTangents&&q.enable(16),Zt.anisotropy&&q.enable(17),Zt.alphaHash&&q.enable(18),kt.push(q.mask),q.disableAll(),Zt.fog&&q.enable(0),Zt.useFog&&q.enable(1),Zt.flatShading&&q.enable(2),Zt.logarithmicDepthBuffer&&q.enable(3),Zt.skinning&&q.enable(4),Zt.morphTargets&&q.enable(5),Zt.morphNormals&&q.enable(6),Zt.morphColors&&q.enable(7),Zt.premultipliedAlpha&&q.enable(8),Zt.shadowMapEnabled&&q.enable(9),Zt.useLegacyLights&&q.enable(10),Zt.doubleSided&&q.enable(11),Zt.flipSided&&q.enable(12),Zt.useDepthPacking&&q.enable(13),Zt.dithering&&q.enable(14),Zt.transmission&&q.enable(15),Zt.sheen&&q.enable(16),Zt.opaque&&q.enable(17),Zt.pointsUvs&&q.enable(18),Zt.decodeVideoTexture&&q.enable(19),kt.push(q.mask)}(Zt,kt),Zt.push(w.outputColorSpace)),Zt.push(kt.customProgramCacheKey),Zt.join()},getUniforms:function Dt(kt){const Zt=Ke[kt.type];let li;return li=Zt?dl.clone(mu[Zt].uniforms):kt.uniforms,li},acquireProgram:function Jt(kt,Zt){let li;for(let Ti=0,hr=pe.length;Ti0?u.push(ze):!0===Le.transparent?m.push(ze):c.push(ze)},unshift:function de(Ie,Be,Le,Ke,ft,Qe){const ze=N(Ie,Be,Le,Ke,ft,Qe);Le.transmission>0?u.unshift(ze):!0===Le.transparent?m.unshift(ze):c.unshift(ze)},finish:function xe(){for(let Ie=a,Be=w.length;Ie1&&c.sort(Ie||Js),u.length>1&&u.sort(Be||Zo),m.length>1&&m.sort(Be||Zo)}}}function nh(){let w=new WeakMap;return{get:function a(u,m){const M=w.get(u);let N;return void 0===M?(N=new th,w.set(u,[N])):m>=M.length?(N=new th,M.push(N)):N=M[m],N},dispose:function c(){w=new WeakMap}}}function td(){const w={};return{get:function(a){if(void 0!==w[a.id])return w[a.id];let c;switch(a.type){case"DirectionalLight":c={direction:new Ft,color:new Os};break;case"SpotLight":c={position:new Ft,direction:new Ft,color:new Os,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":c={position:new Ft,color:new Os,distance:0,decay:0};break;case"HemisphereLight":c={direction:new Ft,skyColor:new Os,groundColor:new Os};break;case"RectAreaLight":c={color:new Os,position:new Ft,halfWidth:new Ft,halfHeight:new Ft}}return w[a.id]=c,c}}}let Jl=0;function cp(w,a){return(a.castShadow?2:0)-(w.castShadow?2:0)+(a.map?1:0)-(w.map?1:0)}function a0(w,a){const c=new td,u=function Ld(){const w={};return{get:function(a){if(void 0!==w[a.id])return w[a.id];let c;switch(a.type){case"DirectionalLight":case"SpotLight":c={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Ui};break;case"PointLight":c={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Ui,shadowCameraNear:1,shadowCameraFar:1e3}}return w[a.id]=c,c}}}(),m={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1,numSpotMaps:-1,numLightProbes:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotLightMap:[],spotShadow:[],spotShadowMap:[],spotLightMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[],numSpotLightShadowsWithMaps:0,numLightProbes:0};for(let xe=0;xe<9;xe++)m.probe.push(new Ft);const M=new Ft,N=new bo,q=new bo;return{setup:function de(xe,Ie){let Be=0,Le=0,Ke=0;for(let Ti=0;Ti<9;Ti++)m.probe[Ti].set(0,0,0);let ft=0,Qe=0,ze=0,Ct=0,ct=0,Dt=0,Jt=0,ln=0,rn=0,Rn=0,kt=0;xe.sort(cp);const Zt=!0===Ie?Math.PI:1;for(let Ti=0,hr=xe.length;Ti0&&(a.isWebGL2||!0===w.has("OES_texture_float_linear")?(m.rectAreaLTC1=ds.LTC_FLOAT_1,m.rectAreaLTC2=ds.LTC_FLOAT_2):!0===w.has("OES_texture_half_float_linear")?(m.rectAreaLTC1=ds.LTC_HALF_1,m.rectAreaLTC2=ds.LTC_HALF_2):console.error("THREE.WebGLRenderer: Unable to use RectAreaLight. Missing WebGL extensions.")),m.ambient[0]=Be,m.ambient[1]=Le,m.ambient[2]=Ke;const li=m.hash;(li.directionalLength!==ft||li.pointLength!==Qe||li.spotLength!==ze||li.rectAreaLength!==Ct||li.hemiLength!==ct||li.numDirectionalShadows!==Dt||li.numPointShadows!==Jt||li.numSpotShadows!==ln||li.numSpotMaps!==rn||li.numLightProbes!==kt)&&(m.directional.length=ft,m.spot.length=ze,m.rectArea.length=Ct,m.point.length=Qe,m.hemi.length=ct,m.directionalShadow.length=Dt,m.directionalShadowMap.length=Dt,m.pointShadow.length=Jt,m.pointShadowMap.length=Jt,m.spotShadow.length=ln,m.spotShadowMap.length=ln,m.directionalShadowMatrix.length=Dt,m.pointShadowMatrix.length=Jt,m.spotLightMatrix.length=ln+rn-Rn,m.spotLightMap.length=rn,m.numSpotLightShadowsWithMaps=Rn,m.numLightProbes=kt,li.directionalLength=ft,li.pointLength=Qe,li.spotLength=ze,li.rectAreaLength=Ct,li.hemiLength=ct,li.numDirectionalShadows=Dt,li.numPointShadows=Jt,li.numSpotShadows=ln,li.numSpotMaps=rn,li.numLightProbes=kt,m.version=Jl++)},setupView:function pe(xe,Ie){let Be=0,Le=0,Ke=0,ft=0,Qe=0;const ze=Ie.matrixWorldInverse;for(let Ct=0,ct=xe.length;Ct=q.length?(de=new l0(w,a),q.push(de)):de=q[N],de},dispose:function m(){c=new WeakMap}}}class em extends kc{constructor(a){super(),this.isMeshDepthMaterial=!0,this.type="MeshDepthMaterial",this.depthPacking=3200,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.setValues(a)}copy(a){return super.copy(a),this.depthPacking=a.depthPacking,this.map=a.map,this.alphaMap=a.alphaMap,this.displacementMap=a.displacementMap,this.displacementScale=a.displacementScale,this.displacementBias=a.displacementBias,this.wireframe=a.wireframe,this.wireframeLinewidth=a.wireframeLinewidth,this}}class gu extends kc{constructor(a){super(),this.isMeshDistanceMaterial=!0,this.type="MeshDistanceMaterial",this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.setValues(a)}copy(a){return super.copy(a),this.map=a.map,this.alphaMap=a.alphaMap,this.displacementMap=a.displacementMap,this.displacementScale=a.displacementScale,this.displacementBias=a.displacementBias,this}}function wf(w,a,c){let u=new ef;const m=new Ui,M=new Ui,N=new il,q=new em({depthPacking:3201}),de=new gu,pe={},xe=c.maxTextureSize,Ie={[F]:1,1:F,[Y]:Y},Be=new zl({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new Ui},radius:{value:4}},vertexShader:"void main() {\n\tgl_Position = vec4( position, 1.0 );\n}",fragmentShader:"uniform sampler2D shadow_pass;\nuniform vec2 resolution;\nuniform float radius;\n#include \nvoid main() {\n\tconst float samples = float( VSM_SAMPLES );\n\tfloat mean = 0.0;\n\tfloat squared_mean = 0.0;\n\tfloat uvStride = samples <= 1.0 ? 0.0 : 2.0 / ( samples - 1.0 );\n\tfloat uvStart = samples <= 1.0 ? 0.0 : - 1.0;\n\tfor ( float i = 0.0; i < samples; i ++ ) {\n\t\tfloat uvOffset = uvStart + i * uvStride;\n\t\t#ifdef HORIZONTAL_PASS\n\t\t\tvec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ) );\n\t\t\tmean += distribution.x;\n\t\t\tsquared_mean += distribution.y * distribution.y + distribution.x * distribution.x;\n\t\t#else\n\t\t\tfloat depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ) );\n\t\t\tmean += depth;\n\t\t\tsquared_mean += depth * depth;\n\t\t#endif\n\t}\n\tmean = mean / samples;\n\tsquared_mean = squared_mean / samples;\n\tfloat std_dev = sqrt( squared_mean - mean * mean );\n\tgl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) );\n}"}),Le=Be.clone();Le.defines.HORIZONTAL_PASS=1;const Ke=new Cs;Ke.setAttribute("position",new sa(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));const ft=new Jc(Ke,Be),Qe=this;this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=He;let ze=this.type;function Ct(Jt,ln){const rn=a.update(ft);Be.defines.VSM_SAMPLES!==Jt.blurSamples&&(Be.defines.VSM_SAMPLES=Jt.blurSamples,Le.defines.VSM_SAMPLES=Jt.blurSamples,Be.needsUpdate=!0,Le.needsUpdate=!0),null===Jt.mapPass&&(Jt.mapPass=new Fh(m.x,m.y)),Be.uniforms.shadow_pass.value=Jt.map.texture,Be.uniforms.resolution.value=Jt.mapSize,Be.uniforms.radius.value=Jt.radius,w.setRenderTarget(Jt.mapPass),w.clear(),w.renderBufferDirect(ln,null,rn,Be,ft,null),Le.uniforms.shadow_pass.value=Jt.mapPass.texture,Le.uniforms.resolution.value=Jt.mapSize,Le.uniforms.radius.value=Jt.radius,w.setRenderTarget(Jt.map),w.clear(),w.renderBufferDirect(ln,null,rn,Le,ft,null)}function ct(Jt,ln,rn,Rn){let kt=null;const Zt=!0===rn.isPointLight?Jt.customDistanceMaterial:Jt.customDepthMaterial;if(void 0!==Zt)kt=Zt;else if(kt=!0===rn.isPointLight?de:q,w.localClippingEnabled&&!0===ln.clipShadows&&Array.isArray(ln.clippingPlanes)&&0!==ln.clippingPlanes.length||ln.displacementMap&&0!==ln.displacementScale||ln.alphaMap&&ln.alphaTest>0||ln.map&&ln.alphaTest>0){const li=kt.uuid,Ti=ln.uuid;let hr=pe[li];void 0===hr&&(hr={},pe[li]=hr);let Yn=hr[Ti];void 0===Yn&&(Yn=kt.clone(),hr[Ti]=Yn),kt=Yn}return kt.visible=ln.visible,kt.wireframe=ln.wireframe,kt.side=Rn===De?null!==ln.shadowSide?ln.shadowSide:ln.side:null!==ln.shadowSide?ln.shadowSide:Ie[ln.side],kt.alphaMap=ln.alphaMap,kt.alphaTest=ln.alphaTest,kt.map=ln.map,kt.clipShadows=ln.clipShadows,kt.clippingPlanes=ln.clippingPlanes,kt.clipIntersection=ln.clipIntersection,kt.displacementMap=ln.displacementMap,kt.displacementScale=ln.displacementScale,kt.displacementBias=ln.displacementBias,kt.wireframeLinewidth=ln.wireframeLinewidth,kt.linewidth=ln.linewidth,!0===rn.isPointLight&&!0===kt.isMeshDistanceMaterial&&(w.properties.get(kt).light=rn),kt}function Dt(Jt,ln,rn,Rn,kt){if(!1===Jt.visible)return;if(Jt.layers.test(ln.layers)&&(Jt.isMesh||Jt.isLine||Jt.isPoints)&&(Jt.castShadow||Jt.receiveShadow&&kt===De)&&(!Jt.frustumCulled||u.intersectsObject(Jt))){Jt.modelViewMatrix.multiplyMatrices(rn.matrixWorldInverse,Jt.matrixWorld);const Ti=a.update(Jt),hr=Jt.material;if(Array.isArray(hr)){const Yn=Ti.groups;for(let Di=0,rr=Yn.length;Dixe||m.y>xe)&&(m.x>xe&&(M.x=Math.floor(xe/br.x),m.x=M.x*br.x,Oi.mapSize.x=M.x),m.y>xe&&(M.y=Math.floor(xe/br.y),m.y=M.y*br.y,Oi.mapSize.y=M.y)),null===Oi.map||!0===Ti||!0===hr){const lr=this.type!==De?{minFilter:ti,magFilter:ti}:{};null!==Oi.map&&Oi.map.dispose(),Oi.map=new Fh(m.x,m.y,lr),Oi.map.texture.name=rr.name+".shadowMap",Oi.camera.updateProjectionMatrix()}w.setRenderTarget(Oi.map),w.clear();const Ji=Oi.getViewportCount();for(let lr=0;lr=1):-1!==lr.indexOf("OpenGL ES")&&(Ji=parseFloat(/^OpenGL ES (\d)/.exec(lr)[1]),br=Ji>=2);let ei=null,sr={};const as=w.getParameter(w.SCISSOR_BOX),xs=w.getParameter(w.VIEWPORT),Ds=(new il).fromArray(as),fs=(new il).fromArray(xs);function eo(Kn,ys,jr,dr){const ts=new Uint8Array(4),xo=w.createTexture();w.bindTexture(Kn,xo),w.texParameteri(Kn,w.TEXTURE_MIN_FILTER,w.NEAREST),w.texParameteri(Kn,w.TEXTURE_MAG_FILTER,w.NEAREST);for(let Na=0;Na"u")&&/OculusBrowser/g.test(navigator.userAgent),Ke=new WeakMap;let ft;const Qe=new WeakMap;let ze=!1;try{ze=typeof OffscreenCanvas<"u"&&null!==new OffscreenCanvas(1,1).getContext("2d")}catch{}function Ct($t,Pt){return ze?new OffscreenCanvas($t,Pt):mi("canvas")}function ct($t,Pt,ni,cr){let Ar=1;if(($t.width>cr||$t.height>cr)&&(Ar=cr/Math.max($t.width,$t.height)),Ar<1||!0===Pt){if(typeof HTMLImageElement<"u"&&$t instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&$t instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&$t instanceof ImageBitmap){const Br=Pt?Xd:Math.floor,ks=Br(Ar*$t.width),Ir=Br(Ar*$t.height);void 0===ft&&(ft=Ct(ks,Ir));const es=ni?Ct(ks,Ir):ft;return es.width=ks,es.height=Ir,es.getContext("2d").drawImage($t,0,0,ks,Ir),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+$t.width+"x"+$t.height+") to ("+ks+"x"+Ir+")."),es}return"data"in $t&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+$t.width+"x"+$t.height+")."),$t}return $t}function Dt($t){return gh($t.width)&&gh($t.height)}function ln($t,Pt){return $t.generateMipmaps&&Pt&&$t.minFilter!==ti&&$t.minFilter!==xt}function rn($t){w.generateMipmap($t)}function Rn($t,Pt,ni,cr,Ar=!1){if(!1===q)return Pt;if(null!==$t){if(void 0!==w[$t])return w[$t];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+$t+"'")}let Br=Pt;if(Pt===w.RED&&(ni===w.FLOAT&&(Br=w.R32F),ni===w.HALF_FLOAT&&(Br=w.R16F),ni===w.UNSIGNED_BYTE&&(Br=w.R8)),Pt===w.RED_INTEGER&&(ni===w.UNSIGNED_BYTE&&(Br=w.R8UI),ni===w.UNSIGNED_SHORT&&(Br=w.R16UI),ni===w.UNSIGNED_INT&&(Br=w.R32UI),ni===w.BYTE&&(Br=w.R8I),ni===w.SHORT&&(Br=w.R16I),ni===w.INT&&(Br=w.R32I)),Pt===w.RG&&(ni===w.FLOAT&&(Br=w.RG32F),ni===w.HALF_FLOAT&&(Br=w.RG16F),ni===w.UNSIGNED_BYTE&&(Br=w.RG8)),Pt===w.RGBA){const ks=Ar?tl:Ya.getTransfer(cr);ni===w.FLOAT&&(Br=w.RGBA32F),ni===w.HALF_FLOAT&&(Br=w.RGBA16F),ni===w.UNSIGNED_BYTE&&(Br=ks===$o?w.SRGB8_ALPHA8:w.RGBA8),ni===w.UNSIGNED_SHORT_4_4_4_4&&(Br=w.RGBA4),ni===w.UNSIGNED_SHORT_5_5_5_1&&(Br=w.RGB5_A1)}return(Br===w.R16F||Br===w.R32F||Br===w.RG16F||Br===w.RG32F||Br===w.RGBA16F||Br===w.RGBA32F)&&a.get("EXT_color_buffer_float"),Br}function kt($t,Pt,ni){return!0===ln($t,ni)||$t.isFramebufferTexture&&$t.minFilter!==ti&&$t.minFilter!==xt?Math.log2(Math.max(Pt.width,Pt.height))+1:void 0!==$t.mipmaps&&$t.mipmaps.length>0?$t.mipmaps.length:$t.isCompressedTexture&&Array.isArray($t.image)?Pt.mipmaps.length:1}function Zt($t){return $t===ti||1004===$t||1005===$t?w.NEAREST:w.LINEAR}function li($t){const Pt=$t.target;Pt.removeEventListener("dispose",li),function hr($t){const Pt=u.get($t);if(void 0===Pt.__webglInit)return;const ni=$t.source,cr=Qe.get(ni);if(cr){const Ar=cr[Pt.__cacheKey];Ar.usedTimes--,0===Ar.usedTimes&&Yn($t),0===Object.keys(cr).length&&Qe.delete(ni)}u.remove($t)}(Pt),Pt.isVideoTexture&&Ke.delete(Pt)}function Ti($t){const Pt=$t.target;Pt.removeEventListener("dispose",Ti),function Di($t){const Pt=$t.texture,ni=u.get($t),cr=u.get(Pt);if(void 0!==cr.__webglTexture&&(w.deleteTexture(cr.__webglTexture),N.memory.textures--),$t.depthTexture&&$t.depthTexture.dispose(),$t.isWebGLCubeRenderTarget)for(let Ar=0;Ar<6;Ar++){if(Array.isArray(ni.__webglFramebuffer[Ar]))for(let Br=0;Br0&&ni.__version!==$t.version){const cr=$t.image;if(null===cr)console.warn("THREE.WebGLRenderer: Texture marked for update but no image data found.");else{if(!1!==cr.complete)return void Or(ni,$t,Pt);console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete")}}c.bindTexture(w.TEXTURE_2D,ni.__webglTexture,w.TEXTURE0+Pt)}const xs={1e3:w.REPEAT,[ai]:w.CLAMP_TO_EDGE,1002:w.MIRRORED_REPEAT},Ds={[ti]:w.NEAREST,1004:w.NEAREST_MIPMAP_NEAREST,1005:w.NEAREST_MIPMAP_LINEAR,[xt]:w.LINEAR,1007:w.LINEAR_MIPMAP_NEAREST,[ye]:w.LINEAR_MIPMAP_LINEAR},fs={512:w.NEVER,519:w.ALWAYS,513:w.LESS,515:w.LEQUAL,514:w.EQUAL,518:w.GEQUAL,516:w.GREATER,517:w.NOTEQUAL};function eo($t,Pt,ni){if(ni?(w.texParameteri($t,w.TEXTURE_WRAP_S,xs[Pt.wrapS]),w.texParameteri($t,w.TEXTURE_WRAP_T,xs[Pt.wrapT]),($t===w.TEXTURE_3D||$t===w.TEXTURE_2D_ARRAY)&&w.texParameteri($t,w.TEXTURE_WRAP_R,xs[Pt.wrapR]),w.texParameteri($t,w.TEXTURE_MAG_FILTER,Ds[Pt.magFilter]),w.texParameteri($t,w.TEXTURE_MIN_FILTER,Ds[Pt.minFilter])):(w.texParameteri($t,w.TEXTURE_WRAP_S,w.CLAMP_TO_EDGE),w.texParameteri($t,w.TEXTURE_WRAP_T,w.CLAMP_TO_EDGE),($t===w.TEXTURE_3D||$t===w.TEXTURE_2D_ARRAY)&&w.texParameteri($t,w.TEXTURE_WRAP_R,w.CLAMP_TO_EDGE),(Pt.wrapS!==ai||Pt.wrapT!==ai)&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping."),w.texParameteri($t,w.TEXTURE_MAG_FILTER,Zt(Pt.magFilter)),w.texParameteri($t,w.TEXTURE_MIN_FILTER,Zt(Pt.minFilter)),Pt.minFilter!==ti&&Pt.minFilter!==xt&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.")),Pt.compareFunction&&(w.texParameteri($t,w.TEXTURE_COMPARE_MODE,w.COMPARE_REF_TO_TEXTURE),w.texParameteri($t,w.TEXTURE_COMPARE_FUNC,fs[Pt.compareFunction])),!0===a.has("EXT_texture_filter_anisotropic")){const cr=a.get("EXT_texture_filter_anisotropic");if(Pt.magFilter===ti||1005!==Pt.minFilter&&Pt.minFilter!==ye||Pt.type===cn&&!1===a.has("OES_texture_float_linear")||!1===q&&Pt.type===In&&!1===a.has("OES_texture_half_float_linear"))return;(Pt.anisotropy>1||u.get(Pt).__currentAnisotropy)&&(w.texParameterf($t,cr.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(Pt.anisotropy,m.getMaxAnisotropy())),u.get(Pt).__currentAnisotropy=Pt.anisotropy)}}function er($t,Pt){let ni=!1;void 0===$t.__webglInit&&($t.__webglInit=!0,Pt.addEventListener("dispose",li));const cr=Pt.source;let Ar=Qe.get(cr);void 0===Ar&&(Ar={},Qe.set(cr,Ar));const Br=function Ji($t){const Pt=[];return Pt.push($t.wrapS),Pt.push($t.wrapT),Pt.push($t.wrapR||0),Pt.push($t.magFilter),Pt.push($t.minFilter),Pt.push($t.anisotropy),Pt.push($t.internalFormat),Pt.push($t.format),Pt.push($t.type),Pt.push($t.generateMipmaps),Pt.push($t.premultiplyAlpha),Pt.push($t.flipY),Pt.push($t.unpackAlignment),Pt.push($t.colorSpace),Pt.join()}(Pt);if(Br!==$t.__cacheKey){void 0===Ar[Br]&&(Ar[Br]={texture:w.createTexture(),usedTimes:0},N.memory.textures++,ni=!0),Ar[Br].usedTimes++;const ks=Ar[$t.__cacheKey];void 0!==ks&&(Ar[$t.__cacheKey].usedTimes--,0===ks.usedTimes&&Yn(Pt)),$t.__cacheKey=Br,$t.__webglTexture=Ar[Br].texture}return ni}function Or($t,Pt,ni){let cr=w.TEXTURE_2D;(Pt.isDataArrayTexture||Pt.isCompressedArrayTexture)&&(cr=w.TEXTURE_2D_ARRAY),Pt.isData3DTexture&&(cr=w.TEXTURE_3D);const Ar=er($t,Pt),Br=Pt.source;c.bindTexture(cr,$t.__webglTexture,w.TEXTURE0+ni);const ks=u.get(Br);if(Br.version!==ks.__version||!0===Ar){c.activeTexture(w.TEXTURE0+ni);const Ir=Ya.getPrimaries(Ya.workingColorSpace),es=""===Pt.colorSpace?null:Ya.getPrimaries(Pt.colorSpace),Nn=""===Pt.colorSpace||Ir===es?w.NONE:w.BROWSER_DEFAULT_WEBGL;w.pixelStorei(w.UNPACK_FLIP_Y_WEBGL,Pt.flipY),w.pixelStorei(w.UNPACK_PREMULTIPLY_ALPHA_WEBGL,Pt.premultiplyAlpha),w.pixelStorei(w.UNPACK_ALIGNMENT,Pt.unpackAlignment),w.pixelStorei(w.UNPACK_COLORSPACE_CONVERSION_WEBGL,Nn);const Hr=function Jt($t){return!q&&($t.wrapS!==ai||$t.wrapT!==ai||$t.minFilter!==ti&&$t.minFilter!==xt)}(Pt)&&!1===Dt(Pt.image);let xr=ct(Pt.image,Hr,!1,xe);xr=_s(Pt,xr);const Oo=Dt(xr)||q,Ao=M.convert(Pt.format,Pt.colorSpace);let Ps,fo=M.convert(Pt.type),to=Rn(Pt.internalFormat,Ao,fo,Pt.colorSpace,Pt.isVideoTexture);eo(cr,Pt,Oo);const _a=Pt.mipmaps,Kn=q&&!0!==Pt.isVideoTexture,ys=void 0===ks.__version||!0===Ar,jr=kt(Pt,xr,Oo);if(Pt.isDepthTexture)to=w.DEPTH_COMPONENT,q?to=Pt.type===cn?w.DEPTH_COMPONENT32F:Pt.type===kn?w.DEPTH_COMPONENT24:Pt.type===Si?w.DEPTH24_STENCIL8:w.DEPTH_COMPONENT16:Pt.type===cn&&console.error("WebGLRenderer: Floating point depth texture requires WebGL2."),Pt.format===Rs&&to===w.DEPTH_COMPONENT&&1012!==Pt.type&&Pt.type!==kn&&(console.warn("THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture."),Pt.type=kn,fo=M.convert(Pt.type)),Pt.format===oe&&to===w.DEPTH_COMPONENT&&(to=w.DEPTH_STENCIL,Pt.type!==Si&&(console.warn("THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture."),Pt.type=Si,fo=M.convert(Pt.type))),ys&&(Kn?c.texStorage2D(w.TEXTURE_2D,1,to,xr.width,xr.height):c.texImage2D(w.TEXTURE_2D,0,to,xr.width,xr.height,0,Ao,fo,null));else if(Pt.isDataTexture)if(_a.length>0&&Oo){Kn&&ys&&c.texStorage2D(w.TEXTURE_2D,jr,to,_a[0].width,_a[0].height);for(let dr=0,ts=_a.length;dr>=1,ts>>=1}}else if(_a.length>0&&Oo){Kn&&ys&&c.texStorage2D(w.TEXTURE_2D,jr,to,_a[0].width,_a[0].height);for(let dr=0,ts=_a.length;dr>Br),xr=Math.max(1,Pt.height>>Br);Ar===w.TEXTURE_3D||Ar===w.TEXTURE_2D_ARRAY?c.texImage3D(Ar,Br,es,Hr,xr,Pt.depth,0,ks,Ir,null):c.texImage2D(Ar,Br,es,Hr,xr,0,ks,Ir,null)}c.bindFramebuffer(w.FRAMEBUFFER,$t),hs(Pt)?Be.framebufferTexture2DMultisampleEXT(w.FRAMEBUFFER,cr,Ar,u.get(ni).__webglTexture,0,fr(Pt)):(Ar===w.TEXTURE_2D||Ar>=w.TEXTURE_CUBE_MAP_POSITIVE_X&&Ar<=w.TEXTURE_CUBE_MAP_NEGATIVE_Z)&&w.framebufferTexture2D(w.FRAMEBUFFER,cr,Ar,u.get(ni).__webglTexture,Br),c.bindFramebuffer(w.FRAMEBUFFER,null)}function _n($t,Pt,ni){if(w.bindRenderbuffer(w.RENDERBUFFER,$t),Pt.depthBuffer&&!Pt.stencilBuffer){let cr=!0===q?w.DEPTH_COMPONENT24:w.DEPTH_COMPONENT16;if(ni||hs(Pt)){const Ar=Pt.depthTexture;Ar&&Ar.isDepthTexture&&(Ar.type===cn?cr=w.DEPTH_COMPONENT32F:Ar.type===kn&&(cr=w.DEPTH_COMPONENT24));const Br=fr(Pt);hs(Pt)?Be.renderbufferStorageMultisampleEXT(w.RENDERBUFFER,Br,cr,Pt.width,Pt.height):w.renderbufferStorageMultisample(w.RENDERBUFFER,Br,cr,Pt.width,Pt.height)}else w.renderbufferStorage(w.RENDERBUFFER,cr,Pt.width,Pt.height);w.framebufferRenderbuffer(w.FRAMEBUFFER,w.DEPTH_ATTACHMENT,w.RENDERBUFFER,$t)}else if(Pt.depthBuffer&&Pt.stencilBuffer){const cr=fr(Pt);ni&&!1===hs(Pt)?w.renderbufferStorageMultisample(w.RENDERBUFFER,cr,w.DEPTH24_STENCIL8,Pt.width,Pt.height):hs(Pt)?Be.renderbufferStorageMultisampleEXT(w.RENDERBUFFER,cr,w.DEPTH24_STENCIL8,Pt.width,Pt.height):w.renderbufferStorage(w.RENDERBUFFER,w.DEPTH_STENCIL,Pt.width,Pt.height),w.framebufferRenderbuffer(w.FRAMEBUFFER,w.DEPTH_STENCIL_ATTACHMENT,w.RENDERBUFFER,$t)}else{const cr=!0===Pt.isWebGLMultipleRenderTargets?Pt.texture:[Pt.texture];for(let Ar=0;Ar0&&!0===a.has("WEBGL_multisampled_render_to_texture")&&!1!==Pt.__useRenderToTexture}function _s($t,Pt){const ni=$t.colorSpace,cr=$t.format,Ar=$t.type;return!0===$t.isCompressedTexture||!0===$t.isVideoTexture||1035===$t.format||ni!==sc&&""!==ni&&(Ya.getTransfer(ni)===$o?!1===q?!0===a.has("EXT_sRGB")&&cr===Jn?($t.format=1035,$t.minFilter=xt,$t.generateMipmaps=!1):Pt=yh.sRGBToLinear(Pt):(cr!==Jn||Ar!==At)&&console.warn("THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):console.error("THREE.WebGLTextures: Unsupported texture color space:",ni)),Pt}this.allocateTextureUnit=function br(){const $t=rr;return $t>=de&&console.warn("THREE.WebGLTextures: Trying to use "+$t+" texture units while this GPU supports only "+de),rr+=1,$t},this.resetTextureUnits=function Oi(){rr=0},this.setTexture2D=lr,this.setTexture2DArray=function ei($t,Pt){const ni=u.get($t);$t.version>0&&ni.__version!==$t.version?Or(ni,$t,Pt):c.bindTexture(w.TEXTURE_2D_ARRAY,ni.__webglTexture,w.TEXTURE0+Pt)},this.setTexture3D=function sr($t,Pt){const ni=u.get($t);$t.version>0&&ni.__version!==$t.version?Or(ni,$t,Pt):c.bindTexture(w.TEXTURE_3D,ni.__webglTexture,w.TEXTURE0+Pt)},this.setTextureCube=function as($t,Pt){const ni=u.get($t);$t.version>0&&ni.__version!==$t.version?function yr($t,Pt,ni){if(6!==Pt.image.length)return;const cr=er($t,Pt),Ar=Pt.source;c.bindTexture(w.TEXTURE_CUBE_MAP,$t.__webglTexture,w.TEXTURE0+ni);const Br=u.get(Ar);if(Ar.version!==Br.__version||!0===cr){c.activeTexture(w.TEXTURE0+ni);const ks=Ya.getPrimaries(Ya.workingColorSpace),Ir=""===Pt.colorSpace?null:Ya.getPrimaries(Pt.colorSpace),es=""===Pt.colorSpace||ks===Ir?w.NONE:w.BROWSER_DEFAULT_WEBGL;w.pixelStorei(w.UNPACK_FLIP_Y_WEBGL,Pt.flipY),w.pixelStorei(w.UNPACK_PREMULTIPLY_ALPHA_WEBGL,Pt.premultiplyAlpha),w.pixelStorei(w.UNPACK_ALIGNMENT,Pt.unpackAlignment),w.pixelStorei(w.UNPACK_COLORSPACE_CONVERSION_WEBGL,es);const Nn=Pt.isCompressedTexture||Pt.image[0].isCompressedTexture,Hr=Pt.image[0]&&Pt.image[0].isDataTexture,xr=[];for(let dr=0;dr<6;dr++)xr[dr]=Nn||Hr?Hr?Pt.image[dr].image:Pt.image[dr]:ct(Pt.image[dr],!1,!0,pe),xr[dr]=_s(Pt,xr[dr]);const Oo=xr[0],Ao=Dt(Oo)||q,fo=M.convert(Pt.format,Pt.colorSpace),to=M.convert(Pt.type),Ps=Rn(Pt.internalFormat,fo,to,Pt.colorSpace),_a=q&&!0!==Pt.isVideoTexture,Kn=void 0===Br.__version||!0===cr;let jr,ys=kt(Pt,Oo,Ao);if(eo(w.TEXTURE_CUBE_MAP,Pt,Ao),Nn){_a&&Kn&&c.texStorage2D(w.TEXTURE_CUBE_MAP,ys,Ps,Oo.width,Oo.height);for(let dr=0;dr<6;dr++){jr=xr[dr].mipmaps;for(let ts=0;ts0&&ys++,c.texStorage2D(w.TEXTURE_CUBE_MAP,ys,Ps,xr[0].width,xr[0].height));for(let dr=0;dr<6;dr++)if(Hr){_a?c.texSubImage2D(w.TEXTURE_CUBE_MAP_POSITIVE_X+dr,0,0,0,xr[dr].width,xr[dr].height,fo,to,xr[dr].data):c.texImage2D(w.TEXTURE_CUBE_MAP_POSITIVE_X+dr,0,Ps,xr[dr].width,xr[dr].height,0,fo,to,xr[dr].data);for(let ts=0;ts0){ni.__webglFramebuffer[Ir]=[];for(let es=0;es0){ni.__webglFramebuffer=[];for(let Ir=0;Ir0&&!1===hs($t)){const Ir=Br?Pt:[Pt];ni.__webglMultisampledFramebuffer=w.createFramebuffer(),ni.__webglColorRenderbuffer=[],c.bindFramebuffer(w.FRAMEBUFFER,ni.__webglMultisampledFramebuffer);for(let es=0;es0)for(let es=0;es0)for(let es=0;es0&&!1===hs($t)){const Pt=$t.isWebGLMultipleRenderTargets?$t.texture:[$t.texture],ni=$t.width,cr=$t.height;let Ar=w.COLOR_BUFFER_BIT;const Br=[],ks=$t.stencilBuffer?w.DEPTH_STENCIL_ATTACHMENT:w.DEPTH_ATTACHMENT,Ir=u.get($t),es=!0===$t.isWebGLMultipleRenderTargets;if(es)for(let Nn=0;NnLe+Ke?(pe.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:a.handedness,target:this})):!pe.inputState.pinching&&Be<=Le-Ke&&(pe.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:a.handedness,target:this}))}else null!==de&&a.gripSpace&&(M=c.getPose(a.gripSpace,u),null!==M&&(de.matrix.fromArray(M.transform.matrix),de.matrix.decompose(de.position,de.rotation,de.scale),de.matrixWorldNeedsUpdate=!0,M.linearVelocity?(de.hasLinearVelocity=!0,de.linearVelocity.copy(M.linearVelocity)):de.hasLinearVelocity=!1,M.angularVelocity?(de.hasAngularVelocity=!0,de.angularVelocity.copy(M.angularVelocity)):de.hasAngularVelocity=!1));null!==q&&(m=c.getPose(a.targetRaySpace,u),null===m&&null!==M&&(m=M),null!==m&&(q.matrix.fromArray(m.transform.matrix),q.matrix.decompose(q.position,q.rotation,q.scale),q.matrixWorldNeedsUpdate=!0,m.linearVelocity?(q.hasLinearVelocity=!0,q.linearVelocity.copy(m.linearVelocity)):q.hasLinearVelocity=!1,m.angularVelocity?(q.hasAngularVelocity=!0,q.angularVelocity.copy(m.angularVelocity)):q.hasAngularVelocity=!1,this.dispatchEvent(Sa)))}return null!==q&&(q.visible=null!==m),null!==de&&(de.visible=null!==M),null!==pe&&(pe.visible=null!==N),this}_getHandJoint(a,c){if(void 0===a.joints[c.jointName]){const u=new nd;u.matrixAutoUpdate=!1,u.visible=!1,a.joints[c.jointName]=u,a.add(u)}return a.joints[c.jointName]}}class _u extends vh{constructor(a,c,u,m,M,N,q,de,pe,xe){if((xe=void 0!==xe?xe:Rs)!==Rs&&xe!==oe)throw new Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");void 0===u&&xe===Rs&&(u=kn),void 0===u&&xe===oe&&(u=Si),super(null,m,M,N,q,de,xe,u,pe),this.isDepthTexture=!0,this.image={width:a,height:c},this.magFilter=void 0!==q?q:ti,this.minFilter=void 0!==de?de:ti,this.flipY=!1,this.generateMipmaps=!1,this.compareFunction=null}copy(a){return super.copy(a),this.compareFunction=a.compareFunction,this}toJSON(a){const c=super.toJSON(a);return null!==this.compareFunction&&(c.compareFunction=this.compareFunction),c}}class QA extends bu{constructor(a,c){super();const u=this;let m=null,M=1,N=null,q="local-floor",de=1,pe=null,xe=null,Ie=null,Be=null,Le=null,Ke=null;const ft=c.getContextAttributes();let Qe=null,ze=null;const Ct=[],ct=[],Dt=new Vl;Dt.layers.enable(1),Dt.viewport=new il;const Jt=new Vl;Jt.layers.enable(2),Jt.viewport=new il;const ln=[Dt,Jt],rn=new Wr;rn.layers.enable(1),rn.layers.enable(2);let Rn=null,kt=null;function Zt(ei){const sr=ct.indexOf(ei.inputSource);if(-1===sr)return;const as=Ct[sr];void 0!==as&&(as.update(ei.inputSource,ei.frame,pe||N),as.dispatchEvent({type:ei.type,data:ei.inputSource}))}function li(){m.removeEventListener("select",Zt),m.removeEventListener("selectstart",Zt),m.removeEventListener("selectend",Zt),m.removeEventListener("squeeze",Zt),m.removeEventListener("squeezestart",Zt),m.removeEventListener("squeezeend",Zt),m.removeEventListener("end",li),m.removeEventListener("inputsourceschange",Ti);for(let ei=0;ei=0&&(ct[xs]=null,Ct[xs].disconnect(as))}for(let sr=0;sr=ct.length){ct.push(as),xs=fs;break}if(null===ct[fs]){ct[fs]=as,xs=fs;break}}if(-1===xs)break}const Ds=Ct[xs];Ds&&Ds.connect(as)}}this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(ei){let sr=Ct[ei];return void 0===sr&&(sr=new ec,Ct[ei]=sr),sr.getTargetRaySpace()},this.getControllerGrip=function(ei){let sr=Ct[ei];return void 0===sr&&(sr=new ec,Ct[ei]=sr),sr.getGripSpace()},this.getHand=function(ei){let sr=Ct[ei];return void 0===sr&&(sr=new ec,Ct[ei]=sr),sr.getHandSpace()},this.setFramebufferScaleFactor=function(ei){M=ei,!0===u.isPresenting&&console.warn("THREE.WebXRManager: Cannot change framebuffer scale while presenting.")},this.setReferenceSpaceType=function(ei){q=ei,!0===u.isPresenting&&console.warn("THREE.WebXRManager: Cannot change reference space type while presenting.")},this.getReferenceSpace=function(){return pe||N},this.setReferenceSpace=function(ei){pe=ei},this.getBaseLayer=function(){return null!==Be?Be:Le},this.getBinding=function(){return Ie},this.getFrame=function(){return Ke},this.getSession=function(){return m},this.setSession=function(){var ei=(0,Te.A)(function*(sr){if(m=sr,null!==m){if(Qe=a.getRenderTarget(),m.addEventListener("select",Zt),m.addEventListener("selectstart",Zt),m.addEventListener("selectend",Zt),m.addEventListener("squeeze",Zt),m.addEventListener("squeezestart",Zt),m.addEventListener("squeezeend",Zt),m.addEventListener("end",li),m.addEventListener("inputsourceschange",Ti),!0!==ft.xrCompatible&&(yield c.makeXRCompatible()),void 0===m.renderState.layers||!1===a.capabilities.isWebGL2)Le=new XRWebGLLayer(m,c,{antialias:void 0!==m.renderState.layers||ft.antialias,alpha:!0,depth:ft.depth,stencil:ft.stencil,framebufferScaleFactor:M}),m.updateRenderState({baseLayer:Le}),ze=new Fh(Le.framebufferWidth,Le.framebufferHeight,{format:Jn,type:At,colorSpace:a.outputColorSpace,stencilBuffer:ft.stencil});else{let as=null,xs=null,Ds=null;ft.depth&&(Ds=ft.stencil?c.DEPTH24_STENCIL8:c.DEPTH_COMPONENT24,as=ft.stencil?oe:Rs,xs=ft.stencil?Si:kn);const fs={colorFormat:c.RGBA8,depthFormat:Ds,scaleFactor:M};Ie=new XRWebGLBinding(m,c),Be=Ie.createProjectionLayer(fs),m.updateRenderState({layers:[Be]}),ze=new Fh(Be.textureWidth,Be.textureHeight,{format:Jn,type:At,depthTexture:new _u(Be.textureWidth,Be.textureHeight,xs,void 0,void 0,void 0,void 0,void 0,void 0,as),stencilBuffer:ft.stencil,colorSpace:a.outputColorSpace,samples:ft.antialias?4:0}),a.properties.get(ze).__ignoreDepthValues=Be.ignoreDepthValues}ze.isXRRenderTarget=!0,this.setFoveation(de),pe=null,N=yield m.requestReferenceSpace(q),lr.setContext(m),lr.start(),u.isPresenting=!0,u.dispatchEvent({type:"sessionstart"})}});return function(sr){return ei.apply(this,arguments)}}(),this.getEnvironmentBlendMode=function(){if(null!==m)return m.environmentBlendMode};const hr=new Ft,Yn=new Ft;function rr(ei,sr){null===sr?ei.matrixWorld.copy(ei.matrix):ei.matrixWorld.multiplyMatrices(sr.matrixWorld,ei.matrix),ei.matrixWorldInverse.copy(ei.matrixWorld).invert()}this.updateCamera=function(ei){if(null===m)return;rn.near=Jt.near=Dt.near=ei.near,rn.far=Jt.far=Dt.far=ei.far,(Rn!==rn.near||kt!==rn.far)&&(m.updateRenderState({depthNear:rn.near,depthFar:rn.far}),Rn=rn.near,kt=rn.far);const sr=ei.parent,as=rn.cameras;rr(rn,sr);for(let xs=0;xs0&&(Qe.alphaTest.value=ze.alphaTest);const Ct=a.get(ze).envMap;if(Ct&&(Qe.envMap.value=Ct,Qe.flipEnvMap.value=Ct.isCubeTexture&&!1===Ct.isRenderTargetTexture?-1:1,Qe.reflectivity.value=ze.reflectivity,Qe.ior.value=ze.ior,Qe.refractionRatio.value=ze.refractionRatio),ze.lightMap){Qe.lightMap.value=ze.lightMap;const ct=!0===w._useLegacyLights?Math.PI:1;Qe.lightMapIntensity.value=ze.lightMapIntensity*ct,c(ze.lightMap,Qe.lightMapTransform)}ze.aoMap&&(Qe.aoMap.value=ze.aoMap,Qe.aoMapIntensity.value=ze.aoMapIntensity,c(ze.aoMap,Qe.aoMapTransform))}return{refreshFogUniforms:function u(Qe,ze){ze.color.getRGB(Qe.fogColor.value,Fc(w)),ze.isFog?(Qe.fogNear.value=ze.near,Qe.fogFar.value=ze.far):ze.isFogExp2&&(Qe.fogDensity.value=ze.density)},refreshMaterialUniforms:function m(Qe,ze,Ct,ct,Dt){ze.isMeshBasicMaterial||ze.isMeshLambertMaterial?M(Qe,ze):ze.isMeshToonMaterial?(M(Qe,ze),function Ie(Qe,ze){ze.gradientMap&&(Qe.gradientMap.value=ze.gradientMap)}(Qe,ze)):ze.isMeshPhongMaterial?(M(Qe,ze),function xe(Qe,ze){Qe.specular.value.copy(ze.specular),Qe.shininess.value=Math.max(ze.shininess,1e-4)}(Qe,ze)):ze.isMeshStandardMaterial?(M(Qe,ze),function Be(Qe,ze){Qe.metalness.value=ze.metalness,ze.metalnessMap&&(Qe.metalnessMap.value=ze.metalnessMap,c(ze.metalnessMap,Qe.metalnessMapTransform)),Qe.roughness.value=ze.roughness,ze.roughnessMap&&(Qe.roughnessMap.value=ze.roughnessMap,c(ze.roughnessMap,Qe.roughnessMapTransform)),a.get(ze).envMap&&(Qe.envMapIntensity.value=ze.envMapIntensity)}(Qe,ze),ze.isMeshPhysicalMaterial&&function Le(Qe,ze,Ct){Qe.ior.value=ze.ior,ze.sheen>0&&(Qe.sheenColor.value.copy(ze.sheenColor).multiplyScalar(ze.sheen),Qe.sheenRoughness.value=ze.sheenRoughness,ze.sheenColorMap&&(Qe.sheenColorMap.value=ze.sheenColorMap,c(ze.sheenColorMap,Qe.sheenColorMapTransform)),ze.sheenRoughnessMap&&(Qe.sheenRoughnessMap.value=ze.sheenRoughnessMap,c(ze.sheenRoughnessMap,Qe.sheenRoughnessMapTransform))),ze.clearcoat>0&&(Qe.clearcoat.value=ze.clearcoat,Qe.clearcoatRoughness.value=ze.clearcoatRoughness,ze.clearcoatMap&&(Qe.clearcoatMap.value=ze.clearcoatMap,c(ze.clearcoatMap,Qe.clearcoatMapTransform)),ze.clearcoatRoughnessMap&&(Qe.clearcoatRoughnessMap.value=ze.clearcoatRoughnessMap,c(ze.clearcoatRoughnessMap,Qe.clearcoatRoughnessMapTransform)),ze.clearcoatNormalMap&&(Qe.clearcoatNormalMap.value=ze.clearcoatNormalMap,c(ze.clearcoatNormalMap,Qe.clearcoatNormalMapTransform),Qe.clearcoatNormalScale.value.copy(ze.clearcoatNormalScale),1===ze.side&&Qe.clearcoatNormalScale.value.negate())),ze.iridescence>0&&(Qe.iridescence.value=ze.iridescence,Qe.iridescenceIOR.value=ze.iridescenceIOR,Qe.iridescenceThicknessMinimum.value=ze.iridescenceThicknessRange[0],Qe.iridescenceThicknessMaximum.value=ze.iridescenceThicknessRange[1],ze.iridescenceMap&&(Qe.iridescenceMap.value=ze.iridescenceMap,c(ze.iridescenceMap,Qe.iridescenceMapTransform)),ze.iridescenceThicknessMap&&(Qe.iridescenceThicknessMap.value=ze.iridescenceThicknessMap,c(ze.iridescenceThicknessMap,Qe.iridescenceThicknessMapTransform))),ze.transmission>0&&(Qe.transmission.value=ze.transmission,Qe.transmissionSamplerMap.value=Ct.texture,Qe.transmissionSamplerSize.value.set(Ct.width,Ct.height),ze.transmissionMap&&(Qe.transmissionMap.value=ze.transmissionMap,c(ze.transmissionMap,Qe.transmissionMapTransform)),Qe.thickness.value=ze.thickness,ze.thicknessMap&&(Qe.thicknessMap.value=ze.thicknessMap,c(ze.thicknessMap,Qe.thicknessMapTransform)),Qe.attenuationDistance.value=ze.attenuationDistance,Qe.attenuationColor.value.copy(ze.attenuationColor)),ze.anisotropy>0&&(Qe.anisotropyVector.value.set(ze.anisotropy*Math.cos(ze.anisotropyRotation),ze.anisotropy*Math.sin(ze.anisotropyRotation)),ze.anisotropyMap&&(Qe.anisotropyMap.value=ze.anisotropyMap,c(ze.anisotropyMap,Qe.anisotropyMapTransform))),Qe.specularIntensity.value=ze.specularIntensity,Qe.specularColor.value.copy(ze.specularColor),ze.specularColorMap&&(Qe.specularColorMap.value=ze.specularColorMap,c(ze.specularColorMap,Qe.specularColorMapTransform)),ze.specularIntensityMap&&(Qe.specularIntensityMap.value=ze.specularIntensityMap,c(ze.specularIntensityMap,Qe.specularIntensityMapTransform))}(Qe,ze,Dt)):ze.isMeshMatcapMaterial?(M(Qe,ze),function Ke(Qe,ze){ze.matcap&&(Qe.matcap.value=ze.matcap)}(Qe,ze)):ze.isMeshDepthMaterial?M(Qe,ze):ze.isMeshDistanceMaterial?(M(Qe,ze),function ft(Qe,ze){const Ct=a.get(ze).light;Qe.referencePosition.value.setFromMatrixPosition(Ct.matrixWorld),Qe.nearDistance.value=Ct.shadow.camera.near,Qe.farDistance.value=Ct.shadow.camera.far}(Qe,ze)):ze.isMeshNormalMaterial?M(Qe,ze):ze.isLineBasicMaterial?(function N(Qe,ze){Qe.diffuse.value.copy(ze.color),Qe.opacity.value=ze.opacity,ze.map&&(Qe.map.value=ze.map,c(ze.map,Qe.mapTransform))}(Qe,ze),ze.isLineDashedMaterial&&function q(Qe,ze){Qe.dashSize.value=ze.dashSize,Qe.totalSize.value=ze.dashSize+ze.gapSize,Qe.scale.value=ze.scale}(Qe,ze)):ze.isPointsMaterial?function de(Qe,ze,Ct,ct){Qe.diffuse.value.copy(ze.color),Qe.opacity.value=ze.opacity,Qe.size.value=ze.size*Ct,Qe.scale.value=.5*ct,ze.map&&(Qe.map.value=ze.map,c(ze.map,Qe.uvTransform)),ze.alphaMap&&(Qe.alphaMap.value=ze.alphaMap,c(ze.alphaMap,Qe.alphaMapTransform)),ze.alphaTest>0&&(Qe.alphaTest.value=ze.alphaTest)}(Qe,ze,Ct,ct):ze.isSpriteMaterial?function pe(Qe,ze){Qe.diffuse.value.copy(ze.color),Qe.opacity.value=ze.opacity,Qe.rotation.value=ze.rotation,ze.map&&(Qe.map.value=ze.map,c(ze.map,Qe.mapTransform)),ze.alphaMap&&(Qe.alphaMap.value=ze.alphaMap,c(ze.alphaMap,Qe.alphaMapTransform)),ze.alphaTest>0&&(Qe.alphaTest.value=ze.alphaTest)}(Qe,ze):ze.isShadowMaterial?(Qe.color.value.copy(ze.color),Qe.opacity.value=ze.opacity):ze.isShaderMaterial&&(ze.uniformsNeedUpdate=!1)}}}function IB(w,a,c,u){let m={},M={},N=[];const q=c.isWebGL2?w.getParameter(w.MAX_UNIFORM_BUFFER_BINDINGS):0;function Le(Ct,ct,Dt){const Jt=Ct.value;if(void 0===Dt[ct]){if("number"==typeof Jt)Dt[ct]=Jt;else{const ln=Array.isArray(Jt)?Jt:[Jt],rn=[];for(let Rn=0;Rn0&&(ln=Dt%16,0!==ln&&16-ln-Zt.boundary<0&&(Dt+=16-ln,kt.__offset=Dt)),Dt+=Zt.storage}ln=Dt%16,ln>0&&(Dt+=16-ln),Ct.__size=Dt,Ct.__cache={}}(Ct),Dt=function xe(Ct){const ct=function Ie(){for(let Ct=0;Ct0),da=!!ji.morphAttributes.position,rd=!!ji.morphAttributes.normal,fp=!!ji.morphAttributes.color;let zd=pt;ir.toneMapped&&(null===rn||!0===rn.isXRRenderTarget)&&(zd=ct.toneMapping);const JA=ji.morphAttributes.position||ji.morphAttributes.normal||ji.morphAttributes.color,sd=void 0!==JA?JA.length:0,$a=Nr.get(ir),HM=Qe.state.lights;!0!==xs||!0!==Ds&&An===kt||ks.setState(ir,An,An===kt&&ir.id===Rn);let _d=!1;ir.version===$a.__version?($a.needsLights&&$a.lightsStateVersion!==HM.state.version||$a.outputColorSpace!==Jo||or.isInstancedMesh&&!1===$a.instancing||!or.isInstancedMesh&&!0===$a.instancing||or.isSkinnedMesh&&!1===$a.skinning||!or.isSkinnedMesh&&!0===$a.skinning||or.isInstancedMesh&&!0===$a.instancingColor&&null===or.instanceColor||or.isInstancedMesh&&!1===$a.instancingColor&&null!==or.instanceColor||$a.envMap!==fa||!0===ir.fog&&$a.fog!==js||void 0!==$a.numClippingPlanes&&($a.numClippingPlanes!==ks.numPlanes||$a.numIntersection!==ks.numIntersection)||$a.vertexAlphas!==Pa||$a.vertexTangents!==ea||$a.morphTargets!==da||$a.morphNormals!==rd||$a.morphColors!==fp||$a.toneMapping!==zd||!0===Ri.isWebGL2&&$a.morphTargetsCount!==sd)&&(_d=!0):(_d=!0,$a.__version=ir.version);let Jm=$a.currentProgram;!0===_d&&(Jm=zM(ir,yi,or));let VM=!1,lb=!1,vw=!1;const Fu=Jm.getUniforms(),A0=$a.uniforms;if(Ii.useProgram(Jm.program)&&(VM=!0,lb=!0,vw=!0),ir.id!==Rn&&(Rn=ir.id,lb=!0),VM||kt!==An){Fu.setValue(_n,"projectionMatrix",An.projectionMatrix),Fu.setValue(_n,"viewMatrix",An.matrixWorldInverse);const Mf=Fu.map.cameraPosition;void 0!==Mf&&Mf.setValue(_n,Or.setFromMatrixPosition(An.matrixWorld)),Ri.logarithmicDepthBuffer&&Fu.setValue(_n,"logDepthBufFC",2/(Math.log(An.far+1)/Math.LN2)),(ir.isMeshPhongMaterial||ir.isMeshToonMaterial||ir.isMeshLambertMaterial||ir.isMeshBasicMaterial||ir.isMeshStandardMaterial||ir.isShaderMaterial)&&Fu.setValue(_n,"isOrthographic",!0===An.isOrthographicCamera),kt!==An&&(kt=An,lb=!0,vw=!0)}if(or.isSkinnedMesh){Fu.setOptional(_n,or,"bindMatrix"),Fu.setOptional(_n,or,"bindMatrixInverse");const Mf=or.skeleton;Mf&&(Ri.floatVertexTextures?(null===Mf.boneTexture&&Mf.computeBoneTexture(),Fu.setValue(_n,"boneTexture",Mf.boneTexture,fr),Fu.setValue(_n,"boneTextureSize",Mf.boneTextureSize)):console.warn("THREE.WebGLRenderer: SkinnedMesh can only be used with WebGL 2. With WebGL 1 OES_texture_float and vertex textures support is required."))}const b3=ji.morphAttributes;if((void 0!==b3.position||void 0!==b3.normal||void 0!==b3.color&&!0===Ri.isWebGL2)&&Nn.update(or,ji,Jm),(lb||$a.receiveShadow!==or.receiveShadow)&&($a.receiveShadow=or.receiveShadow,Fu.setValue(_n,"receiveShadow",or.receiveShadow)),ir.isMeshGouraudMaterial&&null!==ir.envMap&&(A0.envMap.value=fa,A0.flipEnvMap.value=fa.isCubeTexture&&!1===fa.isRenderTargetTexture?-1:1),lb&&(Fu.setValue(_n,"toneMappingExposure",ct.toneMappingExposure),$a.needsLights&&function y3(An,yi){An.ambientLightColor.needsUpdate=yi,An.lightProbe.needsUpdate=yi,An.directionalLights.needsUpdate=yi,An.directionalLightShadows.needsUpdate=yi,An.pointLights.needsUpdate=yi,An.pointLightShadows.needsUpdate=yi,An.spotLights.needsUpdate=yi,An.spotLightShadows.needsUpdate=yi,An.rectAreaLights.needsUpdate=yi,An.hemisphereLights.needsUpdate=yi}(A0,vw),js&&!0===ir.fog&&cr.refreshFogUniforms(A0,js),cr.refreshMaterialUniforms(A0,ir,Oi,rr,fs),Jp.upload(_n,CP($a),A0,fr)),ir.isShaderMaterial&&!0===ir.uniformsNeedUpdate&&(Jp.upload(_n,CP($a),A0,fr),ir.uniformsNeedUpdate=!1),ir.isSpriteMaterial&&Fu.setValue(_n,"center",or.center),Fu.setValue(_n,"modelViewMatrix",or.modelViewMatrix),Fu.setValue(_n,"normalMatrix",or.normalMatrix),Fu.setValue(_n,"modelMatrix",or.matrixWorld),ir.isShaderMaterial||ir.isRawShaderMaterial){const Mf=ir.uniformsGroups;for(let bw=0,Lo=Mf.length;bw{function js(){ir.forEach(function(Eo){Nr.get(Eo).currentProgram.isReady()&&ir.delete(Eo)}),0!==ir.size?setTimeout(js,10):or(An)}null!==si.get("KHR_parallel_shader_compile")?js():setTimeout(js,10)})};let Na=null;function Cf(){Gh.stop()}function Gl(){Gh.start()}const Gh=new xA;function Zm(An,yi,ji,ir){if(!1===An.visible)return;if(An.layers.test(yi.layers))if(An.isGroup)ji=An.renderOrder;else if(An.isLOD)!0===An.autoUpdate&&An.update(yi);else if(An.isLight)Qe.pushLight(An),An.castShadow&&Qe.pushShadow(An);else if(An.isSprite){if(!An.frustumCulled||as.intersectsSprite(An)){ir&&Or.setFromMatrixPosition(An.matrixWorld).applyMatrix4(eo);const Eo=Pt.update(An),Jo=An.material;Jo.visible&&ft.push(An,Eo,Jo,ji,Or.z,null)}}else if((An.isMesh||An.isLine||An.isPoints)&&(!An.frustumCulled||as.intersectsObject(An))){const Eo=Pt.update(An),Jo=An.material;if(ir&&(void 0!==An.boundingSphere?(null===An.boundingSphere&&An.computeBoundingSphere(),Or.copy(An.boundingSphere.center)):(null===Eo.boundingSphere&&Eo.computeBoundingSphere(),Or.copy(Eo.boundingSphere.center)),Or.applyMatrix4(An.matrixWorld).applyMatrix4(eo)),Array.isArray(Jo)){const fa=Eo.groups;for(let Pa=0,ea=fa.length;Pa0&&function IN(An,yi,ji,ir){if(null!==(!0===ji.isScene?ji.overrideMaterial:null))return;const js=Ri.isWebGL2;null===fs&&(fs=new Fh(1,1,{generateMipmaps:!0,type:si.has("EXT_color_buffer_half_float")?In:At,minFilter:ye,samples:js?4:0})),ct.getDrawingBufferSize(er),js?fs.setSize(er.x,er.y):fs.setSize(Xd(er.x),Xd(er.y));const Eo=ct.getRenderTarget();ct.setRenderTarget(fs),ct.getClearColor(hr),Yn=ct.getClearAlpha(),Yn<1&&ct.setClearColor(16777215,.5),ct.clear();const Jo=ct.toneMapping;ct.toneMapping=pt,UM(An,ji,ir),fr.updateMultisampleRenderTarget(fs),fr.updateRenderTargetMipmap(fs);let fa=!1;for(let Pa=0,ea=yi.length;Pa0&&UM(or,yi,ji),js.length>0&&UM(js,yi,ji),Eo.length>0&&UM(Eo,yi,ji),Ii.buffers.depth.setTest(!0),Ii.buffers.depth.setMask(!0),Ii.buffers.color.setMask(!0),Ii.setPolygonOffset(!1)}function UM(An,yi,ji){const ir=!0===yi.isScene?yi.overrideMaterial:null;for(let or=0,js=An.length;or0?Ct[Ct.length-1]:null,ze.pop(),ft=ze.length>0?ze[ze.length-1]:null}}else console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.")},this.getActiveCubeFace=function(){return Jt},this.getActiveMipmapLevel=function(){return ln},this.getRenderTarget=function(){return rn},this.setRenderTargetTextures=function(An,yi,ji){Nr.get(An.texture).__webglTexture=yi,Nr.get(An.depthTexture).__webglTexture=ji;const ir=Nr.get(An);ir.__hasExternalTextures=!0,ir.__hasExternalTextures&&(ir.__autoAllocateDepthBuffer=void 0===ji,ir.__autoAllocateDepthBuffer||!0===si.has("WEBGL_multisampled_render_to_texture")&&(console.warn("THREE.WebGLRenderer: Render-to-texture extension was disabled because an external texture was provided"),ir.__useRenderToTexture=!1))},this.setRenderTargetFramebuffer=function(An,yi){const ji=Nr.get(An);ji.__webglFramebuffer=yi,ji.__useDefaultFramebuffer=void 0===yi},this.setRenderTarget=function(An,yi=0,ji=0){rn=An,Jt=yi,ln=ji;let ir=!0,or=null,js=!1,Eo=!1;if(An){const fa=Nr.get(An);void 0!==fa.__useDefaultFramebuffer?(Ii.bindFramebuffer(_n.FRAMEBUFFER,null),ir=!1):void 0===fa.__webglFramebuffer?fr.setupRenderTarget(An):fa.__hasExternalTextures&&fr.rebindTextures(An,Nr.get(An.texture).__webglTexture,Nr.get(An.depthTexture).__webglTexture);const Pa=An.texture;(Pa.isData3DTexture||Pa.isDataArrayTexture||Pa.isCompressedArrayTexture)&&(Eo=!0);const ea=Nr.get(An).__webglFramebuffer;An.isWebGLCubeRenderTarget?(or=Array.isArray(ea[yi])?ea[yi][ji]:ea[yi],js=!0):or=Ri.isWebGL2&&An.samples>0&&!1===fr.useMultisampledRTT(An)?Nr.get(An).__webglMultisampledFramebuffer:Array.isArray(ea)?ea[ji]:ea,Zt.copy(An.viewport),li.copy(An.scissor),Ti=An.scissorTest}else Zt.copy(lr).multiplyScalar(Oi).floor(),li.copy(ei).multiplyScalar(Oi).floor(),Ti=sr;if(Ii.bindFramebuffer(_n.FRAMEBUFFER,or)&&Ri.drawBuffers&&ir&&Ii.drawBuffers(An,or),Ii.viewport(Zt),Ii.scissor(li),Ii.setScissorTest(Ti),js){const fa=Nr.get(An.texture);_n.framebufferTexture2D(_n.FRAMEBUFFER,_n.COLOR_ATTACHMENT0,_n.TEXTURE_CUBE_MAP_POSITIVE_X+yi,fa.__webglTexture,ji)}else if(Eo){const fa=Nr.get(An.texture);_n.framebufferTextureLayer(_n.FRAMEBUFFER,_n.COLOR_ATTACHMENT0,fa.__webglTexture,ji||0,yi||0)}Rn=-1},this.readRenderTargetPixels=function(An,yi,ji,ir,or,js,Eo){if(!An||!An.isWebGLRenderTarget)return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");let Jo=Nr.get(An).__webglFramebuffer;if(An.isWebGLCubeRenderTarget&&void 0!==Eo&&(Jo=Jo[Eo]),Jo){Ii.bindFramebuffer(_n.FRAMEBUFFER,Jo);try{const fa=An.texture,Pa=fa.format,ea=fa.type;if(Pa!==Jn&&Oo.convert(Pa)!==_n.getParameter(_n.IMPLEMENTATION_COLOR_READ_FORMAT))return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");const da=ea===In&&(si.has("EXT_color_buffer_half_float")||Ri.isWebGL2&&si.has("EXT_color_buffer_float"));if(!(ea===At||Oo.convert(ea)===_n.getParameter(_n.IMPLEMENTATION_COLOR_READ_TYPE)||ea===cn&&(Ri.isWebGL2||si.has("OES_texture_float")||si.has("WEBGL_color_buffer_float"))||da))return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");yi>=0&&yi<=An.width-ir&&ji>=0&&ji<=An.height-or&&_n.readPixels(yi,ji,ir,or,Oo.convert(Pa),Oo.convert(ea),js)}finally{const fa=null!==rn?Nr.get(rn).__webglFramebuffer:null;Ii.bindFramebuffer(_n.FRAMEBUFFER,fa)}}},this.copyFramebufferToTexture=function(An,yi,ji=0){const ir=Math.pow(2,-ji),or=Math.floor(yi.image.width*ir),js=Math.floor(yi.image.height*ir);fr.setTexture2D(yi,0),_n.copyTexSubImage2D(_n.TEXTURE_2D,ji,0,0,An.x,An.y,or,js),Ii.unbindTexture()},this.copyTextureToTexture=function(An,yi,ji,ir=0){const or=yi.image.width,js=yi.image.height,Eo=Oo.convert(ji.format),Jo=Oo.convert(ji.type);fr.setTexture2D(ji,0),_n.pixelStorei(_n.UNPACK_FLIP_Y_WEBGL,ji.flipY),_n.pixelStorei(_n.UNPACK_PREMULTIPLY_ALPHA_WEBGL,ji.premultiplyAlpha),_n.pixelStorei(_n.UNPACK_ALIGNMENT,ji.unpackAlignment),yi.isDataTexture?_n.texSubImage2D(_n.TEXTURE_2D,ir,An.x,An.y,or,js,Eo,Jo,yi.image.data):yi.isCompressedTexture?_n.compressedTexSubImage2D(_n.TEXTURE_2D,ir,An.x,An.y,yi.mipmaps[0].width,yi.mipmaps[0].height,Eo,yi.mipmaps[0].data):_n.texSubImage2D(_n.TEXTURE_2D,ir,An.x,An.y,Eo,Jo,yi.image),0===ir&&ji.generateMipmaps&&_n.generateMipmap(_n.TEXTURE_2D),Ii.unbindTexture()},this.copyTextureToTexture3D=function(An,yi,ji,ir,or=0){if(ct.isWebGL1Renderer)return void console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: can only be used with WebGL2.");const js=An.max.x-An.min.x+1,Eo=An.max.y-An.min.y+1,Jo=An.max.z-An.min.z+1,fa=Oo.convert(ir.format),Pa=Oo.convert(ir.type);let ea;if(ir.isData3DTexture)fr.setTexture3D(ir,0),ea=_n.TEXTURE_3D;else{if(!ir.isDataArrayTexture)return void console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.");fr.setTexture2DArray(ir,0),ea=_n.TEXTURE_2D_ARRAY}_n.pixelStorei(_n.UNPACK_FLIP_Y_WEBGL,ir.flipY),_n.pixelStorei(_n.UNPACK_PREMULTIPLY_ALPHA_WEBGL,ir.premultiplyAlpha),_n.pixelStorei(_n.UNPACK_ALIGNMENT,ir.unpackAlignment);const da=_n.getParameter(_n.UNPACK_ROW_LENGTH),rd=_n.getParameter(_n.UNPACK_IMAGE_HEIGHT),fp=_n.getParameter(_n.UNPACK_SKIP_PIXELS),zd=_n.getParameter(_n.UNPACK_SKIP_ROWS),JA=_n.getParameter(_n.UNPACK_SKIP_IMAGES),sd=ji.isCompressedTexture?ji.mipmaps[0]:ji.image;_n.pixelStorei(_n.UNPACK_ROW_LENGTH,sd.width),_n.pixelStorei(_n.UNPACK_IMAGE_HEIGHT,sd.height),_n.pixelStorei(_n.UNPACK_SKIP_PIXELS,An.min.x),_n.pixelStorei(_n.UNPACK_SKIP_ROWS,An.min.y),_n.pixelStorei(_n.UNPACK_SKIP_IMAGES,An.min.z),ji.isDataTexture||ji.isData3DTexture?_n.texSubImage3D(ea,or,yi.x,yi.y,yi.z,js,Eo,Jo,fa,Pa,sd.data):ji.isCompressedArrayTexture?(console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: untested support for compressed srcTexture."),_n.compressedTexSubImage3D(ea,or,yi.x,yi.y,yi.z,js,Eo,Jo,fa,sd.data)):_n.texSubImage3D(ea,or,yi.x,yi.y,yi.z,js,Eo,Jo,fa,Pa,sd),_n.pixelStorei(_n.UNPACK_ROW_LENGTH,da),_n.pixelStorei(_n.UNPACK_IMAGE_HEIGHT,rd),_n.pixelStorei(_n.UNPACK_SKIP_PIXELS,fp),_n.pixelStorei(_n.UNPACK_SKIP_ROWS,zd),_n.pixelStorei(_n.UNPACK_SKIP_IMAGES,JA),0===or&&ir.generateMipmaps&&_n.generateMipmap(ea),Ii.unbindTexture()},this.initTexture=function(An){An.isCubeTexture?fr.setTextureCube(An,0):An.isData3DTexture?fr.setTexture3D(An,0):An.isDataArrayTexture||An.isCompressedArrayTexture?fr.setTexture2DArray(An,0):fr.setTexture2D(An,0),Ii.unbindTexture()},this.resetState=function(){Jt=0,ln=0,rn=null,Ii.reset(),Ao.reset()},typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}get coordinateSystem(){return Dd}get outputColorSpace(){return this._outputColorSpace}set outputColorSpace(a){this._outputColorSpace=a;const c=this.getContext();c.drawingBufferColorSpace=a===Zh?"display-p3":"srgb",c.unpackColorSpace=Ya.workingColorSpace===Jh?"display-p3":"srgb"}get physicallyCorrectLights(){return console.warn("THREE.WebGLRenderer: The property .physicallyCorrectLights has been removed. Set renderer.useLegacyLights instead."),!this.useLegacyLights}set physicallyCorrectLights(a){console.warn("THREE.WebGLRenderer: The property .physicallyCorrectLights has been removed. Set renderer.useLegacyLights instead."),this.useLegacyLights=!a}get outputEncoding(){return console.warn("THREE.WebGLRenderer: Property .outputEncoding has been removed. Use .outputColorSpace instead."),this.outputColorSpace===ll?$l:3e3}set outputEncoding(a){console.warn("THREE.WebGLRenderer: Property .outputEncoding has been removed. Use .outputColorSpace instead."),this.outputColorSpace=a===$l?ll:sc}get useLegacyLights(){return console.warn("THREE.WebGLRenderer: The property .useLegacyLights has been deprecated. Migrate your lighting according to the following guide: https://discourse.threejs.org/t/updates-to-lighting-in-three-js-r155/53733."),this._useLegacyLights}set useLegacyLights(a){console.warn("THREE.WebGLRenderer: The property .useLegacyLights has been deprecated. Migrate your lighting according to the following guide: https://discourse.threejs.org/t/updates-to-lighting-in-three-js-r155/53733."),this._useLegacyLights=a}}class Gx{constructor(a,c=1,u=1e3){this.isFog=!0,this.name="",this.color=new Os(a),this.near=c,this.far=u}clone(){return new Gx(this.color,this.near,this.far)}toJSON(){return{type:"Fog",name:this.name,color:this.color.getHex(),near:this.near,far:this.far}}}class QC extends Rl{constructor(){super(),this.isScene=!0,this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.backgroundBlurriness=0,this.backgroundIntensity=1,this.overrideMaterial=null,typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}copy(a,c){return super.copy(a,c),null!==a.background&&(this.background=a.background.clone()),null!==a.environment&&(this.environment=a.environment.clone()),null!==a.fog&&(this.fog=a.fog.clone()),this.backgroundBlurriness=a.backgroundBlurriness,this.backgroundIntensity=a.backgroundIntensity,null!==a.overrideMaterial&&(this.overrideMaterial=a.overrideMaterial.clone()),this.matrixAutoUpdate=a.matrixAutoUpdate,this}toJSON(a){const c=super.toJSON(a);return null!==this.fog&&(c.object.fog=this.fog.toJSON()),this.backgroundBlurriness>0&&(c.object.backgroundBlurriness=this.backgroundBlurriness),1!==this.backgroundIntensity&&(c.object.backgroundIntensity=this.backgroundIntensity),c}}class Ev extends sa{constructor(a,c,u,m=1){super(a,c,u),this.isInstancedBufferAttribute=!0,this.meshPerAttribute=m}copy(a){return super.copy(a),this.meshPerAttribute=a.meshPerAttribute,this}toJSON(){const a=super.toJSON();return a.meshPerAttribute=this.meshPerAttribute,a.isInstancedBufferAttribute=!0,a}}const W1=new bo,hT=new bo,qx=[],Tv=new rl,WA=new bo,jA=new Jc,j1=new Yd;class WC extends Jc{constructor(a,c,u){super(a,c),this.isInstancedMesh=!0,this.instanceMatrix=new Ev(new Float32Array(16*u),16),this.instanceColor=null,this.count=u,this.boundingBox=null,this.boundingSphere=null;for(let m=0;mde)continue;Be.applyMatrix4(this.matrixWorld);const Rn=a.ray.origin.distanceTo(Be);Rna.far||c.push({distance:Rn,point:Ie.clone().applyMatrix4(this.matrixWorld),index:ct,face:null,faceIndex:null,object:this})}else for(let ct=Math.max(0,N.start),Dt=Math.min(Qe.count,N.start+N.count)-1;ctde)continue;Be.applyMatrix4(this.matrixWorld);const ln=a.ray.origin.distanceTo(Be);lna.far||c.push({distance:ln,point:Ie.clone().applyMatrix4(this.matrixWorld),index:ct,face:null,faceIndex:null,object:this})}}updateMorphTargets(){const c=this.geometry.morphAttributes,u=Object.keys(c);if(u.length>0){const m=c[u[0]];if(void 0!==m){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let M=0,N=m.length;M0){const m=c[u[0]];if(void 0!==m){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let M=0,N=m.length;Mm.far)return;M.push({distance:pe,distanceToRay:Math.sqrt(q),point:de,index:a,face:null,object:N})}}class Qx extends vh{constructor(a,c,u,m,M,N,q,de,pe){super(a,c,u,m,M,N,q,de,pe),this.isCanvasTexture=!0,this.needsUpdate=!0}}class tm{constructor(){this.type="Curve",this.arcLengthDivisions=200}getPoint(){return console.warn("THREE.Curve: .getPoint() not implemented."),null}getPointAt(a,c){const u=this.getUtoTmapping(a);return this.getPoint(u,c)}getPoints(a=5){const c=[];for(let u=0;u<=a;u++)c.push(this.getPoint(u/a));return c}getSpacedPoints(a=5){const c=[];for(let u=0;u<=a;u++)c.push(this.getPointAt(u/a));return c}getLength(){const a=this.getLengths();return a[a.length-1]}getLengths(a=this.arcLengthDivisions){if(this.cacheArcLengths&&this.cacheArcLengths.length===a+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;const c=[];let u,m=this.getPoint(0),M=0;c.push(0);for(let N=1;N<=a;N++)u=this.getPoint(N/a),M+=u.distanceTo(m),c.push(M),m=u;return this.cacheArcLengths=c,c}updateArcLengths(){this.needsUpdate=!0,this.getLengths()}getUtoTmapping(a,c){const u=this.getLengths();let m=0;const M=u.length;let N;N=c||a*u[M-1];let pe,q=0,de=M-1;for(;q<=de;)if(m=Math.floor(q+(de-q)/2),pe=u[m]-N,pe<0)q=m+1;else{if(!(pe>0)){de=m;break}de=m-1}if(m=de,u[m]===N)return m/(M-1);const xe=u[m];return(m+(N-xe)/(u[m+1]-xe))/(M-1)}getTangent(a,c){let m=a-1e-4,M=a+1e-4;m<0&&(m=0),M>1&&(M=1);const N=this.getPoint(m),q=this.getPoint(M),de=c||(N.isVector2?new Ui:new Ft);return de.copy(q).sub(N).normalize(),de}getTangentAt(a,c){const u=this.getUtoTmapping(a);return this.getTangent(u,c)}computeFrenetFrames(a,c){const u=new Ft,m=[],M=[],N=[],q=new Ft,de=new bo;for(let Le=0;Le<=a;Le++)m[Le]=this.getTangentAt(Le/a,new Ft);M[0]=new Ft,N[0]=new Ft;let pe=Number.MAX_VALUE;const xe=Math.abs(m[0].x),Ie=Math.abs(m[0].y),Be=Math.abs(m[0].z);xe<=pe&&(pe=xe,u.set(1,0,0)),Ie<=pe&&(pe=Ie,u.set(0,1,0)),Be<=pe&&u.set(0,0,1),q.crossVectors(m[0],u).normalize(),M[0].crossVectors(m[0],q),N[0].crossVectors(m[0],M[0]);for(let Le=1;Le<=a;Le++){if(M[Le]=M[Le-1].clone(),N[Le]=N[Le-1].clone(),q.crossVectors(m[Le-1],m[Le]),q.length()>Number.EPSILON){q.normalize();const Ke=Math.acos(nl(m[Le-1].dot(m[Le]),-1,1));M[Le].applyMatrix4(de.makeRotationAxis(q,Ke))}N[Le].crossVectors(m[Le],M[Le])}if(!0===c){let Le=Math.acos(nl(M[0].dot(M[a]),-1,1));Le/=a,m[0].dot(q.crossVectors(M[0],M[a]))>0&&(Le=-Le);for(let Ke=1;Ke<=a;Ke++)M[Ke].applyMatrix4(de.makeRotationAxis(m[Ke],Le*Ke)),N[Ke].crossVectors(m[Ke],M[Ke])}return{tangents:m,normals:M,binormals:N}}clone(){return(new this.constructor).copy(this)}copy(a){return this.arcLengthDivisions=a.arcLengthDivisions,this}toJSON(){const a={metadata:{version:4.6,type:"Curve",generator:"Curve.toJSON"}};return a.arcLengthDivisions=this.arcLengthDivisions,a.type=this.type,a}fromJSON(a){return this.arcLengthDivisions=a.arcLengthDivisions,this}}class Pv extends tm{constructor(a=0,c=0,u=1,m=1,M=0,N=2*Math.PI,q=!1,de=0){super(),this.isEllipseCurve=!0,this.type="EllipseCurve",this.aX=a,this.aY=c,this.xRadius=u,this.yRadius=m,this.aStartAngle=M,this.aEndAngle=N,this.aClockwise=q,this.aRotation=de}getPoint(a,c){const u=c||new Ui,m=2*Math.PI;let M=this.aEndAngle-this.aStartAngle;const N=Math.abs(M)m;)M-=m;Mm.length-2?m.length-1:N+1],Ie=m[N>m.length-3?m.length-1:N+2];return u.set(AT(q,de.x,pe.x,xe.x,Ie.x),AT(q,de.y,pe.y,xe.y,Ie.y)),u}copy(a){super.copy(a),this.points=[];for(let c=0,u=a.points.length;c0?0:(Math.floor(Math.abs(q)/M)+1)*M:0===de&&q===M-1&&(q=M-2,de=1),this.closed||q>0?pe=m[(q-1)%M]:(Wx.subVectors(m[0],m[1]).add(m[0]),pe=Wx);const Ie=m[q%M],Be=m[(q+1)%M];if(this.closed||q+2=u){const N=m[M]-u,q=this.curves[M],de=q.getLength();return q.getPointAt(0===de?0:1-N/de,c)}M++}return null}getLength(){const a=this.getCurveLengths();return a[a.length-1]}updateArcLengths(){this.needsUpdate=!0,this.cacheLengths=null,this.getCurveLengths()}getCurveLengths(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;const a=[];let c=0;for(let u=0,m=this.curves.length;u1&&!c[c.length-1].equals(c[0])&&c.push(c[0]),c}copy(a){super.copy(a),this.curves=[];for(let c=0,u=a.curves.length;c0){const Ie=pe.getPoint(0);Ie.equals(this.currentPoint)||this.lineTo(Ie.x,Ie.y)}this.curves.push(pe);const xe=pe.getPoint(1);return this.currentPoint.copy(xe),this}copy(a){return super.copy(a),this.currentPoint.copy(a.currentPoint),this}toJSON(){const a=super.toJSON();return a.currentPoint=this.currentPoint.toArray(),a}fromJSON(a){return super.fromJSON(a),this.currentPoint.fromArray(a.currentPoint),this}}class eM extends Cs{constructor(a=1,c=32,u=0,m=2*Math.PI){super(),this.type="CircleGeometry",this.parameters={radius:a,segments:c,thetaStart:u,thetaLength:m},c=Math.max(3,c);const M=[],N=[],q=[],de=[],pe=new Ft,xe=new Ui;N.push(0,0,0),q.push(0,0,1),de.push(.5,.5);for(let Ie=0,Be=3;Ie<=c;Ie++,Be+=3){const Le=u+Ie/c*m;pe.x=a*Math.cos(Le),pe.y=a*Math.sin(Le),N.push(pe.x,pe.y,pe.z),q.push(0,0,1),xe.x=(N[Be]/a+1)/2,xe.y=(N[Be+1]/a+1)/2,de.push(xe.x,xe.y)}for(let Ie=1;Ie<=c;Ie++)M.push(Ie,Ie+1,0);this.setIndex(M),this.setAttribute("position",new Bo(N,3)),this.setAttribute("normal",new Bo(q,3)),this.setAttribute("uv",new Bo(de,2))}copy(a){return super.copy(a),this.parameters=Object.assign({},a.parameters),this}static fromJSON(a){return new eM(a.radius,a.segments,a.thetaStart,a.thetaLength)}}class ty extends JC{constructor(a){super(a),this.uuid=Ah(),this.type="Shape",this.holes=[]}getPointsHoles(a){const c=[];for(let u=0,m=this.holes.length;u0)for(M=a;M=a;M-=u)N=oM(M,w[M],w[M+1],N);return N&&ny(N,N.next)&&($A(N),N=N.next),N}function dp(w,a){if(!w)return w;a||(a=w);let u,c=w;do{if(u=!1,c.steiner||!ny(c,c.next)&&0!==Cc(c.prev,c,c.next))c=c.next;else{if($A(c),c=a=c.prev,c===c.next)break;u=!0}}while(u||c!==a);return a}function wh(w,a,c,u,m,M,N){if(!w)return;!N&&M&&function u0(w,a,c,u){let m=w;do{0===m.z&&(m.z=Lv(m.x,m.y,a,c,u)),m.prevZ=m.prev,m.nextZ=m.next,m=m.next}while(m!==w);m.prevZ.nextZ=null,m.prevZ=null,function rM(w){let a,c,u,m,M,N,q,de,pe=1;do{for(c=w,w=null,M=null,N=0;c;){for(N++,u=c,q=0,a=0;a0||de>0&&u;)0!==q&&(0===de||!u||c.z<=u.z)?(m=c,c=c.nextZ,q--):(m=u,u=u.nextZ,de--),M?M.nextZ=m:w=m,m.prevZ=M,M=m;c=u}M.nextZ=null,pe*=2}while(N>1)}(m)}(w,u,m,M);let de,pe,q=w;for(;w.prev!==w.next;)if(de=w.prev,pe=w.next,M?MT(w,u,m,M):h0(w))a.push(de.i/c|0),a.push(w.i/c|0),a.push(pe.i/c|0),$A(w),w=pe.next,q=pe.next;else if((w=pe)===q){N?1===N?wh(w=_N(dp(w),a,c),a,c,u,m,M,2):2===N&&WB(w,a,c,u,m,M):wh(dp(w),a,c,u,m,M,1);break}}function h0(w){const a=w.prev,c=w,u=w.next;if(Cc(a,c,u)>=0)return!1;const m=a.x,M=c.x,N=u.x,q=a.y,de=c.y,pe=u.y,xe=mM?m>N?m:N:M>N?M:N,Le=q>de?q>pe?q:pe:de>pe?de:pe;let Ke=u.next;for(;Ke!==a;){if(Ke.x>=xe&&Ke.x<=Be&&Ke.y>=Ie&&Ke.y<=Le&&nm(m,q,M,de,N,pe,Ke.x,Ke.y)&&Cc(Ke.prev,Ke,Ke.next)>=0)return!1;Ke=Ke.next}return!0}function MT(w,a,c,u){const m=w.prev,M=w,N=w.next;if(Cc(m,M,N)>=0)return!1;const q=m.x,de=M.x,pe=N.x,xe=m.y,Ie=M.y,Be=N.y,Le=qde?q>pe?q:pe:de>pe?de:pe,Qe=xe>Ie?xe>Be?xe:Be:Ie>Be?Ie:Be,ze=Lv(Le,Ke,a,c,u),Ct=Lv(ft,Qe,a,c,u);let ct=w.prevZ,Dt=w.nextZ;for(;ct&&ct.z>=ze&&Dt&&Dt.z<=Ct;){if(ct.x>=Le&&ct.x<=ft&&ct.y>=Ke&&ct.y<=Qe&&ct!==m&&ct!==N&&nm(q,xe,de,Ie,pe,Be,ct.x,ct.y)&&Cc(ct.prev,ct,ct.next)>=0||(ct=ct.prevZ,Dt.x>=Le&&Dt.x<=ft&&Dt.y>=Ke&&Dt.y<=Qe&&Dt!==m&&Dt!==N&&nm(q,xe,de,Ie,pe,Be,Dt.x,Dt.y)&&Cc(Dt.prev,Dt,Dt.next)>=0))return!1;Dt=Dt.nextZ}for(;ct&&ct.z>=ze;){if(ct.x>=Le&&ct.x<=ft&&ct.y>=Ke&&ct.y<=Qe&&ct!==m&&ct!==N&&nm(q,xe,de,Ie,pe,Be,ct.x,ct.y)&&Cc(ct.prev,ct,ct.next)>=0)return!1;ct=ct.prevZ}for(;Dt&&Dt.z<=Ct;){if(Dt.x>=Le&&Dt.x<=ft&&Dt.y>=Ke&&Dt.y<=Qe&&Dt!==m&&Dt!==N&&nm(q,xe,de,Ie,pe,Be,Dt.x,Dt.y)&&Cc(Dt.prev,Dt,Dt.next)>=0)return!1;Dt=Dt.nextZ}return!0}function _N(w,a,c){let u=w;do{const m=u.prev,M=u.next.next;!ny(m,M)&&Nv(m,u,u.next,M)&&Uv(m,M)&&Uv(M,m)&&(a.push(m.i/c|0),a.push(u.i/c|0),a.push(M.i/c|0),$A(u),$A(u.next),u=w=M),u=u.next}while(u!==w);return dp(u)}function WB(w,a,c,u,m,M){let N=w;do{let q=N.next.next;for(;q!==N.prev;){if(N.i!==q.i&&sM(N,q)){let de=DT(N,q);return N=dp(N,N.next),de=dp(de,de.next),wh(N,a,c,u,m,M,0),void wh(de,a,c,u,m,M,0)}q=q.next}N=N.next}while(N!==w)}function vN(w,a){return w.x-a.x}function ST(w,a){const c=function ET(w,a){let m,c=a,u=-1/0;const M=w.x,N=w.y;do{if(N<=c.y&&N>=c.next.y&&c.next.y!==c.y){const Be=c.x+(N-c.y)*(c.next.x-c.x)/(c.next.y-c.y);if(Be<=M&&Be>u&&(u=Be,m=c.x=c.x&&c.x>=de&&M!==c.x&&nm(Nm.x||c.x===m.x&&bN(m,c)))&&(m=c,xe=Ie)),c=c.next}while(c!==q);return m}(w,a);if(!c)return a;const u=DT(c,w);return dp(u,u.next),dp(c,c.next)}function bN(w,a){return Cc(w.prev,w,a.prev)<0&&Cc(a.next,w,w.next)<0}function Lv(w,a,c,u,m){return(w=1431655765&((w=858993459&((w=252645135&((w=16711935&((w=(w-c)*m|0)|w<<8))|w<<4))|w<<2))|w<<1))|(a=1431655765&((a=858993459&((a=252645135&((a=16711935&((a=(a-u)*m|0)|a<<8))|a<<4))|a<<2))|a<<1))<<1}function jB(w){let a=w,c=w;do{(a.x=(w-N)*(M-q)&&(w-N)*(u-q)>=(c-N)*(a-q)&&(c-N)*(M-q)>=(m-N)*(u-q)}function sM(w,a){return w.next.i!==a.i&&w.prev.i!==a.i&&!function TT(w,a){let c=w;do{if(c.i!==w.i&&c.next.i!==w.i&&c.i!==a.i&&c.next.i!==a.i&&Nv(c,c.next,w,a))return!0;c=c.next}while(c!==w);return!1}(w,a)&&(Uv(w,a)&&Uv(a,w)&&function $B(w,a){let c=w,u=!1;const m=(w.x+a.x)/2,M=(w.y+a.y)/2;do{c.y>M!=c.next.y>M&&c.next.y!==c.y&&m<(c.next.x-c.x)*(M-c.y)/(c.next.y-c.y)+c.x&&(u=!u),c=c.next}while(c!==w);return u}(w,a)&&(Cc(w.prev,w,a.prev)||Cc(w,a.prev,a))||ny(w,a)&&Cc(w.prev,w,w.next)>0&&Cc(a.prev,a,a.next)>0)}function Cc(w,a,c){return(a.y-w.y)*(c.x-a.x)-(a.x-w.x)*(c.y-a.y)}function ny(w,a){return w.x===a.x&&w.y===a.y}function Nv(w,a,c,u){const m=Yx(Cc(w,a,c)),M=Yx(Cc(w,a,u)),N=Yx(Cc(c,u,w)),q=Yx(Cc(c,u,a));return!!(m!==M&&N!==q||0===m&&Xx(w,c,a)||0===M&&Xx(w,u,a)||0===N&&Xx(c,w,u)||0===q&&Xx(c,a,u))}function Xx(w,a,c){return a.x<=Math.max(w.x,c.x)&&a.x>=Math.min(w.x,c.x)&&a.y<=Math.max(w.y,c.y)&&a.y>=Math.min(w.y,c.y)}function Yx(w){return w>0?1:w<0?-1:0}function Uv(w,a){return Cc(w.prev,w,w.next)<0?Cc(w,a,w.next)>=0&&Cc(w,w.prev,a)>=0:Cc(w,a,w.prev)<0||Cc(w,w.next,a)<0}function DT(w,a){const c=new iy(w.i,w.x,w.y),u=new iy(a.i,a.x,a.y),m=w.next,M=a.prev;return w.next=a,a.prev=w,c.next=m,m.prev=c,u.next=c,c.prev=u,M.next=u,u.prev=M,u}function oM(w,a,c,u){const m=new iy(w,a,c);return u?(m.next=u.next,m.prev=u,u.next.prev=m,u.next=m):(m.prev=m,m.next=m),m}function $A(w){w.next.prev=w.prev,w.prev.next=w.next,w.prevZ&&(w.prevZ.nextZ=w.nextZ),w.nextZ&&(w.nextZ.prevZ=w.prevZ)}function iy(w,a,c){this.i=w,this.x=a,this.y=c,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}class Ym{static area(a){const c=a.length;let u=0;for(let m=c-1,M=0;M80*c){q=pe=w[0],de=xe=w[1];for(let Ke=c;Kepe&&(pe=Ie),Be>xe&&(xe=Be);Le=Math.max(pe-q,xe-de),Le=0!==Le?32767/Le:0}return wh(M,N,c,q,de,Le,0),N}(u,m);for(let de=0;de2&&w[a-1].equals(w[0])&&w.pop()}function Kx(w,a){for(let c=0;cNumber.EPSILON){const Pt=Math.sqrt(_s),ni=Math.sqrt(hs*hs+co*co),cr=Ki.x-fr/Pt,Ar=Ki.y+Nr/Pt,Ir=((si.x-co/ni-cr)*co-(si.y+hs/ni-Ar)*hs)/(Nr*co-fr*hs);Ri=cr+Nr*Ir-_n.x,Ii=Ar+fr*Ir-_n.y;const es=Ri*Ri+Ii*Ii;if(es<=2)return new Ui(Ri,Ii);Jr=Math.sqrt(es/2)}else{let Pt=!1;Nr>Number.EPSILON?hs>Number.EPSILON&&(Pt=!0):Nr<-Number.EPSILON?hs<-Number.EPSILON&&(Pt=!0):Math.sign(fr)===Math.sign(co)&&(Pt=!0),Pt?(Ri=-fr,Ii=Nr,Jr=Math.sqrt(_s)):(Ri=Nr,Ii=fr,Jr=Math.sqrt(_s/2))}return new Ui(Ri/Jr,Ii/Jr)}const Ji=[];for(let _n=0,Ki=Yn.length,si=Ki-1,Ri=_n+1;_n=0;_n--){const Ki=_n/Qe,si=Le*Math.cos(Ki*Math.PI/2),Ri=Ke*Math.sin(Ki*Math.PI/2)+ft;for(let Ii=0,Jr=Yn.length;Ii=0;){const Ri=si;let Ii=si-1;Ii<0&&(Ii=_n.length-1);for(let Jr=0,Nr=xe+2*Qe;Jr0)&&Le.push(xe[ze][Ct+1],Dt,ln),(ze!==u-1||de0!=a>0&&this.version++,this._anisotropy=a}get clearcoat(){return this._clearcoat}set clearcoat(a){this._clearcoat>0!=a>0&&this.version++,this._clearcoat=a}get iridescence(){return this._iridescence}set iridescence(a){this._iridescence>0!=a>0&&this.version++,this._iridescence=a}get sheen(){return this._sheen}set sheen(a){this._sheen>0!=a>0&&this.version++,this._sheen=a}get transmission(){return this._transmission}set transmission(a){this._transmission>0!=a>0&&this.version++,this._transmission=a}copy(a){return super.copy(a),this.defines={STANDARD:"",PHYSICAL:""},this.anisotropy=a.anisotropy,this.anisotropyRotation=a.anisotropyRotation,this.anisotropyMap=a.anisotropyMap,this.clearcoat=a.clearcoat,this.clearcoatMap=a.clearcoatMap,this.clearcoatRoughness=a.clearcoatRoughness,this.clearcoatRoughnessMap=a.clearcoatRoughnessMap,this.clearcoatNormalMap=a.clearcoatNormalMap,this.clearcoatNormalScale.copy(a.clearcoatNormalScale),this.ior=a.ior,this.iridescence=a.iridescence,this.iridescenceMap=a.iridescenceMap,this.iridescenceIOR=a.iridescenceIOR,this.iridescenceThicknessRange=[...a.iridescenceThicknessRange],this.iridescenceThicknessMap=a.iridescenceThicknessMap,this.sheen=a.sheen,this.sheenColor.copy(a.sheenColor),this.sheenColorMap=a.sheenColorMap,this.sheenRoughness=a.sheenRoughness,this.sheenRoughnessMap=a.sheenRoughnessMap,this.transmission=a.transmission,this.transmissionMap=a.transmissionMap,this.thickness=a.thickness,this.thicknessMap=a.thicknessMap,this.attenuationDistance=a.attenuationDistance,this.attenuationColor.copy(a.attenuationColor),this.specularIntensity=a.specularIntensity,this.specularIntensityMap=a.specularIntensityMap,this.specularColor.copy(a.specularColor),this.specularColorMap=a.specularColorMap,this}}class kT extends kc{constructor(a){super(),this.isMeshPhongMaterial=!0,this.type="MeshPhongMaterial",this.color=new Os(16777215),this.specular=new Os(1118481),this.shininess=30,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Os(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new Ui(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=Ne,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(a)}copy(a){return super.copy(a),this.color.copy(a.color),this.specular.copy(a.specular),this.shininess=a.shininess,this.map=a.map,this.lightMap=a.lightMap,this.lightMapIntensity=a.lightMapIntensity,this.aoMap=a.aoMap,this.aoMapIntensity=a.aoMapIntensity,this.emissive.copy(a.emissive),this.emissiveMap=a.emissiveMap,this.emissiveIntensity=a.emissiveIntensity,this.bumpMap=a.bumpMap,this.bumpScale=a.bumpScale,this.normalMap=a.normalMap,this.normalMapType=a.normalMapType,this.normalScale.copy(a.normalScale),this.displacementMap=a.displacementMap,this.displacementScale=a.displacementScale,this.displacementBias=a.displacementBias,this.specularMap=a.specularMap,this.alphaMap=a.alphaMap,this.envMap=a.envMap,this.combine=a.combine,this.reflectivity=a.reflectivity,this.refractionRatio=a.refractionRatio,this.wireframe=a.wireframe,this.wireframeLinewidth=a.wireframeLinewidth,this.wireframeLinecap=a.wireframeLinecap,this.wireframeLinejoin=a.wireframeLinejoin,this.flatShading=a.flatShading,this.fog=a.fog,this}}class hM extends kc{constructor(a){super(),this.isMeshToonMaterial=!0,this.defines={TOON:""},this.type="MeshToonMaterial",this.color=new Os(16777215),this.map=null,this.gradientMap=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Os(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new Ui(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(a)}copy(a){return super.copy(a),this.color.copy(a.color),this.map=a.map,this.gradientMap=a.gradientMap,this.lightMap=a.lightMap,this.lightMapIntensity=a.lightMapIntensity,this.aoMap=a.aoMap,this.aoMapIntensity=a.aoMapIntensity,this.emissive.copy(a.emissive),this.emissiveMap=a.emissiveMap,this.emissiveIntensity=a.emissiveIntensity,this.bumpMap=a.bumpMap,this.bumpScale=a.bumpScale,this.normalMap=a.normalMap,this.normalMapType=a.normalMapType,this.normalScale.copy(a.normalScale),this.displacementMap=a.displacementMap,this.displacementScale=a.displacementScale,this.displacementBias=a.displacementBias,this.alphaMap=a.alphaMap,this.wireframe=a.wireframe,this.wireframeLinewidth=a.wireframeLinewidth,this.wireframeLinecap=a.wireframeLinecap,this.wireframeLinejoin=a.wireframeLinejoin,this.fog=a.fog,this}}class FT extends kc{constructor(a){super(),this.isMeshNormalMaterial=!0,this.type="MeshNormalMaterial",this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new Ui(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.flatShading=!1,this.setValues(a)}copy(a){return super.copy(a),this.bumpMap=a.bumpMap,this.bumpScale=a.bumpScale,this.normalMap=a.normalMap,this.normalMapType=a.normalMapType,this.normalScale.copy(a.normalScale),this.displacementMap=a.displacementMap,this.displacementScale=a.displacementScale,this.displacementBias=a.displacementBias,this.wireframe=a.wireframe,this.wireframeLinewidth=a.wireframeLinewidth,this.flatShading=a.flatShading,this}}class OT extends kc{constructor(a){super(),this.isMeshLambertMaterial=!0,this.type="MeshLambertMaterial",this.color=new Os(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Os(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new Ui(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=Ne,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(a)}copy(a){return super.copy(a),this.color.copy(a.color),this.map=a.map,this.lightMap=a.lightMap,this.lightMapIntensity=a.lightMapIntensity,this.aoMap=a.aoMap,this.aoMapIntensity=a.aoMapIntensity,this.emissive.copy(a.emissive),this.emissiveMap=a.emissiveMap,this.emissiveIntensity=a.emissiveIntensity,this.bumpMap=a.bumpMap,this.bumpScale=a.bumpScale,this.normalMap=a.normalMap,this.normalMapType=a.normalMapType,this.normalScale.copy(a.normalScale),this.displacementMap=a.displacementMap,this.displacementScale=a.displacementScale,this.displacementBias=a.displacementBias,this.specularMap=a.specularMap,this.alphaMap=a.alphaMap,this.envMap=a.envMap,this.combine=a.combine,this.reflectivity=a.reflectivity,this.refractionRatio=a.refractionRatio,this.wireframe=a.wireframe,this.wireframeLinewidth=a.wireframeLinewidth,this.wireframeLinecap=a.wireframeLinecap,this.wireframeLinejoin=a.wireframeLinejoin,this.flatShading=a.flatShading,this.fog=a.fog,this}}class LT extends kc{constructor(a){super(),this.isMeshMatcapMaterial=!0,this.defines={MATCAP:""},this.type="MeshMatcapMaterial",this.color=new Os(16777215),this.matcap=null,this.map=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new Ui(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.flatShading=!1,this.fog=!0,this.setValues(a)}copy(a){return super.copy(a),this.defines={MATCAP:""},this.color.copy(a.color),this.matcap=a.matcap,this.map=a.map,this.bumpMap=a.bumpMap,this.bumpScale=a.bumpScale,this.normalMap=a.normalMap,this.normalMapType=a.normalMapType,this.normalScale.copy(a.normalScale),this.displacementMap=a.displacementMap,this.displacementScale=a.displacementScale,this.displacementBias=a.displacementBias,this.alphaMap=a.alphaMap,this.flatShading=a.flatShading,this.fog=a.fog,this}}class uM extends $1{constructor(a){super(),this.isLineDashedMaterial=!0,this.type="LineDashedMaterial",this.scale=1,this.dashSize=3,this.gapSize=1,this.setValues(a)}copy(a){return super.copy(a),this.scale=a.scale,this.dashSize=a.dashSize,this.gapSize=a.gapSize,this}}const M_={enabled:!1,files:{},add:function(w,a){!1!==this.enabled&&(this.files[w]=a)},get:function(w){if(!1!==this.enabled)return this.files[w]},remove:function(w){delete this.files[w]},clear:function(){this.files={}}};class ca{constructor(a,c,u){const m=this;let de,M=!1,N=0,q=0;const pe=[];this.onStart=void 0,this.onLoad=a,this.onProgress=c,this.onError=u,this.itemStart=function(xe){q++,!1===M&&void 0!==m.onStart&&m.onStart(xe,N,q),M=!0},this.itemEnd=function(xe){N++,void 0!==m.onProgress&&m.onProgress(xe,N,q),N===q&&(M=!1,void 0!==m.onLoad&&m.onLoad())},this.itemError=function(xe){void 0!==m.onError&&m.onError(xe)},this.resolveURL=function(xe){return de?de(xe):xe},this.setURLModifier=function(xe){return de=xe,this},this.addHandler=function(xe,Ie){return pe.push(xe,Ie),this},this.removeHandler=function(xe){const Ie=pe.indexOf(xe);return-1!==Ie&&pe.splice(Ie,2),this},this.getHandler=function(xe){for(let Ie=0,Be=pe.length;Ie{class w{constructor(c){this.manager=void 0!==c?c:jn,this.crossOrigin="anonymous",this.withCredentials=!1,this.path="",this.resourcePath="",this.requestHeader={}}load(){}loadAsync(c,u){const m=this;return new Promise(function(M,N){m.load(c,M,u,N)})}parse(){}setCrossOrigin(c){return this.crossOrigin=c,this}setWithCredentials(c){return this.withCredentials=c,this}setPath(c){return this.path=c,this}setResourcePath(c){return this.resourcePath=c,this}setRequestHeader(c){return this.requestHeader=c,this}}return w.DEFAULT_MATERIAL_NAME="__DEFAULT",w})();Error;class XA extends hp{constructor(a){super(a)}load(a,c,u,m){void 0!==this.path&&(a=this.path+a),a=this.manager.resolveURL(a);const M=this,N=M_.get(a);if(void 0!==N)return M.manager.itemStart(a),setTimeout(function(){c&&c(N),M.manager.itemEnd(a)},0),N;const q=mi("img");function de(){xe(),M_.add(a,this),c&&c(this),M.manager.itemEnd(a)}function pe(Ie){xe(),m&&m(Ie),M.manager.itemError(a),M.manager.itemEnd(a)}function xe(){q.removeEventListener("load",de,!1),q.removeEventListener("error",pe,!1)}return q.addEventListener("load",de,!1),q.addEventListener("error",pe,!1),"data:"!==a.slice(0,5)&&void 0!==this.crossOrigin&&(q.crossOrigin=this.crossOrigin),M.manager.itemStart(a),q.src=a,q}}class UT extends hp{constructor(a){super(a)}load(a,c,u,m){const M=new vh,N=new XA(this.manager);return N.setCrossOrigin(this.crossOrigin),N.setPath(this.path),N.load(a,function(q){M.image=q,M.needsUpdate=!0,void 0!==c&&c(M)},u,m),M}}class YA extends Rl{constructor(a,c=1){super(),this.isLight=!0,this.type="Light",this.color=new Os(a),this.intensity=c}dispose(){}copy(a,c){return super.copy(a,c),this.color.copy(a.color),this.intensity=a.intensity,this}toJSON(a){const c=super.toJSON(a);return c.object.color=this.color.getHex(),c.object.intensity=this.intensity,void 0!==this.groundColor&&(c.object.groundColor=this.groundColor.getHex()),void 0!==this.distance&&(c.object.distance=this.distance),void 0!==this.angle&&(c.object.angle=this.angle),void 0!==this.decay&&(c.object.decay=this.decay),void 0!==this.penumbra&&(c.object.penumbra=this.penumbra),void 0!==this.shadow&&(c.object.shadow=this.shadow.toJSON()),c}}class $T extends YA{constructor(a,c,u){super(a,u),this.isHemisphereLight=!0,this.type="HemisphereLight",this.position.copy(Rl.DEFAULT_UP),this.updateMatrix(),this.groundColor=new Os(c)}copy(a,c){return super.copy(a,c),this.groundColor.copy(a.groundColor),this}}const yM=new bo,vM=new Ft,bM=new Ft;class hy{constructor(a){this.camera=a,this.bias=0,this.normalBias=0,this.radius=1,this.blurSamples=8,this.mapSize=new Ui(512,512),this.map=null,this.mapPass=null,this.matrix=new bo,this.autoUpdate=!0,this.needsUpdate=!1,this._frustum=new ef,this._frameExtents=new Ui(1,1),this._viewportCount=1,this._viewports=[new il(0,0,1,1)]}getViewportCount(){return this._viewportCount}getFrustum(){return this._frustum}updateMatrices(a){const c=this.camera,u=this.matrix;vM.setFromMatrixPosition(a.matrixWorld),c.position.copy(vM),bM.setFromMatrixPosition(a.target.matrixWorld),c.lookAt(bM),c.updateMatrixWorld(),yM.multiplyMatrices(c.projectionMatrix,c.matrixWorldInverse),this._frustum.setFromProjectionMatrix(yM),u.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),u.multiply(yM)}getViewport(a){return this._viewports[a]}getFrameExtents(){return this._frameExtents}dispose(){this.map&&this.map.dispose(),this.mapPass&&this.mapPass.dispose()}copy(a){return this.camera=a.camera.clone(),this.bias=a.bias,this.radius=a.radius,this.mapSize.copy(a.mapSize),this}clone(){return(new this.constructor).copy(this)}toJSON(){const a={};return 0!==this.bias&&(a.bias=this.bias),0!==this.normalBias&&(a.normalBias=this.normalBias),1!==this.radius&&(a.radius=this.radius),(512!==this.mapSize.x||512!==this.mapSize.y)&&(a.mapSize=this.mapSize.toArray()),a.camera=this.camera.toJSON(!1).object,delete a.camera.matrix,a}}class KA extends hy{constructor(){super(new kd(-5,5,5,-5,.5,500)),this.isDirectionalLightShadow=!0}}class XT extends YA{constructor(a,c){super(a,c),this.isDirectionalLight=!0,this.type="DirectionalLight",this.position.copy(Rl.DEFAULT_UP),this.updateMatrix(),this.target=new Rl,this.shadow=new KA}dispose(){this.shadow.dispose()}copy(a){return super.copy(a),this.target=a.target.clone(),this.shadow=a.shadow.clone(),this}}class YT extends YA{constructor(a,c){super(a,c),this.isAmbientLight=!0,this.type="AmbientLight"}}function Yv(w,a,c){return!w||!c&&w.constructor===a?w:"number"==typeof a.BYTES_PER_ELEMENT?new a(w):Array.prototype.slice.call(w)}class Zv{constructor(a,c,u,m){this.parameterPositions=a,this._cachedIndex=0,this.resultBuffer=void 0!==m?m:new c.constructor(u),this.sampleValues=c,this.valueSize=u,this.settings=null,this.DefaultSettings_={}}evaluate(a){const c=this.parameterPositions;let u=this._cachedIndex,m=c[u],M=c[u-1];e:{t:{let N;n:{i:if(!(a=M)break e;{const q=c[1];a=M)break t}N=u,u=0}}for(;u>>1;ac;)--N;if(++N,0!==M||N!==m){M>=N&&(N=Math.max(N,1),M=N-1);const q=this.getValueSize();this.times=u.slice(M,N),this.values=this.values.slice(M*q,N*q)}return this}validate(){let a=!0;const c=this.getValueSize();c-Math.floor(c)!=0&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),a=!1);const u=this.times,m=this.values,M=u.length;0===M&&(console.error("THREE.KeyframeTrack: Track is empty.",this),a=!1);let N=null;for(let q=0;q!==M;q++){const de=u[q];if("number"==typeof de&&isNaN(de)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,q,de),a=!1;break}if(null!==N&&N>de){console.error("THREE.KeyframeTrack: Out of order keys.",this,q,de,N),a=!1;break}N=de}if(void 0!==m&&function fy(w){return ArrayBuffer.isView(w)&&!(w instanceof DataView)}(m))for(let q=0,de=m.length;q!==de;++q){const pe=m[q];if(isNaN(pe)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,q,pe),a=!1;break}}return a}optimize(){const a=this.times.slice(),c=this.values.slice(),u=this.getValueSize(),m=2302===this.getInterpolation(),M=a.length-1;let N=1;for(let q=1;q0){a[N]=a[M];for(let q=M*u,de=N*u,pe=0;pe!==u;++pe)c[de+pe]=c[q+pe];++N}return N!==a.length?(this.times=a.slice(0,N),this.values=c.slice(0,N*u)):(this.times=a,this.values=c),this}clone(){const a=this.times.slice(),c=this.values.slice(),m=new(0,this.constructor)(this.name,a,c);return m.createInterpolant=this.createInterpolant,m}}Km.prototype.TimeBufferType=Float32Array,Km.prototype.ValueBufferType=Float32Array,Km.prototype.DefaultInterpolation=2301;class my extends Km{}my.prototype.ValueTypeName="bool",my.prototype.ValueBufferType=Array,my.prototype.DefaultInterpolation=2300,my.prototype.InterpolantFactoryMethodLinear=void 0,my.prototype.InterpolantFactoryMethodSmooth=void 0;(class SM extends Km{}).prototype.ValueTypeName="color";(class T_ extends Km{}).prototype.ValueTypeName="number";class rP extends Zv{constructor(a,c,u,m){super(a,c,u,m)}interpolate_(a,c,u,m){const M=this.resultBuffer,N=this.sampleValues,q=this.valueSize,de=(u-c)/(m-c);let pe=a*q;for(let xe=pe+q;pe!==xe;pe+=4)Oh.slerpFlat(M,0,N,pe-q,N,pe,de);return M}}class uw extends Km{InterpolantFactoryMethodLinear(a){return new rP(this.times,this.values,this.getValueSize(),a)}}uw.prototype.ValueTypeName="quaternion",uw.prototype.DefaultInterpolation=2301,uw.prototype.InterpolantFactoryMethodSmooth=void 0;class Ay extends Km{}Ay.prototype.ValueTypeName="string",Ay.prototype.ValueBufferType=Array,Ay.prototype.DefaultInterpolation=2300,Ay.prototype.InterpolantFactoryMethodLinear=void 0,Ay.prototype.InterpolantFactoryMethodSmooth=void 0;(class fw extends Km{}).prototype.ValueTypeName="vector";class dP{constructor(a,c,u=0,m=1/0){this.ray=new cf(a,c),this.near=u,this.far=m,this.camera=null,this.layers=new so,this.params={Mesh:{},Line:{threshold:1},LOD:{},Points:{threshold:1},Sprite:{}}}set(a,c){this.ray.set(a,c)}setFromCamera(a,c){c.isPerspectiveCamera?(this.ray.origin.setFromMatrixPosition(c.matrixWorld),this.ray.direction.set(a.x,a.y,.5).unproject(c).sub(this.ray.origin).normalize(),this.camera=c):c.isOrthographicCamera?(this.ray.origin.set(a.x,a.y,(c.near+c.far)/(c.near-c.far)).unproject(c),this.ray.direction.set(0,0,-1).transformDirection(c.matrixWorld),this.camera=c):console.error("THREE.Raycaster: Unsupported camera type: "+c.type)}intersectObject(a,c=!0,u=[]){return TM(a,this,u,c),u.sort(n3),u}intersectObjects(a,c=!0,u=[]){for(let m=0,M=a.length;m"u"?Date:performance).now()}class gw{constructor(a=1,c=0,u=0){return this.radius=a,this.phi=c,this.theta=u,this}set(a,c,u){return this.radius=a,this.phi=c,this.theta=u,this}copy(a){return this.radius=a.radius,this.phi=a.phi,this.theta=a.theta,this}makeSafe(){return this.phi=Math.max(1e-6,Math.min(Math.PI-1e-6,this.phi)),this}setFromVector3(a){return this.setFromCartesianCoords(a.x,a.y,a.z)}setFromCartesianCoords(a,c,u){return this.radius=Math.sqrt(a*a+c*c+u*u),0===this.radius?(this.theta=0,this.phi=0):(this.theta=Math.atan2(a,u),this.phi=Math.acos(nl(c/this.radius,-1,1))),this}clone(){return(new this.constructor).copy(this)}}const BM=new Ui;class _y{constructor(a=new Ui(1/0,1/0),c=new Ui(-1/0,-1/0)){this.isBox2=!0,this.min=a,this.max=c}set(a,c){return this.min.copy(a),this.max.copy(c),this}setFromPoints(a){this.makeEmpty();for(let c=0,u=a.length;cthis.max.x||a.ythis.max.y)}containsBox(a){return this.min.x<=a.min.x&&a.max.x<=this.max.x&&this.min.y<=a.min.y&&a.max.y<=this.max.y}getParameter(a,c){return c.set((a.x-this.min.x)/(this.max.x-this.min.x),(a.y-this.min.y)/(this.max.y-this.min.y))}intersectsBox(a){return!(a.max.xthis.max.x||a.max.ythis.max.y)}clampPoint(a,c){return c.copy(a).clamp(this.min,this.max)}distanceToPoint(a){return this.clampPoint(a,BM).distanceTo(a)}intersect(a){return this.min.max(a.min),this.max.min(a.max),this.isEmpty()&&this.makeEmpty(),this}union(a){return this.min.min(a.min),this.max.max(a.max),this}translate(a){return this.min.add(a),this.max.add(a),this}equals(a){return a.min.equals(this.min)&&a.max.equals(this.max)}}const PM=new Ft,_w=new Ft;class eb{constructor(a=new Ft,c=new Ft){this.start=a,this.end=c}set(a,c){return this.start.copy(a),this.end.copy(c),this}copy(a){return this.start.copy(a.start),this.end.copy(a.end),this}getCenter(a){return a.addVectors(this.start,this.end).multiplyScalar(.5)}delta(a){return a.subVectors(this.end,this.start)}distanceSq(){return this.start.distanceToSquared(this.end)}distance(){return this.start.distanceTo(this.end)}at(a,c){return this.delta(c).multiplyScalar(a).add(this.start)}closestPointToPointParameter(a,c){PM.subVectors(a,this.start),_w.subVectors(this.end,this.start);const u=_w.dot(_w);let M=_w.dot(PM)/u;return c&&(M=nl(M,0,1)),M}closestPointToPoint(a,c,u){const m=this.closestPointToPointParameter(a,c);return this.delta(u).multiplyScalar(m).add(this.start)}applyMatrix4(a){return this.start.applyMatrix4(a),this.end.applyMatrix4(a),this}equals(a){return a.start.equals(this.start)&&a.end.equals(this.end)}clone(){return(new this.constructor).copy(this)}}class r3 extends jC{constructor(a,c=1,u=16776960){const m=u,N=new Cs;N.setAttribute("position",new Bo([1,-1,0,-1,1,0,-1,-1,0,1,1,0,-1,1,0,-1,-1,0,1,-1,0,1,1,0],3)),N.computeBoundingSphere(),super(N,new $1({color:m,toneMapped:!1})),this.type="PlaneHelper",this.plane=a,this.size=c;const de=new Cs;de.setAttribute("position",new Bo([1,1,0,-1,1,0,-1,-1,0,1,1,0,-1,-1,0,1,-1,0],3)),de.computeBoundingSphere(),this.add(new Jc(de,new Xc({color:m,opacity:.2,transparent:!0,depthWrite:!1,toneMapped:!1})))}updateMatrixWorld(a){this.position.set(0,0,0),this.scale.set(.5*this.size,.5*this.size,1),this.lookAt(this.plane.normal),this.translateZ(-this.plane.constant),super.updateMatrixWorld(a)}dispose(){this.geometry.dispose(),this.material.dispose(),this.children[0].geometry.dispose(),this.children[0].material.dispose()}}class hP{constructor(){this.type="ShapePath",this.color=new Os,this.subPaths=[],this.currentPath=null}moveTo(a,c){return this.currentPath=new JC,this.subPaths.push(this.currentPath),this.currentPath.moveTo(a,c),this}lineTo(a,c){return this.currentPath.lineTo(a,c),this}quadraticCurveTo(a,c,u,m){return this.currentPath.quadraticCurveTo(a,c,u,m),this}bezierCurveTo(a,c,u,m,M,N){return this.currentPath.bezierCurveTo(a,c,u,m,M,N),this}splineThru(a){return this.currentPath.splineThru(a),this}toShapes(a){function u(ze,Ct){const ct=Ct.length;let Dt=!1;for(let Jt=ct-1,ln=0;lnNumber.EPSILON){if(Zt<0&&(rn=Ct[ln],kt=-kt,Rn=Ct[Jt],Zt=-Zt),ze.yRn.y)continue;if(ze.y===rn.y){if(ze.x===rn.x)return!0}else{const li=Zt*(ze.x-rn.x)-kt*(ze.y-rn.y);if(0===li)return!0;if(li<0)continue;Dt=!Dt}}else{if(ze.y!==rn.y)continue;if(Rn.x<=ze.x&&ze.x<=rn.x||rn.x<=ze.x&&ze.x<=Rn.x)return!0}}return Dt}const m=Ym.isClockWise,M=this.subPaths;if(0===M.length)return[];let N,q,de;const pe=[];if(1===M.length)return q=M[0],de=new ty,de.curves=q.curves,pe.push(de),pe;let xe=!m(M[0].getPoints());xe=a?!xe:xe;const Ie=[],Be=[];let ft,Qe,Le=[],Ke=0;Be[Ke]=void 0,Le[Ke]=[];for(let ze=0,Ct=M.length;ze1){let ze=!1,Ct=0;for(let ct=0,Dt=Be.length;ct0&&!1===ze&&(Le=Ie)}for(let ze=0,Ct=Be.length;ze":{x_min:18.0625,x_max:774,ha:792,o:"m 774 376 l 18 40 l 18 149 l 631 421 l 18 692 l 18 799 l 774 465 l 774 376 "},v:{x_min:0,x_max:675.15625,ha:761,o:"m 675 738 l 404 0 l 272 0 l 0 738 l 133 737 l 340 147 l 541 737 l 675 738 "},\u03c4:{x_min:.28125,x_max:644.5,ha:703,o:"m 644 628 l 382 628 l 382 179 q 388 120 382 137 q 436 91 401 91 q 474 94 447 91 q 504 97 501 97 l 504 0 q 454 -9 482 -5 q 401 -14 426 -14 q 278 67 308 -14 q 260 233 260 118 l 260 628 l 0 628 l 0 739 l 644 739 l 644 628 "},\u03be:{x_min:0,x_max:624.9375,ha:699,o:"m 624 -37 q 608 -153 624 -96 q 563 -278 593 -211 l 454 -278 q 491 -183 486 -200 q 511 -83 511 -126 q 484 -23 511 -44 q 370 1 452 1 q 323 0 354 1 q 283 -1 293 -1 q 84 76 169 -1 q 0 266 0 154 q 56 431 0 358 q 197 538 108 498 q 94 613 134 562 q 54 730 54 665 q 77 823 54 780 q 143 901 101 867 l 27 901 l 27 1012 l 576 1012 l 576 901 l 380 901 q 244 863 303 901 q 178 745 178 820 q 312 600 178 636 q 532 582 380 582 l 532 479 q 276 455 361 479 q 118 281 118 410 q 165 173 118 217 q 274 120 208 133 q 494 101 384 110 q 624 -37 624 76 "},"&":{x_min:-3,x_max:894.25,ha:992,o:"m 894 0 l 725 0 l 624 123 q 471 0 553 40 q 306 -41 390 -41 q 168 -7 231 -41 q 62 92 105 26 q 14 187 31 139 q -3 276 -3 235 q 55 433 -3 358 q 248 581 114 508 q 170 689 196 640 q 137 817 137 751 q 214 985 137 922 q 384 1041 284 1041 q 548 988 483 1041 q 622 824 622 928 q 563 666 622 739 q 431 556 516 608 l 621 326 q 649 407 639 361 q 663 493 653 426 l 781 493 q 703 229 781 352 l 894 0 m 504 818 q 468 908 504 877 q 384 940 433 940 q 293 907 331 940 q 255 818 255 875 q 289 714 255 767 q 363 628 313 678 q 477 729 446 682 q 504 818 504 771 m 556 209 l 314 499 q 179 395 223 449 q 135 283 135 341 q 146 222 135 253 q 183 158 158 192 q 333 80 241 80 q 556 209 448 80 "},\u039b:{x_min:0,x_max:862.5,ha:942,o:"m 862 0 l 719 0 l 426 847 l 143 0 l 0 0 l 356 1013 l 501 1013 l 862 0 "},I:{x_min:41,x_max:180,ha:293,o:"m 180 0 l 41 0 l 41 1013 l 180 1013 l 180 0 "},G:{x_min:0,x_max:921,ha:1011,o:"m 921 0 l 832 0 l 801 136 q 655 15 741 58 q 470 -28 568 -28 q 126 133 259 -28 q 0 499 0 284 q 125 881 0 731 q 486 1043 259 1043 q 763 957 647 1043 q 905 709 890 864 l 772 709 q 668 866 747 807 q 486 926 589 926 q 228 795 322 926 q 142 507 142 677 q 228 224 142 342 q 483 94 323 94 q 712 195 625 94 q 796 435 796 291 l 477 435 l 477 549 l 921 549 l 921 0 "},\u03b0:{x_min:0,x_max:617,ha:725,o:"m 524 800 l 414 800 l 414 925 l 524 925 l 524 800 m 183 800 l 73 800 l 73 925 l 183 925 l 183 800 m 617 352 q 540 93 617 199 q 308 -24 455 -24 q 76 93 161 -24 q 0 352 0 199 l 0 738 l 126 738 l 126 354 q 169 185 126 257 q 312 98 220 98 q 451 185 402 98 q 492 354 492 257 l 492 738 l 617 738 l 617 352 m 489 1040 l 300 819 l 216 819 l 351 1040 l 489 1040 "},"`":{x_min:0,x_max:138.890625,ha:236,o:"m 138 699 l 0 699 l 0 861 q 36 974 0 929 q 138 1041 72 1020 l 138 977 q 82 931 95 969 q 69 839 69 893 l 138 839 l 138 699 "},"\xb7":{x_min:0,x_max:142,ha:239,o:"m 142 585 l 0 585 l 0 738 l 142 738 l 142 585 "},\u03a5:{x_min:.328125,x_max:819.515625,ha:889,o:"m 819 1013 l 482 416 l 482 0 l 342 0 l 342 416 l 0 1013 l 140 1013 l 411 533 l 679 1013 l 819 1013 "},r:{x_min:0,x_max:355.5625,ha:432,o:"m 355 621 l 343 621 q 179 569 236 621 q 122 411 122 518 l 122 0 l 0 0 l 0 737 l 117 737 l 117 604 q 204 719 146 686 q 355 753 262 753 l 355 621 "},x:{x_min:0,x_max:675,ha:764,o:"m 675 0 l 525 0 l 331 286 l 144 0 l 0 0 l 256 379 l 12 738 l 157 737 l 336 473 l 516 738 l 661 738 l 412 380 l 675 0 "},\u03bc:{x_min:0,x_max:696.609375,ha:747,o:"m 696 -4 q 628 -14 657 -14 q 498 97 513 -14 q 422 8 470 41 q 313 -24 374 -24 q 207 3 258 -24 q 120 80 157 31 l 120 -278 l 0 -278 l 0 738 l 124 738 l 124 343 q 165 172 124 246 q 308 82 216 82 q 451 177 402 82 q 492 358 492 254 l 492 738 l 616 738 l 616 214 q 623 136 616 160 q 673 92 636 92 q 696 95 684 92 l 696 -4 "},h:{x_min:0,x_max:615,ha:724,o:"m 615 472 l 615 0 l 490 0 l 490 454 q 456 590 490 535 q 338 654 416 654 q 186 588 251 654 q 122 436 122 522 l 122 0 l 0 0 l 0 1013 l 122 1013 l 122 633 q 218 727 149 694 q 362 760 287 760 q 552 676 484 760 q 615 472 615 600 "},".":{x_min:0,x_max:142,ha:239,o:"m 142 0 l 0 0 l 0 151 l 142 151 l 142 0 "},\u03c6:{x_min:-2,x_max:878,ha:974,o:"m 496 -279 l 378 -279 l 378 -17 q 101 88 204 -17 q -2 367 -2 194 q 68 626 -2 510 q 283 758 151 758 l 283 646 q 167 537 209 626 q 133 373 133 462 q 192 177 133 254 q 378 93 259 93 l 378 758 q 445 764 426 763 q 476 765 464 765 q 765 659 653 765 q 878 377 878 553 q 771 96 878 209 q 496 -17 665 -17 l 496 -279 m 496 93 l 514 93 q 687 183 623 93 q 746 380 746 265 q 691 569 746 491 q 522 658 629 658 l 496 656 l 496 93 "},";":{x_min:0,x_max:142,ha:239,o:"m 142 585 l 0 585 l 0 738 l 142 738 l 142 585 m 142 -12 q 105 -132 142 -82 q 0 -206 68 -182 l 0 -138 q 58 -82 43 -123 q 68 0 68 -56 l 0 0 l 0 151 l 142 151 l 142 -12 "},f:{x_min:0,x_max:378,ha:472,o:"m 378 638 l 246 638 l 246 0 l 121 0 l 121 638 l 0 638 l 0 738 l 121 738 q 137 935 121 887 q 290 1028 171 1028 q 320 1027 305 1028 q 378 1021 334 1026 l 378 908 q 323 918 346 918 q 257 870 273 918 q 246 780 246 840 l 246 738 l 378 738 l 378 638 "},"\u201c":{x_min:1,x_max:348.21875,ha:454,o:"m 140 670 l 1 670 l 1 830 q 37 943 1 897 q 140 1011 74 990 l 140 947 q 82 900 97 940 q 68 810 68 861 l 140 810 l 140 670 m 348 670 l 209 670 l 209 830 q 245 943 209 897 q 348 1011 282 990 l 348 947 q 290 900 305 940 q 276 810 276 861 l 348 810 l 348 670 "},A:{x_min:.03125,x_max:906.953125,ha:1008,o:"m 906 0 l 756 0 l 648 303 l 251 303 l 142 0 l 0 0 l 376 1013 l 529 1013 l 906 0 m 610 421 l 452 867 l 293 421 l 610 421 "},"\u2018":{x_min:1,x_max:139.890625,ha:236,o:"m 139 670 l 1 670 l 1 830 q 37 943 1 897 q 139 1011 74 990 l 139 947 q 82 900 97 940 q 68 810 68 861 l 139 810 l 139 670 "},\u03ca:{x_min:-70,x_max:283,ha:361,o:"m 283 800 l 173 800 l 173 925 l 283 925 l 283 800 m 40 800 l -70 800 l -70 925 l 40 925 l 40 800 m 283 3 q 232 -10 257 -5 q 181 -15 206 -15 q 84 26 118 -15 q 41 200 41 79 l 41 737 l 166 737 l 167 215 q 171 141 167 157 q 225 101 182 101 q 247 103 238 101 q 283 112 256 104 l 283 3 "},\u03c0:{x_min:-.21875,x_max:773.21875,ha:857,o:"m 773 -7 l 707 -11 q 575 40 607 -11 q 552 174 552 77 l 552 226 l 552 626 l 222 626 l 222 0 l 97 0 l 97 626 l 0 626 l 0 737 l 773 737 l 773 626 l 676 626 l 676 171 q 695 103 676 117 q 773 90 714 90 l 773 -7 "},\u03ac:{x_min:0,x_max:765.5625,ha:809,o:"m 765 -4 q 698 -14 726 -14 q 564 97 586 -14 q 466 7 525 40 q 337 -26 407 -26 q 88 98 186 -26 q 0 369 0 212 q 88 637 0 525 q 337 760 184 760 q 465 727 407 760 q 563 637 524 695 l 563 738 l 685 738 l 685 222 q 693 141 685 168 q 748 94 708 94 q 765 95 760 94 l 765 -4 m 584 371 q 531 562 584 485 q 360 653 470 653 q 192 566 254 653 q 135 379 135 489 q 186 181 135 261 q 358 84 247 84 q 528 176 465 84 q 584 371 584 260 m 604 1040 l 415 819 l 332 819 l 466 1040 l 604 1040 "},O:{x_min:0,x_max:958,ha:1057,o:"m 485 1041 q 834 882 702 1041 q 958 512 958 734 q 834 136 958 287 q 481 -26 702 -26 q 126 130 261 -26 q 0 504 0 279 q 127 880 0 728 q 485 1041 263 1041 m 480 98 q 731 225 638 98 q 815 504 815 340 q 733 783 815 669 q 480 912 640 912 q 226 784 321 912 q 142 504 142 670 q 226 224 142 339 q 480 98 319 98 "},n:{x_min:0,x_max:615,ha:724,o:"m 615 463 l 615 0 l 490 0 l 490 454 q 453 592 490 537 q 331 656 410 656 q 178 585 240 656 q 117 421 117 514 l 117 0 l 0 0 l 0 738 l 117 738 l 117 630 q 218 728 150 693 q 359 764 286 764 q 552 675 484 764 q 615 463 615 593 "},l:{x_min:41,x_max:166,ha:279,o:"m 166 0 l 41 0 l 41 1013 l 166 1013 l 166 0 "},"\xa4":{x_min:40.09375,x_max:728.796875,ha:825,o:"m 728 304 l 649 224 l 512 363 q 383 331 458 331 q 256 363 310 331 l 119 224 l 40 304 l 177 441 q 150 553 150 493 q 184 673 150 621 l 40 818 l 119 898 l 267 749 q 321 766 291 759 q 384 773 351 773 q 447 766 417 773 q 501 749 477 759 l 649 898 l 728 818 l 585 675 q 612 618 604 648 q 621 553 621 587 q 591 441 621 491 l 728 304 m 384 682 q 280 643 318 682 q 243 551 243 604 q 279 461 243 499 q 383 423 316 423 q 487 461 449 423 q 525 553 525 500 q 490 641 525 605 q 384 682 451 682 "},\u03ba:{x_min:0,x_max:632.328125,ha:679,o:"m 632 0 l 482 0 l 225 384 l 124 288 l 124 0 l 0 0 l 0 738 l 124 738 l 124 446 l 433 738 l 596 738 l 312 466 l 632 0 "},p:{x_min:0,x_max:685,ha:786,o:"m 685 364 q 598 96 685 205 q 350 -23 504 -23 q 121 89 205 -23 l 121 -278 l 0 -278 l 0 738 l 121 738 l 121 633 q 220 726 159 691 q 351 761 280 761 q 598 636 504 761 q 685 364 685 522 m 557 371 q 501 560 557 481 q 330 651 437 651 q 162 559 223 651 q 108 366 108 479 q 162 177 108 254 q 333 87 224 87 q 502 178 441 87 q 557 371 557 258 "},"\u2021":{x_min:0,x_max:777,ha:835,o:"m 458 238 l 458 0 l 319 0 l 319 238 l 0 238 l 0 360 l 319 360 l 319 681 l 0 683 l 0 804 l 319 804 l 319 1015 l 458 1013 l 458 804 l 777 804 l 777 683 l 458 683 l 458 360 l 777 360 l 777 238 l 458 238 "},\u03c8:{x_min:0,x_max:808,ha:907,o:"m 465 -278 l 341 -278 l 341 -15 q 87 102 180 -15 q 0 378 0 210 l 0 739 l 133 739 l 133 379 q 182 195 133 275 q 341 98 242 98 l 341 922 l 465 922 l 465 98 q 623 195 563 98 q 675 382 675 278 l 675 742 l 808 742 l 808 381 q 720 104 808 213 q 466 -13 627 -13 l 465 -278 "},\u03b7:{x_min:.78125,x_max:697,ha:810,o:"m 697 -278 l 572 -278 l 572 454 q 540 587 572 536 q 425 650 501 650 q 271 579 337 650 q 206 420 206 509 l 206 0 l 81 0 l 81 489 q 73 588 81 562 q 0 644 56 644 l 0 741 q 68 755 38 755 q 158 720 124 755 q 200 630 193 686 q 297 726 234 692 q 434 761 359 761 q 620 692 544 761 q 697 516 697 624 l 697 -278 "}},d3={yMin:-334,xMin:-111,yMax:1189,xMax:1672},yw={postscript_name:"Helvetiker-Regular",version_string:"Version 1.00 2004 initial release",vendor_url:"http://www.magenta.gr/",full_font_name:"Helvetiker",font_family_name:"Helvetiker",copyright:"Copyright (c) \u039cagenta ltd, 2004",description:"",trademark:"",designer:"",designer_url:"",unique_font_identifier:"\u039cagenta ltd:Helvetiker:22-10-104",license_url:"http://www.ellak.gr/fonts/MgOpen/license.html",license_description:'Copyright (c) 2004 by MAGENTA Ltd. All Rights Reserved.\r\n\r\nPermission is hereby granted, free of charge, to any person obtaining a copy of the fonts accompanying this license ("Fonts") and associated documentation files (the "Font Software"), to reproduce and distribute the Font Software, including without limitation the rights to use, copy, merge, publish, distribute, and/or sell copies of the Font Software, and to permit persons to whom the Font Software is furnished to do so, subject to the following conditions: \r\n\r\nThe above copyright and this permission notice shall be included in all copies of one or more of the Font Software typefaces.\r\n\r\nThe Font Software may be modified, altered, or added to, and in particular the designs of glyphs or characters in the Fonts may be modified and additional glyphs or characters may be added to the Fonts, only if the fonts are renamed to names not containing the word "MgOpen", or if the modifications are accepted for inclusion in the Font Software itself by the each appointed Administrator.\r\n\r\nThis License becomes null and void to the extent applicable to Fonts or Font Software that has been modified and is distributed under the "MgOpen" name.\r\n\r\nThe Font Software may be sold as part of a larger software package but no copy of one or more of the Font Software typefaces may be sold by itself. \r\n\r\nTHE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL MAGENTA OR PERSONS OR BODIES IN CHARGE OF ADMINISTRATION AND MAINTENANCE OF THE FONT SOFTWARE BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.',manufacturer_name:"\u039cagenta ltd",font_sub_family_name:"Regular"},u3="Helvetiker",uP=Object.freeze({__proto__:null,ascender:1189,boundingBox:d3,cssFontStyle:"normal",cssFontWeight:"normal",default:{glyphs:o3,cssFontWeight:"normal",ascender:1189,underlinePosition:-100,cssFontStyle:"normal",boundingBox:d3,resolution:1e3,original_font_information:yw,descender:-334,familyName:u3,lineHeight:1522,underlineThickness:50},descender:-334,familyName:u3,glyphs:o3,lineHeight:1522,original_font_information:yw,resolution:1e3,underlinePosition:-100,underlineThickness:50});class fP{constructor(a){this.isFont=!0,this.type="Font",this.data=a}generateShapes(a,c=100){const u=[],m=function RM(w,a,c){const u=Array.from(w),m=a/c.resolution,M=(c.boundingBox.yMax-c.boundingBox.yMin+c.underlineThickness)*m,N=[];let q=0,de=0;for(let pe=0;peMath.PI&&(ys-=to),jr<-Math.PI?jr+=to:jr>Math.PI&&(jr-=to),q.theta=ys<=jr?Math.max(ys,Math.min(jr,q.theta)):q.theta>(ys+jr)/2?Math.max(ys,q.theta):Math.min(jr,q.theta)),q.phi=Math.max(u.minPolarAngle,Math.min(u.maxPolarAngle,q.phi)),q.makeSafe(),!0===u.enableDamping?u.target.addScaledVector(xe,u.dampingFactor):u.target.add(xe),u.target.sub(u.cursor),u.target.clampLength(u.minTargetRadius,u.maxTargetRadius),u.target.add(u.cursor),q.radius=Ji(u.zoomToCursor&&ln||u.object.isOrthographicCamera?q.radius:q.radius*pe),Nn.setFromSpherical(q),Nn.applyQuaternion(xr),Kn.copy(u.target).add(Nn),u.object.lookAt(u.target),!0===u.enableDamping?(de.theta*=1-u.dampingFactor,de.phi*=1-u.dampingFactor,xe.multiplyScalar(1-u.dampingFactor)):(de.set(0,0,0),xe.set(0,0,0));let dr=!1;if(u.zoomToCursor&&ln){let ts=null;if(u.object.isPerspectiveCamera){const xo=Nn.length();ts=Ji(xo*pe),u.object.position.addScaledVector(Dt,xo-ts),u.object.updateMatrixWorld()}else if(u.object.isOrthographicCamera){const xo=new Ft(Jt.x,Jt.y,0);xo.unproject(u.object),u.object.zoom=Math.max(u.minZoom,Math.min(u.maxZoom,u.object.zoom/pe)),u.object.updateProjectionMatrix(),dr=!0;const Na=new Ft(Jt.x,Jt.y,0);Na.unproject(u.object),u.object.position.sub(Na).add(xo),u.object.updateMatrixWorld(),ts=Nn.length()}else console.warn("WARNING: OrbitControls.js encountered an unknown camera type - zoom to cursor disabled."),u.zoomToCursor=!1;null!==ts&&(this.screenSpacePanning?u.target.set(0,0,-1).transformDirection(u.object.matrix).multiplyScalar(ts).add(u.object.position):(rb.origin.copy(u.object.position),rb.direction.set(0,0,-1).transformDirection(u.object.matrix),Math.abs(u.object.up.dot(rb.direction))N||8*(1-Ao.dot(u.object.quaternion))>N||fo.distanceToSquared(u.target)>0)&&(u.dispatchEvent(kM),Oo.copy(u.object.position),Ao.copy(u.object.quaternion),fo.copy(u.target),dr=!1,!0)}}(),this.dispose=function(){u.domElement.removeEventListener("contextmenu",Ar),u.domElement.removeEventListener("pointerdown",Nr),u.domElement.removeEventListener("pointercancel",hs),u.domElement.removeEventListener("wheel",$t),u.domElement.removeEventListener("pointermove",fr),u.domElement.removeEventListener("pointerup",hs),null!==u._domElementKeyEvents&&(u._domElementKeyEvents.removeEventListener("keydown",Pt),u._domElementKeyEvents=null)};const u=this,m={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_PAN:4,TOUCH_DOLLY_PAN:5,TOUCH_DOLLY_ROTATE:6};let M=m.NONE;const N=1e-6,q=new gw,de=new gw;let pe=1;const xe=new Ft,Ie=new Ui,Be=new Ui,Le=new Ui,Ke=new Ui,ft=new Ui,Qe=new Ui,ze=new Ui,Ct=new Ui,ct=new Ui,Dt=new Ft,Jt=new Ui;let ln=!1;const rn=[],Rn={};function Zt(){return Math.pow(.95,u.zoomSpeed)}function li(Nn){de.theta-=Nn}function Ti(Nn){de.phi-=Nn}const hr=function(){const Nn=new Ft;return function(xr,Oo){Nn.setFromMatrixColumn(Oo,0),Nn.multiplyScalar(-xr),xe.add(Nn)}}(),Yn=function(){const Nn=new Ft;return function(xr,Oo){!0===u.screenSpacePanning?Nn.setFromMatrixColumn(Oo,1):(Nn.setFromMatrixColumn(Oo,0),Nn.crossVectors(u.object.up,Nn)),Nn.multiplyScalar(xr),xe.add(Nn)}}(),Di=function(){const Nn=new Ft;return function(xr,Oo){const Ao=u.domElement;if(u.object.isPerspectiveCamera){Nn.copy(u.object.position).sub(u.target);let to=Nn.length();to*=Math.tan(u.object.fov/2*Math.PI/180),hr(2*xr*to/Ao.clientHeight,u.object.matrix),Yn(2*Oo*to/Ao.clientHeight,u.object.matrix)}else u.object.isOrthographicCamera?(hr(xr*(u.object.right-u.object.left)/u.object.zoom/Ao.clientWidth,u.object.matrix),Yn(Oo*(u.object.top-u.object.bottom)/u.object.zoom/Ao.clientHeight,u.object.matrix)):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - pan disabled."),u.enablePan=!1)}}();function rr(Nn){u.object.isPerspectiveCamera||u.object.isOrthographicCamera?pe/=Nn:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),u.enableZoom=!1)}function Oi(Nn){u.object.isPerspectiveCamera||u.object.isOrthographicCamera?pe*=Nn:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),u.enableZoom=!1)}function br(Nn){if(!u.zoomToCursor)return;ln=!0;const Hr=u.domElement.getBoundingClientRect(),Oo=Nn.clientY-Hr.top,fo=Hr.height;Jt.x=(Nn.clientX-Hr.left)/Hr.width*2-1,Jt.y=-Oo/fo*2+1,Dt.set(Jt.x,Jt.y,1).unproject(u.object).sub(u.object.position).normalize()}function Ji(Nn){return Math.max(u.minDistance,Math.min(u.maxDistance,Nn))}function lr(Nn){Ie.set(Nn.clientX,Nn.clientY)}function sr(Nn){Ke.set(Nn.clientX,Nn.clientY)}function er(){1===rn.length?Ie.set(rn[0].pageX,rn[0].pageY):Ie.set(.5*(rn[0].pageX+rn[1].pageX),.5*(rn[0].pageY+rn[1].pageY))}function Or(){1===rn.length?Ke.set(rn[0].pageX,rn[0].pageY):Ke.set(.5*(rn[0].pageX+rn[1].pageX),.5*(rn[0].pageY+rn[1].pageY))}function yr(){const Nn=rn[0].pageX-rn[1].pageX,Hr=rn[0].pageY-rn[1].pageY,xr=Math.sqrt(Nn*Nn+Hr*Hr);ze.set(0,xr)}function Ki(Nn){if(1==rn.length)Be.set(Nn.pageX,Nn.pageY);else{const xr=es(Nn);Be.set(.5*(Nn.pageX+xr.x),.5*(Nn.pageY+xr.y))}Le.subVectors(Be,Ie).multiplyScalar(u.rotateSpeed);const Hr=u.domElement;li(2*Math.PI*Le.x/Hr.clientHeight),Ti(2*Math.PI*Le.y/Hr.clientHeight),Ie.copy(Be)}function si(Nn){if(1===rn.length)ft.set(Nn.pageX,Nn.pageY);else{const Hr=es(Nn);ft.set(.5*(Nn.pageX+Hr.x),.5*(Nn.pageY+Hr.y))}Qe.subVectors(ft,Ke).multiplyScalar(u.panSpeed),Di(Qe.x,Qe.y),Ke.copy(ft)}function Ri(Nn){const Hr=es(Nn),xr=Nn.pageX-Hr.x,Oo=Nn.pageY-Hr.y,Ao=Math.sqrt(xr*xr+Oo*Oo);Ct.set(0,Ao),ct.set(0,Math.pow(Ct.y/ze.y,u.zoomSpeed)),rr(ct.y),ze.copy(Ct)}function Nr(Nn){!1!==u.enabled&&(0===rn.length&&(u.domElement.setPointerCapture(Nn.pointerId),u.domElement.addEventListener("pointermove",fr),u.domElement.addEventListener("pointerup",hs)),function Br(Nn){rn.push(Nn)}(Nn),"touch"===Nn.pointerType?function ni(Nn){switch(Ir(Nn),rn.length){case 1:switch(u.touches.ONE){case 0:if(!1===u.enableRotate)return;er(),M=m.TOUCH_ROTATE;break;case 1:if(!1===u.enablePan)return;Or(),M=m.TOUCH_PAN;break;default:M=m.NONE}break;case 2:switch(u.touches.TWO){case 2:if(!1===u.enableZoom&&!1===u.enablePan)return;(function vr(){u.enableZoom&&yr(),u.enablePan&&Or()})(),M=m.TOUCH_DOLLY_PAN;break;case 3:if(!1===u.enableZoom&&!1===u.enableRotate)return;(function _n(){u.enableZoom&&yr(),u.enableRotate&&er()})(),M=m.TOUCH_DOLLY_ROTATE;break;default:M=m.NONE}break;default:M=m.NONE}M!==m.NONE&&u.dispatchEvent(FM)}(Nn):function co(Nn){let Hr;switch(Nn.button){case 0:Hr=u.mouseButtons.LEFT;break;case 1:Hr=u.mouseButtons.MIDDLE;break;case 2:Hr=u.mouseButtons.RIGHT;break;default:Hr=-1}switch(Hr){case 1:if(!1===u.enableZoom)return;(function ei(Nn){br(Nn),ze.set(Nn.clientX,Nn.clientY)})(Nn),M=m.DOLLY;break;case 0:if(Nn.ctrlKey||Nn.metaKey||Nn.shiftKey){if(!1===u.enablePan)return;sr(Nn),M=m.PAN}else{if(!1===u.enableRotate)return;lr(Nn),M=m.ROTATE}break;case 2:if(Nn.ctrlKey||Nn.metaKey||Nn.shiftKey){if(!1===u.enableRotate)return;lr(Nn),M=m.ROTATE}else{if(!1===u.enablePan)return;sr(Nn),M=m.PAN}break;default:M=m.NONE}M!==m.NONE&&u.dispatchEvent(FM)}(Nn))}function fr(Nn){!1!==u.enabled&&("touch"===Nn.pointerType?function cr(Nn){switch(Ir(Nn),M){case m.TOUCH_ROTATE:if(!1===u.enableRotate)return;Ki(Nn),u.update();break;case m.TOUCH_PAN:if(!1===u.enablePan)return;si(Nn),u.update();break;case m.TOUCH_DOLLY_PAN:if(!1===u.enableZoom&&!1===u.enablePan)return;(function Ii(Nn){u.enableZoom&&Ri(Nn),u.enablePan&&si(Nn)})(Nn),u.update();break;case m.TOUCH_DOLLY_ROTATE:if(!1===u.enableZoom&&!1===u.enableRotate)return;(function Jr(Nn){u.enableZoom&&Ri(Nn),u.enableRotate&&Ki(Nn)})(Nn),u.update();break;default:M=m.NONE}}(Nn):function _s(Nn){switch(M){case m.ROTATE:if(!1===u.enableRotate)return;!function as(Nn){Be.set(Nn.clientX,Nn.clientY),Le.subVectors(Be,Ie).multiplyScalar(u.rotateSpeed);const Hr=u.domElement;li(2*Math.PI*Le.x/Hr.clientHeight),Ti(2*Math.PI*Le.y/Hr.clientHeight),Ie.copy(Be),u.update()}(Nn);break;case m.DOLLY:if(!1===u.enableZoom)return;!function xs(Nn){Ct.set(Nn.clientX,Nn.clientY),ct.subVectors(Ct,ze),ct.y>0?rr(Zt()):ct.y<0&&Oi(Zt()),ze.copy(Ct),u.update()}(Nn);break;case m.PAN:if(!1===u.enablePan)return;!function Ds(Nn){ft.set(Nn.clientX,Nn.clientY),Qe.subVectors(ft,Ke).multiplyScalar(u.panSpeed),Di(Qe.x,Qe.y),Ke.copy(ft),u.update()}(Nn)}}(Nn))}function hs(Nn){(function ks(Nn){delete Rn[Nn.pointerId];for(let Hr=0;Hr0&&rr(Zt()),u.update()}(Nn),u.dispatchEvent(f3))}function Pt(Nn){!1===u.enabled||!1===u.enablePan||function eo(Nn){let Hr=!1;switch(Nn.code){case u.keys.UP:Nn.ctrlKey||Nn.metaKey||Nn.shiftKey?Ti(2*Math.PI*u.rotateSpeed/u.domElement.clientHeight):Di(0,u.keyPanSpeed),Hr=!0;break;case u.keys.BOTTOM:Nn.ctrlKey||Nn.metaKey||Nn.shiftKey?Ti(-2*Math.PI*u.rotateSpeed/u.domElement.clientHeight):Di(0,-u.keyPanSpeed),Hr=!0;break;case u.keys.LEFT:Nn.ctrlKey||Nn.metaKey||Nn.shiftKey?li(2*Math.PI*u.rotateSpeed/u.domElement.clientHeight):Di(u.keyPanSpeed,0),Hr=!0;break;case u.keys.RIGHT:Nn.ctrlKey||Nn.metaKey||Nn.shiftKey?li(-2*Math.PI*u.rotateSpeed/u.domElement.clientHeight):Di(-u.keyPanSpeed,0),Hr=!0}Hr&&(Nn.preventDefault(),u.update())}(Nn)}function Ar(Nn){!1!==u.enabled&&Nn.preventDefault()}function Ir(Nn){let Hr=Rn[Nn.pointerId];void 0===Hr&&(Hr=new Ui,Rn[Nn.pointerId]=Hr),Hr.set(Nn.pageX,Nn.pageY)}function es(Nn){return Rn[(Nn.pointerId===rn[0].pointerId?rn[1]:rn[0]).pointerId]}u.domElement.addEventListener("contextmenu",Ar),u.domElement.addEventListener("pointerdown",Nr),u.domElement.addEventListener("pointercancel",hs),u.domElement.addEventListener("wheel",$t,{passive:!1}),this.update()}}const sb={name:"CopyShader",uniforms:{tDiffuse:{value:null},opacity:{value:1}},vertexShader:"\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvUv = uv;\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n\t\t}",fragmentShader:"\n\n\t\tuniform float opacity;\n\n\t\tuniform sampler2D tDiffuse;\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvec4 texel = texture2D( tDiffuse, vUv );\n\t\t\tgl_FragColor = opacity * texel;\n\n\n\t\t}"};class ob{constructor(){this.isPass=!0,this.enabled=!0,this.needsSwap=!0,this.clear=!1,this.renderToScreen=!1}setSize(){}render(){console.error("THREE.Pass: .render() must be implemented in derived pass.")}dispose(){}}const m3=new kd(-1,1,1,-1,0,1),A3=new class AP extends Cs{constructor(){super(),this.setAttribute("position",new Bo([-1,3,0,-1,-1,0,3,-1,0],3)),this.setAttribute("uv",new Bo([0,2,0,0,2,0],2))}};class gP{constructor(a){this._mesh=new Jc(A3,a)}dispose(){this._mesh.geometry.dispose()}render(a){a.render(this._mesh,m3)}get material(){return this._mesh.material}set material(a){this._mesh.material=a}}class _P extends ob{constructor(a,c){super(),this.textureID=void 0!==c?c:"tDiffuse",a instanceof zl?(this.uniforms=a.uniforms,this.material=a):a&&(this.uniforms=dl.clone(a.uniforms),this.material=new zl({name:void 0!==a.name?a.name:"unspecified",defines:Object.assign({},a.defines),uniforms:this.uniforms,vertexShader:a.vertexShader,fragmentShader:a.fragmentShader})),this.fsQuad=new gP(this.material)}render(a,c,u){this.uniforms[this.textureID]&&(this.uniforms[this.textureID].value=u.texture),this.fsQuad.material=this.material,this.renderToScreen?(a.setRenderTarget(null),this.fsQuad.render(a)):(a.setRenderTarget(c),this.clear&&a.clear(a.autoClearColor,a.autoClearDepth,a.autoClearStencil),this.fsQuad.render(a))}dispose(){this.material.dispose(),this.fsQuad.dispose()}}class m0 extends ob{constructor(a,c){super(),this.scene=a,this.camera=c,this.clear=!0,this.needsSwap=!1,this.inverse=!1}render(a,c,u){const m=a.getContext(),M=a.state;let N,q;M.buffers.color.setMask(!1),M.buffers.depth.setMask(!1),M.buffers.color.setLocked(!0),M.buffers.depth.setLocked(!0),this.inverse?(N=0,q=1):(N=1,q=0),M.buffers.stencil.setTest(!0),M.buffers.stencil.setOp(m.REPLACE,m.REPLACE,m.REPLACE),M.buffers.stencil.setFunc(m.ALWAYS,N,4294967295),M.buffers.stencil.setClear(q),M.buffers.stencil.setLocked(!0),a.setRenderTarget(u),this.clear&&a.clear(),a.render(this.scene,this.camera),a.setRenderTarget(c),this.clear&&a.clear(),a.render(this.scene,this.camera),M.buffers.color.setLocked(!1),M.buffers.depth.setLocked(!1),M.buffers.color.setMask(!0),M.buffers.depth.setMask(!0),M.buffers.stencil.setLocked(!1),M.buffers.stencil.setFunc(m.EQUAL,1,4294967295),M.buffers.stencil.setOp(m.KEEP,m.KEEP,m.KEEP),M.buffers.stencil.setLocked(!0)}}class OM extends ob{constructor(){super(),this.needsSwap=!1}render(a){a.state.buffers.stencil.setLocked(!1),a.state.buffers.stencil.setTest(!1)}}class ZA{constructor(a,c){if(this.renderer=a,this._pixelRatio=a.getPixelRatio(),void 0===c){const u=a.getSize(new Ui);this._width=u.width,this._height=u.height,(c=new Fh(this._width*this._pixelRatio,this._height*this._pixelRatio,{type:In})).texture.name="EffectComposer.rt1"}else this._width=c.width,this._height=c.height;this.renderTarget1=c,this.renderTarget2=c.clone(),this.renderTarget2.texture.name="EffectComposer.rt2",this.writeBuffer=this.renderTarget1,this.readBuffer=this.renderTarget2,this.renderToScreen=!0,this.passes=[],this.copyPass=new _P(sb),this.copyPass.material.blending=0,this.clock=new DM}swapBuffers(){const a=this.readBuffer;this.readBuffer=this.writeBuffer,this.writeBuffer=a}addPass(a){this.passes.push(a),a.setSize(this._width*this._pixelRatio,this._height*this._pixelRatio)}insertPass(a,c){this.passes.splice(c,0,a),a.setSize(this._width*this._pixelRatio,this._height*this._pixelRatio)}removePass(a){const c=this.passes.indexOf(a);-1!==c&&this.passes.splice(c,1)}isLastEnabledPass(a){for(let c=a+1;c\n\t\t\t\tvarying vec2 vUv;\n\t\t\t\tuniform sampler2D colorTexture;\n\t\t\t\tuniform vec2 invSize;\n\t\t\t\tuniform vec2 direction;\n\t\t\t\tuniform float gaussianCoefficients[KERNEL_RADIUS];\n\n\t\t\t\tvoid main() {\n\t\t\t\t\tfloat weightSum = gaussianCoefficients[0];\n\t\t\t\t\tvec3 diffuseSum = texture2D( colorTexture, vUv ).rgb * weightSum;\n\t\t\t\t\tfor( int i = 1; i < KERNEL_RADIUS; i ++ ) {\n\t\t\t\t\t\tfloat x = float(i);\n\t\t\t\t\t\tfloat w = gaussianCoefficients[i];\n\t\t\t\t\t\tvec2 uvOffset = direction * invSize * x;\n\t\t\t\t\t\tvec3 sample1 = texture2D( colorTexture, vUv + uvOffset ).rgb;\n\t\t\t\t\t\tvec3 sample2 = texture2D( colorTexture, vUv - uvOffset ).rgb;\n\t\t\t\t\t\tdiffuseSum += (sample1 + sample2) * w;\n\t\t\t\t\t\tweightSum += 2.0 * w;\n\t\t\t\t\t}\n\t\t\t\t\tgl_FragColor = vec4(diffuseSum/weightSum, 1.0);\n\t\t\t\t}"})}getCompositeMaterial(a){return new zl({defines:{NUM_MIPS:a},uniforms:{blurTexture1:{value:null},blurTexture2:{value:null},blurTexture3:{value:null},blurTexture4:{value:null},blurTexture5:{value:null},bloomStrength:{value:1},bloomFactors:{value:null},bloomTintColors:{value:null},bloomRadius:{value:0}},vertexShader:"varying vec2 vUv;\n\t\t\t\tvoid main() {\n\t\t\t\t\tvUv = uv;\n\t\t\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\t\t\t\t}",fragmentShader:"varying vec2 vUv;\n\t\t\t\tuniform sampler2D blurTexture1;\n\t\t\t\tuniform sampler2D blurTexture2;\n\t\t\t\tuniform sampler2D blurTexture3;\n\t\t\t\tuniform sampler2D blurTexture4;\n\t\t\t\tuniform sampler2D blurTexture5;\n\t\t\t\tuniform float bloomStrength;\n\t\t\t\tuniform float bloomRadius;\n\t\t\t\tuniform float bloomFactors[NUM_MIPS];\n\t\t\t\tuniform vec3 bloomTintColors[NUM_MIPS];\n\n\t\t\t\tfloat lerpBloomFactor(const in float factor) {\n\t\t\t\t\tfloat mirrorFactor = 1.2 - factor;\n\t\t\t\t\treturn mix(factor, mirrorFactor, bloomRadius);\n\t\t\t\t}\n\n\t\t\t\tvoid main() {\n\t\t\t\t\tgl_FragColor = bloomStrength * ( lerpBloomFactor(bloomFactors[0]) * vec4(bloomTintColors[0], 1.0) * texture2D(blurTexture1, vUv) +\n\t\t\t\t\t\tlerpBloomFactor(bloomFactors[1]) * vec4(bloomTintColors[1], 1.0) * texture2D(blurTexture2, vUv) +\n\t\t\t\t\t\tlerpBloomFactor(bloomFactors[2]) * vec4(bloomTintColors[2], 1.0) * texture2D(blurTexture3, vUv) +\n\t\t\t\t\t\tlerpBloomFactor(bloomFactors[3]) * vec4(bloomTintColors[3], 1.0) * texture2D(blurTexture4, vUv) +\n\t\t\t\t\t\tlerpBloomFactor(bloomFactors[4]) * vec4(bloomTintColors[4], 1.0) * texture2D(blurTexture5, vUv) );\n\t\t\t\t}"})}}ab.BlurDirectionX=new Ui(1,0),ab.BlurDirectionY=new Ui(0,1);class g3{constructor(){this.id=0,this.object=null,this.z=0,this.renderOrder=0}}class im{constructor(){this.id=0,this.v1=new B_,this.v2=new B_,this.v3=new B_,this.normalModel=new Ft,this.vertexNormalsModel=[new Ft,new Ft,new Ft],this.vertexNormalsLength=0,this.color=new Os,this.material=null,this.uvs=[new Ui,new Ui,new Ui],this.z=0,this.renderOrder=0}}class B_{constructor(){this.position=new Ft,this.positionWorld=new Ft,this.positionScreen=new il,this.visible=!0}copy(a){this.positionWorld.copy(a.positionWorld),this.positionScreen.copy(a.positionScreen)}}class _3{constructor(){this.id=0,this.v1=new B_,this.v2=new B_,this.vertexColors=[new Os,new Os],this.material=null,this.z=0,this.renderOrder=0}}class vP{constructor(){this.id=0,this.object=null,this.x=0,this.y=0,this.z=0,this.rotation=0,this.scale=new Ui,this.material=null,this.renderOrder=0}}class io{constructor(){let a,c,m,M,q,de,xe,Ie,Le,Ke,Qe,u=0,N=0,pe=0,Be=0,ft=0;const ze={objects:[],lights:[],elements:[]},Ct=new Ft,ct=new il,Dt=new rl(new Ft(-1,-1,-1),new Ft(1,1,1)),Jt=new rl,ln=new Array(3),rn=new bo,Rn=new bo,kt=new bo,Zt=new ef,li=[],Ti=[],hr=[],Yn=[],Di=[],Oi=new function rr(){const er=[],Or=[],yr=[];let vr=null;const _n=new zo;function si($t){const ni=$t.positionWorld,cr=$t.positionScreen;ni.copy($t.position).applyMatrix4(Qe),cr.copy(ni).applyMatrix4(Rn);const Ar=1/cr.w;cr.x*=Ar,cr.y*=Ar,cr.z*=Ar,$t.visible=cr.x>=-1&&cr.x<=1&&cr.y>=-1&&cr.y<=1&&cr.z>=-1&&cr.z<=1}function fr($t,Pt,ni){return!0===$t.visible||!0===Pt.visible||!0===ni.visible||(ln[0]=$t.positionScreen,ln[1]=Pt.positionScreen,ln[2]=ni.positionScreen,Dt.intersectsBox(Jt.setFromPoints(ln)))}function hs($t,Pt,ni){return(ni.positionScreen.x-$t.positionScreen.x)*(Pt.positionScreen.y-$t.positionScreen.y)-(ni.positionScreen.y-$t.positionScreen.y)*(Pt.positionScreen.x-$t.positionScreen.x)<0}return{setObject:function Ki($t){vr=$t,_n.getNormalMatrix(vr.matrixWorld),er.length=0,Or.length=0,yr.length=0},projectVertex:si,checkTriangleVisibility:fr,checkBackfaceCulling:hs,pushVertex:function Ri($t,Pt,ni){m=function sr(){if(M===N){const er=new B_;return Ti.push(er),N++,M++,er}return Ti[M++]}(),m.position.set($t,Pt,ni),si(m)},pushNormal:function Ii($t,Pt,ni){er.push($t,Pt,ni)},pushColor:function Jr($t,Pt,ni){Or.push($t,Pt,ni)},pushUv:function Nr($t,Pt){yr.push($t,Pt)},pushLine:function co($t,Pt){const ni=Ti[$t],cr=Ti[Pt];ni.positionScreen.copy(ni.position).applyMatrix4(kt),cr.positionScreen.copy(cr.position).applyMatrix4(kt),!0===function eo(er,Or){let yr=0,vr=1;const _n=er.z+er.w,Ki=Or.z+Or.w,si=-er.z+er.w,Ri=-Or.z+Or.w;return _n>=0&&Ki>=0&&si>=0&&Ri>=0||!(_n<0&&Ki<0||si<0&&Ri<0)&&(_n<0?yr=Math.max(yr,_n/(_n-Ki)):Ki<0&&(vr=Math.min(vr,_n/(_n-Ki))),si<0?yr=Math.max(yr,si/(si-Ri)):Ri<0&&(vr=Math.min(vr,si/(si-Ri))),!(vr=-1&&er.z<=1&&(Le=function Ds(){if(Ke===ft){const er=new vP;return Di.push(er),ft++,Ke++,er}return Di[Ke++]}(),Le.id=Or.id,Le.x=er.x*vr,Le.y=er.y*vr,Le.z=er.z,Le.renderOrder=Or.renderOrder,Le.object=Or,Le.rotation=Or.rotation,Le.scale.x=Or.scale.x*Math.abs(Le.x-(er.x+yr.projectionMatrix.elements[0])/(er.w+yr.projectionMatrix.elements[12])),Le.scale.y=Or.scale.y*Math.abs(Le.y-(er.y+yr.projectionMatrix.elements[5])/(er.w+yr.projectionMatrix.elements[13])),Le.material=Or.material,ze.elements.push(Le))}function fs(er,Or){return er.renderOrder!==Or.renderOrder?er.renderOrder-Or.renderOrder:er.z!==Or.z?Or.z-er.z:er.id!==Or.id?er.id-Or.id:0}this.projectScene=function(er,Or,yr,vr){de=0,Ie=0,Ke=0,ze.elements.length=0,!0===er.matrixWorldAutoUpdate&&er.updateMatrixWorld(),null===Or.parent&&!0===Or.matrixWorldAutoUpdate&&Or.updateMatrixWorld(),rn.copy(Or.matrixWorldInverse),Rn.multiplyMatrices(Or.projectionMatrix,rn),Zt.setFromProjectionMatrix(Rn),c=0,ze.objects.length=0,ze.lights.length=0,br(er),!0===yr&&ze.objects.sort(fs);const _n=ze.objects;for(let Ki=0,si=_n.length;Ki0)for(let $t=0;$t0)for(let _s=0;_s0;)br.removeChild(br.childNodes[0])}function lr(yr){return null!==Le?yr.toFixed(Le):yr}function as(yr,vr,_n){let Ki=vr.scale.x*N,si=vr.scale.y*q;_n.isPointsMaterial&&(Ki*=_n.size,si*=_n.size);const Ri="M"+lr(yr.x-.5*Ki)+","+lr(yr.y-.5*si)+"h"+lr(Ki)+"v"+lr(si)+"h"+lr(-Ki)+"z";let Ii="";(_n.isSpriteMaterial||_n.isPointsMaterial)&&(Ii="fill:"+_n.color.getStyle(ze.outputColorSpace)+";fill-opacity:"+_n.opacity),eo(Ii,Ri)}function xs(yr,vr,_n){const Ki="M"+lr(yr.positionScreen.x)+","+lr(yr.positionScreen.y)+"L"+lr(vr.positionScreen.x)+","+lr(vr.positionScreen.y);if(_n.isLineBasicMaterial){let si="fill:none;stroke:"+_n.color.getStyle(ze.outputColorSpace)+";stroke-opacity:"+_n.opacity+";stroke-width:"+_n.linewidth+";stroke-linecap:"+_n.linecap;_n.isLineDashedMaterial&&(si=si+";stroke-dasharray:"+_n.dashSize+","+_n.gapSize),eo(si,Ki)}}function Ds(yr,vr,_n,Ki,si){ze.info.render.vertices+=3,ze.info.render.faces++;const Ri="M"+lr(yr.positionScreen.x)+","+lr(yr.positionScreen.y)+"L"+lr(vr.positionScreen.x)+","+lr(vr.positionScreen.y)+"L"+lr(_n.positionScreen.x)+","+lr(_n.positionScreen.y)+"z";let Ii="";si.isMeshBasicMaterial?(Dt.copy(si.color),si.vertexColors&&Dt.multiply(Ki.color)):si.isMeshLambertMaterial||si.isMeshPhongMaterial||si.isMeshStandardMaterial?(Jt.copy(si.color),si.vertexColors&&Jt.multiply(Ki.color),Dt.copy(ln),li.copy(yr.positionWorld).add(vr.positionWorld).add(_n.positionWorld).divideScalar(3),function sr(yr,vr,_n,Ki){for(let si=0,Ri=yr.length;si1||pe.positionScreen.z<-1||pe.positionScreen.z>1||xe.positionScreen.z<-1||xe.positionScreen.z>1)continue;de.positionScreen.x*=N,de.positionScreen.y*=-q,pe.positionScreen.x*=N,pe.positionScreen.y*=-q,xe.positionScreen.x*=N,xe.positionScreen.y*=-q,this.overdraw>0&&(fs(de.positionScreen,pe.positionScreen,this.overdraw),fs(pe.positionScreen,xe.positionScreen,this.overdraw),fs(xe.positionScreen,de.positionScreen,this.overdraw)),ct.setFromPoints([de.positionScreen,pe.positionScreen,xe.positionScreen]),!0===Ct.intersectsBox(ct)&&Ds(de,pe,xe,Ri,Ii)}}er(),yr.traverseVisible(function(Ki){if(Ki.isSVGObject){if(Zt.setFromMatrixPosition(Ki.matrixWorld),Zt.applyMatrix4(Di),Zt.z<-1||Zt.z>1)return;const Ii=Ki.node;Ii.setAttribute("transform","translate("+Zt.x*N+","+-Zt.y*q+")"),br.appendChild(Ii)}})}}}let NM=uP;typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("register",{detail:{revision:x}})),typeof window<"u"&&(window.__THREE__?console.warn("WARNING: Multiple instances of Three.js being imported."):window.__THREE__=x)},1949:(Yr,mt,Se)=>{"use strict";Se.r(mt),Se.d(mt,{TDrawSelector:()=>E,TDrawVariable:()=>g,TSelector:()=>Y,clTBranchFunc:()=>J,kClonesNode:()=>Ze,kSTLNode:()=>Re,treeDraw:()=>k,treeHierarchy:()=>ue,treeIOTest:()=>ee,treeProcess:()=>I});var Te=Se(4882),x=Se(8872),L=Se(4369),ve=Se(6983);const ke=0,ot=1,Ye=2,Ze=3,Re=4,He=31,Ve=41,De=(0,x.BIT)(22),F="TBranchElement",J="TBranchFunc";class Y{constructor(){this._branches=[],this._names=[],this._directs=[],this._break=0,this.tgtobj={}}addBranch(b,P,T){return P||(P=(0,x.isStr)(b)?b:`br${this._branches.length}`),this._branches.push(b),this._names.push(P),this._directs.push(T),this._branches.length-1}numBranches(){return this._branches.length}getBranch(b){return this._branches[b]}indexOfBranch(b){return this._branches.indexOf(b)}nameOfBranch(b){return this._names[b]}ShowProgress(){}Abort(){this._break=-1111}Begin(){}Process(){}Terminate(){}}function he(V,b){if(!(0,x.isObject)(V))return 0;const P=(0,x.isArrayProto)(Object.prototype.toString.apply(V));if(!b||1!==P)return P;let T,z=!0;for(let W=0;W=0){if(++this.fastindx=0&&!(void 0===this.select[T]&&++this.indx[T]0?"array":"any"),"$self$"===this.select[T+1])return this.value=b,this.fastindx=this.fastlimit=0,this.cnt=T+1,!0;if("any"===P&&(0,x.isStr)(this.select[T+1]))this.arr[++T]=b,this.indx[T]=this.select[T];else{if("array"!==P||!(b.length>0||"$size$"===this.select[T+1]))return!(T<0||(this.value=b,void 0===this.select[T]?(this.fastarr=this.arr[T],this.fastindx=this.indx[T],this.fastlimit=this.fastarr.length):this.fastindx=this.fastlimit=0,this.cnt=T,0));switch(this.arr[++T]=b,this.select[T]){case void 0:this.indx[T]=0;break;case"$last$":this.indx[T]=b.length-1;break;case"$size$":return this.value=b.length,this.fastindx=this.fastlimit=0,this.cnt=T,!0;default:Number.isInteger(this.select[T])?(this.indx[T]=this.select[T],this.indx[T]<0&&(this.indx[T]=b.length-1)):(this.select[T].produce(this.tgtobj),this.indx[T]=Math.round(this.select[T].get(0)))}}}}reset(){this.arr=[],this.indx=[],delete this.fastarr,this.cnt=-1,this.value=0}}function me(V,b,P=!1,T=!1){if(!V||V._typename!==F)return"";if(V.fType===ke&&-2===V.fID&&-1===V.fStreamerType)return V.fClassName;if(P&&V.fClonesName&&(V.fType===Ze||V.fType===Re))return V.fClonesName;const z=_(V,b.$file);if(V.fType===ot&&z&&"BASE"===z.fTypeName)return z.fName;if(V.fType===Ye)return!z||z.fType!==L.Ph&&z.fType!==L.w1?x.clTObject:z.fTypeName;if(V.fType===ke&&z&&T){if(z.fType===L.Ph||z.fType===L.w1)return z.fTypeName;if(z.fType===L.FF)return z.fTypeName.slice(0,z.fTypeName.length-1)}return""}function B(V,b,P=void 0,T=!1){let z=!1,W=b,fe=null;if(!P){z=!0,P=V.fBranches;const we=W.indexOf("[");we>0&&(W=W.slice(0,we))}if(!P||0===P.arr.length)return null;for(let we=0;we0){const Ge=Me.indexOf("<"),lt=Me.lastIndexOf(">");Me=Me.slice(0,Ge)+Me.slice(lt+1)}if(Me===W){fe={branch:P.arr[we],rest:""};break}if(0!==W.indexOf(Me))continue;let je=Me.length;if("."===Me[je-1]&&je--,"."===W[je]){fe=B(V,W,P.arr[we].fBranches),fe||(fe=B(V,W.slice(je+1),P.arr[we].fBranches)),fe||(fe={branch:P.arr[we],rest:W.slice(je)});break}}if(z&&!T&&!fe&&0===W.indexOf("br_")){let we=3;for(;we="0"&&W[we]<="9";)++we;const Me=we>3?function X(V,b){if(!Number.isInteger(b))return;let P,T=0;return function z(W){W?.fBranches?.arr.forEach(fe=>{T++===b&&(P=fe),P||z(fe)})}(V),P}(V,parseInt(W.slice(3,we))):null;Me&&(fe={branch:Me,rest:W.slice(we)})}return!z||!fe||b.length>W.length&&(fe.rest+=b.slice(W.length)),fe}function $(V,b){const P=B(V,b,V.fBranches,!0);return!P||P.rest?null:P.branch}class g{constructor(b){this.globals=b,this.code="",this.brindex=[],this.branches=[],this.brarray=[],this.func=null,this.kind=void 0,this.buf=[]}parse(b,P,T,z,W){const fe=lt=>lt>="A"&<<="Z"||lt>="a"&<<="z"||"_"===lt,we=lt=>!!(fe(lt)||lt>="0"&<<="9");T||(T=""),this.code=(z?.fName??"")+T;let Me=0,je=0,Ge=null;for(;Me=T.length-1&&"."===T[T.length-1]&&(lt.push("$self$"),je=T.length)}for(;je0);)"["===T[je]?tt++:"]"===T[je]&&tt--,je++;const Fe=T.slice(Je+1,je);switch(Fe){case"":case"$all$":lt.push(void 0);break;case"$last$":lt.push("$last$");break;case"$size$":lt.push("$size$");break;case"$first$":lt.push(0);break;default:if(Number.isInteger(parseInt(Fe)))lt.push(parseInt(Fe));else{const Ne=new g(this.globals);if(!Ne.parse(b,P,Fe))return!1;lt.push(Ne)}}je++}0===lt.length?lt=void 0:1===lt.length&&void 0===lt[0]&&(lt=!0);let bt=P.indexOfBranch(Ge);if(bt<0&&(bt=P.addBranch(Ge,void 0,W)),W=void 0,this.brindex.push(bt),this.branches.push(P.nameOfBranch(bt)),this.brarray.push(lt),0===Me&&je===T.length&&1===this.branches.length)return this.direct_branch=!0,!0;const te="arg.var"+(this.branches.length-1);T=T.slice(0,Me)+te+T.slice(je),Me+=te.length}return T=T.replace(/TMath::Exp\(/g,"Math.exp(").replace(/TMath::Abs\(/g,"Math.abs(").replace(/TMath::Prob\(/g,"arg.$math.Prob(").replace(/TMath::Gaus\(/g,"arg.$math.Gaus("),this.func=new Function("arg",`return (${T})`),!0}is_dummy(){return 0===this.branches.length&&!this.func}produce(b){if(this.length=1,this.isarray=!1,this.is_dummy())return this.value=1,void(this.kind="number");const P={$globals:this.globals,$math:ve},T=[];let z=-1;for(let W=0;W0||(0,x.isRootCollection)(P[fe])),!1!==this.brarray[W]){if(!0===this.brarray[W]&&2===he(P[fe],!0))T[W]=P[fe];else{const we=new Q(P[fe],this.brarray[W],b);for(T[W]=[];we.next();)T[W].push(we.value)}(z<0||z=0;){let fe,W=T.slice(z+1);z=(T=T.slice(0,z)).lastIndexOf(";");const we=W.indexOf(":");we>0&&(fe=W.slice(we+1),W=W.slice(0,we));let Me=parseInt(fe);switch((!fe||!Number.isInteger(Me))&&(Me=void 0),W){case"num":case"entries":case"numentries":"all"===fe?P.numentries=b.fEntries:"half"===fe?P.numentries=Math.round(b.fEntries/2):void 0!==Me&&(P.numentries=Me);break;case"first":void 0!==Me&&(P.firstentry=Me);break;case"mon":case"monitor":P.monitoring=void 0!==Me?Me:5e3;break;case"player":P.player=!0;break;case"dump":P.dump=!0;break;case"maxseg":case"maxrange":Me&&(b.$file.fMaxRanges=Me);break;case"accum":Me&&(this.arr_limit=Me);break;case"htype":fe&&1===fe.length&&(this.htype=fe.toUpperCase(),["C","S","I","F","L","D"].indexOf(this.htype)<0&&(this.htype="F"));break;case"hbins":this.hist_nbins=parseInt(fe),!Number.isInteger(this.hist_nbins)||this.hist_nbins<=3?delete this.hist_nbins:this.want_hist=!0;break;case"drawopt":P.drawopt=fe;break;case"graph":P.graph=Me||!0}}if(z=T.lastIndexOf(">>"),z>=0){let W=T.slice(z+2).trim();if(T=T.slice(0,z).trim(),z=W.indexOf("("),z>0&&(this.hist_name=W.slice(0,z),W=W.slice(z)),"dump"===W)P.dump=!0;else if(0===W.indexOf("Graph"))P.graph=!0;else if(z<0)this.want_hist=!0,this.hist_name=W;else if("("===W[0]&&")"===W[W.length-1]){this.want_hist=!0,W=W.slice(1,W.length-1).split(",");let fe=!0;for(let we=0;we0&&(z=T.slice(W+2).trim(),T=T.slice(0,W).trim())),P.parse_expr=T,P.parse_cut=z;const fe=[];let we=0,Me=0,je=0;for(W=0;Wje&&fe.push(T.slice(je,W)),je=W+1}if(!we&&!Me&&W>je&&fe.push(T.slice(je,W)),fe.length<1||fe.length>3)return!1;this.ndim=fe.length;let Ge=!z;for(let lt=0;lt1||z.branch.fBranches&&z.branch.fBranches.arr.length>0)&&!z.leaf,this.addBranch(P,"br0",z.direct_branch),this.Process=this.ProcessDump,!0):(this.vars[0]=new g(this.globals),!!this.vars[0].parse(b,this,T,P,z.direct_branch)&&(this.hist_title=`drawing branch ${P.fName} ${T?" expr:"+T:""} from ${b.fName}`,this.cut=new g(this.globals),this.vars[0].direct_branch&&(this.ProcessArrays=this.ProcessArraysFunc),!0))}Begin(b){this.globals.entries=b.fEntries,this.monitoring&&(this.lasttm=(new Date).getTime())}ShowProgress(){}getBitsBins(b,P){P.nbins=P.max=b,P.fLabels=(0,x.create)(x.clTHashList);for(let T=0;T=this.ndim)return T;const z=this.vars[b].buf;if(T.title=this.vars[b].code||"","object"===this.vars[b].kind){let W,fe=!0,we=8;for(let Me=0;Me"),T.fLabels.Add(fe)}}else{if(0===b&&"bits"===this.hist_name&&this.hist_args.length<=1)return this.fill1DHistogram=this.FillBitsHistogram,this.getBitsBins(this.hist_args[0]||32,T);if(3*b+2=T.max?(T.max=T.min,Math.abs(T.min)<100?(T.min-=1,T.max+=1):T.min>0?(T.min*=.9,T.max*=1.1):(T.min*=1.1,T.max*=.9)):T.max+=(T.max-T.min)/T.nbins}}return T.k=T.nbins/(T.max-T.min),T.GetBin=function(W){const fe=this.lbls?.indexOf(W)??Number.isFinite(W)?Math.floor((W-this.min)*this.k):this.nbins+1;return fe<0?0:fe>this.nbins?this.nbins+1:fe+1},T}createHistogram(b,P=!1){b||(b=20);const T=this.getMinMaxBins(0,b),z=this.getMinMaxBins(1,b),W=this.getMinMaxBins(2,b);let fe=null;switch(this.ndim){case 1:fe=(0,x.createHistogram)(x.clTH1+this.htype,T.nbins);break;case 2:fe=(0,x.createHistogram)(x.clTH2+this.htype,T.nbins,z.nbins);break;case 3:fe=(0,x.createHistogram)(x.clTH3+this.htype,T.nbins,z.nbins,W.nbins)}return fe.fXaxis.fTitle=T.title,fe.fXaxis.fXmin=T.min,fe.fXaxis.fXmax=T.max,fe.fXaxis.fLabels=T.fLabels,this.ndim>1&&(fe.fYaxis.fTitle=z.title),fe.fYaxis.fXmin=z.min,fe.fYaxis.fXmax=z.max,fe.fYaxis.fLabels=z.fLabels,this.ndim>2&&(fe.fZaxis.fTitle=W.title),fe.fZaxis.fXmin=W.min,fe.fZaxis.fXmax=W.max,fe.fZaxis.fLabels=W.fLabels,fe.fName=this.hist_name,fe.fTitle=this.hist_title,fe.fOption=this.histo_drawopt,fe.$custom_stat="$htemp"===this.hist_name?111110:111111,P?(this.hist=fe,this.x=T,this.y=z,this.z=W):fe.fBits=fe.fBits|x.kNoStats,fe}createOutputObject(){if(this.hist||!this.vars[0].buf)return;if(this.dump_values)this.hist=[],this.fill1DHistogram=this.fill2DHistogram=this.fill3DHistogram=this.dumpValues;else if(this.graph){const z=this.vars[0].buf.length;let W=null;if(1===this.ndim)W=(0,x.createTGraph)(z,Array.from(Array(z).keys()),this.vars[0].buf),W.fName="Graph",W.fTitle=this.hist_title;else if(2===this.ndim)W=(0,x.createTGraph)(z,this.vars[0].buf,this.vars[1].buf),W.fName="Graph",W.fTitle=this.hist_title,delete this.vars[1].buf;else if(3===this.ndim){W=(0,x.create)(x.clTPolyMarker3D),W.fN=z,W.fLastPoint=z-1;const fe=new Array(3*z);for(let we=0;we=256&&(W=1,++fe)}FillBitsHistogram(b,P){if(P)for(let T=0,z=1;T=this.arr_limit&&!this.graph)b.buf=this.tgtarr.br0,P&&(P.buf=this.tgtarr.br1),T&&(T.buf=this.tgtarr.br2);else for(let W=0;W=this.arr_limit&&(this.createOutputObject(),this.arr_limit=0)}else{const b=this.tgtarr.br0,P=b.length;switch(this.ndim){case 1:for(let T=0;T=this.arr_limit&&(this.createOutputObject(),this.arr_limit=0)}else if(this.hist)switch(this.ndim){case 1:for(let fe=0;fethis.monitoring&&(this.lasttm=fe,(0,x.isFunc)(this.progress_callback)&&this.progress_callback(this.hist))}}Terminate(b){b&&!this.hist&&this.createOutputObject(),this.ShowProgress(),(0,x.isFunc)(this.result_callback)&&this.result_callback(this.hist)}}function _(V,b){if(!V||!b||V._typename!==F||V.fID<0||V.fStreamerType<0)return null;const P=b.findStreamerInfo(V.fClassName,V.fClassVersion,V.fCheckSum),T=P&&P.fElements?P.fElements.arr:null;if(!T)return null;let z=V.fName,W=z.indexOf("[");function fe(we){return!(!we||we.fName!==z||we.fType!==V.fStreamerType&&(we.fType!==L.Qu||V.fStreamerType!==L.h0)&&(V.fStreamerType!==L.$o&&V.fStreamerType!==L.$o+L.bm&&V.fStreamerType!==L.v5&&V.fStreamerType!==L.v5+L.bm||we.fType!==L.N8)&&(console.warn(`Should match element ${we.fType} with branch ${V.fStreamerType}`),1))}if(W>0&&(z=z.slice(0,W)),W=z.lastIndexOf("."),W>0&&(z=z.slice(W+1)),fe(T[V.fID]))return T[V.fID];for(let we=0;we{let tt=0;switch(te._typename){case"TLeafF":tt=L.k1;break;case"TLeafD":tt=L.Hg;break;case"TLeafO":tt=L.Qu;break;case"TLeafB":tt=te.fIsUnsigned?L.h0:L.yd;break;case"TLeafS":tt=te.fIsUnsigned?L.bP:L.aM;break;case"TLeafI":tt=te.fIsUnsigned?L.c4:L.nc;break;case"TLeafL":tt=te.fIsUnsigned?L.NE:L.s4;break;case"TLeafC":tt=L.V$;break;default:return null}const Fe=(0,L._T)(Je||te.fName,tt);return te.fLen>1&&(Fe.fType+=L.bm,Fe.fArrayLength=te.fLen),Fe},W=te=>{for(let Je=0;Jethis.branch.fMaxBaskets)return 0;const Dn=bn0?this.branch.fBaskets.arr[bn-1]:null;return $n?this.branch.fBasketEntry[bn-1]+$n.fNevBuf:0},getTarget(bn){if(!this.tgt)return bn;for(let Dn=0;Dn0?te.fLeaves.arr[0]:null,pt=te._typename===F;let st=null,vt=null,Yt=0,qt=null,Ot=null,Bn="";if(te.fBranchCount){if(qt=W(te.fBranchCount),qt||(qt=we(te.fBranchCount,Je,"$counter"+fe++,!0)),!qt)return console.error(`Cannot add counter branch ${te.fBranchCount.fName}`),null;let bn=te.fBranchCount2;if(!bn&&te.fBranchCount.fStreamerType===L.$o&&(te.fStreamerType===L.mU||te.fStreamerType===L.bm+L.mU)){const Dn=_(te,T.file),$n=te.fBranchCount.fBranches.arr;if(Dn?.fCountName&&$n)for(let Cn=0;Cn<$n.length;++Cn)if($n[Cn].fName===te.fBranchCount.fName+"."+Dn.fCountName){bn=$n[Cn];break}bn||console.error("Did not found branch for second counter of kStreamLoop element")}if(bn&&(Ot=W(bn),Ot||(Ot=we(bn,Je,"$counter"+fe++,!0)),!Ot))return console.error(`Cannot add counter branch2 ${bn.fName}`),null}else if(1===rt&&St&&St.fLeafCount){const bn=$(T.tree,St.fLeafCount.fName);if(bn&&(qt=W(bn),qt||(qt=we(bn,Je,"$counter"+fe++,!0)),!qt))return console.error(`Cannot add counter branch ${bn.fName}`),null}function Mn(bn,Dn,$n){if(!bn||!bn.arr.length)return!0;let Cn=te.fName;"."===Cn[Cn.length-1]&&(Cn=Cn.slice(0,Cn.length-1)),(0,x.isStr)(Fe)&&"."===Fe[0]&&(Cn+=Fe),Cn+=".";for(let yn=0;yn0&&Sn.fType!==$n)continue;if(Sn.fType===ot){if(!Mn(Sn.fBranches,Dn,$n))return!1;continue}if("BASE"===_(Sn,T.file)?.fTypeName){if(Sn.fTotBytes&&!we(Sn,Je,tt,Fe)||!Mn(Sn.fBranches,Dn,$n))return!1;continue}let ai=Sn.fName,zi=1;if(0===Sn.fName.indexOf(Cn))ai=ai.slice(Cn.length);else if($n>0)continue;let ti=ai.indexOf("[");if(ti>0&&(ai=ai.slice(0,ti)),ti=ai.indexOf("<"),ti>0&&(ai=ai.slice(0,ti)),$n>0){zi="$child$";const Lr=ai.indexOf(".");Lr>0&&(zi=C(bn,te.fName+"."+ai.slice(0,Lr+1),yn)||x.clTObject)}if(!we(Sn,Dn,ai,zi))return!1}return!0}if("TBranchObject"===te._typename)vt={name:tt,typename:te.fClassName,virtual:St.fVirtual,func(bn,Dn){let $n=this.typename;this.virtual&&($n=bn.readFastString(bn.ntou1()+1)),Dn[this.name]=bn.classStreamer({},$n)}};else if(te.fType===Ze||te.fType===Re){if(st=(0,L._T)(tt,L.nc),!Fe||(0,x.isStr)(Fe)&&"."===Fe[0]||1===Fe){if(T.process_arrays=!1,vt={name:tt,conttype:te.fClonesName||x.clTObject,reallocate:P.reallocate_objects,func(bn,Dn){const $n=bn.ntoi4();let Cn=0,yn=Dn[this.name];for(!yn||this.reallocate?yn=Dn[this.name]=new Array($n):(Cn=yn.length,yn.length=$n);Cn<$n;)yn[Cn++]=this.methods.Create()}},(0,x.isStr)(Fe)&&"."===Fe[0]&&(vt.conttype=C(te.fBranches,te.fName+Fe),!vt.conttype))return console.error(`Cannot select object ${Fe} in the branch ${te.fName}`),null;vt.methods=p(vt.conttype),Yt=te.fType===Ze?He:Ve}}else{if(Bn=me(te,T.tree)){if(!0===Fe)return console.warn(`Object branch ${Bn} can not have data to be read directly`),null;T.process_arrays=!1;const bn=new Array(Je?Je.length+1:1);for(let Dn=0;Dn1){const bn=new Array(rt);let Dn=!0;for(let $n=0;$nDn[$n];else{if("$child$"===Fe)return console.error(`target name ${tt} contains point, but suppose to be direct child`),null;if(2===bn.length)tt=vt.name=bn[1],vt.name1=bn[0],vt.subtype1=Fe,vt.methods1=p(vt.subtype1),vt.get=function(Dn,$n){let Cn=Dn[$n][this.name1];return Cn||(Cn=Dn[$n][this.name1]=this.methods1.Create()),Cn};else{if(!te.fParentName)return console.error(`Not possible to provide more than 2 parts in the target name ${tt}`),null;tt=vt.name=bn.pop(),vt.snames=bn,vt.smethods=[];let Dn=te.fParentName;for(let $n=0;$n0&&st.fTypeL.Pk&&st.fTypeL.Pk&&st.fType=T.lastentry)return b.Terminate(!1),Promise.reject(Error("No any common events for selected branches"));if(T.process_min=T.firstentry,T.process_max=T.lastentry,Number.isInteger(P.firstentry)&&P.firstentry>T.firstentry&&P.firstentry0){const te=T.process_min+P.numentries;te=L.bm||Je.type===L.k)&&(T.process_arrays=!1)}if(T.process_arrays){b.tgtarr={};for(let te=0;te0?{places:rt,filename:St}:null}function tt(rt){if(T.staged_prev===T.staged_now||T.process_max<=T.process_min)return;const St=(new Date).getTime();return St-T.progress_showtm<500?void 0:(T.progress_showtm=St,T.selector.ShowProgress((T.staged_prev+rt*(T.staged_now-T.staged_prev))/(T.process_max-T.process_min)))}function Fe(rt,St){return!rt||St.length>2&&2*rt.length!==St.length?Promise.resolve(null):(2===St.length&&(rt=[rt]),function pt(st){for(;st{if(!Bn)throw new Error("FAIL TO UNPACK");return qt=new L.lW(Bn,0,T.file),qt.raw_shift=Ot.fKeylen,qt.fTagOffset=Ot.fKeylen,te[st].raw=qt,te[st].branch.fEntryOffsetLen>0&&qt.readBasketEntryOffset(Ot,qt.raw_shift),pt(st+1)});qt.raw_shift=0,te[st].raw=qt,te[st].branch.fEntryOffsetLen>0&&qt.readBasketEntryOffset(Ot,qt.raw_shift)}const vt=Je();return vt?T.file.readBuffer(vt.places,vt.filename,tt).then(Yt=>Fe(Yt)).catch(()=>null):Promise.resolve(te)}(0))}const Ne=Je();return Ne?T.file.readBuffer(Ne.places,Ne.filename,tt).then(rt=>Fe(rt,Ne.places)).catch(()=>null):Promise.resolve(null)}function lt(){const te=[];let Je=0,tt=!0,Fe=!1,Ne=T.process_max;for(;Je<1e6&&tt;){tt=!1;for(let St=T.arr.length-1;St>=0;--St){const pt=T.arr[St];for(;pt.staged_basket=T.process_max)break;if(pt.first_readentry<0){if(pt.getBasketEntry(st+1)<=T.process_min)continue;pt.curr_basket=st,pt.first_readentry=pt.getBasketEntry(st)}const vt={id:St,branch:pt.branch,basket:st,raw:null},Yt=pt.branch.fBaskets.arr[st];Yt?(vt.raw=Yt.fBufferRef,vt.raw?vt.raw.locate(0):vt.raw=new L.lW(null,0,T.file),vt.raw.raw_shift=Yt.fKeylen,Yt.fBufferRef&&pt.branch.fEntryOffsetLen>0&&vt.raw.readBasketEntryOffset(Yt,vt.raw.raw_shift),vt.bskt_obj=Yt,Fe=!0,pt.baskets[st]=vt):(te.push(vt),Je+=pt.branch.fBasketBytes[st],tt=!0),pt.staged_entry=pt.getBasketEntry(st+1),Ne=Math.min(Ne,pt.staged_entry);break}}}if(0===Je&&!Fe)return T.selector.Terminate(!0),Me(T.selector);T.staged_prev=T.staged_now,T.staged_now=Ne;let rt=0;if(T.process_max>T.process_min&&(rt=(T.staged_prev-T.process_min)/(T.process_max-T.process_min)),"break"===T.selector.ShowProgress(rt))return T.selector.Terminate(!0),Me(T.selector);if(T.progress_showtm=(new Date).getTime(),Je>0)return Ge(te).then(bt);if(Fe)return bt([]);throw new Error("No any data is requested - never come here")}function bt(te){if(0!==T.selector._break||null===te)return T.selector.Terminate(!1),Me(T.selector);for(let tt=0;tt=Ne.numbaskets){if(0===Fe)return T.selector.Terminate(!0),Me(T.selector);continue}const rt=Ne.baskets[Ne.curr_basket];if(!rt)return Je?lt():(T.selector.Terminate(!1),je(Error(`no data for ${Ne.branch.fName} basket ${Ne.curr_basket}`)));Ne.raw=rt.raw,Ne.basket=rt.bskt_obj,Ne.first_entry=Ne.getBasketEntry(rt.basket),rt.raw=null,rt.branch=null,rt.bskt_obj=null,Ne.baskets[Ne.curr_basket++]=void 0}tt=Math.min(tt,Ne.first_entry+Ne.basket.fNevBuf-T.current_entry)}if(T.current_entry+tt>T.process_max&&(tt=T.process_max-T.current_entry),T.process_arrays&&tt>1){for(Fe=0;Fe=T.process_max)return T.selector.Terminate(!0),Me(T.selector)}}return new Promise((te,Je)=>{Me=te,je=Je,T.selector.Begin(V),lt()})})).apply(this,arguments)}function k(V,b){return Z.apply(this,arguments)}function Z(){return(Z=(0,Te.A)(function*(V,b){(0,x.isStr)(b)&&(b={expr:b}),(0,x.isStr)(b.expr)||(b.expr="");const P=new E;if(b.branch){if(!P.drawOnlyBranch(V,b.branch,b.expr,b))return Promise.reject(Error(`Fail to create draw expression ${b.expr} for branch ${b.branch.fName}`))}else if(!P.parseDrawExpression(V,b))return Promise.reject(Error(`Fail to create draw expression ${b.expr}`));return P.setCallback(null,b.progress),I(V,P,b).then(()=>P.hist)})).apply(this,arguments)}function ee(V,b){const P=[],T=[],z=[],fe=function W(je,Ge=""){if(!je?.fBranches)return 0;let lt=0;for(let bt=0;bt=P.length||we?._break||b._break)return Promise.resolve(!0);we=new Y,we.addBranch(P[je],"br0"),we.Process=function(){void 0===this.tgtobj.br0&&(this.fail=!0)},we.Terminate=function(Ne){(0,x.isStr)(Ne)||(Ne=!Ne||this.fails?"FAIL":"ok"),T[je]=Ne+" "+T[je]};const Ge=P[je],lt=me(Ge,V),bt=Ge.fEntries;if((lt?z[je]>100:!Ge.fLeaves?.arr?.length)||bt<=0)return Me(je+1);const Je={numentries:10},tt=Ge.fFirstEntry||0,Fe=Ge.fEntryNumber||tt+bt;return btMe(je+1))}(0).then(()=>((0,x.isFunc)(b.showProgress)&&b.showProgress(),T))}function ue(V,b){function P(T,z,W,fe){if(!T||!z)return!1;const we=z.fBranches?.arr?.length??0,Me=z.fLeaves?.arr?.length??0;function je(lt){const bt=lt.indexOf("[");return bt>0&&(lt=lt.slice(0,bt)),fe&&0===lt.indexOf(fe.fName)&&"."===(lt=lt.slice(fe.fName.length))[0]&&(lt=lt.slice(1)),lt}z.$tree=W;const Ge={_name:je(z.fName),_kind:x.prROOT+z._typename,_title:z.fTitle,_obj:z};if(T._childs||(T._childs=[]),T._childs.push(Ge),z._typename===F&&(Ge._title+=` from ${z.fClassName};${z.fClassVersion}`),we>0)return Ge._more=!0,Ge._expand=function(lt,bt){if(!bt)return!1;lt._childs||(lt._childs=[]),1===bt.fLeaves?.arr?.length&&(bt.fType===Ze||bt.fType===Re)&&(bt.fLeaves.arr[0].$branch=bt,lt._childs.push({_name:"@size",_title:"container size",_kind:x.prROOT+"TLeafElement",_icon:"img_leaf",_obj:bt.fLeaves.arr[0],_more:!1}));for(let tt=0;tt0)for(const tt in Je){if(!(0,x.isFunc)(Je[tt]))continue;const Fe=Je[tt].toString();Fe.indexOf("return")>0&&0===Fe.indexOf("function ()")&<._childs.push({_name:tt+"()",_title:`function ${tt} of class ${te}`,_kind:x.prROOT+J,_obj:{_typename:J,branch:bt,func:tt},_more:!1})}return!0},!0;if(1===Me)Ge._icon="img_leaf",Ge._more=!1;else if(Me>1){Ge._childs=[];for(let lt=0;lt{Yr(Yr.s=1228)}]); -//# sourceMappingURL=main.3f372d509105d165.js.map \ No newline at end of file +(self.webpackChunkphoenix_app=self.webpackChunkphoenix_app||[]).push([[792],{1228:(Yr,mt,Se)=>{"use strict";var Te=Se(4882);let L=null,ke=1;const ot=Symbol("SIGNAL");function Ye(n){const e=L;return L=n,e}function J(n){if((!_(n)||n.dirty)&&(n.dirty||n.lastCleanEpoch!==ke)){if(!n.producerMustRecompute(n)&&!B(n))return n.dirty=!1,void(n.lastCleanEpoch=ke);n.producerRecomputeValue(n),n.dirty=!1,n.lastCleanEpoch=ke}}function B(n){v(n);for(let e=0;e0}function v(n){n.producerNode??=[],n.producerIndexOfThis??=[],n.producerLastReadVersion??=[]}let he=null;function Je(n){return"function"==typeof n}function tt(n){const t=n(i=>{Error.call(i),i.stack=(new Error).stack});return t.prototype=Object.create(Error.prototype),t.prototype.constructor=t,t}const Fe=tt(n=>function(t){n(this),this.message=t?`${t.length} errors occurred during unsubscription:\n${t.map((i,r)=>`${r+1}) ${i.toString()}`).join("\n ")}`:"",this.name="UnsubscriptionError",this.errors=t});function Ne(n,e){if(n){const t=n.indexOf(e);0<=t&&n.splice(t,1)}}class rt{constructor(e){this.initialTeardown=e,this.closed=!1,this._parentage=null,this._finalizers=null}unsubscribe(){let e;if(!this.closed){this.closed=!0;const{_parentage:t}=this;if(t)if(this._parentage=null,Array.isArray(t))for(const s of t)s.remove(this);else t.remove(this);const{initialTeardown:i}=this;if(Je(i))try{i()}catch(s){e=s instanceof Fe?s.errors:[s]}const{_finalizers:r}=this;if(r){this._finalizers=null;for(const s of r)try{st(s)}catch(o){e=e??[],o instanceof Fe?e=[...e,...o.errors]:e.push(o)}}if(e)throw new Fe(e)}}add(e){var t;if(e&&e!==this)if(this.closed)st(e);else{if(e instanceof rt){if(e.closed||e._hasParent(this))return;e._addParent(this)}(this._finalizers=null!==(t=this._finalizers)&&void 0!==t?t:[]).push(e)}}_hasParent(e){const{_parentage:t}=this;return t===e||Array.isArray(t)&&t.includes(e)}_addParent(e){const{_parentage:t}=this;this._parentage=Array.isArray(t)?(t.push(e),t):t?[t,e]:e}_removeParent(e){const{_parentage:t}=this;t===e?this._parentage=null:Array.isArray(t)&&Ne(t,e)}remove(e){const{_finalizers:t}=this;t&&Ne(t,e),e instanceof rt&&e._removeParent(this)}}rt.EMPTY=(()=>{const n=new rt;return n.closed=!0,n})();const St=rt.EMPTY;function pt(n){return n instanceof rt||n&&"closed"in n&&Je(n.remove)&&Je(n.add)&&Je(n.unsubscribe)}function st(n){Je(n)?n():n.unsubscribe()}const vt={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},Yt={setTimeout(n,e,...t){const{delegate:i}=Yt;return i?.setTimeout?i.setTimeout(n,e,...t):setTimeout(n,e,...t)},clearTimeout(n){const{delegate:e}=Yt;return(e?.clearTimeout||clearTimeout)(n)},delegate:void 0};function qt(n){Yt.setTimeout(()=>{const{onUnhandledError:e}=vt;if(!e)throw n;e(n)})}function Ot(){}const Bn=Dn("C",void 0,void 0);function Dn(n,e,t){return{kind:n,value:e,error:t}}let $n=null;function Cn(n){if(vt.useDeprecatedSynchronousErrorHandling){const e=!$n;if(e&&($n={errorThrown:!1,error:null}),n(),e){const{errorThrown:t,error:i}=$n;if($n=null,t)throw i}}else n()}class Sn extends rt{constructor(e){super(),this.isStopped=!1,e?(this.destination=e,pt(e)&&e.add(this)):this.destination=yo}static create(e,t,i){return new ti(e,t,i)}next(e){this.isStopped?Bs(function bn(n){return Dn("N",n,void 0)}(e),this):this._next(e)}error(e){this.isStopped?Bs(function Mn(n){return Dn("E",void 0,n)}(e),this):(this.isStopped=!0,this._error(e))}complete(){this.isStopped?Bs(Bn,this):(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe(),this.destination=null)}_next(e){this.destination.next(e)}_error(e){try{this.destination.error(e)}finally{this.unsubscribe()}}_complete(){try{this.destination.complete()}finally{this.unsubscribe()}}}const ii=Function.prototype.bind;function ai(n,e){return ii.call(n,e)}class zi{constructor(e){this.partialObserver=e}next(e){const{partialObserver:t}=this;if(t.next)try{t.next(e)}catch(i){Lr(i)}}error(e){const{partialObserver:t}=this;if(t.error)try{t.error(e)}catch(i){Lr(i)}else Lr(e)}complete(){const{partialObserver:e}=this;if(e.complete)try{e.complete()}catch(t){Lr(t)}}}class ti extends Sn{constructor(e,t,i){let r;if(super(),Je(e)||!e)r={next:e??void 0,error:t??void 0,complete:i??void 0};else{let s;this&&vt.useDeprecatedNextContext?(s=Object.create(e),s.unsubscribe=()=>this.unsubscribe(),r={next:e.next&&ai(e.next,s),error:e.error&&ai(e.error,s),complete:e.complete&&ai(e.complete,s)}):r=e}this.destination=new zi(r)}}function Lr(n){vt.useDeprecatedSynchronousErrorHandling?function yn(n){vt.useDeprecatedSynchronousErrorHandling&&$n&&($n.errorThrown=!0,$n.error=n)}(n):qt(n)}function Bs(n,e){const{onStoppedNotification:t}=vt;t&&Yt.setTimeout(()=>t(n,e))}const yo={closed:!0,next:Ot,error:function ss(n){throw n},complete:Ot},xt="function"==typeof Symbol&&Symbol.observable||"@@observable";function K(n){return n}function ye(n){return 0===n.length?K:1===n.length?n[0]:function(t){return n.reduce((i,r)=>r(i),t)}}let Pe=(()=>{class n{constructor(t){t&&(this._subscribe=t)}lift(t){const i=new n;return i.source=this,i.operator=t,i}subscribe(t,i,r){const s=function Nt(n){return n&&n instanceof Sn||function Ht(n){return n&&Je(n.next)&&Je(n.error)&&Je(n.complete)}(n)&&pt(n)}(t)?t:new ti(t,i,r);return Cn(()=>{const{operator:o,source:l}=this;s.add(o?o.call(s,l):l?this._subscribe(s):this._trySubscribe(s))}),s}_trySubscribe(t){try{return this._subscribe(t)}catch(i){t.error(i)}}forEach(t,i){return new(i=At(i))((r,s)=>{const o=new ti({next:l=>{try{t(l)}catch(d){s(d),o.unsubscribe()}},error:s,complete:r});this.subscribe(o)})}_subscribe(t){var i;return null===(i=this.source)||void 0===i?void 0:i.subscribe(t)}[xt](){return this}pipe(...t){return ye(t)(this)}toPromise(t){return new(t=At(t))((i,r)=>{let s;this.subscribe(o=>s=o,o=>r(o),()=>i(s))})}}return n.create=e=>new n(e),n})();function At(n){var e;return null!==(e=n??vt.Promise)&&void 0!==e?e:Promise}const nn=tt(n=>function(){n(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"});let hn=(()=>{class n extends Pe{constructor(){super(),this.closed=!1,this.currentObservers=null,this.observers=[],this.isStopped=!1,this.hasError=!1,this.thrownError=null}lift(t){const i=new kn(this,this);return i.operator=t,i}_throwIfClosed(){if(this.closed)throw new nn}next(t){Cn(()=>{if(this._throwIfClosed(),!this.isStopped){this.currentObservers||(this.currentObservers=Array.from(this.observers));for(const i of this.currentObservers)i.next(t)}})}error(t){Cn(()=>{if(this._throwIfClosed(),!this.isStopped){this.hasError=this.isStopped=!0,this.thrownError=t;const{observers:i}=this;for(;i.length;)i.shift().error(t)}})}complete(){Cn(()=>{if(this._throwIfClosed(),!this.isStopped){this.isStopped=!0;const{observers:t}=this;for(;t.length;)t.shift().complete()}})}unsubscribe(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null}get observed(){var t;return(null===(t=this.observers)||void 0===t?void 0:t.length)>0}_trySubscribe(t){return this._throwIfClosed(),super._trySubscribe(t)}_subscribe(t){return this._throwIfClosed(),this._checkFinalizedStatuses(t),this._innerSubscribe(t)}_innerSubscribe(t){const{hasError:i,isStopped:r,observers:s}=this;return i||r?St:(this.currentObservers=null,s.push(t),new rt(()=>{this.currentObservers=null,Ne(s,t)}))}_checkFinalizedStatuses(t){const{hasError:i,thrownError:r,isStopped:s}=this;i?t.error(r):s&&t.complete()}asObservable(){const t=new Pe;return t.source=this,t}}return n.create=(e,t)=>new kn(e,t),n})();class kn extends hn{constructor(e,t){super(),this.destination=e,this.source=t}next(e){var t,i;null===(i=null===(t=this.destination)||void 0===t?void 0:t.next)||void 0===i||i.call(t,e)}error(e){var t,i;null===(i=null===(t=this.destination)||void 0===t?void 0:t.error)||void 0===i||i.call(t,e)}complete(){var e,t;null===(t=null===(e=this.destination)||void 0===e?void 0:e.complete)||void 0===t||t.call(e)}_subscribe(e){var t,i;return null!==(i=null===(t=this.source)||void 0===t?void 0:t.subscribe(e))&&void 0!==i?i:St}}class cn extends hn{constructor(e){super(),this._value=e}get value(){return this.getValue()}_subscribe(e){const t=super._subscribe(e);return!t.closed&&e.next(this._value),t}getValue(){const{hasError:e,thrownError:t,_value:i}=this;if(e)throw t;return this._throwIfClosed(),i}next(e){super.next(this._value=e)}}function In(n){return Je(n?.lift)}function ci(n){return e=>{if(In(e))return e.lift(function(t){try{return n(t,this)}catch(i){this.error(i)}});throw new TypeError("Unable to lift unknown Observable type")}}function Pi(n,e,t,i,r){return new Si(n,e,t,i,r)}class Si extends Sn{constructor(e,t,i,r,s,o){super(e),this.onFinalize=s,this.shouldUnsubscribe=o,this._next=t?function(l){try{t(l)}catch(d){e.error(d)}}:super._next,this._error=r?function(l){try{r(l)}catch(d){e.error(d)}finally{this.unsubscribe()}}:super._error,this._complete=i?function(){try{i()}catch(l){e.error(l)}finally{this.unsubscribe()}}:super._complete}unsubscribe(){var e;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){const{closed:t}=this;super.unsubscribe(),!t&&(null===(e=this.onFinalize)||void 0===e||e.call(this))}}}function bi(n,e){return ci((t,i)=>{let r=0;t.subscribe(Pi(i,s=>{i.next(n.call(e,s,r++))}))})}const Wi="https://g.co/ng/security#xss";class Ln extends Error{constructor(e,t){super(function Rs(n,e){return`NG0${Math.abs(n)}${e?": "+e:""}`}(e,t)),this.code=e}}function Oe(n){return{toString:n}.toString()}const et="__parameters__";function tn(n,e,t){return Oe(()=>{const i=function sn(n){return function(...t){if(n){const i=n(...t);for(const r in i)this[r]=i[r]}}}(e);function r(...s){if(this instanceof r)return i.apply(this,s),this;const o=new r(...s);return l.annotation=o,l;function l(d,u,f){const A=d.hasOwnProperty(et)?d[et]:Object.defineProperty(d,et,{value:[]})[et];for(;A.length<=f;)A.push(null);return(A[f]=A[f]||[]).push(o),d}}return t&&(r.prototype=Object.create(t.prototype)),r.prototype.ngMetadataName=n,r.annotationCls=r,r})}const wn=globalThis;function nt(n){for(let e in n)if(n[e]===nt)return e;throw Error("Could not find renamed property on target object.")}function at(n,e){for(const t in e)e.hasOwnProperty(t)&&!n.hasOwnProperty(t)&&(n[t]=e[t])}function ht(n){if("string"==typeof n)return n;if(Array.isArray(n))return"["+n.map(ht).join(", ")+"]";if(null==n)return""+n;if(n.overriddenName)return`${n.overriddenName}`;if(n.name)return`${n.name}`;const e=n.toString();if(null==e)return""+e;const t=e.indexOf("\n");return-1===t?e:e.substring(0,t)}function Qt(n,e){return null==n||""===n?null===e?"":e:null==e||""===e?n:n+" "+e}const en=nt({__forward_ref__:nt});function jt(n){return n.__forward_ref__=jt,n.toString=function(){return ht(this())},n}function fn(n){return Hn(n)?n():n}function Hn(n){return"function"==typeof n&&n.hasOwnProperty(en)&&n.__forward_ref__===jt}function Gi(n){return{token:n.token,providedIn:n.providedIn||null,factory:n.factory,value:void 0}}function ra(n){return{providers:n.providers||[],imports:n.imports||[]}}function ic(n){return rc(n,$l)||rc(n,fd)}function rc(n,e){return n.hasOwnProperty(e)?n[e]:null}function Io(n){return n&&(n.hasOwnProperty(hd)||n.hasOwnProperty(Td))?n[hd]:null}const $l=nt({\u0275prov:nt}),hd=nt({\u0275inj:nt}),fd=nt({ngInjectableDef:nt}),Td=nt({ngInjectorDef:nt});class Bi{constructor(e,t){this._desc=e,this.ngMetadataName="InjectionToken",this.\u0275prov=void 0,"number"==typeof t?this.__NG_ELEMENT_ID__=t:void 0!==t&&(this.\u0275prov=Gi({token:this,providedIn:t.providedIn||"root",factory:t.factory}))}get multi(){return this}toString(){return`InjectionToken ${this._desc}`}}function zf(n){return n&&!!n.\u0275providers}const bg=nt({\u0275cmp:nt}),d1=nt({\u0275dir:nt}),xm=nt({\u0275pipe:nt}),xg=nt({\u0275mod:nt}),Xh=nt({\u0275fac:nt}),wg=nt({__NG_ELEMENT_ID__:nt}),Hf=nt({__NG_ENV_ID__:nt});function go(n){return"string"==typeof n?n:null==n?"":String(n)}function Mg(n,e){throw new Ln(-201,!1)}var va=function(n){return n[n.Default=0]="Default",n[n.Host=1]="Host",n[n.Self=2]="Self",n[n.SkipSelf=4]="SkipSelf",n[n.Optional=8]="Optional",n}(va||{});let Sg;function u1(){return Sg}function jd(n){const e=Sg;return Sg=n,e}function h1(n,e,t){const i=ic(n);return i&&"root"==i.providedIn?void 0===i.value?i.value=i.factory():i.value:t&va.Optional?null:void 0!==e?e:void Mg()}const wp={},f1="__NG_DI_FLAG__",H0="ngTempTokenPath",Px=/\n/gm,av="__source";let _A;function Vf(n){const e=_A;return _A=n,e}function V0(n,e=va.Default){if(void 0===_A)throw new Ln(-203,!1);return null===_A?h1(n,void 0,e):_A.get(n,e&va.Optional?null:void 0,e)}function xi(n,e=va.Default){return(u1()||V0)(fn(n),e)}function pi(n,e=va.Default){return xi(n,bh(e))}function bh(n){return typeof n>"u"||"number"==typeof n?n:(n.optional&&8)|(n.host&&1)|(n.self&&2)|(n.skipSelf&&4)}function Ac(n){const e=[];for(let t=0;tArray.isArray(t)?qf(t,e):e(t))}function Eg(n,e,t){e>=n.length?n.push(t):n.splice(e,0,t)}function Qf(n,e){return e>=n.length-1?n.pop():n.splice(e,1)[0]}function Yl(n,e,t){let i=vl(n,e);return i>=0?n[1|i]=t:(i=~i,function Yh(n,e,t,i){let r=n.length;if(r==e)n.push(t,i);else if(1===r)n.push(i,n[0]),n[0]=t;else{for(r--,n.push(n[r-1],n[r]);r>e;)n[r]=n[r-2],r--;n[e]=t,n[e+1]=i}}(n,i,e,t)),i}function Xd(n,e){const t=vl(n,e);if(t>=0)return n[1|t]}function vl(n,e){return function ko(n,e,t){let i=0,r=n.length>>t;for(;r!==i;){const s=i+(r-i>>1),o=n[s<e?r=s:i=s+1}return~(r<e){o=s-1;break}}}for(;s-1){let s;for(;++rs?"":r[f+1].toLowerCase(),2&i&&u!==A){if(yu(i))return!1;o=!0}}}}else{if(!o&&!yu(i)&&!yu(d))return!1;if(o&&yu(d))continue;o=!1,i=d|1&i}}return yu(i)||o}function yu(n){return!(1&n)}function lv(n,e,t,i){if(null===e)return-1;let r=0;if(i||!t){let s=!1;for(;r-1)for(t++;t0?'="'+l+'"':"")+"]"}else 8&i?r+="."+o:4&i&&(r+=" "+o);else""!==r&&!yu(o)&&(e+=vA(s,r),r=""),i=o,s=s||!yu(i);t++}return""!==r&&(e+=vA(s,r)),e}function rs(n){return Oe(()=>{const e=Sp(n),t={...e,decls:n.decls,vars:n.vars,template:n.template,consts:n.consts||null,ngContentSelectors:n.ngContentSelectors,onPush:n.changeDetection===Tg.OnPush,directiveDefs:null,pipeDefs:null,dependencies:e.standalone&&n.dependencies||null,getStandaloneInjector:null,signals:n.signals??!1,data:n.data||{},encapsulation:n.encapsulation||Ad.Emulated,styles:n.styles||za,_:null,schemas:n.schemas||null,tView:null,id:""};Ep(t);const i=n.dependencies;return t.directiveDefs=_c(i,!1),t.pipeDefs=_c(i,!0),t.id=function Zh(n){let e=0;const t=[n.selectors,n.ngContentSelectors,n.hostVars,n.hostAttrs,n.consts,n.vars,n.decls,n.encapsulation,n.standalone,n.signals,n.exportAs,JSON.stringify(n.inputs),JSON.stringify(n.outputs),Object.getOwnPropertyNames(n.type.prototype),!!n.contentQueries,!!n.viewQuery].join("|");for(const r of t)e=Math.imul(31,e)+r.charCodeAt(0)|0;return e+=2147483648,"c"+e}(t),t})}function Pg(n){return Wo(n)||rl(n)}function Os(n){return null!==n}function vo(n){return Oe(()=>({type:n.type,bootstrap:n.bootstrap||za,declarations:n.declarations||za,imports:n.imports||za,exports:n.exports||za,transitiveCompileScopes:null,schemas:n.schemas||null,id:n.id||null}))}function Ou(n,e){if(null==n)return xh;const t={};for(const i in n)if(n.hasOwnProperty(i)){const r=n[i];let s,o,l=mi.None;Array.isArray(r)?(l=r[0],s=r[1],o=r[2]??s):(s=r,o=r),e?(t[s]=l!==mi.None?[i,l]:i,e[s]=o):t[s]=i}return t}function Ft(n){return Oe(()=>{const e=Sp(n);return Ep(e),e})}function Ic(n){return{type:n.type,name:n.name,factory:null,pure:!1!==n.pure,standalone:!0===n.standalone,onDestroy:n.type.prototype.ngOnDestroy||null}}function Wo(n){return n[bg]||null}function rl(n){return n[d1]||null}function bl(n){return n[xm]||null}function Bc(n,e){const t=n[xg]||null;if(!t&&!0===e)throw new Error(`Type ${ht(n)} does not have '\u0275mod' property.`);return t}function Sp(n){const e={};return{type:n.type,providersResolver:null,factory:null,hostBindings:n.hostBindings||null,hostVars:n.hostVars||0,hostAttrs:n.hostAttrs||null,contentQueries:n.contentQueries||null,declaredInputs:e,inputTransforms:null,inputConfig:n.inputs||xh,exportAs:n.exportAs||null,standalone:!0===n.standalone,signals:!0===n.signals,selectors:n.selectors||za,viewQuery:n.viewQuery||null,features:n.features||null,setInput:null,findHostDirectiveDefs:null,hostDirectives:null,inputs:Ou(n.inputs,e),outputs:Ou(n.outputs),debugInfo:null}}function Ep(n){n.features?.forEach(e=>e(n))}function _c(n,e){if(!n)return null;const t=e?bl:Pg;return()=>("function"==typeof n?n():n).map(i=>t(i)).filter(Os)}function Mm(...n){return{\u0275providers:Tp(0,n),\u0275fromNgModule:!0}}function Tp(n,...e){const t=[],i=new Set;let r;const s=o=>{t.push(o)};return qf(e,o=>{const l=o;Nu(l,s,[],i)&&(r||=[],r.push(l))}),void 0!==r&&Dp(r,s),t}function Dp(n,e){for(let t=0;t{e(s,i)})}}function Nu(n,e,t,i){if(!(n=fn(n)))return!1;let r=null,s=Io(n);const o=!s&&Wo(n);if(s||o){if(o&&!o.standalone)return!1;r=n}else{const d=n.ngModule;if(s=Io(d),!s)return!1;r=d}const l=i.has(r);if(o){if(l)return!1;if(i.add(r),o.dependencies){const d="function"==typeof o.dependencies?o.dependencies():o.dependencies;for(const u of d)Nu(u,e,t,i)}}else{if(!s)return!1;{if(null!=s.imports&&!l){let u;i.add(r);try{qf(s.imports,f=>{Nu(f,e,t,i)&&(u||=[],u.push(f))})}finally{}void 0!==u&&Dp(u,e)}if(!l){const u=md(r)||(()=>new r);e({provide:r,useFactory:u,deps:za},r),e({provide:eh,useValue:r,multi:!0},r),e({provide:Ui,useValue:()=>xi(r),multi:!0},r)}const d=s.providers;if(null!=d&&!l){const u=n;Q0(d,f=>{e(f,u)})}}}return r!==n&&void 0!==n.providers}function Q0(n,e){for(let t of n)zf(t)&&(t=t.\u0275providers),Array.isArray(t)?Q0(t,e):e(t)}const bA=nt({provide:String,useValue:nt});function Jh(n){return null!==n&&"object"==typeof n&&bA in n}function Ip(n){return"function"==typeof n}const nh=new Bi(""),yc={},kg={};let ef;function bo(){return void 0===ef&&(ef=new Wc),ef}class Rc{}class jc extends Rc{get destroyed(){return this._destroyed}constructor(e,t,i,r){super(),this.parent=t,this.source=i,this.scopes=r,this.records=new Map,this._ngOnDestroyHooks=new Set,this._onDestroyHooks=[],this._destroyed=!1,W0(e,o=>this.processProvider(o)),this.records.set(zo,vc(void 0,this)),r.has("environment")&&this.records.set(Rc,vc(void 0,this));const s=this.records.get(nh);null!=s&&"string"==typeof s.value&&this.scopes.add(s.value),this.injectorDefTypes=new Set(this.get(eh,za,va.Self))}destroy(){this.assertNotDestroyed(),this._destroyed=!0;const e=Ye(null);try{for(const i of this._ngOnDestroyHooks)i.ngOnDestroy();const t=this._onDestroyHooks;this._onDestroyHooks=[];for(const i of t)i()}finally{this.records.clear(),this._ngOnDestroyHooks.clear(),this.injectorDefTypes.clear(),Ye(e)}}onDestroy(e){return this.assertNotDestroyed(),this._onDestroyHooks.push(e),()=>this.removeOnDestroy(e)}runInContext(e){this.assertNotDestroyed();const t=Vf(this),i=jd(void 0);try{return e()}finally{Vf(t),jd(i)}}get(e,t=wp,i=va.Default){if(this.assertNotDestroyed(),e.hasOwnProperty(Hf))return e[Hf](this);i=bh(i);const s=Vf(this),o=jd(void 0);try{if(!(i&va.SkipSelf)){let d=this.records.get(e);if(void 0===d){const u=function tf(n){return"function"==typeof n||"object"==typeof n&&n instanceof Bi}(e)&&ic(e);d=u&&this.injectableDefInScope(u)?vc(Fg(e),yc):null,this.records.set(e,d)}if(null!=d)return this.hydrate(e,d)}return(i&va.Self?bo():this.parent).get(e,t=i&va.Optional&&t===wp?null:t)}catch(l){if("NullInjectorError"===l.name){if((l[H0]=l[H0]||[]).unshift(ht(e)),s)throw l;return function pd(n,e,t,i){const r=n[H0];throw e[av]&&r.unshift(e[av]),n.message=function Au(n,e,t,i=null){n=n&&"\n"===n.charAt(0)&&"\u0275"==n.charAt(1)?n.slice(2):n;let r=ht(e);if(Array.isArray(e))r=e.map(ht).join(" -> ");else if("object"==typeof e){let s=[];for(let o in e)if(e.hasOwnProperty(o)){let l=e[o];s.push(o+":"+("string"==typeof l?JSON.stringify(l):ht(l)))}r=`{${s.join(", ")}}`}return`${t}${i?"("+i+")":""}[${r}]: ${n.replace(Px,"\n ")}`}("\n"+n.message,r,t,i),n.ngTokenPath=r,n[H0]=null,n}(l,e,"R3InjectorError",this.source)}throw l}finally{jd(o),Vf(s)}}resolveInjectorInitializers(){const e=Ye(null),t=Vf(this),i=jd(void 0);try{const s=this.get(Ui,za,va.Self);for(const o of s)o()}finally{Vf(t),jd(i),Ye(e)}}toString(){const e=[],t=this.records;for(const i of t.keys())e.push(ht(i));return`R3Injector[${e.join(", ")}]`}assertNotDestroyed(){if(this._destroyed)throw new Ln(205,!1)}processProvider(e){let t=Ip(e=fn(e))?e:fn(e&&e.provide);const i=function ih(n){return Jh(n)?vc(void 0,n.useValue):vc(Em(n),yc)}(e);if(!Ip(e)&&!0===e.multi){let r=this.records.get(t);r||(r=vc(void 0,yc,!0),r.factory=()=>Ac(r.multi),this.records.set(t,r)),t=e,r.multi.push(e)}this.records.set(t,i)}hydrate(e,t){const i=Ye(null);try{return t.value===yc&&(t.value=kg,t.value=t.factory()),"object"==typeof t.value&&t.value&&function Bp(n){return null!==n&&"object"==typeof n&&"function"==typeof n.ngOnDestroy}(t.value)&&this._ngOnDestroyHooks.add(t.value),t.value}finally{Ye(i)}}injectableDefInScope(e){if(!e.providedIn)return!1;const t=fn(e.providedIn);return"string"==typeof t?"any"===t||this.scopes.has(t):this.injectorDefTypes.has(t)}removeOnDestroy(e){const t=this._onDestroyHooks.indexOf(e);-1!==t&&this._onDestroyHooks.splice(t,1)}}function Fg(n){const e=ic(n),t=null!==e?e.factory:md(n);if(null!==t)return t;if(n instanceof Bi)throw new Ln(204,!1);if(n instanceof Function)return function Sm(n){if(n.length>0)throw new Ln(204,!1);const t=function mu(n){return n&&(n[$l]||n[fd])||null}(n);return null!==t?()=>t.factory(n):()=>new n}(n);throw new Ln(204,!1)}function Em(n,e,t){let i;if(Ip(n)){const r=fn(n);return md(r)||Fg(r)}if(Jh(n))i=()=>fn(n.useValue);else if(function Rg(n){return!(!n||!n.useFactory)}(n))i=()=>n.useFactory(...Ac(n.deps||[]));else if(function Yd(n){return!(!n||!n.useExisting)}(n))i=()=>xi(fn(n.useExisting));else{const r=fn(n&&(n.useClass||n.provide));if(!function xA(n){return!!n.deps}(n))return md(r)||Fg(r);i=()=>new r(...Ac(n.deps))}return i}function vc(n,e,t=!1){return{factory:n,value:e,multi:t?[]:void 0}}function W0(n,e){for(const t of n)Array.isArray(t)?W0(t,e):t&&zf(t)?W0(t.\u0275providers,e):e(t)}function El(n,e){n instanceof jc&&n.assertNotDestroyed();const i=Vf(n),r=jd(void 0);try{return e()}finally{Vf(i),jd(r)}}function Pp(){return void 0!==u1()||null!=function p1(){return _A}()}const Tl=0,Gr=1,so=2,pl=3,Kd=4,oc=5,Ul=6,nf=7,Ka=8,$c=9,Uu=10,Mo=11,kp=12,$0=13,rf=14,Yo=15,Rl=16,Tm=17,bc=18,Fp=19,Op=20,ac=21,Bd=22,Dl=23,Cs=25,Ch=1,sh=7,cs=9,Ia=10;var X0=function(n){return n[n.None=0]="None",n[n.HasTransplantedViews=2]="HasTransplantedViews",n}(X0||{});function Fc(n){return Array.isArray(n)&&"object"==typeof n[Ch]}function dl(n){return Array.isArray(n)&&!0===n[Ch]}function SA(n){return!!(4&n.flags)}function af(n){return n.componentOffset>-1}function zl(n){return!(1&~n.flags)}function Hl(n){return!!n.template}function Lp(n){return!!(512&n[so])}class zu{constructor(e,t,i){this.previousValue=e,this.currentValue=t,this.firstChange=i}isFirstChange(){return this.firstChange}}function lh(n,e,t,i){null!==e?e.applyValueToInputSignal(e,i):n[t]=i}function kl(){return Yf}function Yf(n){return n.type.prototype.ngOnChanges&&(n.setInput=Kf),zp}function zp(){const n=Bm(this),e=n?.current;if(e){const t=n.previous;if(t===xh)n.previous=e;else for(let i in e)t[i]=e[i];n.current=null,this.ngOnChanges(e)}}function Kf(n,e,t,i,r){const s=this.declaredInputs[i],o=Bm(n)||function Eh(n,e){return n[uf]=e}(n,{previous:xh,current:null}),l=o.current||(o.current={}),d=o.previous,u=d[s];l[s]=new zu(u&&u.currentValue,t,d===xh),lh(n,e,r,t)}kl.ngInherit=!0;const uf="__ngSimpleChanges__";function Bm(n){return n[uf]||null}const Jd=function(n,e,t){},Jc="svg";let IA=!1;function oa(n){for(;Array.isArray(n);)n=n[Tl];return n}function BA(n,e){return oa(e[n])}function Pd(n,e){return oa(e[n.index])}function PA(n,e){return n.data[e]}function km(n,e){return n[e]}function Rd(n,e){const t=e[n];return Fc(t)?t:t[Tl]}function ch(n){return!(128&~n[so])}function Hu(n,e){return null==e?null:n[e]}function x1(n){n[Tm]=0}function K0(n){1024&n[so]||(n[so]|=1024,ch(n)&&Hp(n))}function Oc(n){return!!(9216&n[so]||n[Dl]?.dirty)}function pf(n){n[Uu].changeDetectionScheduler?.notify(1),Oc(n)?Hp(n):64&n[so]&&(function uv(){return IA}()?(n[so]|=1024,Hp(n)):n[Uu].changeDetectionScheduler?.notify())}function Hp(n){n[Uu].changeDetectionScheduler?.notify();let e=Th(n);for(;null!==e&&!(8192&e[so])&&(e[so]|=8192,ch(e));)e=Th(e)}function tp(n,e){if(!(256&~n[so]))throw new Ln(911,!1);null===n[ac]&&(n[ac]=[]),n[ac].push(e)}function Th(n){const e=n[pl];return dl(e)?e[pl]:e}const Gs={lFrame:jg(null),bindingsEnabled:!0,skipHydrationRootTNode:null};function Fm(){return Gs.bindingsEnabled}function Om(){return null!==Gs.skipHydrationRootTNode}function Zi(){return Gs.lFrame.lView}function wa(){return Gs.lFrame.tView}function Ci(n){return Gs.lFrame.contextLView=n,n[Ka]}function Mi(n){return Gs.lFrame.contextLView=null,n}function Ha(){let n=kA();for(;null!==n&&64===n.type;)n=n.parent;return n}function kA(){return Gs.lFrame.currentTNode}function dh(n,e){const t=Gs.lFrame;t.currentTNode=n,t.isParent=e}function FA(){return Gs.lFrame.isParent}function Gg(){Gs.lFrame.isParent=!1}function Yc(){const n=Gs.lFrame;let e=n.bindingRootIndex;return-1===e&&(e=n.bindingRootIndex=n.tView.bindingStartIndex),e}function hh(){return Gs.lFrame.bindingIndex++}function mf(n){const e=Gs.lFrame,t=e.bindingIndex;return e.bindingIndex=e.bindingIndex+n,t}function t_(n,e){const t=Gs.lFrame;t.bindingIndex=t.bindingRootIndex=n,n_(e)}function n_(n){Gs.lFrame.currentDirectiveIndex=n}function r_(){return Gs.lFrame.currentQueryIndex}function OA(n){Gs.lFrame.currentQueryIndex=n}function I1(n){const e=n[Gr];return 2===e.type?e.declTNode:1===e.type?n[oc]:null}function Qg(n,e,t){if(t&va.SkipSelf){let r=e,s=n;for(;!(r=r.parent,null!==r||t&va.Host||(r=I1(s),null===r||(s=s[rf],10&r.type))););if(null===r)return!1;e=r,n=s}const i=Gs.lFrame=s_();return i.currentTNode=e,i.lView=n,!0}function Wg(n){const e=s_(),t=n[Gr];Gs.lFrame=e,e.currentTNode=t.firstChild,e.lView=n,e.tView=t,e.contextLView=n,e.bindingIndex=t.bindingStartIndex,e.inI18n=!1}function s_(){const n=Gs.lFrame,e=null===n?null:n.child;return null===e?jg(n):e}function jg(n){const e={currentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:-1,contextLView:null,elementDepthCount:0,currentNamespace:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:n,child:null,inI18n:!1};return null!==n&&(n.child=e),e}function o_(){const n=Gs.lFrame;return Gs.lFrame=n.parent,n.currentTNode=null,n.lView=null,n}const a_=o_;function l_(){const n=o_();n.isParent=!0,n.tView=null,n.selectedIndex=-1,n.contextLView=null,n.elementDepthCount=0,n.currentDirectiveIndex=-1,n.currentNamespace=null,n.bindingRootIndex=-1,n.bindingIndex=-1,n.currentQueryIndex=0}function Lc(){return Gs.lFrame.selectedIndex}function np(n){Gs.lFrame.selectedIndex=n}function gl(){const n=Gs.lFrame;return PA(n.tView,n.selectedIndex)}function Fl(){Gs.lFrame.currentNamespace=Jc}function Dh(){!function pv(){Gs.lFrame.currentNamespace=null}()}let Gp=!0;function Nm(){return Gp}function Za(n){Gp=n}function Af(n,e){for(let t=e.directiveStart,i=e.directiveEnd;t=i)break}else e[d]<0&&(n[Tm]+=65536),(l>14>16&&(3&n[so])===e&&(n[so]+=16384,c_(l,s)):c_(l,s)}const ip=-1;class rp{constructor(e,t,i){this.factory=e,this.resolving=!1,this.canSeeViewProviders=t,this.injectImpl=i}}function Kg(n){return n!==ip}function NA(n){return 32767&n}function Zg(n,e){let t=function k1(n){return n>>16}(n),i=e;for(;t>0;)i=i[rf],t--;return i}let d_=!0;function u_(n){const e=d_;return d_=n,e}const Av=255,h_=5;let Jg=0;const Bh={};function zm(n,e){const t=gv(n,e);if(-1!==t)return t;const i=e[Gr];i.firstCreatePass&&(n.injectorIndex=e.length,Ph(i.data,n),Ph(e,null),Ph(i.blueprint,null));const r=f_(n,e),s=n.injectorIndex;if(Kg(r)){const o=NA(r),l=Zg(r,e),d=l[Gr].data;for(let u=0;u<8;u++)e[s+u]=l[o+u]|d[o+u]}return e[s+8]=r,s}function Ph(n,e){n.push(0,0,0,0,0,0,0,0,e)}function gv(n,e){return-1===n.injectorIndex||n.parent&&n.parent.injectorIndex===n.injectorIndex||null===e[n.injectorIndex+8]?-1:n.injectorIndex}function f_(n,e){if(n.parent&&-1!==n.parent.injectorIndex)return n.parent.injectorIndex;let t=0,i=null,r=e;for(;null!==r;){if(i=UA(r),null===i)return ip;if(t++,r=r[rf],-1!==i.injectorIndex)return i.injectorIndex|t<<16}return ip}function F1(n,e,t){!function NC(n,e,t){let i;"string"==typeof t?i=t.charCodeAt(0)||0:t.hasOwnProperty(wg)&&(i=t[wg]),null==i&&(i=t[wg]=Jg++);const r=i&Av;e.data[n+(r>>h_)]|=1<=0?e&Av:N1:e}(t);if("function"==typeof s){if(!Qg(e,n,i))return i&va.Host?Lx(r,0,i):p_(e,t,i,r);try{let o;if(o=s(i),null!=o||i&va.Optional)return o;Mg()}finally{a_()}}else if("number"==typeof s){let o=null,l=gv(n,e),d=ip,u=i&va.Host?e[Yo][oc]:null;for((-1===l||i&va.SkipSelf)&&(d=-1===l?f_(n,e):e[l+8],d!==ip&&L1(i,!1)?(o=e[Gr],l=NA(d),e=Zg(d,e)):l=-1);-1!==l;){const f=e[Gr];if(Nc(s,l,f.data)){const A=Nx(l,e,t,o,i,u);if(A!==Bh)return A}d=e[l+8],d!==ip&&L1(i,e[Gr].data[l+8]===u)&&Nc(s,l,e)?(o=f,l=NA(d),e=Zg(d,e)):l=-1}}return r}function Nx(n,e,t,i,r,s){const o=e[Gr],l=o.data[n+8],f=vs(l,o,t,null==i?af(l)&&d_:i!=o&&!!(3&l.type),r&va.Host&&s===l);return null!==f?Vu(e,o,f,l):Bh}function vs(n,e,t,i,r){const s=n.providerIndexes,o=e.data,l=1048575&s,d=n.directiveStart,f=s>>20,S=r?l+f:n.directiveEnd;for(let R=i?l:l+f;R=d&&G.type===t)return R}if(r){const R=o[d];if(R&&Hl(R)&&R.type===t)return d}return null}function Vu(n,e,t,i){let r=n[t];const s=e.data;if(function Um(n){return n instanceof rp}(r)){const o=r;o.resolving&&function Tx(n,e){throw e&&e.join(" > "),new Ln(-200,n)}(function Wa(n){return"function"==typeof n?n.name||n.toString():"object"==typeof n&&null!=n&&"function"==typeof n.type?n.type.name||n.type.toString():go(n)}(s[t]));const l=u_(o.canSeeViewProviders);o.resolving=!0;const u=o.injectImpl?jd(o.injectImpl):null;Qg(n,i,va.Default);try{r=n[t]=o.factory(void 0,s,n,i),e.firstCreatePass&&t>=i.directiveStart&&function qp(n,e,t){const{ngOnChanges:i,ngOnInit:r,ngDoCheck:s}=e.type.prototype;if(i){const o=Yf(e);(t.preOrderHooks??=[]).push(n,o),(t.preOrderCheckHooks??=[]).push(n,o)}r&&(t.preOrderHooks??=[]).push(0-n,r),s&&((t.preOrderHooks??=[]).push(n,s),(t.preOrderCheckHooks??=[]).push(n,s))}(t,s[t],e)}finally{null!==u&&jd(u),u_(l),o.resolving=!1,a_()}}return r}function Nc(n,e,t){return!!(t[e+(n>>h_)]&1<{const e=n.prototype.constructor,t=e[Xh]||Wp(e),i=Object.prototype;let r=Object.getPrototypeOf(n.prototype).constructor;for(;r&&r!==i;){const s=r[Xh]||Wp(r);if(s&&s!==t)return s;r=Object.getPrototypeOf(r)}return s=>new s})}function Wp(n){return Hn(n)?()=>{const e=Wp(fn(n));return e&&e()}:md(n)}function UA(n){const e=n[Gr],t=e.type;return 2===t?e.declTNode:1===t?n[oc]:null}function bu(n){return function _v(n,e){if("class"===e)return n.classes;if("style"===e)return n.styles;const t=n.attrs;if(t){const i=t.length;let r=0;for(;r{class n{static#e=this.THROW_IF_NOT_FOUND=wp;static#t=this.NULL=new Wc;static create(t,i){if(Array.isArray(t))return Zl({name:""},i,t,"");{const r=t.name??"";return Zl({name:r},t.parent,t.providers,r)}}static#n=this.\u0275prov=Gi({token:n,providedIn:"any",factory:()=>xi(zo)});static#i=this.__NG_ELEMENT_ID__=-1}return n})();function kd(n){return n.ngOriginalError}class xl{constructor(){this._console=console}handleError(e){const t=this._findOriginalError(e);this._console.error("ERROR",e),t&&this._console.error("ORIGINAL ERROR",t)}_findOriginalError(e){let t=e&&kd(e);for(;t&&kd(t);)t=kd(t);return t||null}}const n0=new Bi("",{providedIn:"root",factory:()=>pi(xl).handleError.bind(void 0)});let Uc=(()=>{class n{static#e=this.__NG_ELEMENT_ID__=VA;static#t=this.__NG_ENV_ID__=t=>t}return n})();class A_ extends Uc{constructor(e){super(),this._lView=e}onDestroy(e){return tp(this._lView,e),()=>function Hg(n,e){if(null===n[ac])return;const t=n[ac].indexOf(e);-1!==t&&n[ac].splice(t,1)}(this._lView,e)}}function VA(){return new A_(Zi())}function __(){return qm(Ha(),Zi())}function qm(n,e){return new oo(Pd(n,e))}let oo=(()=>{class n{constructor(t){this.nativeElement=t}static#e=this.__NG_ELEMENT_ID__=__}return n})();function Qm(n){return n instanceof oo?n.nativeElement:n}function Wm(n){return e=>{setTimeout(n,void 0,e)}}const Ls=class y_ extends hn{constructor(e=!1){super(),this.destroyRef=void 0,this.__isAsync=e,Pp()&&(this.destroyRef=pi(Uc,{optional:!0})??void 0)}emit(e){const t=Ye(null);try{super.next(e)}finally{Ye(t)}}subscribe(e,t,i){let r=e,s=t||(()=>null),o=i;if(e&&"object"==typeof e){const d=e;r=d.next?.bind(d),s=d.error?.bind(d),o=d.complete?.bind(d)}this.__isAsync&&(s=Wm(s),r&&(r=Wm(r)),o&&(o=Wm(o)));const l=super.subscribe({next:r,error:s,complete:o});return e instanceof rt&&e.add(l),l}};function s0(){return this._results[Symbol.iterator]()}class yf{static#e=Symbol.iterator;get changes(){return this._changes??=new Ls}constructor(e=!1){this._emitDistinctChangesOnly=e,this.dirty=!0,this._onDirty=void 0,this._results=[],this._changesDetected=!1,this._changes=void 0,this.length=0,this.first=void 0,this.last=void 0;const t=yf.prototype;t[Symbol.iterator]||(t[Symbol.iterator]=s0)}get(e){return this._results[e]}map(e){return this._results.map(e)}filter(e){return this._results.filter(e)}find(e){return this._results.find(e)}reduce(e,t){return this._results.reduce(e,t)}forEach(e){this._results.forEach(e)}some(e){return this._results.some(e)}toArray(){return this._results.slice()}toString(){return this._results.toString()}reset(e,t){this.dirty=!1;const i=function ha(n){return n.flat(Number.POSITIVE_INFINITY)}(e);(this._changesDetected=!function wm(n,e,t){if(n.length!==e.length)return!1;for(let i=0;iVC}),VC="ng",Hx=new Bi(""),Kp=new Bi("",{providedIn:"platform",factory:()=>"unknown"}),Od=new Bi(""),wv=new Bi("",{providedIn:"root",factory:()=>function $m(){if(void 0!==xv)return xv;if(typeof document<"u")return document;throw new Ln(210,!1)}().body?.querySelector("[ngCspNonce]")?.getAttribute("ngCspNonce")||null});let Vt=()=>null;function Gn(n,e,t=!1){return Vt(n,e,t)}const tu=new Bi("",{providedIn:"root",factory:()=>!1});let Xm;function d0(n){return function em(){if(void 0===Xm&&(Xm=null,wn.trustedTypes))try{Xm=wn.trustedTypes.createPolicy("angular#unsafe-bypass",{createHTML:n=>n,createScript:n=>n,createScriptURL:n=>n})}catch{}return Xm}()?.createScriptURL(n)||n}class wf{constructor(e){this.changingThisBreaksApplicationSecurity=e}toString(){return`SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity} (see ${Wi})`}}function Sa(n){return n instanceof wf?n.changingThisBreaksApplicationSecurity:n}function ec(n,e){const t=function _h(n){return n instanceof wf&&n.getTypeName()||null}(n);if(null!=t&&t!==e){if("ResourceURL"===t&&"URL"===e)return!0;throw new Error(`Required a safe ${e}, got a ${t} (see ${Wi})`)}return t===e}const qx=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:\/?#]*(?:[\/?#]|$))/i;var Nd=function(n){return n[n.NONE=0]="NONE",n[n.HTML=1]="HTML",n[n.STYLE=2]="STYLE",n[n.SCRIPT=3]="SCRIPT",n[n.URL=4]="URL",n[n.RESOURCE_URL=5]="RESOURCE_URL",n}(Nd||{});function K1(n){const e=Rv();return e?e.sanitize(Nd.URL,n)||"":ec(n,"URL")?Sa(n):function Tv(n){return(n=String(n)).match(qx)?n:"unsafe:"+n}(go(n))}function jx(n){const e=Rv();if(e)return d0(e.sanitize(Nd.RESOURCE_URL,n)||"");if(ec(n,"ResourceURL"))return d0(Sa(n));throw new Ln(904,!1)}function Rv(){const n=Zi();return n&&n[Uu].sanitizer}const HB=/^>|^->||--!>|)/g,kv="\u200b$1\u200b";function wu(n){return n instanceof Function?n():n}var h0=function(n){return n[n.Important=1]="Important",n[n.DashCase=2]="DashCase",n}(h0||{});let rM;function Lv(n,e){return rM(n,e)}function nm(n,e,t,i,r){if(null!=i){let s,o=!1;dl(i)?s=i:Fc(i)&&(o=!0,i=i[Tl]);const l=oa(i);0===n&&null!==t?null==r?BT(e,t,l):C_(e,t,l,r||null,!0):1===n&&null!==t?C_(e,t,l,r||null,!0):2===n?function oy(n,e,t){const i=ry(n,e);i&&function lM(n,e,t,i){n.removeChild(e,t,i)}(n,i,e,t)}(e,l,o):3===n&&e.destroyNode(l),null!=s&&function FT(n,e,t,i,r){const s=t[sh];s!==oa(t)&&nm(e,n,i,s,r);for(let l=Ia;le.replace(VB,kv))}(e))}function Nv(n,e,t){return n.createElement(e,t)}function TT(n,e){e[Uu].changeDetectionScheduler?.notify(1),qv(n,e,e[Mo],2,null,null)}function oM(n,e){const t=n[cs],i=t.indexOf(e);t.splice(i,1)}function $A(n,e){if(n.length<=Ia)return;const t=Ia+e,i=n[t];if(i){const r=i[Rl];null!==r&&r!==n&&oM(r,i),e>0&&(n[t-1][Kd]=i[Kd]);const s=Qf(n,Ia+e);!function Xx(n,e){TT(n,e),e[Tl]=null,e[oc]=null}(i[Gr],i);const o=s[bc];null!==o&&o.detachView(s[Gr]),i[pl]=null,i[Kd]=null,i[so]&=-129}return i}function iy(n,e){if(!(256&e[so])){const t=e[Mo];t.destroyNode&&qv(n,e,t,3,null,null),function Uv(n){let e=n[kp];if(!e)return aM(n[Gr],n);for(;e;){let t=null;if(Fc(e))t=e[kp];else{const i=e[Ia];i&&(t=i)}if(!t){for(;e&&!e[Kd]&&e!==n;)Fc(e)&&aM(e[Gr],e),e=e[pl];null===e&&(e=n),Fc(e)&&aM(e[Gr],e),t=e&&e[Kd]}e=t}}(e)}}function aM(n,e){if(256&e[so])return;const t=Ye(null);try{e[so]&=-129,e[so]|=256,e[Dl]&&function $(n){if(v(n),_(n))for(let e=0;e=0?i[o]():i[-o].unsubscribe(),s+=2}else t[s].call(i[t[s+1]]);null!==i&&(e[nf]=null);const r=e[ac];if(null!==r){e[ac]=null;for(let s=0;s-1){const{encapsulation:s}=n.data[i.directiveStart+r];if(s===Ad.None||s===Ad.Emulated)return null}return Pd(i,t)}}(n,e.parent,t)}function C_(n,e,t,i,r){n.insertBefore(e,t,i,r)}function BT(n,e,t){n.appendChild(e,t)}function Zx(n,e,t,i,r){null!==i?C_(n,e,t,i,r):BT(n,e,t)}function ry(n,e){return n.parentNode(e)}function Hv(n,e,t){return ew(n,e,t)}let Vv,ew=function Jx(n,e,t){return 40&n.type?Pd(n,t):null};function nw(n,e,t,i){const r=Kx(n,i,e),s=e[Mo],l=Hv(i.parent||e[oc],i,e);if(null!=r)if(Array.isArray(t))for(let d=0;dCs&&up(n,e,Cs,!1),Jd(o?2:0,r),t(i,r)}finally{np(s),Jd(o?3:1,r)}}function Qv(n,e,t){if(SA(e)){const i=Ye(null);try{const s=e.directiveEnd;for(let o=e.directiveStart;onull;function mM(n,e,t,i,r){for(let s in e){if(!e.hasOwnProperty(s))continue;const o=e[s];if(void 0===o)continue;i??={};let l,d=mi.None;Array.isArray(o)?(l=o[0],d=o[1]):l=o;let u=s;if(null!==r){if(!r.hasOwnProperty(s))continue;u=r[s]}0===n?ow(i,t,u,l,d):ow(i,t,u,l)}return i}function ow(n,e,t,i,r){let s;n.hasOwnProperty(t)?(s=n[t]).push(e,i):s=n[t]=[e,i],void 0!==r&&s.push(r)}function Mu(n,e,t,i,r,s,o,l){const d=Pd(e,t);let f,u=e.inputs;!l&&null!=u&&(f=u[i])?(CM(n,t,f,i,r),af(e)&&function aw(n,e){const t=Rd(e,n);16&t[so]||(t[so]|=64)}(t,e.index)):3&e.type&&(i=function KB(n){return"class"===n?"className":"for"===n?"htmlFor":"formaction"===n?"formAction":"innerHtml"===n?"innerHTML":"readonly"===n?"readOnly":"tabindex"===n?"tabIndex":n}(i),r=null!=o?o(r,e.value||"",i):r,s.setProperty(d,i,r))}function lw(n,e,t,i){if(Fm()){const r=null===i?null:{"":-1},s=function QT(n,e){const t=n.directiveRegistry;let i=null,r=null;if(t)for(let s=0;s0;){const t=n[--e];if("number"==typeof t&&t<0)return t}return 0})(o)!=l&&o.push(l),o.push(t,i,s)}}(n,e,i,iw(n,t,r.hostVars,ca),r)}function hp(n,e,t,i,r,s){const o=Pd(n,e);!function YA(n,e,t,i,r,s,o){if(null==s)n.removeAttribute(e,r,t);else{const l=null==o?go(s):o(s,i||"",r);n.setAttribute(e,r,l,t)}}(e[Mo],o,s,n.value,t,i,r)}function $T(n,e,t,i,r,s){const o=s[e];if(null!==o)for(let l=0;l0&&(t[r-1][Kd]=e),i!1,producerRecomputeValue:()=>{},consumerMarkedDirty:()=>{},consumerOnSignalRead:()=>{},consumerIsAlwaysLive:!0,consumerMarkedDirty:n=>{Hp(n.lView)},consumerOnSignalRead(){this.lView[Dl]=this}},SM=100;function T_(n,e=!0,t=0){const i=n[Uu],r=i.rendererFactory;r.begin?.();try{!function rP(n,e){mw(n,e);let t=0;for(;Oc(n);){if(t===SM)throw new Ln(103,!1);t++,mw(n,1)}}(n,t)}catch(o){throw e&&dw(n,o),o}finally{r.end?.(),i.inlineEffectRunner?.flush()}}function Ay(n,e,t,i){const r=e[so];if(!(256&~r))return;e[Uu].inlineEffectRunner?.flush(),Wg(e);let o=null,l=null;(function fw(n){return 2!==n.type})(n)&&(l=function nP(n){return n[Dl]??function iP(n){const e=KT.pop()??Object.create(my);return e.lView=n,e}(n)}(e),o=function me(n){return n&&(n.nextProducerIndex=0),Ye(n)}(l));try{x1(e),function J0(n){return Gs.lFrame.bindingIndex=n}(n.bindingStartIndex),null!==t&&UT(n,e,t,2,i);const d=!(3&~r);if(d){const A=n.preOrderCheckHooks;null!==A&&fh(e,A,null)}else{const A=n.preOrderHooks;null!==A&&ph(e,A,0,null),Qp(e,0)}if(function sP(n){for(let e=ul(n);null!==e;e=Kc(e)){if(!(e[so]&X0.HasTransplantedViews))continue;const t=e[cs];for(let i=0;in.nextProducerIndex;)n.producerNode.pop(),n.producerLastReadVersion.pop(),n.producerIndexOfThis.pop()}}(l,o),function Km(n){n.lView[Dl]!==n&&(n.lView=null,KT.push(n))}(l)),l_()}}function ZT(n,e){for(let t=ul(n);null!==t;t=Kc(t))for(let i=Ia;i-1&&($A(e,i),Qf(t,i))}this._attachedToViewContainer=!1}iy(this._lView[Gr],this._lView)}onDestroy(e){tp(this._lView,e)}markForCheck(){Jv(this._cdRefInjectingView||this._lView)}detach(){this._lView[so]&=-129}reattach(){pf(this._lView),this._lView[so]|=128}detectChanges(){this._lView[so]|=1024,T_(this._lView,this.notifyErrorHandler)}checkNoChanges(){}attachToViewContainerRef(){if(this._appRef)throw new Ln(902,!1);this._attachedToViewContainer=!0}detachFromAppRef(){this._appRef=null,TT(this._lView[Gr],this._lView)}attachToAppRef(e){if(this._attachedToViewContainer)throw new Ln(902,!1);this._appRef=e,pf(this._lView)}}let Ud=(()=>{class n{static#e=this.__NG_ELEMENT_ID__=CN}return n})();const e3=Ud,t3=class extends e3{constructor(e,t,i){super(),this._declarationLView=e,this._declarationTContainer=t,this.elementRef=i}get ssrId(){return this._declarationTContainer.tView?.ssrId||null}createEmbeddedView(e,t){return this.createEmbeddedViewImpl(e,t)}createEmbeddedViewImpl(e,t,i){const r=Xv(this._declarationLView,this._declarationTContainer,e,{embeddedViewInjector:t,dehydratedView:i});return new Aw(r)}};function CN(){return D_(Ha(),Zi())}function D_(n,e){return 4&n.type?new t3(e,n,qm(n,e)):null}let rb=()=>null;function vy(n,e){return rb(n,e)}class sb{}class ob{}class m3{}class _P{resolveComponentFactory(e){throw function AP(n){const e=Error(`No component factory found for ${ht(n)}.`);return e.ngComponent=n,e}(e)}}let m0=(()=>{class n{static#e=this.NULL=new _P}return n})();class OM{}let ZA=(()=>{class n{constructor(){this.destroyNode=null}static#e=this.__NG_ELEMENT_ID__=()=>function yP(){const n=Zi(),t=Rd(Ha().index,n);return(Fc(t)?t:n)[Mo]}()}return n})(),DN=(()=>{class n{static#e=this.\u0275prov=Gi({token:n,providedIn:"root",factory:()=>null})}return n})();const LM={},g3=new Set;function im(n){g3.has(n)||(g3.add(n),performance?.mark?.("mark_feature_usage",{detail:{feature:n}}))}function B_(...n){}class io{constructor({enableLongStackTrace:e=!1,shouldCoalesceEventChangeDetection:t=!1,shouldCoalesceRunChangeDetection:i=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new Ls(!1),this.onMicrotaskEmpty=new Ls(!1),this.onStable=new Ls(!1),this.onError=new Ls(!1),typeof Zone>"u")throw new Ln(908,!1);Zone.assertZonePatched();const r=this;r._nesting=0,r._outer=r._inner=Zone.current,Zone.TaskTrackingZoneSpec&&(r._inner=r._inner.fork(new Zone.TaskTrackingZoneSpec)),e&&Zone.longStackTraceZoneSpec&&(r._inner=r._inner.fork(Zone.longStackTraceZoneSpec)),r.shouldCoalesceEventChangeDetection=!i&&t,r.shouldCoalesceRunChangeDetection=i,r.lastRequestAnimationFrameId=-1,r.nativeRequestAnimationFrame=function _3(){const n="function"==typeof wn.requestAnimationFrame;let e=wn[n?"requestAnimationFrame":"setTimeout"],t=wn[n?"cancelAnimationFrame":"clearTimeout"];if(typeof Zone<"u"&&e&&t){const i=e[Zone.__symbol__("OriginalDelegate")];i&&(e=i);const r=t[Zone.__symbol__("OriginalDelegate")];r&&(t=r)}return{nativeRequestAnimationFrame:e,nativeCancelAnimationFrame:t}}().nativeRequestAnimationFrame,function a(n){const e=()=>{!function w(n){n.isCheckStableRunning||-1!==n.lastRequestAnimationFrameId||(n.lastRequestAnimationFrameId=n.nativeRequestAnimationFrame.call(wn,()=>{n.fakeTopEventTask||(n.fakeTopEventTask=Zone.root.scheduleEventTask("fakeTopEventTask",()=>{n.lastRequestAnimationFrameId=-1,c(n),n.isCheckStableRunning=!0,NM(n),n.isCheckStableRunning=!1},void 0,()=>{},()=>{})),n.fakeTopEventTask.invoke()}),c(n))}(n)};n._inner=n._inner.fork({name:"angular",properties:{isAngularZone:!0},onInvokeTask:(t,i,r,s,o,l)=>{if(function N(n){return!(!Array.isArray(n)||1!==n.length)&&!0===n[0].data?.__ignore_ng_zone__}(l))return t.invokeTask(r,s,o,l);try{return h(n),t.invokeTask(r,s,o,l)}finally{(n.shouldCoalesceEventChangeDetection&&"eventTask"===s.type||n.shouldCoalesceRunChangeDetection)&&e(),m(n)}},onInvoke:(t,i,r,s,o,l,d)=>{try{return h(n),t.invoke(r,s,o,l,d)}finally{n.shouldCoalesceRunChangeDetection&&e(),m(n)}},onHasTask:(t,i,r,s)=>{t.hasTask(r,s),i===r&&("microTask"==s.change?(n._hasPendingMicrotasks=s.microTask,c(n),NM(n)):"macroTask"==s.change&&(n.hasPendingMacrotasks=s.macroTask))},onHandleError:(t,i,r,s)=>(t.handleError(r,s),n.runOutsideAngular(()=>n.onError.emit(s)),!1)})}(r)}static isInAngularZone(){return typeof Zone<"u"&&!0===Zone.current.get("isAngularZone")}static assertInAngularZone(){if(!io.isInAngularZone())throw new Ln(909,!1)}static assertNotInAngularZone(){if(io.isInAngularZone())throw new Ln(909,!1)}run(e,t,i){return this._inner.run(e,t,i)}runTask(e,t,i,r){const s=this._inner,o=s.scheduleEventTask("NgZoneEvent: "+r,e,bP,B_,B_);try{return s.runTask(o,t,i)}finally{s.cancelTask(o)}}runGuarded(e,t,i){return this._inner.runGuarded(e,t,i)}runOutsideAngular(e){return this._outer.run(e)}}const bP={};function NM(n){if(0==n._nesting&&!n.hasPendingMicrotasks&&!n.isStable)try{n._nesting++,n.onMicrotaskEmpty.emit(null)}finally{if(n._nesting--,!n.hasPendingMicrotasks)try{n.runOutsideAngular(()=>n.onStable.emit(null))}finally{n.isStable=!0}}}function c(n){n.hasPendingMicrotasks=!!(n._hasPendingMicrotasks||(n.shouldCoalesceEventChangeDetection||n.shouldCoalesceRunChangeDetection)&&-1!==n.lastRequestAnimationFrameId)}function h(n){n._nesting++,n.isStable&&(n.isStable=!1,n.onUnstable.emit(null))}function m(n){n._nesting--,NM(n)}class M{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new Ls,this.onMicrotaskEmpty=new Ls,this.onStable=new Ls,this.onError=new Ls}run(e,t,i){return e.apply(t,i)}runGuarded(e,t,i){return e.apply(t,i)}runOutsideAngular(e){return e()}runTask(e,t,i,r){return e.apply(t,i)}}var de=function(n){return n[n.EarlyRead=0]="EarlyRead",n[n.Write=1]="Write",n[n.MixedReadWrite=2]="MixedReadWrite",n[n.Read=3]="Read",n}(de||{});const pe={destroy(){}};function Be(n,e){!e&&function j0(n){if(!Pp())throw new Ln(-203,!1)}();const t=e?.injector??pi(ml);if(!function u0(n){return"browser"===(n??pi(ml)).get(Kp)}(t))return pe;im("NgAfterNextRender");const i=t.get(ft),r=i.handler??=new Ke,s=e?.phase??de.MixedReadWrite,o=()=>{r.unregister(d),l()},l=t.get(Uc).onDestroy(o),d=El(t,()=>new Le(s,()=>{o(),n()}));return r.register(d),{destroy:o}}class Le{constructor(e,t){this.phase=e,this.callbackFn=t,this.zone=pi(io),this.errorHandler=pi(xl,{optional:!0}),pi(sb,{optional:!0})?.notify(1)}invoke(){try{this.zone.runOutsideAngular(this.callbackFn)}catch(e){this.errorHandler?.handleError(e)}}}class Ke{constructor(){this.executingCallbacks=!1,this.buckets={[de.EarlyRead]:new Set,[de.Write]:new Set,[de.MixedReadWrite]:new Set,[de.Read]:new Set},this.deferredCallbacks=new Set}register(e){(this.executingCallbacks?this.deferredCallbacks:this.buckets[e.phase]).add(e)}unregister(e){this.buckets[e.phase].delete(e),this.deferredCallbacks.delete(e)}execute(){this.executingCallbacks=!0;for(const e of Object.values(this.buckets))for(const t of e)t.invoke();this.executingCallbacks=!1;for(const e of this.deferredCallbacks)this.buckets[e.phase].add(e);this.deferredCallbacks.clear()}destroy(){for(const e of Object.values(this.buckets))e.clear();this.deferredCallbacks.clear()}}let ft=(()=>{class n{constructor(){this.handler=null,this.internalCallbacks=[]}execute(){this.executeInternalCallbacks(),this.handler?.execute()}executeInternalCallbacks(){const t=[...this.internalCallbacks];this.internalCallbacks.length=0;for(const i of t)i()}ngOnDestroy(){this.handler?.destroy(),this.handler=null,this.internalCallbacks.length=0}static#e=this.\u0275prov=Gi({token:n,providedIn:"root",factory:()=>new n})}return n})();function Ti(n,e,t){let i=t?n.styles:null,r=t?n.classes:null,s=0;if(null!==e)for(let o=0;o0&&hM(n,t,s.join(" "))}}(R,yt,re,i),void 0!==t&&function xs(n,e,t){const i=n.projection=[];for(let r=0;r{class n{static#e=this.__NG_ELEMENT_ID__=eo}return n})();function eo(){return _n(Ha(),Zi())}const er=fs,Or=class extends er{constructor(e,t,i){super(),this._lContainer=e,this._hostTNode=t,this._hostLView=i}get element(){return qm(this._hostTNode,this._hostLView)}get injector(){return new cc(this._hostTNode,this._hostLView)}get parentInjector(){const e=f_(this._hostTNode,this._hostLView);if(Kg(e)){const t=Zg(e,this._hostLView),i=NA(e);return new cc(t[Gr].data[i+8],t)}return new cc(null,this._hostLView)}clear(){for(;this.length>0;)this.remove(this.length-1)}get(e){const t=yr(this._lContainer);return null!==t&&t[e]||null}get length(){return this._lContainer.length-Ia}createEmbeddedView(e,t,i){let r,s;"number"==typeof i?r=i:null!=i&&(r=i.index,s=i.injector);const o=vy(this._lContainer,e.ssrId),l=e.createEmbeddedViewImpl(t||{},s,o);return this.insertImpl(l,r,fy(this._hostTNode,o)),l}createComponent(e,t,i,r,s){const o=e&&!function Og(n){return"function"==typeof n}(e);let l;if(o)l=t;else{const G=t||{};l=G.index,i=G.injector,r=G.projectableNodes,s=G.environmentInjector||G.ngModuleRef}const d=o?e:new Oi(Wo(e)),u=i||this.parentInjector;if(!s&&null==d.ngModule){const re=(o?u:this.parentInjector).get(Rc,null);re&&(s=re)}const f=Wo(d.componentType??{}),A=vy(this._lContainer,f?.id??null),R=d.create(u,r,A?.firstChild??null,s);return this.insertImpl(R.hostView,l,fy(this._hostTNode,A)),R}insert(e,t){return this.insertImpl(e,t,!0)}insertImpl(e,t,i){const r=e._lView;if(function ff(n){return dl(n[pl])}(r)){const l=this.indexOf(e);if(-1!==l)this.detach(l);else{const d=r[pl],u=new Or(d,d[oc],d[pl]);u.detach(u.indexOf(e))}}const s=this._adjustIndex(t),o=this._lContainer;return Kv(o,r,s,i),e.attachToViewContainerRef(),Eg(vr(o),s,e),e}move(e,t){return this.insert(e,t)}indexOf(e){const t=yr(this._lContainer);return null!==t?t.indexOf(e):-1}remove(e){const t=this._adjustIndex(e,-1),i=$A(this._lContainer,t);i&&(Qf(vr(this._lContainer),t),iy(i[Gr],i))}detach(e){const t=this._adjustIndex(e,-1),i=$A(this._lContainer,t);return i&&null!=Qf(vr(this._lContainer),t)?new Aw(i):null}_adjustIndex(e,t=0){return e??this.length+t}};function yr(n){return n[8]}function vr(n){return n[8]||(n[8]=[])}function _n(n,e){let t;const i=e[n.index];return dl(i)?t=i:(t=vM(i,e,null,n),e[n.index]=t,uy(e,t)),si(t,e,n,i),new Or(t,n,e)}let si=function Jr(n,e,t,i){if(n[sh])return;let r;r=8&t.type?oa(i):function Ki(n,e){const t=n[Mo],i=t.createComment(""),r=Pd(e,n);return C_(t,ry(t,r),i,function XB(n,e){return n.nextSibling(e)}(t,r),!1),i}(e,t),n[sh]=r},Ri=()=>!1;class co{constructor(e){this.queryList=e,this.matches=null}clone(){return new co(this.queryList)}setDirty(){this.queryList.setDirty()}}class _s{constructor(e=[]){this.queries=e}createEmbeddedView(e){const t=e.queries;if(null!==t){const i=null!==e.contentQueries?e.contentQueries[0]:t.length,r=[];for(let s=0;se.trim())}(e):e}}class Pt{constructor(e=[]){this.queries=e}elementStart(e,t){for(let i=0;i0)i.push(o[l/2]);else{const u=s[l+1],f=e[-d];for(let A=Ia;A=0;i--){const r=n[i];r.hostVars=e+=r.hostVars,r.hostAttrs=Mp(r.hostAttrs,t=Mp(t,r.hostAttrs))}}(i)}function x3(n,e){for(const t in e.inputs){if(!e.inputs.hasOwnProperty(t)||n.inputs.hasOwnProperty(t))continue;const i=e.inputs[t];if(void 0!==i&&(n.inputs[t]=i,n.declaredInputs[t]=e.declaredInputs[t],null!==e.inputTransforms)){const r=Array.isArray(i)?i[0]:i;if(!e.inputTransforms.hasOwnProperty(r))continue;n.inputTransforms??={},n.inputTransforms[r]=e.inputTransforms[r]}}}function w3(n){return n===xh?{}:n===za?[]:n}function LX(n,e){const t=n.viewQuery;n.viewQuery=t?(i,r)=>{e(i,r),t(i,r)}:e}function NX(n,e){const t=n.contentQueries;n.contentQueries=t?(i,r,s)=>{e(i,r,s),t(i,r,s)}:e}function UX(n,e){const t=n.hostBindings;n.hostBindings=t?(i,r)=>{e(i,r),t(i,r)}:e}function ql(n){const e=n.inputConfig,t={};for(const i in e)if(e.hasOwnProperty(i)){const r=e[i];Array.isArray(r)&&r[3]&&(t[i]=r[3])}n.inputTransforms=t}class cb{}class FN{}class SP extends cb{constructor(e,t,i){super(),this._parent=t,this._bootstrapComponents=[],this.destroyCbs=[],this.componentFactoryResolver=new ur(this);const r=Bc(e);this._bootstrapComponents=wu(r.bootstrap),this._r3Injector=_f(e,t,[{provide:cb,useValue:this},{provide:m0,useValue:this.componentFactoryResolver},...i],ht(e),new Set(["environment"])),this._r3Injector.resolveInjectorInitializers(),this.instance=this._r3Injector.get(e)}get injector(){return this._r3Injector}destroy(){const e=this._r3Injector;!e.destroyed&&e.destroy(),this.destroyCbs.forEach(t=>t()),this.destroyCbs=null}onDestroy(e){this.destroyCbs.push(e)}}class EP extends FN{constructor(e){super(),this.moduleType=e}create(e){return new SP(this.moduleType,e,[])}}class ON extends cb{constructor(e){super(),this.componentFactoryResolver=new ur(this),this.instance=null;const t=new jc([...e.providers,{provide:cb,useValue:this},{provide:m0,useValue:this.componentFactoryResolver}],e.parent||bo(),e.debugName,new Set(["environment"]));this.injector=t,e.runEnvironmentInitializers&&t.resolveInjectorInitializers()}destroy(){this.injector.destroy()}onDestroy(e){this.injector.onDestroy(e)}}function C3(n,e,t=null){return new ON({providers:n,parent:e,debugName:t,runEnvironmentInitializers:!0}).injector}let by=(()=>{class n{constructor(){this.taskId=0,this.pendingTasks=new Set,this.hasPendingTasks=new cn(!1)}get _hasPendingTasks(){return this.hasPendingTasks.value}add(){this._hasPendingTasks||this.hasPendingTasks.next(!0);const t=this.taskId++;return this.pendingTasks.add(t),t}remove(t){this.pendingTasks.delete(t),0===this.pendingTasks.size&&this._hasPendingTasks&&this.hasPendingTasks.next(!1)}ngOnDestroy(){this.pendingTasks.clear(),this._hasPendingTasks&&this.hasPendingTasks.next(!1)}static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();function S3(n){return!!TP(n)&&(Array.isArray(n)||!(n instanceof Map)&&Symbol.iterator in n)}function TP(n){return null!==n&&("function"==typeof n||"object"==typeof n)}function g0(n,e,t){return n[e]=t}function Hd(n,e,t){return!Object.is(n[e],t)&&(n[e]=t,!0)}function db(n,e,t,i){const r=Hd(n,e,t);return Hd(n,e+1,i)||r}function zs(n,e,t,i,r,s,o,l){const d=Zi(),u=wa(),f=n+Cs,A=u.firstCreatePass?function ZX(n,e,t,i,r,s,o,l,d){const u=e.consts,f=XA(e,n,4,o||null,Hu(u,l));lw(e,t,f,Hu(u,d)),Af(e,f);const A=f.tView=E_(2,f,i,r,s,e.directiveRegistry,e.pipeRegistry,null,e.schemas,u,null);return null!==e.queries&&(e.queries.template(e,f),A.queries=e.queries.embeddedTView(f)),f}(f,u,d,e,t,i,r,s,o):u.data[f];dh(A,!1);const S=LN(u,d,A,n);Nm()&&nw(u,d,S,A),zr(S,d);const R=vM(S,d,S,A);return d[f]=R,uy(d,R),function Ii(n,e,t){return Ri(n,e,t)}(R,A,d),zl(A)&&Cu(u,d,A),null!=o&&p0(d,A,l),zs}let LN=function NN(n,e,t,i){return Za(!0),e[Mo].createComment("")};function sl(n,e,t,i){const r=Zi();return Hd(r,hh(),e)&&(wa(),hp(gl(),r,n,e,t,i)),sl}function Iw(n,e,t,i,r,s){const l=db(n,function uh(){return Gs.lFrame.bindingIndex}(),t,r);return mf(2),l?e+go(t)+i+go(r)+s:ca}function Lw(n,e,t,i,r,s,o,l){const d=Zi(),u=Iw(d,e,t,i,r,s);return u!==ca&&hp(gl(),d,n,u,o,l),Lw}function R3(n,e){return n<<17|e<<2}function wy(n){return n>>17&32767}function NP(n){return 2|n}function hb(n){return(131068&n)>>2}function UP(n,e){return-131069&n|e<<2}function zP(n){return 1|n}function p8(n,e,t,i){const r=n[t+1],s=null===e;let o=i?wy(r):hb(r),l=!1;for(;0!==o&&(!1===l||s);){const u=n[o+1];OY(n[o],e)&&(l=!0,n[o+1]=i?zP(u):NP(u)),o=i?wy(u):hb(u)}l&&(n[t+1]=i?NP(r):zP(r))}function OY(n,e){return null===n||null==e||(Array.isArray(n)?n[1]:n)===e||!(!Array.isArray(n)||"string"!=typeof e)&&vl(n,e)>=0}const Su={textEnd:0,key:0,keyEnd:0,value:0,valueEnd:0};function m8(n){return n.substring(Su.key,Su.keyEnd)}function LY(n){return n.substring(Su.value,Su.valueEnd)}function A8(n,e){const t=Su.textEnd;return t===e?-1:(e=Su.keyEnd=function zY(n,e,t){for(;e32;)e++;return e}(n,Su.key=e,t),Nw(n,e,t))}function g8(n,e){const t=Su.textEnd;let i=Su.key=Nw(n,e,t);return t===i?-1:(i=Su.keyEnd=function HY(n,e,t){let i;for(;e=65&&(-33&i)<=90||i>=48&&i<=57);)e++;return e}(n,i,t),i=y8(n,i,t),i=Su.value=Nw(n,i,t),i=Su.valueEnd=function VY(n,e,t){let i=-1,r=-1,s=-1,o=e,l=o;for(;o32&&(l=o),s=r,r=i,i=-33&d}return l}(n,i,t),y8(n,i,t))}function _8(n){Su.key=0,Su.keyEnd=0,Su.value=0,Su.valueEnd=0,Su.textEnd=n.length}function Nw(n,e,t){for(;e=0;t=g8(e,t))w8(n,m8(e),LY(e))}function P_(n){ng(XY,_0,n,!0)}function _0(n,e){for(let t=function NY(n){return _8(n),A8(n,Nw(n,0,Su.textEnd))}(e);t>=0;t=A8(e,t))Yl(n,m8(e),!0)}function tg(n,e,t,i){const r=Zi(),s=wa(),o=mf(2);s.firstUpdatePass&&x8(s,n,o,i),e!==ca&&Hd(r,o,e)&&C8(s,s.data[Lc()],r,r[Mo],n,r[o+1]=function KY(n,e){return null==n||""===n||("string"==typeof e?n+=e:"object"==typeof n&&(n=ht(Sa(n)))),n}(e,t),i,o)}function ng(n,e,t,i){const r=wa(),s=mf(2);r.firstUpdatePass&&x8(r,null,s,i);const o=Zi();if(t!==ca&&Hd(o,s,t)){const l=r.data[Lc()];if(S8(l,i)&&!b8(r,s)){let d=i?l.classesWithoutHost:l.stylesWithoutHost;null!==d&&(t=Qt(d,t||"")),HP(r,l,o,t,i)}else!function YY(n,e,t,i,r,s,o,l){r===ca&&(r=za);let d=0,u=0,f=0=n.expandoStartIndex}function x8(n,e,t,i){const r=n.data;if(null===r[t+1]){const s=r[Lc()],o=b8(n,t);S8(s,i)&&null===e&&!o&&(e=!1),e=function qY(n,e,t,i){const r=function i_(n){const e=Gs.lFrame.currentDirectiveIndex;return-1===e?null:n[e]}(n);let s=i?e.residualClasses:e.residualStyles;if(null===r)0===(i?e.classBindings:e.styleBindings)&&(t=XM(t=VP(null,n,e,t,i),e.attrs,i),s=null);else{const o=e.directiveStylingLast;if(-1===o||n[o]!==r)if(t=VP(r,n,e,t,i),null===s){let d=function QY(n,e,t){const i=t?e.classBindings:e.styleBindings;if(0!==hb(i))return n[wy(i)]}(n,e,i);void 0!==d&&Array.isArray(d)&&(d=VP(null,n,e,d[1],i),d=XM(d,e.attrs,i),function WY(n,e,t,i){n[wy(t?e.classBindings:e.styleBindings)]=i}(n,e,i,d))}else s=function jY(n,e,t){let i;const r=e.directiveEnd;for(let s=1+e.directiveStylingLast;s0)&&(u=!0)):f=t,r)if(0!==d){const S=wy(n[l+1]);n[i+1]=R3(S,l),0!==S&&(n[S+1]=UP(n[S+1],i)),n[l+1]=function PY(n,e){return 131071&n|e<<17}(n[l+1],i)}else n[i+1]=R3(l,0),0!==l&&(n[l+1]=UP(n[l+1],i)),l=i;else n[i+1]=R3(d,0),0===l?l=i:n[d+1]=UP(n[d+1],i),d=i;u&&(n[i+1]=NP(n[i+1])),p8(n,f,i,!0),p8(n,f,i,!1),function FY(n,e,t,i,r){const s=r?n.residualClasses:n.residualStyles;null!=s&&"string"==typeof e&&vl(s,e)>=0&&(t[i+1]=zP(t[i+1]))}(e,f,n,i,s),o=R3(l,d),s?e.classBindings=o:e.styleBindings=o}(r,s,e,t,o,i)}}function VP(n,e,t,i,r){let s=null;const o=t.directiveEnd;let l=t.directiveStylingLast;for(-1===l?l=t.directiveStart:l++;l0;){const d=n[r],u=Array.isArray(d),f=u?d[1]:d,A=null===f;let S=t[r+1];S===ca&&(S=A?za:void 0);let R=A?Xd(S,i):f===i?S:void 0;if(u&&!k3(R)&&(R=Xd(d,i)),k3(R)&&(l=R,o))return l;const G=n[r+1];r=o?wy(G):hb(G)}if(null!==e){let d=s?e.residualClasses:e.residualStyles;null!=d&&(l=Xd(d,i))}return l}function k3(n){return void 0!==n}function S8(n,e){return!!(n.flags&(e?8:16))}class lK{destroy(e){}updateValue(e,t){}swap(e,t){const i=Math.min(e,t),r=Math.max(e,t),s=this.detach(r);if(r-i>1){const o=this.detach(i);this.attach(i,s),this.attach(r,o)}else this.attach(i,s)}move(e,t){this.attach(t,this.detach(e))}}function GP(n,e,t,i,r){return n===t&&Object.is(e,i)?1:Object.is(r(n,e),r(t,i))?-1:0}function qP(n,e,t,i){return!(void 0===e||!e.has(i)||(n.attach(t,e.get(i)),e.delete(i),0))}function E8(n,e,t,i,r){if(qP(n,e,i,t(i,r)))n.updateValue(i,r);else{const s=n.create(i,r);n.attach(i,s)}}function T8(n,e,t,i){const r=new Set;for(let s=e;s<=t;s++)r.add(i(s,n.at(s)));return r}class D8{constructor(){this.kvMap=new Map,this._vMap=void 0}has(e){return this.kvMap.has(e)}delete(e){if(!this.has(e))return!1;const t=this.kvMap.get(e);return void 0!==this._vMap&&this._vMap.has(t)?(this.kvMap.set(e,this._vMap.get(t)),this._vMap.delete(t)):this.kvMap.delete(e),!0}get(e){return this.kvMap.get(e)}set(e,t){if(this.kvMap.has(e)){let i=this.kvMap.get(e);void 0===this._vMap&&(this._vMap=new Map);const r=this._vMap;for(;r.has(i);)i=r.get(i);r.set(i,t)}else this.kvMap.set(e,t)}forEach(e){for(let[t,i]of this.kvMap)if(e(i,t),void 0!==this._vMap){const r=this._vMap;for(;r.has(i);)i=r.get(i),e(i,t)}}}function R_(n,e,t){im("NgControlFlow");const i=Zi(),r=hh(),s=QP(i,Cs+n);if(Hd(i,r,e)){const l=Ye(null);try{if(uw(s,0),-1!==e){const d=WP(i[Gr],Cs+e),u=vy(s,d.tView.ssrId);Kv(s,Xv(i,d,t,{dehydratedView:u}),0,fy(d,u))}}finally{Ye(l)}}else{const l=Yv(s,0);void 0!==l&&(l[Ka]=t)}}class dK{constructor(e,t,i){this.lContainer=e,this.$implicit=t,this.$index=i}get $count(){return this.lContainer.length-Ia}}function F3(n,e){return e}class hK{constructor(e,t,i){this.hasEmptyBlock=e,this.trackByFn=t,this.liveCollection=i}}class fK extends lK{constructor(e,t,i){super(),this.lContainer=e,this.hostLView=t,this.templateTNode=i,this.needsIndexUpdate=!1}get length(){return this.lContainer.length-Ia}at(e){return this.getLView(e)[Ka].$implicit}attach(e,t){const i=t[Ul];this.needsIndexUpdate||=e!==this.length,Kv(this.lContainer,t,e,fy(this.templateTNode,i))}detach(e){return this.needsIndexUpdate||=e!==this.length-1,function pK(n,e){return $A(n,e)}(this.lContainer,e)}create(e,t){const i=vy(this.lContainer,this.templateTNode.tView.ssrId);return Xv(this.hostLView,this.templateTNode,new dK(this.lContainer,t,e),{dehydratedView:i})}destroy(e){iy(e[Gr],e)}updateValue(e,t){this.getLView(e)[Ka].$implicit=t}reset(){this.needsIndexUpdate=!1}updateIndexes(){if(this.needsIndexUpdate)for(let e=0;e(Za(!0),Nv(i,r,function P1(){return Gs.lFrame.currentNamespace}()));function ig(n,e,t){const i=Zi(),r=wa(),s=n+Cs,o=r.firstCreatePass?function yK(n,e,t,i,r){const s=e.consts,o=Hu(s,i),l=XA(e,n,8,"ng-container",o);return null!==o&&Ti(l,o,!0),lw(e,t,l,Hu(s,r)),null!==e.queries&&e.queries.elementStart(e,l),l}(s,r,i,e,t):r.data[s];dh(o,!0);const l=B8(r,i,o,n);return i[s]=l,Nm()&&nw(r,i,l,o),zr(l,i),zl(o)&&(Cu(r,i,o),Qv(r,o,i)),null!=t&&p0(i,o),ig}function rg(){let n=Ha();const e=wa();return FA()?Gg():(n=n.parent,dh(n,!1)),e.firstCreatePass&&(Af(e,n),SA(n)&&e.queries.elementEnd(n)),rg}function Uw(n,e,t){return ig(n,e,t),rg(),Uw}let B8=(n,e,t,i)=>(Za(!0),ny(e[Mo],""));function ta(){return Zi()}function zw(n,e,t){const i=Zi();return Hd(i,hh(),e)&&Mu(wa(),gl(),i,n,e,i[Mo],t,!0),zw}const fb=void 0;var wK=["en",[["a","p"],["AM","PM"],fb],[["AM","PM"],fb,fb],[["S","M","T","W","T","F","S"],["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],["Su","Mo","Tu","We","Th","Fr","Sa"]],fb,[["J","F","M","A","M","J","J","A","S","O","N","D"],["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],["January","February","March","April","May","June","July","August","September","October","November","December"]],fb,[["B","A"],["BC","AD"],["Before Christ","Anno Domini"]],0,[6,0],["M/d/yy","MMM d, y","MMMM d, y","EEEE, MMMM d, y"],["h:mm a","h:mm:ss a","h:mm:ss a z","h:mm:ss a zzzz"],["{1}, {0}",fb,"{1} 'at' {0}",fb],[".",",",";","%","+","-","E","\xd7","\u2030","\u221e","NaN",":"],["#,##0.###","#,##0%","\xa4#,##0.00","#E0"],"USD","$","US Dollar",{},"ltr",function xK(n){const t=Math.floor(Math.abs(n)),i=n.toString().replace(/^[^.]*\.?/,"").length;return 1===t&&0===i?1:5}];let Hw={};function Sf(n){const e=function CK(n){return n.toLowerCase().replace(/_/g,"-")}(n);let t=k8(e);if(t)return t;const i=e.split("-")[0];if(t=k8(i),t)return t;if("en"===i)return wK;throw new Ln(701,!1)}function k8(n){return n in Hw||(Hw[n]=wn.ng&&wn.ng.common&&wn.ng.common.locales&&wn.ng.common.locales[n]),Hw[n]}var Mc=function(n){return n[n.LocaleId=0]="LocaleId",n[n.DayPeriodsFormat=1]="DayPeriodsFormat",n[n.DayPeriodsStandalone=2]="DayPeriodsStandalone",n[n.DaysFormat=3]="DaysFormat",n[n.DaysStandalone=4]="DaysStandalone",n[n.MonthsFormat=5]="MonthsFormat",n[n.MonthsStandalone=6]="MonthsStandalone",n[n.Eras=7]="Eras",n[n.FirstDayOfWeek=8]="FirstDayOfWeek",n[n.WeekendRange=9]="WeekendRange",n[n.DateFormat=10]="DateFormat",n[n.TimeFormat=11]="TimeFormat",n[n.DateTimeFormat=12]="DateTimeFormat",n[n.NumberSymbols=13]="NumberSymbols",n[n.NumberFormats=14]="NumberFormats",n[n.CurrencyCode=15]="CurrencyCode",n[n.CurrencySymbol=16]="CurrencySymbol",n[n.CurrencyName=17]="CurrencyName",n[n.Currencies=18]="Currencies",n[n.Directionality=19]="Directionality",n[n.PluralCase=20]="PluralCase",n[n.ExtraData=21]="ExtraData",n}(Mc||{});const Vw="en-US";let F8=Vw;function Ai(n,e,t,i){const r=Zi(),s=wa(),o=Ha();return XP(s,r,r[Mo],o,n,e,i),Ai}function XP(n,e,t,i,r,s,o){const l=zl(i),u=n.firstCreatePass&&hy(n),f=e[Ka],A=wM(e);let S=!0;if(3&i.type||o){const re=Pd(i,e),se=o?o(re):re,le=A.length,Ee=o?We=>o(oa(We[i.index])):i.index;let Ce=null;if(!o&&l&&(Ce=function vZ(n,e,t,i){const r=n.cleanup;if(null!=r)for(let s=0;sd?l[d]:null}"string"==typeof o&&(s+=2)}return null}(n,e,r,i.index)),null!==Ce)(Ce.__ngLastListenerFn__||Ce).__ngNextListenerFn__=s,Ce.__ngLastListenerFn__=s,S=!1;else{s=c6(i,e,f,s,!1);const We=t.listen(se,r,s);A.push(s,We),u&&u.push(r,Ee,le,le+1)}}else s=c6(i,e,f,s,!1);const R=i.outputs;let G;if(S&&null!==R&&(G=R[r])){const re=G.length;if(re)for(let se=0;se-1?Rd(n.index,e):e);let d=l6(e,t,i,o),u=s.__ngNextListenerFn__;for(;u;)d=l6(e,t,u,o)&&d,u=u.__ngNextListenerFn__;return r&&!1===d&&o.preventDefault(),d}}function Pr(n=1){return function LA(n){return(Gs.lFrame.contextLView=function Z0(n,e){for(;n>0;)e=e[rf],n--;return e}(n,Gs.lFrame.contextLView))[Ka]}(n)}function bZ(n,e){let t=null;const i=function $f(n){const e=n.attrs;if(null!=e){const t=e.indexOf(5);if(!(1&t))return e[t+1]}return null}(n);for(let r=0;r(Za(!0),function sM(n,e){return n.createText(e)}(e[Mo],i));function tA(n){return yl("",n,""),tA}function yl(n,e,t){const i=Zi(),r=function Dw(n,e,t,i){return Hd(n,hh(),t)?e+go(t)+i:ca}(i,n,e,t);return r!==ca&&function KA(n,e,t){const i=BA(e,n);!function Cc(n,e,t){n.setValue(e,t)}(n[Mo],i,t)}(i,Lc(),r),yl}function Gw(n,e,t){xo(e)&&(e=e());const i=Zi();return Hd(i,hh(),e)&&Mu(wa(),gl(),i,n,e,i[Mo],t,!1),Gw}function nS(n,e){const t=xo(n);return t&&n.set(e),t}function qw(n,e){const t=Zi(),i=wa(),r=Ha();return XP(i,t,t[Mo],r,n,e),qw}function KP(n,e,t,i,r){if(n=fn(n),Array.isArray(n))for(let s=0;s>20;if(Ip(n)||!n.multi){const R=new rp(u,r,Lt),G=JP(d,e,r?f:f+S,A);-1===G?(F1(zm(l,o),s,d),ZP(s,n,e.length),e.push(d),l.directiveStart++,l.directiveEnd++,r&&(l.providerIndexes+=1048576),t.push(R),o.push(R)):(t[G]=R,o[G]=R)}else{const R=JP(d,e,f+S,A),G=JP(d,e,f,f+S),se=G>=0&&t[G];if(r&&!se||!r&&!(R>=0&&t[R])){F1(zm(l,o),s,d);const le=function zZ(n,e,t,i,r){const s=new rp(n,t,Lt);return s.multi=[],s.index=e,s.componentProviders=0,L6(s,r,i&&!t),s}(r?UZ:NZ,t.length,r,i,u);!r&&se&&(t[G].providerFactory=le),ZP(s,n,e.length,0),e.push(d),l.directiveStart++,l.directiveEnd++,r&&(l.providerIndexes+=1048576),t.push(le),o.push(le)}else ZP(s,n,R>-1?R:G,L6(t[r?G:R],u,!r&&i));!r&&i&&se&&t[G].componentProviders++}}}function ZP(n,e,t,i){const r=Ip(e),s=function cv(n){return!!n.useClass}(e);if(r||s){const d=(s?fn(e.useClass):e).prototype.ngOnDestroy;if(d){const u=n.destroyHooks||(n.destroyHooks=[]);if(!r&&e.multi){const f=u.indexOf(t);-1===f?u.push(t,[i,d]):u[f+1].push(i,d)}else u.push(t,d)}}}function L6(n,e,t){return t&&n.componentProviders++,n.multi.push(e)-1}function JP(n,e,t,i){for(let r=t;r{t.providersResolver=(i,r)=>function LZ(n,e,t){const i=wa();if(i.firstCreatePass){const r=Hl(n);KP(t,i.data,i.blueprint,r,!0),KP(e,i.data,i.blueprint,r,!1)}}(i,r?r(n):n,e)}}let HZ=(()=>{class n{constructor(t){this._injector=t,this.cachedInjectors=new Map}getOrCreateStandaloneInjector(t){if(!t.standalone)return null;if(!this.cachedInjectors.has(t)){const i=Tp(0,t.type),r=i.length>0?C3([i],this._injector,`Standalone[${t.type.name}]`):null;this.cachedInjectors.set(t,r)}return this.cachedInjectors.get(t)}ngOnDestroy(){try{for(const t of this.cachedInjectors.values())null!==t&&t.destroy()}finally{this.cachedInjectors.clear()}}static#e=this.\u0275prov=Gi({token:n,providedIn:"environment",factory:()=>new n(xi(Rc))})}return n})();function yd(n){im("NgStandalone"),n.getStandaloneInjector=e=>e.get(HZ).getOrCreateStandaloneInjector(n)}function Oh(n,e,t,i){return z6(Zi(),Yc(),n,e,t,i)}function U6(n,e,t,i,r,s){return function V6(n,e,t,i,r,s,o,l){const d=e+t;return function E3(n,e,t,i,r){const s=db(n,e,t,i);return Hd(n,e+2,r)||s}(n,d,r,s,o)?g0(n,d+3,l?i.call(l,r,s,o):i(r,s,o)):iS(n,d+3)}(Zi(),Yc(),n,e,t,i,r,s)}function iS(n,e){const t=n[e];return t===ca?void 0:t}function z6(n,e,t,i,r,s){const o=e+t;return Hd(n,o,r)?g0(n,o+1,s?i.call(s,r):i(r)):iS(n,o+1)}function H6(n,e,t,i,r,s,o){const l=e+t;return db(n,l,r,s)?g0(n,l+2,o?i.call(o,r,s):i(r,s)):iS(n,l+2)}function rS(n,e){const t=wa();let i;const r=n+Cs;t.firstCreatePass?(i=function KZ(n,e){if(e)for(let t=e.length-1;t>=0;t--){const i=e[t];if(n===i.name)return i}}(e,t.pipeRegistry),t.data[r]=i,i.onDestroy&&(t.destroyHooks??=[]).push(r,i.onDestroy)):i=t.data[r];const s=i.factory||(i.factory=md(i.type)),l=jd(Lt);try{const d=u_(!1),u=s();return u_(d),function MZ(n,e,t,i){t>=n.data.length&&(n.data[t]=null,n.blueprint[t]=null),e[t]=i}(t,Zi(),r,u),u}finally{jd(l)}}function G3(n,e,t,i){const r=n+Cs,s=Zi(),o=km(s,r);return sS(s,r)?H6(s,Yc(),e,o.transform,t,i,o):o.transform(t,i)}function sS(n,e){return n[Gr].data[e].pure}function nR(n,e){return D_(n,e)}let aU=(()=>{class n{log(t){console.log(t)}warn(t){console.warn(t)}static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac,providedIn:"platform"})}return n})();const hU=new Bi(""),W3=new Bi("");let dR,lR=(()=>{class n{constructor(t,i,r){this._ngZone=t,this.registry=i,this._pendingCount=0,this._isZoneStable=!0,this._callbacks=[],this.taskTrackingZone=null,dR||(function jJ(n){dR=n}(r),r.addToWindow(i)),this._watchAngularEvents(),t.run(()=>{this.taskTrackingZone=typeof Zone>"u"?null:Zone.current.get("TaskTrackingZone")})}_watchAngularEvents(){this._ngZone.onUnstable.subscribe({next:()=>{this._isZoneStable=!1}}),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.subscribe({next:()=>{io.assertNotInAngularZone(),queueMicrotask(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}})})}increasePendingRequestCount(){return this._pendingCount+=1,this._pendingCount}decreasePendingRequestCount(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error("pending async requests below zero");return this._runCallbacksIfReady(),this._pendingCount}isStable(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())queueMicrotask(()=>{for(;0!==this._callbacks.length;){let t=this._callbacks.pop();clearTimeout(t.timeoutId),t.doneCb()}});else{let t=this.getPendingTasks();this._callbacks=this._callbacks.filter(i=>!i.updateCb||!i.updateCb(t)||(clearTimeout(i.timeoutId),!1))}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(t=>({source:t.source,creationLocation:t.creationLocation,data:t.data})):[]}addCallback(t,i,r){let s=-1;i&&i>0&&(s=setTimeout(()=>{this._callbacks=this._callbacks.filter(o=>o.timeoutId!==s),t()},i)),this._callbacks.push({doneCb:t,timeoutId:s,updateCb:r})}whenStable(t,i,r){if(r&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is "zone.js/plugins/task-tracking" loaded?');this.addCallback(t,i,r),this._runCallbacksIfReady()}getPendingRequestCount(){return this._pendingCount}registerApplication(t){this.registry.registerApplication(t,this)}unregisterApplication(t){this.registry.unregisterApplication(t)}findProviders(t,i,r){return[]}static#e=this.\u0275fac=function(i){return new(i||n)(xi(io),xi(cR),xi(W3))};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac})}return n})(),cR=(()=>{class n{constructor(){this._applications=new Map}registerApplication(t,i){this._applications.set(t,i)}unregisterApplication(t){this._applications.delete(t)}unregisterAllApplications(){this._applications.clear()}getTestability(t){return this._applications.get(t)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(t,i=!0){return dR?.findTestabilityInTree(this,t,i)??null}static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac,providedIn:"platform"})}return n})();function lS(n){return!!n&&"function"==typeof n.then}function fU(n){return!!n&&"function"==typeof n.subscribe}const uR=new Bi("");let hR=(()=>{class n{constructor(){this.initialized=!1,this.done=!1,this.donePromise=new Promise((t,i)=>{this.resolve=t,this.reject=i}),this.appInits=pi(uR,{optional:!0})??[]}runInitializers(){if(this.initialized)return;const t=[];for(const r of this.appInits){const s=r();if(lS(s))t.push(s);else if(fU(s)){const o=new Promise((l,d)=>{s.subscribe({complete:l,error:d})});t.push(o)}}const i=()=>{this.done=!0,this.resolve()};Promise.all(t).then(()=>{i()}).catch(r=>{this.reject(r)}),0===t.length&&i(),this.initialized=!0}static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();const fR=new Bi("");function AU(n,e){return Array.isArray(e)?e.reduce(AU,n):{...n,...e}}let k_=(()=>{class n{constructor(){this._bootstrapListeners=[],this._runningTick=!1,this._destroyed=!1,this._destroyListeners=[],this._views=[],this.internalErrorHandler=pi(n0),this.afterRenderEffectManager=pi(ft),this.externalTestViews=new Set,this.beforeRender=new hn,this.afterTick=new hn,this.componentTypes=[],this.components=[],this.isStable=pi(by).hasPendingTasks.pipe(bi(t=>!t)),this._injector=pi(Rc)}get destroyed(){return this._destroyed}get injector(){return this._injector}bootstrap(t,i){const r=t instanceof m3;if(!this._injector.get(hR).done)throw!r&&function Sl(n){const e=Wo(n)||rl(n)||bl(n);return null!==e&&e.standalone}(t),new Ln(405,!1);let o;o=r?t:this._injector.get(m0).resolveComponentFactory(t),this.componentTypes.push(o.componentType);const l=function $J(n){return n.isBoundToModule}(o)?void 0:this._injector.get(cb),u=o.create(ml.NULL,[],i||o.selector,l),f=u.location.nativeElement,A=u.injector.get(hU,null);return A?.registerApplication(f),u.onDestroy(()=>{this.detachView(u.hostView),j3(this.components,u),A?.unregisterApplication(f)}),this._loadComponent(u),u}tick(){this._tick(!0)}_tick(t){if(this._runningTick)throw new Ln(101,!1);const i=Ye(null);try{this._runningTick=!0,this.detectChangesInAttachedViews(t)}catch(r){this.internalErrorHandler(r)}finally{this.afterTick.next(),this._runningTick=!1,Ye(i)}}detectChangesInAttachedViews(t){let i=0;const r=this.afterRenderEffectManager;for(;;){if(i===SM)throw new Ln(103,!1);if(t){const s=0===i;this.beforeRender.next(s);for(let{_lView:o,notifyErrorHandler:l}of this._views)YJ(o,s,l)}if(i++,r.executeInternalCallbacks(),![...this.externalTestViews.keys(),...this._views].some(({_lView:s})=>pR(s))&&(r.execute(),![...this.externalTestViews.keys(),...this._views].some(({_lView:s})=>pR(s))))break}}attachView(t){const i=t;this._views.push(i),i.attachToAppRef(this)}detachView(t){const i=t;j3(this._views,i),i.detachFromAppRef()}_loadComponent(t){this.attachView(t.hostView),this.tick(),this.components.push(t);const i=this._injector.get(fR,[]);[...this._bootstrapListeners,...i].forEach(r=>r(t))}ngOnDestroy(){if(!this._destroyed)try{this._destroyListeners.forEach(t=>t()),this._views.slice().forEach(t=>t.destroy())}finally{this._destroyed=!0,this._views=[],this._bootstrapListeners=[],this._destroyListeners=[]}}onDestroy(t){return this._destroyListeners.push(t),()=>j3(this._destroyListeners,t)}destroy(){if(this._destroyed)throw new Ln(406,!1);const t=this._injector;t.destroy&&!t.destroyed&&t.destroy()}get viewCount(){return this._views.length}warnIfDestroyed(){}static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();function j3(n,e){const t=n.indexOf(e);t>-1&&n.splice(t,1)}function YJ(n,e,t){!e&&!pR(n)||function KJ(n,e,t){let i;t?(i=0,n[so]|=1024):i=64&n[so]?0:1,T_(n,e,i)}(n,t,e)}function pR(n){return Oc(n)}class ZJ{constructor(e,t){this.ngModuleFactory=e,this.componentFactories=t}}let gU=(()=>{class n{compileModuleSync(t){return new EP(t)}compileModuleAsync(t){return Promise.resolve(this.compileModuleSync(t))}compileModuleAndAllComponentsSync(t){const i=this.compileModuleSync(t),s=wu(Bc(t).declarations).reduce((o,l)=>{const d=Wo(l);return d&&o.push(new Oi(d)),o},[]);return new ZJ(i,s)}compileModuleAndAllComponentsAsync(t){return Promise.resolve(this.compileModuleAndAllComponentsSync(t))}clearCache(){}clearCacheFor(t){}getModuleId(t){}static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),tee=(()=>{class n{constructor(){this.zone=pi(io),this.applicationRef=pi(k_)}initialize(){this._onMicrotaskEmptySubscription||(this._onMicrotaskEmptySubscription=this.zone.onMicrotaskEmpty.subscribe({next:()=>{this.zone.run(()=>{this.applicationRef.tick()})}}))}ngOnDestroy(){this._onMicrotaskEmptySubscription?.unsubscribe()}static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();function nee(){const n=pi(io),e=pi(xl);return t=>n.runOutsideAngular(()=>e.handleError(t))}let ree=(()=>{class n{constructor(){this.subscription=new rt,this.initialized=!1,this.zone=pi(io),this.pendingTasks=pi(by)}initialize(){if(this.initialized)return;this.initialized=!0;let t=null;!this.zone.isStable&&!this.zone.hasPendingMacrotasks&&!this.zone.hasPendingMicrotasks&&(t=this.pendingTasks.add()),this.zone.runOutsideAngular(()=>{this.subscription.add(this.zone.onStable.subscribe(()=>{io.assertNotInAngularZone(),queueMicrotask(()=>{null!==t&&!this.zone.hasPendingMacrotasks&&!this.zone.hasPendingMicrotasks&&(this.pendingTasks.remove(t),t=null)})}))}),this.subscription.add(this.zone.onUnstable.subscribe(()=>{io.assertInAngularZone(),t??=this.pendingTasks.add()}))}ngOnDestroy(){this.subscription.unsubscribe()}static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();const y0=new Bi("",{providedIn:"root",factory:()=>pi(y0,va.Optional|va.SkipSelf)||function see(){return typeof $localize<"u"&&$localize.locale||Vw}()}),mR=new Bi("");let bU=(()=>{class n{constructor(t){this._injector=t,this._modules=[],this._destroyListeners=[],this._destroyed=!1}bootstrapModuleFactory(t,i){const r=function q(n="zone.js",e){return"noop"===n?new M:"zone.js"===n?new io(e):n}(i?.ngZone,function vU(n){return{enableLongStackTrace:!1,shouldCoalesceEventChangeDetection:n?.eventCoalescing??!1,shouldCoalesceRunChangeDetection:n?.runCoalescing??!1}}({eventCoalescing:i?.ngZoneEventCoalescing,runCoalescing:i?.ngZoneRunCoalescing}));return r.run(()=>{const s=function WX(n,e,t){return new SP(n,e,t)}(t.moduleType,this.injector,function yU(n){return[{provide:io,useFactory:n},{provide:Ui,multi:!0,useFactory:()=>{const e=pi(tee,{optional:!0});return()=>e.initialize()}},{provide:Ui,multi:!0,useFactory:()=>{const e=pi(ree);return()=>{e.initialize()}}},{provide:n0,useFactory:nee}]}(()=>r)),o=s.injector.get(xl,null);return r.runOutsideAngular(()=>{const l=r.onError.subscribe({next:d=>{o.handleError(d)}});s.onDestroy(()=>{j3(this._modules,s),l.unsubscribe()})}),function mU(n,e,t){try{const i=t();return lS(i)?i.catch(r=>{throw e.runOutsideAngular(()=>n.handleError(r)),r}):i}catch(i){throw e.runOutsideAngular(()=>n.handleError(i)),i}}(o,r,()=>{const l=s.injector.get(hR);return l.runInitializers(),l.donePromise.then(()=>(function O8(n){"string"==typeof n&&(F8=n.toLowerCase().replace(/_/g,"-"))}(s.injector.get(y0,Vw)||Vw),this._moduleDoBootstrap(s),s))})})}bootstrapModule(t,i=[]){const r=AU({},i);return function eee(n,e,t){const i=new EP(t);return Promise.resolve(i)}(0,0,t).then(s=>this.bootstrapModuleFactory(s,r))}_moduleDoBootstrap(t){const i=t.injector.get(k_);if(t._bootstrapComponents.length>0)t._bootstrapComponents.forEach(r=>i.bootstrap(r));else{if(!t.instance.ngDoBootstrap)throw new Ln(-403,!1);t.instance.ngDoBootstrap(i)}this._modules.push(t)}onDestroy(t){this._destroyListeners.push(t)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new Ln(404,!1);this._modules.slice().forEach(i=>i.destroy()),this._destroyListeners.forEach(i=>i());const t=this._injector.get(mR,null);t&&(t.forEach(i=>i()),t.clear()),this._destroyed=!0}get destroyed(){return this._destroyed}static#e=this.\u0275fac=function(i){return new(i||n)(xi(ml))};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac,providedIn:"platform"})}return n})(),Cy=null;const xU=new Bi("");function wU(n,e,t=[]){const i=`Platform: ${e}`,r=new Bi(i);return(s=[])=>{let o=AR();if(!o||o.injector.get(xU,!1)){const l=[...t,...s,{provide:r,useValue:!0}];n?n(l):function lee(n){if(Cy&&!Cy.get(xU,!1))throw new Ln(400,!1);(function pU(){!function b(n){he=n}(()=>{throw new Ln(600,!1)})})(),Cy=n;const e=n.get(bU);(function MU(n){n.get(Hx,null)?.forEach(t=>t())})(n)}(function CU(n=[],e){return ml.create({name:e,providers:[{provide:nh,useValue:"platform"},{provide:mR,useValue:new Set([()=>Cy=null])},...n]})}(l,i))}return function cee(n){const e=AR();if(!e)throw new Ln(401,!1);return e}()}}function AR(){return Cy?.get(bU)??null}let Sc=(()=>{class n{static#e=this.__NG_ELEMENT_ID__=uee}return n})();function uee(n){return function hee(n,e,t){if(af(n)&&!t){const i=Rd(n.index,e);return new Aw(i,i)}return 47&n.type?new Aw(e[Yo],e):null}(Ha(),Zi(),!(16&~n))}class IU{constructor(){}supports(e){return S3(e)}create(e){return new gee(e)}}const Aee=(n,e)=>e;class gee{constructor(e){this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=e||Aee}forEachItem(e){let t;for(t=this._itHead;null!==t;t=t._next)e(t)}forEachOperation(e){let t=this._itHead,i=this._removalsHead,r=0,s=null;for(;t||i;){const o=!i||t&&t.currentIndex{o=this._trackByFn(r,l),null!==t&&Object.is(t.trackById,o)?(i&&(t=this._verifyReinsertion(t,l,o,r)),Object.is(t.item,l)||this._addIdentityChange(t,l)):(t=this._mismatch(t,l,o,r),i=!0),t=t._next,r++}),this.length=r;return this._truncate(t),this.collection=e,this.isDirty}get isDirty(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}_reset(){if(this.isDirty){let e;for(e=this._previousItHead=this._itHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._additionsHead;null!==e;e=e._nextAdded)e.previousIndex=e.currentIndex;for(this._additionsHead=this._additionsTail=null,e=this._movesHead;null!==e;e=e._nextMoved)e.previousIndex=e.currentIndex;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(e,t,i,r){let s;return null===e?s=this._itTail:(s=e._prev,this._remove(e)),null!==(e=null===this._unlinkedRecords?null:this._unlinkedRecords.get(i,null))?(Object.is(e.item,t)||this._addIdentityChange(e,t),this._reinsertAfter(e,s,r)):null!==(e=null===this._linkedRecords?null:this._linkedRecords.get(i,r))?(Object.is(e.item,t)||this._addIdentityChange(e,t),this._moveAfter(e,s,r)):e=this._addAfter(new _ee(t,i),s,r),e}_verifyReinsertion(e,t,i,r){let s=null===this._unlinkedRecords?null:this._unlinkedRecords.get(i,null);return null!==s?e=this._reinsertAfter(s,e._prev,r):e.currentIndex!=r&&(e.currentIndex=r,this._addToMoves(e,r)),e}_truncate(e){for(;null!==e;){const t=e._next;this._addToRemovals(this._unlink(e)),e=t}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}_reinsertAfter(e,t,i){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(e);const r=e._prevRemoved,s=e._nextRemoved;return null===r?this._removalsHead=s:r._nextRemoved=s,null===s?this._removalsTail=r:s._prevRemoved=r,this._insertAfter(e,t,i),this._addToMoves(e,i),e}_moveAfter(e,t,i){return this._unlink(e),this._insertAfter(e,t,i),this._addToMoves(e,i),e}_addAfter(e,t,i){return this._insertAfter(e,t,i),this._additionsTail=null===this._additionsTail?this._additionsHead=e:this._additionsTail._nextAdded=e,e}_insertAfter(e,t,i){const r=null===t?this._itHead:t._next;return e._next=r,e._prev=t,null===r?this._itTail=e:r._prev=e,null===t?this._itHead=e:t._next=e,null===this._linkedRecords&&(this._linkedRecords=new BU),this._linkedRecords.put(e),e.currentIndex=i,e}_remove(e){return this._addToRemovals(this._unlink(e))}_unlink(e){null!==this._linkedRecords&&this._linkedRecords.remove(e);const t=e._prev,i=e._next;return null===t?this._itHead=i:t._next=i,null===i?this._itTail=t:i._prev=t,e}_addToMoves(e,t){return e.previousIndex===t||(this._movesTail=null===this._movesTail?this._movesHead=e:this._movesTail._nextMoved=e),e}_addToRemovals(e){return null===this._unlinkedRecords&&(this._unlinkedRecords=new BU),this._unlinkedRecords.put(e),e.currentIndex=null,e._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=e,e._prevRemoved=null):(e._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=e),e}_addIdentityChange(e,t){return e.item=t,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=e:this._identityChangesTail._nextIdentityChange=e,e}}class _ee{constructor(e,t){this.item=e,this.trackById=t,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null}}class yee{constructor(){this._head=null,this._tail=null}add(e){null===this._head?(this._head=this._tail=e,e._nextDup=null,e._prevDup=null):(this._tail._nextDup=e,e._prevDup=this._tail,e._nextDup=null,this._tail=e)}get(e,t){let i;for(i=this._head;null!==i;i=i._nextDup)if((null===t||t<=i.currentIndex)&&Object.is(i.trackById,e))return i;return null}remove(e){const t=e._prevDup,i=e._nextDup;return null===t?this._head=i:t._nextDup=i,null===i?this._tail=t:i._prevDup=t,null===this._head}}class BU{constructor(){this.map=new Map}put(e){const t=e.trackById;let i=this.map.get(t);i||(i=new yee,this.map.set(t,i)),i.add(e)}get(e,t){const r=this.map.get(e);return r?r.get(e,t):null}remove(e){const t=e.trackById;return this.map.get(t).remove(e)&&this.map.delete(t),e}get isEmpty(){return 0===this.map.size}clear(){this.map.clear()}}function PU(n,e,t){const i=n.previousIndex;if(null===i)return i;let r=0;return t&&i{if(t&&t.key===r)this._maybeAddToChanges(t,i),this._appendAfter=t,t=t._next;else{const s=this._getOrCreateRecordForKey(r,i);t=this._insertBeforeOrAppend(t,s)}}),t){t._prev&&(t._prev._next=null),this._removalsHead=t;for(let i=t;null!==i;i=i._nextRemoved)i===this._mapHead&&(this._mapHead=null),this._records.delete(i.key),i._nextRemoved=i._next,i.previousValue=i.currentValue,i.currentValue=null,i._prev=null,i._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(e,t){if(e){const i=e._prev;return t._next=e,t._prev=i,e._prev=t,i&&(i._next=t),e===this._mapHead&&(this._mapHead=t),this._appendAfter=e,e}return this._appendAfter?(this._appendAfter._next=t,t._prev=this._appendAfter):this._mapHead=t,this._appendAfter=t,null}_getOrCreateRecordForKey(e,t){if(this._records.has(e)){const r=this._records.get(e);this._maybeAddToChanges(r,t);const s=r._prev,o=r._next;return s&&(s._next=o),o&&(o._prev=s),r._next=null,r._prev=null,r}const i=new bee(e);return this._records.set(e,i),i.currentValue=t,this._addToAdditions(i),i}_reset(){if(this.isDirty){let e;for(this._previousMapHead=this._mapHead,e=this._previousMapHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._changesHead;null!==e;e=e._nextChanged)e.previousValue=e.currentValue;for(e=this._additionsHead;null!=e;e=e._nextAdded)e.previousValue=e.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(e,t){Object.is(t,e.currentValue)||(e.previousValue=e.currentValue,e.currentValue=t,this._addToChanges(e))}_addToAdditions(e){null===this._additionsHead?this._additionsHead=this._additionsTail=e:(this._additionsTail._nextAdded=e,this._additionsTail=e)}_addToChanges(e){null===this._changesHead?this._changesHead=this._changesTail=e:(this._changesTail._nextChanged=e,this._changesTail=e)}_forEach(e,t){e instanceof Map?e.forEach(t):Object.keys(e).forEach(i=>t(e[i],i))}}class bee{constructor(e){this.key=e,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null}}function kU(){return new jw([new IU])}let jw=(()=>{class n{static#e=this.\u0275prov=Gi({token:n,providedIn:"root",factory:kU});constructor(t){this.factories=t}static create(t,i){if(null!=i){const r=i.factories.slice();t=t.concat(r)}return new n(t)}static extend(t){return{provide:n,useFactory:i=>n.create(t,i||kU()),deps:[[n,new Xl,new cl]]}}find(t){const i=this.factories.find(r=>r.supports(t));if(null!=i)return i;throw new Ln(901,!1)}}return n})();function FU(){return new K3([new RU])}let K3=(()=>{class n{static#e=this.\u0275prov=Gi({token:n,providedIn:"root",factory:FU});constructor(t){this.factories=t}static create(t,i){if(i){const r=i.factories.slice();t=t.concat(r)}return new n(t)}static extend(t){return{provide:n,useFactory:i=>n.create(t,i||FU()),deps:[[n,new Xl,new cl]]}}find(t){const i=this.factories.find(r=>r.supports(t));if(i)return i;throw new Ln(901,!1)}}return n})();const Cee=wU(null,"core",[]);let Mee=(()=>{class n{constructor(t){}static#e=this.\u0275fac=function(i){return new(i||n)(xi(k_))};static#t=this.\u0275mod=vo({type:n});static#n=this.\u0275inj=ra({})}return n})();function _o(n){return"boolean"==typeof n?n:null!=n&&"false"!==n}function ru(n,e=NaN){return isNaN(parseFloat(n))||isNaN(Number(n))?e:Number(n)}let r7=null;function My(){return r7}class lte{}const ba=new Bi("");let wR=(()=>{class n{historyGo(t){throw new Error("")}static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275prov=Gi({token:n,factory:()=>pi(dte),providedIn:"platform"})}return n})();const cte=new Bi("");let dte=(()=>{class n extends wR{constructor(){super(),this._doc=pi(ba),this._location=window.location,this._history=window.history}getBaseHrefFromDOM(){return My().getBaseHref(this._doc)}onPopState(t){const i=My().getGlobalEventTarget(this._doc,"window");return i.addEventListener("popstate",t,!1),()=>i.removeEventListener("popstate",t)}onHashChange(t){const i=My().getGlobalEventTarget(this._doc,"window");return i.addEventListener("hashchange",t,!1),()=>i.removeEventListener("hashchange",t)}get href(){return this._location.href}get protocol(){return this._location.protocol}get hostname(){return this._location.hostname}get port(){return this._location.port}get pathname(){return this._location.pathname}get search(){return this._location.search}get hash(){return this._location.hash}set pathname(t){this._location.pathname=t}pushState(t,i,r){this._history.pushState(t,i,r)}replaceState(t,i,r){this._history.replaceState(t,i,r)}forward(){this._history.forward()}back(){this._history.back()}historyGo(t=0){this._history.go(t)}getState(){return this._history.state}static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275prov=Gi({token:n,factory:()=>new n,providedIn:"platform"})}return n})();function CR(n,e){if(0==n.length)return e;if(0==e.length)return n;let t=0;return n.endsWith("/")&&t++,e.startsWith("/")&&t++,2==t?n+e.substring(1):1==t?n+e:n+"/"+e}function s7(n){const e=n.match(/#|\?|$/),t=e&&e.index||n.length;return n.slice(0,t-("/"===n[t-1]?1:0))+n.slice(t)}function F_(n){return n&&"?"!==n[0]?"?"+n:n}let Ab=(()=>{class n{historyGo(t){throw new Error("")}static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275prov=Gi({token:n,factory:()=>pi(a7),providedIn:"root"})}return n})();const o7=new Bi("");let a7=(()=>{class n extends Ab{constructor(t,i){super(),this._platformLocation=t,this._removeListenerFns=[],this._baseHref=i??this._platformLocation.getBaseHrefFromDOM()??pi(ba).location?.origin??""}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(t){this._removeListenerFns.push(this._platformLocation.onPopState(t),this._platformLocation.onHashChange(t))}getBaseHref(){return this._baseHref}prepareExternalUrl(t){return CR(this._baseHref,t)}path(t=!1){const i=this._platformLocation.pathname+F_(this._platformLocation.search),r=this._platformLocation.hash;return r&&t?`${i}${r}`:i}pushState(t,i,r,s){const o=this.prepareExternalUrl(r+F_(s));this._platformLocation.pushState(t,i,o)}replaceState(t,i,r,s){const o=this.prepareExternalUrl(r+F_(s));this._platformLocation.replaceState(t,i,o)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(t=0){this._platformLocation.historyGo?.(t)}static#e=this.\u0275fac=function(i){return new(i||n)(xi(wR),xi(o7,8))};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),ute=(()=>{class n extends Ab{constructor(t,i){super(),this._platformLocation=t,this._baseHref="",this._removeListenerFns=[],null!=i&&(this._baseHref=i)}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(t){this._removeListenerFns.push(this._platformLocation.onPopState(t),this._platformLocation.onHashChange(t))}getBaseHref(){return this._baseHref}path(t=!1){const i=this._platformLocation.hash??"#";return i.length>0?i.substring(1):i}prepareExternalUrl(t){const i=CR(this._baseHref,t);return i.length>0?"#"+i:i}pushState(t,i,r,s){let o=this.prepareExternalUrl(r+F_(s));0==o.length&&(o=this._platformLocation.pathname),this._platformLocation.pushState(t,i,o)}replaceState(t,i,r,s){let o=this.prepareExternalUrl(r+F_(s));0==o.length&&(o=this._platformLocation.pathname),this._platformLocation.replaceState(t,i,o)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(t=0){this._platformLocation.historyGo?.(t)}static#e=this.\u0275fac=function(i){return new(i||n)(xi(wR),xi(o7,8))};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac})}return n})(),gb=(()=>{class n{constructor(t){this._subject=new Ls,this._urlChangeListeners=[],this._urlChangeSubscription=null,this._locationStrategy=t;const i=this._locationStrategy.getBaseHref();this._basePath=function pte(n){if(new RegExp("^(https?:)?//").test(n)){const[,t]=n.split(/\/\/[^\/]+/);return t}return n}(s7(l7(i))),this._locationStrategy.onPopState(r=>{this._subject.emit({url:this.path(!0),pop:!0,state:r.state,type:r.type})})}ngOnDestroy(){this._urlChangeSubscription?.unsubscribe(),this._urlChangeListeners=[]}path(t=!1){return this.normalize(this._locationStrategy.path(t))}getState(){return this._locationStrategy.getState()}isCurrentPathEqualTo(t,i=""){return this.path()==this.normalize(t+F_(i))}normalize(t){return n.stripTrailingSlash(function fte(n,e){if(!n||!e.startsWith(n))return e;const t=e.substring(n.length);return""===t||["/",";","?","#"].includes(t[0])?t:e}(this._basePath,l7(t)))}prepareExternalUrl(t){return t&&"/"!==t[0]&&(t="/"+t),this._locationStrategy.prepareExternalUrl(t)}go(t,i="",r=null){this._locationStrategy.pushState(r,"",t,i),this._notifyUrlChangeListeners(this.prepareExternalUrl(t+F_(i)),r)}replaceState(t,i="",r=null){this._locationStrategy.replaceState(r,"",t,i),this._notifyUrlChangeListeners(this.prepareExternalUrl(t+F_(i)),r)}forward(){this._locationStrategy.forward()}back(){this._locationStrategy.back()}historyGo(t=0){this._locationStrategy.historyGo?.(t)}onUrlChange(t){return this._urlChangeListeners.push(t),this._urlChangeSubscription??=this.subscribe(i=>{this._notifyUrlChangeListeners(i.url,i.state)}),()=>{const i=this._urlChangeListeners.indexOf(t);this._urlChangeListeners.splice(i,1),0===this._urlChangeListeners.length&&(this._urlChangeSubscription?.unsubscribe(),this._urlChangeSubscription=null)}}_notifyUrlChangeListeners(t="",i){this._urlChangeListeners.forEach(r=>r(t,i))}subscribe(t,i,r){return this._subject.subscribe({next:t,error:i,complete:r})}static#e=this.normalizeQueryParams=F_;static#t=this.joinWithSlash=CR;static#n=this.stripTrailingSlash=s7;static#i=this.\u0275fac=function(i){return new(i||n)(xi(Ab))};static#r=this.\u0275prov=Gi({token:n,factory:()=>function hte(){return new gb(xi(Ab))}(),providedIn:"root"})}return n})();function l7(n){return n.replace(/\/index.html$/,"")}var iD=function(n){return n[n.Decimal=0]="Decimal",n[n.Percent=1]="Percent",n[n.Currency=2]="Currency",n[n.Scientific=3]="Scientific",n}(iD||{});const su={Decimal:0,Group:1,List:2,PercentSign:3,PlusSign:4,MinusSign:5,Exponential:6,SuperscriptingExponent:7,PerMille:8,Infinity:9,NaN:10,TimeSeparator:11,CurrencyDecimal:12,CurrencyGroup:13};function nA(n,e){const t=Sf(n),i=t[Mc.NumberSymbols][e];if(typeof i>"u"){if(e===su.CurrencyDecimal)return t[Mc.NumberSymbols][su.Decimal];if(e===su.CurrencyGroup)return t[Mc.NumberSymbols][su.Group]}return i}const Hte=/^(\d+)?\.((\d+)(-(\d+))?)?$/;function PR(n){const e=parseInt(n);if(isNaN(e))throw new Error("Invalid integer literal when parsing "+n);return e}function g7(n,e){e=encodeURIComponent(e);for(const t of n.split(";")){const i=t.indexOf("="),[r,s]=-1==i?[t,""]:[t.slice(0,i),t.slice(i+1)];if(r.trim()===e)return decodeURIComponent(s)}return null}const kR=/\s+/,_7=[];let om=(()=>{class n{constructor(t,i){this._ngEl=t,this._renderer=i,this.initialClasses=_7,this.stateMap=new Map}set klass(t){this.initialClasses=null!=t?t.trim().split(kR):_7}set ngClass(t){this.rawClass="string"==typeof t?t.trim().split(kR):t}ngDoCheck(){for(const i of this.initialClasses)this._updateState(i,!0);const t=this.rawClass;if(Array.isArray(t)||t instanceof Set)for(const i of t)this._updateState(i,!0);else if(null!=t)for(const i of Object.keys(t))this._updateState(i,!!t[i]);this._applyStateDiff()}_updateState(t,i){const r=this.stateMap.get(t);void 0!==r?(r.enabled!==i&&(r.changed=!0,r.enabled=i),r.touched=!0):this.stateMap.set(t,{enabled:i,changed:!0,touched:!0})}_applyStateDiff(){for(const t of this.stateMap){const i=t[0],r=t[1];r.changed?(this._toggleClass(i,r.enabled),r.changed=!1):r.touched||(r.enabled&&this._toggleClass(i,!1),this.stateMap.delete(i)),r.touched=!1}}_toggleClass(t,i){(t=t.trim()).length>0&&t.split(kR).forEach(r=>{i?this._renderer.addClass(this._ngEl.nativeElement,r):this._renderer.removeClass(this._ngEl.nativeElement,r)})}static#e=this.\u0275fac=function(i){return new(i||n)(Lt(oo),Lt(ZA))};static#t=this.\u0275dir=Ft({type:n,selectors:[["","ngClass",""]],inputs:{klass:[mi.None,"class","klass"],ngClass:"ngClass"},standalone:!0})}return n})();class Jte{constructor(e,t,i,r){this.$implicit=e,this.ngForOf=t,this.index=i,this.count=r}get first(){return 0===this.index}get last(){return this.index===this.count-1}get even(){return this.index%2==0}get odd(){return!this.even}}let am=(()=>{class n{set ngForOf(t){this._ngForOf=t,this._ngForOfDirty=!0}set ngForTrackBy(t){this._trackByFn=t}get ngForTrackBy(){return this._trackByFn}constructor(t,i,r){this._viewContainer=t,this._template=i,this._differs=r,this._ngForOf=null,this._ngForOfDirty=!0,this._differ=null}set ngForTemplate(t){t&&(this._template=t)}ngDoCheck(){if(this._ngForOfDirty){this._ngForOfDirty=!1;const t=this._ngForOf;!this._differ&&t&&(this._differ=this._differs.find(t).create(this.ngForTrackBy))}if(this._differ){const t=this._differ.diff(this._ngForOf);t&&this._applyChanges(t)}}_applyChanges(t){const i=this._viewContainer;t.forEachOperation((r,s,o)=>{if(null==r.previousIndex)i.createEmbeddedView(this._template,new Jte(r.item,this._ngForOf,-1,-1),null===o?void 0:o);else if(null==o)i.remove(null===s?void 0:s);else if(null!==s){const l=i.get(s);i.move(l,o),v7(l,r)}});for(let r=0,s=i.length;r{v7(i.get(r.currentIndex),r)})}static ngTemplateContextGuard(t,i){return!0}static#e=this.\u0275fac=function(i){return new(i||n)(Lt(fs),Lt(Ud),Lt(jw))};static#t=this.\u0275dir=Ft({type:n,selectors:[["","ngFor","","ngForOf",""]],inputs:{ngForOf:"ngForOf",ngForTrackBy:"ngForTrackBy",ngForTemplate:"ngForTemplate"},standalone:!0})}return n})();function v7(n,e){n.context.$implicit=e.item}let Lh=(()=>{class n{constructor(t,i){this._viewContainer=t,this._context=new ene,this._thenTemplateRef=null,this._elseTemplateRef=null,this._thenViewRef=null,this._elseViewRef=null,this._thenTemplateRef=i}set ngIf(t){this._context.$implicit=this._context.ngIf=t,this._updateView()}set ngIfThen(t){b7("ngIfThen",t),this._thenTemplateRef=t,this._thenViewRef=null,this._updateView()}set ngIfElse(t){b7("ngIfElse",t),this._elseTemplateRef=t,this._elseViewRef=null,this._updateView()}_updateView(){this._context.$implicit?this._thenViewRef||(this._viewContainer.clear(),this._elseViewRef=null,this._thenTemplateRef&&(this._thenViewRef=this._viewContainer.createEmbeddedView(this._thenTemplateRef,this._context))):this._elseViewRef||(this._viewContainer.clear(),this._thenViewRef=null,this._elseTemplateRef&&(this._elseViewRef=this._viewContainer.createEmbeddedView(this._elseTemplateRef,this._context)))}static ngTemplateContextGuard(t,i){return!0}static#e=this.\u0275fac=function(i){return new(i||n)(Lt(fs),Lt(Ud))};static#t=this.\u0275dir=Ft({type:n,selectors:[["","ngIf",""]],inputs:{ngIf:"ngIf",ngIfThen:"ngIfThen",ngIfElse:"ngIfElse"},standalone:!0})}return n})();class ene{constructor(){this.$implicit=null,this.ngIf=null}}function b7(n,e){if(e&&!e.createEmbeddedView)throw new Error(`${n} must be a TemplateRef, but received '${ht(e)}'.`)}class FR{constructor(e,t){this._viewContainerRef=e,this._templateRef=t,this._created=!1}create(){this._created=!0,this._viewContainerRef.createEmbeddedView(this._templateRef)}destroy(){this._created=!1,this._viewContainerRef.clear()}enforceState(e){e&&!this._created?this.create():!e&&this._created&&this.destroy()}}let pD=(()=>{class n{constructor(){this._defaultViews=[],this._defaultUsed=!1,this._caseCount=0,this._lastCaseCheckIndex=0,this._lastCasesMatched=!1}set ngSwitch(t){this._ngSwitch=t,0===this._caseCount&&this._updateDefaultCases(!0)}_addCase(){return this._caseCount++}_addDefault(t){this._defaultViews.push(t)}_matchCase(t){const i=t===this._ngSwitch;return this._lastCasesMatched||=i,this._lastCaseCheckIndex++,this._lastCaseCheckIndex===this._caseCount&&(this._updateDefaultCases(!this._lastCasesMatched),this._lastCaseCheckIndex=0,this._lastCasesMatched=!1),i}_updateDefaultCases(t){if(this._defaultViews.length>0&&t!==this._defaultUsed){this._defaultUsed=t;for(const i of this._defaultViews)i.enforceState(t)}}static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275dir=Ft({type:n,selectors:[["","ngSwitch",""]],inputs:{ngSwitch:"ngSwitch"},standalone:!0})}return n})(),x7=(()=>{class n{constructor(t,i,r){this.ngSwitch=r,r._addCase(),this._view=new FR(t,i)}ngDoCheck(){this._view.enforceState(this.ngSwitch._matchCase(this.ngSwitchCase))}static#e=this.\u0275fac=function(i){return new(i||n)(Lt(fs),Lt(Ud),Lt(pD,9))};static#t=this.\u0275dir=Ft({type:n,selectors:[["","ngSwitchCase",""]],inputs:{ngSwitchCase:"ngSwitchCase"},standalone:!0})}return n})(),C7=(()=>{class n{constructor(t,i,r){this._ngEl=t,this._differs=i,this._renderer=r,this._ngStyle=null,this._differ=null}set ngStyle(t){this._ngStyle=t,!this._differ&&t&&(this._differ=this._differs.find(t).create())}ngDoCheck(){if(this._differ){const t=this._differ.diff(this._ngStyle);t&&this._applyChanges(t)}}_setStyle(t,i){const[r,s]=t.split("."),o=-1===r.indexOf("-")?void 0:h0.DashCase;null!=i?this._renderer.setStyle(this._ngEl.nativeElement,r,s?`${i}${s}`:i,o):this._renderer.removeStyle(this._ngEl.nativeElement,r,o)}_applyChanges(t){t.forEachRemovedItem(i=>this._setStyle(i.key,null)),t.forEachAddedItem(i=>this._setStyle(i.key,i.currentValue)),t.forEachChangedItem(i=>this._setStyle(i.key,i.currentValue))}static#e=this.\u0275fac=function(i){return new(i||n)(Lt(oo),Lt(K3),Lt(ZA))};static#t=this.\u0275dir=Ft({type:n,selectors:[["","ngStyle",""]],inputs:{ngStyle:"ngStyle"},standalone:!0})}return n})(),M7=(()=>{class n{constructor(t){this._viewContainerRef=t,this._viewRef=null,this.ngTemplateOutletContext=null,this.ngTemplateOutlet=null,this.ngTemplateOutletInjector=null}ngOnChanges(t){if(this._shouldRecreateView(t)){const i=this._viewContainerRef;if(this._viewRef&&i.remove(i.indexOf(this._viewRef)),!this.ngTemplateOutlet)return void(this._viewRef=null);const r=this._createContextForwardProxy();this._viewRef=i.createEmbeddedView(this.ngTemplateOutlet,r,{injector:this.ngTemplateOutletInjector??void 0})}}_shouldRecreateView(t){return!!t.ngTemplateOutlet||!!t.ngTemplateOutletInjector}_createContextForwardProxy(){return new Proxy({},{set:(t,i,r)=>!!this.ngTemplateOutletContext&&Reflect.set(this.ngTemplateOutletContext,i,r),get:(t,i,r)=>{if(this.ngTemplateOutletContext)return Reflect.get(this.ngTemplateOutletContext,i,r)}})}static#e=this.\u0275fac=function(i){return new(i||n)(Lt(fs))};static#t=this.\u0275dir=Ft({type:n,selectors:[["","ngTemplateOutlet",""]],inputs:{ngTemplateOutletContext:"ngTemplateOutletContext",ngTemplateOutlet:"ngTemplateOutlet",ngTemplateOutletInjector:"ngTemplateOutletInjector"},standalone:!0,features:[kl]})}return n})();let E7=(()=>{class n{constructor(t){this._locale=t}transform(t,i,r){if(!function OR(n){return!(null==n||""===n||n!=n)}(t))return null;r||=this._locale;try{return function jte(n,e,t){return function IR(n,e,t,i,r,s,o=!1){let l="",d=!1;if(isFinite(n)){let u=function Xte(n){let i,r,s,o,l,e=Math.abs(n)+"",t=0;for((r=e.indexOf("."))>-1&&(e=e.replace(".","")),(s=e.search(/e/i))>0?(r<0&&(r=s),r+=+e.slice(s+1),e=e.substring(0,s)):r<0&&(r=e.length),s=0;"0"===e.charAt(s);s++);if(s===(l=e.length))i=[0],r=1;else{for(l--;"0"===e.charAt(l);)l--;for(r-=s,i=[],o=0;s<=l;s++,o++)i[o]=Number(e.charAt(s))}return r>22&&(i=i.splice(0,21),t=r-1,r=1),{digits:i,exponent:t,integerLen:r}}(n);o&&(u=function $te(n){if(0===n.digits[0])return n;const e=n.digits.length-n.integerLen;return n.exponent?n.exponent+=2:(0===e?n.digits.push(0,0):1===e&&n.digits.push(0),n.integerLen+=2),n}(u));let f=e.minInt,A=e.minFrac,S=e.maxFrac;if(s){const Ee=s.match(Hte);if(null===Ee)throw new Error(`${s} is not a valid digit info`);const Ce=Ee[1],We=Ee[3],Mt=Ee[5];null!=Ce&&(f=PR(Ce)),null!=We&&(A=PR(We)),null!=Mt?S=PR(Mt):null!=We&&A>S&&(S=A)}!function Yte(n,e,t){if(e>t)throw new Error(`The minimum number of digits after fraction (${e}) is higher than the maximum (${t}).`);let i=n.digits,r=i.length-n.integerLen;const s=Math.min(Math.max(e,r),t);let o=s+n.integerLen,l=i[o];if(o>0){i.splice(Math.max(n.integerLen,o));for(let A=o;A=5)if(o-1<0){for(let A=0;A>o;A--)i.unshift(0),n.integerLen++;i.unshift(1),n.integerLen++}else i[o-1]++;for(;r=u?G.pop():d=!1),S>=10?1:0},0);f&&(i.unshift(f),n.integerLen++)}(u,A,S);let R=u.digits,G=u.integerLen;const re=u.exponent;let se=[];for(d=R.every(Ee=>!Ee);G0?se=R.splice(G,R.length):(se=R,R=[0]);const le=[];for(R.length>=e.lgSize&&le.unshift(R.splice(-e.lgSize,R.length).join(""));R.length>e.gSize;)le.unshift(R.splice(-e.gSize,R.length).join(""));R.length&&le.unshift(R.join("")),l=le.join(nA(t,i)),se.length&&(l+=nA(t,r)+se.join("")),re&&(l+=nA(t,su.Exponential)+"+"+re)}else l=nA(t,su.Infinity);return l=n<0&&!d?e.negPre+l+e.negSuf:e.posPre+l+e.posSuf,l}(n,function BR(n,e="-"){const t={minInt:1,minFrac:0,maxFrac:0,posPre:"",posSuf:"",negPre:"",negSuf:"",gSize:0,lgSize:0},i=n.split(";"),r=i[0],s=i[1],o=-1!==r.indexOf(".")?r.split("."):[r.substring(0,r.lastIndexOf("0")+1),r.substring(r.lastIndexOf("0")+1)],l=o[0],d=o[1]||"";t.posPre=l.substring(0,l.indexOf("#"));for(let f=0;f{class n{static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275mod=vo({type:n});static#n=this.\u0275inj=ra({})}return n})();const T7="browser";function D7(n){return n===T7}function I7(n){return"server"===n}let Tne=(()=>{class n{static#e=this.\u0275prov=Gi({token:n,providedIn:"root",factory:()=>D7(pi(Kp))?new Dne(pi(ba),window):new Bne})}return n})();class Dne{constructor(e,t){this.document=e,this.window=t,this.offset=()=>[0,0]}setOffset(e){this.offset=Array.isArray(e)?()=>e:e}getScrollPosition(){return[this.window.scrollX,this.window.scrollY]}scrollToPosition(e){this.window.scrollTo(e[0],e[1])}scrollToAnchor(e){const t=function Ine(n,e){const t=n.getElementById(e)||n.getElementsByName(e)[0];if(t)return t;if("function"==typeof n.createTreeWalker&&n.body&&"function"==typeof n.body.attachShadow){const i=n.createTreeWalker(n.body,NodeFilter.SHOW_ELEMENT);let r=i.currentNode;for(;r;){const s=r.shadowRoot;if(s){const o=s.getElementById(e)||s.querySelector(`[name="${e}"]`);if(o)return o}r=i.nextNode()}}return null}(this.document,e);t&&(this.scrollToElement(t),t.focus())}setHistoryScrollRestoration(e){this.window.history.scrollRestoration=e}scrollToElement(e){const t=e.getBoundingClientRect(),i=t.left+this.window.pageXOffset,r=t.top+this.window.pageYOffset,s=this.offset();this.window.scrollTo(i-s[0],r-s[1])}}class Bne{setOffset(e){}getScrollPosition(){return[0,0]}scrollToPosition(e){}scrollToAnchor(e){}setHistoryScrollRestoration(e){}}class B7{}class sie extends lte{constructor(){super(...arguments),this.supportsDOMEvents=!0}}class UR extends sie{static makeCurrent(){!function ate(n){r7??=n}(new UR)}onAndCancel(e,t,i){return e.addEventListener(t,i),()=>{e.removeEventListener(t,i)}}dispatchEvent(e,t){e.dispatchEvent(t)}remove(e){e.parentNode&&e.parentNode.removeChild(e)}createElement(e,t){return(t=t||this.getDefaultDocument()).createElement(e)}createHtmlDocument(){return document.implementation.createHTMLDocument("fakeTitle")}getDefaultDocument(){return document}isElementNode(e){return e.nodeType===Node.ELEMENT_NODE}isShadowRoot(e){return e instanceof DocumentFragment}getGlobalEventTarget(e,t){return"window"===t?window:"document"===t?e:"body"===t?e.body:null}getBaseHref(e){const t=function oie(){return mS=mS||document.querySelector("base"),mS?mS.getAttribute("href"):null}();return null==t?null:function aie(n){return new URL(n,document.baseURI).pathname}(t)}resetBaseElement(){mS=null}getUserAgent(){return window.navigator.userAgent}getCookie(e){return g7(document.cookie,e)}}let mS=null,cie=(()=>{class n{build(){return new XMLHttpRequest}static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac})}return n})();const zR=new Bi("");let z7=(()=>{class n{constructor(t,i){this._zone=i,this._eventNameToPlugin=new Map,t.forEach(r=>{r.manager=this}),this._plugins=t.slice().reverse()}addEventListener(t,i,r){return this._findPluginFor(i).addEventListener(t,i,r)}getZone(){return this._zone}_findPluginFor(t){let i=this._eventNameToPlugin.get(t);if(i)return i;if(i=this._plugins.find(s=>s.supports(t)),!i)throw new Ln(5101,!1);return this._eventNameToPlugin.set(t,i),i}static#e=this.\u0275fac=function(i){return new(i||n)(xi(zR),xi(io))};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac})}return n})();class H7{constructor(e){this._doc=e}}const HR="ng-app-id";let V7=(()=>{class n{constructor(t,i,r,s={}){this.doc=t,this.appId=i,this.nonce=r,this.platformId=s,this.styleRef=new Map,this.hostNodes=new Set,this.styleNodesInDOM=this.collectServerRenderedStyles(),this.platformIsServer=I7(s),this.resetHostNodes()}addStyles(t){for(const i of t)1===this.changeUsageCount(i,1)&&this.onStyleAdded(i)}removeStyles(t){for(const i of t)this.changeUsageCount(i,-1)<=0&&this.onStyleRemoved(i)}ngOnDestroy(){const t=this.styleNodesInDOM;t&&(t.forEach(i=>i.remove()),t.clear());for(const i of this.getAllStyles())this.onStyleRemoved(i);this.resetHostNodes()}addHost(t){this.hostNodes.add(t);for(const i of this.getAllStyles())this.addStyleToHost(t,i)}removeHost(t){this.hostNodes.delete(t)}getAllStyles(){return this.styleRef.keys()}onStyleAdded(t){for(const i of this.hostNodes)this.addStyleToHost(i,t)}onStyleRemoved(t){const i=this.styleRef;i.get(t)?.elements?.forEach(r=>r.remove()),i.delete(t)}collectServerRenderedStyles(){const t=this.doc.head?.querySelectorAll(`style[${HR}="${this.appId}"]`);if(t?.length){const i=new Map;return t.forEach(r=>{null!=r.textContent&&i.set(r.textContent,r)}),i}return null}changeUsageCount(t,i){const r=this.styleRef;if(r.has(t)){const s=r.get(t);return s.usage+=i,s.usage}return r.set(t,{usage:i,elements:[]}),i}getStyleElement(t,i){const r=this.styleNodesInDOM,s=r?.get(i);if(s?.parentNode===t)return r.delete(i),s.removeAttribute(HR),s;{const o=this.doc.createElement("style");return this.nonce&&o.setAttribute("nonce",this.nonce),o.textContent=i,this.platformIsServer&&o.setAttribute(HR,this.appId),t.appendChild(o),o}}addStyleToHost(t,i){const r=this.getStyleElement(t,i),s=this.styleRef,o=s.get(i)?.elements;o?o.push(r):s.set(i,{elements:[r],usage:1})}resetHostNodes(){const t=this.hostNodes;t.clear(),t.add(this.doc.head)}static#e=this.\u0275fac=function(i){return new(i||n)(xi(ba),xi(v_),xi(wv,8),xi(Kp))};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac})}return n})();const VR={svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/",math:"http://www.w3.org/1998/MathML/"},GR=/%COMP%/g,fie=new Bi("",{providedIn:"root",factory:()=>!0});function q7(n,e){return e.map(t=>t.replace(GR,n))}let qR=(()=>{class n{constructor(t,i,r,s,o,l,d,u=null){this.eventManager=t,this.sharedStylesHost=i,this.appId=r,this.removeStylesOnCompDestroy=s,this.doc=o,this.platformId=l,this.ngZone=d,this.nonce=u,this.rendererByCompId=new Map,this.platformIsServer=I7(l),this.defaultRenderer=new QR(t,o,d,this.platformIsServer)}createRenderer(t,i){if(!t||!i)return this.defaultRenderer;this.platformIsServer&&i.encapsulation===Ad.ShadowDom&&(i={...i,encapsulation:Ad.Emulated});const r=this.getOrCreateRenderer(t,i);return r instanceof W7?r.applyToHost(t):r instanceof WR&&r.applyStyles(),r}getOrCreateRenderer(t,i){const r=this.rendererByCompId;let s=r.get(i.id);if(!s){const o=this.doc,l=this.ngZone,d=this.eventManager,u=this.sharedStylesHost,f=this.removeStylesOnCompDestroy,A=this.platformIsServer;switch(i.encapsulation){case Ad.Emulated:s=new W7(d,u,i,this.appId,f,o,l,A);break;case Ad.ShadowDom:return new gie(d,u,t,i,o,l,this.nonce,A);default:s=new WR(d,u,i,f,o,l,A)}r.set(i.id,s)}return s}ngOnDestroy(){this.rendererByCompId.clear()}static#e=this.\u0275fac=function(i){return new(i||n)(xi(z7),xi(V7),xi(v_),xi(fie),xi(ba),xi(Kp),xi(io),xi(wv))};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac})}return n})();class QR{constructor(e,t,i,r){this.eventManager=e,this.doc=t,this.ngZone=i,this.platformIsServer=r,this.data=Object.create(null),this.throwOnSyntheticProps=!0,this.destroyNode=null}destroy(){}createElement(e,t){return t?this.doc.createElementNS(VR[t]||t,e):this.doc.createElement(e)}createComment(e){return this.doc.createComment(e)}createText(e){return this.doc.createTextNode(e)}appendChild(e,t){(Q7(e)?e.content:e).appendChild(t)}insertBefore(e,t,i){e&&(Q7(e)?e.content:e).insertBefore(t,i)}removeChild(e,t){e&&e.removeChild(t)}selectRootElement(e,t){let i="string"==typeof e?this.doc.querySelector(e):e;if(!i)throw new Ln(-5104,!1);return t||(i.textContent=""),i}parentNode(e){return e.parentNode}nextSibling(e){return e.nextSibling}setAttribute(e,t,i,r){if(r){t=r+":"+t;const s=VR[r];s?e.setAttributeNS(s,t,i):e.setAttribute(t,i)}else e.setAttribute(t,i)}removeAttribute(e,t,i){if(i){const r=VR[i];r?e.removeAttributeNS(r,t):e.removeAttribute(`${i}:${t}`)}else e.removeAttribute(t)}addClass(e,t){e.classList.add(t)}removeClass(e,t){e.classList.remove(t)}setStyle(e,t,i,r){r&(h0.DashCase|h0.Important)?e.style.setProperty(t,i,r&h0.Important?"important":""):e.style[t]=i}removeStyle(e,t,i){i&h0.DashCase?e.style.removeProperty(t):e.style[t]=""}setProperty(e,t,i){null!=e&&(e[t]=i)}setValue(e,t){e.nodeValue=t}listen(e,t,i){if("string"==typeof e&&!(e=My().getGlobalEventTarget(this.doc,e)))throw new Error(`Unsupported event target ${e} for event ${t}`);return this.eventManager.addEventListener(e,t,this.decoratePreventDefault(i))}decoratePreventDefault(e){return t=>{if("__ngUnwrap__"===t)return e;!1===(this.platformIsServer?this.ngZone.runGuarded(()=>e(t)):e(t))&&t.preventDefault()}}}function Q7(n){return"TEMPLATE"===n.tagName&&void 0!==n.content}class gie extends QR{constructor(e,t,i,r,s,o,l,d){super(e,s,o,d),this.sharedStylesHost=t,this.hostEl=i,this.shadowRoot=i.attachShadow({mode:"open"}),this.sharedStylesHost.addHost(this.shadowRoot);const u=q7(r.id,r.styles);for(const f of u){const A=document.createElement("style");l&&A.setAttribute("nonce",l),A.textContent=f,this.shadowRoot.appendChild(A)}}nodeOrShadowRoot(e){return e===this.hostEl?this.shadowRoot:e}appendChild(e,t){return super.appendChild(this.nodeOrShadowRoot(e),t)}insertBefore(e,t,i){return super.insertBefore(this.nodeOrShadowRoot(e),t,i)}removeChild(e,t){return super.removeChild(this.nodeOrShadowRoot(e),t)}parentNode(e){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(e)))}destroy(){this.sharedStylesHost.removeHost(this.shadowRoot)}}class WR extends QR{constructor(e,t,i,r,s,o,l,d){super(e,s,o,l),this.sharedStylesHost=t,this.removeStylesOnCompDestroy=r,this.styles=d?q7(d,i.styles):i.styles}applyStyles(){this.sharedStylesHost.addStyles(this.styles)}destroy(){this.removeStylesOnCompDestroy&&this.sharedStylesHost.removeStyles(this.styles)}}class W7 extends WR{constructor(e,t,i,r,s,o,l,d){const u=r+"-"+i.id;super(e,t,i,s,o,l,d,u),this.contentAttr=function pie(n){return"_ngcontent-%COMP%".replace(GR,n)}(u),this.hostAttr=function mie(n){return"_nghost-%COMP%".replace(GR,n)}(u)}applyToHost(e){this.applyStyles(),this.setAttribute(e,this.hostAttr,"")}createElement(e,t){const i=super.createElement(e,t);return super.setAttribute(i,this.contentAttr,""),i}}let _ie=(()=>{class n extends H7{constructor(t){super(t)}supports(t){return!0}addEventListener(t,i,r){return t.addEventListener(i,r,!1),()=>this.removeEventListener(t,i,r)}removeEventListener(t,i,r){return t.removeEventListener(i,r)}static#e=this.\u0275fac=function(i){return new(i||n)(xi(ba))};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac})}return n})();const j7=["alt","control","meta","shift"],yie={"\b":"Backspace","\t":"Tab","\x7f":"Delete","\x1b":"Escape",Del:"Delete",Esc:"Escape",Left:"ArrowLeft",Right:"ArrowRight",Up:"ArrowUp",Down:"ArrowDown",Menu:"ContextMenu",Scroll:"ScrollLock",Win:"OS"},vie={alt:n=>n.altKey,control:n=>n.ctrlKey,meta:n=>n.metaKey,shift:n=>n.shiftKey};let bie=(()=>{class n extends H7{constructor(t){super(t)}supports(t){return null!=n.parseEventName(t)}addEventListener(t,i,r){const s=n.parseEventName(i),o=n.eventCallback(s.fullKey,r,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>My().onAndCancel(t,s.domEventName,o))}static parseEventName(t){const i=t.toLowerCase().split("."),r=i.shift();if(0===i.length||"keydown"!==r&&"keyup"!==r)return null;const s=n._normalizeKey(i.pop());let o="",l=i.indexOf("code");if(l>-1&&(i.splice(l,1),o="code."),j7.forEach(u=>{const f=i.indexOf(u);f>-1&&(i.splice(f,1),o+=u+".")}),o+=s,0!=i.length||0===s.length)return null;const d={};return d.domEventName=r,d.fullKey=o,d}static matchEventFullKeyCode(t,i){let r=yie[t.key]||t.key,s="";return i.indexOf("code.")>-1&&(r=t.code,s="code."),!(null==r||!r)&&(r=r.toLowerCase()," "===r?r="space":"."===r&&(r="dot"),j7.forEach(o=>{o!==r&&(0,vie[o])(t)&&(s+=o+".")}),s+=r,s===i)}static eventCallback(t,i,r){return s=>{n.matchEventFullKeyCode(s,t)&&r.runGuarded(()=>i(s))}}static _normalizeKey(t){return"esc"===t?"escape":t}static#e=this.\u0275fac=function(i){return new(i||n)(xi(ba))};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac})}return n})();const Mie=wU(Cee,"browser",[{provide:Kp,useValue:T7},{provide:Hx,useValue:function xie(){UR.makeCurrent()},multi:!0},{provide:ba,useFactory:function Cie(){return function HC(n){xv=n}(document),document},deps:[]}]),Sie=new Bi(""),Y7=[{provide:W3,useClass:class lie{addToWindow(e){wn.getAngularTestability=(i,r=!0)=>{const s=e.findTestabilityInTree(i,r);if(null==s)throw new Ln(5103,!1);return s},wn.getAllAngularTestabilities=()=>e.getAllTestabilities(),wn.getAllAngularRootElements=()=>e.getAllRootElements(),wn.frameworkStabilizers||(wn.frameworkStabilizers=[]),wn.frameworkStabilizers.push(i=>{const r=wn.getAllAngularTestabilities();let s=r.length;const o=function(){s--,0==s&&i()};r.forEach(l=>{l.whenStable(o)})})}findTestabilityInTree(e,t,i){return null==t?null:e.getTestability(t)??(i?My().isShadowRoot(t)?this.findTestabilityInTree(e,t.host,!0):this.findTestabilityInTree(e,t.parentElement,!0):null)}},deps:[]},{provide:hU,useClass:lR,deps:[io,cR,W3]},{provide:lR,useClass:lR,deps:[io,cR,W3]}],K7=[{provide:nh,useValue:"root"},{provide:xl,useFactory:function wie(){return new xl},deps:[]},{provide:zR,useClass:_ie,multi:!0,deps:[ba,io,Kp]},{provide:zR,useClass:bie,multi:!0,deps:[ba]},qR,V7,z7,{provide:OM,useExisting:qR},{provide:B7,useClass:cie,deps:[]},[]];let Z7=(()=>{class n{constructor(t){}static withServerTransition(t){return{ngModule:n,providers:[{provide:v_,useValue:t.appId}]}}static#e=this.\u0275fac=function(i){return new(i||n)(xi(Sie,12))};static#t=this.\u0275mod=vo({type:n});static#n=this.\u0275inj=ra({providers:[...K7,...Y7],imports:[hS,Mee]})}return n})(),Eie=(()=>{class n{constructor(t){this._doc=t}getTitle(){return this._doc.title}setTitle(t){this._doc.title=t||""}static#e=this.\u0275fac=function(i){return new(i||n)(xi(ba))};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();function n9(n){return n&&Je(n.schedule)}function $R(n){return n[n.length-1]}function i9(n){return Je($R(n))?n.pop():void 0}function gS(n){return n9($R(n))?n.pop():void 0}function Sy(n){return this instanceof Sy?(this.v=n,this):new Sy(n)}function a9(n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,e=n[Symbol.asyncIterator];return e?e.call(n):(n=function ZR(n){var e="function"==typeof Symbol&&Symbol.iterator,t=e&&n[e],i=0;if(t)return t.call(n);if(n&&"number"==typeof n.length)return{next:function(){return n&&i>=n.length&&(n=void 0),{value:n&&n[i++],done:!n}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}(n),t={},i("next"),i("throw"),i("return"),t[Symbol.asyncIterator]=function(){return this},t);function i(s){t[s]=n[s]&&function(o){return new Promise(function(l,d){!function r(s,o,l,d){Promise.resolve(d).then(function(u){s({value:u,done:l})},o)}(l,d,(o=n[s](o)).done,o.value)})}}}"function"==typeof SuppressedError&&SuppressedError;const JR=n=>n&&"number"==typeof n.length&&"function"!=typeof n;function l9(n){return Je(n?.then)}function c9(n){return Je(n[xt])}function d9(n){return Symbol.asyncIterator&&Je(n?.[Symbol.asyncIterator])}function u9(n){return new TypeError(`You provided ${null!==n&&"object"==typeof n?"an invalid object":`'${n}'`} where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.`)}const h9=function ere(){return"function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator"}();function f9(n){return Je(n?.[h9])}function p9(n){return function o9(n,e,t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r,i=t.apply(n,e||[]),s=[];return r={},o("next"),o("throw"),o("return"),r[Symbol.asyncIterator]=function(){return this},r;function o(S){i[S]&&(r[S]=function(R){return new Promise(function(G,re){s.push([S,R,G,re])>1||l(S,R)})})}function l(S,R){try{!function d(S){S.value instanceof Sy?Promise.resolve(S.value.v).then(u,f):A(s[0][2],S)}(i[S](R))}catch(G){A(s[0][3],G)}}function u(S){l("next",S)}function f(S){l("throw",S)}function A(S,R){S(R),s.shift(),s.length&&l(s[0][0],s[0][1])}}(this,arguments,function*(){const t=n.getReader();try{for(;;){const{value:i,done:r}=yield Sy(t.read());if(r)return yield Sy(void 0);yield yield Sy(i)}}finally{t.releaseLock()}})}function m9(n){return Je(n?.getReader)}function Nh(n){if(n instanceof Pe)return n;if(null!=n){if(c9(n))return function tre(n){return new Pe(e=>{const t=n[xt]();if(Je(t.subscribe))return t.subscribe(e);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}(n);if(JR(n))return function nre(n){return new Pe(e=>{for(let t=0;t{n.then(t=>{e.closed||(e.next(t),e.complete())},t=>e.error(t)).then(null,qt)})}(n);if(d9(n))return A9(n);if(f9(n))return function rre(n){return new Pe(e=>{for(const t of n)if(e.next(t),e.closed)return;e.complete()})}(n);if(m9(n))return function sre(n){return A9(p9(n))}(n)}throw u9(n)}function A9(n){return new Pe(e=>{(function ore(n,e){var t,i,r,s;return function r9(n,e,t,i){return new(t||(t=Promise))(function(s,o){function l(f){try{u(i.next(f))}catch(A){o(A)}}function d(f){try{u(i.throw(f))}catch(A){o(A)}}function u(f){f.done?s(f.value):function r(s){return s instanceof t?s:new t(function(o){o(s)})}(f.value).then(l,d)}u((i=i.apply(n,e||[])).next())})}(this,void 0,void 0,function*(){try{for(t=a9(n);!(i=yield t.next()).done;)if(e.next(i.value),e.closed)return}catch(o){r={error:o}}finally{try{i&&!i.done&&(s=t.return)&&(yield s.call(t))}finally{if(r)throw r.error}}e.complete()})})(n,e).catch(t=>e.error(t))})}function N_(n,e,t,i=0,r=!1){const s=e.schedule(function(){t(),r?n.add(this.schedule(null,i)):this.unsubscribe()},i);if(n.add(s),!r)return s}function g9(n,e=0){return ci((t,i)=>{t.subscribe(Pi(i,r=>N_(i,n,()=>i.next(r),e),()=>N_(i,n,()=>i.complete(),e),r=>N_(i,n,()=>i.error(r),e)))})}function _9(n,e=0){return ci((t,i)=>{i.add(n.schedule(()=>t.subscribe(i),e))})}function y9(n,e){if(!n)throw new Error("Iterable cannot be null");return new Pe(t=>{N_(t,e,()=>{const i=n[Symbol.asyncIterator]();N_(t,e,()=>{i.next().then(r=>{r.done?t.complete():t.next(r.value)})},0,!0)})})}function au(n,e){return e?function hre(n,e){if(null!=n){if(c9(n))return function are(n,e){return Nh(n).pipe(_9(e),g9(e))}(n,e);if(JR(n))return function cre(n,e){return new Pe(t=>{let i=0;return e.schedule(function(){i===n.length?t.complete():(t.next(n[i++]),t.closed||this.schedule())})})}(n,e);if(l9(n))return function lre(n,e){return Nh(n).pipe(_9(e),g9(e))}(n,e);if(d9(n))return y9(n,e);if(f9(n))return function dre(n,e){return new Pe(t=>{let i;return N_(t,e,()=>{i=n[h9](),N_(t,e,()=>{let r,s;try{({value:r,done:s}=i.next())}catch(o){return void t.error(o)}s?t.complete():t.next(r)},0,!0)}),()=>Je(i?.return)&&i.return()})}(n,e);if(m9(n))return function ure(n,e){return y9(p9(n),e)}(n,e)}throw u9(n)}(n,e):Nh(n)}function po(...n){return au(n,gS(n))}function qu(n,e,t=1/0){return Je(e)?qu((i,r)=>bi((s,o)=>e(i,s,r,o))(Nh(n(i,r))),t):("number"==typeof e&&(t=e),ci((i,r)=>function fre(n,e,t,i,r,s,o,l){const d=[];let u=0,f=0,A=!1;const S=()=>{A&&!d.length&&!u&&e.complete()},R=re=>u{s&&e.next(re),u++;let se=!1;Nh(t(re,f++)).subscribe(Pi(e,le=>{r?.(le),s?R(le):e.next(le)},()=>{se=!0},void 0,()=>{if(se)try{for(u--;d.length&&uG(le)):G(le)}S()}catch(le){e.error(le)}}))};return n.subscribe(Pi(e,R,()=>{A=!0,S()})),()=>{l?.()}}(i,r,n,t)))}function Yw(n,e){return Je(e)?qu(n,e,1):qu(n,1)}function od(n,e){return ci((t,i)=>{let r=0;t.subscribe(Pi(i,s=>n.call(e,s,r++)&&i.next(s)))})}function Kw(n){return ci((e,t)=>{try{e.subscribe(t)}finally{t.add(n)}})}function Df(n,e){return ci((t,i)=>{let r=null,s=0,o=!1;const l=()=>o&&!r&&i.complete();t.subscribe(Pi(i,d=>{r?.unsubscribe();let u=0;const f=s++;Nh(n(d,f)).subscribe(r=Pi(i,A=>i.next(e?e(d,A,f,u++):A),()=>{r=null,l()}))},()=>{o=!0,l()}))})}class gD{}class _D{}class lm{constructor(e){this.normalizedNames=new Map,this.lazyUpdate=null,e?"string"==typeof e?this.lazyInit=()=>{this.headers=new Map,e.split("\n").forEach(t=>{const i=t.indexOf(":");if(i>0){const r=t.slice(0,i),s=r.toLowerCase(),o=t.slice(i+1).trim();this.maybeSetNormalizedName(r,s),this.headers.has(s)?this.headers.get(s).push(o):this.headers.set(s,[o])}})}:typeof Headers<"u"&&e instanceof Headers?(this.headers=new Map,e.forEach((t,i)=>{this.setHeaderEntries(i,t)})):this.lazyInit=()=>{this.headers=new Map,Object.entries(e).forEach(([t,i])=>{this.setHeaderEntries(t,i)})}:this.headers=new Map}has(e){return this.init(),this.headers.has(e.toLowerCase())}get(e){this.init();const t=this.headers.get(e.toLowerCase());return t&&t.length>0?t[0]:null}keys(){return this.init(),Array.from(this.normalizedNames.values())}getAll(e){return this.init(),this.headers.get(e.toLowerCase())||null}append(e,t){return this.clone({name:e,value:t,op:"a"})}set(e,t){return this.clone({name:e,value:t,op:"s"})}delete(e,t){return this.clone({name:e,value:t,op:"d"})}maybeSetNormalizedName(e,t){this.normalizedNames.has(t)||this.normalizedNames.set(t,e)}init(){this.lazyInit&&(this.lazyInit instanceof lm?this.copyFrom(this.lazyInit):this.lazyInit(),this.lazyInit=null,this.lazyUpdate&&(this.lazyUpdate.forEach(e=>this.applyUpdate(e)),this.lazyUpdate=null))}copyFrom(e){e.init(),Array.from(e.headers.keys()).forEach(t=>{this.headers.set(t,e.headers.get(t)),this.normalizedNames.set(t,e.normalizedNames.get(t))})}clone(e){const t=new lm;return t.lazyInit=this.lazyInit&&this.lazyInit instanceof lm?this.lazyInit:this,t.lazyUpdate=(this.lazyUpdate||[]).concat([e]),t}applyUpdate(e){const t=e.name.toLowerCase();switch(e.op){case"a":case"s":let i=e.value;if("string"==typeof i&&(i=[i]),0===i.length)return;this.maybeSetNormalizedName(e.name,t);const r=("a"===e.op?this.headers.get(t):void 0)||[];r.push(...i),this.headers.set(t,r);break;case"d":const s=e.value;if(s){let o=this.headers.get(t);if(!o)return;o=o.filter(l=>-1===s.indexOf(l)),0===o.length?(this.headers.delete(t),this.normalizedNames.delete(t)):this.headers.set(t,o)}else this.headers.delete(t),this.normalizedNames.delete(t)}}setHeaderEntries(e,t){const i=(Array.isArray(t)?t:[t]).map(s=>s.toString()),r=e.toLowerCase();this.headers.set(r,i),this.maybeSetNormalizedName(e,r)}forEach(e){this.init(),Array.from(this.normalizedNames.keys()).forEach(t=>e(this.normalizedNames.get(t),this.headers.get(t)))}}class pre{encodeKey(e){return v9(e)}encodeValue(e){return v9(e)}decodeKey(e){return decodeURIComponent(e)}decodeValue(e){return decodeURIComponent(e)}}const Are=/%(\d[a-f0-9])/gi,gre={40:"@","3A":":",24:"$","2C":",","3B":";","3D":"=","3F":"?","2F":"/"};function v9(n){return encodeURIComponent(n).replace(Are,(e,t)=>gre[t]??e)}function yD(n){return`${n}`}class Ey{constructor(e={}){if(this.updates=null,this.cloneFrom=null,this.encoder=e.encoder||new pre,e.fromString){if(e.fromObject)throw new Error("Cannot specify both fromString and fromObject.");this.map=function mre(n,e){const t=new Map;return n.length>0&&n.replace(/^\?/,"").split("&").forEach(r=>{const s=r.indexOf("="),[o,l]=-1==s?[e.decodeKey(r),""]:[e.decodeKey(r.slice(0,s)),e.decodeValue(r.slice(s+1))],d=t.get(o)||[];d.push(l),t.set(o,d)}),t}(e.fromString,this.encoder)}else e.fromObject?(this.map=new Map,Object.keys(e.fromObject).forEach(t=>{const i=e.fromObject[t],r=Array.isArray(i)?i.map(yD):[yD(i)];this.map.set(t,r)})):this.map=null}has(e){return this.init(),this.map.has(e)}get(e){this.init();const t=this.map.get(e);return t?t[0]:null}getAll(e){return this.init(),this.map.get(e)||null}keys(){return this.init(),Array.from(this.map.keys())}append(e,t){return this.clone({param:e,value:t,op:"a"})}appendAll(e){const t=[];return Object.keys(e).forEach(i=>{const r=e[i];Array.isArray(r)?r.forEach(s=>{t.push({param:i,value:s,op:"a"})}):t.push({param:i,value:r,op:"a"})}),this.clone(t)}set(e,t){return this.clone({param:e,value:t,op:"s"})}delete(e,t){return this.clone({param:e,value:t,op:"d"})}toString(){return this.init(),this.keys().map(e=>{const t=this.encoder.encodeKey(e);return this.map.get(e).map(i=>t+"="+this.encoder.encodeValue(i)).join("&")}).filter(e=>""!==e).join("&")}clone(e){const t=new Ey({encoder:this.encoder});return t.cloneFrom=this.cloneFrom||this,t.updates=(this.updates||[]).concat(e),t}init(){null===this.map&&(this.map=new Map),null!==this.cloneFrom&&(this.cloneFrom.init(),this.cloneFrom.keys().forEach(e=>this.map.set(e,this.cloneFrom.map.get(e))),this.updates.forEach(e=>{switch(e.op){case"a":case"s":const t=("a"===e.op?this.map.get(e.param):void 0)||[];t.push(yD(e.value)),this.map.set(e.param,t);break;case"d":if(void 0===e.value){this.map.delete(e.param);break}{let i=this.map.get(e.param)||[];const r=i.indexOf(yD(e.value));-1!==r&&i.splice(r,1),i.length>0?this.map.set(e.param,i):this.map.delete(e.param)}}}),this.cloneFrom=this.updates=null)}}class _re{constructor(){this.map=new Map}set(e,t){return this.map.set(e,t),this}get(e){return this.map.has(e)||this.map.set(e,e.defaultValue()),this.map.get(e)}delete(e){return this.map.delete(e),this}has(e){return this.map.has(e)}keys(){return this.map.keys()}}function b9(n){return typeof ArrayBuffer<"u"&&n instanceof ArrayBuffer}function x9(n){return typeof Blob<"u"&&n instanceof Blob}function w9(n){return typeof FormData<"u"&&n instanceof FormData}class _S{constructor(e,t,i,r){let s;if(this.url=t,this.body=null,this.reportProgress=!1,this.withCredentials=!1,this.responseType="json",this.method=e.toUpperCase(),function yre(n){switch(n){case"DELETE":case"GET":case"HEAD":case"OPTIONS":case"JSONP":return!1;default:return!0}}(this.method)||r?(this.body=void 0!==i?i:null,s=r):s=i,s&&(this.reportProgress=!!s.reportProgress,this.withCredentials=!!s.withCredentials,s.responseType&&(this.responseType=s.responseType),s.headers&&(this.headers=s.headers),s.context&&(this.context=s.context),s.params&&(this.params=s.params),this.transferCache=s.transferCache),this.headers??=new lm,this.context??=new _re,this.params){const o=this.params.toString();if(0===o.length)this.urlWithParams=t;else{const l=t.indexOf("?");this.urlWithParams=t+(-1===l?"?":lA.set(S,e.setHeaders[S]),d)),e.setParams&&(u=Object.keys(e.setParams).reduce((A,S)=>A.set(S,e.setParams[S]),u)),new _S(t,i,s,{params:u,headers:d,context:f,reportProgress:l,responseType:r,withCredentials:o})}}var Ty=function(n){return n[n.Sent=0]="Sent",n[n.UploadProgress=1]="UploadProgress",n[n.ResponseHeader=2]="ResponseHeader",n[n.DownloadProgress=3]="DownloadProgress",n[n.Response=4]="Response",n[n.User=5]="User",n}(Ty||{});class ek{constructor(e,t=yS.Ok,i="OK"){this.headers=e.headers||new lm,this.status=void 0!==e.status?e.status:t,this.statusText=e.statusText||i,this.url=e.url||null,this.ok=this.status>=200&&this.status<300}}class vD extends ek{constructor(e={}){super(e),this.type=Ty.ResponseHeader}clone(e={}){return new vD({headers:e.headers||this.headers,status:void 0!==e.status?e.status:this.status,statusText:e.statusText||this.statusText,url:e.url||this.url||void 0})}}class _b extends ek{constructor(e={}){super(e),this.type=Ty.Response,this.body=void 0!==e.body?e.body:null}clone(e={}){return new _b({body:void 0!==e.body?e.body:this.body,headers:e.headers||this.headers,status:void 0!==e.status?e.status:this.status,statusText:e.statusText||this.statusText,url:e.url||this.url||void 0})}}class Zw extends ek{constructor(e){super(e,0,"Unknown Error"),this.name="HttpErrorResponse",this.ok=!1,this.message=this.status>=200&&this.status<300?`Http failure during parsing for ${e.url||"(unknown url)"}`:`Http failure response for ${e.url||"(unknown url)"}: ${e.status} ${e.statusText}`,this.error=e.error||null}}var yS=function(n){return n[n.Continue=100]="Continue",n[n.SwitchingProtocols=101]="SwitchingProtocols",n[n.Processing=102]="Processing",n[n.EarlyHints=103]="EarlyHints",n[n.Ok=200]="Ok",n[n.Created=201]="Created",n[n.Accepted=202]="Accepted",n[n.NonAuthoritativeInformation=203]="NonAuthoritativeInformation",n[n.NoContent=204]="NoContent",n[n.ResetContent=205]="ResetContent",n[n.PartialContent=206]="PartialContent",n[n.MultiStatus=207]="MultiStatus",n[n.AlreadyReported=208]="AlreadyReported",n[n.ImUsed=226]="ImUsed",n[n.MultipleChoices=300]="MultipleChoices",n[n.MovedPermanently=301]="MovedPermanently",n[n.Found=302]="Found",n[n.SeeOther=303]="SeeOther",n[n.NotModified=304]="NotModified",n[n.UseProxy=305]="UseProxy",n[n.Unused=306]="Unused",n[n.TemporaryRedirect=307]="TemporaryRedirect",n[n.PermanentRedirect=308]="PermanentRedirect",n[n.BadRequest=400]="BadRequest",n[n.Unauthorized=401]="Unauthorized",n[n.PaymentRequired=402]="PaymentRequired",n[n.Forbidden=403]="Forbidden",n[n.NotFound=404]="NotFound",n[n.MethodNotAllowed=405]="MethodNotAllowed",n[n.NotAcceptable=406]="NotAcceptable",n[n.ProxyAuthenticationRequired=407]="ProxyAuthenticationRequired",n[n.RequestTimeout=408]="RequestTimeout",n[n.Conflict=409]="Conflict",n[n.Gone=410]="Gone",n[n.LengthRequired=411]="LengthRequired",n[n.PreconditionFailed=412]="PreconditionFailed",n[n.PayloadTooLarge=413]="PayloadTooLarge",n[n.UriTooLong=414]="UriTooLong",n[n.UnsupportedMediaType=415]="UnsupportedMediaType",n[n.RangeNotSatisfiable=416]="RangeNotSatisfiable",n[n.ExpectationFailed=417]="ExpectationFailed",n[n.ImATeapot=418]="ImATeapot",n[n.MisdirectedRequest=421]="MisdirectedRequest",n[n.UnprocessableEntity=422]="UnprocessableEntity",n[n.Locked=423]="Locked",n[n.FailedDependency=424]="FailedDependency",n[n.TooEarly=425]="TooEarly",n[n.UpgradeRequired=426]="UpgradeRequired",n[n.PreconditionRequired=428]="PreconditionRequired",n[n.TooManyRequests=429]="TooManyRequests",n[n.RequestHeaderFieldsTooLarge=431]="RequestHeaderFieldsTooLarge",n[n.UnavailableForLegalReasons=451]="UnavailableForLegalReasons",n[n.InternalServerError=500]="InternalServerError",n[n.NotImplemented=501]="NotImplemented",n[n.BadGateway=502]="BadGateway",n[n.ServiceUnavailable=503]="ServiceUnavailable",n[n.GatewayTimeout=504]="GatewayTimeout",n[n.HttpVersionNotSupported=505]="HttpVersionNotSupported",n[n.VariantAlsoNegotiates=506]="VariantAlsoNegotiates",n[n.InsufficientStorage=507]="InsufficientStorage",n[n.LoopDetected=508]="LoopDetected",n[n.NotExtended=510]="NotExtended",n[n.NetworkAuthenticationRequired=511]="NetworkAuthenticationRequired",n}(yS||{});function tk(n,e){return{body:e,headers:n.headers,context:n.context,observe:n.observe,params:n.params,reportProgress:n.reportProgress,responseType:n.responseType,withCredentials:n.withCredentials,transferCache:n.transferCache}}let vS=(()=>{class n{constructor(t){this.handler=t}request(t,i,r={}){let s;if(t instanceof _S)s=t;else{let d,u;d=r.headers instanceof lm?r.headers:new lm(r.headers),r.params&&(u=r.params instanceof Ey?r.params:new Ey({fromObject:r.params})),s=new _S(t,i,void 0!==r.body?r.body:null,{headers:d,context:r.context,params:u,reportProgress:r.reportProgress,responseType:r.responseType||"json",withCredentials:r.withCredentials,transferCache:r.transferCache})}const o=po(s).pipe(Yw(d=>this.handler.handle(d)));if(t instanceof _S||"events"===r.observe)return o;const l=o.pipe(od(d=>d instanceof _b));switch(r.observe||"body"){case"body":switch(s.responseType){case"arraybuffer":return l.pipe(bi(d=>{if(null!==d.body&&!(d.body instanceof ArrayBuffer))throw new Error("Response is not an ArrayBuffer.");return d.body}));case"blob":return l.pipe(bi(d=>{if(null!==d.body&&!(d.body instanceof Blob))throw new Error("Response is not a Blob.");return d.body}));case"text":return l.pipe(bi(d=>{if(null!==d.body&&"string"!=typeof d.body)throw new Error("Response is not a string.");return d.body}));default:return l.pipe(bi(d=>d.body))}case"response":return l;default:throw new Error(`Unreachable: unhandled observe type ${r.observe}}`)}}delete(t,i={}){return this.request("DELETE",t,i)}get(t,i={}){return this.request("GET",t,i)}head(t,i={}){return this.request("HEAD",t,i)}jsonp(t,i){return this.request("JSONP",t,{params:(new Ey).append(i,"JSONP_CALLBACK"),observe:"body",responseType:"json"})}options(t,i={}){return this.request("OPTIONS",t,i)}patch(t,i,r={}){return this.request("PATCH",t,tk(r,i))}post(t,i,r={}){return this.request("POST",t,tk(r,i))}put(t,i,r={}){return this.request("PUT",t,tk(r,i))}static#e=this.\u0275fac=function(i){return new(i||n)(xi(gD))};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac})}return n})();function M9(n,e){return e(n)}function Mre(n,e){return(t,i)=>e.intercept(t,{handle:r=>n(r,i)})}const Ere=new Bi(""),bS=new Bi(""),S9=new Bi(""),E9=new Bi("");function Tre(){let n=null;return(e,t)=>{null===n&&(n=(pi(Ere,{optional:!0})??[]).reduceRight(Mre,M9));const i=pi(by),r=i.add();return n(e,t).pipe(Kw(()=>i.remove(r)))}}let T9=(()=>{class n extends gD{constructor(t,i){super(),this.backend=t,this.injector=i,this.chain=null,this.pendingTasks=pi(by);const r=pi(E9,{optional:!0});this.backend=r??t}handle(t){if(null===this.chain){const r=Array.from(new Set([...this.injector.get(bS),...this.injector.get(S9,[])]));this.chain=r.reduceRight((s,o)=>function Sre(n,e,t){return(i,r)=>El(t,()=>e(i,s=>n(s,r)))}(s,o,this.injector),M9)}const i=this.pendingTasks.add();return this.chain(t,r=>this.backend.handle(r)).pipe(Kw(()=>this.pendingTasks.remove(i)))}static#e=this.\u0275fac=function(i){return new(i||n)(xi(_D),xi(Rc))};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac})}return n})();const Rre=/^\)\]\}',?\n/;let I9=(()=>{class n{constructor(t){this.xhrFactory=t}handle(t){if("JSONP"===t.method)throw new Ln(-2800,!1);const i=this.xhrFactory;return(i.\u0275loadImpl?au(i.\u0275loadImpl()):po(null)).pipe(Df(()=>new Pe(s=>{const o=i.build();if(o.open(t.method,t.urlWithParams),t.withCredentials&&(o.withCredentials=!0),t.headers.forEach((re,se)=>o.setRequestHeader(re,se.join(","))),t.headers.has("Accept")||o.setRequestHeader("Accept","application/json, text/plain, */*"),!t.headers.has("Content-Type")){const re=t.detectContentTypeHeader();null!==re&&o.setRequestHeader("Content-Type",re)}if(t.responseType){const re=t.responseType.toLowerCase();o.responseType="json"!==re?re:"text"}const l=t.serializeBody();let d=null;const u=()=>{if(null!==d)return d;const re=o.statusText||"OK",se=new lm(o.getAllResponseHeaders()),le=function kre(n){return"responseURL"in n&&n.responseURL?n.responseURL:/^X-Request-URL:/m.test(n.getAllResponseHeaders())?n.getResponseHeader("X-Request-URL"):null}(o)||t.url;return d=new vD({headers:se,status:o.status,statusText:re,url:le}),d},f=()=>{let{headers:re,status:se,statusText:le,url:Ee}=u(),Ce=null;se!==yS.NoContent&&(Ce=typeof o.response>"u"?o.responseText:o.response),0===se&&(se=Ce?yS.Ok:0);let We=se>=200&&se<300;if("json"===t.responseType&&"string"==typeof Ce){const Mt=Ce;Ce=Ce.replace(Rre,"");try{Ce=""!==Ce?JSON.parse(Ce):null}catch(yt){Ce=Mt,We&&(We=!1,Ce={error:yt,text:Ce})}}We?(s.next(new _b({body:Ce,headers:re,status:se,statusText:le,url:Ee||void 0})),s.complete()):s.error(new Zw({error:Ce,headers:re,status:se,statusText:le,url:Ee||void 0}))},A=re=>{const{url:se}=u(),le=new Zw({error:re,status:o.status||0,statusText:o.statusText||"Unknown Error",url:se||void 0});s.error(le)};let S=!1;const R=re=>{S||(s.next(u()),S=!0);let se={type:Ty.DownloadProgress,loaded:re.loaded};re.lengthComputable&&(se.total=re.total),"text"===t.responseType&&o.responseText&&(se.partialText=o.responseText),s.next(se)},G=re=>{let se={type:Ty.UploadProgress,loaded:re.loaded};re.lengthComputable&&(se.total=re.total),s.next(se)};return o.addEventListener("load",f),o.addEventListener("error",A),o.addEventListener("timeout",A),o.addEventListener("abort",A),t.reportProgress&&(o.addEventListener("progress",R),null!==l&&o.upload&&o.upload.addEventListener("progress",G)),o.send(l),s.next({type:Ty.Sent}),()=>{o.removeEventListener("error",A),o.removeEventListener("abort",A),o.removeEventListener("load",f),o.removeEventListener("timeout",A),t.reportProgress&&(o.removeEventListener("progress",R),null!==l&&o.upload&&o.upload.removeEventListener("progress",G)),o.readyState!==o.DONE&&o.abort()}})))}static#e=this.\u0275fac=function(i){return new(i||n)(xi(B7))};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac})}return n})();const rk=new Bi(""),B9=new Bi("",{providedIn:"root",factory:()=>"XSRF-TOKEN"}),P9=new Bi("",{providedIn:"root",factory:()=>"X-XSRF-TOKEN"});class R9{}let Lre=(()=>{class n{constructor(t,i,r){this.doc=t,this.platform=i,this.cookieName=r,this.lastCookieString="",this.lastToken=null,this.parseCount=0}getToken(){if("server"===this.platform)return null;const t=this.doc.cookie||"";return t!==this.lastCookieString&&(this.parseCount++,this.lastToken=g7(t,this.cookieName),this.lastCookieString=t),this.lastToken}static#e=this.\u0275fac=function(i){return new(i||n)(xi(ba),xi(Kp),xi(B9))};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac})}return n})();function Nre(n,e){const t=n.url.toLowerCase();if(!pi(rk)||"GET"===n.method||"HEAD"===n.method||t.startsWith("http://")||t.startsWith("https://"))return e(n);const i=pi(R9).getToken(),r=pi(P9);return null!=i&&!n.headers.has(r)&&(n=n.clone({headers:n.headers.set(r,i)})),e(n)}var Dy=function(n){return n[n.Interceptors=0]="Interceptors",n[n.LegacyInterceptors=1]="LegacyInterceptors",n[n.CustomXsrfConfiguration=2]="CustomXsrfConfiguration",n[n.NoXsrfProtection=3]="NoXsrfProtection",n[n.JsonpSupport=4]="JsonpSupport",n[n.RequestsMadeViaParent=5]="RequestsMadeViaParent",n[n.Fetch=6]="Fetch",n}(Dy||{});function Ure(...n){const e=[vS,I9,T9,{provide:gD,useExisting:T9},{provide:_D,useExisting:I9},{provide:bS,useValue:Nre,multi:!0},{provide:rk,useValue:!0},{provide:R9,useClass:Lre}];for(const t of n)e.push(...t.\u0275providers);return function Lu(n){return{\u0275providers:n}}(e)}const k9=new Bi("");function zre(){return function yb(n,e){return{\u0275kind:n,\u0275providers:e}}(Dy.LegacyInterceptors,[{provide:k9,useFactory:Tre},{provide:bS,useExisting:k9,multi:!0}])}let Hre=(()=>{class n{static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275mod=vo({type:n});static#n=this.\u0275inj=ra({providers:[Ure(zre())]})}return n})();const{isArray:jre}=Array,{getPrototypeOf:$re,prototype:Xre,keys:Yre}=Object;function H9(n){if(1===n.length){const e=n[0];if(jre(e))return{args:e,keys:null};if(function Kre(n){return n&&"object"==typeof n&&$re(n)===Xre}(e)){const t=Yre(e);return{args:t.map(i=>e[i]),keys:t}}}return{args:n,keys:null}}const{isArray:Zre}=Array;function sk(n){return bi(e=>function Jre(n,e){return Zre(e)?n(...e):n(e)}(n,e))}function V9(n,e){return n.reduce((t,i,r)=>(t[i]=e[r],t),{})}function xD(...n){const e=gS(n),t=i9(n),{args:i,keys:r}=H9(n);if(0===i.length)return au([],e);const s=new Pe(function ese(n,e,t=K){return i=>{G9(e,()=>{const{length:r}=n,s=new Array(r);let o=r,l=r;for(let d=0;d{const u=au(n[d],e);let f=!1;u.subscribe(Pi(i,A=>{s[d]=A,f||(f=!0,l--),l||i.next(t(s.slice()))},()=>{--o||i.complete()}))},i)},i)}}(i,e,r?o=>V9(r,o):K));return t?s.pipe(sk(t)):s}function G9(n,e,t){n?N_(t,n,e):e()}const wD=tt(n=>function(){n(this),this.name="EmptyError",this.message="no elements in sequence"});function Jw(n=1/0){return qu(K,n)}function wS(...n){return function tse(){return Jw(1)}()(au(n,gS(n)))}function CD(n){return new Pe(e=>{Nh(n()).subscribe(e)})}function CS(n,e){const t=Je(n)?n:()=>n,i=r=>r.error(t());return new Pe(e?r=>e.schedule(i,0,r):i)}const rA=new Pe(n=>n.complete());function ok(){return ci((n,e)=>{let t=null;n._refCount++;const i=Pi(e,void 0,void 0,void 0,()=>{if(!n||n._refCount<=0||0<--n._refCount)return void(t=null);const r=n._connection,s=t;t=null,r&&(!s||r===s)&&r.unsubscribe(),e.unsubscribe()});n.subscribe(i),i.closed||(t=n.connect())})}class ak extends Pe{constructor(e,t){super(),this.source=e,this.subjectFactory=t,this._subject=null,this._refCount=0,this._connection=null,In(e)&&(this.lift=e.lift)}_subscribe(e){return this.getSubject().subscribe(e)}getSubject(){const e=this._subject;return(!e||e.isStopped)&&(this._subject=this.subjectFactory()),this._subject}_teardown(){this._refCount=0;const{_connection:e}=this;this._subject=this._connection=null,e?.unsubscribe()}connect(){let e=this._connection;if(!e){e=this._connection=new rt;const t=this.getSubject();e.add(this.source.subscribe(Pi(t,void 0,()=>{this._teardown(),t.complete()},i=>{this._teardown(),t.error(i)},()=>this._teardown()))),e.closed&&(this._connection=null,e=rt.EMPTY)}return e}refCount(){return ok()(this)}}function ad(n){return n<=0?()=>rA:ci((e,t)=>{let i=0;e.subscribe(Pi(t,r=>{++i<=n&&(t.next(r),n<=i&&t.complete())}))})}function sA(...n){const e=gS(n);return ci((t,i)=>{(e?wS(n,t,e):wS(n,t)).subscribe(i)})}function MD(n){return ci((e,t)=>{let i=!1;e.subscribe(Pi(t,r=>{i=!0,t.next(r)},()=>{i||t.next(n),t.complete()}))})}function q9(n=ise){return ci((e,t)=>{let i=!1;e.subscribe(Pi(t,r=>{i=!0,t.next(r)},()=>i?t.complete():t.error(n())))})}function ise(){return new wD}function vb(n,e){const t=arguments.length>=2;return i=>i.pipe(n?od((r,s)=>n(r,s,i)):K,ad(1),t?MD(e):q9(()=>new wD))}function lu(n,e,t){const i=Je(n)||e||t?{next:n,error:e,complete:t}:n;return i?ci((r,s)=>{var o;null===(o=i.subscribe)||void 0===o||o.call(i);let l=!0;r.subscribe(Pi(s,d=>{var u;null===(u=i.next)||void 0===u||u.call(i,d),s.next(d)},()=>{var d;l=!1,null===(d=i.complete)||void 0===d||d.call(i),s.complete()},d=>{var u;l=!1,null===(u=i.error)||void 0===u||u.call(i,d),s.error(d)},()=>{var d,u;l&&(null===(d=i.unsubscribe)||void 0===d||d.call(i)),null===(u=i.finalize)||void 0===u||u.call(i)}))}):K}function bb(n){return ci((e,t)=>{let s,i=null,r=!1;i=e.subscribe(Pi(t,void 0,void 0,o=>{s=Nh(n(o,bb(n)(e))),i?(i.unsubscribe(),i=null,s.subscribe(t)):r=!0})),r&&(i.unsubscribe(),i=null,s.subscribe(t))})}function lk(n){return n<=0?()=>rA:ci((e,t)=>{let i=[];e.subscribe(Pi(t,r=>{i.push(r),n{for(const r of i)t.next(r);t.complete()},void 0,()=>{i=null}))})}function Q9(n){return bi(()=>n)}function Ql(n){return ci((e,t)=>{Nh(n).subscribe(Pi(t,()=>t.complete(),Ot)),!t.closed&&e.subscribe(t)})}const Ra="primary",MS=Symbol("RouteTitle");class ase{constructor(e){this.params=e||{}}has(e){return Object.prototype.hasOwnProperty.call(this.params,e)}get(e){if(this.has(e)){const t=this.params[e];return Array.isArray(t)?t[0]:t}return null}getAll(e){if(this.has(e)){const t=this.params[e];return Array.isArray(t)?t:[t]}return[]}get keys(){return Object.keys(this.params)}}function e2(n){return new ase(n)}function lse(n,e,t){const i=t.path.split("/");if(i.length>n.length||"full"===t.pathMatch&&(e.hasChildren()||i.lengthi[s]===r)}return n===e}function j9(n){return n.length>0?n[n.length-1]:null}function Iy(n){return function xS(n){return!!n&&(n instanceof Pe||Je(n.lift)&&Je(n.subscribe))}(n)?n:lS(n)?au(Promise.resolve(n)):po(n)}const dse={exact:function Y9(n,e,t){if(!xb(n.segments,e.segments)||!SD(n.segments,e.segments,t)||n.numberOfChildren!==e.numberOfChildren)return!1;for(const i in e.children)if(!n.children[i]||!Y9(n.children[i],e.children[i],t))return!1;return!0},subset:K9},$9={exact:function use(n,e){return v0(n,e)},subset:function hse(n,e){return Object.keys(e).length<=Object.keys(n).length&&Object.keys(e).every(t=>W9(n[t],e[t]))},ignored:()=>!0};function X9(n,e,t){return dse[t.paths](n.root,e.root,t.matrixParams)&&$9[t.queryParams](n.queryParams,e.queryParams)&&!("exact"===t.fragment&&n.fragment!==e.fragment)}function K9(n,e,t){return Z9(n,e,e.segments,t)}function Z9(n,e,t,i){if(n.segments.length>t.length){const r=n.segments.slice(0,t.length);return!(!xb(r,t)||e.hasChildren()||!SD(r,t,i))}if(n.segments.length===t.length){if(!xb(n.segments,t)||!SD(n.segments,t,i))return!1;for(const r in e.children)if(!n.children[r]||!K9(n.children[r],e.children[r],i))return!1;return!0}{const r=t.slice(0,n.segments.length),s=t.slice(n.segments.length);return!!(xb(n.segments,r)&&SD(n.segments,r,i)&&n.children[Ra])&&Z9(n.children[Ra],e,s,i)}}function SD(n,e,t){return e.every((i,r)=>$9[t](n[r].parameters,i.parameters))}class t2{constructor(e=new tc([],{}),t={},i=null){this.root=e,this.queryParams=t,this.fragment=i}get queryParamMap(){return this._queryParamMap??=e2(this.queryParams),this._queryParamMap}toString(){return mse.serialize(this)}}class tc{constructor(e,t){this.segments=e,this.children=t,this.parent=null,Object.values(t).forEach(i=>i.parent=this)}hasChildren(){return this.numberOfChildren>0}get numberOfChildren(){return Object.keys(this.children).length}toString(){return ED(this)}}class SS{constructor(e,t){this.path=e,this.parameters=t}get parameterMap(){return this._parameterMap??=e2(this.parameters),this._parameterMap}toString(){return tz(this)}}function xb(n,e){return n.length===e.length&&n.every((t,i)=>t.path===e[i].path)}let n2=(()=>{class n{static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275prov=Gi({token:n,factory:()=>new dk,providedIn:"root"})}return n})();class dk{parse(e){const t=new Sse(e);return new t2(t.parseRootSegment(),t.parseQueryParams(),t.parseFragment())}serialize(e){const t=`/${ES(e.root,!0)}`,i=function _se(n){const e=Object.entries(n).map(([t,i])=>Array.isArray(i)?i.map(r=>`${TD(t)}=${TD(r)}`).join("&"):`${TD(t)}=${TD(i)}`).filter(t=>t);return e.length?`?${e.join("&")}`:""}(e.queryParams);return`${t}${i}${"string"==typeof e.fragment?`#${function Ase(n){return encodeURI(n)}(e.fragment)}`:""}`}}const mse=new dk;function ED(n){return n.segments.map(e=>tz(e)).join("/")}function ES(n,e){if(!n.hasChildren())return ED(n);if(e){const t=n.children[Ra]?ES(n.children[Ra],!1):"",i=[];return Object.entries(n.children).forEach(([r,s])=>{r!==Ra&&i.push(`${r}:${ES(s,!1)}`)}),i.length>0?`${t}(${i.join("//")})`:t}{const t=function pse(n,e){let t=[];return Object.entries(n.children).forEach(([i,r])=>{i===Ra&&(t=t.concat(e(r,i)))}),Object.entries(n.children).forEach(([i,r])=>{i!==Ra&&(t=t.concat(e(r,i)))}),t}(n,(i,r)=>r===Ra?[ES(n.children[Ra],!1)]:[`${r}:${ES(i,!1)}`]);return 1===Object.keys(n.children).length&&null!=n.children[Ra]?`${ED(n)}/${t[0]}`:`${ED(n)}/(${t.join("//")})`}}function J9(n){return encodeURIComponent(n).replace(/%40/g,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",")}function TD(n){return J9(n).replace(/%3B/gi,";")}function uk(n){return J9(n).replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/%26/gi,"&")}function DD(n){return decodeURIComponent(n)}function ez(n){return DD(n.replace(/\+/g,"%20"))}function tz(n){return`${uk(n.path)}${function gse(n){return Object.entries(n).map(([e,t])=>`;${uk(e)}=${uk(t)}`).join("")}(n.parameters)}`}const yse=/^[^\/()?;#]+/;function hk(n){const e=n.match(yse);return e?e[0]:""}const vse=/^[^\/()?;=#]+/,xse=/^[^=?&#]+/,Cse=/^[^&#]+/;class Sse{constructor(e){this.url=e,this.remaining=e}parseRootSegment(){return this.consumeOptional("/"),""===this.remaining||this.peekStartsWith("?")||this.peekStartsWith("#")?new tc([],{}):new tc([],this.parseChildren())}parseQueryParams(){const e={};if(this.consumeOptional("?"))do{this.parseQueryParam(e)}while(this.consumeOptional("&"));return e}parseFragment(){return this.consumeOptional("#")?decodeURIComponent(this.remaining):null}parseChildren(){if(""===this.remaining)return{};this.consumeOptional("/");const e=[];for(this.peekStartsWith("(")||e.push(this.parseSegment());this.peekStartsWith("/")&&!this.peekStartsWith("//")&&!this.peekStartsWith("/(");)this.capture("/"),e.push(this.parseSegment());let t={};this.peekStartsWith("/(")&&(this.capture("/"),t=this.parseParens(!0));let i={};return this.peekStartsWith("(")&&(i=this.parseParens(!1)),(e.length>0||Object.keys(t).length>0)&&(i[Ra]=new tc(e,t)),i}parseSegment(){const e=hk(this.remaining);if(""===e&&this.peekStartsWith(";"))throw new Ln(4009,!1);return this.capture(e),new SS(DD(e),this.parseMatrixParams())}parseMatrixParams(){const e={};for(;this.consumeOptional(";");)this.parseParam(e);return e}parseParam(e){const t=function bse(n){const e=n.match(vse);return e?e[0]:""}(this.remaining);if(!t)return;this.capture(t);let i="";if(this.consumeOptional("=")){const r=hk(this.remaining);r&&(i=r,this.capture(i))}e[DD(t)]=DD(i)}parseQueryParam(e){const t=function wse(n){const e=n.match(xse);return e?e[0]:""}(this.remaining);if(!t)return;this.capture(t);let i="";if(this.consumeOptional("=")){const o=function Mse(n){const e=n.match(Cse);return e?e[0]:""}(this.remaining);o&&(i=o,this.capture(i))}const r=ez(t),s=ez(i);if(e.hasOwnProperty(r)){let o=e[r];Array.isArray(o)||(o=[o],e[r]=o),o.push(s)}else e[r]=s}parseParens(e){const t={};for(this.capture("(");!this.consumeOptional(")")&&this.remaining.length>0;){const i=hk(this.remaining),r=this.remaining[i.length];if("/"!==r&&")"!==r&&";"!==r)throw new Ln(4010,!1);let s;i.indexOf(":")>-1?(s=i.slice(0,i.indexOf(":")),this.capture(s),this.capture(":")):e&&(s=Ra);const o=this.parseChildren();t[s]=1===Object.keys(o).length?o[Ra]:new tc([],o),this.consumeOptional("//")}return t}peekStartsWith(e){return this.remaining.startsWith(e)}consumeOptional(e){return!!this.peekStartsWith(e)&&(this.remaining=this.remaining.substring(e.length),!0)}capture(e){if(!this.consumeOptional(e))throw new Ln(4011,!1)}}function nz(n){return n.segments.length>0?new tc([],{[Ra]:n}):n}function iz(n){const e={};for(const[i,r]of Object.entries(n.children)){const s=iz(r);if(i===Ra&&0===s.segments.length&&s.hasChildren())for(const[o,l]of Object.entries(s.children))e[o]=l;else(s.segments.length>0||s.hasChildren())&&(e[i]=s)}return function Ese(n){if(1===n.numberOfChildren&&n.children[Ra]){const e=n.children[Ra];return new tc(n.segments.concat(e.segments),e.children)}return n}(new tc(n.segments,e))}function r2(n){return n instanceof t2}function rz(n){let e;const r=nz(function t(s){const o={};for(const d of s.children){const u=t(d);o[d.outlet]=u}const l=new tc(s.url,o);return s===n&&(e=l),l}(n.root));return e??r}function sz(n,e,t,i){let r=n;for(;r.parent;)r=r.parent;if(0===e.length)return fk(r,r,r,t,i);const s=function Dse(n){if("string"==typeof n[0]&&1===n.length&&"/"===n[0])return new az(!0,0,n);let e=0,t=!1;const i=n.reduce((r,s,o)=>{if("object"==typeof s&&null!=s){if(s.outlets){const l={};return Object.entries(s.outlets).forEach(([d,u])=>{l[d]="string"==typeof u?u.split("/"):u}),[...r,{outlets:l}]}if(s.segmentPath)return[...r,s.segmentPath]}return"string"!=typeof s?[...r,s]:0===o?(s.split("/").forEach((l,d)=>{0==d&&"."===l||(0==d&&""===l?t=!0:".."===l?e++:""!=l&&r.push(l))}),r):[...r,s]},[]);return new az(t,e,i)}(e);if(s.toRoot())return fk(r,r,new tc([],{}),t,i);const o=function Ise(n,e,t){if(n.isAbsolute)return new BD(e,!0,0);if(!t)return new BD(e,!1,NaN);if(null===t.parent)return new BD(t,!0,0);const i=ID(n.commands[0])?0:1;return function Bse(n,e,t){let i=n,r=e,s=t;for(;s>r;){if(s-=r,i=i.parent,!i)throw new Ln(4005,!1);r=i.segments.length}return new BD(i,!1,r-s)}(t,t.segments.length-1+i,n.numberOfDoubleDots)}(s,r,n),l=o.processChildren?DS(o.segmentGroup,o.index,s.commands):lz(o.segmentGroup,o.index,s.commands);return fk(r,o.segmentGroup,l,t,i)}function ID(n){return"object"==typeof n&&null!=n&&!n.outlets&&!n.segmentPath}function TS(n){return"object"==typeof n&&null!=n&&n.outlets}function fk(n,e,t,i,r){let o,s={};i&&Object.entries(i).forEach(([d,u])=>{s[d]=Array.isArray(u)?u.map(f=>`${f}`):`${u}`}),o=n===e?t:oz(n,e,t);const l=nz(iz(o));return new t2(l,s,r)}function oz(n,e,t){const i={};return Object.entries(n.children).forEach(([r,s])=>{i[r]=s===e?t:oz(s,e,t)}),new tc(n.segments,i)}class az{constructor(e,t,i){if(this.isAbsolute=e,this.numberOfDoubleDots=t,this.commands=i,e&&i.length>0&&ID(i[0]))throw new Ln(4003,!1);const r=i.find(TS);if(r&&r!==j9(i))throw new Ln(4004,!1)}toRoot(){return this.isAbsolute&&1===this.commands.length&&"/"==this.commands[0]}}class BD{constructor(e,t,i){this.segmentGroup=e,this.processChildren=t,this.index=i}}function lz(n,e,t){if(n??=new tc([],{}),0===n.segments.length&&n.hasChildren())return DS(n,e,t);const i=function Rse(n,e,t){let i=0,r=e;const s={match:!1,pathIndex:0,commandIndex:0};for(;r=t.length)return s;const o=n.segments[r],l=t[i];if(TS(l))break;const d=`${l}`,u=i0&&void 0===d)break;if(d&&u&&"object"==typeof u&&void 0===u.outlets){if(!dz(d,u,o))return s;i+=2}else{if(!dz(d,{},o))return s;i++}r++}return{match:!0,pathIndex:r,commandIndex:i}}(n,e,t),r=t.slice(i.commandIndex);if(i.match&&i.pathIndexs!==Ra)&&n.children[Ra]&&1===n.numberOfChildren&&0===n.children[Ra].segments.length){const s=DS(n.children[Ra],e,t);return new tc(n.segments,s.children)}return Object.entries(i).forEach(([s,o])=>{"string"==typeof o&&(o=[o]),null!==o&&(r[s]=lz(n.children[s],e,o))}),Object.entries(n.children).forEach(([s,o])=>{void 0===i[s]&&(r[s]=o)}),new tc(n.segments,r)}}function pk(n,e,t){const i=n.segments.slice(0,e);let r=0;for(;r{"string"==typeof i&&(i=[i]),null!==i&&(e[t]=pk(new tc([],{}),0,i))}),e}function cz(n){const e={};return Object.entries(n).forEach(([t,i])=>e[t]=`${i}`),e}function dz(n,e,t){return n==t.path&&v0(e,t.parameters)}const IS="imperative";var fl=function(n){return n[n.NavigationStart=0]="NavigationStart",n[n.NavigationEnd=1]="NavigationEnd",n[n.NavigationCancel=2]="NavigationCancel",n[n.NavigationError=3]="NavigationError",n[n.RoutesRecognized=4]="RoutesRecognized",n[n.ResolveStart=5]="ResolveStart",n[n.ResolveEnd=6]="ResolveEnd",n[n.GuardsCheckStart=7]="GuardsCheckStart",n[n.GuardsCheckEnd=8]="GuardsCheckEnd",n[n.RouteConfigLoadStart=9]="RouteConfigLoadStart",n[n.RouteConfigLoadEnd=10]="RouteConfigLoadEnd",n[n.ChildActivationStart=11]="ChildActivationStart",n[n.ChildActivationEnd=12]="ChildActivationEnd",n[n.ActivationStart=13]="ActivationStart",n[n.ActivationEnd=14]="ActivationEnd",n[n.Scroll=15]="Scroll",n[n.NavigationSkipped=16]="NavigationSkipped",n}(fl||{});class b0{constructor(e,t){this.id=e,this.url=t}}class PD extends b0{constructor(e,t,i="imperative",r=null){super(e,t),this.type=fl.NavigationStart,this.navigationTrigger=i,this.restoredState=r}toString(){return`NavigationStart(id: ${this.id}, url: '${this.url}')`}}class U_ extends b0{constructor(e,t,i){super(e,t),this.urlAfterRedirects=i,this.type=fl.NavigationEnd}toString(){return`NavigationEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}')`}}var cm=function(n){return n[n.Redirect=0]="Redirect",n[n.SupersededByNewNavigation=1]="SupersededByNewNavigation",n[n.NoDataFromResolver=2]="NoDataFromResolver",n[n.GuardRejected=3]="GuardRejected",n}(cm||{}),RD=function(n){return n[n.IgnoredSameUrlNavigation=0]="IgnoredSameUrlNavigation",n[n.IgnoredByUrlHandlingStrategy=1]="IgnoredByUrlHandlingStrategy",n}(RD||{});class s2 extends b0{constructor(e,t,i,r){super(e,t),this.reason=i,this.code=r,this.type=fl.NavigationCancel}toString(){return`NavigationCancel(id: ${this.id}, url: '${this.url}')`}}class o2 extends b0{constructor(e,t,i,r){super(e,t),this.reason=i,this.code=r,this.type=fl.NavigationSkipped}}class kD extends b0{constructor(e,t,i,r){super(e,t),this.error=i,this.target=r,this.type=fl.NavigationError}toString(){return`NavigationError(id: ${this.id}, url: '${this.url}', error: ${this.error})`}}class uz extends b0{constructor(e,t,i,r){super(e,t),this.urlAfterRedirects=i,this.state=r,this.type=fl.RoutesRecognized}toString(){return`RoutesRecognized(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class Fse extends b0{constructor(e,t,i,r){super(e,t),this.urlAfterRedirects=i,this.state=r,this.type=fl.GuardsCheckStart}toString(){return`GuardsCheckStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class Ose extends b0{constructor(e,t,i,r,s){super(e,t),this.urlAfterRedirects=i,this.state=r,this.shouldActivate=s,this.type=fl.GuardsCheckEnd}toString(){return`GuardsCheckEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state}, shouldActivate: ${this.shouldActivate})`}}class Lse extends b0{constructor(e,t,i,r){super(e,t),this.urlAfterRedirects=i,this.state=r,this.type=fl.ResolveStart}toString(){return`ResolveStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class Nse extends b0{constructor(e,t,i,r){super(e,t),this.urlAfterRedirects=i,this.state=r,this.type=fl.ResolveEnd}toString(){return`ResolveEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class Use{constructor(e){this.route=e,this.type=fl.RouteConfigLoadStart}toString(){return`RouteConfigLoadStart(path: ${this.route.path})`}}class zse{constructor(e){this.route=e,this.type=fl.RouteConfigLoadEnd}toString(){return`RouteConfigLoadEnd(path: ${this.route.path})`}}class Hse{constructor(e){this.snapshot=e,this.type=fl.ChildActivationStart}toString(){return`ChildActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class Vse{constructor(e){this.snapshot=e,this.type=fl.ChildActivationEnd}toString(){return`ChildActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class Gse{constructor(e){this.snapshot=e,this.type=fl.ActivationStart}toString(){return`ActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class qse{constructor(e){this.snapshot=e,this.type=fl.ActivationEnd}toString(){return`ActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class hz{constructor(e,t,i){this.routerEvent=e,this.position=t,this.anchor=i,this.type=fl.Scroll}toString(){return`Scroll(anchor: '${this.anchor}', position: '${this.position?`${this.position[0]}, ${this.position[1]}`:null}')`}}class mk{}class Ak{constructor(e){this.url=e}}class Qse{constructor(){this.outlet=null,this.route=null,this.injector=null,this.children=new BS,this.attachRef=null}}let BS=(()=>{class n{constructor(){this.contexts=new Map}onChildOutletCreated(t,i){const r=this.getOrCreateContext(t);r.outlet=i,this.contexts.set(t,r)}onChildOutletDestroyed(t){const i=this.getContext(t);i&&(i.outlet=null,i.attachRef=null)}onOutletDeactivated(){const t=this.contexts;return this.contexts=new Map,t}onOutletReAttached(t){this.contexts=t}getOrCreateContext(t){let i=this.getContext(t);return i||(i=new Qse,this.contexts.set(t,i)),i}getContext(t){return this.contexts.get(t)||null}static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();class fz{constructor(e){this._root=e}get root(){return this._root.value}parent(e){const t=this.pathFromRoot(e);return t.length>1?t[t.length-2]:null}children(e){const t=gk(e,this._root);return t?t.children.map(i=>i.value):[]}firstChild(e){const t=gk(e,this._root);return t&&t.children.length>0?t.children[0].value:null}siblings(e){const t=_k(e,this._root);return t.length<2?[]:t[t.length-2].children.map(r=>r.value).filter(r=>r!==e)}pathFromRoot(e){return _k(e,this._root).map(t=>t.value)}}function gk(n,e){if(n===e.value)return e;for(const t of e.children){const i=gk(n,t);if(i)return i}return null}function _k(n,e){if(n===e.value)return[e];for(const t of e.children){const i=_k(n,t);if(i.length)return i.unshift(e),i}return[]}class ag{constructor(e,t){this.value=e,this.children=t}toString(){return`TreeNode(${this.value})`}}function a2(n){const e={};return n&&n.children.forEach(t=>e[t.value.outlet]=t),e}class pz extends fz{constructor(e,t){super(e),this.snapshot=t,bk(this,e)}toString(){return this.snapshot.toString()}}function mz(n){const e=function Wse(n){const s=new vk([],{},{},"",{},Ra,n,null,{});return new Az("",new ag(s,[]))}(n),t=new cn([new SS("",{})]),i=new cn({}),r=new cn({}),s=new cn({}),o=new cn(""),l=new l2(t,i,s,o,r,Ra,n,e.root);return l.snapshot=e.root,new pz(new ag(l,[]),e)}class l2{constructor(e,t,i,r,s,o,l,d){this.urlSubject=e,this.paramsSubject=t,this.queryParamsSubject=i,this.fragmentSubject=r,this.dataSubject=s,this.outlet=o,this.component=l,this._futureSnapshot=d,this.title=this.dataSubject?.pipe(bi(u=>u[MS]))??po(void 0),this.url=e,this.params=t,this.queryParams=i,this.fragment=r,this.data=s}get routeConfig(){return this._futureSnapshot.routeConfig}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap??=this.params.pipe(bi(e=>e2(e))),this._paramMap}get queryParamMap(){return this._queryParamMap??=this.queryParams.pipe(bi(e=>e2(e))),this._queryParamMap}toString(){return this.snapshot?this.snapshot.toString():`Future(${this._futureSnapshot})`}}function yk(n,e,t="emptyOnly"){let i;const{routeConfig:r}=n;return i=null===e||"always"!==t&&""!==r?.path&&(e.component||e.routeConfig?.loadComponent)?{params:{...n.params},data:{...n.data},resolve:{...n.data,...n._resolvedData??{}}}:{params:{...e.params,...n.params},data:{...e.data,...n.data},resolve:{...n.data,...e.data,...r?.data,...n._resolvedData}},r&&_z(r)&&(i.resolve[MS]=r.title),i}class vk{get title(){return this.data?.[MS]}constructor(e,t,i,r,s,o,l,d,u){this.url=e,this.params=t,this.queryParams=i,this.fragment=r,this.data=s,this.outlet=o,this.component=l,this.routeConfig=d,this._resolve=u}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap??=e2(this.params),this._paramMap}get queryParamMap(){return this._queryParamMap??=e2(this.queryParams),this._queryParamMap}toString(){return`Route(url:'${this.url.map(i=>i.toString()).join("/")}', path:'${this.routeConfig?this.routeConfig.path:""}')`}}class Az extends fz{constructor(e,t){super(t),this.url=e,bk(this,t)}toString(){return gz(this._root)}}function bk(n,e){e.value._routerState=n,e.children.forEach(t=>bk(n,t))}function gz(n){const e=n.children.length>0?` { ${n.children.map(gz).join(", ")} } `:"";return`${n.value}${e}`}function xk(n){if(n.snapshot){const e=n.snapshot,t=n._futureSnapshot;n.snapshot=t,v0(e.queryParams,t.queryParams)||n.queryParamsSubject.next(t.queryParams),e.fragment!==t.fragment&&n.fragmentSubject.next(t.fragment),v0(e.params,t.params)||n.paramsSubject.next(t.params),function cse(n,e){if(n.length!==e.length)return!1;for(let t=0;tv0(t.parameters,e[i].parameters))}(n.url,e.url);return t&&!(!n.parent!=!e.parent)&&(!n.parent||wk(n.parent,e.parent))}function _z(n){return"string"==typeof n.title||null===n.title}let Ck=(()=>{class n{constructor(){this.activated=null,this._activatedRoute=null,this.name=Ra,this.activateEvents=new Ls,this.deactivateEvents=new Ls,this.attachEvents=new Ls,this.detachEvents=new Ls,this.parentContexts=pi(BS),this.location=pi(fs),this.changeDetector=pi(Sc),this.environmentInjector=pi(Rc),this.inputBinder=pi(FD,{optional:!0}),this.supportsBindingToComponentInputs=!0}get activatedComponentRef(){return this.activated}ngOnChanges(t){if(t.name){const{firstChange:i,previousValue:r}=t.name;if(i)return;this.isTrackedInParentContexts(r)&&(this.deactivate(),this.parentContexts.onChildOutletDestroyed(r)),this.initializeOutletWithName()}}ngOnDestroy(){this.isTrackedInParentContexts(this.name)&&this.parentContexts.onChildOutletDestroyed(this.name),this.inputBinder?.unsubscribeFromRouteData(this)}isTrackedInParentContexts(t){return this.parentContexts.getContext(t)?.outlet===this}ngOnInit(){this.initializeOutletWithName()}initializeOutletWithName(){if(this.parentContexts.onChildOutletCreated(this.name,this),this.activated)return;const t=this.parentContexts.getContext(this.name);t?.route&&(t.attachRef?this.attach(t.attachRef,t.route):this.activateWith(t.route,t.injector))}get isActivated(){return!!this.activated}get component(){if(!this.activated)throw new Ln(4012,!1);return this.activated.instance}get activatedRoute(){if(!this.activated)throw new Ln(4012,!1);return this._activatedRoute}get activatedRouteData(){return this._activatedRoute?this._activatedRoute.snapshot.data:{}}detach(){if(!this.activated)throw new Ln(4012,!1);this.location.detach();const t=this.activated;return this.activated=null,this._activatedRoute=null,this.detachEvents.emit(t.instance),t}attach(t,i){this.activated=t,this._activatedRoute=i,this.location.insert(t.hostView),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.attachEvents.emit(t.instance)}deactivate(){if(this.activated){const t=this.component;this.activated.destroy(),this.activated=null,this._activatedRoute=null,this.deactivateEvents.emit(t)}}activateWith(t,i){if(this.isActivated)throw new Ln(4013,!1);this._activatedRoute=t;const r=this.location,o=t.snapshot.component,l=this.parentContexts.getOrCreateContext(this.name).children,d=new jse(t,l,r.injector);this.activated=r.createComponent(o,{index:r.length,injector:d,environmentInjector:i??this.environmentInjector}),this.changeDetector.markForCheck(),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.activateEvents.emit(this.activated.instance)}static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275dir=Ft({type:n,selectors:[["router-outlet"]],inputs:{name:"name"},outputs:{activateEvents:"activate",deactivateEvents:"deactivate",attachEvents:"attach",detachEvents:"detach"},exportAs:["outlet"],standalone:!0,features:[kl]})}return n})();class jse{constructor(e,t,i){this.route=e,this.childContexts=t,this.parent=i}get(e,t){return e===l2?this.route:e===BS?this.childContexts:this.parent.get(e,t)}}const FD=new Bi("");let yz=(()=>{class n{constructor(){this.outletDataSubscriptions=new Map}bindActivatedRouteToOutletComponent(t){this.unsubscribeFromRouteData(t),this.subscribeToRouteData(t)}unsubscribeFromRouteData(t){this.outletDataSubscriptions.get(t)?.unsubscribe(),this.outletDataSubscriptions.delete(t)}subscribeToRouteData(t){const{activatedRoute:i}=t,r=xD([i.queryParams,i.params,i.data]).pipe(Df(([s,o,l],d)=>(l={...s,...o,...l},0===d?po(l):Promise.resolve(l)))).subscribe(s=>{if(!t.isActivated||!t.activatedComponentRef||t.activatedRoute!==i||null===i.component)return void this.unsubscribeFromRouteData(t);const o=function ote(n){const e=Wo(n);if(!e)return null;const t=new Oi(e);return{get selector(){return t.selector},get type(){return t.componentType},get inputs(){return t.inputs},get outputs(){return t.outputs},get ngContentSelectors(){return t.ngContentSelectors},get isStandalone(){return e.standalone},get isSignal(){return e.signals}}}(i.component);if(o)for(const{templateName:l}of o.inputs)t.activatedComponentRef.setInput(l,s[l]);else this.unsubscribeFromRouteData(t)});this.outletDataSubscriptions.set(t,r)}static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac})}return n})();function PS(n,e,t){if(t&&n.shouldReuseRoute(e.value,t.value.snapshot)){const i=t.value;i._futureSnapshot=e.value;const r=function Xse(n,e,t){return e.children.map(i=>{for(const r of t.children)if(n.shouldReuseRoute(i.value,r.value.snapshot))return PS(n,i,r);return PS(n,i)})}(n,e,t);return new ag(i,r)}{if(n.shouldAttach(e.value)){const s=n.retrieve(e.value);if(null!==s){const o=s.route;return o.value._futureSnapshot=e.value,o.children=e.children.map(l=>PS(n,l)),o}}const i=function Yse(n){return new l2(new cn(n.url),new cn(n.params),new cn(n.queryParams),new cn(n.fragment),new cn(n.data),n.outlet,n.component,n)}(e.value),r=e.children.map(s=>PS(n,s));return new ag(i,r)}}const vz="ngNavigationCancelingError";function bz(n,e){const{redirectTo:t,navigationBehaviorOptions:i}=r2(e)?{redirectTo:e,navigationBehaviorOptions:void 0}:e,r=xz(!1,cm.Redirect);return r.url=t,r.navigationBehaviorOptions=i,r}function xz(n,e){const t=new Error(`NavigationCancelingError: ${n||""}`);return t[vz]=!0,t.cancellationCode=e,t}function wz(n){return!!n&&n[vz]}let Cz=(()=>{class n{static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275cmp=rs({type:n,selectors:[["ng-component"]],standalone:!0,features:[yd],decls:1,vars:0,template:function(i,r){1&i&&Vr(0,"router-outlet")},dependencies:[Ck],encapsulation:2})}return n})();function Mk(n){const e=n.children&&n.children.map(Mk),t=e?{...n,children:e}:{...n};return!t.component&&!t.loadComponent&&(e||t.loadChildren)&&t.outlet&&t.outlet!==Ra&&(t.component=Cz),t}function x0(n){return n.outlet||Ra}function RS(n){if(!n)return null;if(n.routeConfig?._injector)return n.routeConfig._injector;for(let e=n.parent;e;e=e.parent){const t=e.routeConfig;if(t?._loadedInjector)return t._loadedInjector;if(t?._injector)return t._injector}return null}class roe{constructor(e,t,i,r,s){this.routeReuseStrategy=e,this.futureState=t,this.currState=i,this.forwardEvent=r,this.inputBindingEnabled=s}activate(e){const t=this.futureState._root,i=this.currState?this.currState._root:null;this.deactivateChildRoutes(t,i,e),xk(this.futureState.root),this.activateChildRoutes(t,i,e)}deactivateChildRoutes(e,t,i){const r=a2(t);e.children.forEach(s=>{const o=s.value.outlet;this.deactivateRoutes(s,r[o],i),delete r[o]}),Object.values(r).forEach(s=>{this.deactivateRouteAndItsChildren(s,i)})}deactivateRoutes(e,t,i){const r=e.value,s=t?t.value:null;if(r===s)if(r.component){const o=i.getContext(r.outlet);o&&this.deactivateChildRoutes(e,t,o.children)}else this.deactivateChildRoutes(e,t,i);else s&&this.deactivateRouteAndItsChildren(t,i)}deactivateRouteAndItsChildren(e,t){e.value.component&&this.routeReuseStrategy.shouldDetach(e.value.snapshot)?this.detachAndStoreRouteSubtree(e,t):this.deactivateRouteAndOutlet(e,t)}detachAndStoreRouteSubtree(e,t){const i=t.getContext(e.value.outlet),r=i&&e.value.component?i.children:t,s=a2(e);for(const o of Object.values(s))this.deactivateRouteAndItsChildren(o,r);if(i&&i.outlet){const o=i.outlet.detach(),l=i.children.onOutletDeactivated();this.routeReuseStrategy.store(e.value.snapshot,{componentRef:o,route:e,contexts:l})}}deactivateRouteAndOutlet(e,t){const i=t.getContext(e.value.outlet),r=i&&e.value.component?i.children:t,s=a2(e);for(const o of Object.values(s))this.deactivateRouteAndItsChildren(o,r);i&&(i.outlet&&(i.outlet.deactivate(),i.children.onOutletDeactivated()),i.attachRef=null,i.route=null)}activateChildRoutes(e,t,i){const r=a2(t);e.children.forEach(s=>{this.activateRoutes(s,r[s.value.outlet],i),this.forwardEvent(new qse(s.value.snapshot))}),e.children.length&&this.forwardEvent(new Vse(e.value.snapshot))}activateRoutes(e,t,i){const r=e.value,s=t?t.value:null;if(xk(r),r===s)if(r.component){const o=i.getOrCreateContext(r.outlet);this.activateChildRoutes(e,t,o.children)}else this.activateChildRoutes(e,t,i);else if(r.component){const o=i.getOrCreateContext(r.outlet);if(this.routeReuseStrategy.shouldAttach(r.snapshot)){const l=this.routeReuseStrategy.retrieve(r.snapshot);this.routeReuseStrategy.store(r.snapshot,null),o.children.onOutletReAttached(l.contexts),o.attachRef=l.componentRef,o.route=l.route.value,o.outlet&&o.outlet.attach(l.componentRef,l.route.value),xk(l.route.value),this.activateChildRoutes(e,null,o.children)}else{const l=RS(r.snapshot);o.attachRef=null,o.route=r,o.injector=l,o.outlet&&o.outlet.activateWith(r,o.injector),this.activateChildRoutes(e,null,o.children)}}else this.activateChildRoutes(e,null,i)}}class Mz{constructor(e){this.path=e,this.route=this.path[this.path.length-1]}}class OD{constructor(e,t){this.component=e,this.route=t}}function soe(n,e,t){const i=n._root;return kS(i,e?e._root:null,t,[i.value])}function c2(n,e){const t=Symbol(),i=e.get(n,t);return i===t?"function"!=typeof n||function $h(n){return null!==ic(n)}(n)?e.get(n):n:i}function kS(n,e,t,i,r={canDeactivateChecks:[],canActivateChecks:[]}){const s=a2(e);return n.children.forEach(o=>{(function aoe(n,e,t,i,r={canDeactivateChecks:[],canActivateChecks:[]}){const s=n.value,o=e?e.value:null,l=t?t.getContext(n.value.outlet):null;if(o&&s.routeConfig===o.routeConfig){const d=function loe(n,e,t){if("function"==typeof t)return t(n,e);switch(t){case"pathParamsChange":return!xb(n.url,e.url);case"pathParamsOrQueryParamsChange":return!xb(n.url,e.url)||!v0(n.queryParams,e.queryParams);case"always":return!0;case"paramsOrQueryParamsChange":return!wk(n,e)||!v0(n.queryParams,e.queryParams);default:return!wk(n,e)}}(o,s,s.routeConfig.runGuardsAndResolvers);d?r.canActivateChecks.push(new Mz(i)):(s.data=o.data,s._resolvedData=o._resolvedData),kS(n,e,s.component?l?l.children:null:t,i,r),d&&l&&l.outlet&&l.outlet.isActivated&&r.canDeactivateChecks.push(new OD(l.outlet.component,o))}else o&&FS(e,l,r),r.canActivateChecks.push(new Mz(i)),kS(n,null,s.component?l?l.children:null:t,i,r)})(o,s[o.value.outlet],t,i.concat([o.value]),r),delete s[o.value.outlet]}),Object.entries(s).forEach(([o,l])=>FS(l,t.getContext(o),r)),r}function FS(n,e,t){const i=a2(n),r=n.value;Object.entries(i).forEach(([s,o])=>{FS(o,r.component?e?e.children.getContext(s):null:e,t)}),t.canDeactivateChecks.push(new OD(r.component&&e&&e.outlet&&e.outlet.isActivated?e.outlet.component:null,r))}function OS(n){return"function"==typeof n}function Sz(n){return n instanceof wD||"EmptyError"===n?.name}const LD=Symbol("INITIAL_VALUE");function d2(){return Df(n=>xD(n.map(e=>e.pipe(ad(1),sA(LD)))).pipe(bi(e=>{for(const t of e)if(!0!==t){if(t===LD)return LD;if(!1===t||t instanceof t2)return t}return!0}),od(e=>e!==LD),ad(1)))}function Ez(n){return function ge(...n){return ye(n)}(lu(e=>{if(r2(e))throw bz(0,e)}),bi(e=>!0===e))}class Sk{constructor(e){this.segmentGroup=e||null}}class Ek extends Error{constructor(e){super(),this.urlTree=e}}function u2(n){return CS(new Sk(n))}class Eoe{constructor(e,t){this.urlSerializer=e,this.urlTree=t}lineralizeSegments(e,t){let i=[],r=t.root;for(;;){if(i=i.concat(r.segments),0===r.numberOfChildren)return po(i);if(r.numberOfChildren>1||!r.children[Ra])return CS(new Ln(4e3,!1));r=r.children[Ra]}}applyRedirectCommands(e,t,i){const r=this.applyRedirectCreateUrlTree(t,this.urlSerializer.parse(t),e,i);if(t.startsWith("/"))throw new Ek(r);return r}applyRedirectCreateUrlTree(e,t,i,r){const s=this.createSegmentGroup(e,t.root,i,r);return new t2(s,this.createQueryParams(t.queryParams,this.urlTree.queryParams),t.fragment)}createQueryParams(e,t){const i={};return Object.entries(e).forEach(([r,s])=>{if("string"==typeof s&&s.startsWith(":")){const l=s.substring(1);i[r]=t[l]}else i[r]=s}),i}createSegmentGroup(e,t,i,r){const s=this.createSegments(e,t.segments,i,r);let o={};return Object.entries(t.children).forEach(([l,d])=>{o[l]=this.createSegmentGroup(e,d,i,r)}),new tc(s,o)}createSegments(e,t,i,r){return t.map(s=>s.path.startsWith(":")?this.findPosParam(e,s,r):this.findOrReturn(s,i))}findPosParam(e,t,i){const r=i[t.path.substring(1)];if(!r)throw new Ln(4001,!1);return r}findOrReturn(e,t){let i=0;for(const r of t){if(r.path===e.path)return t.splice(i),r;i++}return e}}const Tk={matched:!1,consumedSegments:[],remainingSegments:[],parameters:{},positionalParamSegments:{}};function Toe(n,e,t,i,r){const s=Dk(n,e,t);return s.matched?(i=function Zse(n,e){return n.providers&&!n._injector&&(n._injector=C3(n.providers,e,`Route: ${n.path}`)),n._injector??e}(e,i),function Coe(n,e,t,i){const r=e.canMatch;return r&&0!==r.length?po(r.map(o=>{const l=c2(o,n);return Iy(function poe(n){return n&&OS(n.canMatch)}(l)?l.canMatch(e,t):El(n,()=>l(e,t)))})).pipe(d2(),Ez()):po(!0)}(i,e,t).pipe(bi(o=>!0===o?s:{...Tk}))):po(s)}function Dk(n,e,t){if("**"===e.path)return function Doe(n){return{matched:!0,parameters:n.length>0?j9(n).parameters:{},consumedSegments:n,remainingSegments:[],positionalParamSegments:{}}}(t);if(""===e.path)return"full"===e.pathMatch&&(n.hasChildren()||t.length>0)?{...Tk}:{matched:!0,consumedSegments:[],remainingSegments:t,parameters:{},positionalParamSegments:{}};const r=(e.matcher||lse)(t,n,e);if(!r)return{...Tk};const s={};Object.entries(r.posParams??{}).forEach(([l,d])=>{s[l]=d.path});const o=r.consumed.length>0?{...s,...r.consumed[r.consumed.length-1].parameters}:s;return{matched:!0,consumedSegments:r.consumed,remainingSegments:t.slice(r.consumed.length),parameters:o,positionalParamSegments:r.posParams??{}}}function Tz(n,e,t,i){return t.length>0&&function Poe(n,e,t){return t.some(i=>ND(n,e,i)&&x0(i)!==Ra)}(n,t,i)?{segmentGroup:new tc(e,Boe(i,new tc(t,n.children))),slicedSegments:[]}:0===t.length&&function Roe(n,e,t){return t.some(i=>ND(n,e,i))}(n,t,i)?{segmentGroup:new tc(n.segments,Ioe(n,t,i,n.children)),slicedSegments:t}:{segmentGroup:new tc(n.segments,n.children),slicedSegments:t}}function Ioe(n,e,t,i){const r={};for(const s of t)if(ND(n,e,s)&&!i[x0(s)]){const o=new tc([],{});r[x0(s)]=o}return{...i,...r}}function Boe(n,e){const t={};t[Ra]=e;for(const i of n)if(""===i.path&&x0(i)!==Ra){const r=new tc([],{});t[x0(i)]=r}return t}function ND(n,e,t){return(!(n.hasChildren()||e.length>0)||"full"!==t.pathMatch)&&""===t.path}class Ooe{}class Uoe{constructor(e,t,i,r,s,o,l){this.injector=e,this.configLoader=t,this.rootComponentType=i,this.config=r,this.urlTree=s,this.paramsInheritanceStrategy=o,this.urlSerializer=l,this.applyRedirects=new Eoe(this.urlSerializer,this.urlTree),this.absoluteRedirectCount=0,this.allowRedirects=!0}noMatchError(e){return new Ln(4002,`'${e.segmentGroup}'`)}recognize(){const e=Tz(this.urlTree.root,[],[],this.config).segmentGroup;return this.match(e).pipe(bi(t=>{const i=new vk([],Object.freeze({}),Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,{},Ra,this.rootComponentType,null,{}),r=new ag(i,t),s=new Az("",r),o=function Tse(n,e,t=null,i=null){return sz(rz(n),e,t,i)}(i,[],this.urlTree.queryParams,this.urlTree.fragment);return o.queryParams=this.urlTree.queryParams,s.url=this.urlSerializer.serialize(o),this.inheritParamsAndData(s._root,null),{state:s,tree:o}}))}match(e){return this.processSegmentGroup(this.injector,this.config,e,Ra).pipe(bb(i=>{if(i instanceof Ek)return this.urlTree=i.urlTree,this.match(i.urlTree.root);throw i instanceof Sk?this.noMatchError(i):i}))}inheritParamsAndData(e,t){const i=e.value,r=yk(i,t,this.paramsInheritanceStrategy);i.params=Object.freeze(r.params),i.data=Object.freeze(r.data),e.children.forEach(s=>this.inheritParamsAndData(s,i))}processSegmentGroup(e,t,i,r){return 0===i.segments.length&&i.hasChildren()?this.processChildren(e,t,i):this.processSegment(e,t,i,i.segments,r,!0).pipe(bi(s=>s instanceof ag?[s]:[]))}processChildren(e,t,i){const r=[];for(const s of Object.keys(i.children))"primary"===s?r.unshift(s):r.push(s);return au(r).pipe(Yw(s=>{const o=i.children[s],l=function noe(n,e){const t=n.filter(i=>x0(i)===e);return t.push(...n.filter(i=>x0(i)!==e)),t}(t,s);return this.processSegmentGroup(e,l,o,s)}),function sse(n,e){return ci(function rse(n,e,t,i,r){return(s,o)=>{let l=t,d=e,u=0;s.subscribe(Pi(o,f=>{const A=u++;d=l?n(d,f,A):(l=!0,f),i&&o.next(d)},r&&(()=>{l&&o.next(d),o.complete()})))}}(n,e,arguments.length>=2,!0))}((s,o)=>(s.push(...o),s)),MD(null),function ose(n,e){const t=arguments.length>=2;return i=>i.pipe(n?od((r,s)=>n(r,s,i)):K,lk(1),t?MD(e):q9(()=>new wD))}(),qu(s=>{if(null===s)return u2(i);const o=Dz(s);return function zoe(n){n.sort((e,t)=>e.value.outlet===Ra?-1:t.value.outlet===Ra?1:e.value.outlet.localeCompare(t.value.outlet))}(o),po(o)}))}processSegment(e,t,i,r,s,o){return au(t).pipe(Yw(l=>this.processSegmentAgainstRoute(l._injector??e,t,l,i,r,s,o).pipe(bb(d=>{if(d instanceof Sk)return po(null);throw d}))),vb(l=>!!l),bb(l=>{if(Sz(l))return function Foe(n,e,t){return 0===e.length&&!n.children[t]}(i,r,s)?po(new Ooe):u2(i);throw l}))}processSegmentAgainstRoute(e,t,i,r,s,o,l){return function koe(n,e,t,i){return!!(x0(n)===i||i!==Ra&&ND(e,t,n))&&Dk(e,n,t).matched}(i,r,s,o)?void 0===i.redirectTo?this.matchSegmentAgainstRoute(e,r,i,s,o):this.allowRedirects&&l?this.expandSegmentAgainstRouteUsingRedirect(e,r,t,i,s,o):u2(r):u2(r)}expandSegmentAgainstRouteUsingRedirect(e,t,i,r,s,o){const{matched:l,consumedSegments:d,positionalParamSegments:u,remainingSegments:f}=Dk(t,r,s);if(!l)return u2(t);r.redirectTo.startsWith("/")&&(this.absoluteRedirectCount++,this.absoluteRedirectCount>31&&(this.allowRedirects=!1));const A=this.applyRedirects.applyRedirectCommands(d,r.redirectTo,u);return this.applyRedirects.lineralizeSegments(r,A).pipe(qu(S=>this.processSegment(e,i,t,S.concat(f),o,!1)))}matchSegmentAgainstRoute(e,t,i,r,s){const o=Toe(t,i,r,e);return"**"===i.path&&(t.children={}),o.pipe(Df(l=>l.matched?this.getChildConfig(e=i._injector??e,i,r).pipe(Df(({routes:d})=>{const u=i._loadedInjector??e,{consumedSegments:f,remainingSegments:A,parameters:S}=l,R=new vk(f,S,Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,function Voe(n){return n.data||{}}(i),x0(i),i.component??i._loadedComponent??null,i,function Goe(n){return n.resolve||{}}(i)),{segmentGroup:G,slicedSegments:re}=Tz(t,f,A,d);if(0===re.length&&G.hasChildren())return this.processChildren(u,d,G).pipe(bi(le=>null===le?null:new ag(R,le)));if(0===d.length&&0===re.length)return po(new ag(R,[]));const se=x0(i)===s;return this.processSegment(u,d,G,re,se?Ra:s,!0).pipe(bi(le=>new ag(R,le instanceof ag?[le]:[])))})):u2(t)))}getChildConfig(e,t,i){return t.children?po({routes:t.children,injector:e}):t.loadChildren?void 0!==t._loadedRoutes?po({routes:t._loadedRoutes,injector:t._loadedInjector}):function woe(n,e,t,i){const r=e.canLoad;return void 0===r||0===r.length?po(!0):po(r.map(o=>{const l=c2(o,n);return Iy(function doe(n){return n&&OS(n.canLoad)}(l)?l.canLoad(e,t):El(n,()=>l(e,t)))})).pipe(d2(),Ez())}(e,t,i).pipe(qu(r=>r?this.configLoader.loadChildren(e,t).pipe(lu(s=>{t._loadedRoutes=s.routes,t._loadedInjector=s.injector})):function Soe(n){return CS(xz(!1,cm.GuardRejected))}())):po({routes:[],injector:e})}}function Hoe(n){const e=n.value.routeConfig;return e&&""===e.path}function Dz(n){const e=[],t=new Set;for(const i of n){if(!Hoe(i)){e.push(i);continue}const r=e.find(s=>i.value.routeConfig===s.value.routeConfig);void 0!==r?(r.children.push(...i.children),t.add(r)):e.push(i)}for(const i of t){const r=Dz(i.children);e.push(new ag(i.value,r))}return e.filter(i=>!t.has(i))}function Iz(n){const e=n.children.map(t=>Iz(t)).flat();return[n,...e]}function Ik(n){return Df(e=>{const t=n(e);return t?au(t).pipe(bi(()=>e)):po(e)})}let Bz=(()=>{class n{buildTitle(t){let i,r=t.root;for(;void 0!==r;)i=this.getResolvedTitleForRoute(r)??i,r=r.children.find(s=>s.outlet===Ra);return i}getResolvedTitleForRoute(t){return t.data[MS]}static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275prov=Gi({token:n,factory:()=>pi(Xoe),providedIn:"root"})}return n})(),Xoe=(()=>{class n extends Bz{constructor(t){super(),this.title=t}updateTitle(t){const i=this.buildTitle(t);void 0!==i&&this.title.setTitle(i)}static#e=this.\u0275fac=function(i){return new(i||n)(xi(Eie))};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();const h2=new Bi("",{providedIn:"root",factory:()=>({})}),f2=new Bi("");let Bk=(()=>{class n{constructor(){this.componentLoaders=new WeakMap,this.childrenLoaders=new WeakMap,this.compiler=pi(gU)}loadComponent(t){if(this.componentLoaders.get(t))return this.componentLoaders.get(t);if(t._loadedComponent)return po(t._loadedComponent);this.onLoadStartListener&&this.onLoadStartListener(t);const i=Iy(t.loadComponent()).pipe(bi(Pz),lu(s=>{this.onLoadEndListener&&this.onLoadEndListener(t),t._loadedComponent=s}),Kw(()=>{this.componentLoaders.delete(t)})),r=new ak(i,()=>new hn).pipe(ok());return this.componentLoaders.set(t,r),r}loadChildren(t,i){if(this.childrenLoaders.get(i))return this.childrenLoaders.get(i);if(i._loadedRoutes)return po({routes:i._loadedRoutes,injector:i._loadedInjector});this.onLoadStartListener&&this.onLoadStartListener(i);const s=function Yoe(n,e,t,i){return Iy(n.loadChildren()).pipe(bi(Pz),qu(r=>r instanceof FN||Array.isArray(r)?po(r):au(e.compileModuleAsync(r))),bi(r=>{i&&i(n);let s,o,l=!1;return Array.isArray(r)?(o=r,!0):(s=r.create(t).injector,o=s.get(f2,[],{optional:!0,self:!0}).flat()),{routes:o.map(Mk),injector:s}}))}(i,this.compiler,t,this.onLoadEndListener).pipe(Kw(()=>{this.childrenLoaders.delete(i)})),o=new ak(s,()=>new hn).pipe(ok());return this.childrenLoaders.set(i,o),o}static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();function Pz(n){return function Koe(n){return n&&"object"==typeof n&&"default"in n}(n)?n.default:n}let Pk=(()=>{class n{static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275prov=Gi({token:n,factory:()=>pi(Zoe),providedIn:"root"})}return n})(),Zoe=(()=>{class n{shouldProcessUrl(t){return!0}extract(t){return t}merge(t,i){return t}static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();const Rz=new Bi(""),kz=new Bi("");function Joe(n,e,t){const i=n.get(kz),r=n.get(ba);return n.get(io).runOutsideAngular(()=>{if(!r.startViewTransition||i.skipNextTransition)return i.skipNextTransition=!1,Promise.resolve();let s;const o=new Promise(u=>{s=u}),l=r.startViewTransition(()=>(s(),function eae(n){return new Promise(e=>{Be(e,{injector:n})})}(n))),{onViewTransitionCreated:d}=i;return d&&El(n,()=>d({transition:l,from:e,to:t})),o})}let UD=(()=>{class n{get hasRequestedNavigation(){return 0!==this.navigationId}constructor(){this.currentNavigation=null,this.currentTransition=null,this.lastSuccessfulNavigation=null,this.events=new hn,this.transitionAbortSubject=new hn,this.configLoader=pi(Bk),this.environmentInjector=pi(Rc),this.urlSerializer=pi(n2),this.rootContexts=pi(BS),this.location=pi(gb),this.inputBindingEnabled=null!==pi(FD,{optional:!0}),this.titleStrategy=pi(Bz),this.options=pi(h2,{optional:!0})||{},this.paramsInheritanceStrategy=this.options.paramsInheritanceStrategy||"emptyOnly",this.urlHandlingStrategy=pi(Pk),this.createViewTransition=pi(Rz,{optional:!0}),this.navigationId=0,this.afterPreactivation=()=>po(void 0),this.rootComponentType=null,this.configLoader.onLoadEndListener=r=>this.events.next(new zse(r)),this.configLoader.onLoadStartListener=r=>this.events.next(new Use(r))}complete(){this.transitions?.complete()}handleNavigationRequest(t){const i=++this.navigationId;this.transitions?.next({...this.transitions.value,...t,id:i})}setupNavigations(t,i,r){return this.transitions=new cn({id:0,currentUrlTree:i,currentRawUrl:i,extractedUrl:this.urlHandlingStrategy.extract(i),urlAfterRedirects:this.urlHandlingStrategy.extract(i),rawUrl:i,extras:{},resolve:null,reject:null,promise:Promise.resolve(!0),source:IS,restoredState:null,currentSnapshot:r.snapshot,targetSnapshot:null,currentRouterState:r,targetRouterState:null,guards:{canActivateChecks:[],canDeactivateChecks:[]},guardsResult:null}),this.transitions.pipe(od(s=>0!==s.id),bi(s=>({...s,extractedUrl:this.urlHandlingStrategy.extract(s.rawUrl)})),Df(s=>{let o=!1,l=!1;return po(s).pipe(Df(d=>{if(this.navigationId>s.id)return this.cancelNavigationTransition(s,"",cm.SupersededByNewNavigation),rA;this.currentTransition=s,this.currentNavigation={id:d.id,initialUrl:d.rawUrl,extractedUrl:d.extractedUrl,trigger:d.source,extras:d.extras,previousNavigation:this.lastSuccessfulNavigation?{...this.lastSuccessfulNavigation,previousNavigation:null}:null};const u=!t.navigated||this.isUpdatingInternalState()||this.isUpdatedBrowserUrl();if(!u&&"reload"!==(d.extras.onSameUrlNavigation??t.onSameUrlNavigation)){const A="";return this.events.next(new o2(d.id,this.urlSerializer.serialize(d.rawUrl),A,RD.IgnoredSameUrlNavigation)),d.resolve(null),rA}if(this.urlHandlingStrategy.shouldProcessUrl(d.rawUrl))return po(d).pipe(Df(A=>{const S=this.transitions?.getValue();return this.events.next(new PD(A.id,this.urlSerializer.serialize(A.extractedUrl),A.source,A.restoredState)),S!==this.transitions?.getValue()?rA:Promise.resolve(A)}),function qoe(n,e,t,i,r,s){return qu(o=>function Loe(n,e,t,i,r,s,o="emptyOnly"){return new Uoe(n,e,t,i,r,o,s).recognize()}(n,e,t,i,o.extractedUrl,r,s).pipe(bi(({state:l,tree:d})=>({...o,targetSnapshot:l,urlAfterRedirects:d}))))}(this.environmentInjector,this.configLoader,this.rootComponentType,t.config,this.urlSerializer,this.paramsInheritanceStrategy),lu(A=>{s.targetSnapshot=A.targetSnapshot,s.urlAfterRedirects=A.urlAfterRedirects,this.currentNavigation={...this.currentNavigation,finalUrl:A.urlAfterRedirects};const S=new uz(A.id,this.urlSerializer.serialize(A.extractedUrl),this.urlSerializer.serialize(A.urlAfterRedirects),A.targetSnapshot);this.events.next(S)}));if(u&&this.urlHandlingStrategy.shouldProcessUrl(d.currentRawUrl)){const{id:A,extractedUrl:S,source:R,restoredState:G,extras:re}=d,se=new PD(A,this.urlSerializer.serialize(S),R,G);this.events.next(se);const le=mz(this.rootComponentType).snapshot;return this.currentTransition=s={...d,targetSnapshot:le,urlAfterRedirects:S,extras:{...re,skipLocationChange:!1,replaceUrl:!1}},this.currentNavigation.finalUrl=S,po(s)}{const A="";return this.events.next(new o2(d.id,this.urlSerializer.serialize(d.extractedUrl),A,RD.IgnoredByUrlHandlingStrategy)),d.resolve(null),rA}}),lu(d=>{const u=new Fse(d.id,this.urlSerializer.serialize(d.extractedUrl),this.urlSerializer.serialize(d.urlAfterRedirects),d.targetSnapshot);this.events.next(u)}),bi(d=>(this.currentTransition=s={...d,guards:soe(d.targetSnapshot,d.currentSnapshot,this.rootContexts)},s)),function moe(n,e){return qu(t=>{const{targetSnapshot:i,currentSnapshot:r,guards:{canActivateChecks:s,canDeactivateChecks:o}}=t;return 0===o.length&&0===s.length?po({...t,guardsResult:!0}):function Aoe(n,e,t,i){return au(n).pipe(qu(r=>function xoe(n,e,t,i,r){const s=e&&e.routeConfig?e.routeConfig.canDeactivate:null;return s&&0!==s.length?po(s.map(l=>{const d=RS(e)??r,u=c2(l,d);return Iy(function foe(n){return n&&OS(n.canDeactivate)}(u)?u.canDeactivate(n,e,t,i):El(d,()=>u(n,e,t,i))).pipe(vb())})).pipe(d2()):po(!0)}(r.component,r.route,t,e,i)),vb(r=>!0!==r,!0))}(o,i,r,n).pipe(qu(l=>l&&function coe(n){return"boolean"==typeof n}(l)?function goe(n,e,t,i){return au(e).pipe(Yw(r=>wS(function yoe(n,e){return null!==n&&e&&e(new Hse(n)),po(!0)}(r.route.parent,i),function _oe(n,e){return null!==n&&e&&e(new Gse(n)),po(!0)}(r.route,i),function boe(n,e,t){const i=e[e.length-1],s=e.slice(0,e.length-1).reverse().map(o=>function ooe(n){const e=n.routeConfig?n.routeConfig.canActivateChild:null;return e&&0!==e.length?{node:n,guards:e}:null}(o)).filter(o=>null!==o).map(o=>CD(()=>po(o.guards.map(d=>{const u=RS(o.node)??t,f=c2(d,u);return Iy(function hoe(n){return n&&OS(n.canActivateChild)}(f)?f.canActivateChild(i,n):El(u,()=>f(i,n))).pipe(vb())})).pipe(d2())));return po(s).pipe(d2())}(n,r.path,t),function voe(n,e,t){const i=e.routeConfig?e.routeConfig.canActivate:null;if(!i||0===i.length)return po(!0);const r=i.map(s=>CD(()=>{const o=RS(e)??t,l=c2(s,o);return Iy(function uoe(n){return n&&OS(n.canActivate)}(l)?l.canActivate(e,n):El(o,()=>l(e,n))).pipe(vb())}));return po(r).pipe(d2())}(n,r.route,t))),vb(r=>!0!==r,!0))}(i,s,n,e):po(l)),bi(l=>({...t,guardsResult:l})))})}(this.environmentInjector,d=>this.events.next(d)),lu(d=>{if(s.guardsResult=d.guardsResult,r2(d.guardsResult))throw bz(0,d.guardsResult);const u=new Ose(d.id,this.urlSerializer.serialize(d.extractedUrl),this.urlSerializer.serialize(d.urlAfterRedirects),d.targetSnapshot,!!d.guardsResult);this.events.next(u)}),od(d=>!!d.guardsResult||(this.cancelNavigationTransition(d,"",cm.GuardRejected),!1)),Ik(d=>{if(d.guards.canActivateChecks.length)return po(d).pipe(lu(u=>{const f=new Lse(u.id,this.urlSerializer.serialize(u.extractedUrl),this.urlSerializer.serialize(u.urlAfterRedirects),u.targetSnapshot);this.events.next(f)}),Df(u=>{let f=!1;return po(u).pipe(function Qoe(n,e){return qu(t=>{const{targetSnapshot:i,guards:{canActivateChecks:r}}=t;if(!r.length)return po(t);const s=new Set(r.map(d=>d.route)),o=new Set;for(const d of s)if(!o.has(d))for(const u of Iz(d))o.add(u);let l=0;return au(o).pipe(Yw(d=>s.has(d)?function Woe(n,e,t,i){const r=n.routeConfig,s=n._resolve;return void 0!==r?.title&&!_z(r)&&(s[MS]=r.title),function joe(n,e,t,i){const r=ck(n);if(0===r.length)return po({});const s={};return au(r).pipe(qu(o=>function $oe(n,e,t,i){const r=RS(e)??i,s=c2(n,r);return Iy(s.resolve?s.resolve(e,t):El(r,()=>s(e,t)))}(n[o],e,t,i).pipe(vb(),lu(l=>{s[o]=l}))),lk(1),Q9(s),bb(o=>Sz(o)?rA:CS(o)))}(s,n,e,i).pipe(bi(o=>(n._resolvedData=o,n.data=yk(n,n.parent,t).resolve,null)))}(d,i,n,e):(d.data=yk(d,d.parent,n).resolve,po(void 0))),lu(()=>l++),lk(1),qu(d=>l===o.size?po(t):rA))})}(this.paramsInheritanceStrategy,this.environmentInjector),lu({next:()=>f=!0,complete:()=>{f||this.cancelNavigationTransition(u,"",cm.NoDataFromResolver)}}))}),lu(u=>{const f=new Nse(u.id,this.urlSerializer.serialize(u.extractedUrl),this.urlSerializer.serialize(u.urlAfterRedirects),u.targetSnapshot);this.events.next(f)}))}),Ik(d=>{const u=f=>{const A=[];f.routeConfig?.loadComponent&&!f.routeConfig._loadedComponent&&A.push(this.configLoader.loadComponent(f.routeConfig).pipe(lu(S=>{f.component=S}),bi(()=>{})));for(const S of f.children)A.push(...u(S));return A};return xD(u(d.targetSnapshot.root)).pipe(MD(null),ad(1))}),Ik(()=>this.afterPreactivation()),Df(()=>{const{currentSnapshot:d,targetSnapshot:u}=s,f=this.createViewTransition?.(this.environmentInjector,d.root,u.root);return f?au(f).pipe(bi(()=>s)):po(s)}),bi(d=>{const u=function $se(n,e,t){const i=PS(n,e._root,t?t._root:void 0);return new pz(i,e)}(t.routeReuseStrategy,d.targetSnapshot,d.currentRouterState);return this.currentTransition=s={...d,targetRouterState:u},this.currentNavigation.targetRouterState=u,s}),lu(()=>{this.events.next(new mk)}),((n,e,t,i)=>bi(r=>(new roe(e,r.targetRouterState,r.currentRouterState,t,i).activate(n),r)))(this.rootContexts,t.routeReuseStrategy,d=>this.events.next(d),this.inputBindingEnabled),ad(1),lu({next:d=>{o=!0,this.lastSuccessfulNavigation=this.currentNavigation,this.events.next(new U_(d.id,this.urlSerializer.serialize(d.extractedUrl),this.urlSerializer.serialize(d.urlAfterRedirects))),this.titleStrategy?.updateTitle(d.targetRouterState.snapshot),d.resolve(!0)},complete:()=>{o=!0}}),Ql(this.transitionAbortSubject.pipe(lu(d=>{throw d}))),Kw(()=>{!o&&!l&&this.cancelNavigationTransition(s,"",cm.SupersededByNewNavigation),this.currentTransition?.id===s.id&&(this.currentNavigation=null,this.currentTransition=null)}),bb(d=>{if(l=!0,wz(d))this.events.next(new s2(s.id,this.urlSerializer.serialize(s.extractedUrl),d.message,d.cancellationCode)),function Kse(n){return wz(n)&&r2(n.url)}(d)?this.events.next(new Ak(d.url)):s.resolve(!1);else{this.events.next(new kD(s.id,this.urlSerializer.serialize(s.extractedUrl),d,s.targetSnapshot??void 0));try{s.resolve(t.errorHandler(d))}catch(u){this.options.resolveNavigationPromiseOnError?s.resolve(!1):s.reject(u)}}return rA}))}))}cancelNavigationTransition(t,i,r){const s=new s2(t.id,this.urlSerializer.serialize(t.extractedUrl),i,r);this.events.next(s),t.resolve(!1)}isUpdatingInternalState(){return this.currentTransition?.extractedUrl.toString()!==this.currentTransition?.currentUrlTree.toString()}isUpdatedBrowserUrl(){return this.urlHandlingStrategy.extract(this.urlSerializer.parse(this.location.path(!0))).toString()!==this.currentTransition?.extractedUrl.toString()&&!this.currentTransition?.extras.skipLocationChange}static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();function tae(n){return n!==IS}let nae=(()=>{class n{static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275prov=Gi({token:n,factory:()=>pi(rae),providedIn:"root"})}return n})();class iae{shouldDetach(e){return!1}store(e,t){}shouldAttach(e){return!1}retrieve(e){return null}shouldReuseRoute(e,t){return e.routeConfig===t.routeConfig}}let rae=(()=>{class n extends iae{static#e=this.\u0275fac=(()=>{let t;return function(r){return(t||(t=Ca(n)))(r||n)}})();static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),Fz=(()=>{class n{static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275prov=Gi({token:n,factory:()=>pi(sae),providedIn:"root"})}return n})(),sae=(()=>{class n extends Fz{constructor(){super(...arguments),this.location=pi(gb),this.urlSerializer=pi(n2),this.options=pi(h2,{optional:!0})||{},this.canceledNavigationResolution=this.options.canceledNavigationResolution||"replace",this.urlHandlingStrategy=pi(Pk),this.urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred",this.currentUrlTree=new t2,this.rawUrlTree=this.currentUrlTree,this.currentPageId=0,this.lastSuccessfulId=-1,this.routerState=mz(null),this.stateMemento=this.createStateMemento()}getCurrentUrlTree(){return this.currentUrlTree}getRawUrlTree(){return this.rawUrlTree}restoredState(){return this.location.getState()}get browserPageId(){return"computed"!==this.canceledNavigationResolution?this.currentPageId:this.restoredState()?.\u0275routerPageId??this.currentPageId}getRouterState(){return this.routerState}createStateMemento(){return{rawUrlTree:this.rawUrlTree,currentUrlTree:this.currentUrlTree,routerState:this.routerState}}registerNonRouterCurrentEntryChangeListener(t){return this.location.subscribe(i=>{"popstate"===i.type&&t(i.url,i.state)})}handleRouterEvent(t,i){if(t instanceof PD)this.stateMemento=this.createStateMemento();else if(t instanceof o2)this.rawUrlTree=i.initialUrl;else if(t instanceof uz){if("eager"===this.urlUpdateStrategy&&!i.extras.skipLocationChange){const r=this.urlHandlingStrategy.merge(i.finalUrl,i.initialUrl);this.setBrowserUrl(r,i)}}else t instanceof mk?(this.currentUrlTree=i.finalUrl,this.rawUrlTree=this.urlHandlingStrategy.merge(i.finalUrl,i.initialUrl),this.routerState=i.targetRouterState,"deferred"===this.urlUpdateStrategy&&(i.extras.skipLocationChange||this.setBrowserUrl(this.rawUrlTree,i))):t instanceof s2&&(t.code===cm.GuardRejected||t.code===cm.NoDataFromResolver)?this.restoreHistory(i):t instanceof kD?this.restoreHistory(i,!0):t instanceof U_&&(this.lastSuccessfulId=t.id,this.currentPageId=this.browserPageId)}setBrowserUrl(t,i){const r=this.urlSerializer.serialize(t);if(this.location.isCurrentPathEqualTo(r)||i.extras.replaceUrl){const o={...i.extras.state,...this.generateNgRouterState(i.id,this.browserPageId)};this.location.replaceState(r,"",o)}else{const s={...i.extras.state,...this.generateNgRouterState(i.id,this.browserPageId+1)};this.location.go(r,"",s)}}restoreHistory(t,i=!1){if("computed"===this.canceledNavigationResolution){const s=this.currentPageId-this.browserPageId;0!==s?this.location.historyGo(s):this.currentUrlTree===t.finalUrl&&0===s&&(this.resetState(t),this.resetUrlToCurrentUrlTree())}else"replace"===this.canceledNavigationResolution&&(i&&this.resetState(t),this.resetUrlToCurrentUrlTree())}resetState(t){this.routerState=this.stateMemento.routerState,this.currentUrlTree=this.stateMemento.currentUrlTree,this.rawUrlTree=this.urlHandlingStrategy.merge(this.currentUrlTree,t.finalUrl??this.rawUrlTree)}resetUrlToCurrentUrlTree(){this.location.replaceState(this.urlSerializer.serialize(this.rawUrlTree),"",this.generateNgRouterState(this.lastSuccessfulId,this.currentPageId))}generateNgRouterState(t,i){return"computed"===this.canceledNavigationResolution?{navigationId:t,\u0275routerPageId:i}:{navigationId:t}}static#e=this.\u0275fac=(()=>{let t;return function(r){return(t||(t=Ca(n)))(r||n)}})();static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();var LS=function(n){return n[n.COMPLETE=0]="COMPLETE",n[n.FAILED=1]="FAILED",n[n.REDIRECTING=2]="REDIRECTING",n}(LS||{});function Oz(n,e){n.events.pipe(od(t=>t instanceof U_||t instanceof s2||t instanceof kD||t instanceof o2),bi(t=>t instanceof U_||t instanceof o2?LS.COMPLETE:t instanceof s2&&(t.code===cm.Redirect||t.code===cm.SupersededByNewNavigation)?LS.REDIRECTING:LS.FAILED),od(t=>t!==LS.REDIRECTING),ad(1)).subscribe(()=>{e()})}function oae(n){throw n}const aae={paths:"exact",fragment:"ignored",matrixParams:"ignored",queryParams:"exact"},lae={paths:"subset",fragment:"ignored",matrixParams:"ignored",queryParams:"subset"};let lg=(()=>{class n{get currentUrlTree(){return this.stateManager.getCurrentUrlTree()}get rawUrlTree(){return this.stateManager.getRawUrlTree()}get events(){return this._events}get routerState(){return this.stateManager.getRouterState()}constructor(){this.disposed=!1,this.isNgZoneEnabled=!1,this.console=pi(aU),this.stateManager=pi(Fz),this.options=pi(h2,{optional:!0})||{},this.pendingTasks=pi(by),this.urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred",this.navigationTransitions=pi(UD),this.urlSerializer=pi(n2),this.location=pi(gb),this.urlHandlingStrategy=pi(Pk),this._events=new hn,this.errorHandler=this.options.errorHandler||oae,this.navigated=!1,this.routeReuseStrategy=pi(nae),this.onSameUrlNavigation=this.options.onSameUrlNavigation||"ignore",this.config=pi(f2,{optional:!0})?.flat()??[],this.componentInputBindingEnabled=!!pi(FD,{optional:!0}),this.eventsSubscription=new rt,this.isNgZoneEnabled=pi(io)instanceof io&&io.isInAngularZone(),this.resetConfig(this.config),this.navigationTransitions.setupNavigations(this,this.currentUrlTree,this.routerState).subscribe({error:t=>{this.console.warn(t)}}),this.subscribeToNavigationEvents()}subscribeToNavigationEvents(){const t=this.navigationTransitions.events.subscribe(i=>{try{const r=this.navigationTransitions.currentTransition,s=this.navigationTransitions.currentNavigation;if(null!==r&&null!==s)if(this.stateManager.handleRouterEvent(i,s),i instanceof s2&&i.code!==cm.Redirect&&i.code!==cm.SupersededByNewNavigation)this.navigated=!0;else if(i instanceof U_)this.navigated=!0;else if(i instanceof Ak){const o=this.urlHandlingStrategy.merge(i.url,r.currentRawUrl),l={info:r.extras.info,skipLocationChange:r.extras.skipLocationChange,replaceUrl:"eager"===this.urlUpdateStrategy||tae(r.source)};this.scheduleNavigation(o,IS,null,l,{resolve:r.resolve,reject:r.reject,promise:r.promise})}(function dae(n){return!(n instanceof mk||n instanceof Ak)})(i)&&this._events.next(i)}catch(r){this.navigationTransitions.transitionAbortSubject.next(r)}});this.eventsSubscription.add(t)}resetRootComponentType(t){this.routerState.root.component=t,this.navigationTransitions.rootComponentType=t}initialNavigation(){this.setUpLocationChangeListener(),this.navigationTransitions.hasRequestedNavigation||this.navigateToSyncWithBrowser(this.location.path(!0),IS,this.stateManager.restoredState())}setUpLocationChangeListener(){this.nonRouterCurrentEntryChangeSubscription??=this.stateManager.registerNonRouterCurrentEntryChangeListener((t,i)=>{setTimeout(()=>{this.navigateToSyncWithBrowser(t,"popstate",i)},0)})}navigateToSyncWithBrowser(t,i,r){const s={replaceUrl:!0},o=r?.navigationId?r:null;if(r){const d={...r};delete d.navigationId,delete d.\u0275routerPageId,0!==Object.keys(d).length&&(s.state=d)}const l=this.parseUrl(t);this.scheduleNavigation(l,i,o,s)}get url(){return this.serializeUrl(this.currentUrlTree)}getCurrentNavigation(){return this.navigationTransitions.currentNavigation}get lastSuccessfulNavigation(){return this.navigationTransitions.lastSuccessfulNavigation}resetConfig(t){this.config=t.map(Mk),this.navigated=!1}ngOnDestroy(){this.dispose()}dispose(){this.navigationTransitions.complete(),this.nonRouterCurrentEntryChangeSubscription&&(this.nonRouterCurrentEntryChangeSubscription.unsubscribe(),this.nonRouterCurrentEntryChangeSubscription=void 0),this.disposed=!0,this.eventsSubscription.unsubscribe()}createUrlTree(t,i={}){const{relativeTo:r,queryParams:s,fragment:o,queryParamsHandling:l,preserveFragment:d}=i,u=d?this.currentUrlTree.fragment:o;let A,f=null;switch(l){case"merge":f={...this.currentUrlTree.queryParams,...s};break;case"preserve":f=this.currentUrlTree.queryParams;break;default:f=s||null}null!==f&&(f=this.removeEmptyProps(f));try{A=rz(r?r.snapshot:this.routerState.snapshot.root)}catch{("string"!=typeof t[0]||!t[0].startsWith("/"))&&(t=[]),A=this.currentUrlTree.root}return sz(A,t,f,u??null)}navigateByUrl(t,i={skipLocationChange:!1}){const r=r2(t)?t:this.parseUrl(t),s=this.urlHandlingStrategy.merge(r,this.rawUrlTree);return this.scheduleNavigation(s,IS,null,i)}navigate(t,i={skipLocationChange:!1}){return function cae(n){for(let e=0;e(null!=s&&(i[r]=s),i),{})}scheduleNavigation(t,i,r,s,o){if(this.disposed)return Promise.resolve(!1);let l,d,u;o?(l=o.resolve,d=o.reject,u=o.promise):u=new Promise((A,S)=>{l=A,d=S});const f=this.pendingTasks.add();return Oz(this,()=>{queueMicrotask(()=>this.pendingTasks.remove(f))}),this.navigationTransitions.handleNavigationRequest({source:i,restoredState:r,currentUrlTree:this.currentUrlTree,currentRawUrl:this.currentUrlTree,rawUrl:t,extras:s,resolve:l,reject:d,promise:u,currentSnapshot:this.routerState.snapshot,currentRouterState:this.routerState}),u.catch(A=>Promise.reject(A))}static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),NS=(()=>{class n{constructor(t,i,r,s,o,l){this.router=t,this.route=i,this.tabIndexAttribute=r,this.renderer=s,this.el=o,this.locationStrategy=l,this.href=null,this.commands=null,this.onChanges=new hn,this.preserveFragment=!1,this.skipLocationChange=!1,this.replaceUrl=!1;const d=o.nativeElement.tagName?.toLowerCase();this.isAnchorElement="a"===d||"area"===d,this.isAnchorElement?this.subscription=t.events.subscribe(u=>{u instanceof U_&&this.updateHref()}):this.setTabIndexIfNotOnNativeEl("0")}setTabIndexIfNotOnNativeEl(t){null!=this.tabIndexAttribute||this.isAnchorElement||this.applyAttributeValue("tabindex",t)}ngOnChanges(t){this.isAnchorElement&&this.updateHref(),this.onChanges.next(this)}set routerLink(t){null!=t?(this.commands=Array.isArray(t)?t:[t],this.setTabIndexIfNotOnNativeEl("0")):(this.commands=null,this.setTabIndexIfNotOnNativeEl(null))}onClick(t,i,r,s,o){const l=this.urlTree;return!!(null===l||this.isAnchorElement&&(0!==t||i||r||s||o||"string"==typeof this.target&&"_self"!=this.target))||(this.router.navigateByUrl(l,{skipLocationChange:this.skipLocationChange,replaceUrl:this.replaceUrl,state:this.state,info:this.info}),!this.isAnchorElement)}ngOnDestroy(){this.subscription?.unsubscribe()}updateHref(){const t=this.urlTree;this.href=null!==t&&this.locationStrategy?this.locationStrategy?.prepareExternalUrl(this.router.serializeUrl(t)):null;const i=null===this.href?null:function gT(n,e,t){return function zB(n,e){return"src"===e&&("embed"===n||"frame"===n||"iframe"===n||"media"===n||"script"===n)||"href"===e&&("base"===n||"link"===n)?jx:K1}(e,t)(n)}(this.href,this.el.nativeElement.tagName.toLowerCase(),"href");this.applyAttributeValue("href",i)}applyAttributeValue(t,i){const r=this.renderer,s=this.el.nativeElement;null!==i?r.setAttribute(s,t,i):r.removeAttribute(s,t)}get urlTree(){return null===this.commands?null:this.router.createUrlTree(this.commands,{relativeTo:void 0!==this.relativeTo?this.relativeTo:this.route,queryParams:this.queryParams,fragment:this.fragment,queryParamsHandling:this.queryParamsHandling,preserveFragment:this.preserveFragment})}static#e=this.\u0275fac=function(i){return new(i||n)(Lt(lg),Lt(l2),bu("tabindex"),Lt(ZA),Lt(oo),Lt(Ab))};static#t=this.\u0275dir=Ft({type:n,selectors:[["","routerLink",""]],hostVars:1,hostBindings:function(i,r){1&i&&Ai("click",function(o){return r.onClick(o.button,o.ctrlKey,o.shiftKey,o.altKey,o.metaKey)}),2&i&&sl("target",r.target)},inputs:{target:"target",queryParams:"queryParams",fragment:"fragment",queryParamsHandling:"queryParamsHandling",state:"state",info:"info",relativeTo:"relativeTo",preserveFragment:[mi.HasDecoratorInputTransform,"preserveFragment","preserveFragment",_o],skipLocationChange:[mi.HasDecoratorInputTransform,"skipLocationChange","skipLocationChange",_o],replaceUrl:[mi.HasDecoratorInputTransform,"replaceUrl","replaceUrl",_o],routerLink:"routerLink"},standalone:!0,features:[ql,kl]})}return n})();class Lz{}let fae=(()=>{class n{constructor(t,i,r,s,o){this.router=t,this.injector=r,this.preloadingStrategy=s,this.loader=o}setUpPreloading(){this.subscription=this.router.events.pipe(od(t=>t instanceof U_),Yw(()=>this.preload())).subscribe(()=>{})}preload(){return this.processRoutes(this.injector,this.router.config)}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe()}processRoutes(t,i){const r=[];for(const s of i){s.providers&&!s._injector&&(s._injector=C3(s.providers,t,`Route: ${s.path}`));const o=s._injector??t,l=s._loadedInjector??o;(s.loadChildren&&!s._loadedRoutes&&void 0===s.canLoad||s.loadComponent&&!s._loadedComponent)&&r.push(this.preloadConfig(o,s)),(s.children||s._loadedRoutes)&&r.push(this.processRoutes(l,s.children??s._loadedRoutes))}return au(r).pipe(Jw())}preloadConfig(t,i){return this.preloadingStrategy.preload(i,()=>{let r;r=i.loadChildren&&void 0===i.canLoad?this.loader.loadChildren(t,i):po(null);const s=r.pipe(qu(o=>null===o?po(void 0):(i._loadedRoutes=o.routes,i._loadedInjector=o.injector,this.processRoutes(o.injector??t,o.routes))));return i.loadComponent&&!i._loadedComponent?au([s,this.loader.loadComponent(i)]).pipe(Jw()):s})}static#e=this.\u0275fac=function(i){return new(i||n)(xi(lg),xi(gU),xi(Rc),xi(Lz),xi(Bk))};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();const Rk=new Bi("");let Nz=(()=>{class n{constructor(t,i,r,s,o={}){this.urlSerializer=t,this.transitions=i,this.viewportScroller=r,this.zone=s,this.options=o,this.lastId=0,this.lastSource="imperative",this.restoredId=0,this.store={},o.scrollPositionRestoration||="disabled",o.anchorScrolling||="disabled"}init(){"disabled"!==this.options.scrollPositionRestoration&&this.viewportScroller.setHistoryScrollRestoration("manual"),this.routerEventsSubscription=this.createScrollEvents(),this.scrollEventsSubscription=this.consumeScrollEvents()}createScrollEvents(){return this.transitions.events.subscribe(t=>{t instanceof PD?(this.store[this.lastId]=this.viewportScroller.getScrollPosition(),this.lastSource=t.navigationTrigger,this.restoredId=t.restoredState?t.restoredState.navigationId:0):t instanceof U_?(this.lastId=t.id,this.scheduleScrollEvent(t,this.urlSerializer.parse(t.urlAfterRedirects).fragment)):t instanceof o2&&t.code===RD.IgnoredSameUrlNavigation&&(this.lastSource=void 0,this.restoredId=0,this.scheduleScrollEvent(t,this.urlSerializer.parse(t.url).fragment))})}consumeScrollEvents(){return this.transitions.events.subscribe(t=>{t instanceof hz&&(t.position?"top"===this.options.scrollPositionRestoration?this.viewportScroller.scrollToPosition([0,0]):"enabled"===this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition(t.position):t.anchor&&"enabled"===this.options.anchorScrolling?this.viewportScroller.scrollToAnchor(t.anchor):"disabled"!==this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition([0,0]))})}scheduleScrollEvent(t,i){this.zone.runOutsideAngular(()=>{setTimeout(()=>{this.zone.run(()=>{this.transitions.events.next(new hz(t,"popstate"===this.lastSource?this.store[this.restoredId]:null,i))})},0)})}ngOnDestroy(){this.routerEventsSubscription?.unsubscribe(),this.scrollEventsSubscription?.unsubscribe()}static#e=this.\u0275fac=function(i){fM()};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac})}return n})();function w0(n,e){return{\u0275kind:n,\u0275providers:e}}function zz(){const n=pi(ml);return e=>{const t=n.get(k_);if(e!==t.components[0])return;const i=n.get(lg),r=n.get(Hz);1===n.get(kk)&&i.initialNavigation(),n.get(Vz,null,va.Optional)?.setUpPreloading(),n.get(Rk,null,va.Optional)?.init(),i.resetRootComponentType(t.componentTypes[0]),r.closed||(r.next(),r.complete(),r.unsubscribe())}}const Hz=new Bi("",{factory:()=>new hn}),kk=new Bi("",{providedIn:"root",factory:()=>1}),Vz=new Bi("");function gae(n){return w0(0,[{provide:Vz,useExisting:fae},{provide:Lz,useExisting:n}])}function yae(n){return w0(9,[{provide:Rz,useValue:Joe},{provide:kz,useValue:{skipNextTransition:!!n?.skipInitialTransition,...n}}])}const Gz=new Bi("ROUTER_FORROOT_GUARD"),vae=[gb,{provide:n2,useClass:dk},lg,BS,{provide:l2,useFactory:function Uz(n){return n.routerState.root},deps:[lg]},Bk,[]];let qz=(()=>{class n{constructor(t){}static forRoot(t,i){return{ngModule:n,providers:[vae,[],{provide:f2,multi:!0,useValue:t},{provide:Gz,useFactory:Cae,deps:[[lg,new cl,new Xl]]},{provide:h2,useValue:i||{}},i?.useHash?{provide:Ab,useClass:ute}:{provide:Ab,useClass:a7},{provide:Rk,useFactory:()=>{const n=pi(Tne),e=pi(io),t=pi(h2),i=pi(UD),r=pi(n2);return t.scrollOffset&&n.setOffset(t.scrollOffset),new Nz(r,i,n,e,t)}},i?.preloadingStrategy?gae(i.preloadingStrategy).\u0275providers:[],i?.initialNavigation?Mae(i):[],i?.bindToComponentInputs?w0(8,[yz,{provide:FD,useExisting:yz}]).\u0275providers:[],i?.enableViewTransitions?yae().\u0275providers:[],[{provide:Qz,useFactory:zz},{provide:fR,multi:!0,useExisting:Qz}]]}}static forChild(t){return{ngModule:n,providers:[{provide:f2,multi:!0,useValue:t}]}}static#e=this.\u0275fac=function(i){return new(i||n)(xi(Gz,8))};static#t=this.\u0275mod=vo({type:n});static#n=this.\u0275inj=ra({})}return n})();function Cae(n){return"guarded"}function Mae(n){return["disabled"===n.initialNavigation?w0(3,[{provide:uR,multi:!0,useFactory:()=>{const e=pi(lg);return()=>{e.setUpLocationChangeListener()}}},{provide:kk,useValue:2}]).\u0275providers:[],"enabledBlocking"===n.initialNavigation?w0(2,[{provide:kk,useValue:0},{provide:uR,multi:!0,deps:[ml],useFactory:e=>{const t=e.get(cte,Promise.resolve());return()=>t.then(()=>new Promise(i=>{const r=e.get(lg),s=e.get(Hz);Oz(r,()=>{i(!0)}),e.get(UD).afterPreactivation=()=>(i(!0),s.closed?po(void 0):s),r.initialNavigation()}))}}]).\u0275providers:[]]}const Qz=new Bi("");let Eae=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275cmp=rs({type:n,selectors:[["app-root"]],decls:1,vars:0,template:function(i,r){1&i&&Vr(0,"router-outlet")},dependencies:[Ck]})}return n})();var Wz=Se(8872),jz=(Se(8362),Se(2843),Se(1922),Se(8142),Se(4355),Se(1828),Se(578),Se(2454)),$z=(Se(5992),Se(6923),Se(4369));Se(6157),Se(6043),Se(1949);var cg=Object.freeze({Linear:Object.freeze({None:function(n){return n},In:function(n){return this.None(n)},Out:function(n){return this.None(n)},InOut:function(n){return this.None(n)}}),Quadratic:Object.freeze({In:function(n){return n*n},Out:function(n){return n*(2-n)},InOut:function(n){return(n*=2)<1?.5*n*n:-.5*(--n*(n-2)-1)}}),Cubic:Object.freeze({In:function(n){return n*n*n},Out:function(n){return--n*n*n+1},InOut:function(n){return(n*=2)<1?.5*n*n*n:.5*((n-=2)*n*n+2)}}),Quartic:Object.freeze({In:function(n){return n*n*n*n},Out:function(n){return 1- --n*n*n*n},InOut:function(n){return(n*=2)<1?.5*n*n*n*n:-.5*((n-=2)*n*n*n-2)}}),Quintic:Object.freeze({In:function(n){return n*n*n*n*n},Out:function(n){return--n*n*n*n*n+1},InOut:function(n){return(n*=2)<1?.5*n*n*n*n*n:.5*((n-=2)*n*n*n*n+2)}}),Sinusoidal:Object.freeze({In:function(n){return 1-Math.sin((1-n)*Math.PI/2)},Out:function(n){return Math.sin(n*Math.PI/2)},InOut:function(n){return.5*(1-Math.sin(Math.PI*(.5-n)))}}),Exponential:Object.freeze({In:function(n){return 0===n?0:Math.pow(1024,n-1)},Out:function(n){return 1===n?1:1-Math.pow(2,-10*n)},InOut:function(n){return 0===n?0:1===n?1:(n*=2)<1?.5*Math.pow(1024,n-1):.5*(2-Math.pow(2,-10*(n-1)))}}),Circular:Object.freeze({In:function(n){return 1-Math.sqrt(1-n*n)},Out:function(n){return Math.sqrt(1- --n*n)},InOut:function(n){return(n*=2)<1?-.5*(Math.sqrt(1-n*n)-1):.5*(Math.sqrt(1-(n-=2)*n)+1)}}),Elastic:Object.freeze({In:function(n){return 0===n?0:1===n?1:-Math.pow(2,10*(n-1))*Math.sin(5*(n-1.1)*Math.PI)},Out:function(n){return 0===n?0:1===n?1:Math.pow(2,-10*n)*Math.sin(5*(n-.1)*Math.PI)+1},InOut:function(n){return 0===n?0:1===n?1:(n*=2)<1?-.5*Math.pow(2,10*(n-1))*Math.sin(5*(n-1.1)*Math.PI):.5*Math.pow(2,-10*(n-1))*Math.sin(5*(n-1.1)*Math.PI)+1}}),Back:Object.freeze({In:function(n){var e=1.70158;return 1===n?1:n*n*((e+1)*n-e)},Out:function(n){var e=1.70158;return 0===n?0:--n*n*((e+1)*n+e)+1},InOut:function(n){var e=2.5949095;return(n*=2)<1?n*n*((e+1)*n-e)*.5:.5*((n-=2)*n*((e+1)*n+e)+2)}}),Bounce:Object.freeze({In:function(n){return 1-cg.Bounce.Out(1-n)},Out:function(n){return n<1/2.75?7.5625*n*n:n<2/2.75?7.5625*(n-=1.5/2.75)*n+.75:n<2.5/2.75?7.5625*(n-=2.25/2.75)*n+.9375:7.5625*(n-=2.625/2.75)*n+.984375},InOut:function(n){return n<.5?.5*cg.Bounce.In(2*n):.5*cg.Bounce.Out(2*n-1)+.5}}),generatePow:function(n){return void 0===n&&(n=4),n=(n=n1e4?1e4:n,{In:function(e){return Math.pow(e,n)},Out:function(e){return 1-Math.pow(1-e,n)},InOut:function(e){return e<.5?Math.pow(2*e,n)/2:(1-Math.pow(2-2*e,n))/2+.5}}}}),p2=function(){return performance.now()},Xz=function(){function n(){this._tweens={},this._tweensAddedDuringUpdate={}}return n.prototype.getAll=function(){var e=this;return Object.keys(this._tweens).map(function(t){return e._tweens[t]})},n.prototype.removeAll=function(){this._tweens={}},n.prototype.add=function(e){this._tweens[e.getId()]=e,this._tweensAddedDuringUpdate[e.getId()]=e},n.prototype.remove=function(e){delete this._tweens[e.getId()],delete this._tweensAddedDuringUpdate[e.getId()]},n.prototype.update=function(e,t){void 0===e&&(e=p2()),void 0===t&&(t=!1);var i=Object.keys(this._tweens);if(0===i.length)return!1;for(;i.length>0;){this._tweensAddedDuringUpdate={};for(var r=0;r1?s(n[t],n[t-1],t-i):s(n[r],n[r+1>t?t:r+1],i-r)},Bezier:function(n,e){for(var t=0,i=n.length-1,r=Math.pow,s=wb.Utils.Bernstein,o=0;o<=i;o++)t+=r(1-e,i-o)*r(e,o)*n[o]*s(i,o);return t},CatmullRom:function(n,e){var t=n.length-1,i=t*e,r=Math.floor(i),s=wb.Utils.CatmullRom;return n[0]===n[t]?(e<0&&(r=Math.floor(i=t*(1+e))),s(n[(r-1+t)%t],n[r],n[(r+1)%t],n[(r+2)%t],i-r)):e<0?n[0]-(s(n[0],n[0],n[1],n[1],-i)-n[0]):e>1?n[t]-(s(n[t],n[t],n[t-1],n[t-1],i-t)-n[t]):s(n[r?r-1:0],n[r],n[t1;i--)t*=i;return n[e]=t,t}}(),CatmullRom:function(n,e,t,i,r){var s=.5*(t-n),o=.5*(i-e),l=r*r;return(2*e-2*t+s+o)*(r*l)+(-3*e+3*t-2*s-o)*l+s*r+e}}},Ok=function(){function n(){}return n.nextId=function(){return n._nextId++},n._nextId=0,n}(),Lk=new Xz,If=function(){function n(e,t){void 0===t&&(t=Lk),this._object=e,this._group=t,this._isPaused=!1,this._pauseStart=0,this._valuesStart={},this._valuesEnd={},this._valuesStartRepeat={},this._duration=1e3,this._isDynamic=!1,this._initialRepeat=0,this._repeat=0,this._yoyo=!1,this._isPlaying=!1,this._reversed=!1,this._delayTime=0,this._startTime=0,this._easingFunction=cg.Linear.None,this._interpolationFunction=wb.Linear,this._chainedTweens=[],this._onStartCallbackFired=!1,this._onEveryStartCallbackFired=!1,this._id=Ok.nextId(),this._isChainStopped=!1,this._propertiesAreSetUp=!1,this._goToEnd=!1}return n.prototype.getId=function(){return this._id},n.prototype.isPlaying=function(){return this._isPlaying},n.prototype.isPaused=function(){return this._isPaused},n.prototype.getDuration=function(){return this._duration},n.prototype.to=function(e,t){if(void 0===t&&(t=1e3),this._isPlaying)throw new Error("Can not call Tween.to() while Tween is already started or paused. Stop the Tween first.");return this._valuesEnd=e,this._propertiesAreSetUp=!1,this._duration=t<0?0:t,this},n.prototype.duration=function(e){return void 0===e&&(e=1e3),this._duration=e<0?0:e,this},n.prototype.dynamic=function(e){return void 0===e&&(e=!1),this._isDynamic=e,this},n.prototype.start=function(e,t){if(void 0===e&&(e=p2()),void 0===t&&(t=!1),this._isPlaying)return this;if(this._group&&this._group.add(this),this._repeat=this._initialRepeat,this._reversed)for(var i in this._reversed=!1,this._valuesStartRepeat)this._swapEndStartRepeatValues(i),this._valuesStart[i]=this._valuesStartRepeat[i];if(this._isPlaying=!0,this._isPaused=!1,this._onStartCallbackFired=!1,this._onEveryStartCallbackFired=!1,this._isChainStopped=!1,this._startTime=e,this._startTime+=this._delayTime,!this._propertiesAreSetUp||t){if(this._propertiesAreSetUp=!0,!this._isDynamic){var r={};for(var s in this._valuesEnd)r[s]=this._valuesEnd[s];this._valuesEnd=r}this._setupProperties(this._object,this._valuesStart,this._valuesEnd,this._valuesStartRepeat,t)}return this},n.prototype.startFromCurrentValues=function(e){return this.start(e,!0)},n.prototype._setupProperties=function(e,t,i,r,s){for(var o in i){var l=e[o],d=Array.isArray(l),u=d?"array":typeof l,f=!d&&Array.isArray(i[o]);if("undefined"!==u&&"function"!==u){if(f){if(0===(A=i[o]).length)continue;for(var S=[l],R=0,G=A.length;R"u"||s)&&(t[o]=l),d||(t[o]*=1),r[o]=f?i[o].slice().reverse():t[o]||0;else{t[o]=d?[]:{};var se=l;for(var le in se)t[o][le]=se[le];r[o]=d?[]:{};var A=i[o];if(!this._isDynamic){var Ee={};for(var le in A)Ee[le]=A[le];i[o]=A=Ee}this._setupProperties(se,t[o],A,r[o],s)}}}},n.prototype.stop=function(){return this._isChainStopped||(this._isChainStopped=!0,this.stopChainedTweens()),this._isPlaying?(this._group&&this._group.remove(this),this._isPlaying=!1,this._isPaused=!1,this._onStopCallback&&this._onStopCallback(this._object),this):this},n.prototype.end=function(){return this._goToEnd=!0,this.update(1/0),this},n.prototype.pause=function(e){return void 0===e&&(e=p2()),this._isPaused||!this._isPlaying||(this._isPaused=!0,this._pauseStart=e,this._group&&this._group.remove(this)),this},n.prototype.resume=function(e){return void 0===e&&(e=p2()),this._isPaused&&this._isPlaying?(this._isPaused=!1,this._startTime+=e-this._pauseStart,this._pauseStart=0,this._group&&this._group.add(this),this):this},n.prototype.stopChainedTweens=function(){for(var e=0,t=this._chainedTweens.length;ethis._startTime+this._duration)return!1;t&&this.start(e,!0)}if(this._goToEnd=!1,eu)return 1;var se=Math.trunc(l/d),Ee=Math.min((l-se*d)/i._duration,1);return 0===Ee&&l===i._duration?1:Ee}(),S=this._easingFunction(A);if(this._updateProperties(this._object,this._valuesStart,this._valuesEnd,S),this._onUpdateCallback&&this._onUpdateCallback(this._object,A),0===this._duration||l>=this._duration){if(this._repeat>0){var R=Math.min(Math.trunc((l-this._duration)/d)+1,this._repeat);for(s in isFinite(this._repeat)&&(this._repeat-=R),this._valuesStartRepeat)!this._yoyo&&"string"==typeof this._valuesEnd[s]&&(this._valuesStartRepeat[s]=this._valuesStartRepeat[s]+parseFloat(this._valuesEnd[s])),this._yoyo&&this._swapEndStartRepeatValues(s),this._valuesStart[s]=this._valuesStartRepeat[s];return this._yoyo&&(this._reversed=!this._reversed),this._startTime+=d*R,this._onRepeatCallback&&this._onRepeatCallback(this._object),this._onEveryStartCallbackFired=!1,!0}this._onCompleteCallback&&this._onCompleteCallback(this._object);for(var G=0,re=this._chainedTweens.length;G>8&255]+Uh[n>>16&255]+Uh[n>>24&255]+"-"+Uh[255&e]+Uh[e>>8&255]+"-"+Uh[e>>16&15|64]+Uh[e>>24&255]+"-"+Uh[63&t|128]+Uh[t>>8&255]+"-"+Uh[t>>16&255]+Uh[t>>24&255]+Uh[255&i]+Uh[i>>8&255]+Uh[i>>16&255]+Uh[i>>24&255]).toLowerCase()}function bd(n,e,t){return Math.max(e,Math.min(t,n))}function Jk(n,e){return(n%e+e)%e}function HS(n,e,t){return(1-t)*n+t*e}function e5(n){return!(n&n-1)&&0!==n}function KD(n){return Math.pow(2,Math.floor(Math.log(n)/Math.LN2))}function Bf(n,e){switch(e.constructor){case Float32Array:return n;case Uint32Array:return n/4294967295;case Uint16Array:return n/65535;case Uint8Array:return n/255;case Int32Array:return Math.max(n/2147483647,-1);case Int16Array:return Math.max(n/32767,-1);case Int8Array:return Math.max(n/127,-1);default:throw new Error("Invalid component type.")}}function Ea(n,e){switch(e.constructor){case Float32Array:return n;case Uint32Array:return Math.round(4294967295*n);case Uint16Array:return Math.round(65535*n);case Uint8Array:return Math.round(255*n);case Int32Array:return Math.round(2147483647*n);case Int16Array:return Math.round(32767*n);case Int8Array:return Math.round(127*n);default:throw new Error("Invalid component type.")}}const VS={DEG2RAD:Bb,RAD2DEG:M2,generateUUID:dm,clamp:bd,euclideanModulo:Jk,mapLinear:function Lle(n,e,t,i,r){return i+(n-e)*(r-i)/(t-e)},inverseLerp:function Nle(n,e,t){return n!==e?(t-n)/(e-n):0},lerp:HS,damp:function Ule(n,e,t,i){return HS(n,e,1-Math.exp(-t*i))},pingpong:function zle(n,e=1){return e-Math.abs(Jk(n,2*e)-e)},smoothstep:function Hle(n,e,t){return n<=e?0:n>=t?1:(n=(n-e)/(t-e))*n*(3-2*n)},smootherstep:function Vle(n,e,t){return n<=e?0:n>=t?1:(n=(n-e)/(t-e))*n*n*(n*(6*n-15)+10)},randInt:function Gle(n,e){return n+Math.floor(Math.random()*(e-n+1))},randFloat:function qle(n,e){return n+Math.random()*(e-n)},randFloatSpread:function Qle(n){return n*(.5-Math.random())},seededRandom:function Wle(n){void 0!==n&&(GH=n);let e=GH+=1831565813;return e=Math.imul(e^e>>>15,1|e),e^=e+Math.imul(e^e>>>7,61|e),((e^e>>>14)>>>0)/4294967296},degToRad:function jle(n){return n*Bb},radToDeg:function $le(n){return n*M2},isPowerOfTwo:e5,ceilPowerOfTwo:function Xle(n){return Math.pow(2,Math.ceil(Math.log(n)/Math.LN2))},floorPowerOfTwo:KD,setQuaternionFromProperEuler:function Yle(n,e,t,i,r){const s=Math.cos,o=Math.sin,l=s(t/2),d=o(t/2),u=s((e+i)/2),f=o((e+i)/2),A=s((e-i)/2),S=o((e-i)/2),R=s((i-e)/2),G=o((i-e)/2);switch(r){case"XYX":n.set(l*f,d*A,d*S,l*u);break;case"YZY":n.set(d*S,l*f,d*A,l*u);break;case"ZXZ":n.set(d*A,d*S,l*f,l*u);break;case"XZX":n.set(l*f,d*G,d*R,l*u);break;case"YXY":n.set(d*R,l*f,d*G,l*u);break;case"ZYZ":n.set(d*G,d*R,l*f,l*u);break;default:console.warn("THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: "+r)}},normalize:Ea,denormalize:Bf};class Qi{constructor(e=0,t=0){Qi.prototype.isVector2=!0,this.x=e,this.y=t}get width(){return this.x}set width(e){this.x=e}get height(){return this.y}set height(e){this.y=e}set(e,t){return this.x=e,this.y=t,this}setScalar(e){return this.x=e,this.y=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y)}copy(e){return this.x=e.x,this.y=e.y,this}add(e){return this.x+=e.x,this.y+=e.y,this}addScalar(e){return this.x+=e,this.y+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this}subScalar(e){return this.x-=e,this.y-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this}multiply(e){return this.x*=e.x,this.y*=e.y,this}multiplyScalar(e){return this.x*=e,this.y*=e,this}divide(e){return this.x/=e.x,this.y/=e.y,this}divideScalar(e){return this.multiplyScalar(1/e)}applyMatrix3(e){const t=this.x,i=this.y,r=e.elements;return this.x=r[0]*t+r[3]*i+r[6],this.y=r[1]*t+r[4]*i+r[7],this}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this}clamp(e,t){return this.x=Math.max(e.x,Math.min(t.x,this.x)),this.y=Math.max(e.y,Math.min(t.y,this.y)),this}clampScalar(e,t){return this.x=Math.max(e,Math.min(t,this.x)),this.y=Math.max(e,Math.min(t,this.y)),this}clampLength(e,t){const i=this.length();return this.divideScalar(i||1).multiplyScalar(Math.max(e,Math.min(t,i)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(e){return this.x*e.x+this.y*e.y}cross(e){return this.x*e.y-this.y*e.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){return Math.atan2(-this.y,-this.x)+Math.PI}angleTo(e){const t=Math.sqrt(this.lengthSq()*e.lengthSq());if(0===t)return Math.PI/2;const i=this.dot(e)/t;return Math.acos(bd(i,-1,1))}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){const t=this.x-e.x,i=this.y-e.y;return t*t+i*i}manhattanDistanceTo(e){return Math.abs(this.x-e.x)+Math.abs(this.y-e.y)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this}lerpVectors(e,t,i){return this.x=e.x+(t.x-e.x)*i,this.y=e.y+(t.y-e.y)*i,this}equals(e){return e.x===this.x&&e.y===this.y}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this}rotateAround(e,t){const i=Math.cos(t),r=Math.sin(t),s=this.x-e.x,o=this.y-e.y;return this.x=s*i-o*r+e.x,this.y=s*r+o*i+e.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}}class Ta{constructor(e,t,i,r,s,o,l,d,u){Ta.prototype.isMatrix3=!0,this.elements=[1,0,0,0,1,0,0,0,1],void 0!==e&&this.set(e,t,i,r,s,o,l,d,u)}set(e,t,i,r,s,o,l,d,u){const f=this.elements;return f[0]=e,f[1]=r,f[2]=l,f[3]=t,f[4]=s,f[5]=d,f[6]=i,f[7]=o,f[8]=u,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(e){const t=this.elements,i=e.elements;return t[0]=i[0],t[1]=i[1],t[2]=i[2],t[3]=i[3],t[4]=i[4],t[5]=i[5],t[6]=i[6],t[7]=i[7],t[8]=i[8],this}extractBasis(e,t,i){return e.setFromMatrix3Column(this,0),t.setFromMatrix3Column(this,1),i.setFromMatrix3Column(this,2),this}setFromMatrix4(e){const t=e.elements;return this.set(t[0],t[4],t[8],t[1],t[5],t[9],t[2],t[6],t[10]),this}multiply(e){return this.multiplyMatrices(this,e)}premultiply(e){return this.multiplyMatrices(e,this)}multiplyMatrices(e,t){const i=e.elements,r=t.elements,s=this.elements,o=i[0],l=i[3],d=i[6],u=i[1],f=i[4],A=i[7],S=i[2],R=i[5],G=i[8],re=r[0],se=r[3],le=r[6],Ee=r[1],Ce=r[4],We=r[7],Mt=r[2],yt=r[5],Et=r[8];return s[0]=o*re+l*Ee+d*Mt,s[3]=o*se+l*Ce+d*yt,s[6]=o*le+l*We+d*Et,s[1]=u*re+f*Ee+A*Mt,s[4]=u*se+f*Ce+A*yt,s[7]=u*le+f*We+A*Et,s[2]=S*re+R*Ee+G*Mt,s[5]=S*se+R*Ce+G*yt,s[8]=S*le+R*We+G*Et,this}multiplyScalar(e){const t=this.elements;return t[0]*=e,t[3]*=e,t[6]*=e,t[1]*=e,t[4]*=e,t[7]*=e,t[2]*=e,t[5]*=e,t[8]*=e,this}determinant(){const e=this.elements,t=e[0],i=e[1],r=e[2],s=e[3],o=e[4],l=e[5],d=e[6],u=e[7],f=e[8];return t*o*f-t*l*u-i*s*f+i*l*d+r*s*u-r*o*d}invert(){const e=this.elements,t=e[0],i=e[1],r=e[2],s=e[3],o=e[4],l=e[5],d=e[6],u=e[7],f=e[8],A=f*o-l*u,S=l*d-f*s,R=u*s-o*d,G=t*A+i*S+r*R;if(0===G)return this.set(0,0,0,0,0,0,0,0,0);const re=1/G;return e[0]=A*re,e[1]=(r*u-f*i)*re,e[2]=(l*i-r*o)*re,e[3]=S*re,e[4]=(f*t-r*d)*re,e[5]=(r*s-l*t)*re,e[6]=R*re,e[7]=(i*d-u*t)*re,e[8]=(o*t-i*s)*re,this}transpose(){let e;const t=this.elements;return e=t[1],t[1]=t[3],t[3]=e,e=t[2],t[2]=t[6],t[6]=e,e=t[5],t[5]=t[7],t[7]=e,this}getNormalMatrix(e){return this.setFromMatrix4(e).invert().transpose()}transposeIntoArray(e){const t=this.elements;return e[0]=t[0],e[1]=t[3],e[2]=t[6],e[3]=t[1],e[4]=t[4],e[5]=t[7],e[6]=t[2],e[7]=t[5],e[8]=t[8],this}setUvTransform(e,t,i,r,s,o,l){const d=Math.cos(s),u=Math.sin(s);return this.set(i*d,i*u,-i*(d*o+u*l)+o+e,-r*u,r*d,-r*(-u*o+d*l)+l+t,0,0,1),this}scale(e,t){return this.premultiply(t5.makeScale(e,t)),this}rotate(e){return this.premultiply(t5.makeRotation(-e)),this}translate(e,t){return this.premultiply(t5.makeTranslation(e,t)),this}makeTranslation(e,t){return e.isVector2?this.set(1,0,e.x,0,1,e.y,0,0,1):this.set(1,0,e,0,1,t,0,0,1),this}makeRotation(e){const t=Math.cos(e),i=Math.sin(e);return this.set(t,-i,0,i,t,0,0,0,1),this}makeScale(e,t){return this.set(e,0,0,0,t,0,0,0,1),this}equals(e){const t=this.elements,i=e.elements;for(let r=0;r<9;r++)if(t[r]!==i[r])return!1;return!0}fromArray(e,t=0){for(let i=0;i<9;i++)this.elements[i]=e[i+t];return this}toArray(e=[],t=0){const i=this.elements;return e[t]=i[0],e[t+1]=i[1],e[t+2]=i[2],e[t+3]=i[3],e[t+4]=i[4],e[t+5]=i[5],e[t+6]=i[6],e[t+7]=i[7],e[t+8]=i[8],e}clone(){return(new this.constructor).fromArray(this.elements)}}const t5=new Ta;function qH(n){for(let e=n.length-1;e>=0;--e)if(n[e]>=65535)return!0;return!1}const Kle={Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array};function S2(n,e){return new Kle[n](e)}function GS(n){return document.createElementNS("http://www.w3.org/1999/xhtml",n)}function Zle(){const n=GS("canvas");return n.style.display="block",n}const QH={};function WH(n){n in QH||(QH[n]=!0,console.warn(n))}const jH=(new Ta).set(.8224621,.177538,0,.0331941,.9668058,0,.0170827,.0723974,.9105199),$H=(new Ta).set(1.2249401,-.2249404,0,-.0420569,1.0420571,0,-.0196376,-.0786361,1.0982735),ZD={[Qu]:{transfer:WD,primaries:jD,toReference:n=>n,fromReference:n=>n},[cu]:{transfer:Vc,primaries:jD,toReference:n=>n.convertSRGBToLinear(),fromReference:n=>n.convertLinearToSRGB()},[QD]:{transfer:WD,primaries:$D,toReference:n=>n.applyMatrix3($H),fromReference:n=>n.applyMatrix3(jH)},[Kk]:{transfer:Vc,primaries:$D,toReference:n=>n.convertSRGBToLinear().applyMatrix3($H),fromReference:n=>n.applyMatrix3(jH).convertLinearToSRGB()}},Jle=new Set([Qu,QD]),Ol={enabled:!0,_workingColorSpace:Qu,get workingColorSpace(){return this._workingColorSpace},set workingColorSpace(n){if(!Jle.has(n))throw new Error(`Unsupported working color space, "${n}".`);this._workingColorSpace=n},convert:function(n,e,t){return!1!==this.enabled&&e!==t&&e&&t?(0,ZD[t].fromReference)((0,ZD[e].toReference)(n)):n},fromWorkingColorSpace:function(n,e){return this.convert(n,this._workingColorSpace,e)},toWorkingColorSpace:function(n,e){return this.convert(n,e,this._workingColorSpace)},getPrimaries:function(n){return ZD[n].primaries},getTransfer:function(n){return""===n?WD:ZD[n].transfer}};function E2(n){return n<.04045?.0773993808*n:Math.pow(.9478672986*n+.0521327014,2.4)}function n5(n){return n<.0031308?12.92*n:1.055*Math.pow(n,.41666)-.055}let T2;class XH{static getDataURL(e){if(/^data:/i.test(e.src)||typeof HTMLCanvasElement>"u")return e.src;let t;if(e instanceof HTMLCanvasElement)t=e;else{void 0===T2&&(T2=GS("canvas")),T2.width=e.width,T2.height=e.height;const i=T2.getContext("2d");e instanceof ImageData?i.putImageData(e,0,0):i.drawImage(e,0,0,e.width,e.height),t=T2}return t.width>2048||t.height>2048?(console.warn("THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons",e),t.toDataURL("image/jpeg",.6)):t.toDataURL("image/png")}static sRGBToLinear(e){if(typeof HTMLImageElement<"u"&&e instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&e instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&e instanceof ImageBitmap){const t=GS("canvas");t.width=e.width,t.height=e.height;const i=t.getContext("2d");i.drawImage(e,0,0,e.width,e.height);const r=i.getImageData(0,0,e.width,e.height),s=r.data;for(let o=0;o{class n extends G_{constructor(t=n.DEFAULT_IMAGE,i=n.DEFAULT_MAPPING,r=vh,s=vh,o=Hc,l=oA,d=gp,u=Fy,f=n.DEFAULT_ANISOTROPY,A=""){super(),this.isTexture=!0,Object.defineProperty(this,"id",{value:tce++}),this.uuid=dm(),this.name="",this.source=new Pb(t),this.mipmaps=[],this.mapping=i,this.channel=0,this.wrapS=r,this.wrapT=s,this.magFilter=o,this.minFilter=l,this.anisotropy=f,this.format=d,this.internalFormat=null,this.type=u,this.offset=new Qi(0,0),this.repeat=new Qi(1,1),this.center=new Qi(0,0),this.rotation=0,this.matrixAutoUpdate=!0,this.matrix=new Ta,this.generateMipmaps=!0,this.premultiplyAlpha=!1,this.flipY=!0,this.unpackAlignment=4,this.colorSpace=A,this.userData={},this.version=0,this.onUpdate=null,this.isRenderTargetTexture=!1,this.needsPMREMUpdate=!1}get image(){return this.source.data}set image(t=null){this.source.data=t}updateMatrix(){this.matrix.setUvTransform(this.offset.x,this.offset.y,this.repeat.x,this.repeat.y,this.rotation,this.center.x,this.center.y)}clone(){return(new this.constructor).copy(this)}copy(t){return this.name=t.name,this.source=t.source,this.mipmaps=t.mipmaps.slice(0),this.mapping=t.mapping,this.channel=t.channel,this.wrapS=t.wrapS,this.wrapT=t.wrapT,this.magFilter=t.magFilter,this.minFilter=t.minFilter,this.anisotropy=t.anisotropy,this.format=t.format,this.internalFormat=t.internalFormat,this.type=t.type,this.offset.copy(t.offset),this.repeat.copy(t.repeat),this.center.copy(t.center),this.rotation=t.rotation,this.matrixAutoUpdate=t.matrixAutoUpdate,this.matrix.copy(t.matrix),this.generateMipmaps=t.generateMipmaps,this.premultiplyAlpha=t.premultiplyAlpha,this.flipY=t.flipY,this.unpackAlignment=t.unpackAlignment,this.colorSpace=t.colorSpace,this.userData=JSON.parse(JSON.stringify(t.userData)),this.needsUpdate=!0,this}toJSON(t){const i=void 0===t||"string"==typeof t;if(!i&&void 0!==t.textures[this.uuid])return t.textures[this.uuid];const r={metadata:{version:4.6,type:"Texture",generator:"Texture.toJSON"},uuid:this.uuid,name:this.name,image:this.source.toJSON(t).uuid,mapping:this.mapping,channel:this.channel,repeat:[this.repeat.x,this.repeat.y],offset:[this.offset.x,this.offset.y],center:[this.center.x,this.center.y],rotation:this.rotation,wrap:[this.wrapS,this.wrapT],format:this.format,internalFormat:this.internalFormat,type:this.type,colorSpace:this.colorSpace,minFilter:this.minFilter,magFilter:this.magFilter,anisotropy:this.anisotropy,flipY:this.flipY,generateMipmaps:this.generateMipmaps,premultiplyAlpha:this.premultiplyAlpha,unpackAlignment:this.unpackAlignment};return Object.keys(this.userData).length>0&&(r.userData=this.userData),i||(t.textures[this.uuid]=r),r}dispose(){this.dispatchEvent({type:"dispose"})}transformUv(t){if(300!==this.mapping)return t;if(t.applyMatrix3(this.matrix),t.x<0||t.x>1)switch(this.wrapS){case Ry:t.x=t.x-Math.floor(t.x);break;case vh:t.x=t.x<0?0:1;break;case _2:t.x=1===Math.abs(Math.floor(t.x)%2)?Math.ceil(t.x)-t.x:t.x-Math.floor(t.x)}if(t.y<0||t.y>1)switch(this.wrapT){case Ry:t.y=t.y-Math.floor(t.y);break;case vh:t.y=t.y<0?0:1;break;case _2:t.y=1===Math.abs(Math.floor(t.y)%2)?Math.ceil(t.y)-t.y:t.y-Math.floor(t.y)}return this.flipY&&(t.y=1-t.y),t}set needsUpdate(t){!0===t&&(this.version++,this.source.needsUpdate=!0)}}return n.DEFAULT_IMAGE=null,n.DEFAULT_MAPPING=300,n.DEFAULT_ANISOTROPY=1,n})();class nc{constructor(e=0,t=0,i=0,r=1){nc.prototype.isVector4=!0,this.x=e,this.y=t,this.z=i,this.w=r}get width(){return this.z}set width(e){this.z=e}get height(){return this.w}set height(e){this.w=e}set(e,t,i,r){return this.x=e,this.y=t,this.z=i,this.w=r,this}setScalar(e){return this.x=e,this.y=e,this.z=e,this.w=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setZ(e){return this.z=e,this}setW(e){return this.w=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;case 2:this.z=t;break;case 3:this.w=t;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(e){return this.x=e.x,this.y=e.y,this.z=e.z,this.w=void 0!==e.w?e.w:1,this}add(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this.w+=e.w,this}addScalar(e){return this.x+=e,this.y+=e,this.z+=e,this.w+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this.w=e.w+t.w,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this.z+=e.z*t,this.w+=e.w*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this.w-=e.w,this}subScalar(e){return this.x-=e,this.y-=e,this.z-=e,this.w-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this.w=e.w-t.w,this}multiply(e){return this.x*=e.x,this.y*=e.y,this.z*=e.z,this.w*=e.w,this}multiplyScalar(e){return this.x*=e,this.y*=e,this.z*=e,this.w*=e,this}applyMatrix4(e){const t=this.x,i=this.y,r=this.z,s=this.w,o=e.elements;return this.x=o[0]*t+o[4]*i+o[8]*r+o[12]*s,this.y=o[1]*t+o[5]*i+o[9]*r+o[13]*s,this.z=o[2]*t+o[6]*i+o[10]*r+o[14]*s,this.w=o[3]*t+o[7]*i+o[11]*r+o[15]*s,this}divideScalar(e){return this.multiplyScalar(1/e)}setAxisAngleFromQuaternion(e){this.w=2*Math.acos(e.w);const t=Math.sqrt(1-e.w*e.w);return t<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=e.x/t,this.y=e.y/t,this.z=e.z/t),this}setAxisAngleFromRotationMatrix(e){let t,i,r,s;const d=e.elements,u=d[0],f=d[4],A=d[8],S=d[1],R=d[5],G=d[9],re=d[2],se=d[6],le=d[10];if(Math.abs(f-S)<.01&&Math.abs(A-re)<.01&&Math.abs(G-se)<.01){if(Math.abs(f+S)<.1&&Math.abs(A+re)<.1&&Math.abs(G+se)<.1&&Math.abs(u+R+le-3)<.1)return this.set(1,0,0,0),this;t=Math.PI;const Ce=(u+1)/2,We=(R+1)/2,Mt=(le+1)/2,yt=(f+S)/4,Et=(A+re)/4,Xt=(G+se)/4;return Ce>We&&Ce>Mt?Ce<.01?(i=0,r=.707106781,s=.707106781):(i=Math.sqrt(Ce),r=yt/i,s=Et/i):We>Mt?We<.01?(i=.707106781,r=0,s=.707106781):(r=Math.sqrt(We),i=yt/r,s=Xt/r):Mt<.01?(i=.707106781,r=.707106781,s=0):(s=Math.sqrt(Mt),i=Et/s,r=Xt/s),this.set(i,r,s,t),this}let Ee=Math.sqrt((se-G)*(se-G)+(A-re)*(A-re)+(S-f)*(S-f));return Math.abs(Ee)<.001&&(Ee=1),this.x=(se-G)/Ee,this.y=(A-re)/Ee,this.z=(S-f)/Ee,this.w=Math.acos((u+R+le-1)/2),this}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this.z=Math.min(this.z,e.z),this.w=Math.min(this.w,e.w),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this.z=Math.max(this.z,e.z),this.w=Math.max(this.w,e.w),this}clamp(e,t){return this.x=Math.max(e.x,Math.min(t.x,this.x)),this.y=Math.max(e.y,Math.min(t.y,this.y)),this.z=Math.max(e.z,Math.min(t.z,this.z)),this.w=Math.max(e.w,Math.min(t.w,this.w)),this}clampScalar(e,t){return this.x=Math.max(e,Math.min(t,this.x)),this.y=Math.max(e,Math.min(t,this.y)),this.z=Math.max(e,Math.min(t,this.z)),this.w=Math.max(e,Math.min(t,this.w)),this}clampLength(e,t){const i=this.length();return this.divideScalar(i||1).multiplyScalar(Math.max(e,Math.min(t,i)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this.w=Math.trunc(this.w),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this}dot(e){return this.x*e.x+this.y*e.y+this.z*e.z+this.w*e.w}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)}normalize(){return this.divideScalar(this.length()||1)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this.z+=(e.z-this.z)*t,this.w+=(e.w-this.w)*t,this}lerpVectors(e,t,i){return this.x=e.x+(t.x-e.x)*i,this.y=e.y+(t.y-e.y)*i,this.z=e.z+(t.z-e.z)*i,this.w=e.w+(t.w-e.w)*i,this}equals(e){return e.x===this.x&&e.y===this.y&&e.z===this.z&&e.w===this.w}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this.z=e[t+2],this.w=e[t+3],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e[t+2]=this.z,e[t+3]=this.w,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this.z=e.getZ(t),this.w=e.getW(t),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this.w=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z,yield this.w}}class nce extends G_{constructor(e=1,t=1,i={}){super(),this.isRenderTarget=!0,this.width=e,this.height=t,this.depth=1,this.scissor=new nc(0,0,e,t),this.scissorTest=!1,this.viewport=new nc(0,0,e,t);const r={width:e,height:t,depth:1};i=Object.assign({generateMipmaps:!1,internalFormat:null,minFilter:Hc,depthBuffer:!0,stencilBuffer:!1,depthTexture:null,samples:0,count:1},i);const s=new zh(r,i.mapping,i.wrapS,i.wrapT,i.magFilter,i.minFilter,i.format,i.type,i.anisotropy,i.colorSpace);s.flipY=!1,s.generateMipmaps=i.generateMipmaps,s.internalFormat=i.internalFormat,this.textures=[];const o=i.count;for(let l=0;l=0?1:-1,Ce=1-le*le;if(Ce>Number.EPSILON){const Mt=Math.sqrt(Ce),yt=Math.atan2(Mt,le*Ee);se=Math.sin(se*yt)/Mt,l=Math.sin(l*yt)/Mt}const We=l*Ee;if(d=d*se+S*We,u=u*se+R*We,f=f*se+G*We,A=A*se+re*We,se===1-l){const Mt=1/Math.sqrt(d*d+u*u+f*f+A*A);d*=Mt,u*=Mt,f*=Mt,A*=Mt}}e[t]=d,e[t+1]=u,e[t+2]=f,e[t+3]=A}static multiplyQuaternionsFlat(e,t,i,r,s,o){const l=i[r],d=i[r+1],u=i[r+2],f=i[r+3],A=s[o],S=s[o+1],R=s[o+2],G=s[o+3];return e[t]=l*G+f*A+d*R-u*S,e[t+1]=d*G+f*S+u*A-l*R,e[t+2]=u*G+f*R+l*S-d*A,e[t+3]=f*G-l*A-d*S-u*R,e}get x(){return this._x}set x(e){this._x=e,this._onChangeCallback()}get y(){return this._y}set y(e){this._y=e,this._onChangeCallback()}get z(){return this._z}set z(e){this._z=e,this._onChangeCallback()}get w(){return this._w}set w(e){this._w=e,this._onChangeCallback()}set(e,t,i,r){return this._x=e,this._y=t,this._z=i,this._w=r,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(e){return this._x=e.x,this._y=e.y,this._z=e.z,this._w=e.w,this._onChangeCallback(),this}setFromEuler(e,t=!0){const i=e._x,r=e._y,s=e._z,o=e._order,l=Math.cos,d=Math.sin,u=l(i/2),f=l(r/2),A=l(s/2),S=d(i/2),R=d(r/2),G=d(s/2);switch(o){case"XYZ":this._x=S*f*A+u*R*G,this._y=u*R*A-S*f*G,this._z=u*f*G+S*R*A,this._w=u*f*A-S*R*G;break;case"YXZ":this._x=S*f*A+u*R*G,this._y=u*R*A-S*f*G,this._z=u*f*G-S*R*A,this._w=u*f*A+S*R*G;break;case"ZXY":this._x=S*f*A-u*R*G,this._y=u*R*A+S*f*G,this._z=u*f*G+S*R*A,this._w=u*f*A-S*R*G;break;case"ZYX":this._x=S*f*A-u*R*G,this._y=u*R*A+S*f*G,this._z=u*f*G-S*R*A,this._w=u*f*A+S*R*G;break;case"YZX":this._x=S*f*A+u*R*G,this._y=u*R*A+S*f*G,this._z=u*f*G-S*R*A,this._w=u*f*A-S*R*G;break;case"XZY":this._x=S*f*A-u*R*G,this._y=u*R*A-S*f*G,this._z=u*f*G+S*R*A,this._w=u*f*A+S*R*G;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+o)}return!0===t&&this._onChangeCallback(),this}setFromAxisAngle(e,t){const i=t/2,r=Math.sin(i);return this._x=e.x*r,this._y=e.y*r,this._z=e.z*r,this._w=Math.cos(i),this._onChangeCallback(),this}setFromRotationMatrix(e){const t=e.elements,i=t[0],r=t[4],s=t[8],o=t[1],l=t[5],d=t[9],u=t[2],f=t[6],A=t[10],S=i+l+A;if(S>0){const R=.5/Math.sqrt(S+1);this._w=.25/R,this._x=(f-d)*R,this._y=(s-u)*R,this._z=(o-r)*R}else if(i>l&&i>A){const R=2*Math.sqrt(1+i-l-A);this._w=(f-d)/R,this._x=.25*R,this._y=(r+o)/R,this._z=(s+u)/R}else if(l>A){const R=2*Math.sqrt(1+l-i-A);this._w=(s-u)/R,this._x=(r+o)/R,this._y=.25*R,this._z=(d+f)/R}else{const R=2*Math.sqrt(1+A-i-l);this._w=(o-r)/R,this._x=(s+u)/R,this._y=(d+f)/R,this._z=.25*R}return this._onChangeCallback(),this}setFromUnitVectors(e,t){let i=e.dot(t)+1;return iMath.abs(e.z)?(this._x=-e.y,this._y=e.x,this._z=0,this._w=i):(this._x=0,this._y=-e.z,this._z=e.y,this._w=i)):(this._x=e.y*t.z-e.z*t.y,this._y=e.z*t.x-e.x*t.z,this._z=e.x*t.y-e.y*t.x,this._w=i),this.normalize()}angleTo(e){return 2*Math.acos(Math.abs(bd(this.dot(e),-1,1)))}rotateTowards(e,t){const i=this.angleTo(e);if(0===i)return this;const r=Math.min(1,t/i);return this.slerp(e,r),this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(e){return this._x*e._x+this._y*e._y+this._z*e._z+this._w*e._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let e=this.length();return 0===e?(this._x=0,this._y=0,this._z=0,this._w=1):(e=1/e,this._x=this._x*e,this._y=this._y*e,this._z=this._z*e,this._w=this._w*e),this._onChangeCallback(),this}multiply(e){return this.multiplyQuaternions(this,e)}premultiply(e){return this.multiplyQuaternions(e,this)}multiplyQuaternions(e,t){const i=e._x,r=e._y,s=e._z,o=e._w,l=t._x,d=t._y,u=t._z,f=t._w;return this._x=i*f+o*l+r*u-s*d,this._y=r*f+o*d+s*l-i*u,this._z=s*f+o*u+i*d-r*l,this._w=o*f-i*l-r*d-s*u,this._onChangeCallback(),this}slerp(e,t){if(0===t)return this;if(1===t)return this.copy(e);const i=this._x,r=this._y,s=this._z,o=this._w;let l=o*e._w+i*e._x+r*e._y+s*e._z;if(l<0?(this._w=-e._w,this._x=-e._x,this._y=-e._y,this._z=-e._z,l=-l):this.copy(e),l>=1)return this._w=o,this._x=i,this._y=r,this._z=s,this;const d=1-l*l;if(d<=Number.EPSILON){const R=1-t;return this._w=R*o+t*this._w,this._x=R*i+t*this._x,this._y=R*r+t*this._y,this._z=R*s+t*this._z,this.normalize(),this}const u=Math.sqrt(d),f=Math.atan2(u,l),A=Math.sin((1-t)*f)/u,S=Math.sin(t*f)/u;return this._w=o*A+this._w*S,this._x=i*A+this._x*S,this._y=r*A+this._y*S,this._z=s*A+this._z*S,this._onChangeCallback(),this}slerpQuaternions(e,t,i){return this.copy(e).slerp(t,i)}random(){const e=2*Math.PI*Math.random(),t=2*Math.PI*Math.random(),i=Math.random(),r=Math.sqrt(1-i),s=Math.sqrt(i);return this.set(r*Math.sin(e),r*Math.cos(e),s*Math.sin(t),s*Math.cos(t))}equals(e){return e._x===this._x&&e._y===this._y&&e._z===this._z&&e._w===this._w}fromArray(e,t=0){return this._x=e[t],this._y=e[t+1],this._z=e[t+2],this._w=e[t+3],this._onChangeCallback(),this}toArray(e=[],t=0){return e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z,e[t+3]=this._w,e}fromBufferAttribute(e,t){return this._x=e.getX(t),this._y=e.getY(t),this._z=e.getZ(t),this._w=e.getW(t),this._onChangeCallback(),this}toJSON(){return this.toArray()}_onChange(e){return this._onChangeCallback=e,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._w}}class It{constructor(e=0,t=0,i=0){It.prototype.isVector3=!0,this.x=e,this.y=t,this.z=i}set(e,t,i){return void 0===i&&(i=this.z),this.x=e,this.y=t,this.z=i,this}setScalar(e){return this.x=e,this.y=e,this.z=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setZ(e){return this.z=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;case 2:this.z=t;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(e){return this.x=e.x,this.y=e.y,this.z=e.z,this}add(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this}addScalar(e){return this.x+=e,this.y+=e,this.z+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this.z+=e.z*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this}subScalar(e){return this.x-=e,this.y-=e,this.z-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this}multiply(e){return this.x*=e.x,this.y*=e.y,this.z*=e.z,this}multiplyScalar(e){return this.x*=e,this.y*=e,this.z*=e,this}multiplyVectors(e,t){return this.x=e.x*t.x,this.y=e.y*t.y,this.z=e.z*t.z,this}applyEuler(e){return this.applyQuaternion(KH.setFromEuler(e))}applyAxisAngle(e,t){return this.applyQuaternion(KH.setFromAxisAngle(e,t))}applyMatrix3(e){const t=this.x,i=this.y,r=this.z,s=e.elements;return this.x=s[0]*t+s[3]*i+s[6]*r,this.y=s[1]*t+s[4]*i+s[7]*r,this.z=s[2]*t+s[5]*i+s[8]*r,this}applyNormalMatrix(e){return this.applyMatrix3(e).normalize()}applyMatrix4(e){const t=this.x,i=this.y,r=this.z,s=e.elements,o=1/(s[3]*t+s[7]*i+s[11]*r+s[15]);return this.x=(s[0]*t+s[4]*i+s[8]*r+s[12])*o,this.y=(s[1]*t+s[5]*i+s[9]*r+s[13])*o,this.z=(s[2]*t+s[6]*i+s[10]*r+s[14])*o,this}applyQuaternion(e){const t=this.x,i=this.y,r=this.z,s=e.x,o=e.y,l=e.z,d=e.w,u=2*(o*r-l*i),f=2*(l*t-s*r),A=2*(s*i-o*t);return this.x=t+d*u+o*A-l*f,this.y=i+d*f+l*u-s*A,this.z=r+d*A+s*f-o*u,this}project(e){return this.applyMatrix4(e.matrixWorldInverse).applyMatrix4(e.projectionMatrix)}unproject(e){return this.applyMatrix4(e.projectionMatrixInverse).applyMatrix4(e.matrixWorld)}transformDirection(e){const t=this.x,i=this.y,r=this.z,s=e.elements;return this.x=s[0]*t+s[4]*i+s[8]*r,this.y=s[1]*t+s[5]*i+s[9]*r,this.z=s[2]*t+s[6]*i+s[10]*r,this.normalize()}divide(e){return this.x/=e.x,this.y/=e.y,this.z/=e.z,this}divideScalar(e){return this.multiplyScalar(1/e)}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this.z=Math.min(this.z,e.z),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this.z=Math.max(this.z,e.z),this}clamp(e,t){return this.x=Math.max(e.x,Math.min(t.x,this.x)),this.y=Math.max(e.y,Math.min(t.y,this.y)),this.z=Math.max(e.z,Math.min(t.z,this.z)),this}clampScalar(e,t){return this.x=Math.max(e,Math.min(t,this.x)),this.y=Math.max(e,Math.min(t,this.y)),this.z=Math.max(e,Math.min(t,this.z)),this}clampLength(e,t){const i=this.length();return this.divideScalar(i||1).multiplyScalar(Math.max(e,Math.min(t,i)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(e){return this.x*e.x+this.y*e.y+this.z*e.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this.z+=(e.z-this.z)*t,this}lerpVectors(e,t,i){return this.x=e.x+(t.x-e.x)*i,this.y=e.y+(t.y-e.y)*i,this.z=e.z+(t.z-e.z)*i,this}cross(e){return this.crossVectors(this,e)}crossVectors(e,t){const i=e.x,r=e.y,s=e.z,o=t.x,l=t.y,d=t.z;return this.x=r*d-s*l,this.y=s*o-i*d,this.z=i*l-r*o,this}projectOnVector(e){const t=e.lengthSq();if(0===t)return this.set(0,0,0);const i=e.dot(this)/t;return this.copy(e).multiplyScalar(i)}projectOnPlane(e){return o5.copy(this).projectOnVector(e),this.sub(o5)}reflect(e){return this.sub(o5.copy(e).multiplyScalar(2*this.dot(e)))}angleTo(e){const t=Math.sqrt(this.lengthSq()*e.lengthSq());if(0===t)return Math.PI/2;const i=this.dot(e)/t;return Math.acos(bd(i,-1,1))}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){const t=this.x-e.x,i=this.y-e.y,r=this.z-e.z;return t*t+i*i+r*r}manhattanDistanceTo(e){return Math.abs(this.x-e.x)+Math.abs(this.y-e.y)+Math.abs(this.z-e.z)}setFromSpherical(e){return this.setFromSphericalCoords(e.radius,e.phi,e.theta)}setFromSphericalCoords(e,t,i){const r=Math.sin(t)*e;return this.x=r*Math.sin(i),this.y=Math.cos(t)*e,this.z=r*Math.cos(i),this}setFromCylindrical(e){return this.setFromCylindricalCoords(e.radius,e.theta,e.y)}setFromCylindricalCoords(e,t,i){return this.x=e*Math.sin(t),this.y=i,this.z=e*Math.cos(t),this}setFromMatrixPosition(e){const t=e.elements;return this.x=t[12],this.y=t[13],this.z=t[14],this}setFromMatrixScale(e){const t=this.setFromMatrixColumn(e,0).length(),i=this.setFromMatrixColumn(e,1).length(),r=this.setFromMatrixColumn(e,2).length();return this.x=t,this.y=i,this.z=r,this}setFromMatrixColumn(e,t){return this.fromArray(e.elements,4*t)}setFromMatrix3Column(e,t){return this.fromArray(e.elements,3*t)}setFromEuler(e){return this.x=e._x,this.y=e._y,this.z=e._z,this}setFromColor(e){return this.x=e.r,this.y=e.g,this.z=e.b,this}equals(e){return e.x===this.x&&e.y===this.y&&e.z===this.z}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this.z=e[t+2],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e[t+2]=this.z,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this.z=e.getZ(t),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){const e=Math.random()*Math.PI*2,t=2*Math.random()-1,i=Math.sqrt(1-t*t);return this.x=i*Math.cos(e),this.y=t,this.z=i*Math.sin(e),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}}const o5=new It,KH=new Gc;class Pf{constructor(e=new It(1/0,1/0,1/0),t=new It(-1/0,-1/0,-1/0)){this.isBox3=!0,this.min=e,this.max=t}set(e,t){return this.min.copy(e),this.max.copy(t),this}setFromArray(e){this.makeEmpty();for(let t=0,i=e.length;tthis.max.x||e.ythis.max.y||e.zthis.max.z)}containsBox(e){return this.min.x<=e.min.x&&e.max.x<=this.max.x&&this.min.y<=e.min.y&&e.max.y<=this.max.y&&this.min.z<=e.min.z&&e.max.z<=this.max.z}getParameter(e,t){return t.set((e.x-this.min.x)/(this.max.x-this.min.x),(e.y-this.min.y)/(this.max.y-this.min.y),(e.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(e){return!(e.max.xthis.max.x||e.max.ythis.max.y||e.max.zthis.max.z)}intersectsSphere(e){return this.clampPoint(e.center,ug),ug.distanceToSquared(e.center)<=e.radius*e.radius}intersectsPlane(e){let t,i;return e.normal.x>0?(t=e.normal.x*this.min.x,i=e.normal.x*this.max.x):(t=e.normal.x*this.max.x,i=e.normal.x*this.min.x),e.normal.y>0?(t+=e.normal.y*this.min.y,i+=e.normal.y*this.max.y):(t+=e.normal.y*this.max.y,i+=e.normal.y*this.min.y),e.normal.z>0?(t+=e.normal.z*this.min.z,i+=e.normal.z*this.max.z):(t+=e.normal.z*this.max.z,i+=e.normal.z*this.min.z),t<=-e.constant&&i>=-e.constant}intersectsTriangle(e){if(this.isEmpty())return!1;this.getCenter(qS),eI.subVectors(this.max,qS),D2.subVectors(e.a,qS),I2.subVectors(e.b,qS),B2.subVectors(e.c,qS),Ly.subVectors(I2,D2),Ny.subVectors(B2,I2),Rb.subVectors(D2,B2);let t=[0,-Ly.z,Ly.y,0,-Ny.z,Ny.y,0,-Rb.z,Rb.y,Ly.z,0,-Ly.x,Ny.z,0,-Ny.x,Rb.z,0,-Rb.x,-Ly.y,Ly.x,0,-Ny.y,Ny.x,0,-Rb.y,Rb.x,0];return!(!a5(t,D2,I2,B2,eI)||(t=[1,0,0,0,1,0,0,0,1],!a5(t,D2,I2,B2,eI)))&&(tI.crossVectors(Ly,Ny),t=[tI.x,tI.y,tI.z],a5(t,D2,I2,B2,eI))}clampPoint(e,t){return t.copy(e).clamp(this.min,this.max)}distanceToPoint(e){return this.clampPoint(e,ug).distanceTo(e)}getBoundingSphere(e){return this.isEmpty()?e.makeEmpty():(this.getCenter(e.center),e.radius=.5*this.getSize(ug).length()),e}intersect(e){return this.min.max(e.min),this.max.min(e.max),this.isEmpty()&&this.makeEmpty(),this}union(e){return this.min.min(e.min),this.max.max(e.max),this}applyMatrix4(e){return this.isEmpty()||(q_[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(e),q_[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(e),q_[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(e),q_[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(e),q_[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(e),q_[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(e),q_[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(e),q_[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(e),this.setFromPoints(q_)),this}translate(e){return this.min.add(e),this.max.add(e),this}equals(e){return e.min.equals(this.min)&&e.max.equals(this.max)}}const q_=[new It,new It,new It,new It,new It,new It,new It,new It],ug=new It,JD=new Pf,D2=new It,I2=new It,B2=new It,Ly=new It,Ny=new It,Rb=new It,qS=new It,eI=new It,tI=new It,kb=new It;function a5(n,e,t,i,r){for(let s=0,o=n.length-3;s<=o;s+=3){kb.fromArray(n,s);const l=r.x*Math.abs(kb.x)+r.y*Math.abs(kb.y)+r.z*Math.abs(kb.z),d=e.dot(kb),u=t.dot(kb),f=i.dot(kb);if(Math.max(-Math.max(d,u,f),Math.min(d,u,f))>l)return!1}return!0}const ice=new Pf,QS=new It,l5=new It;class ju{constructor(e=new It,t=-1){this.isSphere=!0,this.center=e,this.radius=t}set(e,t){return this.center.copy(e),this.radius=t,this}setFromPoints(e,t){const i=this.center;void 0!==t?i.copy(t):ice.setFromPoints(e).getCenter(i);let r=0;for(let s=0,o=e.length;sthis.radius*this.radius&&(t.sub(this.center).normalize(),t.multiplyScalar(this.radius).add(this.center)),t}getBoundingBox(e){return this.isEmpty()?(e.makeEmpty(),e):(e.set(this.center,this.center),e.expandByScalar(this.radius),e)}applyMatrix4(e){return this.center.applyMatrix4(e),this.radius=this.radius*e.getMaxScaleOnAxis(),this}translate(e){return this.center.add(e),this}expandByPoint(e){if(this.isEmpty())return this.center.copy(e),this.radius=0,this;QS.subVectors(e,this.center);const t=QS.lengthSq();if(t>this.radius*this.radius){const i=Math.sqrt(t),r=.5*(i-this.radius);this.center.addScaledVector(QS,r/i),this.radius+=r}return this}union(e){return e.isEmpty()?this:this.isEmpty()?(this.copy(e),this):(!0===this.center.equals(e.center)?this.radius=Math.max(this.radius,e.radius):(l5.subVectors(e.center,this.center).setLength(e.radius),this.expandByPoint(QS.copy(e.center).add(l5)),this.expandByPoint(QS.copy(e.center).sub(l5))),this)}equals(e){return e.center.equals(this.center)&&e.radius===this.radius}clone(){return(new this.constructor).copy(this)}}const Q_=new It,c5=new It,nI=new It,Uy=new It,d5=new It,iI=new It,u5=new It;class P2{constructor(e=new It,t=new It(0,0,-1)){this.origin=e,this.direction=t}set(e,t){return this.origin.copy(e),this.direction.copy(t),this}copy(e){return this.origin.copy(e.origin),this.direction.copy(e.direction),this}at(e,t){return t.copy(this.origin).addScaledVector(this.direction,e)}lookAt(e){return this.direction.copy(e).sub(this.origin).normalize(),this}recast(e){return this.origin.copy(this.at(e,Q_)),this}closestPointToPoint(e,t){t.subVectors(e,this.origin);const i=t.dot(this.direction);return i<0?t.copy(this.origin):t.copy(this.origin).addScaledVector(this.direction,i)}distanceToPoint(e){return Math.sqrt(this.distanceSqToPoint(e))}distanceSqToPoint(e){const t=Q_.subVectors(e,this.origin).dot(this.direction);return t<0?this.origin.distanceToSquared(e):(Q_.copy(this.origin).addScaledVector(this.direction,t),Q_.distanceToSquared(e))}distanceSqToSegment(e,t,i,r){c5.copy(e).add(t).multiplyScalar(.5),nI.copy(t).sub(e).normalize(),Uy.copy(this.origin).sub(c5);const s=.5*e.distanceTo(t),o=-this.direction.dot(nI),l=Uy.dot(this.direction),d=-Uy.dot(nI),u=Uy.lengthSq(),f=Math.abs(1-o*o);let A,S,R,G;if(f>0)if(A=o*d-l,S=o*l-d,G=s*f,A>=0)if(S>=-G)if(S<=G){const re=1/f;A*=re,S*=re,R=A*(A+o*S+2*l)+S*(o*A+S+2*d)+u}else S=s,A=Math.max(0,-(o*S+l)),R=-A*A+S*(S+2*d)+u;else S=-s,A=Math.max(0,-(o*S+l)),R=-A*A+S*(S+2*d)+u;else S<=-G?(A=Math.max(0,-(-o*s+l)),S=A>0?-s:Math.min(Math.max(-s,-d),s),R=-A*A+S*(S+2*d)+u):S<=G?(A=0,S=Math.min(Math.max(-s,-d),s),R=S*(S+2*d)+u):(A=Math.max(0,-(o*s+l)),S=A>0?s:Math.min(Math.max(-s,-d),s),R=-A*A+S*(S+2*d)+u);else S=o>0?-s:s,A=Math.max(0,-(o*S+l)),R=-A*A+S*(S+2*d)+u;return i&&i.copy(this.origin).addScaledVector(this.direction,A),r&&r.copy(c5).addScaledVector(nI,S),R}intersectSphere(e,t){Q_.subVectors(e.center,this.origin);const i=Q_.dot(this.direction),r=Q_.dot(Q_)-i*i,s=e.radius*e.radius;if(r>s)return null;const o=Math.sqrt(s-r),l=i-o,d=i+o;return d<0?null:this.at(l<0?d:l,t)}intersectsSphere(e){return this.distanceSqToPoint(e.center)<=e.radius*e.radius}distanceToPlane(e){const t=e.normal.dot(this.direction);if(0===t)return 0===e.distanceToPoint(this.origin)?0:null;const i=-(this.origin.dot(e.normal)+e.constant)/t;return i>=0?i:null}intersectPlane(e,t){const i=this.distanceToPlane(e);return null===i?null:this.at(i,t)}intersectsPlane(e){const t=e.distanceToPoint(this.origin);return 0===t||e.normal.dot(this.direction)*t<0}intersectBox(e,t){let i,r,s,o,l,d;const u=1/this.direction.x,f=1/this.direction.y,A=1/this.direction.z,S=this.origin;return u>=0?(i=(e.min.x-S.x)*u,r=(e.max.x-S.x)*u):(i=(e.max.x-S.x)*u,r=(e.min.x-S.x)*u),f>=0?(s=(e.min.y-S.y)*f,o=(e.max.y-S.y)*f):(s=(e.max.y-S.y)*f,o=(e.min.y-S.y)*f),i>o||s>r||((s>i||isNaN(i))&&(i=s),(o=0?(l=(e.min.z-S.z)*A,d=(e.max.z-S.z)*A):(l=(e.max.z-S.z)*A,d=(e.min.z-S.z)*A),i>d||l>r)||((l>i||i!=i)&&(i=l),(d=0?i:r,t)}intersectsBox(e){return null!==this.intersectBox(e,Q_)}intersectTriangle(e,t,i,r,s){d5.subVectors(t,e),iI.subVectors(i,e),u5.crossVectors(d5,iI);let l,o=this.direction.dot(u5);if(o>0){if(r)return null;l=1}else{if(!(o<0))return null;l=-1,o=-o}Uy.subVectors(this.origin,e);const d=l*this.direction.dot(iI.crossVectors(Uy,iI));if(d<0)return null;const u=l*this.direction.dot(d5.cross(Uy));if(u<0||d+u>o)return null;const f=-l*Uy.dot(u5);return f<0?null:this.at(f/o,s)}applyMatrix4(e){return this.origin.applyMatrix4(e),this.direction.transformDirection(e),this}equals(e){return e.origin.equals(this.origin)&&e.direction.equals(this.direction)}clone(){return(new this.constructor).copy(this)}}class wo{constructor(e,t,i,r,s,o,l,d,u,f,A,S,R,G,re,se){wo.prototype.isMatrix4=!0,this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],void 0!==e&&this.set(e,t,i,r,s,o,l,d,u,f,A,S,R,G,re,se)}set(e,t,i,r,s,o,l,d,u,f,A,S,R,G,re,se){const le=this.elements;return le[0]=e,le[4]=t,le[8]=i,le[12]=r,le[1]=s,le[5]=o,le[9]=l,le[13]=d,le[2]=u,le[6]=f,le[10]=A,le[14]=S,le[3]=R,le[7]=G,le[11]=re,le[15]=se,this}identity(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this}clone(){return(new wo).fromArray(this.elements)}copy(e){const t=this.elements,i=e.elements;return t[0]=i[0],t[1]=i[1],t[2]=i[2],t[3]=i[3],t[4]=i[4],t[5]=i[5],t[6]=i[6],t[7]=i[7],t[8]=i[8],t[9]=i[9],t[10]=i[10],t[11]=i[11],t[12]=i[12],t[13]=i[13],t[14]=i[14],t[15]=i[15],this}copyPosition(e){const t=this.elements,i=e.elements;return t[12]=i[12],t[13]=i[13],t[14]=i[14],this}setFromMatrix3(e){const t=e.elements;return this.set(t[0],t[3],t[6],0,t[1],t[4],t[7],0,t[2],t[5],t[8],0,0,0,0,1),this}extractBasis(e,t,i){return e.setFromMatrixColumn(this,0),t.setFromMatrixColumn(this,1),i.setFromMatrixColumn(this,2),this}makeBasis(e,t,i){return this.set(e.x,t.x,i.x,0,e.y,t.y,i.y,0,e.z,t.z,i.z,0,0,0,0,1),this}extractRotation(e){const t=this.elements,i=e.elements,r=1/R2.setFromMatrixColumn(e,0).length(),s=1/R2.setFromMatrixColumn(e,1).length(),o=1/R2.setFromMatrixColumn(e,2).length();return t[0]=i[0]*r,t[1]=i[1]*r,t[2]=i[2]*r,t[3]=0,t[4]=i[4]*s,t[5]=i[5]*s,t[6]=i[6]*s,t[7]=0,t[8]=i[8]*o,t[9]=i[9]*o,t[10]=i[10]*o,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,this}makeRotationFromEuler(e){const t=this.elements,i=e.x,r=e.y,s=e.z,o=Math.cos(i),l=Math.sin(i),d=Math.cos(r),u=Math.sin(r),f=Math.cos(s),A=Math.sin(s);if("XYZ"===e.order){const S=o*f,R=o*A,G=l*f,re=l*A;t[0]=d*f,t[4]=-d*A,t[8]=u,t[1]=R+G*u,t[5]=S-re*u,t[9]=-l*d,t[2]=re-S*u,t[6]=G+R*u,t[10]=o*d}else if("YXZ"===e.order){const S=d*f,R=d*A,G=u*f,re=u*A;t[0]=S+re*l,t[4]=G*l-R,t[8]=o*u,t[1]=o*A,t[5]=o*f,t[9]=-l,t[2]=R*l-G,t[6]=re+S*l,t[10]=o*d}else if("ZXY"===e.order){const S=d*f,R=d*A,G=u*f,re=u*A;t[0]=S-re*l,t[4]=-o*A,t[8]=G+R*l,t[1]=R+G*l,t[5]=o*f,t[9]=re-S*l,t[2]=-o*u,t[6]=l,t[10]=o*d}else if("ZYX"===e.order){const S=o*f,R=o*A,G=l*f,re=l*A;t[0]=d*f,t[4]=G*u-R,t[8]=S*u+re,t[1]=d*A,t[5]=re*u+S,t[9]=R*u-G,t[2]=-u,t[6]=l*d,t[10]=o*d}else if("YZX"===e.order){const S=o*d,R=o*u,G=l*d,re=l*u;t[0]=d*f,t[4]=re-S*A,t[8]=G*A+R,t[1]=A,t[5]=o*f,t[9]=-l*f,t[2]=-u*f,t[6]=R*A+G,t[10]=S-re*A}else if("XZY"===e.order){const S=o*d,R=o*u,G=l*d,re=l*u;t[0]=d*f,t[4]=-A,t[8]=u*f,t[1]=S*A+re,t[5]=o*f,t[9]=R*A-G,t[2]=G*A-R,t[6]=l*f,t[10]=re*A+S}return t[3]=0,t[7]=0,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,this}makeRotationFromQuaternion(e){return this.compose(rce,e,sce)}lookAt(e,t,i){const r=this.elements;return um.subVectors(e,t),0===um.lengthSq()&&(um.z=1),um.normalize(),zy.crossVectors(i,um),0===zy.lengthSq()&&(1===Math.abs(i.z)?um.x+=1e-4:um.z+=1e-4,um.normalize(),zy.crossVectors(i,um)),zy.normalize(),rI.crossVectors(um,zy),r[0]=zy.x,r[4]=rI.x,r[8]=um.x,r[1]=zy.y,r[5]=rI.y,r[9]=um.y,r[2]=zy.z,r[6]=rI.z,r[10]=um.z,this}multiply(e){return this.multiplyMatrices(this,e)}premultiply(e){return this.multiplyMatrices(e,this)}multiplyMatrices(e,t){const i=e.elements,r=t.elements,s=this.elements,o=i[0],l=i[4],d=i[8],u=i[12],f=i[1],A=i[5],S=i[9],R=i[13],G=i[2],re=i[6],se=i[10],le=i[14],Ee=i[3],Ce=i[7],We=i[11],Mt=i[15],yt=r[0],Et=r[4],Xt=r[8],Un=r[12],wt=r[1],Kt=r[5],Vi=r[9],Yi=r[13],En=r[2],wi=r[6],zn=r[10],oi=r[14],hi=r[3],vi=r[7],mr=r[11],Mr=r[15];return s[0]=o*yt+l*wt+d*En+u*hi,s[4]=o*Et+l*Kt+d*wi+u*vi,s[8]=o*Xt+l*Vi+d*zn+u*mr,s[12]=o*Un+l*Yi+d*oi+u*Mr,s[1]=f*yt+A*wt+S*En+R*hi,s[5]=f*Et+A*Kt+S*wi+R*vi,s[9]=f*Xt+A*Vi+S*zn+R*mr,s[13]=f*Un+A*Yi+S*oi+R*Mr,s[2]=G*yt+re*wt+se*En+le*hi,s[6]=G*Et+re*Kt+se*wi+le*vi,s[10]=G*Xt+re*Vi+se*zn+le*mr,s[14]=G*Un+re*Yi+se*oi+le*Mr,s[3]=Ee*yt+Ce*wt+We*En+Mt*hi,s[7]=Ee*Et+Ce*Kt+We*wi+Mt*vi,s[11]=Ee*Xt+Ce*Vi+We*zn+Mt*mr,s[15]=Ee*Un+Ce*Yi+We*oi+Mt*Mr,this}multiplyScalar(e){const t=this.elements;return t[0]*=e,t[4]*=e,t[8]*=e,t[12]*=e,t[1]*=e,t[5]*=e,t[9]*=e,t[13]*=e,t[2]*=e,t[6]*=e,t[10]*=e,t[14]*=e,t[3]*=e,t[7]*=e,t[11]*=e,t[15]*=e,this}determinant(){const e=this.elements,t=e[0],i=e[4],r=e[8],s=e[12],o=e[1],l=e[5],d=e[9],u=e[13],f=e[2],A=e[6],S=e[10],R=e[14];return e[3]*(+s*d*A-r*u*A-s*l*S+i*u*S+r*l*R-i*d*R)+e[7]*(+t*d*R-t*u*S+s*o*S-r*o*R+r*u*f-s*d*f)+e[11]*(+t*u*A-t*l*R-s*o*A+i*o*R+s*l*f-i*u*f)+e[15]*(-r*l*f-t*d*A+t*l*S+r*o*A-i*o*S+i*d*f)}transpose(){const e=this.elements;let t;return t=e[1],e[1]=e[4],e[4]=t,t=e[2],e[2]=e[8],e[8]=t,t=e[6],e[6]=e[9],e[9]=t,t=e[3],e[3]=e[12],e[12]=t,t=e[7],e[7]=e[13],e[13]=t,t=e[11],e[11]=e[14],e[14]=t,this}setPosition(e,t,i){const r=this.elements;return e.isVector3?(r[12]=e.x,r[13]=e.y,r[14]=e.z):(r[12]=e,r[13]=t,r[14]=i),this}invert(){const e=this.elements,t=e[0],i=e[1],r=e[2],s=e[3],o=e[4],l=e[5],d=e[6],u=e[7],f=e[8],A=e[9],S=e[10],R=e[11],G=e[12],re=e[13],se=e[14],le=e[15],Ee=A*se*u-re*S*u+re*d*R-l*se*R-A*d*le+l*S*le,Ce=G*S*u-f*se*u-G*d*R+o*se*R+f*d*le-o*S*le,We=f*re*u-G*A*u+G*l*R-o*re*R-f*l*le+o*A*le,Mt=G*A*d-f*re*d-G*l*S+o*re*S+f*l*se-o*A*se,yt=t*Ee+i*Ce+r*We+s*Mt;if(0===yt)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);const Et=1/yt;return e[0]=Ee*Et,e[1]=(re*S*s-A*se*s-re*r*R+i*se*R+A*r*le-i*S*le)*Et,e[2]=(l*se*s-re*d*s+re*r*u-i*se*u-l*r*le+i*d*le)*Et,e[3]=(A*d*s-l*S*s-A*r*u+i*S*u+l*r*R-i*d*R)*Et,e[4]=Ce*Et,e[5]=(f*se*s-G*S*s+G*r*R-t*se*R-f*r*le+t*S*le)*Et,e[6]=(G*d*s-o*se*s-G*r*u+t*se*u+o*r*le-t*d*le)*Et,e[7]=(o*S*s-f*d*s+f*r*u-t*S*u-o*r*R+t*d*R)*Et,e[8]=We*Et,e[9]=(G*A*s-f*re*s-G*i*R+t*re*R+f*i*le-t*A*le)*Et,e[10]=(o*re*s-G*l*s+G*i*u-t*re*u-o*i*le+t*l*le)*Et,e[11]=(f*l*s-o*A*s-f*i*u+t*A*u+o*i*R-t*l*R)*Et,e[12]=Mt*Et,e[13]=(f*re*r-G*A*r+G*i*S-t*re*S-f*i*se+t*A*se)*Et,e[14]=(G*l*r-o*re*r-G*i*d+t*re*d+o*i*se-t*l*se)*Et,e[15]=(o*A*r-f*l*r+f*i*d-t*A*d-o*i*S+t*l*S)*Et,this}scale(e){const t=this.elements,i=e.x,r=e.y,s=e.z;return t[0]*=i,t[4]*=r,t[8]*=s,t[1]*=i,t[5]*=r,t[9]*=s,t[2]*=i,t[6]*=r,t[10]*=s,t[3]*=i,t[7]*=r,t[11]*=s,this}getMaxScaleOnAxis(){const e=this.elements;return Math.sqrt(Math.max(e[0]*e[0]+e[1]*e[1]+e[2]*e[2],e[4]*e[4]+e[5]*e[5]+e[6]*e[6],e[8]*e[8]+e[9]*e[9]+e[10]*e[10]))}makeTranslation(e,t,i){return e.isVector3?this.set(1,0,0,e.x,0,1,0,e.y,0,0,1,e.z,0,0,0,1):this.set(1,0,0,e,0,1,0,t,0,0,1,i,0,0,0,1),this}makeRotationX(e){const t=Math.cos(e),i=Math.sin(e);return this.set(1,0,0,0,0,t,-i,0,0,i,t,0,0,0,0,1),this}makeRotationY(e){const t=Math.cos(e),i=Math.sin(e);return this.set(t,0,i,0,0,1,0,0,-i,0,t,0,0,0,0,1),this}makeRotationZ(e){const t=Math.cos(e),i=Math.sin(e);return this.set(t,-i,0,0,i,t,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(e,t){const i=Math.cos(t),r=Math.sin(t),s=1-i,o=e.x,l=e.y,d=e.z,u=s*o,f=s*l;return this.set(u*o+i,u*l-r*d,u*d+r*l,0,u*l+r*d,f*l+i,f*d-r*o,0,u*d-r*l,f*d+r*o,s*d*d+i,0,0,0,0,1),this}makeScale(e,t,i){return this.set(e,0,0,0,0,t,0,0,0,0,i,0,0,0,0,1),this}makeShear(e,t,i,r,s,o){return this.set(1,i,s,0,e,1,o,0,t,r,1,0,0,0,0,1),this}compose(e,t,i){const r=this.elements,s=t._x,o=t._y,l=t._z,d=t._w,u=s+s,f=o+o,A=l+l,S=s*u,R=s*f,G=s*A,re=o*f,se=o*A,le=l*A,Ee=d*u,Ce=d*f,We=d*A,Mt=i.x,yt=i.y,Et=i.z;return r[0]=(1-(re+le))*Mt,r[1]=(R+We)*Mt,r[2]=(G-Ce)*Mt,r[3]=0,r[4]=(R-We)*yt,r[5]=(1-(S+le))*yt,r[6]=(se+Ee)*yt,r[7]=0,r[8]=(G+Ce)*Et,r[9]=(se-Ee)*Et,r[10]=(1-(S+re))*Et,r[11]=0,r[12]=e.x,r[13]=e.y,r[14]=e.z,r[15]=1,this}decompose(e,t,i){const r=this.elements;let s=R2.set(r[0],r[1],r[2]).length();const o=R2.set(r[4],r[5],r[6]).length(),l=R2.set(r[8],r[9],r[10]).length();this.determinant()<0&&(s=-s),e.x=r[12],e.y=r[13],e.z=r[14],hg.copy(this);const u=1/s,f=1/o,A=1/l;return hg.elements[0]*=u,hg.elements[1]*=u,hg.elements[2]*=u,hg.elements[4]*=f,hg.elements[5]*=f,hg.elements[6]*=f,hg.elements[8]*=A,hg.elements[9]*=A,hg.elements[10]*=A,t.setFromRotationMatrix(hg),i.x=s,i.y=o,i.z=l,this}makePerspective(e,t,i,r,s,o,l=V_){const d=this.elements,u=2*s/(t-e),f=2*s/(i-r),A=(t+e)/(t-e),S=(i+r)/(i-r);let R,G;if(l===V_)R=-(o+s)/(o-s),G=-2*o*s/(o-s);else{if(2001!==l)throw new Error("THREE.Matrix4.makePerspective(): Invalid coordinate system: "+l);R=-o/(o-s),G=-o*s/(o-s)}return d[0]=u,d[4]=0,d[8]=A,d[12]=0,d[1]=0,d[5]=f,d[9]=S,d[13]=0,d[2]=0,d[6]=0,d[10]=R,d[14]=G,d[3]=0,d[7]=0,d[11]=-1,d[15]=0,this}makeOrthographic(e,t,i,r,s,o,l=V_){const d=this.elements,u=1/(t-e),f=1/(i-r),A=1/(o-s),S=(t+e)*u,R=(i+r)*f;let G,re;if(l===V_)G=(o+s)*A,re=-2*A;else{if(2001!==l)throw new Error("THREE.Matrix4.makeOrthographic(): Invalid coordinate system: "+l);G=s*A,re=-1*A}return d[0]=2*u,d[4]=0,d[8]=0,d[12]=-S,d[1]=0,d[5]=2*f,d[9]=0,d[13]=-R,d[2]=0,d[6]=0,d[10]=re,d[14]=-G,d[3]=0,d[7]=0,d[11]=0,d[15]=1,this}equals(e){const t=this.elements,i=e.elements;for(let r=0;r<16;r++)if(t[r]!==i[r])return!1;return!0}fromArray(e,t=0){for(let i=0;i<16;i++)this.elements[i]=e[i+t];return this}toArray(e=[],t=0){const i=this.elements;return e[t]=i[0],e[t+1]=i[1],e[t+2]=i[2],e[t+3]=i[3],e[t+4]=i[4],e[t+5]=i[5],e[t+6]=i[6],e[t+7]=i[7],e[t+8]=i[8],e[t+9]=i[9],e[t+10]=i[10],e[t+11]=i[11],e[t+12]=i[12],e[t+13]=i[13],e[t+14]=i[14],e[t+15]=i[15],e}}const R2=new It,hg=new wo,rce=new It(0,0,0),sce=new It(1,1,1),zy=new It,rI=new It,um=new It,ZH=new wo,JH=new Gc;let S0=(()=>{class n{constructor(t=0,i=0,r=0,s=n.DEFAULT_ORDER){this.isEuler=!0,this._x=t,this._y=i,this._z=r,this._order=s}get x(){return this._x}set x(t){this._x=t,this._onChangeCallback()}get y(){return this._y}set y(t){this._y=t,this._onChangeCallback()}get z(){return this._z}set z(t){this._z=t,this._onChangeCallback()}get order(){return this._order}set order(t){this._order=t,this._onChangeCallback()}set(t,i,r,s=this._order){return this._x=t,this._y=i,this._z=r,this._order=s,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(t){return this._x=t._x,this._y=t._y,this._z=t._z,this._order=t._order,this._onChangeCallback(),this}setFromRotationMatrix(t,i=this._order,r=!0){const s=t.elements,o=s[0],l=s[4],d=s[8],u=s[1],f=s[5],A=s[9],S=s[2],R=s[6],G=s[10];switch(i){case"XYZ":this._y=Math.asin(bd(d,-1,1)),Math.abs(d)<.9999999?(this._x=Math.atan2(-A,G),this._z=Math.atan2(-l,o)):(this._x=Math.atan2(R,f),this._z=0);break;case"YXZ":this._x=Math.asin(-bd(A,-1,1)),Math.abs(A)<.9999999?(this._y=Math.atan2(d,G),this._z=Math.atan2(u,f)):(this._y=Math.atan2(-S,o),this._z=0);break;case"ZXY":this._x=Math.asin(bd(R,-1,1)),Math.abs(R)<.9999999?(this._y=Math.atan2(-S,G),this._z=Math.atan2(-l,f)):(this._y=0,this._z=Math.atan2(u,o));break;case"ZYX":this._y=Math.asin(-bd(S,-1,1)),Math.abs(S)<.9999999?(this._x=Math.atan2(R,G),this._z=Math.atan2(u,o)):(this._x=0,this._z=Math.atan2(-l,f));break;case"YZX":this._z=Math.asin(bd(u,-1,1)),Math.abs(u)<.9999999?(this._x=Math.atan2(-A,f),this._y=Math.atan2(-S,o)):(this._x=0,this._y=Math.atan2(d,G));break;case"XZY":this._z=Math.asin(-bd(l,-1,1)),Math.abs(l)<.9999999?(this._x=Math.atan2(R,f),this._y=Math.atan2(d,o)):(this._x=Math.atan2(-A,G),this._y=0);break;default:console.warn("THREE.Euler: .setFromRotationMatrix() encountered an unknown order: "+i)}return this._order=i,!0===r&&this._onChangeCallback(),this}setFromQuaternion(t,i,r){return ZH.makeRotationFromQuaternion(t),this.setFromRotationMatrix(ZH,i,r)}setFromVector3(t,i=this._order){return this.set(t.x,t.y,t.z,i)}reorder(t){return JH.setFromEuler(this),this.setFromQuaternion(JH,t)}equals(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._order===this._order}fromArray(t){return this._x=t[0],this._y=t[1],this._z=t[2],void 0!==t[3]&&(this._order=t[3]),this._onChangeCallback(),this}toArray(t=[],i=0){return t[i]=this._x,t[i+1]=this._y,t[i+2]=this._z,t[i+3]=this._order,t}_onChange(t){return this._onChangeCallback=t,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._order}}return n.DEFAULT_ORDER="XYZ",n})();class h5{constructor(){this.mask=1}set(e){this.mask=1<>>0}enable(e){this.mask|=1<{class n extends G_{constructor(){super(),this.isObject3D=!0,Object.defineProperty(this,"id",{value:oce++}),this.uuid=dm(),this.name="",this.type="Object3D",this.parent=null,this.children=[],this.up=n.DEFAULT_UP.clone();const t=new It,i=new S0,r=new Gc,s=new It(1,1,1);i._onChange(function o(){r.setFromEuler(i,!1)}),r._onChange(function l(){i.setFromQuaternion(r,void 0,!1)}),Object.defineProperties(this,{position:{configurable:!0,enumerable:!0,value:t},rotation:{configurable:!0,enumerable:!0,value:i},quaternion:{configurable:!0,enumerable:!0,value:r},scale:{configurable:!0,enumerable:!0,value:s},modelViewMatrix:{value:new wo},normalMatrix:{value:new Ta}}),this.matrix=new wo,this.matrixWorld=new wo,this.matrixAutoUpdate=n.DEFAULT_MATRIX_AUTO_UPDATE,this.matrixWorldAutoUpdate=n.DEFAULT_MATRIX_WORLD_AUTO_UPDATE,this.matrixWorldNeedsUpdate=!1,this.layers=new h5,this.visible=!0,this.castShadow=!1,this.receiveShadow=!1,this.frustumCulled=!0,this.renderOrder=0,this.animations=[],this.userData={}}onBeforeShadow(){}onAfterShadow(){}onBeforeRender(){}onAfterRender(){}applyMatrix4(t){this.matrixAutoUpdate&&this.updateMatrix(),this.matrix.premultiply(t),this.matrix.decompose(this.position,this.quaternion,this.scale)}applyQuaternion(t){return this.quaternion.premultiply(t),this}setRotationFromAxisAngle(t,i){this.quaternion.setFromAxisAngle(t,i)}setRotationFromEuler(t){this.quaternion.setFromEuler(t,!0)}setRotationFromMatrix(t){this.quaternion.setFromRotationMatrix(t)}setRotationFromQuaternion(t){this.quaternion.copy(t)}rotateOnAxis(t,i){return k2.setFromAxisAngle(t,i),this.quaternion.multiply(k2),this}rotateOnWorldAxis(t,i){return k2.setFromAxisAngle(t,i),this.quaternion.premultiply(k2),this}rotateX(t){return this.rotateOnAxis(tV,t)}rotateY(t){return this.rotateOnAxis(nV,t)}rotateZ(t){return this.rotateOnAxis(iV,t)}translateOnAxis(t,i){return eV.copy(t).applyQuaternion(this.quaternion),this.position.add(eV.multiplyScalar(i)),this}translateX(t){return this.translateOnAxis(tV,t)}translateY(t){return this.translateOnAxis(nV,t)}translateZ(t){return this.translateOnAxis(iV,t)}localToWorld(t){return this.updateWorldMatrix(!0,!1),t.applyMatrix4(this.matrixWorld)}worldToLocal(t){return this.updateWorldMatrix(!0,!1),t.applyMatrix4(W_.copy(this.matrixWorld).invert())}lookAt(t,i,r){t.isVector3?sI.copy(t):sI.set(t,i,r);const s=this.parent;this.updateWorldMatrix(!0,!1),WS.setFromMatrixPosition(this.matrixWorld),this.isCamera||this.isLight?W_.lookAt(WS,sI,this.up):W_.lookAt(sI,WS,this.up),this.quaternion.setFromRotationMatrix(W_),s&&(W_.extractRotation(s.matrixWorld),k2.setFromRotationMatrix(W_),this.quaternion.premultiply(k2.invert()))}add(t){if(arguments.length>1){for(let i=0;i1){for(let r=0;r0&&(s.userData=this.userData),s.layers=this.layers.mask,s.matrix=this.matrix.toArray(),s.up=this.up.toArray(),!1===this.matrixAutoUpdate&&(s.matrixAutoUpdate=!1),this.isInstancedMesh&&(s.type="InstancedMesh",s.count=this.count,s.instanceMatrix=this.instanceMatrix.toJSON(),null!==this.instanceColor&&(s.instanceColor=this.instanceColor.toJSON())),this.isBatchedMesh&&(s.type="BatchedMesh",s.perObjectFrustumCulled=this.perObjectFrustumCulled,s.sortObjects=this.sortObjects,s.drawRanges=this._drawRanges,s.reservedRanges=this._reservedRanges,s.visibility=this._visibility,s.active=this._active,s.bounds=this._bounds.map(d=>({boxInitialized:d.boxInitialized,boxMin:d.box.min.toArray(),boxMax:d.box.max.toArray(),sphereInitialized:d.sphereInitialized,sphereRadius:d.sphere.radius,sphereCenter:d.sphere.center.toArray()})),s.maxGeometryCount=this._maxGeometryCount,s.maxVertexCount=this._maxVertexCount,s.maxIndexCount=this._maxIndexCount,s.geometryInitialized=this._geometryInitialized,s.geometryCount=this._geometryCount,s.matricesTexture=this._matricesTexture.toJSON(t),null!==this.boundingSphere&&(s.boundingSphere={center:s.boundingSphere.center.toArray(),radius:s.boundingSphere.radius}),null!==this.boundingBox&&(s.boundingBox={min:s.boundingBox.min.toArray(),max:s.boundingBox.max.toArray()})),this.isScene)this.background&&(this.background.isColor?s.background=this.background.toJSON():this.background.isTexture&&(s.background=this.background.toJSON(t).uuid)),this.environment&&this.environment.isTexture&&!0!==this.environment.isRenderTargetTexture&&(s.environment=this.environment.toJSON(t).uuid);else if(this.isMesh||this.isLine||this.isPoints){s.geometry=o(t.geometries,this.geometry);const d=this.geometry.parameters;if(void 0!==d&&void 0!==d.shapes){const u=d.shapes;if(Array.isArray(u))for(let f=0,A=u.length;f0){s.children=[];for(let d=0;d0){s.animations=[];for(let d=0;d0&&(r.geometries=d),u.length>0&&(r.materials=u),f.length>0&&(r.textures=f),A.length>0&&(r.images=A),S.length>0&&(r.shapes=S),R.length>0&&(r.skeletons=R),G.length>0&&(r.animations=G),re.length>0&&(r.nodes=re)}return r.object=s,r;function l(d){const u=[];for(const f in d){const A=d[f];delete A.metadata,u.push(A)}return u}}clone(t){return(new this.constructor).copy(this,t)}copy(t,i=!0){if(this.name=t.name,this.up.copy(t.up),this.position.copy(t.position),this.rotation.order=t.rotation.order,this.quaternion.copy(t.quaternion),this.scale.copy(t.scale),this.matrix.copy(t.matrix),this.matrixWorld.copy(t.matrixWorld),this.matrixAutoUpdate=t.matrixAutoUpdate,this.matrixWorldAutoUpdate=t.matrixWorldAutoUpdate,this.matrixWorldNeedsUpdate=t.matrixWorldNeedsUpdate,this.layers.mask=t.layers.mask,this.visible=t.visible,this.castShadow=t.castShadow,this.receiveShadow=t.receiveShadow,this.frustumCulled=t.frustumCulled,this.renderOrder=t.renderOrder,this.animations=t.animations.slice(),this.userData=JSON.parse(JSON.stringify(t.userData)),!0===i)for(let r=0;r0?r.multiplyScalar(1/Math.sqrt(s)):r.set(0,0,0)}static getBarycoord(e,t,i,r,s){fg.subVectors(r,t),j_.subVectors(i,t),m5.subVectors(e,t);const o=fg.dot(fg),l=fg.dot(j_),d=fg.dot(m5),u=j_.dot(j_),f=j_.dot(m5),A=o*u-l*l;if(0===A)return s.set(0,0,0),null;const S=1/A,R=(u*d-l*f)*S,G=(o*f-l*d)*S;return s.set(1-R-G,G,R)}static containsPoint(e,t,i,r){return null!==this.getBarycoord(e,t,i,r,$_)&&$_.x>=0&&$_.y>=0&&$_.x+$_.y<=1}static getInterpolation(e,t,i,r,s,o,l,d){return null===this.getBarycoord(e,t,i,r,$_)?(d.x=0,d.y=0,"z"in d&&(d.z=0),"w"in d&&(d.w=0),null):(d.setScalar(0),d.addScaledVector(s,$_.x),d.addScaledVector(o,$_.y),d.addScaledVector(l,$_.z),d)}static isFrontFacing(e,t,i,r){return fg.subVectors(i,t),j_.subVectors(e,t),fg.cross(j_).dot(r)<0}set(e,t,i){return this.a.copy(e),this.b.copy(t),this.c.copy(i),this}setFromPointsAndIndices(e,t,i,r){return this.a.copy(e[t]),this.b.copy(e[i]),this.c.copy(e[r]),this}setFromAttributeAndIndices(e,t,i,r){return this.a.fromBufferAttribute(e,t),this.b.fromBufferAttribute(e,i),this.c.fromBufferAttribute(e,r),this}clone(){return(new this.constructor).copy(this)}copy(e){return this.a.copy(e.a),this.b.copy(e.b),this.c.copy(e.c),this}getArea(){return fg.subVectors(this.c,this.b),j_.subVectors(this.a,this.b),.5*fg.cross(j_).length()}getMidpoint(e){return e.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(e){return hm.getNormal(this.a,this.b,this.c,e)}getPlane(e){return e.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(e,t){return hm.getBarycoord(e,this.a,this.b,this.c,t)}getInterpolation(e,t,i,r,s){return hm.getInterpolation(e,this.a,this.b,this.c,t,i,r,s)}containsPoint(e){return hm.containsPoint(e,this.a,this.b,this.c)}isFrontFacing(e){return hm.isFrontFacing(this.a,this.b,this.c,e)}intersectsBox(e){return e.intersectsTriangle(this)}closestPointToPoint(e,t){const i=this.a,r=this.b,s=this.c;let o,l;F2.subVectors(r,i),O2.subVectors(s,i),A5.subVectors(e,i);const d=F2.dot(A5),u=O2.dot(A5);if(d<=0&&u<=0)return t.copy(i);g5.subVectors(e,r);const f=F2.dot(g5),A=O2.dot(g5);if(f>=0&&A<=f)return t.copy(r);const S=d*A-f*u;if(S<=0&&d>=0&&f<=0)return o=d/(d-f),t.copy(i).addScaledVector(F2,o);_5.subVectors(e,s);const R=F2.dot(_5),G=O2.dot(_5);if(G>=0&&R<=G)return t.copy(s);const re=R*u-d*G;if(re<=0&&u>=0&&G<=0)return l=u/(u-G),t.copy(i).addScaledVector(O2,l);const se=f*G-R*A;if(se<=0&&A-f>=0&&R-G>=0)return rV.subVectors(s,r),l=(A-f)/(A-f+(R-G)),t.copy(r).addScaledVector(rV,l);const le=1/(se+re+S);return o=re*le,l=S*le,t.copy(i).addScaledVector(F2,o).addScaledVector(O2,l)}equals(e){return e.a.equals(this.a)&&e.b.equals(this.b)&&e.c.equals(this.c)}}const sV={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},Hy={h:0,s:0,l:0},oI={h:0,s:0,l:0};function y5(n,e,t){return t<0&&(t+=1),t>1&&(t-=1),t<1/6?n+6*(e-n)*t:t<.5?e:t<2/3?n+6*(e-n)*(2/3-t):n}class Cr{constructor(e,t,i){return this.isColor=!0,this.r=1,this.g=1,this.b=1,this.set(e,t,i)}set(e,t,i){if(void 0===t&&void 0===i){const r=e;r&&r.isColor?this.copy(r):"number"==typeof r?this.setHex(r):"string"==typeof r&&this.setStyle(r)}else this.setRGB(e,t,i);return this}setScalar(e){return this.r=e,this.g=e,this.b=e,this}setHex(e,t=cu){return e=Math.floor(e),this.r=(e>>16&255)/255,this.g=(e>>8&255)/255,this.b=(255&e)/255,Ol.toWorkingColorSpace(this,t),this}setRGB(e,t,i,r=Ol.workingColorSpace){return this.r=e,this.g=t,this.b=i,Ol.toWorkingColorSpace(this,r),this}setHSL(e,t,i,r=Ol.workingColorSpace){if(e=Jk(e,1),t=bd(t,0,1),i=bd(i,0,1),0===t)this.r=this.g=this.b=i;else{const s=i<=.5?i*(1+t):i+t-i*t,o=2*i-s;this.r=y5(o,s,e+1/3),this.g=y5(o,s,e),this.b=y5(o,s,e-1/3)}return Ol.toWorkingColorSpace(this,r),this}setStyle(e,t=cu){function i(s){void 0!==s&&parseFloat(s)<1&&console.warn("THREE.Color: Alpha component of "+e+" will be ignored.")}let r;if(r=/^(\w+)\(([^\)]*)\)/.exec(e)){let s;const l=r[2];switch(r[1]){case"rgb":case"rgba":if(s=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(l))return i(s[4]),this.setRGB(Math.min(255,parseInt(s[1],10))/255,Math.min(255,parseInt(s[2],10))/255,Math.min(255,parseInt(s[3],10))/255,t);if(s=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(l))return i(s[4]),this.setRGB(Math.min(100,parseInt(s[1],10))/100,Math.min(100,parseInt(s[2],10))/100,Math.min(100,parseInt(s[3],10))/100,t);break;case"hsl":case"hsla":if(s=/^\s*(\d*\.?\d+)\s*,\s*(\d*\.?\d+)\%\s*,\s*(\d*\.?\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(l))return i(s[4]),this.setHSL(parseFloat(s[1])/360,parseFloat(s[2])/100,parseFloat(s[3])/100,t);break;default:console.warn("THREE.Color: Unknown color model "+e)}}else if(r=/^\#([A-Fa-f\d]+)$/.exec(e)){const s=r[1],o=s.length;if(3===o)return this.setRGB(parseInt(s.charAt(0),16)/15,parseInt(s.charAt(1),16)/15,parseInt(s.charAt(2),16)/15,t);if(6===o)return this.setHex(parseInt(s,16),t);console.warn("THREE.Color: Invalid hex color "+e)}else if(e&&e.length>0)return this.setColorName(e,t);return this}setColorName(e,t=cu){const i=sV[e.toLowerCase()];return void 0!==i?this.setHex(i,t):console.warn("THREE.Color: Unknown color "+e),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(e){return this.r=e.r,this.g=e.g,this.b=e.b,this}copySRGBToLinear(e){return this.r=E2(e.r),this.g=E2(e.g),this.b=E2(e.b),this}copyLinearToSRGB(e){return this.r=n5(e.r),this.g=n5(e.g),this.b=n5(e.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(e=cu){return Ol.fromWorkingColorSpace(Hh.copy(this),e),65536*Math.round(bd(255*Hh.r,0,255))+256*Math.round(bd(255*Hh.g,0,255))+Math.round(bd(255*Hh.b,0,255))}getHexString(e=cu){return("000000"+this.getHex(e).toString(16)).slice(-6)}getHSL(e,t=Ol.workingColorSpace){Ol.fromWorkingColorSpace(Hh.copy(this),t);const i=Hh.r,r=Hh.g,s=Hh.b,o=Math.max(i,r,s),l=Math.min(i,r,s);let d,u;const f=(l+o)/2;if(l===o)d=0,u=0;else{const A=o-l;switch(u=f<=.5?A/(o+l):A/(2-o-l),o){case i:d=(r-s)/A+(r0!=e>0&&this.version++,this._alphaTest=e}onBuild(){}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(e){if(void 0!==e)for(const t in e){const i=e[t];if(void 0===i){console.warn(`THREE.Material: parameter '${t}' has value of undefined.`);continue}const r=this[t];void 0!==r?r&&r.isColor?r.set(i):r&&r.isVector3&&i&&i.isVector3?r.copy(i):this[t]=i:console.warn(`THREE.Material: '${t}' is not a property of THREE.${this.type}.`)}}toJSON(e){const t=void 0===e||"string"==typeof e;t&&(e={textures:{},images:{}});const i={metadata:{version:4.6,type:"Material",generator:"Material.toJSON"}};function r(s){const o=[];for(const l in s){const d=s[l];delete d.metadata,o.push(d)}return o}if(i.uuid=this.uuid,i.type=this.type,""!==this.name&&(i.name=this.name),this.color&&this.color.isColor&&(i.color=this.color.getHex()),void 0!==this.roughness&&(i.roughness=this.roughness),void 0!==this.metalness&&(i.metalness=this.metalness),void 0!==this.sheen&&(i.sheen=this.sheen),this.sheenColor&&this.sheenColor.isColor&&(i.sheenColor=this.sheenColor.getHex()),void 0!==this.sheenRoughness&&(i.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(i.emissive=this.emissive.getHex()),void 0!==this.emissiveIntensity&&1!==this.emissiveIntensity&&(i.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(i.specular=this.specular.getHex()),void 0!==this.specularIntensity&&(i.specularIntensity=this.specularIntensity),this.specularColor&&this.specularColor.isColor&&(i.specularColor=this.specularColor.getHex()),void 0!==this.shininess&&(i.shininess=this.shininess),void 0!==this.clearcoat&&(i.clearcoat=this.clearcoat),void 0!==this.clearcoatRoughness&&(i.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(i.clearcoatMap=this.clearcoatMap.toJSON(e).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(i.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(e).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(i.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(e).uuid,i.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),void 0!==this.iridescence&&(i.iridescence=this.iridescence),void 0!==this.iridescenceIOR&&(i.iridescenceIOR=this.iridescenceIOR),void 0!==this.iridescenceThicknessRange&&(i.iridescenceThicknessRange=this.iridescenceThicknessRange),this.iridescenceMap&&this.iridescenceMap.isTexture&&(i.iridescenceMap=this.iridescenceMap.toJSON(e).uuid),this.iridescenceThicknessMap&&this.iridescenceThicknessMap.isTexture&&(i.iridescenceThicknessMap=this.iridescenceThicknessMap.toJSON(e).uuid),void 0!==this.anisotropy&&(i.anisotropy=this.anisotropy),void 0!==this.anisotropyRotation&&(i.anisotropyRotation=this.anisotropyRotation),this.anisotropyMap&&this.anisotropyMap.isTexture&&(i.anisotropyMap=this.anisotropyMap.toJSON(e).uuid),this.map&&this.map.isTexture&&(i.map=this.map.toJSON(e).uuid),this.matcap&&this.matcap.isTexture&&(i.matcap=this.matcap.toJSON(e).uuid),this.alphaMap&&this.alphaMap.isTexture&&(i.alphaMap=this.alphaMap.toJSON(e).uuid),this.lightMap&&this.lightMap.isTexture&&(i.lightMap=this.lightMap.toJSON(e).uuid,i.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(i.aoMap=this.aoMap.toJSON(e).uuid,i.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(i.bumpMap=this.bumpMap.toJSON(e).uuid,i.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(i.normalMap=this.normalMap.toJSON(e).uuid,i.normalMapType=this.normalMapType,i.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(i.displacementMap=this.displacementMap.toJSON(e).uuid,i.displacementScale=this.displacementScale,i.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(i.roughnessMap=this.roughnessMap.toJSON(e).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(i.metalnessMap=this.metalnessMap.toJSON(e).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(i.emissiveMap=this.emissiveMap.toJSON(e).uuid),this.specularMap&&this.specularMap.isTexture&&(i.specularMap=this.specularMap.toJSON(e).uuid),this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(i.specularIntensityMap=this.specularIntensityMap.toJSON(e).uuid),this.specularColorMap&&this.specularColorMap.isTexture&&(i.specularColorMap=this.specularColorMap.toJSON(e).uuid),this.envMap&&this.envMap.isTexture&&(i.envMap=this.envMap.toJSON(e).uuid,void 0!==this.combine&&(i.combine=this.combine)),void 0!==this.envMapRotation&&(i.envMapRotation=this.envMapRotation.toArray()),void 0!==this.envMapIntensity&&(i.envMapIntensity=this.envMapIntensity),void 0!==this.reflectivity&&(i.reflectivity=this.reflectivity),void 0!==this.refractionRatio&&(i.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(i.gradientMap=this.gradientMap.toJSON(e).uuid),void 0!==this.transmission&&(i.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(i.transmissionMap=this.transmissionMap.toJSON(e).uuid),void 0!==this.thickness&&(i.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(i.thicknessMap=this.thicknessMap.toJSON(e).uuid),void 0!==this.attenuationDistance&&this.attenuationDistance!==1/0&&(i.attenuationDistance=this.attenuationDistance),void 0!==this.attenuationColor&&(i.attenuationColor=this.attenuationColor.getHex()),void 0!==this.size&&(i.size=this.size),null!==this.shadowSide&&(i.shadowSide=this.shadowSide),void 0!==this.sizeAttenuation&&(i.sizeAttenuation=this.sizeAttenuation),1!==this.blending&&(i.blending=this.blending),0!==this.side&&(i.side=this.side),!0===this.vertexColors&&(i.vertexColors=!0),this.opacity<1&&(i.opacity=this.opacity),!0===this.transparent&&(i.transparent=!0),204!==this.blendSrc&&(i.blendSrc=this.blendSrc),205!==this.blendDst&&(i.blendDst=this.blendDst),100!==this.blendEquation&&(i.blendEquation=this.blendEquation),null!==this.blendSrcAlpha&&(i.blendSrcAlpha=this.blendSrcAlpha),null!==this.blendDstAlpha&&(i.blendDstAlpha=this.blendDstAlpha),null!==this.blendEquationAlpha&&(i.blendEquationAlpha=this.blendEquationAlpha),this.blendColor&&this.blendColor.isColor&&(i.blendColor=this.blendColor.getHex()),0!==this.blendAlpha&&(i.blendAlpha=this.blendAlpha),3!==this.depthFunc&&(i.depthFunc=this.depthFunc),!1===this.depthTest&&(i.depthTest=this.depthTest),!1===this.depthWrite&&(i.depthWrite=this.depthWrite),!1===this.colorWrite&&(i.colorWrite=this.colorWrite),255!==this.stencilWriteMask&&(i.stencilWriteMask=this.stencilWriteMask),519!==this.stencilFunc&&(i.stencilFunc=this.stencilFunc),0!==this.stencilRef&&(i.stencilRef=this.stencilRef),255!==this.stencilFuncMask&&(i.stencilFuncMask=this.stencilFuncMask),this.stencilFail!==C2&&(i.stencilFail=this.stencilFail),this.stencilZFail!==C2&&(i.stencilZFail=this.stencilZFail),this.stencilZPass!==C2&&(i.stencilZPass=this.stencilZPass),!0===this.stencilWrite&&(i.stencilWrite=this.stencilWrite),void 0!==this.rotation&&0!==this.rotation&&(i.rotation=this.rotation),!0===this.polygonOffset&&(i.polygonOffset=!0),0!==this.polygonOffsetFactor&&(i.polygonOffsetFactor=this.polygonOffsetFactor),0!==this.polygonOffsetUnits&&(i.polygonOffsetUnits=this.polygonOffsetUnits),void 0!==this.linewidth&&1!==this.linewidth&&(i.linewidth=this.linewidth),void 0!==this.dashSize&&(i.dashSize=this.dashSize),void 0!==this.gapSize&&(i.gapSize=this.gapSize),void 0!==this.scale&&(i.scale=this.scale),!0===this.dithering&&(i.dithering=!0),this.alphaTest>0&&(i.alphaTest=this.alphaTest),!0===this.alphaHash&&(i.alphaHash=!0),!0===this.alphaToCoverage&&(i.alphaToCoverage=!0),!0===this.premultipliedAlpha&&(i.premultipliedAlpha=!0),!0===this.forceSinglePass&&(i.forceSinglePass=!0),!0===this.wireframe&&(i.wireframe=!0),this.wireframeLinewidth>1&&(i.wireframeLinewidth=this.wireframeLinewidth),"round"!==this.wireframeLinecap&&(i.wireframeLinecap=this.wireframeLinecap),"round"!==this.wireframeLinejoin&&(i.wireframeLinejoin=this.wireframeLinejoin),!0===this.flatShading&&(i.flatShading=!0),!1===this.visible&&(i.visible=!1),!1===this.toneMapped&&(i.toneMapped=!1),!1===this.fog&&(i.fog=!1),Object.keys(this.userData).length>0&&(i.userData=this.userData),t){const s=r(e.textures),o=r(e.images);s.length>0&&(i.textures=s),o.length>0&&(i.images=o)}return i}clone(){return(new this.constructor).copy(this)}copy(e){this.name=e.name,this.blending=e.blending,this.side=e.side,this.vertexColors=e.vertexColors,this.opacity=e.opacity,this.transparent=e.transparent,this.blendSrc=e.blendSrc,this.blendDst=e.blendDst,this.blendEquation=e.blendEquation,this.blendSrcAlpha=e.blendSrcAlpha,this.blendDstAlpha=e.blendDstAlpha,this.blendEquationAlpha=e.blendEquationAlpha,this.blendColor.copy(e.blendColor),this.blendAlpha=e.blendAlpha,this.depthFunc=e.depthFunc,this.depthTest=e.depthTest,this.depthWrite=e.depthWrite,this.stencilWriteMask=e.stencilWriteMask,this.stencilFunc=e.stencilFunc,this.stencilRef=e.stencilRef,this.stencilFuncMask=e.stencilFuncMask,this.stencilFail=e.stencilFail,this.stencilZFail=e.stencilZFail,this.stencilZPass=e.stencilZPass,this.stencilWrite=e.stencilWrite;const t=e.clippingPlanes;let i=null;if(null!==t){const r=t.length;i=new Array(r);for(let s=0;s!==r;++s)i[s]=t[s].clone()}return this.clippingPlanes=i,this.clipIntersection=e.clipIntersection,this.clipShadows=e.clipShadows,this.shadowSide=e.shadowSide,this.colorWrite=e.colorWrite,this.precision=e.precision,this.polygonOffset=e.polygonOffset,this.polygonOffsetFactor=e.polygonOffsetFactor,this.polygonOffsetUnits=e.polygonOffsetUnits,this.dithering=e.dithering,this.alphaTest=e.alphaTest,this.alphaHash=e.alphaHash,this.alphaToCoverage=e.alphaToCoverage,this.premultipliedAlpha=e.premultipliedAlpha,this.forceSinglePass=e.forceSinglePass,this.visible=e.visible,this.toneMapped=e.toneMapped,this.userData=JSON.parse(JSON.stringify(e.userData)),this}dispose(){this.dispatchEvent({type:"dispose"})}set needsUpdate(e){!0===e&&this.version++}}class xd extends ld{constructor(e){super(),this.isMeshBasicMaterial=!0,this.type="MeshBasicMaterial",this.color=new Cr(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.envMapRotation=new S0,this.combine=HD,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.envMapRotation.copy(e.envMapRotation),this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.fog=e.fog,this}}const du=new It,aI=new Qi;class No{constructor(e,t,i=!1){if(Array.isArray(e))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.isBufferAttribute=!0,this.name="",this.array=e,this.itemSize=t,this.count=void 0!==e?e.length/t:0,this.normalized=i,this.usage=35044,this._updateRange={offset:0,count:-1},this.updateRanges=[],this.gpuType=aA,this.version=0}onUploadCallback(){}set needsUpdate(e){!0===e&&this.version++}get updateRange(){return WH("THREE.BufferAttribute: updateRange() is deprecated and will be removed in r169. Use addUpdateRange() instead."),this._updateRange}setUsage(e){return this.usage=e,this}addUpdateRange(e,t){this.updateRanges.push({start:e,count:t})}clearUpdateRanges(){this.updateRanges.length=0}copy(e){return this.name=e.name,this.array=new e.array.constructor(e.array),this.itemSize=e.itemSize,this.count=e.count,this.normalized=e.normalized,this.usage=e.usage,this.gpuType=e.gpuType,this}copyAt(e,t,i){e*=this.itemSize,i*=t.itemSize;for(let r=0,s=this.itemSize;r0&&(e.userData=this.userData),void 0!==this.parameters){const d=this.parameters;for(const u in d)void 0!==d[u]&&(e[u]=d[u]);return e}e.data={attributes:{}};const t=this.index;null!==t&&(e.data.index={type:t.array.constructor.name,array:Array.prototype.slice.call(t.array)});const i=this.attributes;for(const d in i)e.data.attributes[d]=i[d].toJSON(e.data);const r={};let s=!1;for(const d in this.morphAttributes){const u=this.morphAttributes[d],f=[];for(let A=0,S=u.length;A0&&(r[d]=f,s=!0)}s&&(e.data.morphAttributes=r,e.data.morphTargetsRelative=this.morphTargetsRelative);const o=this.groups;o.length>0&&(e.data.groups=JSON.parse(JSON.stringify(o)));const l=this.boundingSphere;return null!==l&&(e.data.boundingSphere={center:l.center.toArray(),radius:l.radius}),e}clone(){return(new this.constructor).copy(this)}copy(e){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;const t={};this.name=e.name;const i=e.index;null!==i&&this.setIndex(i.clone(t));const r=e.attributes;for(const u in r)this.setAttribute(u,r[u].clone(t));const s=e.morphAttributes;for(const u in s){const f=[],A=s[u];for(let S=0,R=A.length;S0){const r=t[i[0]];if(void 0!==r){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let s=0,o=r.length;s(e.far-e.near)**2))&&(lV.copy(s).invert(),Fb.copy(e.ray).applyMatrix4(lV),(null===i.boundingBox||!1!==Fb.intersectsBox(i.boundingBox))&&this._computeIntersections(e,t,Fb)))}_computeIntersections(e,t,i){let r;const s=this.geometry,o=this.material,l=s.index,d=s.attributes.position,u=s.attributes.uv,f=s.attributes.uv1,A=s.attributes.normal,S=s.groups,R=s.drawRange;if(null!==l)if(Array.isArray(o))for(let G=0,re=S.length;Gt.far?null:{distance:u,point:pI.clone(),object:n}}(n,e,t,i,N2,U2,z2,fI);if(f){r&&(dI.fromBufferAttribute(r,l),uI.fromBufferAttribute(r,d),hI.fromBufferAttribute(r,u),f.uv=hm.getInterpolation(fI,N2,U2,z2,dI,uI,hI,new Qi)),s&&(dI.fromBufferAttribute(s,l),uI.fromBufferAttribute(s,d),hI.fromBufferAttribute(s,u),f.uv1=hm.getInterpolation(fI,N2,U2,z2,dI,uI,hI,new Qi)),o&&(dV.fromBufferAttribute(o,l),uV.fromBufferAttribute(o,d),hV.fromBufferAttribute(o,u),f.normal=hm.getInterpolation(fI,N2,U2,z2,dV,uV,hV,new It),f.normal.dot(i.direction)>0&&f.normal.multiplyScalar(-1));const A={a:l,b:d,c:u,normal:new It,materialIndex:0};hm.getNormal(N2,U2,z2,A.normal),f.face=A}return f}class yp extends no{constructor(e=1,t=1,i=1,r=1,s=1,o=1){super(),this.type="BoxGeometry",this.parameters={width:e,height:t,depth:i,widthSegments:r,heightSegments:s,depthSegments:o};const l=this;r=Math.floor(r),s=Math.floor(s),o=Math.floor(o);const d=[],u=[],f=[],A=[];let S=0,R=0;function G(re,se,le,Ee,Ce,We,Mt,yt,Et,Xt,Un){const wt=We/Et,Kt=Mt/Xt,Vi=We/2,Yi=Mt/2,En=yt/2,wi=Et+1,zn=Xt+1;let oi=0,hi=0;const vi=new It;for(let mr=0;mr0?1:-1,f.push(vi.x,vi.y,vi.z),A.push(ns/Et),A.push(1-mr/Xt),oi+=1}for(let mr=0;mr0&&(t.defines=this.defines),t.vertexShader=this.vertexShader,t.fragmentShader=this.fragmentShader,t.lights=this.lights,t.clipping=this.clipping;const i={};for(const r in this.extensions)!0===this.extensions[r]&&(i[r]=!0);return Object.keys(i).length>0&&(t.extensions=i),t}}class w5 extends Pl{constructor(){super(),this.isCamera=!0,this.type="Camera",this.matrixWorldInverse=new wo,this.projectionMatrix=new wo,this.projectionMatrixInverse=new wo,this.coordinateSystem=V_}copy(e,t){return super.copy(e,t),this.matrixWorldInverse.copy(e.matrixWorldInverse),this.projectionMatrix.copy(e.projectionMatrix),this.projectionMatrixInverse.copy(e.projectionMatrixInverse),this.coordinateSystem=e.coordinateSystem,this}getWorldDirection(e){return super.getWorldDirection(e).negate()}updateMatrixWorld(e){super.updateMatrixWorld(e),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(e,t){super.updateWorldMatrix(e,t),this.matrixWorldInverse.copy(this.matrixWorld).invert()}clone(){return(new this.constructor).copy(this)}}const Vy=new It,pV=new Qi,mV=new Qi;class Iu extends w5{constructor(e=50,t=1,i=.1,r=2e3){super(),this.isPerspectiveCamera=!0,this.type="PerspectiveCamera",this.fov=e,this.zoom=1,this.near=i,this.far=r,this.focus=10,this.aspect=t,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}copy(e,t){return super.copy(e,t),this.fov=e.fov,this.zoom=e.zoom,this.near=e.near,this.far=e.far,this.focus=e.focus,this.aspect=e.aspect,this.view=null===e.view?null:Object.assign({},e.view),this.filmGauge=e.filmGauge,this.filmOffset=e.filmOffset,this}setFocalLength(e){const t=.5*this.getFilmHeight()/e;this.fov=2*M2*Math.atan(t),this.updateProjectionMatrix()}getFocalLength(){const e=Math.tan(.5*Bb*this.fov);return.5*this.getFilmHeight()/e}getEffectiveFOV(){return 2*M2*Math.atan(Math.tan(.5*Bb*this.fov)/this.zoom)}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1)}getFilmHeight(){return this.filmGauge/Math.max(this.aspect,1)}getViewBounds(e,t,i){Vy.set(-1,-1,.5).applyMatrix4(this.projectionMatrixInverse),t.set(Vy.x,Vy.y).multiplyScalar(-e/Vy.z),Vy.set(1,1,.5).applyMatrix4(this.projectionMatrixInverse),i.set(Vy.x,Vy.y).multiplyScalar(-e/Vy.z)}getViewSize(e,t){return this.getViewBounds(e,pV,mV),t.subVectors(mV,pV)}setViewOffset(e,t,i,r,s,o){this.aspect=e/t,null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=e,this.view.fullHeight=t,this.view.offsetX=i,this.view.offsetY=r,this.view.width=s,this.view.height=o,this.updateProjectionMatrix()}clearViewOffset(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const e=this.near;let t=e*Math.tan(.5*Bb*this.fov)/this.zoom,i=2*t,r=this.aspect*i,s=-.5*r;const o=this.view;if(null!==this.view&&this.view.enabled){const d=o.fullWidth,u=o.fullHeight;s+=o.offsetX*r/d,t-=o.offsetY*i/u,r*=o.width/d,i*=o.height/u}const l=this.filmOffset;0!==l&&(s+=e*l/this.getFilmWidth()),this.projectionMatrix.makePerspective(s,s+r,t,t-i,e,this.far,this.coordinateSystem),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(e){const t=super.toJSON(e);return t.object.fov=this.fov,t.object.zoom=this.zoom,t.object.near=this.near,t.object.far=this.far,t.object.focus=this.focus,t.object.aspect=this.aspect,null!==this.view&&(t.object.view=Object.assign({},this.view)),t.object.filmGauge=this.filmGauge,t.object.filmOffset=this.filmOffset,t}}class _ce extends Pl{constructor(e,t,i){super(),this.type="CubeCamera",this.renderTarget=i,this.coordinateSystem=null,this.activeMipmapLevel=0;const r=new Iu(-90,1,e,t);r.layers=this.layers,this.add(r);const s=new Iu(-90,1,e,t);s.layers=this.layers,this.add(s);const o=new Iu(-90,1,e,t);o.layers=this.layers,this.add(o);const l=new Iu(-90,1,e,t);l.layers=this.layers,this.add(l);const d=new Iu(-90,1,e,t);d.layers=this.layers,this.add(d);const u=new Iu(-90,1,e,t);u.layers=this.layers,this.add(u)}updateCoordinateSystem(){const e=this.coordinateSystem,t=this.children.concat(),[i,r,s,o,l,d]=t;for(const u of t)this.remove(u);if(e===V_)i.up.set(0,1,0),i.lookAt(1,0,0),r.up.set(0,1,0),r.lookAt(-1,0,0),s.up.set(0,0,-1),s.lookAt(0,1,0),o.up.set(0,0,1),o.lookAt(0,-1,0),l.up.set(0,1,0),l.lookAt(0,0,1),d.up.set(0,1,0),d.lookAt(0,0,-1);else{if(2001!==e)throw new Error("THREE.CubeCamera.updateCoordinateSystem(): Invalid coordinate system: "+e);i.up.set(0,-1,0),i.lookAt(-1,0,0),r.up.set(0,-1,0),r.lookAt(1,0,0),s.up.set(0,0,1),s.lookAt(0,1,0),o.up.set(0,0,-1),o.lookAt(0,-1,0),l.up.set(0,-1,0),l.lookAt(0,0,1),d.up.set(0,-1,0),d.lookAt(0,0,-1)}for(const u of t)this.add(u),u.updateMatrixWorld()}update(e,t){null===this.parent&&this.updateMatrixWorld();const{renderTarget:i,activeMipmapLevel:r}=this;this.coordinateSystem!==e.coordinateSystem&&(this.coordinateSystem=e.coordinateSystem,this.updateCoordinateSystem());const[s,o,l,d,u,f]=this.children,A=e.getRenderTarget(),S=e.getActiveCubeFace(),R=e.getActiveMipmapLevel(),G=e.xr.enabled;e.xr.enabled=!1;const re=i.texture.generateMipmaps;i.texture.generateMipmaps=!1,e.setRenderTarget(i,0,r),e.render(t,s),e.setRenderTarget(i,1,r),e.render(t,o),e.setRenderTarget(i,2,r),e.render(t,l),e.setRenderTarget(i,3,r),e.render(t,d),e.setRenderTarget(i,4,r),e.render(t,u),i.texture.generateMipmaps=re,e.setRenderTarget(i,5,r),e.render(t,f),e.setRenderTarget(A,S,R),e.xr.enabled=G,i.texture.needsPMREMUpdate=!0}}class AI extends zh{constructor(e,t,i,r,s,o,l,d,u,f){super(e=void 0!==e?e:[],t=void 0!==t?t:Py,i,r,s,o,l,d,u,f),this.isCubeTexture=!0,this.flipY=!1}get images(){return this.image}set images(e){this.image=e}}class yce extends Wu{constructor(e=1,t={}){super(e,e,t),this.isWebGLCubeRenderTarget=!0;const i={width:e,height:e,depth:1};this.texture=new AI([i,i,i,i,i,i],t.mapping,t.wrapS,t.wrapT,t.magFilter,t.minFilter,t.format,t.type,t.anisotropy,t.colorSpace),this.texture.isRenderTargetTexture=!0,this.texture.generateMipmaps=void 0!==t.generateMipmaps&&t.generateMipmaps,this.texture.minFilter=void 0!==t.minFilter?t.minFilter:Hc}fromEquirectangularTexture(e,t){this.texture.type=t.type,this.texture.colorSpace=t.colorSpace,this.texture.generateMipmaps=t.generateMipmaps,this.texture.minFilter=t.minFilter,this.texture.magFilter=t.magFilter;const i_uniforms={tEquirect:{value:null}},i_vertexShader="\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\tvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\n\t\t\t\t\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n\n\t\t\t\t}\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvWorldDirection = transformDirection( position, modelMatrix );\n\n\t\t\t\t\t#include \n\t\t\t\t\t#include \n\n\t\t\t\t}\n\t\t\t",i_fragmentShader="\n\n\t\t\t\tuniform sampler2D tEquirect;\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\t#include \n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvec3 direction = normalize( vWorldDirection );\n\n\t\t\t\t\tvec2 sampleUV = equirectUv( direction );\n\n\t\t\t\t\tgl_FragColor = texture2D( tEquirect, sampleUV );\n\n\t\t\t\t}\n\t\t\t",r=new yp(5,5,5),s=new Du({name:"CubemapFromEquirect",uniforms:H2(i_uniforms),vertexShader:i_vertexShader,fragmentShader:i_fragmentShader,side:1,blending:0});s.uniforms.tEquirect.value=t;const o=new ua(r,s),l=t.minFilter;return t.minFilter===oA&&(t.minFilter=Hc),new _ce(1,10,this).update(e,o),t.minFilter=l,o.geometry.dispose(),o.material.dispose(),this}clear(e,t,i,r){const s=e.getRenderTarget();for(let o=0;o<6;o++)e.setRenderTarget(this,o),e.clear(t,i,r);e.setRenderTarget(s)}}const C5=new It,vce=new It,bce=new Ta;class dA{constructor(e=new It(1,0,0),t=0){this.isPlane=!0,this.normal=e,this.constant=t}set(e,t){return this.normal.copy(e),this.constant=t,this}setComponents(e,t,i,r){return this.normal.set(e,t,i),this.constant=r,this}setFromNormalAndCoplanarPoint(e,t){return this.normal.copy(e),this.constant=-t.dot(this.normal),this}setFromCoplanarPoints(e,t,i){const r=C5.subVectors(i,t).cross(vce.subVectors(e,t)).normalize();return this.setFromNormalAndCoplanarPoint(r,e),this}copy(e){return this.normal.copy(e.normal),this.constant=e.constant,this}normalize(){const e=1/this.normal.length();return this.normal.multiplyScalar(e),this.constant*=e,this}negate(){return this.constant*=-1,this.normal.negate(),this}distanceToPoint(e){return this.normal.dot(e)+this.constant}distanceToSphere(e){return this.distanceToPoint(e.center)-e.radius}projectPoint(e,t){return t.copy(e).addScaledVector(this.normal,-this.distanceToPoint(e))}intersectLine(e,t){const i=e.delta(C5),r=this.normal.dot(i);if(0===r)return 0===this.distanceToPoint(e.start)?t.copy(e.start):null;const s=-(e.start.dot(this.normal)+this.constant)/r;return s<0||s>1?null:t.copy(e.start).addScaledVector(i,s)}intersectsLine(e){const t=this.distanceToPoint(e.start),i=this.distanceToPoint(e.end);return t<0&&i>0||i<0&&t>0}intersectsBox(e){return e.intersectsPlane(this)}intersectsSphere(e){return e.intersectsPlane(this)}coplanarPoint(e){return e.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(e,t){const i=t||bce.getNormalMatrix(e),r=this.coplanarPoint(C5).applyMatrix4(e),s=this.normal.applyMatrix3(i).normalize();return this.constant=-r.dot(s),this}translate(e){return this.constant-=e.dot(this.normal),this}equals(e){return e.normal.equals(this.normal)&&e.constant===this.constant}clone(){return(new this.constructor).copy(this)}}const Ob=new ju,gI=new It;class _I{constructor(e=new dA,t=new dA,i=new dA,r=new dA,s=new dA,o=new dA){this.planes=[e,t,i,r,s,o]}set(e,t,i,r,s,o){const l=this.planes;return l[0].copy(e),l[1].copy(t),l[2].copy(i),l[3].copy(r),l[4].copy(s),l[5].copy(o),this}copy(e){const t=this.planes;for(let i=0;i<6;i++)t[i].copy(e.planes[i]);return this}setFromProjectionMatrix(e,t=V_){const i=this.planes,r=e.elements,s=r[0],o=r[1],l=r[2],d=r[3],u=r[4],f=r[5],A=r[6],S=r[7],R=r[8],G=r[9],re=r[10],se=r[11],le=r[12],Ee=r[13],Ce=r[14],We=r[15];if(i[0].setComponents(d-s,S-u,se-R,We-le).normalize(),i[1].setComponents(d+s,S+u,se+R,We+le).normalize(),i[2].setComponents(d+o,S+f,se+G,We+Ee).normalize(),i[3].setComponents(d-o,S-f,se-G,We-Ee).normalize(),i[4].setComponents(d-l,S-A,se-re,We-Ce).normalize(),t===V_)i[5].setComponents(d+l,S+A,se+re,We+Ce).normalize();else{if(2001!==t)throw new Error("THREE.Frustum.setFromProjectionMatrix(): Invalid coordinate system: "+t);i[5].setComponents(l,A,re,Ce).normalize()}return this}intersectsObject(e){if(void 0!==e.boundingSphere)null===e.boundingSphere&&e.computeBoundingSphere(),Ob.copy(e.boundingSphere).applyMatrix4(e.matrixWorld);else{const t=e.geometry;null===t.boundingSphere&&t.computeBoundingSphere(),Ob.copy(t.boundingSphere).applyMatrix4(e.matrixWorld)}return this.intersectsSphere(Ob)}intersectsSprite(e){return Ob.center.set(0,0,0),Ob.radius=.7071067811865476,Ob.applyMatrix4(e.matrixWorld),this.intersectsSphere(Ob)}intersectsSphere(e){const t=this.planes,i=e.center,r=-e.radius;for(let s=0;s<6;s++)if(t[s].distanceToPoint(i)0?e.max.x:e.min.x,gI.y=r.normal.y>0?e.max.y:e.min.y,gI.z=r.normal.z>0?e.max.z:e.min.z,r.distanceToPoint(gI)<0)return!1}return!0}containsPoint(e){const t=this.planes;for(let i=0;i<6;i++)if(t[i].distanceToPoint(e)<0)return!1;return!0}clone(){return(new this.constructor).copy(this)}}function AV(){let n=null,e=!1,t=null,i=null;function r(s,o){t(s,o),i=n.requestAnimationFrame(r)}return{start:function(){!0!==e&&null!==t&&(i=n.requestAnimationFrame(r),e=!0)},stop:function(){n.cancelAnimationFrame(i),e=!1},setAnimationLoop:function(s){t=s},setContext:function(s){n=s}}}function xce(n,e){const t=e.isWebGL2,i=new WeakMap;return{get:function o(u){return u.isInterleavedBufferAttribute&&(u=u.data),i.get(u)},remove:function l(u){u.isInterleavedBufferAttribute&&(u=u.data);const f=i.get(u);f&&(n.deleteBuffer(f.buffer),i.delete(u))},update:function d(u,f){if(u.isGLBufferAttribute){const S=i.get(u);return void((!S||S.version 0\n\tvec4 plane;\n\t#ifdef ALPHA_TO_COVERAGE\n\t\tfloat distanceToPlane, distanceGradient;\n\t\tfloat clipOpacity = 1.0;\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\n\t\t\tplane = clippingPlanes[ i ];\n\t\t\tdistanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w;\n\t\t\tdistanceGradient = fwidth( distanceToPlane ) / 2.0;\n\t\t\tclipOpacity *= smoothstep( - distanceGradient, distanceGradient, distanceToPlane );\n\t\t\tif ( clipOpacity == 0.0 ) discard;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\n\t\t\tfloat unionClipOpacity = 1.0;\n\t\t\t#pragma unroll_loop_start\n\t\t\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\n\t\t\t\tplane = clippingPlanes[ i ];\n\t\t\t\tdistanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w;\n\t\t\t\tdistanceGradient = fwidth( distanceToPlane ) / 2.0;\n\t\t\t\tunionClipOpacity *= 1.0 - smoothstep( - distanceGradient, distanceGradient, distanceToPlane );\n\t\t\t}\n\t\t\t#pragma unroll_loop_end\n\t\t\tclipOpacity *= 1.0 - unionClipOpacity;\n\t\t#endif\n\t\tdiffuseColor.a *= clipOpacity;\n\t\tif ( diffuseColor.a == 0.0 ) discard;\n\t#else\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\n\t\t\tplane = clippingPlanes[ i ];\n\t\t\tif ( dot( vClipPosition, plane.xyz ) > plane.w ) discard;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\n\t\t\tbool clipped = true;\n\t\t\t#pragma unroll_loop_start\n\t\t\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\n\t\t\t\tplane = clippingPlanes[ i ];\n\t\t\t\tclipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped;\n\t\t\t}\n\t\t\t#pragma unroll_loop_end\n\t\t\tif ( clipped ) discard;\n\t\t#endif\n\t#endif\n#endif",clipping_planes_pars_fragment:"#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n\tuniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];\n#endif",clipping_planes_pars_vertex:"#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n#endif",clipping_planes_vertex:"#if NUM_CLIPPING_PLANES > 0\n\tvClipPosition = - mvPosition.xyz;\n#endif",color_fragment:"#if defined( USE_COLOR_ALPHA )\n\tdiffuseColor *= vColor;\n#elif defined( USE_COLOR )\n\tdiffuseColor.rgb *= vColor;\n#endif",color_pars_fragment:"#if defined( USE_COLOR_ALPHA )\n\tvarying vec4 vColor;\n#elif defined( USE_COLOR )\n\tvarying vec3 vColor;\n#endif",color_pars_vertex:"#if defined( USE_COLOR_ALPHA )\n\tvarying vec4 vColor;\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\n\tvarying vec3 vColor;\n#endif",color_vertex:"#if defined( USE_COLOR_ALPHA )\n\tvColor = vec4( 1.0 );\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\n\tvColor = vec3( 1.0 );\n#endif\n#ifdef USE_COLOR\n\tvColor *= color;\n#endif\n#ifdef USE_INSTANCING_COLOR\n\tvColor.xyz *= instanceColor.xyz;\n#endif",common:"#define PI 3.141592653589793\n#define PI2 6.283185307179586\n#define PI_HALF 1.5707963267948966\n#define RECIPROCAL_PI 0.3183098861837907\n#define RECIPROCAL_PI2 0.15915494309189535\n#define EPSILON 1e-6\n#ifndef saturate\n#define saturate( a ) clamp( a, 0.0, 1.0 )\n#endif\n#define whiteComplement( a ) ( 1.0 - saturate( a ) )\nfloat pow2( const in float x ) { return x*x; }\nvec3 pow2( const in vec3 x ) { return x*x; }\nfloat pow3( const in float x ) { return x*x*x; }\nfloat pow4( const in float x ) { float x2 = x*x; return x2*x2; }\nfloat max3( const in vec3 v ) { return max( max( v.x, v.y ), v.z ); }\nfloat average( const in vec3 v ) { return dot( v, vec3( 0.3333333 ) ); }\nhighp float rand( const in vec2 uv ) {\n\tconst highp float a = 12.9898, b = 78.233, c = 43758.5453;\n\thighp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );\n\treturn fract( sin( sn ) * c );\n}\n#ifdef HIGH_PRECISION\n\tfloat precisionSafeLength( vec3 v ) { return length( v ); }\n#else\n\tfloat precisionSafeLength( vec3 v ) {\n\t\tfloat maxComponent = max3( abs( v ) );\n\t\treturn length( v / maxComponent ) * maxComponent;\n\t}\n#endif\nstruct IncidentLight {\n\tvec3 color;\n\tvec3 direction;\n\tbool visible;\n};\nstruct ReflectedLight {\n\tvec3 directDiffuse;\n\tvec3 directSpecular;\n\tvec3 indirectDiffuse;\n\tvec3 indirectSpecular;\n};\n#ifdef USE_ALPHAHASH\n\tvarying vec3 vPosition;\n#endif\nvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n}\nvec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );\n}\nmat3 transposeMat3( const in mat3 m ) {\n\tmat3 tmp;\n\ttmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x );\n\ttmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y );\n\ttmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z );\n\treturn tmp;\n}\nfloat luminance( const in vec3 rgb ) {\n\tconst vec3 weights = vec3( 0.2126729, 0.7151522, 0.0721750 );\n\treturn dot( weights, rgb );\n}\nbool isPerspectiveMatrix( mat4 m ) {\n\treturn m[ 2 ][ 3 ] == - 1.0;\n}\nvec2 equirectUv( in vec3 dir ) {\n\tfloat u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5;\n\tfloat v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\n\treturn vec2( u, v );\n}\nvec3 BRDF_Lambert( const in vec3 diffuseColor ) {\n\treturn RECIPROCAL_PI * diffuseColor;\n}\nvec3 F_Schlick( const in vec3 f0, const in float f90, const in float dotVH ) {\n\tfloat fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\n\treturn f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\n}\nfloat F_Schlick( const in float f0, const in float f90, const in float dotVH ) {\n\tfloat fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\n\treturn f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\n} // validated",cube_uv_reflection_fragment:"#ifdef ENVMAP_TYPE_CUBE_UV\n\t#define cubeUV_minMipLevel 4.0\n\t#define cubeUV_minTileSize 16.0\n\tfloat getFace( vec3 direction ) {\n\t\tvec3 absDirection = abs( direction );\n\t\tfloat face = - 1.0;\n\t\tif ( absDirection.x > absDirection.z ) {\n\t\t\tif ( absDirection.x > absDirection.y )\n\t\t\t\tface = direction.x > 0.0 ? 0.0 : 3.0;\n\t\t\telse\n\t\t\t\tface = direction.y > 0.0 ? 1.0 : 4.0;\n\t\t} else {\n\t\t\tif ( absDirection.z > absDirection.y )\n\t\t\t\tface = direction.z > 0.0 ? 2.0 : 5.0;\n\t\t\telse\n\t\t\t\tface = direction.y > 0.0 ? 1.0 : 4.0;\n\t\t}\n\t\treturn face;\n\t}\n\tvec2 getUV( vec3 direction, float face ) {\n\t\tvec2 uv;\n\t\tif ( face == 0.0 ) {\n\t\t\tuv = vec2( direction.z, direction.y ) / abs( direction.x );\n\t\t} else if ( face == 1.0 ) {\n\t\t\tuv = vec2( - direction.x, - direction.z ) / abs( direction.y );\n\t\t} else if ( face == 2.0 ) {\n\t\t\tuv = vec2( - direction.x, direction.y ) / abs( direction.z );\n\t\t} else if ( face == 3.0 ) {\n\t\t\tuv = vec2( - direction.z, direction.y ) / abs( direction.x );\n\t\t} else if ( face == 4.0 ) {\n\t\t\tuv = vec2( - direction.x, direction.z ) / abs( direction.y );\n\t\t} else {\n\t\t\tuv = vec2( direction.x, direction.y ) / abs( direction.z );\n\t\t}\n\t\treturn 0.5 * ( uv + 1.0 );\n\t}\n\tvec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) {\n\t\tfloat face = getFace( direction );\n\t\tfloat filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 );\n\t\tmipInt = max( mipInt, cubeUV_minMipLevel );\n\t\tfloat faceSize = exp2( mipInt );\n\t\thighp vec2 uv = getUV( direction, face ) * ( faceSize - 2.0 ) + 1.0;\n\t\tif ( face > 2.0 ) {\n\t\t\tuv.y += faceSize;\n\t\t\tface -= 3.0;\n\t\t}\n\t\tuv.x += face * faceSize;\n\t\tuv.x += filterInt * 3.0 * cubeUV_minTileSize;\n\t\tuv.y += 4.0 * ( exp2( CUBEUV_MAX_MIP ) - faceSize );\n\t\tuv.x *= CUBEUV_TEXEL_WIDTH;\n\t\tuv.y *= CUBEUV_TEXEL_HEIGHT;\n\t\t#ifdef texture2DGradEXT\n\t\t\treturn texture2DGradEXT( envMap, uv, vec2( 0.0 ), vec2( 0.0 ) ).rgb;\n\t\t#else\n\t\t\treturn texture2D( envMap, uv ).rgb;\n\t\t#endif\n\t}\n\t#define cubeUV_r0 1.0\n\t#define cubeUV_m0 - 2.0\n\t#define cubeUV_r1 0.8\n\t#define cubeUV_m1 - 1.0\n\t#define cubeUV_r4 0.4\n\t#define cubeUV_m4 2.0\n\t#define cubeUV_r5 0.305\n\t#define cubeUV_m5 3.0\n\t#define cubeUV_r6 0.21\n\t#define cubeUV_m6 4.0\n\tfloat roughnessToMip( float roughness ) {\n\t\tfloat mip = 0.0;\n\t\tif ( roughness >= cubeUV_r1 ) {\n\t\t\tmip = ( cubeUV_r0 - roughness ) * ( cubeUV_m1 - cubeUV_m0 ) / ( cubeUV_r0 - cubeUV_r1 ) + cubeUV_m0;\n\t\t} else if ( roughness >= cubeUV_r4 ) {\n\t\t\tmip = ( cubeUV_r1 - roughness ) * ( cubeUV_m4 - cubeUV_m1 ) / ( cubeUV_r1 - cubeUV_r4 ) + cubeUV_m1;\n\t\t} else if ( roughness >= cubeUV_r5 ) {\n\t\t\tmip = ( cubeUV_r4 - roughness ) * ( cubeUV_m5 - cubeUV_m4 ) / ( cubeUV_r4 - cubeUV_r5 ) + cubeUV_m4;\n\t\t} else if ( roughness >= cubeUV_r6 ) {\n\t\t\tmip = ( cubeUV_r5 - roughness ) * ( cubeUV_m6 - cubeUV_m5 ) / ( cubeUV_r5 - cubeUV_r6 ) + cubeUV_m5;\n\t\t} else {\n\t\t\tmip = - 2.0 * log2( 1.16 * roughness );\t\t}\n\t\treturn mip;\n\t}\n\tvec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) {\n\t\tfloat mip = clamp( roughnessToMip( roughness ), cubeUV_m0, CUBEUV_MAX_MIP );\n\t\tfloat mipF = fract( mip );\n\t\tfloat mipInt = floor( mip );\n\t\tvec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt );\n\t\tif ( mipF == 0.0 ) {\n\t\t\treturn vec4( color0, 1.0 );\n\t\t} else {\n\t\t\tvec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 );\n\t\t\treturn vec4( mix( color0, color1, mipF ), 1.0 );\n\t\t}\n\t}\n#endif",defaultnormal_vertex:"vec3 transformedNormal = objectNormal;\n#ifdef USE_TANGENT\n\tvec3 transformedTangent = objectTangent;\n#endif\n#ifdef USE_BATCHING\n\tmat3 bm = mat3( batchingMatrix );\n\ttransformedNormal /= vec3( dot( bm[ 0 ], bm[ 0 ] ), dot( bm[ 1 ], bm[ 1 ] ), dot( bm[ 2 ], bm[ 2 ] ) );\n\ttransformedNormal = bm * transformedNormal;\n\t#ifdef USE_TANGENT\n\t\ttransformedTangent = bm * transformedTangent;\n\t#endif\n#endif\n#ifdef USE_INSTANCING\n\tmat3 im = mat3( instanceMatrix );\n\ttransformedNormal /= vec3( dot( im[ 0 ], im[ 0 ] ), dot( im[ 1 ], im[ 1 ] ), dot( im[ 2 ], im[ 2 ] ) );\n\ttransformedNormal = im * transformedNormal;\n\t#ifdef USE_TANGENT\n\t\ttransformedTangent = im * transformedTangent;\n\t#endif\n#endif\ntransformedNormal = normalMatrix * transformedNormal;\n#ifdef FLIP_SIDED\n\ttransformedNormal = - transformedNormal;\n#endif\n#ifdef USE_TANGENT\n\ttransformedTangent = ( modelViewMatrix * vec4( transformedTangent, 0.0 ) ).xyz;\n\t#ifdef FLIP_SIDED\n\t\ttransformedTangent = - transformedTangent;\n\t#endif\n#endif",displacementmap_pars_vertex:"#ifdef USE_DISPLACEMENTMAP\n\tuniform sampler2D displacementMap;\n\tuniform float displacementScale;\n\tuniform float displacementBias;\n#endif",displacementmap_vertex:"#ifdef USE_DISPLACEMENTMAP\n\ttransformed += normalize( objectNormal ) * ( texture2D( displacementMap, vDisplacementMapUv ).x * displacementScale + displacementBias );\n#endif",emissivemap_fragment:"#ifdef USE_EMISSIVEMAP\n\tvec4 emissiveColor = texture2D( emissiveMap, vEmissiveMapUv );\n\ttotalEmissiveRadiance *= emissiveColor.rgb;\n#endif",emissivemap_pars_fragment:"#ifdef USE_EMISSIVEMAP\n\tuniform sampler2D emissiveMap;\n#endif",colorspace_fragment:"gl_FragColor = linearToOutputTexel( gl_FragColor );",colorspace_pars_fragment:"\nconst mat3 LINEAR_SRGB_TO_LINEAR_DISPLAY_P3 = mat3(\n\tvec3( 0.8224621, 0.177538, 0.0 ),\n\tvec3( 0.0331941, 0.9668058, 0.0 ),\n\tvec3( 0.0170827, 0.0723974, 0.9105199 )\n);\nconst mat3 LINEAR_DISPLAY_P3_TO_LINEAR_SRGB = mat3(\n\tvec3( 1.2249401, - 0.2249404, 0.0 ),\n\tvec3( - 0.0420569, 1.0420571, 0.0 ),\n\tvec3( - 0.0196376, - 0.0786361, 1.0982735 )\n);\nvec4 LinearSRGBToLinearDisplayP3( in vec4 value ) {\n\treturn vec4( value.rgb * LINEAR_SRGB_TO_LINEAR_DISPLAY_P3, value.a );\n}\nvec4 LinearDisplayP3ToLinearSRGB( in vec4 value ) {\n\treturn vec4( value.rgb * LINEAR_DISPLAY_P3_TO_LINEAR_SRGB, value.a );\n}\nvec4 LinearTransferOETF( in vec4 value ) {\n\treturn value;\n}\nvec4 sRGBTransferOETF( in vec4 value ) {\n\treturn vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a );\n}\nvec4 LinearToLinear( in vec4 value ) {\n\treturn value;\n}\nvec4 LinearTosRGB( in vec4 value ) {\n\treturn sRGBTransferOETF( value );\n}",envmap_fragment:"#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvec3 cameraToFrag;\n\t\tif ( isOrthographic ) {\n\t\t\tcameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n\t\t} else {\n\t\t\tcameraToFrag = normalize( vWorldPosition - cameraPosition );\n\t\t}\n\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvec3 reflectVec = reflect( cameraToFrag, worldNormal );\n\t\t#else\n\t\t\tvec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio );\n\t\t#endif\n\t#else\n\t\tvec3 reflectVec = vReflect;\n\t#endif\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tvec4 envColor = textureCube( envMap, envMapRotation * vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\n\t#else\n\t\tvec4 envColor = vec4( 0.0 );\n\t#endif\n\t#ifdef ENVMAP_BLENDING_MULTIPLY\n\t\toutgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_MIX )\n\t\toutgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_ADD )\n\t\toutgoingLight += envColor.xyz * specularStrength * reflectivity;\n\t#endif\n#endif",envmap_common_pars_fragment:"#ifdef USE_ENVMAP\n\tuniform float envMapIntensity;\n\tuniform float flipEnvMap;\n\tuniform mat3 envMapRotation;\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tuniform samplerCube envMap;\n\t#else\n\t\tuniform sampler2D envMap;\n\t#endif\n\t\n#endif",envmap_pars_fragment:"#ifdef USE_ENVMAP\n\tuniform float reflectivity;\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\tvarying vec3 vWorldPosition;\n\t\tuniform float refractionRatio;\n\t#else\n\t\tvarying vec3 vReflect;\n\t#endif\n#endif",envmap_pars_vertex:"#ifdef USE_ENVMAP\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\t\n\t\tvarying vec3 vWorldPosition;\n\t#else\n\t\tvarying vec3 vReflect;\n\t\tuniform float refractionRatio;\n\t#endif\n#endif",envmap_physical_pars_fragment:"#ifdef USE_ENVMAP\n\tvec3 getIBLIrradiance( const in vec3 normal ) {\n\t\t#ifdef ENVMAP_TYPE_CUBE_UV\n\t\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, envMapRotation * worldNormal, 1.0 );\n\t\t\treturn PI * envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n\tvec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) {\n\t\t#ifdef ENVMAP_TYPE_CUBE_UV\n\t\t\tvec3 reflectVec = reflect( - viewDir, normal );\n\t\t\treflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );\n\t\t\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, envMapRotation * reflectVec, roughness );\n\t\t\treturn envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n\t#ifdef USE_ANISOTROPY\n\t\tvec3 getIBLAnisotropyRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in vec3 bitangent, const in float anisotropy ) {\n\t\t\t#ifdef ENVMAP_TYPE_CUBE_UV\n\t\t\t\tvec3 bentNormal = cross( bitangent, viewDir );\n\t\t\t\tbentNormal = normalize( cross( bentNormal, bitangent ) );\n\t\t\t\tbentNormal = normalize( mix( bentNormal, normal, pow2( pow2( 1.0 - anisotropy * ( 1.0 - roughness ) ) ) ) );\n\t\t\t\treturn getIBLRadiance( viewDir, bentNormal, roughness );\n\t\t\t#else\n\t\t\t\treturn vec3( 0.0 );\n\t\t\t#endif\n\t\t}\n\t#endif\n#endif",envmap_vertex:"#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvWorldPosition = worldPosition.xyz;\n\t#else\n\t\tvec3 cameraToVertex;\n\t\tif ( isOrthographic ) {\n\t\t\tcameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n\t\t} else {\n\t\t\tcameraToVertex = normalize( worldPosition.xyz - cameraPosition );\n\t\t}\n\t\tvec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvReflect = reflect( cameraToVertex, worldNormal );\n\t\t#else\n\t\t\tvReflect = refract( cameraToVertex, worldNormal, refractionRatio );\n\t\t#endif\n\t#endif\n#endif",fog_vertex:"#ifdef USE_FOG\n\tvFogDepth = - mvPosition.z;\n#endif",fog_pars_vertex:"#ifdef USE_FOG\n\tvarying float vFogDepth;\n#endif",fog_fragment:"#ifdef USE_FOG\n\t#ifdef FOG_EXP2\n\t\tfloat fogFactor = 1.0 - exp( - fogDensity * fogDensity * vFogDepth * vFogDepth );\n\t#else\n\t\tfloat fogFactor = smoothstep( fogNear, fogFar, vFogDepth );\n\t#endif\n\tgl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\n#endif",fog_pars_fragment:"#ifdef USE_FOG\n\tuniform vec3 fogColor;\n\tvarying float vFogDepth;\n\t#ifdef FOG_EXP2\n\t\tuniform float fogDensity;\n\t#else\n\t\tuniform float fogNear;\n\t\tuniform float fogFar;\n\t#endif\n#endif",gradientmap_pars_fragment:"#ifdef USE_GRADIENTMAP\n\tuniform sampler2D gradientMap;\n#endif\nvec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {\n\tfloat dotNL = dot( normal, lightDirection );\n\tvec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 );\n\t#ifdef USE_GRADIENTMAP\n\t\treturn vec3( texture2D( gradientMap, coord ).r );\n\t#else\n\t\tvec2 fw = fwidth( coord ) * 0.5;\n\t\treturn mix( vec3( 0.7 ), vec3( 1.0 ), smoothstep( 0.7 - fw.x, 0.7 + fw.x, coord.x ) );\n\t#endif\n}",lightmap_fragment:"#ifdef USE_LIGHTMAP\n\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\n\treflectedLight.indirectDiffuse += lightMapIrradiance;\n#endif",lightmap_pars_fragment:"#ifdef USE_LIGHTMAP\n\tuniform sampler2D lightMap;\n\tuniform float lightMapIntensity;\n#endif",lights_lambert_fragment:"LambertMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularStrength = specularStrength;",lights_lambert_pars_fragment:"varying vec3 vViewPosition;\nstruct LambertMaterial {\n\tvec3 diffuseColor;\n\tfloat specularStrength;\n};\nvoid RE_Direct_Lambert( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometryNormal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Lambert( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_Lambert\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Lambert",lights_pars_begin:"uniform bool receiveShadow;\nuniform vec3 ambientLightColor;\n#if defined( USE_LIGHT_PROBES )\n\tuniform vec3 lightProbe[ 9 ];\n#endif\nvec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {\n\tfloat x = normal.x, y = normal.y, z = normal.z;\n\tvec3 result = shCoefficients[ 0 ] * 0.886227;\n\tresult += shCoefficients[ 1 ] * 2.0 * 0.511664 * y;\n\tresult += shCoefficients[ 2 ] * 2.0 * 0.511664 * z;\n\tresult += shCoefficients[ 3 ] * 2.0 * 0.511664 * x;\n\tresult += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y;\n\tresult += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z;\n\tresult += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 );\n\tresult += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z;\n\tresult += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y );\n\treturn result;\n}\nvec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) {\n\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\tvec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe );\n\treturn irradiance;\n}\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\n\tvec3 irradiance = ambientLightColor;\n\treturn irradiance;\n}\nfloat getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {\n\t#if defined ( LEGACY_LIGHTS )\n\t\tif ( cutoffDistance > 0.0 && decayExponent > 0.0 ) {\n\t\t\treturn pow( saturate( - lightDistance / cutoffDistance + 1.0 ), decayExponent );\n\t\t}\n\t\treturn 1.0;\n\t#else\n\t\tfloat distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\n\t\tif ( cutoffDistance > 0.0 ) {\n\t\t\tdistanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\n\t\t}\n\t\treturn distanceFalloff;\n\t#endif\n}\nfloat getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) {\n\treturn smoothstep( coneCosine, penumbraCosine, angleCosine );\n}\n#if NUM_DIR_LIGHTS > 0\n\tstruct DirectionalLight {\n\t\tvec3 direction;\n\t\tvec3 color;\n\t};\n\tuniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];\n\tvoid getDirectionalLightInfo( const in DirectionalLight directionalLight, out IncidentLight light ) {\n\t\tlight.color = directionalLight.color;\n\t\tlight.direction = directionalLight.direction;\n\t\tlight.visible = true;\n\t}\n#endif\n#if NUM_POINT_LIGHTS > 0\n\tstruct PointLight {\n\t\tvec3 position;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t};\n\tuniform PointLight pointLights[ NUM_POINT_LIGHTS ];\n\tvoid getPointLightInfo( const in PointLight pointLight, const in vec3 geometryPosition, out IncidentLight light ) {\n\t\tvec3 lVector = pointLight.position - geometryPosition;\n\t\tlight.direction = normalize( lVector );\n\t\tfloat lightDistance = length( lVector );\n\t\tlight.color = pointLight.color;\n\t\tlight.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay );\n\t\tlight.visible = ( light.color != vec3( 0.0 ) );\n\t}\n#endif\n#if NUM_SPOT_LIGHTS > 0\n\tstruct SpotLight {\n\t\tvec3 position;\n\t\tvec3 direction;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t\tfloat coneCos;\n\t\tfloat penumbraCos;\n\t};\n\tuniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];\n\tvoid getSpotLightInfo( const in SpotLight spotLight, const in vec3 geometryPosition, out IncidentLight light ) {\n\t\tvec3 lVector = spotLight.position - geometryPosition;\n\t\tlight.direction = normalize( lVector );\n\t\tfloat angleCos = dot( light.direction, spotLight.direction );\n\t\tfloat spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos );\n\t\tif ( spotAttenuation > 0.0 ) {\n\t\t\tfloat lightDistance = length( lVector );\n\t\t\tlight.color = spotLight.color * spotAttenuation;\n\t\t\tlight.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay );\n\t\t\tlight.visible = ( light.color != vec3( 0.0 ) );\n\t\t} else {\n\t\t\tlight.color = vec3( 0.0 );\n\t\t\tlight.visible = false;\n\t\t}\n\t}\n#endif\n#if NUM_RECT_AREA_LIGHTS > 0\n\tstruct RectAreaLight {\n\t\tvec3 color;\n\t\tvec3 position;\n\t\tvec3 halfWidth;\n\t\tvec3 halfHeight;\n\t};\n\tuniform sampler2D ltc_1;\tuniform sampler2D ltc_2;\n\tuniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];\n#endif\n#if NUM_HEMI_LIGHTS > 0\n\tstruct HemisphereLight {\n\t\tvec3 direction;\n\t\tvec3 skyColor;\n\t\tvec3 groundColor;\n\t};\n\tuniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];\n\tvec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) {\n\t\tfloat dotNL = dot( normal, hemiLight.direction );\n\t\tfloat hemiDiffuseWeight = 0.5 * dotNL + 0.5;\n\t\tvec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\n\t\treturn irradiance;\n\t}\n#endif",lights_toon_fragment:"ToonMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;",lights_toon_pars_fragment:"varying vec3 vViewPosition;\nstruct ToonMaterial {\n\tvec3 diffuseColor;\n};\nvoid RE_Direct_Toon( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n\tvec3 irradiance = getGradientIrradiance( geometryNormal, directLight.direction ) * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_Toon\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Toon",lights_phong_fragment:"BlinnPhongMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularColor = specular;\nmaterial.specularShininess = shininess;\nmaterial.specularStrength = specularStrength;",lights_phong_pars_fragment:"varying vec3 vViewPosition;\nstruct BlinnPhongMaterial {\n\tvec3 diffuseColor;\n\tvec3 specularColor;\n\tfloat specularShininess;\n\tfloat specularStrength;\n};\nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometryNormal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n\treflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometryViewDir, geometryNormal, material.specularColor, material.specularShininess ) * material.specularStrength;\n}\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_BlinnPhong\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_BlinnPhong",lights_physical_fragment:"PhysicalMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\nvec3 dxy = max( abs( dFdx( nonPerturbedNormal ) ), abs( dFdy( nonPerturbedNormal ) ) );\nfloat geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );\nmaterial.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness;\nmaterial.roughness = min( material.roughness, 1.0 );\n#ifdef IOR\n\tmaterial.ior = ior;\n\t#ifdef USE_SPECULAR\n\t\tfloat specularIntensityFactor = specularIntensity;\n\t\tvec3 specularColorFactor = specularColor;\n\t\t#ifdef USE_SPECULAR_COLORMAP\n\t\t\tspecularColorFactor *= texture2D( specularColorMap, vSpecularColorMapUv ).rgb;\n\t\t#endif\n\t\t#ifdef USE_SPECULAR_INTENSITYMAP\n\t\t\tspecularIntensityFactor *= texture2D( specularIntensityMap, vSpecularIntensityMapUv ).a;\n\t\t#endif\n\t\tmaterial.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor );\n\t#else\n\t\tfloat specularIntensityFactor = 1.0;\n\t\tvec3 specularColorFactor = vec3( 1.0 );\n\t\tmaterial.specularF90 = 1.0;\n\t#endif\n\tmaterial.specularColor = mix( min( pow2( ( material.ior - 1.0 ) / ( material.ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor );\n#else\n\tmaterial.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor );\n\tmaterial.specularF90 = 1.0;\n#endif\n#ifdef USE_CLEARCOAT\n\tmaterial.clearcoat = clearcoat;\n\tmaterial.clearcoatRoughness = clearcoatRoughness;\n\tmaterial.clearcoatF0 = vec3( 0.04 );\n\tmaterial.clearcoatF90 = 1.0;\n\t#ifdef USE_CLEARCOATMAP\n\t\tmaterial.clearcoat *= texture2D( clearcoatMap, vClearcoatMapUv ).x;\n\t#endif\n\t#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\t\tmaterial.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vClearcoatRoughnessMapUv ).y;\n\t#endif\n\tmaterial.clearcoat = saturate( material.clearcoat );\tmaterial.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 );\n\tmaterial.clearcoatRoughness += geometryRoughness;\n\tmaterial.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 );\n#endif\n#ifdef USE_IRIDESCENCE\n\tmaterial.iridescence = iridescence;\n\tmaterial.iridescenceIOR = iridescenceIOR;\n\t#ifdef USE_IRIDESCENCEMAP\n\t\tmaterial.iridescence *= texture2D( iridescenceMap, vIridescenceMapUv ).r;\n\t#endif\n\t#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\t\tmaterial.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vIridescenceThicknessMapUv ).g + iridescenceThicknessMinimum;\n\t#else\n\t\tmaterial.iridescenceThickness = iridescenceThicknessMaximum;\n\t#endif\n#endif\n#ifdef USE_SHEEN\n\tmaterial.sheenColor = sheenColor;\n\t#ifdef USE_SHEEN_COLORMAP\n\t\tmaterial.sheenColor *= texture2D( sheenColorMap, vSheenColorMapUv ).rgb;\n\t#endif\n\tmaterial.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 );\n\t#ifdef USE_SHEEN_ROUGHNESSMAP\n\t\tmaterial.sheenRoughness *= texture2D( sheenRoughnessMap, vSheenRoughnessMapUv ).a;\n\t#endif\n#endif\n#ifdef USE_ANISOTROPY\n\t#ifdef USE_ANISOTROPYMAP\n\t\tmat2 anisotropyMat = mat2( anisotropyVector.x, anisotropyVector.y, - anisotropyVector.y, anisotropyVector.x );\n\t\tvec3 anisotropyPolar = texture2D( anisotropyMap, vAnisotropyMapUv ).rgb;\n\t\tvec2 anisotropyV = anisotropyMat * normalize( 2.0 * anisotropyPolar.rg - vec2( 1.0 ) ) * anisotropyPolar.b;\n\t#else\n\t\tvec2 anisotropyV = anisotropyVector;\n\t#endif\n\tmaterial.anisotropy = length( anisotropyV );\n\tif( material.anisotropy == 0.0 ) {\n\t\tanisotropyV = vec2( 1.0, 0.0 );\n\t} else {\n\t\tanisotropyV /= material.anisotropy;\n\t\tmaterial.anisotropy = saturate( material.anisotropy );\n\t}\n\tmaterial.alphaT = mix( pow2( material.roughness ), 1.0, pow2( material.anisotropy ) );\n\tmaterial.anisotropyT = tbn[ 0 ] * anisotropyV.x + tbn[ 1 ] * anisotropyV.y;\n\tmaterial.anisotropyB = tbn[ 1 ] * anisotropyV.x - tbn[ 0 ] * anisotropyV.y;\n#endif",lights_physical_pars_fragment:"struct PhysicalMaterial {\n\tvec3 diffuseColor;\n\tfloat roughness;\n\tvec3 specularColor;\n\tfloat specularF90;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat clearcoat;\n\t\tfloat clearcoatRoughness;\n\t\tvec3 clearcoatF0;\n\t\tfloat clearcoatF90;\n\t#endif\n\t#ifdef USE_IRIDESCENCE\n\t\tfloat iridescence;\n\t\tfloat iridescenceIOR;\n\t\tfloat iridescenceThickness;\n\t\tvec3 iridescenceFresnel;\n\t\tvec3 iridescenceF0;\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tvec3 sheenColor;\n\t\tfloat sheenRoughness;\n\t#endif\n\t#ifdef IOR\n\t\tfloat ior;\n\t#endif\n\t#ifdef USE_TRANSMISSION\n\t\tfloat transmission;\n\t\tfloat transmissionAlpha;\n\t\tfloat thickness;\n\t\tfloat attenuationDistance;\n\t\tvec3 attenuationColor;\n\t#endif\n\t#ifdef USE_ANISOTROPY\n\t\tfloat anisotropy;\n\t\tfloat alphaT;\n\t\tvec3 anisotropyT;\n\t\tvec3 anisotropyB;\n\t#endif\n};\nvec3 clearcoatSpecularDirect = vec3( 0.0 );\nvec3 clearcoatSpecularIndirect = vec3( 0.0 );\nvec3 sheenSpecularDirect = vec3( 0.0 );\nvec3 sheenSpecularIndirect = vec3(0.0 );\nvec3 Schlick_to_F0( const in vec3 f, const in float f90, const in float dotVH ) {\n float x = clamp( 1.0 - dotVH, 0.0, 1.0 );\n float x2 = x * x;\n float x5 = clamp( x * x2 * x2, 0.0, 0.9999 );\n return ( f - vec3( f90 ) * x5 ) / ( 1.0 - x5 );\n}\nfloat V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {\n\tfloat a2 = pow2( alpha );\n\tfloat gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\n\tfloat gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\n\treturn 0.5 / max( gv + gl, EPSILON );\n}\nfloat D_GGX( const in float alpha, const in float dotNH ) {\n\tfloat a2 = pow2( alpha );\n\tfloat denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;\n\treturn RECIPROCAL_PI * a2 / pow2( denom );\n}\n#ifdef USE_ANISOTROPY\n\tfloat V_GGX_SmithCorrelated_Anisotropic( const in float alphaT, const in float alphaB, const in float dotTV, const in float dotBV, const in float dotTL, const in float dotBL, const in float dotNV, const in float dotNL ) {\n\t\tfloat gv = dotNL * length( vec3( alphaT * dotTV, alphaB * dotBV, dotNV ) );\n\t\tfloat gl = dotNV * length( vec3( alphaT * dotTL, alphaB * dotBL, dotNL ) );\n\t\tfloat v = 0.5 / ( gv + gl );\n\t\treturn saturate(v);\n\t}\n\tfloat D_GGX_Anisotropic( const in float alphaT, const in float alphaB, const in float dotNH, const in float dotTH, const in float dotBH ) {\n\t\tfloat a2 = alphaT * alphaB;\n\t\thighp vec3 v = vec3( alphaB * dotTH, alphaT * dotBH, a2 * dotNH );\n\t\thighp float v2 = dot( v, v );\n\t\tfloat w2 = a2 / v2;\n\t\treturn RECIPROCAL_PI * a2 * pow2 ( w2 );\n\t}\n#endif\n#ifdef USE_CLEARCOAT\n\tvec3 BRDF_GGX_Clearcoat( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material) {\n\t\tvec3 f0 = material.clearcoatF0;\n\t\tfloat f90 = material.clearcoatF90;\n\t\tfloat roughness = material.clearcoatRoughness;\n\t\tfloat alpha = pow2( roughness );\n\t\tvec3 halfDir = normalize( lightDir + viewDir );\n\t\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\t\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\t\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\t\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\t\tvec3 F = F_Schlick( f0, f90, dotVH );\n\t\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\t\tfloat D = D_GGX( alpha, dotNH );\n\t\treturn F * ( V * D );\n\t}\n#endif\nvec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material ) {\n\tvec3 f0 = material.specularColor;\n\tfloat f90 = material.specularF90;\n\tfloat roughness = material.roughness;\n\tfloat alpha = pow2( roughness );\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\tvec3 F = F_Schlick( f0, f90, dotVH );\n\t#ifdef USE_IRIDESCENCE\n\t\tF = mix( F, material.iridescenceFresnel, material.iridescence );\n\t#endif\n\t#ifdef USE_ANISOTROPY\n\t\tfloat dotTL = dot( material.anisotropyT, lightDir );\n\t\tfloat dotTV = dot( material.anisotropyT, viewDir );\n\t\tfloat dotTH = dot( material.anisotropyT, halfDir );\n\t\tfloat dotBL = dot( material.anisotropyB, lightDir );\n\t\tfloat dotBV = dot( material.anisotropyB, viewDir );\n\t\tfloat dotBH = dot( material.anisotropyB, halfDir );\n\t\tfloat V = V_GGX_SmithCorrelated_Anisotropic( material.alphaT, alpha, dotTV, dotBV, dotTL, dotBL, dotNV, dotNL );\n\t\tfloat D = D_GGX_Anisotropic( material.alphaT, alpha, dotNH, dotTH, dotBH );\n\t#else\n\t\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\t\tfloat D = D_GGX( alpha, dotNH );\n\t#endif\n\treturn F * ( V * D );\n}\nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {\n\tconst float LUT_SIZE = 64.0;\n\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\n\tconst float LUT_BIAS = 0.5 / LUT_SIZE;\n\tfloat dotNV = saturate( dot( N, V ) );\n\tvec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );\n\tuv = uv * LUT_SCALE + LUT_BIAS;\n\treturn uv;\n}\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\n\tfloat l = length( f );\n\treturn max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\n}\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\n\tfloat x = dot( v1, v2 );\n\tfloat y = abs( x );\n\tfloat a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;\n\tfloat b = 3.4175940 + ( 4.1616724 + y ) * y;\n\tfloat v = a / b;\n\tfloat theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\n\treturn cross( v1, v2 ) * theta_sintheta;\n}\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {\n\tvec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];\n\tvec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];\n\tvec3 lightNormal = cross( v1, v2 );\n\tif( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );\n\tvec3 T1, T2;\n\tT1 = normalize( V - N * dot( V, N ) );\n\tT2 = - cross( N, T1 );\n\tmat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\n\tvec3 coords[ 4 ];\n\tcoords[ 0 ] = mat * ( rectCoords[ 0 ] - P );\n\tcoords[ 1 ] = mat * ( rectCoords[ 1 ] - P );\n\tcoords[ 2 ] = mat * ( rectCoords[ 2 ] - P );\n\tcoords[ 3 ] = mat * ( rectCoords[ 3 ] - P );\n\tcoords[ 0 ] = normalize( coords[ 0 ] );\n\tcoords[ 1 ] = normalize( coords[ 1 ] );\n\tcoords[ 2 ] = normalize( coords[ 2 ] );\n\tcoords[ 3 ] = normalize( coords[ 3 ] );\n\tvec3 vectorFormFactor = vec3( 0.0 );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\n\tfloat result = LTC_ClippedSphereFormFactor( vectorFormFactor );\n\treturn vec3( result );\n}\n#if defined( USE_SHEEN )\nfloat D_Charlie( float roughness, float dotNH ) {\n\tfloat alpha = pow2( roughness );\n\tfloat invAlpha = 1.0 / alpha;\n\tfloat cos2h = dotNH * dotNH;\n\tfloat sin2h = max( 1.0 - cos2h, 0.0078125 );\n\treturn ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI );\n}\nfloat V_Neubelt( float dotNV, float dotNL ) {\n\treturn saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) );\n}\nvec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) {\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat D = D_Charlie( sheenRoughness, dotNH );\n\tfloat V = V_Neubelt( dotNV, dotNL );\n\treturn sheenColor * ( D * V );\n}\n#endif\nfloat IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat r2 = roughness * roughness;\n\tfloat a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95;\n\tfloat b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72;\n\tfloat DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) );\n\treturn saturate( DG * RECIPROCAL_PI );\n}\nvec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tconst vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\n\tconst vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\n\tvec4 r = roughness * c0 + c1;\n\tfloat a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\n\tvec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw;\n\treturn fab;\n}\nvec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) {\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\treturn specularColor * fab.x + specularF90 * fab.y;\n}\n#ifdef USE_IRIDESCENCE\nvoid computeMultiscatteringIridescence( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float iridescence, const in vec3 iridescenceF0, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#else\nvoid computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#endif\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\t#ifdef USE_IRIDESCENCE\n\t\tvec3 Fr = mix( specularColor, iridescenceF0, iridescence );\n\t#else\n\t\tvec3 Fr = specularColor;\n\t#endif\n\tvec3 FssEss = Fr * fab.x + specularF90 * fab.y;\n\tfloat Ess = fab.x + fab.y;\n\tfloat Ems = 1.0 - Ess;\n\tvec3 Favg = Fr + ( 1.0 - Fr ) * 0.047619;\tvec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg );\n\tsingleScatter += FssEss;\n\tmultiScatter += Fms * Ems;\n}\n#if NUM_RECT_AREA_LIGHTS > 0\n\tvoid RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\t\tvec3 normal = geometryNormal;\n\t\tvec3 viewDir = geometryViewDir;\n\t\tvec3 position = geometryPosition;\n\t\tvec3 lightPos = rectAreaLight.position;\n\t\tvec3 halfWidth = rectAreaLight.halfWidth;\n\t\tvec3 halfHeight = rectAreaLight.halfHeight;\n\t\tvec3 lightColor = rectAreaLight.color;\n\t\tfloat roughness = material.roughness;\n\t\tvec3 rectCoords[ 4 ];\n\t\trectCoords[ 0 ] = lightPos + halfWidth - halfHeight;\t\trectCoords[ 1 ] = lightPos - halfWidth - halfHeight;\n\t\trectCoords[ 2 ] = lightPos - halfWidth + halfHeight;\n\t\trectCoords[ 3 ] = lightPos + halfWidth + halfHeight;\n\t\tvec2 uv = LTC_Uv( normal, viewDir, roughness );\n\t\tvec4 t1 = texture2D( ltc_1, uv );\n\t\tvec4 t2 = texture2D( ltc_2, uv );\n\t\tmat3 mInv = mat3(\n\t\t\tvec3( t1.x, 0, t1.y ),\n\t\t\tvec3( 0, 1, 0 ),\n\t\t\tvec3( t1.z, 0, t1.w )\n\t\t);\n\t\tvec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );\n\t\treflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\n\t\treflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );\n\t}\n#endif\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometryNormal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNLcc = saturate( dot( geometryClearcoatNormal, directLight.direction ) );\n\t\tvec3 ccIrradiance = dotNLcc * directLight.color;\n\t\tclearcoatSpecularDirect += ccIrradiance * BRDF_GGX_Clearcoat( directLight.direction, geometryViewDir, geometryClearcoatNormal, material );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecularDirect += irradiance * BRDF_Sheen( directLight.direction, geometryViewDir, geometryNormal, material.sheenColor, material.sheenRoughness );\n\t#endif\n\treflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometryViewDir, geometryNormal, material );\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatSpecularIndirect += clearcoatRadiance * EnvironmentBRDF( geometryClearcoatNormal, geometryViewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecularIndirect += irradiance * material.sheenColor * IBLSheenBRDF( geometryNormal, geometryViewDir, material.sheenRoughness );\n\t#endif\n\tvec3 singleScattering = vec3( 0.0 );\n\tvec3 multiScattering = vec3( 0.0 );\n\tvec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;\n\t#ifdef USE_IRIDESCENCE\n\t\tcomputeMultiscatteringIridescence( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness, singleScattering, multiScattering );\n\t#else\n\t\tcomputeMultiscattering( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering );\n\t#endif\n\tvec3 totalScattering = singleScattering + multiScattering;\n\tvec3 diffuse = material.diffuseColor * ( 1.0 - max( max( totalScattering.r, totalScattering.g ), totalScattering.b ) );\n\treflectedLight.indirectSpecular += radiance * singleScattering;\n\treflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;\n\treflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;\n}\n#define RE_Direct\t\t\t\tRE_Direct_Physical\n#define RE_Direct_RectArea\t\tRE_Direct_RectArea_Physical\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Physical\n#define RE_IndirectSpecular\t\tRE_IndirectSpecular_Physical\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\n\treturn saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\n}",lights_fragment_begin:"\nvec3 geometryPosition = - vViewPosition;\nvec3 geometryNormal = normal;\nvec3 geometryViewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );\nvec3 geometryClearcoatNormal = vec3( 0.0 );\n#ifdef USE_CLEARCOAT\n\tgeometryClearcoatNormal = clearcoatNormal;\n#endif\n#ifdef USE_IRIDESCENCE\n\tfloat dotNVi = saturate( dot( normal, geometryViewDir ) );\n\tif ( material.iridescenceThickness == 0.0 ) {\n\t\tmaterial.iridescence = 0.0;\n\t} else {\n\t\tmaterial.iridescence = saturate( material.iridescence );\n\t}\n\tif ( material.iridescence > 0.0 ) {\n\t\tmaterial.iridescenceFresnel = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.specularColor );\n\t\tmaterial.iridescenceF0 = Schlick_to_F0( material.iridescenceFresnel, 1.0, dotNVi );\n\t}\n#endif\nIncidentLight directLight;\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\n\tPointLight pointLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tpointLight = pointLights[ i ];\n\t\tgetPointLightInfo( pointLight, geometryPosition, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS )\n\t\tpointLightShadow = pointLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\n\tSpotLight spotLight;\n\tvec4 spotColor;\n\tvec3 spotLightCoord;\n\tbool inSpotLightMap;\n\t#if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tspotLight = spotLights[ i ];\n\t\tgetSpotLightInfo( spotLight, geometryPosition, directLight );\n\t\t#if ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\n\t\t#define SPOT_LIGHT_MAP_INDEX UNROLLED_LOOP_INDEX\n\t\t#elif ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\t#define SPOT_LIGHT_MAP_INDEX NUM_SPOT_LIGHT_MAPS\n\t\t#else\n\t\t#define SPOT_LIGHT_MAP_INDEX ( UNROLLED_LOOP_INDEX - NUM_SPOT_LIGHT_SHADOWS + NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\n\t\t#endif\n\t\t#if ( SPOT_LIGHT_MAP_INDEX < NUM_SPOT_LIGHT_MAPS )\n\t\t\tspotLightCoord = vSpotLightCoord[ i ].xyz / vSpotLightCoord[ i ].w;\n\t\t\tinSpotLightMap = all( lessThan( abs( spotLightCoord * 2. - 1. ), vec3( 1.0 ) ) );\n\t\t\tspotColor = texture2D( spotLightMap[ SPOT_LIGHT_MAP_INDEX ], spotLightCoord.xy );\n\t\t\tdirectLight.color = inSpotLightMap ? directLight.color * spotColor.rgb : directLight.color;\n\t\t#endif\n\t\t#undef SPOT_LIGHT_MAP_INDEX\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\tspotLightShadow = spotLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )\n\tDirectionalLight directionalLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tdirectionalLight = directionalLights[ i ];\n\t\tgetDirectionalLightInfo( directionalLight, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )\n\t\tdirectionalLightShadow = directionalLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )\n\tRectAreaLight rectAreaLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {\n\t\trectAreaLight = rectAreaLights[ i ];\n\t\tRE_Direct_RectArea( rectAreaLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if defined( RE_IndirectDiffuse )\n\tvec3 iblIrradiance = vec3( 0.0 );\n\tvec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\n\t#if defined( USE_LIGHT_PROBES )\n\t\tirradiance += getLightProbeIrradiance( lightProbe, geometryNormal );\n\t#endif\n\t#if ( NUM_HEMI_LIGHTS > 0 )\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\n\t\t\tirradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometryNormal );\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n#endif\n#if defined( RE_IndirectSpecular )\n\tvec3 radiance = vec3( 0.0 );\n\tvec3 clearcoatRadiance = vec3( 0.0 );\n#endif",lights_fragment_maps:"#if defined( RE_IndirectDiffuse )\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n\t\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\n\t\tirradiance += lightMapIrradiance;\n\t#endif\n\t#if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV )\n\t\tiblIrradiance += getIBLIrradiance( geometryNormal );\n\t#endif\n#endif\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\n\t#ifdef USE_ANISOTROPY\n\t\tradiance += getIBLAnisotropyRadiance( geometryViewDir, geometryNormal, material.roughness, material.anisotropyB, material.anisotropy );\n\t#else\n\t\tradiance += getIBLRadiance( geometryViewDir, geometryNormal, material.roughness );\n\t#endif\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatRadiance += getIBLRadiance( geometryViewDir, geometryClearcoatNormal, material.clearcoatRoughness );\n\t#endif\n#endif",lights_fragment_end:"#if defined( RE_IndirectDiffuse )\n\tRE_IndirectDiffuse( irradiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n#endif\n#if defined( RE_IndirectSpecular )\n\tRE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n#endif",logdepthbuf_fragment:"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tgl_FragDepthEXT = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;\n#endif",logdepthbuf_pars_fragment:"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tuniform float logDepthBufFC;\n\tvarying float vFragDepth;\n\tvarying float vIsPerspective;\n#endif",logdepthbuf_pars_vertex:"#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvarying float vFragDepth;\n\t\tvarying float vIsPerspective;\n\t#else\n\t\tuniform float logDepthBufFC;\n\t#endif\n#endif",logdepthbuf_vertex:"#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvFragDepth = 1.0 + gl_Position.w;\n\t\tvIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) );\n\t#else\n\t\tif ( isPerspectiveMatrix( projectionMatrix ) ) {\n\t\t\tgl_Position.z = log2( max( EPSILON, gl_Position.w + 1.0 ) ) * logDepthBufFC - 1.0;\n\t\t\tgl_Position.z *= gl_Position.w;\n\t\t}\n\t#endif\n#endif",map_fragment:"#ifdef USE_MAP\n\tvec4 sampledDiffuseColor = texture2D( map, vMapUv );\n\t#ifdef DECODE_VIDEO_TEXTURE\n\t\tsampledDiffuseColor = vec4( mix( pow( sampledDiffuseColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), sampledDiffuseColor.rgb * 0.0773993808, vec3( lessThanEqual( sampledDiffuseColor.rgb, vec3( 0.04045 ) ) ) ), sampledDiffuseColor.w );\n\t\n\t#endif\n\tdiffuseColor *= sampledDiffuseColor;\n#endif",map_pars_fragment:"#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif",map_particle_fragment:"#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\t#if defined( USE_POINTS_UV )\n\t\tvec2 uv = vUv;\n\t#else\n\t\tvec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;\n\t#endif\n#endif\n#ifdef USE_MAP\n\tdiffuseColor *= texture2D( map, uv );\n#endif\n#ifdef USE_ALPHAMAP\n\tdiffuseColor.a *= texture2D( alphaMap, uv ).g;\n#endif",map_particle_pars_fragment:"#if defined( USE_POINTS_UV )\n\tvarying vec2 vUv;\n#else\n\t#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\t\tuniform mat3 uvTransform;\n\t#endif\n#endif\n#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif\n#ifdef USE_ALPHAMAP\n\tuniform sampler2D alphaMap;\n#endif",metalnessmap_fragment:"float metalnessFactor = metalness;\n#ifdef USE_METALNESSMAP\n\tvec4 texelMetalness = texture2D( metalnessMap, vMetalnessMapUv );\n\tmetalnessFactor *= texelMetalness.b;\n#endif",metalnessmap_pars_fragment:"#ifdef USE_METALNESSMAP\n\tuniform sampler2D metalnessMap;\n#endif",morphinstance_vertex:"#ifdef USE_INSTANCING_MORPH\n\tfloat morphTargetInfluences[MORPHTARGETS_COUNT];\n\tfloat morphTargetBaseInfluence = texelFetch( morphTexture, ivec2( 0, gl_InstanceID ), 0 ).r;\n\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\tmorphTargetInfluences[i] = texelFetch( morphTexture, ivec2( i + 1, gl_InstanceID ), 0 ).r;\n\t}\n#endif",morphcolor_vertex:"#if defined( USE_MORPHCOLORS ) && defined( MORPHTARGETS_TEXTURE )\n\tvColor *= morphTargetBaseInfluence;\n\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t#if defined( USE_COLOR_ALPHA )\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ) * morphTargetInfluences[ i ];\n\t\t#elif defined( USE_COLOR )\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ).rgb * morphTargetInfluences[ i ];\n\t\t#endif\n\t}\n#endif",morphnormal_vertex:"#ifdef USE_MORPHNORMALS\n\tobjectNormal *= morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1 ).xyz * morphTargetInfluences[ i ];\n\t\t}\n\t#else\n\t\tobjectNormal += morphNormal0 * morphTargetInfluences[ 0 ];\n\t\tobjectNormal += morphNormal1 * morphTargetInfluences[ 1 ];\n\t\tobjectNormal += morphNormal2 * morphTargetInfluences[ 2 ];\n\t\tobjectNormal += morphNormal3 * morphTargetInfluences[ 3 ];\n\t#endif\n#endif",morphtarget_pars_vertex:"#ifdef USE_MORPHTARGETS\n\t#ifndef USE_INSTANCING_MORPH\n\t\tuniform float morphTargetBaseInfluence;\n\t#endif\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\t#ifndef USE_INSTANCING_MORPH\n\t\t\tuniform float morphTargetInfluences[ MORPHTARGETS_COUNT ];\n\t\t#endif\n\t\tuniform sampler2DArray morphTargetsTexture;\n\t\tuniform ivec2 morphTargetsTextureSize;\n\t\tvec4 getMorph( const in int vertexIndex, const in int morphTargetIndex, const in int offset ) {\n\t\t\tint texelIndex = vertexIndex * MORPHTARGETS_TEXTURE_STRIDE + offset;\n\t\t\tint y = texelIndex / morphTargetsTextureSize.x;\n\t\t\tint x = texelIndex - y * morphTargetsTextureSize.x;\n\t\t\tivec3 morphUV = ivec3( x, y, morphTargetIndex );\n\t\t\treturn texelFetch( morphTargetsTexture, morphUV, 0 );\n\t\t}\n\t#else\n\t\t#ifndef USE_MORPHNORMALS\n\t\t\tuniform float morphTargetInfluences[ 8 ];\n\t\t#else\n\t\t\tuniform float morphTargetInfluences[ 4 ];\n\t\t#endif\n\t#endif\n#endif",morphtarget_vertex:"#ifdef USE_MORPHTARGETS\n\ttransformed *= morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0 ).xyz * morphTargetInfluences[ i ];\n\t\t}\n\t#else\n\t\ttransformed += morphTarget0 * morphTargetInfluences[ 0 ];\n\t\ttransformed += morphTarget1 * morphTargetInfluences[ 1 ];\n\t\ttransformed += morphTarget2 * morphTargetInfluences[ 2 ];\n\t\ttransformed += morphTarget3 * morphTargetInfluences[ 3 ];\n\t\t#ifndef USE_MORPHNORMALS\n\t\t\ttransformed += morphTarget4 * morphTargetInfluences[ 4 ];\n\t\t\ttransformed += morphTarget5 * morphTargetInfluences[ 5 ];\n\t\t\ttransformed += morphTarget6 * morphTargetInfluences[ 6 ];\n\t\t\ttransformed += morphTarget7 * morphTargetInfluences[ 7 ];\n\t\t#endif\n\t#endif\n#endif",normal_fragment_begin:"float faceDirection = gl_FrontFacing ? 1.0 : - 1.0;\n#ifdef FLAT_SHADED\n\tvec3 fdx = dFdx( vViewPosition );\n\tvec3 fdy = dFdy( vViewPosition );\n\tvec3 normal = normalize( cross( fdx, fdy ) );\n#else\n\tvec3 normal = normalize( vNormal );\n\t#ifdef DOUBLE_SIDED\n\t\tnormal *= faceDirection;\n\t#endif\n#endif\n#if defined( USE_NORMALMAP_TANGENTSPACE ) || defined( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY )\n\t#ifdef USE_TANGENT\n\t\tmat3 tbn = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\n\t#else\n\t\tmat3 tbn = getTangentFrame( - vViewPosition, normal,\n\t\t#if defined( USE_NORMALMAP )\n\t\t\tvNormalMapUv\n\t\t#elif defined( USE_CLEARCOAT_NORMALMAP )\n\t\t\tvClearcoatNormalMapUv\n\t\t#else\n\t\t\tvUv\n\t\t#endif\n\t\t);\n\t#endif\n\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\n\t\ttbn[0] *= faceDirection;\n\t\ttbn[1] *= faceDirection;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\t#ifdef USE_TANGENT\n\t\tmat3 tbn2 = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\n\t#else\n\t\tmat3 tbn2 = getTangentFrame( - vViewPosition, normal, vClearcoatNormalMapUv );\n\t#endif\n\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\n\t\ttbn2[0] *= faceDirection;\n\t\ttbn2[1] *= faceDirection;\n\t#endif\n#endif\nvec3 nonPerturbedNormal = normal;",normal_fragment_maps:"#ifdef USE_NORMALMAP_OBJECTSPACE\n\tnormal = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\n\t#ifdef FLIP_SIDED\n\t\tnormal = - normal;\n\t#endif\n\t#ifdef DOUBLE_SIDED\n\t\tnormal = normal * faceDirection;\n\t#endif\n\tnormal = normalize( normalMatrix * normal );\n#elif defined( USE_NORMALMAP_TANGENTSPACE )\n\tvec3 mapN = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\n\tmapN.xy *= normalScale;\n\tnormal = normalize( tbn * mapN );\n#elif defined( USE_BUMPMAP )\n\tnormal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection );\n#endif",normal_pars_fragment:"#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif",normal_pars_vertex:"#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif",normal_vertex:"#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n\t#ifdef USE_TANGENT\n\t\tvTangent = normalize( transformedTangent );\n\t\tvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\n\t#endif\n#endif",normalmap_pars_fragment:"#ifdef USE_NORMALMAP\n\tuniform sampler2D normalMap;\n\tuniform vec2 normalScale;\n#endif\n#ifdef USE_NORMALMAP_OBJECTSPACE\n\tuniform mat3 normalMatrix;\n#endif\n#if ! defined ( USE_TANGENT ) && ( defined ( USE_NORMALMAP_TANGENTSPACE ) || defined ( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) )\n\tmat3 getTangentFrame( vec3 eye_pos, vec3 surf_norm, vec2 uv ) {\n\t\tvec3 q0 = dFdx( eye_pos.xyz );\n\t\tvec3 q1 = dFdy( eye_pos.xyz );\n\t\tvec2 st0 = dFdx( uv.st );\n\t\tvec2 st1 = dFdy( uv.st );\n\t\tvec3 N = surf_norm;\n\t\tvec3 q1perp = cross( q1, N );\n\t\tvec3 q0perp = cross( N, q0 );\n\t\tvec3 T = q1perp * st0.x + q0perp * st1.x;\n\t\tvec3 B = q1perp * st0.y + q0perp * st1.y;\n\t\tfloat det = max( dot( T, T ), dot( B, B ) );\n\t\tfloat scale = ( det == 0.0 ) ? 0.0 : inversesqrt( det );\n\t\treturn mat3( T * scale, B * scale, N );\n\t}\n#endif",clearcoat_normal_fragment_begin:"#ifdef USE_CLEARCOAT\n\tvec3 clearcoatNormal = nonPerturbedNormal;\n#endif",clearcoat_normal_fragment_maps:"#ifdef USE_CLEARCOAT_NORMALMAP\n\tvec3 clearcoatMapN = texture2D( clearcoatNormalMap, vClearcoatNormalMapUv ).xyz * 2.0 - 1.0;\n\tclearcoatMapN.xy *= clearcoatNormalScale;\n\tclearcoatNormal = normalize( tbn2 * clearcoatMapN );\n#endif",clearcoat_pars_fragment:"#ifdef USE_CLEARCOATMAP\n\tuniform sampler2D clearcoatMap;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tuniform sampler2D clearcoatNormalMap;\n\tuniform vec2 clearcoatNormalScale;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tuniform sampler2D clearcoatRoughnessMap;\n#endif",iridescence_pars_fragment:"#ifdef USE_IRIDESCENCEMAP\n\tuniform sampler2D iridescenceMap;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tuniform sampler2D iridescenceThicknessMap;\n#endif",opaque_fragment:"#ifdef OPAQUE\ndiffuseColor.a = 1.0;\n#endif\n#ifdef USE_TRANSMISSION\ndiffuseColor.a *= material.transmissionAlpha;\n#endif\ngl_FragColor = vec4( outgoingLight, diffuseColor.a );",packing:"vec3 packNormalToRGB( const in vec3 normal ) {\n\treturn normalize( normal ) * 0.5 + 0.5;\n}\nvec3 unpackRGBToNormal( const in vec3 rgb ) {\n\treturn 2.0 * rgb.xyz - 1.0;\n}\nconst float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;\nconst vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );\nconst vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. );\nconst float ShiftRight8 = 1. / 256.;\nvec4 packDepthToRGBA( const in float v ) {\n\tvec4 r = vec4( fract( v * PackFactors ), v );\n\tr.yzw -= r.xyz * ShiftRight8;\treturn r * PackUpscale;\n}\nfloat unpackRGBAToDepth( const in vec4 v ) {\n\treturn dot( v, UnpackFactors );\n}\nvec2 packDepthToRG( in highp float v ) {\n\treturn packDepthToRGBA( v ).yx;\n}\nfloat unpackRGToDepth( const in highp vec2 v ) {\n\treturn unpackRGBAToDepth( vec4( v.xy, 0.0, 0.0 ) );\n}\nvec4 pack2HalfToRGBA( vec2 v ) {\n\tvec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ) );\n\treturn vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w );\n}\nvec2 unpackRGBATo2Half( vec4 v ) {\n\treturn vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) );\n}\nfloat viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn ( viewZ + near ) / ( near - far );\n}\nfloat orthographicDepthToViewZ( const in float depth, const in float near, const in float far ) {\n\treturn depth * ( near - far ) - near;\n}\nfloat viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn ( ( near + viewZ ) * far ) / ( ( far - near ) * viewZ );\n}\nfloat perspectiveDepthToViewZ( const in float depth, const in float near, const in float far ) {\n\treturn ( near * far ) / ( ( far - near ) * depth - far );\n}",premultiplied_alpha_fragment:"#ifdef PREMULTIPLIED_ALPHA\n\tgl_FragColor.rgb *= gl_FragColor.a;\n#endif",project_vertex:"vec4 mvPosition = vec4( transformed, 1.0 );\n#ifdef USE_BATCHING\n\tmvPosition = batchingMatrix * mvPosition;\n#endif\n#ifdef USE_INSTANCING\n\tmvPosition = instanceMatrix * mvPosition;\n#endif\nmvPosition = modelViewMatrix * mvPosition;\ngl_Position = projectionMatrix * mvPosition;",dithering_fragment:"#ifdef DITHERING\n\tgl_FragColor.rgb = dithering( gl_FragColor.rgb );\n#endif",dithering_pars_fragment:"#ifdef DITHERING\n\tvec3 dithering( vec3 color ) {\n\t\tfloat grid_position = rand( gl_FragCoord.xy );\n\t\tvec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 );\n\t\tdither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position );\n\t\treturn color + dither_shift_RGB;\n\t}\n#endif",roughnessmap_fragment:"float roughnessFactor = roughness;\n#ifdef USE_ROUGHNESSMAP\n\tvec4 texelRoughness = texture2D( roughnessMap, vRoughnessMapUv );\n\troughnessFactor *= texelRoughness.g;\n#endif",roughnessmap_pars_fragment:"#ifdef USE_ROUGHNESSMAP\n\tuniform sampler2D roughnessMap;\n#endif",shadowmap_pars_fragment:"#if NUM_SPOT_LIGHT_COORDS > 0\n\tvarying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\n#endif\n#if NUM_SPOT_LIGHT_MAPS > 0\n\tuniform sampler2D spotLightMap[ NUM_SPOT_LIGHT_MAPS ];\n#endif\n#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tstruct DirectionalLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ];\n\t\tstruct SpotLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tstruct PointLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t\tfloat shadowCameraNear;\n\t\t\tfloat shadowCameraFar;\n\t\t};\n\t\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n\t#endif\n\tfloat texture2DCompare( sampler2D depths, vec2 uv, float compare ) {\n\t\treturn step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) );\n\t}\n\tvec2 texture2DDistribution( sampler2D shadow, vec2 uv ) {\n\t\treturn unpackRGBATo2Half( texture2D( shadow, uv ) );\n\t}\n\tfloat VSMShadow (sampler2D shadow, vec2 uv, float compare ){\n\t\tfloat occlusion = 1.0;\n\t\tvec2 distribution = texture2DDistribution( shadow, uv );\n\t\tfloat hard_shadow = step( compare , distribution.x );\n\t\tif (hard_shadow != 1.0 ) {\n\t\t\tfloat distance = compare - distribution.x ;\n\t\t\tfloat variance = max( 0.00000, distribution.y * distribution.y );\n\t\t\tfloat softness_probability = variance / (variance + distance * distance );\t\t\tsoftness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 );\t\t\tocclusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 );\n\t\t}\n\t\treturn occlusion;\n\t}\n\tfloat getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) {\n\t\tfloat shadow = 1.0;\n\t\tshadowCoord.xyz /= shadowCoord.w;\n\t\tshadowCoord.z += shadowBias;\n\t\tbool inFrustum = shadowCoord.x >= 0.0 && shadowCoord.x <= 1.0 && shadowCoord.y >= 0.0 && shadowCoord.y <= 1.0;\n\t\tbool frustumTest = inFrustum && shadowCoord.z <= 1.0;\n\t\tif ( frustumTest ) {\n\t\t#if defined( SHADOWMAP_TYPE_PCF )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx0 = - texelSize.x * shadowRadius;\n\t\t\tfloat dy0 = - texelSize.y * shadowRadius;\n\t\t\tfloat dx1 = + texelSize.x * shadowRadius;\n\t\t\tfloat dy1 = + texelSize.y * shadowRadius;\n\t\t\tfloat dx2 = dx0 / 2.0;\n\t\t\tfloat dy2 = dy0 / 2.0;\n\t\t\tfloat dx3 = dx1 / 2.0;\n\t\t\tfloat dy3 = dy1 / 2.0;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\n\t\t\t) * ( 1.0 / 17.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_PCF_SOFT )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx = texelSize.x;\n\t\t\tfloat dy = texelSize.y;\n\t\t\tvec2 uv = shadowCoord.xy;\n\t\t\tvec2 f = fract( uv * shadowMapSize + 0.5 );\n\t\t\tuv -= f * texelSize;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, uv, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ),\n\t\t\t\t\t f.x ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ),\n\t\t\t\t\t f.x ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t f.y ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t f.y ) +\n\t\t\t\tmix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t\t f.x ),\n\t\t\t\t\t mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t\t f.x ),\n\t\t\t\t\t f.y )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_VSM )\n\t\t\tshadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#else\n\t\t\tshadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#endif\n\t\t}\n\t\treturn shadow;\n\t}\n\tvec2 cubeToUV( vec3 v, float texelSizeY ) {\n\t\tvec3 absV = abs( v );\n\t\tfloat scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) );\n\t\tabsV *= scaleToCube;\n\t\tv *= scaleToCube * ( 1.0 - 2.0 * texelSizeY );\n\t\tvec2 planar = v.xy;\n\t\tfloat almostATexel = 1.5 * texelSizeY;\n\t\tfloat almostOne = 1.0 - almostATexel;\n\t\tif ( absV.z >= almostOne ) {\n\t\t\tif ( v.z > 0.0 )\n\t\t\t\tplanar.x = 4.0 - v.x;\n\t\t} else if ( absV.x >= almostOne ) {\n\t\t\tfloat signX = sign( v.x );\n\t\t\tplanar.x = v.z * signX + 2.0 * signX;\n\t\t} else if ( absV.y >= almostOne ) {\n\t\t\tfloat signY = sign( v.y );\n\t\t\tplanar.x = v.x + 2.0 * signY + 2.0;\n\t\t\tplanar.y = v.z * signY - 2.0;\n\t\t}\n\t\treturn vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 );\n\t}\n\tfloat getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) {\n\t\tvec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );\n\t\tvec3 lightToPosition = shadowCoord.xyz;\n\t\tfloat dp = ( length( lightToPosition ) - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear );\t\tdp += shadowBias;\n\t\tvec3 bd3D = normalize( lightToPosition );\n\t\t#if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM )\n\t\t\tvec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;\n\t\t\treturn (\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#else\n\t\t\treturn texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );\n\t\t#endif\n\t}\n#endif",shadowmap_pars_vertex:"#if NUM_SPOT_LIGHT_COORDS > 0\n\tuniform mat4 spotLightMatrix[ NUM_SPOT_LIGHT_COORDS ];\n\tvarying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\n#endif\n#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\tuniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tstruct DirectionalLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tstruct SpotLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\tuniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tstruct PointLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t\tfloat shadowCameraNear;\n\t\t\tfloat shadowCameraFar;\n\t\t};\n\t\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n\t#endif\n#endif",shadowmap_vertex:"#if ( defined( USE_SHADOWMAP ) && ( NUM_DIR_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0 ) ) || ( NUM_SPOT_LIGHT_COORDS > 0 )\n\tvec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\tvec4 shadowWorldPosition;\n#endif\n#if defined( USE_SHADOWMAP )\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 );\n\t\t\tvDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 );\n\t\t\tvPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n#endif\n#if NUM_SPOT_LIGHT_COORDS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_COORDS; i ++ ) {\n\t\tshadowWorldPosition = worldPosition;\n\t\t#if ( defined( USE_SHADOWMAP ) && UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\t\tshadowWorldPosition.xyz += shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias;\n\t\t#endif\n\t\tvSpotLightCoord[ i ] = spotLightMatrix[ i ] * shadowWorldPosition;\n\t}\n\t#pragma unroll_loop_end\n#endif",shadowmask_pars_fragment:"float getShadowMask() {\n\tfloat shadow = 1.0;\n\t#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\tdirectionalLight = directionalLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\n\t\tspotLight = spotLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\tpointLight = pointLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#endif\n\treturn shadow;\n}",skinbase_vertex:"#ifdef USE_SKINNING\n\tmat4 boneMatX = getBoneMatrix( skinIndex.x );\n\tmat4 boneMatY = getBoneMatrix( skinIndex.y );\n\tmat4 boneMatZ = getBoneMatrix( skinIndex.z );\n\tmat4 boneMatW = getBoneMatrix( skinIndex.w );\n#endif",skinning_pars_vertex:"#ifdef USE_SKINNING\n\tuniform mat4 bindMatrix;\n\tuniform mat4 bindMatrixInverse;\n\tuniform highp sampler2D boneTexture;\n\tmat4 getBoneMatrix( const in float i ) {\n\t\tint size = textureSize( boneTexture, 0 ).x;\n\t\tint j = int( i ) * 4;\n\t\tint x = j % size;\n\t\tint y = j / size;\n\t\tvec4 v1 = texelFetch( boneTexture, ivec2( x, y ), 0 );\n\t\tvec4 v2 = texelFetch( boneTexture, ivec2( x + 1, y ), 0 );\n\t\tvec4 v3 = texelFetch( boneTexture, ivec2( x + 2, y ), 0 );\n\t\tvec4 v4 = texelFetch( boneTexture, ivec2( x + 3, y ), 0 );\n\t\treturn mat4( v1, v2, v3, v4 );\n\t}\n#endif",skinning_vertex:"#ifdef USE_SKINNING\n\tvec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );\n\tvec4 skinned = vec4( 0.0 );\n\tskinned += boneMatX * skinVertex * skinWeight.x;\n\tskinned += boneMatY * skinVertex * skinWeight.y;\n\tskinned += boneMatZ * skinVertex * skinWeight.z;\n\tskinned += boneMatW * skinVertex * skinWeight.w;\n\ttransformed = ( bindMatrixInverse * skinned ).xyz;\n#endif",skinnormal_vertex:"#ifdef USE_SKINNING\n\tmat4 skinMatrix = mat4( 0.0 );\n\tskinMatrix += skinWeight.x * boneMatX;\n\tskinMatrix += skinWeight.y * boneMatY;\n\tskinMatrix += skinWeight.z * boneMatZ;\n\tskinMatrix += skinWeight.w * boneMatW;\n\tskinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;\n\tobjectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;\n\t#ifdef USE_TANGENT\n\t\tobjectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz;\n\t#endif\n#endif",specularmap_fragment:"float specularStrength;\n#ifdef USE_SPECULARMAP\n\tvec4 texelSpecular = texture2D( specularMap, vSpecularMapUv );\n\tspecularStrength = texelSpecular.r;\n#else\n\tspecularStrength = 1.0;\n#endif",specularmap_pars_fragment:"#ifdef USE_SPECULARMAP\n\tuniform sampler2D specularMap;\n#endif",tonemapping_fragment:"#if defined( TONE_MAPPING )\n\tgl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\n#endif",tonemapping_pars_fragment:"#ifndef saturate\n#define saturate( a ) clamp( a, 0.0, 1.0 )\n#endif\nuniform float toneMappingExposure;\nvec3 LinearToneMapping( vec3 color ) {\n\treturn saturate( toneMappingExposure * color );\n}\nvec3 ReinhardToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\treturn saturate( color / ( vec3( 1.0 ) + color ) );\n}\nvec3 OptimizedCineonToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\tcolor = max( vec3( 0.0 ), color - 0.004 );\n\treturn pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );\n}\nvec3 RRTAndODTFit( vec3 v ) {\n\tvec3 a = v * ( v + 0.0245786 ) - 0.000090537;\n\tvec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081;\n\treturn a / b;\n}\nvec3 ACESFilmicToneMapping( vec3 color ) {\n\tconst mat3 ACESInputMat = mat3(\n\t\tvec3( 0.59719, 0.07600, 0.02840 ),\t\tvec3( 0.35458, 0.90834, 0.13383 ),\n\t\tvec3( 0.04823, 0.01566, 0.83777 )\n\t);\n\tconst mat3 ACESOutputMat = mat3(\n\t\tvec3( 1.60475, -0.10208, -0.00327 ),\t\tvec3( -0.53108, 1.10813, -0.07276 ),\n\t\tvec3( -0.07367, -0.00605, 1.07602 )\n\t);\n\tcolor *= toneMappingExposure / 0.6;\n\tcolor = ACESInputMat * color;\n\tcolor = RRTAndODTFit( color );\n\tcolor = ACESOutputMat * color;\n\treturn saturate( color );\n}\nconst mat3 LINEAR_REC2020_TO_LINEAR_SRGB = mat3(\n\tvec3( 1.6605, - 0.1246, - 0.0182 ),\n\tvec3( - 0.5876, 1.1329, - 0.1006 ),\n\tvec3( - 0.0728, - 0.0083, 1.1187 )\n);\nconst mat3 LINEAR_SRGB_TO_LINEAR_REC2020 = mat3(\n\tvec3( 0.6274, 0.0691, 0.0164 ),\n\tvec3( 0.3293, 0.9195, 0.0880 ),\n\tvec3( 0.0433, 0.0113, 0.8956 )\n);\nvec3 agxDefaultContrastApprox( vec3 x ) {\n\tvec3 x2 = x * x;\n\tvec3 x4 = x2 * x2;\n\treturn + 15.5 * x4 * x2\n\t\t- 40.14 * x4 * x\n\t\t+ 31.96 * x4\n\t\t- 6.868 * x2 * x\n\t\t+ 0.4298 * x2\n\t\t+ 0.1191 * x\n\t\t- 0.00232;\n}\nvec3 AgXToneMapping( vec3 color ) {\n\tconst mat3 AgXInsetMatrix = mat3(\n\t\tvec3( 0.856627153315983, 0.137318972929847, 0.11189821299995 ),\n\t\tvec3( 0.0951212405381588, 0.761241990602591, 0.0767994186031903 ),\n\t\tvec3( 0.0482516061458583, 0.101439036467562, 0.811302368396859 )\n\t);\n\tconst mat3 AgXOutsetMatrix = mat3(\n\t\tvec3( 1.1271005818144368, - 0.1413297634984383, - 0.14132976349843826 ),\n\t\tvec3( - 0.11060664309660323, 1.157823702216272, - 0.11060664309660294 ),\n\t\tvec3( - 0.016493938717834573, - 0.016493938717834257, 1.2519364065950405 )\n\t);\n\tconst float AgxMinEv = - 12.47393;\tconst float AgxMaxEv = 4.026069;\n\tcolor *= toneMappingExposure;\n\tcolor = LINEAR_SRGB_TO_LINEAR_REC2020 * color;\n\tcolor = AgXInsetMatrix * color;\n\tcolor = max( color, 1e-10 );\tcolor = log2( color );\n\tcolor = ( color - AgxMinEv ) / ( AgxMaxEv - AgxMinEv );\n\tcolor = clamp( color, 0.0, 1.0 );\n\tcolor = agxDefaultContrastApprox( color );\n\tcolor = AgXOutsetMatrix * color;\n\tcolor = pow( max( vec3( 0.0 ), color ), vec3( 2.2 ) );\n\tcolor = LINEAR_REC2020_TO_LINEAR_SRGB * color;\n\tcolor = clamp( color, 0.0, 1.0 );\n\treturn color;\n}\nvec3 NeutralToneMapping( vec3 color ) {\n\tfloat startCompression = 0.8 - 0.04;\n\tfloat desaturation = 0.15;\n\tcolor *= toneMappingExposure;\n\tfloat x = min(color.r, min(color.g, color.b));\n\tfloat offset = x < 0.08 ? x - 6.25 * x * x : 0.04;\n\tcolor -= offset;\n\tfloat peak = max(color.r, max(color.g, color.b));\n\tif (peak < startCompression) return color;\n\tfloat d = 1. - startCompression;\n\tfloat newPeak = 1. - d * d / (peak + d - startCompression);\n\tcolor *= newPeak / peak;\n\tfloat g = 1. - 1. / (desaturation * (peak - newPeak) + 1.);\n\treturn mix(color, vec3(1, 1, 1), g);\n}\nvec3 CustomToneMapping( vec3 color ) { return color; }",transmission_fragment:"#ifdef USE_TRANSMISSION\n\tmaterial.transmission = transmission;\n\tmaterial.transmissionAlpha = 1.0;\n\tmaterial.thickness = thickness;\n\tmaterial.attenuationDistance = attenuationDistance;\n\tmaterial.attenuationColor = attenuationColor;\n\t#ifdef USE_TRANSMISSIONMAP\n\t\tmaterial.transmission *= texture2D( transmissionMap, vTransmissionMapUv ).r;\n\t#endif\n\t#ifdef USE_THICKNESSMAP\n\t\tmaterial.thickness *= texture2D( thicknessMap, vThicknessMapUv ).g;\n\t#endif\n\tvec3 pos = vWorldPosition;\n\tvec3 v = normalize( cameraPosition - pos );\n\tvec3 n = inverseTransformDirection( normal, viewMatrix );\n\tvec4 transmitted = getIBLVolumeRefraction(\n\t\tn, v, material.roughness, material.diffuseColor, material.specularColor, material.specularF90,\n\t\tpos, modelMatrix, viewMatrix, projectionMatrix, material.ior, material.thickness,\n\t\tmaterial.attenuationColor, material.attenuationDistance );\n\tmaterial.transmissionAlpha = mix( material.transmissionAlpha, transmitted.a, material.transmission );\n\ttotalDiffuse = mix( totalDiffuse, transmitted.rgb, material.transmission );\n#endif",transmission_pars_fragment:"#ifdef USE_TRANSMISSION\n\tuniform float transmission;\n\tuniform float thickness;\n\tuniform float attenuationDistance;\n\tuniform vec3 attenuationColor;\n\t#ifdef USE_TRANSMISSIONMAP\n\t\tuniform sampler2D transmissionMap;\n\t#endif\n\t#ifdef USE_THICKNESSMAP\n\t\tuniform sampler2D thicknessMap;\n\t#endif\n\tuniform vec2 transmissionSamplerSize;\n\tuniform sampler2D transmissionSamplerMap;\n\tuniform mat4 modelMatrix;\n\tuniform mat4 projectionMatrix;\n\tvarying vec3 vWorldPosition;\n\tfloat w0( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * ( a * ( - a + 3.0 ) - 3.0 ) + 1.0 );\n\t}\n\tfloat w1( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * a * ( 3.0 * a - 6.0 ) + 4.0 );\n\t}\n\tfloat w2( float a ){\n\t\treturn ( 1.0 / 6.0 ) * ( a * ( a * ( - 3.0 * a + 3.0 ) + 3.0 ) + 1.0 );\n\t}\n\tfloat w3( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * a * a );\n\t}\n\tfloat g0( float a ) {\n\t\treturn w0( a ) + w1( a );\n\t}\n\tfloat g1( float a ) {\n\t\treturn w2( a ) + w3( a );\n\t}\n\tfloat h0( float a ) {\n\t\treturn - 1.0 + w1( a ) / ( w0( a ) + w1( a ) );\n\t}\n\tfloat h1( float a ) {\n\t\treturn 1.0 + w3( a ) / ( w2( a ) + w3( a ) );\n\t}\n\tvec4 bicubic( sampler2D tex, vec2 uv, vec4 texelSize, float lod ) {\n\t\tuv = uv * texelSize.zw + 0.5;\n\t\tvec2 iuv = floor( uv );\n\t\tvec2 fuv = fract( uv );\n\t\tfloat g0x = g0( fuv.x );\n\t\tfloat g1x = g1( fuv.x );\n\t\tfloat h0x = h0( fuv.x );\n\t\tfloat h1x = h1( fuv.x );\n\t\tfloat h0y = h0( fuv.y );\n\t\tfloat h1y = h1( fuv.y );\n\t\tvec2 p0 = ( vec2( iuv.x + h0x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p1 = ( vec2( iuv.x + h1x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p2 = ( vec2( iuv.x + h0x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p3 = ( vec2( iuv.x + h1x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\n\t\treturn g0( fuv.y ) * ( g0x * textureLod( tex, p0, lod ) + g1x * textureLod( tex, p1, lod ) ) +\n\t\t\tg1( fuv.y ) * ( g0x * textureLod( tex, p2, lod ) + g1x * textureLod( tex, p3, lod ) );\n\t}\n\tvec4 textureBicubic( sampler2D sampler, vec2 uv, float lod ) {\n\t\tvec2 fLodSize = vec2( textureSize( sampler, int( lod ) ) );\n\t\tvec2 cLodSize = vec2( textureSize( sampler, int( lod + 1.0 ) ) );\n\t\tvec2 fLodSizeInv = 1.0 / fLodSize;\n\t\tvec2 cLodSizeInv = 1.0 / cLodSize;\n\t\tvec4 fSample = bicubic( sampler, uv, vec4( fLodSizeInv, fLodSize ), floor( lod ) );\n\t\tvec4 cSample = bicubic( sampler, uv, vec4( cLodSizeInv, cLodSize ), ceil( lod ) );\n\t\treturn mix( fSample, cSample, fract( lod ) );\n\t}\n\tvec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) {\n\t\tvec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior );\n\t\tvec3 modelScale;\n\t\tmodelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) );\n\t\tmodelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) );\n\t\tmodelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) );\n\t\treturn normalize( refractionVector ) * thickness * modelScale;\n\t}\n\tfloat applyIorToRoughness( const in float roughness, const in float ior ) {\n\t\treturn roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 );\n\t}\n\tvec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) {\n\t\tfloat lod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior );\n\t\treturn textureBicubic( transmissionSamplerMap, fragCoord.xy, lod );\n\t}\n\tvec3 volumeAttenuation( const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) {\n\t\tif ( isinf( attenuationDistance ) ) {\n\t\t\treturn vec3( 1.0 );\n\t\t} else {\n\t\t\tvec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance;\n\t\t\tvec3 transmittance = exp( - attenuationCoefficient * transmissionDistance );\t\t\treturn transmittance;\n\t\t}\n\t}\n\tvec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor,\n\t\tconst in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix,\n\t\tconst in mat4 viewMatrix, const in mat4 projMatrix, const in float ior, const in float thickness,\n\t\tconst in vec3 attenuationColor, const in float attenuationDistance ) {\n\t\tvec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix );\n\t\tvec3 refractedRayExit = position + transmissionRay;\n\t\tvec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );\n\t\tvec2 refractionCoords = ndcPos.xy / ndcPos.w;\n\t\trefractionCoords += 1.0;\n\t\trefractionCoords /= 2.0;\n\t\tvec4 transmittedLight = getTransmissionSample( refractionCoords, roughness, ior );\n\t\tvec3 transmittance = diffuseColor * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance );\n\t\tvec3 attenuatedColor = transmittance * transmittedLight.rgb;\n\t\tvec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness );\n\t\tfloat transmittanceFactor = ( transmittance.r + transmittance.g + transmittance.b ) / 3.0;\n\t\treturn vec4( ( 1.0 - F ) * attenuatedColor, 1.0 - ( 1.0 - transmittedLight.a ) * transmittanceFactor );\n\t}\n#endif",uv_pars_fragment:"#if defined( USE_UV ) || defined( USE_ANISOTROPY )\n\tvarying vec2 vUv;\n#endif\n#ifdef USE_MAP\n\tvarying vec2 vMapUv;\n#endif\n#ifdef USE_ALPHAMAP\n\tvarying vec2 vAlphaMapUv;\n#endif\n#ifdef USE_LIGHTMAP\n\tvarying vec2 vLightMapUv;\n#endif\n#ifdef USE_AOMAP\n\tvarying vec2 vAoMapUv;\n#endif\n#ifdef USE_BUMPMAP\n\tvarying vec2 vBumpMapUv;\n#endif\n#ifdef USE_NORMALMAP\n\tvarying vec2 vNormalMapUv;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tvarying vec2 vEmissiveMapUv;\n#endif\n#ifdef USE_METALNESSMAP\n\tvarying vec2 vMetalnessMapUv;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tvarying vec2 vRoughnessMapUv;\n#endif\n#ifdef USE_ANISOTROPYMAP\n\tvarying vec2 vAnisotropyMapUv;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tvarying vec2 vClearcoatMapUv;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tvarying vec2 vClearcoatNormalMapUv;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tvarying vec2 vClearcoatRoughnessMapUv;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tvarying vec2 vIridescenceMapUv;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tvarying vec2 vIridescenceThicknessMapUv;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tvarying vec2 vSheenColorMapUv;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tvarying vec2 vSheenRoughnessMapUv;\n#endif\n#ifdef USE_SPECULARMAP\n\tvarying vec2 vSpecularMapUv;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tvarying vec2 vSpecularColorMapUv;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tvarying vec2 vSpecularIntensityMapUv;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tuniform mat3 transmissionMapTransform;\n\tvarying vec2 vTransmissionMapUv;\n#endif\n#ifdef USE_THICKNESSMAP\n\tuniform mat3 thicknessMapTransform;\n\tvarying vec2 vThicknessMapUv;\n#endif",uv_pars_vertex:"#if defined( USE_UV ) || defined( USE_ANISOTROPY )\n\tvarying vec2 vUv;\n#endif\n#ifdef USE_MAP\n\tuniform mat3 mapTransform;\n\tvarying vec2 vMapUv;\n#endif\n#ifdef USE_ALPHAMAP\n\tuniform mat3 alphaMapTransform;\n\tvarying vec2 vAlphaMapUv;\n#endif\n#ifdef USE_LIGHTMAP\n\tuniform mat3 lightMapTransform;\n\tvarying vec2 vLightMapUv;\n#endif\n#ifdef USE_AOMAP\n\tuniform mat3 aoMapTransform;\n\tvarying vec2 vAoMapUv;\n#endif\n#ifdef USE_BUMPMAP\n\tuniform mat3 bumpMapTransform;\n\tvarying vec2 vBumpMapUv;\n#endif\n#ifdef USE_NORMALMAP\n\tuniform mat3 normalMapTransform;\n\tvarying vec2 vNormalMapUv;\n#endif\n#ifdef USE_DISPLACEMENTMAP\n\tuniform mat3 displacementMapTransform;\n\tvarying vec2 vDisplacementMapUv;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tuniform mat3 emissiveMapTransform;\n\tvarying vec2 vEmissiveMapUv;\n#endif\n#ifdef USE_METALNESSMAP\n\tuniform mat3 metalnessMapTransform;\n\tvarying vec2 vMetalnessMapUv;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tuniform mat3 roughnessMapTransform;\n\tvarying vec2 vRoughnessMapUv;\n#endif\n#ifdef USE_ANISOTROPYMAP\n\tuniform mat3 anisotropyMapTransform;\n\tvarying vec2 vAnisotropyMapUv;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tuniform mat3 clearcoatMapTransform;\n\tvarying vec2 vClearcoatMapUv;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tuniform mat3 clearcoatNormalMapTransform;\n\tvarying vec2 vClearcoatNormalMapUv;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tuniform mat3 clearcoatRoughnessMapTransform;\n\tvarying vec2 vClearcoatRoughnessMapUv;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tuniform mat3 sheenColorMapTransform;\n\tvarying vec2 vSheenColorMapUv;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tuniform mat3 sheenRoughnessMapTransform;\n\tvarying vec2 vSheenRoughnessMapUv;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tuniform mat3 iridescenceMapTransform;\n\tvarying vec2 vIridescenceMapUv;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tuniform mat3 iridescenceThicknessMapTransform;\n\tvarying vec2 vIridescenceThicknessMapUv;\n#endif\n#ifdef USE_SPECULARMAP\n\tuniform mat3 specularMapTransform;\n\tvarying vec2 vSpecularMapUv;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tuniform mat3 specularColorMapTransform;\n\tvarying vec2 vSpecularColorMapUv;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tuniform mat3 specularIntensityMapTransform;\n\tvarying vec2 vSpecularIntensityMapUv;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tuniform mat3 transmissionMapTransform;\n\tvarying vec2 vTransmissionMapUv;\n#endif\n#ifdef USE_THICKNESSMAP\n\tuniform mat3 thicknessMapTransform;\n\tvarying vec2 vThicknessMapUv;\n#endif",uv_vertex:"#if defined( USE_UV ) || defined( USE_ANISOTROPY )\n\tvUv = vec3( uv, 1 ).xy;\n#endif\n#ifdef USE_MAP\n\tvMapUv = ( mapTransform * vec3( MAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ALPHAMAP\n\tvAlphaMapUv = ( alphaMapTransform * vec3( ALPHAMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_LIGHTMAP\n\tvLightMapUv = ( lightMapTransform * vec3( LIGHTMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_AOMAP\n\tvAoMapUv = ( aoMapTransform * vec3( AOMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_BUMPMAP\n\tvBumpMapUv = ( bumpMapTransform * vec3( BUMPMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_NORMALMAP\n\tvNormalMapUv = ( normalMapTransform * vec3( NORMALMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_DISPLACEMENTMAP\n\tvDisplacementMapUv = ( displacementMapTransform * vec3( DISPLACEMENTMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tvEmissiveMapUv = ( emissiveMapTransform * vec3( EMISSIVEMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_METALNESSMAP\n\tvMetalnessMapUv = ( metalnessMapTransform * vec3( METALNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tvRoughnessMapUv = ( roughnessMapTransform * vec3( ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ANISOTROPYMAP\n\tvAnisotropyMapUv = ( anisotropyMapTransform * vec3( ANISOTROPYMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tvClearcoatMapUv = ( clearcoatMapTransform * vec3( CLEARCOATMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tvClearcoatNormalMapUv = ( clearcoatNormalMapTransform * vec3( CLEARCOAT_NORMALMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tvClearcoatRoughnessMapUv = ( clearcoatRoughnessMapTransform * vec3( CLEARCOAT_ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tvIridescenceMapUv = ( iridescenceMapTransform * vec3( IRIDESCENCEMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tvIridescenceThicknessMapUv = ( iridescenceThicknessMapTransform * vec3( IRIDESCENCE_THICKNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tvSheenColorMapUv = ( sheenColorMapTransform * vec3( SHEEN_COLORMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tvSheenRoughnessMapUv = ( sheenRoughnessMapTransform * vec3( SHEEN_ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULARMAP\n\tvSpecularMapUv = ( specularMapTransform * vec3( SPECULARMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tvSpecularColorMapUv = ( specularColorMapTransform * vec3( SPECULAR_COLORMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tvSpecularIntensityMapUv = ( specularIntensityMapTransform * vec3( SPECULAR_INTENSITYMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tvTransmissionMapUv = ( transmissionMapTransform * vec3( TRANSMISSIONMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_THICKNESSMAP\n\tvThicknessMapUv = ( thicknessMapTransform * vec3( THICKNESSMAP_UV, 1 ) ).xy;\n#endif",worldpos_vertex:"#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION ) || NUM_SPOT_LIGHT_COORDS > 0\n\tvec4 worldPosition = vec4( transformed, 1.0 );\n\t#ifdef USE_BATCHING\n\t\tworldPosition = batchingMatrix * worldPosition;\n\t#endif\n\t#ifdef USE_INSTANCING\n\t\tworldPosition = instanceMatrix * worldPosition;\n\t#endif\n\tworldPosition = modelMatrix * worldPosition;\n#endif",background_vert:"varying vec2 vUv;\nuniform mat3 uvTransform;\nvoid main() {\n\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n\tgl_Position = vec4( position.xy, 1.0, 1.0 );\n}",background_frag:"uniform sampler2D t2D;\nuniform float backgroundIntensity;\nvarying vec2 vUv;\nvoid main() {\n\tvec4 texColor = texture2D( t2D, vUv );\n\t#ifdef DECODE_VIDEO_TEXTURE\n\t\ttexColor = vec4( mix( pow( texColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), texColor.rgb * 0.0773993808, vec3( lessThanEqual( texColor.rgb, vec3( 0.04045 ) ) ) ), texColor.w );\n\t#endif\n\ttexColor.rgb *= backgroundIntensity;\n\tgl_FragColor = texColor;\n\t#include \n\t#include \n}",backgroundCube_vert:"varying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n\tgl_Position.z = gl_Position.w;\n}",backgroundCube_frag:"#ifdef ENVMAP_TYPE_CUBE\n\tuniform samplerCube envMap;\n#elif defined( ENVMAP_TYPE_CUBE_UV )\n\tuniform sampler2D envMap;\n#endif\nuniform float flipEnvMap;\nuniform float backgroundBlurriness;\nuniform float backgroundIntensity;\nuniform mat3 backgroundRotation;\nvarying vec3 vWorldDirection;\n#include \nvoid main() {\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tvec4 texColor = textureCube( envMap, backgroundRotation * vec3( flipEnvMap * vWorldDirection.x, vWorldDirection.yz ) );\n\t#elif defined( ENVMAP_TYPE_CUBE_UV )\n\t\tvec4 texColor = textureCubeUV( envMap, backgroundRotation * vWorldDirection, backgroundBlurriness );\n\t#else\n\t\tvec4 texColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\t#endif\n\ttexColor.rgb *= backgroundIntensity;\n\tgl_FragColor = texColor;\n\t#include \n\t#include \n}",cube_vert:"varying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n\tgl_Position.z = gl_Position.w;\n}",cube_frag:"uniform samplerCube tCube;\nuniform float tFlip;\nuniform float opacity;\nvarying vec3 vWorldDirection;\nvoid main() {\n\tvec4 texColor = textureCube( tCube, vec3( tFlip * vWorldDirection.x, vWorldDirection.yz ) );\n\tgl_FragColor = texColor;\n\tgl_FragColor.a *= opacity;\n\t#include \n\t#include \n}",depth_vert:"#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvHighPrecisionZW = gl_Position.zw;\n}",depth_frag:"#if DEPTH_PACKING == 3200\n\tuniform float opacity;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\tvec4 diffuseColor = vec4( 1.0 );\n\t#include \n\t#if DEPTH_PACKING == 3200\n\t\tdiffuseColor.a = opacity;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tfloat fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;\n\t#if DEPTH_PACKING == 3200\n\t\tgl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );\n\t#elif DEPTH_PACKING == 3201\n\t\tgl_FragColor = packDepthToRGBA( fragCoordZ );\n\t#endif\n}",distanceRGBA_vert:"#define DISTANCE\nvarying vec3 vWorldPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvWorldPosition = worldPosition.xyz;\n}",distanceRGBA_frag:"#define DISTANCE\nuniform vec3 referencePosition;\nuniform float nearDistance;\nuniform float farDistance;\nvarying vec3 vWorldPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main () {\n\tvec4 diffuseColor = vec4( 1.0 );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tfloat dist = length( vWorldPosition - referencePosition );\n\tdist = ( dist - nearDistance ) / ( farDistance - nearDistance );\n\tdist = saturate( dist );\n\tgl_FragColor = packDepthToRGBA( dist );\n}",equirect_vert:"varying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n}",equirect_frag:"uniform sampler2D tEquirect;\nvarying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvec3 direction = normalize( vWorldDirection );\n\tvec2 sampleUV = equirectUv( direction );\n\tgl_FragColor = texture2D( tEquirect, sampleUV );\n\t#include \n\t#include \n}",linedashed_vert:"uniform float scale;\nattribute float lineDistance;\nvarying float vLineDistance;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\tvLineDistance = scale * lineDistance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",linedashed_frag:"uniform vec3 diffuse;\nuniform float opacity;\nuniform float dashSize;\nuniform float totalSize;\nvarying float vLineDistance;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\tif ( mod( vLineDistance, totalSize ) > dashSize ) {\n\t\tdiscard;\n\t}\n\tvec3 outgoingLight = vec3( 0.0 );\n\t#include \n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshbasic_vert:"#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#if defined ( USE_ENVMAP ) || defined ( USE_SKINNING )\n\t\t#include \n\t\t#include \n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshbasic_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n\t\treflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity * RECIPROCAL_PI;\n\t#else\n\t\treflectedLight.indirectDiffuse += vec3( 1.0 );\n\t#endif\n\t#include \n\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\n\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshlambert_vert:"#define LAMBERT\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n\t#include \n}",meshlambert_frag:"#define LAMBERT\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshmatcap_vert:"#define MATCAP\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n}",meshmatcap_frag:"#define MATCAP\nuniform vec3 diffuse;\nuniform float opacity;\nuniform sampler2D matcap;\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 viewDir = normalize( vViewPosition );\n\tvec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) );\n\tvec3 y = cross( viewDir, x );\n\tvec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5;\n\t#ifdef USE_MATCAP\n\t\tvec4 matcapColor = texture2D( matcap, uv );\n\t#else\n\t\tvec4 matcapColor = vec4( vec3( mix( 0.2, 0.8, uv.y ) ), 1.0 );\n\t#endif\n\tvec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshnormal_vert:"#define NORMAL\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\n\tvarying vec3 vViewPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\n\tvViewPosition = - mvPosition.xyz;\n#endif\n}",meshnormal_frag:"#define NORMAL\nuniform float opacity;\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\n\tvarying vec3 vViewPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\tvec4 diffuseColor = vec4( 0.0, 0.0, 0.0, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\tgl_FragColor = vec4( packNormalToRGB( normal ), diffuseColor.a );\n\t#ifdef OPAQUE\n\t\tgl_FragColor.a = 1.0;\n\t#endif\n}",meshphong_vert:"#define PHONG\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n\t#include \n}",meshphong_frag:"#define PHONG\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform vec3 specular;\nuniform float shininess;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshphysical_vert:"#define STANDARD\nvarying vec3 vViewPosition;\n#ifdef USE_TRANSMISSION\n\tvarying vec3 vWorldPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n#ifdef USE_TRANSMISSION\n\tvWorldPosition = worldPosition.xyz;\n#endif\n}",meshphysical_frag:"#define STANDARD\n#ifdef PHYSICAL\n\t#define IOR\n\t#define USE_SPECULAR\n#endif\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float roughness;\nuniform float metalness;\nuniform float opacity;\n#ifdef IOR\n\tuniform float ior;\n#endif\n#ifdef USE_SPECULAR\n\tuniform float specularIntensity;\n\tuniform vec3 specularColor;\n\t#ifdef USE_SPECULAR_COLORMAP\n\t\tuniform sampler2D specularColorMap;\n\t#endif\n\t#ifdef USE_SPECULAR_INTENSITYMAP\n\t\tuniform sampler2D specularIntensityMap;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT\n\tuniform float clearcoat;\n\tuniform float clearcoatRoughness;\n#endif\n#ifdef USE_IRIDESCENCE\n\tuniform float iridescence;\n\tuniform float iridescenceIOR;\n\tuniform float iridescenceThicknessMinimum;\n\tuniform float iridescenceThicknessMaximum;\n#endif\n#ifdef USE_SHEEN\n\tuniform vec3 sheenColor;\n\tuniform float sheenRoughness;\n\t#ifdef USE_SHEEN_COLORMAP\n\t\tuniform sampler2D sheenColorMap;\n\t#endif\n\t#ifdef USE_SHEEN_ROUGHNESSMAP\n\t\tuniform sampler2D sheenRoughnessMap;\n\t#endif\n#endif\n#ifdef USE_ANISOTROPY\n\tuniform vec2 anisotropyVector;\n\t#ifdef USE_ANISOTROPYMAP\n\t\tuniform sampler2D anisotropyMap;\n\t#endif\n#endif\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;\n\tvec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;\n\t#include \n\tvec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;\n\t#ifdef USE_SHEEN\n\t\tfloat sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor );\n\t\toutgoingLight = outgoingLight * sheenEnergyComp + sheenSpecularDirect + sheenSpecularIndirect;\n\t#endif\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNVcc = saturate( dot( geometryClearcoatNormal, geometryViewDir ) );\n\t\tvec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );\n\t\toutgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + ( clearcoatSpecularDirect + clearcoatSpecularIndirect ) * material.clearcoat;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshtoon_vert:"#define TOON\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n}",meshtoon_frag:"#define TOON\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",points_vert:"uniform float size;\nuniform float scale;\n#include \n#include \n#include \n#include \n#include \n#include \n#ifdef USE_POINTS_UV\n\tvarying vec2 vUv;\n\tuniform mat3 uvTransform;\n#endif\nvoid main() {\n\t#ifdef USE_POINTS_UV\n\t\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tgl_PointSize = size;\n\t#ifdef USE_SIZEATTENUATION\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\n\t\tif ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z );\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n}",points_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\tvec3 outgoingLight = vec3( 0.0 );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",shadow_vert:"#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",shadow_frag:"uniform vec3 color;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tgl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) );\n\t#include \n\t#include \n\t#include \n}",sprite_vert:"uniform float rotation;\nuniform vec2 center;\n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );\n\tvec2 scale;\n\tscale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) );\n\tscale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) );\n\t#ifndef USE_SIZEATTENUATION\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\n\t\tif ( isPerspective ) scale *= - mvPosition.z;\n\t#endif\n\tvec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale;\n\tvec2 rotatedPosition;\n\trotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;\n\trotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;\n\tmvPosition.xy += rotatedPosition;\n\tgl_Position = projectionMatrix * mvPosition;\n\t#include \n\t#include \n\t#include \n}",sprite_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\tvec3 outgoingLight = vec3( 0.0 );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n}"},Ms={common:{diffuse:{value:new Cr(16777215)},opacity:{value:1},map:{value:null},mapTransform:{value:new Ta},alphaMap:{value:null},alphaMapTransform:{value:new Ta},alphaTest:{value:0}},specularmap:{specularMap:{value:null},specularMapTransform:{value:new Ta}},envmap:{envMap:{value:null},envMapRotation:{value:new Ta},flipEnvMap:{value:-1},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1},aoMapTransform:{value:new Ta}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1},lightMapTransform:{value:new Ta}},bumpmap:{bumpMap:{value:null},bumpMapTransform:{value:new Ta},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalMapTransform:{value:new Ta},normalScale:{value:new Qi(1,1)}},displacementmap:{displacementMap:{value:null},displacementMapTransform:{value:new Ta},displacementScale:{value:1},displacementBias:{value:0}},emissivemap:{emissiveMap:{value:null},emissiveMapTransform:{value:new Ta}},metalnessmap:{metalnessMap:{value:null},metalnessMapTransform:{value:new Ta}},roughnessmap:{roughnessMap:{value:null},roughnessMapTransform:{value:new Ta}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new Cr(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotLightMap:{value:[]},spotShadowMap:{value:[]},spotLightMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null}},points:{diffuse:{value:new Cr(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaMapTransform:{value:new Ta},alphaTest:{value:0},uvTransform:{value:new Ta}},sprite:{diffuse:{value:new Cr(16777215)},opacity:{value:1},center:{value:new Qi(.5,.5)},rotation:{value:0},map:{value:null},mapTransform:{value:new Ta},alphaMap:{value:null},alphaMapTransform:{value:new Ta},alphaTest:{value:0}}},E0={basic:{uniforms:Rf([Ms.common,Ms.specularmap,Ms.envmap,Ms.aomap,Ms.lightmap,Ms.fog]),vertexShader:xa.meshbasic_vert,fragmentShader:xa.meshbasic_frag},lambert:{uniforms:Rf([Ms.common,Ms.specularmap,Ms.envmap,Ms.aomap,Ms.lightmap,Ms.emissivemap,Ms.bumpmap,Ms.normalmap,Ms.displacementmap,Ms.fog,Ms.lights,{emissive:{value:new Cr(0)}}]),vertexShader:xa.meshlambert_vert,fragmentShader:xa.meshlambert_frag},phong:{uniforms:Rf([Ms.common,Ms.specularmap,Ms.envmap,Ms.aomap,Ms.lightmap,Ms.emissivemap,Ms.bumpmap,Ms.normalmap,Ms.displacementmap,Ms.fog,Ms.lights,{emissive:{value:new Cr(0)},specular:{value:new Cr(1118481)},shininess:{value:30}}]),vertexShader:xa.meshphong_vert,fragmentShader:xa.meshphong_frag},standard:{uniforms:Rf([Ms.common,Ms.envmap,Ms.aomap,Ms.lightmap,Ms.emissivemap,Ms.bumpmap,Ms.normalmap,Ms.displacementmap,Ms.roughnessmap,Ms.metalnessmap,Ms.fog,Ms.lights,{emissive:{value:new Cr(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:xa.meshphysical_vert,fragmentShader:xa.meshphysical_frag},toon:{uniforms:Rf([Ms.common,Ms.aomap,Ms.lightmap,Ms.emissivemap,Ms.bumpmap,Ms.normalmap,Ms.displacementmap,Ms.gradientmap,Ms.fog,Ms.lights,{emissive:{value:new Cr(0)}}]),vertexShader:xa.meshtoon_vert,fragmentShader:xa.meshtoon_frag},matcap:{uniforms:Rf([Ms.common,Ms.bumpmap,Ms.normalmap,Ms.displacementmap,Ms.fog,{matcap:{value:null}}]),vertexShader:xa.meshmatcap_vert,fragmentShader:xa.meshmatcap_frag},points:{uniforms:Rf([Ms.points,Ms.fog]),vertexShader:xa.points_vert,fragmentShader:xa.points_frag},dashed:{uniforms:Rf([Ms.common,Ms.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:xa.linedashed_vert,fragmentShader:xa.linedashed_frag},depth:{uniforms:Rf([Ms.common,Ms.displacementmap]),vertexShader:xa.depth_vert,fragmentShader:xa.depth_frag},normal:{uniforms:Rf([Ms.common,Ms.bumpmap,Ms.normalmap,Ms.displacementmap,{opacity:{value:1}}]),vertexShader:xa.meshnormal_vert,fragmentShader:xa.meshnormal_frag},sprite:{uniforms:Rf([Ms.sprite,Ms.fog]),vertexShader:xa.sprite_vert,fragmentShader:xa.sprite_frag},background:{uniforms:{uvTransform:{value:new Ta},t2D:{value:null},backgroundIntensity:{value:1}},vertexShader:xa.background_vert,fragmentShader:xa.background_frag},backgroundCube:{uniforms:{envMap:{value:null},flipEnvMap:{value:-1},backgroundBlurriness:{value:0},backgroundIntensity:{value:1},backgroundRotation:{value:new Ta}},vertexShader:xa.backgroundCube_vert,fragmentShader:xa.backgroundCube_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:xa.cube_vert,fragmentShader:xa.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:xa.equirect_vert,fragmentShader:xa.equirect_frag},distanceRGBA:{uniforms:Rf([Ms.common,Ms.displacementmap,{referencePosition:{value:new It},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:xa.distanceRGBA_vert,fragmentShader:xa.distanceRGBA_frag},shadow:{uniforms:Rf([Ms.lights,Ms.fog,{color:{value:new Cr(0)},opacity:{value:1}}]),vertexShader:xa.shadow_vert,fragmentShader:xa.shadow_frag}};E0.physical={uniforms:Rf([E0.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatMapTransform:{value:new Ta},clearcoatNormalMap:{value:null},clearcoatNormalMapTransform:{value:new Ta},clearcoatNormalScale:{value:new Qi(1,1)},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatRoughnessMapTransform:{value:new Ta},iridescence:{value:0},iridescenceMap:{value:null},iridescenceMapTransform:{value:new Ta},iridescenceIOR:{value:1.3},iridescenceThicknessMinimum:{value:100},iridescenceThicknessMaximum:{value:400},iridescenceThicknessMap:{value:null},iridescenceThicknessMapTransform:{value:new Ta},sheen:{value:0},sheenColor:{value:new Cr(0)},sheenColorMap:{value:null},sheenColorMapTransform:{value:new Ta},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},sheenRoughnessMapTransform:{value:new Ta},transmission:{value:0},transmissionMap:{value:null},transmissionMapTransform:{value:new Ta},transmissionSamplerSize:{value:new Qi},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},thicknessMapTransform:{value:new Ta},attenuationDistance:{value:0},attenuationColor:{value:new Cr(0)},specularColor:{value:new Cr(1,1,1)},specularColorMap:{value:null},specularColorMapTransform:{value:new Ta},specularIntensity:{value:1},specularIntensityMap:{value:null},specularIntensityMapTransform:{value:new Ta},anisotropyVector:{value:new Qi},anisotropyMap:{value:null},anisotropyMapTransform:{value:new Ta}}]),vertexShader:xa.meshphysical_vert,fragmentShader:xa.meshphysical_frag};const yI={r:0,b:0,g:0},Lb=new S0,wue=new wo;function Cue(n,e,t,i,r,s,o){const l=new Cr(0);let u,f,d=!0===s?0:1,A=null,S=0,R=null;function re(se,le){se.getRGB(yI,fV(n)),i.buffers.color.setClear(yI.r,yI.g,yI.b,le,o)}return{getClearColor:function(){return l},setClearColor:function(se,le=1){l.set(se),d=le,re(l,d)},getClearAlpha:function(){return d},setClearAlpha:function(se){d=se,re(l,d)},render:function G(se,le){let Ee=!1,Ce=!0===le.isScene?le.background:null;Ce&&Ce.isTexture&&(Ce=(le.backgroundBlurriness>0?t:e).get(Ce)),null===Ce?re(l,d):Ce&&Ce.isColor&&(re(Ce,1),Ee=!0);const We=n.xr.getEnvironmentBlendMode();"additive"===We?i.buffers.color.setClear(0,0,0,1,o):"alpha-blend"===We&&i.buffers.color.setClear(0,0,0,0,o),(n.autoClear||Ee)&&n.clear(n.autoClearColor,n.autoClearDepth,n.autoClearStencil),Ce&&(Ce.isCubeTexture||Ce.mapping===US)?(void 0===f&&(f=new ua(new yp(1,1,1),new Du({name:"BackgroundCubeMaterial",uniforms:H2(E0.backgroundCube.uniforms),vertexShader:E0.backgroundCube.vertexShader,fragmentShader:E0.backgroundCube.fragmentShader,side:1,depthTest:!1,depthWrite:!1,fog:!1})),f.geometry.deleteAttribute("normal"),f.geometry.deleteAttribute("uv"),f.onBeforeRender=function(Mt,yt,Et){this.matrixWorld.copyPosition(Et.matrixWorld)},Object.defineProperty(f.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),r.update(f)),Lb.copy(le.backgroundRotation),Lb.x*=-1,Lb.y*=-1,Lb.z*=-1,Ce.isCubeTexture&&!1===Ce.isRenderTargetTexture&&(Lb.y*=-1,Lb.z*=-1),f.material.uniforms.envMap.value=Ce,f.material.uniforms.flipEnvMap.value=Ce.isCubeTexture&&!1===Ce.isRenderTargetTexture?-1:1,f.material.uniforms.backgroundBlurriness.value=le.backgroundBlurriness,f.material.uniforms.backgroundIntensity.value=le.backgroundIntensity,f.material.uniforms.backgroundRotation.value.setFromMatrix4(wue.makeRotationFromEuler(Lb)),f.material.toneMapped=Ol.getTransfer(Ce.colorSpace)!==Vc,(A!==Ce||S!==Ce.version||R!==n.toneMapping)&&(f.material.needsUpdate=!0,A=Ce,S=Ce.version,R=n.toneMapping),f.layers.enableAll(),se.unshift(f,f.geometry,f.material,0,0,null)):Ce&&Ce.isTexture&&(void 0===u&&(u=new ua(new q2(2,2),new Du({name:"BackgroundMaterial",uniforms:H2(E0.background.uniforms),vertexShader:E0.background.vertexShader,fragmentShader:E0.background.fragmentShader,side:0,depthTest:!1,depthWrite:!1,fog:!1})),u.geometry.deleteAttribute("normal"),Object.defineProperty(u.material,"map",{get:function(){return this.uniforms.t2D.value}}),r.update(u)),u.material.uniforms.t2D.value=Ce,u.material.uniforms.backgroundIntensity.value=le.backgroundIntensity,u.material.toneMapped=Ol.getTransfer(Ce.colorSpace)!==Vc,!0===Ce.matrixAutoUpdate&&Ce.updateMatrix(),u.material.uniforms.uvTransform.value.copy(Ce.matrix),(A!==Ce||S!==Ce.version||R!==n.toneMapping)&&(u.material.needsUpdate=!0,A=Ce,S=Ce.version,R=n.toneMapping),u.layers.enableAll(),se.unshift(u,u.geometry,u.material,0,0,null))}}}function Mue(n,e,t,i){const r=n.getParameter(n.MAX_VERTEX_ATTRIBS),s=i.isWebGL2?null:e.get("OES_vertex_array_object"),o=i.isWebGL2||null!==s,l={},d=se(null);let u=d,f=!1;function R(En){return i.isWebGL2?n.bindVertexArray(En):s.bindVertexArrayOES(En)}function G(En){return i.isWebGL2?n.deleteVertexArray(En):s.deleteVertexArrayOES(En)}function se(En){const wi=[],zn=[],oi=[];for(let hi=0;hi=0){const fi=hi[ns];let Rr=vi[ns];if(void 0===Rr&&("instanceMatrix"===ns&&En.instanceMatrix&&(Rr=En.instanceMatrix),"instanceColor"===ns&&En.instanceColor&&(Rr=En.instanceColor)),void 0===fi||fi.attribute!==Rr||Rr&&fi.data!==Rr.data)return!0;mr++}return u.attributesNum!==mr||u.index!==oi}(En,oi,zn,hi),vi&&function Ee(En,wi,zn,oi){const hi={},vi=wi.attributes;let mr=0;const Mr=zn.getAttributes();for(const ns in Mr)if(Mr[ns].location>=0){let fi=vi[ns];void 0===fi&&("instanceMatrix"===ns&&En.instanceMatrix&&(fi=En.instanceMatrix),"instanceColor"===ns&&En.instanceColor&&(fi=En.instanceColor));const Rr={};Rr.attribute=fi,fi&&fi.data&&(Rr.data=fi.data),hi[ns]=Rr,mr++}u.attributes=hi,u.attributesNum=mr,u.index=oi}(En,oi,zn,hi)}else{const mr=!0===wi.wireframe;(u.geometry!==oi.id||u.program!==zn.id||u.wireframe!==mr)&&(u.geometry=oi.id,u.program=zn.id,u.wireframe=mr,vi=!0)}null!==hi&&t.update(hi,n.ELEMENT_ARRAY_BUFFER),(vi||f)&&(f=!1,function Xt(En,wi,zn,oi){if(!1===i.isWebGL2&&(En.isInstancedMesh||oi.isInstancedBufferGeometry)&&null===e.get("ANGLE_instanced_arrays"))return;Ce();const hi=oi.attributes,vi=zn.getAttributes(),mr=wi.defaultAttributeValues;for(const Mr in vi){const ns=vi[Mr];if(ns.location>=0){let $s=hi[Mr];if(void 0===$s&&("instanceMatrix"===Mr&&En.instanceMatrix&&($s=En.instanceMatrix),"instanceColor"===Mr&&En.instanceColor&&($s=En.instanceColor)),void 0!==$s){const fi=$s.normalized,Rr=$s.itemSize,ms=t.get($s);if(void 0===ms)continue;const Fs=ms.buffer,Us=ms.type,ws=ms.bytesPerElement,Co=!0===i.isWebGL2&&(Us===n.INT||Us===n.UNSIGNED_INT||1013===$s.gpuType);if($s.isInterleavedBufferAttribute){const lo=$s.data,On=lo.stride,ps=$s.offset;if(lo.isInstancedInterleavedBuffer){for(let gr=0;gr0&&n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.HIGH_FLOAT).precision>0)return"highp";Et="mediump"}return"mediump"===Et&&n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.MEDIUM_FLOAT).precision>0&&n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.MEDIUM_FLOAT).precision>0?"mediump":"lowp"}const o=typeof WebGL2RenderingContext<"u"&&"WebGL2RenderingContext"===n.constructor.name;let l=void 0!==t.precision?t.precision:"highp";const d=s(l);d!==l&&(console.warn("THREE.WebGLRenderer:",l,"not supported, using",d,"instead."),l=d);const u=o||e.has("WEBGL_draw_buffers"),f=!0===t.logarithmicDepthBuffer,A=n.getParameter(n.MAX_TEXTURE_IMAGE_UNITS),S=n.getParameter(n.MAX_VERTEX_TEXTURE_IMAGE_UNITS),R=n.getParameter(n.MAX_TEXTURE_SIZE),G=n.getParameter(n.MAX_CUBE_MAP_TEXTURE_SIZE),re=n.getParameter(n.MAX_VERTEX_ATTRIBS),se=n.getParameter(n.MAX_VERTEX_UNIFORM_VECTORS),le=n.getParameter(n.MAX_VARYING_VECTORS),Ee=n.getParameter(n.MAX_FRAGMENT_UNIFORM_VECTORS),Ce=S>0,We=o||e.has("OES_texture_float");return{isWebGL2:o,drawBuffers:u,getMaxAnisotropy:function r(){if(void 0!==i)return i;if(!0===e.has("EXT_texture_filter_anisotropic")){const Et=e.get("EXT_texture_filter_anisotropic");i=n.getParameter(Et.MAX_TEXTURE_MAX_ANISOTROPY_EXT)}else i=0;return i},getMaxPrecision:s,precision:l,logarithmicDepthBuffer:f,maxTextures:A,maxVertexTextures:S,maxTextureSize:R,maxCubemapSize:G,maxAttributes:re,maxVertexUniforms:se,maxVaryings:le,maxFragmentUniforms:Ee,vertexTextures:Ce,floatFragmentTextures:We,floatVertexTextures:Ce&&We,maxSamples:o?n.getParameter(n.MAX_SAMPLES):0}}function Tue(n){const e=this;let t=null,i=0,r=!1,s=!1;const o=new dA,l=new Ta,d={value:null,needsUpdate:!1};function f(A,S,R,G){const re=null!==A?A.length:0;let se=null;if(0!==re){if(se=d.value,!0!==G||null===se){const le=R+4*re,Ee=S.matrixWorldInverse;l.getNormalMatrix(Ee),(null===se||se.length0),e.numPlanes=i,e.numIntersection=0}();else{const Ee=s?0:i,Ce=4*Ee;let We=le.clippingState||null;d.value=We,We=f(G,S,Ce,R);for(let Mt=0;Mt!==Ce;++Mt)We[Mt]=t[Mt];le.clippingState=We,this.numIntersection=re?this.numPlanes:0,this.numPlanes+=Ee}}}function Due(n){let e=new WeakMap;function t(o,l){return 303===l?o.mapping=Py:304===l&&(o.mapping=Sb),o}function r(o){const l=o.target;l.removeEventListener("dispose",r);const d=e.get(l);void 0!==d&&(e.delete(l),d.dispose())}return{get:function i(o){if(o&&o.isTexture){const l=o.mapping;if(303===l||304===l){if(e.has(o))return t(e.get(o).texture,o.mapping);{const d=o.image;if(d&&d.height>0){const u=new yce(d.height);return u.fromEquirectangularTexture(n,o),e.set(o,u),o.addEventListener("dispose",r),t(u.texture,o.mapping)}return null}}}return o},dispose:function s(){e=new WeakMap}}}class Q2 extends w5{constructor(e=-1,t=1,i=1,r=-1,s=.1,o=2e3){super(),this.isOrthographicCamera=!0,this.type="OrthographicCamera",this.zoom=1,this.view=null,this.left=e,this.right=t,this.top=i,this.bottom=r,this.near=s,this.far=o,this.updateProjectionMatrix()}copy(e,t){return super.copy(e,t),this.left=e.left,this.right=e.right,this.top=e.top,this.bottom=e.bottom,this.near=e.near,this.far=e.far,this.zoom=e.zoom,this.view=null===e.view?null:Object.assign({},e.view),this}setViewOffset(e,t,i,r,s,o){null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=e,this.view.fullHeight=t,this.view.offsetX=i,this.view.offsetY=r,this.view.width=s,this.view.height=o,this.updateProjectionMatrix()}clearViewOffset(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const e=(this.right-this.left)/(2*this.zoom),t=(this.top-this.bottom)/(2*this.zoom),i=(this.right+this.left)/2,r=(this.top+this.bottom)/2;let s=i-e,o=i+e,l=r+t,d=r-t;if(null!==this.view&&this.view.enabled){const u=(this.right-this.left)/this.view.fullWidth/this.zoom,f=(this.top-this.bottom)/this.view.fullHeight/this.zoom;s+=u*this.view.offsetX,o=s+u*this.view.width,l-=f*this.view.offsetY,d=l-f*this.view.height}this.projectionMatrix.makeOrthographic(s,o,l,d,this.near,this.far,this.coordinateSystem),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(e){const t=super.toJSON(e);return t.object.zoom=this.zoom,t.object.left=this.left,t.object.right=this.right,t.object.top=this.top,t.object.bottom=this.bottom,t.object.near=this.near,t.object.far=this.far,null!==this.view&&(t.object.view=Object.assign({},this.view)),t}}const gV=[.125,.215,.35,.446,.526,.582],M5=new Q2,_V=new Cr;let S5=null,E5=0,T5=0;const Ub=(1+Math.sqrt(5))/2,j2=1/Ub,yV=[new It(1,1,1),new It(-1,1,1),new It(1,1,-1),new It(-1,1,-1),new It(0,Ub,j2),new It(0,Ub,-j2),new It(j2,0,Ub),new It(-j2,0,Ub),new It(Ub,j2,0),new It(-Ub,j2,0)];class vV{constructor(e){this._renderer=e,this._pingPongRenderTarget=null,this._lodMax=0,this._cubeSize=0,this._lodPlanes=[],this._sizeLods=[],this._sigmas=[],this._blurMaterial=null,this._cubemapMaterial=null,this._equirectMaterial=null,this._compileMaterial(this._blurMaterial)}fromScene(e,t=0,i=.1,r=100){S5=this._renderer.getRenderTarget(),E5=this._renderer.getActiveCubeFace(),T5=this._renderer.getActiveMipmapLevel(),this._setSize(256);const s=this._allocateTargets();return s.depthBuffer=!0,this._sceneToCubeUV(e,i,r,s),t>0&&this._blur(s,0,0,t),this._applyPMREM(s),this._cleanup(s),s}fromEquirectangular(e,t=null){return this._fromTexture(e,t)}fromCubemap(e,t=null){return this._fromTexture(e,t)}compileCubemapShader(){null===this._cubemapMaterial&&(this._cubemapMaterial=wV(),this._compileMaterial(this._cubemapMaterial))}compileEquirectangularShader(){null===this._equirectMaterial&&(this._equirectMaterial=xV(),this._compileMaterial(this._equirectMaterial))}dispose(){this._dispose(),null!==this._cubemapMaterial&&this._cubemapMaterial.dispose(),null!==this._equirectMaterial&&this._equirectMaterial.dispose()}_setSize(e){this._lodMax=Math.floor(Math.log2(e)),this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){null!==this._blurMaterial&&this._blurMaterial.dispose(),null!==this._pingPongRenderTarget&&this._pingPongRenderTarget.dispose();for(let e=0;en-4?d=gV[o-n+4-1]:0===o&&(d=0),i.push(d);const u=1/(l-2),f=-u,A=1+u,S=[f,f,A,f,A,A,f,f,A,A,f,A],R=6,G=6,re=3,se=2,le=1,Ee=new Float32Array(re*G*R),Ce=new Float32Array(se*G*R),We=new Float32Array(le*G*R);for(let yt=0;yt2?0:-1;Ee.set([Et,Xt,0,Et+2/3,Xt,0,Et+2/3,Xt+1,0,Et,Xt,0,Et+2/3,Xt+1,0,Et,Xt+1,0],re*G*yt),Ce.set(S,se*G*yt),We.set([yt,yt,yt,yt,yt,yt],le*G*yt)}const Mt=new no;Mt.setAttribute("position",new No(Ee,re)),Mt.setAttribute("uv",new No(Ce,se)),Mt.setAttribute("faceIndex",new No(We,le)),e.push(Mt),r>4&&r--}return{lodPlanes:e,sizeLods:t,sigmas:i}}(s)),this._blurMaterial=function Bue(n,e,t){const i=new Float32Array(20),r=new It(0,1,0);return new Du({name:"SphericalGaussianBlur",defines:{n:20,CUBEUV_TEXEL_WIDTH:1/e,CUBEUV_TEXEL_HEIGHT:1/t,CUBEUV_MAX_MIP:`${n}.0`},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:i},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:r}},vertexShader:"\n\n\t\tprecision mediump float;\n\t\tprecision mediump int;\n\n\t\tattribute float faceIndex;\n\n\t\tvarying vec3 vOutputDirection;\n\n\t\t// RH coordinate system; PMREM face-indexing convention\n\t\tvec3 getDirection( vec2 uv, float face ) {\n\n\t\t\tuv = 2.0 * uv - 1.0;\n\n\t\t\tvec3 direction = vec3( uv, 1.0 );\n\n\t\t\tif ( face == 0.0 ) {\n\n\t\t\t\tdirection = direction.zyx; // ( 1, v, u ) pos x\n\n\t\t\t} else if ( face == 1.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xz *= -1.0; // ( -u, 1, -v ) pos y\n\n\t\t\t} else if ( face == 2.0 ) {\n\n\t\t\t\tdirection.x *= -1.0; // ( -u, v, 1 ) pos z\n\n\t\t\t} else if ( face == 3.0 ) {\n\n\t\t\t\tdirection = direction.zyx;\n\t\t\t\tdirection.xz *= -1.0; // ( -1, v, -u ) neg x\n\n\t\t\t} else if ( face == 4.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xy *= -1.0; // ( -u, -1, v ) neg y\n\n\t\t\t} else if ( face == 5.0 ) {\n\n\t\t\t\tdirection.z *= -1.0; // ( u, v, -1 ) neg z\n\n\t\t\t}\n\n\t\t\treturn direction;\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\tvOutputDirection = getDirection( uv, faceIndex );\n\t\t\tgl_Position = vec4( position, 1.0 );\n\n\t\t}\n\t",fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\t\t\tuniform int samples;\n\t\t\tuniform float weights[ n ];\n\t\t\tuniform bool latitudinal;\n\t\t\tuniform float dTheta;\n\t\t\tuniform float mipInt;\n\t\t\tuniform vec3 poleAxis;\n\n\t\t\t#define ENVMAP_TYPE_CUBE_UV\n\t\t\t#include \n\n\t\t\tvec3 getSample( float theta, vec3 axis ) {\n\n\t\t\t\tfloat cosTheta = cos( theta );\n\t\t\t\t// Rodrigues' axis-angle rotation\n\t\t\t\tvec3 sampleDirection = vOutputDirection * cosTheta\n\t\t\t\t\t+ cross( axis, vOutputDirection ) * sin( theta )\n\t\t\t\t\t+ axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta );\n\n\t\t\t\treturn bilinearCubeUV( envMap, sampleDirection, mipInt );\n\n\t\t\t}\n\n\t\t\tvoid main() {\n\n\t\t\t\tvec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection );\n\n\t\t\t\tif ( all( equal( axis, vec3( 0.0 ) ) ) ) {\n\n\t\t\t\t\taxis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x );\n\n\t\t\t\t}\n\n\t\t\t\taxis = normalize( axis );\n\n\t\t\t\tgl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\t\t\t\tgl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis );\n\n\t\t\t\tfor ( int i = 1; i < n; i++ ) {\n\n\t\t\t\t\tif ( i >= samples ) {\n\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tfloat theta = dTheta * float( i );\n\t\t\t\t\tgl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis );\n\t\t\t\t\tgl_FragColor.rgb += weights[ i ] * getSample( theta, axis );\n\n\t\t\t\t}\n\n\t\t\t}\n\t\t",blending:0,depthTest:!1,depthWrite:!1})}(s,e,t)}return r}_compileMaterial(e){const t=new ua(this._lodPlanes[0],e);this._renderer.compile(t,M5)}_sceneToCubeUV(e,t,i,r){const l=new Iu(90,1,t,i),d=[1,-1,1,1,1,1],u=[1,1,1,-1,-1,-1],f=this._renderer,A=f.autoClear,S=f.toneMapping;f.getClearColor(_V),f.toneMapping=By,f.autoClear=!1;const R=new xd({name:"PMREM.Background",side:1,depthWrite:!1,depthTest:!1}),G=new ua(new yp,R);let re=!1;const se=e.background;se?se.isColor&&(R.color.copy(se),e.background=null,re=!0):(R.color.copy(_V),re=!0);for(let le=0;le<6;le++){const Ee=le%3;0===Ee?(l.up.set(0,d[le],0),l.lookAt(u[le],0,0)):1===Ee?(l.up.set(0,0,d[le]),l.lookAt(0,u[le],0)):(l.up.set(0,d[le],0),l.lookAt(0,0,u[le]));const Ce=this._cubeSize;vI(r,Ee*Ce,le>2?Ce:0,Ce,Ce),f.setRenderTarget(r),re&&f.render(G,l),f.render(e,l)}G.geometry.dispose(),G.material.dispose(),f.toneMapping=S,f.autoClear=A,e.background=se}_textureToCubeUV(e,t){const i=this._renderer,r=e.mapping===Py||e.mapping===Sb;r?(null===this._cubemapMaterial&&(this._cubemapMaterial=wV()),this._cubemapMaterial.uniforms.flipEnvMap.value=!1===e.isRenderTargetTexture?-1:1):null===this._equirectMaterial&&(this._equirectMaterial=xV());const s=r?this._cubemapMaterial:this._equirectMaterial,o=new ua(this._lodPlanes[0],s);s.uniforms.envMap.value=e;const d=this._cubeSize;vI(t,0,0,3*d,2*d),i.setRenderTarget(t),i.render(o,M5)}_applyPMREM(e){const t=this._renderer,i=t.autoClear;t.autoClear=!1;for(let r=1;r20&&console.warn(`sigmaRadians, ${s}, is too large and will clip, as it requested ${se} samples when the maximum is set to 20`);const le=[];let Ee=0;for(let Et=0;Et<20;++Et){const Xt=Et/re,Un=Math.exp(-Xt*Xt/2);le.push(Un),0===Et?Ee+=Un:EtCe-4?r-Ce+4:0),4*(this._cubeSize-We),3*We,2*We),d.setRenderTarget(t),d.render(A,M5)}}function bV(n,e,t){const i=new Wu(n,e,t);return i.texture.mapping=US,i.texture.name="PMREM.cubeUv",i.scissorTest=!0,i}function vI(n,e,t,i,r){n.viewport.set(e,t,i,r),n.scissor.set(e,t,i,r)}function xV(){return new Du({name:"EquirectangularToCubeUV",uniforms:{envMap:{value:null}},vertexShader:"\n\n\t\tprecision mediump float;\n\t\tprecision mediump int;\n\n\t\tattribute float faceIndex;\n\n\t\tvarying vec3 vOutputDirection;\n\n\t\t// RH coordinate system; PMREM face-indexing convention\n\t\tvec3 getDirection( vec2 uv, float face ) {\n\n\t\t\tuv = 2.0 * uv - 1.0;\n\n\t\t\tvec3 direction = vec3( uv, 1.0 );\n\n\t\t\tif ( face == 0.0 ) {\n\n\t\t\t\tdirection = direction.zyx; // ( 1, v, u ) pos x\n\n\t\t\t} else if ( face == 1.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xz *= -1.0; // ( -u, 1, -v ) pos y\n\n\t\t\t} else if ( face == 2.0 ) {\n\n\t\t\t\tdirection.x *= -1.0; // ( -u, v, 1 ) pos z\n\n\t\t\t} else if ( face == 3.0 ) {\n\n\t\t\t\tdirection = direction.zyx;\n\t\t\t\tdirection.xz *= -1.0; // ( -1, v, -u ) neg x\n\n\t\t\t} else if ( face == 4.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xy *= -1.0; // ( -u, -1, v ) neg y\n\n\t\t\t} else if ( face == 5.0 ) {\n\n\t\t\t\tdirection.z *= -1.0; // ( u, v, -1 ) neg z\n\n\t\t\t}\n\n\t\t\treturn direction;\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\tvOutputDirection = getDirection( uv, faceIndex );\n\t\t\tgl_Position = vec4( position, 1.0 );\n\n\t\t}\n\t",fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\n\t\t\t#include \n\n\t\t\tvoid main() {\n\n\t\t\t\tvec3 outputDirection = normalize( vOutputDirection );\n\t\t\t\tvec2 uv = equirectUv( outputDirection );\n\n\t\t\t\tgl_FragColor = vec4( texture2D ( envMap, uv ).rgb, 1.0 );\n\n\t\t\t}\n\t\t",blending:0,depthTest:!1,depthWrite:!1})}function wV(){return new Du({name:"CubemapToCubeUV",uniforms:{envMap:{value:null},flipEnvMap:{value:-1}},vertexShader:"\n\n\t\tprecision mediump float;\n\t\tprecision mediump int;\n\n\t\tattribute float faceIndex;\n\n\t\tvarying vec3 vOutputDirection;\n\n\t\t// RH coordinate system; PMREM face-indexing convention\n\t\tvec3 getDirection( vec2 uv, float face ) {\n\n\t\t\tuv = 2.0 * uv - 1.0;\n\n\t\t\tvec3 direction = vec3( uv, 1.0 );\n\n\t\t\tif ( face == 0.0 ) {\n\n\t\t\t\tdirection = direction.zyx; // ( 1, v, u ) pos x\n\n\t\t\t} else if ( face == 1.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xz *= -1.0; // ( -u, 1, -v ) pos y\n\n\t\t\t} else if ( face == 2.0 ) {\n\n\t\t\t\tdirection.x *= -1.0; // ( -u, v, 1 ) pos z\n\n\t\t\t} else if ( face == 3.0 ) {\n\n\t\t\t\tdirection = direction.zyx;\n\t\t\t\tdirection.xz *= -1.0; // ( -1, v, -u ) neg x\n\n\t\t\t} else if ( face == 4.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xy *= -1.0; // ( -u, -1, v ) neg y\n\n\t\t\t} else if ( face == 5.0 ) {\n\n\t\t\t\tdirection.z *= -1.0; // ( u, v, -1 ) neg z\n\n\t\t\t}\n\n\t\t\treturn direction;\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\tvOutputDirection = getDirection( uv, faceIndex );\n\t\t\tgl_Position = vec4( position, 1.0 );\n\n\t\t}\n\t",fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tuniform float flipEnvMap;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform samplerCube envMap;\n\n\t\t\tvoid main() {\n\n\t\t\t\tgl_FragColor = textureCube( envMap, vec3( flipEnvMap * vOutputDirection.x, vOutputDirection.yz ) );\n\n\t\t\t}\n\t\t",blending:0,depthTest:!1,depthWrite:!1})}function Pue(n){let e=new WeakMap,t=null;function s(l){const d=l.target;d.removeEventListener("dispose",s);const u=e.get(d);void 0!==u&&(e.delete(d),u.dispose())}return{get:function i(l){if(l&&l.isTexture){const d=l.mapping,u=303===d||304===d,f=d===Py||d===Sb;if(u||f){if(l.isRenderTargetTexture&&!0===l.needsPMREMUpdate){l.needsPMREMUpdate=!1;let A=e.get(l);return null===t&&(t=new vV(n)),A=u?t.fromEquirectangular(l,A):t.fromCubemap(l,A),e.set(l,A),A.texture}if(e.has(l))return e.get(l).texture;{const A=l.image;if(u&&A&&A.height>0||f&&A&&function r(l){let d=0;for(let f=0;f<6;f++)void 0!==l[f]&&d++;return 6===d}(A)){null===t&&(t=new vV(n));const S=u?t.fromEquirectangular(l):t.fromCubemap(l);return e.set(l,S),l.addEventListener("dispose",s),S.texture}return null}}}return l},dispose:function o(){e=new WeakMap,null!==t&&(t.dispose(),t=null)}}}function Rue(n){const e={};function t(i){if(void 0!==e[i])return e[i];let r;switch(i){case"WEBGL_depth_texture":r=n.getExtension("WEBGL_depth_texture")||n.getExtension("MOZ_WEBGL_depth_texture")||n.getExtension("WEBKIT_WEBGL_depth_texture");break;case"EXT_texture_filter_anisotropic":r=n.getExtension("EXT_texture_filter_anisotropic")||n.getExtension("MOZ_EXT_texture_filter_anisotropic")||n.getExtension("WEBKIT_EXT_texture_filter_anisotropic");break;case"WEBGL_compressed_texture_s3tc":r=n.getExtension("WEBGL_compressed_texture_s3tc")||n.getExtension("MOZ_WEBGL_compressed_texture_s3tc")||n.getExtension("WEBKIT_WEBGL_compressed_texture_s3tc");break;case"WEBGL_compressed_texture_pvrtc":r=n.getExtension("WEBGL_compressed_texture_pvrtc")||n.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc");break;default:r=n.getExtension(i)}return e[i]=r,r}return{has:function(i){return null!==t(i)},init:function(i){i.isWebGL2?(t("EXT_color_buffer_float"),t("WEBGL_clip_cull_distance")):(t("WEBGL_depth_texture"),t("OES_texture_float"),t("OES_texture_half_float"),t("OES_texture_half_float_linear"),t("OES_standard_derivatives"),t("OES_element_index_uint"),t("OES_vertex_array_object"),t("ANGLE_instanced_arrays")),t("OES_texture_float_linear"),t("EXT_color_buffer_half_float"),t("WEBGL_multisampled_render_to_texture")},get:function(i){const r=t(i);return null===r&&console.warn("THREE.WebGLRenderer: "+i+" extension not supported."),r}}}function kue(n,e,t,i){const r={},s=new WeakMap;function o(A){const S=A.target;null!==S.index&&e.remove(S.index);for(const G in S.attributes)e.remove(S.attributes[G]);for(const G in S.morphAttributes){const re=S.morphAttributes[G];for(let se=0,le=re.length;see.maxTextureSize&&(Xt=Math.ceil(Et/e.maxTextureSize),Et=e.maxTextureSize);const Un=new Float32Array(Et*Xt*4*G),wt=new s5(Un,Et,Xt,G);wt.type=aA,wt.needsUpdate=!0;const Kt=4*yt;for(let Yi=0;Yi0)return n;const r=e*t;let s=IV[r];if(void 0===s&&(s=new Float32Array(r),IV[r]=s),0!==e){i.toArray(s,0);for(let o=1,l=0;o!==e;++o)l+=t,n[o].toArray(s,l)}return s}function Bu(n,e){if(n.length!==e.length)return!1;for(let t=0,i=n.length;t":" "} ${l}: ${t[o]}`)}return i.join("\n")}(n.getShaderSource(e),o)}return r}function Fhe(n,e){const t=function khe(n){const e=Ol.getPrimaries(Ol.workingColorSpace),t=Ol.getPrimaries(n);let i;switch(e===t?i="":e===$D&&t===jD?i="LinearDisplayP3ToLinearSRGB":e===jD&&t===$D&&(i="LinearSRGBToLinearDisplayP3"),n){case Qu:case QD:return[i,"LinearTransferOETF"];case cu:case Kk:return[i,"sRGBTransferOETF"];default:return console.warn("THREE.WebGLProgram: Unsupported color space:",n),[i,"LinearTransferOETF"]}}(e);return`vec4 ${n}( vec4 value ) { return ${t[0]}( ${t[1]}( value ) ); }`}function Ohe(n,e){let t;switch(e){case cle:t="Linear";break;case dle:t="Reinhard";break;case ule:t="OptimizedCineon";break;case hle:t="ACESFilmic";break;case ple:t="AgX";break;case mle:t="Neutral";break;case fle:t="Custom";break;default:console.warn("THREE.WebGLProgram: Unsupported toneMapping:",e),t="Linear"}return"vec3 "+n+"( vec3 color ) { return "+t+"ToneMapping( color ); }"}function X2(n){return""!==n}function NV(n,e){const t=e.numSpotLightShadows+e.numSpotLightMaps-e.numSpotLightShadowsWithMaps;return n.replace(/NUM_DIR_LIGHTS/g,e.numDirLights).replace(/NUM_SPOT_LIGHTS/g,e.numSpotLights).replace(/NUM_SPOT_LIGHT_MAPS/g,e.numSpotLightMaps).replace(/NUM_SPOT_LIGHT_COORDS/g,t).replace(/NUM_RECT_AREA_LIGHTS/g,e.numRectAreaLights).replace(/NUM_POINT_LIGHTS/g,e.numPointLights).replace(/NUM_HEMI_LIGHTS/g,e.numHemiLights).replace(/NUM_DIR_LIGHT_SHADOWS/g,e.numDirLightShadows).replace(/NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS/g,e.numSpotLightShadowsWithMaps).replace(/NUM_SPOT_LIGHT_SHADOWS/g,e.numSpotLightShadows).replace(/NUM_POINT_LIGHT_SHADOWS/g,e.numPointLightShadows)}function UV(n,e){return n.replace(/NUM_CLIPPING_PLANES/g,e.numClippingPlanes).replace(/UNION_CLIPPING_PLANES/g,e.numClippingPlanes-e.numClipIntersection)}const Hhe=/^[ \t]*#include +<([\w\d./]+)>/gm;function B5(n){return n.replace(Hhe,Ghe)}const Vhe=new Map([["encodings_fragment","colorspace_fragment"],["encodings_pars_fragment","colorspace_pars_fragment"],["output_fragment","opaque_fragment"]]);function Ghe(n,e){let t=xa[e];if(void 0===t){const i=Vhe.get(e);if(void 0===i)throw new Error("Can not resolve #include <"+e+">");t=xa[i],console.warn('THREE.WebGLRenderer: Shader chunk "%s" has been deprecated. Use "%s" instead.',e,i)}return B5(t)}const qhe=/#pragma unroll_loop_start\s+for\s*\(\s*int\s+i\s*=\s*(\d+)\s*;\s*i\s*<\s*(\d+)\s*;\s*i\s*\+\+\s*\)\s*{([\s\S]+?)}\s+#pragma unroll_loop_end/g;function zV(n){return n.replace(qhe,Qhe)}function Qhe(n,e,t,i){let r="";for(let s=parseInt(e);s0&&(le+="\n"),Ee=[R,"#define SHADER_TYPE "+t.shaderType,"#define SHADER_NAME "+t.shaderName,re].filter(X2).join("\n"),Ee.length>0&&(Ee+="\n")):(le=[HV(t),"#define SHADER_TYPE "+t.shaderType,"#define SHADER_NAME "+t.shaderName,re,t.extensionClipCullDistance?"#define USE_CLIP_DISTANCE":"",t.batching?"#define USE_BATCHING":"",t.instancing?"#define USE_INSTANCING":"",t.instancingColor?"#define USE_INSTANCING_COLOR":"",t.instancingMorph?"#define USE_INSTANCING_MORPH":"",t.useFog&&t.fog?"#define USE_FOG":"",t.useFog&&t.fogExp2?"#define FOG_EXP2":"",t.map?"#define USE_MAP":"",t.envMap?"#define USE_ENVMAP":"",t.envMap?"#define "+f:"",t.lightMap?"#define USE_LIGHTMAP":"",t.aoMap?"#define USE_AOMAP":"",t.bumpMap?"#define USE_BUMPMAP":"",t.normalMap?"#define USE_NORMALMAP":"",t.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",t.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",t.displacementMap?"#define USE_DISPLACEMENTMAP":"",t.emissiveMap?"#define USE_EMISSIVEMAP":"",t.anisotropy?"#define USE_ANISOTROPY":"",t.anisotropyMap?"#define USE_ANISOTROPYMAP":"",t.clearcoatMap?"#define USE_CLEARCOATMAP":"",t.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",t.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",t.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",t.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",t.specularMap?"#define USE_SPECULARMAP":"",t.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",t.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",t.roughnessMap?"#define USE_ROUGHNESSMAP":"",t.metalnessMap?"#define USE_METALNESSMAP":"",t.alphaMap?"#define USE_ALPHAMAP":"",t.alphaHash?"#define USE_ALPHAHASH":"",t.transmission?"#define USE_TRANSMISSION":"",t.transmissionMap?"#define USE_TRANSMISSIONMAP":"",t.thicknessMap?"#define USE_THICKNESSMAP":"",t.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",t.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",t.mapUv?"#define MAP_UV "+t.mapUv:"",t.alphaMapUv?"#define ALPHAMAP_UV "+t.alphaMapUv:"",t.lightMapUv?"#define LIGHTMAP_UV "+t.lightMapUv:"",t.aoMapUv?"#define AOMAP_UV "+t.aoMapUv:"",t.emissiveMapUv?"#define EMISSIVEMAP_UV "+t.emissiveMapUv:"",t.bumpMapUv?"#define BUMPMAP_UV "+t.bumpMapUv:"",t.normalMapUv?"#define NORMALMAP_UV "+t.normalMapUv:"",t.displacementMapUv?"#define DISPLACEMENTMAP_UV "+t.displacementMapUv:"",t.metalnessMapUv?"#define METALNESSMAP_UV "+t.metalnessMapUv:"",t.roughnessMapUv?"#define ROUGHNESSMAP_UV "+t.roughnessMapUv:"",t.anisotropyMapUv?"#define ANISOTROPYMAP_UV "+t.anisotropyMapUv:"",t.clearcoatMapUv?"#define CLEARCOATMAP_UV "+t.clearcoatMapUv:"",t.clearcoatNormalMapUv?"#define CLEARCOAT_NORMALMAP_UV "+t.clearcoatNormalMapUv:"",t.clearcoatRoughnessMapUv?"#define CLEARCOAT_ROUGHNESSMAP_UV "+t.clearcoatRoughnessMapUv:"",t.iridescenceMapUv?"#define IRIDESCENCEMAP_UV "+t.iridescenceMapUv:"",t.iridescenceThicknessMapUv?"#define IRIDESCENCE_THICKNESSMAP_UV "+t.iridescenceThicknessMapUv:"",t.sheenColorMapUv?"#define SHEEN_COLORMAP_UV "+t.sheenColorMapUv:"",t.sheenRoughnessMapUv?"#define SHEEN_ROUGHNESSMAP_UV "+t.sheenRoughnessMapUv:"",t.specularMapUv?"#define SPECULARMAP_UV "+t.specularMapUv:"",t.specularColorMapUv?"#define SPECULAR_COLORMAP_UV "+t.specularColorMapUv:"",t.specularIntensityMapUv?"#define SPECULAR_INTENSITYMAP_UV "+t.specularIntensityMapUv:"",t.transmissionMapUv?"#define TRANSMISSIONMAP_UV "+t.transmissionMapUv:"",t.thicknessMapUv?"#define THICKNESSMAP_UV "+t.thicknessMapUv:"",t.vertexTangents&&!1===t.flatShading?"#define USE_TANGENT":"",t.vertexColors?"#define USE_COLOR":"",t.vertexAlphas?"#define USE_COLOR_ALPHA":"",t.vertexUv1s?"#define USE_UV1":"",t.vertexUv2s?"#define USE_UV2":"",t.vertexUv3s?"#define USE_UV3":"",t.pointsUvs?"#define USE_POINTS_UV":"",t.flatShading?"#define FLAT_SHADED":"",t.skinning?"#define USE_SKINNING":"",t.morphTargets?"#define USE_MORPHTARGETS":"",t.morphNormals&&!1===t.flatShading?"#define USE_MORPHNORMALS":"",t.morphColors&&t.isWebGL2?"#define USE_MORPHCOLORS":"",t.morphTargetsCount>0&&t.isWebGL2?"#define MORPHTARGETS_TEXTURE":"",t.morphTargetsCount>0&&t.isWebGL2?"#define MORPHTARGETS_TEXTURE_STRIDE "+t.morphTextureStride:"",t.morphTargetsCount>0&&t.isWebGL2?"#define MORPHTARGETS_COUNT "+t.morphTargetsCount:"",t.doubleSided?"#define DOUBLE_SIDED":"",t.flipSided?"#define FLIP_SIDED":"",t.shadowMapEnabled?"#define USE_SHADOWMAP":"",t.shadowMapEnabled?"#define "+d:"",t.sizeAttenuation?"#define USE_SIZEATTENUATION":"",t.numLightProbes>0?"#define USE_LIGHT_PROBES":"",t.useLegacyLights?"#define LEGACY_LIGHTS":"",t.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",t.logarithmicDepthBuffer&&t.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 modelMatrix;","uniform mat4 modelViewMatrix;","uniform mat4 projectionMatrix;","uniform mat4 viewMatrix;","uniform mat3 normalMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;","#ifdef USE_INSTANCING","\tattribute mat4 instanceMatrix;","#endif","#ifdef USE_INSTANCING_COLOR","\tattribute vec3 instanceColor;","#endif","#ifdef USE_INSTANCING_MORPH","\tuniform sampler2D morphTexture;","#endif","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_UV1","\tattribute vec2 uv1;","#endif","#ifdef USE_UV2","\tattribute vec2 uv2;","#endif","#ifdef USE_UV3","\tattribute vec2 uv3;","#endif","#ifdef USE_TANGENT","\tattribute vec4 tangent;","#endif","#if defined( USE_COLOR_ALPHA )","\tattribute vec4 color;","#elif defined( USE_COLOR )","\tattribute vec3 color;","#endif","#if ( defined( USE_MORPHTARGETS ) && ! defined( MORPHTARGETS_TEXTURE ) )","\tattribute vec3 morphTarget0;","\tattribute vec3 morphTarget1;","\tattribute vec3 morphTarget2;","\tattribute vec3 morphTarget3;","\t#ifdef USE_MORPHNORMALS","\t\tattribute vec3 morphNormal0;","\t\tattribute vec3 morphNormal1;","\t\tattribute vec3 morphNormal2;","\t\tattribute vec3 morphNormal3;","\t#else","\t\tattribute vec3 morphTarget4;","\t\tattribute vec3 morphTarget5;","\t\tattribute vec3 morphTarget6;","\t\tattribute vec3 morphTarget7;","\t#endif","#endif","#ifdef USE_SKINNING","\tattribute vec4 skinIndex;","\tattribute vec4 skinWeight;","#endif","\n"].filter(X2).join("\n"),Ee=[R,HV(t),"#define SHADER_TYPE "+t.shaderType,"#define SHADER_NAME "+t.shaderName,re,t.useFog&&t.fog?"#define USE_FOG":"",t.useFog&&t.fogExp2?"#define FOG_EXP2":"",t.alphaToCoverage?"#define ALPHA_TO_COVERAGE":"",t.map?"#define USE_MAP":"",t.matcap?"#define USE_MATCAP":"",t.envMap?"#define USE_ENVMAP":"",t.envMap?"#define "+u:"",t.envMap?"#define "+f:"",t.envMap?"#define "+A:"",S?"#define CUBEUV_TEXEL_WIDTH "+S.texelWidth:"",S?"#define CUBEUV_TEXEL_HEIGHT "+S.texelHeight:"",S?"#define CUBEUV_MAX_MIP "+S.maxMip+".0":"",t.lightMap?"#define USE_LIGHTMAP":"",t.aoMap?"#define USE_AOMAP":"",t.bumpMap?"#define USE_BUMPMAP":"",t.normalMap?"#define USE_NORMALMAP":"",t.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",t.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",t.emissiveMap?"#define USE_EMISSIVEMAP":"",t.anisotropy?"#define USE_ANISOTROPY":"",t.anisotropyMap?"#define USE_ANISOTROPYMAP":"",t.clearcoat?"#define USE_CLEARCOAT":"",t.clearcoatMap?"#define USE_CLEARCOATMAP":"",t.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",t.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",t.iridescence?"#define USE_IRIDESCENCE":"",t.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",t.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",t.specularMap?"#define USE_SPECULARMAP":"",t.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",t.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",t.roughnessMap?"#define USE_ROUGHNESSMAP":"",t.metalnessMap?"#define USE_METALNESSMAP":"",t.alphaMap?"#define USE_ALPHAMAP":"",t.alphaTest?"#define USE_ALPHATEST":"",t.alphaHash?"#define USE_ALPHAHASH":"",t.sheen?"#define USE_SHEEN":"",t.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",t.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",t.transmission?"#define USE_TRANSMISSION":"",t.transmissionMap?"#define USE_TRANSMISSIONMAP":"",t.thicknessMap?"#define USE_THICKNESSMAP":"",t.vertexTangents&&!1===t.flatShading?"#define USE_TANGENT":"",t.vertexColors||t.instancingColor?"#define USE_COLOR":"",t.vertexAlphas?"#define USE_COLOR_ALPHA":"",t.vertexUv1s?"#define USE_UV1":"",t.vertexUv2s?"#define USE_UV2":"",t.vertexUv3s?"#define USE_UV3":"",t.pointsUvs?"#define USE_POINTS_UV":"",t.gradientMap?"#define USE_GRADIENTMAP":"",t.flatShading?"#define FLAT_SHADED":"",t.doubleSided?"#define DOUBLE_SIDED":"",t.flipSided?"#define FLIP_SIDED":"",t.shadowMapEnabled?"#define USE_SHADOWMAP":"",t.shadowMapEnabled?"#define "+d:"",t.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",t.numLightProbes>0?"#define USE_LIGHT_PROBES":"",t.useLegacyLights?"#define LEGACY_LIGHTS":"",t.decodeVideoTexture?"#define DECODE_VIDEO_TEXTURE":"",t.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",t.logarithmicDepthBuffer&&t.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",t.toneMapping!==By?"#define TONE_MAPPING":"",t.toneMapping!==By?xa.tonemapping_pars_fragment:"",t.toneMapping!==By?Ohe("toneMapping",t.toneMapping):"",t.dithering?"#define DITHERING":"",t.opaque?"#define OPAQUE":"",xa.colorspace_pars_fragment,Fhe("linearToOutputTexel",t.outputColorSpace),t.useDepthPacking?"#define DEPTH_PACKING "+t.depthPacking:"","\n"].filter(X2).join("\n")),o=B5(o),o=NV(o,t),o=UV(o,t),l=B5(l),l=NV(l,t),l=UV(l,t),o=zV(o),l=zV(l),t.isWebGL2&&!0!==t.isRawShaderMaterial&&(Ce="#version 300 es\n",le=[G,"precision mediump sampler2DArray;","#define attribute in","#define varying out","#define texture2D texture"].join("\n")+"\n"+le,Ee=["precision mediump sampler2DArray;","#define varying in",t.glslVersion===VH?"":"layout(location = 0) out highp vec4 pc_fragColor;",t.glslVersion===VH?"":"#define gl_FragColor pc_fragColor","#define gl_FragDepthEXT gl_FragDepth","#define texture2D texture","#define textureCube texture","#define texture2DProj textureProj","#define texture2DLodEXT textureLod","#define texture2DProjLodEXT textureProjLod","#define textureCubeLodEXT textureLod","#define texture2DGradEXT textureGrad","#define texture2DProjGradEXT textureProjGrad","#define textureCubeGradEXT textureGrad"].join("\n")+"\n"+Ee);const Mt=Ce+Ee+l,yt=OV(r,r.VERTEX_SHADER,Ce+le+o),Et=OV(r,r.FRAGMENT_SHADER,Mt);function Xt(Vi){if(n.debug.checkShaderErrors){const Yi=r.getProgramInfoLog(se).trim(),En=r.getShaderInfoLog(yt).trim(),wi=r.getShaderInfoLog(Et).trim();let zn=!0,oi=!0;if(!1===r.getProgramParameter(se,r.LINK_STATUS))if(zn=!1,"function"==typeof n.debug.onShaderError)n.debug.onShaderError(r,se,yt,Et);else{const hi=LV(r,yt,"vertex"),vi=LV(r,Et,"fragment");console.error("THREE.WebGLProgram: Shader Error "+r.getError()+" - VALIDATE_STATUS "+r.getProgramParameter(se,r.VALIDATE_STATUS)+"\n\nMaterial Name: "+Vi.name+"\nMaterial Type: "+Vi.type+"\n\nProgram Info Log: "+Yi+"\n"+hi+"\n"+vi)}else""!==Yi?console.warn("THREE.WebGLProgram: Program Info Log:",Yi):(""===En||""===wi)&&(oi=!1);oi&&(Vi.diagnostics={runnable:zn,programLog:Yi,vertexShader:{log:En,prefix:le},fragmentShader:{log:wi,prefix:Ee}})}r.deleteShader(yt),r.deleteShader(Et),Un=new xI(r,se),wt=function zhe(n,e){const t={},i=n.getProgramParameter(e,n.ACTIVE_ATTRIBUTES);for(let r=0;r0,ar=wt.clearcoat>0,hr=wt.iridescence>0,$r=wt.sheen>0,Fr=wt.transmission>0,Aa=zt&&!!wt.anisotropyMap,Qo=ar&&!!wt.clearcoatMap,As=ar&&!!wt.clearcoatNormalMap,Is=ar&&!!wt.clearcoatRoughnessMap,ga=hr&&!!wt.iridescenceMap,hs=hr&&!!wt.iridescenceThicknessMap,Sd=$r&&!!wt.sheenColorMap,qa=$r&&!!wt.sheenRoughnessMap,Ro=!!wt.specularMap,ho=!!wt.specularColorMap,To=!!wt.specularIntensityMap,Tn=Fr&&!!wt.transmissionMap,Er=Fr&&!!wt.thicknessMap,Xn=!!wt.alphaMap,Xr=!!wt.extensions;let Hs=By;wt.toneMapped&&(null===Us||!0===Us.isXRRenderTarget)&&(Hs=n.toneMapping);const Xa={isWebGL2:A,shaderID:mr,shaderType:wt.type,shaderName:wt.name,vertexShader:fi,fragmentShader:Rr,defines:wt.defines,customVertexShaderID:ms,customFragmentShaderID:Fs,isRawShaderMaterial:!0===wt.isRawShaderMaterial,glslVersion:wt.glslVersion,precision:G,batching:!0===En.isBatchedMesh,instancing:ws,instancingColor:ws&&null!==En.instanceColor,instancingMorph:ws&&null!==En.morphTexture,supportsVertexTextures:R,outputColorSpace:null===Us?n.outputColorSpace:!0===Us.isXRRenderTarget?Us.texture.colorSpace:Qu,alphaToCoverage:!!wt.alphaToCoverage,map:lo,matcap:!!wt.matcap,envMap:ps,envMapMode:ps&&hi.mapping,envMapCubeUVHeight:vi,aoMap:gr,lightMap:ls,bumpMap:Tr,normalMap:Ys,displacementMap:R&&qs,emissiveMap:uo,normalMapObjectSpace:Ys&&1===wt.normalMapType,normalMapTangentSpace:Ys&&0===wt.normalMapType,metalnessMap:ka,roughnessMap:gn,anisotropy:zt,anisotropyMap:Aa,clearcoat:ar,clearcoatMap:Qo,clearcoatNormalMap:As,clearcoatRoughnessMap:Is,iridescence:hr,iridescenceMap:ga,iridescenceThicknessMap:hs,sheen:$r,sheenColorMap:Sd,sheenRoughnessMap:qa,specularMap:Ro,specularColorMap:ho,specularIntensityMap:To,transmission:Fr,transmissionMap:Tn,thicknessMap:Er,gradientMap:!!wt.gradientMap,opaque:!1===wt.transparent&&1===wt.blending&&!1===wt.alphaToCoverage,alphaMap:Xn,alphaTest:wt.alphaTest>0,alphaHash:!!wt.alphaHash,combine:wt.combine,mapUv:lo&&se(wt.map.channel),aoMapUv:gr&&se(wt.aoMap.channel),lightMapUv:ls&&se(wt.lightMap.channel),bumpMapUv:Tr&&se(wt.bumpMap.channel),normalMapUv:Ys&&se(wt.normalMap.channel),displacementMapUv:qs&&se(wt.displacementMap.channel),emissiveMapUv:uo&&se(wt.emissiveMap.channel),metalnessMapUv:ka&&se(wt.metalnessMap.channel),roughnessMapUv:gn&&se(wt.roughnessMap.channel),anisotropyMapUv:Aa&&se(wt.anisotropyMap.channel),clearcoatMapUv:Qo&&se(wt.clearcoatMap.channel),clearcoatNormalMapUv:As&&se(wt.clearcoatNormalMap.channel),clearcoatRoughnessMapUv:Is&&se(wt.clearcoatRoughnessMap.channel),iridescenceMapUv:ga&&se(wt.iridescenceMap.channel),iridescenceThicknessMapUv:hs&&se(wt.iridescenceThicknessMap.channel),sheenColorMapUv:Sd&&se(wt.sheenColorMap.channel),sheenRoughnessMapUv:qa&&se(wt.sheenRoughnessMap.channel),specularMapUv:Ro&&se(wt.specularMap.channel),specularColorMapUv:ho&&se(wt.specularColorMap.channel),specularIntensityMapUv:To&&se(wt.specularIntensityMap.channel),transmissionMapUv:Tn&&se(wt.transmissionMap.channel),thicknessMapUv:Er&&se(wt.thicknessMap.channel),alphaMapUv:Xn&&se(wt.alphaMap.channel),vertexTangents:!!zn.attributes.tangent&&(Ys||zt),vertexColors:wt.vertexColors,vertexAlphas:!0===wt.vertexColors&&!!zn.attributes.color&&4===zn.attributes.color.itemSize,pointsUvs:!0===En.isPoints&&!!zn.attributes.uv&&(lo||Xn),fog:!!wi,useFog:!0===wt.fog,fogExp2:!!wi&&wi.isFogExp2,flatShading:!0===wt.flatShading,sizeAttenuation:!0===wt.sizeAttenuation,logarithmicDepthBuffer:S,skinning:!0===En.isSkinnedMesh,morphTargets:void 0!==zn.morphAttributes.position,morphNormals:void 0!==zn.morphAttributes.normal,morphColors:void 0!==zn.morphAttributes.color,morphTargetsCount:ns,morphTextureStride:$s,numDirLights:Kt.directional.length,numPointLights:Kt.point.length,numSpotLights:Kt.spot.length,numSpotLightMaps:Kt.spotLightMap.length,numRectAreaLights:Kt.rectArea.length,numHemiLights:Kt.hemi.length,numDirLightShadows:Kt.directionalShadowMap.length,numPointLightShadows:Kt.pointShadowMap.length,numSpotLightShadows:Kt.spotShadowMap.length,numSpotLightShadowsWithMaps:Kt.numSpotLightShadowsWithMaps,numLightProbes:Kt.numLightProbes,numClippingPlanes:o.numPlanes,numClipIntersection:o.numIntersection,dithering:wt.dithering,shadowMapEnabled:n.shadowMap.enabled&&Vi.length>0,shadowMapType:n.shadowMap.type,toneMapping:Hs,useLegacyLights:n._useLegacyLights,decodeVideoTexture:lo&&!0===wt.map.isVideoTexture&&Ol.getTransfer(wt.map.colorSpace)===Vc,premultipliedAlpha:wt.premultipliedAlpha,doubleSided:2===wt.side,flipSided:1===wt.side,useDepthPacking:wt.depthPacking>=0,depthPacking:wt.depthPacking||0,index0AttributeName:wt.index0AttributeName,extensionDerivatives:Xr&&!0===wt.extensions.derivatives,extensionFragDepth:Xr&&!0===wt.extensions.fragDepth,extensionDrawBuffers:Xr&&!0===wt.extensions.drawBuffers,extensionShaderTextureLOD:Xr&&!0===wt.extensions.shaderTextureLOD,extensionClipCullDistance:Xr&&!0===wt.extensions.clipCullDistance&&i.has("WEBGL_clip_cull_distance"),extensionMultiDraw:Xr&&!0===wt.extensions.multiDraw&&i.has("WEBGL_multi_draw"),rendererExtensionFragDepth:A||i.has("EXT_frag_depth"),rendererExtensionDrawBuffers:A||i.has("WEBGL_draw_buffers"),rendererExtensionShaderTextureLod:A||i.has("EXT_shader_texture_lod"),rendererExtensionParallelShaderCompile:i.has("KHR_parallel_shader_compile"),customProgramCacheKey:wt.customProgramCacheKey()};return Xa.vertexUv1s=u.has(1),Xa.vertexUv2s=u.has(2),Xa.vertexUv3s=u.has(3),u.clear(),Xa},getProgramCacheKey:function Ee(wt){const Kt=[];if(wt.shaderID?Kt.push(wt.shaderID):(Kt.push(wt.customVertexShaderID),Kt.push(wt.customFragmentShaderID)),void 0!==wt.defines)for(const Vi in wt.defines)Kt.push(Vi),Kt.push(wt.defines[Vi]);return!1===wt.isRawShaderMaterial&&(function Ce(wt,Kt){wt.push(Kt.precision),wt.push(Kt.outputColorSpace),wt.push(Kt.envMapMode),wt.push(Kt.envMapCubeUVHeight),wt.push(Kt.mapUv),wt.push(Kt.alphaMapUv),wt.push(Kt.lightMapUv),wt.push(Kt.aoMapUv),wt.push(Kt.bumpMapUv),wt.push(Kt.normalMapUv),wt.push(Kt.displacementMapUv),wt.push(Kt.emissiveMapUv),wt.push(Kt.metalnessMapUv),wt.push(Kt.roughnessMapUv),wt.push(Kt.anisotropyMapUv),wt.push(Kt.clearcoatMapUv),wt.push(Kt.clearcoatNormalMapUv),wt.push(Kt.clearcoatRoughnessMapUv),wt.push(Kt.iridescenceMapUv),wt.push(Kt.iridescenceThicknessMapUv),wt.push(Kt.sheenColorMapUv),wt.push(Kt.sheenRoughnessMapUv),wt.push(Kt.specularMapUv),wt.push(Kt.specularColorMapUv),wt.push(Kt.specularIntensityMapUv),wt.push(Kt.transmissionMapUv),wt.push(Kt.thicknessMapUv),wt.push(Kt.combine),wt.push(Kt.fogExp2),wt.push(Kt.sizeAttenuation),wt.push(Kt.morphTargetsCount),wt.push(Kt.morphAttributeCount),wt.push(Kt.numDirLights),wt.push(Kt.numPointLights),wt.push(Kt.numSpotLights),wt.push(Kt.numSpotLightMaps),wt.push(Kt.numHemiLights),wt.push(Kt.numRectAreaLights),wt.push(Kt.numDirLightShadows),wt.push(Kt.numPointLightShadows),wt.push(Kt.numSpotLightShadows),wt.push(Kt.numSpotLightShadowsWithMaps),wt.push(Kt.numLightProbes),wt.push(Kt.shadowMapType),wt.push(Kt.toneMapping),wt.push(Kt.numClippingPlanes),wt.push(Kt.numClipIntersection),wt.push(Kt.depthPacking)}(Kt,wt),function We(wt,Kt){l.disableAll(),Kt.isWebGL2&&l.enable(0),Kt.supportsVertexTextures&&l.enable(1),Kt.instancing&&l.enable(2),Kt.instancingColor&&l.enable(3),Kt.instancingMorph&&l.enable(4),Kt.matcap&&l.enable(5),Kt.envMap&&l.enable(6),Kt.normalMapObjectSpace&&l.enable(7),Kt.normalMapTangentSpace&&l.enable(8),Kt.clearcoat&&l.enable(9),Kt.iridescence&&l.enable(10),Kt.alphaTest&&l.enable(11),Kt.vertexColors&&l.enable(12),Kt.vertexAlphas&&l.enable(13),Kt.vertexUv1s&&l.enable(14),Kt.vertexUv2s&&l.enable(15),Kt.vertexUv3s&&l.enable(16),Kt.vertexTangents&&l.enable(17),Kt.anisotropy&&l.enable(18),Kt.alphaHash&&l.enable(19),Kt.batching&&l.enable(20),wt.push(l.mask),l.disableAll(),Kt.fog&&l.enable(0),Kt.useFog&&l.enable(1),Kt.flatShading&&l.enable(2),Kt.logarithmicDepthBuffer&&l.enable(3),Kt.skinning&&l.enable(4),Kt.morphTargets&&l.enable(5),Kt.morphNormals&&l.enable(6),Kt.morphColors&&l.enable(7),Kt.premultipliedAlpha&&l.enable(8),Kt.shadowMapEnabled&&l.enable(9),Kt.useLegacyLights&&l.enable(10),Kt.doubleSided&&l.enable(11),Kt.flipSided&&l.enable(12),Kt.useDepthPacking&&l.enable(13),Kt.dithering&&l.enable(14),Kt.transmission&&l.enable(15),Kt.sheen&&l.enable(16),Kt.opaque&&l.enable(17),Kt.pointsUvs&&l.enable(18),Kt.decodeVideoTexture&&l.enable(19),Kt.alphaToCoverage&&l.enable(20),wt.push(l.mask)}(Kt,wt),Kt.push(n.outputColorSpace)),Kt.push(wt.customProgramCacheKey),Kt.join()},getUniforms:function Mt(wt){const Kt=re[wt.type];let Vi;return Vi=Kt?x5.clone(E0[Kt].uniforms):wt.uniforms,Vi},acquireProgram:function yt(wt,Kt){let Vi;for(let Yi=0,En=f.length;Yi0?i.push(le):!0===R.transparent?r.push(le):t.push(le)},unshift:function d(A,S,R,G,re,se){const le=o(A,S,R,G,re,se);R.transmission>0?i.unshift(le):!0===R.transparent?r.unshift(le):t.unshift(le)},finish:function f(){for(let A=e,S=n.length;A1&&t.sort(A||ife),i.length>1&&i.sort(S||VV),r.length>1&&r.sort(S||VV)}}}function rfe(){let n=new WeakMap;return{get:function e(i,r){const s=n.get(i);let o;return void 0===s?(o=new GV,n.set(i,[o])):r>=s.length?(o=new GV,s.push(o)):o=s[r],o},dispose:function t(){n=new WeakMap}}}function sfe(){const n={};return{get:function(e){if(void 0!==n[e.id])return n[e.id];let t;switch(e.type){case"DirectionalLight":t={direction:new It,color:new Cr};break;case"SpotLight":t={position:new It,direction:new It,color:new Cr,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":t={position:new It,color:new Cr,distance:0,decay:0};break;case"HemisphereLight":t={direction:new It,skyColor:new Cr,groundColor:new Cr};break;case"RectAreaLight":t={color:new Cr,position:new It,halfWidth:new It,halfHeight:new It}}return n[e.id]=t,t}}}let afe=0;function lfe(n,e){return(e.castShadow?2:0)-(n.castShadow?2:0)+(e.map?1:0)-(n.map?1:0)}function cfe(n,e){const t=new sfe,i=function ofe(){const n={};return{get:function(e){if(void 0!==n[e.id])return n[e.id];let t;switch(e.type){case"DirectionalLight":case"SpotLight":t={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Qi};break;case"PointLight":t={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Qi,shadowCameraNear:1,shadowCameraFar:1e3}}return n[e.id]=t,t}}}(),r={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1,numSpotMaps:-1,numLightProbes:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotLightMap:[],spotShadow:[],spotShadowMap:[],spotLightMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[],numSpotLightShadowsWithMaps:0,numLightProbes:0};for(let f=0;f<9;f++)r.probe.push(new It);const s=new It,o=new wo,l=new wo;return{setup:function d(f,A){let S=0,R=0,G=0;for(let Vi=0;Vi<9;Vi++)r.probe[Vi].set(0,0,0);let re=0,se=0,le=0,Ee=0,Ce=0,We=0,Mt=0,yt=0,Et=0,Xt=0,Un=0;f.sort(lfe);const wt=!0===A?Math.PI:1;for(let Vi=0,Yi=f.length;Vi0&&(e.isWebGL2?!0===n.has("OES_texture_float_linear")?(r.rectAreaLTC1=Ms.LTC_FLOAT_1,r.rectAreaLTC2=Ms.LTC_FLOAT_2):(r.rectAreaLTC1=Ms.LTC_HALF_1,r.rectAreaLTC2=Ms.LTC_HALF_2):!0===n.has("OES_texture_float_linear")?(r.rectAreaLTC1=Ms.LTC_FLOAT_1,r.rectAreaLTC2=Ms.LTC_FLOAT_2):!0===n.has("OES_texture_half_float_linear")?(r.rectAreaLTC1=Ms.LTC_HALF_1,r.rectAreaLTC2=Ms.LTC_HALF_2):console.error("THREE.WebGLRenderer: Unable to use RectAreaLight. Missing WebGL extensions.")),r.ambient[0]=S,r.ambient[1]=R,r.ambient[2]=G;const Kt=r.hash;(Kt.directionalLength!==re||Kt.pointLength!==se||Kt.spotLength!==le||Kt.rectAreaLength!==Ee||Kt.hemiLength!==Ce||Kt.numDirectionalShadows!==We||Kt.numPointShadows!==Mt||Kt.numSpotShadows!==yt||Kt.numSpotMaps!==Et||Kt.numLightProbes!==Un)&&(r.directional.length=re,r.spot.length=le,r.rectArea.length=Ee,r.point.length=se,r.hemi.length=Ce,r.directionalShadow.length=We,r.directionalShadowMap.length=We,r.pointShadow.length=Mt,r.pointShadowMap.length=Mt,r.spotShadow.length=yt,r.spotShadowMap.length=yt,r.directionalShadowMatrix.length=We,r.pointShadowMatrix.length=Mt,r.spotLightMatrix.length=yt+Et-Xt,r.spotLightMap.length=Et,r.numSpotLightShadowsWithMaps=Xt,r.numLightProbes=Un,Kt.directionalLength=re,Kt.pointLength=se,Kt.spotLength=le,Kt.rectAreaLength=Ee,Kt.hemiLength=Ce,Kt.numDirectionalShadows=We,Kt.numPointShadows=Mt,Kt.numSpotShadows=yt,Kt.numSpotMaps=Et,Kt.numLightProbes=Un,r.version=afe++)},setupView:function u(f,A){let S=0,R=0,G=0,re=0,se=0;const le=A.matrixWorldInverse;for(let Ee=0,Ce=f.length;Ee=l.length?(d=new qV(n,e),l.push(d)):d=l[o],d},dispose:function r(){t=new WeakMap}}}class P5 extends ld{constructor(e){super(),this.isMeshDepthMaterial=!0,this.type="MeshDepthMaterial",this.depthPacking=3200,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.setValues(e)}copy(e){return super.copy(e),this.depthPacking=e.depthPacking,this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this}}class QV extends ld{constructor(e){super(),this.isMeshDistanceMaterial=!0,this.type="MeshDistanceMaterial",this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.setValues(e)}copy(e){return super.copy(e),this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this}}function ffe(n,e,t){let i=new _I;const r=new Qi,s=new Qi,o=new nc,l=new P5({depthPacking:3201}),d=new QV,u={},f=t.maxTextureSize,A={0:1,1:0,2:2},S=new Du({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new Qi},radius:{value:4}},vertexShader:"void main() {\n\tgl_Position = vec4( position, 1.0 );\n}",fragmentShader:"uniform sampler2D shadow_pass;\nuniform vec2 resolution;\nuniform float radius;\n#include \nvoid main() {\n\tconst float samples = float( VSM_SAMPLES );\n\tfloat mean = 0.0;\n\tfloat squared_mean = 0.0;\n\tfloat uvStride = samples <= 1.0 ? 0.0 : 2.0 / ( samples - 1.0 );\n\tfloat uvStart = samples <= 1.0 ? 0.0 : - 1.0;\n\tfor ( float i = 0.0; i < samples; i ++ ) {\n\t\tfloat uvOffset = uvStart + i * uvStride;\n\t\t#ifdef HORIZONTAL_PASS\n\t\t\tvec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ) );\n\t\t\tmean += distribution.x;\n\t\t\tsquared_mean += distribution.y * distribution.y + distribution.x * distribution.x;\n\t\t#else\n\t\t\tfloat depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ) );\n\t\t\tmean += depth;\n\t\t\tsquared_mean += depth * depth;\n\t\t#endif\n\t}\n\tmean = mean / samples;\n\tsquared_mean = squared_mean / samples;\n\tfloat std_dev = sqrt( squared_mean - mean * mean );\n\tgl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) );\n}"}),R=S.clone();R.defines.HORIZONTAL_PASS=1;const G=new no;G.setAttribute("position",new No(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));const re=new ua(G,S),se=this;this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=Zz;let le=this.type;function Ee(yt,Et){const Xt=e.update(re);S.defines.VSM_SAMPLES!==yt.blurSamples&&(S.defines.VSM_SAMPLES=yt.blurSamples,R.defines.VSM_SAMPLES=yt.blurSamples,S.needsUpdate=!0,R.needsUpdate=!0),null===yt.mapPass&&(yt.mapPass=new Wu(r.x,r.y)),S.uniforms.shadow_pass.value=yt.map.texture,S.uniforms.resolution.value=yt.mapSize,S.uniforms.radius.value=yt.radius,n.setRenderTarget(yt.mapPass),n.clear(),n.renderBufferDirect(Et,null,Xt,S,re,null),R.uniforms.shadow_pass.value=yt.mapPass.texture,R.uniforms.resolution.value=yt.mapSize,R.uniforms.radius.value=yt.radius,n.setRenderTarget(yt.map),n.clear(),n.renderBufferDirect(Et,null,Xt,R,re,null)}function Ce(yt,Et,Xt,Un){let wt=null;const Kt=!0===Xt.isPointLight?yt.customDistanceMaterial:yt.customDepthMaterial;if(void 0!==Kt)wt=Kt;else if(wt=!0===Xt.isPointLight?d:l,n.localClippingEnabled&&!0===Et.clipShadows&&Array.isArray(Et.clippingPlanes)&&0!==Et.clippingPlanes.length||Et.displacementMap&&0!==Et.displacementScale||Et.alphaMap&&Et.alphaTest>0||Et.map&&Et.alphaTest>0){const Vi=wt.uuid,Yi=Et.uuid;let En=u[Vi];void 0===En&&(En={},u[Vi]=En);let wi=En[Yi];void 0===wi&&(wi=wt.clone(),En[Yi]=wi,Et.addEventListener("dispose",Mt)),wt=wi}return wt.visible=Et.visible,wt.wireframe=Et.wireframe,wt.side=Un===z_?null!==Et.shadowSide?Et.shadowSide:Et.side:null!==Et.shadowSide?Et.shadowSide:A[Et.side],wt.alphaMap=Et.alphaMap,wt.alphaTest=Et.alphaTest,wt.map=Et.map,wt.clipShadows=Et.clipShadows,wt.clippingPlanes=Et.clippingPlanes,wt.clipIntersection=Et.clipIntersection,wt.displacementMap=Et.displacementMap,wt.displacementScale=Et.displacementScale,wt.displacementBias=Et.displacementBias,wt.wireframeLinewidth=Et.wireframeLinewidth,wt.linewidth=Et.linewidth,!0===Xt.isPointLight&&!0===wt.isMeshDistanceMaterial&&(n.properties.get(wt).light=Xt),wt}function We(yt,Et,Xt,Un,wt){if(!1===yt.visible)return;if(yt.layers.test(Et.layers)&&(yt.isMesh||yt.isLine||yt.isPoints)&&(yt.castShadow||yt.receiveShadow&&wt===z_)&&(!yt.frustumCulled||i.intersectsObject(yt))){yt.modelViewMatrix.multiplyMatrices(Xt.matrixWorldInverse,yt.matrixWorld);const Yi=e.update(yt),En=yt.material;if(Array.isArray(En)){const wi=Yi.groups;for(let zn=0,oi=wi.length;znf||r.y>f)&&(r.x>f&&(s.x=Math.floor(f/vi.x),r.x=s.x*vi.x,hi.mapSize.x=s.x),r.y>f&&(s.y=Math.floor(f/vi.y),r.y=s.y*vi.y,hi.mapSize.y=s.y)),null===hi.map||!0===Yi||!0===En){const Mr=this.type!==z_?{minFilter:vd,magFilter:vd}:{};null!==hi.map&&hi.map.dispose(),hi.map=new Wu(r.x,r.y,Mr),hi.map.texture.name=oi.name+".shadowMap",hi.camera.updateProjectionMatrix()}n.setRenderTarget(hi.map),n.clear();const mr=hi.getViewportCount();for(let Mr=0;Mr=1):-1!==mr.indexOf("OpenGL ES")&&(vi=parseFloat(/^OpenGL ES (\d)/.exec(mr)[1]),hi=vi>=2);let Mr=null,ns={};const $s=n.getParameter(n.SCISSOR_BOX),fi=n.getParameter(n.VIEWPORT),Rr=(new nc).fromArray($s),ms=(new nc).fromArray(fi);function Fs(Xn,is,ki,Xr){const Hs=new Uint8Array(4),Xa=n.createTexture();n.bindTexture(Xn,Xa),n.texParameteri(Xn,n.TEXTURE_MIN_FILTER,n.NEAREST),n.texParameteri(Xn,n.TEXTURE_MAG_FILTER,n.NEAREST);for(let jl=0;jl"u")&&/OculusBrowser/g.test(navigator.userAgent),f=new Qi,A=new WeakMap;let S;const R=new WeakMap;let G=!1;try{G=typeof OffscreenCanvas<"u"&&null!==new OffscreenCanvas(1,1).getContext("2d")}catch{}function re(gn,zt){return G?new OffscreenCanvas(gn,zt):GS("canvas")}function se(gn,zt,ar,hr){let $r=1;const Fr=ka(gn);if((Fr.width>hr||Fr.height>hr)&&($r=hr/Math.max(Fr.width,Fr.height)),$r<1||!0===zt){if(typeof HTMLImageElement<"u"&&gn instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&gn instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&gn instanceof ImageBitmap||typeof VideoFrame<"u"&&gn instanceof VideoFrame){const Aa=zt?KD:Math.floor,Qo=Aa($r*Fr.width),As=Aa($r*Fr.height);void 0===S&&(S=re(Qo,As));const Is=ar?re(Qo,As):S;return Is.width=Qo,Is.height=As,Is.getContext("2d").drawImage(gn,0,0,Qo,As),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+Fr.width+"x"+Fr.height+") to ("+Qo+"x"+As+")."),Is}return"data"in gn&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+Fr.width+"x"+Fr.height+")."),gn}return gn}function le(gn){const zt=ka(gn);return e5(zt.width)&&e5(zt.height)}function Ce(gn,zt){return gn.generateMipmaps&&zt&&gn.minFilter!==vd&&gn.minFilter!==Hc}function We(gn){n.generateMipmap(gn)}function Mt(gn,zt,ar,hr,$r=!1){if(!1===l)return zt;if(null!==gn){if(void 0!==n[gn])return n[gn];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+gn+"'")}let Fr=zt;if(zt===n.RED&&(ar===n.FLOAT&&(Fr=n.R32F),ar===n.HALF_FLOAT&&(Fr=n.R16F),ar===n.UNSIGNED_BYTE&&(Fr=n.R8)),zt===n.RED_INTEGER&&(ar===n.UNSIGNED_BYTE&&(Fr=n.R8UI),ar===n.UNSIGNED_SHORT&&(Fr=n.R16UI),ar===n.UNSIGNED_INT&&(Fr=n.R32UI),ar===n.BYTE&&(Fr=n.R8I),ar===n.SHORT&&(Fr=n.R16I),ar===n.INT&&(Fr=n.R32I)),zt===n.RG&&(ar===n.FLOAT&&(Fr=n.RG32F),ar===n.HALF_FLOAT&&(Fr=n.RG16F),ar===n.UNSIGNED_BYTE&&(Fr=n.RG8)),zt===n.RG_INTEGER&&(ar===n.UNSIGNED_BYTE&&(Fr=n.RG8UI),ar===n.UNSIGNED_SHORT&&(Fr=n.RG16UI),ar===n.UNSIGNED_INT&&(Fr=n.RG32UI),ar===n.BYTE&&(Fr=n.RG8I),ar===n.SHORT&&(Fr=n.RG16I),ar===n.INT&&(Fr=n.RG32I)),zt===n.RGBA){const Aa=$r?WD:Ol.getTransfer(hr);ar===n.FLOAT&&(Fr=n.RGBA32F),ar===n.HALF_FLOAT&&(Fr=n.RGBA16F),ar===n.UNSIGNED_BYTE&&(Fr=Aa===Vc?n.SRGB8_ALPHA8:n.RGBA8),ar===n.UNSIGNED_SHORT_4_4_4_4&&(Fr=n.RGBA4),ar===n.UNSIGNED_SHORT_5_5_5_1&&(Fr=n.RGB5_A1)}return(Fr===n.R16F||Fr===n.R32F||Fr===n.RG16F||Fr===n.RG32F||Fr===n.RGBA16F||Fr===n.RGBA32F)&&e.get("EXT_color_buffer_float"),Fr}function yt(gn,zt,ar){return!0===Ce(gn,ar)||gn.isFramebufferTexture&&gn.minFilter!==vd&&gn.minFilter!==Hc?Math.log2(Math.max(zt.width,zt.height))+1:void 0!==gn.mipmaps&&gn.mipmaps.length>0?gn.mipmaps.length:gn.isCompressedTexture&&Array.isArray(gn.image)?zt.mipmaps.length:1}function Et(gn){return gn===vd||1004===gn||gn===ky?n.NEAREST:n.LINEAR}function Xt(gn){const zt=gn.target;zt.removeEventListener("dispose",Xt),function wt(gn){const zt=i.get(gn);if(void 0===zt.__webglInit)return;const ar=gn.source,hr=R.get(ar);if(hr){const $r=hr[zt.__cacheKey];$r.usedTimes--,0===$r.usedTimes&&Kt(gn),0===Object.keys(hr).length&&R.delete(ar)}i.remove(gn)}(zt),zt.isVideoTexture&&A.delete(zt)}function Un(gn){const zt=gn.target;zt.removeEventListener("dispose",Un),function Vi(gn){const zt=i.get(gn);if(gn.depthTexture&&gn.depthTexture.dispose(),gn.isWebGLCubeRenderTarget)for(let hr=0;hr<6;hr++){if(Array.isArray(zt.__webglFramebuffer[hr]))for(let $r=0;$r0&&ar.__version!==gn.version){const hr=gn.image;if(null===hr)console.warn("THREE.WebGLRenderer: Texture marked for update but no image data found.");else{if(!1!==hr.complete)return void ms(ar,gn,zt);console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete")}}t.bindTexture(n.TEXTURE_2D,ar.__webglTexture,n.TEXTURE0+zt)}const Mr={[Ry]:n.REPEAT,[vh]:n.CLAMP_TO_EDGE,[_2]:n.MIRRORED_REPEAT},ns={[vd]:n.NEAREST,1004:n.NEAREST_MIPMAP_NEAREST,[ky]:n.NEAREST_MIPMAP_LINEAR,[Hc]:n.LINEAR,[y2]:n.LINEAR_MIPMAP_NEAREST,[oA]:n.LINEAR_MIPMAP_LINEAR},$s={512:n.NEVER,519:n.ALWAYS,513:n.LESS,515:n.LEQUAL,514:n.EQUAL,518:n.GEQUAL,516:n.GREATER,517:n.NOTEQUAL};function fi(gn,zt,ar){if(zt.type===aA&&!1===e.has("OES_texture_float_linear")&&(zt.magFilter===Hc||zt.magFilter===y2||zt.magFilter===ky||zt.magFilter===oA||zt.minFilter===Hc||zt.minFilter===y2||zt.minFilter===ky||zt.minFilter===oA)&&console.warn("THREE.WebGLRenderer: Unable to use linear filtering with floating point textures. OES_texture_float_linear not supported on this device."),ar?(n.texParameteri(gn,n.TEXTURE_WRAP_S,Mr[zt.wrapS]),n.texParameteri(gn,n.TEXTURE_WRAP_T,Mr[zt.wrapT]),(gn===n.TEXTURE_3D||gn===n.TEXTURE_2D_ARRAY)&&n.texParameteri(gn,n.TEXTURE_WRAP_R,Mr[zt.wrapR]),n.texParameteri(gn,n.TEXTURE_MAG_FILTER,ns[zt.magFilter]),n.texParameteri(gn,n.TEXTURE_MIN_FILTER,ns[zt.minFilter])):(n.texParameteri(gn,n.TEXTURE_WRAP_S,n.CLAMP_TO_EDGE),n.texParameteri(gn,n.TEXTURE_WRAP_T,n.CLAMP_TO_EDGE),(gn===n.TEXTURE_3D||gn===n.TEXTURE_2D_ARRAY)&&n.texParameteri(gn,n.TEXTURE_WRAP_R,n.CLAMP_TO_EDGE),(zt.wrapS!==vh||zt.wrapT!==vh)&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping."),n.texParameteri(gn,n.TEXTURE_MAG_FILTER,Et(zt.magFilter)),n.texParameteri(gn,n.TEXTURE_MIN_FILTER,Et(zt.minFilter)),zt.minFilter!==vd&&zt.minFilter!==Hc&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.")),zt.compareFunction&&(n.texParameteri(gn,n.TEXTURE_COMPARE_MODE,n.COMPARE_REF_TO_TEXTURE),n.texParameteri(gn,n.TEXTURE_COMPARE_FUNC,$s[zt.compareFunction])),!0===e.has("EXT_texture_filter_anisotropic")){if(zt.magFilter===vd||zt.minFilter!==ky&&zt.minFilter!==oA||zt.type===aA&&!1===e.has("OES_texture_float_linear")||!1===l&&zt.type===lA&&!1===e.has("OES_texture_half_float_linear"))return;if(zt.anisotropy>1||i.get(zt).__currentAnisotropy){const hr=e.get("EXT_texture_filter_anisotropic");n.texParameterf(gn,hr.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(zt.anisotropy,r.getMaxAnisotropy())),i.get(zt).__currentAnisotropy=zt.anisotropy}}}function Rr(gn,zt){let ar=!1;void 0===gn.__webglInit&&(gn.__webglInit=!0,zt.addEventListener("dispose",Xt));const hr=zt.source;let $r=R.get(hr);void 0===$r&&($r={},R.set(hr,$r));const Fr=function zn(gn){const zt=[];return zt.push(gn.wrapS),zt.push(gn.wrapT),zt.push(gn.wrapR||0),zt.push(gn.magFilter),zt.push(gn.minFilter),zt.push(gn.anisotropy),zt.push(gn.internalFormat),zt.push(gn.format),zt.push(gn.type),zt.push(gn.generateMipmaps),zt.push(gn.premultiplyAlpha),zt.push(gn.flipY),zt.push(gn.unpackAlignment),zt.push(gn.colorSpace),zt.join()}(zt);if(Fr!==gn.__cacheKey){void 0===$r[Fr]&&($r[Fr]={texture:n.createTexture(),usedTimes:0},o.memory.textures++,ar=!0),$r[Fr].usedTimes++;const Aa=$r[gn.__cacheKey];void 0!==Aa&&($r[gn.__cacheKey].usedTimes--,0===Aa.usedTimes&&Kt(zt)),gn.__cacheKey=Fr,gn.__webglTexture=$r[Fr].texture}return ar}function ms(gn,zt,ar){let hr=n.TEXTURE_2D;(zt.isDataArrayTexture||zt.isCompressedArrayTexture)&&(hr=n.TEXTURE_2D_ARRAY),zt.isData3DTexture&&(hr=n.TEXTURE_3D);const $r=Rr(gn,zt),Fr=zt.source;t.bindTexture(hr,gn.__webglTexture,n.TEXTURE0+ar);const Aa=i.get(Fr);if(Fr.version!==Aa.__version||!0===$r){t.activeTexture(n.TEXTURE0+ar);const Qo=Ol.getPrimaries(Ol.workingColorSpace),As=""===zt.colorSpace?null:Ol.getPrimaries(zt.colorSpace),Is=""===zt.colorSpace||Qo===As?n.NONE:n.BROWSER_DEFAULT_WEBGL;n.pixelStorei(n.UNPACK_FLIP_Y_WEBGL,zt.flipY),n.pixelStorei(n.UNPACK_PREMULTIPLY_ALPHA_WEBGL,zt.premultiplyAlpha),n.pixelStorei(n.UNPACK_ALIGNMENT,zt.unpackAlignment),n.pixelStorei(n.UNPACK_COLORSPACE_CONVERSION_WEBGL,Is);const ga=function Ee(gn){return!l&&(gn.wrapS!==vh||gn.wrapT!==vh||gn.minFilter!==vd&&gn.minFilter!==Hc)}(zt)&&!1===le(zt.image);let hs=se(zt.image,ga,!1,r.maxTextureSize);hs=uo(zt,hs);const Sd=le(hs)||l,qa=s.convert(zt.format,zt.colorSpace);let To,Ro=s.convert(zt.type),ho=Mt(zt.internalFormat,qa,Ro,zt.colorSpace,zt.isVideoTexture);fi(hr,zt,Sd);const Tn=zt.mipmaps,Er=l&&!0!==zt.isVideoTexture&&36196!==ho,mo=void 0===Aa.__version||!0===$r,Xn=Fr.dataReady,is=yt(zt,hs,Sd);if(zt.isDepthTexture)ho=n.DEPTH_COMPONENT,l?ho=zt.type===aA?n.DEPTH_COMPONENT32F:zt.type===Oy?n.DEPTH_COMPONENT24:zt.type===Eb?n.DEPTH24_STENCIL8:n.DEPTH_COMPONENT16:zt.type===aA&&console.error("WebGLRenderer: Floating point depth texture requires WebGL2."),zt.format===Tb&&ho===n.DEPTH_COMPONENT&&1012!==zt.type&&zt.type!==Oy&&(console.warn("THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture."),zt.type=Oy,Ro=s.convert(zt.type)),zt.format===v2&&ho===n.DEPTH_COMPONENT&&(ho=n.DEPTH_STENCIL,zt.type!==Eb&&(console.warn("THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture."),zt.type=Eb,Ro=s.convert(zt.type))),mo&&(Er?t.texStorage2D(n.TEXTURE_2D,1,ho,hs.width,hs.height):t.texImage2D(n.TEXTURE_2D,0,ho,hs.width,hs.height,0,qa,Ro,null));else if(zt.isDataTexture)if(Tn.length>0&&Sd){Er&&mo&&t.texStorage2D(n.TEXTURE_2D,is,ho,Tn[0].width,Tn[0].height);for(let ki=0,Xr=Tn.length;ki>=1,Xr>>=1}}else if(Tn.length>0&&Sd){if(Er&&mo){const ki=ka(Tn[0]);t.texStorage2D(n.TEXTURE_2D,is,ho,ki.width,ki.height)}for(let ki=0,Xr=Tn.length;ki>Fr),hs=Math.max(1,zt.height>>Fr);$r===n.TEXTURE_3D||$r===n.TEXTURE_2D_ARRAY?t.texImage3D($r,Fr,As,ga,hs,zt.depth,0,Aa,Qo,null):t.texImage2D($r,Fr,As,ga,hs,0,Aa,Qo,null)}t.bindFramebuffer(n.FRAMEBUFFER,gn),Ys(zt)?d.framebufferTexture2DMultisampleEXT(n.FRAMEBUFFER,hr,$r,i.get(ar).__webglTexture,0,Tr(zt)):($r===n.TEXTURE_2D||$r>=n.TEXTURE_CUBE_MAP_POSITIVE_X&&$r<=n.TEXTURE_CUBE_MAP_NEGATIVE_Z)&&n.framebufferTexture2D(n.FRAMEBUFFER,hr,$r,i.get(ar).__webglTexture,Fr),t.bindFramebuffer(n.FRAMEBUFFER,null)}function ws(gn,zt,ar){if(n.bindRenderbuffer(n.RENDERBUFFER,gn),zt.depthBuffer&&!zt.stencilBuffer){let hr=!0===l?n.DEPTH_COMPONENT24:n.DEPTH_COMPONENT16;if(ar||Ys(zt)){const $r=zt.depthTexture;$r&&$r.isDepthTexture&&($r.type===aA?hr=n.DEPTH_COMPONENT32F:$r.type===Oy&&(hr=n.DEPTH_COMPONENT24));const Fr=Tr(zt);Ys(zt)?d.renderbufferStorageMultisampleEXT(n.RENDERBUFFER,Fr,hr,zt.width,zt.height):n.renderbufferStorageMultisample(n.RENDERBUFFER,Fr,hr,zt.width,zt.height)}else n.renderbufferStorage(n.RENDERBUFFER,hr,zt.width,zt.height);n.framebufferRenderbuffer(n.FRAMEBUFFER,n.DEPTH_ATTACHMENT,n.RENDERBUFFER,gn)}else if(zt.depthBuffer&&zt.stencilBuffer){const hr=Tr(zt);ar&&!1===Ys(zt)?n.renderbufferStorageMultisample(n.RENDERBUFFER,hr,n.DEPTH24_STENCIL8,zt.width,zt.height):Ys(zt)?d.renderbufferStorageMultisampleEXT(n.RENDERBUFFER,hr,n.DEPTH24_STENCIL8,zt.width,zt.height):n.renderbufferStorage(n.RENDERBUFFER,n.DEPTH_STENCIL,zt.width,zt.height),n.framebufferRenderbuffer(n.FRAMEBUFFER,n.DEPTH_STENCIL_ATTACHMENT,n.RENDERBUFFER,gn)}else{const hr=zt.textures;for(let $r=0;$r0&&!0===e.has("WEBGL_multisampled_render_to_texture")&&!1!==zt.__useRenderToTexture}function uo(gn,zt){const ar=gn.colorSpace,hr=gn.format,$r=gn.type;return!0===gn.isCompressedTexture||!0===gn.isVideoTexture||1035===gn.format||ar!==Qu&&""!==ar&&(Ol.getTransfer(ar)===Vc?!1===l?!0===e.has("EXT_sRGB")&&hr===gp?(gn.format=1035,gn.minFilter=Hc,gn.generateMipmaps=!1):zt=XH.sRGBToLinear(zt):(hr!==gp||$r!==Fy)&&console.warn("THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):console.error("THREE.WebGLTextures: Unsupported texture color space:",ar)),zt}function ka(gn){return typeof HTMLImageElement<"u"&&gn instanceof HTMLImageElement?(f.width=gn.naturalWidth||gn.width,f.height=gn.naturalHeight||gn.height):typeof VideoFrame<"u"&&gn instanceof VideoFrame?(f.width=gn.displayWidth,f.height=gn.displayHeight):(f.width=gn.width,f.height=gn.height),f}this.allocateTextureUnit=function wi(){const gn=Yi;return gn>=r.maxTextures&&console.warn("THREE.WebGLTextures: Trying to use "+gn+" texture units while this GPU supports only "+r.maxTextures),Yi+=1,gn},this.resetTextureUnits=function En(){Yi=0},this.setTexture2D=oi,this.setTexture2DArray=function hi(gn,zt){const ar=i.get(gn);gn.version>0&&ar.__version!==gn.version?ms(ar,gn,zt):t.bindTexture(n.TEXTURE_2D_ARRAY,ar.__webglTexture,n.TEXTURE0+zt)},this.setTexture3D=function vi(gn,zt){const ar=i.get(gn);gn.version>0&&ar.__version!==gn.version?ms(ar,gn,zt):t.bindTexture(n.TEXTURE_3D,ar.__webglTexture,n.TEXTURE0+zt)},this.setTextureCube=function mr(gn,zt){const ar=i.get(gn);gn.version>0&&ar.__version!==gn.version?function Fs(gn,zt,ar){if(6!==zt.image.length)return;const hr=Rr(gn,zt),$r=zt.source;t.bindTexture(n.TEXTURE_CUBE_MAP,gn.__webglTexture,n.TEXTURE0+ar);const Fr=i.get($r);if($r.version!==Fr.__version||!0===hr){t.activeTexture(n.TEXTURE0+ar);const Aa=Ol.getPrimaries(Ol.workingColorSpace),Qo=""===zt.colorSpace?null:Ol.getPrimaries(zt.colorSpace),As=""===zt.colorSpace||Aa===Qo?n.NONE:n.BROWSER_DEFAULT_WEBGL;n.pixelStorei(n.UNPACK_FLIP_Y_WEBGL,zt.flipY),n.pixelStorei(n.UNPACK_PREMULTIPLY_ALPHA_WEBGL,zt.premultiplyAlpha),n.pixelStorei(n.UNPACK_ALIGNMENT,zt.unpackAlignment),n.pixelStorei(n.UNPACK_COLORSPACE_CONVERSION_WEBGL,As);const Is=zt.isCompressedTexture||zt.image[0].isCompressedTexture,ga=zt.image[0]&&zt.image[0].isDataTexture,hs=[];for(let ki=0;ki<6;ki++)hs[ki]=Is||ga?ga?zt.image[ki].image:zt.image[ki]:se(zt.image[ki],!1,!0,r.maxCubemapSize),hs[ki]=uo(zt,hs[ki]);const Sd=hs[0],qa=le(Sd)||l,Ro=s.convert(zt.format,zt.colorSpace),ho=s.convert(zt.type),To=Mt(zt.internalFormat,Ro,ho,zt.colorSpace),Tn=l&&!0!==zt.isVideoTexture,Er=void 0===Fr.__version||!0===hr,mo=$r.dataReady;let is,Xn=yt(zt,Sd,qa);if(fi(n.TEXTURE_CUBE_MAP,zt,qa),Is){Tn&&Er&&t.texStorage2D(n.TEXTURE_CUBE_MAP,Xn,To,Sd.width,Sd.height);for(let ki=0;ki<6;ki++){is=hs[ki].mipmaps;for(let Xr=0;Xr0&&Xn++;const ki=ka(hs[0]);t.texStorage2D(n.TEXTURE_CUBE_MAP,Xn,To,ki.width,ki.height)}for(let ki=0;ki<6;ki++)if(ga){Tn?mo&&t.texSubImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+ki,0,0,0,hs[ki].width,hs[ki].height,Ro,ho,hs[ki].data):t.texImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+ki,0,To,hs[ki].width,hs[ki].height,0,Ro,ho,hs[ki].data);for(let Xr=0;Xr1,Qo=le(gn)||l;if(Aa||(void 0===hr.__webglTexture&&(hr.__webglTexture=n.createTexture()),hr.__version=zt.version,o.memory.textures++),Fr){ar.__webglFramebuffer=[];for(let As=0;As<6;As++)if(l&&zt.mipmaps&&zt.mipmaps.length>0){ar.__webglFramebuffer[As]=[];for(let Is=0;Is0){ar.__webglFramebuffer=[];for(let As=0;As0&&!1===Ys(gn)){ar.__webglMultisampledFramebuffer=n.createFramebuffer(),ar.__webglColorRenderbuffer=[],t.bindFramebuffer(n.FRAMEBUFFER,ar.__webglMultisampledFramebuffer);for(let As=0;As<$r.length;As++){const Is=$r[As];ar.__webglColorRenderbuffer[As]=n.createRenderbuffer(),n.bindRenderbuffer(n.RENDERBUFFER,ar.__webglColorRenderbuffer[As]);const ga=s.convert(Is.format,Is.colorSpace),hs=s.convert(Is.type),Sd=Mt(Is.internalFormat,ga,hs,Is.colorSpace,!0===gn.isXRRenderTarget),qa=Tr(gn);n.renderbufferStorageMultisample(n.RENDERBUFFER,qa,Sd,gn.width,gn.height),n.framebufferRenderbuffer(n.FRAMEBUFFER,n.COLOR_ATTACHMENT0+As,n.RENDERBUFFER,ar.__webglColorRenderbuffer[As])}n.bindRenderbuffer(n.RENDERBUFFER,null),gn.depthBuffer&&(ar.__webglDepthRenderbuffer=n.createRenderbuffer(),ws(ar.__webglDepthRenderbuffer,gn,!0)),t.bindFramebuffer(n.FRAMEBUFFER,null)}}if(Fr){t.bindTexture(n.TEXTURE_CUBE_MAP,hr.__webglTexture),fi(n.TEXTURE_CUBE_MAP,zt,Qo);for(let As=0;As<6;As++)if(l&&zt.mipmaps&&zt.mipmaps.length>0)for(let Is=0;Is0)for(let Is=0;Is0&&!1===Ys(gn)){const zt=gn.textures,ar=gn.width,hr=gn.height;let $r=n.COLOR_BUFFER_BIT;const Fr=[],Aa=gn.stencilBuffer?n.DEPTH_STENCIL_ATTACHMENT:n.DEPTH_ATTACHMENT,Qo=i.get(gn),As=zt.length>1;if(As)for(let Is=0;IsR+G?(u.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:e.handedness,target:this})):!u.inputState.pinching&&S<=R-G&&(u.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:e.handedness,target:this}))}else null!==d&&e.gripSpace&&(s=t.getPose(e.gripSpace,i),null!==s&&(d.matrix.fromArray(s.transform.matrix),d.matrix.decompose(d.position,d.rotation,d.scale),d.matrixWorldNeedsUpdate=!0,s.linearVelocity?(d.hasLinearVelocity=!0,d.linearVelocity.copy(s.linearVelocity)):d.hasLinearVelocity=!1,s.angularVelocity?(d.hasAngularVelocity=!0,d.angularVelocity.copy(s.angularVelocity)):d.hasAngularVelocity=!1));null!==l&&(r=t.getPose(e.targetRaySpace,i),null===r&&null!==s&&(r=s),null!==r&&(l.matrix.fromArray(r.transform.matrix),l.matrix.decompose(l.position,l.rotation,l.scale),l.matrixWorldNeedsUpdate=!0,r.linearVelocity?(l.hasLinearVelocity=!0,l.linearVelocity.copy(r.linearVelocity)):l.hasLinearVelocity=!1,r.angularVelocity?(l.hasAngularVelocity=!0,l.angularVelocity.copy(r.angularVelocity)):l.hasAngularVelocity=!1,this.dispatchEvent(gfe)))}return null!==l&&(l.visible=null!==r),null!==d&&(d.visible=null!==s),null!==u&&(u.visible=null!==o),this}_getHandJoint(e,t){if(void 0===e.joints[t.jointName]){const i=new Wl;i.matrixAutoUpdate=!1,i.visible=!1,e.joints[t.jointName]=i,e.add(i)}return e.joints[t.jointName]}}class vfe{constructor(){this.texture=null,this.mesh=null,this.depthNear=0,this.depthFar=0}init(e,t,i){if(null===this.texture){const r=new zh;e.properties.get(r).__webglTexture=t.texture,(t.depthNear!=i.depthNear||t.depthFar!=i.depthFar)&&(this.depthNear=t.depthNear,this.depthFar=t.depthFar),this.texture=r}}render(e,t){if(null!==this.texture){if(null===this.mesh){const i=t.cameras[0].viewport,r=new Du({extensions:{fragDepth:!0},vertexShader:"\nvoid main() {\n\n\tgl_Position = vec4( position, 1.0 );\n\n}",fragmentShader:"\nuniform sampler2DArray depthColor;\nuniform float depthWidth;\nuniform float depthHeight;\n\nvoid main() {\n\n\tvec2 coord = vec2( gl_FragCoord.x / depthWidth, gl_FragCoord.y / depthHeight );\n\n\tif ( coord.x >= 1.0 ) {\n\n\t\tgl_FragDepthEXT = texture( depthColor, vec3( coord.x - 1.0, coord.y, 1 ) ).r;\n\n\t} else {\n\n\t\tgl_FragDepthEXT = texture( depthColor, vec3( coord.x, coord.y, 0 ) ).r;\n\n\t}\n\n}",uniforms:{depthColor:{value:this.texture},depthWidth:{value:i.z},depthHeight:{value:i.w}}});this.mesh=new ua(new q2(20,20),r)}e.render(this.mesh,t)}}reset(){this.texture=null,this.mesh=null}}class bfe extends G_{constructor(e,t){super();const i=this;let r=null,s=1,o=null,l="local-floor",d=1,u=null,f=null,A=null,S=null,R=null,G=null;const re=new vfe,se=t.getContextAttributes();let le=null,Ee=null;const Ce=[],We=[],Mt=new Qi;let yt=null;const Et=new Iu;Et.layers.enable(1),Et.viewport=new nc;const Xt=new Iu;Xt.layers.enable(2),Xt.viewport=new nc;const Un=[Et,Xt],wt=new WV;wt.layers.enable(1),wt.layers.enable(2);let Kt=null,Vi=null;function Yi(fi){const Rr=We.indexOf(fi.inputSource);if(-1===Rr)return;const ms=Ce[Rr];void 0!==ms&&(ms.update(fi.inputSource,fi.frame,u||o),ms.dispatchEvent({type:fi.type,data:fi.inputSource}))}function En(){r.removeEventListener("select",Yi),r.removeEventListener("selectstart",Yi),r.removeEventListener("selectend",Yi),r.removeEventListener("squeeze",Yi),r.removeEventListener("squeezestart",Yi),r.removeEventListener("squeezeend",Yi),r.removeEventListener("end",En),r.removeEventListener("inputsourceschange",wi);for(let fi=0;fi=0&&(We[Fs]=null,Ce[Fs].disconnect(ms))}for(let Rr=0;Rr=We.length){We.push(ms),Fs=ws;break}if(null===We[ws]){We[ws]=ms,Fs=ws;break}}if(-1===Fs)break}const Us=Ce[Fs];Us&&Us.connect(ms)}}this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(fi){let Rr=Ce[fi];return void 0===Rr&&(Rr=new R5,Ce[fi]=Rr),Rr.getTargetRaySpace()},this.getControllerGrip=function(fi){let Rr=Ce[fi];return void 0===Rr&&(Rr=new R5,Ce[fi]=Rr),Rr.getGripSpace()},this.getHand=function(fi){let Rr=Ce[fi];return void 0===Rr&&(Rr=new R5,Ce[fi]=Rr),Rr.getHandSpace()},this.setFramebufferScaleFactor=function(fi){s=fi,!0===i.isPresenting&&console.warn("THREE.WebXRManager: Cannot change framebuffer scale while presenting.")},this.setReferenceSpaceType=function(fi){l=fi,!0===i.isPresenting&&console.warn("THREE.WebXRManager: Cannot change reference space type while presenting.")},this.getReferenceSpace=function(){return u||o},this.setReferenceSpace=function(fi){u=fi},this.getBaseLayer=function(){return null!==S?S:R},this.getBinding=function(){return A},this.getFrame=function(){return G},this.getSession=function(){return r},this.setSession=function(){var fi=(0,Te.A)(function*(Rr){if(r=Rr,null!==r){if(le=e.getRenderTarget(),r.addEventListener("select",Yi),r.addEventListener("selectstart",Yi),r.addEventListener("selectend",Yi),r.addEventListener("squeeze",Yi),r.addEventListener("squeezestart",Yi),r.addEventListener("squeezeend",Yi),r.addEventListener("end",En),r.addEventListener("inputsourceschange",wi),!0!==se.xrCompatible&&(yield t.makeXRCompatible()),yt=e.getPixelRatio(),e.getSize(Mt),void 0===r.renderState.layers||!1===e.capabilities.isWebGL2)R=new XRWebGLLayer(r,t,{antialias:void 0!==r.renderState.layers||se.antialias,alpha:!0,depth:se.depth,stencil:se.stencil,framebufferScaleFactor:s}),r.updateRenderState({baseLayer:R}),e.setPixelRatio(1),e.setSize(R.framebufferWidth,R.framebufferHeight,!1),Ee=new Wu(R.framebufferWidth,R.framebufferHeight,{format:gp,type:Fy,colorSpace:e.outputColorSpace,stencilBuffer:se.stencil});else{let ms=null,Fs=null,Us=null;se.depth&&(Us=se.stencil?t.DEPTH24_STENCIL8:t.DEPTH_COMPONENT24,ms=se.stencil?v2:Tb,Fs=se.stencil?Eb:Oy);const ws={colorFormat:t.RGBA8,depthFormat:Us,scaleFactor:s};A=new XRWebGLBinding(r,t),S=A.createProjectionLayer(ws),r.updateRenderState({layers:[S]}),e.setPixelRatio(1),e.setSize(S.textureWidth,S.textureHeight,!1),Ee=new Wu(S.textureWidth,S.textureHeight,{format:gp,type:Fy,depthTexture:new CV(S.textureWidth,S.textureHeight,Fs,void 0,void 0,void 0,void 0,void 0,void 0,ms),stencilBuffer:se.stencil,colorSpace:e.outputColorSpace,samples:se.antialias?4:0}),e.properties.get(Ee).__ignoreDepthValues=S.ignoreDepthValues}Ee.isXRRenderTarget=!0,this.setFoveation(d),u=null,o=yield r.requestReferenceSpace(l),$s.setContext(r),$s.start(),i.isPresenting=!0,i.dispatchEvent({type:"sessionstart"})}});return function(Rr){return fi.apply(this,arguments)}}(),this.getEnvironmentBlendMode=function(){if(null!==r)return r.environmentBlendMode};const zn=new It,oi=new It;function vi(fi,Rr){null===Rr?fi.matrixWorld.copy(fi.matrix):fi.matrixWorld.multiplyMatrices(Rr.matrixWorld,fi.matrix),fi.matrixWorldInverse.copy(fi.matrixWorld).invert()}this.updateCamera=function(fi){if(null===r)return;null!==re.texture&&(fi.near=re.depthNear,fi.far=re.depthFar),wt.near=Xt.near=Et.near=fi.near,wt.far=Xt.far=Et.far=fi.far,(Kt!==wt.near||Vi!==wt.far)&&(r.updateRenderState({depthNear:wt.near,depthFar:wt.far}),Kt=wt.near,Vi=wt.far,Et.near=Kt,Et.far=Vi,Xt.near=Kt,Xt.far=Vi,Et.updateProjectionMatrix(),Xt.updateProjectionMatrix(),fi.updateProjectionMatrix());const Rr=fi.parent,ms=wt.cameras;vi(wt,Rr);for(let Fs=0;Fs0&&(se.alphaTest.value=le.alphaTest);const Ee=e.get(le),Ce=Ee.envMap,We=Ee.envMapRotation;if(Ce&&(se.envMap.value=Ce,zb.copy(We),zb.x*=-1,zb.y*=-1,zb.z*=-1,Ce.isCubeTexture&&!1===Ce.isRenderTargetTexture&&(zb.y*=-1,zb.z*=-1),se.envMapRotation.value.setFromMatrix4(xfe.makeRotationFromEuler(zb)),se.flipEnvMap.value=Ce.isCubeTexture&&!1===Ce.isRenderTargetTexture?-1:1,se.reflectivity.value=le.reflectivity,se.ior.value=le.ior,se.refractionRatio.value=le.refractionRatio),le.lightMap){se.lightMap.value=le.lightMap;const Mt=!0===n._useLegacyLights?Math.PI:1;se.lightMapIntensity.value=le.lightMapIntensity*Mt,t(le.lightMap,se.lightMapTransform)}le.aoMap&&(se.aoMap.value=le.aoMap,se.aoMapIntensity.value=le.aoMapIntensity,t(le.aoMap,se.aoMapTransform))}return{refreshFogUniforms:function i(se,le){le.color.getRGB(se.fogColor.value,fV(n)),le.isFog?(se.fogNear.value=le.near,se.fogFar.value=le.far):le.isFogExp2&&(se.fogDensity.value=le.density)},refreshMaterialUniforms:function r(se,le,Ee,Ce,We){le.isMeshBasicMaterial||le.isMeshLambertMaterial?s(se,le):le.isMeshToonMaterial?(s(se,le),function A(se,le){le.gradientMap&&(se.gradientMap.value=le.gradientMap)}(se,le)):le.isMeshPhongMaterial?(s(se,le),function f(se,le){se.specular.value.copy(le.specular),se.shininess.value=Math.max(le.shininess,1e-4)}(se,le)):le.isMeshStandardMaterial?(s(se,le),function S(se,le){se.metalness.value=le.metalness,le.metalnessMap&&(se.metalnessMap.value=le.metalnessMap,t(le.metalnessMap,se.metalnessMapTransform)),se.roughness.value=le.roughness,le.roughnessMap&&(se.roughnessMap.value=le.roughnessMap,t(le.roughnessMap,se.roughnessMapTransform)),e.get(le).envMap&&(se.envMapIntensity.value=le.envMapIntensity)}(se,le),le.isMeshPhysicalMaterial&&function R(se,le,Ee){se.ior.value=le.ior,le.sheen>0&&(se.sheenColor.value.copy(le.sheenColor).multiplyScalar(le.sheen),se.sheenRoughness.value=le.sheenRoughness,le.sheenColorMap&&(se.sheenColorMap.value=le.sheenColorMap,t(le.sheenColorMap,se.sheenColorMapTransform)),le.sheenRoughnessMap&&(se.sheenRoughnessMap.value=le.sheenRoughnessMap,t(le.sheenRoughnessMap,se.sheenRoughnessMapTransform))),le.clearcoat>0&&(se.clearcoat.value=le.clearcoat,se.clearcoatRoughness.value=le.clearcoatRoughness,le.clearcoatMap&&(se.clearcoatMap.value=le.clearcoatMap,t(le.clearcoatMap,se.clearcoatMapTransform)),le.clearcoatRoughnessMap&&(se.clearcoatRoughnessMap.value=le.clearcoatRoughnessMap,t(le.clearcoatRoughnessMap,se.clearcoatRoughnessMapTransform)),le.clearcoatNormalMap&&(se.clearcoatNormalMap.value=le.clearcoatNormalMap,t(le.clearcoatNormalMap,se.clearcoatNormalMapTransform),se.clearcoatNormalScale.value.copy(le.clearcoatNormalScale),1===le.side&&se.clearcoatNormalScale.value.negate())),le.iridescence>0&&(se.iridescence.value=le.iridescence,se.iridescenceIOR.value=le.iridescenceIOR,se.iridescenceThicknessMinimum.value=le.iridescenceThicknessRange[0],se.iridescenceThicknessMaximum.value=le.iridescenceThicknessRange[1],le.iridescenceMap&&(se.iridescenceMap.value=le.iridescenceMap,t(le.iridescenceMap,se.iridescenceMapTransform)),le.iridescenceThicknessMap&&(se.iridescenceThicknessMap.value=le.iridescenceThicknessMap,t(le.iridescenceThicknessMap,se.iridescenceThicknessMapTransform))),le.transmission>0&&(se.transmission.value=le.transmission,se.transmissionSamplerMap.value=Ee.texture,se.transmissionSamplerSize.value.set(Ee.width,Ee.height),le.transmissionMap&&(se.transmissionMap.value=le.transmissionMap,t(le.transmissionMap,se.transmissionMapTransform)),se.thickness.value=le.thickness,le.thicknessMap&&(se.thicknessMap.value=le.thicknessMap,t(le.thicknessMap,se.thicknessMapTransform)),se.attenuationDistance.value=le.attenuationDistance,se.attenuationColor.value.copy(le.attenuationColor)),le.anisotropy>0&&(se.anisotropyVector.value.set(le.anisotropy*Math.cos(le.anisotropyRotation),le.anisotropy*Math.sin(le.anisotropyRotation)),le.anisotropyMap&&(se.anisotropyMap.value=le.anisotropyMap,t(le.anisotropyMap,se.anisotropyMapTransform))),se.specularIntensity.value=le.specularIntensity,se.specularColor.value.copy(le.specularColor),le.specularColorMap&&(se.specularColorMap.value=le.specularColorMap,t(le.specularColorMap,se.specularColorMapTransform)),le.specularIntensityMap&&(se.specularIntensityMap.value=le.specularIntensityMap,t(le.specularIntensityMap,se.specularIntensityMapTransform))}(se,le,We)):le.isMeshMatcapMaterial?(s(se,le),function G(se,le){le.matcap&&(se.matcap.value=le.matcap)}(se,le)):le.isMeshDepthMaterial?s(se,le):le.isMeshDistanceMaterial?(s(se,le),function re(se,le){const Ee=e.get(le).light;se.referencePosition.value.setFromMatrixPosition(Ee.matrixWorld),se.nearDistance.value=Ee.shadow.camera.near,se.farDistance.value=Ee.shadow.camera.far}(se,le)):le.isMeshNormalMaterial?s(se,le):le.isLineBasicMaterial?(function o(se,le){se.diffuse.value.copy(le.color),se.opacity.value=le.opacity,le.map&&(se.map.value=le.map,t(le.map,se.mapTransform))}(se,le),le.isLineDashedMaterial&&function l(se,le){se.dashSize.value=le.dashSize,se.totalSize.value=le.dashSize+le.gapSize,se.scale.value=le.scale}(se,le)):le.isPointsMaterial?function d(se,le,Ee,Ce){se.diffuse.value.copy(le.color),se.opacity.value=le.opacity,se.size.value=le.size*Ee,se.scale.value=.5*Ce,le.map&&(se.map.value=le.map,t(le.map,se.uvTransform)),le.alphaMap&&(se.alphaMap.value=le.alphaMap,t(le.alphaMap,se.alphaMapTransform)),le.alphaTest>0&&(se.alphaTest.value=le.alphaTest)}(se,le,Ee,Ce):le.isSpriteMaterial?function u(se,le){se.diffuse.value.copy(le.color),se.opacity.value=le.opacity,se.rotation.value=le.rotation,le.map&&(se.map.value=le.map,t(le.map,se.mapTransform)),le.alphaMap&&(se.alphaMap.value=le.alphaMap,t(le.alphaMap,se.alphaMapTransform)),le.alphaTest>0&&(se.alphaTest.value=le.alphaTest)}(se,le):le.isShadowMaterial?(se.color.value.copy(le.color),se.opacity.value=le.opacity):le.isShaderMaterial&&(le.uniformsNeedUpdate=!1)}}}function Cfe(n,e,t,i){let r={},s={},o=[];const l=t.isWebGL2?n.getParameter(n.MAX_UNIFORM_BUFFER_BINDINGS):0;function R(Ee,Ce,We,Mt){const yt=Ee.value,Et=Ce+"_"+We;if(void 0===Mt[Et])return Mt[Et]="number"==typeof yt||"boolean"==typeof yt?yt:yt.clone(),!0;{const Xt=Mt[Et];if("number"==typeof yt||"boolean"==typeof yt){if(Xt!==yt)return Mt[Et]=yt,!0}else if(!1===Xt.equals(yt))return Xt.copy(yt),!0}return!1}function re(Ee){const Ce={boundary:0,storage:0};return"number"==typeof Ee||"boolean"==typeof Ee?(Ce.boundary=4,Ce.storage=4):Ee.isVector2?(Ce.boundary=8,Ce.storage=8):Ee.isVector3||Ee.isColor?(Ce.boundary=16,Ce.storage=12):Ee.isVector4?(Ce.boundary=16,Ce.storage=16):Ee.isMatrix3?(Ce.boundary=48,Ce.storage=48):Ee.isMatrix4?(Ce.boundary=64,Ce.storage=64):Ee.isTexture?console.warn("THREE.WebGLRenderer: Texture samplers can not be part of an uniforms group."):console.warn("THREE.WebGLRenderer: Unsupported uniform value type.",Ee),Ce}function se(Ee){const Ce=Ee.target;Ce.removeEventListener("dispose",se);const We=o.indexOf(Ce.__bindingPointIndex);o.splice(We,1),n.deleteBuffer(r[Ce.id]),delete r[Ce.id],delete s[Ce.id]}return{bind:function d(Ee,Ce){i.uniformBlockBinding(Ee,Ce.program)},update:function u(Ee,Ce){let We=r[Ee.id];void 0===We&&(function G(Ee){const Ce=Ee.uniforms;let We=0;for(let Et=0,Xt=Ce.length;Et0&&(We+=16-yt),Ee.__size=We,Ee.__cache={}}(Ee),We=function f(Ee){const Ce=function A(){for(let Ee=0;Ee0),Fa=!!$i.morphAttributes.position,Wd=!!$i.morphAttributes.normal,bm=!!$i.morphAttributes.color;let Ku=By;tr.toneMapped&&(null===Et||!0===Et.isXRRenderTarget)&&(Ku=Ce.toneMapping);const c1=$i.morphAttributes.position||$i.morphAttributes.normal||$i.morphAttributes.color,ud=void 0!==c1?c1.length:0,Ua=qs.get(tr),hN=se.state.lights;!0!==fi||!0!==Rr&&mn===Un||As.setState(tr,mn,mn===Un&&tr.id===Xt);let Zc=!1;tr.version===Ua.__version?(Ua.needsLights&&Ua.lightsStateVersion!==hN.state.version||Ua.outputColorSpace!==la||Ni.isBatchedMesh&&!1===Ua.batching||!Ni.isBatchedMesh&&!0===Ua.batching||Ni.isInstancedMesh&&!1===Ua.instancing||!Ni.isInstancedMesh&&!0===Ua.instancing||Ni.isSkinnedMesh&&!1===Ua.skinning||!Ni.isSkinnedMesh&&!0===Ua.skinning||Ni.isInstancedMesh&&!0===Ua.instancingColor&&null===Ni.instanceColor||Ni.isInstancedMesh&&!1===Ua.instancingColor&&null!==Ni.instanceColor||Ni.isInstancedMesh&&!0===Ua.instancingMorph&&null===Ni.morphTexture||Ni.isInstancedMesh&&!1===Ua.instancingMorph&&null!==Ni.morphTexture||Ua.envMap!==ya||!0===tr.fog&&Ua.fog!==Ks||void 0!==Ua.numClippingPlanes&&(Ua.numClippingPlanes!==As.numPlanes||Ua.numIntersection!==As.numIntersection)||Ua.vertexAlphas!==Qa||Ua.vertexTangents!==Da||Ua.morphTargets!==Fa||Ua.morphNormals!==Wd||Ua.morphColors!==bm||Ua.toneMapping!==Ku||!0===ls.isWebGL2&&Ua.morphTargetsCount!==ud)&&(Zc=!0):(Zc=!0,Ua.__version=tr.version);let Mx=Ua.currentProgram;!0===Zc&&(Mx=DB(tr,gi,Ni));let RX=!1,oT=!1,fN=!1;const jh=Mx.getUniforms(),Sx=Ua.uniforms;if(Tr.useProgram(Mx.program)&&(RX=!0,oT=!0,fN=!0),tr.id!==Xt&&(Xt=tr.id,oT=!0),RX||Un!==mn){jh.setValue(On,"projectionMatrix",mn.projectionMatrix),jh.setValue(On,"viewMatrix",mn.matrixWorldInverse);const gA=jh.map.cameraPosition;void 0!==gA&&gA.setValue(On,ws.setFromMatrixPosition(mn.matrixWorld)),ls.logarithmicDepthBuffer&&jh.setValue(On,"logDepthBufFC",2/(Math.log(mn.far+1)/Math.LN2)),(tr.isMeshPhongMaterial||tr.isMeshToonMaterial||tr.isMeshLambertMaterial||tr.isMeshBasicMaterial||tr.isMeshStandardMaterial||tr.isShaderMaterial)&&jh.setValue(On,"isOrthographic",!0===mn.isOrthographicCamera),Un!==mn&&(Un=mn,oT=!0,fN=!0)}if(Ni.isSkinnedMesh){jh.setOptional(On,Ni,"bindMatrix"),jh.setOptional(On,Ni,"bindMatrixInverse");const gA=Ni.skeleton;gA&&(ls.floatVertexTextures?(null===gA.boneTexture&&gA.computeBoneTexture(),jh.setValue(On,"boneTexture",gA.boneTexture,uo)):console.warn("THREE.WebGLRenderer: SkinnedMesh can only be used with WebGL 2. With WebGL 1 OES_texture_float and vertex textures support is required."))}Ni.isBatchedMesh&&(jh.setOptional(On,Ni,"batchingTexture"),jh.setValue(On,"batchingTexture",Ni._matricesTexture,uo));const pN=$i.morphAttributes;if((void 0!==pN.position||void 0!==pN.normal||void 0!==pN.color&&!0===ls.isWebGL2)&&hs.update(Ni,$i,Mx),(oT||Ua.receiveShadow!==Ni.receiveShadow)&&(Ua.receiveShadow=Ni.receiveShadow,jh.setValue(On,"receiveShadow",Ni.receiveShadow)),tr.isMeshGouraudMaterial&&null!==tr.envMap&&(Sx.envMap.value=ya,Sx.flipEnvMap.value=ya.isCubeTexture&&!1===ya.isRenderTargetTexture?-1:1),oT&&(jh.setValue(On,"toneMappingExposure",Ce.toneMappingExposure),Ua.needsLights&&function $Ce(mn,gi){mn.ambientLightColor.needsUpdate=gi,mn.lightProbe.needsUpdate=gi,mn.directionalLights.needsUpdate=gi,mn.directionalLightShadows.needsUpdate=gi,mn.pointLights.needsUpdate=gi,mn.pointLightShadows.needsUpdate=gi,mn.spotLights.needsUpdate=gi,mn.spotLightShadows.needsUpdate=gi,mn.rectAreaLights.needsUpdate=gi,mn.hemisphereLights.needsUpdate=gi}(Sx,fN),Ks&&!0===tr.fog&&Fr.refreshFogUniforms(Sx,Ks),Fr.refreshMaterialUniforms(Sx,tr,oi,zn,ms),xI.upload(On,BX(Ua),Sx,uo)),tr.isShaderMaterial&&!0===tr.uniformsNeedUpdate&&(xI.upload(On,BX(Ua),Sx,uo),tr.uniformsNeedUpdate=!1),tr.isSpriteMaterial&&jh.setValue(On,"center",Ni.center),jh.setValue(On,"modelViewMatrix",Ni.modelViewMatrix),jh.setValue(On,"normalMatrix",Ni.normalMatrix),jh.setValue(On,"modelMatrix",Ni.matrixWorld),tr.isShaderMaterial||tr.isRawShaderMaterial){const gA=tr.uniformsGroups;for(let mN=0,YCe=gA.length;mN{function Ks(){tr.forEach(function(Do){qs.get(Do).currentProgram.isReady()&&tr.delete(Do)}),0!==tr.size?setTimeout(Ks,10):Ni(mn)}null!==gr.get("KHR_parallel_shader_compile")?Ks():setTimeout(Ks,10)})};let jl=null;function Ed(){Qc.stop()}function Ml(){Qc.start()}const Qc=new AV;function Wh(mn,gi,$i,tr){if(!1===mn.visible)return;if(mn.layers.test(gi.layers))if(mn.isGroup)$i=mn.renderOrder;else if(mn.isLOD)!0===mn.autoUpdate&&mn.update(gi);else if(mn.isLight)se.pushLight(mn),mn.castShadow&&se.pushShadow(mn);else if(mn.isSprite){if(!mn.frustumCulled||$s.intersectsSprite(mn)){tr&&ws.setFromMatrixPosition(mn.matrixWorld).applyMatrix4(Fs);const Do=hr.update(mn),la=mn.material;la.visible&&re.push(mn,Do,la,$i,ws.z,null)}}else if((mn.isMesh||mn.isLine||mn.isPoints)&&(!mn.frustumCulled||$s.intersectsObject(mn))){const Do=hr.update(mn),la=mn.material;if(tr&&(void 0!==mn.boundingSphere?(null===mn.boundingSphere&&mn.computeBoundingSphere(),ws.copy(mn.boundingSphere.center)):(null===Do.boundingSphere&&Do.computeBoundingSphere(),ws.copy(Do.boundingSphere.center)),ws.applyMatrix4(mn.matrixWorld).applyMatrix4(Fs)),Array.isArray(la)){const ya=Do.groups;for(let Qa=0,Da=ya.length;Qa0&&function EB(mn,gi,$i,tr){if(null!==(!0===$i.isScene?$i.overrideMaterial:null))return;const Ks=ls.isWebGL2;null===ms&&(ms=new Wu(1,1,{generateMipmaps:!0,type:gr.has("EXT_color_buffer_half_float")?lA:Fy,minFilter:oA,samples:Ks?4:0})),Ce.getDrawingBufferSize(Us),Ks?ms.setSize(Us.x,Us.y):ms.setSize(KD(Us.x),KD(Us.y));const Do=Ce.getRenderTarget();Ce.setRenderTarget(ms),Ce.getClearColor(Yi),En=Ce.getClearAlpha(),En<1&&Ce.setClearColor(16777215,.5),Ce.clear();const la=Ce.toneMapping;Ce.toneMapping=By,TB(mn,$i,tr),uo.updateMultisampleRenderTarget(ms),uo.updateRenderTargetMipmap(ms);let ya=!1;for(let Qa=0,Da=gi.length;Qa0&&TB(Ni,gi,$i),Ks.length>0&&TB(Ks,gi,$i),Do.length>0&&TB(Do,gi,$i),Tr.buffers.depth.setTest(!0),Tr.buffers.depth.setMask(!0),Tr.buffers.color.setMask(!0),Tr.setPolygonOffset(!1)}function TB(mn,gi,$i){const tr=!0===gi.isScene?gi.overrideMaterial:null;for(let Ni=0,Ks=mn.length;Ni0?Ee[Ee.length-1]:null,le.pop(),re=le.length>0?le[le.length-1]:null}}else console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.")},this.getActiveCubeFace=function(){return Mt},this.getActiveMipmapLevel=function(){return yt},this.getRenderTarget=function(){return Et},this.setRenderTargetTextures=function(mn,gi,$i){qs.get(mn.texture).__webglTexture=gi,qs.get(mn.depthTexture).__webglTexture=$i;const tr=qs.get(mn);tr.__hasExternalTextures=!0,tr.__autoAllocateDepthBuffer=void 0===$i,tr.__autoAllocateDepthBuffer||!0===gr.has("WEBGL_multisampled_render_to_texture")&&(console.warn("THREE.WebGLRenderer: Render-to-texture extension was disabled because an external texture was provided"),tr.__useRenderToTexture=!1)},this.setRenderTargetFramebuffer=function(mn,gi){const $i=qs.get(mn);$i.__webglFramebuffer=gi,$i.__useDefaultFramebuffer=void 0===gi},this.setRenderTarget=function(mn,gi=0,$i=0){Et=mn,Mt=gi,yt=$i;let tr=!0,Ni=null,Ks=!1,Do=!1;if(mn){const ya=qs.get(mn);void 0!==ya.__useDefaultFramebuffer?(Tr.bindFramebuffer(On.FRAMEBUFFER,null),tr=!1):void 0===ya.__webglFramebuffer?uo.setupRenderTarget(mn):ya.__hasExternalTextures&&uo.rebindTextures(mn,qs.get(mn.texture).__webglTexture,qs.get(mn.depthTexture).__webglTexture);const Qa=mn.texture;(Qa.isData3DTexture||Qa.isDataArrayTexture||Qa.isCompressedArrayTexture)&&(Do=!0);const Da=qs.get(mn).__webglFramebuffer;mn.isWebGLCubeRenderTarget?(Ni=Array.isArray(Da[gi])?Da[gi][$i]:Da[gi],Ks=!0):Ni=ls.isWebGL2&&mn.samples>0&&!1===uo.useMultisampledRTT(mn)?qs.get(mn).__webglMultisampledFramebuffer:Array.isArray(Da)?Da[$i]:Da,wt.copy(mn.viewport),Kt.copy(mn.scissor),Vi=mn.scissorTest}else wt.copy(mr).multiplyScalar(oi).floor(),Kt.copy(Mr).multiplyScalar(oi).floor(),Vi=ns;if(Tr.bindFramebuffer(On.FRAMEBUFFER,Ni)&&ls.drawBuffers&&tr&&Tr.drawBuffers(mn,Ni),Tr.viewport(wt),Tr.scissor(Kt),Tr.setScissorTest(Vi),Ks){const ya=qs.get(mn.texture);On.framebufferTexture2D(On.FRAMEBUFFER,On.COLOR_ATTACHMENT0,On.TEXTURE_CUBE_MAP_POSITIVE_X+gi,ya.__webglTexture,$i)}else if(Do){const ya=qs.get(mn.texture);On.framebufferTextureLayer(On.FRAMEBUFFER,On.COLOR_ATTACHMENT0,ya.__webglTexture,$i||0,gi||0)}Xt=-1},this.readRenderTargetPixels=function(mn,gi,$i,tr,Ni,Ks,Do){if(!mn||!mn.isWebGLRenderTarget)return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");let la=qs.get(mn).__webglFramebuffer;if(mn.isWebGLCubeRenderTarget&&void 0!==Do&&(la=la[Do]),la){Tr.bindFramebuffer(On.FRAMEBUFFER,la);try{const ya=mn.texture,Qa=ya.format,Da=ya.type;if(Qa!==gp&&Ro.convert(Qa)!==On.getParameter(On.IMPLEMENTATION_COLOR_READ_FORMAT))return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");const Fa=Da===lA&&(gr.has("EXT_color_buffer_half_float")||ls.isWebGL2&&gr.has("EXT_color_buffer_float"));if(!(Da===Fy||Ro.convert(Da)===On.getParameter(On.IMPLEMENTATION_COLOR_READ_TYPE)||Da===aA&&(ls.isWebGL2||gr.has("OES_texture_float")||gr.has("WEBGL_color_buffer_float"))||Fa))return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");gi>=0&&gi<=mn.width-tr&&$i>=0&&$i<=mn.height-Ni&&On.readPixels(gi,$i,tr,Ni,Ro.convert(Qa),Ro.convert(Da),Ks)}finally{const ya=null!==Et?qs.get(Et).__webglFramebuffer:null;Tr.bindFramebuffer(On.FRAMEBUFFER,ya)}}},this.copyFramebufferToTexture=function(mn,gi,$i=0){const tr=Math.pow(2,-$i),Ni=Math.floor(gi.image.width*tr),Ks=Math.floor(gi.image.height*tr);uo.setTexture2D(gi,0),On.copyTexSubImage2D(On.TEXTURE_2D,$i,0,0,mn.x,mn.y,Ni,Ks),Tr.unbindTexture()},this.copyTextureToTexture=function(mn,gi,$i,tr=0){const Ni=gi.image.width,Ks=gi.image.height,Do=Ro.convert($i.format),la=Ro.convert($i.type);uo.setTexture2D($i,0),On.pixelStorei(On.UNPACK_FLIP_Y_WEBGL,$i.flipY),On.pixelStorei(On.UNPACK_PREMULTIPLY_ALPHA_WEBGL,$i.premultiplyAlpha),On.pixelStorei(On.UNPACK_ALIGNMENT,$i.unpackAlignment),gi.isDataTexture?On.texSubImage2D(On.TEXTURE_2D,tr,mn.x,mn.y,Ni,Ks,Do,la,gi.image.data):gi.isCompressedTexture?On.compressedTexSubImage2D(On.TEXTURE_2D,tr,mn.x,mn.y,gi.mipmaps[0].width,gi.mipmaps[0].height,Do,gi.mipmaps[0].data):On.texSubImage2D(On.TEXTURE_2D,tr,mn.x,mn.y,Do,la,gi.image),0===tr&&$i.generateMipmaps&&On.generateMipmap(On.TEXTURE_2D),Tr.unbindTexture()},this.copyTextureToTexture3D=function(mn,gi,$i,tr,Ni=0){if(Ce.isWebGL1Renderer)return void console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: can only be used with WebGL2.");const Ks=Math.round(mn.max.x-mn.min.x),Do=Math.round(mn.max.y-mn.min.y),la=mn.max.z-mn.min.z+1,ya=Ro.convert(tr.format),Qa=Ro.convert(tr.type);let Da;if(tr.isData3DTexture)uo.setTexture3D(tr,0),Da=On.TEXTURE_3D;else{if(!tr.isDataArrayTexture&&!tr.isCompressedArrayTexture)return void console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.");uo.setTexture2DArray(tr,0),Da=On.TEXTURE_2D_ARRAY}On.pixelStorei(On.UNPACK_FLIP_Y_WEBGL,tr.flipY),On.pixelStorei(On.UNPACK_PREMULTIPLY_ALPHA_WEBGL,tr.premultiplyAlpha),On.pixelStorei(On.UNPACK_ALIGNMENT,tr.unpackAlignment);const Fa=On.getParameter(On.UNPACK_ROW_LENGTH),Wd=On.getParameter(On.UNPACK_IMAGE_HEIGHT),bm=On.getParameter(On.UNPACK_SKIP_PIXELS),Ku=On.getParameter(On.UNPACK_SKIP_ROWS),c1=On.getParameter(On.UNPACK_SKIP_IMAGES),ud=$i.isCompressedTexture?$i.mipmaps[Ni]:$i.image;On.pixelStorei(On.UNPACK_ROW_LENGTH,ud.width),On.pixelStorei(On.UNPACK_IMAGE_HEIGHT,ud.height),On.pixelStorei(On.UNPACK_SKIP_PIXELS,mn.min.x),On.pixelStorei(On.UNPACK_SKIP_ROWS,mn.min.y),On.pixelStorei(On.UNPACK_SKIP_IMAGES,mn.min.z),$i.isDataTexture||$i.isData3DTexture?On.texSubImage3D(Da,Ni,gi.x,gi.y,gi.z,Ks,Do,la,ya,Qa,ud.data):tr.isCompressedArrayTexture?On.compressedTexSubImage3D(Da,Ni,gi.x,gi.y,gi.z,Ks,Do,la,ya,ud.data):On.texSubImage3D(Da,Ni,gi.x,gi.y,gi.z,Ks,Do,la,ya,Qa,ud),On.pixelStorei(On.UNPACK_ROW_LENGTH,Fa),On.pixelStorei(On.UNPACK_IMAGE_HEIGHT,Wd),On.pixelStorei(On.UNPACK_SKIP_PIXELS,bm),On.pixelStorei(On.UNPACK_SKIP_ROWS,Ku),On.pixelStorei(On.UNPACK_SKIP_IMAGES,c1),0===Ni&&tr.generateMipmaps&&On.generateMipmap(Da),Tr.unbindTexture()},this.initTexture=function(mn){mn.isCubeTexture?uo.setTextureCube(mn,0):mn.isData3DTexture?uo.setTexture3D(mn,0):mn.isDataArrayTexture||mn.isCompressedArrayTexture?uo.setTexture2DArray(mn,0):uo.setTexture2D(mn,0),Tr.unbindTexture()},this.resetState=function(){Mt=0,yt=0,Et=null,Tr.reset(),ho.reset()},typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}get coordinateSystem(){return V_}get outputColorSpace(){return this._outputColorSpace}set outputColorSpace(e){this._outputColorSpace=e;const t=this.getContext();t.drawingBufferColorSpace=e===Kk?"display-p3":"srgb",t.unpackColorSpace=Ol.workingColorSpace===QD?"display-p3":"srgb"}get useLegacyLights(){return console.warn("THREE.WebGLRenderer: The property .useLegacyLights has been deprecated. Migrate your lighting according to the following guide: https://discourse.threejs.org/t/updates-to-lighting-in-three-js-r155/53733."),this._useLegacyLights}set useLegacyLights(e){console.warn("THREE.WebGLRenderer: The property .useLegacyLights has been deprecated. Migrate your lighting according to the following guide: https://discourse.threejs.org/t/updates-to-lighting-in-three-js-r155/53733."),this._useLegacyLights=e}}(class Mfe extends wI{}).prototype.isWebGL1Renderer=!0;class k5{constructor(e,t=25e-5){this.isFogExp2=!0,this.name="",this.color=new Cr(e),this.density=t}clone(){return new k5(this.color,this.density)}toJSON(){return{type:"FogExp2",name:this.name,color:this.color.getHex(),density:this.density}}}class F5{constructor(e,t=1,i=1e3){this.isFog=!0,this.name="",this.color=new Cr(e),this.near=t,this.far=i}clone(){return new F5(this.color,this.near,this.far)}toJSON(){return{type:"Fog",name:this.name,color:this.color.getHex(),near:this.near,far:this.far}}}class XS extends Pl{constructor(){super(),this.isScene=!0,this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.backgroundBlurriness=0,this.backgroundIntensity=1,this.backgroundRotation=new S0,this.environmentRotation=new S0,this.overrideMaterial=null,typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}copy(e,t){return super.copy(e,t),null!==e.background&&(this.background=e.background.clone()),null!==e.environment&&(this.environment=e.environment.clone()),null!==e.fog&&(this.fog=e.fog.clone()),this.backgroundBlurriness=e.backgroundBlurriness,this.backgroundIntensity=e.backgroundIntensity,this.backgroundRotation.copy(e.backgroundRotation),this.environmentRotation.copy(e.environmentRotation),null!==e.overrideMaterial&&(this.overrideMaterial=e.overrideMaterial.clone()),this.matrixAutoUpdate=e.matrixAutoUpdate,this}toJSON(e){const t=super.toJSON(e);return null!==this.fog&&(t.object.fog=this.fog.toJSON()),this.backgroundBlurriness>0&&(t.object.backgroundBlurriness=this.backgroundBlurriness),1!==this.backgroundIntensity&&(t.object.backgroundIntensity=this.backgroundIntensity),t.object.backgroundRotation=this.backgroundRotation.toArray(),t.object.environmentRotation=this.environmentRotation.toArray(),t}}class CI{constructor(e,t){this.isInterleavedBuffer=!0,this.array=e,this.stride=t,this.count=void 0!==e?e.length/t:0,this.usage=35044,this._updateRange={offset:0,count:-1},this.updateRanges=[],this.version=0,this.uuid=dm()}onUploadCallback(){}set needsUpdate(e){!0===e&&this.version++}get updateRange(){return WH("THREE.InterleavedBuffer: updateRange() is deprecated and will be removed in r169. Use addUpdateRange() instead."),this._updateRange}setUsage(e){return this.usage=e,this}addUpdateRange(e,t){this.updateRanges.push({start:e,count:t})}clearUpdateRanges(){this.updateRanges.length=0}copy(e){return this.array=new e.array.constructor(e.array),this.count=e.count,this.stride=e.stride,this.usage=e.usage,this}copyAt(e,t,i){e*=this.stride,i*=t.stride;for(let r=0,s=this.stride;re.far||t.push({distance:d,point:YS.clone(),uv:hm.getInterpolation(YS,MI,ZS,SI,XV,O5,YV,new Qi),face:null,object:this})}copy(e,t){return super.copy(e,t),void 0!==e.center&&this.center.copy(e.center),this.material=e.material,this}}function EI(n,e,t,i,r,s){J2.subVectors(n,t).addScalar(.5).multiply(i),void 0!==r?(KS.x=s*J2.x-r*J2.y,KS.y=r*J2.x+s*J2.y):KS.copy(J2),n.copy(e),n.x+=KS.x,n.y+=KS.y,n.applyMatrix4($V)}const TI=new It,KV=new It;class Efe extends Pl{constructor(){super(),this._currentLevel=0,this.type="LOD",Object.defineProperties(this,{levels:{enumerable:!0,value:[]},isLOD:{value:!0}}),this.autoUpdate=!0}copy(e){super.copy(e,!1);const t=e.levels;for(let i=0,r=t.length;i0){let i,r;for(i=1,r=t.length;i0){TI.setFromMatrixPosition(this.matrixWorld);const r=e.ray.origin.distanceTo(TI);this.getObjectForDistance(r).raycast(e,t)}}update(e){const t=this.levels;if(t.length>1){TI.setFromMatrixPosition(e.matrixWorld),KV.setFromMatrixPosition(this.matrixWorld);const i=TI.distanceTo(KV)/e.zoom;let r,s;for(t[0].object.visible=!0,r=1,s=t.length;r=o))break;t[r-1].object.visible=!1,t[r].object.visible=!0}for(this._currentLevel=r-1;r=i.length&&i.push({start:-1,count:-1,z:-1});const s=i[this.index];r.push(s),this.index++,s.start=e.start,s.count=e.count,s.z=t}reset(){this.list.length=0,this.index=0}}const nC="batchId",Gy=new wo,lG=new wo,kfe=new wo,cG=new wo,z5=new _I,PI=new Pf,Gb=new ju,tE=new It,H5=new Rfe,Vh=new ua,RI=[];function Ffe(n,e,t=0){const i=e.itemSize;if(n.isInterleavedBufferAttribute||n.array.constructor!==e.array.constructor){const r=n.count;for(let s=0;s65536?new Uint32Array(s):new Uint16Array(s);t.setIndex(new No(l,1))}const o=r>65536?new Uint32Array(i):new Uint16Array(i);t.setAttribute(nC,new No(o,1)),this._geometryInitialized=!0}}_validateGeometry(e){if(e.getAttribute(nC))throw new Error(`BatchedMesh: Geometry cannot use attribute "${nC}"`);const t=this.geometry;if(!!e.getIndex()!=!!t.getIndex())throw new Error('BatchedMesh: All geometries must consistently have "index".');for(const i in t.attributes){if(i===nC)continue;if(!e.hasAttribute(i))throw new Error(`BatchedMesh: Added geometry missing "${i}". All geometries must have consistent attributes.`);const r=e.getAttribute(i),s=t.getAttribute(i);if(r.itemSize!==s.itemSize||r.normalized!==s.normalized)throw new Error("BatchedMesh: All attributes must have a consistent itemSize and normalized value.")}}setCustomSort(e){return this.customSort=e,this}computeBoundingBox(){null===this.boundingBox&&(this.boundingBox=new Pf);const e=this._geometryCount,t=this.boundingBox,i=this._active;t.makeEmpty();for(let r=0;r=this._maxGeometryCount)throw new Error("BatchedMesh: Maximum geometry count reached.");const r={vertexStart:-1,vertexCount:-1,indexStart:-1,indexCount:-1};let s=null;const o=this._reservedRanges,l=this._drawRanges,d=this._bounds;0!==this._geometryCount&&(s=o[o.length-1]),r.vertexCount=-1===t?e.getAttribute("position").count:t,r.vertexStart=null===s?0:s.vertexStart+s.vertexCount;const u=e.getIndex(),f=null!==u;if(f&&(r.indexCount=-1===i?u.count:i,r.indexStart=null===s?0:s.indexStart+s.indexCount),-1!==r.indexStart&&r.indexStart+r.indexCount>this._maxIndexCount||r.vertexStart+r.vertexCount>this._maxVertexCount)throw new Error("BatchedMesh: Reserved space request exceeds the maximum buffer size.");const S=this._active,R=this._matricesTexture,G=this._matricesTexture.image.data;this._visibility.push(!0),S.push(!0);const re=this._geometryCount;this._geometryCount++,kfe.toArray(G,16*re),R.needsUpdate=!0,o.push(r),l.push({start:f?r.indexStart:r.vertexStart,count:-1}),d.push({boxInitialized:!1,box:new Pf,sphereInitialized:!1,sphere:new ju});const se=this.geometry.getAttribute(nC);for(let le=0;le=this._geometryCount)throw new Error("BatchedMesh: Maximum geometry count reached.");this._validateGeometry(t);const i=this.geometry,r=null!==i.getIndex(),s=i.getIndex(),o=t.getIndex(),l=this._reservedRanges[e];if(r&&o.count>l.indexCount||t.attributes.position.count>l.vertexCount)throw new Error("BatchedMesh: Reserved space not large enough for provided geometry.");const d=l.vertexStart,u=l.vertexCount;for(const R in i.attributes){if(R===nC)continue;const G=t.getAttribute(R),re=i.getAttribute(R);Ffe(G,re,d);const se=G.itemSize;for(let le=G.count,Ee=u;le=t.length||!1===t[e]||(t[e]=!1,this._visibilityChanged=!0),this}getBoundingBoxAt(e,t){if(!1===this._active[e])return null;const r=this._bounds[e],s=r.box,o=this.geometry;if(!1===r.boxInitialized){s.makeEmpty();const l=o.index,d=o.attributes.position,u=this._drawRanges[e];for(let f=u.start,A=u.start+u.count;f=this._geometryCount||!1===this._active[e]||(t.toArray(this._matricesTexture.image.data,16*e),r.needsUpdate=!0),this}getMatrixAt(e,t){return e>=this._geometryCount||!1===this._active[e]?null:t.fromArray(this._matricesTexture.image.data,16*e)}setVisibleAt(e,t){const i=this._visibility;return e>=this._geometryCount||!1===this._active[e]||i[e]===t||(i[e]=t,this._visibilityChanged=!0),this}getVisibleAt(e){return!(e>=this._geometryCount||!1===this._active[e])&&this._visibility[e]}raycast(e,t){const i=this._visibility,r=this._active,s=this._drawRanges,o=this._geometryCount,l=this.matrixWorld,d=this.geometry;Vh.material=this.material,Vh.geometry.index=d.index,Vh.geometry.attributes=d.attributes,null===Vh.geometry.boundingBox&&(Vh.geometry.boundingBox=new Pf),null===Vh.geometry.boundingSphere&&(Vh.geometry.boundingSphere=new ju);for(let u=0;u({...t})),this._reservedRanges=e._reservedRanges.map(t=>({...t})),this._visibility=e._visibility.slice(),this._active=e._active.slice(),this._bounds=e._bounds.map(t=>({boxInitialized:t.boxInitialized,box:t.box.clone(),sphereInitialized:t.sphereInitialized,sphere:t.sphere.clone()})),this._maxGeometryCount=e._maxGeometryCount,this._maxVertexCount=e._maxVertexCount,this._maxIndexCount=e._maxIndexCount,this._geometryInitialized=e._geometryInitialized,this._geometryCount=e._geometryCount,this._multiDrawCounts=e._multiDrawCounts.slice(),this._multiDrawStarts=e._multiDrawStarts.slice(),this._matricesTexture=e._matricesTexture.clone(),this._matricesTexture.image.data=this._matricesTexture.image.slice(),this}dispose(){return this.geometry.dispose(),this._matricesTexture.dispose(),this._matricesTexture=null,this}onBeforeRender(e,t,i,r,s){if(!this._visibilityChanged&&!this.perObjectFrustumCulled&&!this.sortObjects)return;const o=r.getIndex(),l=null===o?1:o.array.BYTES_PER_ELEMENT,d=this._active,u=this._visibility,f=this._multiDrawStarts,A=this._multiDrawCounts,S=this._drawRanges,R=this.perObjectFrustumCulled;R&&(cG.multiplyMatrices(i.projectionMatrix,i.matrixWorldInverse).multiply(this.matrixWorld),z5.setFromProjectionMatrix(cG,e.coordinateSystem));let G=0;if(this.sortObjects){lG.copy(this.matrixWorld).invert(),tE.setFromMatrixPosition(i.matrixWorld).applyMatrix4(lG);for(let le=0,Ee=u.length;led)continue;S.applyMatrix4(this.matrixWorld);const Xt=e.ray.origin.distanceTo(S);Xte.far||t.push({distance:Xt,point:A.clone().applyMatrix4(this.matrixWorld),index:Ce,face:null,faceIndex:null,object:this})}else for(let Ce=Math.max(0,o.start),We=Math.min(se.count,o.start+o.count)-1;Ced)continue;S.applyMatrix4(this.matrixWorld);const yt=e.ray.origin.distanceTo(S);yte.far||t.push({distance:yt,point:A.clone().applyMatrix4(this.matrixWorld),index:Ce,face:null,faceIndex:null,object:this})}}updateMorphTargets(){const t=this.geometry.morphAttributes,i=Object.keys(t);if(i.length>0){const r=t[i[0]];if(void 0!==r){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let s=0,o=r.length;s0){const r=t[i[0]];if(void 0!==r){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let s=0,o=r.length;sr.far)return;s.push({distance:u,distanceToRay:Math.sqrt(l),point:d,index:e,face:null,object:o})}}class iC extends zh{constructor(e,t,i,r,s,o,l,d,u,f,A,S){super(null,o,l,d,u,f,r,s,A,S),this.isCompressedTexture=!0,this.image={width:t,height:i},this.mipmaps=e,this.flipY=!1,this.generateMipmaps=!1}}class _G extends zh{constructor(e,t,i,r,s,o,l,d,u){super(e,t,i,r,s,o,l,d,u),this.isCanvasTexture=!0,this.needsUpdate=!0}}class T0{constructor(){this.type="Curve",this.arcLengthDivisions=200}getPoint(){return console.warn("THREE.Curve: .getPoint() not implemented."),null}getPointAt(e,t){const i=this.getUtoTmapping(e);return this.getPoint(i,t)}getPoints(e=5){const t=[];for(let i=0;i<=e;i++)t.push(this.getPoint(i/e));return t}getSpacedPoints(e=5){const t=[];for(let i=0;i<=e;i++)t.push(this.getPointAt(i/e));return t}getLength(){const e=this.getLengths();return e[e.length-1]}getLengths(e=this.arcLengthDivisions){if(this.cacheArcLengths&&this.cacheArcLengths.length===e+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;const t=[];let i,r=this.getPoint(0),s=0;t.push(0);for(let o=1;o<=e;o++)i=this.getPoint(o/e),s+=i.distanceTo(r),t.push(s),r=i;return this.cacheArcLengths=t,t}updateArcLengths(){this.needsUpdate=!0,this.getLengths()}getUtoTmapping(e,t){const i=this.getLengths();let r=0;const s=i.length;let o;o=t||e*i[s-1];let u,l=0,d=s-1;for(;l<=d;)if(r=Math.floor(l+(d-l)/2),u=i[r]-o,u<0)l=r+1;else{if(!(u>0)){d=r;break}d=r-1}if(r=d,i[r]===o)return r/(s-1);const f=i[r];return(r+(o-f)/(i[r+1]-f))/(s-1)}getTangent(e,t){let r=e-1e-4,s=e+1e-4;r<0&&(r=0),s>1&&(s=1);const o=this.getPoint(r),l=this.getPoint(s),d=t||(o.isVector2?new Qi:new It);return d.copy(l).sub(o).normalize(),d}getTangentAt(e,t){const i=this.getUtoTmapping(e);return this.getTangent(i,t)}computeFrenetFrames(e,t){const i=new It,r=[],s=[],o=[],l=new It,d=new wo;for(let R=0;R<=e;R++)r[R]=this.getTangentAt(R/e,new It);s[0]=new It,o[0]=new It;let u=Number.MAX_VALUE;const f=Math.abs(r[0].x),A=Math.abs(r[0].y),S=Math.abs(r[0].z);f<=u&&(u=f,i.set(1,0,0)),A<=u&&(u=A,i.set(0,1,0)),S<=u&&i.set(0,0,1),l.crossVectors(r[0],i).normalize(),s[0].crossVectors(r[0],l),o[0].crossVectors(r[0],s[0]);for(let R=1;R<=e;R++){if(s[R]=s[R-1].clone(),o[R]=o[R-1].clone(),l.crossVectors(r[R-1],r[R]),l.length()>Number.EPSILON){l.normalize();const G=Math.acos(bd(r[R-1].dot(r[R]),-1,1));s[R].applyMatrix4(d.makeRotationAxis(l,G))}o[R].crossVectors(r[R],s[R])}if(!0===t){let R=Math.acos(bd(s[0].dot(s[e]),-1,1));R/=e,r[0].dot(l.crossVectors(s[0],s[e]))>0&&(R=-R);for(let G=1;G<=e;G++)s[G].applyMatrix4(d.makeRotationAxis(r[G],R*G)),o[G].crossVectors(r[G],s[G])}return{tangents:r,normals:s,binormals:o}}clone(){return(new this.constructor).copy(this)}copy(e){return this.arcLengthDivisions=e.arcLengthDivisions,this}toJSON(){const e={metadata:{version:4.6,type:"Curve",generator:"Curve.toJSON"}};return e.arcLengthDivisions=this.arcLengthDivisions,e.type=this.type,e}fromJSON(e){return this.arcLengthDivisions=e.arcLengthDivisions,this}}class q5 extends T0{constructor(e=0,t=0,i=1,r=1,s=0,o=2*Math.PI,l=!1,d=0){super(),this.isEllipseCurve=!0,this.type="EllipseCurve",this.aX=e,this.aY=t,this.xRadius=i,this.yRadius=r,this.aStartAngle=s,this.aEndAngle=o,this.aClockwise=l,this.aRotation=d}getPoint(e,t=new Qi){const i=t,r=2*Math.PI;let s=this.aEndAngle-this.aStartAngle;const o=Math.abs(s)r;)s-=r;s0?0:(Math.floor(Math.abs(l)/s)+1)*s:0===d&&l===s-1&&(l=s-2,d=1),this.closed||l>0?u=r[(l-1)%s]:(LI.subVectors(r[0],r[1]).add(r[0]),u=LI);const A=r[l%s],S=r[(l+1)%s];if(this.closed||l+2r.length-2?r.length-1:o+1],A=r[o>r.length-3?r.length-1:o+2];return i.set(yG(l,d.x,u.x,f.x,A.x),yG(l,d.y,u.y,f.y,A.y)),i}copy(e){super.copy(e),this.points=[];for(let t=0,i=e.points.length;t=i){const o=r[s]-i,l=this.curves[s],d=l.getLength();return l.getPointAt(0===d?0:1-o/d,t)}s++}return null}getLength(){const e=this.getCurveLengths();return e[e.length-1]}updateArcLengths(){this.needsUpdate=!0,this.cacheLengths=null,this.getCurveLengths()}getCurveLengths(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;const e=[];let t=0;for(let i=0,r=this.curves.length;i1&&!t[t.length-1].equals(t[0])&&t.push(t[0]),t}copy(e){super.copy(e),this.curves=[];for(let t=0,i=e.curves.length;t0){const A=u.getPoint(0);A.equals(this.currentPoint)||this.lineTo(A.x,A.y)}this.curves.push(u);const f=u.getPoint(1);return this.currentPoint.copy(f),this}copy(e){return super.copy(e),this.currentPoint.copy(e.currentPoint),this}toJSON(){const e=super.toJSON();return e.currentPoint=this.currentPoint.toArray(),e}fromJSON(e){return super.fromJSON(e),this.currentPoint.fromArray(e.currentPoint),this}}class zI extends no{constructor(e=[new Qi(0,-.5),new Qi(.5,0),new Qi(0,.5)],t=12,i=0,r=2*Math.PI){super(),this.type="LatheGeometry",this.parameters={points:e,segments:t,phiStart:i,phiLength:r},t=Math.floor(t),r=bd(r,0,2*Math.PI);const s=[],o=[],l=[],d=[],u=[],f=1/t,A=new It,S=new Qi,R=new It,G=new It,re=new It;let se=0,le=0;for(let Ee=0;Ee<=e.length-1;Ee++)switch(Ee){case 0:se=e[Ee+1].x-e[Ee].x,le=e[Ee+1].y-e[Ee].y,R.x=1*le,R.y=-se,R.z=0*le,re.copy(R),R.normalize(),d.push(R.x,R.y,R.z);break;case e.length-1:d.push(re.x,re.y,re.z);break;default:se=e[Ee+1].x-e[Ee].x,le=e[Ee+1].y-e[Ee].y,R.x=1*le,R.y=-se,R.z=0*le,G.copy(R),R.x+=re.x,R.y+=re.y,R.z+=re.z,R.normalize(),d.push(R.x,R.y,R.z),re.copy(G)}for(let Ee=0;Ee<=t;Ee++){const Ce=i+Ee*f*r,We=Math.sin(Ce),Mt=Math.cos(Ce);for(let yt=0;yt<=e.length-1;yt++)A.x=e[yt].x*We,A.y=e[yt].y,A.z=e[yt].x*Mt,o.push(A.x,A.y,A.z),S.x=Ee/t,S.y=yt/(e.length-1),l.push(S.x,S.y),u.push(d[3*yt+0]*We,d[3*yt+1],d[3*yt+0]*Mt)}for(let Ee=0;Ee0&&Ce(!0),t>0&&Ce(!1)),this.setIndex(f),this.setAttribute("position",new Ws(A,3)),this.setAttribute("normal",new Ws(S,3)),this.setAttribute("uv",new Ws(R,2))}copy(e){return super.copy(e),this.parameters=Object.assign({},e.parameters),this}static fromJSON(e){return new rC(e.radiusTop,e.radiusBottom,e.height,e.radialSegments,e.heightSegments,e.openEnded,e.thetaStart,e.thetaLength)}}class J5 extends rC{constructor(e=1,t=1,i=32,r=1,s=!1,o=0,l=2*Math.PI){super(0,e,t,i,r,s,o,l),this.type="ConeGeometry",this.parameters={radius:e,height:t,radialSegments:i,heightSegments:r,openEnded:s,thetaStart:o,thetaLength:l}}static fromJSON(e){return new J5(e.radius,e.height,e.radialSegments,e.heightSegments,e.openEnded,e.thetaStart,e.thetaLength)}}class Qb extends no{constructor(e=[],t=[],i=1,r=0){super(),this.type="PolyhedronGeometry",this.parameters={vertices:e,indices:t,radius:i,detail:r};const s=[],o=[];function d(Ee,Ce,We,Mt){const yt=Mt+1,Et=[];for(let Xt=0;Xt<=yt;Xt++){Et[Xt]=[];const Un=Ee.clone().lerp(We,Xt/yt),wt=Ce.clone().lerp(We,Xt/yt),Kt=yt-Xt;for(let Vi=0;Vi<=Kt;Vi++)Et[Xt][Vi]=0===Vi&&Xt===yt?Un:Un.clone().lerp(wt,Vi/Kt)}for(let Xt=0;Xt.9&&Et<.1&&(Ce<.2&&(o[Ee+0]+=1),We<.2&&(o[Ee+2]+=1),Mt<.2&&(o[Ee+4]+=1))}}()}(),this.setAttribute("position",new Ws(s,3)),this.setAttribute("normal",new Ws(s.slice(),3)),this.setAttribute("uv",new Ws(o,2)),0===r?this.computeVertexNormals():this.normalizeNormals()}copy(e){return super.copy(e),this.parameters=Object.assign({},e.parameters),this}static fromJSON(e){return new Qb(e.vertices,e.indices,e.radius,e.details)}}class eF extends Qb{constructor(e=1,t=0){const i=(1+Math.sqrt(5))/2,r=1/i;super([-1,-1,-1,-1,-1,1,-1,1,-1,-1,1,1,1,-1,-1,1,-1,1,1,1,-1,1,1,1,0,-r,-i,0,-r,i,0,r,-i,0,r,i,-r,-i,0,-r,i,0,r,-i,0,r,i,0,-i,0,-r,i,0,-r,-i,0,r,i,0,r],[3,11,7,3,7,15,3,15,13,7,19,17,7,17,6,7,6,15,17,4,8,17,8,10,17,10,6,8,0,16,8,16,2,8,2,10,0,12,1,0,1,18,0,18,16,6,10,2,6,2,13,6,13,15,2,16,18,2,18,3,2,3,13,18,1,9,18,9,11,18,11,3,4,14,12,4,12,0,4,0,8,11,9,5,11,5,19,11,19,7,19,5,14,19,14,4,19,4,17,1,12,14,1,14,5,1,5,9],e,t),this.type="DodecahedronGeometry",this.parameters={radius:e,detail:t}}static fromJSON(e){return new eF(e.radius,e.detail)}}const HI=new It,VI=new It,tF=new It,GI=new hm;class CG extends no{constructor(e=null,t=1){if(super(),this.type="EdgesGeometry",this.parameters={geometry:e,thresholdAngle:t},null!==e){const r=Math.pow(10,4),s=Math.cos(Bb*t),o=e.getIndex(),l=e.getAttribute("position"),d=o?o.count:l.count,u=[0,0,0],f=["a","b","c"],A=new Array(3),S={},R=[];for(let G=0;G0)for(s=e;s=e;s-=i)o=TG(s,n[s],n[s+1],o);return o&&qI(o,o.next)&&(oE(o),o=o.next),o}function Wb(n,e){if(!n)return n;e||(e=n);let i,t=n;do{if(i=!1,t.steiner||!qI(t,t.next)&&0!==cd(t.prev,t,t.next))t=t.next;else{if(oE(t),t=e=t.prev,t===t.next)break;i=!0}}while(i||t!==e);return e}function rE(n,e,t,i,r,s,o){if(!n)return;!o&&s&&function rpe(n,e,t,i){let r=n;do{0===r.z&&(r.z=nF(r.x,r.y,e,t,i)),r.prevZ=r.prev,r.nextZ=r.next,r=r.next}while(r!==n);r.prevZ.nextZ=null,r.prevZ=null,function spe(n){let e,t,i,r,s,o,l,d,u=1;do{for(t=n,n=null,s=null,o=0;t;){for(o++,i=t,l=0,e=0;e0||d>0&&i;)0!==l&&(0===d||!i||t.z<=i.z)?(r=t,t=t.nextZ,l--):(r=i,i=i.nextZ,d--),s?s.nextZ=r:n=r,r.prevZ=s,s=r;t=i}s.nextZ=null,u*=2}while(o>1)}(r)}(n,i,r,s);let d,u,l=n;for(;n.prev!==n.next;)if(d=n.prev,u=n.next,s?Yfe(n,i,r,s):Xfe(n))e.push(d.i/t|0),e.push(n.i/t|0),e.push(u.i/t|0),oE(n),n=u.next,l=u.next;else if((n=u)===l){o?1===o?rE(n=Kfe(Wb(n),e,t),e,t,i,r,s,2):2===o&&Zfe(n,e,t,i,r,s):rE(Wb(n),e,t,i,r,s,1);break}}function Xfe(n){const e=n.prev,t=n,i=n.next;if(cd(e,t,i)>=0)return!1;const r=e.x,s=t.x,o=i.x,l=e.y,d=t.y,u=i.y,f=rs?r>o?r:o:s>o?s:o,R=l>d?l>u?l:u:d>u?d:u;let G=i.next;for(;G!==e;){if(G.x>=f&&G.x<=S&&G.y>=A&&G.y<=R&&oC(r,l,s,d,o,u,G.x,G.y)&&cd(G.prev,G,G.next)>=0)return!1;G=G.next}return!0}function Yfe(n,e,t,i){const r=n.prev,s=n,o=n.next;if(cd(r,s,o)>=0)return!1;const l=r.x,d=s.x,u=o.x,f=r.y,A=s.y,S=o.y,R=ld?l>u?l:u:d>u?d:u,se=f>A?f>S?f:S:A>S?A:S,le=nF(R,G,e,t,i),Ee=nF(re,se,e,t,i);let Ce=n.prevZ,We=n.nextZ;for(;Ce&&Ce.z>=le&&We&&We.z<=Ee;){if(Ce.x>=R&&Ce.x<=re&&Ce.y>=G&&Ce.y<=se&&Ce!==r&&Ce!==o&&oC(l,f,d,A,u,S,Ce.x,Ce.y)&&cd(Ce.prev,Ce,Ce.next)>=0||(Ce=Ce.prevZ,We.x>=R&&We.x<=re&&We.y>=G&&We.y<=se&&We!==r&&We!==o&&oC(l,f,d,A,u,S,We.x,We.y)&&cd(We.prev,We,We.next)>=0))return!1;We=We.nextZ}for(;Ce&&Ce.z>=le;){if(Ce.x>=R&&Ce.x<=re&&Ce.y>=G&&Ce.y<=se&&Ce!==r&&Ce!==o&&oC(l,f,d,A,u,S,Ce.x,Ce.y)&&cd(Ce.prev,Ce,Ce.next)>=0)return!1;Ce=Ce.prevZ}for(;We&&We.z<=Ee;){if(We.x>=R&&We.x<=re&&We.y>=G&&We.y<=se&&We!==r&&We!==o&&oC(l,f,d,A,u,S,We.x,We.y)&&cd(We.prev,We,We.next)>=0)return!1;We=We.nextZ}return!0}function Kfe(n,e,t){let i=n;do{const r=i.prev,s=i.next.next;!qI(r,s)&&SG(r,i,i.next,s)&&sE(r,s)&&sE(s,r)&&(e.push(r.i/t|0),e.push(i.i/t|0),e.push(s.i/t|0),oE(i),oE(i.next),i=n=s),i=i.next}while(i!==n);return Wb(i)}function Zfe(n,e,t,i,r,s){let o=n;do{let l=o.next.next;for(;l!==o.prev;){if(o.i!==l.i&&ape(o,l)){let d=EG(o,l);return o=Wb(o,o.next),d=Wb(d,d.next),rE(o,e,t,i,r,s,0),void rE(d,e,t,i,r,s,0)}l=l.next}o=o.next}while(o!==n)}function epe(n,e){return n.x-e.x}function tpe(n,e){const t=function npe(n,e){let r,t=e,i=-1/0;const s=n.x,o=n.y;do{if(o<=t.y&&o>=t.next.y&&t.next.y!==t.y){const S=t.x+(o-t.y)*(t.next.x-t.x)/(t.next.y-t.y);if(S<=s&&S>i&&(i=S,r=t.x=t.x&&t.x>=d&&s!==t.x&&oC(or.x||t.x===r.x&&ipe(r,t)))&&(r=t,f=A)),t=t.next}while(t!==l);return r}(n,e);if(!t)return e;const i=EG(t,n);return Wb(i,i.next),Wb(t,t.next)}function ipe(n,e){return cd(n.prev,n,e.prev)<0&&cd(e.next,n,n.next)<0}function nF(n,e,t,i,r){return(n=1431655765&((n=858993459&((n=252645135&((n=16711935&((n=(n-t)*r|0)|n<<8))|n<<4))|n<<2))|n<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=(e-i)*r|0)|e<<8))|e<<4))|e<<2))|e<<1))<<1}function ope(n){let e=n,t=n;do{(e.x=(n-o)*(s-l)&&(n-o)*(i-l)>=(t-o)*(e-l)&&(t-o)*(s-l)>=(r-o)*(i-l)}function ape(n,e){return n.next.i!==e.i&&n.prev.i!==e.i&&!function lpe(n,e){let t=n;do{if(t.i!==n.i&&t.next.i!==n.i&&t.i!==e.i&&t.next.i!==e.i&&SG(t,t.next,n,e))return!0;t=t.next}while(t!==n);return!1}(n,e)&&(sE(n,e)&&sE(e,n)&&function cpe(n,e){let t=n,i=!1;const r=(n.x+e.x)/2,s=(n.y+e.y)/2;do{t.y>s!=t.next.y>s&&t.next.y!==t.y&&r<(t.next.x-t.x)*(s-t.y)/(t.next.y-t.y)+t.x&&(i=!i),t=t.next}while(t!==n);return i}(n,e)&&(cd(n.prev,n,e.prev)||cd(n,e.prev,e))||qI(n,e)&&cd(n.prev,n,n.next)>0&&cd(e.prev,e,e.next)>0)}function cd(n,e,t){return(e.y-n.y)*(t.x-e.x)-(e.x-n.x)*(t.y-e.y)}function qI(n,e){return n.x===e.x&&n.y===e.y}function SG(n,e,t,i){const r=WI(cd(n,e,t)),s=WI(cd(n,e,i)),o=WI(cd(t,i,n)),l=WI(cd(t,i,e));return!!(r!==s&&o!==l||0===r&&QI(n,t,e)||0===s&&QI(n,i,e)||0===o&&QI(t,n,i)||0===l&&QI(t,e,i))}function QI(n,e,t){return e.x<=Math.max(n.x,t.x)&&e.x>=Math.min(n.x,t.x)&&e.y<=Math.max(n.y,t.y)&&e.y>=Math.min(n.y,t.y)}function WI(n){return n>0?1:n<0?-1:0}function sE(n,e){return cd(n.prev,n,n.next)<0?cd(n,e,n.next)>=0&&cd(n,n.prev,e)>=0:cd(n,e,n.prev)<0||cd(n,n.next,e)<0}function EG(n,e){const t=new iF(n.i,n.x,n.y),i=new iF(e.i,e.x,e.y),r=n.next,s=e.prev;return n.next=e,e.prev=n,t.next=r,r.prev=t,i.next=t,t.prev=i,s.next=i,i.prev=s,i}function TG(n,e,t,i){const r=new iF(n,e,t);return i?(r.next=i.next,r.prev=i,i.next.prev=r,i.next=r):(r.prev=r,r.next=r),r}function oE(n){n.next.prev=n.prev,n.prev.next=n.next,n.prevZ&&(n.prevZ.nextZ=n.nextZ),n.nextZ&&(n.nextZ.prevZ=n.prevZ)}function iF(n,e,t){this.i=n,this.x=e,this.y=t,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}class K_{static area(e){const t=e.length;let i=0;for(let r=t-1,s=0;s80*t){l=u=n[0],d=f=n[1];for(let G=t;Gu&&(u=A),S>f&&(f=S);R=Math.max(u-l,f-d),R=0!==R?32767/R:0}return rE(s,o,t,l,d,R,0),o}(i,r);for(let d=0;d2&&n[e-1].equals(n[0])&&n.pop()}function IG(n,e){for(let t=0;tNumber.EPSILON){const hr=Math.sqrt(zt),$r=Math.sqrt(ka*ka+gn*gn),Fr=ps.x-uo/hr,Aa=ps.y+qs/hr,Is=((gr.x-gn/$r-Fr)*gn-(gr.y+ka/$r-Aa)*ka)/(qs*gn-uo*ka);ls=Fr+qs*Is-On.x,Tr=Aa+uo*Is-On.y;const ga=ls*ls+Tr*Tr;if(ga<=2)return new Qi(ls,Tr);Ys=Math.sqrt(ga/2)}else{let hr=!1;qs>Number.EPSILON?ka>Number.EPSILON&&(hr=!0):qs<-Number.EPSILON?ka<-Number.EPSILON&&(hr=!0):Math.sign(uo)===Math.sign(gn)&&(hr=!0),hr?(ls=-uo,Tr=qs,Ys=Math.sqrt(zt)):(ls=qs,Tr=uo,Ys=Math.sqrt(zt/2))}return new Qi(ls/Ys,Tr/Ys)}const vi=[];for(let On=0,ps=En.length,gr=ps-1,ls=On+1;On=0;On--){const ps=On/se,gr=R*Math.cos(ps*Math.PI/2),ls=G*Math.sin(ps*Math.PI/2)+re;for(let Tr=0,Ys=En.length;Tr=0;){const ls=gr;let Tr=gr-1;Tr<0&&(Tr=On.length-1);for(let Ys=0,qs=f+2*se;Ys0)&&R.push(f[le][Ee+1],We,yt),(le!==i-1||d0!=e>0&&this.version++,this._anisotropy=e}get clearcoat(){return this._clearcoat}set clearcoat(e){this._clearcoat>0!=e>0&&this.version++,this._clearcoat=e}get iridescence(){return this._iridescence}set iridescence(e){this._iridescence>0!=e>0&&this.version++,this._iridescence=e}get sheen(){return this._sheen}set sheen(e){this._sheen>0!=e>0&&this.version++,this._sheen=e}get transmission(){return this._transmission}set transmission(e){this._transmission>0!=e>0&&this.version++,this._transmission=e}copy(e){return super.copy(e),this.defines={STANDARD:"",PHYSICAL:""},this.anisotropy=e.anisotropy,this.anisotropyRotation=e.anisotropyRotation,this.anisotropyMap=e.anisotropyMap,this.clearcoat=e.clearcoat,this.clearcoatMap=e.clearcoatMap,this.clearcoatRoughness=e.clearcoatRoughness,this.clearcoatRoughnessMap=e.clearcoatRoughnessMap,this.clearcoatNormalMap=e.clearcoatNormalMap,this.clearcoatNormalScale.copy(e.clearcoatNormalScale),this.ior=e.ior,this.iridescence=e.iridescence,this.iridescenceMap=e.iridescenceMap,this.iridescenceIOR=e.iridescenceIOR,this.iridescenceThicknessRange=[...e.iridescenceThicknessRange],this.iridescenceThicknessMap=e.iridescenceThicknessMap,this.sheen=e.sheen,this.sheenColor.copy(e.sheenColor),this.sheenColorMap=e.sheenColorMap,this.sheenRoughness=e.sheenRoughness,this.sheenRoughnessMap=e.sheenRoughnessMap,this.transmission=e.transmission,this.transmissionMap=e.transmissionMap,this.thickness=e.thickness,this.thicknessMap=e.thicknessMap,this.attenuationDistance=e.attenuationDistance,this.attenuationColor.copy(e.attenuationColor),this.specularIntensity=e.specularIntensity,this.specularIntensityMap=e.specularIntensityMap,this.specularColor.copy(e.specularColor),this.specularColorMap=e.specularColorMap,this}}class mg extends ld{constructor(e){super(),this.isMeshPhongMaterial=!0,this.type="MeshPhongMaterial",this.color=new Cr(16777215),this.specular=new Cr(1118481),this.shininess=30,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Cr(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new Qi(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.envMapRotation=new S0,this.combine=HD,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.specular.copy(e.specular),this.shininess=e.shininess,this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.envMapRotation.copy(e.envMapRotation),this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.flatShading=e.flatShading,this.fog=e.fog,this}}class RG extends ld{constructor(e){super(),this.isMeshToonMaterial=!0,this.defines={TOON:""},this.type="MeshToonMaterial",this.color=new Cr(16777215),this.map=null,this.gradientMap=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Cr(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new Qi(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.gradientMap=e.gradientMap,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.alphaMap=e.alphaMap,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.fog=e.fog,this}}class gpe extends ld{constructor(e){super(),this.isMeshNormalMaterial=!0,this.type="MeshNormalMaterial",this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new Qi(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.flatShading=!1,this.setValues(e)}copy(e){return super.copy(e),this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.flatShading=e.flatShading,this}}class _pe extends ld{constructor(e){super(),this.isMeshLambertMaterial=!0,this.type="MeshLambertMaterial",this.color=new Cr(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Cr(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new Qi(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.envMapRotation=new S0,this.combine=HD,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.envMapRotation.copy(e.envMapRotation),this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.flatShading=e.flatShading,this.fog=e.fog,this}}class ype extends ld{constructor(e){super(),this.isMeshMatcapMaterial=!0,this.defines={MATCAP:""},this.type="MeshMatcapMaterial",this.color=new Cr(16777215),this.matcap=null,this.map=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new Qi(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.flatShading=!1,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.defines={MATCAP:""},this.color.copy(e.color),this.matcap=e.matcap,this.map=e.map,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.alphaMap=e.alphaMap,this.flatShading=e.flatShading,this.fog=e.fog,this}}class $b extends Dc{constructor(e){super(),this.isLineDashedMaterial=!0,this.type="LineDashedMaterial",this.scale=1,this.dashSize=3,this.gapSize=1,this.setValues(e)}copy(e){return super.copy(e),this.scale=e.scale,this.dashSize=e.dashSize,this.gapSize=e.gapSize,this}}function Xb(n,e,t){return!n||!t&&n.constructor===e?n:"number"==typeof e.BYTES_PER_ELEMENT?new e(n):Array.prototype.slice.call(n)}function FG(n){const t=n.length,i=new Array(t);for(let r=0;r!==t;++r)i[r]=r;return i.sort(function e(r,s){return n[r]-n[s]}),i}function dF(n,e,t){const i=n.length,r=new n.constructor(i);for(let s=0,o=0;o!==i;++s){const l=t[s]*e;for(let d=0;d!==e;++d)r[o++]=n[l+d]}return r}function uF(n,e,t,i){let r=1,s=n[0];for(;void 0!==s&&void 0===s[i];)s=n[r++];if(void 0===s)return;let o=s[i];if(void 0!==o)if(Array.isArray(o))do{o=s[i],void 0!==o&&(e.push(s.time),t.push.apply(t,o)),s=n[r++]}while(void 0!==s);else if(void 0!==o.toArray)do{o=s[i],void 0!==o&&(e.push(s.time),o.toArray(t,t.length)),s=n[r++]}while(void 0!==s);else do{o=s[i],void 0!==o&&(e.push(s.time),t.push(o)),s=n[r++]}while(void 0!==s)}class aE{constructor(e,t,i,r){this.parameterPositions=e,this._cachedIndex=0,this.resultBuffer=void 0!==r?r:new t.constructor(i),this.sampleValues=t,this.valueSize=i,this.settings=null,this.DefaultSettings_={}}evaluate(e){const t=this.parameterPositions;let i=this._cachedIndex,r=t[i],s=t[i-1];e:{t:{let o;n:{i:if(!(e=s)break e;{const l=t[1];e=s)break t}o=i,i=0}}for(;i>>1;et;)--o;if(++o,0!==s||o!==r){s>=o&&(o=Math.max(o,1),s=o-1);const l=this.getValueSize();this.times=i.slice(s,o),this.values=this.values.slice(s*l,o*l)}return this}validate(){let e=!0;const t=this.getValueSize();t-Math.floor(t)!=0&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),e=!1);const i=this.times,r=this.values,s=i.length;0===s&&(console.error("THREE.KeyframeTrack: Track is empty.",this),e=!1);let o=null;for(let l=0;l!==s;l++){const d=i[l];if("number"==typeof d&&isNaN(d)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,l,d),e=!1;break}if(null!==o&&o>d){console.error("THREE.KeyframeTrack: Out of order keys.",this,l,d,o),e=!1;break}o=d}if(void 0!==r&&function kG(n){return ArrayBuffer.isView(n)&&!(n instanceof DataView)}(r))for(let l=0,d=r.length;l!==d;++l){const u=r[l];if(isNaN(u)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,l,u),e=!1;break}}return e}optimize(){const e=this.times.slice(),t=this.values.slice(),i=this.getValueSize(),r=2302===this.getInterpolation(),s=e.length-1;let o=1;for(let l=1;l0){e[o]=e[s];for(let l=s*i,d=o*i,u=0;u!==i;++u)t[d+u]=t[l+u];++o}return o!==e.length?(this.times=e.slice(0,o),this.values=t.slice(0,o*i)):(this.times=e,this.values=t),this}clone(){const e=this.times.slice(),t=this.values.slice(),r=new(0,this.constructor)(this.name,e,t);return r.createInterpolant=this.createInterpolant,r}}I0.prototype.TimeBufferType=Float32Array,I0.prototype.ValueBufferType=Float32Array,I0.prototype.DefaultInterpolation=Db;class aC extends I0{}aC.prototype.ValueTypeName="bool",aC.prototype.ValueBufferType=Array,aC.prototype.DefaultInterpolation=b2,aC.prototype.InterpolantFactoryMethodLinear=void 0,aC.prototype.InterpolantFactoryMethodSmooth=void 0;class LG extends I0{}LG.prototype.ValueTypeName="color";class lC extends I0{}lC.prototype.ValueTypeName="number";class Cpe extends aE{constructor(e,t,i,r){super(e,t,i,r)}interpolate_(e,t,i,r){const s=this.resultBuffer,o=this.sampleValues,l=this.valueSize,d=(i-t)/(r-t);let u=e*l;for(let f=u+l;u!==f;u+=4)Gc.slerpFlat(s,0,o,u-l,o,u,d);return s}}class Yb extends I0{InterpolantFactoryMethodLinear(e){return new Cpe(this.times,this.values,this.getValueSize(),e)}}Yb.prototype.ValueTypeName="quaternion",Yb.prototype.DefaultInterpolation=Db,Yb.prototype.InterpolantFactoryMethodSmooth=void 0;class cC extends I0{}cC.prototype.ValueTypeName="string",cC.prototype.ValueBufferType=Array,cC.prototype.DefaultInterpolation=b2,cC.prototype.InterpolantFactoryMethodLinear=void 0,cC.prototype.InterpolantFactoryMethodSmooth=void 0;class dC extends I0{}dC.prototype.ValueTypeName="vector";class lE{constructor(e,t=-1,i,r=2500){this.name=e,this.tracks=i,this.duration=t,this.blendMode=r,this.uuid=dm(),this.duration<0&&this.resetDuration()}static parse(e){const t=[],i=e.tracks,r=1/(e.fps||1);for(let o=0,l=i.length;o!==l;++o)t.push(Spe(i[o]).scale(r));const s=new this(e.name,e.duration,t,e.blendMode);return s.uuid=e.uuid,s}static toJSON(e){const t=[],i=e.tracks,r={name:e.name,duration:e.duration,tracks:t,uuid:e.uuid,blendMode:e.blendMode};for(let s=0,o=i.length;s!==o;++s)t.push(I0.toJSON(i[s]));return r}static CreateFromMorphTargetSequence(e,t,i,r){const s=t.length,o=[];for(let l=0;l1){const A=f[1];let S=r[A];S||(r[A]=S=[]),S.push(u)}}const o=[];for(const l in r)o.push(this.CreateFromMorphTargetSequence(l,r[l],t,i));return o}static parseAnimation(e,t){if(!e)return console.error("THREE.AnimationClip: No animation in JSONLoader data."),null;const i=function(A,S,R,G,re){if(0!==R.length){const se=[],le=[];uF(R,se,le,G),0!==se.length&&re.push(new A(S,se,le))}},r=[],s=e.name||"default",o=e.fps||30,l=e.blendMode;let d=e.length||-1;const u=e.hierarchy||[];for(let A=0;A{class n{constructor(t){this.manager=void 0!==t?t:Epe,this.crossOrigin="anonymous",this.withCredentials=!1,this.path="",this.resourcePath="",this.requestHeader={}}load(){}loadAsync(t,i){const r=this;return new Promise(function(s,o){r.load(t,s,i,o)})}parse(){}setCrossOrigin(t){return this.crossOrigin=t,this}setWithCredentials(t){return this.withCredentials=t,this}setPath(t){return this.path=t,this}setResourcePath(t){return this.resourcePath=t,this}setRequestHeader(t){return this.requestHeader=t,this}}return n.DEFAULT_MATERIAL_NAME="__DEFAULT",n})();const Z_={};class Tpe extends Error{constructor(e,t){super(e),this.response=t}}class vp extends Gh{constructor(e){super(e)}load(e,t,i,r){void 0===e&&(e=""),void 0!==this.path&&(e=this.path+e),e=this.manager.resolveURL(e);const s=Qy.get(e);if(void 0!==s)return this.manager.itemStart(e),setTimeout(()=>{t&&t(s),this.manager.itemEnd(e)},0),s;if(void 0!==Z_[e])return void Z_[e].push({onLoad:t,onProgress:i,onError:r});Z_[e]=[],Z_[e].push({onLoad:t,onProgress:i,onError:r});const o=new Request(e,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin"}),l=this.mimeType,d=this.responseType;fetch(o).then(u=>{if(200===u.status||0===u.status){if(0===u.status&&console.warn("THREE.FileLoader: HTTP Status 0 received."),typeof ReadableStream>"u"||void 0===u.body||void 0===u.body.getReader)return u;const f=Z_[e],A=u.body.getReader(),S=u.headers.get("Content-Length")||u.headers.get("X-File-Size"),R=S?parseInt(S):0,G=0!==R;let re=0;const se=new ReadableStream({start(le){!function Ee(){A.read().then(({done:Ce,value:We})=>{if(Ce)le.close();else{re+=We.byteLength;const Mt=new ProgressEvent("progress",{lengthComputable:G,loaded:re,total:R});for(let yt=0,Et=f.length;yt{switch(d){case"arraybuffer":return u.arrayBuffer();case"blob":return u.blob();case"document":return u.text().then(f=>(new DOMParser).parseFromString(f,l));case"json":return u.json();default:if(void 0===l)return u.text();{const A=/charset="?([^;"\s]*)"?/i.exec(l),S=A&&A[1]?A[1].toLowerCase():void 0,R=new TextDecoder(S);return u.arrayBuffer().then(G=>R.decode(G))}}}).then(u=>{Qy.add(e,u);const f=Z_[e];delete Z_[e];for(let A=0,S=f.length;A{const f=Z_[e];if(void 0===f)throw this.manager.itemError(e),u;delete Z_[e];for(let A=0,S=f.length;A{this.manager.itemEnd(e)}),this.manager.itemStart(e)}setResponseType(e){return this.responseType=e,this}setMimeType(e){return this.mimeType=e,this}}class YI extends Gh{constructor(e){super(e)}load(e,t,i,r){void 0!==this.path&&(e=this.path+e),e=this.manager.resolveURL(e);const s=this,o=Qy.get(e);if(void 0!==o)return s.manager.itemStart(e),setTimeout(function(){t&&t(o),s.manager.itemEnd(e)},0),o;const l=GS("img");function d(){f(),Qy.add(e,this),t&&t(this),s.manager.itemEnd(e)}function u(A){f(),r&&r(A),s.manager.itemError(e),s.manager.itemEnd(e)}function f(){l.removeEventListener("load",d,!1),l.removeEventListener("error",u,!1)}return l.addEventListener("load",d,!1),l.addEventListener("error",u,!1),"data:"!==e.slice(0,5)&&void 0!==this.crossOrigin&&(l.crossOrigin=this.crossOrigin),s.manager.itemStart(e),l.src=e,l}}class Dpe extends Gh{constructor(e){super(e)}load(e,t,i,r){const s=new zh,o=new YI(this.manager);return o.setCrossOrigin(this.crossOrigin),o.setPath(this.path),o.load(e,function(l){s.image=l,s.needsUpdate=!0,void 0!==t&&t(s)},i,r),s}}class Kb extends Pl{constructor(e,t=1){super(),this.isLight=!0,this.type="Light",this.color=new Cr(e),this.intensity=t}dispose(){}copy(e,t){return super.copy(e,t),this.color.copy(e.color),this.intensity=e.intensity,this}toJSON(e){const t=super.toJSON(e);return t.object.color=this.color.getHex(),t.object.intensity=this.intensity,void 0!==this.groundColor&&(t.object.groundColor=this.groundColor.getHex()),void 0!==this.distance&&(t.object.distance=this.distance),void 0!==this.angle&&(t.object.angle=this.angle),void 0!==this.decay&&(t.object.decay=this.decay),void 0!==this.penumbra&&(t.object.penumbra=this.penumbra),void 0!==this.shadow&&(t.object.shadow=this.shadow.toJSON()),t}}class Ipe extends Kb{constructor(e,t,i){super(e,i),this.isHemisphereLight=!0,this.type="HemisphereLight",this.position.copy(Pl.DEFAULT_UP),this.updateMatrix(),this.groundColor=new Cr(t)}copy(e,t){return super.copy(e,t),this.groundColor.copy(e.groundColor),this}}const hF=new wo,UG=new It,zG=new It;class fF{constructor(e){this.camera=e,this.bias=0,this.normalBias=0,this.radius=1,this.blurSamples=8,this.mapSize=new Qi(512,512),this.map=null,this.mapPass=null,this.matrix=new wo,this.autoUpdate=!0,this.needsUpdate=!1,this._frustum=new _I,this._frameExtents=new Qi(1,1),this._viewportCount=1,this._viewports=[new nc(0,0,1,1)]}getViewportCount(){return this._viewportCount}getFrustum(){return this._frustum}updateMatrices(e){const t=this.camera,i=this.matrix;UG.setFromMatrixPosition(e.matrixWorld),t.position.copy(UG),zG.setFromMatrixPosition(e.target.matrixWorld),t.lookAt(zG),t.updateMatrixWorld(),hF.multiplyMatrices(t.projectionMatrix,t.matrixWorldInverse),this._frustum.setFromProjectionMatrix(hF),i.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),i.multiply(hF)}getViewport(e){return this._viewports[e]}getFrameExtents(){return this._frameExtents}dispose(){this.map&&this.map.dispose(),this.mapPass&&this.mapPass.dispose()}copy(e){return this.camera=e.camera.clone(),this.bias=e.bias,this.radius=e.radius,this.mapSize.copy(e.mapSize),this}clone(){return(new this.constructor).copy(this)}toJSON(){const e={};return 0!==this.bias&&(e.bias=this.bias),0!==this.normalBias&&(e.normalBias=this.normalBias),1!==this.radius&&(e.radius=this.radius),(512!==this.mapSize.x||512!==this.mapSize.y)&&(e.mapSize=this.mapSize.toArray()),e.camera=this.camera.toJSON(!1).object,delete e.camera.matrix,e}}class Bpe extends fF{constructor(){super(new Iu(50,1,.5,500)),this.isSpotLightShadow=!0,this.focus=1}updateMatrices(e){const t=this.camera,i=2*M2*e.angle*this.focus,r=this.mapSize.width/this.mapSize.height,s=e.distance||t.far;(i!==t.fov||r!==t.aspect||s!==t.far)&&(t.fov=i,t.aspect=r,t.far=s,t.updateProjectionMatrix()),super.updateMatrices(e)}copy(e){return super.copy(e),this.focus=e.focus,this}}class HG extends Kb{constructor(e,t,i=0,r=Math.PI/3,s=0,o=2){super(e,t),this.isSpotLight=!0,this.type="SpotLight",this.position.copy(Pl.DEFAULT_UP),this.updateMatrix(),this.target=new Pl,this.distance=i,this.angle=r,this.penumbra=s,this.decay=o,this.map=null,this.shadow=new Bpe}get power(){return this.intensity*Math.PI}set power(e){this.intensity=e/Math.PI}dispose(){this.shadow.dispose()}copy(e,t){return super.copy(e,t),this.distance=e.distance,this.angle=e.angle,this.penumbra=e.penumbra,this.decay=e.decay,this.target=e.target.clone(),this.shadow=e.shadow.clone(),this}}const VG=new wo,cE=new It,pF=new It;class Ppe extends fF{constructor(){super(new Iu(90,1,.5,500)),this.isPointLightShadow=!0,this._frameExtents=new Qi(4,2),this._viewportCount=6,this._viewports=[new nc(2,1,1,1),new nc(0,1,1,1),new nc(3,1,1,1),new nc(1,1,1,1),new nc(3,0,1,1),new nc(1,0,1,1)],this._cubeDirections=[new It(1,0,0),new It(-1,0,0),new It(0,0,1),new It(0,0,-1),new It(0,1,0),new It(0,-1,0)],this._cubeUps=[new It(0,1,0),new It(0,1,0),new It(0,1,0),new It(0,1,0),new It(0,0,1),new It(0,0,-1)]}updateMatrices(e,t=0){const i=this.camera,r=this.matrix,s=e.distance||i.far;s!==i.far&&(i.far=s,i.updateProjectionMatrix()),cE.setFromMatrixPosition(e.matrixWorld),i.position.copy(cE),pF.copy(i.position),pF.add(this._cubeDirections[t]),i.up.copy(this._cubeUps[t]),i.lookAt(pF),i.updateMatrixWorld(),r.makeTranslation(-cE.x,-cE.y,-cE.z),VG.multiplyMatrices(i.projectionMatrix,i.matrixWorldInverse),this._frustum.setFromProjectionMatrix(VG)}}class GG extends Kb{constructor(e,t,i=0,r=2){super(e,t),this.isPointLight=!0,this.type="PointLight",this.distance=i,this.decay=r,this.shadow=new Ppe}get power(){return 4*this.intensity*Math.PI}set power(e){this.intensity=e/(4*Math.PI)}dispose(){this.shadow.dispose()}copy(e,t){return super.copy(e,t),this.distance=e.distance,this.decay=e.decay,this.shadow=e.shadow.clone(),this}}class Rpe extends fF{constructor(){super(new Q2(-5,5,5,-5,.5,500)),this.isDirectionalLightShadow=!0}}class uC extends Kb{constructor(e,t){super(e,t),this.isDirectionalLight=!0,this.type="DirectionalLight",this.position.copy(Pl.DEFAULT_UP),this.updateMatrix(),this.target=new Pl,this.shadow=new Rpe}dispose(){this.shadow.dispose()}copy(e){return super.copy(e),this.target=e.target.clone(),this.shadow=e.shadow.clone(),this}}class KI extends Kb{constructor(e,t){super(e,t),this.isAmbientLight=!0,this.type="AmbientLight"}}class kpe extends Kb{constructor(e,t,i=10,r=10){super(e,t),this.isRectAreaLight=!0,this.type="RectAreaLight",this.width=i,this.height=r}get power(){return this.intensity*this.width*this.height*Math.PI}set power(e){this.intensity=e/(this.width*this.height*Math.PI)}copy(e){return super.copy(e),this.width=e.width,this.height=e.height,this}toJSON(e){const t=super.toJSON(e);return t.object.width=this.width,t.object.height=this.height,t}}class Fpe{constructor(){this.isSphericalHarmonics3=!0,this.coefficients=[];for(let e=0;e<9;e++)this.coefficients.push(new It)}set(e){for(let t=0;t<9;t++)this.coefficients[t].copy(e[t]);return this}zero(){for(let e=0;e<9;e++)this.coefficients[e].set(0,0,0);return this}getAt(e,t){const i=e.x,r=e.y,s=e.z,o=this.coefficients;return t.copy(o[0]).multiplyScalar(.282095),t.addScaledVector(o[1],.488603*r),t.addScaledVector(o[2],.488603*s),t.addScaledVector(o[3],.488603*i),t.addScaledVector(o[4],i*r*1.092548),t.addScaledVector(o[5],r*s*1.092548),t.addScaledVector(o[6],.315392*(3*s*s-1)),t.addScaledVector(o[7],i*s*1.092548),t.addScaledVector(o[8],.546274*(i*i-r*r)),t}getIrradianceAt(e,t){const i=e.x,r=e.y,s=e.z,o=this.coefficients;return t.copy(o[0]).multiplyScalar(.886227),t.addScaledVector(o[1],1.023328*r),t.addScaledVector(o[2],1.023328*s),t.addScaledVector(o[3],1.023328*i),t.addScaledVector(o[4],.858086*i*r),t.addScaledVector(o[5],.858086*r*s),t.addScaledVector(o[6],.743125*s*s-.247708),t.addScaledVector(o[7],.858086*i*s),t.addScaledVector(o[8],.429043*(i*i-r*r)),t}add(e){for(let t=0;t<9;t++)this.coefficients[t].add(e.coefficients[t]);return this}addScaledSH(e,t){for(let i=0;i<9;i++)this.coefficients[i].addScaledVector(e.coefficients[i],t);return this}scale(e){for(let t=0;t<9;t++)this.coefficients[t].multiplyScalar(e);return this}lerp(e,t){for(let i=0;i<9;i++)this.coefficients[i].lerp(e.coefficients[i],t);return this}equals(e){for(let t=0;t<9;t++)if(!this.coefficients[t].equals(e.coefficients[t]))return!1;return!0}copy(e){return this.set(e.coefficients)}clone(){return(new this.constructor).copy(this)}fromArray(e,t=0){const i=this.coefficients;for(let r=0;r<9;r++)i[r].fromArray(e,t+3*r);return this}toArray(e=[],t=0){const i=this.coefficients;for(let r=0;r<9;r++)i[r].toArray(e,t+3*r);return e}static getBasisAt(e,t){const i=e.x,r=e.y,s=e.z;t[0]=.282095,t[1]=.488603*r,t[2]=.488603*s,t[3]=.488603*i,t[4]=1.092548*i*r,t[5]=1.092548*r*s,t[6]=.315392*(3*s*s-1),t[7]=1.092548*i*s,t[8]=.546274*(i*i-r*r)}}class Ope extends Kb{constructor(e=new Fpe,t=1){super(void 0,t),this.isLightProbe=!0,this.sh=e}copy(e){return super.copy(e),this.sh.copy(e.sh),this}fromJSON(e){return this.intensity=e.intensity,this.sh.fromArray(e.sh),this}toJSON(e){const t=super.toJSON(e);return t.object.sh=this.sh.toArray(),t}}class mF extends Gh{constructor(e){super(e),this.textures={}}load(e,t,i,r){const s=this,o=new vp(s.manager);o.setPath(s.path),o.setRequestHeader(s.requestHeader),o.setWithCredentials(s.withCredentials),o.load(e,function(l){try{t(s.parse(JSON.parse(l)))}catch(d){r?r(d):console.error(d),s.manager.itemError(e)}},i,r)}parse(e){const t=this.textures;function i(s){return void 0===t[s]&&console.warn("THREE.MaterialLoader: Undefined texture",s),t[s]}const r=mF.createMaterialFromType(e.type);if(void 0!==e.uuid&&(r.uuid=e.uuid),void 0!==e.name&&(r.name=e.name),void 0!==e.color&&void 0!==r.color&&r.color.setHex(e.color),void 0!==e.roughness&&(r.roughness=e.roughness),void 0!==e.metalness&&(r.metalness=e.metalness),void 0!==e.sheen&&(r.sheen=e.sheen),void 0!==e.sheenColor&&(r.sheenColor=(new Cr).setHex(e.sheenColor)),void 0!==e.sheenRoughness&&(r.sheenRoughness=e.sheenRoughness),void 0!==e.emissive&&void 0!==r.emissive&&r.emissive.setHex(e.emissive),void 0!==e.specular&&void 0!==r.specular&&r.specular.setHex(e.specular),void 0!==e.specularIntensity&&(r.specularIntensity=e.specularIntensity),void 0!==e.specularColor&&void 0!==r.specularColor&&r.specularColor.setHex(e.specularColor),void 0!==e.shininess&&(r.shininess=e.shininess),void 0!==e.clearcoat&&(r.clearcoat=e.clearcoat),void 0!==e.clearcoatRoughness&&(r.clearcoatRoughness=e.clearcoatRoughness),void 0!==e.iridescence&&(r.iridescence=e.iridescence),void 0!==e.iridescenceIOR&&(r.iridescenceIOR=e.iridescenceIOR),void 0!==e.iridescenceThicknessRange&&(r.iridescenceThicknessRange=e.iridescenceThicknessRange),void 0!==e.transmission&&(r.transmission=e.transmission),void 0!==e.thickness&&(r.thickness=e.thickness),void 0!==e.attenuationDistance&&(r.attenuationDistance=e.attenuationDistance),void 0!==e.attenuationColor&&void 0!==r.attenuationColor&&r.attenuationColor.setHex(e.attenuationColor),void 0!==e.anisotropy&&(r.anisotropy=e.anisotropy),void 0!==e.anisotropyRotation&&(r.anisotropyRotation=e.anisotropyRotation),void 0!==e.fog&&(r.fog=e.fog),void 0!==e.flatShading&&(r.flatShading=e.flatShading),void 0!==e.blending&&(r.blending=e.blending),void 0!==e.combine&&(r.combine=e.combine),void 0!==e.side&&(r.side=e.side),void 0!==e.shadowSide&&(r.shadowSide=e.shadowSide),void 0!==e.opacity&&(r.opacity=e.opacity),void 0!==e.transparent&&(r.transparent=e.transparent),void 0!==e.alphaTest&&(r.alphaTest=e.alphaTest),void 0!==e.alphaHash&&(r.alphaHash=e.alphaHash),void 0!==e.depthFunc&&(r.depthFunc=e.depthFunc),void 0!==e.depthTest&&(r.depthTest=e.depthTest),void 0!==e.depthWrite&&(r.depthWrite=e.depthWrite),void 0!==e.colorWrite&&(r.colorWrite=e.colorWrite),void 0!==e.blendSrc&&(r.blendSrc=e.blendSrc),void 0!==e.blendDst&&(r.blendDst=e.blendDst),void 0!==e.blendEquation&&(r.blendEquation=e.blendEquation),void 0!==e.blendSrcAlpha&&(r.blendSrcAlpha=e.blendSrcAlpha),void 0!==e.blendDstAlpha&&(r.blendDstAlpha=e.blendDstAlpha),void 0!==e.blendEquationAlpha&&(r.blendEquationAlpha=e.blendEquationAlpha),void 0!==e.blendColor&&void 0!==r.blendColor&&r.blendColor.setHex(e.blendColor),void 0!==e.blendAlpha&&(r.blendAlpha=e.blendAlpha),void 0!==e.stencilWriteMask&&(r.stencilWriteMask=e.stencilWriteMask),void 0!==e.stencilFunc&&(r.stencilFunc=e.stencilFunc),void 0!==e.stencilRef&&(r.stencilRef=e.stencilRef),void 0!==e.stencilFuncMask&&(r.stencilFuncMask=e.stencilFuncMask),void 0!==e.stencilFail&&(r.stencilFail=e.stencilFail),void 0!==e.stencilZFail&&(r.stencilZFail=e.stencilZFail),void 0!==e.stencilZPass&&(r.stencilZPass=e.stencilZPass),void 0!==e.stencilWrite&&(r.stencilWrite=e.stencilWrite),void 0!==e.wireframe&&(r.wireframe=e.wireframe),void 0!==e.wireframeLinewidth&&(r.wireframeLinewidth=e.wireframeLinewidth),void 0!==e.wireframeLinecap&&(r.wireframeLinecap=e.wireframeLinecap),void 0!==e.wireframeLinejoin&&(r.wireframeLinejoin=e.wireframeLinejoin),void 0!==e.rotation&&(r.rotation=e.rotation),void 0!==e.linewidth&&(r.linewidth=e.linewidth),void 0!==e.dashSize&&(r.dashSize=e.dashSize),void 0!==e.gapSize&&(r.gapSize=e.gapSize),void 0!==e.scale&&(r.scale=e.scale),void 0!==e.polygonOffset&&(r.polygonOffset=e.polygonOffset),void 0!==e.polygonOffsetFactor&&(r.polygonOffsetFactor=e.polygonOffsetFactor),void 0!==e.polygonOffsetUnits&&(r.polygonOffsetUnits=e.polygonOffsetUnits),void 0!==e.dithering&&(r.dithering=e.dithering),void 0!==e.alphaToCoverage&&(r.alphaToCoverage=e.alphaToCoverage),void 0!==e.premultipliedAlpha&&(r.premultipliedAlpha=e.premultipliedAlpha),void 0!==e.forceSinglePass&&(r.forceSinglePass=e.forceSinglePass),void 0!==e.visible&&(r.visible=e.visible),void 0!==e.toneMapped&&(r.toneMapped=e.toneMapped),void 0!==e.userData&&(r.userData=e.userData),void 0!==e.vertexColors&&(r.vertexColors="number"==typeof e.vertexColors?e.vertexColors>0:e.vertexColors),void 0!==e.uniforms)for(const s in e.uniforms){const o=e.uniforms[s];switch(r.uniforms[s]={},o.type){case"t":r.uniforms[s].value=i(o.value);break;case"c":r.uniforms[s].value=(new Cr).setHex(o.value);break;case"v2":r.uniforms[s].value=(new Qi).fromArray(o.value);break;case"v3":r.uniforms[s].value=(new It).fromArray(o.value);break;case"v4":r.uniforms[s].value=(new nc).fromArray(o.value);break;case"m3":r.uniforms[s].value=(new Ta).fromArray(o.value);break;case"m4":r.uniforms[s].value=(new wo).fromArray(o.value);break;default:r.uniforms[s].value=o.value}}if(void 0!==e.defines&&(r.defines=e.defines),void 0!==e.vertexShader&&(r.vertexShader=e.vertexShader),void 0!==e.fragmentShader&&(r.fragmentShader=e.fragmentShader),void 0!==e.glslVersion&&(r.glslVersion=e.glslVersion),void 0!==e.extensions)for(const s in e.extensions)r.extensions[s]=e.extensions[s];if(void 0!==e.lights&&(r.lights=e.lights),void 0!==e.clipping&&(r.clipping=e.clipping),void 0!==e.size&&(r.size=e.size),void 0!==e.sizeAttenuation&&(r.sizeAttenuation=e.sizeAttenuation),void 0!==e.map&&(r.map=i(e.map)),void 0!==e.matcap&&(r.matcap=i(e.matcap)),void 0!==e.alphaMap&&(r.alphaMap=i(e.alphaMap)),void 0!==e.bumpMap&&(r.bumpMap=i(e.bumpMap)),void 0!==e.bumpScale&&(r.bumpScale=e.bumpScale),void 0!==e.normalMap&&(r.normalMap=i(e.normalMap)),void 0!==e.normalMapType&&(r.normalMapType=e.normalMapType),void 0!==e.normalScale){let s=e.normalScale;!1===Array.isArray(s)&&(s=[s,s]),r.normalScale=(new Qi).fromArray(s)}return void 0!==e.displacementMap&&(r.displacementMap=i(e.displacementMap)),void 0!==e.displacementScale&&(r.displacementScale=e.displacementScale),void 0!==e.displacementBias&&(r.displacementBias=e.displacementBias),void 0!==e.roughnessMap&&(r.roughnessMap=i(e.roughnessMap)),void 0!==e.metalnessMap&&(r.metalnessMap=i(e.metalnessMap)),void 0!==e.emissiveMap&&(r.emissiveMap=i(e.emissiveMap)),void 0!==e.emissiveIntensity&&(r.emissiveIntensity=e.emissiveIntensity),void 0!==e.specularMap&&(r.specularMap=i(e.specularMap)),void 0!==e.specularIntensityMap&&(r.specularIntensityMap=i(e.specularIntensityMap)),void 0!==e.specularColorMap&&(r.specularColorMap=i(e.specularColorMap)),void 0!==e.envMap&&(r.envMap=i(e.envMap)),void 0!==e.envMapRotation&&r.envMapRotation.fromArray(e.envMapRotation),void 0!==e.envMapIntensity&&(r.envMapIntensity=e.envMapIntensity),void 0!==e.reflectivity&&(r.reflectivity=e.reflectivity),void 0!==e.refractionRatio&&(r.refractionRatio=e.refractionRatio),void 0!==e.lightMap&&(r.lightMap=i(e.lightMap)),void 0!==e.lightMapIntensity&&(r.lightMapIntensity=e.lightMapIntensity),void 0!==e.aoMap&&(r.aoMap=i(e.aoMap)),void 0!==e.aoMapIntensity&&(r.aoMapIntensity=e.aoMapIntensity),void 0!==e.gradientMap&&(r.gradientMap=i(e.gradientMap)),void 0!==e.clearcoatMap&&(r.clearcoatMap=i(e.clearcoatMap)),void 0!==e.clearcoatRoughnessMap&&(r.clearcoatRoughnessMap=i(e.clearcoatRoughnessMap)),void 0!==e.clearcoatNormalMap&&(r.clearcoatNormalMap=i(e.clearcoatNormalMap)),void 0!==e.clearcoatNormalScale&&(r.clearcoatNormalScale=(new Qi).fromArray(e.clearcoatNormalScale)),void 0!==e.iridescenceMap&&(r.iridescenceMap=i(e.iridescenceMap)),void 0!==e.iridescenceThicknessMap&&(r.iridescenceThicknessMap=i(e.iridescenceThicknessMap)),void 0!==e.transmissionMap&&(r.transmissionMap=i(e.transmissionMap)),void 0!==e.thicknessMap&&(r.thicknessMap=i(e.thicknessMap)),void 0!==e.anisotropyMap&&(r.anisotropyMap=i(e.anisotropyMap)),void 0!==e.sheenColorMap&&(r.sheenColorMap=i(e.sheenColorMap)),void 0!==e.sheenRoughnessMap&&(r.sheenRoughnessMap=i(e.sheenRoughnessMap)),r}setTextures(e){return this.textures=e,this}static createMaterialFromType(e){return new{ShadowMaterial:mpe,SpriteMaterial:jV,RawShaderMaterial:Ape,ShaderMaterial:Du,PointsMaterial:Y_,MeshPhysicalMaterial:D0,MeshStandardMaterial:XI,MeshPhongMaterial:mg,MeshToonMaterial:RG,MeshNormalMaterial:gpe,MeshLambertMaterial:_pe,MeshDepthMaterial:P5,MeshDistanceMaterial:QV,MeshBasicMaterial:xd,MeshMatcapMaterial:ype,LineDashedMaterial:$b,LineBasicMaterial:Dc,Material:ld}[e]}}class Zb{static decodeText(e){if(typeof TextDecoder<"u")return(new TextDecoder).decode(e);let t="";for(let i=0,r=e.length;i0){const d=new NG(t);s=new YI(d),s.setCrossOrigin(this.crossOrigin);for(let u=0,f=e.length;u0){s=new YI(t.manager),s.setCrossOrigin(t.crossOrigin);for(let d=0,u=e.length;d{const se=new Pf;se.min.fromArray(re.boxMin),se.max.fromArray(re.boxMax);const le=new ju;return le.radius=re.sphereRadius,le.center.fromArray(re.sphereCenter),{boxInitialized:re.boxInitialized,box:se,sphereInitialized:re.sphereInitialized,sphere:le}}),o._maxGeometryCount=e.maxGeometryCount,o._maxVertexCount=e.maxVertexCount,o._maxIndexCount=e.maxIndexCount,o._geometryInitialized=e.geometryInitialized,o._geometryCount=e.geometryCount,o._matricesTexture=u(e.matricesTexture.uuid);break;case"LOD":o=new Efe;break;case"Line":o=new pg(l(e.geometry),d(e.material));break;case"LineLoop":o=new mG(l(e.geometry),d(e.material));break;case"LineSegments":o=new hc(l(e.geometry),d(e.material));break;case"PointCloud":case"Points":o=new qb(l(e.geometry),d(e.material));break;case"Sprite":o=new Sfe(d(e.material));break;case"Group":o=new Wl;break;case"Bone":o=new U5;break;default:o=new Pl}if(o.uuid=e.uuid,void 0!==e.name&&(o.name=e.name),void 0!==e.matrix?(o.matrix.fromArray(e.matrix),void 0!==e.matrixAutoUpdate&&(o.matrixAutoUpdate=e.matrixAutoUpdate),o.matrixAutoUpdate&&o.matrix.decompose(o.position,o.quaternion,o.scale)):(void 0!==e.position&&o.position.fromArray(e.position),void 0!==e.rotation&&o.rotation.fromArray(e.rotation),void 0!==e.quaternion&&o.quaternion.fromArray(e.quaternion),void 0!==e.scale&&o.scale.fromArray(e.scale)),void 0!==e.up&&o.up.fromArray(e.up),void 0!==e.castShadow&&(o.castShadow=e.castShadow),void 0!==e.receiveShadow&&(o.receiveShadow=e.receiveShadow),e.shadow&&(void 0!==e.shadow.bias&&(o.shadow.bias=e.shadow.bias),void 0!==e.shadow.normalBias&&(o.shadow.normalBias=e.shadow.normalBias),void 0!==e.shadow.radius&&(o.shadow.radius=e.shadow.radius),void 0!==e.shadow.mapSize&&o.shadow.mapSize.fromArray(e.shadow.mapSize),void 0!==e.shadow.camera&&(o.shadow.camera=this.parseObject(e.shadow.camera))),void 0!==e.visible&&(o.visible=e.visible),void 0!==e.frustumCulled&&(o.frustumCulled=e.frustumCulled),void 0!==e.renderOrder&&(o.renderOrder=e.renderOrder),void 0!==e.userData&&(o.userData=e.userData),void 0!==e.layers&&(o.layers.mask=e.layers),void 0!==e.children){const S=e.children;for(let R=0;R"u"&&console.warn("THREE.ImageBitmapLoader: createImageBitmap() not supported."),typeof fetch>"u"&&console.warn("THREE.ImageBitmapLoader: fetch() not supported."),this.options={premultiplyAlpha:"none"}}setOptions(e){return this.options=e,this}load(e,t,i,r){void 0===e&&(e=""),void 0!==this.path&&(e=this.path+e),e=this.manager.resolveURL(e);const s=this,o=Qy.get(e);if(void 0!==o)return s.manager.itemStart(e),o.then?void o.then(u=>{t&&t(u),s.manager.itemEnd(e)}).catch(u=>{r&&r(u)}):(setTimeout(function(){t&&t(o),s.manager.itemEnd(e)},0),o);const l={};l.credentials="anonymous"===this.crossOrigin?"same-origin":"include",l.headers=this.requestHeader;const d=fetch(e,l).then(function(u){return u.blob()}).then(function(u){return createImageBitmap(u,Object.assign(s.options,{colorSpaceConversion:"none"}))}).then(function(u){return Qy.add(e,u),t&&t(u),s.manager.itemEnd(e),u}).catch(function(u){r&&r(u),Qy.remove(e),s.manager.itemError(e),s.manager.itemEnd(e)});Qy.add(e,d),s.manager.itemStart(e)}}class XG{constructor(e=!0){this.autoStart=e,this.startTime=0,this.oldTime=0,this.elapsedTime=0,this.running=!1}start(){this.startTime=YG(),this.oldTime=this.startTime,this.elapsedTime=0,this.running=!0}stop(){this.getElapsedTime(),this.running=!1,this.autoStart=!1}getElapsedTime(){return this.getDelta(),this.elapsedTime}getDelta(){let e=0;if(this.autoStart&&!this.running)return this.start(),0;if(this.running){const t=YG();e=(t-this.oldTime)/1e3,this.oldTime=t,this.elapsedTime+=e}return e}}function YG(){return(typeof performance>"u"?Date:performance).now()}const AF="\\[\\]\\.:\\/",Wpe=new RegExp("["+AF+"]","g"),gF="[^"+AF+"]",jpe="[^"+AF.replace("\\.","")+"]",Zpe=new RegExp("^"+/((?:WC+[\/:])*)/.source.replace("WC",gF)+/(WCOD+)?/.source.replace("WCOD",jpe)+/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC",gF)+/\.(WC+)(?:\[(.+)\])?/.source.replace("WC",gF)+"$"),Jpe=["material","materials","bones","map"];class eme{constructor(e,t,i){const r=i||Ll.parseTrackName(t);this._targetGroup=e,this._bindings=e.subscribe_(t,r)}getValue(e,t){this.bind();const r=this._bindings[this._targetGroup.nCachedObjects_];void 0!==r&&r.getValue(e,t)}setValue(e,t){const i=this._bindings;for(let r=this._targetGroup.nCachedObjects_,s=i.length;r!==s;++r)i[r].setValue(e,t)}bind(){const e=this._bindings;for(let t=this._targetGroup.nCachedObjects_,i=e.length;t!==i;++t)e[t].bind()}unbind(){const e=this._bindings;for(let t=this._targetGroup.nCachedObjects_,i=e.length;t!==i;++t)e[t].unbind()}}let Ll=(()=>{class n{constructor(t,i,r){this.path=i,this.parsedPath=r||n.parseTrackName(i),this.node=n.findNode(t,this.parsedPath.nodeName),this.rootNode=t,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(t,i,r){return t&&t.isAnimationObjectGroup?new n.Composite(t,i,r):new n(t,i,r)}static sanitizeNodeName(t){return t.replace(/\s/g,"_").replace(Wpe,"")}static parseTrackName(t){const i=Zpe.exec(t);if(null===i)throw new Error("PropertyBinding: Cannot parse trackName: "+t);const r={nodeName:i[2],objectName:i[3],objectIndex:i[4],propertyName:i[5],propertyIndex:i[6]},s=r.nodeName&&r.nodeName.lastIndexOf(".");if(void 0!==s&&-1!==s){const o=r.nodeName.substring(s+1);-1!==Jpe.indexOf(o)&&(r.nodeName=r.nodeName.substring(0,s),r.objectName=o)}if(null===r.propertyName||0===r.propertyName.length)throw new Error("PropertyBinding: can not parse propertyName from trackName: "+t);return r}static findNode(t,i){if(void 0===i||""===i||"."===i||-1===i||i===t.name||i===t.uuid)return t;if(t.skeleton){const r=t.skeleton.getBoneByName(i);if(void 0!==r)return r}if(t.children){const r=function(o){for(let l=0;lNumber.EPSILON){if(wt<0&&(Et=Ee[yt],Un=-Un,Xt=Ee[Mt],wt=-wt),le.yXt.y)continue;if(le.y===Et.y){if(le.x===Et.x)return!0}else{const Kt=wt*(le.x-Et.x)-Un*(le.y-Et.y);if(0===Kt)return!0;if(Kt<0)continue;We=!We}}else{if(le.y!==Et.y)continue;if(Xt.x<=le.x&&le.x<=Et.x||Et.x<=le.x&&le.x<=Xt.x)return!0}}return We}const r=K_.isClockWise,s=this.subPaths;if(0===s.length)return[];let o,l,d;const u=[];if(1===s.length)return l=s[0],d=new sC,d.curves=l.curves,u.push(d),u;let f=!r(s[0].getPoints());f=e?!f:f;const A=[],S=[];let re,se,R=[],G=0;S[G]=void 0,R[G]=[];for(let le=0,Ee=s.length;le1){let le=!1,Ee=0;for(let Ce=0,We=S.length;Ce0&&!1===le&&(R=A)}for(let le=0,Ee=S.length;leMath.PI&&(pc-=Xr),Ed<-Math.PI?Ed+=Xr:Ed>Math.PI&&(Ed-=Xr),l.theta=pc<=Ed?Math.max(pc,Math.min(Ed,l.theta)):l.theta>(pc+Ed)/2?Math.max(pc,l.theta):Math.min(Ed,l.theta)),l.phi=Math.max(i.minPolarAngle,Math.min(i.maxPolarAngle,l.phi)),l.makeSafe(),!0===i.enableDamping?i.target.addScaledVector(f,i.dampingFactor):i.target.add(f),i.target.sub(i.cursor),i.target.clampLength(i.minTargetRadius,i.maxTargetRadius),i.target.add(i.cursor);let Ml=!1;if(i.zoomToCursor&&yt||i.object.isOrthographicCamera)l.radius=mr(l.radius);else{const Qc=l.radius;l.radius=mr(l.radius*u),Ml=Qc!=l.radius}if(Tn.setFromSpherical(l),Tn.applyQuaternion(mo),jl.copy(i.target).add(Tn),i.object.lookAt(i.target),!0===i.enableDamping?(d.theta*=1-i.dampingFactor,d.phi*=1-i.dampingFactor,f.multiplyScalar(1-i.dampingFactor)):(d.set(0,0,0),f.set(0,0,0)),i.zoomToCursor&&yt){let Qc=null;if(i.object.isPerspectiveCamera){const Wh=Tn.length();Qc=mr(Wh*u);const Cx=Wh-Qc;i.object.position.addScaledVector(We,Cx),i.object.updateMatrixWorld(),Ml=!!Cx}else if(i.object.isOrthographicCamera){const Wh=new It(Mt.x,Mt.y,0);Wh.unproject(i.object);const Cx=i.object.zoom;i.object.zoom=Math.max(i.minZoom,Math.min(i.maxZoom,i.object.zoom/u)),i.object.updateProjectionMatrix(),Ml=Cx!==i.object.zoom;const EB=new It(Mt.x,Mt.y,0);EB.unproject(i.object),i.object.position.sub(EB).add(Wh),i.object.updateMatrixWorld(),Qc=Tn.length()}else console.warn("WARNING: OrbitControls.js encountered an unknown camera type - zoom to cursor disabled."),i.zoomToCursor=!1;null!==Qc&&(this.screenSpacePanning?i.target.set(0,0,-1).transformDirection(i.object.matrix).multiplyScalar(Qc).add(i.object.position):(o4.origin.copy(i.object.position),o4.direction.set(0,0,-1).transformDirection(i.object.matrix),Math.abs(i.object.up.dot(o4.direction))o||8*(1-is.dot(i.object.quaternion))>o||ki.distanceToSquared(i.target)>o)&&(i.dispatchEvent(fq),Xn.copy(i.object.position),is.copy(i.object.quaternion),ki.copy(i.target),!0)}}(),this.dispose=function(){i.domElement.removeEventListener("contextmenu",ga),i.domElement.removeEventListener("pointerdown",uo),i.domElement.removeEventListener("pointercancel",gn),i.domElement.removeEventListener("wheel",hr),i.domElement.removeEventListener("pointermove",ka),i.domElement.removeEventListener("pointerup",gn),i.domElement.getRootNode().removeEventListener("keydown",Fr,{capture:!0}),null!==i._domElementKeyEvents&&(i._domElementKeyEvents.removeEventListener("keydown",Qo),i._domElementKeyEvents=null)};const i=this,r={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_PAN:4,TOUCH_DOLLY_PAN:5,TOUCH_DOLLY_ROTATE:6};let s=r.NONE;const o=1e-6,l=new nq,d=new nq;let u=1;const f=new It,A=new Qi,S=new Qi,R=new Qi,G=new Qi,re=new Qi,se=new Qi,le=new Qi,Ee=new Qi,Ce=new Qi,We=new It,Mt=new Qi;let yt=!1;const Et=[],Xt={};let Un=!1;function Kt(Tn){const Er=Math.abs(.01*Tn);return Math.pow(.95,i.zoomSpeed*Er)}function Vi(Tn){d.theta-=Tn}function Yi(Tn){d.phi-=Tn}const En=function(){const Tn=new It;return function(mo,Xn){Tn.setFromMatrixColumn(Xn,0),Tn.multiplyScalar(-mo),f.add(Tn)}}(),wi=function(){const Tn=new It;return function(mo,Xn){!0===i.screenSpacePanning?Tn.setFromMatrixColumn(Xn,1):(Tn.setFromMatrixColumn(Xn,0),Tn.crossVectors(i.object.up,Tn)),Tn.multiplyScalar(mo),f.add(Tn)}}(),zn=function(){const Tn=new It;return function(mo,Xn){const is=i.domElement;if(i.object.isPerspectiveCamera){Tn.copy(i.object.position).sub(i.target);let Xr=Tn.length();Xr*=Math.tan(i.object.fov/2*Math.PI/180),En(2*mo*Xr/is.clientHeight,i.object.matrix),wi(2*Xn*Xr/is.clientHeight,i.object.matrix)}else i.object.isOrthographicCamera?(En(mo*(i.object.right-i.object.left)/i.object.zoom/is.clientWidth,i.object.matrix),wi(Xn*(i.object.top-i.object.bottom)/i.object.zoom/is.clientHeight,i.object.matrix)):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - pan disabled."),i.enablePan=!1)}}();function oi(Tn){i.object.isPerspectiveCamera||i.object.isOrthographicCamera?u/=Tn:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),i.enableZoom=!1)}function hi(Tn){i.object.isPerspectiveCamera||i.object.isOrthographicCamera?u*=Tn:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),i.enableZoom=!1)}function vi(Tn,Er){if(!i.zoomToCursor)return;yt=!0;const mo=i.domElement.getBoundingClientRect(),is=Er-mo.top,Xr=mo.height;Mt.x=(Tn-mo.left)/mo.width*2-1,Mt.y=-is/Xr*2+1,We.set(Mt.x,Mt.y,1).unproject(i.object).sub(i.object.position).normalize()}function mr(Tn){return Math.max(i.minDistance,Math.min(i.maxDistance,Tn))}function Mr(Tn){A.set(Tn.clientX,Tn.clientY)}function $s(Tn){G.set(Tn.clientX,Tn.clientY)}function ws(Tn){if(1===Et.length)A.set(Tn.pageX,Tn.pageY);else{const Er=ho(Tn);A.set(.5*(Tn.pageX+Er.x),.5*(Tn.pageY+Er.y))}}function Co(Tn){if(1===Et.length)G.set(Tn.pageX,Tn.pageY);else{const Er=ho(Tn);G.set(.5*(Tn.pageX+Er.x),.5*(Tn.pageY+Er.y))}}function lo(Tn){const Er=ho(Tn),mo=Tn.pageX-Er.x,Xn=Tn.pageY-Er.y,is=Math.sqrt(mo*mo+Xn*Xn);le.set(0,is)}function gr(Tn){if(1==Et.length)S.set(Tn.pageX,Tn.pageY);else{const mo=ho(Tn);S.set(.5*(Tn.pageX+mo.x),.5*(Tn.pageY+mo.y))}R.subVectors(S,A).multiplyScalar(i.rotateSpeed);const Er=i.domElement;Vi(2*Math.PI*R.x/Er.clientHeight),Yi(2*Math.PI*R.y/Er.clientHeight),A.copy(S)}function ls(Tn){if(1===Et.length)re.set(Tn.pageX,Tn.pageY);else{const Er=ho(Tn);re.set(.5*(Tn.pageX+Er.x),.5*(Tn.pageY+Er.y))}se.subVectors(re,G).multiplyScalar(i.panSpeed),zn(se.x,se.y),G.copy(re)}function Tr(Tn){const Er=ho(Tn),mo=Tn.pageX-Er.x,Xn=Tn.pageY-Er.y,is=Math.sqrt(mo*mo+Xn*Xn);Ee.set(0,is),Ce.set(0,Math.pow(Ee.y/le.y,i.zoomSpeed)),oi(Ce.y),le.copy(Ee),vi(.5*(Tn.pageX+Er.x),.5*(Tn.pageY+Er.y))}function uo(Tn){!1!==i.enabled&&(0===Et.length&&(i.domElement.setPointerCapture(Tn.pointerId),i.domElement.addEventListener("pointermove",ka),i.domElement.addEventListener("pointerup",gn)),!function qa(Tn){for(let Er=0;Er0?oi(Kt(Ce.y)):Ce.y<0&&hi(Kt(Ce.y)),le.copy(Ee),i.update()}(Tn);break;case r.PAN:if(!1===i.enablePan)return;!function ms(Tn){re.set(Tn.clientX,Tn.clientY),se.subVectors(re,G).multiplyScalar(i.panSpeed),zn(se.x,se.y),G.copy(re),i.update()}(Tn)}}(Tn))}function gn(Tn){switch(function Sd(Tn){delete Xt[Tn.pointerId];for(let Er=0;Er0&&oi(Kt(Tn.deltaY)),i.update()}(function $r(Tn){const mo={clientX:Tn.clientX,clientY:Tn.clientY,deltaY:Tn.deltaY};switch(Tn.deltaMode){case 1:mo.deltaY*=16;break;case 2:mo.deltaY*=100}return Tn.ctrlKey&&!Un&&(mo.deltaY*=10),mo}(Tn)),i.dispatchEvent(pq))}function Fr(Tn){"Control"===Tn.key&&(Un=!0,i.domElement.getRootNode().addEventListener("keyup",Aa,{passive:!0,capture:!0}))}function Aa(Tn){"Control"===Tn.key&&(Un=!1,i.domElement.getRootNode().removeEventListener("keyup",Aa,{passive:!0,capture:!0}))}function Qo(Tn){!1===i.enabled||!1===i.enablePan||function Us(Tn){let Er=!1;switch(Tn.code){case i.keys.UP:Tn.ctrlKey||Tn.metaKey||Tn.shiftKey?Yi(2*Math.PI*i.rotateSpeed/i.domElement.clientHeight):zn(0,i.keyPanSpeed),Er=!0;break;case i.keys.BOTTOM:Tn.ctrlKey||Tn.metaKey||Tn.shiftKey?Yi(-2*Math.PI*i.rotateSpeed/i.domElement.clientHeight):zn(0,-i.keyPanSpeed),Er=!0;break;case i.keys.LEFT:Tn.ctrlKey||Tn.metaKey||Tn.shiftKey?Vi(2*Math.PI*i.rotateSpeed/i.domElement.clientHeight):zn(i.keyPanSpeed,0),Er=!0;break;case i.keys.RIGHT:Tn.ctrlKey||Tn.metaKey||Tn.shiftKey?Vi(-2*Math.PI*i.rotateSpeed/i.domElement.clientHeight):zn(-i.keyPanSpeed,0),Er=!0}Er&&(Tn.preventDefault(),i.update())}(Tn)}function As(Tn){switch(Ro(Tn),Et.length){case 1:switch(i.touches.ONE){case 0:if(!1===i.enableRotate)return;ws(Tn),s=r.TOUCH_ROTATE;break;case 1:if(!1===i.enablePan)return;Co(Tn),s=r.TOUCH_PAN;break;default:s=r.NONE}break;case 2:switch(i.touches.TWO){case 2:if(!1===i.enableZoom&&!1===i.enablePan)return;(function On(Tn){i.enableZoom&&lo(Tn),i.enablePan&&Co(Tn)})(Tn),s=r.TOUCH_DOLLY_PAN;break;case 3:if(!1===i.enableZoom&&!1===i.enableRotate)return;(function ps(Tn){i.enableZoom&&lo(Tn),i.enableRotate&&ws(Tn)})(Tn),s=r.TOUCH_DOLLY_ROTATE;break;default:s=r.NONE}break;default:s=r.NONE}s!==r.NONE&&i.dispatchEvent(xF)}function ga(Tn){!1!==i.enabled&&Tn.preventDefault()}function Ro(Tn){let Er=Xt[Tn.pointerId];void 0===Er&&(Er=new Qi,Xt[Tn.pointerId]=Er),Er.set(Tn.pageX,Tn.pageY)}function ho(Tn){return Xt[Tn.pointerId===Et[0]?Et[1]:Et[0]]}i.domElement.addEventListener("contextmenu",ga),i.domElement.addEventListener("pointerdown",uo),i.domElement.addEventListener("pointercancel",gn),i.domElement.addEventListener("wheel",hr,{passive:!1}),i.domElement.getRootNode().addEventListener("keydown",Fr,{passive:!0,capture:!0}),this.update()}}class ume{constructor(e,t=[0,0,200]){var i;this.controls=[],this.mainControls=null,this.overlayControls=null;const r=null===(i=e.getMainRenderer())||void 0===i?void 0:i.domElement,s=new Iu(75,r.offsetWidth/r.offsetHeight,10,1e5),o=new Q2(r.offsetWidth/-2,r.offsetWidth/2,r.offsetHeight/2,r.offsetHeight/-2,10,1e5);this.perspectiveControls=this.setOrbitControls(s,r),this.orthographicControls=this.setOrbitControls(o,r),s.position.z=o.position.z=t[2],s.position.y=o.position.y=t[1],s.position.x=o.position.x=t[0],t.length>=6&&(this.perspectiveControls.target=this.orthographicControls.target=new It(t[3],t[4],t[5])),this.addControls(this.perspectiveControls),this.addControls(this.orthographicControls),this.setActiveControls(this.perspectiveControls),this.setMainControls(this.perspectiveControls),this.setOverlayControls(this.orthographicControls),this.getActiveControls().addEventListener("change",()=>{this.transformSync(),this.updateSync()}),this.initializeZoomControls(),this.setupResize(r)}setOrbitControls(e,t){const i=new dme(e,t);return i.enableDamping=!0,i.dampingFactor=.25,i.enableZoom=!0,i.autoRotate=!1,i}setActiveControls(e){this.activeControls=e}setMainControls(e){this.mainControls=e}setOverlayControls(e){this.overlayControls=e}getActiveControls(){return this.activeControls}getMainControls(){return this.mainControls}getOverlayControls(){return this.overlayControls}getActiveCamera(){return this.activeControls.object}getMainCamera(){return this.mainControls.object}getOverlayCamera(){return this.overlayControls.object}getAllCameras(){return[this.getMainCamera(),this.getOverlayCamera()]}addControls(e){this.containsObject(e,this.controls)||this.controls.push(e)}removeControls(e){const t=this.controls.indexOf(e);t>-1&&this.controls.splice(t,1)}swapControls(){const e=this.mainControls;this.mainControls=this.overlayControls,this.overlayControls=e}updateSync(){for(const e of this.controls)e!==this.activeControls&&this.update(e)}update(e){e.update()}transformSync(){for(const e of this.controls)e!==this.activeControls&&(this.positionSync(e),this.rotationSync(e))}zoomTo(e,t){for(const i of this.zoomCameraAnimPairs){const r=i.camera,s=i.anim;if(r.isOrthographicCamera)s.to({zoom:r.zoom*(1/e)},t),r.updateProjectionMatrix();else{const o=r.position;s.to({x:o.x*e,y:o.y*e,z:o.z*e},t)}s.start()}}lookAtObject(e,t,i=0){new It(0,0,0);const s=this.getObjectPosition(e,t);if(s)for(const o of this.getAllCameras())new If(o.position).to({x:1.1*s.x+i,y:1.1*s.y+i,z:1.1*s.z+i},200).start()}getObjectPosition(e,t){var i,r;const s=t.getObjectByProperty("uuid",e);if(s){const o=new It(0,0,0);let l=new It;return s instanceof Wl?s.traverse(d=>{var u,f;if(0===d.children.length)if(d.position.equals(o)){if(null!==(u=d.geometry)&&void 0!==u&&u.boundingSphere)try{l.add(d.geometry.boundingSphere.getBoundingBox().max)}catch{l.add(null===(f=d.geometry.boundingSphere)||void 0===f?void 0:f.center)}}else l.add(d.position)}):l=s.position.equals(o)?null===(r=null===(i=s.geometry)||void 0===i?void 0:i.boundingSphere)||void 0===r?void 0:r.center:s.position,l}}hideTubeTracksOnZoom(e,t){let i=!1;const r=new It;this.activeControls.addEventListener("change",s=>{var o,l,d,u;const f=(null===(l=null===(o=s?.target)||void 0===o?void 0:o.object)||void 0===l?void 0:l.position).distanceTo(r){"Track"===A.name&&A.geometry instanceof jb&&(A.visible=!1)}),i=!0):!f&&i&&(null===(u=e.getObjectByName("Tracks"))||void 0===u||u.traverse(A=>{"Track"===A.name&&A.geometry instanceof jb&&(A.visible=!0)}),i=!1)})}initializeZoomControls(){const e=this.getAllCameras();this.zoomCameraAnimPairs=[];for(const t of e){const i=new If(t.isOrthographicCamera?t:t.position);this.zoomCameraAnimPairs.push({camera:t,anim:i})}}positionSync(e){e.object.position.set(this.activeControls.object.position.x,this.activeControls.object.position.y,this.activeControls.object.position.z)}rotationSync(e){e.target=this.activeControls.target}containsObject(e,t){for(const i of t)if(i===e)return!0;return!1}setupResize(e){window.addEventListener("resize",()=>{let t=this.getMainCamera();t.isOrthographicCamera?(t.left=e.offsetWidth/-2,t.right=e.offsetWidth/2,t.top=e.offsetHeight/2,t.bottom=e.offsetHeight/-2,t.updateProjectionMatrix()):(t.aspect=e.offsetWidth/e.offsetHeight,t.updateProjectionMatrix())})}objectIndex(e,t){for(let i=0;it.offsetWidth>0?t.offsetWidth:window.innerWidth,r=()=>t.offsetHeight>0?t.offsetHeight:window.innerHeight,s=this.getMainRenderer();s.setSize(i(),r(),!1),s.setPixelRatio(window.devicePixelRatio),s.domElement.id="three-canvas",t.appendChild(this.getMainRenderer().domElement),window.addEventListener("resize",()=>{s.setSize(i(),r())})}setMainRenderer(e){this.mainRenderer=e}setOverlayRenderer(e){const t=new wI({canvas:e,antialias:!1,alpha:!0});this.addRenderer(t),this.overlayRenderer=t}setRenderers(e){this.renderers=e}getMainRenderer(){return this.mainRenderer}getOverlayRenderer(){return this.overlayRenderer}getRenderers(){return this.renderers}addRenderer(e){this.containsObject(e,this.renderers)||this.renderers.push(e)}removeControls(e){const t=this.renderers.indexOf(e);t>-1&&this.renderers.splice(t,1)}swapRenderers(e,t){const i=e;e=t,t=i}containsObject(e,t){for(const i of t)if(i===e)return!0;return!1}setLocalClippingEnabled(e){for(const t of this.renderers)t.localClippingEnabled=e}getLocalClipping(){if(this.renderers.length>0)return this.renderers[0].localClippingEnabled}isFixedOverlay(){return this.fixedOverlay}setFixOverlay(e){this.fixedOverlay=e}}class fme{parse(e){let t="",i=0,r=0,s=0;const o=new It,l=new Cr,d=new It,u=new Qi,f=[];return e.traverse(function(G){!0===G.isMesh&&function A(G){let re=0,se=0,le=0;const Ee=G.geometry,Ce=new Ta,We=Ee.getAttribute("position"),Mt=Ee.getAttribute("normal"),yt=Ee.getAttribute("uv"),Et=Ee.getIndex();if(t+="o "+G.name+"\n",G.material&&G.material.name&&(t+="usemtl "+G.material.name+"\n"),void 0!==We)for(let Xt=0,Un=We.count;Xt"u"&&typeof OffscreenCanvas<"u"?new OffscreenCanvas(1,1):document.createElement("canvas")}function xq(n,e){if(void 0!==n.toBlob)return new Promise(i=>n.toBlob(i,e));let t;return"image/jpeg"===e?t=.92:"image/webp"===e&&(t=.8),n.convertToBlob({type:e,quality:t})}class xme{constructor(){this.plugins=[],this.options={},this.pending=[],this.buffers=[],this.byteOffset=0,this.buffers=[],this.nodeMap=new Map,this.skins=[],this.extensionsUsed={},this.extensionsRequired={},this.uids=new Map,this.uid=0,this.json={asset:{version:"2.0",generator:"THREE.GLTFExporter"}},this.cache={meshes:new Map,attributes:new Map,attributesNormalized:new Map,materials:new Map,textures:new Map,images:new Map}}setPlugins(e){this.plugins=e}write(e,t,i={}){var r=this;return(0,Te.A)(function*(){r.options=Object.assign({binary:!1,trs:!1,onlyVisible:!0,maxTextureSize:1/0,animations:[],includeCustomExtensions:!1},i),r.options.animations.length>0&&(r.options.trs=!0),r.processInput(e),yield Promise.all(r.pending);const l=r.json;i=r.options;const d=r.extensionsUsed,u=r.extensionsRequired,f=new Blob(r.buffers,{type:"application/octet-stream"}),A=Object.keys(d),S=Object.keys(u);if(A.length>0&&(l.extensionsUsed=A),S.length>0&&(l.extensionsRequired=S),l.buffers&&l.buffers.length>0&&(l.buffers[0].byteLength=f.size),!0===i.binary){const R=new FileReader;R.readAsArrayBuffer(f),R.onloadend=function(){const G=EF(R.result),re=new DataView(new ArrayBuffer(8));re.setUint32(0,G.byteLength,!0),re.setUint32(4,5130562,!0);const se=EF(function yme(n){return(new TextEncoder).encode(n).buffer}(JSON.stringify(l)),32),le=new DataView(new ArrayBuffer(8));le.setUint32(0,se.byteLength,!0),le.setUint32(4,1313821514,!0);const Ee=new ArrayBuffer(12),Ce=new DataView(Ee);Ce.setUint32(0,1179937895,!0),Ce.setUint32(4,2,!0),Ce.setUint32(8,12+le.byteLength+se.byteLength+re.byteLength+G.byteLength,!0);const Mt=new Blob([Ee,le,se,re,G],{type:"application/octet-stream"}),yt=new FileReader;yt.readAsArrayBuffer(Mt),yt.onloadend=function(){t(yt.result)}}}else if(l.buffers&&l.buffers.length>0){const R=new FileReader;R.readAsDataURL(f),R.onloadend=function(){l.buffers[0].uri=R.result,t(l)}}else t(l)})()}serializeUserData(e,t){if(0===Object.keys(e.userData).length)return;const i=this.options,r=this.extensionsUsed;try{const s=JSON.parse(JSON.stringify(e.userData));if(i.includeCustomExtensions&&s.gltfExtensions){void 0===t.extensions&&(t.extensions={});for(const o in s.gltfExtensions)t.extensions[o]=s.gltfExtensions[o],r[o]=!0;delete s.gltfExtensions}Object.keys(s).length>0&&(t.extras=s)}catch(s){console.warn("THREE.GLTFExporter: userData of '"+e.name+"' won't be serialized because of JSON.stringify error - "+s.message)}}getUID(e,t=!1){if(!1===this.uids.has(e)){const r=new Map;r.set(!0,this.uid++),r.set(!1,this.uid++),this.uids.set(e,r)}return this.uids.get(e).get(t)}isNormalizedNormalAttribute(e){if(this.cache.attributesNormalized.has(e))return!1;const i=new It;for(let r=0,s=e.count;r5e-4)return!1;return!0}createNormalizedNormalAttribute(e){const t=this.cache;if(t.attributesNormalized.has(e))return t.attributesNormalized.get(e);const i=e.clone(),r=new It;for(let s=0,o=i.count;s4?re=e.array[R*e.itemSize+G]:(0===G?re=e.getX(R):1===G?re=e.getY(R):2===G?re=e.getZ(R):3===G&&(re=e.getW(R)),!0===e.normalized&&(re=VS.normalize(re,e.array))),5126===t?u.setFloat32(f,re,!0):5124===t?u.setInt32(f,re,!0):5125===t?u.setUint32(f,re,!0):5122===t?u.setInt16(f,re,!0):5123===t?u.setUint16(f,re,!0):5120===t?u.setInt8(f,re):5121===t&&u.setUint8(f,re),f+=l}const A={buffer:this.processBuffer(u.buffer),byteOffset:this.byteOffset,byteLength:d};return void 0!==s&&(A.target=s),34962===s&&(A.byteStride=e.itemSize*l),this.byteOffset+=d,o.bufferViews.push(A),{id:o.bufferViews.length-1,byteLength:0}}processBufferViewImage(e){const t=this,i=t.json;return i.bufferViews||(i.bufferViews=[]),new Promise(function(r){const s=new FileReader;s.readAsArrayBuffer(e),s.onloadend=function(){const o=EF(s.result),l={buffer:t.processBuffer(o),byteOffset:t.byteOffset,byteLength:o.byteLength};t.byteOffset+=o.byteLength,r(i.bufferViews.push(l)-1)}})}processAccessor(e,t,i,r){const s=this.json;let l;if(e.array.constructor===Float32Array)l=5126;else if(e.array.constructor===Int32Array)l=5124;else if(e.array.constructor===Uint32Array)l=5125;else if(e.array.constructor===Int16Array)l=5122;else if(e.array.constructor===Uint16Array)l=5123;else if(e.array.constructor===Int8Array)l=5120;else{if(e.array.constructor!==Uint8Array)throw new Error("THREE.GLTFExporter: Unsupported bufferAttribute component type: "+e.array.constructor.name);l=5121}if(void 0===i&&(i=0),(void 0===r||r===1/0)&&(r=e.count),0===r)return null;const d=function bme(n,e,t){const i={min:new Array(n.itemSize).fill(Number.POSITIVE_INFINITY),max:new Array(n.itemSize).fill(Number.NEGATIVE_INFINITY)};for(let r=e;r4?o=n.array[r*n.itemSize+s]:(0===s?o=n.getX(r):1===s?o=n.getY(r):2===s?o=n.getZ(r):3===s&&(o=n.getW(r)),!0===n.normalized&&(o=VS.normalize(o,n.array))),i.min[s]=Math.min(i.min[s],o),i.max[s]=Math.max(i.max[s],o)}return i}(e,i,r);let u;void 0!==t&&(u=e===t.index?34963:34962);const f=this.processBufferView(e,l,i,r,u),A={bufferView:f.id,byteOffset:f.byteOffset,componentType:l,count:r,max:d.max,min:d.min,type:{1:"SCALAR",2:"VEC2",3:"VEC3",4:"VEC4",9:"MAT3",16:"MAT4"}[e.itemSize]};return!0===e.normalized&&(A.normalized=!0),s.accessors||(s.accessors=[]),s.accessors.push(A)-1}processImage(e,t,i,r="image/png"){if(null!==e){const s=this,o=s.cache,l=s.json,d=s.options,u=s.pending;o.images.has(e)||o.images.set(e,{});const f=o.images.get(e),A=r+":flipY/"+i.toString();if(void 0!==f[A])return f[A];l.images||(l.images=[]);const S={mimeType:r},R=bq();R.width=Math.min(e.width,d.maxTextureSize),R.height=Math.min(e.height,d.maxTextureSize);const G=R.getContext("2d");if(!0===i&&(G.translate(0,R.height),G.scale(1,-1)),void 0!==e.data){t!==gp&&console.error("GLTFExporter: Only RGBAFormat is supported.",t),(e.width>d.maxTextureSize||e.height>d.maxTextureSize)&&console.warn("GLTFExporter: Image size is bigger than maxTextureSize",e);const se=new Uint8ClampedArray(e.height*e.width*4);for(let le=0;les.processBufferViewImage(se)).then(se=>{S.bufferView=se})):void 0!==R.toDataURL?S.uri=R.toDataURL(r):u.push(xq(R,r).then(se=>(new FileReader).readAsDataURL(se)).then(se=>{S.uri=se}));const re=l.images.push(S)-1;return f[A]=re,re}throw new Error("THREE.GLTFExporter: No valid image data found. Unable to process texture.")}processSampler(e){const t=this.json;return t.samplers||(t.samplers=[]),t.samplers.push({magFilter:pm[e.magFilter],minFilter:pm[e.minFilter],wrapS:pm[e.wrapS],wrapT:pm[e.wrapT]})-1}processTexture(e){const i=this.options,r=this.cache,s=this.json;if(r.textures.has(e))return r.textures.get(e);s.textures||(s.textures=[]),e instanceof iC&&(e=CF(e,i.maxTextureSize));let o=e.userData.mimeType;"image/webp"===o&&(o="image/png");const l={sampler:this.processSampler(e),source:this.processImage(e.image,e.format,e.flipY,o)};e.name&&(l.name=e.name),this._invokeAll(function(u){u.writeTexture&&u.writeTexture(e,l)});const d=s.textures.push(l)-1;return r.textures.set(e,d),d}processMaterial(e){const t=this.cache,i=this.json;if(t.materials.has(e))return t.materials.get(e);if(e.isShaderMaterial)return console.warn("GLTFExporter: THREE.ShaderMaterial not supported."),null;i.materials||(i.materials=[]);const r={pbrMetallicRoughness:{}};!0!==e.isMeshStandardMaterial&&!0!==e.isMeshBasicMaterial&&console.warn("GLTFExporter: Use MeshStandardMaterial or MeshBasicMaterial for best results.");const s=e.color.toArray().concat([e.opacity]);if(uE(s,[1,1,1,1])||(r.pbrMetallicRoughness.baseColorFactor=s),e.isMeshStandardMaterial?(r.pbrMetallicRoughness.metallicFactor=e.metalness,r.pbrMetallicRoughness.roughnessFactor=e.roughness):(r.pbrMetallicRoughness.metallicFactor=.5,r.pbrMetallicRoughness.roughnessFactor=.5),e.metalnessMap||e.roughnessMap){const l=this.buildMetalRoughTexture(e.metalnessMap,e.roughnessMap),d={index:this.processTexture(l),channel:l.channel};this.applyTextureTransform(d,l),r.pbrMetallicRoughness.metallicRoughnessTexture=d}if(e.map){const l={index:this.processTexture(e.map),texCoord:e.map.channel};this.applyTextureTransform(l,e.map),r.pbrMetallicRoughness.baseColorTexture=l}if(e.emissive){const l=e.emissive;if(Math.max(l.r,l.g,l.b)>0&&(r.emissiveFactor=e.emissive.toArray()),e.emissiveMap){const u={index:this.processTexture(e.emissiveMap),texCoord:e.emissiveMap.channel};this.applyTextureTransform(u,e.emissiveMap),r.emissiveTexture=u}}if(e.normalMap){const l={index:this.processTexture(e.normalMap),texCoord:e.normalMap.channel};e.normalScale&&1!==e.normalScale.x&&(l.scale=e.normalScale.x),this.applyTextureTransform(l,e.normalMap),r.normalTexture=l}if(e.aoMap){const l={index:this.processTexture(e.aoMap),texCoord:e.aoMap.channel};1!==e.aoMapIntensity&&(l.strength=e.aoMapIntensity),this.applyTextureTransform(l,e.aoMap),r.occlusionTexture=l}e.transparent?r.alphaMode="BLEND":e.alphaTest>0&&(r.alphaMode="MASK",r.alphaCutoff=e.alphaTest),2===e.side&&(r.doubleSided=!0),""!==e.name&&(r.name=e.name),this.serializeUserData(e,r),this._invokeAll(function(l){l.writeMaterial&&l.writeMaterial(e,r)});const o=i.materials.push(r)-1;return t.materials.set(e,o),o}processMesh(e){const t=this.cache,i=this.json,r=[e.geometry.uuid];if(Array.isArray(e.material))for(let We=0,Mt=e.material.length;We0){const We=[],Mt=[],yt={};if(void 0!==e.morphTargetDictionary)for(const Et in e.morphTargetDictionary)yt[e.morphTargetDictionary[Et]]=Et;for(let Et=0;Et0&&(d.extras={},d.extras.targetNames=Mt)}const re=Array.isArray(e.material);if(re&&0===o.groups.length)return null;let se=!1;if(re&&null===o.index){const We=[];for(let Mt=0,yt=o.attributes.position.count;Mt0&&(yt.targets=A),null!==o.index){let Xt=this.getUID(o.index);(void 0!==Ee[We].start||void 0!==Ee[We].count)&&(Xt+=":"+Ee[We].start+":"+Ee[We].count),t.attributes.has(Xt)?yt.indices=t.attributes.get(Xt):(yt.indices=this.processAccessor(o.index,o,Ee[We].start,Ee[We].count),t.attributes.set(Xt,yt.indices)),null===yt.indices&&delete yt.indices}const Et=this.processMaterial(le[Ee[We].materialIndex]);null!==Et&&(yt.material=Et),f.push(yt)}!0===se&&o.setIndex(null),d.primitives=f,i.meshes||(i.meshes=[]),this._invokeAll(function(We){We.writeMesh&&We.writeMesh(e,d)});const Ce=i.meshes.push(d)-1;return t.meshes.set(s,Ce),Ce}detectMeshQuantization(e,t){if(this.extensionsUsed[SF])return;let i;switch(t.array.constructor){case Int8Array:i="byte";break;case Uint8Array:i="unsigned byte";break;case Int16Array:i="short";break;case Uint16Array:i="unsigned short";break;default:return}t.normalized&&(i+=" normalized");const r=e.split("_",1)[0];Aq[r]&&Aq[r].includes(i)&&(this.extensionsUsed[SF]=!0,this.extensionsRequired[SF]=!0)}processCamera(e){const t=this.json;t.cameras||(t.cameras=[]);const i=e.isOrthographicCamera,r={type:i?"orthographic":"perspective"};return i?r.orthographic={xmag:2*e.right,ymag:2*e.top,zfar:e.far<=0?.001:e.far,znear:e.near<0?0:e.near}:r.perspective={aspectRatio:e.aspect,yfov:VS.degToRad(e.fov),zfar:e.far<=0?.001:e.far,znear:e.near<0?0:e.near},""!==e.name&&(r.name=e.type),t.cameras.push(r)-1}processAnimation(e,t){const i=this.json,r=this.nodeMap;i.animations||(i.animations=[]);const s=(e=MF.Utils.mergeMorphTargetTracks(e.clone(),t)).tracks,o=[],l=[];for(let d=0;d0){const l=[];for(let d=0,u=e.children.length;d0&&(s.children=l)}this._invokeAll(function(l){l.writeNode&&l.writeNode(e,s)});const o=t.nodes.push(s)-1;return r.set(e,o),o}processScene(e){const t=this.json,i=this.options;t.scenes||(t.scenes=[],t.scene=0);const r={};""!==e.name&&(r.name=e.name),t.scenes.push(r);const s=[];for(let o=0,l=e.children.length;o0&&(r.nodes=s),this.serializeUserData(e,r)}processObjects(e){const t=new XS;t.name="AuxScene";for(let i=0;i0&&this.processObjects(i);for(let r=0;r0&&(o.range=e.distance)):e.isSpotLight&&(o.type="spot",e.distance>0&&(o.range=e.distance),o.spot={},o.spot.innerConeAngle=(1-e.penumbra)*e.angle,o.spot.outerConeAngle=e.angle),void 0!==e.decay&&2!==e.decay&&console.warn("THREE.GLTFExporter: Light decay may be lost. glTF is physically-based, and expects light.decay=2."),e.target&&(e.target.parent!==e||0!==e.target.position.x||0!==e.target.position.y||-1!==e.target.position.z)&&console.warn("THREE.GLTFExporter: Light direction may be lost. For best results, make light.target a child of the light with position 0,0,-1."),s[this.name]||(r.extensions=r.extensions||{},r.extensions[this.name]={lights:[]},s[this.name]=!0);const l=r.extensions[this.name].lights;l.push(o),t.extensions=t.extensions||{},t.extensions[this.name]={light:l.length-1}}}class Cme{constructor(e){this.writer=e,this.name="KHR_materials_unlit"}writeMaterial(e,t){if(!e.isMeshBasicMaterial)return;const r=this.writer.extensionsUsed;t.extensions=t.extensions||{},t.extensions[this.name]={},r[this.name]=!0,t.pbrMetallicRoughness.metallicFactor=0,t.pbrMetallicRoughness.roughnessFactor=.9}}class Mme{constructor(e){this.writer=e,this.name="KHR_materials_clearcoat"}writeMaterial(e,t){if(!e.isMeshPhysicalMaterial||0===e.clearcoat)return;const i=this.writer,r=i.extensionsUsed,s={};if(s.clearcoatFactor=e.clearcoat,e.clearcoatMap){const o={index:i.processTexture(e.clearcoatMap),texCoord:e.clearcoatMap.channel};i.applyTextureTransform(o,e.clearcoatMap),s.clearcoatTexture=o}if(s.clearcoatRoughnessFactor=e.clearcoatRoughness,e.clearcoatRoughnessMap){const o={index:i.processTexture(e.clearcoatRoughnessMap),texCoord:e.clearcoatRoughnessMap.channel};i.applyTextureTransform(o,e.clearcoatRoughnessMap),s.clearcoatRoughnessTexture=o}if(e.clearcoatNormalMap){const o={index:i.processTexture(e.clearcoatNormalMap),texCoord:e.clearcoatNormalMap.channel};i.applyTextureTransform(o,e.clearcoatNormalMap),s.clearcoatNormalTexture=o}t.extensions=t.extensions||{},t.extensions[this.name]=s,r[this.name]=!0}}class Sme{constructor(e){this.writer=e,this.name="KHR_materials_iridescence"}writeMaterial(e,t){if(!e.isMeshPhysicalMaterial||0===e.iridescence)return;const i=this.writer,r=i.extensionsUsed,s={};if(s.iridescenceFactor=e.iridescence,e.iridescenceMap){const o={index:i.processTexture(e.iridescenceMap),texCoord:e.iridescenceMap.channel};i.applyTextureTransform(o,e.iridescenceMap),s.iridescenceTexture=o}if(s.iridescenceIor=e.iridescenceIOR,s.iridescenceThicknessMinimum=e.iridescenceThicknessRange[0],s.iridescenceThicknessMaximum=e.iridescenceThicknessRange[1],e.iridescenceThicknessMap){const o={index:i.processTexture(e.iridescenceThicknessMap),texCoord:e.iridescenceThicknessMap.channel};i.applyTextureTransform(o,e.iridescenceThicknessMap),s.iridescenceThicknessTexture=o}t.extensions=t.extensions||{},t.extensions[this.name]=s,r[this.name]=!0}}class Eme{constructor(e){this.writer=e,this.name="KHR_materials_transmission"}writeMaterial(e,t){if(!e.isMeshPhysicalMaterial||0===e.transmission)return;const i=this.writer,r=i.extensionsUsed,s={};if(s.transmissionFactor=e.transmission,e.transmissionMap){const o={index:i.processTexture(e.transmissionMap),texCoord:e.transmissionMap.channel};i.applyTextureTransform(o,e.transmissionMap),s.transmissionTexture=o}t.extensions=t.extensions||{},t.extensions[this.name]=s,r[this.name]=!0}}class Tme{constructor(e){this.writer=e,this.name="KHR_materials_volume"}writeMaterial(e,t){if(!e.isMeshPhysicalMaterial||0===e.transmission)return;const i=this.writer,r=i.extensionsUsed,s={};if(s.thicknessFactor=e.thickness,e.thicknessMap){const o={index:i.processTexture(e.thicknessMap),texCoord:e.thicknessMap.channel};i.applyTextureTransform(o,e.thicknessMap),s.thicknessTexture=o}s.attenuationDistance=e.attenuationDistance,s.attenuationColor=e.attenuationColor.toArray(),t.extensions=t.extensions||{},t.extensions[this.name]=s,r[this.name]=!0}}class Dme{constructor(e){this.writer=e,this.name="KHR_materials_ior"}writeMaterial(e,t){if(!e.isMeshPhysicalMaterial||1.5===e.ior)return;const r=this.writer.extensionsUsed,s={};s.ior=e.ior,t.extensions=t.extensions||{},t.extensions[this.name]=s,r[this.name]=!0}}class Ime{constructor(e){this.writer=e,this.name="KHR_materials_specular"}writeMaterial(e,t){if(!e.isMeshPhysicalMaterial||1===e.specularIntensity&&e.specularColor.equals(pme)&&!e.specularIntensityMap&&!e.specularColorMap)return;const i=this.writer,r=i.extensionsUsed,s={};if(e.specularIntensityMap){const o={index:i.processTexture(e.specularIntensityMap),texCoord:e.specularIntensityMap.channel};i.applyTextureTransform(o,e.specularIntensityMap),s.specularTexture=o}if(e.specularColorMap){const o={index:i.processTexture(e.specularColorMap),texCoord:e.specularColorMap.channel};i.applyTextureTransform(o,e.specularColorMap),s.specularColorTexture=o}s.specularFactor=e.specularIntensity,s.specularColorFactor=e.specularColor.toArray(),t.extensions=t.extensions||{},t.extensions[this.name]=s,r[this.name]=!0}}class Bme{constructor(e){this.writer=e,this.name="KHR_materials_sheen"}writeMaterial(e,t){if(!e.isMeshPhysicalMaterial||0==e.sheen)return;const i=this.writer,r=i.extensionsUsed,s={};if(e.sheenRoughnessMap){const o={index:i.processTexture(e.sheenRoughnessMap),texCoord:e.sheenRoughnessMap.channel};i.applyTextureTransform(o,e.sheenRoughnessMap),s.sheenRoughnessTexture=o}if(e.sheenColorMap){const o={index:i.processTexture(e.sheenColorMap),texCoord:e.sheenColorMap.channel};i.applyTextureTransform(o,e.sheenColorMap),s.sheenColorTexture=o}s.sheenRoughnessFactor=e.sheenRoughness,s.sheenColorFactor=e.sheenColor.toArray(),t.extensions=t.extensions||{},t.extensions[this.name]=s,r[this.name]=!0}}class Pme{constructor(e){this.writer=e,this.name="KHR_materials_anisotropy"}writeMaterial(e,t){if(!e.isMeshPhysicalMaterial||0==e.anisotropy)return;const i=this.writer,r=i.extensionsUsed,s={};if(e.anisotropyMap){const o={index:i.processTexture(e.anisotropyMap)};i.applyTextureTransform(o,e.anisotropyMap),s.anisotropyTexture=o}s.anisotropyStrength=e.anisotropy,s.anisotropyRotation=e.anisotropyRotation,t.extensions=t.extensions||{},t.extensions[this.name]=s,r[this.name]=!0}}class Rme{constructor(e){this.writer=e,this.name="KHR_materials_emissive_strength"}writeMaterial(e,t){if(!e.isMeshStandardMaterial||1===e.emissiveIntensity)return;const r=this.writer.extensionsUsed,s={};s.emissiveStrength=e.emissiveIntensity,t.extensions=t.extensions||{},t.extensions[this.name]=s,r[this.name]=!0}}class kme{constructor(e){this.writer=e,this.name="EXT_materials_bump"}writeMaterial(e,t){if(!e.isMeshStandardMaterial||1===e.bumpScale&&!e.bumpMap)return;const i=this.writer,r=i.extensionsUsed,s={};if(e.bumpMap){const o={index:i.processTexture(e.bumpMap),texCoord:e.bumpMap.channel};i.applyTextureTransform(o,e.bumpMap),s.bumpTexture=o}s.bumpFactor=e.bumpScale,t.extensions=t.extensions||{},t.extensions[this.name]=s,r[this.name]=!0}}class Fme{constructor(e){this.writer=e,this.name="EXT_mesh_gpu_instancing"}writeNode(e,t){if(!e.isInstancedMesh)return;const i=this.writer,r=e,s=new Float32Array(3*r.count),o=new Float32Array(4*r.count),l=new Float32Array(3*r.count),d=new wo,u=new It,f=new Gc,A=new It;for(let R=0;Rn.times[n.times.length-1]){if(Math.abs(n.times[n.times.length-1]-e)<.001)return n.times.length-1;r[r.length-1]=e,r.set(n.times,0),s.set(n.values,0),s.set(o.evaluate(e),n.values.length),l=r.length-1}else for(let d=0;de){r.set(n.times.slice(0,d+1),0),r[d+1]=e,r.set(n.times.slice(d+1),d+2),s.set(n.values.slice(0,(d+1)*i),0),s.set(o.evaluate(e),(d+1)*i),s.set(n.values.slice((d+1)*i),(d+2)*i),l=d+1;break}}return n.times=r,n.values=s,l},mergeMorphTargetTracks:function(n,e){const t=[],i={},r=n.tracks;for(let s=0;s{const i=new Blob([n],{type:t}),r=document.createElement("a");r.style.display="none",r.href=URL.createObjectURL(i),r.download=e,r.click(),r.remove()},wq=(n,e="application/json")=>{let t=document.createElement("input");t.type="file",t.accept=e,t.onchange=i=>{var r;const s=null===(r=i.target)||void 0===r?void 0:r.files[0],o=new FileReader;o.onload=l=>{n?.(l.target.result.toString()),t.remove(),t=null},o.readAsText(s)},t.click(),setTimeout(()=>{console.log("Let us just wait a second")},1e3)};class Ome{exportSceneToOBJ(e){const i=(new fme).parse(e);l4(i,"phoenix-obj.obj","text/plain")}exportPhoenixScene(e,t,i){const r=new MF,s=this.saveSceneConfig(t,i);r.parse(e,o=>{const d=JSON.stringify({sceneConfiguration:s,scene:o},null,2);l4(d,"phoenix-scene.phnx","text/plain")},null)}saveSceneConfig(e,t){return{eventData:this.saveEventDataConfiguration(e),geometries:this.saveGeometriesConfiguration(t)}}saveEventDataConfiguration(e){const t={};for(const i of e.children)if(i.name){t[i.name]=[];for(const r of i.children)r.name&&t[i.name].push(r.name)}return t}saveGeometriesConfiguration(e){const t=[];return e.children.forEach(i=>{"EventData"!==i.name&&t.push(i.name)}),t}}const Lme=/^[og]\s*(.+)?/,Nme=/^mtllib /,Ume=/^usemtl /,zme=/^usemap /,Cq=/\s+/,Mq=new It,TF=new It,Sq=new It,Eq=new It,uA=new It,c4=new Cr;function Hme(){const n={objects:[],object:{},vertices:[],normals:[],colors:[],uvs:[],materials:{},materialLibraries:[],startObject:function(e,t){if(this.object&&!1===this.object.fromDeclaration)return this.object.name=e,void(this.object.fromDeclaration=!1!==t);const i=this.object&&"function"==typeof this.object.currentMaterial?this.object.currentMaterial():void 0;if(this.object&&"function"==typeof this.object._finalize&&this.object._finalize(!0),this.object={name:e||"",fromDeclaration:!1!==t,geometry:{vertices:[],normals:[],colors:[],uvs:[],hasUVIndices:!1},materials:[],smooth:!0,startMaterial:function(r,s){const o=this._finalize(!1);o&&(o.inherited||o.groupCount<=0)&&this.materials.splice(o.index,1);const l={index:this.materials.length,name:r||"",mtllib:Array.isArray(s)&&s.length>0?s[s.length-1]:"",smooth:void 0!==o?o.smooth:this.smooth,groupStart:void 0!==o?o.groupEnd:0,groupEnd:-1,groupCount:-1,inherited:!1,clone:function(d){const u={index:"number"==typeof d?d:this.index,name:this.name,mtllib:this.mtllib,smooth:this.smooth,groupStart:0,groupEnd:-1,groupCount:-1,inherited:!1};return u.clone=this.clone.bind(u),u}};return this.materials.push(l),l},currentMaterial:function(){if(this.materials.length>0)return this.materials[this.materials.length-1]},_finalize:function(r){const s=this.currentMaterial();if(s&&-1===s.groupEnd&&(s.groupEnd=this.geometry.vertices.length/3,s.groupCount=s.groupEnd-s.groupStart,s.inherited=!1),r&&this.materials.length>1)for(let o=this.materials.length-1;o>=0;o--)this.materials[o].groupCount<=0&&this.materials.splice(o,1);return r&&0===this.materials.length&&this.materials.push({name:"",smooth:this.smooth}),s}},i&&i.name&&"function"==typeof i.clone){const r=i.clone(0);r.inherited=!0,this.object.materials.push(r)}this.objects.push(this.object)},finalize:function(){this.object&&"function"==typeof this.object._finalize&&this.object._finalize(!0)},parseVertexIndex:function(e,t){const i=parseInt(e,10);return 3*(i>=0?i-1:i+t/3)},parseNormalIndex:function(e,t){const i=parseInt(e,10);return 3*(i>=0?i-1:i+t/3)},parseUVIndex:function(e,t){const i=parseInt(e,10);return 2*(i>=0?i-1:i+t/2)},addVertex:function(e,t,i){const r=this.vertices,s=this.object.geometry.vertices;s.push(r[e+0],r[e+1],r[e+2]),s.push(r[t+0],r[t+1],r[t+2]),s.push(r[i+0],r[i+1],r[i+2])},addVertexPoint:function(e){const t=this.vertices;this.object.geometry.vertices.push(t[e+0],t[e+1],t[e+2])},addVertexLine:function(e){const t=this.vertices;this.object.geometry.vertices.push(t[e+0],t[e+1],t[e+2])},addNormal:function(e,t,i){const r=this.normals,s=this.object.geometry.normals;s.push(r[e+0],r[e+1],r[e+2]),s.push(r[t+0],r[t+1],r[t+2]),s.push(r[i+0],r[i+1],r[i+2])},addFaceNormal:function(e,t,i){const r=this.vertices,s=this.object.geometry.normals;Mq.fromArray(r,e),TF.fromArray(r,t),Sq.fromArray(r,i),uA.subVectors(Sq,TF),Eq.subVectors(Mq,TF),uA.cross(Eq),uA.normalize(),s.push(uA.x,uA.y,uA.z),s.push(uA.x,uA.y,uA.z),s.push(uA.x,uA.y,uA.z)},addColor:function(e,t,i){const r=this.colors,s=this.object.geometry.colors;void 0!==r[e]&&s.push(r[e+0],r[e+1],r[e+2]),void 0!==r[t]&&s.push(r[t+0],r[t+1],r[t+2]),void 0!==r[i]&&s.push(r[i+0],r[i+1],r[i+2])},addUV:function(e,t,i){const r=this.uvs,s=this.object.geometry.uvs;s.push(r[e+0],r[e+1]),s.push(r[t+0],r[t+1]),s.push(r[i+0],r[i+1])},addDefaultUV:function(){const e=this.object.geometry.uvs;e.push(0,0),e.push(0,0),e.push(0,0)},addUVLine:function(e){const t=this.uvs;this.object.geometry.uvs.push(t[e+0],t[e+1])},addFace:function(e,t,i,r,s,o,l,d,u){const f=this.vertices.length;let A=this.parseVertexIndex(e,f),S=this.parseVertexIndex(t,f),R=this.parseVertexIndex(i,f);if(this.addVertex(A,S,R),this.addColor(A,S,R),void 0!==l&&""!==l){const G=this.normals.length;A=this.parseNormalIndex(l,G),S=this.parseNormalIndex(d,G),R=this.parseNormalIndex(u,G),this.addNormal(A,S,R)}else this.addFaceNormal(A,S,R);if(void 0!==r&&""!==r){const G=this.uvs.length;A=this.parseUVIndex(r,G),S=this.parseUVIndex(s,G),R=this.parseUVIndex(o,G),this.addUV(A,S,R),this.object.geometry.hasUVIndices=!0}else this.addDefaultUV()},addPointGeometry:function(e){this.object.geometry.type="Points";const t=this.vertices.length;for(let i=0,r=e.length;i=7?(c4.setRGB(parseFloat(A[4]),parseFloat(A[5]),parseFloat(A[6])).convertSRGBToLinear(),t.colors.push(c4.r,c4.g,c4.b)):t.colors.push(void 0,void 0,void 0);break;case"vn":t.normals.push(parseFloat(A[1]),parseFloat(A[2]),parseFloat(A[3]));break;case"vt":t.uvs.push(parseFloat(A[1]),parseFloat(A[2]))}}else if("f"===f){const S=u.slice(1).trim().split(Cq),R=[];for(let re=0,se=S.length;re0){const Ee=le.split("/");R.push(Ee)}}const G=R[0];for(let re=1,se=R.length-1;re1){const S=r[1].trim().toLowerCase();t.object.smooth="0"!==S&&"off"!==S}else t.object.smooth=!0;const A=t.object.currentMaterial();A&&(A.smooth=t.object.smooth)}else{if("\0"===u)continue;console.warn('THREE.OBJLoader: Unexpected line: "'+u+'"')}}t.finalize();const s=new Wl;if(s.materialLibraries=[].concat(t.materialLibraries),1==!(1===t.objects.length&&0===t.objects[0].geometry.vertices.length))for(let l=0,d=t.objects.length;l0&&re.setAttribute("normal",new Ws(f.normals,3)),f.colors.length>0&&(G=!0,re.setAttribute("color",new Ws(f.colors,3))),!0===f.hasUVIndices&&re.setAttribute("uv",new Ws(f.uvs,2));const se=[];for(let Ee=0,Ce=A.length;Ee1){for(let Ee=0,Ce=A.length;Ee0){const l=new Y_({size:1,sizeAttenuation:!1}),d=new no;d.setAttribute("position",new Ws(t.vertices,3)),t.colors.length>0&&void 0!==t.colors[0]&&(d.setAttribute("color",new Ws(t.colors,3)),l.vertexColors=!0);const u=new qb(d,l);s.add(u)}return s}}function DF(n,e=!1){const t=null!==n[0].index,i=new Set(Object.keys(n[0].attributes)),r=new Set(Object.keys(n[0].morphAttributes)),s={},o={},l=n[0].morphTargetsRelative,d=new no;let u=0;for(let f=0;f=2.0 are supported.")));const u=new yAe(s,{path:t||this.resourcePath||"",crossOrigin:this.crossOrigin,requestHeader:this.requestHeader,manager:this.manager,ktx2Loader:this.ktx2Loader,meshoptDecoder:this.meshoptDecoder});u.fileLoader.setRequestHeader(this.requestHeader);for(let f=0;f=0&&void 0===l[A]&&console.warn('THREE.GLTFLoader: Unknown extension "'+A+'".')}}u.setExtensions(o),u.setPlugins(l),u.parse(i,r)}parseAsync(e,t){const i=this;return new Promise(function(r,s){i.parse(e,t,r,s)})}}function Vme(){let n={};return{get:function(e){return n[e]},add:function(e,t){n[e]=t},remove:function(e){delete n[e]},removeAll:function(){n={}}}}const al={KHR_BINARY_GLTF:"KHR_binary_glTF",KHR_DRACO_MESH_COMPRESSION:"KHR_draco_mesh_compression",KHR_LIGHTS_PUNCTUAL:"KHR_lights_punctual",KHR_MATERIALS_CLEARCOAT:"KHR_materials_clearcoat",KHR_MATERIALS_IOR:"KHR_materials_ior",KHR_MATERIALS_SHEEN:"KHR_materials_sheen",KHR_MATERIALS_SPECULAR:"KHR_materials_specular",KHR_MATERIALS_TRANSMISSION:"KHR_materials_transmission",KHR_MATERIALS_IRIDESCENCE:"KHR_materials_iridescence",KHR_MATERIALS_ANISOTROPY:"KHR_materials_anisotropy",KHR_MATERIALS_UNLIT:"KHR_materials_unlit",KHR_MATERIALS_VOLUME:"KHR_materials_volume",KHR_TEXTURE_BASISU:"KHR_texture_basisu",KHR_TEXTURE_TRANSFORM:"KHR_texture_transform",KHR_MESH_QUANTIZATION:"KHR_mesh_quantization",KHR_MATERIALS_EMISSIVE_STRENGTH:"KHR_materials_emissive_strength",EXT_MATERIALS_BUMP:"EXT_materials_bump",EXT_TEXTURE_WEBP:"EXT_texture_webp",EXT_TEXTURE_AVIF:"EXT_texture_avif",EXT_MESHOPT_COMPRESSION:"EXT_meshopt_compression",EXT_MESH_GPU_INSTANCING:"EXT_mesh_gpu_instancing"};class Gme{constructor(e){this.parser=e,this.name=al.KHR_LIGHTS_PUNCTUAL,this.cache={refs:{},uses:{}}}_markDefs(){const e=this.parser,t=this.parser.json.nodes||[];for(let i=0,r=t.length;i=0)throw new Error("THREE.GLTFLoader: setKTX2Loader must be called before loading KTX2 textures");return null}return t.loadTextureImage(e,s.source,o)}}class nAe{constructor(e){this.parser=e,this.name=al.EXT_TEXTURE_WEBP,this.isSupported=null}loadTexture(e){const t=this.name,i=this.parser,r=i.json,s=r.textures[e];if(!s.extensions||!s.extensions[t])return null;const o=s.extensions[t],l=r.images[o.source];let d=i.textureLoader;if(l.uri){const u=i.options.manager.getHandler(l.uri);null!==u&&(d=u)}return this.detectSupport().then(function(u){if(u)return i.loadTextureImage(e,o.source,d);if(r.extensionsRequired&&r.extensionsRequired.indexOf(t)>=0)throw new Error("THREE.GLTFLoader: WebP required by asset but unsupported.");return i.loadTexture(e)})}detectSupport(){return this.isSupported||(this.isSupported=new Promise(function(e){const t=new Image;t.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",t.onload=t.onerror=function(){e(1===t.height)}})),this.isSupported}}class iAe{constructor(e){this.parser=e,this.name=al.EXT_TEXTURE_AVIF,this.isSupported=null}loadTexture(e){const t=this.name,i=this.parser,r=i.json,s=r.textures[e];if(!s.extensions||!s.extensions[t])return null;const o=s.extensions[t],l=r.images[o.source];let d=i.textureLoader;if(l.uri){const u=i.options.manager.getHandler(l.uri);null!==u&&(d=u)}return this.detectSupport().then(function(u){if(u)return i.loadTextureImage(e,o.source,d);if(r.extensionsRequired&&r.extensionsRequired.indexOf(t)>=0)throw new Error("THREE.GLTFLoader: AVIF required by asset but unsupported.");return i.loadTexture(e)})}detectSupport(){return this.isSupported||(this.isSupported=new Promise(function(e){const t=new Image;t.src="data:image/avif;base64,AAAAIGZ0eXBhdmlmAAAAAGF2aWZtaWYxbWlhZk1BMUIAAADybWV0YQAAAAAAAAAoaGRscgAAAAAAAAAAcGljdAAAAAAAAAAAAAAAAGxpYmF2aWYAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAABGgAAABcAAAAoaWluZgAAAAAAAQAAABppbmZlAgAAAAABAABhdjAxQ29sb3IAAAAAamlwcnAAAABLaXBjbwAAABRpc3BlAAAAAAAAAAEAAAABAAAAEHBpeGkAAAAAAwgICAAAAAxhdjFDgQAMAAAAABNjb2xybmNseAACAAIABoAAAAAXaXBtYQAAAAAAAAABAAEEAQKDBAAAAB9tZGF0EgAKCBgABogQEDQgMgkQAAAAB8dSLfI=",t.onload=t.onerror=function(){e(1===t.height)}})),this.isSupported}}class rAe{constructor(e){this.name=al.EXT_MESHOPT_COMPRESSION,this.parser=e}loadBufferView(e){const t=this.parser.json,i=t.bufferViews[e];if(i.extensions&&i.extensions[this.name]){const r=i.extensions[this.name],s=this.parser.getDependency("buffer",r.buffer),o=this.parser.options.meshoptDecoder;if(!o||!o.supported){if(t.extensionsRequired&&t.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files");return null}return s.then(function(l){const f=r.count,A=r.byteStride,S=new Uint8Array(l,r.byteOffset||0,r.byteLength||0);return o.decodeGltfBufferAsync?o.decodeGltfBufferAsync(f,A,S,r.mode,r.filter).then(function(R){return R.buffer}):o.ready.then(function(){const R=new ArrayBuffer(f*A);return o.decodeGltfBuffer(new Uint8Array(R),f,A,S,r.mode,r.filter),R})})}return null}}class sAe{constructor(e){this.name=al.EXT_MESH_GPU_INSTANCING,this.parser=e}createNodeMesh(e){const t=this.parser.json,i=t.nodes[e];if(!i.extensions||!i.extensions[this.name]||void 0===i.mesh)return null;const r=t.meshes[i.mesh];for(const u of r.primitives)if(u.mode!==hA.TRIANGLES&&u.mode!==hA.TRIANGLE_STRIP&&u.mode!==hA.TRIANGLE_FAN&&void 0!==u.mode)return null;const o=i.extensions[this.name].attributes,l=[],d={};for(const u in o)l.push(this.parser.getDependency("accessor",o[u]).then(f=>(d[u]=f,d[u])));return l.length<1?null:(l.push(this.parser.createNodeMesh(e)),Promise.all(l).then(u=>{const f=u.pop(),A=f.isGroup?f.children:[f],S=u[0].count,R=[];for(const G of A){const re=new wo,se=new It,le=new Gc,Ee=new It(1,1,1),Ce=new aG(G.geometry,G.material,S);for(let We=0;We-1,s=r?navigator.userAgent.match(/Firefox\/([0-9]+)\./)[1]:-1),this.textureLoader=typeof createImageBitmap>"u"||i||r&&s<98?new Dpe(this.options.manager):new Hpe(this.options.manager),this.textureLoader.setCrossOrigin(this.options.crossOrigin),this.textureLoader.setRequestHeader(this.options.requestHeader),this.fileLoader=new vp(this.options.manager),this.fileLoader.setResponseType("arraybuffer"),"use-credentials"===this.options.crossOrigin&&this.fileLoader.setWithCredentials(!0)}setExtensions(e){this.extensions=e}setPlugins(e){this.plugins=e}parse(e,t){const i=this,r=this.json,s=this.extensions;this.cache.removeAll(),this.nodeCache={},this._invokeAll(function(o){return o._markDefs&&o._markDefs()}),Promise.all(this._invokeAll(function(o){return o.beforeRoot&&o.beforeRoot()})).then(function(){return Promise.all([i.getDependencies("scene"),i.getDependencies("animation"),i.getDependencies("camera")])}).then(function(o){const l={scene:o[0][r.scene||0],scenes:o[0],animations:o[1],cameras:o[2],asset:r.asset,parser:i,userData:{}};return rx(s,l,r),$y(l,r),Promise.all(i._invokeAll(function(d){return d.afterRoot&&d.afterRoot(l)})).then(function(){e(l)})}).catch(t)}_markDefs(){const e=this.json.nodes||[],t=this.json.skins||[],i=this.json.meshes||[];for(let r=0,s=t.length;r{const d=this.associations.get(o);null!=d&&this.associations.set(l,d);for(const[u,f]of o.children.entries())s(f,l.children[u])};return s(i,r),r.name+="_instance_"+e.uses[t]++,r}_invokeOne(e){const t=Object.values(this.plugins);t.push(this);for(let i=0;i=2&&se.setY(Un,yt[Et*d+1]),d>=3&&se.setZ(Un,yt[Et*d+2]),d>=4&&se.setW(Un,yt[Et*d+3]),d>=5)throw new Error("THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.")}}return se})}loadTexture(e){const t=this.json,s=t.textures[e].source,o=t.images[s];let l=this.textureLoader;if(o.uri){const d=this.options.manager.getHandler(o.uri);null!==d&&(l=d)}return this.loadTextureImage(e,s,l)}loadTextureImage(e,t,i){const r=this,s=this.json,o=s.textures[e],l=s.images[t],d=(l.uri||l.bufferView)+":"+o.sampler;if(this.textureCache[d])return this.textureCache[d];const u=this.loadImageSource(t,i).then(function(f){f.flipY=!1,f.name=o.name||l.name||"",""===f.name&&"string"==typeof l.uri&&!1===l.uri.startsWith("data:image/")&&(f.name=l.uri);const S=(s.samplers||{})[o.sampler]||{};return f.magFilter=kq[S.magFilter]||Hc,f.minFilter=kq[S.minFilter]||oA,f.wrapS=Fq[S.wrapS]||Ry,f.wrapT=Fq[S.wrapT]||Ry,r.associations.set(f,{textures:e}),f}).catch(function(){return null});return this.textureCache[d]=u,u}loadImageSource(e,t){const r=this.json,s=this.options;if(void 0!==this.sourceCache[e])return this.sourceCache[e].then(A=>A.clone());const o=r.images[e],l=self.URL||self.webkitURL;let d=o.uri||"",u=!1;if(void 0!==o.bufferView)d=this.getDependency("bufferView",o.bufferView).then(function(A){u=!0;const S=new Blob([A],{type:o.mimeType});return d=l.createObjectURL(S),d});else if(void 0===o.uri)throw new Error("THREE.GLTFLoader: Image "+e+" is missing URI and bufferView");const f=Promise.resolve(d).then(function(A){return new Promise(function(S,R){let G=S;!0===t.isImageBitmapLoader&&(G=function(re){const se=new zh(re);se.needsUpdate=!0,S(se)}),t.load(Zb.resolveURL(A,s.path),G,void 0,R)})}).then(function(A){return!0===u&&l.revokeObjectURL(d),A.userData.mimeType=o.mimeType||function gAe(n){return n.search(/\.jpe?g($|\?)/i)>0||0===n.search(/^data\:image\/jpeg/)?"image/jpeg":n.search(/\.webp($|\?)/i)>0||0===n.search(/^data\:image\/webp/)?"image/webp":"image/png"}(o.uri),A}).catch(function(A){throw console.error("THREE.GLTFLoader: Couldn't load texture",d),A});return this.sourceCache[e]=f,f}assignTexture(e,t,i,r){const s=this;return this.getDependency("texture",i.index).then(function(o){if(!o)return null;if(void 0!==i.texCoord&&i.texCoord>0&&((o=o.clone()).channel=i.texCoord),s.extensions[al.KHR_TEXTURE_TRANSFORM]){const l=void 0!==i.extensions?i.extensions[al.KHR_TEXTURE_TRANSFORM]:void 0;if(l){const d=s.associations.get(o);o=s.extensions[al.KHR_TEXTURE_TRANSFORM].extendTexture(o,l),s.associations.set(o,d)}}return void 0!==r&&(o.colorSpace=r),e[t]=o,o})}assignFinalMaterial(e){const t=e.geometry;let i=e.material;const r=void 0===t.attributes.tangent,s=void 0!==t.attributes.color,o=void 0===t.attributes.normal;if(e.isPoints){const l="PointsMaterial:"+i.uuid;let d=this.cache.get(l);d||(d=new Y_,ld.prototype.copy.call(d,i),d.color.copy(i.color),d.map=i.map,d.sizeAttenuation=!1,this.cache.add(l,d)),i=d}else if(e.isLine){const l="LineBasicMaterial:"+i.uuid;let d=this.cache.get(l);d||(d=new Dc,ld.prototype.copy.call(d,i),d.color.copy(i.color),d.map=i.map,this.cache.add(l,d)),i=d}if(r||s||o){let l="ClonedMaterial:"+i.uuid+":";r&&(l+="derivative-tangents:"),s&&(l+="vertex-colors:"),o&&(l+="flat-shading:");let d=this.cache.get(l);d||(d=i.clone(),s&&(d.vertexColors=!0),o&&(d.flatShading=!0),r&&(d.normalScale&&(d.normalScale.y*=-1),d.clearcoatNormalScale&&(d.clearcoatNormalScale.y*=-1)),this.cache.add(l,d),this.associations.set(d,this.associations.get(i))),i=d}e.material=i}getMaterialType(){return XI}loadMaterial(e){const t=this,r=this.extensions,s=this.json.materials[e];let o;const l={},u=[];if((s.extensions||{})[al.KHR_MATERIALS_UNLIT]){const A=r[al.KHR_MATERIALS_UNLIT];o=A.getMaterialType(),u.push(A.extendParams(l,s,t))}else{const A=s.pbrMetallicRoughness||{};if(l.color=new Cr(1,1,1),l.opacity=1,Array.isArray(A.baseColorFactor)){const S=A.baseColorFactor;l.color.setRGB(S[0],S[1],S[2],Qu),l.opacity=S[3]}void 0!==A.baseColorTexture&&u.push(t.assignTexture(l,"map",A.baseColorTexture,cu)),l.metalness=void 0!==A.metallicFactor?A.metallicFactor:1,l.roughness=void 0!==A.roughnessFactor?A.roughnessFactor:1,void 0!==A.metallicRoughnessTexture&&(u.push(t.assignTexture(l,"metalnessMap",A.metallicRoughnessTexture)),u.push(t.assignTexture(l,"roughnessMap",A.metallicRoughnessTexture))),o=this._invokeOne(function(S){return S.getMaterialType&&S.getMaterialType(e)}),u.push(Promise.all(this._invokeAll(function(S){return S.extendMaterialParams&&S.extendMaterialParams(e,l)})))}!0===s.doubleSided&&(l.side=2);const f=s.alphaMode||"OPAQUE";if("BLEND"===f?(l.transparent=!0,l.depthWrite=!1):(l.transparent=!1,"MASK"===f&&(l.alphaTest=void 0!==s.alphaCutoff?s.alphaCutoff:.5)),void 0!==s.normalTexture&&o!==xd&&(u.push(t.assignTexture(l,"normalMap",s.normalTexture)),l.normalScale=new Qi(1,1),void 0!==s.normalTexture.scale)){const A=s.normalTexture.scale;l.normalScale.set(A,A)}if(void 0!==s.occlusionTexture&&o!==xd&&(u.push(t.assignTexture(l,"aoMap",s.occlusionTexture)),void 0!==s.occlusionTexture.strength&&(l.aoMapIntensity=s.occlusionTexture.strength)),void 0!==s.emissiveFactor&&o!==xd){const A=s.emissiveFactor;l.emissive=(new Cr).setRGB(A[0],A[1],A[2],Qu)}return void 0!==s.emissiveTexture&&o!==xd&&u.push(t.assignTexture(l,"emissiveMap",s.emissiveTexture,cu)),Promise.all(u).then(function(){const A=new o(l);return s.name&&(A.name=s.name),$y(A,s),t.associations.set(A,{materials:e}),s.extensions&&rx(r,A,s),A})}createUniqueName(e){const t=Ll.sanitizeNodeName(e||"");return t in this.nodeNamesUsed?t+"_"+ ++this.nodeNamesUsed[t]:(this.nodeNamesUsed[t]=0,t)}loadGeometries(e){const t=this,i=this.extensions,r=this.primitiveCache;function s(l){return i[al.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(l,t).then(function(d){return Oq(d,l,t)})}const o=[];for(let l=0,d=e.length;l0&&mAe(le,s),le.name=t.createUniqueName(s.name||"mesh_"+e),$y(le,s),se.extensions&&rx(r,le,se),t.assignFinalMaterial(le),A.push(le)}for(let R=0,G=A.length;R1?new Wl:1===u.length?u[0]:new Pl,f!==u[0])for(let A=0,S=u.length;A{const A=new Map;for(const[S,R]of r.associations)(S instanceof ld||S instanceof zh)&&A.set(S,R);return f.traverse(S=>{const R=r.associations.get(S);null!=R&&A.set(S,R)}),A})(s),s})}_createAnimationTracks(e,t,i,r,s){const o=[],l=e.name?e.name:e.uuid,d=[];let u;switch(jy[s.path]===jy.weights?e.traverse(function(S){S.morphTargetInfluences&&d.push(S.name?S.name:S.uuid)}):d.push(l),jy[s.path]){case jy.weights:u=lC;break;case jy.rotation:u=Yb;break;case jy.position:case jy.scale:u=dC;break;default:u=1===i.itemSize?lC:dC}const f=void 0!==r.interpolation?hAe[r.interpolation]:Db,A=this._getArrayFromAccessor(i);for(let S=0,R=d.length;S{this.parse(o,t,r)},i,r)}parse(e,t,i=(()=>{})){this.decodeDracoFile(e,t,null,null,cu).catch(i)}decodeDracoFile(e,t,i,r,s=Qu,o=(()=>{})){return this.decodeGeometry(e,{attributeIDs:i||this.defaultAttributeIDs,attributeTypes:r||this.defaultAttributeTypes,useUniqueIDs:!!i,vertexColorSpace:s}).then(t).catch(o)}decodeGeometry(e,t){const i=JSON.stringify(t);if(OF.has(e)){const d=OF.get(e);if(d.key===i)return d.promise;if(0===e.byteLength)throw new Error("THREE.DRACOLoader: Unable to re-decode a buffer with different settings. Buffer has already been transferred.")}let r;const s=this.workerNextTaskID++,l=this._getWorker(s,e.byteLength).then(d=>(r=d,new Promise((u,f)=>{r._callbacks[s]={resolve:u,reject:f},r.postMessage({type:"decode",id:s,taskConfig:t,buffer:e},[e])}))).then(d=>this._createGeometry(d.geometry));return l.catch(()=>!0).then(()=>{r&&s&&this._releaseTask(r,s)}),OF.set(e,{key:i,promise:l}),l}_createGeometry(e){const t=new no;e.index&&t.setIndex(new No(e.index.array,1));for(let i=0;i{i.load(e,r,void 0,s)})}preload(){return this._initDecoder(),this}_initDecoder(){if(this.decoderPending)return this.decoderPending;const e="object"!=typeof WebAssembly||"js"===this.decoderConfig.type,t=[];return e?t.push(this._loadLibrary("draco_decoder.js","text")):(t.push(this._loadLibrary("draco_wasm_wrapper.js","text")),t.push(this._loadLibrary("draco_decoder.wasm","arraybuffer"))),this.decoderPending=Promise.all(t).then(i=>{const r=i[0];e||(this.decoderConfig.wasmBinary=i[1]);const s=bAe.toString(),o=["/* draco decoder */",r,"","/* worker */",s.substring(s.indexOf("{")+1,s.lastIndexOf("}"))].join("\n");this.workerSourceURL=URL.createObjectURL(new Blob([o]))}),this.decoderPending}_getWorker(e,t){return this._initDecoder().then(()=>{if(this.workerPool.lengths._taskLoad?-1:1});const i=this.workerPool[this.workerPool.length-1];return i._taskCosts[e]=t,i._taskLoad+=t,i})}_releaseTask(e,t){e._taskLoad-=e._taskCosts[t],delete e._callbacks[t],delete e._taskCosts[t]}debug(){console.log("Task load: ",this.workerPool.map(e=>e._taskLoad))}dispose(){for(let e=0;e{const A=f.draco,S=new A.Decoder;try{const R=function t(o,l,d,u){const f=u.attributeIDs,A=u.attributeTypes;let S,R;const G=l.GetEncodedGeometryType(d);if(G===o.TRIANGULAR_MESH)S=new o.Mesh,R=l.DecodeArrayToMesh(d,d.byteLength,S);else{if(G!==o.POINT_CLOUD)throw new Error("THREE.DRACOLoader: Unexpected geometry type.");S=new o.PointCloud,R=l.DecodeArrayToPointCloud(d,d.byteLength,S)}if(!R.ok()||0===S.ptr)throw new Error("THREE.DRACOLoader: Decoding failed: "+R.error_msg());const re={index:null,attributes:[]};for(const se in f){const le=self[A[se]];let Ee,Ce;if(u.useUniqueIDs)Ce=f[se],Ee=l.GetAttributeByUniqueId(S,Ce);else{if(Ce=l.GetAttributeId(S,o[f[se]]),-1===Ce)continue;Ee=l.GetAttribute(S,Ce)}const We=r(o,l,S,se,le,Ee);"color"===se&&(We.vertexColorSpace=u.vertexColorSpace),re.attributes.push(We)}return G===o.TRIANGULAR_MESH&&(re.index=function i(o,l,d){const f=3*d.num_faces(),A=4*f,S=o._malloc(A);l.GetTrianglesUInt32Array(d,A,S);const R=new Uint32Array(o.HEAPF32.buffer,S,f).slice();return o._free(S),{array:R,itemSize:1}}(o,l,S)),o.destroy(S),re}(A,S,new Int8Array(d),u),G=R.attributes.map(re=>re.array.buffer);R.index&&G.push(R.index.array.buffer),self.postMessage({type:"decode",id:l.id,geometry:R},G)}catch(R){console.error(R),self.postMessage({type:"error",id:l.id,error:R.message})}finally{A.destroy(S)}})}}}class xAe{constructor(e,t,i){this.clipPlanes=e,this.EVENT_DATA_ID=t,this.GEOMETRIES_ID=i}loadOBJGeometry(e,t,i,r,s){i=i??4302580;const o=new Tq;return new Promise((l,d)=>{o.load(e,u=>{const f=this.processOBJ(u,t,i,r,s);l({object:f})},null,u=>{d(u)})})}parseOBJGeometry(e,t){const r=(new Tq).parse(e);return this.processOBJ(r,t,4302580,!1,!1)}processOBJ(e,t,i,r,s){return e.name=t,e.userData={name:t},this.setObjFlat(e,i,r,s)}setObjFlat(e,t,i,r){const s=new mg({color:t,shininess:0,wireframe:!1,clippingPlanes:this.clipPlanes,clipIntersection:!0,clipShadows:!1,side:i?2:0,flatShading:r});return e.traverse(o=>{o instanceof ua?(o.name=e.name,o.userData=e.userData,o.userData.size=this.getObjectSize(o),o.material instanceof ld&&(o.material.dispose(),o.material=s),o.castShadow=!1,o.receiveShadow=!1):o instanceof hc&&o.material instanceof Dc&&o.material.color.set(t)}),e}parsePhnxScene(e,t){const i=new d4,r=new LF;r.setDecoderPath(`https://cdn.jsdelivr.net/npm/three@0.${m2}.0/examples/jsm/libs/draco/`),i.setDRACOLoader(r);const s=JSON.stringify(e,null,2);return new Promise((o,l)=>{i.parse(s,"",d=>{const u=d.scene.getObjectByName(this.EVENT_DATA_ID),f=d.scene.getObjectByName(this.GEOMETRIES_ID);t(u,f),o()},d=>{l(d)})})}loadGLTFGeometry(e,t,i,r,s){const o=new d4,l=new LF;return l.setDecoderPath(`https://cdn.jsdelivr.net/npm/three@0.${m2}.0/examples/jsm/libs/draco/`),o.setDRACOLoader(l),new Promise((d,u)=>{o.load(e,f=>{var A;const S=[];for(const R of f.scenes){R.visible=null!==(A=R.userData.visible)&&void 0!==A?A:s;const G=this.processGLTFSceneName(R.name,i),re={},se=(le,Ee,Ce)=>{const We=Ee.clone().multiply(le.matrix);if(le instanceof ua){const Mt=le.material.id;re[Mt]||(re[Mt]={material:le.material,geoms:[],renderOrder:-Ce}),re[Mt].geoms.push(le.geometry.clone().applyMatrix4(We))}for(const Mt of le.children)se(Mt,We,Ce+1)};se(R,new wo,0),R.remove(...R.children);for(const le of Object.values(re)){const Ee=new ua(DF(le.geoms),le.material);Ee.renderOrder=le.renderOrder,R.add(Ee)}this.processGeometry(R,t??G.name,r,!0),S.push({object:R,menuNodeName:i??G.menuNodeName})}d(S)},void 0,f=>{u(f)})})}parseGLTFGeometry(e,t){const i=new d4,r=new LF;return r.setDecoderPath(`https://cdn.jsdelivr.net/npm/three@0.${m2}.0/examples/jsm/libs/draco/`),i.setDRACOLoader(r),new Promise((s,o)=>{i.parse(e,"",l=>{const d=[];for(const u of l.scenes){u.visible=u.userData.visible;const f=this.processGLTFSceneName(u.name);this.processGeometry(u,t??f.name),d.push({object:u})}s(d)},l=>{o(l)})})}processGLTFSceneName(e,t){if(e){const i=e.split("_>_");t&&i.unshift(t);const r=i.join(" > ");return i.pop(),{name:r,menuNodeName:i.join(" > ")}}}loadJSONGeometry(e,t,i,r){const s=new Upe;switch(typeof e){case"string":return new Promise((o,l)=>{s.load(e,d=>{this.processGeometry(d,t,i,r),o({object:d})},null,d=>{l(d)})});case"object":return new Promise(o=>{const l=s.parse(e);this.processGeometry(l,t,i,r),o({object:l})})}}processGeometry(e,t,i,r){e.name=t,i&&e.scale.setScalar(i),e.traverse(s=>{var o;if(s instanceof ua&&(s.name=s.userData.name=t,s.userData.size=this.getObjectSize(s),s.material instanceof ld)){const l=s.material.color?s.material.color:3135121,d=r?2:s.material.side;s.material.dispose();let u=!1;e.userData.opacity&&(u=!0),s.material=new mg({color:l,shininess:0,side:d,transparent:u,opacity:null!==(o=e.userData.opacity)&&void 0!==o?o:1}),s.material.clippingPlanes=this.clipPlanes,s.material.clipIntersection=!0,s.material.clipShadows=!1}})}getObjectSize(e){var t,i;const r=new It;return e.geometry.computeBoundingBox(),null===(i=null===(t=e.geometry)||void 0===t?void 0:t.boundingBox)||void 0===i||i.getSize(r),JSON.stringify(r,null,2)}}let Xy=(()=>{class n{static getPrettySymbol(t){return Object.keys(n.symbols).find(r=>n.symbols[r].includes(t))||t}static getPrettyParams(t){const i=Object.assign({},t);for(const r of Object.keys(i)){const s=n.getPrettySymbol(r);s!==r&&(i[s]=i[r],delete i[r])}if(delete i.pos,i?.dparams){const r={};return r.\u03b8=i.dparams[3],r.\u03d5=i.dparams[2],r["|p|"]=Math.abs(1/i.dparams[4]),r.q=Math.sign(1/i.dparams[4]),r.d0=i.dparams[0],r.z0=i.dparams[1],delete i.dparams,Object.assign(Object.assign({},i),r)}return i}}return n.symbols={\u03b8:["theta"],\u03d5:["phi"],pT:["pt"],\u{1d6d8}2:["chi2"],\u03b7:["eta"],q:["charge"],NDOF:["ndof"],DOF:["dof"],Energy:["energy"],ET:["et"],"|p|":["momentum","mom"]},n})();class pC{constructor(e){this.value=e,this.callbacks=[]}update(e){this.value=e,this.callbacks.forEach(t=>t(e))}onUpdate(e){this.callbacks.push(e)}}class wAe{constructor(){this.activeObject=new pC(""),this.onTouchMove=e=>{const t=this.intersectObject(e);if(t){if(this.ignoreList.includes(t.type))return;this.outlinePass.selectedObjects=[t]}},this.onDocumentMouseDown=()=>{const e=this.outlinePass.selectedObjects[0];if(e){this.selectedObject.name=e.name,this.selectedObject.attributes.splice(0,this.selectedObject.attributes.length),this.activeObject.update(e.uuid);const t=Xy.getPrettyParams(e.userData);for(const s of Object.keys(t))this.selectedObject.attributes.push({attributeName:s,attributeValue:t[s]});const i=Object.keys(e.userData).map(s=>{if(["string","number"].includes(typeof e.userData[s]))return s+"="+e.userData[s]}).filter(s=>s),r=e.name+(i.length>0?" with "+i.join(", "):"");r&&this.infoLogger.add(r,"Clicked")}},this.onTouchDown=e=>{e.preventDefault(),this.onTouchMove(e.targetTouches[0]),this.onDocumentMouseDown()},this.isInit=!1,this.ignoreList=[(new KI).type,(new uC).type,(new hq).type]}init(e,t,i,r){this.camera=e,this.scene=t,this.isInit=!0,this.infoLogger=r,this.effectsManager=i,this.outlinePass=this.effectsManager.addOutlinePassForSelection()}setSelectedObject(e){this.selectedObject=e}getActiveObjectId(){return this.activeObject}setSelecting(e){this.isInit&&(e?this.enableSelecting():this.disableSelecting())}enableSelecting(){document.getElementById("three-canvas").addEventListener("mousemove",this.onTouchMove,!0),document.getElementById("three-canvas").addEventListener("click",this.onDocumentMouseDown,!0),document.getElementById("three-canvas").addEventListener("touchstart",this.onTouchDown),this.preSelectionAntialias=this.effectsManager.antialiasing,this.effectsManager.setAntialiasing(!1)}disableSelecting(){document.getElementById("three-canvas").removeEventListener("mousemove",this.onTouchMove,!0),document.getElementById("three-canvas").removeEventListener("click",this.onDocumentMouseDown,!0),document.getElementById("three-canvas").removeEventListener("touchstart",this.onTouchDown),this.outlinePass.selectedObjects=[],this.effectsManager.setAntialiasing(this.preSelectionAntialias)}intersectObject(e){var t;null===(t=e.preventDefault)||void 0===t||t.call(e);const i=new Qi,r=this.effectsManager.composer.renderer.domElement;i.x=e.clientX/r.clientWidth*2-1,i.y=-e.clientY/r.clientHeight*2+1;const s=new eq;s.setFromCamera(i,this.camera),s.params.Line.threshold=3;const o=s.intersectObjects(this.scene.children,!0);if(o.length>0)return o[0].object}enableHighlighting(){this.preSelectionAntialias=this.effectsManager.antialiasing,this.effectsManager.setAntialiasing(!1)}highlightObject(e,t){const i=t.getObjectByProperty("uuid",e);i&&(this.outlinePass.selectedObjects=[i],this.activeObject.update(i.uuid))}disableHighlighting(){this.outlinePass.selectedObjects=[],this.effectsManager.setAntialiasing(this.preSelectionAntialias)}}class CAe extends jI{constructor(e,t={}){const i=t.font;if(void 0===i)super();else{const r=i.generateShapes(e,t.size);t.depth=void 0!==t.height?t.height:50,void 0===t.bevelThickness&&(t.bevelThickness=10),void 0===t.bevelSize&&(t.bevelSize=8),void 0===t.bevelEnabled&&(t.bevelEnabled=!1),super(r,t)}this.type="TextGeometry"}}class Lq{constructor(e){this.isFont=!0,this.type="Font",this.data=e}generateShapes(e,t=100){const i=[],r=function MAe(n,e,t){const i=Array.from(n),r=e/t.resolution,s=(t.boundingBox.yMax-t.boundingBox.yMin+t.underlineThickness)*r,o=[];let l=0,d=0;for(let u=0;ut,r=0e;return i&&r}static etaToTheta(e){return 2*Math.atan(Math.pow(Math.E,-e))}static thetaToEta(e){return-Math.log(Math.tan(e/2))}static sphericalToCartesian(e,t,i){const r=new It;return r.setFromSphericalCoords(e,t,i),r.applyQuaternion(Ff.atlasQuaternion()),r}static etaPhiToCartesian(e,t,i){const r=new It;return r.setFromSphericalCoords(e,this.etaToTheta(t),i),r.applyQuaternion(Ff.atlasQuaternion()),r}static atlasQuaternion(){const e=new It(0,1,0),t=new It(0,0,1),i=new Gc;i.setFromUnitVectors(e,t);const r=new Gc;return r.setFromAxisAngle(new It(0,1,0),Math.PI/2),i.multiply(r),i}}const EAe=JSON.parse('{"glyphs":{"0":{"x_min":73,"x_max":715,"ha":792,"o":"m 394 -29 q 153 129 242 -29 q 73 479 73 272 q 152 829 73 687 q 394 989 241 989 q 634 829 545 989 q 715 479 715 684 q 635 129 715 270 q 394 -29 546 -29 m 394 89 q 546 211 489 89 q 598 479 598 322 q 548 748 598 640 q 394 871 491 871 q 241 748 298 871 q 190 479 190 637 q 239 211 190 319 q 394 89 296 89 "},"1":{"x_min":215.671875,"x_max":574,"ha":792,"o":"m 574 0 l 442 0 l 442 697 l 215 697 l 215 796 q 386 833 330 796 q 475 986 447 875 l 574 986 l 574 0 "},"2":{"x_min":59,"x_max":731,"ha":792,"o":"m 731 0 l 59 0 q 197 314 59 188 q 457 487 199 315 q 598 691 598 580 q 543 819 598 772 q 411 867 488 867 q 272 811 328 867 q 209 630 209 747 l 81 630 q 182 901 81 805 q 408 986 271 986 q 629 909 536 986 q 731 694 731 826 q 613 449 731 541 q 378 316 495 383 q 201 122 235 234 l 731 122 l 731 0 "},"3":{"x_min":54,"x_max":737,"ha":792,"o":"m 737 284 q 635 55 737 141 q 399 -25 541 -25 q 156 52 248 -25 q 54 308 54 140 l 185 308 q 245 147 185 202 q 395 96 302 96 q 539 140 484 96 q 602 280 602 190 q 510 429 602 390 q 324 454 451 454 l 324 565 q 487 584 441 565 q 565 719 565 617 q 515 835 565 791 q 395 879 466 879 q 255 824 307 879 q 203 661 203 769 l 78 661 q 166 909 78 822 q 387 992 250 992 q 603 921 513 992 q 701 723 701 844 q 669 607 701 656 q 578 524 637 558 q 696 434 655 499 q 737 284 737 369 "},"4":{"x_min":48,"x_max":742.453125,"ha":792,"o":"m 742 243 l 602 243 l 602 0 l 476 0 l 476 243 l 48 243 l 48 368 l 476 958 l 602 958 l 602 354 l 742 354 l 742 243 m 476 354 l 476 792 l 162 354 l 476 354 "},"5":{"x_min":54.171875,"x_max":738,"ha":792,"o":"m 738 314 q 626 60 738 153 q 382 -23 526 -23 q 155 47 248 -23 q 54 256 54 125 l 183 256 q 259 132 204 174 q 382 91 314 91 q 533 149 471 91 q 602 314 602 213 q 538 469 602 411 q 386 528 475 528 q 284 506 332 528 q 197 439 237 484 l 81 439 l 159 958 l 684 958 l 684 840 l 254 840 l 214 579 q 306 627 258 612 q 407 643 354 643 q 636 552 540 643 q 738 314 738 457 "},"6":{"x_min":53,"x_max":739,"ha":792,"o":"m 739 312 q 633 62 739 162 q 400 -31 534 -31 q 162 78 257 -31 q 53 439 53 206 q 178 859 53 712 q 441 986 284 986 q 643 912 559 986 q 732 713 732 833 l 601 713 q 544 830 594 786 q 426 875 494 875 q 268 793 331 875 q 193 517 193 697 q 301 597 240 570 q 427 624 362 624 q 643 540 552 624 q 739 312 739 451 m 603 298 q 540 461 603 400 q 404 516 484 516 q 268 461 323 516 q 207 300 207 401 q 269 137 207 198 q 405 83 325 83 q 541 137 486 83 q 603 298 603 197 "},"7":{"x_min":58.71875,"x_max":730.953125,"ha":792,"o":"m 730 839 q 469 448 560 641 q 335 0 378 255 l 192 0 q 328 441 235 252 q 593 830 421 630 l 58 830 l 58 958 l 730 958 l 730 839 "},"8":{"x_min":55,"x_max":736,"ha":792,"o":"m 571 527 q 694 424 652 491 q 736 280 736 358 q 648 71 736 158 q 395 -26 551 -26 q 142 69 238 -26 q 55 279 55 157 q 96 425 55 359 q 220 527 138 491 q 120 615 153 562 q 88 726 88 668 q 171 904 88 827 q 395 986 261 986 q 618 905 529 986 q 702 727 702 830 q 670 616 702 667 q 571 527 638 565 m 394 565 q 519 610 475 565 q 563 717 563 655 q 521 823 563 781 q 392 872 474 872 q 265 824 312 872 q 224 720 224 783 q 265 613 224 656 q 394 565 312 565 m 395 91 q 545 150 488 91 q 597 280 597 204 q 546 408 597 355 q 395 465 492 465 q 244 408 299 465 q 194 280 194 356 q 244 150 194 203 q 395 91 299 91 "},"9":{"x_min":53,"x_max":739,"ha":792,"o":"m 739 524 q 619 94 739 241 q 362 -32 516 -32 q 150 47 242 -32 q 59 244 59 126 l 191 244 q 246 129 191 176 q 373 82 301 82 q 526 161 466 82 q 597 440 597 255 q 363 334 501 334 q 130 432 216 334 q 53 650 53 521 q 134 880 53 786 q 383 986 226 986 q 659 841 566 986 q 739 524 739 719 m 388 449 q 535 514 480 449 q 585 658 585 573 q 535 805 585 744 q 388 873 480 873 q 242 809 294 873 q 191 658 191 745 q 239 514 191 572 q 388 449 292 449 "},"\u03bf":{"x_min":0,"x_max":712,"ha":815,"o":"m 356 -25 q 96 88 192 -25 q 0 368 0 201 q 92 642 0 533 q 356 761 192 761 q 617 644 517 761 q 712 368 712 533 q 619 91 712 201 q 356 -25 520 -25 m 356 85 q 527 175 465 85 q 583 369 583 255 q 528 562 583 484 q 356 651 466 651 q 189 560 250 651 q 135 369 135 481 q 187 177 135 257 q 356 85 250 85 "},"S":{"x_min":0,"x_max":788,"ha":890,"o":"m 788 291 q 662 54 788 144 q 397 -26 550 -26 q 116 68 226 -26 q 0 337 0 168 l 131 337 q 200 152 131 220 q 384 85 269 85 q 557 129 479 85 q 650 270 650 183 q 490 429 650 379 q 194 513 341 470 q 33 739 33 584 q 142 964 33 881 q 388 1041 242 1041 q 644 957 543 1041 q 756 716 756 867 l 625 716 q 561 874 625 816 q 395 933 497 933 q 243 891 309 933 q 164 759 164 841 q 325 609 164 656 q 625 526 475 568 q 788 291 788 454 "},"\xa6":{"x_min":343,"x_max":449,"ha":792,"o":"m 449 462 l 343 462 l 343 986 l 449 986 l 449 462 m 449 -242 l 343 -242 l 343 280 l 449 280 l 449 -242 "},"/":{"x_min":183.25,"x_max":608.328125,"ha":792,"o":"m 608 1041 l 266 -129 l 183 -129 l 520 1041 l 608 1041 "},"\u03a4":{"x_min":-0.4375,"x_max":777.453125,"ha":839,"o":"m 777 893 l 458 893 l 458 0 l 319 0 l 319 892 l 0 892 l 0 1013 l 777 1013 l 777 893 "},"y":{"x_min":0,"x_max":684.78125,"ha":771,"o":"m 684 738 l 388 -83 q 311 -216 356 -167 q 173 -279 252 -279 q 97 -266 133 -279 l 97 -149 q 132 -155 109 -151 q 168 -160 155 -160 q 240 -114 213 -160 q 274 -26 248 -98 l 0 738 l 137 737 l 341 139 l 548 737 l 684 738 "},"\u03a0":{"x_min":0,"x_max":803,"ha":917,"o":"m 803 0 l 667 0 l 667 886 l 140 886 l 140 0 l 0 0 l 0 1012 l 803 1012 l 803 0 "},"\u0390":{"x_min":-111,"x_max":339,"ha":361,"o":"m 339 800 l 229 800 l 229 925 l 339 925 l 339 800 m -1 800 l -111 800 l -111 925 l -1 925 l -1 800 m 284 3 q 233 -10 258 -5 q 182 -15 207 -15 q 85 26 119 -15 q 42 200 42 79 l 42 737 l 167 737 l 168 215 q 172 141 168 157 q 226 101 183 101 q 248 103 239 101 q 284 112 257 104 l 284 3 m 302 1040 l 113 819 l 30 819 l 165 1040 l 302 1040 "},"g":{"x_min":0,"x_max":686,"ha":838,"o":"m 686 34 q 586 -213 686 -121 q 331 -306 487 -306 q 131 -252 216 -306 q 31 -84 31 -190 l 155 -84 q 228 -174 166 -138 q 345 -207 284 -207 q 514 -109 454 -207 q 564 89 564 -27 q 461 6 521 36 q 335 -23 401 -23 q 88 100 184 -23 q 0 370 0 215 q 87 634 0 522 q 330 758 183 758 q 457 728 398 758 q 564 644 515 699 l 564 737 l 686 737 l 686 34 m 582 367 q 529 560 582 481 q 358 652 468 652 q 189 561 250 652 q 135 369 135 482 q 189 176 135 255 q 361 85 251 85 q 529 176 468 85 q 582 367 582 255 "},"\xb2":{"x_min":0,"x_max":442,"ha":539,"o":"m 442 383 l 0 383 q 91 566 0 492 q 260 668 176 617 q 354 798 354 727 q 315 875 354 845 q 227 905 277 905 q 136 869 173 905 q 99 761 99 833 l 14 761 q 82 922 14 864 q 232 974 141 974 q 379 926 316 974 q 442 797 442 878 q 351 635 442 704 q 183 539 321 611 q 92 455 92 491 l 442 455 l 442 383 "},"\u2013":{"x_min":0,"x_max":705.5625,"ha":803,"o":"m 705 334 l 0 334 l 0 410 l 705 410 l 705 334 "},"\u039a":{"x_min":0,"x_max":819.5625,"ha":893,"o":"m 819 0 l 650 0 l 294 509 l 139 356 l 139 0 l 0 0 l 0 1013 l 139 1013 l 139 526 l 626 1013 l 809 1013 l 395 600 l 819 0 "},"\u0192":{"x_min":-46.265625,"x_max":392,"ha":513,"o":"m 392 651 l 259 651 l 79 -279 l -46 -278 l 134 651 l 14 651 l 14 751 l 135 751 q 151 948 135 900 q 304 1041 185 1041 q 334 1040 319 1041 q 392 1034 348 1039 l 392 922 q 337 931 360 931 q 271 883 287 931 q 260 793 260 853 l 260 751 l 392 751 l 392 651 "},"e":{"x_min":0,"x_max":714,"ha":813,"o":"m 714 326 l 140 326 q 200 157 140 227 q 359 87 260 87 q 488 130 431 87 q 561 245 545 174 l 697 245 q 577 48 670 123 q 358 -26 484 -26 q 97 85 195 -26 q 0 363 0 197 q 94 642 0 529 q 358 765 195 765 q 626 627 529 765 q 714 326 714 503 m 576 429 q 507 583 564 522 q 355 650 445 650 q 206 583 266 650 q 140 429 152 522 l 576 429 "},"\u03cc":{"x_min":0,"x_max":712,"ha":815,"o":"m 356 -25 q 94 91 194 -25 q 0 368 0 202 q 92 642 0 533 q 356 761 192 761 q 617 644 517 761 q 712 368 712 533 q 619 91 712 201 q 356 -25 520 -25 m 356 85 q 527 175 465 85 q 583 369 583 255 q 528 562 583 484 q 356 651 466 651 q 189 560 250 651 q 135 369 135 481 q 187 177 135 257 q 356 85 250 85 m 576 1040 l 387 819 l 303 819 l 438 1040 l 576 1040 "},"J":{"x_min":0,"x_max":588,"ha":699,"o":"m 588 279 q 287 -26 588 -26 q 58 73 126 -26 q 0 327 0 158 l 133 327 q 160 172 133 227 q 288 96 198 96 q 426 171 391 96 q 449 336 449 219 l 449 1013 l 588 1013 l 588 279 "},"\xbb":{"x_min":-1,"x_max":503,"ha":601,"o":"m 503 302 l 280 136 l 281 256 l 429 373 l 281 486 l 280 608 l 503 440 l 503 302 m 221 302 l 0 136 l 0 255 l 145 372 l 0 486 l -1 608 l 221 440 l 221 302 "},"\xa9":{"x_min":-3,"x_max":1008,"ha":1106,"o":"m 502 -7 q 123 151 263 -7 q -3 501 -3 294 q 123 851 -3 706 q 502 1011 263 1011 q 881 851 739 1011 q 1008 501 1008 708 q 883 151 1008 292 q 502 -7 744 -7 m 502 60 q 830 197 709 60 q 940 501 940 322 q 831 805 940 681 q 502 944 709 944 q 174 805 296 944 q 65 501 65 680 q 173 197 65 320 q 502 60 294 60 m 741 394 q 661 246 731 302 q 496 190 591 190 q 294 285 369 190 q 228 497 228 370 q 295 714 228 625 q 499 813 370 813 q 656 762 588 813 q 733 625 724 711 l 634 625 q 589 704 629 673 q 498 735 550 735 q 377 666 421 735 q 334 504 334 597 q 374 340 334 408 q 490 272 415 272 q 589 304 549 272 q 638 394 628 337 l 741 394 "},"\u03ce":{"x_min":0,"x_max":922,"ha":1030,"o":"m 687 1040 l 498 819 l 415 819 l 549 1040 l 687 1040 m 922 339 q 856 97 922 203 q 650 -26 780 -26 q 538 9 587 -26 q 461 103 489 44 q 387 12 436 46 q 277 -22 339 -22 q 69 97 147 -22 q 0 338 0 202 q 45 551 0 444 q 161 737 84 643 l 302 737 q 175 552 219 647 q 124 336 124 446 q 155 179 124 248 q 275 88 197 88 q 375 163 341 88 q 400 294 400 219 l 400 572 l 524 572 l 524 294 q 561 135 524 192 q 643 88 591 88 q 762 182 719 88 q 797 341 797 257 q 745 555 797 450 q 619 737 705 637 l 760 737 q 874 551 835 640 q 922 339 922 444 "},"^":{"x_min":193.0625,"x_max":598.609375,"ha":792,"o":"m 598 772 l 515 772 l 395 931 l 277 772 l 193 772 l 326 1013 l 462 1013 l 598 772 "},"\xab":{"x_min":0,"x_max":507.203125,"ha":604,"o":"m 506 136 l 284 302 l 284 440 l 506 608 l 507 485 l 360 371 l 506 255 l 506 136 m 222 136 l 0 302 l 0 440 l 222 608 l 221 486 l 73 373 l 222 256 l 222 136 "},"D":{"x_min":0,"x_max":828,"ha":935,"o":"m 389 1013 q 714 867 593 1013 q 828 521 828 729 q 712 161 828 309 q 382 0 587 0 l 0 0 l 0 1013 l 389 1013 m 376 124 q 607 247 523 124 q 681 510 681 355 q 607 771 681 662 q 376 896 522 896 l 139 896 l 139 124 l 376 124 "},"\u2219":{"x_min":0,"x_max":142,"ha":239,"o":"m 142 585 l 0 585 l 0 738 l 142 738 l 142 585 "},"\xff":{"x_min":0,"x_max":47,"ha":125,"o":"m 47 3 q 37 -7 47 -7 q 28 0 30 -7 q 39 -4 32 -4 q 45 3 45 -1 l 37 0 q 28 9 28 0 q 39 19 28 19 l 47 16 l 47 19 l 47 3 m 37 1 q 44 8 44 1 q 37 16 44 16 q 30 8 30 16 q 37 1 30 1 m 26 1 l 23 22 l 14 0 l 3 22 l 3 3 l 0 25 l 13 1 l 22 25 l 26 1 "},"w":{"x_min":0,"x_max":1009.71875,"ha":1100,"o":"m 1009 738 l 783 0 l 658 0 l 501 567 l 345 0 l 222 0 l 0 738 l 130 738 l 284 174 l 432 737 l 576 738 l 721 173 l 881 737 l 1009 738 "},"$":{"x_min":0,"x_max":700,"ha":793,"o":"m 664 717 l 542 717 q 490 825 531 785 q 381 872 450 865 l 381 551 q 620 446 540 522 q 700 241 700 370 q 618 45 700 116 q 381 -25 536 -25 l 381 -152 l 307 -152 l 307 -25 q 81 62 162 -25 q 0 297 0 149 l 124 297 q 169 146 124 204 q 307 81 215 89 l 307 441 q 80 536 148 469 q 13 725 13 603 q 96 910 13 839 q 307 982 180 982 l 307 1077 l 381 1077 l 381 982 q 574 917 494 982 q 664 717 664 845 m 307 565 l 307 872 q 187 831 233 872 q 142 724 142 791 q 180 618 142 656 q 307 565 218 580 m 381 76 q 562 237 562 96 q 517 361 562 313 q 381 423 472 409 l 381 76 "},"\\\\":{"x_min":-0.015625,"x_max":425.0625,"ha":522,"o":"m 425 -129 l 337 -129 l 0 1041 l 83 1041 l 425 -129 "},"\xb5":{"x_min":0,"x_max":697.21875,"ha":747,"o":"m 697 -4 q 629 -14 658 -14 q 498 97 513 -14 q 422 9 470 41 q 313 -23 374 -23 q 207 4 258 -23 q 119 81 156 32 l 119 -278 l 0 -278 l 0 738 l 124 738 l 124 343 q 165 173 124 246 q 308 83 216 83 q 452 178 402 83 q 493 359 493 255 l 493 738 l 617 738 l 617 214 q 623 136 617 160 q 673 92 637 92 q 697 96 684 92 l 697 -4 "},"\u0399":{"x_min":42,"x_max":181,"ha":297,"o":"m 181 0 l 42 0 l 42 1013 l 181 1013 l 181 0 "},"\u038e":{"x_min":0,"x_max":1144.5,"ha":1214,"o":"m 1144 1012 l 807 416 l 807 0 l 667 0 l 667 416 l 325 1012 l 465 1012 l 736 533 l 1004 1012 l 1144 1012 m 277 1040 l 83 799 l 0 799 l 140 1040 l 277 1040 "},"\u2019":{"x_min":0,"x_max":139,"ha":236,"o":"m 139 851 q 102 737 139 784 q 0 669 65 690 l 0 734 q 59 787 42 741 q 72 873 72 821 l 0 873 l 0 1013 l 139 1013 l 139 851 "},"\u039d":{"x_min":0,"x_max":801,"ha":915,"o":"m 801 0 l 651 0 l 131 822 l 131 0 l 0 0 l 0 1013 l 151 1013 l 670 191 l 670 1013 l 801 1013 l 801 0 "},"-":{"x_min":8.71875,"x_max":350.390625,"ha":478,"o":"m 350 317 l 8 317 l 8 428 l 350 428 l 350 317 "},"Q":{"x_min":0,"x_max":968,"ha":1072,"o":"m 954 5 l 887 -79 l 744 35 q 622 -11 687 2 q 483 -26 556 -26 q 127 130 262 -26 q 0 504 0 279 q 127 880 0 728 q 484 1041 262 1041 q 841 884 708 1041 q 968 507 968 735 q 933 293 968 398 q 832 104 899 188 l 954 5 m 723 191 q 802 330 777 248 q 828 499 828 412 q 744 790 828 673 q 483 922 650 922 q 228 791 322 922 q 142 505 142 673 q 227 221 142 337 q 487 91 323 91 q 632 123 566 91 l 520 215 l 587 301 l 723 191 "},"\u03c2":{"x_min":1,"x_max":676.28125,"ha":740,"o":"m 676 460 l 551 460 q 498 595 542 546 q 365 651 448 651 q 199 578 263 651 q 136 401 136 505 q 266 178 136 241 q 508 106 387 142 q 640 -50 640 62 q 625 -158 640 -105 q 583 -278 611 -211 l 465 -278 q 498 -182 490 -211 q 515 -80 515 -126 q 381 12 515 -15 q 134 91 197 51 q 1 388 1 179 q 100 651 1 542 q 354 761 199 761 q 587 680 498 761 q 676 460 676 599 "},"M":{"x_min":0,"x_max":954,"ha":1067,"o":"m 954 0 l 819 0 l 819 869 l 537 0 l 405 0 l 128 866 l 128 0 l 0 0 l 0 1013 l 200 1013 l 472 160 l 757 1013 l 954 1013 l 954 0 "},"\u03a8":{"x_min":0,"x_max":1006,"ha":1094,"o":"m 1006 678 q 914 319 1006 429 q 571 200 814 200 l 571 0 l 433 0 l 433 200 q 92 319 194 200 q 0 678 0 429 l 0 1013 l 139 1013 l 139 679 q 191 417 139 492 q 433 326 255 326 l 433 1013 l 571 1013 l 571 326 l 580 326 q 813 423 747 326 q 868 679 868 502 l 868 1013 l 1006 1013 l 1006 678 "},"C":{"x_min":0,"x_max":886,"ha":944,"o":"m 886 379 q 760 87 886 201 q 455 -26 634 -26 q 112 136 236 -26 q 0 509 0 283 q 118 882 0 737 q 469 1041 245 1041 q 748 955 630 1041 q 879 708 879 859 l 745 708 q 649 862 724 805 q 473 920 573 920 q 219 791 312 920 q 136 509 136 675 q 217 229 136 344 q 470 99 311 99 q 672 179 591 99 q 753 379 753 259 l 886 379 "},"!":{"x_min":0,"x_max":138,"ha":236,"o":"m 138 684 q 116 409 138 629 q 105 244 105 299 l 33 244 q 16 465 33 313 q 0 684 0 616 l 0 1013 l 138 1013 l 138 684 m 138 0 l 0 0 l 0 151 l 138 151 l 138 0 "},"{":{"x_min":0,"x_max":480.5625,"ha":578,"o":"m 480 -286 q 237 -213 303 -286 q 187 -45 187 -159 q 194 48 187 -15 q 201 141 201 112 q 164 264 201 225 q 0 314 118 314 l 0 417 q 164 471 119 417 q 201 605 201 514 q 199 665 201 644 q 193 772 193 769 q 241 941 193 887 q 480 1015 308 1015 l 480 915 q 336 866 375 915 q 306 742 306 828 q 310 662 306 717 q 314 577 314 606 q 288 452 314 500 q 176 365 256 391 q 289 275 257 337 q 314 143 314 226 q 313 84 314 107 q 310 -11 310 -5 q 339 -131 310 -94 q 480 -182 377 -182 l 480 -286 "},"X":{"x_min":-0.015625,"x_max":854.15625,"ha":940,"o":"m 854 0 l 683 0 l 423 409 l 166 0 l 0 0 l 347 519 l 18 1013 l 186 1013 l 428 637 l 675 1013 l 836 1013 l 504 520 l 854 0 "},"#":{"x_min":0,"x_max":963.890625,"ha":1061,"o":"m 963 690 l 927 590 l 719 590 l 655 410 l 876 410 l 840 310 l 618 310 l 508 -3 l 393 -2 l 506 309 l 329 310 l 215 -2 l 102 -3 l 212 310 l 0 310 l 36 410 l 248 409 l 312 590 l 86 590 l 120 690 l 347 690 l 459 1006 l 573 1006 l 462 690 l 640 690 l 751 1006 l 865 1006 l 754 690 l 963 690 m 606 590 l 425 590 l 362 410 l 543 410 l 606 590 "},"\u03b9":{"x_min":42,"x_max":284,"ha":361,"o":"m 284 3 q 233 -10 258 -5 q 182 -15 207 -15 q 85 26 119 -15 q 42 200 42 79 l 42 738 l 167 738 l 168 215 q 172 141 168 157 q 226 101 183 101 q 248 103 239 101 q 284 112 257 104 l 284 3 "},"\u0386":{"x_min":0,"x_max":906.953125,"ha":982,"o":"m 283 1040 l 88 799 l 5 799 l 145 1040 l 283 1040 m 906 0 l 756 0 l 650 303 l 251 303 l 143 0 l 0 0 l 376 1012 l 529 1012 l 906 0 m 609 421 l 452 866 l 293 421 l 609 421 "},")":{"x_min":0,"x_max":318,"ha":415,"o":"m 318 365 q 257 25 318 191 q 87 -290 197 -141 l 0 -290 q 140 21 93 -128 q 193 360 193 189 q 141 704 193 537 q 0 1024 97 850 l 87 1024 q 257 706 197 871 q 318 365 318 542 "},"\u03b5":{"x_min":0,"x_max":634.71875,"ha":714,"o":"m 634 234 q 527 38 634 110 q 300 -25 433 -25 q 98 29 183 -25 q 0 204 0 93 q 37 314 0 265 q 128 390 67 353 q 56 460 82 419 q 26 555 26 505 q 114 712 26 654 q 295 763 191 763 q 499 700 416 763 q 589 515 589 631 l 478 515 q 419 618 464 580 q 307 657 374 657 q 207 630 253 657 q 151 547 151 598 q 238 445 151 469 q 389 434 280 434 l 389 331 l 349 331 q 206 315 255 331 q 125 210 125 287 q 183 107 125 145 q 302 76 233 76 q 436 117 379 76 q 509 234 493 159 l 634 234 "},"\u0394":{"x_min":0,"x_max":952.78125,"ha":1028,"o":"m 952 0 l 0 0 l 400 1013 l 551 1013 l 952 0 m 762 124 l 476 867 l 187 124 l 762 124 "},"}":{"x_min":0,"x_max":481,"ha":578,"o":"m 481 314 q 318 262 364 314 q 282 136 282 222 q 284 65 282 97 q 293 -58 293 -48 q 241 -217 293 -166 q 0 -286 174 -286 l 0 -182 q 143 -130 105 -182 q 171 -2 171 -93 q 168 81 171 22 q 165 144 165 140 q 188 275 165 229 q 306 365 220 339 q 191 455 224 391 q 165 588 165 505 q 168 681 165 624 q 171 742 171 737 q 141 865 171 827 q 0 915 102 915 l 0 1015 q 243 942 176 1015 q 293 773 293 888 q 287 675 293 741 q 282 590 282 608 q 318 466 282 505 q 481 417 364 417 l 481 314 "},"\u2030":{"x_min":-3,"x_max":1672,"ha":1821,"o":"m 846 0 q 664 76 732 0 q 603 244 603 145 q 662 412 603 344 q 846 489 729 489 q 1027 412 959 489 q 1089 244 1089 343 q 1029 76 1089 144 q 846 0 962 0 m 845 103 q 945 143 910 103 q 981 243 981 184 q 947 340 981 301 q 845 385 910 385 q 745 342 782 385 q 709 243 709 300 q 742 147 709 186 q 845 103 781 103 m 888 986 l 284 -25 l 199 -25 l 803 986 l 888 986 m 241 468 q 58 545 126 468 q -3 715 -3 615 q 56 881 -3 813 q 238 958 124 958 q 421 881 353 958 q 483 712 483 813 q 423 544 483 612 q 241 468 356 468 m 241 855 q 137 811 175 855 q 100 710 100 768 q 136 612 100 653 q 240 572 172 572 q 344 614 306 572 q 382 713 382 656 q 347 810 382 771 q 241 855 308 855 m 1428 0 q 1246 76 1314 0 q 1185 244 1185 145 q 1244 412 1185 344 q 1428 489 1311 489 q 1610 412 1542 489 q 1672 244 1672 343 q 1612 76 1672 144 q 1428 0 1545 0 m 1427 103 q 1528 143 1492 103 q 1564 243 1564 184 q 1530 340 1564 301 q 1427 385 1492 385 q 1327 342 1364 385 q 1291 243 1291 300 q 1324 147 1291 186 q 1427 103 1363 103 "},"a":{"x_min":0,"x_max":698.609375,"ha":794,"o":"m 698 0 q 661 -12 679 -7 q 615 -17 643 -17 q 536 12 564 -17 q 500 96 508 41 q 384 6 456 37 q 236 -25 312 -25 q 65 31 130 -25 q 0 194 0 88 q 118 390 0 334 q 328 435 180 420 q 488 483 476 451 q 495 523 495 504 q 442 619 495 584 q 325 654 389 654 q 209 617 257 654 q 152 513 161 580 l 33 513 q 123 705 33 633 q 332 772 207 772 q 528 712 448 772 q 617 531 617 645 l 617 163 q 624 108 617 126 q 664 90 632 90 l 698 94 l 698 0 m 491 262 l 491 372 q 272 329 350 347 q 128 201 128 294 q 166 113 128 144 q 264 83 205 83 q 414 130 346 83 q 491 262 491 183 "},"\u2014":{"x_min":0,"x_max":941.671875,"ha":1039,"o":"m 941 334 l 0 334 l 0 410 l 941 410 l 941 334 "},"=":{"x_min":8.71875,"x_max":780.953125,"ha":792,"o":"m 780 510 l 8 510 l 8 606 l 780 606 l 780 510 m 780 235 l 8 235 l 8 332 l 780 332 l 780 235 "},"N":{"x_min":0,"x_max":801,"ha":914,"o":"m 801 0 l 651 0 l 131 823 l 131 0 l 0 0 l 0 1013 l 151 1013 l 670 193 l 670 1013 l 801 1013 l 801 0 "},"\u03c1":{"x_min":0,"x_max":712,"ha":797,"o":"m 712 369 q 620 94 712 207 q 362 -26 521 -26 q 230 2 292 -26 q 119 83 167 30 l 119 -278 l 0 -278 l 0 362 q 91 643 0 531 q 355 764 190 764 q 617 647 517 764 q 712 369 712 536 m 583 366 q 530 559 583 480 q 359 651 469 651 q 190 562 252 651 q 135 370 135 483 q 189 176 135 257 q 359 85 250 85 q 528 175 466 85 q 583 366 583 254 "},"\xaf":{"x_min":0,"x_max":941.671875,"ha":938,"o":"m 941 1033 l 0 1033 l 0 1109 l 941 1109 l 941 1033 "},"Z":{"x_min":0,"x_max":779,"ha":849,"o":"m 779 0 l 0 0 l 0 113 l 621 896 l 40 896 l 40 1013 l 779 1013 l 778 887 l 171 124 l 779 124 l 779 0 "},"u":{"x_min":0,"x_max":617,"ha":729,"o":"m 617 0 l 499 0 l 499 110 q 391 10 460 45 q 246 -25 322 -25 q 61 58 127 -25 q 0 258 0 136 l 0 738 l 125 738 l 125 284 q 156 148 125 202 q 273 82 197 82 q 433 165 369 82 q 493 340 493 243 l 493 738 l 617 738 l 617 0 "},"k":{"x_min":0,"x_max":612.484375,"ha":697,"o":"m 612 738 l 338 465 l 608 0 l 469 0 l 251 382 l 121 251 l 121 0 l 0 0 l 0 1013 l 121 1013 l 121 402 l 456 738 l 612 738 "},"\u0397":{"x_min":0,"x_max":803,"ha":917,"o":"m 803 0 l 667 0 l 667 475 l 140 475 l 140 0 l 0 0 l 0 1013 l 140 1013 l 140 599 l 667 599 l 667 1013 l 803 1013 l 803 0 "},"\u0391":{"x_min":0,"x_max":906.953125,"ha":985,"o":"m 906 0 l 756 0 l 650 303 l 251 303 l 143 0 l 0 0 l 376 1013 l 529 1013 l 906 0 m 609 421 l 452 866 l 293 421 l 609 421 "},"s":{"x_min":0,"x_max":604,"ha":697,"o":"m 604 217 q 501 36 604 104 q 292 -23 411 -23 q 86 43 166 -23 q 0 238 0 114 l 121 237 q 175 122 121 164 q 300 85 223 85 q 415 112 363 85 q 479 207 479 147 q 361 309 479 276 q 140 372 141 370 q 21 544 21 426 q 111 708 21 647 q 298 761 190 761 q 492 705 413 761 q 583 531 583 643 l 462 531 q 412 625 462 594 q 298 657 363 657 q 199 636 242 657 q 143 558 143 608 q 262 454 143 486 q 484 394 479 397 q 604 217 604 341 "},"B":{"x_min":0,"x_max":778,"ha":876,"o":"m 580 546 q 724 469 670 535 q 778 311 778 403 q 673 83 778 171 q 432 0 575 0 l 0 0 l 0 1013 l 411 1013 q 629 957 541 1013 q 732 768 732 892 q 691 633 732 693 q 580 546 650 572 m 393 899 l 139 899 l 139 588 l 379 588 q 521 624 462 588 q 592 744 592 667 q 531 859 592 819 q 393 899 471 899 m 419 124 q 566 169 504 124 q 635 303 635 219 q 559 436 635 389 q 402 477 494 477 l 139 477 l 139 124 l 419 124 "},"\u2026":{"x_min":0,"x_max":614,"ha":708,"o":"m 142 0 l 0 0 l 0 151 l 142 151 l 142 0 m 378 0 l 236 0 l 236 151 l 378 151 l 378 0 m 614 0 l 472 0 l 472 151 l 614 151 l 614 0 "},"?":{"x_min":0,"x_max":607,"ha":704,"o":"m 607 777 q 543 599 607 674 q 422 474 482 537 q 357 272 357 391 l 236 272 q 297 487 236 395 q 411 619 298 490 q 474 762 474 691 q 422 885 474 838 q 301 933 371 933 q 179 880 228 933 q 124 706 124 819 l 0 706 q 94 963 0 872 q 302 1044 177 1044 q 511 973 423 1044 q 607 777 607 895 m 370 0 l 230 0 l 230 151 l 370 151 l 370 0 "},"H":{"x_min":0,"x_max":803,"ha":915,"o":"m 803 0 l 667 0 l 667 475 l 140 475 l 140 0 l 0 0 l 0 1013 l 140 1013 l 140 599 l 667 599 l 667 1013 l 803 1013 l 803 0 "},"\u03bd":{"x_min":0,"x_max":675,"ha":761,"o":"m 675 738 l 404 0 l 272 0 l 0 738 l 133 738 l 340 147 l 541 738 l 675 738 "},"c":{"x_min":1,"x_max":701.390625,"ha":775,"o":"m 701 264 q 584 53 681 133 q 353 -26 487 -26 q 91 91 188 -26 q 1 370 1 201 q 92 645 1 537 q 353 761 190 761 q 572 688 479 761 q 690 493 666 615 l 556 493 q 487 606 545 562 q 356 650 428 650 q 186 563 246 650 q 134 372 134 487 q 188 179 134 258 q 359 88 250 88 q 492 136 437 88 q 566 264 548 185 l 701 264 "},"\xb6":{"x_min":0,"x_max":566.671875,"ha":678,"o":"m 21 892 l 52 892 l 98 761 l 145 892 l 176 892 l 178 741 l 157 741 l 157 867 l 108 741 l 88 741 l 40 871 l 40 741 l 21 741 l 21 892 m 308 854 l 308 731 q 252 691 308 691 q 227 691 240 691 q 207 696 213 695 l 207 712 l 253 706 q 288 733 288 706 l 288 763 q 244 741 279 741 q 193 797 193 741 q 261 860 193 860 q 287 860 273 860 q 308 854 302 855 m 288 842 l 263 843 q 213 796 213 843 q 248 756 213 756 q 288 796 288 756 l 288 842 m 566 988 l 502 988 l 502 -1 l 439 -1 l 439 988 l 317 988 l 317 -1 l 252 -1 l 252 602 q 81 653 155 602 q 0 805 0 711 q 101 989 0 918 q 309 1053 194 1053 l 566 1053 l 566 988 "},"\u03b2":{"x_min":0,"x_max":660,"ha":745,"o":"m 471 550 q 610 450 561 522 q 660 280 660 378 q 578 64 660 151 q 367 -22 497 -22 q 239 5 299 -22 q 126 82 178 32 l 126 -278 l 0 -278 l 0 593 q 54 903 0 801 q 318 1042 127 1042 q 519 964 436 1042 q 603 771 603 887 q 567 644 603 701 q 471 550 532 586 m 337 79 q 476 138 418 79 q 535 279 535 198 q 427 437 535 386 q 226 477 344 477 l 226 583 q 398 620 329 583 q 486 762 486 668 q 435 884 486 833 q 312 935 384 935 q 169 861 219 935 q 126 698 126 797 l 126 362 q 170 169 126 242 q 337 79 224 79 "},"\u039c":{"x_min":0,"x_max":954,"ha":1068,"o":"m 954 0 l 819 0 l 819 868 l 537 0 l 405 0 l 128 865 l 128 0 l 0 0 l 0 1013 l 199 1013 l 472 158 l 758 1013 l 954 1013 l 954 0 "},"\u038c":{"x_min":0.109375,"x_max":1120,"ha":1217,"o":"m 1120 505 q 994 132 1120 282 q 642 -29 861 -29 q 290 130 422 -29 q 167 505 167 280 q 294 883 167 730 q 650 1046 430 1046 q 999 882 868 1046 q 1120 505 1120 730 m 977 504 q 896 784 977 669 q 644 915 804 915 q 391 785 484 915 q 307 504 307 669 q 391 224 307 339 q 644 95 486 95 q 894 224 803 95 q 977 504 977 339 m 277 1040 l 83 799 l 0 799 l 140 1040 l 277 1040 "},"\u0389":{"x_min":0,"x_max":1158,"ha":1275,"o":"m 1158 0 l 1022 0 l 1022 475 l 496 475 l 496 0 l 356 0 l 356 1012 l 496 1012 l 496 599 l 1022 599 l 1022 1012 l 1158 1012 l 1158 0 m 277 1040 l 83 799 l 0 799 l 140 1040 l 277 1040 "},"\u2022":{"x_min":0,"x_max":663.890625,"ha":775,"o":"m 663 529 q 566 293 663 391 q 331 196 469 196 q 97 294 194 196 q 0 529 0 393 q 96 763 0 665 q 331 861 193 861 q 566 763 469 861 q 663 529 663 665 "},"\xa5":{"x_min":0.1875,"x_max":819.546875,"ha":886,"o":"m 563 561 l 697 561 l 696 487 l 520 487 l 482 416 l 482 380 l 697 380 l 695 308 l 482 308 l 482 0 l 342 0 l 342 308 l 125 308 l 125 380 l 342 380 l 342 417 l 303 487 l 125 487 l 125 561 l 258 561 l 0 1013 l 140 1013 l 411 533 l 679 1013 l 819 1013 l 563 561 "},"(":{"x_min":0,"x_max":318.0625,"ha":415,"o":"m 318 -290 l 230 -290 q 61 23 122 -142 q 0 365 0 190 q 62 712 0 540 q 230 1024 119 869 l 318 1024 q 175 705 219 853 q 125 360 125 542 q 176 22 125 187 q 318 -290 223 -127 "},"U":{"x_min":0,"x_max":796,"ha":904,"o":"m 796 393 q 681 93 796 212 q 386 -25 566 -25 q 101 95 208 -25 q 0 393 0 211 l 0 1013 l 138 1013 l 138 391 q 204 191 138 270 q 394 107 276 107 q 586 191 512 107 q 656 391 656 270 l 656 1013 l 796 1013 l 796 393 "},"\u03b3":{"x_min":0.5,"x_max":744.953125,"ha":822,"o":"m 744 737 l 463 54 l 463 -278 l 338 -278 l 338 54 l 154 495 q 104 597 124 569 q 13 651 67 651 l 0 651 l 0 751 l 39 753 q 168 711 121 753 q 242 594 207 676 l 403 208 l 617 737 l 744 737 "},"\u03b1":{"x_min":0,"x_max":765.5625,"ha":809,"o":"m 765 -4 q 698 -14 726 -14 q 564 97 586 -14 q 466 7 525 40 q 337 -26 407 -26 q 88 98 186 -26 q 0 369 0 212 q 88 637 0 525 q 337 760 184 760 q 465 728 407 760 q 563 637 524 696 l 563 739 l 685 739 l 685 222 q 693 141 685 168 q 748 94 708 94 q 765 96 760 94 l 765 -4 m 584 371 q 531 562 584 485 q 360 653 470 653 q 192 566 254 653 q 135 379 135 489 q 186 181 135 261 q 358 84 247 84 q 528 176 465 84 q 584 371 584 260 "},"F":{"x_min":0,"x_max":683.328125,"ha":717,"o":"m 683 888 l 140 888 l 140 583 l 613 583 l 613 458 l 140 458 l 140 0 l 0 0 l 0 1013 l 683 1013 l 683 888 "},"\xad":{"x_min":0,"x_max":705.5625,"ha":803,"o":"m 705 334 l 0 334 l 0 410 l 705 410 l 705 334 "},":":{"x_min":0,"x_max":142,"ha":239,"o":"m 142 585 l 0 585 l 0 738 l 142 738 l 142 585 m 142 0 l 0 0 l 0 151 l 142 151 l 142 0 "},"\u03a7":{"x_min":0,"x_max":854.171875,"ha":935,"o":"m 854 0 l 683 0 l 423 409 l 166 0 l 0 0 l 347 519 l 18 1013 l 186 1013 l 427 637 l 675 1013 l 836 1013 l 504 521 l 854 0 "},"*":{"x_min":116,"x_max":674,"ha":792,"o":"m 674 768 l 475 713 l 610 544 l 517 477 l 394 652 l 272 478 l 178 544 l 314 713 l 116 766 l 153 876 l 341 812 l 342 1013 l 446 1013 l 446 811 l 635 874 l 674 768 "},"\u2020":{"x_min":0,"x_max":777,"ha":835,"o":"m 458 804 l 777 804 l 777 683 l 458 683 l 458 0 l 319 0 l 319 681 l 0 683 l 0 804 l 319 804 l 319 1015 l 458 1013 l 458 804 "},"\xb0":{"x_min":0,"x_max":347,"ha":444,"o":"m 173 802 q 43 856 91 802 q 0 977 0 905 q 45 1101 0 1049 q 173 1153 90 1153 q 303 1098 255 1153 q 347 977 347 1049 q 303 856 347 905 q 173 802 256 802 m 173 884 q 238 910 214 884 q 262 973 262 937 q 239 1038 262 1012 q 173 1064 217 1064 q 108 1037 132 1064 q 85 973 85 1010 q 108 910 85 937 q 173 884 132 884 "},"V":{"x_min":0,"x_max":862.71875,"ha":940,"o":"m 862 1013 l 505 0 l 361 0 l 0 1013 l 143 1013 l 434 165 l 718 1012 l 862 1013 "},"\u039e":{"x_min":0,"x_max":734.71875,"ha":763,"o":"m 723 889 l 9 889 l 9 1013 l 723 1013 l 723 889 m 673 463 l 61 463 l 61 589 l 673 589 l 673 463 m 734 0 l 0 0 l 0 124 l 734 124 l 734 0 "},"\xa0":{"x_min":0,"x_max":0,"ha":853},"\u03ab":{"x_min":0.328125,"x_max":819.515625,"ha":889,"o":"m 588 1046 l 460 1046 l 460 1189 l 588 1189 l 588 1046 m 360 1046 l 232 1046 l 232 1189 l 360 1189 l 360 1046 m 819 1012 l 482 416 l 482 0 l 342 0 l 342 416 l 0 1012 l 140 1012 l 411 533 l 679 1012 l 819 1012 "},"\u201d":{"x_min":0,"x_max":347,"ha":454,"o":"m 139 851 q 102 737 139 784 q 0 669 65 690 l 0 734 q 59 787 42 741 q 72 873 72 821 l 0 873 l 0 1013 l 139 1013 l 139 851 m 347 851 q 310 737 347 784 q 208 669 273 690 l 208 734 q 267 787 250 741 q 280 873 280 821 l 208 873 l 208 1013 l 347 1013 l 347 851 "},"@":{"x_min":0,"x_max":1260,"ha":1357,"o":"m 1098 -45 q 877 -160 1001 -117 q 633 -203 752 -203 q 155 -29 327 -203 q 0 360 0 127 q 176 802 0 616 q 687 1008 372 1008 q 1123 854 969 1008 q 1260 517 1260 718 q 1155 216 1260 341 q 868 82 1044 82 q 772 106 801 82 q 737 202 737 135 q 647 113 700 144 q 527 82 594 82 q 367 147 420 82 q 314 312 314 212 q 401 565 314 452 q 639 690 498 690 q 810 588 760 690 l 849 668 l 938 668 q 877 441 900 532 q 833 226 833 268 q 853 182 833 198 q 902 167 873 167 q 1088 272 1012 167 q 1159 512 1159 372 q 1051 793 1159 681 q 687 925 925 925 q 248 747 415 925 q 97 361 97 586 q 226 26 97 159 q 627 -122 370 -122 q 856 -87 737 -122 q 1061 8 976 -53 l 1098 -45 m 786 488 q 738 580 777 545 q 643 615 700 615 q 483 517 548 615 q 425 322 425 430 q 457 203 425 250 q 552 156 490 156 q 722 273 665 156 q 786 488 738 309 "},"\u038a":{"x_min":0,"x_max":499,"ha":613,"o":"m 277 1040 l 83 799 l 0 799 l 140 1040 l 277 1040 m 499 0 l 360 0 l 360 1012 l 499 1012 l 499 0 "},"i":{"x_min":14,"x_max":136,"ha":275,"o":"m 136 873 l 14 873 l 14 1013 l 136 1013 l 136 873 m 136 0 l 14 0 l 14 737 l 136 737 l 136 0 "},"\u0392":{"x_min":0,"x_max":778,"ha":877,"o":"m 580 545 q 724 468 671 534 q 778 310 778 402 q 673 83 778 170 q 432 0 575 0 l 0 0 l 0 1013 l 411 1013 q 629 957 541 1013 q 732 768 732 891 q 691 632 732 692 q 580 545 650 571 m 393 899 l 139 899 l 139 587 l 379 587 q 521 623 462 587 q 592 744 592 666 q 531 859 592 819 q 393 899 471 899 m 419 124 q 566 169 504 124 q 635 302 635 219 q 559 435 635 388 q 402 476 494 476 l 139 476 l 139 124 l 419 124 "},"\u03c5":{"x_min":0,"x_max":617,"ha":725,"o":"m 617 352 q 540 94 617 199 q 308 -24 455 -24 q 76 94 161 -24 q 0 352 0 199 l 0 739 l 126 739 l 126 355 q 169 185 126 257 q 312 98 220 98 q 451 185 402 98 q 492 355 492 257 l 492 739 l 617 739 l 617 352 "},"]":{"x_min":0,"x_max":275,"ha":372,"o":"m 275 -281 l 0 -281 l 0 -187 l 151 -187 l 151 920 l 0 920 l 0 1013 l 275 1013 l 275 -281 "},"m":{"x_min":0,"x_max":1019,"ha":1128,"o":"m 1019 0 l 897 0 l 897 454 q 860 591 897 536 q 739 660 816 660 q 613 586 659 660 q 573 436 573 522 l 573 0 l 447 0 l 447 455 q 412 591 447 535 q 294 657 372 657 q 165 586 213 657 q 122 437 122 521 l 122 0 l 0 0 l 0 738 l 117 738 l 117 640 q 202 730 150 697 q 316 763 254 763 q 437 730 381 763 q 525 642 494 697 q 621 731 559 700 q 753 763 682 763 q 943 694 867 763 q 1019 512 1019 625 l 1019 0 "},"\u03c7":{"x_min":8.328125,"x_max":780.5625,"ha":815,"o":"m 780 -278 q 715 -294 747 -294 q 616 -257 663 -294 q 548 -175 576 -227 l 379 133 l 143 -277 l 9 -277 l 313 254 l 163 522 q 127 586 131 580 q 36 640 91 640 q 8 637 27 640 l 8 752 l 52 757 q 162 719 113 757 q 236 627 200 690 l 383 372 l 594 737 l 726 737 l 448 250 l 625 -69 q 670 -153 647 -110 q 743 -188 695 -188 q 780 -184 759 -188 l 780 -278 "},"\u03af":{"x_min":42,"x_max":326.71875,"ha":361,"o":"m 284 3 q 233 -10 258 -5 q 182 -15 207 -15 q 85 26 119 -15 q 42 200 42 79 l 42 737 l 167 737 l 168 215 q 172 141 168 157 q 226 101 183 101 q 248 102 239 101 q 284 112 257 104 l 284 3 m 326 1040 l 137 819 l 54 819 l 189 1040 l 326 1040 "},"\u0396":{"x_min":0,"x_max":779.171875,"ha":850,"o":"m 779 0 l 0 0 l 0 113 l 620 896 l 40 896 l 40 1013 l 779 1013 l 779 887 l 170 124 l 779 124 l 779 0 "},"R":{"x_min":0,"x_max":781.953125,"ha":907,"o":"m 781 0 l 623 0 q 587 242 590 52 q 407 433 585 433 l 138 433 l 138 0 l 0 0 l 0 1013 l 396 1013 q 636 946 539 1013 q 749 731 749 868 q 711 597 749 659 q 608 502 674 534 q 718 370 696 474 q 729 207 722 352 q 781 26 736 62 l 781 0 m 373 551 q 533 594 465 551 q 614 731 614 645 q 532 859 614 815 q 373 896 465 896 l 138 896 l 138 551 l 373 551 "},"o":{"x_min":0,"x_max":713,"ha":821,"o":"m 357 -25 q 94 91 194 -25 q 0 368 0 202 q 93 642 0 533 q 357 761 193 761 q 618 644 518 761 q 713 368 713 533 q 619 91 713 201 q 357 -25 521 -25 m 357 85 q 528 175 465 85 q 584 369 584 255 q 529 562 584 484 q 357 651 467 651 q 189 560 250 651 q 135 369 135 481 q 187 177 135 257 q 357 85 250 85 "},"K":{"x_min":0,"x_max":819.46875,"ha":906,"o":"m 819 0 l 649 0 l 294 509 l 139 355 l 139 0 l 0 0 l 0 1013 l 139 1013 l 139 526 l 626 1013 l 809 1013 l 395 600 l 819 0 "},",":{"x_min":0,"x_max":142,"ha":239,"o":"m 142 -12 q 105 -132 142 -82 q 0 -205 68 -182 l 0 -138 q 57 -82 40 -124 q 70 0 70 -51 l 0 0 l 0 151 l 142 151 l 142 -12 "},"d":{"x_min":0,"x_max":683,"ha":796,"o":"m 683 0 l 564 0 l 564 93 q 456 6 516 38 q 327 -25 395 -25 q 87 100 181 -25 q 0 365 0 215 q 90 639 0 525 q 343 763 187 763 q 564 647 486 763 l 564 1013 l 683 1013 l 683 0 m 582 373 q 529 562 582 484 q 361 653 468 653 q 190 561 253 653 q 135 365 135 479 q 189 175 135 254 q 358 85 251 85 q 529 178 468 85 q 582 373 582 258 "},"\xa8":{"x_min":-109,"x_max":247,"ha":232,"o":"m 247 1046 l 119 1046 l 119 1189 l 247 1189 l 247 1046 m 19 1046 l -109 1046 l -109 1189 l 19 1189 l 19 1046 "},"E":{"x_min":0,"x_max":736.109375,"ha":789,"o":"m 736 0 l 0 0 l 0 1013 l 725 1013 l 725 889 l 139 889 l 139 585 l 677 585 l 677 467 l 139 467 l 139 125 l 736 125 l 736 0 "},"Y":{"x_min":0,"x_max":820,"ha":886,"o":"m 820 1013 l 482 416 l 482 0 l 342 0 l 342 416 l 0 1013 l 140 1013 l 411 534 l 679 1012 l 820 1013 "},"\\"":{"x_min":0,"x_max":299,"ha":396,"o":"m 299 606 l 203 606 l 203 988 l 299 988 l 299 606 m 96 606 l 0 606 l 0 988 l 96 988 l 96 606 "},"\u2039":{"x_min":17.984375,"x_max":773.609375,"ha":792,"o":"m 773 40 l 18 376 l 17 465 l 773 799 l 773 692 l 159 420 l 773 149 l 773 40 "},"\u201e":{"x_min":0,"x_max":364,"ha":467,"o":"m 141 -12 q 104 -132 141 -82 q 0 -205 67 -182 l 0 -138 q 56 -82 40 -124 q 69 0 69 -51 l 0 0 l 0 151 l 141 151 l 141 -12 m 364 -12 q 327 -132 364 -82 q 222 -205 290 -182 l 222 -138 q 279 -82 262 -124 q 292 0 292 -51 l 222 0 l 222 151 l 364 151 l 364 -12 "},"\u03b4":{"x_min":1,"x_max":710,"ha":810,"o":"m 710 360 q 616 87 710 196 q 356 -28 518 -28 q 99 82 197 -28 q 1 356 1 192 q 100 606 1 509 q 355 703 199 703 q 180 829 288 754 q 70 903 124 866 l 70 1012 l 643 1012 l 643 901 l 258 901 q 462 763 422 794 q 636 592 577 677 q 710 360 710 485 m 584 365 q 552 501 584 447 q 451 602 521 555 q 372 611 411 611 q 197 541 258 611 q 136 355 136 472 q 190 171 136 245 q 358 85 252 85 q 528 173 465 85 q 584 365 584 252 "},"\u03ad":{"x_min":0,"x_max":634.71875,"ha":714,"o":"m 634 234 q 527 38 634 110 q 300 -25 433 -25 q 98 29 183 -25 q 0 204 0 93 q 37 313 0 265 q 128 390 67 352 q 56 459 82 419 q 26 555 26 505 q 114 712 26 654 q 295 763 191 763 q 499 700 416 763 q 589 515 589 631 l 478 515 q 419 618 464 580 q 307 657 374 657 q 207 630 253 657 q 151 547 151 598 q 238 445 151 469 q 389 434 280 434 l 389 331 l 349 331 q 206 315 255 331 q 125 210 125 287 q 183 107 125 145 q 302 76 233 76 q 436 117 379 76 q 509 234 493 159 l 634 234 m 520 1040 l 331 819 l 248 819 l 383 1040 l 520 1040 "},"\u03c9":{"x_min":0,"x_max":922,"ha":1031,"o":"m 922 339 q 856 97 922 203 q 650 -26 780 -26 q 538 9 587 -26 q 461 103 489 44 q 387 12 436 46 q 277 -22 339 -22 q 69 97 147 -22 q 0 339 0 203 q 45 551 0 444 q 161 738 84 643 l 302 738 q 175 553 219 647 q 124 336 124 446 q 155 179 124 249 q 275 88 197 88 q 375 163 341 88 q 400 294 400 219 l 400 572 l 524 572 l 524 294 q 561 135 524 192 q 643 88 591 88 q 762 182 719 88 q 797 342 797 257 q 745 556 797 450 q 619 738 705 638 l 760 738 q 874 551 835 640 q 922 339 922 444 "},"\xb4":{"x_min":0,"x_max":96,"ha":251,"o":"m 96 606 l 0 606 l 0 988 l 96 988 l 96 606 "},"\xb1":{"x_min":11,"x_max":781,"ha":792,"o":"m 781 490 l 446 490 l 446 255 l 349 255 l 349 490 l 11 490 l 11 586 l 349 586 l 349 819 l 446 819 l 446 586 l 781 586 l 781 490 m 781 21 l 11 21 l 11 115 l 781 115 l 781 21 "},"|":{"x_min":343,"x_max":449,"ha":792,"o":"m 449 462 l 343 462 l 343 986 l 449 986 l 449 462 m 449 -242 l 343 -242 l 343 280 l 449 280 l 449 -242 "},"\u03cb":{"x_min":0,"x_max":617,"ha":725,"o":"m 482 800 l 372 800 l 372 925 l 482 925 l 482 800 m 239 800 l 129 800 l 129 925 l 239 925 l 239 800 m 617 352 q 540 93 617 199 q 308 -24 455 -24 q 76 93 161 -24 q 0 352 0 199 l 0 738 l 126 738 l 126 354 q 169 185 126 257 q 312 98 220 98 q 451 185 402 98 q 492 354 492 257 l 492 738 l 617 738 l 617 352 "},"\xa7":{"x_min":0,"x_max":593,"ha":690,"o":"m 593 425 q 554 312 593 369 q 467 233 516 254 q 537 83 537 172 q 459 -74 537 -12 q 288 -133 387 -133 q 115 -69 184 -133 q 47 96 47 -6 l 166 96 q 199 7 166 40 q 288 -26 232 -26 q 371 -5 332 -26 q 420 60 420 21 q 311 201 420 139 q 108 309 210 255 q 0 490 0 383 q 33 602 0 551 q 124 687 66 654 q 75 743 93 712 q 58 812 58 773 q 133 984 58 920 q 300 1043 201 1043 q 458 987 394 1043 q 529 814 529 925 l 411 814 q 370 908 404 877 q 289 939 336 939 q 213 911 246 939 q 180 841 180 883 q 286 720 180 779 q 484 612 480 615 q 593 425 593 534 m 467 409 q 355 544 467 473 q 196 630 228 612 q 146 587 162 609 q 124 525 124 558 q 239 387 124 462 q 398 298 369 315 q 448 345 429 316 q 467 409 467 375 "},"b":{"x_min":0,"x_max":685,"ha":783,"o":"m 685 372 q 597 99 685 213 q 347 -25 501 -25 q 219 5 277 -25 q 121 93 161 36 l 121 0 l 0 0 l 0 1013 l 121 1013 l 121 634 q 214 723 157 692 q 341 754 272 754 q 591 637 493 754 q 685 372 685 526 m 554 356 q 499 550 554 470 q 328 644 437 644 q 162 556 223 644 q 108 369 108 478 q 160 176 108 256 q 330 83 221 83 q 498 169 435 83 q 554 356 554 245 "},"q":{"x_min":0,"x_max":683,"ha":876,"o":"m 683 -278 l 564 -278 l 564 97 q 474 8 533 39 q 345 -23 415 -23 q 91 93 188 -23 q 0 364 0 203 q 87 635 0 522 q 337 760 184 760 q 466 727 408 760 q 564 637 523 695 l 564 737 l 683 737 l 683 -278 m 582 375 q 527 564 582 488 q 358 652 466 652 q 190 565 253 652 q 135 377 135 488 q 189 179 135 261 q 361 84 251 84 q 530 179 469 84 q 582 375 582 260 "},"\u03a9":{"x_min":-0.171875,"x_max":969.5625,"ha":1068,"o":"m 969 0 l 555 0 l 555 123 q 744 308 675 194 q 814 558 814 423 q 726 812 814 709 q 484 922 633 922 q 244 820 334 922 q 154 567 154 719 q 223 316 154 433 q 412 123 292 199 l 412 0 l 0 0 l 0 124 l 217 124 q 68 327 122 210 q 15 572 15 444 q 144 911 15 781 q 484 1041 274 1041 q 822 909 691 1041 q 953 569 953 777 q 899 326 953 443 q 750 124 846 210 l 969 124 l 969 0 "},"\u03cd":{"x_min":0,"x_max":617,"ha":725,"o":"m 617 352 q 540 93 617 199 q 308 -24 455 -24 q 76 93 161 -24 q 0 352 0 199 l 0 738 l 126 738 l 126 354 q 169 185 126 257 q 312 98 220 98 q 451 185 402 98 q 492 354 492 257 l 492 738 l 617 738 l 617 352 m 535 1040 l 346 819 l 262 819 l 397 1040 l 535 1040 "},"z":{"x_min":-0.015625,"x_max":613.890625,"ha":697,"o":"m 613 0 l 0 0 l 0 100 l 433 630 l 20 630 l 20 738 l 594 738 l 593 636 l 163 110 l 613 110 l 613 0 "},"\u2122":{"x_min":0,"x_max":894,"ha":1000,"o":"m 389 951 l 229 951 l 229 503 l 160 503 l 160 951 l 0 951 l 0 1011 l 389 1011 l 389 951 m 894 503 l 827 503 l 827 939 l 685 503 l 620 503 l 481 937 l 481 503 l 417 503 l 417 1011 l 517 1011 l 653 580 l 796 1010 l 894 1011 l 894 503 "},"\u03ae":{"x_min":0.78125,"x_max":697,"ha":810,"o":"m 697 -278 l 572 -278 l 572 454 q 540 587 572 536 q 425 650 501 650 q 271 579 337 650 q 206 420 206 509 l 206 0 l 81 0 l 81 489 q 73 588 81 562 q 0 644 56 644 l 0 741 q 68 755 38 755 q 158 721 124 755 q 200 630 193 687 q 297 726 234 692 q 434 761 359 761 q 620 692 544 761 q 697 516 697 624 l 697 -278 m 479 1040 l 290 819 l 207 819 l 341 1040 l 479 1040 "},"\u0398":{"x_min":0,"x_max":960,"ha":1056,"o":"m 960 507 q 833 129 960 280 q 476 -32 698 -32 q 123 129 255 -32 q 0 507 0 280 q 123 883 0 732 q 476 1045 255 1045 q 832 883 696 1045 q 960 507 960 732 m 817 500 q 733 789 817 669 q 476 924 639 924 q 223 792 317 924 q 142 507 142 675 q 222 222 142 339 q 476 89 315 89 q 730 218 636 89 q 817 500 817 334 m 716 449 l 243 449 l 243 571 l 716 571 l 716 449 "},"\xae":{"x_min":-3,"x_max":1008,"ha":1106,"o":"m 503 532 q 614 562 566 532 q 672 658 672 598 q 614 747 672 716 q 503 772 569 772 l 338 772 l 338 532 l 503 532 m 502 -7 q 123 151 263 -7 q -3 501 -3 294 q 123 851 -3 706 q 502 1011 263 1011 q 881 851 739 1011 q 1008 501 1008 708 q 883 151 1008 292 q 502 -7 744 -7 m 502 60 q 830 197 709 60 q 940 501 940 322 q 831 805 940 681 q 502 944 709 944 q 174 805 296 944 q 65 501 65 680 q 173 197 65 320 q 502 60 294 60 m 788 146 l 678 146 q 653 316 655 183 q 527 449 652 449 l 338 449 l 338 146 l 241 146 l 241 854 l 518 854 q 688 808 621 854 q 766 658 766 755 q 739 563 766 607 q 668 497 713 519 q 751 331 747 472 q 788 164 756 190 l 788 146 "},"~":{"x_min":0,"x_max":833,"ha":931,"o":"m 833 958 q 778 753 833 831 q 594 665 716 665 q 402 761 502 665 q 240 857 302 857 q 131 795 166 857 q 104 665 104 745 l 0 665 q 54 867 0 789 q 237 958 116 958 q 429 861 331 958 q 594 765 527 765 q 704 827 670 765 q 729 958 729 874 l 833 958 "},"\u0395":{"x_min":0,"x_max":736.21875,"ha":778,"o":"m 736 0 l 0 0 l 0 1013 l 725 1013 l 725 889 l 139 889 l 139 585 l 677 585 l 677 467 l 139 467 l 139 125 l 736 125 l 736 0 "},"\xb3":{"x_min":0,"x_max":450,"ha":547,"o":"m 450 552 q 379 413 450 464 q 220 366 313 366 q 69 414 130 366 q 0 567 0 470 l 85 567 q 126 470 85 504 q 225 437 168 437 q 320 467 280 437 q 360 552 360 498 q 318 632 360 608 q 213 657 276 657 q 195 657 203 657 q 176 657 181 657 l 176 722 q 279 733 249 722 q 334 815 334 752 q 300 881 334 856 q 220 907 267 907 q 133 875 169 907 q 97 781 97 844 l 15 781 q 78 926 15 875 q 220 972 135 972 q 364 930 303 972 q 426 817 426 888 q 344 697 426 733 q 421 642 392 681 q 450 552 450 603 "},"[":{"x_min":0,"x_max":273.609375,"ha":371,"o":"m 273 -281 l 0 -281 l 0 1013 l 273 1013 l 273 920 l 124 920 l 124 -187 l 273 -187 l 273 -281 "},"L":{"x_min":0,"x_max":645.828125,"ha":696,"o":"m 645 0 l 0 0 l 0 1013 l 140 1013 l 140 126 l 645 126 l 645 0 "},"\u03c3":{"x_min":0,"x_max":803.390625,"ha":894,"o":"m 803 628 l 633 628 q 713 368 713 512 q 618 93 713 204 q 357 -25 518 -25 q 94 91 194 -25 q 0 368 0 201 q 94 644 0 533 q 356 761 194 761 q 481 750 398 761 q 608 739 564 739 l 803 739 l 803 628 m 360 85 q 529 180 467 85 q 584 374 584 262 q 527 566 584 490 q 352 651 463 651 q 187 559 247 651 q 135 368 135 478 q 189 175 135 254 q 360 85 251 85 "},"\u03b6":{"x_min":0,"x_max":573,"ha":642,"o":"m 573 -40 q 553 -162 573 -97 q 510 -278 543 -193 l 400 -278 q 441 -187 428 -219 q 462 -90 462 -132 q 378 -14 462 -14 q 108 45 197 -14 q 0 290 0 117 q 108 631 0 462 q 353 901 194 767 l 55 901 l 55 1012 l 561 1012 l 561 924 q 261 669 382 831 q 128 301 128 489 q 243 117 128 149 q 458 98 350 108 q 573 -40 573 80 "},"\u03b8":{"x_min":0,"x_max":674,"ha":778,"o":"m 674 496 q 601 160 674 304 q 336 -26 508 -26 q 73 153 165 -26 q 0 485 0 296 q 72 840 0 683 q 343 1045 166 1045 q 605 844 516 1045 q 674 496 674 692 m 546 579 q 498 798 546 691 q 336 935 437 935 q 178 798 237 935 q 126 579 137 701 l 546 579 m 546 475 l 126 475 q 170 233 126 348 q 338 80 230 80 q 504 233 447 80 q 546 475 546 346 "},"\u039f":{"x_min":0,"x_max":958,"ha":1054,"o":"m 485 1042 q 834 883 703 1042 q 958 511 958 735 q 834 136 958 287 q 481 -26 701 -26 q 126 130 261 -26 q 0 504 0 279 q 127 880 0 729 q 485 1042 263 1042 m 480 98 q 731 225 638 98 q 815 504 815 340 q 733 783 815 670 q 480 913 640 913 q 226 785 321 913 q 142 504 142 671 q 226 224 142 339 q 480 98 319 98 "},"\u0393":{"x_min":0,"x_max":705.28125,"ha":749,"o":"m 705 886 l 140 886 l 140 0 l 0 0 l 0 1012 l 705 1012 l 705 886 "}," ":{"x_min":0,"x_max":0,"ha":375},"%":{"x_min":-3,"x_max":1089,"ha":1186,"o":"m 845 0 q 663 76 731 0 q 602 244 602 145 q 661 412 602 344 q 845 489 728 489 q 1027 412 959 489 q 1089 244 1089 343 q 1029 76 1089 144 q 845 0 962 0 m 844 103 q 945 143 909 103 q 981 243 981 184 q 947 340 981 301 q 844 385 909 385 q 744 342 781 385 q 708 243 708 300 q 741 147 708 186 q 844 103 780 103 m 888 986 l 284 -25 l 199 -25 l 803 986 l 888 986 m 241 468 q 58 545 126 468 q -3 715 -3 615 q 56 881 -3 813 q 238 958 124 958 q 421 881 353 958 q 483 712 483 813 q 423 544 483 612 q 241 468 356 468 m 241 855 q 137 811 175 855 q 100 710 100 768 q 136 612 100 653 q 240 572 172 572 q 344 614 306 572 q 382 713 382 656 q 347 810 382 771 q 241 855 308 855 "},"P":{"x_min":0,"x_max":726,"ha":806,"o":"m 424 1013 q 640 931 555 1013 q 726 719 726 850 q 637 506 726 587 q 413 426 548 426 l 140 426 l 140 0 l 0 0 l 0 1013 l 424 1013 m 379 889 l 140 889 l 140 548 l 372 548 q 522 589 459 548 q 593 720 593 637 q 528 845 593 801 q 379 889 463 889 "},"\u0388":{"x_min":0,"x_max":1078.21875,"ha":1118,"o":"m 1078 0 l 342 0 l 342 1013 l 1067 1013 l 1067 889 l 481 889 l 481 585 l 1019 585 l 1019 467 l 481 467 l 481 125 l 1078 125 l 1078 0 m 277 1040 l 83 799 l 0 799 l 140 1040 l 277 1040 "},"\u038f":{"x_min":0.125,"x_max":1136.546875,"ha":1235,"o":"m 1136 0 l 722 0 l 722 123 q 911 309 842 194 q 981 558 981 423 q 893 813 981 710 q 651 923 800 923 q 411 821 501 923 q 321 568 321 720 q 390 316 321 433 q 579 123 459 200 l 579 0 l 166 0 l 166 124 l 384 124 q 235 327 289 210 q 182 572 182 444 q 311 912 182 782 q 651 1042 441 1042 q 989 910 858 1042 q 1120 569 1120 778 q 1066 326 1120 443 q 917 124 1013 210 l 1136 124 l 1136 0 m 277 1040 l 83 800 l 0 800 l 140 1041 l 277 1040 "},"_":{"x_min":0,"x_max":705.5625,"ha":803,"o":"m 705 -334 l 0 -334 l 0 -234 l 705 -234 l 705 -334 "},"\u03aa":{"x_min":-110,"x_max":246,"ha":275,"o":"m 246 1046 l 118 1046 l 118 1189 l 246 1189 l 246 1046 m 18 1046 l -110 1046 l -110 1189 l 18 1189 l 18 1046 m 136 0 l 0 0 l 0 1012 l 136 1012 l 136 0 "},"+":{"x_min":23,"x_max":768,"ha":792,"o":"m 768 372 l 444 372 l 444 0 l 347 0 l 347 372 l 23 372 l 23 468 l 347 468 l 347 840 l 444 840 l 444 468 l 768 468 l 768 372 "},"\xbd":{"x_min":0,"x_max":1050,"ha":1149,"o":"m 1050 0 l 625 0 q 712 178 625 108 q 878 277 722 187 q 967 385 967 328 q 932 456 967 429 q 850 484 897 484 q 759 450 798 484 q 721 352 721 416 l 640 352 q 706 502 640 448 q 851 551 766 551 q 987 509 931 551 q 1050 385 1050 462 q 976 251 1050 301 q 829 179 902 215 q 717 68 740 133 l 1050 68 l 1050 0 m 834 985 l 215 -28 l 130 -28 l 750 984 l 834 985 m 224 422 l 142 422 l 142 811 l 0 811 l 0 867 q 104 889 62 867 q 164 973 157 916 l 224 973 l 224 422 "},"\u03a1":{"x_min":0,"x_max":720,"ha":783,"o":"m 424 1013 q 637 933 554 1013 q 720 723 720 853 q 633 508 720 591 q 413 426 546 426 l 140 426 l 140 0 l 0 0 l 0 1013 l 424 1013 m 378 889 l 140 889 l 140 548 l 371 548 q 521 589 458 548 q 592 720 592 637 q 527 845 592 801 q 378 889 463 889 "},"\'":{"x_min":0,"x_max":139,"ha":236,"o":"m 139 851 q 102 737 139 784 q 0 669 65 690 l 0 734 q 59 787 42 741 q 72 873 72 821 l 0 873 l 0 1013 l 139 1013 l 139 851 "},"\xaa":{"x_min":0,"x_max":350,"ha":397,"o":"m 350 625 q 307 616 328 616 q 266 631 281 616 q 247 673 251 645 q 190 628 225 644 q 116 613 156 613 q 32 641 64 613 q 0 722 0 669 q 72 826 0 800 q 247 866 159 846 l 247 887 q 220 934 247 916 q 162 953 194 953 q 104 934 129 953 q 76 882 80 915 l 16 882 q 60 976 16 941 q 166 1011 104 1011 q 266 979 224 1011 q 308 891 308 948 l 308 706 q 311 679 308 688 q 331 670 315 670 l 350 672 l 350 625 m 247 757 l 247 811 q 136 790 175 798 q 64 726 64 773 q 83 682 64 697 q 132 667 103 667 q 207 690 174 667 q 247 757 247 718 "},"\u0385":{"x_min":0,"x_max":450,"ha":553,"o":"m 450 800 l 340 800 l 340 925 l 450 925 l 450 800 m 406 1040 l 212 800 l 129 800 l 269 1040 l 406 1040 m 110 800 l 0 800 l 0 925 l 110 925 l 110 800 "},"T":{"x_min":0,"x_max":777,"ha":835,"o":"m 777 894 l 458 894 l 458 0 l 319 0 l 319 894 l 0 894 l 0 1013 l 777 1013 l 777 894 "},"\u03a6":{"x_min":0,"x_max":915,"ha":997,"o":"m 527 0 l 389 0 l 389 122 q 110 231 220 122 q 0 509 0 340 q 110 785 0 677 q 389 893 220 893 l 389 1013 l 527 1013 l 527 893 q 804 786 693 893 q 915 509 915 679 q 805 231 915 341 q 527 122 696 122 l 527 0 m 527 226 q 712 310 641 226 q 779 507 779 389 q 712 705 779 627 q 527 787 641 787 l 527 226 m 389 226 l 389 787 q 205 698 275 775 q 136 505 136 620 q 206 308 136 391 q 389 226 276 226 "},"\u204b":{"x_min":0,"x_max":0,"ha":694},"j":{"x_min":-77.78125,"x_max":167,"ha":349,"o":"m 167 871 l 42 871 l 42 1013 l 167 1013 l 167 871 m 167 -80 q 121 -231 167 -184 q -26 -278 76 -278 l -77 -278 l -77 -164 l -41 -164 q 26 -143 11 -164 q 42 -65 42 -122 l 42 737 l 167 737 l 167 -80 "},"\u03a3":{"x_min":0,"x_max":756.953125,"ha":819,"o":"m 756 0 l 0 0 l 0 107 l 395 523 l 22 904 l 22 1013 l 745 1013 l 745 889 l 209 889 l 566 523 l 187 125 l 756 125 l 756 0 "},"\u203a":{"x_min":18.0625,"x_max":774,"ha":792,"o":"m 774 376 l 18 40 l 18 149 l 631 421 l 18 692 l 18 799 l 774 465 l 774 376 "},"<":{"x_min":17.984375,"x_max":773.609375,"ha":792,"o":"m 773 40 l 18 376 l 17 465 l 773 799 l 773 692 l 159 420 l 773 149 l 773 40 "},"\xa3":{"x_min":0,"x_max":704.484375,"ha":801,"o":"m 704 41 q 623 -10 664 5 q 543 -26 583 -26 q 359 15 501 -26 q 243 36 288 36 q 158 23 197 36 q 73 -21 119 10 l 6 76 q 125 195 90 150 q 175 331 175 262 q 147 443 175 383 l 0 443 l 0 512 l 108 512 q 43 734 43 623 q 120 929 43 854 q 358 1010 204 1010 q 579 936 487 1010 q 678 729 678 857 l 678 684 l 552 684 q 504 838 552 780 q 362 896 457 896 q 216 852 263 896 q 176 747 176 815 q 199 627 176 697 q 248 512 217 574 l 468 512 l 468 443 l 279 443 q 297 356 297 398 q 230 194 297 279 q 153 107 211 170 q 227 133 190 125 q 293 142 264 142 q 410 119 339 142 q 516 96 482 96 q 579 105 550 96 q 648 142 608 115 l 704 41 "},"t":{"x_min":0,"x_max":367,"ha":458,"o":"m 367 0 q 312 -5 339 -2 q 262 -8 284 -8 q 145 28 183 -8 q 108 143 108 64 l 108 638 l 0 638 l 0 738 l 108 738 l 108 944 l 232 944 l 232 738 l 367 738 l 367 638 l 232 638 l 232 185 q 248 121 232 140 q 307 102 264 102 q 345 104 330 102 q 367 107 360 107 l 367 0 "},"\xac":{"x_min":0,"x_max":706,"ha":803,"o":"m 706 411 l 706 158 l 630 158 l 630 335 l 0 335 l 0 411 l 706 411 "},"\u03bb":{"x_min":0,"x_max":750,"ha":803,"o":"m 750 -7 q 679 -15 716 -15 q 538 59 591 -15 q 466 214 512 97 l 336 551 l 126 0 l 0 0 l 270 705 q 223 837 247 770 q 116 899 190 899 q 90 898 100 899 l 90 1004 q 152 1011 125 1011 q 298 938 244 1011 q 373 783 326 901 l 605 192 q 649 115 629 136 q 716 95 669 95 l 736 95 q 750 97 745 97 l 750 -7 "},"W":{"x_min":0,"x_max":1263.890625,"ha":1351,"o":"m 1263 1013 l 995 0 l 859 0 l 627 837 l 405 0 l 265 0 l 0 1013 l 136 1013 l 342 202 l 556 1013 l 701 1013 l 921 207 l 1133 1012 l 1263 1013 "},">":{"x_min":18.0625,"x_max":774,"ha":792,"o":"m 774 376 l 18 40 l 18 149 l 631 421 l 18 692 l 18 799 l 774 465 l 774 376 "},"v":{"x_min":0,"x_max":675.15625,"ha":761,"o":"m 675 738 l 404 0 l 272 0 l 0 738 l 133 737 l 340 147 l 541 737 l 675 738 "},"\u03c4":{"x_min":0.28125,"x_max":644.5,"ha":703,"o":"m 644 628 l 382 628 l 382 179 q 388 120 382 137 q 436 91 401 91 q 474 94 447 91 q 504 97 501 97 l 504 0 q 454 -9 482 -5 q 401 -14 426 -14 q 278 67 308 -14 q 260 233 260 118 l 260 628 l 0 628 l 0 739 l 644 739 l 644 628 "},"\u03be":{"x_min":0,"x_max":624.9375,"ha":699,"o":"m 624 -37 q 608 -153 624 -96 q 563 -278 593 -211 l 454 -278 q 491 -183 486 -200 q 511 -83 511 -126 q 484 -23 511 -44 q 370 1 452 1 q 323 0 354 1 q 283 -1 293 -1 q 84 76 169 -1 q 0 266 0 154 q 56 431 0 358 q 197 538 108 498 q 94 613 134 562 q 54 730 54 665 q 77 823 54 780 q 143 901 101 867 l 27 901 l 27 1012 l 576 1012 l 576 901 l 380 901 q 244 863 303 901 q 178 745 178 820 q 312 600 178 636 q 532 582 380 582 l 532 479 q 276 455 361 479 q 118 281 118 410 q 165 173 118 217 q 274 120 208 133 q 494 101 384 110 q 624 -37 624 76 "},"&":{"x_min":-3,"x_max":894.25,"ha":992,"o":"m 894 0 l 725 0 l 624 123 q 471 0 553 40 q 306 -41 390 -41 q 168 -7 231 -41 q 62 92 105 26 q 14 187 31 139 q -3 276 -3 235 q 55 433 -3 358 q 248 581 114 508 q 170 689 196 640 q 137 817 137 751 q 214 985 137 922 q 384 1041 284 1041 q 548 988 483 1041 q 622 824 622 928 q 563 666 622 739 q 431 556 516 608 l 621 326 q 649 407 639 361 q 663 493 653 426 l 781 493 q 703 229 781 352 l 894 0 m 504 818 q 468 908 504 877 q 384 940 433 940 q 293 907 331 940 q 255 818 255 875 q 289 714 255 767 q 363 628 313 678 q 477 729 446 682 q 504 818 504 771 m 556 209 l 314 499 q 179 395 223 449 q 135 283 135 341 q 146 222 135 253 q 183 158 158 192 q 333 80 241 80 q 556 209 448 80 "},"\u039b":{"x_min":0,"x_max":862.5,"ha":942,"o":"m 862 0 l 719 0 l 426 847 l 143 0 l 0 0 l 356 1013 l 501 1013 l 862 0 "},"I":{"x_min":41,"x_max":180,"ha":293,"o":"m 180 0 l 41 0 l 41 1013 l 180 1013 l 180 0 "},"G":{"x_min":0,"x_max":921,"ha":1011,"o":"m 921 0 l 832 0 l 801 136 q 655 15 741 58 q 470 -28 568 -28 q 126 133 259 -28 q 0 499 0 284 q 125 881 0 731 q 486 1043 259 1043 q 763 957 647 1043 q 905 709 890 864 l 772 709 q 668 866 747 807 q 486 926 589 926 q 228 795 322 926 q 142 507 142 677 q 228 224 142 342 q 483 94 323 94 q 712 195 625 94 q 796 435 796 291 l 477 435 l 477 549 l 921 549 l 921 0 "},"\u03b0":{"x_min":0,"x_max":617,"ha":725,"o":"m 524 800 l 414 800 l 414 925 l 524 925 l 524 800 m 183 800 l 73 800 l 73 925 l 183 925 l 183 800 m 617 352 q 540 93 617 199 q 308 -24 455 -24 q 76 93 161 -24 q 0 352 0 199 l 0 738 l 126 738 l 126 354 q 169 185 126 257 q 312 98 220 98 q 451 185 402 98 q 492 354 492 257 l 492 738 l 617 738 l 617 352 m 489 1040 l 300 819 l 216 819 l 351 1040 l 489 1040 "},"`":{"x_min":0,"x_max":138.890625,"ha":236,"o":"m 138 699 l 0 699 l 0 861 q 36 974 0 929 q 138 1041 72 1020 l 138 977 q 82 931 95 969 q 69 839 69 893 l 138 839 l 138 699 "},"\xb7":{"x_min":0,"x_max":142,"ha":239,"o":"m 142 585 l 0 585 l 0 738 l 142 738 l 142 585 "},"\u03a5":{"x_min":0.328125,"x_max":819.515625,"ha":889,"o":"m 819 1013 l 482 416 l 482 0 l 342 0 l 342 416 l 0 1013 l 140 1013 l 411 533 l 679 1013 l 819 1013 "},"r":{"x_min":0,"x_max":355.5625,"ha":432,"o":"m 355 621 l 343 621 q 179 569 236 621 q 122 411 122 518 l 122 0 l 0 0 l 0 737 l 117 737 l 117 604 q 204 719 146 686 q 355 753 262 753 l 355 621 "},"x":{"x_min":0,"x_max":675,"ha":764,"o":"m 675 0 l 525 0 l 331 286 l 144 0 l 0 0 l 256 379 l 12 738 l 157 737 l 336 473 l 516 738 l 661 738 l 412 380 l 675 0 "},"\u03bc":{"x_min":0,"x_max":696.609375,"ha":747,"o":"m 696 -4 q 628 -14 657 -14 q 498 97 513 -14 q 422 8 470 41 q 313 -24 374 -24 q 207 3 258 -24 q 120 80 157 31 l 120 -278 l 0 -278 l 0 738 l 124 738 l 124 343 q 165 172 124 246 q 308 82 216 82 q 451 177 402 82 q 492 358 492 254 l 492 738 l 616 738 l 616 214 q 623 136 616 160 q 673 92 636 92 q 696 95 684 92 l 696 -4 "},"h":{"x_min":0,"x_max":615,"ha":724,"o":"m 615 472 l 615 0 l 490 0 l 490 454 q 456 590 490 535 q 338 654 416 654 q 186 588 251 654 q 122 436 122 522 l 122 0 l 0 0 l 0 1013 l 122 1013 l 122 633 q 218 727 149 694 q 362 760 287 760 q 552 676 484 760 q 615 472 615 600 "},".":{"x_min":0,"x_max":142,"ha":239,"o":"m 142 0 l 0 0 l 0 151 l 142 151 l 142 0 "},"\u03c6":{"x_min":-2,"x_max":878,"ha":974,"o":"m 496 -279 l 378 -279 l 378 -17 q 101 88 204 -17 q -2 367 -2 194 q 68 626 -2 510 q 283 758 151 758 l 283 646 q 167 537 209 626 q 133 373 133 462 q 192 177 133 254 q 378 93 259 93 l 378 758 q 445 764 426 763 q 476 765 464 765 q 765 659 653 765 q 878 377 878 553 q 771 96 878 209 q 496 -17 665 -17 l 496 -279 m 496 93 l 514 93 q 687 183 623 93 q 746 380 746 265 q 691 569 746 491 q 522 658 629 658 l 496 656 l 496 93 "},";":{"x_min":0,"x_max":142,"ha":239,"o":"m 142 585 l 0 585 l 0 738 l 142 738 l 142 585 m 142 -12 q 105 -132 142 -82 q 0 -206 68 -182 l 0 -138 q 58 -82 43 -123 q 68 0 68 -56 l 0 0 l 0 151 l 142 151 l 142 -12 "},"f":{"x_min":0,"x_max":378,"ha":472,"o":"m 378 638 l 246 638 l 246 0 l 121 0 l 121 638 l 0 638 l 0 738 l 121 738 q 137 935 121 887 q 290 1028 171 1028 q 320 1027 305 1028 q 378 1021 334 1026 l 378 908 q 323 918 346 918 q 257 870 273 918 q 246 780 246 840 l 246 738 l 378 738 l 378 638 "},"\u201c":{"x_min":1,"x_max":348.21875,"ha":454,"o":"m 140 670 l 1 670 l 1 830 q 37 943 1 897 q 140 1011 74 990 l 140 947 q 82 900 97 940 q 68 810 68 861 l 140 810 l 140 670 m 348 670 l 209 670 l 209 830 q 245 943 209 897 q 348 1011 282 990 l 348 947 q 290 900 305 940 q 276 810 276 861 l 348 810 l 348 670 "},"A":{"x_min":0.03125,"x_max":906.953125,"ha":1008,"o":"m 906 0 l 756 0 l 648 303 l 251 303 l 142 0 l 0 0 l 376 1013 l 529 1013 l 906 0 m 610 421 l 452 867 l 293 421 l 610 421 "},"\u2018":{"x_min":1,"x_max":139.890625,"ha":236,"o":"m 139 670 l 1 670 l 1 830 q 37 943 1 897 q 139 1011 74 990 l 139 947 q 82 900 97 940 q 68 810 68 861 l 139 810 l 139 670 "},"\u03ca":{"x_min":-70,"x_max":283,"ha":361,"o":"m 283 800 l 173 800 l 173 925 l 283 925 l 283 800 m 40 800 l -70 800 l -70 925 l 40 925 l 40 800 m 283 3 q 232 -10 257 -5 q 181 -15 206 -15 q 84 26 118 -15 q 41 200 41 79 l 41 737 l 166 737 l 167 215 q 171 141 167 157 q 225 101 182 101 q 247 103 238 101 q 283 112 256 104 l 283 3 "},"\u03c0":{"x_min":-0.21875,"x_max":773.21875,"ha":857,"o":"m 773 -7 l 707 -11 q 575 40 607 -11 q 552 174 552 77 l 552 226 l 552 626 l 222 626 l 222 0 l 97 0 l 97 626 l 0 626 l 0 737 l 773 737 l 773 626 l 676 626 l 676 171 q 695 103 676 117 q 773 90 714 90 l 773 -7 "},"\u03ac":{"x_min":0,"x_max":765.5625,"ha":809,"o":"m 765 -4 q 698 -14 726 -14 q 564 97 586 -14 q 466 7 525 40 q 337 -26 407 -26 q 88 98 186 -26 q 0 369 0 212 q 88 637 0 525 q 337 760 184 760 q 465 727 407 760 q 563 637 524 695 l 563 738 l 685 738 l 685 222 q 693 141 685 168 q 748 94 708 94 q 765 95 760 94 l 765 -4 m 584 371 q 531 562 584 485 q 360 653 470 653 q 192 566 254 653 q 135 379 135 489 q 186 181 135 261 q 358 84 247 84 q 528 176 465 84 q 584 371 584 260 m 604 1040 l 415 819 l 332 819 l 466 1040 l 604 1040 "},"O":{"x_min":0,"x_max":958,"ha":1057,"o":"m 485 1041 q 834 882 702 1041 q 958 512 958 734 q 834 136 958 287 q 481 -26 702 -26 q 126 130 261 -26 q 0 504 0 279 q 127 880 0 728 q 485 1041 263 1041 m 480 98 q 731 225 638 98 q 815 504 815 340 q 733 783 815 669 q 480 912 640 912 q 226 784 321 912 q 142 504 142 670 q 226 224 142 339 q 480 98 319 98 "},"n":{"x_min":0,"x_max":615,"ha":724,"o":"m 615 463 l 615 0 l 490 0 l 490 454 q 453 592 490 537 q 331 656 410 656 q 178 585 240 656 q 117 421 117 514 l 117 0 l 0 0 l 0 738 l 117 738 l 117 630 q 218 728 150 693 q 359 764 286 764 q 552 675 484 764 q 615 463 615 593 "},"l":{"x_min":41,"x_max":166,"ha":279,"o":"m 166 0 l 41 0 l 41 1013 l 166 1013 l 166 0 "},"\xa4":{"x_min":40.09375,"x_max":728.796875,"ha":825,"o":"m 728 304 l 649 224 l 512 363 q 383 331 458 331 q 256 363 310 331 l 119 224 l 40 304 l 177 441 q 150 553 150 493 q 184 673 150 621 l 40 818 l 119 898 l 267 749 q 321 766 291 759 q 384 773 351 773 q 447 766 417 773 q 501 749 477 759 l 649 898 l 728 818 l 585 675 q 612 618 604 648 q 621 553 621 587 q 591 441 621 491 l 728 304 m 384 682 q 280 643 318 682 q 243 551 243 604 q 279 461 243 499 q 383 423 316 423 q 487 461 449 423 q 525 553 525 500 q 490 641 525 605 q 384 682 451 682 "},"\u03ba":{"x_min":0,"x_max":632.328125,"ha":679,"o":"m 632 0 l 482 0 l 225 384 l 124 288 l 124 0 l 0 0 l 0 738 l 124 738 l 124 446 l 433 738 l 596 738 l 312 466 l 632 0 "},"p":{"x_min":0,"x_max":685,"ha":786,"o":"m 685 364 q 598 96 685 205 q 350 -23 504 -23 q 121 89 205 -23 l 121 -278 l 0 -278 l 0 738 l 121 738 l 121 633 q 220 726 159 691 q 351 761 280 761 q 598 636 504 761 q 685 364 685 522 m 557 371 q 501 560 557 481 q 330 651 437 651 q 162 559 223 651 q 108 366 108 479 q 162 177 108 254 q 333 87 224 87 q 502 178 441 87 q 557 371 557 258 "},"\u2021":{"x_min":0,"x_max":777,"ha":835,"o":"m 458 238 l 458 0 l 319 0 l 319 238 l 0 238 l 0 360 l 319 360 l 319 681 l 0 683 l 0 804 l 319 804 l 319 1015 l 458 1013 l 458 804 l 777 804 l 777 683 l 458 683 l 458 360 l 777 360 l 777 238 l 458 238 "},"\u03c8":{"x_min":0,"x_max":808,"ha":907,"o":"m 465 -278 l 341 -278 l 341 -15 q 87 102 180 -15 q 0 378 0 210 l 0 739 l 133 739 l 133 379 q 182 195 133 275 q 341 98 242 98 l 341 922 l 465 922 l 465 98 q 623 195 563 98 q 675 382 675 278 l 675 742 l 808 742 l 808 381 q 720 104 808 213 q 466 -13 627 -13 l 465 -278 "},"\u03b7":{"x_min":0.78125,"x_max":697,"ha":810,"o":"m 697 -278 l 572 -278 l 572 454 q 540 587 572 536 q 425 650 501 650 q 271 579 337 650 q 206 420 206 509 l 206 0 l 81 0 l 81 489 q 73 588 81 562 q 0 644 56 644 l 0 741 q 68 755 38 755 q 158 720 124 755 q 200 630 193 686 q 297 726 234 692 q 434 761 359 761 q 620 692 544 761 q 697 516 697 624 l 697 -278 "}},"cssFontWeight":"normal","ascender":1189,"underlinePosition":-100,"cssFontStyle":"normal","boundingBox":{"yMin":-334,"xMin":-111,"yMax":1189,"xMax":1672},"resolution":1000,"original_font_information":{"postscript_name":"Helvetiker-Regular","version_string":"Version 1.00 2004 initial release","vendor_url":"http://www.magenta.gr/","full_font_name":"Helvetiker","font_family_name":"Helvetiker","copyright":"Copyright (c) \u039cagenta ltd, 2004","description":"","trademark":"","designer":"","designer_url":"","unique_font_identifier":"\u039cagenta ltd:Helvetiker:22-10-104","license_url":"http://www.ellak.gr/fonts/MgOpen/license.html","license_description":"Copyright (c) 2004 by MAGENTA Ltd. All Rights Reserved.\\r\\n\\r\\nPermission is hereby granted, free of charge, to any person obtaining a copy of the fonts accompanying this license (\\"Fonts\\") and associated documentation files (the \\"Font Software\\"), to reproduce and distribute the Font Software, including without limitation the rights to use, copy, merge, publish, distribute, and/or sell copies of the Font Software, and to permit persons to whom the Font Software is furnished to do so, subject to the following conditions: \\r\\n\\r\\nThe above copyright and this permission notice shall be included in all copies of one or more of the Font Software typefaces.\\r\\n\\r\\nThe Font Software may be modified, altered, or added to, and in particular the designs of glyphs or characters in the Fonts may be modified and additional glyphs or characters may be added to the Fonts, only if the fonts are renamed to names not containing the word \\"MgOpen\\", or if the modifications are accepted for inclusion in the Font Software itself by the each appointed Administrator.\\r\\n\\r\\nThis License becomes null and void to the extent applicable to Fonts or Font Software that has been modified and is distributed under the \\"MgOpen\\" name.\\r\\n\\r\\nThe Font Software may be sold as part of a larger software package but no copy of one or more of the Font Software typefaces may be sold by itself. \\r\\n\\r\\nTHE FONT SOFTWARE IS PROVIDED \\"AS IS\\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL MAGENTA OR PERSONS OR BODIES IN CHARGE OF ADMINISTRATION AND MAINTENANCE OF THE FONT SOFTWARE BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.","manufacturer_name":"\u039cagenta ltd","font_sub_family_name":"Regular"},"descender":-334,"familyName":"Helvetiker","lineHeight":1522,"underlineThickness":50}');let el=(()=>{class n{constructor(t,i=!0){this.cartesianGridConfig={showXY:!0,showYZ:!0,showZX:!0,xDistance:0,yDistance:0,zDistance:0,sparsity:2},this.useCameraLight=!0,this.textFont=new Lq(EAe),this.labelTextLookCallbacks={},this.axesNumbers=[],this.getScene(),this.ignoreList=t,this.axis=null,this.setLights(i)}setLights(t=!0){this.useCameraLight=t;const i=new KI(16777215,1.2);this.scene.add(i),this.useCameraLight?(this.cameraLight=new uC(16777215,.9),this.cameraLight.position.set(0,0,10),this.scene.add(this.cameraLight)):[[-100,-50,100],[100,50,-100],[-100,50,-100],[100,-50,100]].forEach(r=>{const s=new uC(16777215,.2);s.position.set(r[0],r[1],r[2]),this.scene.add(s)})}updateLights(t){this.useCameraLight&&this.cameraLight.position.copy(t.position)}getScene(){return this.scene||(this.scene=new XS),this.scene}getCleanScene(){const t=this.scene.clone(),i=[];return t.traverse(r=>{this.ignoreList.includes(r.type)&&i.push(r)}),t.remove(...i),t}setGeometryOpacity(t,i){i&&t&&t.traverse(r=>{r?.material&&(r.material.transparent=!0,r.material.opacity=i)})}changeObjectColor(t,i){t&&t.traverse(r=>{(r instanceof ua||r instanceof hc)&&(r.material instanceof mg||r.material instanceof xd||r.material instanceof Dc)&&r.material.color.set(i)})}objectVisibility(t,i){t&&(t.visible=i,t.traverse(r=>{i?(r.layers.enable(0),r.layers.disable(1)):(r.layers.disable(0),r.layers.enable(1))}))}getObjectPosition(t){var i;return null===(i=this.scene.getObjectByName(t))||void 0===i?void 0:i.position}removeGeometry(t){this.getGeometries().remove(t)}removeLabel(t){const i=this.scene.getObjectByName(t);this.getObjectsGroup(n.LABELS_ID).remove(i)}scaleObject(t,i){t.scale.setScalar(i)}addEventDataTypeGroup(t){const i=this.getEventData();let r=this.scene.getObjectByName(t);return r||(r=new Wl),r.name=t,i.add(r),r}collectionFilter(t,i){const r=this.getScene().getObjectByName(n.EVENT_DATA_ID).getObjectByName(t);for(const s of Object.values(r.children))if(s.userData)for(const o of i){const l=s.userData[o.field];if(l){if(!o.cutPassed(l)){s.visible=!1;break}s.visible=!0}}}groupVisibility(t,i,r){const o=(r?this.scene.getObjectByName(r):this.scene).getObjectByName(t);for(const l of Object.values(o.children))l.visible=i}getObjectsGroup(t){let i=this.scene.getObjectByName(t);return null==i&&(i=new Wl,i.name=t,this.scene.add(i)),i}getEventData(){return this.getObjectsGroup(n.EVENT_DATA_ID)}getGeometries(){return this.getObjectsGroup(n.GEOMETRIES_ID)}clearEventData(){const t=this.getEventData();null!=t&&this.scene.remove(t),this.getEventData()}getText(t,i){const r=new CAe(t,{font:this.textFont,size:60,curveSegments:1,height:1});return new ua(r,new xd({color:new Cr(i)}))}setAxis(t,i=2e3,r=!0){if(null==this.axis){this.axis=new Wl;const s=new Cr(14037811),o=new Cr(3397171),l=new Cr(3355606),d=new Dc({color:s}),u=new Dc({color:o}),f=new Dc({color:l});let A=[new It(-i,0,0),new It(i,0,0)],S=(new no).setFromPoints(A);const R=new hc(S,d);this.axis.add(R),A=[new It(0,-i,0),new It(0,i,0)],S=(new no).setFromPoints(A);const G=new hc(S,u);this.axis.add(G),A=[new It(0,0,-i),new It(0,0,i)],S=(new no).setFromPoints(A);const re=new hc(S,f);this.axis.add(re),this.axis.name="gridline",this.axis.traverse(se=>se.name="gridline"),this.scene.add(this.axis)}if(this.axis.visible=t,r&&null==this.axisLabels){this.axisLabels=new Wl;const s=["X [cm]","Y [cm]","Z [cm]"],o=[16711680,65280,255];let l=0;for(const d of s){const u=this.getText(d,new Cr(o[l++]));this.axisLabels.add(u)}this.axisLabels.children[0].position.set(i+200,0,0),this.axisLabels.children[1].position.set(0,i+200,0),this.axisLabels.children[2].position.set(0,0,i+200),this.axisLabels.name="XYZ Labels",this.axisLabels.traverse(d=>d.name="XYZ Labels"),this.scene.add(this.axisLabels)}this.axisLabels.visible=t}createCartesianGrid(t=3e3){if(null==this.cartesianGrid){this.cartesianGrid=new Wl;const i=new Cr(14037811),r=new Cr(3397171),s=new Cr(3355606),o=new $b({color:i,dashSize:.5,gapSize:.1,scale:.01}),l=new $b({color:r,dashSize:.5,gapSize:.1,scale:.01}),d=new $b({color:s,dashSize:.5,gapSize:.1,scale:.01});let u=new Wl;for(let S=-t;S<=t;S+=.1*t){u=new Wl;let R=[];for(let le=-t;le<=t;le+=.1*t)R.push(new It(-t,le,S)),R.push(new It(t,le,S));let G=(new no).setFromPoints(R);const re=d;let se=new hc(G,re);se.computeLineDistances(),u.add(se),R=[];for(let le=-t;le<=t;le+=.1*t)R.push(new It(le,-t,S)),R.push(new It(le,t,S));G=(new no).setFromPoints(R),se=new hc(G,re),se.computeLineDistances(),u.add(se),this.cartesianGrid.add(u)}let f=new Wl;for(let S=-t;S<=t;S+=.1*t){f=new Wl;let R=[];for(let le=-t;le<=t;le+=.1*t)R.push(new It(S,le,-t)),R.push(new It(S,le,t));let G=(new no).setFromPoints(R);const re=o;let se=new hc(G,re);se.computeLineDistances(),f.add(se),R=[];for(let le=-t;le<=t;le+=.1*t)R.push(new It(S,-t,le)),R.push(new It(S,t,le));G=(new no).setFromPoints(R),se=new hc(G,re),se.computeLineDistances(),f.add(se),this.cartesianGrid.add(f)}let A=new Wl;for(let S=-t;S<=t;S+=.1*t){A=new Wl;let R=[];for(let le=-t;le<=t;le+=.1*t)R.push(new It(le,S,-t)),R.push(new It(le,S,t));let G=(new no).setFromPoints(R);const re=l;let se=new hc(G,re);se.computeLineDistances(),A.add(se),R=[];for(let le=-t;le<=t;le+=.1*t)R.push(new It(-t,S,le)),R.push(new It(t,S,le));G=(new no).setFromPoints(R),se=new hc(G,re),se.computeLineDistances(),A.add(se),this.cartesianGrid.add(A)}this.cartesianGrid.name="gridline",this.cartesianGrid.traverse(S=>S.name="gridline"),this.cartesianGrid.children.forEach(S=>S.visible=!1),this.scene.add(this.cartesianGrid)}}setCartesianGrid(t,i,r){this.createCartesianGrid(i);for(let d=0;d<=62;d+=1)this.cartesianGrid.children[d].visible=!1;typeof r>"u"?r=this.cartesianGridConfig:this.cartesianGridConfig=r;const s=[10,31,52],o=[r.zDistance,r.xDistance,r.yDistance],l=[r.showXY,r.showYZ,r.showZX];if(t)for(let d=0;d<3;d+=1)if(l[d]){for(let u=s[d];u>=s[d]-10*o[d]/i;u-=r.sparsity)this.cartesianGrid.children[u].visible=t;for(let u=s[d];u<=s[d]+10*o[d]/i;u+=r.sparsity)this.cartesianGrid.children[u].visible=t}}getCartesianGridConfig(){return this.cartesianGridConfig}eventDataDepthTest(t){const i=this.getEventData();null!==i&&i.traverse(r=>{r.material&&(r.renderOrder=t?0:999,r.material.depthTest=t)})}wireframeGeometries(t){this.getGeometries().traverse(r=>{r.material&&(r.material.wireframe=t,t?(r.material.transparent=!0,r.material.opacity=.1):(r.material.transparent=!1,r.material.opacity=1))})}wireframeObjects(t,i){t.traverse(r=>{r.material&&(r.material.wireframe=i)})}scaleJets(t){t<=0||this.scene.getObjectByName("Jets").traverse(r=>{if("Jet"===r.name){const s=r.scale.x;r.scale.setScalar(t),r.position.divideScalar(s).multiplyScalar(t)}})}scaleChildObjects(t,i,r){this.scene.getObjectByName(t).traverse(o=>{0===o.children.length&&(r?o.scale[r]=i:o.scale.setScalar(i))})}addLabelToObject(t,i,r,s,o){this.scene.getObjectByProperty("uuid",i).userData.label=t;const d=this.getObjectsGroup(n.LABELS_ID),u=this.scene.getObjectByName(r);u&&d.remove(u);const f=this.getText(t,new Cr("#a8a8a8"));f.position.fromArray(s.toArray()),f.name=r,d.add(f),o.removeEventListener("change",this.labelTextLookCallbacks[i]),this.labelTextLookCallbacks[i]=()=>{f.lookAt(o.object.position)},this.labelTextLookCallbacks[i](),o.addEventListener("change",this.labelTextLookCallbacks[i])}translateCartesianGrid(t){this.createCartesianGrid();const i=t.length(),r=t.normalize();this.cartesianGrid.translateOnAxis(r,i)}translateCartesianLabels(t){this.createCartesianLabels();const i=t.length(),r=t.normalize();this.cartesianLabels.translateOnAxis(r,i),this.axis.translateOnAxis(r,i),this.axisLabels.translateOnAxis(r,i)}createCartesianLabels(t=3e3){if(null==this.cartesianLabels){this.cartesianLabels=new Wl,this.cartesianLabels.name="XYZ Labels";const i=new Cr(14037811),r=new Cr(3397171),s=new Cr(3355606),o=new xd({color:i,side:2}),l=new xd({color:r,side:2}),d=new xd({color:s,side:2});for(let u=-t;u<=t;u+=.1*t){const f=this.getText((u/10).toString(),i);f.position.set(u,40,0),this.axesNumbers.push(f),this.cartesianLabels.add(f);const A=new yp(10,30,10);A.translate(u,0,0);const S=new ua(A,o);this.cartesianLabels.add(S)}for(let u=-t;u<=t;u+=.1*t){const f=this.getText((u/10).toString(),r);f.position.set(-40,u,0),this.axesNumbers.push(f),this.cartesianLabels.add(f);const A=new yp(30,10,10);A.translate(0,u,0);const S=new ua(A,l);this.cartesianLabels.add(S)}for(let u=-t;u<=t;u+=.1*t){const f=this.getText((u/10).toString(),s);f.position.set(-40,0,u),this.axesNumbers.push(f),this.cartesianLabels.add(f);const A=new yp(30,10,10);A.translate(0,0,u);const S=new ua(A,d);this.cartesianLabels.add(S)}this.cartesianLabels.traverse(u=>u.name="XYZ Labels"),this.scene.add(this.cartesianLabels),this.cartesianLabels.children.forEach(u=>u.visible=!1),this.setAxis(!1,3e3)}}alignText(t){null!=this.cartesianLabels&&this.axesNumbers.forEach(i=>{i.lookAt(t.position)}),null!=this.axisLabels&&this.axisLabels.children.forEach(i=>i.lookAt(t.position))}showLabels(t){this.createCartesianLabels(),this.setAxis(t,3e3),this.cartesianLabels.children.forEach(i=>i.visible=t)}setEtaPhiGrid(t,i=3e3){if(null==this.etaPhiGrid){this.etaPhiGrid=new Wl;let r=[];const s=i,o=new Cr(255);for(let Ee=-3;Ee<=3;Ee+=1){r.push(new It(0,0,0));const Ce=Ff.etaPhiToCartesian(s,Ee,Math.PI/2),We=this.getText("\u03b7="+Ee.toPrecision(2),o);We.position.set(Ce.x,Ce.y,Ce.z),We.rotateOnWorldAxis(new It(0,1,0),Math.PI/2),this.etaPhiGrid.add(We),r.push(Ce)}const l=(new no).setFromPoints(r),d=new $b({color:o,dashSize:2,gapSize:1,scale:.01}),u=new hc(l,d);u.computeLineDistances();const f=2*Math.PI/8,A=["-\u03c0","-3\u03c0/4","-\u03c0/2,","-\u03c0/4","0","\u03c0/4","\u03c0/2,","3\u03c0/4"];let S=0;const R=new Cr(16711680);r=[];const G=.9*s;for(let Ee=-Math.PI;EeEe.name="gridline"),this.scene.add(this.etaPhiGrid)}this.etaPhiGrid.visible=t}getObjectByName(t){return this.scene.getObjectByName(t)}}return n.EVENT_DATA_ID="EventData",n.GEOMETRIES_ID="Geometries",n.LABELS_ID="Labels",n})();class Nq extends no{constructor(){super(),this.type="TracksMesh",this.positions=[],this.previous=[],this.next=[],this.side=[],this.counter=[],this.track_id=[],this.colors=[],this.indices_array=[],this.next_track_id=0}addTrack(e,t){const i=this.next_track_id++,r=new Cr(t);this.previous.push(e[0].x,e[0].y,e[0].z),this.previous.push(e[0].x,e[0].y,e[0].z);for(let o=0;o0&&(this.next.push(l.x,l.y,l.z),this.next.push(l.x,l.y,l.z))}const s=e.length-1;return this.next.push(e[s].x,e[s].y,e[s].z),this.next.push(e[s].x,e[s].y,e[s].z),i}process(){this._attributes&&this._attributes.position.count===this.positions.length?(this._attributes.position.copyArray(new Float32Array(this.positions)),this._attributes.position.needsUpdate=!0,this._attributes.previous.copyArray(new Float32Array(this.previous)),this._attributes.previous.needsUpdate=!0,this._attributes.next.copyArray(new Float32Array(this.next)),this._attributes.next.needsUpdate=!0,this._attributes.side.copyArray(new Float32Array(this.side)),this._attributes.side.needsUpdate=!0,this._attributes.track_id.copyArray(new Int32Array(this.track_id)),this._attributes.track_id.needsUpdate=!0,this._attributes.color.copyArray(new Float32Array(this.colors)),this._attributes.color.needsUpdate=!0,this._attributes.counter.copyArray(new Float32Array(this.counter)),this._attributes.counter.needsUpdate=!0,this._attributes.index.copyArray(new Uint32Array(this.indices_array)),this._attributes.index.needsUpdate=!0):this._attributes={position:new No(new Float32Array(this.positions),3),previous:new No(new Float32Array(this.previous),3),next:new No(new Float32Array(this.next),3),side:new No(new Float32Array(this.side),1),track_id:new No(new Int32Array(this.track_id),1),color:new No(new Float32Array(this.colors),3),counter:new No(new Float32Array(this.counter),1),index:new No(new Uint32Array(this.indices_array),1)},this.setAttribute("position",this._attributes.position),this.setAttribute("previous",this._attributes.previous),this.setAttribute("next",this._attributes.next),this.setAttribute("side",this._attributes.side),this.setAttribute("track_id",this._attributes.track_id),this.setAttribute("color",this._attributes.color),this.setAttribute("counter",this._attributes.counter),this.setIndex(this._attributes.index),this.computeBoundingSphere(),this.computeBoundingBox()}}xa.tracks_vert=["attribute vec3 previous;","attribute vec3 next;","attribute int track_id;","attribute float side;","attribute vec3 color;","attribute float counter;","varying vec3 v_color;","varying float v_counter;","flat varying int v_track_id;","uniform vec2 resolution;","uniform float lineWidth;","void main() {"," vec2 aspect = vec2(resolution.x / resolution.y, 1.0);",""," v_color = color;"," v_counter = counter;"," v_track_id = track_id;",""," mat4 m = projectionMatrix * modelViewMatrix;"," vec4 finalPosition = m * vec4(position, 1.0);"," vec4 prevPos = m * vec4(previous, 1.0);"," vec4 nextPos = m * vec4(next, 1.0);",""," vec2 curP = finalPosition.xy / finalPosition.w * aspect;"," vec2 prevP = prevPos.xy / prevPos.w * aspect;"," vec2 nextP = nextPos.xy / nextPos.w * aspect;",""," vec2 dir;"," if (curP == prevP) dir = normalize(nextP - curP);"," else if (curP == nextP) dir = normalize(curP - prevP);"," else dir = normalize(curP - prevP);",""," vec2 normal = vec2(-dir.y, dir.x);"," normal.xy *= .5 * lineWidth;"," normal.x /= aspect.x;"," normal.xy *= finalPosition.w * 0.001;"," finalPosition.xy += normal.xy * side;"," gl_Position = finalPosition;","}"].join("\n"),xa.tracks_frag=["uniform float progress;","varying vec3 v_color;","varying float v_counter;","flat varying int v_track_id;","void main() {"," if (v_counter > progress) discard;"," gl_FragColor = vec4(v_color, 1.0);","}"].join("\n");class TAe extends Du{constructor(e){super({uniforms:Object.assign({},{lineWidth:{value:1},resolution:{value:new Qi(1,1)},progress:{value:1}}),vertexShader:xa.tracks_vert,fragmentShader:xa.tracks_vert}),this.isTracksMaterial=!0,this.type="TracksMaterial",Object.defineProperties(this,{lineWidth:{enumerable:!0,get:function(){return this.uniforms.lineWidth.value},set:function(t){this.uniforms.lineWidth.value=t}},resolution:{enumerable:!0,get:function(){return this.uniforms.resolution.value},set:function(t){this.uniforms.resolution.value.copy(t)}},progress:{enumerable:!0,get:function(){return this.uniforms.progress.value},set:function(t){this.uniforms.progress.value=t}}}),this.setValues(e)}}class DAe{constructor(e,t,i){this.scene=e,this.activeCamera=t,this.rendererManager=i,this.animateEvent=this.animateEvent.bind(this),this.animateEventWithClipping=this.animateEventWithClipping.bind(this)}getCameraTween(e,t=1e3,i){const r=new If(this.activeCamera.position).to({x:e[0],y:e[1],z:e[2]},t);return i&&r.easing(i),r}animateThroughEvent(e,t,i){const r=this.getCameraTween(e,1e3,cg.Cubic.Out),o=this.getCameraTween([0,0,e[2]],t),f=3*Math.PI/24,A=[];for(let Ce=1;Ce<=24;Ce++)A.push([500*Math.sin(f*Ce),0,500*Math.cos(f*Ce)]);const S=this.getCameraTween([0,0,500],t,cg.Cubic.Out);let R=S;const re=4*t/24;for(const Ce of A){const We=this.getCameraTween(Ce,re);R.chain(We),R=We}const le=this.getCameraTween([0,0,-e[2]],t,cg.Cubic.In),Ee=this.getCameraTween(e,t,cg.Cubic.Out);Ee.onComplete(()=>i?.()),Ee.delay(500),r.chain(o),o.chain(S),R.chain(le),le.chain(Ee),r.start()}animateEvent(e,t,i){const r=.25*e;e*=.75;const s=this.scene.getObjectByName(el.EVENT_DATA_ID),o=new ju(new It,0),l=[],d=[];s.traverse(S=>{var R,G,re;if(S.geometry)if("Track"===S.name||"LineHit"===S.name){let se=null===(re=null===(G=null===(R=S.geometry)||void 0===R?void 0:R.attributes)||void 0===G?void 0:G.position)||void 0===re?void 0:re.count;if(se)if(S.geometry instanceof jb&&(se*=6),S.geometry instanceof Nq){S.material.progress=0;const le=new If(S.material).to({progress:1},e);le.onComplete(()=>{S.material.progress=1}),d.push(le)}else if(S.geometry instanceof no){const le=S.geometry.drawRange.count;S.geometry.setDrawRange(0,0);const Ee=new If(S.geometry.drawRange).to({count:se},e);Ee.onComplete(()=>{S.geometry.drawRange.count=le}),d.push(Ee)}}else if("Jet"===S.name){const se=new If({x:.01,y:.01,z:.01}).to({x:S.scale.x,y:S.scale.y,z:S.scale.z},e);se.onUpdate(le=>{const Ee=S.scale.x;S.scale.setScalar(le.x),S.position.divideScalar(Ee).multiplyScalar(le.x)}),d.push(se)}else{let le=S.position.equals(new It(0,0,0))?S.geometry.boundingSphere.center:S.position;"Hit"===S.name?(le=Array.from(S.geometry.attributes.position.array),S.geometry.deleteAttribute("position"),S.geometry.computeBoundingSphere()):S.visible=!1,l.push({eventObject:S,position:le})}});const u=new If(o).to({radius:3e3},e),f=S=>{l.forEach(R=>{if("Hit"===R.eventObject.name){const G=R.eventObject.geometry,se=this.getHitsPositions(R.position).filter(le=>S.containsPoint((new It).fromArray(le)));se.length>0&&(G.setAttribute("position",new No(new Float32Array([].concat(...se)),3)),G.computeBoundingSphere())}else S.containsPoint(R.position)&&(R.eventObject.visible=!0)})};u.onUpdate(f);const A=new If(o).to({radius:1e4},r);A.onUpdate(f),u.chain(A),d.push(u),d[0].onStart(()=>i?.());for(const S of d)S.easing(cg.Quartic.Out).start();A.onComplete(()=>{f(new ju(new It,1/0)),t?.()})}animateEventWithClipping(e,t,i,r=11e3){const s=this.scene.getObjectByName(el.EVENT_DATA_ID),o=new qy(1,8,8),l=[],d=o.attributes.position,u=new It;for(let S=0;S{S.geometry&&S.material&&(S.material.clippingPlanes=l)});const A=[];for(const S of l){S.constant=0;const R=new If(S).to({constant:r},e);A.push(R)}A[0].onStart(()=>i?.());for(const S of A)S.start();A[A.length-1].onComplete(()=>{f||(this.rendererManager.getMainRenderer().localClippingEnabled=f),s.traverse(S=>{S.geometry&&S.material&&(S.material.clippingPlanes=null)}),t?.()})}collideParticles(e,t=10,i=5e3,r=new Cr(16777215),s){const o=new qy(t,32,32),l=new xd({color:r,transparent:!0,opacity:0}),d=new ua(o,l),u=d.clone();d.position.setZ(i),u.position.setZ(-i);const f=[d,u];this.scene.add(...f);const A=[];for(const S of f){new If(S.material).to({opacity:1},300).start();const R=new If(S.position).to({z:0},e).start();A.push(R)}A[0].onComplete(()=>{this.scene.remove(...f),s?.()})}animateWithCollision(e,t,i){var r,s;const o=this.scene.getObjectByName(el.EVENT_DATA_ID),l=o.getObjectByName("Track");let d;d=l instanceof Wl?null===(s=null===(r=l.children[0])||void 0===r?void 0:r.material)||void 0===s?void 0:s.color:l?.material.color,o&&(o.visible=!1),this.collideParticles(1500,30,5e3,d,()=>{e(t,i,()=>{o&&(o.visible=!0)})})}animateEventWithCollision(e,t){this.animateWithCollision(this.animateEvent,e,t)}animateClippingWithCollision(e,t){this.animateWithCollision(this.animateEventWithClipping,e,t)}getHitsPositions(e){const t=[];for(let i=0;i{this.animateEventWithCollision(o)},s));const l=this.getCameraTween(r[0].position,null!==(i=r[0].duration)&&void 0!==i?i:2e3,r[0].easing);let d=l;r.slice(1).forEach(({position:u,duration:f,easing:A})=>{const S=this.getCameraTween(u,f??2e3,A);d.chain(S),d=S}),d.onComplete(t),l.start()}}const Uq={name:"CopyShader",uniforms:{tDiffuse:{value:null},opacity:{value:1}},vertexShader:"\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvUv = uv;\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n\t\t}",fragmentShader:"\n\n\t\tuniform float opacity;\n\n\t\tuniform sampler2D tDiffuse;\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvec4 texel = texture2D( tDiffuse, vUv );\n\t\t\tgl_FragColor = opacity * texel;\n\n\n\t\t}"};class fE{constructor(){this.isPass=!0,this.enabled=!0,this.needsSwap=!0,this.clear=!1,this.renderToScreen=!1}setSize(){}render(){console.error("THREE.Pass: .render() must be implemented in derived pass.")}dispose(){}}const IAe=new Q2(-1,1,1,-1,0,1),PAe=new class BAe extends no{constructor(){super(),this.setAttribute("position",new Ws([-1,3,0,-1,-1,0,3,-1,0],3)),this.setAttribute("uv",new Ws([0,2,0,0,2,0],2))}};class zq{constructor(e){this._mesh=new ua(PAe,e)}dispose(){this._mesh.geometry.dispose()}render(e){e.render(this._mesh,IAe)}get material(){return this._mesh.material}set material(e){this._mesh.material=e}}class RAe extends fE{constructor(e,t){super(),this.textureID=void 0!==t?t:"tDiffuse",e instanceof Du?(this.uniforms=e.uniforms,this.material=e):e&&(this.uniforms=x5.clone(e.uniforms),this.material=new Du({name:void 0!==e.name?e.name:"unspecified",defines:Object.assign({},e.defines),uniforms:this.uniforms,vertexShader:e.vertexShader,fragmentShader:e.fragmentShader})),this.fsQuad=new zq(this.material)}render(e,t,i){this.uniforms[this.textureID]&&(this.uniforms[this.textureID].value=i.texture),this.fsQuad.material=this.material,this.renderToScreen?(e.setRenderTarget(null),this.fsQuad.render(e)):(e.setRenderTarget(t),this.clear&&e.clear(e.autoClearColor,e.autoClearDepth,e.autoClearStencil),this.fsQuad.render(e))}dispose(){this.material.dispose(),this.fsQuad.dispose()}}class Hq extends fE{constructor(e,t){super(),this.scene=e,this.camera=t,this.clear=!0,this.needsSwap=!1,this.inverse=!1}render(e,t,i){const r=e.getContext(),s=e.state;let o,l;s.buffers.color.setMask(!1),s.buffers.depth.setMask(!1),s.buffers.color.setLocked(!0),s.buffers.depth.setLocked(!0),this.inverse?(o=0,l=1):(o=1,l=0),s.buffers.stencil.setTest(!0),s.buffers.stencil.setOp(r.REPLACE,r.REPLACE,r.REPLACE),s.buffers.stencil.setFunc(r.ALWAYS,o,4294967295),s.buffers.stencil.setClear(l),s.buffers.stencil.setLocked(!0),e.setRenderTarget(i),this.clear&&e.clear(),e.render(this.scene,this.camera),e.setRenderTarget(t),this.clear&&e.clear(),e.render(this.scene,this.camera),s.buffers.color.setLocked(!1),s.buffers.depth.setLocked(!1),s.buffers.color.setMask(!0),s.buffers.depth.setMask(!0),s.buffers.stencil.setLocked(!1),s.buffers.stencil.setFunc(r.EQUAL,1,4294967295),s.buffers.stencil.setOp(r.KEEP,r.KEEP,r.KEEP),s.buffers.stencil.setLocked(!0)}}class kAe extends fE{constructor(){super(),this.needsSwap=!1}render(e){e.state.buffers.stencil.setLocked(!1),e.state.buffers.stencil.setTest(!1)}}class FAe{constructor(e,t){if(this.renderer=e,this._pixelRatio=e.getPixelRatio(),void 0===t){const i=e.getSize(new Qi);this._width=i.width,this._height=i.height,(t=new Wu(this._width*this._pixelRatio,this._height*this._pixelRatio,{type:lA})).texture.name="EffectComposer.rt1"}else this._width=t.width,this._height=t.height;this.renderTarget1=t,this.renderTarget2=t.clone(),this.renderTarget2.texture.name="EffectComposer.rt2",this.writeBuffer=this.renderTarget1,this.readBuffer=this.renderTarget2,this.renderToScreen=!0,this.passes=[],this.copyPass=new RAe(Uq),this.copyPass.material.blending=0,this.clock=new XG}swapBuffers(){const e=this.readBuffer;this.readBuffer=this.writeBuffer,this.writeBuffer=e}addPass(e){this.passes.push(e),e.setSize(this._width*this._pixelRatio,this._height*this._pixelRatio)}insertPass(e,t){this.passes.splice(t,0,e),e.setSize(this._width*this._pixelRatio,this._height*this._pixelRatio)}removePass(e){const t=this.passes.indexOf(e);-1!==t&&this.passes.splice(t,1)}isLastEnabledPass(e){for(let t=e+1;t0){e.getClearColor(this._oldClearColor),this.oldClearAlpha=e.getClearAlpha();const o=e.autoClear;e.autoClear=!1,s&&e.state.buffers.stencil.setTest(!1),e.setClearColor(16777215,1),this.changeVisibilityOfSelectedObjects(!1);const l=this.renderScene.background;if(this.renderScene.background=null,this.renderScene.overrideMaterial=this.depthMaterial,e.setRenderTarget(this.renderTargetDepthBuffer),e.clear(),e.render(this.renderScene,this.renderCamera),this.changeVisibilityOfSelectedObjects(!0),this._visibilityCache.clear(),this.updateTextureMatrix(),this.changeVisibilityOfNonSelectedObjects(!1),this.renderScene.overrideMaterial=this.prepareMaskMaterial,this.prepareMaskMaterial.uniforms.cameraNearFar.value.set(this.renderCamera.near,this.renderCamera.far),this.prepareMaskMaterial.uniforms.depthTexture.value=this.renderTargetDepthBuffer.texture,this.prepareMaskMaterial.uniforms.textureMatrix.value=this.textureMatrix,e.setRenderTarget(this.renderTargetMaskBuffer),e.clear(),e.render(this.renderScene,this.renderCamera),this.renderScene.overrideMaterial=null,this.changeVisibilityOfNonSelectedObjects(!0),this._visibilityCache.clear(),this.renderScene.background=l,this.fsQuad.material=this.materialCopy,this.copyUniforms.tDiffuse.value=this.renderTargetMaskBuffer.texture,e.setRenderTarget(this.renderTargetMaskDownSampleBuffer),e.clear(),this.fsQuad.render(e),this.tempPulseColor1.copy(this.visibleEdgeColor),this.tempPulseColor2.copy(this.hiddenEdgeColor),this.pulsePeriod>0){const d=.625+.75*Math.cos(.01*performance.now()/this.pulsePeriod)/2;this.tempPulseColor1.multiplyScalar(d),this.tempPulseColor2.multiplyScalar(d)}this.fsQuad.material=this.edgeDetectionMaterial,this.edgeDetectionMaterial.uniforms.maskTexture.value=this.renderTargetMaskDownSampleBuffer.texture,this.edgeDetectionMaterial.uniforms.texSize.value.set(this.renderTargetMaskDownSampleBuffer.width,this.renderTargetMaskDownSampleBuffer.height),this.edgeDetectionMaterial.uniforms.visibleEdgeColor.value=this.tempPulseColor1,this.edgeDetectionMaterial.uniforms.hiddenEdgeColor.value=this.tempPulseColor2,e.setRenderTarget(this.renderTargetEdgeBuffer1),e.clear(),this.fsQuad.render(e),this.fsQuad.material=this.separableBlurMaterial1,this.separableBlurMaterial1.uniforms.colorTexture.value=this.renderTargetEdgeBuffer1.texture,this.separableBlurMaterial1.uniforms.direction.value=Yy.BlurDirectionX,this.separableBlurMaterial1.uniforms.kernelRadius.value=this.edgeThickness,e.setRenderTarget(this.renderTargetBlurBuffer1),e.clear(),this.fsQuad.render(e),this.separableBlurMaterial1.uniforms.colorTexture.value=this.renderTargetBlurBuffer1.texture,this.separableBlurMaterial1.uniforms.direction.value=Yy.BlurDirectionY,e.setRenderTarget(this.renderTargetEdgeBuffer1),e.clear(),this.fsQuad.render(e),this.fsQuad.material=this.separableBlurMaterial2,this.separableBlurMaterial2.uniforms.colorTexture.value=this.renderTargetEdgeBuffer1.texture,this.separableBlurMaterial2.uniforms.direction.value=Yy.BlurDirectionX,e.setRenderTarget(this.renderTargetBlurBuffer2),e.clear(),this.fsQuad.render(e),this.separableBlurMaterial2.uniforms.colorTexture.value=this.renderTargetBlurBuffer2.texture,this.separableBlurMaterial2.uniforms.direction.value=Yy.BlurDirectionY,e.setRenderTarget(this.renderTargetEdgeBuffer2),e.clear(),this.fsQuad.render(e),this.fsQuad.material=this.overlayMaterial,this.overlayMaterial.uniforms.maskTexture.value=this.renderTargetMaskBuffer.texture,this.overlayMaterial.uniforms.edgeTexture1.value=this.renderTargetEdgeBuffer1.texture,this.overlayMaterial.uniforms.edgeTexture2.value=this.renderTargetEdgeBuffer2.texture,this.overlayMaterial.uniforms.patternTexture.value=this.patternTexture,this.overlayMaterial.uniforms.edgeStrength.value=this.edgeStrength,this.overlayMaterial.uniforms.edgeGlow.value=this.edgeGlow,this.overlayMaterial.uniforms.usePatternTexture.value=this.usePatternTexture,s&&e.state.buffers.stencil.setTest(!0),e.setRenderTarget(i),this.fsQuad.render(e),e.setClearColor(this._oldClearColor,this.oldClearAlpha),e.autoClear=o}this.renderToScreen&&(this.fsQuad.material=this.materialCopy,this.copyUniforms.tDiffuse.value=i.texture,e.setRenderTarget(null),this.fsQuad.render(e))}getPrepareMaskMaterial(){return new Du({uniforms:{depthTexture:{value:null},cameraNearFar:{value:new Qi(.5,.5)},textureMatrix:{value:null}},vertexShader:"#include \n\t\t\t\t#include \n\n\t\t\t\tvarying vec4 projTexCoord;\n\t\t\t\tvarying vec4 vPosition;\n\t\t\t\tuniform mat4 textureMatrix;\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\t#include \n\t\t\t\t\t#include \n\t\t\t\t\t#include \n\t\t\t\t\t#include \n\t\t\t\t\t#include \n\n\t\t\t\t\tvPosition = mvPosition;\n\n\t\t\t\t\tvec4 worldPosition = vec4( transformed, 1.0 );\n\n\t\t\t\t\t#ifdef USE_INSTANCING\n\n\t\t\t\t\t\tworldPosition = instanceMatrix * worldPosition;\n\n\t\t\t\t\t#endif\n\t\t\t\t\t\n\t\t\t\t\tworldPosition = modelMatrix * worldPosition;\n\n\t\t\t\t\tprojTexCoord = textureMatrix * worldPosition;\n\n\t\t\t\t}",fragmentShader:"#include \n\t\t\t\tvarying vec4 vPosition;\n\t\t\t\tvarying vec4 projTexCoord;\n\t\t\t\tuniform sampler2D depthTexture;\n\t\t\t\tuniform vec2 cameraNearFar;\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tfloat depth = unpackRGBAToDepth(texture2DProj( depthTexture, projTexCoord ));\n\t\t\t\t\tfloat viewZ = - DEPTH_TO_VIEW_Z( depth, cameraNearFar.x, cameraNearFar.y );\n\t\t\t\t\tfloat depthTest = (-vPosition.z > viewZ) ? 1.0 : 0.0;\n\t\t\t\t\tgl_FragColor = vec4(0.0, depthTest, 1.0, 1.0);\n\n\t\t\t\t}"})}getEdgeDetectionMaterial(){return new Du({uniforms:{maskTexture:{value:null},texSize:{value:new Qi(.5,.5)},visibleEdgeColor:{value:new It(1,1,1)},hiddenEdgeColor:{value:new It(1,1,1)}},vertexShader:"varying vec2 vUv;\n\n\t\t\t\tvoid main() {\n\t\t\t\t\tvUv = uv;\n\t\t\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\t\t\t\t}",fragmentShader:"varying vec2 vUv;\n\n\t\t\t\tuniform sampler2D maskTexture;\n\t\t\t\tuniform vec2 texSize;\n\t\t\t\tuniform vec3 visibleEdgeColor;\n\t\t\t\tuniform vec3 hiddenEdgeColor;\n\n\t\t\t\tvoid main() {\n\t\t\t\t\tvec2 invSize = 1.0 / texSize;\n\t\t\t\t\tvec4 uvOffset = vec4(1.0, 0.0, 0.0, 1.0) * vec4(invSize, invSize);\n\t\t\t\t\tvec4 c1 = texture2D( maskTexture, vUv + uvOffset.xy);\n\t\t\t\t\tvec4 c2 = texture2D( maskTexture, vUv - uvOffset.xy);\n\t\t\t\t\tvec4 c3 = texture2D( maskTexture, vUv + uvOffset.yw);\n\t\t\t\t\tvec4 c4 = texture2D( maskTexture, vUv - uvOffset.yw);\n\t\t\t\t\tfloat diff1 = (c1.r - c2.r)*0.5;\n\t\t\t\t\tfloat diff2 = (c3.r - c4.r)*0.5;\n\t\t\t\t\tfloat d = length( vec2(diff1, diff2) );\n\t\t\t\t\tfloat a1 = min(c1.g, c2.g);\n\t\t\t\t\tfloat a2 = min(c3.g, c4.g);\n\t\t\t\t\tfloat visibilityFactor = min(a1, a2);\n\t\t\t\t\tvec3 edgeColor = 1.0 - visibilityFactor > 0.001 ? visibleEdgeColor : hiddenEdgeColor;\n\t\t\t\t\tgl_FragColor = vec4(edgeColor, 1.0) * vec4(d);\n\t\t\t\t}"})}getSeperableBlurMaterial(e){return new Du({defines:{MAX_RADIUS:e},uniforms:{colorTexture:{value:null},texSize:{value:new Qi(.5,.5)},direction:{value:new Qi(.5,.5)},kernelRadius:{value:1}},vertexShader:"varying vec2 vUv;\n\n\t\t\t\tvoid main() {\n\t\t\t\t\tvUv = uv;\n\t\t\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\t\t\t\t}",fragmentShader:"#include \n\t\t\t\tvarying vec2 vUv;\n\t\t\t\tuniform sampler2D colorTexture;\n\t\t\t\tuniform vec2 texSize;\n\t\t\t\tuniform vec2 direction;\n\t\t\t\tuniform float kernelRadius;\n\n\t\t\t\tfloat gaussianPdf(in float x, in float sigma) {\n\t\t\t\t\treturn 0.39894 * exp( -0.5 * x * x/( sigma * sigma))/sigma;\n\t\t\t\t}\n\n\t\t\t\tvoid main() {\n\t\t\t\t\tvec2 invSize = 1.0 / texSize;\n\t\t\t\t\tfloat sigma = kernelRadius/2.0;\n\t\t\t\t\tfloat weightSum = gaussianPdf(0.0, sigma);\n\t\t\t\t\tvec4 diffuseSum = texture2D( colorTexture, vUv) * weightSum;\n\t\t\t\t\tvec2 delta = direction * invSize * kernelRadius/float(MAX_RADIUS);\n\t\t\t\t\tvec2 uvOffset = delta;\n\t\t\t\t\tfor( int i = 1; i <= MAX_RADIUS; i ++ ) {\n\t\t\t\t\t\tfloat x = kernelRadius * float(i) / float(MAX_RADIUS);\n\t\t\t\t\t\tfloat w = gaussianPdf(x, sigma);\n\t\t\t\t\t\tvec4 sample1 = texture2D( colorTexture, vUv + uvOffset);\n\t\t\t\t\t\tvec4 sample2 = texture2D( colorTexture, vUv - uvOffset);\n\t\t\t\t\t\tdiffuseSum += ((sample1 + sample2) * w);\n\t\t\t\t\t\tweightSum += (2.0 * w);\n\t\t\t\t\t\tuvOffset += delta;\n\t\t\t\t\t}\n\t\t\t\t\tgl_FragColor = diffuseSum/weightSum;\n\t\t\t\t}"})}getOverlayMaterial(){return new Du({uniforms:{maskTexture:{value:null},edgeTexture1:{value:null},edgeTexture2:{value:null},patternTexture:{value:null},edgeStrength:{value:1},edgeGlow:{value:1},usePatternTexture:{value:0}},vertexShader:"varying vec2 vUv;\n\n\t\t\t\tvoid main() {\n\t\t\t\t\tvUv = uv;\n\t\t\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\t\t\t\t}",fragmentShader:"varying vec2 vUv;\n\n\t\t\t\tuniform sampler2D maskTexture;\n\t\t\t\tuniform sampler2D edgeTexture1;\n\t\t\t\tuniform sampler2D edgeTexture2;\n\t\t\t\tuniform sampler2D patternTexture;\n\t\t\t\tuniform float edgeStrength;\n\t\t\t\tuniform float edgeGlow;\n\t\t\t\tuniform bool usePatternTexture;\n\n\t\t\t\tvoid main() {\n\t\t\t\t\tvec4 edgeValue1 = texture2D(edgeTexture1, vUv);\n\t\t\t\t\tvec4 edgeValue2 = texture2D(edgeTexture2, vUv);\n\t\t\t\t\tvec4 maskColor = texture2D(maskTexture, vUv);\n\t\t\t\t\tvec4 patternColor = texture2D(patternTexture, 6.0 * vUv);\n\t\t\t\t\tfloat visibilityFactor = 1.0 - maskColor.g > 0.0 ? 1.0 : 0.5;\n\t\t\t\t\tvec4 edgeValue = edgeValue1 + edgeValue2 * edgeGlow;\n\t\t\t\t\tvec4 finalColor = edgeStrength * maskColor.r * edgeValue;\n\t\t\t\t\tif(usePatternTexture)\n\t\t\t\t\t\tfinalColor += + visibilityFactor * (1.0 - maskColor.r) * (1.0 - patternColor.r);\n\t\t\t\t\tgl_FragColor = finalColor;\n\t\t\t\t}",blending:2,depthTest:!1,depthWrite:!1,transparent:!0})}}Yy.BlurDirectionX=new Qi(1,0),Yy.BlurDirectionY=new Qi(0,1);class LAe{constructor(e,t,i){this.antialiasing=!0,this.composer=new FAe(i),this.camera=e,this.scene=t,this.defaultRenderPass=new OAe(this.scene,this.camera),this.composer.addPass(this.defaultRenderPass),this.render=this.antialiasing?this.antialiasRender:this.effectsRender}effectsRender(e,t){this.composer&&(this.defaultRenderPass.camera=t,this.defaultRenderPass.scene=e,this.composer.render())}antialiasRender(e,t){this.composer.renderer.render(e,t)}addOutlinePassForSelection(){const e=new Yy(new Qi(window.innerWidth,window.innerHeight),this.scene,this.camera);return e.overlayMaterial.blending=1,e.visibleEdgeColor.set(16777062),e.visibleEdgeColor.set(14635824),this.composer.addPass(e),e}removePass(e){const t=this.composer.passes.indexOf(e);this.composer.passes.splice(t,1)}setAntialiasing(e){this.antialiasing=e,this.render=this.antialiasing?this.antialiasRender:this.effectsRender}}class fA{constructor(){return this.clippingEnabled=new pC(!1),this.startClippingAngle=new pC(0),this.openingClippingAngle=new pC(0),this.eventMetadata={runNumber:"000",eventNumber:"000"},void 0===fA.instance&&(fA.instance=this),fA.instance}static getInstance(){return fA.instance}setPhoenixMenuRoot(e){this.phoenixMenuRoot=e,this.phoenixMenuRoot&&this.phoenixMenuRoot.addConfig("button",{label:"Save state",onClick:()=>{this.saveStateAsJSON()}}).addConfig("button",{label:"Load state",onClick:()=>{wq(t=>{this.loadStateFromJSON(JSON.parse(t))})}})}saveStateAsJSON(){const e={phoenixMenu:this.phoenixMenuRoot.getNodeState(),eventDisplay:{cameraPosition:this.activeCamera.position.toArray(),startClippingAngle:this.clippingEnabled.value?this.startClippingAngle.value:null,openingClippingAngle:this.clippingEnabled.value?this.openingClippingAngle.value:null}};l4(JSON.stringify(e),`run${this.eventMetadata.runNumber}_evt${this.eventMetadata.eventNumber}.json`)}loadStateFromJSON(e){var t,i,r;const s="string"==typeof e?JSON.parse(e):e;if(s.phoenixMenu&&this.phoenixMenuRoot&&(this.phoenixMenuRoot.loadStateFromJSON(s.phoenixMenu),this.phoenixMenuRoot.configActive=!1),s.eventDisplay){this.activeCamera.position.fromArray(null===(t=s.eventDisplay)||void 0===t?void 0:t.cameraPosition);const o=null===(i=s.eventDisplay)||void 0===i?void 0:i.startClippingAngle,l=null===(r=s.eventDisplay)||void 0===r?void 0:r.openingClippingAngle;(o||l)&&(this.setClippingEnabled(!0),this.eventDisplay.getUIManager().setClipping(!0),o&&this.eventDisplay.getUIManager().rotateStartAngleClipping(s.eventDisplay.startClippingAngle),l&&this.eventDisplay.getUIManager().rotateOpeningAngleClipping(s.eventDisplay.openingClippingAngle))}}setClippingEnabled(e){this.clippingEnabled.update(e)}setStartClippingAngle(e){this.startClippingAngle.update(e)}getStartClippingAngle(){return this.startClippingAngle.value}setOpeningClippingAngle(e){this.openingClippingAngle.update(e)}getOpeningClippingAngle(){return this.openingClippingAngle.value}setCamera(e){this.activeCamera=e}setEventDisplay(e){this.eventDisplay=e}}class sx{constructor(){return this.toLoad=[],this.loaded=[],this.onLoadCallbacks=[],this.onProgressCallbacks=[],this.progressItems={},void 0===sx.instance&&(sx.instance=this),sx.instance}addLoadableItem(e=""){this.toLoad.push(e),this.progressItems[e]=0}itemLoaded(e=""){this.loaded.push(e),this.onProgress(e,100),this.toLoad.length===this.loaded.length&&this.toLoad.sort().join(",")===this.loaded.sort().join(",")&&(this.onLoadCallbacks.forEach(t=>t()),this.reset())}onProgress(e,t){this.progressItems[e]=t;const s=Object.values(this.progressItems).reduce((o,l)=>o+l,0)/Object.keys(this.progressItems).length;for(const o of this.onProgressCallbacks)o(s)}addLoadListener(e){this.onLoadCallbacks.push(e)}addLoadListenerWithCheck(e){this.toLoad.length>0&&this.toLoad.length!==this.loaded.length?this.onLoadCallbacks.push(e):e()}addProgressListener(e){this.onProgressCallbacks.push(e)}reset(){this.toLoad=[],this.loaded=[],this.onLoadCallbacks=[],this.onProgressCallbacks=[],this.progressItems={}}}class NAe{constructor(e){this.sceneManager=e}colorObjectsByProperty(e,t,i){this.sceneManager.getScene().getObjectByName(t).traverse(s=>{var o;null!==(o=s.material)&&void 0!==o&&o.color&&i(s.userData)&&s.material.color.set(e)})}collectionColor(e,t){const i=this.sceneManager.getScene().getObjectByName(el.EVENT_DATA_ID).getObjectByName(e);for(const r of Object.values(i.children))r.traverse(s=>{var o,l;null===(l=null===(o=s.material)||void 0===o?void 0:o.color)||void 0===l||l.set(t)})}collectionColorRandom(e){const t=this.sceneManager.getScene().getObjectByName(el.EVENT_DATA_ID).getObjectByName(e);for(const i of Object.values(t.children))i.traverse(r=>{var s,o;null===(o=null===(s=r.material)||void 0===s?void 0:s.color)||void 0===o||o.set(16777215*Math.random())})}colorTracksByVertex(e){const t=this.sceneManager.getScene();t.getObjectByName("Vertices").traverse(r=>{const{linkedTrackCollection:s,linkedTracks:o}=r.userData;if("Vertex"===r.name&&s===e&&o){const l=r.material.color,d=t.getObjectByName(s);o.forEach(u=>{d.children[u].traverse(f=>{var A,S;null===(S=null===(A=f?.material)||void 0===A?void 0:A.color)||void 0===S||S.set(l)})})}})}}var mm=function(n){return n.VR="VR",n.AR="AR",n}(mm||{});class Vq{constructor(e){this.sessionType=e,this.xrActive=!1,this.currentXRSession=null}setXRSession(e,t,i){var r;this.renderer=e,this.onSessionEnded=i;const s=navigator?.xr,o=this.sessionType===mm.VR?"vr":"ar";s?.requestSession(`immersive-${o}`,null===(r=this.sessionInit)||void 0===r?void 0:r.call(this)).then(l=>{this.onXRSessionStarted.bind(this)(l),t?.()}).catch(l=>{console.error(`${o.toUpperCase()} Error:`,l)})}onXRSessionStarted(e){return function(n,e,t,i){return new(t||(t=Promise))(function(s,o){function l(f){try{u(i.next(f))}catch(A){o(A)}}function d(f){try{u(i.throw(f))}catch(A){o(A)}}function u(f){f.done?s(f.value):function r(s){return s instanceof t?s:new t(function(o){o(s)})}(f.value).then(l,d)}u((i=i.apply(n,e||[])).next())})}(this,void 0,void 0,function*(){this.xrActive=!0,e.addEventListener("end",this.onXRSessionEnded.bind(this)),yield this.renderer.xr.setSession(e),this.currentXRSession=e})}onXRSessionEnded(){var e;this.xrActive=!1,this.currentXRSession.removeEventListener("end",this.onXRSessionEnded),this.currentXRSession=null,this.cameraGroup=void 0,null===(e=this.onSessionEnded)||void 0===e||e.call(this)}endXRSession(){var e;null===(e=this.currentXRSession)||void 0===e||e.end()}getCameraGroup(e){if(this.cameraGroup||(this.cameraGroup=new Wl),e&&this.xrActive){this.xrCamera=this.renderer.xr.getCamera().copy(new WV([e.clone()])),this.xrCamera.name="XR_CAMERA";const t=this.sessionType===mm.VR?this.xrCamera.position:new It(0,0,.1);this.cameraGroup.position.copy(t),this.cameraGroup.add(this.xrCamera)}return this.cameraGroup}getXRCamera(){return this.xrCamera}}const Cd={Handedness:Object.freeze({NONE:"none",LEFT:"left",RIGHT:"right"}),ComponentState:Object.freeze({DEFAULT:"default",TOUCHED:"touched",PRESSED:"pressed"}),ComponentProperty:Object.freeze({BUTTON:"button",X_AXIS:"xAxis",Y_AXIS:"yAxis",STATE:"state"}),ComponentType:Object.freeze({TRIGGER:"trigger",SQUEEZE:"squeeze",TOUCHPAD:"touchpad",THUMBSTICK:"thumbstick",BUTTON:"button"}),ButtonTouchThreshold:.05,AxisTouchThreshold:.1,VisualResponseProperty:Object.freeze({TRANSFORM:"transform",VISIBILITY:"visibility"})};function Gq(n){return NF.apply(this,arguments)}function NF(){return(NF=(0,Te.A)(function*(n){const e=yield fetch(n);if(e.ok)return e.json();throw new Error(e.statusText)})).apply(this,arguments)}function UF(){return(UF=(0,Te.A)(function*(n){if(!n)throw new Error("No basePath supplied");return yield Gq(`${n}/profilesList.json`)})).apply(this,arguments)}function zF(){return zF=(0,Te.A)(function*(n,e,t=null,i=!0){if(!n)throw new Error("No xrInputSource supplied");if(!e)throw new Error("No basePath supplied");const r=yield function zAe(n){return UF.apply(this,arguments)}(e);let s;if(n.profiles.some(d=>{const u=r[d];return u&&(s={profileId:d,profilePath:`${e}/${u.path}`,deprecated:!!u.deprecated}),!!s}),!s){if(!t)throw new Error("No matching profile name found");const d=r[t];if(!d)throw new Error(`No matching profile name found and default profile "${t}" missing.`);s={profileId:t,profilePath:`${e}/${d.path}`,deprecated:!!d.deprecated}}const o=yield Gq(s.profilePath);let l;if(i){let d;if(d="any"===n.handedness?o.layouts[Object.keys(o.layouts)[0]]:o.layouts[n.handedness],!d)throw new Error(`No matching handedness, ${n.handedness}, in profile ${s.profileId}`);d.assetPath&&(l=s.profilePath.replace("profile.json",d.assetPath))}return{profile:o,assetPath:l}}),zF.apply(this,arguments)}const VAe={xAxis:0,yAxis:0,button:0,state:Cd.ComponentState.DEFAULT};class qAe{constructor(e){this.componentProperty=e.componentProperty,this.states=e.states,this.valueNodeName=e.valueNodeName,this.valueNodeProperty=e.valueNodeProperty,this.valueNodeProperty===Cd.VisualResponseProperty.TRANSFORM&&(this.minNodeName=e.minNodeName,this.maxNodeName=e.maxNodeName),this.value=0,this.updateFromComponent(VAe)}updateFromComponent({xAxis:e,yAxis:t,button:i,state:r}){const{normalizedXAxis:s,normalizedYAxis:o}=function GAe(n=0,e=0){let t=n,i=e;if(Math.sqrt(n*n+e*e)>1){const o=Math.atan2(e,n);t=Math.cos(o),i=Math.sin(o)}return{normalizedXAxis:.5*t+.5,normalizedYAxis:.5*i+.5}}(e,t);switch(this.componentProperty){case Cd.ComponentProperty.X_AXIS:this.value=this.states.includes(r)?s:.5;break;case Cd.ComponentProperty.Y_AXIS:this.value=this.states.includes(r)?o:.5;break;case Cd.ComponentProperty.BUTTON:this.value=this.states.includes(r)?i:0;break;case Cd.ComponentProperty.STATE:this.value=this.valueNodeProperty===Cd.VisualResponseProperty.VISIBILITY?this.states.includes(r):this.states.includes(r)?1:0;break;default:throw new Error(`Unexpected visualResponse componentProperty ${this.componentProperty}`)}}}class QAe{constructor(e,t){if(!(e&&t&&t.visualResponses&&t.gamepadIndices&&0!==Object.keys(t.gamepadIndices).length))throw new Error("Invalid arguments supplied");this.id=e,this.type=t.type,this.rootNodeName=t.rootNodeName,this.touchPointNodeName=t.touchPointNodeName,this.visualResponses={},Object.keys(t.visualResponses).forEach(i=>{const r=new qAe(t.visualResponses[i]);this.visualResponses[i]=r}),this.gamepadIndices=Object.assign({},t.gamepadIndices),this.values={state:Cd.ComponentState.DEFAULT,button:void 0!==this.gamepadIndices.button?0:void 0,xAxis:void 0!==this.gamepadIndices.xAxis?0:void 0,yAxis:void 0!==this.gamepadIndices.yAxis?0:void 0}}get data(){return{id:this.id,...this.values}}updateFromGamepad(e){if(this.values.state=Cd.ComponentState.DEFAULT,void 0!==this.gamepadIndices.button&&e.buttons.length>this.gamepadIndices.button){const t=e.buttons[this.gamepadIndices.button];this.values.button=t.value,this.values.button=this.values.button<0?0:this.values.button,this.values.button=this.values.button>1?1:this.values.button,t.pressed||1===this.values.button?this.values.state=Cd.ComponentState.PRESSED:(t.touched||this.values.button>Cd.ButtonTouchThreshold)&&(this.values.state=Cd.ComponentState.TOUCHED)}void 0!==this.gamepadIndices.xAxis&&e.axes.length>this.gamepadIndices.xAxis&&(this.values.xAxis=e.axes[this.gamepadIndices.xAxis],this.values.xAxis=this.values.xAxis<-1?-1:this.values.xAxis,this.values.xAxis=this.values.xAxis>1?1:this.values.xAxis,this.values.state===Cd.ComponentState.DEFAULT&&Math.abs(this.values.xAxis)>Cd.AxisTouchThreshold&&(this.values.state=Cd.ComponentState.TOUCHED)),void 0!==this.gamepadIndices.yAxis&&e.axes.length>this.gamepadIndices.yAxis&&(this.values.yAxis=e.axes[this.gamepadIndices.yAxis],this.values.yAxis=this.values.yAxis<-1?-1:this.values.yAxis,this.values.yAxis=this.values.yAxis>1?1:this.values.yAxis,this.values.state===Cd.ComponentState.DEFAULT&&Math.abs(this.values.yAxis)>Cd.AxisTouchThreshold&&(this.values.state=Cd.ComponentState.TOUCHED)),Object.values(this.visualResponses).forEach(t=>{t.updateFromComponent(this.values)})}}class WAe{constructor(e,t,i){if(!e)throw new Error("No xrInputSource supplied");if(!t)throw new Error("No profile supplied");this.xrInputSource=e,this.assetUrl=i,this.id=t.profileId,this.layoutDescription=t.layouts[e.handedness],this.components={},Object.keys(this.layoutDescription.components).forEach(r=>{this.components[r]=new QAe(r,this.layoutDescription.components[r])}),this.updateFromGamepad()}get gripSpace(){return this.xrInputSource.gripSpace}get targetRaySpace(){return this.xrInputSource.targetRaySpace}get data(){const e=[];return Object.values(this.components).forEach(t=>{e.push(t.data)}),e}updateFromGamepad(){Object.values(this.components).forEach(e=>{e.updateFromGamepad(this.xrInputSource.gamepad)})}}class XAe extends Pl{constructor(){super(),this.motionController=null,this.envMap=null}setEnvironmentMap(e){return this.envMap==e||(this.envMap=e,this.traverse(t=>{t.isMesh&&(t.material.envMap=this.envMap,t.material.needsUpdate=!0)})),this}updateMatrixWorld(e){super.updateMatrixWorld(e),this.motionController&&(this.motionController.updateFromGamepad(),Object.values(this.motionController.components).forEach(t=>{Object.values(t.visualResponses).forEach(i=>{const{valueNode:r,minNode:s,maxNode:o,value:l,valueNodeProperty:d}=i;r&&(d===Cd.VisualResponseProperty.VISIBILITY?r.visible=l:d===Cd.VisualResponseProperty.TRANSFORM&&(r.quaternion.slerpQuaternions(s.quaternion,o.quaternion,l),r.position.lerpVectors(s.position,o.position,l)))})}))}}function qq(n,e){(function YAe(n,e){Object.values(n.components).forEach(t=>{const{type:i,touchPointNodeName:r,visualResponses:s}=t;if(i===Cd.ComponentType.TOUCHPAD)if(t.touchPointNode=e.getObjectByName(r),t.touchPointNode){const o=new qy(.001),l=new xd({color:255}),d=new ua(o,l);t.touchPointNode.add(d)}else console.warn(`Could not find touch dot, ${t.touchPointNodeName}, in touchpad component ${t.id}`);Object.values(s).forEach(o=>{const{valueNodeName:l,minNodeName:d,maxNodeName:u,valueNodeProperty:f}=o;if(f===Cd.VisualResponseProperty.TRANSFORM){if(o.minNode=e.getObjectByName(d),o.maxNode=e.getObjectByName(u),!o.minNode)return void console.warn(`Could not find ${d} in the model`);if(!o.maxNode)return void console.warn(`Could not find ${u} in the model`)}o.valueNode=e.getObjectByName(l),o.valueNode||console.warn(`Could not find ${l} in the model`)})})})(n.motionController,e),n.envMap&&e.traverse(t=>{t.isMesh&&(t.material.envMap=n.envMap,t.material.needsUpdate=!0)}),n.add(e)}class KAe{constructor(e=null,t=null){this.gltfLoader=e,this.path="https://cdn.jsdelivr.net/npm/@webxr-input-profiles/assets@1.0/dist/profiles",this._assetCache={},this.onLoad=t,this.gltfLoader||(this.gltfLoader=new d4)}setPath(e){return this.path=e,this}createControllerModel(e){const t=new XAe;let i=null;return e.addEventListener("connected",r=>{const s=r.data;"tracked-pointer"!==s.targetRayMode||!s.gamepad||function HAe(n,e){return zF.apply(this,arguments)}(s,this.path,"generic-trigger").then(({profile:o,assetPath:l})=>{t.motionController=new WAe(s,o,l);const d=this._assetCache[t.motionController.assetUrl];if(d)i=d.scene.clone(),qq(t,i),this.onLoad&&this.onLoad(i);else{if(!this.gltfLoader)throw new Error("GLTFLoader not set.");this.gltfLoader.setPath(""),this.gltfLoader.load(t.motionController.assetUrl,u=>{this._assetCache[t.motionController.assetUrl]=u,i=u.scene.clone(),qq(t,i),this.onLoad&&this.onLoad(i)},null,()=>{throw new Error(`Asset ${t.motionController.assetUrl} missing or malformed.`)})}}).catch(o=>{console.warn(o)})}),e.addEventListener("disconnected",()=>{t.motionController=null,t.remove(i),i=null}),t}}let Qq=(()=>{class n extends Vq{constructor(){super(mm.VR),this.sessionInit=()=>({optionalFeatures:["local-floor","bounded-floor","hand-tracking"]})}setXRSession(t,i,r){super.setXRSession(t,i,r),this.setupVRControls()}onXRSessionEnded(){var t,i;super.onXRSessionEnded(),null===(t=this.controller1)||void 0===t||t.removeEventListener("selectstart",this.onControllerSelectStart),null===(i=this.controller1)||void 0===i||i.removeEventListener("selectend",this.onControllerSelectEnd)}setupVRControls(){this.controller1=this.renderer.xr.getController(0),this.getCameraGroup().add(this.controller1),this.controller2=this.renderer.xr.getController(1),this.getCameraGroup().add(this.controller2);const t=new KAe;this.controllerGrip1=this.renderer.xr.getControllerGrip(0),this.controllerGrip1.add(t.createControllerModel(this.controllerGrip1)),this.getCameraGroup().add(this.controllerGrip1),this.controllerGrip2=this.renderer.xr.getControllerGrip(1),this.controllerGrip2.add(t.createControllerModel(this.controllerGrip2)),this.getCameraGroup().add(this.controllerGrip2);const i=(new no).setFromPoints([new It(0,0,0),new It(0,0,-1)]),r=new pg(i);r.name="line",r.scale.z=50,this.controller1.add(r.clone()),this.controller2.add(r.clone());const o=new It;let l;this.onControllerSelectStart=()=>{console.log("Select: c1 position "+this.controller1.position.toArray().join(", ")),console.log("Select: CG position "+this.cameraGroup.position.toArray().join(", ")),l=setInterval(()=>{this.moveInDirection(o,30)},20)},this.onControllerSelectEnd=()=>{clearInterval(l)},this.controller1.addEventListener("selectstart",this.onControllerSelectStart),this.controller1.addEventListener("selectend",this.onControllerSelectEnd)}moveInDirection(t,i){var r;null===(r=this.xrCamera)||void 0===r||r.getWorldDirection(t),this.cameraGroup.position.addScaledVector(t,i),this.xrCamera.position.addScaledVector(t,i)}}return n.SESSION_TYPE="immersive-vr",n})();let HF=(()=>{class n extends Vq{constructor(t,i){super(mm.AR),this.scene=t,this.camera=i,this.previousValues={sceneScale:1,cameraNear:10},this.previousValues.sceneScale=t.scale.x,this.previousValues.cameraNear=i.near,this.sessionInit=()=>n.enableDomOverlay?{optionalFeatures:["dom-overlay"],domOverlay:{root:document.body}}:{}}onXRSessionStarted(t){const i=Object.create(null,{onXRSessionStarted:{get:()=>super.onXRSessionStarted}});return function(n,e,t,i){return new(t||(t=Promise))(function(s,o){function l(f){try{u(i.next(f))}catch(A){o(A)}}function d(f){try{u(i.throw(f))}catch(A){o(A)}}function u(f){f.done?s(f.value):function r(s){return s instanceof t?s:new t(function(o){o(s)})}(f.value).then(l,d)}u((i=i.apply(n,e||[])).next())})}(this,void 0,void 0,function*(){document.body.style.setProperty("background-color","transparent"),this.previousValues.sceneScale=this.scene.scale.x,this.previousValues.cameraNear=this.camera.near,this.scaleScene(1e-5),this.camera.near=.01,this.renderer.xr.setReferenceSpaceType("local"),yield i.onXRSessionStarted.call(this,t)})}onXRSessionEnded(){document.body.style.removeProperty("background-color"),this.scaleScene(this.previousValues.sceneScale),this.camera.near=this.previousValues.cameraNear,super.onXRSessionEnded()}scaleScene(t){[el.EVENT_DATA_ID,el.GEOMETRIES_ID,el.LABELS_ID].forEach(i=>{var r;null===(r=this.scene.getObjectByName(i))||void 0===r||r.scale.setScalar(t)})}}return n.SESSION_TYPE="immersive-ar",n.enableDomOverlay=!0,n})();var pE=function(n,e,t,i){return new(t||(t=Promise))(function(s,o){function l(f){try{u(i.next(f))}catch(A){o(A)}}function d(f){try{u(i.throw(f))}catch(A){o(A)}}function u(f){f.done?s(f.value):function r(s){return s instanceof t?s:new t(function(o){o(s)})}(f.value).then(l,d)}u((i=i.apply(n,e||[])).next())})};!function(){const n=Pl.prototype.updateMatrixWorld;Pl.prototype.updateMatrixWorld=function(){this.visible&&n.apply(this)}}();class JAe{constructor(e){this.infoLogger=e,this.origin=new It(0,0,0),this.ignoreList=[(new KI).type,(new uC).type,(new hq).type],this.prev3DCoord=null,this.prevIntersectName=null,this.distanceCanvas=null,this.displayColor="black",this.originChanged=new Ls,this.shiftGrid=!1,this.stopShifting=new Ls,this.saveBlob=function(){const t=document.createElement("a");return document.body.appendChild(t),t.style.display="none",function(r,s){const o=window.URL.createObjectURL(r);t.href=o,t.download=s,t.click()}}(),this.rendererManager=new hme,this.loadingManager=new sx}init(e){this.clipPlanes=[new dA(new It(0,1,0),0),new dA(new It(0,-1,0),0)],this.sceneManager=new el(this.ignoreList),this.exportManager=new Ome,this.importManager=new xAe(this.clipPlanes,el.EVENT_DATA_ID,el.GEOMETRIES_ID),this.rendererManager.init(e.elementId),this.controlsManager=new ume(this.rendererManager,e.defaultView),this.controlsManager.hideTubeTracksOnZoom(this.sceneManager.getScene(),200),this.effectsManager=new LAe(this.controlsManager.getMainCamera(),this.sceneManager.getScene(),this.rendererManager.getMainRenderer()),this.animationsManager=new DAe(this.sceneManager.getScene(),this.controlsManager.getActiveCamera(),this.rendererManager),this.vrManager=new Qq,this.arManager=new HF(this.sceneManager.getScene(),this.controlsManager.getMainCamera()),this.colorManager=new NAe(this.sceneManager),this.getSelectionManager().init(this.controlsManager.getMainCamera(),this.sceneManager.getScene(),this.effectsManager,this.infoLogger),(new fA).setCamera(this.controlsManager.getActiveCamera())}setDarkColor(e){this.displayColor=e?"white":"black"}updateControls(){this.controlsManager.getActiveControls().update(),this.controlsManager.updateSync(),Yz()}setAnimationLoop(e){this.uiLoop=e,this.animationLoop=()=>{this.uiLoop(),this.updateControls(),this.sceneManager.alignText(this.controlsManager.getMainCamera()),this.render()},this.rendererManager.getMainRenderer().setAnimationLoop(this.animationLoop)}stopAnimationLoop(){this.rendererManager.getMainRenderer().setAnimationLoop(null)}render(){this.rendererManager.render(this.sceneManager.getScene(),this.controlsManager.getOverlayCamera()),this.effectsManager.render(this.sceneManager.getScene(),this.controlsManager.getMainCamera()),this.sceneManager.updateLights(this.controlsManager.getActiveCamera())}xrRender(e){this.uiLoop(),this.rendererManager.getMainRenderer().render(this.sceneManager.getScene(),e.getXRCamera()),this.sceneManager.updateLights(e.getXRCamera())}getSceneManager(){return this.sceneManager||(this.sceneManager=new el(this.ignoreList)),this.sceneManager}autoRotate(e){this.controlsManager.getActiveControls().autoRotate=e}filterRayIntersect(){null==this.stateManager&&(this.stateManager=new fA),null==this.isEventData&&(this.isEventData=e=>{let t=!1;return e.object.traverseAncestors(i=>{"EventData"==i.name&&(t=!0)}),t}),null==this.isVisible&&(this.isVisible=e=>{let t=!1;return this.clipPlanes.length>0&&(this.clipIntersection?this.clipPlanes.every(i=>i.distanceToPoint(e.point)<0)||(t=!0):this.clipPlanes.every(i=>i.distanceToPoint(e.point)>0)&&(t=!0)),t})}originChangedEmit(e){this.origin=e,this.originChanged.emit(e)}getMainIntersect(e){const t=this.controlsManager.getMainCamera(),i=this.sceneManager.getScene(),r=new eq,s=new Qi;s.x=e.clientX/window.innerWidth*2-1,s.y=-e.clientY/window.innerHeight*2+1,r.setFromCamera(s,t);const o=r.intersectObjects(i.children);let l=null;if(o.length>0&&!this.stateManager.clippingEnabled.value){for(const d of o)if("gridline"!=d.object.name&&"XYZ Labels"!=d.object.name){l=d;break}}else for(const d of o)if("gridline"!=d.object.name&&"XYZ Labels"!=d.object.name){if(this.isEventData(d)){l=d;break}if(this.isVisible(d)){l=d;break}}return l}show3DMousePoints(e){this.filterRayIntersect(),null==this.show3DPointsCallback&&(this.show3DPointsCallback=t=>{const i=this.getMainIntersect(t);if(null!=i){const r=i.point,s=new It;s.subVectors(r,this.origin);const o=document.getElementsByTagName("app-root")[0],l=document.createElement("p");l.id="3dcoordinates",l.innerHTML=`${i.object.name}:\r\n\tOriginal (cm): (${Math.round(r.x/10)}, ${Math.round(r.y/10)}, ${Math.round(r.z/10)})`,(0!=this.origin.x||0!=this.origin.y||0!=this.origin.z)&&(l.innerHTML+=`\r\n\tCompared to grid (cm): (${Math.round(s.x/10)}, ${Math.round(s.y/10)}, ${Math.round(s.z/10)})`),l.style.whiteSpace="pre",l.style.color=this.displayColor,l.style.position="absolute",l.style.top=`${t.clientY+10}px`,l.style.left=`${t.clientX+10}px`;const d=document.createElement("div");d.id="circledDot",d.style.width="1rem",d.style.height="1rem",d.style.position="absolute",d.style.top=`calc(${t.clientY}px - 0.5rem)`,d.style.left=`calc(${t.clientX}px - 0.5rem)`,d.style.border=`2px solid ${this.displayColor}`,d.style.borderRadius="0.5rem",d.innerHTML=`\n
`,o?.appendChild(l),o?.appendChild(d),setTimeout(()=>{document.getElementById("3dcoordinates").remove(),document.getElementById("circledDot").remove()},3e3)}}),e?window.addEventListener("click",this.show3DPointsCallback):window.removeEventListener("click",this.show3DPointsCallback)}show3DDistance(e){this.prev3DCoord=null,this.prev2DCoord=null,this.prevIntersectName=null,this.filterRayIntersect(),null==this.show3DDistanceCallback&&(this.mousemoveCallback=this.drawLine.bind(this),this.show3DDistanceCallback=t=>{const i=this.getMainIntersect(t);if(null!=i)if(null==this.prev3DCoord){this.prev3DCoord=i.point,this.prev2DCoord=new Qi(t.clientX,t.clientY),this.prevIntersectName=i.object.name;const r=document.getElementsByTagName("app-root")[0];null==this.distanceCanvas&&(this.distanceCanvas=document.createElement("canvas"),this.distanceCanvas.id="3Ddistance",this.distanceCanvas.width=window.innerWidth,this.distanceCanvas.height=window.innerHeight,this.distanceCanvas.style.position="absolute",this.distanceCanvas.style.bottom="0"),r?.appendChild(this.distanceCanvas);const s=this.distanceCanvas.getContext("2d");s.strokeStyle=this.displayColor,s.lineWidth=2,s.fillStyle=this.displayColor,s.beginPath(),s.arc(this.prev2DCoord.x,this.prev2DCoord.y,7,0,2*Math.PI),s.stroke(),s.beginPath(),s.arc(this.prev2DCoord.x,this.prev2DCoord.y,3,0,2*Math.PI),s.fill(),window.addEventListener("mousemove",this.mousemoveCallback)}else{window.removeEventListener("mousemove",this.mousemoveCallback);const r=i.point.distanceTo(this.prev3DCoord)/10;this.drawLine(t);const s=this.distanceCanvas.getContext("2d");s.beginPath(),s.arc(t.clientX,t.clientY,7,0,2*Math.PI),s.stroke(),s.beginPath(),s.arc(t.clientX,t.clientY,3,0,2*Math.PI),s.fill(),s.font="15px Arial";let o=this.prev2DCoord.x,l=t.clientX;const d=this.prev2DCoord.y,u=t.clientY,f=(o+l)/2,A=(d+u)/2,R=(o-l)/(u-d),G=25/Math.sqrt(1+R*R),se=f+G,le=A+R*G;this.prev2DCoord.x>t.clientX?(o=this.prev2DCoord.x+20,l=t.clientX-s.measureText(i.object.name).width-20):(o=this.prev2DCoord.x-s.measureText(this.prevIntersectName).width-20,l=t.clientX+20),s.fillText(this.prevIntersectName,o,d),s.fillText(i.object.name,l,u),s.fillText(r.toFixed(2).toString()+"cm",se,le),setTimeout(()=>{null!=document.getElementById("3Ddistance")&&document.getElementById("3Ddistance").remove(),this.distanceCanvas.getContext("2d").clearRect(0,0,this.distanceCanvas.width,this.distanceCanvas.height)},3e3),this.prev3DCoord=null,this.prev2DCoord=null,this.prevIntersectName=null}}),e?window.addEventListener("click",this.show3DDistanceCallback):(window.removeEventListener("click",this.show3DDistanceCallback),window.removeEventListener("mousemove",this.mousemoveCallback),null!=document.getElementById("3Ddistance")&&document.getElementById("3Ddistance").remove(),null!=this.distanceCanvas&&this.distanceCanvas.getContext("2d").clearRect(0,0,this.distanceCanvas.width,this.distanceCanvas.height))}drawLine(e){const t=this.distanceCanvas.getContext("2d");t.clearRect(0,0,this.distanceCanvas.width,this.distanceCanvas.height),t.beginPath(),t.moveTo(this.prev2DCoord.x,this.prev2DCoord.y),t.lineTo(e.clientX,e.clientY),t.stroke(),t.beginPath(),t.arc(this.prev2DCoord.x,this.prev2DCoord.y,7,0,2*Math.PI),t.stroke(),t.beginPath(),t.arc(this.prev2DCoord.x,this.prev2DCoord.y,3,0,2*Math.PI),t.fill()}shiftCartesianGrid(){this.shiftGrid=!0,this.filterRayIntersect(),null==this.shiftCartesianGridCallback&&(this.shiftCartesianGridCallback=t=>{const i=this.getMainIntersect(t);null!=i&&this.originChangedEmit(i.point)});const e=t=>{window.removeEventListener("click",this.shiftCartesianGridCallback),this.stopShifting.emit(!0),this.shiftGrid=!1,window.removeEventListener("contextmenu",e)};window.addEventListener("click",this.shiftCartesianGridCallback),window.addEventListener("contextmenu",e)}setClipping(e){this.rendererManager.setLocalClippingEnabled(e)}setClippingAngle(e,t){const i=new Gc;i.setFromAxisAngle(new It(0,0,1),e*Math.PI/180),this.clipPlanes[0].normal.set(0,-1,0).applyQuaternion(i);const r=new Gc;r.setFromAxisAngle(new It(0,0,1),(e+t)*Math.PI/180),this.clipPlanes[1].normal.set(0,1,0).applyQuaternion(r),(this.clipIntersection&&t>180||!this.clipIntersection&&t<180)&&(this.clipIntersection=t<180,this.sceneManager.getGeometries().traverse(o=>{o instanceof ua&&o.material instanceof ld&&(o.material.clipIntersection=this.clipIntersection)}))}animateCameraTransform(e,t,i){this.animateCameraPosition(e,i),this.animateCameraTarget(t,i)}swapCameras(e){let t;t=e?"OrthographicCamera":"PerspectiveCamera",this.controlsManager.getMainCamera().type!==t&&this.controlsManager.swapControls()}loadOBJGeometry(e,t,i,r){return pE(this,arguments,void 0,function*(s,o,l,d,u=!0,f=!0){const A=this.sceneManager.getGeometries(),S=yield this.importManager.loadOBJGeometry(s,o,l,d,f),{object:R}=S;return R.visible=u,A.add(R),S})}loadGLTFGeometry(e,t,i,r,s){return pE(this,void 0,void 0,function*(){const o=this.sceneManager.getGeometries(),l=yield this.importManager.loadGLTFGeometry(e,t,i,r,s);for(const{object:d}of l)o.add(d),this.infoLogger.add(t,"Loaded GLTF scene");return l})}parseOBJGeometry(e,t,i=!0){const r=this.sceneManager.getGeometries(),s=this.importManager.parseOBJGeometry(e,t);return s.visible=i,r.add(s),{object:s}}parseGLTFGeometry(e,t){return pE(this,void 0,void 0,function*(){const i=yield this.importManager.parseGLTFGeometry(e,t);for(const{object:r}of i)this.sceneManager.getGeometries().add(r),this.infoLogger.add(t,"Parsed GLTF geometry");return i})}parsePhnxScene(e){return pE(this,void 0,void 0,function*(){yield this.importManager.parsePhnxScene(e,(i,r)=>{this.sceneManager.getScene().add(i),this.sceneManager.getScene().add(r)})})}loadJSONGeometry(e,t,i,r){return pE(this,arguments,void 0,function*(s,o,l,d,u=!0){const f=this.sceneManager.getGeometries(),{object:A}=yield this.importManager.loadJSONGeometry(s,o,l,d);return A.visible=u,f.add(A),{object:A}})}exportSceneToOBJ(){const e=this.sceneManager.getCleanScene();this.exportManager.exportSceneToOBJ(e)}exportPhoenixScene(){const e=this.sceneManager.getCleanScene();this.exportManager.exportPhoenixScene(e,this.sceneManager.getEventData(),this.sceneManager.getGeometries())}fixOverlayView(e){this.rendererManager.setFixOverlay(e)}setSelectedObjectDisplay(e){this.getSelectionManager().setSelectedObject(e)}eventDataDepthTest(e){this.sceneManager.eventDataDepthTest(e)}enableSelecting(e){this.getSelectionManager().setSelecting(e)}clearEventData(){this.sceneManager.clearEventData()}addEventDataTypeGroup(e){return this.sceneManager.addEventDataTypeGroup(e)}setOverlayRenderer(e){this.rendererManager&&this.rendererManager.setOverlayRenderer(e)}zoomTo(e,t){this.controlsManager.zoomTo(e,t)}getSelectionManager(){return this.selectionManager||(this.selectionManager=new wAe),this.selectionManager}animateCameraPosition(e,t){const i=new If(this.controlsManager.getActiveCamera().position);i.to({x:e[0],y:e[1],z:e[2]},t),i.start()}animateCameraTarget(e,t){const i=new If(this.controlsManager.getActiveControls().target);i.to({x:e[0],y:e[1],z:e[2]},t),i.start()}getActiveObjectId(){return this.getSelectionManager().getActiveObjectId()}lookAtObject(e,t=!1){1==t?this.controlsManager.lookAtObject(e,this.getSceneManager().getGeometries(),1e3):this.controlsManager.lookAtObject(e,this.getSceneManager().getEventData(),0)}getObjectPosition(e){return this.controlsManager.getObjectPosition(e,this.getSceneManager().getScene())}highlightObject(e,t=!1){this.selectionManager.highlightObject(e,1==t?this.getSceneManager().getGeometries():this.getSceneManager().getEventData())}enableHighlighting(){this.selectionManager.enableHighlighting()}disableHighlighting(){this.selectionManager.disableHighlighting()}enableKeyboardControls(){document.addEventListener("keydown",e=>{var t;if(!["input","textarea"].includes(null===(t=e.target)||void 0===t?void 0:t.tagName.toLowerCase())&&e.shiftKey)switch(e.code){case"KeyR":this.autoRotate(!this.controlsManager.getActiveControls().autoRotate);break;case"Equal":this.zoomTo(1/1.2,100);break;case"Minus":this.zoomTo(1.2,100);break;case"KeyC":this.setClipping(!this.rendererManager.getLocalClipping()),this.rendererManager.getLocalClipping()&&this.setClippingAngle(0,180);break;case"KeyV":{const r="OrthographicCamera"===this.controlsManager.getMainCamera().type;this.swapCameras(!r);break}}})}animateThroughEvent(e,t,i){this.animationsManager.animateThroughEvent(e,t,i)}animatePreset(e,t){this.animationsManager.animatePreset(e,t)}animateEventWithCollision(e,t){this.animationsManager.animateEventWithCollision(e,t)}animateClippingWithCollision(e,t){this.animationsManager.animateClippingWithCollision(e,t)}croppedSize(e,t,i,r){let s=t,o=e;return i*t"CANVAS"==se.tagName}).then(se=>{se.toBlob(le=>{S.drawImage(se,G/6,G/6,re,G),A.toBlob(Ee=>{const Ce=document.createElement("a");document.body.appendChild(Ce),Ce.style.display="none";const We=window.URL.createObjectURL(Ee);Ce.href=We,Ce.download="screencapture.png",Ce.click()})})})}}initXRSession(e,t){const i=e===mm.VR?this.vrManager:this.arManager,r=this.rendererManager.getMainRenderer();r.xr.enabled=!0,r.xr.setAnimationLoop(this.xrRender.bind(this,i)),i.setXRSession(r,()=>{const o=i.getCameraGroup(this.controlsManager.getMainCamera());this.sceneManager.getScene().add(o)},t)}endXRSession(e){const t=e===mm.VR?this.vrManager:this.arManager;this.sceneManager.getScene().remove(t.getCameraGroup());const i=this.rendererManager.getMainRenderer();i.xr.setAnimationLoop(null),i.xr.enabled=!1,t.endXRSession()}getObjectByName(e){return this.getSceneManager().getScene().getObjectByName(e)}setAntialiasing(e){this.effectsManager.setAntialiasing(e)}addGeometryFromParameters(e){this.loadingManager.addLoadableItem("geom_from_params");const t=this.getSceneManager().getScene(),l=e.NumPhiEl,d=e.NumZEl,u=e.Radius,f=e.MinZ,A=e.MaxZ,S=e.TiltAngle,R=e.ZTiltAngle,G=e.PhiOffset,re=e.Colour,le=new yp(e.Xdim,e.Ydim,e.Zdim),Ee=new xd({color:re,opacity:.5,transparent:!0}),Ce=(A-f)/d,We=2*Math.PI/l;let Mt=f+Ce/2;const yt=Math.PI/2;let Et;for(let Xt=0;Xt=0;i--)t=[e[i].apply(this,t)];return t[0]}},each:function(e,t,i){if(e)if(Wq&&e.forEach&&e.forEach===Wq)e.forEach(t,i);else if(e.length===e.length+0){var s,r=void 0;for(r=0,s=e.length;r1?Sr.toArray(arguments):arguments[0];return Sr.each(nge,function(t){if(t.litmus(e))return Sr.each(t.conversions,function(i,r){if(AE=i.read(e),!1===u4&&!1!==AE)return u4=AE,AE.conversionName=r,AE.conversion=i,Sr.BREAK}),Sr.BREAK}),u4},jq=void 0,gE={hsv_to_rgb:function(e,t,i){var r=Math.floor(e/60)%6,s=e/60-Math.floor(e/60),o=i*(1-t),l=i*(1-s*t),d=i*(1-(1-s)*t),u=[[i,d,o],[l,i,o],[o,i,d],[o,l,i],[d,o,i],[i,o,l]][r];return{r:255*u[0],g:255*u[1],b:255*u[2]}},rgb_to_hsv:function(e,t,i){var r=Math.min(e,t,i),s=Math.max(e,t,i),o=s-r,l=void 0;return 0===s?{h:NaN,s:0,v:0}:(l=e===s?(t-i)/o:t===s?2+(i-e)/o:4+(e-t)/o,(l/=6)<0&&(l+=1),{h:360*l,s:o/s,v:s/255})},rgb_to_hex:function(e,t,i){var r=this.hex_with_component(0,2,e);return r=this.hex_with_component(r,1,t),this.hex_with_component(r,0,i)},component_from_hex:function(e,t){return e>>8*t&255},hex_with_component:function(e,t,i){return i<<(jq=8*t)|e&~(255<-1?e.length-e.indexOf(".")-1:0}var QF=function(n){function e(t,i,r){Ag(this,e);var s=Jy(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,t,i)),o=r||{};return s.__min=o.min,s.__max=o.max,s.__step=o.step,s.__impliedStep=Sr.isUndefined(s.__step)?0===s.initialValue?1:Math.pow(10,Math.floor(Math.log(Math.abs(s.initialValue))/Math.LN10))/10:s.__step,s.__precision=Kq(s.__impliedStep),s}return Zy(e,n),gg(e,[{key:"setValue",value:function(i){var r=i;return void 0!==this.__min&&rthis.__max&&(r=this.__max),void 0!==this.__step&&r%this.__step!=0&&(r=Math.round(r/this.__step)*this.__step),Ky(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"setValue",this).call(this,r)}},{key:"min",value:function(i){return this.__min=i,this}},{key:"max",value:function(i){return this.__max=i,this}},{key:"step",value:function(i){return this.__step=i,this.__impliedStep=i,this.__precision=Kq(i),this}}]),e}(ev),_E=function(n){function e(t,i,r){Ag(this,e);var s=Jy(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,t,i,r));s.__truncationSuspended=!1;var o=s,l=void 0;function u(){o.__onFinishChange&&o.__onFinishChange.call(o,o.getValue())}function A(G){var re=l-G.clientY;o.setValue(o.getValue()+re*o.__impliedStep),l=G.clientY}function S(){Fi.unbind(window,"mousemove",A),Fi.unbind(window,"mouseup",S),u()}return s.__input=document.createElement("input"),s.__input.setAttribute("type","text"),Fi.bind(s.__input,"change",function d(){var G=parseFloat(o.__input.value);Sr.isNaN(G)||o.setValue(G)}),Fi.bind(s.__input,"blur",function f(){u()}),Fi.bind(s.__input,"mousedown",function R(G){Fi.bind(window,"mousemove",A),Fi.bind(window,"mouseup",S),l=G.clientY}),Fi.bind(s.__input,"keydown",function(G){13===G.keyCode&&(o.__truncationSuspended=!0,this.blur(),o.__truncationSuspended=!1,u())}),s.updateDisplay(),s.domElement.appendChild(s.__input),s}return Zy(e,n),gg(e,[{key:"updateDisplay",value:function(){return this.__input.value=this.__truncationSuspended?this.getValue():function oge(n,e){var t=Math.pow(10,e);return Math.round(n*t)/t}(this.getValue(),this.__precision),Ky(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"updateDisplay",this).call(this)}}]),e}(QF);function Zq(n,e,t,i,r){return i+(n-e)/(t-e)*(r-i)}var f4=function(n){function e(t,i,r,s,o){Ag(this,e);var l=Jy(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,t,i,{min:r,max:s,step:o})),d=l;function f(re){re.preventDefault();var se=d.__background.getBoundingClientRect();return d.setValue(Zq(re.clientX,se.left,se.right,d.__min,d.__max)),!1}function A(){Fi.unbind(window,"mousemove",f),Fi.unbind(window,"mouseup",A),d.__onFinishChange&&d.__onFinishChange.call(d,d.getValue())}function R(re){var se=re.touches[0].clientX,le=d.__background.getBoundingClientRect();d.setValue(Zq(se,le.left,le.right,d.__min,d.__max))}function G(){Fi.unbind(window,"touchmove",R),Fi.unbind(window,"touchend",G),d.__onFinishChange&&d.__onFinishChange.call(d,d.getValue())}return l.__background=document.createElement("div"),l.__foreground=document.createElement("div"),Fi.bind(l.__background,"mousedown",function u(re){document.activeElement.blur(),Fi.bind(window,"mousemove",f),Fi.bind(window,"mouseup",A),f(re)}),Fi.bind(l.__background,"touchstart",function S(re){1===re.touches.length&&(Fi.bind(window,"touchmove",R),Fi.bind(window,"touchend",G),R(re))}),Fi.addClass(l.__background,"slider"),Fi.addClass(l.__foreground,"slider-fg"),l.updateDisplay(),l.__background.appendChild(l.__foreground),l.domElement.appendChild(l.__background),l}return Zy(e,n),gg(e,[{key:"updateDisplay",value:function(){var i=(this.getValue()-this.__min)/(this.__max-this.__min);return this.__foreground.style.width=100*i+"%",Ky(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"updateDisplay",this).call(this)}}]),e}(QF),WF=function(n){function e(t,i,r){Ag(this,e);var s=Jy(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,t,i)),o=s;return s.__button=document.createElement("div"),s.__button.innerHTML=void 0===r?"Fire":r,Fi.bind(s.__button,"click",function(l){return l.preventDefault(),o.fire(),!1}),Fi.addClass(s.__button,"button"),s.domElement.appendChild(s.__button),s}return Zy(e,n),gg(e,[{key:"fire",value:function(){this.__onChange&&this.__onChange.call(this),this.getValue().call(this.object),this.__onFinishChange&&this.__onFinishChange.call(this,this.getValue())}}]),e}(ev),p4=function(n){function e(t,i){Ag(this,e);var r=Jy(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,t,i));r.__color=new Ru(r.getValue()),r.__temp=new Ru(0);var s=r;r.domElement=document.createElement("div"),Fi.makeSelectable(r.domElement,!1),r.__selector=document.createElement("div"),r.__selector.className="selector",r.__saturation_field=document.createElement("div"),r.__saturation_field.className="saturation-field",r.__field_knob=document.createElement("div"),r.__field_knob.className="field-knob",r.__field_knob_border="2px solid ",r.__hue_knob=document.createElement("div"),r.__hue_knob.className="hue-knob",r.__hue_field=document.createElement("div"),r.__hue_field.className="hue-field",r.__input=document.createElement("input"),r.__input.type="text",r.__input_textShadow="0 1px 1px ",Fi.bind(r.__input,"keydown",function(re){13===re.keyCode&&A.call(this)}),Fi.bind(r.__input,"blur",A),Fi.bind(r.__selector,"mousedown",function(){Fi.addClass(this,"drag").bind(window,"mouseup",function(){Fi.removeClass(s.__selector,"drag")})}),Fi.bind(r.__selector,"touchstart",function(){Fi.addClass(this,"drag").bind(window,"touchend",function(){Fi.removeClass(s.__selector,"drag")})});var o=document.createElement("div");function l(re){R(re),Fi.bind(window,"mousemove",R),Fi.bind(window,"touchmove",R),Fi.bind(window,"mouseup",u),Fi.bind(window,"touchend",u)}function d(re){G(re),Fi.bind(window,"mousemove",G),Fi.bind(window,"touchmove",G),Fi.bind(window,"mouseup",f),Fi.bind(window,"touchend",f)}function u(){Fi.unbind(window,"mousemove",R),Fi.unbind(window,"touchmove",R),Fi.unbind(window,"mouseup",u),Fi.unbind(window,"touchend",u),S()}function f(){Fi.unbind(window,"mousemove",G),Fi.unbind(window,"touchmove",G),Fi.unbind(window,"mouseup",f),Fi.unbind(window,"touchend",f),S()}function A(){var re=h4(this.value);!1!==re?(s.__color.__state=re,s.setValue(s.__color.toOriginal())):this.value=s.__color.toString()}function S(){s.__onFinishChange&&s.__onFinishChange.call(s,s.__color.toOriginal())}function R(re){-1===re.type.indexOf("touch")&&re.preventDefault();var se=s.__saturation_field.getBoundingClientRect(),le=re.touches&&re.touches[0]||re,We=(le.clientX-se.left)/(se.right-se.left),Mt=1-(le.clientY-se.top)/(se.bottom-se.top);return Mt>1?Mt=1:Mt<0&&(Mt=0),We>1?We=1:We<0&&(We=0),s.__color.v=Mt,s.__color.s=We,s.setValue(s.__color.toOriginal()),!1}function G(re){-1===re.type.indexOf("touch")&&re.preventDefault();var se=s.__hue_field.getBoundingClientRect(),Ce=1-((re.touches&&re.touches[0]||re).clientY-se.top)/(se.bottom-se.top);return Ce>1?Ce=1:Ce<0&&(Ce=0),s.__color.h=360*Ce,s.setValue(s.__color.toOriginal()),!1}return Sr.extend(r.__selector.style,{width:"122px",height:"102px",padding:"3px",backgroundColor:"#222",boxShadow:"0px 1px 3px rgba(0,0,0,0.3)"}),Sr.extend(r.__field_knob.style,{position:"absolute",width:"12px",height:"12px",border:r.__field_knob_border+(r.__color.v<.5?"#fff":"#000"),boxShadow:"0px 1px 3px rgba(0,0,0,0.5)",borderRadius:"12px",zIndex:1}),Sr.extend(r.__hue_knob.style,{position:"absolute",width:"15px",height:"2px",borderRight:"4px solid #fff",zIndex:1}),Sr.extend(r.__saturation_field.style,{width:"100px",height:"100px",border:"1px solid #555",marginRight:"3px",display:"inline-block",cursor:"pointer"}),Sr.extend(o.style,{width:"100%",height:"100%",background:"none"}),Jq(o,"top","rgba(0,0,0,0)","#000"),Sr.extend(r.__hue_field.style,{width:"15px",height:"100px",border:"1px solid #555",cursor:"ns-resize",position:"absolute",top:"3px",right:"3px"}),function lge(n){n.style.background="",n.style.cssText+="background: -moz-linear-gradient(top, #ff0000 0%, #ff00ff 17%, #0000ff 34%, #00ffff 50%, #00ff00 67%, #ffff00 84%, #ff0000 100%);",n.style.cssText+="background: -webkit-linear-gradient(top, #ff0000 0%,#ff00ff 17%,#0000ff 34%,#00ffff 50%,#00ff00 67%,#ffff00 84%,#ff0000 100%);",n.style.cssText+="background: -o-linear-gradient(top, #ff0000 0%,#ff00ff 17%,#0000ff 34%,#00ffff 50%,#00ff00 67%,#ffff00 84%,#ff0000 100%);",n.style.cssText+="background: -ms-linear-gradient(top, #ff0000 0%,#ff00ff 17%,#0000ff 34%,#00ffff 50%,#00ff00 67%,#ffff00 84%,#ff0000 100%);",n.style.cssText+="background: linear-gradient(top, #ff0000 0%,#ff00ff 17%,#0000ff 34%,#00ffff 50%,#00ff00 67%,#ffff00 84%,#ff0000 100%);"}(r.__hue_field),Sr.extend(r.__input.style,{outline:"none",textAlign:"center",color:"#fff",border:0,fontWeight:"bold",textShadow:r.__input_textShadow+"rgba(0,0,0,0.7)"}),Fi.bind(r.__saturation_field,"mousedown",l),Fi.bind(r.__saturation_field,"touchstart",l),Fi.bind(r.__field_knob,"mousedown",l),Fi.bind(r.__field_knob,"touchstart",l),Fi.bind(r.__hue_field,"mousedown",d),Fi.bind(r.__hue_field,"touchstart",d),r.__saturation_field.appendChild(o),r.__selector.appendChild(r.__field_knob),r.__selector.appendChild(r.__saturation_field),r.__selector.appendChild(r.__hue_field),r.__hue_field.appendChild(r.__hue_knob),r.domElement.appendChild(r.__input),r.domElement.appendChild(r.__selector),r.updateDisplay(),r}return Zy(e,n),gg(e,[{key:"updateDisplay",value:function(){var i=h4(this.getValue());if(!1!==i){var r=!1;Sr.each(Ru.COMPONENTS,function(l){if(!Sr.isUndefined(i[l])&&!Sr.isUndefined(this.__color.__state[l])&&i[l]!==this.__color.__state[l])return r=!0,{}},this),r&&Sr.extend(this.__color.__state,i)}Sr.extend(this.__temp.__state,this.__color.__state),this.__temp.a=1;var s=this.__color.v<.5||this.__color.s>.5?255:0,o=255-s;Sr.extend(this.__field_knob.style,{marginLeft:100*this.__color.s-7+"px",marginTop:100*(1-this.__color.v)-7+"px",backgroundColor:this.__temp.toHexString(),border:this.__field_knob_border+"rgb("+s+","+s+","+s+")"}),this.__hue_knob.style.marginTop=100*(1-this.__color.h/360)+"px",this.__temp.s=1,this.__temp.v=1,Jq(this.__saturation_field,"left","#fff",this.__temp.toHexString()),this.__input.value=this.__color.toString(),Sr.extend(this.__input.style,{backgroundColor:this.__color.toHexString(),color:"rgb("+s+","+s+","+s+")",textShadow:this.__input_textShadow+"rgba("+o+","+o+","+o+",.7)"})}}]),e}(ev),age=["-moz-","-o-","-webkit-","-ms-",""];function Jq(n,e,t,i){n.style.background="",Sr.each(age,function(r){n.style.cssText+="background: "+r+"linear-gradient("+e+", "+t+" 0%, "+i+" 100%); "})}var uge=function(e,t){var i=e[t];return Sr.isArray(arguments[2])||Sr.isObject(arguments[2])?new Xq(e,t,arguments[2]):Sr.isNumber(i)?Sr.isNumber(arguments[2])&&Sr.isNumber(arguments[3])?Sr.isNumber(arguments[4])?new f4(e,t,arguments[2],arguments[3],arguments[4]):new f4(e,t,arguments[2],arguments[3]):Sr.isNumber(arguments[4])?new _E(e,t,{min:arguments[2],max:arguments[3],step:arguments[4]}):new _E(e,t,{min:arguments[2],max:arguments[3]}):Sr.isString(i)?new Yq(e,t):Sr.isFunction(i)?new WF(e,t,""):Sr.isBoolean(i)?new qF(e,t):null},fge=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function hge(n){setTimeout(n,1e3/60)},pge=function(){function n(){Ag(this,n),this.backgroundElement=document.createElement("div"),Sr.extend(this.backgroundElement.style,{backgroundColor:"rgba(0,0,0,0.8)",top:0,left:0,display:"none",zIndex:"1000",opacity:0,WebkitTransition:"opacity 0.2s linear",transition:"opacity 0.2s linear"}),Fi.makeFullscreen(this.backgroundElement),this.backgroundElement.style.position="fixed",this.domElement=document.createElement("div"),Sr.extend(this.domElement.style,{position:"fixed",display:"none",zIndex:"1001",opacity:0,WebkitTransition:"-webkit-transform 0.2s ease-out, opacity 0.2s linear",transition:"transform 0.2s ease-out, opacity 0.2s linear"}),document.body.appendChild(this.backgroundElement),document.body.appendChild(this.domElement);var e=this;Fi.bind(this.backgroundElement,"click",function(){e.hide()})}return gg(n,[{key:"show",value:function(){var t=this;this.backgroundElement.style.display="block",this.domElement.style.display="block",this.domElement.style.opacity=0,this.domElement.style.webkitTransform="scale(1.1)",this.layout(),Sr.defer(function(){t.backgroundElement.style.opacity=1,t.domElement.style.opacity=1,t.domElement.style.webkitTransform="scale(1)"})}},{key:"hide",value:function(){var t=this,i=function r(){t.domElement.style.display="none",t.backgroundElement.style.display="none",Fi.unbind(t.domElement,"webkitTransitionEnd",r),Fi.unbind(t.domElement,"transitionend",r),Fi.unbind(t.domElement,"oTransitionEnd",r)};Fi.bind(this.domElement,"webkitTransitionEnd",i),Fi.bind(this.domElement,"transitionend",i),Fi.bind(this.domElement,"oTransitionEnd",i),this.backgroundElement.style.opacity=0,this.domElement.style.opacity=0,this.domElement.style.webkitTransform="scale(1.1)"}},{key:"layout",value:function(){this.domElement.style.left=window.innerWidth/2-Fi.getWidth(this.domElement)/2+"px",this.domElement.style.top=window.innerHeight/2-Fi.getHeight(this.domElement)/2+"px"}}]),n}();!function(e,t){var i=t||document,r=document.createElement("style");r.type="text/css",r.innerHTML=e;var s=i.getElementsByTagName("head")[0];try{s.appendChild(r)}catch{}}(function tge(n){if(n&&!(typeof window>"u")){var e=document.createElement("style");return e.setAttribute("type","text/css"),e.innerHTML=n,document.head.appendChild(e),n}}(".dg ul{list-style:none;margin:0;padding:0;width:100%;clear:both}.dg.ac{position:fixed;top:0;left:0;right:0;height:0;z-index:0}.dg:not(.ac) .main{overflow:hidden}.dg.main{-webkit-transition:opacity .1s linear;-o-transition:opacity .1s linear;-moz-transition:opacity .1s linear;transition:opacity .1s linear}.dg.main.taller-than-window{overflow-y:auto}.dg.main.taller-than-window .close-button{opacity:1;margin-top:-1px;border-top:1px solid #2c2c2c}.dg.main ul.closed .close-button{opacity:1 !important}.dg.main:hover .close-button,.dg.main .close-button.drag{opacity:1}.dg.main .close-button{-webkit-transition:opacity .1s linear;-o-transition:opacity .1s linear;-moz-transition:opacity .1s linear;transition:opacity .1s linear;border:0;line-height:19px;height:20px;cursor:pointer;text-align:center;background-color:#000}.dg.main .close-button.close-top{position:relative}.dg.main .close-button.close-bottom{position:absolute}.dg.main .close-button:hover{background-color:#111}.dg.a{float:right;margin-right:15px;overflow-y:visible}.dg.a.has-save>ul.close-top{margin-top:0}.dg.a.has-save>ul.close-bottom{margin-top:27px}.dg.a.has-save>ul.closed{margin-top:0}.dg.a .save-row{top:0;z-index:1002}.dg.a .save-row.close-top{position:relative}.dg.a .save-row.close-bottom{position:fixed}.dg li{-webkit-transition:height .1s ease-out;-o-transition:height .1s ease-out;-moz-transition:height .1s ease-out;transition:height .1s ease-out;-webkit-transition:overflow .1s linear;-o-transition:overflow .1s linear;-moz-transition:overflow .1s linear;transition:overflow .1s linear}.dg li:not(.folder){cursor:auto;height:27px;line-height:27px;padding:0 4px 0 5px}.dg li.folder{padding:0;border-left:4px solid rgba(0,0,0,0)}.dg li.title{cursor:pointer;margin-left:-4px}.dg .closed li:not(.title),.dg .closed ul li,.dg .closed ul li>*{height:0;overflow:hidden;border:0}.dg .cr{clear:both;padding-left:3px;height:27px;overflow:hidden}.dg .property-name{cursor:default;float:left;clear:left;width:40%;overflow:hidden;text-overflow:ellipsis}.dg .cr.function .property-name{width:100%}.dg .c{float:left;width:60%;position:relative}.dg .c input[type=text]{border:0;margin-top:4px;padding:3px;width:100%;float:right}.dg .has-slider input[type=text]{width:30%;margin-left:0}.dg .slider{float:left;width:66%;margin-left:-5px;margin-right:0;height:19px;margin-top:4px}.dg .slider-fg{height:100%}.dg .c input[type=checkbox]{margin-top:7px}.dg .c select{margin-top:5px}.dg .cr.function,.dg .cr.function .property-name,.dg .cr.function *,.dg .cr.boolean,.dg .cr.boolean *{cursor:pointer}.dg .cr.color{overflow:visible}.dg .selector{display:none;position:absolute;margin-left:-9px;margin-top:23px;z-index:10}.dg .c:hover .selector,.dg .selector.drag{display:block}.dg li.save-row{padding:0}.dg li.save-row .button{display:inline-block;padding:0px 6px}.dg.dialogue{background-color:#222;width:460px;padding:15px;font-size:13px;line-height:15px}#dg-new-constructor{padding:10px;color:#222;font-family:Monaco, monospace;font-size:10px;border:0;resize:none;box-shadow:inset 1px 1px 1px #888;word-wrap:break-word;margin:12px 0;display:block;width:440px;overflow-y:scroll;height:100px;position:relative}#dg-local-explain{display:none;font-size:11px;line-height:17px;border-radius:3px;background-color:#333;padding:8px;margin-top:10px}#dg-local-explain code{font-size:10px}#dat-gui-save-locally{display:none}.dg{color:#eee;font:11px 'Lucida Grande', sans-serif;text-shadow:0 -1px 0 #111}.dg.main::-webkit-scrollbar{width:5px;background:#1a1a1a}.dg.main::-webkit-scrollbar-corner{height:0;display:none}.dg.main::-webkit-scrollbar-thumb{border-radius:5px;background:#676767}.dg li:not(.folder){background:#1a1a1a;border-bottom:1px solid #2c2c2c}.dg li.save-row{line-height:25px;background:#dad5cb;border:0}.dg li.save-row select{margin-left:5px;width:108px}.dg li.save-row .button{margin-left:5px;margin-top:1px;border-radius:2px;font-size:9px;line-height:7px;padding:4px 4px 5px 4px;background:#c5bdad;color:#fff;text-shadow:0 1px 0 #b0a58f;box-shadow:0 -1px 0 #b0a58f;cursor:pointer}.dg li.save-row .button.gears{background:#c5bdad url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAANCAYAAAB/9ZQ7AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAQJJREFUeNpiYKAU/P//PwGIC/ApCABiBSAW+I8AClAcgKxQ4T9hoMAEUrxx2QSGN6+egDX+/vWT4e7N82AMYoPAx/evwWoYoSYbACX2s7KxCxzcsezDh3evFoDEBYTEEqycggWAzA9AuUSQQgeYPa9fPv6/YWm/Acx5IPb7ty/fw+QZblw67vDs8R0YHyQhgObx+yAJkBqmG5dPPDh1aPOGR/eugW0G4vlIoTIfyFcA+QekhhHJhPdQxbiAIguMBTQZrPD7108M6roWYDFQiIAAv6Aow/1bFwXgis+f2LUAynwoIaNcz8XNx3Dl7MEJUDGQpx9gtQ8YCueB+D26OECAAQDadt7e46D42QAAAABJRU5ErkJggg==) 2px 1px no-repeat;height:7px;width:8px}.dg li.save-row .button:hover{background-color:#bab19e;box-shadow:0 -1px 0 #b0a58f}.dg li.folder{border-bottom:0}.dg li.title{padding-left:16px;background:#000 url(data:image/gif;base64,R0lGODlhBQAFAJEAAP////Pz8////////yH5BAEAAAIALAAAAAAFAAUAAAIIlI+hKgFxoCgAOw==) 6px 10px no-repeat;cursor:pointer;border-bottom:1px solid rgba(255,255,255,0.2)}.dg .closed li.title{background-image:url(data:image/gif;base64,R0lGODlhBQAFAJEAAP////Pz8////////yH5BAEAAAIALAAAAAAFAAUAAAIIlGIWqMCbWAEAOw==)}.dg .cr.boolean{border-left:3px solid #806787}.dg .cr.color{border-left:3px solid}.dg .cr.function{border-left:3px solid #e61d5f}.dg .cr.number{border-left:3px solid #2FA1D6}.dg .cr.number input[type=text]{color:#2FA1D6}.dg .cr.string{border-left:3px solid #1ed36f}.dg .cr.string input[type=text]{color:#1ed36f}.dg .cr.function:hover,.dg .cr.boolean:hover{background:#111}.dg .c input[type=text]{background:#303030;outline:none}.dg .c input[type=text]:hover{background:#3c3c3c}.dg .c input[type=text]:focus{background:#494949;color:#fff}.dg .c .slider{background:#303030;cursor:ew-resize}.dg .c .slider-fg{background:#2FA1D6;max-width:100%}.dg .c .slider:hover{background:#3c3c3c}.dg .c .slider:hover .slider-fg{background:#44abda}\n"));var yE="Default",vE=function(){try{return!!window.localStorage}catch{return!1}}(),bE=void 0,iQ=!0,gC=void 0,jF=!1,rQ=[],fc=function n(e){var t=this,i=e||{};this.domElement=document.createElement("div"),this.__ul=document.createElement("ul"),this.domElement.appendChild(this.__ul),Fi.addClass(this.domElement,"dg"),this.__folders={},this.__controllers=[],this.__rememberedObjects=[],this.__rememberedObjectIndecesToControllers=[],this.__listening=[],i=Sr.defaults(i,{closeOnTop:!1,autoPlace:!0,width:n.DEFAULT_WIDTH}),i=Sr.defaults(i,{resizable:i.autoPlace,hideable:i.autoPlace}),Sr.isUndefined(i.load)?i.load={preset:yE}:i.preset&&(i.load.preset=i.preset),Sr.isUndefined(i.parent)&&i.hideable&&rQ.push(this),i.resizable=Sr.isUndefined(i.parent)&&i.resizable,i.autoPlace&&Sr.isUndefined(i.scrollable)&&(i.scrollable=!0);var r=vE&&"true"===localStorage.getItem(_C(0,"isLocal")),s=void 0,o=void 0;if(Object.defineProperties(this,{parent:{get:function(){return i.parent}},scrollable:{get:function(){return i.scrollable}},autoPlace:{get:function(){return i.autoPlace}},closeOnTop:{get:function(){return i.closeOnTop}},preset:{get:function(){return t.parent?t.getRoot().preset:i.load.preset},set:function(S){t.parent?t.getRoot().preset=S:i.load.preset=S,function yge(n){for(var e=0;e1){var l=t.__li.nextElementSibling;return t.remove(),xE(n,t.object,t.property,{before:l,factoryArgs:[Sr.toArray(arguments)]})}if(Sr.isArray(o)||Sr.isObject(o)){var d=t.__li.nextElementSibling;return t.remove(),xE(n,t.object,t.property,{before:d,factoryArgs:[o]})}},name:function(o){return t.__li.firstElementChild.firstElementChild.innerHTML=o,t},listen:function(){return t.__gui.listen(t),t},remove:function(){return t.__gui.remove(t),t}}),t instanceof f4){var i=new _E(t.object,t.property,{min:t.__min,max:t.__max,step:t.__step});Sr.each(["updateDisplay","onChange","onFinishChange","step","min","max"],function(s){var o=t[s],l=i[s];t[s]=i[s]=function(){var d=Array.prototype.slice.call(arguments);return l.apply(i,d),o.apply(t,d)}}),Fi.addClass(e,"has-slider"),t.domElement.insertBefore(i.domElement,t.domElement.firstElementChild)}else if(t instanceof _E){var r=function(o){if(Sr.isNumber(t.__min)&&Sr.isNumber(t.__max)){var l=t.__li.firstElementChild.firstElementChild.innerHTML,d=t.__gui.__listening.indexOf(t)>-1;t.remove();var u=xE(n,t.object,t.property,{before:t.__li.nextElementSibling,factoryArgs:[t.__min,t.__max,t.__step]});return u.name(l),d&&u.listen(),u}return o};t.min=Sr.compose(r,t.min),t.max=Sr.compose(r,t.max)}else t instanceof qF?(Fi.bind(e,"click",function(){Fi.fakeEvent(t.__checkbox,"click")}),Fi.bind(t.__checkbox,"click",function(s){s.stopPropagation()})):t instanceof WF?(Fi.bind(e,"click",function(){Fi.fakeEvent(t.__button,"click")}),Fi.bind(e,"mouseover",function(){Fi.addClass(t.__button,"hover")}),Fi.bind(e,"mouseout",function(){Fi.removeClass(t.__button,"hover")})):t instanceof p4&&(Fi.addClass(e,"color"),t.updateDisplay=Sr.compose(function(s){return e.style.borderLeftColor=t.__color.toString(),s},t.updateDisplay),t.updateDisplay());t.setValue=Sr.compose(function(s){return n.getRoot().__preset_select&&t.isModified()&&XF(n.getRoot(),!0),s},t.setValue)}(n,d,r),n.__controllers.push(r),r}function _C(n,e){return document.location.href+"."+e}function YF(n,e,t){var i=document.createElement("option");i.innerHTML=e,i.value=e,n.__preset_select.appendChild(i),t&&(n.__preset_select.selectedIndex=n.__preset_select.length-1)}function aQ(n,e){e.style.display=n.useLocalStorage?"block":"none"}function KF(n,e){n.domElement.style.width=e+"px",n.__save_row&&n.autoPlace&&(n.__save_row.style.width=e+"px"),n.__closeButton&&(n.__closeButton.style.width=e+"px")}function m4(n,e){var t={};return Sr.each(n.__rememberedObjects,function(i,r){var s={};Sr.each(n.__rememberedObjectIndecesToControllers[r],function(l,d){s[d]=e?l.initialValue:l.getValue()}),t[r]=s}),t}function lQ(n){0!==n.length&&fge.call(window,function(){lQ(n)}),Sr.each(n,function(e){e.updateDisplay()})}fc.toggleHide=function(){jF=!jF,Sr.each(rQ,function(n){n.domElement.style.display=jF?"none":""})},fc.CLASS_AUTO_PLACE="a",fc.CLASS_AUTO_PLACE_CONTAINER="ac",fc.CLASS_MAIN="main",fc.CLASS_CONTROLLER_ROW="cr",fc.CLASS_TOO_TALL="taller-than-window",fc.CLASS_CLOSED="closed",fc.CLASS_CLOSE_BUTTON="close-button",fc.CLASS_CLOSE_TOP="close-top",fc.CLASS_CLOSE_BOTTOM="close-bottom",fc.CLASS_DRAG="drag",fc.DEFAULT_WIDTH=245,fc.TEXT_CLOSED="Close Controls",fc.TEXT_OPEN="Open Controls",fc._keydownHandler=function(n){"text"!==document.activeElement.type&&(72===n.which||72===n.keyCode)&&fc.toggleHide()},Fi.bind(window,"keydown",fc._keydownHandler,!1),Sr.extend(fc.prototype,{add:function(e,t){return xE(this,e,t,{factoryArgs:Array.prototype.slice.call(arguments,2)})},addColor:function(e,t){return xE(this,e,t,{color:!0})},remove:function(e){this.__ul.removeChild(e.__li),this.__controllers.splice(this.__controllers.indexOf(e),1);var t=this;Sr.defer(function(){t.onResize()})},destroy:function(){if(this.parent)throw new Error("Only the root GUI should be removed with .destroy(). For subfolders, use gui.removeFolder(folder) instead.");this.autoPlace&&gC.removeChild(this.domElement);var e=this;Sr.each(this.__folders,function(t){e.removeFolder(t)}),Fi.unbind(window,"keydown",fc._keydownHandler,!1),sQ(this)},addFolder:function(e){if(void 0!==this.__folders[e])throw new Error('You already have a folder in this GUI by the name "'+e+'"');var t={name:e,parent:this};t.autoPlace=this.autoPlace,this.load&&this.load.folders&&this.load.folders[e]&&(t.closed=this.load.folders[e].closed,t.load=this.load.folders[e]);var i=new fc(t);this.__folders[e]=i;var r=$F(this,i.domElement);return Fi.addClass(r,"folder"),i},removeFolder:function(e){this.__ul.removeChild(e.domElement.parentElement),delete this.__folders[e.name],this.load&&this.load.folders&&this.load.folders[e.name]&&delete this.load.folders[e.name],sQ(e);var t=this;Sr.each(e.__folders,function(i){e.removeFolder(i)}),Sr.defer(function(){t.onResize()})},open:function(){this.closed=!1},close:function(){this.closed=!0},hide:function(){this.domElement.style.display="none"},show:function(){this.domElement.style.display=""},onResize:function(){var e=this.getRoot();if(e.scrollable){var t=Fi.getOffset(e.__ul).top,i=0;Sr.each(e.__ul.childNodes,function(r){e.autoPlace&&r===e.__save_row||(i+=Fi.getHeight(r))}),window.innerHeight-t-20GUI\'s constructor:\n\n \n\n
\n\n Automatically save\n values to localStorage on exit.\n\n
The values saved to localStorage will\n override those passed to dat.GUI\'s constructor. This makes it\n easier to work incrementally, but localStorage is fragile,\n and your friends may not see the same values you do.\n\n
\n\n
\n\n
'),this.parent)throw new Error("You can only call remember on a top level GUI.");var e=this;Sr.each(Array.prototype.slice.call(arguments),function(t){0===e.__rememberedObjects.length&&function gge(n){var e=n.__save_row=document.createElement("li");Fi.addClass(n.domElement,"has-save"),n.__ul.insertBefore(e,n.__ul.firstChild),Fi.addClass(e,"save-row");var t=document.createElement("span");t.innerHTML=" ",Fi.addClass(t,"button gears");var i=document.createElement("span");i.innerHTML="Save",Fi.addClass(i,"button"),Fi.addClass(i,"save");var r=document.createElement("span");r.innerHTML="New",Fi.addClass(r,"button"),Fi.addClass(r,"save-as");var s=document.createElement("span");s.innerHTML="Revert",Fi.addClass(s,"button"),Fi.addClass(s,"revert");var o=n.__preset_select=document.createElement("select");if(n.load&&n.load.remembered?Sr.each(n.load.remembered,function(A,S){YF(n,S,S===n.preset)}):YF(n,yE,!1),Fi.bind(o,"change",function(){for(var A=0;A0&&(e.preset=this.preset,e.remembered||(e.remembered={}),e.remembered[this.preset]=m4(this)),e.folders={},Sr.each(this.__folders,function(t,i){e.folders[i]=t.getSaveObject()}),e},save:function(){this.load.remembered||(this.load.remembered={}),this.load.remembered[this.preset]=m4(this),XF(this,!1),this.saveToLocalStorageIfPossible()},saveAs:function(e){this.load.remembered||(this.load.remembered={},this.load.remembered[yE]=m4(this,!0)),this.load.remembered[e]=m4(this),this.preset=e,YF(this,e,!0),this.saveToLocalStorageIfPossible()},revert:function(e){Sr.each(this.__controllers,function(t){this.getRoot().load.remembered?oQ(e||this.getRoot(),t):t.setValue(t.initialValue),t.__onFinishChange&&t.__onFinishChange.call(t,t.getValue())},this),Sr.each(this.__folders,function(t){t.revert(t)}),e||XF(this.getRoot(),!1)},listen:function(e){var t=0===this.__listening.length;this.__listening.push(e),t&&lQ(this.__listening)},updateDisplay:function(){Sr.each(this.__controllers,function(e){e.updateDisplay()}),Sr.each(this.__folders,function(e){e.updateDisplay()})}});var cQ=fc;class dQ{constructor(e="eventDisplay",t){var i;this.three=t,this.guiParameters={rotate:void 0,axis:void 0,lowRes:void 0,eventData:void 0,geometries:void 0,labels:void 0},this.maxPositionX=4e3,this.maxPositionY=4e3,this.maxPositionZ=4e3,this.gui=new cQ,this.gui.domElement.id="gui",this.gui.domElement.style.cssText="position: absolute; right: 0; top: 2rem; z-index: 11;",(null!==(i=document.getElementById(e))&&void 0!==i?i:document.body).appendChild(this.gui.domElement),this.geomFolder=null,this.eventFolder=null,this.labelsFolder=null,this.sceneManager=t.getSceneManager()}clear(){const e=document.getElementById("gui");e?.remove(),this.geomFolder=null}addGeometryFolder(){null===this.geomFolder&&(this.geomFolder=this.gui.addFolder(el.GEOMETRIES_ID)),this.guiParameters.geometries={show:!0,wireframe:!1},this.geomFolder.add(this.guiParameters.geometries,"show").name("Show").listen().onChange(i=>{this.sceneManager.objectVisibility(this.sceneManager.getObjectByName(el.GEOMETRIES_ID),i)}),this.geomFolder.add(this.guiParameters.geometries,"wireframe").name("Wireframe").listen().onChange(i=>{this.sceneManager.wireframeGeometries(i)})}addGeometry(e,t){const{name:i,material:r,visible:s}=e,o=r?.color;this.guiParameters[i]={show:s,color:o??"#000000",x:0,y:0,z:0,detectorOpacity:1,remove:this.removeOBJ(e),scale:1};const l=this.geomFolder.addFolder(i);l.addColor(this.guiParameters[i],"color").name("Color").onChange(S=>this.sceneManager.changeObjectColor(e,S)),l.add(this.guiParameters[i],"detectorOpacity",0,1).name("Opacity").onFinishChange(S=>this.sceneManager.setGeometryOpacity(e,S)),l.add(this.guiParameters[i],"show").name("Show").listen().onChange(S=>this.sceneManager.objectVisibility(e,S)),l.add(this.guiParameters[i],"scale",0,1e3).name("Scale").onChange(S=>{this.sceneManager.scaleObject(e,S)}),l.add(this.guiParameters[i],"x",-this.maxPositionX,this.maxPositionX).name("X").onChange(S=>this.sceneManager.getObjectPosition(i).setX(S)),l.add(this.guiParameters[i],"y",-this.maxPositionY,this.maxPositionY).name("Y").onChange(S=>this.sceneManager.getObjectPosition(i).setY(S)),l.add(this.guiParameters[i],"z",-this.maxPositionZ,this.maxPositionZ).name("Z").onChange(S=>this.sceneManager.getObjectPosition(i).setZ(S)),l.add(this.guiParameters[i],"remove").name("Remove")}removeOBJ(e){return()=>{const t=this.geomFolder.__folders[e.name];t&&this.geomFolder.removeFolder(t),this.sceneManager.removeGeometry(e)}}addEventDataFolder(){null!==this.eventFolder&&this.gui.removeFolder(this.eventFolder),this.eventFolder=this.gui.addFolder("Event Data"),this.guiParameters.eventData={show:!0,depthTest:!0},this.eventFolder.add(this.guiParameters.eventData,"show").name("Show").listen().onChange(i=>this.sceneManager.groupVisibility(el.EVENT_DATA_ID,i)),this.eventFolder.add(this.guiParameters.eventData,"depthTest").name("Depth Test").listen().onChange(i=>this.three.eventDataDepthTest(i))}addEventDataTypeFolder(e){const t=this.eventFolder.addFolder(e);this.guiParameters.eventData[e]=!0,t.add(this.guiParameters.eventData,e).name("Show").listen().onChange(r=>this.sceneManager.objectVisibility(this.sceneManager.getObjectByName(el.EVENT_DATA_ID).getObjectByName(e),r))}addCollection(e,t,i,r){const s=this.eventFolder.__folders[e];if(!s)return;this.guiParameters[t]={show:!0,color:0,randomColor:()=>this.three.getColorManager().collectionColorRandom(t),resetCut:()=>this.sceneManager.groupVisibility(t,!0,el.EVENT_DATA_ID)};const o=s.addFolder(t);o.add(this.guiParameters[t],"show").name("Show").listen().onChange(u=>{const f=this.sceneManager.getObjectByName(el.EVENT_DATA_ID).getObjectByName(t);this.sceneManager.objectVisibility(f,u)});const d=o.addColor(this.guiParameters[t],"color").name("Color");if(d.onChange(u=>this.three.getColorManager().collectionColor(t,u)),d.setValue(r?.getHex()),o.add(this.guiParameters[t],"randomColor").name("Random Color"),i){const u=o.addFolder("Cuts");u.add(this.guiParameters[t],"resetCut").name("Reset cuts");for(const f of i)u.add({minValue:f.minValue},"minValue",f.minValue,f.maxValue).name("min "+f.field).onChange(R=>{f.minValue=R,this.sceneManager.collectionFilter(t,i)}),u.add({maxValue:f.maxValue},"maxValue",f.minValue,f.maxValue).name("max "+f.field).onChange(R=>{f.maxValue=R,this.sceneManager.collectionFilter(t,i)})}}addLabelsFolder(e){if(null!==this.labelsFolder)return;const{onToggle:t,onSizeChange:i,onColorChange:r,onSaveLabels:s,onLoadLabels:o}=e;this.labelsFolder=this.gui.addFolder(el.LABELS_ID),this.guiParameters.labels={show:!0,size:1,color:"#a8a8a8",saveLabels:s,loadLabels:o},this.labelsFolder.add(this.guiParameters.labels,"show").name("Show").listen().onChange(t),this.labelsFolder.add(this.guiParameters.labels,"size",0,10).name("Size").onFinishChange(i),this.labelsFolder.addColor(this.guiParameters.labels,"color").name("Color").onChange(r),this.labelsFolder.add(this.guiParameters.labels,"saveLabels").name("Save Labels"),this.labelsFolder.add(this.guiParameters.labels,"loadLabels").name("Load Labels")}addLabel(e,t){this.guiParameters[e]={show:!0,color:11513775};const i=this.labelsFolder.addFolder(e);i.add(this.guiParameters[e],"show").name("Show").listen().onChange(o=>{const l=this.sceneManager.getObjectByName(el.LABELS_ID).getObjectByName(e);this.sceneManager.objectVisibility(l,o)}),i.addColor(this.guiParameters[e],"color").name("\xc7olor").onChange(o=>this.sceneManager.changeObjectColor(this.sceneManager.getObjectByName(e),o)),this.guiParameters[e].removeLabel=()=>{t?.(),this.removeLabel(e,i)},i.add(this.guiParameters[e],"removeLabel").name("Remove")}removeLabel(e,t){t||(t=this.labelsFolder.__folders[e]),t&&this.labelsFolder.removeFolder(t)}getEventDataTypeFolder(e){return this.eventFolder.__folders[e]}}var Am=function(n){return n.CHARGE="charge",n.MOM="mom",n.VERTEX="vertex",n}(Am||{});class Cge{constructor(e,t,i,r){this.colorManager=e,this.allColorByOptions=[{key:Am.CHARGE,name:"Charge "+Xy.getPrettySymbol("charge"),initialize:this.initChargeColorOptions.bind(this),apply:this.applyChargeColorOptions.bind(this)},{key:Am.MOM,name:"Momentum "+Xy.getPrettySymbol("mom"),initialize:this.initMomColorOptions.bind(this),apply:this.applyMomColorOptions.bind(this)},{key:Am.VERTEX,name:"Vertex",apply:this.applyVertexColorOptions.bind(this)}],this.chargeColors={"-1":"#ff0000",0:"#ff0000",1:"#ff0000"},this.momColors={min:{value:0,color:"#ff0000"},max:{value:5e4,color:"#ff0000"}},this.collectionName=t.name,this.colorOptionsFolder=t.addChild("Color Options"),this.colorOptionsFolder.addConfig("color",{label:"Color",color:i?`#${i?.getHexString()}`:void 0,onChange:s=>this.colorManager.collectionColor(this.collectionName,s)}),this.colorOptionsFolder.addConfig("button",{label:"Random",onClick:()=>this.colorManager.collectionColorRandom(this.collectionName)}),r?.length>0&&(this.colorByOptions=this.allColorByOptions.filter(s=>r.includes(s.key)),this.initColorByOptions(),this.colorByOptions.forEach(s=>{var o;return null===(o=s.initialize)||void 0===o?void 0:o.call(s)}),this.onlySelectedColorByOption())}initColorByOptions(){this.selectedColorByOption=this.colorByOptions[0].key,this.colorOptionsFolder.addConfig("select",{label:"Color by",options:this.colorByOptions.map(e=>e.name),onChange:e=>{var t;const i=this.colorByOptions.find(r=>r.name===e);this.selectedColorByOption=i?.key,null===(t=i?.apply)||void 0===t||t.call(i),this.onlySelectedColorByOption()}})}initChargeColorOptions(){[-1,0,1].forEach(e=>{this.colorOptionsFolder.addConfig("color",{label:`${Xy.getPrettySymbol("charge")}=${e}`,group:Am.CHARGE,color:this.chargeColors[e],onChange:t=>{this.chargeColors[e]=t,this.selectedColorByOption===Am.CHARGE&&this.colorManager.colorObjectsByProperty(t,this.collectionName,i=>this.shouldColorByCharge(i,e))}})})}applyChargeColorOptions(){[-1,0,1].forEach(e=>{this.colorManager.colorObjectsByProperty(this.chargeColors[e],this.collectionName,t=>this.shouldColorByCharge(t,e))})}shouldColorByCharge(e,t){var i;return Math.sign(1/parseInt(null===(i=e?.dparams)||void 0===i?void 0:i[4]))===t||e?.charge===t||void 0}initMomColorOptions(){Object.entries(this.momColors).forEach(([e,t])=>{this.colorOptionsFolder.addConfig("slider",{label:Xy.getPrettySymbol("mom")+" "+e,group:Am.MOM,min:this.momColors.min.value,max:this.momColors.max.value,value:this.momColors[e].value,step:10,allowCustomValue:!0,onChange:i=>{this.momColors[e].value=i,this.selectedColorByOption===Am.MOM&&(this.colorByMomentum("min"),this.colorByMomentum("max"))}}),this.colorOptionsFolder.addConfig("color",{label:Xy.getPrettySymbol("mom")+" "+e+" color",group:Am.MOM,color:t.color,onChange:i=>{this.momColors[e].color=i,this.selectedColorByOption===Am.MOM&&this.colorByMomentum(e)}})})}applyMomColorOptions(){this.colorByMomentum("min"),this.colorByMomentum("max")}colorByMomentum(e){this.colorManager.colorObjectsByProperty(this.momColors[e].color,this.collectionName,t=>{const i=this.getMomentum(t),r=(this.momColors.min.value+this.momColors.max.value)/2;return"max"===e&&i>r&&ithis.momColors.min.value||void 0})}getMomentum(e){var t,i;return null!==(t=e?.dparams)&&void 0!==t&&t[4]?Math.abs(1/parseFloat(null===(i=e?.dparams)||void 0===i?void 0:i[4])):e?.mom}applyVertexColorOptions(){this.colorManager.colorTracksByVertex(this.collectionName)}onlySelectedColorByOption(){this.colorOptionsFolder.configs.forEach(e=>{e.hidden=void 0!==e.group&&e.group!==this.selectedColorByOption})}}class ZF{constructor(e,t){this.phoenixMenuRoot=e,this.three=t,this.geomFolder=null,this.eventFolder=null,this.labelsFolder=null,this.sceneManager=t.getSceneManager()}clear(){this.phoenixMenuRoot&&(this.phoenixMenuRoot.truncate(),this.phoenixMenuRoot=void 0),this.geomFolder=null,this.eventFolder=null,this.labelsFolder=null}addGeometryFolder(){null===this.geomFolder&&(this.geomFolder=this.phoenixMenuRoot.addChild("Detector",e=>{this.sceneManager.groupVisibility(el.GEOMETRIES_ID,e)},"perspective")),this.geomFolder.addConfig("checkbox",{label:"Wireframe",isChecked:!1,onChange:e=>{this.sceneManager.wireframeGeometries(e)}}).addConfig("slider",{label:"Opacity",min:0,max:1,step:.01,allowCustomValue:!0,onChange:e=>{this.sceneManager.setGeometryOpacity(this.sceneManager.getObjectByName(el.GEOMETRIES_ID),e)}}).addConfig("slider",{label:"Scale",min:0,max:20,step:.01,allowCustomValue:!0,onChange:e=>{this.sceneManager.scaleObject(this.sceneManager.getObjectByName(el.GEOMETRIES_ID),e)}})}addGeometry(e,t){const{name:i,material:r,visible:s}=e,o=r?.color;let l=this.geomFolder;t&&(l=this.geomFolder.findInTreeOrCreate(t));let d=i.lastIndexOf(" > ");d<0?d=0:d+=3;const u=l.addChild(i.substring(d),f=>{this.sceneManager.objectVisibility(e,f)});u.toggleState=s,u.addConfig("color",{label:"Color",color:o?`#${new Cr(o).getHexString()}`:void 0,onChange:f=>{this.sceneManager.changeObjectColor(e,f)}}).addConfig("slider",{label:"Opacity",min:0,max:1,step:.05,allowCustomValue:!0,onChange:f=>{this.sceneManager.setGeometryOpacity(e,f)}}).addConfig("button",{label:"Remove",onClick:()=>{u.remove(),this.sceneManager.removeGeometry(e)}})}addEventDataFolder(){null!==this.eventFolder&&(this.eventFolderState=this.eventFolder.getNodeState(),this.eventFolder.remove()),this.eventFolder=this.phoenixMenuRoot.addChild("Event Data",e=>{this.sceneManager.groupVisibility(el.EVENT_DATA_ID,e)},"event-folder"),this.eventFolder.addConfig("checkbox",{label:"Depth Test",isChecked:!0,onChange:e=>{this.three.eventDataDepthTest(e)}})}addEventDataTypeFolder(e){this.eventFolder.addChild(e,t=>{this.sceneManager.objectVisibility(this.sceneManager.getObjectByName(el.EVENT_DATA_ID).getObjectByName(e),t)})}addCollection(e,t,i,r){const s=this.eventFolder.children.find(d=>d.name===e);if(!s)return;const o=s.addChild(t,d=>{const u=this.sceneManager.getObjectByName(el.EVENT_DATA_ID).getObjectByName(t);this.sceneManager.objectVisibility(u,d)});this.addDrawOptions(o,t),i&&i.length>0&&this.addCutOptions(o,t,i);const l=[];"Tracks"===s.name&&l.push(Am.CHARGE,Am.MOM,Am.VERTEX),new Cge(this.three.getColorManager(),o,r,l)}addCutOptions(e,t,i){const r=e.addChild("Cut Options");r.addConfig("label",{label:"Cuts"}).addConfig("button",{label:"Reset cuts",onClick:()=>{this.sceneManager.groupVisibility(t,!0,el.EVENT_DATA_ID);for(const s of i)s.reset()}});for(const s of i)r.addConfig("rangeSlider",{label:Xy.getPrettySymbol(s.field),min:s.minValue,max:s.maxValue,step:s.step,value:s.minValue,highValue:s.maxValue,enableMin:s.minCutActive,enableMax:s.maxCutActive,onChange:({value:o,highValue:l})=>{s.minValue=o,s.maxValue=l,this.sceneManager.collectionFilter(t,i)},setEnableMin:o=>{s.enableMinCut(o),this.sceneManager.collectionFilter(t,i)},setEnableMax:o=>{s.enableMaxCut(o),this.sceneManager.collectionFilter(t,i)}})}addDrawOptions(e,t){const i=e.addChild("Draw Options");i.addConfig("slider",{label:"Opacity",min:.1,step:.1,max:1,onChange:r=>{const s=this.sceneManager.getObjectByName(el.EVENT_DATA_ID);if(s){const o=s.getObjectByName(t);o&&this.sceneManager.setGeometryOpacity(o,r)}}}),i.addConfig("checkbox",{label:"Wireframe",onChange:r=>this.sceneManager.wireframeObjects(this.sceneManager.getObjectByName(el.EVENT_DATA_ID).getObjectByName(t),r)})}addLabelsFolder(e){if(null!==this.labelsFolder)return;const{onToggle:t,onSizeChange:i,onColorChange:r,onSaveLabels:s,onLoadLabels:o}=e;this.labelsFolder=this.phoenixMenuRoot.addChild(el.LABELS_ID,t,"info"),this.labelsFolder.addConfig("slider",{label:"Size",min:0,max:10,step:.01,allowCustomValue:!0,onChange:i}),this.labelsFolder.addConfig("color",{label:"Color",color:"#a8a8a8",onChange:r}),this.labelsFolder.addConfig("button",{label:"Save Labels",onClick:s}),this.labelsFolder.addConfig("button",{label:"Load Labels",onClick:o})}addLabel(e,t){let i=this.labelsFolder.children.find(r=>r.name===e);i||(i=this.labelsFolder.addChild(e,r=>{const s=this.sceneManager.getObjectByName(el.LABELS_ID).getObjectByName(e);this.sceneManager.objectVisibility(s,r)}),i.addConfig("color",{label:"Color",color:"#a8a8a8",onChange:r=>{this.sceneManager.changeObjectColor(this.sceneManager.getObjectByName(e),r)}}),i.addConfig("button",{label:"Remove",onClick:()=>{t?.(),this.removeLabel(e,i)}}))}removeLabel(e,t){var i;t||(t=null===(i=this.labelsFolder)||void 0===i?void 0:i.children.find(r=>r.name===e)),t?.remove()}getEventDataTypeFolder(e){return this.eventFolder.children.find(t=>t.name===e)}loadEventFolderState(){this.eventFolderState&&this.eventFolder.loadStateFromJSON(this.eventFolderState)}}const uQ=n=>{try{return localStorage.getItem(n)}catch(e){console.warn("Exception in localStorage",e)}},Sge=[{name:"Cavern to ID",positions:[{position:[66388.95051168812,5264.228603228927,-46910.7848593543],duration:1e3},{position:[12834.18729094943,677.7571205763458,135.68755273443463],duration:2e3},{position:[312.02688693297375,25.884223757326,270.10019006776236],duration:3500},{position:[263.3640855132258,19.874838262525053,-318.16541790248885],duration:3e3},{position:[5534.140362338047,234.03507981484574,-2933.619479808285],duration:2e3},{position:[2681.277288705242,646.5795158318147,5628.5248735111745],duration:1e3},{position:[-6062.586283740076,790.5876682946184,1381.1675900848818],duration:1e3},{position:[-1766.7693725879053,1007.1048030984678,-5928.901341784575],duration:1e3},{position:[12814.982506255355,2516.987185037266,-22891.902734328327],duration:1e3}],animateEventAfterInterval:5e3,collisionDuration:6e3}];class Ege{constructor(e){this.three=e,this.uiMenus=[],this.geomFolderAdded=!1,this.labelsFolderAdded=!1}init(e){this.clearUI(),this.configuration=e,this.showStats(e.elementId),this.uiMenus=[],e.enableDatGUIMenu&&this.uiMenus.push(new dQ(e.elementId,this.three)),e.phoenixMenuRoot&&this.uiMenus.push(new ZF(e.phoenixMenuRoot,this.three)),e.forceColourTheme?this.setDarkTheme("dark"==e.forceColourTheme.toLocaleLowerCase()):this.detectColorScheme(),this.stateManager=new fA,this.stateManager.setPhoenixMenuRoot(e.phoenixMenuRoot)}showStats(e="eventDisplay"){this.stats=ege(),this.stats.showPanel(0),this.stats.dom.className="ui-element",this.stats.dom.id="statsElement",this.stats.domElement.style.cssText="position: absolute; left: 0px; cursor: pointer; opacity: 0.9; z-index: 10; bottom: 0px;";let t=document.getElementById(e);null==t&&(t=document.body),t.appendChild(this.stats.dom)}updateUI(){this.stats.update()}clearUI(){this.uiMenus.forEach(e=>e.clear()),this.geomFolderAdded=!1,this.labelsFolderAdded=!1}addGeomFolder(){this.geomFolderAdded=!0,this.uiMenus.forEach(e=>e.addGeometryFolder())}addGeometry(e,t){this.geomFolderAdded||this.addGeomFolder(),this.uiMenus.forEach(i=>i.addGeometry(e,t))}addEventDataFolder(){this.uiMenus.forEach(e=>e.addEventDataFolder())}addEventDataTypeFolder(e){this.uiMenus.forEach(t=>t.addEventDataTypeFolder(e))}addCollection(e,t,i,r){this.uiMenus.forEach(s=>s.addCollection(e,t,i,r))}addLabelsFolder(){const e=this.three.getSceneManager();this.labelsFolderAdded=!0;const t=l=>{e.objectVisibility(e.getObjectByName(el.LABELS_ID),l)},i=l=>{const d=e.getObjectByName(el.LABELS_ID);e.scaleObject(d,l)},r=l=>{const d=e.getObjectByName(el.LABELS_ID);e.changeObjectColor(d,l)},s=()=>{var l,d;const u=null===(d=null===(l=this.configuration)||void 0===l?void 0:l.eventDataLoader)||void 0===d?void 0:d.getLabelsObject();u&&l4(JSON.stringify(u),"phoenix-labels.json")},o=()=>{this.loadLabelsFile()};this.uiMenus.forEach(l=>l.addLabelsFolder({onToggle:t,onSizeChange:i,onColorChange:r,onSaveLabels:s,onLoadLabels:o}))}addLabel(e){this.labelsFolderAdded||this.addLabelsFolder(),this.uiMenus.forEach(t=>t?.addLabel(e,()=>this.removeLabel(e)))}removeLabel(e,t){var i,r,s;this.three.getSceneManager().removeLabel(e);const o=e.split(" > "),l=null===(i=this.configuration.eventDataLoader)||void 0===i?void 0:i.getLabelsObject();null===(s=null===(r=l?.[o[0]])||void 0===r?void 0:r[o[1]])||void 0===s||delete s[o[2]],t&&this.uiMenus.forEach(d=>d.removeLabel(e))}geometryVisibility(e,t){const i=this.three.getSceneManager();i.objectVisibility(i.getObjectByName(e),t)}rotateStartAngleClipping(e){const t=this.stateManager.getOpeningClippingAngle();this.three.setClippingAngle(e,t),this.stateManager.setStartClippingAngle(e)}rotateOpeningAngleClipping(e){const t=this.stateManager.getStartClippingAngle();this.three.setClippingAngle(t,e),this.stateManager.setOpeningClippingAngle(e)}setClipping(e){this.three.setClipping(e),this.stateManager.setClippingEnabled(e)}detectColorScheme(){let e=!1;uQ("theme")?"dark"===uQ("theme")&&(e=!0):window.matchMedia&&matchMedia("(prefers-color-scheme: dark)").matches&&(e=!0),this.darkTheme=e,this.setDarkTheme(e)}setDarkTheme(e){const t=e?"dark":"light";((n,e)=>{try{localStorage.setItem("theme",e)}catch(t){console.warn("Exception in localStorage",t)}})(0,t),document.documentElement.setAttribute("data-theme",t),this.three.setDarkColor(e)}getDarkTheme(){return this.darkTheme}setAutoRotate(e){this.three.autoRotate(e)}setShowAxis(e){this.three.getSceneManager().setAxis(e)}translateCartesianGrid(e){this.three.getSceneManager().translateCartesianGrid(e)}translateCartesianLabels(e){this.three.getSceneManager().translateCartesianLabels(e)}showLabels(e){this.three.getSceneManager().showLabels(e)}setShowCartesianGrid(e,t,i){typeof i>"u"?this.three.getSceneManager().setCartesianGrid(e,t):this.three.getSceneManager().setCartesianGrid(e,t,i)}getCartesianGridConfig(){return this.three.getSceneManager().getCartesianGridConfig()}setShowEtaPhiGrid(e){this.three.getSceneManager().setEtaPhiGrid(e)}show3DMousePoints(e){this.three.show3DMousePoints(e)}show3DDistance(e){this.three.show3DDistance(e)}shiftCartesianGridByPointer(){this.three.shiftCartesianGrid()}getPresetViews(){var e;return null===(e=this.configuration)||void 0===e?void 0:e.presetViews}getPresetAnimations(){var e,t;return null!==(e=this.configuration)&&void 0!==e&&e.presetAnimations?null===(t=this.configuration)||void 0===t?void 0:t.presetAnimations:Sge}displayView(e){this.three.animateCameraTransform(e.cameraPos,e.cameraTarget,1e3),e.clipping!=mC.NotForced&&(this.rotateStartAngleClipping(e.clippingStartAngle),this.rotateOpeningAngleClipping(e.clippingOpeningAngle),this.setClipping(e.clipping==mC.On))}toggleOrthographicView(e){this.three.swapCameras(e)}setOverlayRenderer(e){this.three.setOverlayRenderer(e)}enableKeyboardControls(){document.addEventListener("keydown",e=>{var t,i,r;if(!["input","textarea"].includes(null===(t=e.target)||void 0===t?void 0:t.tagName.toLowerCase())&&e.shiftKey&&("KeyT"===e.code&&this.setDarkTheme(!this.getDarkTheme()),null!==(i=this.configuration)&&void 0!==i&&i.presetViews&&e.code.startsWith("Digit"))){const o=parseInt(e.code.slice(-1))-1;null!==(r=this.configuration.presetViews)&&void 0!==r&&r[o]&&this.displayView(this.configuration.presetViews[o])}})}loadLabelsFile(){var e;const t=null===(e=this.configuration)||void 0===e?void 0:e.eventDataLoader,i=t?.getLabelsObject();t&&i&&wq(r=>{const s=JSON.parse(r);for(const o of Object.keys(s))for(const l of Object.keys(s[o])){const d=t.getCollection(l);for(const u of Object.keys(s[o][l])){const f=s[o][l][u],A=d[u].uuid,S=t.addLabelToEventObject(f,l,Number(u));this.addLabel(S),this.three.addLabelToObject(f,A,S)}}})}loadEventFolderPhoenixMenuState(){const e=this.uiMenus.find(t=>t instanceof ZF);e?.loadEventFolderState()}getUIMenus(){return this.uiMenus}}class Tge{constructor(){this.infoLoggerList=[],this.maxEntries=10}add(e,t){this.infoLoggerList.length>this.maxEntries&&this.infoLoggerList.pop(),this.infoLoggerList.unshift(t?t+": "+e:e)}getInfoLoggerList(){return this.infoLoggerList}}class Cl{constructor(e,t,i,r=1,s=!0,o=!0){this.field=e,this.minValue=t,this.maxValue=i,this.step=r,this.minCutActive=s,this.maxCutActive=o,this.defaultMinValue=t,this.defaultMaxValue=i,this.defaultApplyMinValue=s,this.defaultApplyMaxValue=o}enableMaxCut(e){this.maxCutActive=e}enableMinCut(e){this.minCutActive=e}cutPassed(e){return(!this.maxCutActive||e<=this.maxValue)&&(!this.minCutActive||e>this.minValue)}reset(){this.minValue=this.defaultMinValue,this.maxValue=this.defaultMaxValue,this.minCutActive=this.defaultApplyMinValue,this.maxCutActive=this.defaultApplyMaxValue}}const Ige=new It,hQ=new class rme{constructor(e=new It,t=new It){this.start=e,this.end=t}set(e,t){return this.start.copy(e),this.end.copy(t),this}copy(e){return this.start.copy(e.start),this.end.copy(e.end),this}getCenter(e){return e.addVectors(this.start,this.end).multiplyScalar(.5)}delta(e){return e.subVectors(this.end,this.start)}distanceSq(){return this.start.distanceToSquared(this.end)}distance(){return this.start.distanceTo(this.end)}at(e,t){return this.delta(t).multiplyScalar(e).add(this.start)}closestPointToPointParameter(e,t){rq.subVectors(e,this.start),JI.subVectors(this.end,this.start);const i=JI.dot(JI);let s=JI.dot(rq)/i;return t&&(s=bd(s,0,1)),s}closestPointToPoint(e,t,i){const r=this.closestPointToPointParameter(e,t);return this.delta(i).multiplyScalar(r).add(this.start)}applyMatrix4(e){return this.start.applyMatrix4(e),this.end.applyMatrix4(e),this}equals(e){return e.start.equals(this.start)&&e.end.equals(this.end)}clone(){return(new this.constructor).copy(this)}},JF=new dA,fQ=new It,g4=new hm;class Bge{constructor(){this.tolerance=-1,this.faces=[],this.newFaces=[],this.assigned=new pQ,this.unassigned=new pQ,this.vertices=[]}setFromPoints(e){if(e.length>=4){this.makeEmpty();for(let t=0,i=e.length;tthis.tolerance)return!1;return!0}intersectRay(e,t){const i=this.faces;let r=-1/0,s=1/0;for(let o=0,l=i.length;o0&&f>=0)return null;const A=0!==f?-u/f:0;if(!(A<=0)&&(f>0?s=Math.min(A,s):r=Math.max(A,r),r>s))return null}return e.at(r!==-1/0?r:s,t),t}intersectsRay(e){return null!==this.intersectRay(e,Ige)}makeEmpty(){return this.faces=[],this.vertices=[],this}addVertexToFace(e,t){return e.face=t,null===t.outside?this.assigned.append(e):this.assigned.insertBefore(t.outside,e),t.outside=e,this}removeVertexFromFace(e,t){return e===t.outside&&(t.outside=null!==e.next&&e.next.face===t?e.next:null),this.assigned.remove(e),this}removeAllVerticesFromFace(e){if(null!==e.outside){const t=e.outside;let i=e.outside;for(;null!==i.next&&i.next.face===e;)i=i.next;return this.assigned.removeSubList(t,i),t.prev=i.next=null,e.outside=null,t}}deleteFaceVertices(e,t){const i=this.removeAllVerticesFromFace(e);if(void 0!==i)if(void 0===t)this.unassigned.appendChain(i);else{let r=i;do{const s=r.next;t.distanceToPoint(r.point)>this.tolerance?this.addVertexToFace(r,t):this.unassigned.append(r),r=s}while(null!==r)}return this}resolveUnassignedPoints(e){if(!1===this.unassigned.isEmpty()){let t=this.unassigned.first();do{const i=t.next;let r=this.tolerance,s=null;for(let o=0;or&&(r=d,s=l),r>1e3*this.tolerance)break}}null!==s&&this.addVertexToFace(t,s),t=i}while(null!==t)}return this}computeExtremes(){const e=new It,t=new It,i=[],r=[];for(let s=0;s<3;s++)i[s]=r[s]=this.vertices[0];e.copy(this.vertices[0].point),t.copy(this.vertices[0].point);for(let s=0,o=this.vertices.length;st.getComponent(u)&&(t.setComponent(u,d.getComponent(u)),r[u]=l)}return this.tolerance=3*Number.EPSILON*(Math.max(Math.abs(e.x),Math.abs(t.x))+Math.max(Math.abs(e.y),Math.abs(t.y))+Math.max(Math.abs(e.z),Math.abs(t.z))),{min:i,max:r}}computeInitialHull(){const e=this.vertices,t=this.computeExtremes(),i=t.min,r=t.max;let s=0,o=0;for(let S=0;S<3;S++){const R=r[S].point.getComponent(S)-i[S].point.getComponent(S);R>s&&(s=R,o=S)}const l=i[o],d=r[o];let u,f;s=0,hQ.set(l.point,d.point);for(let S=0,R=this.vertices.length;Ss&&(s=re,u=G)}}s=-1,JF.setFromCoplanarPoints(l.point,d.point,u.point);for(let S=0,R=this.vertices.length;Ss&&(s=re,f=G)}}const A=[];if(JF.distanceToPoint(f.point)<0){A.push(_g.create(l,d,u),_g.create(f,d,l),_g.create(f,u,d),_g.create(f,l,u));for(let S=0;S<3;S++){const R=(S+1)%3;A[S+1].getEdge(2).setTwin(A[0].getEdge(R)),A[S+1].getEdge(1).setTwin(A[R+1].getEdge(0))}}else{A.push(_g.create(l,u,d),_g.create(f,l,d),_g.create(f,d,u),_g.create(f,u,l));for(let S=0;S<3;S++){const R=(S+1)%3;A[S+1].getEdge(2).setTwin(A[0].getEdge((3-S)%3)),A[S+1].getEdge(0).setTwin(A[R+1].getEdge(1))}}for(let S=0;S<4;S++)this.faces.push(A[S]);for(let S=0,R=e.length;Ss&&(s=le,re=this.faces[se])}null!==re&&this.addVertexToFace(G,re)}}return this}reindexFaces(){const e=[];for(let t=0;tt&&(t=s,e=r),r=r.next}while(null!==r&&r.face===i);return e}}computeHorizon(e,t,i,r){let s;this.deleteFaceVertices(i),i.mark=1,s=null===t?t=i.getEdge(0):t.next;do{const o=s.twin,l=o.face;0===l.mark&&(l.distanceToPoint(e)>this.tolerance?this.computeHorizon(e,o,l,r):r.push(s)),s=s.next}while(s!==t);return this}addAdjoiningFace(e,t){const i=_g.create(e,t.tail(),t.head());return this.faces.push(i),i.getEdge(-1).setTwin(t.twin),i.getEdge(0)}addNewFaces(e,t){this.newFaces=[];let i=null,r=null;for(let s=0;s0;)t=t.next,e--;for(;e<0;)t=t.prev,e++;return t}compute(){const e=this.edge.tail(),t=this.edge.head(),i=this.edge.next.head();return g4.set(e.point,t.point,i.point),g4.getNormal(this.normal),g4.getMidpoint(this.midpoint),this.area=g4.getArea(),this.constant=this.normal.dot(this.midpoint),this}distanceToPoint(e){return this.normal.dot(e)-this.constant}}class eO{constructor(e,t){this.vertex=e,this.prev=null,this.next=null,this.twin=null,this.face=t}head(){return this.vertex}tail(){return this.prev?this.prev.vertex:null}length(){const e=this.head(),t=this.tail();return null!==t?t.point.distanceTo(e.point):-1}lengthSquared(){const e=this.head(),t=this.tail();return null!==t?t.point.distanceToSquared(e.point):-1}setTwin(e){return this.twin=e,e.twin=this,this}}class Pge{constructor(e){this.point=e,this.prev=null,this.next=null,this.face=null}}class pQ{constructor(){this.head=null,this.tail=null}first(){return this.head}last(){return this.tail}clear(){return this.head=this.tail=null,this}insertBefore(e,t){return t.prev=e.prev,t.next=e,null===t.prev?this.head=t:t.prev.next=t,e.prev=t,this}insertAfter(e,t){return t.prev=e,t.next=e.next,null===t.next?this.tail=t:t.next.prev=t,e.next=t,this}append(e){return null===this.head?this.head=e:this.tail.next=e,e.prev=this.tail,e.next=null,this.tail=e,this}appendChain(e){for(null===this.head?this.head=e:this.tail.next=e,e.prev=this.tail;null!==e.next;)e=e.next;return this.tail=e,this}remove(e){return null===e.prev?this.head=e.next:e.prev.next=e.next,null===e.next?this.tail=e.prev:e.next.prev=e.prev,this}removeSubList(e,t){return null===e.prev?this.head=t.next:e.prev.next=t.next,null===t.next?this.tail=e.prev:t.next.prev=e.prev,this}isEmpty(){return null===this.head}}class Rge extends no{constructor(e=[]){super();const t=[],i=[],s=(new Bge).setFromPoints(e).faces;for(let o=0;o{i=se*se,r=se/2;const le=e.pos.clone().add(e.dir.clone().multiplyScalar(r)).add(A.clone().multiplyScalar(i/8));s=nO.get(le),l=e.dir.clone().add(A.clone().multiplyScalar(r)).cross(s).multiplyScalar(t),d=e.dir.clone().add(l.clone().multiplyScalar(r)).cross(s).multiplyScalar(t);const Ee=e.pos.clone().add(e.dir.clone().multiplyScalar(se)).add(d.clone().multiplyScalar(i/2));o=nO.get(Ee),u=e.dir.clone().add(d.clone().multiplyScalar(se)).cross(o).multiplyScalar(t);const Ce=A.clone().sub(l).sub(d).add(u);return se*(Math.abs(Ce.x)+Math.abs(Ce.y)+Math.abs(Ce.z))};let R=S(e.stepSize);for(;R>2e-4;)e.stepSize*=.5,R=S(e.stepSize);const G=e.stepSize,re=Math.pow(G,2);return e.pos.add(e.dir.clone().multiplyScalar(G)).add(A.clone().add(l).add(d).multiplyScalar(re/6)),e.dir.add(A.clone().add(l.clone().multiplyScalar(2)).add(d.clone().multiplyScalar(2)).add(u).multiplyScalar(G/6)),e.dir.normalize(),e.stepSize}static propagate(e,t,i,r,s=-1,o=1e3,l=(()=>!0)){const d=new kge;d.pos=e,d.dir=t,d.p=i,d.q=r,d.maxStepSize=s;const u=[];for(;d.pathLength3e3||Math.sqrt(e.x*e.x+e.y*e.y)>1100)}static getTracksWithRungeKutta(e){const t=Object.assign({},e);for(const r of Object.keys(t))for(const s of t[r])s.pos=wE.extrapolateTrackPositions(s);return{}}static extrapolateTrackPositions(e,t=wE.extrapolationLimit){const i=e.dparams,r=i[0],o=i[2];let l=i[3];const d=i[4];let u;l<0&&(l+=Math.PI),u=0!==d?Math.abs(1/d):Number.MAX_VALUE;const f=Math.round(u*d),A=Ff.sphericalToCartesian(u,l,o),S=Ff.sphericalToCartesian(r,l,o),R=[];R.push([S.x,S.y,S.z]);const G=A.clone();G.normalize();const se=tO.propagate(S,G,u,f,5,1500,t).map(le=>[le.pos.x,le.pos.y,le.pos.z]);return R.concat(se)}}class Md{static getTracks(e){var t;const i=new Nq,r=new TAe({lineWidth:2});for(const o of e){if((null===(t=o.pos)||void 0===t?void 0:t.length)>2||(o.dparams&&(o.pos=wE.extrapolateTrackPositions(o)),o.extended=!0),o.pos.length<2){console.log("Track too short, and extrapolation failed.");continue}o?.dparams&&(o?.phi||(o.phi=o.dparams[2]),o?.eta||(o.eta=Ff.thetaToEta(o.dparams[3])),o?.d0||(o.d0=o.dparams[0]),o?.z0||(o.z0=o.dparams[1]));const l=o.pos.map(A=>new It(A[0],A[1],A[2])),u=new X5(l).getPoints(50),f=o.color?parseInt(o.color,16):bp.Tracks.getHex();o.tid=i.addTrack(u,f),o.material=r}i.process();const s=new ua(i,r);s.name="Track";for(const o of e)o.uuid=s.uuid;return s}static getTrack(e){var t;(null===(t=e.pos)||void 0===t?void 0:t.length)>2||(e.dparams&&(e.pos=wE.extrapolateTrackPositions(e)),e.extended=!0);const i=e.pos;if(i.length<2)return void console.log("Track too short, and extrapolation failed.");e?.dparams&&(e?.phi||(e.phi=e.dparams[2]),e?.eta||(e.eta=Ff.thetaToEta(e.dparams[3])),e?.d0||(e.d0=e.dparams[0]),e?.z0||(e.z0=e.dparams[1]));const r=e.color?parseInt(e.color,16):bp.Tracks.getHex(),s=[];for(let re=0;re0))return console.log("No hits! Aborting from getHits."),new Pl;{const f=e[0];Array.isArray(f)?(o=!0,t={pos:e}):(t=e,"type"in f&&(r=f.type))}("Line"===r||"Box"===r)&&(s=6);const l=e.length*s;o&&(length=l);const d=new Float32Array(l);let u=0;for(const f of e)for(let A=0;Ai&&f.setLength(f.length()*i/Math.abs(f.z));const A=f.x*f.x+f.y*f.y,S=t*t;A>S&&f.setLength(f.length()*Math.sqrt(S)/Math.sqrt(A))}return f}static getCaloCube(e,t=30,i=30){var r,s,o,l,d;const u=null!==(r=e.side)&&void 0!==r?r:t;let f=null!==(s=e.length)&&void 0!==s?s:i;f`${n} > ${e} > ${t}`;class J_{constructor(){this.labelsObject={},this.loadingManager=new sx,this.stateManager=new fA}buildEventData(e,t,i,r){this.graphicsLibrary=t,this.ui=i,this.eventData=e,this.loadObjectTypes(e);const s=e["event number"]?e["event number"]:e.eventNumber,o=e["run number"]?e["run number"]:e.runNumber;r.add("Event#"+s+" from run#"+o,"Loaded"),this.stateManager.eventMetadata={runNumber:o,eventNumber:s}}getEventsList(e){const t=[];for(const i in e)null!==e[i]&&t.push(i);return t}getCollections(){if(!this.eventData)return null;const e=[];for(const t in this.eventData)if(this.eventData[t]&&"object"==typeof this.eventData[t])for(const i in this.eventData[t])e.push(i);return e}getCollection(e){if(!this.eventData)return null;for(const t in this.eventData)if(this.eventData[t])for(const i in this.eventData[t])if(i===e)return this.eventData[t][i]}loadObjectTypes(e){const t=parseFloat(Math.PI.toFixed(2));if(e.Tracks){const i=[new Cl("phi",-t,t,.01),new Cl("eta",-4,4,.1),new Cl("chi2",0,100),new Cl("dof",0,100),new Cl("pT",0,5e4,.1),new Cl("z0",-30,30,.1),new Cl("d0",-30,30,.1)];this.addObjectType(e.Tracks,Md.getTrack,"Tracks",!1,i)}if(e.Jets){const i=[new Cl("phi",-t,t,.01),new Cl("eta",-5,5,.1),new Cl("energy",0,6e5,100)],s=this.addScaleOptions("jetsScale","Jets Scale",o=>{this.graphicsLibrary.getSceneManager().scaleJets(o)});this.addObjectType(e.Jets,Md.getJet,"Jets",!1,i,s)}if(e.Hits&&this.addObjectType(e.Hits,Md.getHits,"Hits",!0),e.CaloClusters){const i=[new Cl("phi",-t,t,.01),new Cl("eta",-5,5,.1),new Cl("energy",0,1e4)],s=this.addScaleOptions("caloClustersScale","CaloClusters Scale",o=>{this.graphicsLibrary.getSceneManager().scaleChildObjects("CaloClusters",o,"z")});this.addObjectType(e.CaloClusters,Md.getCluster,"CaloClusters",!1,i,s)}if(e.CaloCells){const i=[new Cl("phi",-t,t,.01),new Cl("eta",-5,5,.1),new Cl("energy",0,1e4)],s=this.addScaleOptions("caloCellsScale","CaloCells Scale",o=>{this.graphicsLibrary.getSceneManager().scaleChildObjects("CaloCells",o,"z")});this.addObjectType(e.CaloCells,Md.getCaloCell,"CaloCells",!1,i,s)}if(e.PlanarCaloCells){const i=[new Cl("energy",0,1e4)],s=this.addScaleOptions("planarCaloCellsScale","PlanarCaloCells Scale",l=>{this.graphicsLibrary.getSceneManager().scaleChildObjects("PlanarCaloCells",l,"z")}),o={};for(const l in e.PlanarCaloCells){const d=e.PlanarCaloCells[l],u=d.plane,f=new It(...u.slice(0,3)).normalize();d.cells.forEach(A=>A.plane=[...f.toArray(),u[3]]),o[l]=d.cells}this.addObjectType(o,Md.getPlanarCaloCell,"PlanarCaloCells",!1,i,s)}if(e.IrregularCaloCells){const i=[new Cl("layer",0,10),new Cl("energy",0,1e4)],s=this.addScaleOptions("IrregularCaloCellsScale","IrregularCaloCells Scale",o=>{this.graphicsLibrary.getSceneManager().scaleChildObjects("IrregularCaloCells",o,"z")});this.addObjectType(e.IrregularCaloCells,Md.getIrregularCaloCell,"IrregularCaloCells",!1,i,s)}if(e.Muons){const i=[new Cl("phi",-t,t,.01),new Cl("eta",-4,4,.1),new Cl("energy",0,1e4),new Cl("pT",0,5e4)];this.addObjectType(e.Muons,this.getCompoundTrack,"Muons",!1,i)}if(e.Photons){const i=[new Cl("phi",-t,t,.01),new Cl("eta",-4,4,.1),new Cl("energy",0,1e4),new Cl("pT",0,5e4)];this.addObjectType(e.Photons,this.getCompoundCluster,"Photons",!1,i)}if(e.Electrons){const i=[new Cl("phi",-t,t,.01),new Cl("eta",-4,4,.1),new Cl("energy",0,1e4),new Cl("pT",0,5e4)];this.addObjectType(e.Electrons,this.getCompoundTrack,"Electrons",!1,i)}if(e.Vertices){const i=[new Cl("vertexType",0,5)],s=this.addScaleOptions("verticesScale","Vertices Scale",o=>{this.graphicsLibrary.getSceneManager().scaleChildObjects("Vertices",o)});this.addObjectType(e.Vertices,Md.getVertex,"Vertices",!1,i,s)}e.MissingEnergy&&this.addObjectType(e.MissingEnergy,Md.getMissingEnergy,"MissingEnergy",!1,[],(r,s)=>{const o=l=>{this.graphicsLibrary.getSceneManager().scaleChildObjects("MissingEnergy",l)};r&&r.add({jetsScale:100},"jetsScale",1,200).name("Size (%)").onChange(o),s&&s.addConfig("slider",{label:"Size (%)",value:100,min:1,max:200,allowCustomValue:!0,onChange:o})})}addObjectType(e,t,i,r=!1,s,o){var l,d;const u=this.graphicsLibrary.addEventDataTypeGroup(i),f=this.getObjectTypeCollections(e);this.ui.addEventDataTypeFolder(i);for(const R of f){const G=e[R];console.log(`${i} collection ${R} has ${G.length} constituents.`),0!=G.length?(this.addCollection(G,R,t,i,u,r),s=s?.filter(re=>re.field in G[0]),this.ui.addCollection(i,R,s)):console.log("Skipping")}const A=null===(l=this.ui.getUIMenus().find(R=>R instanceof dQ))||void 0===l?void 0:l.getEventDataTypeFolder(i),S=null===(d=this.ui.getUIMenus().find(R=>R instanceof ZF))||void 0===d?void 0:d.getEventDataTypeFolder(i);o?.(A,S)}addCollection(e,t,i,r,s,o){const l=new Wl;if(l.name=t,o){const d=i.bind(this)(e,r);d&&l.add(d)}else for(const d of e){const u=i.bind(this)(d,r);u&&l.add(u)}s.add(l)}getObjectTypeCollections(e){const t=[];for(const i in e)null!==e[i]&&t.push(i);return t}getCompoundTrack(e,t=""){return this.getCompound(e,t,!0,!1)}getCompoundCluster(e,t=""){return this.getCompound(e,t,!1,!0)}getCompound(e,t="",i=!1,r=!1){const s=new Wl;if("LinkedClusters"in e&&e.LinkedClusters)for(const o of e.LinkedClusters){const l=o.split(":")[0],d=o.split(":")[1];if(l&&d&&this.eventData.CaloClusters&&this.eventData.CaloClusters[l]){const u=this.eventData.CaloClusters[l][d];if(u){const f=Md.getCluster(u);f.name=t+" Cluster",s.add(f)}}}else if(r){const l=Md.getCluster({energy:e?.energy,phi:e?.phi,eta:e?.eta});l.name=t+" Cluster",s.add(l)}if("LinkedTracks"in e&&e.LinkedTracks)for(const o of e.LinkedTracks){const l=o.split(":")[0],d=o.split(":")[1];if(l&&d&&this.eventData.Tracks&&this.eventData.Tracks[l]){const u=this.eventData.Tracks[l][d];if(u){const f=Md.getTrack(u);f?(f.name=t+" Track",s.add(f)):console.log("WARNING: failed to get a track back.")}}}else if(i){new It(0,0,0);const l=Ff.etaToTheta(e.eta),d=e.pt/Math.cos(Math.PI/2-l);let u=0;"pdgId"in e&&(u=e.pdgId>0?1:-1);const A=Md.getTrack({dparams:[0,0,e.phi,l,u/d]});A?(A.name=t+" Track",s.add(A)):console.log("WARNING: failed to get a track back.")}return e.uuid=s.uuid,s.name=t,s}getEventMetadata(){const e=[],t=[[{keys:["runNumber","run number"],label:"Run"},{keys:["eventNumber","event number"],label:"Event"},{keys:["ls"],label:"LS"},{keys:["lumiBlock"],label:"LumiBlock"}],[{keys:["time"],label:"Data recorded"}]],i=Object.keys(this.eventData);for(const r of t){const s={};for(const o of r)for(const l of o.keys)if(i.includes(l)&&l in this.eventData){s[o.label]=this.eventData[l];break}Object.keys(s).length>0&&e.push({label:Object.keys(s).join(" / "),value:Object.values(s).join(" / ")})}return e}addLabelToEventObject(e,t,i){var r,s;for(const o in this.eventData)if(null!==(s=null===(r=this.eventData)||void 0===r?void 0:r[o])&&void 0!==s&&s[t])return this.labelsObject[o]=this.labelsObject[o]||{},this.labelsObject[o][t]=this.labelsObject[o][t]||{},this.labelsObject[o][t][i]=e,mQ(o,t,i)}getLabelsObject(){return this.labelsObject}addScaleOptions(e,t,i){return(r,s)=>{r&&r.add({[e]:1},e,.001,100).name(t).onChange(i),s&&s.addConfig("slider",{label:t,value:1,min:.001,step:.01,max:100,allowCustomValue:!0,onChange:i})}}}class CE extends J_{constructor(){super(),this.data={}}process(e){console.log("Processing JiveXML event data"),this.data=e}getEventData(){const i=(new DOMParser).parseFromString(this.data,"text/xml").getElementsByTagName("Event")[0],r={eventNumber:i.getAttribute("eventNumber"),runNumber:i.getAttribute("runNumber"),lumiBlock:i.getAttribute("lumiBlock"),time:i.getAttribute("dateTime"),Hits:void 0,Tracks:{},Jets:{},CaloClusters:{},CaloCells:{},PlanarCaloCells:{},Vertices:{},Electrons:{},Muons:{},Photons:{},MissingEnergy:{}};return this.getPixelClusters(i,r),this.getSCTClusters(i,r),this.getTRT_DriftCircles(i,r),this.getMuonPRD(i,"MDT",r),this.getRPC(i,r),this.getMuonPRD(i,"TGC",r),this.getMuonPRD(i,"CSCD",r),this.getMuonPRD(i,"MM",r),this.getMuonPRD(i,"STGC",r),this.getTracks(i,r),this.getJets(i,r),this.getCaloClusters(i,r),this.getCaloCells(i,"LAr",r),this.getCaloCells(i,"HEC",r),this.getCaloCells(i,"Tile",r),this.getVertices(i,r),this.getMissingEnergy(i,r),this.getElectrons(i,r),this.getMuons(i,r),this.getPhotons(i,r),r}getNumberArrayFromHTML(e,t){let i=[];const r=e.getElementsByTagName(t);return r.length&&(i=r[0].innerHTML.replace(/\r\n|\n|\r/gm," ").trim().split(" ").map(Number)),i}getStringArrayFromHTML(e,t){return e.getElementsByTagName(t)[0].innerHTML.replace(/\r\n|\n|\r/gm," ").trim().split(" ").map(String)}getPositionOfHit(e,t){for(const i in t.Hits)for(const r of t.Hits[i])if(null==r)console.log("Empty hit");else if("id"in r&&r.id==e)return[!0,r.pos[0],r.pos[1],r.pos[2]];return[!1,0,0,0]}getTracks(e,t){const i=e.getElementsByTagName("Track"),r=Array.from(i),s={};for(const o of r){let l=o.getAttribute("storeGateKey");"Tracks"===l&&(l="Tracks_");const d=Number(o.getAttribute("count")),u=[];let A,S,R,G;if(0===o.getElementsByTagName("numPolyline").length)console.log("WARNING the track collection "+l+" has no line information. Will rely on Phoenix to extrapolate.");else{G=this.getNumberArrayFromHTML(o,"numPolyline");const Kt=o.getElementsByTagName("polylineX");Kt.length>0?(A=Kt[0].innerHTML.replace(/\r\n|\n|\r/gm," ").trim().split(" ").map(Number),S=this.getNumberArrayFromHTML(o,"polylineY"),R=this.getNumberArrayFromHTML(o,"polylineZ")):(G=null,A=null,S=null,R=null)}const re=this.getNumberArrayFromHTML(o,"chi2"),se=this.getNumberArrayFromHTML(o,"numDoF"),le=this.getNumberArrayFromHTML(o,"pt"),Ee=this.getNumberArrayFromHTML(o,"d0"),Ce=this.getNumberArrayFromHTML(o,"z0"),We=this.getNumberArrayFromHTML(o,"phi0"),Mt=this.getNumberArrayFromHTML(o,"cotTheta");let Xt;this.getNumberArrayFromHTML(o,"hits"),this.getNumberArrayFromHTML(o,"numHits"),(d!=le.length||d!=Ee.length||d!=Ce.length||d!=Mt.length)&&console.log("ERROR: Wrong number of some track variables. Corrupted JiveXML?"),o.getElementsByTagName("trackAuthor").length&&(Xt=this.getNumberArrayFromHTML(o,"trackAuthor"));let Un=0;G&&G.length!=d&&console.log("numPolyline ",G.length,"numOfTracks",d);for(let Kt=0;Kt=Kt&&(En.chi2=re[Kt]),se.length>=Kt&&(En.dof=se[Kt]),Xt?.length>=Kt&&(En.author=Xt[Kt]);let wi=Math.atan(1/Mt[Kt]);En.pT=1e3*Math.abs(le[Kt]);const zn=En.pT/Math.sin(wi);En.dparams=[Ee[Kt],Ce[Kt],We[Kt],wi,1/zn],En.phi=We[Kt],wi<0&&(wi+=Math.PI),En.phi>Math.PI?En.phi-=2*Math.PI:En.phi<-Math.PI&&(En.phi+=2*Math.PI),Ff.anglesAreSane(wi,En.phi)||(s["Improper angles"]++,En.badtrack.push("Improper angles"),Vi=!1),En.eta=Ff.thetaToEta(wi),Number.isNaN(En.eta)&&(En.badtrack.push("Invalid eta"),Vi=!1);const oi=[];let vi=0,mr=0,Mr=0,ns=0,$s=0;if(G){(Un+G[Kt]>A.length||Un+G[Kt]>S.length||Un+G[Kt]>R.length)&&console.log("ERROR: not enough points left for this track. Corrupted JiveXML?");for(let fi=0;fi0&&console.log(s[o]+' tracks had "'+o+'" and were marked as bad.')}getPixelClusters(e,t){if(t.Hits={},0===e.getElementsByTagName("PixCluster").length)return;const i=e.getElementsByTagName("PixCluster")[0],r=Number(i.getAttribute("count")),s=this.getNumberArrayFromHTML(i,"id"),o=this.getNumberArrayFromHTML(i,"x0"),l=this.getNumberArrayFromHTML(i,"y0"),d=this.getNumberArrayFromHTML(i,"z0"),u=this.getNumberArrayFromHTML(i,"eloss");t.Hits.Pixel=[];for(let f=0;f280?480:640,se=1030;G.pos=[Math.cos(d[R])*re,Math.sin(d[R])*re,10*u[R],Math.cos(d[R])*se,Math.sin(d[R])*se,10*u[R]]}G.id=o[R],G.driftR=s[R],G.noise=l[R],G.threshold=A[R],G.timeOverThreshold=S[R],t.Hits.TRT.push(G)}}getMuonPRD(e,t,i){if(0===e.getElementsByTagName(t).length)return;const r=e.getElementsByTagName(t)[0];"CSCD"==t&&(t="CSC");const s=Number(r.getAttribute("count")),o=this.getNumberArrayFromHTML(r,"x"),l=this.getNumberArrayFromHTML(r,"y"),d=this.getNumberArrayFromHTML(r,"z"),u=this.getNumberArrayFromHTML(r,"length"),f=this.getNumberArrayFromHTML(r,"id"),A=this.getStringArrayFromHTML(r,"identifier");i.Hits[t]=[];for(let S=0;Sre.length&&console.log("Error! TrackIndex exceeds maximum number of track indices."),We.push(re[le]);se.push({x:l[Ee],y:d[Ee],z:u[Ee],chi2:f[Ee],primVxCand:A[Ee],vertexType:S[Ee],linkedTracks:We,linkedTrackCollection:G[Ee]})}t.Vertices[s.getAttribute("storeGateKey")]=se}}getMuons(e,t){const i=e.getElementsByTagName("Muon"),r=Array.from(i);for(const s of r){const o=Number(s.getAttribute("count")),l=[];for(let d=0;dfunction(n,e,t,i){return new(t||(t=Promise))(function(s,o){function l(f){try{u(i.next(f))}catch(A){o(A)}}function d(f){try{u(i.throw(f))}catch(A){o(A)}}function u(f){f.done?s(f.value):function r(s){return s instanceof t?s:new t(function(o){o(s)})}(f.value).then(l,d)}u((i=i.apply(n,e||[])).next())})}(void 0,void 0,void 0,function*(){const e=new(iO()),t={};yield e.loadAsync(n);for(const i in e.files){const r=yield e.file(i).async("string");t[i]=r}return t});var rO=function(n,e,t,i){return new(t||(t=Promise))(function(s,o){function l(f){try{u(i.next(f))}catch(A){o(A)}}function d(f){try{u(i.throw(f))}catch(A){o(A)}}function u(f){f.done?s(f.value):function r(s){return s instanceof t?s:new t(function(o){o(s)})}(f.value).then(l,d)}u((i=i.apply(n,e||[])).next())})};const Lge={file:"",type:"",config:"",hideWidgets:!1,embed:!1};class Nge{constructor(e,t){this.eventDisplay=e,this.configuration=t,this.urlOptions=new URLSearchParams(window.location.href.substr(window.location.href.lastIndexOf("?")))}applyOptions(){var e,t;this.applyEventOptions(null===(e=this.configuration.defaultEventFile)||void 0===e?void 0:e.eventFile,null===(t=this.configuration.defaultEventFile)||void 0===t?void 0:t.eventType),this.applyHideWidgetsOptions(),this.applyEmbedOption()}applyEventOptions(e,t){if(!("fetch"in window))return;let i,r;(!this.urlOptions.get("file")&&this.urlOptions.get("type")||this.urlOptions.get("file")&&!this.urlOptions.get("type"))&&(console.log("WARNING - if you set one of type or file, then you need to set both!"),console.log("WARNING - reverting to defaults!")),this.urlOptions.get("file")&&this.urlOptions.get("type")?(console.log("Setting and config from urlOptions"),i=this.urlOptions.get("file"),r=this.urlOptions.get("type").toLowerCase()):(console.log("Setting and config from defaults"),i=e,r=t),console.log("Loading ",i,"of type",r);const s=()=>{this.urlOptions.get("config")&&(this.eventDisplay.getLoadingManager().addLoadableItem("url_config"),fetch(this.urlOptions.get("config")).then(l=>l.json()).then(l=>{(new fA).loadStateFromJSON(l)}).finally(()=>{this.eventDisplay.getLoadingManager().itemLoaded("url_config")}))};i&&r?(this.eventDisplay.getLoadingManager().addLoadableItem("url_event"),(l=>"jivexml"===r?(console.log("Opening JiveXML"),this.handleJiveXMLEvent(l)):"zip"===r?(console.log("Opening zip file"),this.handleZipFileEvents(l)):this.handleJSONEvent(l))(i).catch(l=>{this.eventDisplay.getInfoLogger().add("Could not find the file specified in URL.","Error"),console.error("Could not find the file specified in URL.",l)}).finally(()=>{s(),this.eventDisplay.getLoadingManager().itemLoaded("url_event")})):s()}handleJiveXMLEvent(e){return rO(this,void 0,void 0,function*(){const t=yield(yield fetch(e)).text(),i=new CE;this.configuration.eventDataLoader=i,i.process(t);const r=i.getEventData();this.eventDisplay.buildEventDataFromJSON(r)})}handleJSONEvent(e){return rO(this,void 0,void 0,function*(){const t=yield(yield fetch(e)).json();this.configuration.eventDataLoader=new J_,this.eventDisplay.parsePhoenixEvents(t)})}handleZipFileEvents(e){return rO(this,void 0,void 0,function*(){const t=yield(yield fetch(e)).arrayBuffer(),i={};let r;try{r=yield AQ(t)}catch(o){return console.error("Error while reading zip",o),void this.eventDisplay.getInfoLogger().add("Could not read zip file","Error")}Object.keys(r).filter(o=>o.endsWith(".json")).forEach(o=>{Object.assign(i,JSON.parse(r[o]))});const s=new CE;Object.keys(r).filter(o=>o.endsWith(".xml")||o.startsWith("JiveXML")).forEach(o=>{s.process(r[o]);const l=s.getEventData();Object.assign(i,{[o]:l})}),this.eventDisplay.parsePhoenixEvents(i)})}applyHideWidgetsOptions(){this.hideIdsWithURLOption({hideWidgets:["mainLogo","uiMenu","experimentInfo","phoenixMenu","statsElement","gui"]})}applyEmbedOption(){var e;"true"===this.urlOptions.get("embed")&&(this.hideIdsWithURLOption({embed:["mainLogo","uiMenu","experimentInfo","phoenixMenu","statsElement","gui"]}),null===(e=document.getElementById("embedMenu"))||void 0===e||e.style.setProperty("display","block"))}hideIdsWithURLOption(e){Object.entries(e).forEach(([t,i])=>{"true"===this.urlOptions.get(t)&&i.forEach(r=>{var s;null===(s=document.getElementById(r))||void 0===s||s.style.setProperty("display","none")})})}getURLOptions(){return this.urlOptions}}var ox=function(n,e,t,i){return new(t||(t=Promise))(function(s,o){function l(f){try{u(i.next(f))}catch(A){o(A)}}function d(f){try{u(i.throw(f))}catch(A){o(A)}}function u(f){f.done?s(f.value):function r(s){return s instanceof t?s:new t(function(o){o(s)})}(f.value).then(l,d)}u((i=i.apply(n,e||[])).next())})};class Uge{constructor(e){this.onEventsChange=[],this.onDisplayedEventChange=[],this.loadingManager=new sx,this.infoLogger=new Tge,this.graphicsLibrary=new JAe(this.infoLogger),this.ui=new Ege(this.graphicsLibrary),e&&this.init(e)}init(e){this.configuration=e,this.graphicsLibrary.init(e),this.ui.init(e),this.getStateManager().setEventDisplay(this),this.graphicsLibrary.setAnimationLoop(()=>{this.ui.updateUI()}),this.urlOptionsManager=new Nge(this,e),!1!==e.allowUrlOptions&&this.urlOptionsManager.applyOptions(),this.enableEventDisplayConsole(),this.enableKeyboardControls()}initXR(e,t){this.graphicsLibrary.initXRSession(e,t)}endXR(e){this.graphicsLibrary.endXRSession(e)}parsePhoenixEvents(e){this.eventsData=e,typeof this.configuration.eventDataLoader>"u"&&(this.configuration.eventDataLoader=new J_);const t=this.configuration.eventDataLoader.getEventsList(e);return this.loadEvent(t[0]),this.onEventsChange.forEach(i=>i(t)),t}buildEventDataFromJSON(e){this.resetLabels(),this.ui.addEventDataFolder(),this.ui.addLabelsFolder(),this.graphicsLibrary.clearEventData(),this.configuration.eventDataLoader.buildEventData(e,this.graphicsLibrary,this.ui,this.infoLogger),this.onDisplayedEventChange.forEach(t=>t(e)),this.ui.loadEventFolderPhoenixMenuState()}loadEvent(e){const t=this.eventsData[e];t&&this.buildEventDataFromJSON(t)}getThreeManager(){return this.graphicsLibrary}getUIManager(){return this.ui}getInfoLogger(){return this.infoLogger}getLoadingManager(){return this.loadingManager}getStateManager(){return this.stateManager||(this.stateManager=new fA),this.stateManager}getURLOptionsManager(){return this.urlOptionsManager}loadOBJGeometry(e,t,i,r,s){return ox(this,arguments,void 0,function*(o,l,d,u,f,A=!0,S=!0){this.loadingManager.addLoadableItem(`obj_geom_${l}`);const{object:R}=yield this.graphicsLibrary.loadOBJGeometry(o,l,d,f,A,S);this.ui.addGeometry(R,u),this.loadingManager.itemLoaded(`obj_geom_${l}`),this.infoLogger.add(l,"Loaded OBJ geometry")})}parseOBJGeometry(e,t,i,r=!0){this.loadingManager.addLoadableItem(`parse_obj_${t}`);const{object:s}=this.graphicsLibrary.parseOBJGeometry(e,t,r);this.ui.addGeometry(s,i),this.loadingManager.itemLoaded(`parse_obj_${t}`)}exportToOBJ(){this.graphicsLibrary.exportSceneToOBJ(),this.infoLogger.add("Exported scene to OBJ")}parsePhoenixDisplay(e){return ox(this,void 0,void 0,function*(){const t=JSON.parse(e);t.sceneConfiguration&&t.scene&&(this.ui.addEventDataFolder(),this.ui.addLabelsFolder(),this.graphicsLibrary.clearEventData(),this.loadSceneConfiguration(t.sceneConfiguration),this.loadingManager.addLoadableItem(`parse_phnx_${name}`),yield this.graphicsLibrary.parsePhnxScene(t.scene),this.loadingManager.itemLoaded(`parse_phnx_${name}`))})}exportPhoenixDisplay(){this.graphicsLibrary.exportPhoenixScene()}parseGLTFGeometry(e,t){return ox(this,void 0,void 0,function*(){this.loadingManager.addLoadableItem(`parse_gltf_${t}`);const i=yield this.graphicsLibrary.parseGLTFGeometry(e,t);for(const{object:r}of i)this.ui.addGeometry(r);this.loadingManager.itemLoaded(`parse_gltf_${t}`)})}loadGLTFGeometry(e,t,i,r){return ox(this,arguments,void 0,function*(s,o,l,d,u=!0){this.loadingManager.addLoadableItem(`gltf_geom_${o}`);const f=yield this.graphicsLibrary.loadGLTFGeometry(s,o,l,d,u);for(const{object:A,menuNodeName:S}of f)this.ui.addGeometry(A,S);this.loadingManager.itemLoaded(`gltf_geom_${o}`)})}loadJSONGeometry(e,t,i,r,s){return ox(this,arguments,void 0,function*(o,l,d,u,f,A=!0){this.loadingManager.addLoadableItem(`json_geom_${l}`);const{object:S}=yield this.graphicsLibrary.loadJSONGeometry(o,l,u,f,A);this.ui.addGeometry(S,d),this.loadingManager.itemLoaded(`json_geom_${l}`),this.infoLogger.add(l,"Loaded JSON geometry")})}loadRootJSONGeometry(e,t,i,r,s){return ox(this,arguments,void 0,function*(o,l,d,u,f,A=!0){this.loadingManager.addLoadableItem("root_json_geom");const S=yield(0,Wz.httpRequest)(o,"object");yield this.loadJSONGeometry((0,jz.build)(S,{dflt_colors:!0}).toJSON(),l,d,u,f,A),this.loadingManager.itemLoaded("root_json_geom")})}loadRootGeometry(e,t,i,r,s,o){return ox(this,arguments,void 0,function*(l,d,u,f,A,S,R=!0){this.loadingManager.addLoadableItem("root_geom"),Wz.settings.UseStamp=!1;const re=yield(yield(0,$z.Tq)(l)).readObject(d);yield this.loadJSONGeometry((0,jz.build)(re,{dflt_colors:!0}).toJSON(),u,f,A,S,R),this.loadingManager.itemLoaded("root_geom")})}buildGeometryFromParameters(e){this.graphicsLibrary.addGeometryFromParameters(e)}zoomTo(e,t){this.graphicsLibrary.zoomTo(e,t)}loadSceneConfiguration(e){for(const t of Object.keys(e.eventData)){this.ui.addEventDataTypeFolder(t);const i=e.eventData[t];for(const r of i)this.ui.addCollection(t,r)}for(const t of e.geometries)this.ui.addGeometry(t,"#ffffff")}getCollection(e){return this.configuration.eventDataLoader.getCollection(e)}getCollections(){return this.configuration.eventDataLoader.getCollections()}listenToDisplayedEventChange(e){this.onDisplayedEventChange.push(e)}listenToLoadedEventsChange(e){this.onEventsChange.push(e)}getEventMetadata(){return this.configuration.eventDataLoader.getEventMetadata()}enableEventDisplayConsole(){window.EventDisplay={loadGLTFGeometry:(e,t)=>{this.loadGLTFGeometry(e,t)},loadOBJGeometry:(e,t,i,r,s)=>{this.loadOBJGeometry(e,t,i,r,s)},loadJSONGeometry:(e,t,i,r,s,o=!0)=>{this.loadJSONGeometry(e,t,i,r,s,o)},buildGeometryFromParameters:e=>this.buildGeometryFromParameters(e),scene:this.getThreeManager().getSceneManager().getScene()}}setOverlayRenderer(e){this.graphicsLibrary.setOverlayRenderer(e)}allowSelection(e){this.graphicsLibrary.setSelectedObjectDisplay(e)}enableSelecting(e){this.graphicsLibrary.enableSelecting(e)}fixOverlayView(e){this.graphicsLibrary.fixOverlayView(e)}getActiveObjectId(){return this.graphicsLibrary.getActiveObjectId()}lookAtObject(e,t=!1){1==t?(this.graphicsLibrary.lookAtObject(e,!0),this.graphicsLibrary.highlightObject(e,!0)):(this.graphicsLibrary.lookAtObject(e),this.graphicsLibrary.highlightObject(e))}highlightObject(e,t=!1){this.graphicsLibrary.highlightObject(e,1==t)}enableHighlighting(){this.graphicsLibrary.enableHighlighting()}disableHighlighting(){this.graphicsLibrary.disableHighlighting()}enableKeyboardControls(){this.ui.enableKeyboardControls(),this.graphicsLibrary.enableKeyboardControls()}animateThroughEvent(e,t,i){this.graphicsLibrary.animateThroughEvent(e,t,i)}animatePreset(e,t){this.graphicsLibrary.animatePreset(e,t)}animateEventWithCollision(e,t){this.graphicsLibrary.animateEventWithCollision(e,t)}animateClippingWithCollision(e,t){this.graphicsLibrary.animateClippingWithCollision(e,t)}addLabelToObject(e,t,i,r){const s=this.configuration.eventDataLoader.addLabelToEventObject(e,t,i);e?(this.ui.addLabel(s),this.graphicsLibrary.addLabelToObject(e,r,s)):this.ui.removeLabel(s,!0)}resetLabels(){const e=this.configuration.eventDataLoader.getLabelsObject();for(const t in e)for(const i in e[t])for(const r in e[t][i]){const s=mQ(t,i,r);this.ui.removeLabel(s,!0),delete e[t][i][r]}}}class yC{constructor(e,t,i,r,s,o){this.toggleState=!0,this.children=[],this.configs=[],this.nodeLevel=0,this.childrenToggleState={},this.childrenActive=!1,this.configActive=!1,this.name=e,this.icon=t,this.onToggle=i,r&&(this.children=r),s&&(this.configs=s),o&&(this.parent=o)}addChild(e,t,i){const r=new yC(e,i,t);return r.parent=this,r.nodeLevel=this.nodeLevel+1,this.children.push(r),r}removeChild(e){const t=this.children.indexOf(e);return this.children.splice(t,1),this}remove(){this.parent?this.parent.removeChild(this):console.error("Cannot delete root node of phoenix menu. Set it to undefined/null instead.")}truncate(){this.children=[]}addConfig(e,t){const i=this.configs.push(Object.assign({type:e},t));return this.applyConfigState(this.configs[i-1]),this}toggleSelfAndDescendants(e){var t;null===(t=this.onToggle)||void 0===t||t.call(this,e),this.toggleState=e;for(const i of this.children)e?(i.toggleState=this.childrenToggleState[i.name],i.toggleSelfAndDescendants(i.toggleState)):(this.childrenToggleState[i.name]=i.toggleState,i.toggleSelfAndDescendants(e))}applyConfigState(e){var t,i,r,s,o,l;"checkbox"===e.type&&e?.isChecked?null===(t=e.onChange)||void 0===t||t.call(e,e?.isChecked):"color"===e.type&&e?.color&&!e.group?null===(i=e.onChange)||void 0===i||i.call(e,e?.color):"slider"===e.type&&e?.value?null===(r=e.onChange)||void 0===r||r.call(e,e?.value):"rangeSlider"===e.type&&void 0!==e?.value&&(null===(s=e.onChange)||void 0===s||s.call(e,{value:e?.value,highValue:e?.highValue}),null===(o=e.setEnableMin)||void 0===o||o.call(e,e?.enableMin),null===(l=e.setEnableMax)||void 0===l||l.call(e,e?.enableMax))}getNodeState(){const e={};e.name=this.name,e.nodeLevel=this.nodeLevel,e.toggleState=this.toggleState,e.childrenActive=this.childrenActive,e.configs=this.configs,e.children=[];for(const t of this.children)e.children.push(t.getNodeState());return e}loadStateFromJSON(e){var t;let i;i="string"==typeof e?JSON.parse(e):e,this.childrenActive=i.childrenActive,this.toggleState=i.toggleState,void 0!==this.toggleState&&(null===(t=this.onToggle)||void 0===t||t.call(this,this.toggleState));for(const r of i.configs){const s=this.configs.find(o=>o.type===r.type&&o.label===r.label);if(s){for(const o in r)s[o]=r[o];this.applyConfigState(s)}}for(const r of i.children){const s=this.children.filter(o=>o.name===r.name&&o.nodeLevel===r.nodeLevel)[0];s&&s.loadStateFromJSON(r)}}findInTree(e){if(this.name===e)return this;for(const t of this.children){const i=t.findInTree(e);if(i)return i}}findInTreeOrCreate(e){let t=this;return e.split(">").forEach(i=>{i=i.trim();const r=t.findInTree(i);t=r||t.addChild(i,()=>{})}),t}}class zge{static getMuonChamber(e){var t;let i=[];const r=(...f)=>{i=i.concat(...f.map(A=>e[A]))};r("front_1","front_2","front_3"),r("front_3","front_4","front_1"),r("back_1","back_2","back_3"),r("back_3","back_4","back_1"),r("back_1","back_2","front_2"),r("front_2","front_1","back_1"),r("back_4","back_3","front_3"),r("front_3","front_4","back_4"),r("front_1","front_4","back_4"),r("back_4","back_1","front_1"),r("front_2","back_2","back_3"),r("back_3","front_3","front_2");const s=new no;s.attributes.position=new No(new Float32Array(i),3),s.computeVertexNormals();const o=new ua(s,new xd({color:null!==(t=e.color)&&void 0!==t?t:bp.MuonChambers,transparent:!0,opacity:.1,side:2}));o.userData=Object.assign({},e),o.name="MuonChamber";const l=new CG(s),d=new hc(l,new Dc({color:16777215,transparent:!0,opacity:.7})),u=new Wl;return u.add(o),u.add(d),e.uuid=o.uuid,u}}class gQ extends J_{constructor(){super(),this.geometryScale=1e3,this.data={}}loadObjectTypes(e){super.loadObjectTypes(e),e.MuonChambers&&this.addObjectType(e.MuonChambers,zge.getMuonChamber,"MuonChambers")}readIgArchive(e,t,i){this.loadingManager.addLoadableItem("ig_archive");const r=new(iO()),s=[],o=l=>{r.loadAsync(l).then(()=>{let d=Object.keys(r.files);i&&(d=d.filter(f=>f.includes(i)));let u=1;for(const f of d)f.toLowerCase().startsWith("events")?r.file(f).async("string").then(A=>{A=A.replace(/'/g,'"').replace(/\(/g,"[").replace(/\)/g,"]").replace(/nan/g,"0");const S=JSON.parse(A);S.eventPath=f,s.push(S),u===d.length&&(t(s),this.loadingManager.itemLoaded("ig_archive")),u++}):(u===d.length&&(t(s),this.loadingManager.itemLoaded("ig_archive")),u++)})};e instanceof File?o(e):fetch(e).then(l=>l.arrayBuffer()).then(l=>{o(l)})}loadEventDataFromIg(e,t,i){this.readIgArchive(e,r=>{i(r[0])},t)}getEventData(){var e,t,i;const r=null===(i=null===(t=null===(e=this.data)||void 0===e?void 0:e.Collections)||void 0===t?void 0:t.Event_V2)||void 0===i?void 0:i[0],s={runNumber:r?.[0],eventNumber:r?.[1],ls:r?.[2],time:r?.[5],Hits:{},Tracks:{},Jets:{},CaloClusters:{},MuonChambers:{}};s.Hits=this.getTrackingClusters(s.Hits),s.Tracks=this.getTracks(),s.Jets=this.getJets(),s.CaloClusters=this.getCaloClusters(),s.MuonChambers=this.getMuonChambers();for(const o of["Hits","Tracks","Jets","CaloClusters","MuonChambers"])0===Object.keys(s[o]).length&&(s[o]=void 0);return s}getAllEventsData(e){const t={};for(const i of e)this.data=i,t[i.eventPath]=this.getEventData();return t}getTrackingClusters(e){const i=this.getObjectCollections(["TrackingRecHits_V1","SiStripClusters_V1","SiPixelClusters_V1","CSCLCTDigis_V1"],r=>{r.pos&&(r.pos=r.pos.map(s=>s*this.geometryScale))});return Object.assign(e,i),e}getCaloClusters(){return this.getObjectCollections(["SuperClusters_V1"],i=>{i.energy&&(i.energy*=this.geometryScale)})}getJets(){let e={};const t=Object.keys(this.data.Collections).filter(r=>r.toLowerCase().includes("jets"));return e=this.getObjectCollections(t,r=>{for(const s of["et","energy"])if(r[s]){r[s]*=this.geometryScale;break}},[{attribute:"et",min:10},{attribute:"energy",min:10}]),e}getMuonChambers(){return this.getObjectCollections(["MatchingCSCs_V1","MuonChambers_V1"],i=>{for(const r of Object.keys(i))(r.startsWith("front")||r.startsWith("back"))&&(i[r]=i[r].map(s=>s*this.geometryScale))})}getObjectCollections(e,t,i){const r={};e=e.filter(s=>this.data.Collections[s]);for(const s of e){r[s]=[];const o=this.data.Types[s];for(const l of this.data.Collections[s]){const d={};if(o.forEach((u,f)=>{d[u[0]]=l[f]}),i){let u=!0,f=!0;for(const A of i)if(d[A.attribute]){if(A.max&&d[A.attribute]>A.max){u=!1;break}if(A.min&&d[A.attribute]this.data.Collections[i.collection]);for(const i of t){e[i.collection]=[];const r=this.data.Collections[i.collection],s=this.data.Collections[i.extras],o=this.data.Associations[i.assocs],l=this.data.Types[i.collection];let d,u,f,A,S,R,G,re,se,le,Ee,Ce;for(let We=0;We{Ce[yt[0]]=r[We][Et]}),Ce.pt{const i={Vertices:{},Tracks:{},Hits:{},CaloCells:{},CaloClusters:{},Jets:{},MissingEnergy:{},"event number":this.getEventNumber(t),"run number":this.getRunNumber(t)};this.colorTracks(t),i.Vertices=this.getVertices(t),i.Tracks=this.getTracks(t),i.Hits=this.getHits(t),i.CaloCells=this.getCells(t),i.CaloClusters=this.getCaloClusters(t),i.Jets=this.getJets(t),i.MissingEnergy=this.getMissingEnergy(t),this.eventData[e]=i}),!0}getEventData(){return this.eventData}getNumEvents(){return Object.keys(this.rawEventData).length}getRunNumber(e){if(!("EventHeader"in e))return 0;const t=e.EventHeader.collection;return"runNumber"in t?0:t[0].runNumber}getEventNumber(e){if(!("EventHeader"in e))return 0;const t=e.EventHeader.collection;return"eventNumber"in t?0:t[0].eventNumber}colorTracks(e){let t,i,r,s;"ReconstructedParticles"in e&&(t=e.ReconstructedParticles.collection,"Particle"in e&&(i=e.Particle.collection,"MCRecoAssociations"in e&&(r=e.MCRecoAssociations.collection,"EFlowTrack"in e&&(s=e.EFlowTrack.collection,r.forEach(o=>{const u=i[o.sim.index].PDG;t[o.rec.index].tracks.forEach(A=>{const S=s[A.index];11===Math.abs(u)?(S.color="00ff00",S.pid="electron"):22===Math.abs(u)?(S.color="ff0000",S.pid="photon"):211===Math.abs(u)||111===Math.abs(u)?(S.color="a52a2a",S.pid="pion"):2212===Math.abs(u)?(S.color="778899",S.pid="proton"):321===Math.abs(u)?(S.color="5f9ea0",S.pid="kaon"):(S.color="0000cd",S.pid="other"),S.pdgid=u})})))))}getVertices(e){const t=[];for(const i in e){if(e[i].constructor!=Object)continue;const r=e[i];if(!("collType"in r)||!("collection"in r)||"edm4hep::VertexCollection"!==r.collType)continue;const s=[],o=r.collection,l=this.randomColor();o.forEach(d=>{const u=[];"position"in d&&(u.push(.1*d.position.x),u.push(.1*d.position.y),u.push(.1*d.position.z)),s.push({pos:u,size:.2,color:"#"+l})}),t[i]=s}return t}getTracks(e){const t=[];for(const i in e){if(e[i].constructor!=Object)continue;const r=e[i];if(!("collType"in r)||"edm4hep::TrackCollection"!==r.collType||!("collection"in r))continue;const o=[],l=[],d=[],u=[],f=[],A=[];r.collection.forEach(S=>{const R=[];"trackerHits"in S&&S.trackerHits.forEach(le=>{const Ce=this.getCollByID(e,le.collectionID)[le.index];R.push([.1*Ce.position.x,.1*Ce.position.y,.1*Ce.position.z])}),"trackStates"in S&&0===R.length&&S.trackStates.forEach(le=>{"referencePoint"in le&&R.push([.1*le.referencePoint.x,.1*le.referencePoint.y,.1*le.referencePoint.z])});let G="0000cd";"color"in S&&(G=S.color);const re={pos:R,color:G};"pid"in S?"electron"==S.pid?o.push(re):"photon"==S.pid?l.push(re):"pion"==S.pid?d.push(re):"proton"==S.pid?u.push(re):"kaon"==S.pid?f.push(re):A.push(re):A.push(re)}),t[i+" | Electrons"]=o,t[i+" | Photons"]=l,t[i+" | Pions"]=d,t[i+" | Protons"]=u,t[i+" | Kaons"]=f,t[i+" | Other"]=A}return t}getHits(e){const t=[];for(const i in e){if(e[i].constructor!=Object)continue;const r=e[i];if(!("collType"in r&&r.collType.includes("edm4hep::")&&r.collType.includes("TrackerHitCollection")&&"collection"in r))continue;const s=r.collection,o=[],l=this.randomColor();s.forEach(d=>{const u=[];"position"in d&&(u.push(.1*d.position.x),u.push(.1*d.position.y),u.push(.1*d.position.z)),o.push({type:"CircularPoint",pos:u,color:"#"+l,size:2})}),t[i]=o}return t}getCells(e){const t=[];for(const i in e){if(e[i].constructor!=Object)continue;const r=e[i];if(!("collType"in r&&r.collType.includes("edm4hep::")&&r.collType.includes("CalorimeterHitCollection")&&"collection"in r))continue;const s=r.collection,o=[];let l=1e9;for(let f=0;f<1e4;++f){const A=Math.floor(Math.random()*s.length),S=Math.floor(Math.random()*s.length);if(A===S)continue;const R=Math.pow(s[A].position.x-s[S].position.x,2),G=Math.pow(s[A].position.y-s[S].position.y,2),re=Math.pow(s[A].position.z-s[S].position.z,2),se=Math.sqrt(R+G+re);se1?.1*Math.floor(l):1,u=Math.floor(358*Math.random());s.forEach(f=>{const A=.1*f.position.x,S=.1*f.position.y,R=.1*f.position.z,G=Math.sqrt(Math.pow(A,2)+Math.pow(S,2)+Math.pow(R,2)),re=Math.sqrt(Math.pow(A,2)+Math.pow(S,2)),se=Math.asinh(R/re),le=Math.acos(A/re)*Math.sign(S),Ee=this.valToLightness(f.energy,.001,1),Ce=this.valToOpacity(f.energy,.001,1),We={eta:se,phi:le,energy:f.energy,radius:G,side:d,length:d,color:"#"+this.convHSLtoHEX(u,90,Ee),opacity:Ce};o.push(We)}),t[i]=o}return t}getCaloClusters(e){const t=[];for(const i in e){if(e[i].constructor!=Object)continue;const r=e[i];if(!("collType"in r)||"edm4hep::ClusterCollection"!==r.collType||!("collection"in r))continue;const o=[];r.collection.forEach(l=>{const d=.1*l.position.x,u=.1*l.position.y,f=.1*l.position.z,A=Math.sqrt(Math.pow(d,2)+Math.pow(u,2)+Math.pow(f,2)),S=Math.sqrt(Math.pow(d,2)+Math.pow(u,2)),R=Math.asinh(f/S),G=Math.acos(d/S)*Math.sign(u);o.push({eta:R,phi:G,energy:100*l.energy,radius:A,side:4})}),t[i]=o}return t}getJets(e){const t=[];for(const i in e){if(e[i].constructor!=Object)continue;const r=e[i];if(!("collType"in r)||"edm4hep::ReconstructedParticleCollection"!==r.collType||!i.includes("Jet")&&!i.includes("jet")||!("collection"in r))continue;const s=[];r.collection.forEach(l=>{if(!("momentum"in l)||!("energy"in l))return;const d=l.momentum.x,u=l.momentum.y,f=l.momentum.z,A=Math.sqrt(Math.pow(d,2)+Math.pow(u,2)),S=Math.asinh(f/A),R=Math.acos(d/A)*Math.sign(u);s.push({eta:S,phi:R,energy:1e3*l.energy})}),t[i]=s}return t}getMissingEnergy(e){const t=[];for(const i in e){if(e[i].constructor!=Object)continue;const r=e[i];if(!("collType"in r)||"edm4hep::ReconstructedParticleCollection"!==r.collType||!i.includes("Missing")&&!i.includes("missing")||!("collection"in r))continue;const s=[];r.collection.forEach(d=>{if(!("momentum"in d)||!("energy"in d))return;const u=d.momentum.x,f=d.momentum.y,A=d.momentum.z,S=Math.sqrt(Math.pow(u,2)+Math.pow(f,2)+Math.pow(A,2));s.push({etx:d.energy*u/S*10,ety:d.energy*f/S*10,color:"#ff69b4"})}),t[i]=s}return t}randomColor(){return Math.floor(16777215*Math.random()).toString(16).padStart(6,"0").toUpperCase()}convHSLtoHEX(e,t,i){i/=100;const r=t*Math.min(i,1-i)/100,s=o=>{const l=(o+e/30)%12,d=i-r*Math.max(Math.min(l-3,9-l,1),-1);return Math.round(255*d).toString(16).padStart(2,"0")};return`${s(0)}${s(8)}${s(4)}`}valToLightness(e,t,i){let r=80-65*(e-t)/(i-t);return r<20&&(r=20),r>85&&(r=85),r}valToOpacity(e,t,i){let r=.2+.65*(e-t)/(i-t);return r<.2&&(r=.2),r>.8&&(r=.8),r}getCollByID(e,t){for(const i in e){if(e[i].constructor!=Object)continue;const r=e[i];if("collID"in r&&r.collID===t)return r.collection}}}class Vge extends J_{constructor(){super(),this.hitData=[],this.particleData=[],this.truthData={}}processHits(e){const t=e.split("\n");let i;console.log("Event has this many hits:",t.length);for(let r=1;r{class n extends Uge{constructor(){super()}static \u0275fac=function(i){return new(i||n)};static \u0275prov=Gi({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),_Q=(()=>{class n{eventDisplay;year;constructor(t){this.eventDisplay=t,this.year=(new Date).getFullYear(),this.eventDisplay.getThreeManager().stopAnimationLoop()}ngAfterViewInit(){this.eventDisplay.getUIManager().detectColorScheme()}static \u0275fac=function(i){return new(i||n)(Lt(Al))};static \u0275cmp=rs({type:n,selectors:[["app-home"]],decls:71,vars:1,consts:[[1,"container"],[1,"pricing-header","p-3","pt-md-5","pb-md-4","text-center"],["src","assets/images/logo-text.svg","alt","",1,"logo","mb-4"],[1,"lead"],[1,"row","centered"],[1,"card"],["src","assets/images/playground.svg","alt","Card image cap",1,"card-img-top"],[1,"card-body","d-flex","flex-column"],[1,"card-title"],[1,"card-text"],["routerLink","/playground",1,"btn","btn-primary"],["src","assets/images/geometry.svg","alt","Card image cap",1,"card-img-top"],["routerLink","/geometry",1,"btn","btn-primary"],["src","assets/images/atlas.svg","alt","Card image cap",1,"card-img-top"],["routerLink","/atlas",1,"btn","btn-primary"],["src","assets/images/lhcb.svg","alt","Card image cap",1,"card-img-top"],["routerLink","/lhcb",1,"btn","btn-primary"],["src","assets/images/cms.svg","alt","Card image cap",1,"card-img-top"],["routerLink","/cms",1,"btn","btn-primary"],["src","assets/images/trackml2.png","alt","Card image cap",1,"card-img-top"],["routerLink","/trackml",1,"btn","btn-primary"],["href","https://github.com/HSF/phoenix"],["href","https://github.com/HSF/phoenix/blob/main/README.md"]],template:function(i,r){1&i&&(Gt(0,"div",0)(1,"div",1),Vr(2,"img",2),Gt(3,"p",3),qi(4,"Application for visualizing High Energy Physics data."),dn()(),Gt(5,"div",4)(6,"div",5),Vr(7,"img",6),Gt(8,"div",7)(9,"h5",8),qi(10,"Playground"),dn(),Gt(11,"p",9),qi(12," Get started with the different Phoenix features. "),dn(),Gt(13,"a",10),qi(14,"Show"),dn()()(),Gt(15,"div",5),Vr(16,"img",11),Gt(17,"div",7)(18,"h5",8),qi(19,"Geometry display"),dn(),Gt(20,"p",9),qi(21,"This test should show some simple geometry."),dn(),Gt(22,"a",12),qi(23,"Show"),dn()()(),Gt(24,"div",5),Vr(25,"img",13),Gt(26,"div",7)(27,"h5",8),qi(28,"ATLAS"),dn(),Gt(29,"p",9),qi(30,"Show the ATLAS detector. One simple event."),dn(),Gt(31,"a",14),qi(32,"Show"),dn()()(),Gt(33,"div",5),Vr(34,"img",15),Gt(35,"div",7)(36,"h5",8),qi(37,"LHCb"),dn(),Gt(38,"p",9),qi(39,"Show the LHCb detector. One simple event."),dn(),Gt(40,"a",16),qi(41,"Show"),dn()()(),Gt(42,"div",5),Vr(43,"img",17),Gt(44,"div",7)(45,"h5",8),qi(46,"CMS"),dn(),Gt(47,"p",9),qi(48,"Show the CMS detector. One simple event."),dn(),Gt(49,"a",18),qi(50,"Show"),dn()()(),Gt(51,"div",5),Vr(52,"img",19),Gt(53,"div",7)(54,"h5",8),qi(55,"TrackML"),dn(),Gt(56,"p",9),qi(57," Visualisation for TrackML. Shows how to write a custom event loader. "),dn(),Gt(58,"a",20),qi(59,"Show"),dn()()()()(),Gt(60,"footer")(61,"p")(62,"em"),qi(63),dn(),qi(64," Phoenix Project "),dn(),Gt(65,"p")(66,"a",21),qi(67," Github "),dn(),qi(68," - "),Gt(69,"a",22),qi(70," Documentation "),dn()()()),2&i&&(jn(63),tA(r.year))},dependencies:[NS],styles:["h1[_ngcontent-%COMP%]{font-family:Circular}.logo[_ngcontent-%COMP%]{margin-top:2em;max-width:24em}.row[_ngcontent-%COMP%]{justify-content:center}.card[_ngcontent-%COMP%]{margin:1.2em;border:1px solid rgba(88,88,88,.08);box-shadow:var(--phoenix-box-shadow);padding:1em;width:20em;background-color:var(--phoenix-background-color-secondary);border-radius:10px}.card[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{color:var(--phoenix-text-color-secondary)}.card[_ngcontent-%COMP%] .card-title[_ngcontent-%COMP%]{font-family:Circular;color:var(--phoenix-text-color)}.card[_ngcontent-%COMP%] .card-img-top[_ngcontent-%COMP%]{width:100%;height:10em;object-fit:contain;border-radius:10px}.card[_ngcontent-%COMP%] .card-body[_ngcontent-%COMP%]{justify-content:space-between}.card[_ngcontent-%COMP%] .card-body[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{border-radius:10px}.lead[_ngcontent-%COMP%]{color:var(--phoenix-text-color-secondary)}footer[_ngcontent-%COMP%]{background-color:var(--phoenix-background-color);margin:5rem 1rem 3rem;color:var(--phoenix-text-color-secondary)}footer[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{text-align:center}footer[_ngcontent-%COMP%] p[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{color:var(--phoenix-text-color-secondary)}footer[_ngcontent-%COMP%] p[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:hover{color:var(--phoenix-text-color-secondary)}"]})}return n})(),ax=(()=>{class n{constructor(){}ngOnInit(){}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=rs({type:n,selectors:[["app-nav"]],decls:2,vars:0,consts:[["id","mainLogo","routerLink","/",1,"main-logo","fixed-top","p-2","mx-auto","mt-2"],["src","assets/images/logo-text.svg"]],template:function(i,r){1&i&&(Gt(0,"a",0),Vr(1,"img",1),dn())},dependencies:[NS],styles:[".main-logo[_ngcontent-%COMP%]{width:140px;z-index:9999}.main-logo[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{transition:all .5s}.main-logo[_ngcontent-%COMP%]:hover img[_ngcontent-%COMP%]{filter:drop-shadow(0px 0px 10px var(--phoenix-text-color));transition:all .5s}"]})}return n})(),sO=(()=>{class n{error=new pC;subscribeToError(t){this.error.onUpdate(t)}setError(t){this.error.update(t)}static \u0275fac=function(i){return new(i||n)};static \u0275prov=Gi({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();const Gge=n=>({"load-complete":n}),qge=n=>({width:n});function Qge(n,e){if(1&n&&(Gt(0,"div",7),Vr(1,"span"),dn()),2&n){const t=Pr(2);jn(),function eg(n){ng(w8,GY,n,!1)}(Oh(2,qge,t.progress+"%"))}}function Wge(n,e){if(1&n&&(ig(0),Vr(1,"img",3),Gt(2,"p",4),qi(3," Loading..."),Vr(4,"br"),Gt(5,"small",5),qi(6,"(This may take a while)"),dn()(),zs(7,Qge,2,4,"div",6),rg()),2&n){const t=Pr();jn(7),Qn("ngIf",void 0!==t.progress)}}function jge(n,e){1&n&&(Gt(0,"p"),qi(1," An error occurred while loading the application. Please try refreshing the page. "),dn())}let lx=(()=>{class n{errorMessageService;loaded=!1;progress;error;constructor(t){this.errorMessageService=t,this.errorMessageService.subscribeToError(i=>{this.loaded||(this.error=i)})}static \u0275fac=function(i){return new(i||n)(Lt(sO))};static \u0275cmp=rs({type:n,selectors:[["app-loader"]],inputs:{loaded:"loaded",progress:"progress"},decls:4,vars:5,consts:[["errorContainer",""],[1,"loader-wrapper","d-flex","position-absolute","flex-column","justify-content-center","align-items-center","w-100","h-100","p-5","text-center",3,"ngClass"],[4,"ngIf","ngIfElse"],["src","assets/images/logo-small.svg","alt","Loader"],[1,"mt-5"],[1,"text-muted"],["class","loading-bar",4,"ngIf"],[1,"loading-bar"]],template:function(i,r){if(1&i&&(Gt(0,"div",1),zs(1,Wge,8,1,"ng-container",2)(2,jge,2,0,"ng-template",null,0,nR),dn()),2&i){const s=Ga(3);Qn("ngClass",Oh(3,Gge,r.loaded)),jn(),Qn("ngIf",void 0===r.error)("ngIfElse",s)}},dependencies:[om,Lh],styles:[".loader-wrapper[_ngcontent-%COMP%]{background:var(--phoenix-background-color);z-index:9998}.loader-wrapper.load-complete[_ngcontent-%COMP%]{display:none!important}.loader-wrapper[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{width:5rem;height:5rem;animation:loader 2s infinite}.loader-wrapper[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{color:var(--phoenix-text-color)}.loader-wrapper[_ngcontent-%COMP%] .loading-bar[_ngcontent-%COMP%]{width:15rem;max-width:90%;height:.5rem;background:var(--phoenix-background-color-tertiary);border-radius:2.5rem;overflow:hidden}.loader-wrapper[_ngcontent-%COMP%] .loading-bar[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{display:block;height:100%;border-radius:2.5rem;background:linear-gradient(to right,var(--phoenix-primary),var(--phoenix-secondary));transition:all .5s}@keyframes _ngcontent-%COMP%_app-loader_loader{0%,to{transform:scale(.1) rotate(0)}95%{transform:scale(1) rotate(15deg)}}"]})}return n})(),$ge=(()=>{class n{eventDisplay;loaded=!1;loadingProgress=0;constructor(t){this.eventDisplay=t}ngOnInit(){this.eventDisplay.init({}),this.eventDisplay.buildGeometryFromParameters({ModuleName:"Module 2",Xdim:10,Ydim:1,Zdim:45,NumPhiEl:64,NumZEl:10,Radius:75,MinZ:-250,MaxZ:250,TiltAngle:.3,PhiOffset:0,Colour:65280,EdgeColour:4494424}),this.eventDisplay.getLoadingManager().addProgressListener(i=>this.loadingProgress=i),this.eventDisplay.getLoadingManager().addLoadListenerWithCheck(()=>this.loaded=!0)}copyCode(){const t=document.getElementById("geometryCode").textContent.trim(),i=document.createElement("input");document.body.appendChild(i),i.value=t,i.select(),document.execCommand("copy"),document.body.removeChild(i)}static \u0275fac=function(i){return new(i||n)(Lt(Al))};static \u0275cmp=rs({type:n,selectors:[["app-geometry"]],decls:14,vars:3,consts:[[3,"loaded","progress"],[1,"demo-info"],["id","geometryCode"],[1,"copy-code",3,"click"],["id","eventDisplay"]],template:function(i,r){1&i&&(Vr(0,"app-loader",0)(1,"app-nav"),Gt(2,"div",1)(3,"p")(4,"b"),qi(5,"Geometry Demo"),dn()(),Gt(6,"p"),qi(7,"Try opening the console and typing:"),dn(),Gt(8,"code",2),qi(9),dn(),Gt(10,"p",3),Ai("click",function(){return r.copyCode()}),Gt(11,"b"),qi(12,"Copy"),dn()()(),Vr(13,"div",4)),2&i&&(Qn("loaded",r.loaded)("progress",r.loadingProgress),jn(9),yl(" ",'var parameters = { ModuleName: "Module 3", Xdim: 10., Ydim: 1., Zdim: 45, NumPhiEl: 64, NumZEl: 10, Radius: 105, MinZ: -250, MaxZ: 250, TiltAngle: 0.3, PhiOffset: 0.0, Colour: 0xffff00, EdgeColour: 0x449458 }; window.EventDisplay.buildGeometryFromParameters(parameters);'," "))},dependencies:[ax,lx],styles:[".demo-info[_ngcontent-%COMP%]{position:absolute;top:5rem;left:1rem;font-size:.8rem;color:var(--phoenix-text-color-secondary);width:20rem;max-width:40%}.demo-info[_ngcontent-%COMP%] code[_ngcontent-%COMP%]{color:var(--phoenix-text-color-secondary);cursor:text}.demo-info[_ngcontent-%COMP%] .copy-code[_ngcontent-%COMP%]{cursor:pointer}"]})}return n})();var qh=function(n){return n.JSON="JSON",n.EDM4HEPJSON="EDM4HEPJSON",n.JIVEXML="JIVEXML",n.IG="IG",n.ZIP="ZIP",n}(qh||{});class cx{format;fileType;handler;accept;constructor(e,t,i,r){this.format=e,this.fileType=t,this.handler=i,this.accept=r}}const Yge=JSON.parse('{"phoenixMenu":{"name":"Phoenix Menu","nodeLevel":0,"toggleState":true,"childrenActive":false,"configs":[{"type":"button","label":"Save state"},{"type":"button","label":"Load state"}],"children":[{"name":"Detector","nodeLevel":1,"toggleState":true,"childrenActive":false,"configs":[{"type":"checkbox","label":"Wireframe","isChecked":false},{"type":"slider","label":"Opacity","min":0,"max":1,"step":0.01,"allowCustomValue":true},{"type":"slider","label":"Scale","min":0,"max":20,"step":0.01,"allowCustomValue":true}],"children":[{"name":"Magnets","nodeLevel":2,"toggleState":true,"childrenActive":false,"configs":[],"children":[{"name":"Barrel Toroid","nodeLevel":3,"toggleState":true,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"slider","label":"Opacity","min":0,"max":1,"step":0.05,"allowCustomValue":true},{"type":"button","label":"Remove"}],"children":[]},{"name":"Endcap","nodeLevel":3,"toggleState":false,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"slider","label":"Opacity","min":0,"max":1,"step":0.05,"allowCustomValue":true},{"type":"button","label":"Remove"}],"children":[]},{"name":"Feet","nodeLevel":3,"toggleState":false,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"slider","label":"Opacity","min":0,"max":1,"step":0.05,"allowCustomValue":true},{"type":"button","label":"Remove"}],"children":[]},{"name":"Warm structure","nodeLevel":3,"toggleState":true,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"slider","label":"Opacity","min":0,"max":1,"step":0.05,"allowCustomValue":true},{"type":"button","label":"Remove"}],"children":[]}]},{"name":"Calorimeters","nodeLevel":2,"toggleState":false,"childrenActive":false,"configs":[],"children":[{"name":"LAr Barrel","nodeLevel":3,"toggleState":false,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"slider","label":"Opacity","min":0,"max":1,"step":0.05,"allowCustomValue":true},{"type":"button","label":"Remove"}],"children":[]},{"name":"LAr EC1","nodeLevel":3,"toggleState":false,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"slider","label":"Opacity","min":0,"max":1,"step":0.05,"allowCustomValue":true},{"type":"button","label":"Remove"}],"children":[]},{"name":"LAr FCAL","nodeLevel":3,"toggleState":false,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"slider","label":"Opacity","min":0,"max":1,"step":0.05,"allowCustomValue":true},{"type":"button","label":"Remove"}],"children":[]},{"name":"LAr HEC","nodeLevel":3,"toggleState":false,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"slider","label":"Opacity","min":0,"max":1,"step":0.05,"allowCustomValue":true},{"type":"button","label":"Remove"}],"children":[]},{"name":"Tile Cal","nodeLevel":3,"toggleState":false,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"slider","label":"Opacity","min":0,"max":1,"step":0.05,"allowCustomValue":true},{"type":"button","label":"Remove"}],"children":[]},{"name":"Tile Cal EC","nodeLevel":3,"toggleState":false,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"slider","label":"Opacity","min":0,"max":1,"step":0.05,"allowCustomValue":true},{"type":"button","label":"Remove"}],"children":[]}]},{"name":"Inner Detector","nodeLevel":2,"toggleState":true,"childrenActive":false,"configs":[],"children":[{"name":"Beam","nodeLevel":3,"toggleState":false,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"slider","label":"Opacity","min":0,"max":1,"step":0.05,"allowCustomValue":true},{"type":"button","label":"Remove"}],"children":[]},{"name":"Pixel","nodeLevel":3,"toggleState":true,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"slider","label":"Opacity","min":0,"max":1,"step":0.05,"allowCustomValue":true},{"type":"button","label":"Remove"}],"children":[]},{"name":"SCT","nodeLevel":3,"toggleState":true,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"slider","label":"Opacity","min":0,"max":1,"step":0.05,"allowCustomValue":true},{"type":"button","label":"Remove"}],"children":[]},{"name":"SCT Endcaps","nodeLevel":3,"toggleState":true,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"slider","label":"Opacity","min":0,"max":1,"step":0.05,"allowCustomValue":true},{"type":"button","label":"Remove"}],"children":[]},{"name":"TRT","nodeLevel":3,"toggleState":true,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"slider","label":"Opacity","min":0,"max":1,"step":0.05,"allowCustomValue":true},{"type":"button","label":"Remove"}],"children":[]},{"name":"TRT Endcaps","nodeLevel":3,"toggleState":true,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"slider","label":"Opacity","min":0,"max":1,"step":0.05,"allowCustomValue":true},{"type":"button","label":"Remove"}],"children":[]}]},{"name":"Muon Spectrometer","nodeLevel":2,"toggleState":false,"childrenActive":false,"configs":[],"children":[{"name":"Endcaps","nodeLevel":3,"toggleState":false,"childrenActive":false,"configs":[],"children":[{"name":"Extra wheel","nodeLevel":4,"toggleState":false,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"slider","label":"Opacity","min":0,"max":1,"step":0.05,"allowCustomValue":true},{"type":"button","label":"Remove"}],"children":[]},{"name":"Big wheel","nodeLevel":4,"toggleState":false,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"slider","label":"Opacity","min":0,"max":1,"step":0.05,"allowCustomValue":true},{"type":"button","label":"Remove"}],"children":[]},{"name":"Outer Wheel","nodeLevel":4,"toggleState":false,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"slider","label":"Opacity","min":0,"max":1,"step":0.05,"allowCustomValue":true},{"type":"button","label":"Remove"}],"children":[]},{"name":"Big Wheel MDT ","nodeLevel":4,"toggleState":false,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"slider","label":"Opacity","min":0,"max":1,"step":0.05,"allowCustomValue":true},{"type":"button","label":"Remove"}],"children":[]},{"name":"Small Wheel","nodeLevel":4,"toggleState":false,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"slider","label":"Opacity","min":0,"max":1,"step":0.05,"allowCustomValue":true},{"type":"button","label":"Remove"}],"children":[]},{"name":"Small Wheel Hub","nodeLevel":4,"toggleState":false,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"slider","label":"Opacity","min":0,"max":1,"step":0.05,"allowCustomValue":true},{"type":"button","label":"Remove"}],"children":[]},{"name":"Small Wheel Feet","nodeLevel":4,"toggleState":false,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"slider","label":"Opacity","min":0,"max":1,"step":0.05,"allowCustomValue":true},{"type":"button","label":"Remove"}],"children":[]},{"name":"TGC2","nodeLevel":4,"toggleState":false,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"slider","label":"Opacity","min":0,"max":1,"step":0.05,"allowCustomValue":true},{"type":"button","label":"Remove"}],"children":[]},{"name":"TGC3","nodeLevel":4,"toggleState":false,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"slider","label":"Opacity","min":0,"max":1,"step":0.05,"allowCustomValue":true},{"type":"button","label":"Remove"}],"children":[]}]},{"name":"Barrel","nodeLevel":3,"toggleState":false,"childrenActive":false,"configs":[],"children":[{"name":"Muon Barrel Inner","nodeLevel":4,"toggleState":false,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"slider","label":"Opacity","min":0,"max":1,"step":0.05,"allowCustomValue":true},{"type":"button","label":"Remove"}],"children":[]},{"name":"Muon Barrel Middle","nodeLevel":4,"toggleState":false,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"slider","label":"Opacity","min":0,"max":1,"step":0.05,"allowCustomValue":true},{"type":"button","label":"Remove"}],"children":[]},{"name":"Muon Barrel Outer","nodeLevel":4,"toggleState":false,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"slider","label":"Opacity","min":0,"max":1,"step":0.05,"allowCustomValue":true},{"type":"button","label":"Remove"}],"children":[]}]}]}]},{"name":"Event Data","nodeLevel":1,"toggleState":true,"childrenActive":false,"configs":[{"type":"checkbox","label":"Depth Test","isChecked":true}],"children":[{"name":"Tracks","nodeLevel":2,"toggleState":true,"childrenActive":false,"configs":[],"children":[{"name":"Tracks_","nodeLevel":3,"toggleState":true,"childrenActive":false,"configs":[],"children":[{"name":"Draw Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"slider","label":"Opacity","min":0.1,"step":0.1,"max":1},{"type":"checkbox","label":"Wireframe"}],"children":[]},{"name":"Cut Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"label","label":"Cuts"},{"type":"button","label":"Reset cuts"},{"type":"rangeSlider","label":"\u03d5","min":-3.14,"max":3.14,"step":0.01,"value":-3.14,"highValue":3.14},{"type":"rangeSlider","label":"\u03b7","min":-4,"max":4,"step":0.1,"value":-4,"highValue":4},{"type":"rangeSlider","label":"\u{1d6d8}2","min":0,"max":100,"step":1,"value":0,"highValue":100},{"type":"rangeSlider","label":"DOF","min":0,"max":100,"step":1,"value":0,"highValue":100},{"type":"rangeSlider","label":"pT","min":0,"max":50000,"step":0.1,"value":0,"highValue":50000},{"type":"rangeSlider","label":"z0","min":-30,"max":30,"step":0.1,"value":-30,"highValue":30},{"type":"rangeSlider","label":"d0","min":-30,"max":30,"step":0.1,"value":-30,"highValue":30}],"children":[]},{"name":"Color Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"color","label":"Color","hidden":false},{"type":"button","label":"Random","hidden":false},{"type":"select","label":"Color by","options":["Charge q","Momentum |p|","Vertex"],"hidden":false},{"type":"color","label":"q=-1","group":"charge","color":"#ff0000","hidden":false},{"type":"color","label":"q=0","group":"charge","color":"#ff0000","hidden":false},{"type":"color","label":"q=1","group":"charge","color":"#ff0000","hidden":false},{"type":"slider","label":"|p| min","group":"mom","min":0,"max":50000,"value":0,"step":10,"allowCustomValue":true,"hidden":true},{"type":"color","label":"|p| min color","group":"mom","color":"#ff0000","hidden":true},{"type":"slider","label":"|p| max","group":"mom","min":0,"max":50000,"value":50000,"step":10,"allowCustomValue":true,"hidden":true},{"type":"color","label":"|p| max color","group":"mom","color":"#ff0000","hidden":true}],"children":[]}]},{"name":"CombinedMuonTracks","nodeLevel":3,"toggleState":true,"childrenActive":false,"configs":[],"children":[{"name":"Draw Options","nodeLevel":4,"childrenActive":false,"configs":[{"type":"slider","label":"Opacity","min":0.1,"step":0.1,"max":1},{"type":"checkbox","label":"Wireframe"}],"children":[]},{"name":"Cut Options","nodeLevel":4,"childrenActive":false,"configs":[{"type":"label","label":"Cuts"},{"type":"button","label":"Reset cuts"},{"type":"rangeSlider","label":"\u03d5","min":-3.14,"max":3.14,"step":0.01,"value":-3.14,"highValue":3.14},{"type":"rangeSlider","label":"\u03b7","min":-4,"max":4,"step":0.1,"value":-4,"highValue":4},{"type":"rangeSlider","label":"\u{1d6d8}2","min":0,"max":100,"step":1,"value":0,"highValue":100},{"type":"rangeSlider","label":"DOF","min":0,"max":100,"step":1,"value":0,"highValue":100},{"type":"rangeSlider","label":"pT","min":0,"max":50000,"step":0.1,"value":0,"highValue":50000},{"type":"rangeSlider","label":"z0","min":-30,"max":30,"step":0.1,"value":-30,"highValue":30},{"type":"rangeSlider","label":"d0","min":-30,"max":30,"step":0.1,"value":-30,"highValue":30}],"children":[]},{"name":"Color Options","nodeLevel":4,"childrenActive":false,"configs":[{"type":"color","label":"Color","color":"#0adb2d","hidden":false},{"type":"button","label":"Random","hidden":false},{"type":"select","label":"Color by","options":["Charge q","Momentum |p|","Vertex"],"hidden":false},{"type":"color","label":"q=-1","group":"charge","color":"#ff0000","hidden":false},{"type":"color","label":"q=0","group":"charge","color":"#ff0000","hidden":false},{"type":"color","label":"q=1","group":"charge","color":"#ff0000","hidden":false},{"type":"slider","label":"|p| min","group":"mom","min":0,"max":50000,"value":0,"step":10,"allowCustomValue":true,"hidden":true},{"type":"color","label":"|p| min color","group":"mom","color":"#ff0000","hidden":true},{"type":"slider","label":"|p| max","group":"mom","min":0,"max":50000,"value":50000,"step":10,"allowCustomValue":true,"hidden":true},{"type":"color","label":"|p| max color","group":"mom","color":"#ff0000","hidden":true}],"children":[]}]},{"name":"MuonSpectrometerTracks","nodeLevel":3,"toggleState":false,"childrenActive":false,"configs":[],"children":[{"name":"Draw Options","nodeLevel":4,"toggleState":false,"childrenActive":false,"configs":[{"type":"slider","label":"Opacity","min":0.1,"step":0.1,"max":1},{"type":"checkbox","label":"Wireframe"}],"children":[]},{"name":"Cut Options","nodeLevel":4,"toggleState":false,"childrenActive":false,"configs":[{"type":"label","label":"Cuts"},{"type":"button","label":"Reset cuts"},{"type":"rangeSlider","label":"\u03d5","min":-3.14,"max":3.14,"step":0.01,"value":-3.14,"highValue":3.14},{"type":"rangeSlider","label":"\u03b7","min":-4,"max":4,"step":0.1,"value":-4,"highValue":4},{"type":"rangeSlider","label":"\u{1d6d8}2","min":0,"max":100,"step":1,"value":0,"highValue":100},{"type":"rangeSlider","label":"DOF","min":0,"max":100,"step":1,"value":0,"highValue":100},{"type":"rangeSlider","label":"pT","min":0,"max":50000,"step":0.1,"value":0,"highValue":50000},{"type":"rangeSlider","label":"z0","min":-30,"max":30,"step":0.1,"value":-30,"highValue":30},{"type":"rangeSlider","label":"d0","min":-30,"max":30,"step":0.1,"value":-30,"highValue":30}],"children":[]},{"name":"Color Options","nodeLevel":4,"toggleState":false,"childrenActive":false,"configs":[{"type":"color","label":"Color","hidden":false},{"type":"button","label":"Random","hidden":false},{"type":"select","label":"Color by","options":["Charge q","Momentum |p|","Vertex"],"hidden":false},{"type":"color","label":"q=-1","group":"charge","color":"#ff0000","hidden":false},{"type":"color","label":"q=0","group":"charge","color":"#ff0000","hidden":false},{"type":"color","label":"q=1","group":"charge","color":"#ff0000","hidden":false},{"type":"slider","label":"|p| min","group":"mom","min":0,"max":50000,"value":0,"step":10,"allowCustomValue":true,"hidden":true},{"type":"color","label":"|p| min color","group":"mom","color":"#ff0000","hidden":true},{"type":"slider","label":"|p| max","group":"mom","min":0,"max":50000,"value":50000,"step":10,"allowCustomValue":true,"hidden":true},{"type":"color","label":"|p| max color","group":"mom","color":"#ff0000","hidden":true}],"children":[]}]},{"name":"CombinedInDetTracks","nodeLevel":3,"toggleState":false,"childrenActive":false,"configs":[],"children":[{"name":"Draw Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"slider","label":"Opacity","min":0.1,"step":0.1,"max":1},{"type":"checkbox","label":"Wireframe"}],"children":[]},{"name":"Cut Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"label","label":"Cuts"},{"type":"button","label":"Reset cuts"},{"type":"rangeSlider","label":"\u03d5","min":-3.14,"max":3.14,"step":0.01,"value":-3.14,"highValue":3.14},{"type":"rangeSlider","label":"\u03b7","min":-4,"max":4,"step":0.1,"value":-4,"highValue":4},{"type":"rangeSlider","label":"\u{1d6d8}2","min":0,"max":100,"step":1,"value":0,"highValue":100},{"type":"rangeSlider","label":"DOF","min":0,"max":100,"step":1,"value":0,"highValue":100},{"type":"rangeSlider","label":"pT","min":0,"max":50000,"step":0.1,"value":0,"highValue":50000},{"type":"rangeSlider","label":"z0","min":-30,"max":30,"step":0.1,"value":-30,"highValue":30},{"type":"rangeSlider","label":"d0","min":-30,"max":30,"step":0.1,"value":-30,"highValue":30}],"children":[]},{"name":"Color Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"color","label":"Color","hidden":false},{"type":"button","label":"Random","hidden":false},{"type":"select","label":"Color by","options":["Charge q","Momentum |p|","Vertex"],"hidden":false},{"type":"color","label":"q=-1","group":"charge","color":"#ff0000","hidden":false},{"type":"color","label":"q=0","group":"charge","color":"#ff0000","hidden":false},{"type":"color","label":"q=1","group":"charge","color":"#ff0000","hidden":false},{"type":"slider","label":"|p| min","group":"mom","min":0,"max":50000,"value":0,"step":10,"allowCustomValue":true,"hidden":true},{"type":"color","label":"|p| min color","group":"mom","color":"#ff0000","hidden":true},{"type":"slider","label":"|p| max","group":"mom","min":0,"max":50000,"value":50000,"step":10,"allowCustomValue":true,"hidden":true},{"type":"color","label":"|p| max color","group":"mom","color":"#ff0000","hidden":true}],"children":[]}]},{"name":"GSFTracks","nodeLevel":3,"toggleState":false,"childrenActive":false,"configs":[],"children":[{"name":"Draw Options","nodeLevel":4,"toggleState":false,"childrenActive":false,"configs":[{"type":"slider","label":"Opacity","min":0.1,"step":0.1,"max":1},{"type":"checkbox","label":"Wireframe"}],"children":[]},{"name":"Cut Options","nodeLevel":4,"toggleState":false,"childrenActive":false,"configs":[{"type":"label","label":"Cuts"},{"type":"button","label":"Reset cuts"},{"type":"rangeSlider","label":"\u03d5","min":-3.14,"max":3.14,"step":0.01,"value":-3.14,"highValue":3.14},{"type":"rangeSlider","label":"\u03b7","min":-4,"max":4,"step":0.1,"value":-4,"highValue":4},{"type":"rangeSlider","label":"\u{1d6d8}2","min":0,"max":100,"step":1,"value":0,"highValue":100},{"type":"rangeSlider","label":"DOF","min":0,"max":100,"step":1,"value":0,"highValue":100},{"type":"rangeSlider","label":"pT","min":0,"max":50000,"step":0.1,"value":0,"highValue":50000},{"type":"rangeSlider","label":"z0","min":-30,"max":30,"step":0.1,"value":-30,"highValue":30},{"type":"rangeSlider","label":"d0","min":-30,"max":30,"step":0.1,"value":-30,"highValue":30}],"children":[]},{"name":"Color Options","nodeLevel":4,"toggleState":false,"childrenActive":false,"configs":[{"type":"color","label":"Color","hidden":false},{"type":"button","label":"Random","hidden":false},{"type":"select","label":"Color by","options":["Charge q","Momentum |p|","Vertex"],"hidden":false},{"type":"color","label":"q=-1","group":"charge","color":"#ff0000","hidden":false},{"type":"color","label":"q=0","group":"charge","color":"#ff0000","hidden":false},{"type":"color","label":"q=1","group":"charge","color":"#ff0000","hidden":false},{"type":"slider","label":"|p| min","group":"mom","min":0,"max":50000,"value":0,"step":10,"allowCustomValue":true,"hidden":true},{"type":"color","label":"|p| min color","group":"mom","color":"#ff0000","hidden":true},{"type":"slider","label":"|p| max","group":"mom","min":0,"max":50000,"value":50000,"step":10,"allowCustomValue":true,"hidden":true},{"type":"color","label":"|p| max color","group":"mom","color":"#ff0000","hidden":true}],"children":[]}]},{"name":"InDetTrackParticles_xAOD","nodeLevel":3,"toggleState":true,"childrenActive":false,"configs":[],"children":[{"name":"Draw Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"slider","label":"Opacity","min":0.1,"step":0.1,"max":1},{"type":"checkbox","label":"Wireframe"}],"children":[]},{"name":"Cut Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"label","label":"Cuts"},{"type":"button","label":"Reset cuts"},{"type":"rangeSlider","label":"\u03d5","min":-3.14,"max":3.14,"step":0.01,"value":-3.14,"highValue":3.14},{"type":"rangeSlider","label":"\u03b7","min":-4,"max":4,"step":0.1,"value":-4,"highValue":4},{"type":"rangeSlider","label":"\u{1d6d8}2","min":0,"max":100,"step":1,"value":0,"highValue":100},{"type":"rangeSlider","label":"DOF","min":0,"max":100,"step":1,"value":0,"highValue":100},{"type":"rangeSlider","label":"pT","min":0,"max":50000,"step":0.1,"value":0,"highValue":50000},{"type":"rangeSlider","label":"z0","min":-30,"max":30,"step":0.1,"value":-30,"highValue":30},{"type":"rangeSlider","label":"d0","min":-30,"max":30,"step":0.1,"value":-30,"highValue":30}],"children":[]},{"name":"Color Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"color","label":"Color","hidden":false},{"type":"button","label":"Random","hidden":false},{"type":"select","label":"Color by","options":["Charge q","Momentum |p|","Vertex"],"hidden":false},{"type":"color","label":"q=-1","group":"charge","color":"#ff0000","hidden":false},{"type":"color","label":"q=0","group":"charge","color":"#ff0000","hidden":false},{"type":"color","label":"q=1","group":"charge","color":"#ff0000","hidden":false},{"type":"slider","label":"|p| min","group":"mom","min":0,"max":50000,"value":0,"step":10,"allowCustomValue":true,"hidden":true},{"type":"color","label":"|p| min color","group":"mom","color":"#ff0000","hidden":true},{"type":"slider","label":"|p| max","group":"mom","min":0,"max":50000,"value":50000,"step":10,"allowCustomValue":true,"hidden":true},{"type":"color","label":"|p| max color","group":"mom","color":"#ff0000","hidden":true}],"children":[]}]},{"name":"CombinedMuonTrackParticles_xAOD","nodeLevel":3,"toggleState":false,"childrenActive":false,"configs":[],"children":[{"name":"Draw Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"slider","label":"Opacity","min":0.1,"step":0.1,"max":1},{"type":"checkbox","label":"Wireframe"}],"children":[]},{"name":"Cut Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"label","label":"Cuts"},{"type":"button","label":"Reset cuts"},{"type":"rangeSlider","label":"\u03d5","min":-3.14,"max":3.14,"step":0.01,"value":-3.14,"highValue":3.14},{"type":"rangeSlider","label":"\u03b7","min":-4,"max":4,"step":0.1,"value":-4,"highValue":4},{"type":"rangeSlider","label":"\u{1d6d8}2","min":0,"max":100,"step":1,"value":0,"highValue":100},{"type":"rangeSlider","label":"DOF","min":0,"max":100,"step":1,"value":0,"highValue":100},{"type":"rangeSlider","label":"pT","min":0,"max":50000,"step":0.1,"value":0,"highValue":50000},{"type":"rangeSlider","label":"z0","min":-30,"max":30,"step":0.1,"value":-30,"highValue":30},{"type":"rangeSlider","label":"d0","min":-30,"max":30,"step":0.1,"value":-30,"highValue":30}],"children":[]},{"name":"Color Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"color","label":"Color","hidden":false},{"type":"button","label":"Random","hidden":false},{"type":"select","label":"Color by","options":["Charge q","Momentum |p|","Vertex"],"hidden":false},{"type":"color","label":"q=-1","group":"charge","color":"#ff0000","hidden":false},{"type":"color","label":"q=0","group":"charge","color":"#ff0000","hidden":false},{"type":"color","label":"q=1","group":"charge","color":"#ff0000","hidden":false},{"type":"slider","label":"|p| min","group":"mom","min":0,"max":50000,"value":0,"step":10,"allowCustomValue":true,"hidden":true},{"type":"color","label":"|p| min color","group":"mom","color":"#ff0000","hidden":true},{"type":"slider","label":"|p| max","group":"mom","min":0,"max":50000,"value":50000,"step":10,"allowCustomValue":true,"hidden":true},{"type":"color","label":"|p| max color","group":"mom","color":"#ff0000","hidden":true}],"children":[]}]},{"name":"GSFTrackParticles_xAOD","nodeLevel":3,"toggleState":false,"childrenActive":false,"configs":[],"children":[{"name":"Draw Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"slider","label":"Opacity","min":0.1,"step":0.1,"max":1},{"type":"checkbox","label":"Wireframe"}],"children":[]},{"name":"Cut Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"label","label":"Cuts"},{"type":"button","label":"Reset cuts"},{"type":"rangeSlider","label":"\u03d5","min":-3.14,"max":3.14,"step":0.01,"value":-3.14,"highValue":3.14},{"type":"rangeSlider","label":"\u03b7","min":-4,"max":4,"step":0.1,"value":-4,"highValue":4},{"type":"rangeSlider","label":"\u{1d6d8}2","min":0,"max":100,"step":1,"value":0,"highValue":100},{"type":"rangeSlider","label":"DOF","min":0,"max":100,"step":1,"value":0,"highValue":100},{"type":"rangeSlider","label":"pT","min":0,"max":50000,"step":0.1,"value":0,"highValue":50000},{"type":"rangeSlider","label":"z0","min":-30,"max":30,"step":0.1,"value":-30,"highValue":30},{"type":"rangeSlider","label":"d0","min":-30,"max":30,"step":0.1,"value":-30,"highValue":30}],"children":[]},{"name":"Color Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"color","label":"Color","hidden":false},{"type":"button","label":"Random","hidden":false},{"type":"select","label":"Color by","options":["Charge q","Momentum |p|","Vertex"],"hidden":false},{"type":"color","label":"q=-1","group":"charge","color":"#ff0000","hidden":false},{"type":"color","label":"q=0","group":"charge","color":"#ff0000","hidden":false},{"type":"color","label":"q=1","group":"charge","color":"#ff0000","hidden":false},{"type":"slider","label":"|p| min","group":"mom","min":0,"max":50000,"value":0,"step":10,"allowCustomValue":true,"hidden":true},{"type":"color","label":"|p| min color","group":"mom","color":"#ff0000","hidden":true},{"type":"slider","label":"|p| max","group":"mom","min":0,"max":50000,"value":50000,"step":10,"allowCustomValue":true,"hidden":true},{"type":"color","label":"|p| max color","group":"mom","color":"#ff0000","hidden":true}],"children":[]}]}]},{"name":"Jets","nodeLevel":2,"toggleState":true,"childrenActive":false,"configs":[{"type":"slider","label":"Jets Scale","value":1,"min":0.001,"step":0.01,"max":100,"allowCustomValue":true}],"children":[{"name":"AntiKt4EMTopoJets_xAOD","nodeLevel":3,"toggleState":false,"childrenActive":false,"configs":[],"children":[{"name":"Draw Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"slider","label":"Opacity","min":0.1,"step":0.1,"max":1},{"type":"checkbox","label":"Wireframe"}],"children":[]},{"name":"Cut Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"label","label":"Cuts"},{"type":"button","label":"Reset cuts"},{"type":"rangeSlider","label":"\u03d5","min":-3.14,"max":3.14,"step":0.01,"value":-3.14,"highValue":3.14},{"type":"rangeSlider","label":"\u03b7","min":-5,"max":5,"step":0.1,"value":-5,"highValue":5},{"type":"rangeSlider","label":"Energy","min":0,"max":100000,"step":100,"value":0,"highValue":100000}],"children":[]},{"name":"Color Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"button","label":"Random"}],"children":[]}]},{"name":"AntiKt4LCTopoJets_xAOD","nodeLevel":3,"toggleState":true,"childrenActive":false,"configs":[],"children":[{"name":"Draw Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"slider","label":"Opacity","min":0.1,"step":0.1,"max":1},{"type":"checkbox","label":"Wireframe"}],"children":[]},{"name":"Cut Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"label","label":"Cuts"},{"type":"button","label":"Reset cuts"},{"type":"rangeSlider","label":"\u03d5","min":-3.14,"max":3.14,"step":0.01,"value":-3.14,"highValue":3.14},{"type":"rangeSlider","label":"\u03b7","min":-5,"max":5,"step":0.1,"value":-5,"highValue":5},{"type":"rangeSlider","label":"Energy","min":0,"max":100000,"step":100,"value":0,"highValue":100000}],"children":[]},{"name":"Color Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"button","label":"Random"}],"children":[]}]},{"name":"AntiKt10LCTopoJets_xAOD","nodeLevel":3,"toggleState":false,"childrenActive":false,"configs":[],"children":[{"name":"Draw Options","nodeLevel":4,"toggleState":false,"childrenActive":false,"configs":[{"type":"slider","label":"Opacity","min":0.1,"step":0.1,"max":1},{"type":"checkbox","label":"Wireframe"}],"children":[]},{"name":"Cut Options","nodeLevel":4,"toggleState":false,"childrenActive":false,"configs":[{"type":"label","label":"Cuts"},{"type":"button","label":"Reset cuts"},{"type":"rangeSlider","label":"\u03d5","min":-3.14,"max":3.14,"step":0.01,"value":-3.14,"highValue":3.14},{"type":"rangeSlider","label":"\u03b7","min":-5,"max":5,"step":0.1,"value":-5,"highValue":5},{"type":"rangeSlider","label":"Energy","min":0,"max":100000,"step":100,"value":0,"highValue":100000}],"children":[]},{"name":"Color Options","nodeLevel":4,"toggleState":false,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"button","label":"Random"}],"children":[]}]}]},{"name":"Hits","nodeLevel":2,"toggleState":false,"childrenActive":false,"configs":[],"children":[{"name":"Pixel","nodeLevel":3,"toggleState":false,"childrenActive":false,"configs":[],"children":[{"name":"Draw Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"slider","label":"Opacity","min":0.1,"step":0.1,"max":1},{"type":"checkbox","label":"Wireframe"}],"children":[]},{"name":"Color Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"button","label":"Random"}],"children":[]}]},{"name":"SCT","nodeLevel":3,"toggleState":false,"childrenActive":false,"configs":[],"children":[{"name":"Draw Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"slider","label":"Opacity","min":0.1,"step":0.1,"max":1},{"type":"checkbox","label":"Wireframe"}],"children":[]},{"name":"Color Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"button","label":"Random"}],"children":[]}]},{"name":"TRT","nodeLevel":3,"toggleState":false,"childrenActive":false,"configs":[],"children":[{"name":"Draw Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"slider","label":"Opacity","min":0.1,"step":0.1,"max":1},{"type":"checkbox","label":"Wireframe"}],"children":[]},{"name":"Color Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"button","label":"Random"}],"children":[]}]},{"name":"MDT","nodeLevel":3,"toggleState":false,"childrenActive":false,"configs":[],"children":[{"name":"Draw Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"slider","label":"Opacity","min":0.1,"step":0.1,"max":1},{"type":"checkbox","label":"Wireframe"}],"children":[]},{"name":"Color Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"button","label":"Random"}],"children":[]}]},{"name":"RPC","nodeLevel":3,"toggleState":false,"childrenActive":false,"configs":[],"children":[{"name":"Draw Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"slider","label":"Opacity","min":0.1,"step":0.1,"max":1},{"type":"checkbox","label":"Wireframe"}],"children":[]},{"name":"Color Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"button","label":"Random"}],"children":[]}]},{"name":"TGC","nodeLevel":3,"toggleState":false,"childrenActive":false,"configs":[],"children":[{"name":"Draw Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"slider","label":"Opacity","min":0.1,"step":0.1,"max":1},{"type":"checkbox","label":"Wireframe"}],"children":[]},{"name":"Color Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"button","label":"Random"}],"children":[]}]},{"name":"CSC","nodeLevel":3,"toggleState":false,"childrenActive":false,"configs":[],"children":[{"name":"Draw Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"slider","label":"Opacity","min":0.1,"step":0.1,"max":1},{"type":"checkbox","label":"Wireframe"}],"children":[]},{"name":"Color Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"button","label":"Random"}],"children":[]}]}]},{"name":"CaloClusters","nodeLevel":2,"toggleState":true,"childrenActive":false,"configs":[{"type":"slider","label":"CaloClusters Scale","value":1,"min":0.001,"step":0.01,"max":100,"allowCustomValue":true}],"children":[{"name":"egammaClusters_xAOD","nodeLevel":3,"toggleState":false,"childrenActive":false,"configs":[],"children":[{"name":"Draw Options","nodeLevel":4,"toggleState":false,"childrenActive":false,"configs":[{"type":"slider","label":"Opacity","min":0.1,"step":0.1,"max":1},{"type":"checkbox","label":"Wireframe"}],"children":[]},{"name":"Cut Options","nodeLevel":4,"toggleState":false,"childrenActive":false,"configs":[{"type":"label","label":"Cuts"},{"type":"button","label":"Reset cuts"},{"type":"rangeSlider","label":"\u03d5","min":-3.14,"max":3.14,"step":0.01,"value":-3.14,"highValue":3.14},{"type":"rangeSlider","label":"\u03b7","min":-5,"max":5,"step":0.1,"value":-5,"highValue":5},{"type":"rangeSlider","label":"Energy","min":0,"max":10000,"step":1,"value":0,"highValue":10000}],"children":[]},{"name":"Color Options","nodeLevel":4,"toggleState":false,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"button","label":"Random"}],"children":[]}]},{"name":"CaloCalTopoClusters","nodeLevel":3,"toggleState":true,"childrenActive":false,"configs":[],"children":[{"name":"Draw Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"slider","label":"Opacity","min":0.1,"step":0.1,"max":1},{"type":"checkbox","label":"Wireframe"}],"children":[]},{"name":"Cut Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"label","label":"Cuts"},{"type":"button","label":"Reset cuts"},{"type":"rangeSlider","label":"\u03d5","min":-3.14,"max":3.14,"step":0.01,"value":-3.14,"highValue":3.14},{"type":"rangeSlider","label":"\u03b7","min":-5,"max":5,"step":0.1,"value":-5,"highValue":5},{"type":"rangeSlider","label":"Energy","min":0,"max":10000,"step":1,"value":0,"highValue":10000}],"children":[]},{"name":"Color Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"button","label":"Random"}],"children":[]}]}]},{"name":"CaloCells","nodeLevel":2,"toggleState":false,"childrenActive":false,"configs":[],"children":[{"name":"LAr","nodeLevel":3,"toggleState":false,"childrenActive":false,"configs":[],"children":[{"name":"Draw Options","nodeLevel":4,"toggleState":false,"childrenActive":false,"configs":[{"type":"slider","label":"Opacity","min":0.1,"step":0.1,"max":1},{"type":"checkbox","label":"Wireframe"}],"children":[]},{"name":"Cut Options","nodeLevel":4,"toggleState":false,"childrenActive":false,"configs":[{"type":"label","label":"Cuts"},{"type":"button","label":"Reset cuts"},{"type":"rangeSlider","label":"\u03d5","min":-3.14,"max":3.14,"step":0.01,"value":-3.14,"highValue":3.14},{"type":"rangeSlider","label":"\u03b7","min":-5,"max":5,"step":0.1,"value":-5,"highValue":5},{"type":"rangeSlider","label":"Energy","min":0,"max":10000,"step":1,"value":0,"highValue":10000}],"children":[]},{"name":"Color Options","nodeLevel":4,"toggleState":false,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"button","label":"Random"}],"children":[]}]},{"name":"HEC","nodeLevel":3,"toggleState":false,"childrenActive":false,"configs":[],"children":[{"name":"Draw Options","nodeLevel":4,"toggleState":false,"childrenActive":false,"configs":[{"type":"slider","label":"Opacity","min":0.1,"step":0.1,"max":1},{"type":"checkbox","label":"Wireframe"}],"children":[]},{"name":"Cut Options","nodeLevel":4,"toggleState":false,"childrenActive":false,"configs":[{"type":"label","label":"Cuts"},{"type":"button","label":"Reset cuts"},{"type":"rangeSlider","label":"\u03d5","min":-3.14,"max":3.14,"step":0.01,"value":-3.14,"highValue":3.14},{"type":"rangeSlider","label":"\u03b7","min":-5,"max":5,"step":0.1,"value":-5,"highValue":5},{"type":"rangeSlider","label":"Energy","min":0,"max":10000,"step":1,"value":0,"highValue":10000}],"children":[]},{"name":"Color Options","nodeLevel":4,"toggleState":false,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"button","label":"Random"}],"children":[]}]}]},{"name":"PlanarCaloCells","nodeLevel":2,"toggleState":false,"childrenActive":false,"configs":[{"type":"slider","label":"PlanarCaloCells Scale","value":1,"min":0.001,"step":0.01,"max":100,"allowCustomValue":true}],"children":[]},{"name":"Muons","nodeLevel":2,"toggleState":false,"childrenActive":false,"configs":[],"children":[{"name":"Muons_xAOD","nodeLevel":3,"toggleState":false,"childrenActive":false,"configs":[],"children":[{"name":"Draw Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"slider","label":"Opacity","min":0.1,"step":0.1,"max":1},{"type":"checkbox","label":"Wireframe"}],"children":[]},{"name":"Cut Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"label","label":"Cuts"},{"type":"button","label":"Reset cuts"},{"type":"rangeSlider","label":"\u03d5","min":-3.14,"max":3.14,"step":0.01,"value":-3.14,"highValue":3.14},{"type":"rangeSlider","label":"\u03b7","min":-4,"max":4,"step":0.1,"value":-4,"highValue":4},{"type":"rangeSlider","label":"Energy","min":0,"max":10000,"step":1,"value":0,"highValue":10000}],"children":[]},{"name":"Color Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"button","label":"Random"}],"children":[]}]},{"name":"Muons","nodeLevel":3,"toggleState":false,"childrenActive":false,"configs":[],"children":[{"name":"Draw Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"slider","label":"Opacity","min":0.1,"step":0.1,"max":1},{"type":"checkbox","label":"Wireframe"}],"children":[]},{"name":"Cut Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"label","label":"Cuts"},{"type":"button","label":"Reset cuts"},{"type":"rangeSlider","label":"\u03d5","min":-3.14,"max":3.14,"step":0.01,"value":-3.14,"highValue":3.14},{"type":"rangeSlider","label":"\u03b7","min":-4,"max":4,"step":0.1,"value":-4,"highValue":4},{"type":"rangeSlider","label":"Energy","min":0,"max":10000,"step":1,"value":0,"highValue":10000}],"children":[]},{"name":"Color Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"button","label":"Random"}],"children":[]}]}]},{"name":"Photons","nodeLevel":2,"toggleState":true,"childrenActive":false,"configs":[],"children":[{"name":"Photons_xAOD","nodeLevel":3,"toggleState":true,"childrenActive":false,"configs":[],"children":[{"name":"Draw Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"slider","label":"Opacity","min":0.1,"step":0.1,"max":1},{"type":"checkbox","label":"Wireframe"}],"children":[]},{"name":"Cut Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"label","label":"Cuts"},{"type":"button","label":"Reset cuts"},{"type":"rangeSlider","label":"\u03d5","min":-3.14,"max":3.14,"step":0.01,"value":-3.14,"highValue":3.14},{"type":"rangeSlider","label":"\u03b7","min":-4,"max":4,"step":0.1,"value":-4,"highValue":4},{"type":"rangeSlider","label":"Energy","min":0,"max":10000,"step":1,"value":0,"highValue":10000}],"children":[]},{"name":"Color Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"button","label":"Random"}],"children":[]}]}]},{"name":"Electrons","nodeLevel":2,"toggleState":true,"childrenActive":false,"configs":[],"children":[{"name":"Electrons_xAOD","nodeLevel":3,"toggleState":true,"childrenActive":false,"configs":[],"children":[{"name":"Draw Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"slider","label":"Opacity","min":0.1,"step":0.1,"max":1},{"type":"checkbox","label":"Wireframe"}],"children":[]},{"name":"Cut Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"label","label":"Cuts"},{"type":"button","label":"Reset cuts"},{"type":"rangeSlider","label":"\u03d5","min":-3.14,"max":3.14,"step":0.01,"value":-3.14,"highValue":3.14},{"type":"rangeSlider","label":"\u03b7","min":-4,"max":4,"step":0.1,"value":-4,"highValue":4},{"type":"rangeSlider","label":"Energy","min":0,"max":10000,"step":1,"value":0,"highValue":10000}],"children":[]},{"name":"Color Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"button","label":"Random"}],"children":[]}]},{"name":"ForwardElectrons_xAOD","nodeLevel":3,"toggleState":true,"childrenActive":false,"configs":[],"children":[{"name":"Draw Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"slider","label":"Opacity","min":0.1,"step":0.1,"max":1},{"type":"checkbox","label":"Wireframe"}],"children":[]},{"name":"Cut Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"label","label":"Cuts"},{"type":"button","label":"Reset cuts"},{"type":"rangeSlider","label":"\u03d5","min":-3.14,"max":3.14,"step":0.01,"value":-3.14,"highValue":3.14},{"type":"rangeSlider","label":"\u03b7","min":-4,"max":4,"step":0.1,"value":-4,"highValue":4},{"type":"rangeSlider","label":"Energy","min":0,"max":10000,"step":1,"value":0,"highValue":10000}],"children":[]},{"name":"Color Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"button","label":"Random"}],"children":[]}]},{"name":"HLT_xAOD__ElectronContainer_egamma_Electrons_xAOD","nodeLevel":3,"toggleState":true,"childrenActive":false,"configs":[],"children":[{"name":"Draw Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"slider","label":"Opacity","min":0.1,"step":0.1,"max":1},{"type":"checkbox","label":"Wireframe"}],"children":[]},{"name":"Cut Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"label","label":"Cuts"},{"type":"button","label":"Reset cuts"},{"type":"rangeSlider","label":"\u03d5","min":-3.14,"max":3.14,"step":0.01,"value":-3.14,"highValue":3.14},{"type":"rangeSlider","label":"\u03b7","min":-4,"max":4,"step":0.1,"value":-4,"highValue":4},{"type":"rangeSlider","label":"Energy","min":0,"max":10000,"step":1,"value":0,"highValue":10000}],"children":[]},{"name":"Color Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"button","label":"Random"}],"children":[]}]}]},{"name":"Vertices","nodeLevel":2,"toggleState":true,"childrenActive":false,"configs":[{"type":"slider","label":"Vertices Scale","value":1,"min":0.001,"step":0.01,"max":100,"allowCustomValue":true}],"children":[{"name":"Vertices_xAOD","nodeLevel":3,"toggleState":true,"childrenActive":false,"configs":[],"children":[{"name":"Draw Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"slider","label":"Opacity","min":0.1,"step":0.1,"max":1},{"type":"checkbox","label":"Wireframe"}],"children":[]},{"name":"Cut Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"label","label":"Cuts"},{"type":"button","label":"Reset cuts"},{"type":"rangeSlider","label":"vertexType","min":0,"max":5,"step":1,"value":0,"highValue":5}],"children":[]},{"name":"Color Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"button","label":"Random"}],"children":[]}]}]},{"name":"MissingEnergy","nodeLevel":2,"toggleState":true,"childrenActive":false,"configs":[{"type":"slider","label":"Size (%)","value":100,"min":1,"max":200,"allowCustomValue":true}],"children":[{"name":"MET_Reference_AntiKt4EMTopo_xAOD","nodeLevel":3,"toggleState":true,"childrenActive":false,"configs":[],"children":[{"name":"Draw Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"slider","label":"Opacity","min":0.1,"step":0.1,"max":1},{"type":"checkbox","label":"Wireframe"}],"children":[]},{"name":"Color Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"button","label":"Random"}],"children":[]}]},{"name":"MET_Calo_xAOD","nodeLevel":3,"toggleState":true,"childrenActive":false,"configs":[],"children":[{"name":"Draw Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"slider","label":"Opacity","min":0.1,"step":0.1,"max":1},{"type":"checkbox","label":"Wireframe"}],"children":[]},{"name":"Color Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"button","label":"Random"}],"children":[]}]},{"name":"MET_LocHadTopo_xAOD","nodeLevel":3,"toggleState":true,"childrenActive":false,"configs":[],"children":[{"name":"Draw Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"slider","label":"Opacity","min":0.1,"step":0.1,"max":1},{"type":"checkbox","label":"Wireframe"}],"children":[]},{"name":"Color Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"button","label":"Random"}],"children":[]}]},{"name":"MET_Core_AntiKt4LCTopo_xAOD","nodeLevel":3,"toggleState":true,"childrenActive":false,"configs":[],"children":[{"name":"Draw Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"slider","label":"Opacity","min":0.1,"step":0.1,"max":1},{"type":"checkbox","label":"Wireframe"}],"children":[]},{"name":"Color Options","nodeLevel":4,"toggleState":true,"childrenActive":false,"configs":[{"type":"color","label":"Color"},{"type":"button","label":"Random"}],"children":[]}]}]}]},{"name":"Labels","nodeLevel":1,"toggleState":true,"childrenActive":false,"configs":[{"type":"slider","label":"Size","min":0,"max":10,"step":0.01,"allowCustomValue":true},{"type":"color","label":"Color","color":"#a8a8a8"},{"type":"button","label":"Save Labels"},{"type":"button","label":"Load Labels"}],"children":[]}]},"eventDisplay":{"cameraPosition":[3096.1557286722164,2821.4315307500133,4232.068942374551],"startClippingAngle":0,"openingClippingAngle":90}}');let oO;try{oO=typeof Intl<"u"&&Intl.v8BreakIterator}catch{oO=!1}let ME,dx,aO,dd=(()=>{class n{constructor(t){this._platformId=t,this.isBrowser=this._platformId?D7(this._platformId):"object"==typeof document&&!!document,this.EDGE=this.isBrowser&&/(edge)/i.test(navigator.userAgent),this.TRIDENT=this.isBrowser&&/(msie|trident)/i.test(navigator.userAgent),this.BLINK=this.isBrowser&&!(!window.chrome&&!oO)&&typeof CSS<"u"&&!this.EDGE&&!this.TRIDENT,this.WEBKIT=this.isBrowser&&/AppleWebKit/i.test(navigator.userAgent)&&!this.BLINK&&!this.EDGE&&!this.TRIDENT,this.IOS=this.isBrowser&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!("MSStream"in window),this.FIREFOX=this.isBrowser&&/(firefox|minefield)/i.test(navigator.userAgent),this.ANDROID=this.isBrowser&&/android/i.test(navigator.userAgent)&&!this.TRIDENT,this.SAFARI=this.isBrowser&&/safari/i.test(navigator.userAgent)&&this.WEBKIT}static#e=this.\u0275fac=function(i){return new(i||n)(xi(Kp))};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();function P0(n){return function Kge(){if(null==ME&&typeof window<"u")try{window.addEventListener("test",null,Object.defineProperty({},"passive",{get:()=>ME=!0}))}finally{ME=ME||!1}return ME}()?n:!!n.capture}function vQ(){if(null==dx){if("object"!=typeof document||!document||"function"!=typeof Element||!Element)return dx=!1,dx;if("scrollBehavior"in document.documentElement.style)dx=!0;else{const n=Element.prototype.scrollTo;dx=!!n&&!/\{\s*\[native code\]\s*\}/.test(n.toString())}}return dx}function lO(n){if(function Zge(){if(null==aO){const n=typeof document<"u"?document.head:null;aO=!(!n||!n.createShadowRoot&&!n.attachShadow)}return aO}()){const e=n.getRootNode?n.getRootNode():null;if(typeof ShadowRoot<"u"&&ShadowRoot&&e instanceof ShadowRoot)return e}return null}function cO(){let n=typeof document<"u"&&document?document.activeElement:null;for(;n&&n.shadowRoot;){const e=n.shadowRoot.activeElement;if(e===n)break;n=e}return n}function pA(n){return n.composedPath?n.composedPath()[0]:n.target}function dO(){return typeof __karma__<"u"&&!!__karma__||typeof jasmine<"u"&&!!jasmine||typeof jest<"u"&&!!jest||typeof Mocha<"u"&&!!Mocha}function bC(n,...e){return e.length?e.some(t=>n[t]):n.altKey||n.shiftKey||n.ctrlKey||n.metaKey}class f0e extends rt{constructor(e,t){super()}schedule(e,t=0){return this}}const b4={setInterval(n,e,...t){const{delegate:i}=b4;return i?.setInterval?i.setInterval(n,e,...t):setInterval(n,e,...t)},clearInterval(n){const{delegate:e}=b4;return(e?.clearInterval||clearInterval)(n)},delegate:void 0};class fO extends f0e{constructor(e,t){super(e,t),this.scheduler=e,this.work=t,this.pending=!1}schedule(e,t=0){var i;if(this.closed)return this;this.state=e;const r=this.id,s=this.scheduler;return null!=r&&(this.id=this.recycleAsyncId(s,r,t)),this.pending=!0,this.delay=t,this.id=null!==(i=this.id)&&void 0!==i?i:this.requestAsyncId(s,this.id,t),this}requestAsyncId(e,t,i=0){return b4.setInterval(e.flush.bind(e,this),i)}recycleAsyncId(e,t,i=0){if(null!=i&&this.delay===i&&!1===this.pending)return t;null!=t&&b4.clearInterval(t)}execute(e,t){if(this.closed)return new Error("executing a cancelled action");this.pending=!1;const i=this._execute(e,t);if(i)return i;!1===this.pending&&null!=this.id&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))}_execute(e,t){let r,i=!1;try{this.work(e)}catch(s){i=!0,r=s||new Error("Scheduled action threw falsy error")}if(i)return this.unsubscribe(),r}unsubscribe(){if(!this.closed){const{id:e,scheduler:t}=this,{actions:i}=t;this.work=this.state=this.scheduler=null,this.pending=!1,Ne(i,this),null!=e&&(this.id=this.recycleAsyncId(t,e,null)),this.delay=null,super.unsubscribe()}}}const MQ={now:()=>(MQ.delegate||Date).now(),delegate:void 0};class EE{constructor(e,t=EE.now){this.schedulerActionCtor=e,this.now=t}schedule(e,t=0,i){return new this.schedulerActionCtor(this,e).schedule(i,t)}}EE.now=MQ.now;class pO extends EE{constructor(e,t=EE.now){super(e,t),this.actions=[],this._active=!1}flush(e){const{actions:t}=this;if(this._active)return void t.push(e);let i;this._active=!0;do{if(i=e.execute(e.state,e.delay))break}while(e=t.shift());if(this._active=!1,i){for(;e=t.shift();)e.unsubscribe();throw i}}}const TE=new pO(fO),p0e=TE;function mO(n,e=TE){return ci((t,i)=>{let r=null,s=null,o=null;const l=()=>{if(r){r.unsubscribe(),r=null;const u=s;s=null,i.next(u)}};function d(){const u=o+n,f=e.now();if(f{s=u,o=e.now(),r||(r=e.schedule(d,n),i.add(r))},()=>{l(),i.complete()},void 0,()=>{s=r=null}))})}function AO(n){return od((e,t)=>n<=t)}function m0e(n,e){return n===e}function EQ(n){return null!=n&&"false"!=`${n}`}function ux(n,e=0){return function A0e(n){return!isNaN(parseFloat(n))&&!isNaN(Number(n))}(n)?Number(n):e}function DE(n){return Array.isArray(n)?n:[n]}function uu(n){return null==n?"":"string"==typeof n?n:`${n}px`}function hu(n){return n instanceof oo?n.nativeElement:n}let TQ=(()=>{class n{create(t){return typeof MutationObserver>"u"?null:new MutationObserver(t)}static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),y0e=(()=>{class n{static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275mod=vo({type:n});static#n=this.\u0275inj=ra({providers:[TQ]})}return n})();const DQ=new Set;let hx,v0e=(()=>{class n{constructor(t,i){this._platform=t,this._nonce=i,this._matchMedia=this._platform.isBrowser&&window.matchMedia?window.matchMedia.bind(window):x0e}matchMedia(t){return(this._platform.WEBKIT||this._platform.BLINK)&&function b0e(n,e){if(!DQ.has(n))try{hx||(hx=document.createElement("style"),e&&(hx.nonce=e),hx.setAttribute("type","text/css"),document.head.appendChild(hx)),hx.sheet&&(hx.sheet.insertRule(`@media ${n} {body{ }}`,0),DQ.add(n))}catch(t){console.error(t)}}(t,this._nonce),this._matchMedia(t)}static#e=this.\u0275fac=function(i){return new(i||n)(xi(dd),xi(wv,8))};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();function x0e(n){return{matches:"all"===n||""===n,media:n,addListener:()=>{},removeListener:()=>{}}}let w0e=(()=>{class n{constructor(t,i){this._mediaMatcher=t,this._zone=i,this._queries=new Map,this._destroySubject=new hn}ngOnDestroy(){this._destroySubject.next(),this._destroySubject.complete()}isMatched(t){return IQ(DE(t)).some(r=>this._registerQuery(r).mql.matches)}observe(t){let s=xD(IQ(DE(t)).map(o=>this._registerQuery(o).observable));return s=wS(s.pipe(ad(1)),s.pipe(AO(1),mO(0))),s.pipe(bi(o=>{const l={matches:!1,breakpoints:{}};return o.forEach(({matches:d,query:u})=>{l.matches=l.matches||d,l.breakpoints[u]=d}),l}))}_registerQuery(t){if(this._queries.has(t))return this._queries.get(t);const i=this._mediaMatcher.matchMedia(t),s={observable:new Pe(o=>{const l=d=>this._zone.run(()=>o.next(d));return i.addListener(l),()=>{i.removeListener(l)}}).pipe(sA(i),bi(({matches:o})=>({query:t,matches:o})),Ql(this._destroySubject)),mql:i};return this._queries.set(t,s),s}static#e=this.\u0275fac=function(i){return new(i||n)(xi(v0e),xi(io))};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();function IQ(n){return n.map(e=>e.split(",")).reduce((e,t)=>e.concat(t)).map(e=>e.trim())}function x4(n,e){return n.getAttribute(e)?.match(/\S+/g)??[]}const PQ="cdk-describedby-message",w4="cdk-describedby-host";let gO=0,S0e=(()=>{class n{constructor(t,i){this._platform=i,this._messageRegistry=new Map,this._messagesContainer=null,this._id=""+gO++,this._document=t,this._id=pi(v_)+"-"+gO++}describe(t,i,r){if(!this._canBeDescribed(t,i))return;const s=_O(i,r);"string"!=typeof i?(RQ(i,this._id),this._messageRegistry.set(s,{messageElement:i,referenceCount:0})):this._messageRegistry.has(s)||this._createMessageElement(i,r),this._isElementDescribedByMessage(t,s)||this._addMessageReference(t,s)}removeDescription(t,i,r){if(!i||!this._isElementNode(t))return;const s=_O(i,r);if(this._isElementDescribedByMessage(t,s)&&this._removeMessageReference(t,s),"string"==typeof i){const o=this._messageRegistry.get(s);o&&0===o.referenceCount&&this._deleteMessageElement(s)}0===this._messagesContainer?.childNodes.length&&(this._messagesContainer.remove(),this._messagesContainer=null)}ngOnDestroy(){const t=this._document.querySelectorAll(`[${w4}="${this._id}"]`);for(let i=0;i0!=r.indexOf(PQ));t.setAttribute("aria-describedby",i.join(" "))}_addMessageReference(t,i){const r=this._messageRegistry.get(i);(function C0e(n,e,t){const i=x4(n,e);t=t.trim(),!i.some(r=>r.trim()===t)&&(i.push(t),n.setAttribute(e,i.join(" ")))})(t,"aria-describedby",r.messageElement.id),t.setAttribute(w4,this._id),r.referenceCount++}_removeMessageReference(t,i){const r=this._messageRegistry.get(i);r.referenceCount--,function M0e(n,e,t){const i=x4(n,e);t=t.trim();const r=i.filter(s=>s!==t);r.length?n.setAttribute(e,r.join(" ")):n.removeAttribute(e)}(t,"aria-describedby",r.messageElement.id),t.removeAttribute(w4)}_isElementDescribedByMessage(t,i){const r=x4(t,"aria-describedby"),s=this._messageRegistry.get(i),o=s&&s.messageElement.id;return!!o&&-1!=r.indexOf(o)}_canBeDescribed(t,i){if(!this._isElementNode(t))return!1;if(i&&"object"==typeof i)return!0;const r=null==i?"":`${i}`.trim(),s=t.getAttribute("aria-label");return!(!r||s&&s.trim()===r)}_isElementNode(t){return t.nodeType===this._document.ELEMENT_NODE}static#e=this.\u0275fac=function(i){return new(i||n)(xi(ba),xi(dd))};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();function _O(n,e){return"string"==typeof n?`${e||""}/${n}`:n}function RQ(n,e){n.id||(n.id=`${PQ}-${e}-${gO++}`)}class E0e{constructor(e){this._items=e,this._activeItemIndex=-1,this._activeItem=null,this._wrap=!1,this._letterKeyStream=new hn,this._typeaheadSubscription=rt.EMPTY,this._vertical=!0,this._allowedModifierKeys=[],this._homeAndEnd=!1,this._pageUpAndDown={enabled:!1,delta:10},this._skipPredicateFn=t=>t.disabled,this._pressedLetters=[],this.tabOut=new hn,this.change=new hn,e instanceof yf&&(this._itemChangesSubscription=e.changes.subscribe(t=>{if(this._activeItem){const r=t.toArray().indexOf(this._activeItem);r>-1&&r!==this._activeItemIndex&&(this._activeItemIndex=r)}}))}skipPredicate(e){return this._skipPredicateFn=e,this}withWrap(e=!0){return this._wrap=e,this}withVerticalOrientation(e=!0){return this._vertical=e,this}withHorizontalOrientation(e){return this._horizontal=e,this}withAllowedModifierKeys(e){return this._allowedModifierKeys=e,this}withTypeAhead(e=200){return this._typeaheadSubscription.unsubscribe(),this._typeaheadSubscription=this._letterKeyStream.pipe(lu(t=>this._pressedLetters.push(t)),mO(e),od(()=>this._pressedLetters.length>0),bi(()=>this._pressedLetters.join(""))).subscribe(t=>{const i=this._getItemsArray();for(let r=1;r!e[s]||this._allowedModifierKeys.indexOf(s)>-1);switch(t){case 9:return void this.tabOut.next();case 40:if(this._vertical&&r){this.setNextItemActive();break}return;case 38:if(this._vertical&&r){this.setPreviousItemActive();break}return;case 39:if(this._horizontal&&r){"rtl"===this._horizontal?this.setPreviousItemActive():this.setNextItemActive();break}return;case 37:if(this._horizontal&&r){"rtl"===this._horizontal?this.setNextItemActive():this.setPreviousItemActive();break}return;case 36:if(this._homeAndEnd&&r){this.setFirstItemActive();break}return;case 35:if(this._homeAndEnd&&r){this.setLastItemActive();break}return;case 33:if(this._pageUpAndDown.enabled&&r){const s=this._activeItemIndex-this._pageUpAndDown.delta;this._setActiveItemByIndex(s>0?s:0,1);break}return;case 34:if(this._pageUpAndDown.enabled&&r){const s=this._activeItemIndex+this._pageUpAndDown.delta,o=this._getItemsArray().length;this._setActiveItemByIndex(s=65&&t<=90||t>=48&&t<=57)&&this._letterKeyStream.next(String.fromCharCode(t))))}this._pressedLetters=[],e.preventDefault()}get activeItemIndex(){return this._activeItemIndex}get activeItem(){return this._activeItem}isTyping(){return this._pressedLetters.length>0}setFirstItemActive(){this._setActiveItemByIndex(0,1)}setLastItemActive(){this._setActiveItemByIndex(this._items.length-1,-1)}setNextItemActive(){this._activeItemIndex<0?this.setFirstItemActive():this._setActiveItemByDelta(1)}setPreviousItemActive(){this._activeItemIndex<0&&this._wrap?this.setLastItemActive():this._setActiveItemByDelta(-1)}updateActiveItem(e){const t=this._getItemsArray(),i="number"==typeof e?e:t.indexOf(e);this._activeItem=t[i]??null,this._activeItemIndex=i}destroy(){this._typeaheadSubscription.unsubscribe(),this._itemChangesSubscription?.unsubscribe(),this._letterKeyStream.complete(),this.tabOut.complete(),this.change.complete(),this._pressedLetters=[]}_setActiveItemByDelta(e){this._wrap?this._setActiveInWrapMode(e):this._setActiveInDefaultMode(e)}_setActiveInWrapMode(e){const t=this._getItemsArray();for(let i=1;i<=t.length;i++){const r=(this._activeItemIndex+e*i+t.length)%t.length;if(!this._skipPredicateFn(t[r]))return void this.setActiveItem(r)}}_setActiveInDefaultMode(e){this._setActiveItemByIndex(this._activeItemIndex+e,e)}_setActiveItemByIndex(e,t){const i=this._getItemsArray();if(i[e]){for(;this._skipPredicateFn(i[e]);)if(!i[e+=t])return;this.setActiveItem(e)}}_getItemsArray(){return this._items instanceof yf?this._items.toArray():this._items}}class kQ extends E0e{constructor(){super(...arguments),this._origin="program"}setFocusOrigin(e){return this._origin=e,this}setActiveItem(e){super.setActiveItem(e),this.activeItem&&this.activeItem.focus(this._origin)}}let yO=(()=>{class n{constructor(t){this._platform=t}isDisabled(t){return t.hasAttribute("disabled")}isVisible(t){return function D0e(n){return!!(n.offsetWidth||n.offsetHeight||"function"==typeof n.getClientRects&&n.getClientRects().length)}(t)&&"visible"===getComputedStyle(t).visibility}isTabbable(t){if(!this._platform.isBrowser)return!1;const i=function T0e(n){try{return n.frameElement}catch{return null}}(function L0e(n){return n.ownerDocument&&n.ownerDocument.defaultView||window}(t));if(i&&(-1===OQ(i)||!this.isVisible(i)))return!1;let r=t.nodeName.toLowerCase(),s=OQ(t);return t.hasAttribute("contenteditable")?-1!==s:!("iframe"===r||"object"===r||this._platform.WEBKIT&&this._platform.IOS&&!function F0e(n){let e=n.nodeName.toLowerCase(),t="input"===e&&n.type;return"text"===t||"password"===t||"select"===e||"textarea"===e}(t))&&("audio"===r?!!t.hasAttribute("controls")&&-1!==s:"video"===r?-1!==s&&(null!==s||this._platform.FIREFOX||t.hasAttribute("controls")):t.tabIndex>=0)}isFocusable(t,i){return function O0e(n){return!function B0e(n){return function R0e(n){return"input"==n.nodeName.toLowerCase()}(n)&&"hidden"==n.type}(n)&&(function I0e(n){let e=n.nodeName.toLowerCase();return"input"===e||"select"===e||"button"===e||"textarea"===e}(n)||function P0e(n){return function k0e(n){return"a"==n.nodeName.toLowerCase()}(n)&&n.hasAttribute("href")}(n)||n.hasAttribute("contenteditable")||FQ(n))}(t)&&!this.isDisabled(t)&&(i?.ignoreVisibility||this.isVisible(t))}static#e=this.\u0275fac=function(i){return new(i||n)(xi(dd))};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();function FQ(n){if(!n.hasAttribute("tabindex")||void 0===n.tabIndex)return!1;let e=n.getAttribute("tabindex");return!(!e||isNaN(parseInt(e,10)))}function OQ(n){if(!FQ(n))return null;const e=parseInt(n.getAttribute("tabindex")||"",10);return isNaN(e)?-1:e}class LQ{get enabled(){return this._enabled}set enabled(e){this._enabled=e,this._startAnchor&&this._endAnchor&&(this._toggleAnchorTabIndex(e,this._startAnchor),this._toggleAnchorTabIndex(e,this._endAnchor))}constructor(e,t,i,r,s=!1){this._element=e,this._checker=t,this._ngZone=i,this._document=r,this._hasAttached=!1,this.startAnchorListener=()=>this.focusLastTabbableElement(),this.endAnchorListener=()=>this.focusFirstTabbableElement(),this._enabled=!0,s||this.attachAnchors()}destroy(){const e=this._startAnchor,t=this._endAnchor;e&&(e.removeEventListener("focus",this.startAnchorListener),e.remove()),t&&(t.removeEventListener("focus",this.endAnchorListener),t.remove()),this._startAnchor=this._endAnchor=null,this._hasAttached=!1}attachAnchors(){return!!this._hasAttached||(this._ngZone.runOutsideAngular(()=>{this._startAnchor||(this._startAnchor=this._createAnchor(),this._startAnchor.addEventListener("focus",this.startAnchorListener)),this._endAnchor||(this._endAnchor=this._createAnchor(),this._endAnchor.addEventListener("focus",this.endAnchorListener))}),this._element.parentNode&&(this._element.parentNode.insertBefore(this._startAnchor,this._element),this._element.parentNode.insertBefore(this._endAnchor,this._element.nextSibling),this._hasAttached=!0),this._hasAttached)}focusInitialElementWhenReady(e){return new Promise(t=>{this._executeOnStable(()=>t(this.focusInitialElement(e)))})}focusFirstTabbableElementWhenReady(e){return new Promise(t=>{this._executeOnStable(()=>t(this.focusFirstTabbableElement(e)))})}focusLastTabbableElementWhenReady(e){return new Promise(t=>{this._executeOnStable(()=>t(this.focusLastTabbableElement(e)))})}_getRegionBoundary(e){const t=this._element.querySelectorAll(`[cdk-focus-region-${e}], [cdkFocusRegion${e}], [cdk-focus-${e}]`);return"start"==e?t.length?t[0]:this._getFirstTabbableElement(this._element):t.length?t[t.length-1]:this._getLastTabbableElement(this._element)}focusInitialElement(e){const t=this._element.querySelector("[cdk-focus-initial], [cdkFocusInitial]");if(t){if(!this._checker.isFocusable(t)){const i=this._getFirstTabbableElement(t);return i?.focus(e),!!i}return t.focus(e),!0}return this.focusFirstTabbableElement(e)}focusFirstTabbableElement(e){const t=this._getRegionBoundary("start");return t&&t.focus(e),!!t}focusLastTabbableElement(e){const t=this._getRegionBoundary("end");return t&&t.focus(e),!!t}hasAttached(){return this._hasAttached}_getFirstTabbableElement(e){if(this._checker.isFocusable(e)&&this._checker.isTabbable(e))return e;const t=e.children;for(let i=0;i=0;i--){const r=t[i].nodeType===this._document.ELEMENT_NODE?this._getLastTabbableElement(t[i]):null;if(r)return r}return null}_createAnchor(){const e=this._document.createElement("div");return this._toggleAnchorTabIndex(this._enabled,e),e.classList.add("cdk-visually-hidden"),e.classList.add("cdk-focus-trap-anchor"),e.setAttribute("aria-hidden","true"),e}_toggleAnchorTabIndex(e,t){e?t.setAttribute("tabindex","0"):t.removeAttribute("tabindex")}toggleAnchors(e){this._startAnchor&&this._endAnchor&&(this._toggleAnchorTabIndex(e,this._startAnchor),this._toggleAnchorTabIndex(e,this._endAnchor))}_executeOnStable(e){this._ngZone.isStable?e():this._ngZone.onStable.pipe(ad(1)).subscribe(e)}}let NQ=(()=>{class n{constructor(t,i,r){this._checker=t,this._ngZone=i,this._document=r}create(t,i=!1){return new LQ(t,this._checker,this._ngZone,this._document,i)}static#e=this.\u0275fac=function(i){return new(i||n)(xi(yO),xi(io),xi(ba))};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();function C4(n){return 0===n.buttons||0===n.detail}function M4(n){const e=n.touches&&n.touches[0]||n.changedTouches&&n.changedTouches[0];return!(!e||-1!==e.identifier||null!=e.radiusX&&1!==e.radiusX||null!=e.radiusY&&1!==e.radiusY)}const N0e=new Bi("cdk-input-modality-detector-options"),U0e={ignoreKeys:[18,17,224,91,16]},xC=P0({passive:!0,capture:!0});let z0e=(()=>{class n{get mostRecentModality(){return this._modality.value}constructor(t,i,r,s){this._platform=t,this._mostRecentTarget=null,this._modality=new cn(null),this._lastTouchMs=0,this._onKeydown=o=>{this._options?.ignoreKeys?.some(l=>l===o.keyCode)||(this._modality.next("keyboard"),this._mostRecentTarget=pA(o))},this._onMousedown=o=>{Date.now()-this._lastTouchMs<650||(this._modality.next(C4(o)?"keyboard":"mouse"),this._mostRecentTarget=pA(o))},this._onTouchstart=o=>{M4(o)?this._modality.next("keyboard"):(this._lastTouchMs=Date.now(),this._modality.next("touch"),this._mostRecentTarget=pA(o))},this._options={...U0e,...s},this.modalityDetected=this._modality.pipe(AO(1)),this.modalityChanged=this.modalityDetected.pipe(function SQ(n,e=K){return n=n??m0e,ci((t,i)=>{let r,s=!0;t.subscribe(Pi(i,o=>{const l=e(o);(s||!n(r,l))&&(s=!1,r=l,i.next(o))}))})}()),t.isBrowser&&i.runOutsideAngular(()=>{r.addEventListener("keydown",this._onKeydown,xC),r.addEventListener("mousedown",this._onMousedown,xC),r.addEventListener("touchstart",this._onTouchstart,xC)})}ngOnDestroy(){this._modality.complete(),this._platform.isBrowser&&(document.removeEventListener("keydown",this._onKeydown,xC),document.removeEventListener("mousedown",this._onMousedown,xC),document.removeEventListener("touchstart",this._onTouchstart,xC))}static#e=this.\u0275fac=function(i){return new(i||n)(xi(dd),xi(io),xi(ba),xi(N0e,8))};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();var S4=function(n){return n[n.IMMEDIATE=0]="IMMEDIATE",n[n.EVENTUAL=1]="EVENTUAL",n}(S4||{});const V0e=new Bi("cdk-focus-monitor-default-options"),E4=P0({passive:!0,capture:!0});let e1=(()=>{class n{constructor(t,i,r,s,o){this._ngZone=t,this._platform=i,this._inputModalityDetector=r,this._origin=null,this._windowFocused=!1,this._originFromTouchInteraction=!1,this._elementInfo=new Map,this._monitoredElementCount=0,this._rootNodeFocusListenerCount=new Map,this._windowFocusListener=()=>{this._windowFocused=!0,this._windowFocusTimeoutId=window.setTimeout(()=>this._windowFocused=!1)},this._stopInputModalityDetector=new hn,this._rootNodeFocusAndBlurListener=l=>{for(let u=pA(l);u;u=u.parentElement)"focus"===l.type?this._onFocus(l,u):this._onBlur(l,u)},this._document=s,this._detectionMode=o?.detectionMode||S4.IMMEDIATE}monitor(t,i=!1){const r=hu(t);if(!this._platform.isBrowser||1!==r.nodeType)return po();const s=lO(r)||this._getDocument(),o=this._elementInfo.get(r);if(o)return i&&(o.checkChildren=!0),o.subject;const l={checkChildren:i,subject:new hn,rootNode:s};return this._elementInfo.set(r,l),this._registerGlobalListeners(l),l.subject}stopMonitoring(t){const i=hu(t),r=this._elementInfo.get(i);r&&(r.subject.complete(),this._setClasses(i),this._elementInfo.delete(i),this._removeGlobalListeners(r))}focusVia(t,i,r){const s=hu(t);s===this._getDocument().activeElement?this._getClosestElementsInfo(s).forEach(([l,d])=>this._originChanged(l,i,d)):(this._setOrigin(i),"function"==typeof s.focus&&s.focus(r))}ngOnDestroy(){this._elementInfo.forEach((t,i)=>this.stopMonitoring(i))}_getDocument(){return this._document||document}_getWindow(){return this._getDocument().defaultView||window}_getFocusOrigin(t){return this._origin?this._originFromTouchInteraction?this._shouldBeAttributedToTouch(t)?"touch":"program":this._origin:this._windowFocused&&this._lastFocusOrigin?this._lastFocusOrigin:t&&this._isLastInteractionFromInputLabel(t)?"mouse":"program"}_shouldBeAttributedToTouch(t){return this._detectionMode===S4.EVENTUAL||!!t?.contains(this._inputModalityDetector._mostRecentTarget)}_setClasses(t,i){t.classList.toggle("cdk-focused",!!i),t.classList.toggle("cdk-touch-focused","touch"===i),t.classList.toggle("cdk-keyboard-focused","keyboard"===i),t.classList.toggle("cdk-mouse-focused","mouse"===i),t.classList.toggle("cdk-program-focused","program"===i)}_setOrigin(t,i=!1){this._ngZone.runOutsideAngular(()=>{this._origin=t,this._originFromTouchInteraction="touch"===t&&i,this._detectionMode===S4.IMMEDIATE&&(clearTimeout(this._originTimeoutId),this._originTimeoutId=setTimeout(()=>this._origin=null,this._originFromTouchInteraction?650:1))})}_onFocus(t,i){const r=this._elementInfo.get(i),s=pA(t);!r||!r.checkChildren&&i!==s||this._originChanged(i,this._getFocusOrigin(s),r)}_onBlur(t,i){const r=this._elementInfo.get(i);!r||r.checkChildren&&t.relatedTarget instanceof Node&&i.contains(t.relatedTarget)||(this._setClasses(i),this._emitOrigin(r,null))}_emitOrigin(t,i){t.subject.observers.length&&this._ngZone.run(()=>t.subject.next(i))}_registerGlobalListeners(t){if(!this._platform.isBrowser)return;const i=t.rootNode,r=this._rootNodeFocusListenerCount.get(i)||0;r||this._ngZone.runOutsideAngular(()=>{i.addEventListener("focus",this._rootNodeFocusAndBlurListener,E4),i.addEventListener("blur",this._rootNodeFocusAndBlurListener,E4)}),this._rootNodeFocusListenerCount.set(i,r+1),1==++this._monitoredElementCount&&(this._ngZone.runOutsideAngular(()=>{this._getWindow().addEventListener("focus",this._windowFocusListener)}),this._inputModalityDetector.modalityDetected.pipe(Ql(this._stopInputModalityDetector)).subscribe(s=>{this._setOrigin(s,!0)}))}_removeGlobalListeners(t){const i=t.rootNode;if(this._rootNodeFocusListenerCount.has(i)){const r=this._rootNodeFocusListenerCount.get(i);r>1?this._rootNodeFocusListenerCount.set(i,r-1):(i.removeEventListener("focus",this._rootNodeFocusAndBlurListener,E4),i.removeEventListener("blur",this._rootNodeFocusAndBlurListener,E4),this._rootNodeFocusListenerCount.delete(i))}--this._monitoredElementCount||(this._getWindow().removeEventListener("focus",this._windowFocusListener),this._stopInputModalityDetector.next(),clearTimeout(this._windowFocusTimeoutId),clearTimeout(this._originTimeoutId))}_originChanged(t,i,r){this._setClasses(t,i),this._emitOrigin(r,i),this._lastFocusOrigin=i}_getClosestElementsInfo(t){const i=[];return this._elementInfo.forEach((r,s)=>{(s===t||r.checkChildren&&s.contains(t))&&i.push([s,r])}),i}_isLastInteractionFromInputLabel(t){const{_mostRecentTarget:i,mostRecentModality:r}=this._inputModalityDetector;if("mouse"!==r||!i||i===t||"INPUT"!==t.nodeName&&"TEXTAREA"!==t.nodeName||t.disabled)return!1;const s=t.labels;if(s)for(let o=0;o{class n{constructor(t,i){this._platform=t,this._document=i,this._breakpointSubscription=pi(w0e).observe("(forced-colors: active)").subscribe(()=>{this._hasCheckedHighContrastMode&&(this._hasCheckedHighContrastMode=!1,this._applyBodyHighContrastModeCssClasses())})}getHighContrastMode(){if(!this._platform.isBrowser)return fx.NONE;const t=this._document.createElement("div");t.style.backgroundColor="rgb(1,2,3)",t.style.position="absolute",this._document.body.appendChild(t);const i=this._document.defaultView||window,r=i&&i.getComputedStyle?i.getComputedStyle(t):null,s=(r&&r.backgroundColor||"").replace(/ /g,"");switch(t.remove(),s){case"rgb(0,0,0)":case"rgb(45,50,54)":case"rgb(32,32,32)":return fx.WHITE_ON_BLACK;case"rgb(255,255,255)":case"rgb(255,250,239)":return fx.BLACK_ON_WHITE}return fx.NONE}ngOnDestroy(){this._breakpointSubscription.unsubscribe()}_applyBodyHighContrastModeCssClasses(){if(!this._hasCheckedHighContrastMode&&this._platform.isBrowser&&this._document.body){const t=this._document.body.classList;t.remove(vO,zQ,HQ),this._hasCheckedHighContrastMode=!0;const i=this.getHighContrastMode();i===fx.BLACK_ON_WHITE?t.add(vO,zQ):i===fx.WHITE_ON_BLACK&&t.add(vO,HQ)}}static#e=this.\u0275fac=function(i){return new(i||n)(xi(dd),xi(ba))};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),GQ=(()=>{class n{constructor(t){t._applyBodyHighContrastModeCssClasses()}static#e=this.\u0275fac=function(i){return new(i||n)(xi(VQ))};static#t=this.\u0275mod=vo({type:n});static#n=this.\u0275inj=ra({imports:[y0e]})}return n})();function gm(...n){const e=gS(n),t=function Pie(n,e){return"number"==typeof $R(n)?n.pop():e}(n,1/0),i=n;return i.length?1===i.length?Nh(i[0]):Jw(t)(au(i,e)):rA}let bO,q0e=1;const T4={};function qQ(n){return n in T4&&(delete T4[n],!0)}const Q0e={setImmediate(n){const e=q0e++;return T4[e]=!0,bO||(bO=Promise.resolve()),bO.then(()=>qQ(e)&&n()),e},clearImmediate(n){qQ(n)}},{setImmediate:W0e,clearImmediate:j0e}=Q0e,D4={setImmediate(...n){const{delegate:e}=D4;return(e?.setImmediate||W0e)(...n)},clearImmediate(n){const{delegate:e}=D4;return(e?.clearImmediate||j0e)(n)},delegate:void 0},xO=new class X0e extends pO{flush(e){this._active=!0;const t=this._scheduled;this._scheduled=void 0;const{actions:i}=this;let r;e=e||i.shift();do{if(r=e.execute(e.state,e.delay))break}while((e=i[0])&&e.id===t&&i.shift());if(this._active=!1,r){for(;(e=i[0])&&e.id===t&&i.shift();)e.unsubscribe();throw r}}}(class $0e extends fO{constructor(e,t){super(e,t),this.scheduler=e,this.work=t}requestAsyncId(e,t,i=0){return null!==i&&i>0?super.requestAsyncId(e,t,i):(e.actions.push(this),e._scheduled||(e._scheduled=D4.setImmediate(e.flush.bind(e,void 0))))}recycleAsyncId(e,t,i=0){var r;if(null!=i?i>0:this.delay>0)return super.recycleAsyncId(e,t,i);const{actions:s}=e;null!=t&&(null===(r=s[s.length-1])||void 0===r?void 0:r.id)!==t&&(D4.clearImmediate(t),e._scheduled===t&&(e._scheduled=void 0))}});function QQ(n,e){return e?t=>wS(e.pipe(ad(1),function Y0e(){return ci((n,e)=>{n.subscribe(Pi(e,Ot))})}()),t.pipe(QQ(n))):qu((t,i)=>Nh(n(t,i)).pipe(ad(1),Q9(t)))}function I4(n=0,e,t=p0e){let i=-1;return null!=e&&(n9(e)?t=e:i=e),new Pe(r=>{let s=function K0e(n){return n instanceof Date&&!isNaN(n)}(n)?+n-t.now():n;s<0&&(s=0);let o=0;return t.schedule(function(){r.closed||(r.next(o++),0<=i?this.schedule(void 0,i):r.complete())},s)})}function WQ(n,e=TE){const t=I4(n,e);return QQ(()=>t)}const Z0e=new Bi("cdk-dir-doc",{providedIn:"root",factory:function J0e(){return pi(ba)}}),e_e=/^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Adlm|Arab|Hebr|Nkoo|Rohg|Thaa))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)/i;let _m=(()=>{class n{constructor(t){this.value="ltr",this.change=new Ls,t&&(this.value=function t_e(n){const e=n?.toLowerCase()||"";return"auto"===e&&typeof navigator<"u"&&navigator?.language?e_e.test(navigator.language)?"rtl":"ltr":"rtl"===e?"rtl":"ltr"}((t.body?t.body.dir:null)||(t.documentElement?t.documentElement.dir:null)||"ltr"))}ngOnDestroy(){this.change.complete()}static#e=this.\u0275fac=function(i){return new(i||n)(xi(Z0e,8))};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),IE=(()=>{class n{static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275mod=vo({type:n});static#n=this.\u0275inj=ra({})}return n})();const n_e=["mat-internal-form-field",""],i_e=["*"],s_e=new Bi("mat-sanity-checks",{providedIn:"root",factory:function r_e(){return!0}});let Qd=(()=>{class n{constructor(t,i,r){this._sanityChecks=i,this._document=r,this._hasDoneGlobalChecks=!1,t._applyBodyHighContrastModeCssClasses(),this._hasDoneGlobalChecks||(this._hasDoneGlobalChecks=!0)}_checkIsEnabled(t){return!dO()&&("boolean"==typeof this._sanityChecks?this._sanityChecks:!!this._sanityChecks[t])}static#e=this.\u0275fac=function(i){return new(i||n)(xi(VQ),xi(s_e,8),xi(ba))};static#t=this.\u0275mod=vo({type:n});static#n=this.\u0275inj=ra({imports:[IE,IE]})}return n})();var xp=function(n){return n[n.FADING_IN=0]="FADING_IN",n[n.VISIBLE=1]="VISIBLE",n[n.FADING_OUT=2]="FADING_OUT",n[n.HIDDEN=3]="HIDDEN",n}(xp||{});class h_e{constructor(e,t,i,r=!1){this._renderer=e,this.element=t,this.config=i,this._animationForciblyDisabledThroughCss=r,this.state=xp.HIDDEN}fadeOut(){this._renderer.fadeOutRipple(this)}}const XQ=P0({passive:!0,capture:!0});class f_e{constructor(){this._events=new Map,this._delegateEventHandler=e=>{const t=pA(e);t&&this._events.get(e.type)?.forEach((i,r)=>{(r===t||r.contains(t))&&i.forEach(s=>s.handleEvent(e))})}}addHandler(e,t,i,r){const s=this._events.get(t);if(s){const o=s.get(i);o?o.add(r):s.set(i,new Set([r]))}else this._events.set(t,new Map([[i,new Set([r])]])),e.runOutsideAngular(()=>{document.addEventListener(t,this._delegateEventHandler,XQ)})}removeHandler(e,t,i){const r=this._events.get(e);if(!r)return;const s=r.get(t);s&&(s.delete(i),0===s.size&&r.delete(t),0===r.size&&(this._events.delete(e),document.removeEventListener(e,this._delegateEventHandler,XQ)))}}const YQ={enterDuration:225,exitDuration:150},KQ=P0({passive:!0,capture:!0}),ZQ=["mousedown","touchstart"],JQ=["mouseup","mouseleave","touchend","touchcancel"];class B4{static#e=this._eventManager=new f_e;constructor(e,t,i,r){this._target=e,this._ngZone=t,this._platform=r,this._isPointerDown=!1,this._activeRipples=new Map,this._pointerUpEventsRegistered=!1,r.isBrowser&&(this._containerElement=hu(i))}fadeInRipple(e,t,i={}){const r=this._containerRect=this._containerRect||this._containerElement.getBoundingClientRect(),s={...YQ,...i.animation};i.centered&&(e=r.left+r.width/2,t=r.top+r.height/2);const o=i.radius||function m_e(n,e,t){const i=Math.max(Math.abs(n-t.left),Math.abs(n-t.right)),r=Math.max(Math.abs(e-t.top),Math.abs(e-t.bottom));return Math.sqrt(i*i+r*r)}(e,t,r),l=e-r.left,d=t-r.top,u=s.enterDuration,f=document.createElement("div");f.classList.add("mat-ripple-element"),f.style.left=l-o+"px",f.style.top=d-o+"px",f.style.height=2*o+"px",f.style.width=2*o+"px",null!=i.color&&(f.style.backgroundColor=i.color),f.style.transitionDuration=`${u}ms`,this._containerElement.appendChild(f);const A=window.getComputedStyle(f),R=A.transitionDuration,G="none"===A.transitionProperty||"0s"===R||"0s, 0s"===R||0===r.width&&0===r.height,re=new h_e(this,f,i,G);f.style.transform="scale3d(1, 1, 1)",re.state=xp.FADING_IN,i.persistent||(this._mostRecentTransientRipple=re);let se=null;return!G&&(u||s.exitDuration)&&this._ngZone.runOutsideAngular(()=>{const le=()=>this._finishRippleTransition(re),Ee=()=>this._destroyRipple(re);f.addEventListener("transitionend",le),f.addEventListener("transitioncancel",Ee),se={onTransitionEnd:le,onTransitionCancel:Ee}}),this._activeRipples.set(re,se),(G||!u)&&this._finishRippleTransition(re),re}fadeOutRipple(e){if(e.state===xp.FADING_OUT||e.state===xp.HIDDEN)return;const t=e.element,i={...YQ,...e.config.animation};t.style.transitionDuration=`${i.exitDuration}ms`,t.style.opacity="0",e.state=xp.FADING_OUT,(e._animationForciblyDisabledThroughCss||!i.exitDuration)&&this._finishRippleTransition(e)}fadeOutAll(){this._getActiveRipples().forEach(e=>e.fadeOut())}fadeOutAllNonPersistent(){this._getActiveRipples().forEach(e=>{e.config.persistent||e.fadeOut()})}setupTriggerEvents(e){const t=hu(e);!this._platform.isBrowser||!t||t===this._triggerElement||(this._removeTriggerEvents(),this._triggerElement=t,ZQ.forEach(i=>{B4._eventManager.addHandler(this._ngZone,i,t,this)}))}handleEvent(e){"mousedown"===e.type?this._onMousedown(e):"touchstart"===e.type?this._onTouchStart(e):this._onPointerUp(),this._pointerUpEventsRegistered||(this._ngZone.runOutsideAngular(()=>{JQ.forEach(t=>{this._triggerElement.addEventListener(t,this,KQ)})}),this._pointerUpEventsRegistered=!0)}_finishRippleTransition(e){e.state===xp.FADING_IN?this._startFadeOutTransition(e):e.state===xp.FADING_OUT&&this._destroyRipple(e)}_startFadeOutTransition(e){const t=e===this._mostRecentTransientRipple,{persistent:i}=e.config;e.state=xp.VISIBLE,!i&&(!t||!this._isPointerDown)&&e.fadeOut()}_destroyRipple(e){const t=this._activeRipples.get(e)??null;this._activeRipples.delete(e),this._activeRipples.size||(this._containerRect=null),e===this._mostRecentTransientRipple&&(this._mostRecentTransientRipple=null),e.state=xp.HIDDEN,null!==t&&(e.element.removeEventListener("transitionend",t.onTransitionEnd),e.element.removeEventListener("transitioncancel",t.onTransitionCancel)),e.element.remove()}_onMousedown(e){const t=C4(e),i=this._lastTouchStartEvent&&Date.now(){!e.config.persistent&&(e.state===xp.VISIBLE||e.config.terminateOnPointerUp&&e.state===xp.FADING_IN)&&e.fadeOut()}))}_getActiveRipples(){return Array.from(this._activeRipples.keys())}_removeTriggerEvents(){const e=this._triggerElement;e&&(ZQ.forEach(t=>B4._eventManager.removeHandler(t,e,this)),this._pointerUpEventsRegistered&&JQ.forEach(t=>e.removeEventListener(t,this,KQ)))}}const wO=new Bi("mat-ripple-global-options");let k0=(()=>{class n{get disabled(){return this._disabled}set disabled(t){t&&this.fadeOutAllNonPersistent(),this._disabled=t,this._setupTriggerEventsIfEnabled()}get trigger(){return this._trigger||this._elementRef.nativeElement}set trigger(t){this._trigger=t,this._setupTriggerEventsIfEnabled()}constructor(t,i,r,s,o){this._elementRef=t,this._animationMode=o,this.radius=0,this._disabled=!1,this._isInitialized=!1,this._globalOptions=s||{},this._rippleRenderer=new B4(this,i,t,r)}ngOnInit(){this._isInitialized=!0,this._setupTriggerEventsIfEnabled()}ngOnDestroy(){this._rippleRenderer._removeTriggerEvents()}fadeOutAll(){this._rippleRenderer.fadeOutAll()}fadeOutAllNonPersistent(){this._rippleRenderer.fadeOutAllNonPersistent()}get rippleConfig(){return{centered:this.centered,radius:this.radius,color:this.color,animation:{...this._globalOptions.animation,..."NoopAnimations"===this._animationMode?{enterDuration:0,exitDuration:0}:{},...this.animation},terminateOnPointerUp:this._globalOptions.terminateOnPointerUp}}get rippleDisabled(){return this.disabled||!!this._globalOptions.disabled}_setupTriggerEventsIfEnabled(){!this.disabled&&this._isInitialized&&this._rippleRenderer.setupTriggerEvents(this.trigger)}launch(t,i=0,r){return"number"==typeof t?this._rippleRenderer.fadeInRipple(t,i,{...this.rippleConfig,...r}):this._rippleRenderer.fadeInRipple(0,0,{...this.rippleConfig,...t})}static#e=this.\u0275fac=function(i){return new(i||n)(Lt(oo),Lt(io),Lt(dd),Lt(wO,8),Lt(Od,8))};static#t=this.\u0275dir=Ft({type:n,selectors:[["","mat-ripple",""],["","matRipple",""]],hostAttrs:[1,"mat-ripple"],hostVars:2,hostBindings:function(i,r){2&i&&Ja("mat-ripple-unbounded",r.unbounded)},inputs:{color:[mi.None,"matRippleColor","color"],unbounded:[mi.None,"matRippleUnbounded","unbounded"],centered:[mi.None,"matRippleCentered","centered"],radius:[mi.None,"matRippleRadius","radius"],animation:[mi.None,"matRippleAnimation","animation"],disabled:[mi.None,"matRippleDisabled","disabled"],trigger:[mi.None,"matRippleTrigger","trigger"]},exportAs:["matRipple"],standalone:!0})}return n})(),P4=(()=>{class n{static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275mod=vo({type:n});static#n=this.\u0275inj=ra({imports:[Qd,Qd]})}return n})();const eW={capture:!0},tW=["focus","click","mouseenter","touchstart"],CO="mat-ripple-loader-uninitialized",MO="mat-ripple-loader-class-name",nW="mat-ripple-loader-centered",R4="mat-ripple-loader-disabled";let A_e=(()=>{class n{constructor(){this._document=pi(ba,{optional:!0}),this._animationMode=pi(Od,{optional:!0}),this._globalRippleOptions=pi(wO,{optional:!0}),this._platform=pi(dd),this._ngZone=pi(io),this._hosts=new Map,this._onInteraction=t=>{if(!(t.target instanceof HTMLElement))return;const r=t.target.closest(`[${CO}]`);r&&this._createRipple(r)},this._ngZone.runOutsideAngular(()=>{for(const t of tW)this._document?.addEventListener(t,this._onInteraction,eW)})}ngOnDestroy(){const t=this._hosts.keys();for(const i of t)this.destroyRipple(i);for(const i of tW)this._document?.removeEventListener(i,this._onInteraction,eW)}configureRipple(t,i){t.setAttribute(CO,""),(i.className||!t.hasAttribute(MO))&&t.setAttribute(MO,i.className||""),i.centered&&t.setAttribute(nW,""),i.disabled&&t.setAttribute(R4,"")}getRipple(t){return this._hosts.get(t)||this._createRipple(t)}setDisabled(t,i){const r=this._hosts.get(t);r?r.disabled=i:i?t.setAttribute(R4,""):t.removeAttribute(R4)}_createRipple(t){if(!this._document)return;const i=this._hosts.get(t);if(i)return i;t.querySelector(".mat-ripple")?.remove();const r=this._document.createElement("span");r.classList.add("mat-ripple",t.getAttribute(MO)),t.append(r);const s=new k0(new oo(r),this._ngZone,this._platform,this._globalRippleOptions?this._globalRippleOptions:void 0,this._animationMode?this._animationMode:void 0);return s._isInitialized=!0,s.trigger=t,s.centered=t.hasAttribute(nW),s.disabled=t.hasAttribute(R4),this.attachRipple(t,s),s}attachRipple(t,i){t.removeAttribute(CO),this._hosts.set(t,i)}destroyRipple(t){const i=this._hosts.get(t);i&&(i.ngOnDestroy(),this._hosts.delete(t))}static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),SO=(()=>{class n{static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275cmp=rs({type:n,selectors:[["div","mat-internal-form-field",""]],hostAttrs:[1,"mdc-form-field","mat-internal-form-field"],hostVars:2,hostBindings:function(i,r){2&i&&Ja("mdc-form-field--align-end","before"===r.labelPosition)},inputs:{labelPosition:"labelPosition"},standalone:!0,features:[yd],attrs:n_e,ngContentSelectors:i_e,decls:1,vars:0,template:function(i,r){1&i&&(yh(),iu(0))},styles:[".mdc-form-field{display:inline-flex;align-items:center;vertical-align:middle}.mdc-form-field[hidden]{display:none}.mdc-form-field>label{margin-left:0;margin-right:auto;padding-left:4px;padding-right:0;order:0}[dir=rtl] .mdc-form-field>label,.mdc-form-field>label[dir=rtl]{margin-left:auto;margin-right:0}[dir=rtl] .mdc-form-field>label,.mdc-form-field>label[dir=rtl]{padding-left:0;padding-right:4px}.mdc-form-field--nowrap>label{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.mdc-form-field--align-end>label{margin-left:auto;margin-right:0;padding-left:0;padding-right:4px;order:-1}[dir=rtl] .mdc-form-field--align-end>label,.mdc-form-field--align-end>label[dir=rtl]{margin-left:0;margin-right:auto}[dir=rtl] .mdc-form-field--align-end>label,.mdc-form-field--align-end>label[dir=rtl]{padding-left:4px;padding-right:0}.mdc-form-field--space-between{justify-content:space-between}.mdc-form-field--space-between>label{margin:0}[dir=rtl] .mdc-form-field--space-between>label,.mdc-form-field--space-between>label[dir=rtl]{margin:0}.mdc-form-field{font-family:var(--mdc-form-field-label-text-font);line-height:var(--mdc-form-field-label-text-line-height);font-size:var(--mdc-form-field-label-text-size);font-weight:var(--mdc-form-field-label-text-weight);letter-spacing:var(--mdc-form-field-label-text-tracking);color:var(--mdc-form-field-label-text-color)}.mat-internal-form-field{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased}"],encapsulation:2,changeDetection:0})}return n})();class EO{attach(e){return this._attachedHost=e,e.attach(this)}detach(){let e=this._attachedHost;null!=e&&(this._attachedHost=null,e.detach())}get isAttached(){return null!=this._attachedHost}setAttachedHost(e){this._attachedHost=e}}class t1 extends EO{constructor(e,t,i,r,s){super(),this.component=e,this.viewContainerRef=t,this.injector=i,this.componentFactoryResolver=r,this.projectableNodes=s}}class PE extends EO{constructor(e,t,i,r){super(),this.templateRef=e,this.viewContainerRef=t,this.context=i,this.injector=r}get origin(){return this.templateRef.elementRef}attach(e,t=this.context){return this.context=t,super.attach(e)}detach(){return this.context=void 0,super.detach()}}class g_e extends EO{constructor(e){super(),this.element=e instanceof oo?e.nativeElement:e}}class TO{constructor(){this._isDisposed=!1,this.attachDomPortal=null}hasAttached(){return!!this._attachedPortal}attach(e){return e instanceof t1?(this._attachedPortal=e,this.attachComponentPortal(e)):e instanceof PE?(this._attachedPortal=e,this.attachTemplatePortal(e)):this.attachDomPortal&&e instanceof g_e?(this._attachedPortal=e,this.attachDomPortal(e)):void 0}detach(){this._attachedPortal&&(this._attachedPortal.setAttachedHost(null),this._attachedPortal=null),this._invokeDisposeFn()}dispose(){this.hasAttached()&&this.detach(),this._invokeDisposeFn(),this._isDisposed=!0}setDisposeFn(e){this._disposeFn=e}_invokeDisposeFn(){this._disposeFn&&(this._disposeFn(),this._disposeFn=null)}}class __e extends TO{constructor(e,t,i,r,s){super(),this.outletElement=e,this._componentFactoryResolver=t,this._appRef=i,this._defaultInjector=r,this.attachDomPortal=o=>{const l=o.element,d=this._document.createComment("dom-portal");l.parentNode.insertBefore(d,l),this.outletElement.appendChild(l),this._attachedPortal=o,super.setDisposeFn(()=>{d.parentNode&&d.parentNode.replaceChild(l,d)})},this._document=s}attachComponentPortal(e){const i=(e.componentFactoryResolver||this._componentFactoryResolver).resolveComponentFactory(e.component);let r;return e.viewContainerRef?(r=e.viewContainerRef.createComponent(i,e.viewContainerRef.length,e.injector||e.viewContainerRef.injector,e.projectableNodes||void 0),this.setDisposeFn(()=>r.destroy())):(r=i.create(e.injector||this._defaultInjector||ml.NULL),this._appRef.attachView(r.hostView),this.setDisposeFn(()=>{this._appRef.viewCount>0&&this._appRef.detachView(r.hostView),r.destroy()})),this.outletElement.appendChild(this._getComponentRootNode(r)),this._attachedPortal=e,r}attachTemplatePortal(e){let t=e.viewContainerRef,i=t.createEmbeddedView(e.templateRef,e.context,{injector:e.injector});return i.rootNodes.forEach(r=>this.outletElement.appendChild(r)),i.detectChanges(),this.setDisposeFn(()=>{let r=t.indexOf(i);-1!==r&&t.remove(r)}),this._attachedPortal=e,i}dispose(){super.dispose(),this.outletElement.remove()}_getComponentRootNode(e){return e.hostView.rootNodes[0]}}let wC=(()=>{class n extends TO{constructor(t,i,r){super(),this._componentFactoryResolver=t,this._viewContainerRef=i,this._isInitialized=!1,this.attached=new Ls,this.attachDomPortal=s=>{const o=s.element,l=this._document.createComment("dom-portal");s.setAttachedHost(this),o.parentNode.insertBefore(l,o),this._getRootNode().appendChild(o),this._attachedPortal=s,super.setDisposeFn(()=>{l.parentNode&&l.parentNode.replaceChild(o,l)})},this._document=r}get portal(){return this._attachedPortal}set portal(t){this.hasAttached()&&!t&&!this._isInitialized||(this.hasAttached()&&super.detach(),t&&super.attach(t),this._attachedPortal=t||null)}get attachedRef(){return this._attachedRef}ngOnInit(){this._isInitialized=!0}ngOnDestroy(){super.dispose(),this._attachedRef=this._attachedPortal=null}attachComponentPortal(t){t.setAttachedHost(this);const i=null!=t.viewContainerRef?t.viewContainerRef:this._viewContainerRef,s=(t.componentFactoryResolver||this._componentFactoryResolver).resolveComponentFactory(t.component),o=i.createComponent(s,i.length,t.injector||i.injector,t.projectableNodes||void 0);return i!==this._viewContainerRef&&this._getRootNode().appendChild(o.hostView.rootNodes[0]),super.setDisposeFn(()=>o.destroy()),this._attachedPortal=t,this._attachedRef=o,this.attached.emit(o),o}attachTemplatePortal(t){t.setAttachedHost(this);const i=this._viewContainerRef.createEmbeddedView(t.templateRef,t.context,{injector:t.injector});return super.setDisposeFn(()=>this._viewContainerRef.clear()),this._attachedPortal=t,this._attachedRef=i,this.attached.emit(i),i}_getRootNode(){const t=this._viewContainerRef.element.nativeElement;return t.nodeType===t.ELEMENT_NODE?t:t.parentNode}static#e=this.\u0275fac=function(i){return new(i||n)(Lt(m0),Lt(fs),Lt(ba))};static#t=this.\u0275dir=Ft({type:n,selectors:[["","cdkPortalOutlet",""]],inputs:{portal:[mi.None,"cdkPortalOutlet","portal"]},outputs:{attached:"attached"},exportAs:["cdkPortalOutlet"],standalone:!0,features:[Lo]})}return n})(),k4=(()=>{class n{static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275mod=vo({type:n});static#n=this.\u0275inj=ra({})}return n})();var aa=function(n){return n[n.State=0]="State",n[n.Transition=1]="Transition",n[n.Sequence=2]="Sequence",n[n.Group=3]="Group",n[n.Animate=4]="Animate",n[n.Keyframes=5]="Keyframes",n[n.Style=6]="Style",n[n.Trigger=7]="Trigger",n[n.Reference=8]="Reference",n[n.AnimateChild=9]="AnimateChild",n[n.AnimateRef=10]="AnimateRef",n[n.Query=11]="Query",n[n.Stagger=12]="Stagger",n}(aa||{});const n1="*";function RE(n,e){return{type:aa.Trigger,name:n,definitions:e,options:{}}}function F0(n,e=null){return{type:aa.Animate,styles:e,timings:n}}function Yu(n){return{type:aa.Style,styles:n,offset:null}}function r1(n,e,t){return{type:aa.State,name:n,styles:e,options:t}}function O0(n,e,t=null){return{type:aa.Transition,expr:n,animation:e,options:t}}class kE{constructor(e=0,t=0){this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._originalOnDoneFns=[],this._originalOnStartFns=[],this._started=!1,this._destroyed=!1,this._finished=!1,this._position=0,this.parentPlayer=null,this.totalTime=e+t}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(e=>e()),this._onDoneFns=[])}onStart(e){this._originalOnStartFns.push(e),this._onStartFns.push(e)}onDone(e){this._originalOnDoneFns.push(e),this._onDoneFns.push(e)}onDestroy(e){this._onDestroyFns.push(e)}hasStarted(){return this._started}init(){}play(){this.hasStarted()||(this._onStart(),this.triggerMicrotask()),this._started=!0}triggerMicrotask(){queueMicrotask(()=>this._onFinish())}_onStart(){this._onStartFns.forEach(e=>e()),this._onStartFns=[]}pause(){}restart(){}finish(){this._onFinish()}destroy(){this._destroyed||(this._destroyed=!0,this.hasStarted()||this._onStart(),this.finish(),this._onDestroyFns.forEach(e=>e()),this._onDestroyFns=[])}reset(){this._started=!1,this._finished=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}setPosition(e){this._position=this.totalTime?e*this.totalTime:1}getPosition(){return this.totalTime?this._position/this.totalTime:1}triggerCallback(e){const t="start"==e?this._onStartFns:this._onDoneFns;t.forEach(i=>i()),t.length=0}}class oW{constructor(e){this._onDoneFns=[],this._onStartFns=[],this._finished=!1,this._started=!1,this._destroyed=!1,this._onDestroyFns=[],this.parentPlayer=null,this.totalTime=0,this.players=e;let t=0,i=0,r=0;const s=this.players.length;0==s?queueMicrotask(()=>this._onFinish()):this.players.forEach(o=>{o.onDone(()=>{++t==s&&this._onFinish()}),o.onDestroy(()=>{++i==s&&this._onDestroy()}),o.onStart(()=>{++r==s&&this._onStart()})}),this.totalTime=this.players.reduce((o,l)=>Math.max(o,l.totalTime),0)}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(e=>e()),this._onDoneFns=[])}init(){this.players.forEach(e=>e.init())}onStart(e){this._onStartFns.push(e)}_onStart(){this.hasStarted()||(this._started=!0,this._onStartFns.forEach(e=>e()),this._onStartFns=[])}onDone(e){this._onDoneFns.push(e)}onDestroy(e){this._onDestroyFns.push(e)}hasStarted(){return this._started}play(){this.parentPlayer||this.init(),this._onStart(),this.players.forEach(e=>e.play())}pause(){this.players.forEach(e=>e.pause())}restart(){this.players.forEach(e=>e.restart())}finish(){this._onFinish(),this.players.forEach(e=>e.finish())}destroy(){this._onDestroy()}_onDestroy(){this._destroyed||(this._destroyed=!0,this._onFinish(),this.players.forEach(e=>e.destroy()),this._onDestroyFns.forEach(e=>e()),this._onDestroyFns=[])}reset(){this.players.forEach(e=>e.reset()),this._destroyed=!1,this._finished=!1,this._started=!1}setPosition(e){const t=e*this.totalTime;this.players.forEach(i=>{const r=i.totalTime?Math.min(1,t/i.totalTime):1;i.setPosition(r)})}getPosition(){const e=this.players.reduce((t,i)=>null===t||i.totalTime>t.totalTime?i:t,null);return null!=e?e.getPosition():0}beforeDestroy(){this.players.forEach(e=>{e.beforeDestroy&&e.beforeDestroy()})}triggerCallback(e){const t="start"==e?this._onStartFns:this._onDoneFns;t.forEach(i=>i()),t.length=0}}const M_e=["addListener","removeListener"],S_e=["addEventListener","removeEventListener"],E_e=["on","off"];function px(n,e,t,i){if(Je(t)&&(i=t,t=void 0),i)return px(n,e,t).pipe(sk(i));const[r,s]=function I_e(n){return Je(n.addEventListener)&&Je(n.removeEventListener)}(n)?S_e.map(o=>l=>n[o](e,l,t)):function T_e(n){return Je(n.addListener)&&Je(n.removeListener)}(n)?M_e.map(aW(n,e)):function D_e(n){return Je(n.on)&&Je(n.off)}(n)?E_e.map(aW(n,e)):[];if(!r&&JR(n))return qu(o=>px(o,e,t))(Nh(n));if(!r)throw new TypeError("Invalid event target");return new Pe(o=>{const l=(...d)=>o.next(1s(l)})}function aW(n,e){return t=>i=>n[t](e,i)}const FE={schedule(n){let e=requestAnimationFrame,t=cancelAnimationFrame;const{delegate:i}=FE;i&&(e=i.requestAnimationFrame,t=i.cancelAnimationFrame);const r=e(s=>{t=void 0,n(s)});return new rt(()=>t?.(r))},requestAnimationFrame(...n){const{delegate:e}=FE;return(e?.requestAnimationFrame||requestAnimationFrame)(...n)},cancelAnimationFrame(...n){const{delegate:e}=FE;return(e?.cancelAnimationFrame||cancelAnimationFrame)(...n)},delegate:void 0},lW=new class P_e extends pO{flush(e){this._active=!0;const t=this._scheduled;this._scheduled=void 0;const{actions:i}=this;let r;e=e||i.shift();do{if(r=e.execute(e.state,e.delay))break}while((e=i[0])&&e.id===t&&i.shift());if(this._active=!1,r){for(;(e=i[0])&&e.id===t&&i.shift();)e.unsubscribe();throw r}}}(class B_e extends fO{constructor(e,t){super(e,t),this.scheduler=e,this.work=t}requestAsyncId(e,t,i=0){return null!==i&&i>0?super.requestAsyncId(e,t,i):(e.actions.push(this),e._scheduled||(e._scheduled=FE.requestAnimationFrame(()=>e.flush(void 0))))}recycleAsyncId(e,t,i=0){var r;if(null!=i?i>0:this.delay>0)return super.recycleAsyncId(e,t,i);const{actions:s}=e;null!=t&&(null===(r=s[s.length-1])||void 0===r?void 0:r.id)!==t&&(FE.cancelAnimationFrame(t),e._scheduled=void 0)}});function cW(n,e=TE){return function R_e(n){return ci((e,t)=>{let i=!1,r=null,s=null,o=!1;const l=()=>{if(s?.unsubscribe(),s=null,i){i=!1;const u=r;r=null,t.next(u)}o&&t.complete()},d=()=>{s=null,o&&t.complete()};e.subscribe(Pi(t,u=>{i=!0,r=u,s||Nh(n(u)).subscribe(s=Pi(t,l,d))},()=>{o=!0,(!i||!s||s.closed)&&t.complete()}))})}(()=>I4(n,e))}let F4=(()=>{class n{constructor(t,i,r){this._ngZone=t,this._platform=i,this._scrolled=new hn,this._globalSubscription=null,this._scrolledCount=0,this.scrollContainers=new Map,this._document=r}register(t){this.scrollContainers.has(t)||this.scrollContainers.set(t,t.elementScrolled().subscribe(()=>this._scrolled.next(t)))}deregister(t){const i=this.scrollContainers.get(t);i&&(i.unsubscribe(),this.scrollContainers.delete(t))}scrolled(t=20){return this._platform.isBrowser?new Pe(i=>{this._globalSubscription||this._addGlobalListener();const r=t>0?this._scrolled.pipe(cW(t)).subscribe(i):this._scrolled.subscribe(i);return this._scrolledCount++,()=>{r.unsubscribe(),this._scrolledCount--,this._scrolledCount||this._removeGlobalListener()}}):po()}ngOnDestroy(){this._removeGlobalListener(),this.scrollContainers.forEach((t,i)=>this.deregister(i)),this._scrolled.complete()}ancestorScrolled(t,i){const r=this.getAncestorScrollContainers(t);return this.scrolled(i).pipe(od(s=>!s||r.indexOf(s)>-1))}getAncestorScrollContainers(t){const i=[];return this.scrollContainers.forEach((r,s)=>{this._scrollableContainsElement(s,t)&&i.push(s)}),i}_getWindow(){return this._document.defaultView||window}_scrollableContainsElement(t,i){let r=hu(i),s=t.getElementRef().nativeElement;do{if(r==s)return!0}while(r=r.parentElement);return!1}_addGlobalListener(){this._globalSubscription=this._ngZone.runOutsideAngular(()=>px(this._getWindow().document,"scroll").subscribe(()=>this._scrolled.next()))}_removeGlobalListener(){this._globalSubscription&&(this._globalSubscription.unsubscribe(),this._globalSubscription=null)}static#e=this.\u0275fac=function(i){return new(i||n)(xi(io),xi(dd),xi(ba,8))};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),OE=(()=>{class n{constructor(t,i,r){this._platform=t,this._change=new hn,this._changeListener=s=>{this._change.next(s)},this._document=r,i.runOutsideAngular(()=>{if(t.isBrowser){const s=this._getWindow();s.addEventListener("resize",this._changeListener),s.addEventListener("orientationchange",this._changeListener)}this.change().subscribe(()=>this._viewportSize=null)})}ngOnDestroy(){if(this._platform.isBrowser){const t=this._getWindow();t.removeEventListener("resize",this._changeListener),t.removeEventListener("orientationchange",this._changeListener)}this._change.complete()}getViewportSize(){this._viewportSize||this._updateViewportSize();const t={width:this._viewportSize.width,height:this._viewportSize.height};return this._platform.isBrowser||(this._viewportSize=null),t}getViewportRect(){const t=this.getViewportScrollPosition(),{width:i,height:r}=this.getViewportSize();return{top:t.top,left:t.left,bottom:t.top+r,right:t.left+i,height:r,width:i}}getViewportScrollPosition(){if(!this._platform.isBrowser)return{top:0,left:0};const t=this._document,i=this._getWindow(),r=t.documentElement,s=r.getBoundingClientRect();return{top:-s.top||t.body.scrollTop||i.scrollY||r.scrollTop||0,left:-s.left||t.body.scrollLeft||i.scrollX||r.scrollLeft||0}}change(t=20){return t>0?this._change.pipe(cW(t)):this._change}_getWindow(){return this._document.defaultView||window}_updateViewportSize(){const t=this._getWindow();this._viewportSize=this._platform.isBrowser?{width:t.innerWidth,height:t.innerHeight}:{width:0,height:0}}static#e=this.\u0275fac=function(i){return new(i||n)(xi(dd),xi(io),xi(ba,8))};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),LE=(()=>{class n{static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275mod=vo({type:n});static#n=this.\u0275inj=ra({})}return n})(),dW=(()=>{class n{static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275mod=vo({type:n});static#n=this.\u0275inj=ra({imports:[IE,LE,IE,LE]})}return n})();const uW=vQ();class L_e{constructor(e,t){this._viewportRuler=e,this._previousHTMLStyles={top:"",left:""},this._isEnabled=!1,this._document=t}attach(){}enable(){if(this._canBeEnabled()){const e=this._document.documentElement;this._previousScrollPosition=this._viewportRuler.getViewportScrollPosition(),this._previousHTMLStyles.left=e.style.left||"",this._previousHTMLStyles.top=e.style.top||"",e.style.left=uu(-this._previousScrollPosition.left),e.style.top=uu(-this._previousScrollPosition.top),e.classList.add("cdk-global-scrollblock"),this._isEnabled=!0}}disable(){if(this._isEnabled){const e=this._document.documentElement,i=e.style,r=this._document.body.style,s=i.scrollBehavior||"",o=r.scrollBehavior||"";this._isEnabled=!1,i.left=this._previousHTMLStyles.left,i.top=this._previousHTMLStyles.top,e.classList.remove("cdk-global-scrollblock"),uW&&(i.scrollBehavior=r.scrollBehavior="auto"),window.scroll(this._previousScrollPosition.left,this._previousScrollPosition.top),uW&&(i.scrollBehavior=s,r.scrollBehavior=o)}}_canBeEnabled(){if(this._document.documentElement.classList.contains("cdk-global-scrollblock")||this._isEnabled)return!1;const t=this._document.body,i=this._viewportRuler.getViewportSize();return t.scrollHeight>i.height||t.scrollWidth>i.width}}class N_e{constructor(e,t,i,r){this._scrollDispatcher=e,this._ngZone=t,this._viewportRuler=i,this._config=r,this._scrollSubscription=null,this._detach=()=>{this.disable(),this._overlayRef.hasAttached()&&this._ngZone.run(()=>this._overlayRef.detach())}}attach(e){this._overlayRef=e}enable(){if(this._scrollSubscription)return;const e=this._scrollDispatcher.scrolled(0).pipe(od(t=>!t||!this._overlayRef.overlayElement.contains(t.getElementRef().nativeElement)));this._config&&this._config.threshold&&this._config.threshold>1?(this._initialScrollPosition=this._viewportRuler.getViewportScrollPosition().top,this._scrollSubscription=e.subscribe(()=>{const t=this._viewportRuler.getViewportScrollPosition().top;Math.abs(t-this._initialScrollPosition)>this._config.threshold?this._detach():this._overlayRef.updatePosition()})):this._scrollSubscription=e.subscribe(this._detach)}disable(){this._scrollSubscription&&(this._scrollSubscription.unsubscribe(),this._scrollSubscription=null)}detach(){this.disable(),this._overlayRef=null}}class hW{enable(){}disable(){}attach(){}}function IO(n,e){return e.some(t=>n.bottomt.bottom||n.rightt.right)}function fW(n,e){return e.some(t=>n.topt.bottom||n.leftt.right)}class U_e{constructor(e,t,i,r){this._scrollDispatcher=e,this._viewportRuler=t,this._ngZone=i,this._config=r,this._scrollSubscription=null}attach(e){this._overlayRef=e}enable(){this._scrollSubscription||(this._scrollSubscription=this._scrollDispatcher.scrolled(this._config?this._config.scrollThrottle:0).subscribe(()=>{if(this._overlayRef.updatePosition(),this._config&&this._config.autoClose){const t=this._overlayRef.overlayElement.getBoundingClientRect(),{width:i,height:r}=this._viewportRuler.getViewportSize();IO(t,[{width:i,height:r,bottom:r,right:i,top:0,left:0}])&&(this.disable(),this._ngZone.run(()=>this._overlayRef.detach()))}}))}disable(){this._scrollSubscription&&(this._scrollSubscription.unsubscribe(),this._scrollSubscription=null)}detach(){this.disable(),this._overlayRef=null}}let z_e=(()=>{class n{constructor(t,i,r,s){this._scrollDispatcher=t,this._viewportRuler=i,this._ngZone=r,this.noop=()=>new hW,this.close=o=>new N_e(this._scrollDispatcher,this._ngZone,this._viewportRuler,o),this.block=()=>new L_e(this._viewportRuler,this._document),this.reposition=o=>new U_e(this._scrollDispatcher,this._viewportRuler,this._ngZone,o),this._document=s}static#e=this.\u0275fac=function(i){return new(i||n)(xi(F4),xi(OE),xi(io),xi(ba))};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();class BO{constructor(e){if(this.scrollStrategy=new hW,this.panelClass="",this.hasBackdrop=!1,this.backdropClass="cdk-overlay-dark-backdrop",this.disposeOnNavigation=!1,e){const t=Object.keys(e);for(const i of t)void 0!==e[i]&&(this[i]=e[i])}}}class H_e{constructor(e,t){this.connectionPair=e,this.scrollableViewProperties=t}}let pW=(()=>{class n{constructor(t){this._attachedOverlays=[],this._document=t}ngOnDestroy(){this.detach()}add(t){this.remove(t),this._attachedOverlays.push(t)}remove(t){const i=this._attachedOverlays.indexOf(t);i>-1&&this._attachedOverlays.splice(i,1),0===this._attachedOverlays.length&&this.detach()}static#e=this.\u0275fac=function(i){return new(i||n)(xi(ba))};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),V_e=(()=>{class n extends pW{constructor(t,i){super(t),this._ngZone=i,this._keydownListener=r=>{const s=this._attachedOverlays;for(let o=s.length-1;o>-1;o--)if(s[o]._keydownEvents.observers.length>0){const l=s[o]._keydownEvents;this._ngZone?this._ngZone.run(()=>l.next(r)):l.next(r);break}}}add(t){super.add(t),this._isAttached||(this._ngZone?this._ngZone.runOutsideAngular(()=>this._document.body.addEventListener("keydown",this._keydownListener)):this._document.body.addEventListener("keydown",this._keydownListener),this._isAttached=!0)}detach(){this._isAttached&&(this._document.body.removeEventListener("keydown",this._keydownListener),this._isAttached=!1)}static#e=this.\u0275fac=function(i){return new(i||n)(xi(ba),xi(io,8))};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),G_e=(()=>{class n extends pW{constructor(t,i,r){super(t),this._platform=i,this._ngZone=r,this._cursorStyleIsSet=!1,this._pointerDownListener=s=>{this._pointerDownEventTarget=pA(s)},this._clickListener=s=>{const o=pA(s),l="click"===s.type&&this._pointerDownEventTarget?this._pointerDownEventTarget:o;this._pointerDownEventTarget=null;const d=this._attachedOverlays.slice();for(let u=d.length-1;u>-1;u--){const f=d[u];if(f._outsidePointerEvents.observers.length<1||!f.hasAttached())continue;if(f.overlayElement.contains(o)||f.overlayElement.contains(l))break;const A=f._outsidePointerEvents;this._ngZone?this._ngZone.run(()=>A.next(s)):A.next(s)}}}add(t){if(super.add(t),!this._isAttached){const i=this._document.body;this._ngZone?this._ngZone.runOutsideAngular(()=>this._addEventListeners(i)):this._addEventListeners(i),this._platform.IOS&&!this._cursorStyleIsSet&&(this._cursorOriginalValue=i.style.cursor,i.style.cursor="pointer",this._cursorStyleIsSet=!0),this._isAttached=!0}}detach(){if(this._isAttached){const t=this._document.body;t.removeEventListener("pointerdown",this._pointerDownListener,!0),t.removeEventListener("click",this._clickListener,!0),t.removeEventListener("auxclick",this._clickListener,!0),t.removeEventListener("contextmenu",this._clickListener,!0),this._platform.IOS&&this._cursorStyleIsSet&&(t.style.cursor=this._cursorOriginalValue,this._cursorStyleIsSet=!1),this._isAttached=!1}}_addEventListeners(t){t.addEventListener("pointerdown",this._pointerDownListener,!0),t.addEventListener("click",this._clickListener,!0),t.addEventListener("auxclick",this._clickListener,!0),t.addEventListener("contextmenu",this._clickListener,!0)}static#e=this.\u0275fac=function(i){return new(i||n)(xi(ba),xi(dd),xi(io,8))};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),O4=(()=>{class n{constructor(t,i){this._platform=i,this._document=t}ngOnDestroy(){this._containerElement?.remove()}getContainerElement(){return this._containerElement||this._createContainer(),this._containerElement}_createContainer(){const t="cdk-overlay-container";if(this._platform.isBrowser||dO()){const r=this._document.querySelectorAll(`.${t}[platform="server"], .${t}[platform="test"]`);for(let s=0;sthis._backdropClick.next(A),this._backdropTransitionendHandler=A=>{this._disposeBackdrop(A.target)},this._keydownEvents=new hn,this._outsidePointerEvents=new hn,r.scrollStrategy&&(this._scrollStrategy=r.scrollStrategy,this._scrollStrategy.attach(this)),this._positionStrategy=r.positionStrategy}get overlayElement(){return this._pane}get backdropElement(){return this._backdropElement}get hostElement(){return this._host}attach(e){!this._host.parentElement&&this._previousHostParent&&this._previousHostParent.appendChild(this._host);const t=this._portalOutlet.attach(e);return this._positionStrategy&&this._positionStrategy.attach(this),this._updateStackingOrder(),this._updateElementSize(),this._updateElementDirection(),this._scrollStrategy&&this._scrollStrategy.enable(),this._ngZone.onStable.pipe(ad(1)).subscribe(()=>{this.hasAttached()&&this.updatePosition()}),this._togglePointerEvents(!0),this._config.hasBackdrop&&this._attachBackdrop(),this._config.panelClass&&this._toggleClasses(this._pane,this._config.panelClass,!0),this._attachments.next(),this._keyboardDispatcher.add(this),this._config.disposeOnNavigation&&(this._locationChanges=this._location.subscribe(()=>this.dispose())),this._outsideClickDispatcher.add(this),"function"==typeof t?.onDestroy&&t.onDestroy(()=>{this.hasAttached()&&this._ngZone.runOutsideAngular(()=>Promise.resolve().then(()=>this.detach()))}),t}detach(){if(!this.hasAttached())return;this.detachBackdrop(),this._togglePointerEvents(!1),this._positionStrategy&&this._positionStrategy.detach&&this._positionStrategy.detach(),this._scrollStrategy&&this._scrollStrategy.disable();const e=this._portalOutlet.detach();return this._detachments.next(),this._keyboardDispatcher.remove(this),this._detachContentWhenStable(),this._locationChanges.unsubscribe(),this._outsideClickDispatcher.remove(this),e}dispose(){const e=this.hasAttached();this._positionStrategy&&this._positionStrategy.dispose(),this._disposeScrollStrategy(),this._disposeBackdrop(this._backdropElement),this._locationChanges.unsubscribe(),this._keyboardDispatcher.remove(this),this._portalOutlet.dispose(),this._attachments.complete(),this._backdropClick.complete(),this._keydownEvents.complete(),this._outsidePointerEvents.complete(),this._outsideClickDispatcher.remove(this),this._host?.remove(),this._previousHostParent=this._pane=this._host=null,e&&this._detachments.next(),this._detachments.complete()}hasAttached(){return this._portalOutlet.hasAttached()}backdropClick(){return this._backdropClick}attachments(){return this._attachments}detachments(){return this._detachments}keydownEvents(){return this._keydownEvents}outsidePointerEvents(){return this._outsidePointerEvents}getConfig(){return this._config}updatePosition(){this._positionStrategy&&this._positionStrategy.apply()}updatePositionStrategy(e){e!==this._positionStrategy&&(this._positionStrategy&&this._positionStrategy.dispose(),this._positionStrategy=e,this.hasAttached()&&(e.attach(this),this.updatePosition()))}updateSize(e){this._config={...this._config,...e},this._updateElementSize()}setDirection(e){this._config={...this._config,direction:e},this._updateElementDirection()}addPanelClass(e){this._pane&&this._toggleClasses(this._pane,e,!0)}removePanelClass(e){this._pane&&this._toggleClasses(this._pane,e,!1)}getDirection(){const e=this._config.direction;return e?"string"==typeof e?e:e.value:"ltr"}updateScrollStrategy(e){e!==this._scrollStrategy&&(this._disposeScrollStrategy(),this._scrollStrategy=e,this.hasAttached()&&(e.attach(this),e.enable()))}_updateElementDirection(){this._host.setAttribute("dir",this.getDirection())}_updateElementSize(){if(!this._pane)return;const e=this._pane.style;e.width=uu(this._config.width),e.height=uu(this._config.height),e.minWidth=uu(this._config.minWidth),e.minHeight=uu(this._config.minHeight),e.maxWidth=uu(this._config.maxWidth),e.maxHeight=uu(this._config.maxHeight)}_togglePointerEvents(e){this._pane.style.pointerEvents=e?"":"none"}_attachBackdrop(){const e="cdk-overlay-backdrop-showing";this._backdropElement=this._document.createElement("div"),this._backdropElement.classList.add("cdk-overlay-backdrop"),this._animationsDisabled&&this._backdropElement.classList.add("cdk-overlay-backdrop-noop-animation"),this._config.backdropClass&&this._toggleClasses(this._backdropElement,this._config.backdropClass,!0),this._host.parentElement.insertBefore(this._backdropElement,this._host),this._backdropElement.addEventListener("click",this._backdropClickHandler),!this._animationsDisabled&&typeof requestAnimationFrame<"u"?this._ngZone.runOutsideAngular(()=>{requestAnimationFrame(()=>{this._backdropElement&&this._backdropElement.classList.add(e)})}):this._backdropElement.classList.add(e)}_updateStackingOrder(){this._host.nextSibling&&this._host.parentNode.appendChild(this._host)}detachBackdrop(){const e=this._backdropElement;if(e){if(this._animationsDisabled)return void this._disposeBackdrop(e);e.classList.remove("cdk-overlay-backdrop-showing"),this._ngZone.runOutsideAngular(()=>{e.addEventListener("transitionend",this._backdropTransitionendHandler)}),e.style.pointerEvents="none",this._backdropTimeout=this._ngZone.runOutsideAngular(()=>setTimeout(()=>{this._disposeBackdrop(e)},500))}}_toggleClasses(e,t,i){const r=DE(t||[]).filter(s=>!!s);r.length&&(i?e.classList.add(...r):e.classList.remove(...r))}_detachContentWhenStable(){this._ngZone.runOutsideAngular(()=>{const e=this._ngZone.onStable.pipe(Ql(gm(this._attachments,this._detachments))).subscribe(()=>{(!this._pane||!this._host||0===this._pane.children.length)&&(this._pane&&this._config.panelClass&&this._toggleClasses(this._pane,this._config.panelClass,!1),this._host&&this._host.parentElement&&(this._previousHostParent=this._host.parentElement,this._host.remove()),e.unsubscribe())})})}_disposeScrollStrategy(){const e=this._scrollStrategy;e&&(e.disable(),e.detach&&e.detach())}_disposeBackdrop(e){e&&(e.removeEventListener("click",this._backdropClickHandler),e.removeEventListener("transitionend",this._backdropTransitionendHandler),e.remove(),this._backdropElement===e&&(this._backdropElement=null)),this._backdropTimeout&&(clearTimeout(this._backdropTimeout),this._backdropTimeout=void 0)}}const mW="cdk-overlay-connected-position-bounding-box",q_e=/([A-Za-z%]+)$/;class Q_e{get positions(){return this._preferredPositions}constructor(e,t,i,r,s){this._viewportRuler=t,this._document=i,this._platform=r,this._overlayContainer=s,this._lastBoundingBoxSize={width:0,height:0},this._isPushed=!1,this._canPush=!0,this._growAfterOpen=!1,this._hasFlexibleDimensions=!0,this._positionLocked=!1,this._viewportMargin=0,this._scrollables=[],this._preferredPositions=[],this._positionChanges=new hn,this._resizeSubscription=rt.EMPTY,this._offsetX=0,this._offsetY=0,this._appliedPanelClasses=[],this.positionChanges=this._positionChanges,this.setOrigin(e)}attach(e){this._validatePositions(),e.hostElement.classList.add(mW),this._overlayRef=e,this._boundingBox=e.hostElement,this._pane=e.overlayElement,this._isDisposed=!1,this._isInitialRender=!0,this._lastPosition=null,this._resizeSubscription.unsubscribe(),this._resizeSubscription=this._viewportRuler.change().subscribe(()=>{this._isInitialRender=!0,this.apply()})}apply(){if(this._isDisposed||!this._platform.isBrowser)return;if(!this._isInitialRender&&this._positionLocked&&this._lastPosition)return void this.reapplyLastPosition();this._clearPanelClasses(),this._resetOverlayElementStyles(),this._resetBoundingBoxStyles(),this._viewportRect=this._getNarrowedViewportRect(),this._originRect=this._getOriginRect(),this._overlayRect=this._pane.getBoundingClientRect(),this._containerRect=this._overlayContainer.getContainerElement().getBoundingClientRect();const e=this._originRect,t=this._overlayRect,i=this._viewportRect,r=this._containerRect,s=[];let o;for(let l of this._preferredPositions){let d=this._getOriginPoint(e,r,l),u=this._getOverlayPoint(d,t,l),f=this._getOverlayFit(u,t,i,l);if(f.isCompletelyWithinViewport)return this._isPushed=!1,void this._applyPosition(l,d);this._canFitWithFlexibleDimensions(f,u,i)?s.push({position:l,origin:d,overlayRect:t,boundingBoxRect:this._calculateBoundingBoxRect(d,l)}):(!o||o.overlayFit.visibleAread&&(d=f,l=u)}return this._isPushed=!1,void this._applyPosition(l.position,l.origin)}if(this._canPush)return this._isPushed=!0,void this._applyPosition(o.position,o.originPoint);this._applyPosition(o.position,o.originPoint)}detach(){this._clearPanelClasses(),this._lastPosition=null,this._previousPushAmount=null,this._resizeSubscription.unsubscribe()}dispose(){this._isDisposed||(this._boundingBox&&mx(this._boundingBox.style,{top:"",left:"",right:"",bottom:"",height:"",width:"",alignItems:"",justifyContent:""}),this._pane&&this._resetOverlayElementStyles(),this._overlayRef&&this._overlayRef.hostElement.classList.remove(mW),this.detach(),this._positionChanges.complete(),this._overlayRef=this._boundingBox=null,this._isDisposed=!0)}reapplyLastPosition(){if(this._isDisposed||!this._platform.isBrowser)return;const e=this._lastPosition;if(e){this._originRect=this._getOriginRect(),this._overlayRect=this._pane.getBoundingClientRect(),this._viewportRect=this._getNarrowedViewportRect(),this._containerRect=this._overlayContainer.getContainerElement().getBoundingClientRect();const t=this._getOriginPoint(this._originRect,this._containerRect,e);this._applyPosition(e,t)}else this.apply()}withScrollableContainers(e){return this._scrollables=e,this}withPositions(e){return this._preferredPositions=e,-1===e.indexOf(this._lastPosition)&&(this._lastPosition=null),this._validatePositions(),this}withViewportMargin(e){return this._viewportMargin=e,this}withFlexibleDimensions(e=!0){return this._hasFlexibleDimensions=e,this}withGrowAfterOpen(e=!0){return this._growAfterOpen=e,this}withPush(e=!0){return this._canPush=e,this}withLockedPosition(e=!0){return this._positionLocked=e,this}setOrigin(e){return this._origin=e,this}withDefaultOffsetX(e){return this._offsetX=e,this}withDefaultOffsetY(e){return this._offsetY=e,this}withTransformOriginOn(e){return this._transformOriginSelector=e,this}_getOriginPoint(e,t,i){let r,s;if("center"==i.originX)r=e.left+e.width/2;else{const o=this._isRtl()?e.right:e.left,l=this._isRtl()?e.left:e.right;r="start"==i.originX?o:l}return t.left<0&&(r-=t.left),s="center"==i.originY?e.top+e.height/2:"top"==i.originY?e.top:e.bottom,t.top<0&&(s-=t.top),{x:r,y:s}}_getOverlayPoint(e,t,i){let r,s;return r="center"==i.overlayX?-t.width/2:"start"===i.overlayX?this._isRtl()?-t.width:0:this._isRtl()?0:-t.width,s="center"==i.overlayY?-t.height/2:"top"==i.overlayY?0:-t.height,{x:e.x+r,y:e.y+s}}_getOverlayFit(e,t,i,r){const s=gW(t);let{x:o,y:l}=e,d=this._getOffset(r,"x"),u=this._getOffset(r,"y");d&&(o+=d),u&&(l+=u);let S=0-l,R=l+s.height-i.height,G=this._subtractOverflows(s.width,0-o,o+s.width-i.width),re=this._subtractOverflows(s.height,S,R),se=G*re;return{visibleArea:se,isCompletelyWithinViewport:s.width*s.height===se,fitsInViewportVertically:re===s.height,fitsInViewportHorizontally:G==s.width}}_canFitWithFlexibleDimensions(e,t,i){if(this._hasFlexibleDimensions){const r=i.bottom-t.y,s=i.right-t.x,o=AW(this._overlayRef.getConfig().minHeight),l=AW(this._overlayRef.getConfig().minWidth);return(e.fitsInViewportVertically||null!=o&&o<=r)&&(e.fitsInViewportHorizontally||null!=l&&l<=s)}return!1}_pushOverlayOnScreen(e,t,i){if(this._previousPushAmount&&this._positionLocked)return{x:e.x+this._previousPushAmount.x,y:e.y+this._previousPushAmount.y};const r=gW(t),s=this._viewportRect,o=Math.max(e.x+r.width-s.width,0),l=Math.max(e.y+r.height-s.height,0),d=Math.max(s.top-i.top-e.y,0),u=Math.max(s.left-i.left-e.x,0);let f=0,A=0;return f=r.width<=s.width?u||-o:e.xG&&!this._isInitialRender&&!this._growAfterOpen&&(o=e.y-G/2)}if("end"===t.overlayX&&!r||"start"===t.overlayX&&r)S=i.width-e.x+2*this._viewportMargin,f=e.x-this._viewportMargin;else if("start"===t.overlayX&&!r||"end"===t.overlayX&&r)A=e.x,f=i.right-e.x;else{const R=Math.min(i.right-e.x+i.left,e.x),G=this._lastBoundingBoxSize.width;f=2*R,A=e.x-R,f>G&&!this._isInitialRender&&!this._growAfterOpen&&(A=e.x-G/2)}return{top:o,left:A,bottom:l,right:S,width:f,height:s}}_setBoundingBoxStyles(e,t){const i=this._calculateBoundingBoxRect(e,t);!this._isInitialRender&&!this._growAfterOpen&&(i.height=Math.min(i.height,this._lastBoundingBoxSize.height),i.width=Math.min(i.width,this._lastBoundingBoxSize.width));const r={};if(this._hasExactPosition())r.top=r.left="0",r.bottom=r.right=r.maxHeight=r.maxWidth="",r.width=r.height="100%";else{const s=this._overlayRef.getConfig().maxHeight,o=this._overlayRef.getConfig().maxWidth;r.height=uu(i.height),r.top=uu(i.top),r.bottom=uu(i.bottom),r.width=uu(i.width),r.left=uu(i.left),r.right=uu(i.right),r.alignItems="center"===t.overlayX?"center":"end"===t.overlayX?"flex-end":"flex-start",r.justifyContent="center"===t.overlayY?"center":"bottom"===t.overlayY?"flex-end":"flex-start",s&&(r.maxHeight=uu(s)),o&&(r.maxWidth=uu(o))}this._lastBoundingBoxSize=i,mx(this._boundingBox.style,r)}_resetBoundingBoxStyles(){mx(this._boundingBox.style,{top:"0",left:"0",right:"0",bottom:"0",height:"",width:"",alignItems:"",justifyContent:""})}_resetOverlayElementStyles(){mx(this._pane.style,{top:"",left:"",bottom:"",right:"",position:"",transform:""})}_setOverlayElementStyles(e,t){const i={},r=this._hasExactPosition(),s=this._hasFlexibleDimensions,o=this._overlayRef.getConfig();if(r){const f=this._viewportRuler.getViewportScrollPosition();mx(i,this._getExactOverlayY(t,e,f)),mx(i,this._getExactOverlayX(t,e,f))}else i.position="static";let l="",d=this._getOffset(t,"x"),u=this._getOffset(t,"y");d&&(l+=`translateX(${d}px) `),u&&(l+=`translateY(${u}px)`),i.transform=l.trim(),o.maxHeight&&(r?i.maxHeight=uu(o.maxHeight):s&&(i.maxHeight="")),o.maxWidth&&(r?i.maxWidth=uu(o.maxWidth):s&&(i.maxWidth="")),mx(this._pane.style,i)}_getExactOverlayY(e,t,i){let r={top:"",bottom:""},s=this._getOverlayPoint(t,this._overlayRect,e);return this._isPushed&&(s=this._pushOverlayOnScreen(s,this._overlayRect,i)),"bottom"===e.overlayY?r.bottom=this._document.documentElement.clientHeight-(s.y+this._overlayRect.height)+"px":r.top=uu(s.y),r}_getExactOverlayX(e,t,i){let o,r={left:"",right:""},s=this._getOverlayPoint(t,this._overlayRect,e);return this._isPushed&&(s=this._pushOverlayOnScreen(s,this._overlayRect,i)),o=this._isRtl()?"end"===e.overlayX?"left":"right":"end"===e.overlayX?"right":"left","right"===o?r.right=this._document.documentElement.clientWidth-(s.x+this._overlayRect.width)+"px":r.left=uu(s.x),r}_getScrollVisibility(){const e=this._getOriginRect(),t=this._pane.getBoundingClientRect(),i=this._scrollables.map(r=>r.getElementRef().nativeElement.getBoundingClientRect());return{isOriginClipped:fW(e,i),isOriginOutsideView:IO(e,i),isOverlayClipped:fW(t,i),isOverlayOutsideView:IO(t,i)}}_subtractOverflows(e,...t){return t.reduce((i,r)=>i-Math.max(r,0),e)}_getNarrowedViewportRect(){const e=this._document.documentElement.clientWidth,t=this._document.documentElement.clientHeight,i=this._viewportRuler.getViewportScrollPosition();return{top:i.top+this._viewportMargin,left:i.left+this._viewportMargin,right:i.left+e-this._viewportMargin,bottom:i.top+t-this._viewportMargin,width:e-2*this._viewportMargin,height:t-2*this._viewportMargin}}_isRtl(){return"rtl"===this._overlayRef.getDirection()}_hasExactPosition(){return!this._hasFlexibleDimensions||this._isPushed}_getOffset(e,t){return"x"===t?null==e.offsetX?this._offsetX:e.offsetX:null==e.offsetY?this._offsetY:e.offsetY}_validatePositions(){}_addPanelClasses(e){this._pane&&DE(e).forEach(t=>{""!==t&&-1===this._appliedPanelClasses.indexOf(t)&&(this._appliedPanelClasses.push(t),this._pane.classList.add(t))})}_clearPanelClasses(){this._pane&&(this._appliedPanelClasses.forEach(e=>{this._pane.classList.remove(e)}),this._appliedPanelClasses=[])}_getOriginRect(){const e=this._origin;if(e instanceof oo)return e.nativeElement.getBoundingClientRect();if(e instanceof Element)return e.getBoundingClientRect();const t=e.width||0,i=e.height||0;return{top:e.y,bottom:e.y+i,left:e.x,right:e.x+t,height:i,width:t}}}function mx(n,e){for(let t in e)e.hasOwnProperty(t)&&(n[t]=e[t]);return n}function AW(n){if("number"!=typeof n&&null!=n){const[e,t]=n.split(q_e);return t&&"px"!==t?null:parseFloat(e)}return n||null}function gW(n){return{top:Math.floor(n.top),right:Math.floor(n.right),bottom:Math.floor(n.bottom),left:Math.floor(n.left),width:Math.floor(n.width),height:Math.floor(n.height)}}const _W="cdk-global-overlay-wrapper";class j_e{constructor(){this._cssPosition="static",this._topOffset="",this._bottomOffset="",this._alignItems="",this._xPosition="",this._xOffset="",this._width="",this._height="",this._isDisposed=!1}attach(e){const t=e.getConfig();this._overlayRef=e,this._width&&!t.width&&e.updateSize({width:this._width}),this._height&&!t.height&&e.updateSize({height:this._height}),e.hostElement.classList.add(_W),this._isDisposed=!1}top(e=""){return this._bottomOffset="",this._topOffset=e,this._alignItems="flex-start",this}left(e=""){return this._xOffset=e,this._xPosition="left",this}bottom(e=""){return this._topOffset="",this._bottomOffset=e,this._alignItems="flex-end",this}right(e=""){return this._xOffset=e,this._xPosition="right",this}start(e=""){return this._xOffset=e,this._xPosition="start",this}end(e=""){return this._xOffset=e,this._xPosition="end",this}width(e=""){return this._overlayRef?this._overlayRef.updateSize({width:e}):this._width=e,this}height(e=""){return this._overlayRef?this._overlayRef.updateSize({height:e}):this._height=e,this}centerHorizontally(e=""){return this.left(e),this._xPosition="center",this}centerVertically(e=""){return this.top(e),this._alignItems="center",this}apply(){if(!this._overlayRef||!this._overlayRef.hasAttached())return;const e=this._overlayRef.overlayElement.style,t=this._overlayRef.hostElement.style,i=this._overlayRef.getConfig(),{width:r,height:s,maxWidth:o,maxHeight:l}=i,d=!("100%"!==r&&"100vw"!==r||o&&"100%"!==o&&"100vw"!==o),u=!("100%"!==s&&"100vh"!==s||l&&"100%"!==l&&"100vh"!==l),f=this._xPosition,A=this._xOffset,S="rtl"===this._overlayRef.getConfig().direction;let R="",G="",re="";d?re="flex-start":"center"===f?(re="center",S?G=A:R=A):S?"left"===f||"end"===f?(re="flex-end",R=A):("right"===f||"start"===f)&&(re="flex-start",G=A):"left"===f||"start"===f?(re="flex-start",R=A):("right"===f||"end"===f)&&(re="flex-end",G=A),e.position=this._cssPosition,e.marginLeft=d?"0":R,e.marginTop=u?"0":this._topOffset,e.marginBottom=this._bottomOffset,e.marginRight=d?"0":G,t.justifyContent=re,t.alignItems=u?"flex-start":this._alignItems}dispose(){if(this._isDisposed||!this._overlayRef)return;const e=this._overlayRef.overlayElement.style,t=this._overlayRef.hostElement,i=t.style;t.classList.remove(_W),i.justifyContent=i.alignItems=e.marginTop=e.marginBottom=e.marginLeft=e.marginRight=e.position="",this._overlayRef=null,this._isDisposed=!0}}let $_e=(()=>{class n{constructor(t,i,r,s){this._viewportRuler=t,this._document=i,this._platform=r,this._overlayContainer=s}global(){return new j_e}flexibleConnectedTo(t){return new Q_e(t,this._viewportRuler,this._document,this._platform,this._overlayContainer)}static#e=this.\u0275fac=function(i){return new(i||n)(xi(OE),xi(ba),xi(dd),xi(O4))};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),X_e=0,fu=(()=>{class n{constructor(t,i,r,s,o,l,d,u,f,A,S,R){this.scrollStrategies=t,this._overlayContainer=i,this._componentFactoryResolver=r,this._positionBuilder=s,this._keyboardDispatcher=o,this._injector=l,this._ngZone=d,this._document=u,this._directionality=f,this._location=A,this._outsideClickDispatcher=S,this._animationsModuleType=R}create(t){const i=this._createHostElement(),r=this._createPaneElement(i),s=this._createPortalOutlet(r),o=new BO(t);return o.direction=o.direction||this._directionality.value,new L4(s,i,r,o,this._ngZone,this._keyboardDispatcher,this._document,this._location,this._outsideClickDispatcher,"NoopAnimations"===this._animationsModuleType)}position(){return this._positionBuilder}_createPaneElement(t){const i=this._document.createElement("div");return i.id="cdk-overlay-"+X_e++,i.classList.add("cdk-overlay-pane"),t.appendChild(i),i}_createHostElement(){const t=this._document.createElement("div");return this._overlayContainer.getContainerElement().appendChild(t),t}_createPortalOutlet(t){return this._appRef||(this._appRef=this._injector.get(k_)),new __e(t,this._componentFactoryResolver,this._appRef,this._injector,this._document)}static#e=this.\u0275fac=function(i){return new(i||n)(xi(z_e),xi(O4),xi(m0),xi($_e),xi(V_e),xi(ml),xi(io),xi(ba),xi(_m),xi(gb),xi(G_e),xi(Od,8))};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();const Z_e={provide:new Bi("cdk-connected-overlay-scroll-strategy",{providedIn:"root",factory:()=>{const n=pi(fu);return()=>n.scrollStrategies.reposition()}}),deps:[fu],useFactory:function K_e(n){return()=>n.scrollStrategies.reposition()}};let NE=(()=>{class n{static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275mod=vo({type:n});static#n=this.\u0275inj=ra({providers:[fu,Z_e],imports:[IE,k4,dW,dW]})}return n})();const J_e=["mat-menu-item",""],e1e=[[["mat-icon"],["","matMenuItemIcon",""]],"*"],t1e=["mat-icon, [matMenuItemIcon]","*"];function n1e(n,e){1&n&&(Fl(),Gt(0,"svg",2),Vr(1,"polygon",3),dn())}const i1e=["*"];function r1e(n,e){if(1&n){const t=ta();Gt(0,"div",0),Ai("keydown",function(r){return Ci(t),Mi(Pr()._handleKeydown(r))})("click",function(){return Ci(t),Mi(Pr().closed.emit("click"))})("@transformMenu.start",function(r){return Ci(t),Mi(Pr()._onAnimationStart(r))})("@transformMenu.done",function(r){return Ci(t),Mi(Pr()._onAnimationDone(r))}),Gt(1,"div",1),iu(2),dn()()}if(2&n){const t=Pr();Qn("id",t.panelId)("ngClass",t._classList)("@transformMenu",t._panelAnimationState),sl("aria-label",t.ariaLabel||null)("aria-labelledby",t.ariaLabelledby||null)("aria-describedby",t.ariaDescribedby||null)}}const PO=new Bi("MAT_MENU_PANEL");let s1=(()=>{class n{constructor(t,i,r,s,o){this._elementRef=t,this._document=i,this._focusMonitor=r,this._parentMenu=s,this._changeDetectorRef=o,this.role="menuitem",this.disabled=!1,this.disableRipple=!1,this._hovered=new hn,this._focused=new hn,this._highlighted=!1,this._triggersSubmenu=!1,s?.addItem?.(this)}focus(t,i){this._focusMonitor&&t?this._focusMonitor.focusVia(this._getHostElement(),t,i):this._getHostElement().focus(i),this._focused.next(this)}ngAfterViewInit(){this._focusMonitor&&this._focusMonitor.monitor(this._elementRef,!1)}ngOnDestroy(){this._focusMonitor&&this._focusMonitor.stopMonitoring(this._elementRef),this._parentMenu&&this._parentMenu.removeItem&&this._parentMenu.removeItem(this),this._hovered.complete(),this._focused.complete()}_getTabIndex(){return this.disabled?"-1":"0"}_getHostElement(){return this._elementRef.nativeElement}_checkDisabled(t){this.disabled&&(t.preventDefault(),t.stopPropagation())}_handleMouseEnter(){this._hovered.next(this)}getLabel(){const t=this._elementRef.nativeElement.cloneNode(!0),i=t.querySelectorAll("mat-icon, .material-icons");for(let r=0;r enter",F0("120ms cubic-bezier(0, 0, 0.2, 1)",Yu({opacity:1,transform:"scale(1)"}))),O0("* => void",F0("100ms 25ms linear",Yu({opacity:0})))]),fadeInItems:RE("fadeInItems",[r1("showing",Yu({opacity:1})),O0("void => *",[Yu({opacity:0}),F0("400ms 100ms cubic-bezier(0.55, 0, 0.55, 0.2)")])])};let o1e=0;const a1e=new Bi("mat-menu-default-options",{providedIn:"root",factory:function l1e(){return{overlapTrigger:!1,xPosition:"after",yPosition:"below",backdropClass:"cdk-overlay-transparent-backdrop"}}});let o1=(()=>{class n{get xPosition(){return this._xPosition}set xPosition(t){this._xPosition=t,this.setPositionClasses()}get yPosition(){return this._yPosition}set yPosition(t){this._yPosition=t,this.setPositionClasses()}set panelClass(t){const i=this._previousPanelClass;i&&i.length&&i.split(" ").forEach(r=>{this._classList[r]=!1}),this._previousPanelClass=t,t&&t.length&&(t.split(" ").forEach(r=>{this._classList[r]=!0}),this._elementRef.nativeElement.className="")}get classList(){return this.panelClass}set classList(t){this.panelClass=t}constructor(t,i,r,s){this._elementRef=t,this._ngZone=i,this._changeDetectorRef=s,this._elevationPrefix="mat-elevation-z",this._baseElevation=8,this._directDescendantItems=new yf,this._classList={},this._panelAnimationState="void",this._animationDone=new hn,this.closed=new Ls,this.close=this.closed,this.panelId="mat-menu-panel-"+o1e++,this.overlayPanelClass=r.overlayPanelClass||"",this._xPosition=r.xPosition,this._yPosition=r.yPosition,this.backdropClass=r.backdropClass,this.overlapTrigger=r.overlapTrigger,this.hasBackdrop=r.hasBackdrop}ngOnInit(){this.setPositionClasses()}ngAfterContentInit(){this._updateDirectDescendants(),this._keyManager=new kQ(this._directDescendantItems).withWrap().withTypeAhead().withHomeAndEnd(),this._keyManager.tabOut.subscribe(()=>this.closed.emit("tab")),this._directDescendantItems.changes.pipe(sA(this._directDescendantItems),Df(t=>gm(...t.map(i=>i._focused)))).subscribe(t=>this._keyManager.updateActiveItem(t)),this._directDescendantItems.changes.subscribe(t=>{const i=this._keyManager;if("enter"===this._panelAnimationState&&i.activeItem?._hasFocus()){const r=t.toArray(),s=Math.max(0,Math.min(r.length-1,i.activeItemIndex||0));r[s]&&!r[s].disabled?i.setActiveItem(s):i.setNextItemActive()}})}ngOnDestroy(){this._keyManager?.destroy(),this._directDescendantItems.destroy(),this.closed.complete(),this._firstItemFocusSubscription?.unsubscribe()}_hovered(){return this._directDescendantItems.changes.pipe(sA(this._directDescendantItems),Df(i=>gm(...i.map(r=>r._hovered))))}addItem(t){}removeItem(t){}_handleKeydown(t){const i=t.keyCode,r=this._keyManager;switch(i){case 27:bC(t)||(t.preventDefault(),this.closed.emit("keydown"));break;case 37:this.parentMenu&&"ltr"===this.direction&&this.closed.emit("keydown");break;case 39:this.parentMenu&&"rtl"===this.direction&&this.closed.emit("keydown");break;default:return(38===i||40===i)&&r.setFocusOrigin("keyboard"),void r.onKeydown(t)}t.stopPropagation()}focusFirstItem(t="program"){this._firstItemFocusSubscription?.unsubscribe(),this._firstItemFocusSubscription=this._ngZone.onStable.pipe(ad(1)).subscribe(()=>{let i=null;if(this._directDescendantItems.length&&(i=this._directDescendantItems.first._getHostElement().closest('[role="menu"]')),!i||!i.contains(document.activeElement)){const r=this._keyManager;r.setFocusOrigin(t).setFirstItemActive(),!r.activeItem&&i&&i.focus()}})}resetActiveItem(){this._keyManager.setActiveItem(-1)}setElevation(t){const i=Math.min(this._baseElevation+t,24),r=`${this._elevationPrefix}${i}`,s=Object.keys(this._classList).find(o=>o.startsWith(this._elevationPrefix));(!s||s===this._previousElevation)&&(this._previousElevation&&(this._classList[this._previousElevation]=!1),this._classList[r]=!0,this._previousElevation=r)}setPositionClasses(t=this.xPosition,i=this.yPosition){const r=this._classList;r["mat-menu-before"]="before"===t,r["mat-menu-after"]="after"===t,r["mat-menu-above"]="above"===i,r["mat-menu-below"]="below"===i,this._changeDetectorRef?.markForCheck()}_startAnimation(){this._panelAnimationState="enter"}_resetAnimation(){this._panelAnimationState="void"}_onAnimationDone(t){this._animationDone.next(t),this._isAnimating=!1}_onAnimationStart(t){this._isAnimating=!0,"enter"===t.toState&&0===this._keyManager.activeItemIndex&&(t.element.scrollTop=0)}_updateDirectDescendants(){this._allItems.changes.pipe(sA(this._allItems)).subscribe(t=>{this._directDescendantItems.reset(t.filter(i=>i._parentMenu===this)),this._directDescendantItems.notifyOnChanges()})}static#e=this.\u0275fac=function(i){return new(i||n)(Lt(oo),Lt(io),Lt(a1e),Lt(Sc))};static#t=this.\u0275cmp=rs({type:n,selectors:[["mat-menu"]],contentQueries:function(i,r,s){if(1&i&&(mp(s,s1e,5),mp(s,s1,5),mp(s,s1,4)),2&i){let o;pa(o=ma())&&(r.lazyContent=o.first),pa(o=ma())&&(r._allItems=o),pa(o=ma())&&(r.items=o)}},viewQuery:function(i,r){if(1&i&&_l(Ud,5),2&i){let s;pa(s=ma())&&(r.templateRef=s.first)}},hostVars:3,hostBindings:function(i,r){2&i&&sl("aria-label",null)("aria-labelledby",null)("aria-describedby",null)},inputs:{backdropClass:"backdropClass",ariaLabel:[mi.None,"aria-label","ariaLabel"],ariaLabelledby:[mi.None,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[mi.None,"aria-describedby","ariaDescribedby"],xPosition:"xPosition",yPosition:"yPosition",overlapTrigger:[mi.HasDecoratorInputTransform,"overlapTrigger","overlapTrigger",_o],hasBackdrop:[mi.HasDecoratorInputTransform,"hasBackdrop","hasBackdrop",t=>null==t?null:_o(t)],panelClass:[mi.None,"class","panelClass"],classList:"classList"},outputs:{closed:"closed",close:"close"},exportAs:["matMenu"],standalone:!0,features:[qo([{provide:PO,useExisting:n}]),ql,yd],ngContentSelectors:i1e,decls:1,vars:0,consts:[["tabindex","-1","role","menu",1,"mat-mdc-menu-panel","mat-mdc-elevation-specific",3,"keydown","click","id","ngClass"],[1,"mat-mdc-menu-content"]],template:function(i,r){1&i&&(yh(),zs(0,r1e,3,6,"ng-template"))},dependencies:[om],styles:['mat-menu{display:none}.mat-mdc-menu-content{margin:0;padding:8px 0;list-style-type:none}.mat-mdc-menu-content:focus{outline:none}.mat-mdc-menu-content,.mat-mdc-menu-content .mat-mdc-menu-item .mat-mdc-menu-item-text{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;flex:1;white-space:normal;font-family:var(--mat-menu-item-label-text-font);line-height:var(--mat-menu-item-label-text-line-height);font-size:var(--mat-menu-item-label-text-size);letter-spacing:var(--mat-menu-item-label-text-tracking);font-weight:var(--mat-menu-item-label-text-weight)}.mat-mdc-menu-panel{min-width:112px;max-width:280px;overflow:auto;-webkit-overflow-scrolling:touch;box-sizing:border-box;outline:0;border-radius:var(--mat-menu-container-shape);background-color:var(--mat-menu-container-color);will-change:transform,opacity}.mat-mdc-menu-panel.ng-animating{pointer-events:none}.cdk-high-contrast-active .mat-mdc-menu-panel{outline:solid 1px}.mat-divider{color:var(--mat-menu-divider-color);margin-bottom:var(--mat-menu-divider-bottom-spacing);margin-top:var(--mat-menu-divider-top-spacing)}.mat-mdc-menu-item{display:flex;position:relative;align-items:center;justify-content:flex-start;overflow:hidden;padding:0;padding-left:var(--mat-menu-item-leading-spacing);padding-right:var(--mat-menu-item-trailing-spacing);-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:rgba(0,0,0,0);cursor:pointer;width:100%;text-align:left;box-sizing:border-box;color:inherit;font-size:inherit;background:none;text-decoration:none;margin:0;align-items:center;min-height:48px}.mat-mdc-menu-item:focus{outline:none}[dir=rtl] .mat-mdc-menu-item,.mat-mdc-menu-item[dir=rtl]{padding-left:var(--mat-menu-item-trailing-spacing);padding-right:var(--mat-menu-item-leading-spacing)}.mat-mdc-menu-item:has(.material-icons,mat-icon,[matButtonIcon]){padding-left:var(--mat-menu-item-with-icon-leading-spacing);padding-right:var(--mat-menu-item-with-icon-trailing-spacing)}[dir=rtl] .mat-mdc-menu-item:has(.material-icons,mat-icon,[matButtonIcon]),.mat-mdc-menu-item:has(.material-icons,mat-icon,[matButtonIcon])[dir=rtl]{padding-left:var(--mat-menu-item-with-icon-trailing-spacing);padding-right:var(--mat-menu-item-with-icon-leading-spacing)}.mat-mdc-menu-item::-moz-focus-inner{border:0}.mat-mdc-menu-item,.mat-mdc-menu-item:visited,.mat-mdc-menu-item:link{color:var(--mat-menu-item-label-text-color)}.mat-mdc-menu-item .mat-icon-no-color,.mat-mdc-menu-item .mat-mdc-menu-submenu-icon{color:var(--mat-menu-item-icon-color)}.mat-mdc-menu-item[disabled]{cursor:default;opacity:.38}.mat-mdc-menu-item[disabled]::after{display:block;position:absolute;content:"";top:0;left:0;bottom:0;right:0}.mat-mdc-menu-item .mat-icon{flex-shrink:0;margin-right:var(--mat-menu-item-spacing);height:var(--mat-menu-item-icon-size);width:var(--mat-menu-item-icon-size)}[dir=rtl] .mat-mdc-menu-item{text-align:right}[dir=rtl] .mat-mdc-menu-item .mat-icon{margin-right:0;margin-left:var(--mat-menu-item-spacing)}.mat-mdc-menu-item:not([disabled]):hover{background-color:var(--mat-menu-item-hover-state-layer-color)}.mat-mdc-menu-item:not([disabled]).cdk-program-focused,.mat-mdc-menu-item:not([disabled]).cdk-keyboard-focused,.mat-mdc-menu-item:not([disabled]).mat-mdc-menu-item-highlighted{background-color:var(--mat-menu-item-focus-state-layer-color)}.cdk-high-contrast-active .mat-mdc-menu-item{margin-top:1px}.mat-mdc-menu-submenu-icon{width:var(--mat-menu-item-icon-size);height:10px;fill:currentColor;padding-left:var(--mat-menu-item-spacing)}[dir=rtl] .mat-mdc-menu-submenu-icon{right:auto;padding-right:var(--mat-menu-item-spacing);padding-left:0}.cdk-high-contrast-active .mat-mdc-menu-submenu-icon{fill:CanvasText}.mat-mdc-menu-item .mat-mdc-menu-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}'],encapsulation:2,data:{animation:[N4.transformMenu,N4.fadeInItems]},changeDetection:0})}return n})();const yW=new Bi("mat-menu-scroll-strategy",{providedIn:"root",factory:()=>{const n=pi(fu);return()=>n.scrollStrategies.reposition()}}),d1e={provide:yW,deps:[fu],useFactory:function c1e(n){return()=>n.scrollStrategies.reposition()}},vW=P0({passive:!0});let CC=(()=>{class n{get _deprecatedMatMenuTriggerFor(){return this.menu}set _deprecatedMatMenuTriggerFor(t){this.menu=t}get menu(){return this._menu}set menu(t){t!==this._menu&&(this._menu=t,this._menuCloseSubscription.unsubscribe(),t&&(this._menuCloseSubscription=t.close.subscribe(i=>{this._destroyMenu(i),("click"===i||"tab"===i)&&this._parentMaterialMenu&&this._parentMaterialMenu.closed.emit(i)})),this._menuItemInstance?._setTriggersSubmenu(this.triggersSubmenu()))}constructor(t,i,r,s,o,l,d,u,f){this._overlay=t,this._element=i,this._viewContainerRef=r,this._menuItemInstance=l,this._dir=d,this._focusMonitor=u,this._ngZone=f,this._overlayRef=null,this._menuOpen=!1,this._closingActionsSubscription=rt.EMPTY,this._hoverSubscription=rt.EMPTY,this._menuCloseSubscription=rt.EMPTY,this._changeDetectorRef=pi(Sc),this._handleTouchStart=A=>{M4(A)||(this._openedBy="touch")},this._openedBy=void 0,this.restoreFocus=!0,this.menuOpened=new Ls,this.onMenuOpen=this.menuOpened,this.menuClosed=new Ls,this.onMenuClose=this.menuClosed,this._scrollStrategy=s,this._parentMaterialMenu=o instanceof o1?o:void 0,i.nativeElement.addEventListener("touchstart",this._handleTouchStart,vW)}ngAfterContentInit(){this._handleHover()}ngOnDestroy(){this._overlayRef&&(this._overlayRef.dispose(),this._overlayRef=null),this._element.nativeElement.removeEventListener("touchstart",this._handleTouchStart,vW),this._menuCloseSubscription.unsubscribe(),this._closingActionsSubscription.unsubscribe(),this._hoverSubscription.unsubscribe()}get menuOpen(){return this._menuOpen}get dir(){return this._dir&&"rtl"===this._dir.value?"rtl":"ltr"}triggersSubmenu(){return!!(this._menuItemInstance&&this._parentMaterialMenu&&this.menu)}toggleMenu(){return this._menuOpen?this.closeMenu():this.openMenu()}openMenu(){const t=this.menu;if(this._menuOpen||!t)return;const i=this._createOverlay(t),r=i.getConfig(),s=r.positionStrategy;this._setPosition(t,s),r.hasBackdrop=null==t.hasBackdrop?!this.triggersSubmenu():t.hasBackdrop,i.attach(this._getPortal(t)),t.lazyContent&&t.lazyContent.attach(this.menuData),this._closingActionsSubscription=this._menuClosingActions().subscribe(()=>this.closeMenu()),this._initMenu(t),t instanceof o1&&(t._startAnimation(),t._directDescendantItems.changes.pipe(Ql(t.close)).subscribe(()=>{s.withLockedPosition(!1).reapplyLastPosition(),s.withLockedPosition(!0)}))}closeMenu(){this.menu?.close.emit()}focus(t,i){this._focusMonitor&&t?this._focusMonitor.focusVia(this._element,t,i):this._element.nativeElement.focus(i)}updatePosition(){this._overlayRef?.updatePosition()}_destroyMenu(t){if(!this._overlayRef||!this.menuOpen)return;const i=this.menu;this._closingActionsSubscription.unsubscribe(),this._overlayRef.detach(),this.restoreFocus&&("keydown"===t||!this._openedBy||!this.triggersSubmenu())&&this.focus(this._openedBy),this._openedBy=void 0,i instanceof o1?(i._resetAnimation(),i.lazyContent?i._animationDone.pipe(od(r=>"void"===r.toState),ad(1),Ql(i.lazyContent._attached)).subscribe({next:()=>i.lazyContent.detach(),complete:()=>this._setIsMenuOpen(!1)}):this._setIsMenuOpen(!1)):(this._setIsMenuOpen(!1),i?.lazyContent?.detach())}_initMenu(t){t.parentMenu=this.triggersSubmenu()?this._parentMaterialMenu:void 0,t.direction=this.dir,this._setMenuElevation(t),t.focusFirstItem(this._openedBy||"program"),this._setIsMenuOpen(!0)}_setMenuElevation(t){if(t.setElevation){let i=0,r=t.parentMenu;for(;r;)i++,r=r.parentMenu;t.setElevation(i)}}_setIsMenuOpen(t){t!==this._menuOpen&&(this._menuOpen=t,this._menuOpen?this.menuOpened.emit():this.menuClosed.emit(),this.triggersSubmenu()&&this._menuItemInstance._setHighlighted(t),this._changeDetectorRef.markForCheck())}_createOverlay(t){if(!this._overlayRef){const i=this._getOverlayConfig(t);this._subscribeToPositions(t,i.positionStrategy),this._overlayRef=this._overlay.create(i),this._overlayRef.keydownEvents().subscribe()}return this._overlayRef}_getOverlayConfig(t){return new BO({positionStrategy:this._overlay.position().flexibleConnectedTo(this._element).withLockedPosition().withGrowAfterOpen().withTransformOriginOn(".mat-menu-panel, .mat-mdc-menu-panel"),backdropClass:t.backdropClass||"cdk-overlay-transparent-backdrop",panelClass:t.overlayPanelClass,scrollStrategy:this._scrollStrategy(),direction:this._dir})}_subscribeToPositions(t,i){t.setPositionClasses&&i.positionChanges.subscribe(r=>{const s="start"===r.connectionPair.overlayX?"after":"before",o="top"===r.connectionPair.overlayY?"below":"above";this._ngZone?this._ngZone.run(()=>t.setPositionClasses(s,o)):t.setPositionClasses(s,o)})}_setPosition(t,i){let[r,s]="before"===t.xPosition?["end","start"]:["start","end"],[o,l]="above"===t.yPosition?["bottom","top"]:["top","bottom"],[d,u]=[o,l],[f,A]=[r,s],S=0;if(this.triggersSubmenu()){if(A=r="before"===t.xPosition?"start":"end",s=f="end"===r?"start":"end",this._parentMaterialMenu){if(null==this._parentInnerPadding){const R=this._parentMaterialMenu.items.first;this._parentInnerPadding=R?R._getHostElement().offsetTop:0}S="bottom"===o?this._parentInnerPadding:-this._parentInnerPadding}}else t.overlapTrigger||(d="top"===o?"bottom":"top",u="top"===l?"bottom":"top");i.withPositions([{originX:r,originY:d,overlayX:f,overlayY:o,offsetY:S},{originX:s,originY:d,overlayX:A,overlayY:o,offsetY:S},{originX:r,originY:u,overlayX:f,overlayY:l,offsetY:-S},{originX:s,originY:u,overlayX:A,overlayY:l,offsetY:-S}])}_menuClosingActions(){const t=this._overlayRef.backdropClick(),i=this._overlayRef.detachments();return gm(t,this._parentMaterialMenu?this._parentMaterialMenu.closed:po(),this._parentMaterialMenu?this._parentMaterialMenu._hovered().pipe(od(o=>o!==this._menuItemInstance),od(()=>this._menuOpen)):po(),i)}_handleMousedown(t){C4(t)||(this._openedBy=0===t.button?"mouse":void 0,this.triggersSubmenu()&&t.preventDefault())}_handleKeydown(t){const i=t.keyCode;(13===i||32===i)&&(this._openedBy="keyboard"),this.triggersSubmenu()&&(39===i&&"ltr"===this.dir||37===i&&"rtl"===this.dir)&&(this._openedBy="keyboard",this.openMenu())}_handleClick(t){this.triggersSubmenu()?(t.stopPropagation(),this.openMenu()):this.toggleMenu()}_handleHover(){!this.triggersSubmenu()||!this._parentMaterialMenu||(this._hoverSubscription=this._parentMaterialMenu._hovered().pipe(od(t=>t===this._menuItemInstance&&!t.disabled),WQ(0,xO)).subscribe(()=>{this._openedBy="mouse",this.menu instanceof o1&&this.menu._isAnimating?this.menu._animationDone.pipe(ad(1),WQ(0,xO),Ql(this._parentMaterialMenu._hovered())).subscribe(()=>this.openMenu()):this.openMenu()}))}_getPortal(t){return(!this._portal||this._portal.templateRef!==t.templateRef)&&(this._portal=new PE(t.templateRef,this._viewContainerRef)),this._portal}static#e=this.\u0275fac=function(i){return new(i||n)(Lt(fu),Lt(oo),Lt(fs),Lt(yW),Lt(PO,8),Lt(s1,10),Lt(_m,8),Lt(e1),Lt(io))};static#t=this.\u0275dir=Ft({type:n,selectors:[["","mat-menu-trigger-for",""],["","matMenuTriggerFor",""]],hostAttrs:[1,"mat-mdc-menu-trigger"],hostVars:3,hostBindings:function(i,r){1&i&&Ai("click",function(o){return r._handleClick(o)})("mousedown",function(o){return r._handleMousedown(o)})("keydown",function(o){return r._handleKeydown(o)}),2&i&&sl("aria-haspopup",r.menu?"menu":null)("aria-expanded",r.menuOpen)("aria-controls",r.menuOpen?r.menu.panelId:null)},inputs:{_deprecatedMatMenuTriggerFor:[mi.None,"mat-menu-trigger-for","_deprecatedMatMenuTriggerFor"],menu:[mi.None,"matMenuTriggerFor","menu"],menuData:[mi.None,"matMenuTriggerData","menuData"],restoreFocus:[mi.None,"matMenuTriggerRestoreFocus","restoreFocus"]},outputs:{menuOpened:"menuOpened",onMenuOpen:"onMenuOpen",menuClosed:"menuClosed",onMenuClose:"onMenuClose"},exportAs:["matMenuTrigger"],standalone:!0})}return n})(),u1e=(()=>{class n{static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275mod=vo({type:n});static#n=this.\u0275inj=ra({providers:[d1e],imports:[hS,P4,Qd,NE,LE,Qd]})}return n})();const h1e=["tooltip"],xW=new Bi("mat-tooltip-scroll-strategy",{providedIn:"root",factory:()=>{const n=pi(fu);return()=>n.scrollStrategies.reposition({scrollThrottle:20})}}),p1e={provide:xW,deps:[fu],useFactory:function f1e(n){return()=>n.scrollStrategies.reposition({scrollThrottle:20})}},A1e=new Bi("mat-tooltip-default-options",{providedIn:"root",factory:function m1e(){return{showDelay:0,hideDelay:0,touchendHideDelay:1500}}}),wW="tooltip-panel",CW=P0({passive:!0});let a1=(()=>{class n{get position(){return this._position}set position(t){t!==this._position&&(this._position=t,this._overlayRef&&(this._updatePosition(this._overlayRef),this._tooltipInstance?.show(0),this._overlayRef.updatePosition()))}get positionAtOrigin(){return this._positionAtOrigin}set positionAtOrigin(t){this._positionAtOrigin=EQ(t),this._detach(),this._overlayRef=null}get disabled(){return this._disabled}set disabled(t){this._disabled=EQ(t),this._disabled?this.hide(0):this._setupPointerEnterEventsIfNeeded()}get showDelay(){return this._showDelay}set showDelay(t){this._showDelay=ux(t)}get hideDelay(){return this._hideDelay}set hideDelay(t){this._hideDelay=ux(t),this._tooltipInstance&&(this._tooltipInstance._mouseLeaveHideDelay=this._hideDelay)}get message(){return this._message}set message(t){this._ariaDescriber.removeDescription(this._elementRef.nativeElement,this._message,"tooltip"),this._message=null!=t?String(t).trim():"",!this._message&&this._isTooltipVisible()?this.hide(0):(this._setupPointerEnterEventsIfNeeded(),this._updateTooltipMessage(),this._ngZone.runOutsideAngular(()=>{Promise.resolve().then(()=>{this._ariaDescriber.describe(this._elementRef.nativeElement,this.message,"tooltip")})}))}get tooltipClass(){return this._tooltipClass}set tooltipClass(t){this._tooltipClass=t,this._tooltipInstance&&this._setTooltipClass(this._tooltipClass)}constructor(t,i,r,s,o,l,d,u,f,A,S,R){this._overlay=t,this._elementRef=i,this._scrollDispatcher=r,this._viewContainerRef=s,this._ngZone=o,this._platform=l,this._ariaDescriber=d,this._focusMonitor=u,this._dir=A,this._defaultOptions=S,this._position="below",this._positionAtOrigin=!1,this._disabled=!1,this._viewInitialized=!1,this._pointerExitEventsInitialized=!1,this._tooltipComponent=b1e,this._viewportMargin=8,this._cssClassPrefix="mat-mdc",this.touchGestures="auto",this._message="",this._passiveListeners=[],this._destroyed=new hn,this._scrollStrategy=f,this._document=R,S&&(this._showDelay=S.showDelay,this._hideDelay=S.hideDelay,S.position&&(this.position=S.position),S.positionAtOrigin&&(this.positionAtOrigin=S.positionAtOrigin),S.touchGestures&&(this.touchGestures=S.touchGestures)),A.change.pipe(Ql(this._destroyed)).subscribe(()=>{this._overlayRef&&this._updatePosition(this._overlayRef)}),this._viewportMargin=8}ngAfterViewInit(){this._viewInitialized=!0,this._setupPointerEnterEventsIfNeeded(),this._focusMonitor.monitor(this._elementRef).pipe(Ql(this._destroyed)).subscribe(t=>{t?"keyboard"===t&&this._ngZone.run(()=>this.show()):this._ngZone.run(()=>this.hide(0))})}ngOnDestroy(){const t=this._elementRef.nativeElement;clearTimeout(this._touchstartTimeout),this._overlayRef&&(this._overlayRef.dispose(),this._tooltipInstance=null),this._passiveListeners.forEach(([i,r])=>{t.removeEventListener(i,r,CW)}),this._passiveListeners.length=0,this._destroyed.next(),this._destroyed.complete(),this._ariaDescriber.removeDescription(t,this.message,"tooltip"),this._focusMonitor.stopMonitoring(t)}show(t=this.showDelay,i){if(this.disabled||!this.message||this._isTooltipVisible())return void this._tooltipInstance?._cancelPendingAnimations();const r=this._createOverlay(i);this._detach(),this._portal=this._portal||new t1(this._tooltipComponent,this._viewContainerRef);const s=this._tooltipInstance=r.attach(this._portal).instance;s._triggerElement=this._elementRef.nativeElement,s._mouseLeaveHideDelay=this._hideDelay,s.afterHidden().pipe(Ql(this._destroyed)).subscribe(()=>this._detach()),this._setTooltipClass(this._tooltipClass),this._updateTooltipMessage(),s.show(t)}hide(t=this.hideDelay){const i=this._tooltipInstance;i&&(i.isVisible()?i.hide(t):(i._cancelPendingAnimations(),this._detach()))}toggle(t){this._isTooltipVisible()?this.hide():this.show(void 0,t)}_isTooltipVisible(){return!!this._tooltipInstance&&this._tooltipInstance.isVisible()}_createOverlay(t){if(this._overlayRef){const s=this._overlayRef.getConfig().positionStrategy;if((!this.positionAtOrigin||!t)&&s._origin instanceof oo)return this._overlayRef;this._detach()}const i=this._scrollDispatcher.getAncestorScrollContainers(this._elementRef),r=this._overlay.position().flexibleConnectedTo(this.positionAtOrigin&&t||this._elementRef).withTransformOriginOn(`.${this._cssClassPrefix}-tooltip`).withFlexibleDimensions(!1).withViewportMargin(this._viewportMargin).withScrollableContainers(i);return r.positionChanges.pipe(Ql(this._destroyed)).subscribe(s=>{this._updateCurrentPositionClass(s.connectionPair),this._tooltipInstance&&s.scrollableViewProperties.isOverlayClipped&&this._tooltipInstance.isVisible()&&this._ngZone.run(()=>this.hide(0))}),this._overlayRef=this._overlay.create({direction:this._dir,positionStrategy:r,panelClass:`${this._cssClassPrefix}-${wW}`,scrollStrategy:this._scrollStrategy()}),this._updatePosition(this._overlayRef),this._overlayRef.detachments().pipe(Ql(this._destroyed)).subscribe(()=>this._detach()),this._overlayRef.outsidePointerEvents().pipe(Ql(this._destroyed)).subscribe(()=>this._tooltipInstance?._handleBodyInteraction()),this._overlayRef.keydownEvents().pipe(Ql(this._destroyed)).subscribe(s=>{this._isTooltipVisible()&&27===s.keyCode&&!bC(s)&&(s.preventDefault(),s.stopPropagation(),this._ngZone.run(()=>this.hide(0)))}),this._defaultOptions?.disableTooltipInteractivity&&this._overlayRef.addPanelClass(`${this._cssClassPrefix}-tooltip-panel-non-interactive`),this._overlayRef}_detach(){this._overlayRef&&this._overlayRef.hasAttached()&&this._overlayRef.detach(),this._tooltipInstance=null}_updatePosition(t){const i=t.getConfig().positionStrategy,r=this._getOrigin(),s=this._getOverlayPosition();i.withPositions([this._addOffset({...r.main,...s.main}),this._addOffset({...r.fallback,...s.fallback})])}_addOffset(t){const r=!this._dir||"ltr"==this._dir.value;return"top"===t.originY?t.offsetY=-8:"bottom"===t.originY?t.offsetY=8:"start"===t.originX?t.offsetX=r?-8:8:"end"===t.originX&&(t.offsetX=r?8:-8),t}_getOrigin(){const t=!this._dir||"ltr"==this._dir.value,i=this.position;let r;"above"==i||"below"==i?r={originX:"center",originY:"above"==i?"top":"bottom"}:"before"==i||"left"==i&&t||"right"==i&&!t?r={originX:"start",originY:"center"}:("after"==i||"right"==i&&t||"left"==i&&!t)&&(r={originX:"end",originY:"center"});const{x:s,y:o}=this._invertPosition(r.originX,r.originY);return{main:r,fallback:{originX:s,originY:o}}}_getOverlayPosition(){const t=!this._dir||"ltr"==this._dir.value,i=this.position;let r;"above"==i?r={overlayX:"center",overlayY:"bottom"}:"below"==i?r={overlayX:"center",overlayY:"top"}:"before"==i||"left"==i&&t||"right"==i&&!t?r={overlayX:"end",overlayY:"center"}:("after"==i||"right"==i&&t||"left"==i&&!t)&&(r={overlayX:"start",overlayY:"center"});const{x:s,y:o}=this._invertPosition(r.overlayX,r.overlayY);return{main:r,fallback:{overlayX:s,overlayY:o}}}_updateTooltipMessage(){this._tooltipInstance&&(this._tooltipInstance.message=this.message,this._tooltipInstance._markForCheck(),this._ngZone.onMicrotaskEmpty.pipe(ad(1),Ql(this._destroyed)).subscribe(()=>{this._tooltipInstance&&this._overlayRef.updatePosition()}))}_setTooltipClass(t){this._tooltipInstance&&(this._tooltipInstance.tooltipClass=t,this._tooltipInstance._markForCheck())}_invertPosition(t,i){return"above"===this.position||"below"===this.position?"top"===i?i="bottom":"bottom"===i&&(i="top"):"end"===t?t="start":"start"===t&&(t="end"),{x:t,y:i}}_updateCurrentPositionClass(t){const{overlayY:i,originX:r,originY:s}=t;let o;if(o="center"===i?this._dir&&"rtl"===this._dir.value?"end"===r?"left":"right":"start"===r?"left":"right":"bottom"===i&&"top"===s?"above":"below",o!==this._currentPosition){const l=this._overlayRef;if(l){const d=`${this._cssClassPrefix}-${wW}-`;l.removePanelClass(d+this._currentPosition),l.addPanelClass(d+o)}this._currentPosition=o}}_setupPointerEnterEventsIfNeeded(){this._disabled||!this.message||!this._viewInitialized||this._passiveListeners.length||(this._platformSupportsMouseEvents()?this._passiveListeners.push(["mouseenter",t=>{let i;this._setupPointerExitEventsIfNeeded(),void 0!==t.x&&void 0!==t.y&&(i=t),this.show(void 0,i)}]):"off"!==this.touchGestures&&(this._disableNativeGesturesIfNecessary(),this._passiveListeners.push(["touchstart",t=>{const i=t.targetTouches?.[0],r=i?{x:i.clientX,y:i.clientY}:void 0;this._setupPointerExitEventsIfNeeded(),clearTimeout(this._touchstartTimeout),this._touchstartTimeout=setTimeout(()=>this.show(void 0,r),this._defaultOptions.touchLongPressShowDelay??500)}])),this._addListeners(this._passiveListeners))}_setupPointerExitEventsIfNeeded(){if(this._pointerExitEventsInitialized)return;this._pointerExitEventsInitialized=!0;const t=[];if(this._platformSupportsMouseEvents())t.push(["mouseleave",i=>{const r=i.relatedTarget;(!r||!this._overlayRef?.overlayElement.contains(r))&&this.hide()}],["wheel",i=>this._wheelListener(i)]);else if("off"!==this.touchGestures){this._disableNativeGesturesIfNecessary();const i=()=>{clearTimeout(this._touchstartTimeout),this.hide(this._defaultOptions.touchendHideDelay)};t.push(["touchend",i],["touchcancel",i])}this._addListeners(t),this._passiveListeners.push(...t)}_addListeners(t){t.forEach(([i,r])=>{this._elementRef.nativeElement.addEventListener(i,r,CW)})}_platformSupportsMouseEvents(){return!this._platform.IOS&&!this._platform.ANDROID}_wheelListener(t){if(this._isTooltipVisible()){const i=this._document.elementFromPoint(t.clientX,t.clientY),r=this._elementRef.nativeElement;i!==r&&!r.contains(i)&&this.hide()}}_disableNativeGesturesIfNecessary(){const t=this.touchGestures;if("off"!==t){const i=this._elementRef.nativeElement,r=i.style;("on"===t||"INPUT"!==i.nodeName&&"TEXTAREA"!==i.nodeName)&&(r.userSelect=r.msUserSelect=r.webkitUserSelect=r.MozUserSelect="none"),("on"===t||!i.draggable)&&(r.webkitUserDrag="none"),r.touchAction="none",r.webkitTapHighlightColor="transparent"}}static#e=this.\u0275fac=function(i){return new(i||n)(Lt(fu),Lt(oo),Lt(F4),Lt(fs),Lt(io),Lt(dd),Lt(S0e),Lt(e1),Lt(xW),Lt(_m),Lt(A1e,8),Lt(ba))};static#t=this.\u0275dir=Ft({type:n,selectors:[["","matTooltip",""]],hostAttrs:[1,"mat-mdc-tooltip-trigger"],hostVars:2,hostBindings:function(i,r){2&i&&Ja("mat-mdc-tooltip-disabled",r.disabled)},inputs:{position:[mi.None,"matTooltipPosition","position"],positionAtOrigin:[mi.None,"matTooltipPositionAtOrigin","positionAtOrigin"],disabled:[mi.None,"matTooltipDisabled","disabled"],showDelay:[mi.None,"matTooltipShowDelay","showDelay"],hideDelay:[mi.None,"matTooltipHideDelay","hideDelay"],touchGestures:[mi.None,"matTooltipTouchGestures","touchGestures"],message:[mi.None,"matTooltip","message"],tooltipClass:[mi.None,"matTooltipClass","tooltipClass"]},exportAs:["matTooltip"],standalone:!0})}return n})(),b1e=(()=>{class n{constructor(t,i,r){this._changeDetectorRef=t,this._elementRef=i,this._isMultiline=!1,this._closeOnInteraction=!1,this._isVisible=!1,this._onHide=new hn,this._showAnimation="mat-mdc-tooltip-show",this._hideAnimation="mat-mdc-tooltip-hide",this._animationsDisabled="NoopAnimations"===r}show(t){null!=this._hideTimeoutId&&clearTimeout(this._hideTimeoutId),this._showTimeoutId=setTimeout(()=>{this._toggleVisibility(!0),this._showTimeoutId=void 0},t)}hide(t){null!=this._showTimeoutId&&clearTimeout(this._showTimeoutId),this._hideTimeoutId=setTimeout(()=>{this._toggleVisibility(!1),this._hideTimeoutId=void 0},t)}afterHidden(){return this._onHide}isVisible(){return this._isVisible}ngOnDestroy(){this._cancelPendingAnimations(),this._onHide.complete(),this._triggerElement=null}_handleBodyInteraction(){this._closeOnInteraction&&this.hide(0)}_markForCheck(){this._changeDetectorRef.markForCheck()}_handleMouseLeave({relatedTarget:t}){(!t||!this._triggerElement.contains(t))&&(this.isVisible()?this.hide(this._mouseLeaveHideDelay):this._finalizeAnimation(!1))}_onShow(){this._isMultiline=this._isTooltipMultiline(),this._markForCheck()}_isTooltipMultiline(){const t=this._elementRef.nativeElement.getBoundingClientRect();return t.height>24&&t.width>=200}_handleAnimationEnd({animationName:t}){(t===this._showAnimation||t===this._hideAnimation)&&this._finalizeAnimation(t===this._showAnimation)}_cancelPendingAnimations(){null!=this._showTimeoutId&&clearTimeout(this._showTimeoutId),null!=this._hideTimeoutId&&clearTimeout(this._hideTimeoutId),this._showTimeoutId=this._hideTimeoutId=void 0}_finalizeAnimation(t){t?this._closeOnInteraction=!0:this.isVisible()||this._onHide.next()}_toggleVisibility(t){const i=this._tooltip.nativeElement,r=this._showAnimation,s=this._hideAnimation;if(i.classList.remove(t?s:r),i.classList.add(t?r:s),this._isVisible=t,t&&!this._animationsDisabled&&"function"==typeof getComputedStyle){const o=getComputedStyle(i);("0s"===o.getPropertyValue("animation-duration")||"none"===o.getPropertyValue("animation-name"))&&(this._animationsDisabled=!0)}t&&this._onShow(),this._animationsDisabled&&(i.classList.add("_mat-animation-noopable"),this._finalizeAnimation(t))}static#e=this.\u0275fac=function(i){return new(i||n)(Lt(Sc),Lt(oo),Lt(Od,8))};static#t=this.\u0275cmp=rs({type:n,selectors:[["mat-tooltip-component"]],viewQuery:function(i,r){if(1&i&&_l(h1e,7),2&i){let s;pa(s=ma())&&(r._tooltip=s.first)}},hostAttrs:["aria-hidden","true"],hostVars:2,hostBindings:function(i,r){1&i&&Ai("mouseleave",function(o){return r._handleMouseLeave(o)}),2&i&&$M("zoom",r.isVisible()?1:null)},standalone:!0,features:[yd],decls:4,vars:4,consts:[["tooltip",""],[1,"mdc-tooltip","mdc-tooltip--shown","mat-mdc-tooltip",3,"animationend","ngClass"],[1,"mdc-tooltip__surface","mdc-tooltip__surface-animation"]],template:function(i,r){if(1&i){const s=ta();Gt(0,"div",1,0),Ai("animationend",function(l){return Ci(s),Mi(r._handleAnimationEnd(l))}),Gt(2,"div",2),qi(3),dn()()}2&i&&(Ja("mdc-tooltip--multiline",r._isMultiline),Qn("ngClass",r.tooltipClass),jn(3),tA(r.message))},dependencies:[om],styles:['.mdc-tooltip__surface{word-break:break-all;word-break:var(--mdc-tooltip-word-break, normal);overflow-wrap:anywhere}.mdc-tooltip--showing-transition .mdc-tooltip__surface-animation{transition:opacity 150ms 0ms cubic-bezier(0, 0, 0.2, 1),transform 150ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-tooltip--hide-transition .mdc-tooltip__surface-animation{transition:opacity 75ms 0ms cubic-bezier(0.4, 0, 1, 1)}.mdc-tooltip{position:fixed;display:none;z-index:9}.mdc-tooltip-wrapper--rich{position:relative}.mdc-tooltip--shown,.mdc-tooltip--showing,.mdc-tooltip--hide{display:inline-flex}.mdc-tooltip--shown.mdc-tooltip--rich,.mdc-tooltip--showing.mdc-tooltip--rich,.mdc-tooltip--hide.mdc-tooltip--rich{display:inline-block;left:-320px;position:absolute}.mdc-tooltip__surface{line-height:16px;padding:4px 8px;min-width:40px;max-width:200px;min-height:24px;max-height:40vh;box-sizing:border-box;overflow:hidden;text-align:center}.mdc-tooltip__surface::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none}@media screen and (forced-colors: active){.mdc-tooltip__surface::before{border-color:CanvasText}}.mdc-tooltip--rich .mdc-tooltip__surface{align-items:flex-start;display:flex;flex-direction:column;min-height:24px;min-width:40px;max-width:320px;position:relative}.mdc-tooltip--multiline .mdc-tooltip__surface{text-align:left}[dir=rtl] .mdc-tooltip--multiline .mdc-tooltip__surface,.mdc-tooltip--multiline .mdc-tooltip__surface[dir=rtl]{text-align:right}.mdc-tooltip__surface .mdc-tooltip__title{margin:0 8px}.mdc-tooltip__surface .mdc-tooltip__content{max-width:calc(200px - 2*8px);margin:8px;text-align:left}[dir=rtl] .mdc-tooltip__surface .mdc-tooltip__content,.mdc-tooltip__surface .mdc-tooltip__content[dir=rtl]{text-align:right}.mdc-tooltip--rich .mdc-tooltip__surface .mdc-tooltip__content{max-width:calc(320px - 2*8px);align-self:stretch}.mdc-tooltip__surface .mdc-tooltip__content-link{text-decoration:none}.mdc-tooltip--rich-actions,.mdc-tooltip__content,.mdc-tooltip__title{z-index:1}.mdc-tooltip__surface-animation{opacity:0;transform:scale(0.8);will-change:transform,opacity}.mdc-tooltip--shown .mdc-tooltip__surface-animation{transform:scale(1);opacity:1}.mdc-tooltip--hide .mdc-tooltip__surface-animation{transform:scale(1)}.mdc-tooltip__caret-surface-top,.mdc-tooltip__caret-surface-bottom{position:absolute;height:24px;width:24px;transform:rotate(35deg) skewY(20deg) scaleX(0.9396926208)}.mdc-tooltip__caret-surface-top .mdc-elevation-overlay,.mdc-tooltip__caret-surface-bottom .mdc-elevation-overlay{width:100%;height:100%;top:0;left:0}.mdc-tooltip__caret-surface-bottom{box-shadow:0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);outline:1px solid rgba(0,0,0,0);z-index:-1}@media screen and (forced-colors: active){.mdc-tooltip__caret-surface-bottom{outline-color:CanvasText}}.mat-mdc-tooltip .mdc-tooltip__surface{background-color:var(--mdc-plain-tooltip-container-color)}.mat-mdc-tooltip .mdc-tooltip__surface{border-radius:var(--mdc-plain-tooltip-container-shape)}.mat-mdc-tooltip .mdc-tooltip__caret-surface-top,.mat-mdc-tooltip .mdc-tooltip__caret-surface-bottom{border-radius:var(--mdc-plain-tooltip-container-shape)}.mat-mdc-tooltip .mdc-tooltip__surface{color:var(--mdc-plain-tooltip-supporting-text-color)}.mat-mdc-tooltip .mdc-tooltip__surface{font-family:var(--mdc-plain-tooltip-supporting-text-font);line-height:var(--mdc-plain-tooltip-supporting-text-line-height);font-size:var(--mdc-plain-tooltip-supporting-text-size);font-weight:var(--mdc-plain-tooltip-supporting-text-weight);letter-spacing:var(--mdc-plain-tooltip-supporting-text-tracking)}.mat-mdc-tooltip{position:relative;transform:scale(0)}.mat-mdc-tooltip::before{content:"";top:0;right:0;bottom:0;left:0;z-index:-1;position:absolute}.mat-mdc-tooltip-panel-below .mat-mdc-tooltip::before{top:-8px}.mat-mdc-tooltip-panel-above .mat-mdc-tooltip::before{bottom:-8px}.mat-mdc-tooltip-panel-right .mat-mdc-tooltip::before{left:-8px}.mat-mdc-tooltip-panel-left .mat-mdc-tooltip::before{right:-8px}.mat-mdc-tooltip._mat-animation-noopable{animation:none;transform:scale(1)}.mat-mdc-tooltip-panel.mat-mdc-tooltip-panel-non-interactive{pointer-events:none}@keyframes mat-mdc-tooltip-show{0%{opacity:0;transform:scale(0.8)}100%{opacity:1;transform:scale(1)}}@keyframes mat-mdc-tooltip-hide{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(0.8)}}.mat-mdc-tooltip-show{animation:mat-mdc-tooltip-show 150ms cubic-bezier(0, 0, 0.2, 1) forwards}.mat-mdc-tooltip-hide{animation:mat-mdc-tooltip-hide 75ms cubic-bezier(0.4, 0, 1, 1) forwards}'],encapsulation:2,changeDetection:0})}return n})(),x1e=(()=>{class n{static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275mod=vo({type:n});static#n=this.\u0275inj=ra({providers:[p1e],imports:[GQ,hS,NE,Qd,Qd,LE]})}return n})();const w1e=n=>({disabled:n}),C1e=n=>({"active-icon":n});let qc=(()=>{class n{icon;active;tooltip;disabled=!1;static \u0275fac=function(i){return new(i||n)};static \u0275cmp=rs({type:n,selectors:[["app-menu-toggle"]],inputs:{icon:"icon",active:"active",tooltip:"tooltip",disabled:"disabled"},decls:3,vars:10,consts:[["matTooltipPosition","above","matTooltipTouchGestures","off",1,"menu-toggle",3,"ngClass","matTooltip"],[1,"menu-toggle-icon",3,"ngClass"]],template:function(i,r){1&i&&(Gt(0,"button",0),Fl(),Gt(1,"svg",1),Vr(2,"use"),dn()()),2&i&&(Qn("ngClass",Oh(6,w1e,r.disabled))("matTooltip",r.tooltip),jn(),Qn("ngClass",Oh(8,C1e,r.active)),jn(),Lw("href","assets/icons/",r.icon,".svg#",r.icon,""))},dependencies:[om,a1],styles:["[_nghost-%COMP%]{display:flex;margin:0 .6rem}[_nghost-%COMP%] .menu-toggle[_ngcontent-%COMP%]{display:flex;background:unset;border:none;height:2.5rem;width:2.5rem;min-height:2.5rem;min-width:2.5rem;padding:.65rem;cursor:pointer;align-self:center;transition:all .4s}[_nghost-%COMP%] .menu-toggle-icon[_ngcontent-%COMP%]{width:100%;height:100%}[_nghost-%COMP%] .menu-toggle-icon.active-icon[_ngcontent-%COMP%]{--phoenix-options-icon-path: #00bcd4}[_nghost-%COMP%] .menu-toggle[_ngcontent-%COMP%]:hover{background-color:var(--phoenix-options-icon-bg);border-radius:40%;transition:all .4s}[_nghost-%COMP%] .menu-toggle.disabled[_ngcontent-%COMP%]{cursor:not-allowed;opacity:.4}"]})}return n})();function M1e(n,e){if(1&n){const t=ta();Gt(0,"button",2),Ai("click",function(){const r=Ci(t).$implicit;return Mi(Pr().animatePreset(r))}),qi(1),dn()}if(2&n){const t=e.$implicit;jn(),yl(" ",t," ")}}const MW={"Cavern to ID":{name:"Cavern to ID",positions:[{position:[66388.95051168812,5264.228603228927,-46910.7848593543],duration:1e3},{position:[12834.18729094943,677.7571205763458,135.68755273443463],duration:2e3},{position:[312.02688693297375,25.884223757326,270.10019006776236],duration:3500},{position:[263.3640855132258,19.874838262525053,-318.16541790248885],duration:3e3},{position:[5534.140362338047,234.03507981484574,-2933.619479808285],duration:2e3},{position:[2681.277288705242,646.5795158318147,5628.5248735111745],duration:1e3},{position:[-6062.586283740076,790.5876682946184,1381.1675900848818],duration:1e3},{position:[-1766.7693725879053,1007.1048030984678,-5928.901341784575],duration:1e3},{position:[12814.982506255355,2516.987185037266,-22891.902734328327],duration:1e3}],animateEventAfterInterval:5e3,collisionDuration:6e3}};let RO=(()=>{class n{eventDisplay;animationPresets=MW;animationPresetsKeys=Object.keys(this.animationPresets);isAnimating=!1;constructor(t){this.eventDisplay=t}animatePreset(t){this.setDetectorOpacity(.2),this.eventDisplay.animatePreset(this.animationPresets[t],()=>{this.setDetectorOpacity(1)})}animateCamera(){this.isAnimating||(this.isAnimating=!0,this.eventDisplay.animateThroughEvent([11976,7262,11927],3e3,()=>{this.isAnimating=!1}))}setDetectorOpacity(t){const i=this.eventDisplay.getThreeManager().getSceneManager(),r=i.getObjectByName(el.GEOMETRIES_ID);i.setGeometryOpacity(r,t)}static \u0275fac=function(i){return new(i||n)(Lt(Al))};static \u0275cmp=rs({type:n,selectors:[["app-animate-camera"]],inputs:{animationPresets:"animationPresets"},decls:6,vars:2,consts:[["animationPresets",""],["mat-menu-item","",3,"click",4,"ngFor","ngForOf"],["mat-menu-item","",3,"click"],["tooltip","Preset animations","icon","animate-camera",3,"matMenuTriggerFor"]],template:function(i,r){if(1&i){const s=ta();Gt(0,"mat-menu",null,0),zs(2,M1e,2,1,"button",1),Gt(3,"button",2),Ai("click",function(){return Ci(s),Mi(r.animateCamera())}),qi(4,"Animate camera"),dn()(),Vr(5,"app-menu-toggle",3)}if(2&i){const s=Ga(1);jn(2),Qn("ngForOf",r.animationPresetsKeys),jn(3),Qn("matMenuTriggerFor",s)}},dependencies:[am,o1,s1,CC,qc]})}return n})();const S1e=["*"],E1e=n=>({"ui-menu-hidden":n});let kO=(()=>{class n{hideUIMenu=!1;static \u0275fac=function(i){return new(i||n)};static \u0275cmp=rs({type:n,selectors:[["app-ui-menu-wrapper"]],ngContentSelectors:S1e,decls:6,vars:5,consts:[["id","uiMenu"],["id","hideUIMenu","matTooltipPosition","above",3,"click","matTooltip","ngClass"],["href","assets/icons/expand.svg#expand"],["id","optionsPanel",3,"hidden"]],template:function(i,r){1&i&&(yh(),Gt(0,"div",0)(1,"button",1),Ai("click",function(){return r.hideUIMenu=!r.hideUIMenu}),Fl(),Gt(2,"svg"),Vr(3,"use",2),dn()(),Dh(),Gt(4,"div",3),iu(5),dn()()),2&i&&(jn(),Qn("matTooltip",r.hideUIMenu?"Show toolbar":"Hide toolbar")("ngClass",Oh(3,E1e,r.hideUIMenu)),jn(3),Qn("hidden",r.hideUIMenu))},dependencies:[om,a1],styles:["#uiMenu[_ngcontent-%COMP%]{position:absolute;bottom:1rem;width:100%;box-sizing:border-box;display:flex;flex-direction:column;align-items:center}#optionsPanel[_ngcontent-%COMP%]{display:flex;align-items:center;background:var(--phoenix-background-color-secondary);border:1px solid var(--phoenix-background-color-tertiary);box-shadow:var(--phoenix-box-shadow);border-radius:30px;max-width:95%;padding:.3rem 1rem;overflow-x:scroll;z-index:90}#hideUIMenu[_ngcontent-%COMP%]{background:var(--phoenix-background-color-secondary);height:1.2rem;width:3rem;border:1px solid var(--phoenix-border);border-bottom:none;box-shadow:var(--phoenix-box-shadow);border-top-left-radius:15px;border-top-right-radius:15px;padding:3px}#hideUIMenu[_ngcontent-%COMP%] svg[_ngcontent-%COMP%]{height:100%;width:100%;vertical-align:top;transition:all .3s}#hideUIMenu.ui-menu-hidden[_ngcontent-%COMP%] svg[_ngcontent-%COMP%]{transform:scaleY(-1);transition:all .3s}"]})}return n})();let EW=(()=>{class n{constructor(t,i){this._renderer=t,this._elementRef=i,this.onChange=r=>{},this.onTouched=()=>{}}setProperty(t,i){this._renderer.setProperty(this._elementRef.nativeElement,t,i)}registerOnTouched(t){this.onTouched=t}registerOnChange(t){this.onChange=t}setDisabledState(t){this.setProperty("disabled",t)}static#e=this.\u0275fac=function(i){return new(i||n)(Lt(ZA),Lt(oo))};static#t=this.\u0275dir=Ft({type:n})}return n})(),Ax=(()=>{class n extends EW{static#e=this.\u0275fac=(()=>{let t;return function(r){return(t||(t=Ca(n)))(r||n)}})();static#t=this.\u0275dir=Ft({type:n,features:[Lo]})}return n})();const Of=new Bi(""),D1e={provide:Of,useExisting:jt(()=>FO),multi:!0},B1e=new Bi("");let FO=(()=>{class n extends EW{constructor(t,i,r){super(t,i),this._compositionMode=r,this._composing=!1,null==this._compositionMode&&(this._compositionMode=!function I1e(){const n=My()?My().getUserAgent():"";return/android (\d+)/.test(n.toLowerCase())}())}writeValue(t){this.setProperty("value",t??"")}_handleInput(t){(!this._compositionMode||this._compositionMode&&!this._composing)&&this.onChange(t)}_compositionStart(){this._composing=!0}_compositionEnd(t){this._composing=!1,this._compositionMode&&this.onChange(t)}static#e=this.\u0275fac=function(i){return new(i||n)(Lt(ZA),Lt(oo),Lt(B1e,8))};static#t=this.\u0275dir=Ft({type:n,selectors:[["input","formControlName","",3,"type","checkbox"],["textarea","formControlName",""],["input","formControl","",3,"type","checkbox"],["textarea","formControl",""],["input","ngModel","",3,"type","checkbox"],["textarea","ngModel",""],["","ngDefaultControl",""]],hostBindings:function(i,r){1&i&&Ai("input",function(o){return r._handleInput(o.target.value)})("blur",function(){return r.onTouched()})("compositionstart",function(){return r._compositionStart()})("compositionend",function(o){return r._compositionEnd(o.target.value)})},features:[qo([D1e]),Lo]})}return n})();const pu=new Bi(""),nv=new Bi("");function NW(n){return null!=n}function UW(n){return lS(n)?au(n):n}function zW(n){let e={};return n.forEach(t=>{e=null!=t?{...e,...t}:e}),0===Object.keys(e).length?null:e}function HW(n,e){return e.map(t=>t(n))}function VW(n){return n.map(e=>function R1e(n){return!n.validate}(e)?e:t=>e.validate(t))}function OO(n){return null!=n?function GW(n){if(!n)return null;const e=n.filter(NW);return 0==e.length?null:function(t){return zW(HW(t,e))}}(VW(n)):null}function qW(n){if(!n)return null;const e=n.filter(NW);return 0==e.length?null:function(t){return function SW(...n){const e=i9(n),{args:t,keys:i}=H9(n),r=new Pe(s=>{const{length:o}=t;if(!o)return void s.complete();const l=new Array(o);let d=o,u=o;for(let f=0;f{A||(A=!0,u--),l[f]=S},()=>d--,void 0,()=>{(!d||!A)&&(u||s.next(i?V9(i,l):l),s.complete())}))}});return e?r.pipe(sk(e)):r}(HW(t,e).map(UW)).pipe(bi(zW))}}function LO(n){return null!=n?qW(VW(n)):null}function QW(n,e){return null===n?[e]:Array.isArray(n)?[...n,e]:[n,e]}function NO(n){return n?Array.isArray(n)?n:[n]:[]}function z4(n,e){return Array.isArray(n)?n.includes(e):n===e}function $W(n,e){const t=NO(e);return NO(n).forEach(r=>{z4(t,r)||t.push(r)}),t}function XW(n,e){return NO(e).filter(t=>!z4(n,t))}class YW{constructor(){this._rawValidators=[],this._rawAsyncValidators=[],this._onDestroyCallbacks=[]}get value(){return this.control?this.control.value:null}get valid(){return this.control?this.control.valid:null}get invalid(){return this.control?this.control.invalid:null}get pending(){return this.control?this.control.pending:null}get disabled(){return this.control?this.control.disabled:null}get enabled(){return this.control?this.control.enabled:null}get errors(){return this.control?this.control.errors:null}get pristine(){return this.control?this.control.pristine:null}get dirty(){return this.control?this.control.dirty:null}get touched(){return this.control?this.control.touched:null}get status(){return this.control?this.control.status:null}get untouched(){return this.control?this.control.untouched:null}get statusChanges(){return this.control?this.control.statusChanges:null}get valueChanges(){return this.control?this.control.valueChanges:null}get path(){return null}_setValidators(e){this._rawValidators=e||[],this._composedValidatorFn=OO(this._rawValidators)}_setAsyncValidators(e){this._rawAsyncValidators=e||[],this._composedAsyncValidatorFn=LO(this._rawAsyncValidators)}get validator(){return this._composedValidatorFn||null}get asyncValidator(){return this._composedAsyncValidatorFn||null}_registerOnDestroy(e){this._onDestroyCallbacks.push(e)}_invokeOnDestroyCallbacks(){this._onDestroyCallbacks.forEach(e=>e()),this._onDestroyCallbacks=[]}reset(e=void 0){this.control&&this.control.reset(e)}hasError(e,t){return!!this.control&&this.control.hasError(e,t)}getError(e,t){return this.control?this.control.getError(e,t):null}}class Lf extends YW{get formDirective(){return null}get path(){return null}}class iv extends YW{constructor(){super(...arguments),this._parent=null,this.name=null,this.valueAccessor=null}}class KW{constructor(e){this._cd=e}get isTouched(){return!!this._cd?.control?.touched}get isUntouched(){return!!this._cd?.control?.untouched}get isPristine(){return!!this._cd?.control?.pristine}get isDirty(){return!!this._cd?.control?.dirty}get isValid(){return!!this._cd?.control?.valid}get isInvalid(){return!!this._cd?.control?.invalid}get isPending(){return!!this._cd?.control?.pending}get isSubmitted(){return!!this._cd?.submitted}}let UO=(()=>{class n extends KW{constructor(t){super(t)}static#e=this.\u0275fac=function(i){return new(i||n)(Lt(iv,2))};static#t=this.\u0275dir=Ft({type:n,selectors:[["","formControlName",""],["","ngModel",""],["","formControl",""]],hostVars:14,hostBindings:function(i,r){2&i&&Ja("ng-untouched",r.isUntouched)("ng-touched",r.isTouched)("ng-pristine",r.isPristine)("ng-dirty",r.isDirty)("ng-valid",r.isValid)("ng-invalid",r.isInvalid)("ng-pending",r.isPending)},features:[Lo]})}return n})();const UE="VALID",V4="INVALID",MC="PENDING",zE="DISABLED";function G4(n){return null!=n&&!Array.isArray(n)&&"object"==typeof n}class qO{constructor(e,t){this._pendingDirty=!1,this._hasOwnPendingAsyncValidator=!1,this._pendingTouched=!1,this._onCollectionChange=()=>{},this._parent=null,this.pristine=!0,this.touched=!1,this._onDisabledChange=[],this._assignValidators(e),this._assignAsyncValidators(t)}get validator(){return this._composedValidatorFn}set validator(e){this._rawValidators=this._composedValidatorFn=e}get asyncValidator(){return this._composedAsyncValidatorFn}set asyncValidator(e){this._rawAsyncValidators=this._composedAsyncValidatorFn=e}get parent(){return this._parent}get valid(){return this.status===UE}get invalid(){return this.status===V4}get pending(){return this.status==MC}get disabled(){return this.status===zE}get enabled(){return this.status!==zE}get dirty(){return!this.pristine}get untouched(){return!this.touched}get updateOn(){return this._updateOn?this._updateOn:this.parent?this.parent.updateOn:"change"}setValidators(e){this._assignValidators(e)}setAsyncValidators(e){this._assignAsyncValidators(e)}addValidators(e){this.setValidators($W(e,this._rawValidators))}addAsyncValidators(e){this.setAsyncValidators($W(e,this._rawAsyncValidators))}removeValidators(e){this.setValidators(XW(e,this._rawValidators))}removeAsyncValidators(e){this.setAsyncValidators(XW(e,this._rawAsyncValidators))}hasValidator(e){return z4(this._rawValidators,e)}hasAsyncValidator(e){return z4(this._rawAsyncValidators,e)}clearValidators(){this.validator=null}clearAsyncValidators(){this.asyncValidator=null}markAsTouched(e={}){this.touched=!0,this._parent&&!e.onlySelf&&this._parent.markAsTouched(e)}markAllAsTouched(){this.markAsTouched({onlySelf:!0}),this._forEachChild(e=>e.markAllAsTouched())}markAsUntouched(e={}){this.touched=!1,this._pendingTouched=!1,this._forEachChild(t=>{t.markAsUntouched({onlySelf:!0})}),this._parent&&!e.onlySelf&&this._parent._updateTouched(e)}markAsDirty(e={}){this.pristine=!1,this._parent&&!e.onlySelf&&this._parent.markAsDirty(e)}markAsPristine(e={}){this.pristine=!0,this._pendingDirty=!1,this._forEachChild(t=>{t.markAsPristine({onlySelf:!0})}),this._parent&&!e.onlySelf&&this._parent._updatePristine(e)}markAsPending(e={}){this.status=MC,!1!==e.emitEvent&&this.statusChanges.emit(this.status),this._parent&&!e.onlySelf&&this._parent.markAsPending(e)}disable(e={}){const t=this._parentMarkedDirty(e.onlySelf);this.status=zE,this.errors=null,this._forEachChild(i=>{i.disable({...e,onlySelf:!0})}),this._updateValue(),!1!==e.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors({...e,skipPristineCheck:t}),this._onDisabledChange.forEach(i=>i(!0))}enable(e={}){const t=this._parentMarkedDirty(e.onlySelf);this.status=UE,this._forEachChild(i=>{i.enable({...e,onlySelf:!0})}),this.updateValueAndValidity({onlySelf:!0,emitEvent:e.emitEvent}),this._updateAncestors({...e,skipPristineCheck:t}),this._onDisabledChange.forEach(i=>i(!1))}_updateAncestors(e){this._parent&&!e.onlySelf&&(this._parent.updateValueAndValidity(e),e.skipPristineCheck||this._parent._updatePristine(),this._parent._updateTouched())}setParent(e){this._parent=e}getRawValue(){return this.value}updateValueAndValidity(e={}){this._setInitialStatus(),this._updateValue(),this.enabled&&(this._cancelExistingSubscription(),this.errors=this._runValidator(),this.status=this._calculateStatus(),(this.status===UE||this.status===MC)&&this._runAsyncValidator(e.emitEvent)),!1!==e.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._parent&&!e.onlySelf&&this._parent.updateValueAndValidity(e)}_updateTreeValidity(e={emitEvent:!0}){this._forEachChild(t=>t._updateTreeValidity(e)),this.updateValueAndValidity({onlySelf:!0,emitEvent:e.emitEvent})}_setInitialStatus(){this.status=this._allControlsDisabled()?zE:UE}_runValidator(){return this.validator?this.validator(this):null}_runAsyncValidator(e){if(this.asyncValidator){this.status=MC,this._hasOwnPendingAsyncValidator=!0;const t=UW(this.asyncValidator(this));this._asyncValidationSubscription=t.subscribe(i=>{this._hasOwnPendingAsyncValidator=!1,this.setErrors(i,{emitEvent:e})})}}_cancelExistingSubscription(){this._asyncValidationSubscription&&(this._asyncValidationSubscription.unsubscribe(),this._hasOwnPendingAsyncValidator=!1)}setErrors(e,t={}){this.errors=e,this._updateControlsErrors(!1!==t.emitEvent)}get(e){let t=e;return null==t||(Array.isArray(t)||(t=t.split(".")),0===t.length)?null:t.reduce((i,r)=>i&&i._find(r),this)}getError(e,t){const i=t?this.get(t):this;return i&&i.errors?i.errors[e]:null}hasError(e,t){return!!this.getError(e,t)}get root(){let e=this;for(;e._parent;)e=e._parent;return e}_updateControlsErrors(e){this.status=this._calculateStatus(),e&&this.statusChanges.emit(this.status),this._parent&&this._parent._updateControlsErrors(e)}_initObservables(){this.valueChanges=new Ls,this.statusChanges=new Ls}_calculateStatus(){return this._allControlsDisabled()?zE:this.errors?V4:this._hasOwnPendingAsyncValidator||this._anyControlsHaveStatus(MC)?MC:this._anyControlsHaveStatus(V4)?V4:UE}_anyControlsHaveStatus(e){return this._anyControls(t=>t.status===e)}_anyControlsDirty(){return this._anyControls(e=>e.dirty)}_anyControlsTouched(){return this._anyControls(e=>e.touched)}_updatePristine(e={}){this.pristine=!this._anyControlsDirty(),this._parent&&!e.onlySelf&&this._parent._updatePristine(e)}_updateTouched(e={}){this.touched=this._anyControlsTouched(),this._parent&&!e.onlySelf&&this._parent._updateTouched(e)}_registerOnCollectionChange(e){this._onCollectionChange=e}_setUpdateStrategy(e){G4(e)&&null!=e.updateOn&&(this._updateOn=e.updateOn)}_parentMarkedDirty(e){return!e&&!(!this._parent||!this._parent.dirty)&&!this._parent._anyControlsDirty()}_find(e){return null}_assignValidators(e){this._rawValidators=Array.isArray(e)?e.slice():e,this._composedValidatorFn=function N1e(n){return Array.isArray(n)?OO(n):n||null}(this._rawValidators)}_assignAsyncValidators(e){this._rawAsyncValidators=Array.isArray(e)?e.slice():e,this._composedAsyncValidatorFn=function U1e(n){return Array.isArray(n)?LO(n):n||null}(this._rawAsyncValidators)}}const SC=new Bi("CallSetDisabledState",{providedIn:"root",factory:()=>q4}),q4="always";function HE(n,e,t=q4){(function WO(n,e){const t=function WW(n){return n._rawValidators}(n);null!==e.validator?n.setValidators(QW(t,e.validator)):"function"==typeof t&&n.setValidators([t]);const i=function jW(n){return n._rawAsyncValidators}(n);null!==e.asyncValidator?n.setAsyncValidators(QW(i,e.asyncValidator)):"function"==typeof i&&n.setAsyncValidators([i]);const r=()=>n.updateValueAndValidity();j4(e._rawValidators,r),j4(e._rawAsyncValidators,r)})(n,e),e.valueAccessor.writeValue(n.value),(n.disabled||"always"===t)&&e.valueAccessor.setDisabledState?.(n.disabled),function V1e(n,e){e.valueAccessor.registerOnChange(t=>{n._pendingValue=t,n._pendingChange=!0,n._pendingDirty=!0,"change"===n.updateOn&&tj(n,e)})}(n,e),function q1e(n,e){const t=(i,r)=>{e.valueAccessor.writeValue(i),r&&e.viewToModelUpdate(i)};n.registerOnChange(t),e._registerOnDestroy(()=>{n._unregisterOnChange(t)})}(n,e),function G1e(n,e){e.valueAccessor.registerOnTouched(()=>{n._pendingTouched=!0,"blur"===n.updateOn&&n._pendingChange&&tj(n,e),"submit"!==n.updateOn&&n.markAsTouched()})}(n,e),function H1e(n,e){if(e.valueAccessor.setDisabledState){const t=i=>{e.valueAccessor.setDisabledState(i)};n.registerOnDisabledChange(t),e._registerOnDestroy(()=>{n._unregisterOnDisabledChange(t)})}}(n,e)}function j4(n,e){n.forEach(t=>{t.registerOnValidatorChange&&t.registerOnValidatorChange(e)})}function tj(n,e){n._pendingDirty&&n.markAsDirty(),n.setValue(n._pendingValue,{emitModelToViewChange:!1}),e.viewToModelUpdate(n._pendingValue),n._pendingChange=!1}function rj(n,e){const t=n.indexOf(e);t>-1&&n.splice(t,1)}function sj(n){return"object"==typeof n&&null!==n&&2===Object.keys(n).length&&"value"in n&&"disabled"in n}Promise.resolve();const oj=class extends qO{constructor(e=null,t,i){super(function VO(n){return(G4(n)?n.validators:n)||null}(t),function GO(n,e){return(G4(e)?e.asyncValidators:n)||null}(i,t)),this.defaultValue=null,this._onChange=[],this._pendingChange=!1,this._applyFormState(e),this._setUpdateStrategy(t),this._initObservables(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator}),G4(t)&&(t.nonNullable||t.initialValueIsDefault)&&(this.defaultValue=sj(e)?e.value:e)}setValue(e,t={}){this.value=this._pendingValue=e,this._onChange.length&&!1!==t.emitModelToViewChange&&this._onChange.forEach(i=>i(this.value,!1!==t.emitViewToModelChange)),this.updateValueAndValidity(t)}patchValue(e,t={}){this.setValue(e,t)}reset(e=this.defaultValue,t={}){this._applyFormState(e),this.markAsPristine(t),this.markAsUntouched(t),this.setValue(this.value,t),this._pendingChange=!1}_updateValue(){}_anyControls(e){return!1}_allControlsDisabled(){return this.disabled}registerOnChange(e){this._onChange.push(e)}_unregisterOnChange(e){rj(this._onChange,e)}registerOnDisabledChange(e){this._onDisabledChange.push(e)}_unregisterOnDisabledChange(e){rj(this._onDisabledChange,e)}_forEachChild(e){}_syncPendingControls(){return!("submit"!==this.updateOn||(this._pendingDirty&&this.markAsDirty(),this._pendingTouched&&this.markAsTouched(),!this._pendingChange)||(this.setValue(this._pendingValue,{onlySelf:!0,emitModelToViewChange:!1}),0))}_applyFormState(e){sj(e)?(this.value=this._pendingValue=e.value,e.disabled?this.disable({onlySelf:!0,emitEvent:!1}):this.enable({onlySelf:!0,emitEvent:!1})):this.value=this._pendingValue=e}},Z1e={provide:iv,useExisting:jt(()=>X4)},cj=Promise.resolve();let X4=(()=>{class n extends iv{constructor(t,i,r,s,o,l){super(),this._changeDetectorRef=o,this.callSetDisabledState=l,this.control=new oj,this._registered=!1,this.name="",this.update=new Ls,this._parent=t,this._setValidators(i),this._setAsyncValidators(r),this.valueAccessor=function XO(n,e){if(!e)return null;let t,i,r;return Array.isArray(e),e.forEach(s=>{s.constructor===FO?t=s:function j1e(n){return Object.getPrototypeOf(n.constructor)===Ax}(s)?i=s:r=s}),r||i||t||null}(0,s)}ngOnChanges(t){if(this._checkForErrors(),!this._registered||"name"in t){if(this._registered&&(this._checkName(),this.formDirective)){const i=t.name.previousValue;this.formDirective.removeControl({name:i,path:this._getPath(i)})}this._setUpControl()}"isDisabled"in t&&this._updateDisabled(t),function $O(n,e){if(!n.hasOwnProperty("model"))return!1;const t=n.model;return!!t.isFirstChange()||!Object.is(e,t.currentValue)}(t,this.viewModel)&&(this._updateValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}get path(){return this._getPath(this.name)}get formDirective(){return this._parent?this._parent.formDirective:null}viewToModelUpdate(t){this.viewModel=t,this.update.emit(t)}_setUpControl(){this._setUpdateStrategy(),this._isStandalone()?this._setUpStandalone():this.formDirective.addControl(this),this._registered=!0}_setUpdateStrategy(){this.options&&null!=this.options.updateOn&&(this.control._updateOn=this.options.updateOn)}_isStandalone(){return!this._parent||!(!this.options||!this.options.standalone)}_setUpStandalone(){HE(this.control,this,this.callSetDisabledState),this.control.updateValueAndValidity({emitEvent:!1})}_checkForErrors(){this._isStandalone()||this._checkParentType(),this._checkName()}_checkParentType(){}_checkName(){this.options&&this.options.name&&(this.name=this.options.name),this._isStandalone()}_updateValue(t){cj.then(()=>{this.control.setValue(t,{emitViewToModelChange:!1}),this._changeDetectorRef?.markForCheck()})}_updateDisabled(t){const i=t.isDisabled.currentValue,r=0!==i&&_o(i);cj.then(()=>{r&&!this.control.disabled?this.control.disable():!r&&this.control.disabled&&this.control.enable(),this._changeDetectorRef?.markForCheck()})}_getPath(t){return this._parent?function Q4(n,e){return[...e.path,n]}(t,this._parent):[t]}static#e=this.\u0275fac=function(i){return new(i||n)(Lt(Lf,9),Lt(pu,10),Lt(nv,10),Lt(Of,10),Lt(Sc,8),Lt(SC,8))};static#t=this.\u0275dir=Ft({type:n,selectors:[["","ngModel","",3,"formControlName","",3,"formControl",""]],inputs:{name:"name",isDisabled:[mi.None,"disabled","isDisabled"],model:[mi.None,"ngModel","model"],options:[mi.None,"ngModelOptions","options"]},outputs:{update:"ngModelChange"},exportAs:["ngModel"],features:[qo([Z1e]),Lo,kl]})}return n})();const cye={provide:Of,useExisting:jt(()=>eL),multi:!0};function gj(n,e){return null==n?`${e}`:(e&&"object"==typeof e&&(e="Object"),`${n}: ${e}`.slice(0,50))}let eL=(()=>{class n extends Ax{constructor(){super(...arguments),this._optionMap=new Map,this._idCounter=0,this._compareWith=Object.is}set compareWith(t){this._compareWith=t}writeValue(t){this.value=t;const r=gj(this._getOptionId(t),t);this.setProperty("value",r)}registerOnChange(t){this.onChange=i=>{this.value=this._getOptionValue(i),t(this.value)}}_registerOption(){return(this._idCounter++).toString()}_getOptionId(t){for(const i of this._optionMap.keys())if(this._compareWith(this._optionMap.get(i),t))return i;return null}_getOptionValue(t){const i=function dye(n){return n.split(":")[0]}(t);return this._optionMap.has(i)?this._optionMap.get(i):t}static#e=this.\u0275fac=(()=>{let t;return function(r){return(t||(t=Ca(n)))(r||n)}})();static#t=this.\u0275dir=Ft({type:n,selectors:[["select","formControlName","",3,"multiple",""],["select","formControl","",3,"multiple",""],["select","ngModel","",3,"multiple",""]],hostBindings:function(i,r){1&i&&Ai("change",function(o){return r.onChange(o.target.value)})("blur",function(){return r.onTouched()})},inputs:{compareWith:"compareWith"},features:[qo([cye]),Lo]})}return n})(),EC=(()=>{class n{constructor(t,i,r){this._element=t,this._renderer=i,this._select=r,this._select&&(this.id=this._select._registerOption())}set ngValue(t){null!=this._select&&(this._select._optionMap.set(this.id,t),this._setElementValue(gj(this.id,t)),this._select.writeValue(this._select.value))}set value(t){this._setElementValue(t),this._select&&this._select.writeValue(this._select.value)}_setElementValue(t){this._renderer.setProperty(this._element.nativeElement,"value",t)}ngOnDestroy(){this._select&&(this._select._optionMap.delete(this.id),this._select.writeValue(this._select.value))}static#e=this.\u0275fac=function(i){return new(i||n)(Lt(oo),Lt(ZA),Lt(eL,9))};static#t=this.\u0275dir=Ft({type:n,selectors:[["option"]],inputs:{ngValue:"ngValue",value:"value"}})}return n})();const uye={provide:Of,useExisting:jt(()=>tL),multi:!0};function _j(n,e){return null==n?`${e}`:("string"==typeof e&&(e=`'${e}'`),e&&"object"==typeof e&&(e="Object"),`${n}: ${e}`.slice(0,50))}let tL=(()=>{class n extends Ax{constructor(){super(...arguments),this._optionMap=new Map,this._idCounter=0,this._compareWith=Object.is}set compareWith(t){this._compareWith=t}writeValue(t){let i;if(this.value=t,Array.isArray(t)){const r=t.map(s=>this._getOptionId(s));i=(s,o)=>{s._setSelected(r.indexOf(o.toString())>-1)}}else i=(r,s)=>{r._setSelected(!1)};this._optionMap.forEach(i)}registerOnChange(t){this.onChange=i=>{const r=[],s=i.selectedOptions;if(void 0!==s){const o=s;for(let l=0;l{let t;return function(r){return(t||(t=Ca(n)))(r||n)}})();static#t=this.\u0275dir=Ft({type:n,selectors:[["select","multiple","","formControlName",""],["select","multiple","","formControl",""],["select","multiple","","ngModel",""]],hostBindings:function(i,r){1&i&&Ai("change",function(o){return r.onChange(o.target)})("blur",function(){return r.onTouched()})},inputs:{compareWith:"compareWith"},features:[qo([uye]),Lo]})}return n})(),TC=(()=>{class n{constructor(t,i,r){this._element=t,this._renderer=i,this._select=r,this._select&&(this.id=this._select._registerOption(this))}set ngValue(t){null!=this._select&&(this._value=t,this._setElementValue(_j(this.id,t)),this._select.writeValue(this._select.value))}set value(t){this._select?(this._value=t,this._setElementValue(_j(this.id,t)),this._select.writeValue(this._select.value)):this._setElementValue(t)}_setElementValue(t){this._renderer.setProperty(this._element.nativeElement,"value",t)}_setSelected(t){this._renderer.setProperty(this._element.nativeElement,"selected",t)}ngOnDestroy(){this._select&&(this._select._optionMap.delete(this.id),this._select.writeValue(this._select.value))}static#e=this.\u0275fac=function(i){return new(i||n)(Lt(oo),Lt(ZA),Lt(tL,9))};static#t=this.\u0275dir=Ft({type:n,selectors:[["option"]],inputs:{ngValue:"ngValue",value:"value"}})}return n})(),bye=(()=>{class n{static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275mod=vo({type:n});static#n=this.\u0275inj=ra({})}return n})(),wye=(()=>{class n{static withConfig(t){return{ngModule:n,providers:[{provide:SC,useValue:t.callSetDisabledState??q4}]}}static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275mod=vo({type:n});static#n=this.\u0275inj=ra({imports:[bye]})}return n})();const Cye=["input"],Mye=["label"],Sye=["*"],Eye=new Bi("mat-checkbox-default-options",{providedIn:"root",factory:Ej});function Ej(){return{color:"accent",clickAction:"check-indeterminate"}}var Qh=function(n){return n[n.Init=0]="Init",n[n.Checked=1]="Checked",n[n.Unchecked=2]="Unchecked",n[n.Indeterminate=3]="Indeterminate",n}(Qh||{});const Tye={provide:Of,useExisting:jt(()=>rv),multi:!0};class Dye{}let Iye=0;const Tj=Ej();let rv=(()=>{class n{focus(){this._inputElement.nativeElement.focus()}_createChangeEvent(t){const i=new Dye;return i.source=this,i.checked=t,i}_getAnimationTargetElement(){return this._inputElement?.nativeElement}get inputId(){return`${this.id||this._uniqueId}-input`}constructor(t,i,r,s,o,l){this._elementRef=t,this._changeDetectorRef=i,this._ngZone=r,this._animationMode=o,this._options=l,this._animationClasses={uncheckedToChecked:"mdc-checkbox--anim-unchecked-checked",uncheckedToIndeterminate:"mdc-checkbox--anim-unchecked-indeterminate",checkedToUnchecked:"mdc-checkbox--anim-checked-unchecked",checkedToIndeterminate:"mdc-checkbox--anim-checked-indeterminate",indeterminateToChecked:"mdc-checkbox--anim-indeterminate-checked",indeterminateToUnchecked:"mdc-checkbox--anim-indeterminate-unchecked"},this.ariaLabel="",this.ariaLabelledby=null,this.labelPosition="after",this.name=null,this.change=new Ls,this.indeterminateChange=new Ls,this._onTouched=()=>{},this._currentAnimationClass="",this._currentCheckState=Qh.Init,this._controlValueAccessorChangeFn=()=>{},this._validatorChangeFn=()=>{},this._checked=!1,this._disabled=!1,this._indeterminate=!1,this._options=this._options||Tj,this.color=this._options.color||Tj.color,this.tabIndex=parseInt(s)||0,this.id=this._uniqueId="mat-mdc-checkbox-"+ ++Iye}ngOnChanges(t){t.required&&this._validatorChangeFn()}ngAfterViewInit(){this._syncIndeterminate(this._indeterminate)}get checked(){return this._checked}set checked(t){t!=this.checked&&(this._checked=t,this._changeDetectorRef.markForCheck())}get disabled(){return this._disabled}set disabled(t){t!==this.disabled&&(this._disabled=t,this._changeDetectorRef.markForCheck())}get indeterminate(){return this._indeterminate}set indeterminate(t){const i=t!=this._indeterminate;this._indeterminate=t,i&&(this._transitionCheckState(this._indeterminate?Qh.Indeterminate:this.checked?Qh.Checked:Qh.Unchecked),this.indeterminateChange.emit(this._indeterminate)),this._syncIndeterminate(this._indeterminate)}_isRippleDisabled(){return this.disableRipple||this.disabled}_onLabelTextChange(){this._changeDetectorRef.detectChanges()}writeValue(t){this.checked=!!t}registerOnChange(t){this._controlValueAccessorChangeFn=t}registerOnTouched(t){this._onTouched=t}setDisabledState(t){this.disabled=t}validate(t){return this.required&&!0!==t.value?{required:!0}:null}registerOnValidatorChange(t){this._validatorChangeFn=t}_transitionCheckState(t){let i=this._currentCheckState,r=this._getAnimationTargetElement();if(i!==t&&r&&(this._currentAnimationClass&&r.classList.remove(this._currentAnimationClass),this._currentAnimationClass=this._getAnimationClassForCheckStateTransition(i,t),this._currentCheckState=t,this._currentAnimationClass.length>0)){r.classList.add(this._currentAnimationClass);const s=this._currentAnimationClass;this._ngZone.runOutsideAngular(()=>{setTimeout(()=>{r.classList.remove(s)},1e3)})}}_emitChangeEvent(){this._controlValueAccessorChangeFn(this.checked),this.change.emit(this._createChangeEvent(this.checked)),this._inputElement&&(this._inputElement.nativeElement.checked=this.checked)}toggle(){this.checked=!this.checked,this._controlValueAccessorChangeFn(this.checked)}_handleInputClick(){const t=this._options?.clickAction;this.disabled||"noop"===t?!this.disabled&&"noop"===t&&(this._inputElement.nativeElement.checked=this.checked,this._inputElement.nativeElement.indeterminate=this.indeterminate):(this.indeterminate&&"check"!==t&&Promise.resolve().then(()=>{this._indeterminate=!1,this.indeterminateChange.emit(this._indeterminate)}),this._checked=!this._checked,this._transitionCheckState(this._checked?Qh.Checked:Qh.Unchecked),this._emitChangeEvent())}_onInteractionEvent(t){t.stopPropagation()}_onBlur(){Promise.resolve().then(()=>{this._onTouched(),this._changeDetectorRef.markForCheck()})}_getAnimationClassForCheckStateTransition(t,i){if("NoopAnimations"===this._animationMode)return"";switch(t){case Qh.Init:if(i===Qh.Checked)return this._animationClasses.uncheckedToChecked;if(i==Qh.Indeterminate)return this._checked?this._animationClasses.checkedToIndeterminate:this._animationClasses.uncheckedToIndeterminate;break;case Qh.Unchecked:return i===Qh.Checked?this._animationClasses.uncheckedToChecked:this._animationClasses.uncheckedToIndeterminate;case Qh.Checked:return i===Qh.Unchecked?this._animationClasses.checkedToUnchecked:this._animationClasses.checkedToIndeterminate;case Qh.Indeterminate:return i===Qh.Checked?this._animationClasses.indeterminateToChecked:this._animationClasses.indeterminateToUnchecked}return""}_syncIndeterminate(t){const i=this._inputElement;i&&(i.nativeElement.indeterminate=t)}_onInputClick(){this._handleInputClick()}_onTouchTargetClick(){this._handleInputClick(),this.disabled||this._inputElement.nativeElement.focus()}_preventBubblingFromLabel(t){t.target&&this._labelElement.nativeElement.contains(t.target)&&t.stopPropagation()}static#e=this.\u0275fac=function(i){return new(i||n)(Lt(oo),Lt(Sc),Lt(io),bu("tabindex"),Lt(Od,8),Lt(Eye,8))};static#t=this.\u0275cmp=rs({type:n,selectors:[["mat-checkbox"]],viewQuery:function(i,r){if(1&i&&(_l(Cye,5),_l(Mye,5),_l(k0,5)),2&i){let s;pa(s=ma())&&(r._inputElement=s.first),pa(s=ma())&&(r._labelElement=s.first),pa(s=ma())&&(r.ripple=s.first)}},hostAttrs:[1,"mat-mdc-checkbox"],hostVars:14,hostBindings:function(i,r){2&i&&(zw("id",r.id),sl("tabindex",null)("aria-label",null)("aria-labelledby",null),P_(r.color?"mat-"+r.color:"mat-accent"),Ja("_mat-animation-noopable","NoopAnimations"===r._animationMode)("mdc-checkbox--disabled",r.disabled)("mat-mdc-checkbox-disabled",r.disabled)("mat-mdc-checkbox-checked",r.checked))},inputs:{ariaLabel:[mi.None,"aria-label","ariaLabel"],ariaLabelledby:[mi.None,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[mi.None,"aria-describedby","ariaDescribedby"],id:"id",required:[mi.HasDecoratorInputTransform,"required","required",_o],labelPosition:"labelPosition",name:"name",value:"value",disableRipple:[mi.HasDecoratorInputTransform,"disableRipple","disableRipple",_o],tabIndex:[mi.HasDecoratorInputTransform,"tabIndex","tabIndex",t=>null==t?void 0:ru(t)],color:"color",checked:[mi.HasDecoratorInputTransform,"checked","checked",_o],disabled:[mi.HasDecoratorInputTransform,"disabled","disabled",_o],indeterminate:[mi.HasDecoratorInputTransform,"indeterminate","indeterminate",_o]},outputs:{change:"change",indeterminateChange:"indeterminateChange"},exportAs:["matCheckbox"],standalone:!0,features:[qo([Tye,{provide:pu,useExisting:n,multi:!0}]),ql,kl,yd],ngContentSelectors:Sye,decls:15,vars:19,consts:[["checkbox",""],["input",""],["label",""],["mat-internal-form-field","",3,"click","labelPosition"],[1,"mdc-checkbox"],[1,"mat-mdc-checkbox-touch-target",3,"click"],["type","checkbox",1,"mdc-checkbox__native-control",3,"blur","click","change","checked","indeterminate","disabled","id","required","tabIndex"],[1,"mdc-checkbox__ripple"],[1,"mdc-checkbox__background"],["focusable","false","viewBox","0 0 24 24","aria-hidden","true",1,"mdc-checkbox__checkmark"],["fill","none","d","M1.73,12.91 8.1,19.28 22.79,4.59",1,"mdc-checkbox__checkmark-path"],[1,"mdc-checkbox__mixedmark"],["mat-ripple","",1,"mat-mdc-checkbox-ripple","mat-mdc-focus-indicator",3,"matRippleTrigger","matRippleDisabled","matRippleCentered"],[1,"mdc-label",3,"for"]],template:function(i,r){if(1&i){const s=ta();yh(),Gt(0,"div",3),Ai("click",function(l){return Ci(s),Mi(r._preventBubblingFromLabel(l))}),Gt(1,"div",4,0)(3,"div",5),Ai("click",function(){return Ci(s),Mi(r._onTouchTargetClick())}),dn(),Gt(4,"input",6,1),Ai("blur",function(){return Ci(s),Mi(r._onBlur())})("click",function(){return Ci(s),Mi(r._onInputClick())})("change",function(l){return Ci(s),Mi(r._onInteractionEvent(l))}),dn(),Vr(6,"div",7),Gt(7,"div",8),Fl(),Gt(8,"svg",9),Vr(9,"path",10),dn(),Dh(),Vr(10,"div",11),dn(),Vr(11,"div",12),dn(),Gt(12,"label",13,2),iu(14),dn()()}if(2&i){const s=Ga(2);Qn("labelPosition",r.labelPosition),jn(4),Ja("mdc-checkbox--selected",r.checked),Qn("checked",r.checked)("indeterminate",r.indeterminate)("disabled",r.disabled)("id",r.inputId)("required",r.required)("tabIndex",r.disabled?-1:r.tabIndex),sl("aria-label",r.ariaLabel||null)("aria-labelledby",r.ariaLabelledby)("aria-describedby",r.ariaDescribedby)("aria-checked",r.indeterminate?"mixed":null)("name",r.name)("value",r.value),jn(7),Qn("matRippleTrigger",s)("matRippleDisabled",r.disableRipple||r.disabled)("matRippleCentered",!0),jn(),Qn("for",r.inputId)}},dependencies:[k0,SO],styles:['.mdc-touch-target-wrapper{display:inline}@keyframes mdc-checkbox-unchecked-checked-checkmark-path{0%,50%{stroke-dashoffset:29.7833385}50%{animation-timing-function:cubic-bezier(0, 0, 0.2, 1)}100%{stroke-dashoffset:0}}@keyframes mdc-checkbox-unchecked-indeterminate-mixedmark{0%,68.2%{transform:scaleX(0)}68.2%{animation-timing-function:cubic-bezier(0, 0, 0, 1)}100%{transform:scaleX(1)}}@keyframes mdc-checkbox-checked-unchecked-checkmark-path{from{animation-timing-function:cubic-bezier(0.4, 0, 1, 1);opacity:1;stroke-dashoffset:0}to{opacity:0;stroke-dashoffset:-29.7833385}}@keyframes mdc-checkbox-checked-indeterminate-checkmark{from{animation-timing-function:cubic-bezier(0, 0, 0.2, 1);transform:rotate(0deg);opacity:1}to{transform:rotate(45deg);opacity:0}}@keyframes mdc-checkbox-indeterminate-checked-checkmark{from{animation-timing-function:cubic-bezier(0.14, 0, 0, 1);transform:rotate(45deg);opacity:0}to{transform:rotate(360deg);opacity:1}}@keyframes mdc-checkbox-checked-indeterminate-mixedmark{from{animation-timing-function:mdc-animation-deceleration-curve-timing-function;transform:rotate(-45deg);opacity:0}to{transform:rotate(0deg);opacity:1}}@keyframes mdc-checkbox-indeterminate-checked-mixedmark{from{animation-timing-function:cubic-bezier(0.14, 0, 0, 1);transform:rotate(0deg);opacity:1}to{transform:rotate(315deg);opacity:0}}@keyframes mdc-checkbox-indeterminate-unchecked-mixedmark{0%{animation-timing-function:linear;transform:scaleX(1);opacity:1}32.8%,100%{transform:scaleX(0);opacity:0}}.mdc-checkbox{display:inline-block;position:relative;flex:0 0 18px;box-sizing:content-box;width:18px;height:18px;line-height:0;white-space:nowrap;cursor:pointer;vertical-align:bottom}.mdc-checkbox[hidden]{display:none}.mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__focus-ring,.mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__focus-ring{pointer-events:none;border:2px solid rgba(0,0,0,0);border-radius:6px;box-sizing:content-box;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:100%;width:100%}@media screen and (forced-colors: active){.mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__focus-ring,.mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__focus-ring{border-color:CanvasText}}.mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__focus-ring::after,.mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__focus-ring::after{content:"";border:2px solid rgba(0,0,0,0);border-radius:8px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(100% + 4px);width:calc(100% + 4px)}@media screen and (forced-colors: active){.mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__focus-ring::after,.mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__focus-ring::after{border-color:CanvasText}}@media all and (-ms-high-contrast: none){.mdc-checkbox .mdc-checkbox__focus-ring{display:none}}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mdc-checkbox__mixedmark{margin:0 1px}}.mdc-checkbox--disabled{cursor:default;pointer-events:none}.mdc-checkbox__background{display:inline-flex;position:absolute;align-items:center;justify-content:center;box-sizing:border-box;width:18px;height:18px;border:2px solid currentColor;border-radius:2px;background-color:rgba(0,0,0,0);pointer-events:none;will-change:background-color,border-color;transition:background-color 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1),border-color 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-checkbox__checkmark{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;opacity:0;transition:opacity 180ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-checkbox--upgraded .mdc-checkbox__checkmark{opacity:1}.mdc-checkbox__checkmark-path{transition:stroke-dashoffset 180ms 0ms cubic-bezier(0.4, 0, 0.6, 1);stroke:currentColor;stroke-width:3.12px;stroke-dashoffset:29.7833385;stroke-dasharray:29.7833385}.mdc-checkbox__mixedmark{width:100%;height:0;transform:scaleX(0) rotate(0deg);border-width:1px;border-style:solid;opacity:0;transition:opacity 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1),transform 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__background,.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__background,.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__background,.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__background{animation-duration:180ms;animation-timing-function:linear}.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__checkmark-path{animation:mdc-checkbox-unchecked-checked-checkmark-path 180ms linear 0s;transition:none}.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__mixedmark{animation:mdc-checkbox-unchecked-indeterminate-mixedmark 90ms linear 0s;transition:none}.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__checkmark-path{animation:mdc-checkbox-checked-unchecked-checkmark-path 90ms linear 0s;transition:none}.mdc-checkbox--anim-checked-indeterminate .mdc-checkbox__checkmark{animation:mdc-checkbox-checked-indeterminate-checkmark 90ms linear 0s;transition:none}.mdc-checkbox--anim-checked-indeterminate .mdc-checkbox__mixedmark{animation:mdc-checkbox-checked-indeterminate-mixedmark 90ms linear 0s;transition:none}.mdc-checkbox--anim-indeterminate-checked .mdc-checkbox__checkmark{animation:mdc-checkbox-indeterminate-checked-checkmark 500ms linear 0s;transition:none}.mdc-checkbox--anim-indeterminate-checked .mdc-checkbox__mixedmark{animation:mdc-checkbox-indeterminate-checked-mixedmark 500ms linear 0s;transition:none}.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__mixedmark{animation:mdc-checkbox-indeterminate-unchecked-mixedmark 300ms linear 0s;transition:none}.mdc-checkbox__native-control:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background,.mdc-checkbox__native-control[data-indeterminate=true]~.mdc-checkbox__background{transition:border-color 90ms 0ms cubic-bezier(0, 0, 0.2, 1),background-color 90ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-checkbox__native-control:checked~.mdc-checkbox__background .mdc-checkbox__checkmark-path,.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background .mdc-checkbox__checkmark-path,.mdc-checkbox__native-control[data-indeterminate=true]~.mdc-checkbox__background .mdc-checkbox__checkmark-path{stroke-dashoffset:0}.mdc-checkbox__native-control{position:absolute;margin:0;padding:0;opacity:0;cursor:inherit}.mdc-checkbox__native-control:disabled{cursor:default;pointer-events:none}.mdc-checkbox--touch{margin:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2)}.mdc-checkbox--touch .mdc-checkbox__native-control{top:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2);right:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2);left:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2);width:var(--mdc-checkbox-state-layer-size);height:var(--mdc-checkbox-state-layer-size)}.mdc-checkbox__native-control:checked~.mdc-checkbox__background .mdc-checkbox__checkmark{transition:opacity 180ms 0ms cubic-bezier(0, 0, 0.2, 1),transform 180ms 0ms cubic-bezier(0, 0, 0.2, 1);opacity:1}.mdc-checkbox__native-control:checked~.mdc-checkbox__background .mdc-checkbox__mixedmark{transform:scaleX(1) rotate(-45deg)}.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background .mdc-checkbox__checkmark,.mdc-checkbox__native-control[data-indeterminate=true]~.mdc-checkbox__background .mdc-checkbox__checkmark{transform:rotate(45deg);opacity:0;transition:opacity 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1),transform 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background .mdc-checkbox__mixedmark,.mdc-checkbox__native-control[data-indeterminate=true]~.mdc-checkbox__background .mdc-checkbox__mixedmark{transform:scaleX(1) rotate(0deg);opacity:1}.mdc-checkbox.mdc-checkbox--upgraded .mdc-checkbox__background,.mdc-checkbox.mdc-checkbox--upgraded .mdc-checkbox__checkmark,.mdc-checkbox.mdc-checkbox--upgraded .mdc-checkbox__checkmark-path,.mdc-checkbox.mdc-checkbox--upgraded .mdc-checkbox__mixedmark{transition:none}.mdc-checkbox{padding:calc((var(--mdc-checkbox-state-layer-size) - 18px) / 2);margin:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2)}.mdc-checkbox .mdc-checkbox__native-control[disabled]:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:var(--mdc-checkbox-disabled-unselected-icon-color);background-color:transparent}.mdc-checkbox .mdc-checkbox__native-control[disabled]:checked~.mdc-checkbox__background,.mdc-checkbox .mdc-checkbox__native-control[disabled]:indeterminate~.mdc-checkbox__background,.mdc-checkbox .mdc-checkbox__native-control[data-indeterminate=true][disabled]~.mdc-checkbox__background{border-color:transparent;background-color:var(--mdc-checkbox-disabled-selected-icon-color)}.mdc-checkbox .mdc-checkbox__native-control:enabled~.mdc-checkbox__background .mdc-checkbox__checkmark{color:var(--mdc-checkbox-selected-checkmark-color)}.mdc-checkbox .mdc-checkbox__native-control:enabled~.mdc-checkbox__background .mdc-checkbox__mixedmark{border-color:var(--mdc-checkbox-selected-checkmark-color)}.mdc-checkbox .mdc-checkbox__native-control:disabled~.mdc-checkbox__background .mdc-checkbox__checkmark{color:var(--mdc-checkbox-disabled-selected-checkmark-color)}.mdc-checkbox .mdc-checkbox__native-control:disabled~.mdc-checkbox__background .mdc-checkbox__mixedmark{border-color:var(--mdc-checkbox-disabled-selected-checkmark-color)}.mdc-checkbox .mdc-checkbox__native-control:enabled:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-icon-color);background-color:transparent}.mdc-checkbox .mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,.mdc-checkbox .mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background,.mdc-checkbox .mdc-checkbox__native-control[data-indeterminate=true]:enabled~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-icon-color);background-color:var(--mdc-checkbox-selected-icon-color)}@keyframes mdc-checkbox-fade-in-background-8A000000FFF4433600000000FFF44336{0%{border-color:var(--mdc-checkbox-unselected-icon-color);background-color:transparent}50%{border-color:var(--mdc-checkbox-selected-icon-color);background-color:var(--mdc-checkbox-selected-icon-color)}}@keyframes mdc-checkbox-fade-out-background-8A000000FFF4433600000000FFF44336{0%,80%{border-color:var(--mdc-checkbox-selected-icon-color);background-color:var(--mdc-checkbox-selected-icon-color)}100%{border-color:var(--mdc-checkbox-unselected-icon-color);background-color:transparent}}.mdc-checkbox.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mdc-checkbox.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-in-background-8A000000FFF4433600000000FFF44336}.mdc-checkbox.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mdc-checkbox.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-out-background-8A000000FFF4433600000000FFF44336}.mdc-checkbox:hover .mdc-checkbox__native-control:enabled:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-hover-icon-color);background-color:transparent}.mdc-checkbox:hover .mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,.mdc-checkbox:hover .mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background,.mdc-checkbox:hover .mdc-checkbox__native-control[data-indeterminate=true]:enabled~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-hover-icon-color);background-color:var(--mdc-checkbox-selected-hover-icon-color)}@keyframes mdc-checkbox-fade-in-background-FF212121FFF4433600000000FFF44336{0%{border-color:var(--mdc-checkbox-unselected-hover-icon-color);background-color:transparent}50%{border-color:var(--mdc-checkbox-selected-hover-icon-color);background-color:var(--mdc-checkbox-selected-hover-icon-color)}}@keyframes mdc-checkbox-fade-out-background-FF212121FFF4433600000000FFF44336{0%,80%{border-color:var(--mdc-checkbox-selected-hover-icon-color);background-color:var(--mdc-checkbox-selected-hover-icon-color)}100%{border-color:var(--mdc-checkbox-unselected-hover-icon-color);background-color:transparent}}.mdc-checkbox:hover.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mdc-checkbox:hover.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-in-background-FF212121FFF4433600000000FFF44336}.mdc-checkbox:hover.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mdc-checkbox:hover.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-out-background-FF212121FFF4433600000000FFF44336}.mdc-checkbox:not(:disabled):active .mdc-checkbox__native-control:enabled:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-pressed-icon-color);background-color:transparent}.mdc-checkbox:not(:disabled):active .mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,.mdc-checkbox:not(:disabled):active .mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background,.mdc-checkbox:not(:disabled):active .mdc-checkbox__native-control[data-indeterminate=true]:enabled~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-pressed-icon-color);background-color:var(--mdc-checkbox-selected-pressed-icon-color)}@keyframes mdc-checkbox-fade-in-background-8A000000FFF4433600000000FFF44336{0%{border-color:var(--mdc-checkbox-unselected-pressed-icon-color);background-color:transparent}50%{border-color:var(--mdc-checkbox-selected-pressed-icon-color);background-color:var(--mdc-checkbox-selected-pressed-icon-color)}}@keyframes mdc-checkbox-fade-out-background-8A000000FFF4433600000000FFF44336{0%,80%{border-color:var(--mdc-checkbox-selected-pressed-icon-color);background-color:var(--mdc-checkbox-selected-pressed-icon-color)}100%{border-color:var(--mdc-checkbox-unselected-pressed-icon-color);background-color:transparent}}.mdc-checkbox:not(:disabled):active.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mdc-checkbox:not(:disabled):active.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-in-background-8A000000FFF4433600000000FFF44336}.mdc-checkbox:not(:disabled):active.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mdc-checkbox:not(:disabled):active.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-out-background-8A000000FFF4433600000000FFF44336}.mdc-checkbox .mdc-checkbox__background{top:calc((var(--mdc-checkbox-state-layer-size) - 18px) / 2);left:calc((var(--mdc-checkbox-state-layer-size) - 18px) / 2)}.mdc-checkbox .mdc-checkbox__native-control{top:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2);right:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2);left:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2);width:var(--mdc-checkbox-state-layer-size);height:var(--mdc-checkbox-state-layer-size)}.mdc-checkbox .mdc-checkbox__native-control:enabled:focus:focus:not(:checked):not(:indeterminate)~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-focus-icon-color)}.mdc-checkbox .mdc-checkbox__native-control:enabled:focus:checked~.mdc-checkbox__background,.mdc-checkbox .mdc-checkbox__native-control:enabled:focus:indeterminate~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-focus-icon-color);background-color:var(--mdc-checkbox-selected-focus-icon-color)}.mdc-checkbox:hover .mdc-checkbox__ripple{opacity:var(--mdc-checkbox-unselected-hover-state-layer-opacity);background-color:var(--mdc-checkbox-unselected-hover-state-layer-color)}.mdc-checkbox:hover .mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-unselected-hover-state-layer-color)}.mdc-checkbox .mdc-checkbox__native-control:focus~.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-unselected-focus-state-layer-opacity);background-color:var(--mdc-checkbox-unselected-focus-state-layer-color)}.mdc-checkbox .mdc-checkbox__native-control:focus~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-unselected-focus-state-layer-color)}.mdc-checkbox:active .mdc-checkbox__native-control~.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-unselected-pressed-state-layer-opacity);background-color:var(--mdc-checkbox-unselected-pressed-state-layer-color)}.mdc-checkbox:active .mdc-checkbox__native-control~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-unselected-pressed-state-layer-color)}.mdc-checkbox:hover .mdc-checkbox__native-control:checked~.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-selected-hover-state-layer-opacity);background-color:var(--mdc-checkbox-selected-hover-state-layer-color)}.mdc-checkbox:hover .mdc-checkbox__native-control:checked~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-selected-hover-state-layer-color)}.mdc-checkbox .mdc-checkbox__native-control:focus:checked~.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-selected-focus-state-layer-opacity);background-color:var(--mdc-checkbox-selected-focus-state-layer-color)}.mdc-checkbox .mdc-checkbox__native-control:focus:checked~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-selected-focus-state-layer-color)}.mdc-checkbox:active .mdc-checkbox__native-control:checked~.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-selected-pressed-state-layer-opacity);background-color:var(--mdc-checkbox-selected-pressed-state-layer-color)}.mdc-checkbox:active .mdc-checkbox__native-control:checked~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-selected-pressed-state-layer-color)}.mat-mdc-checkbox{display:inline-block;position:relative;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-checkbox .mdc-checkbox__background{-webkit-print-color-adjust:exact;color-adjust:exact}.mat-mdc-checkbox._mat-animation-noopable *,.mat-mdc-checkbox._mat-animation-noopable *::before{transition:none !important;animation:none !important}.mat-mdc-checkbox label{cursor:pointer}.mat-mdc-checkbox.mat-mdc-checkbox-disabled label{cursor:default;color:var(--mat-checkbox-disabled-label-color)}.mat-mdc-checkbox label:empty{display:none}.cdk-high-contrast-active .mat-mdc-checkbox.mat-mdc-checkbox-disabled{opacity:.5}.cdk-high-contrast-active .mat-mdc-checkbox .mdc-checkbox__checkmark{--mdc-checkbox-selected-checkmark-color: CanvasText;--mdc-checkbox-disabled-selected-checkmark-color: CanvasText}.mat-mdc-checkbox .mdc-checkbox__ripple{opacity:0}.mat-mdc-checkbox-ripple,.mdc-checkbox__ripple{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:50%;pointer-events:none}.mat-mdc-checkbox-ripple:not(:empty),.mdc-checkbox__ripple:not(:empty){transform:translateZ(0)}.mat-mdc-checkbox-ripple .mat-ripple-element{opacity:.1}.mat-mdc-checkbox-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%);display:var(--mat-checkbox-touch-target-display)}.mat-mdc-checkbox-ripple::before{border-radius:50%}.mdc-checkbox__native-control:focus~.mat-mdc-focus-indicator::before{content:""}'],encapsulation:2,changeDetection:0})}return n})(),Rye=(()=>{class n{static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275mod=vo({type:n});static#n=this.\u0275inj=ra({imports:[rv,Qd,Qd]})}return n})();var kye=Se(3511);function iL(n,e,t){for(let i in e)if(e.hasOwnProperty(i)){const r=e[i];r?n.setProperty(i,r,t?.has(i)?"important":""):n.removeProperty(i)}return n}function DC(n,e){const t=e?"":"none";iL(n.style,{"touch-action":e?"":"none","-webkit-user-drag":e?"":"none","-webkit-tap-highlight-color":e?"":"transparent","user-select":t,"-ms-user-select":t,"-webkit-user-select":t,"-moz-user-select":t})}function Dj(n,e,t){iL(n.style,{position:e?"":"fixed",top:e?"":"0",opacity:e?"":"0",left:e?"":"-999em"},t)}function K4(n,e){return e&&"none"!=e?n+" "+e:n}function Ij(n){const e=n.toLowerCase().indexOf("ms")>-1?1:1e3;return parseFloat(n)*e}function rL(n,e){return n.getPropertyValue(e).split(",").map(i=>i.trim())}function sL(n){const e=n.getBoundingClientRect();return{top:e.top,right:e.right,bottom:e.bottom,left:e.left,width:e.width,height:e.height,x:e.x,y:e.y}}function oL(n,e,t){const{top:i,bottom:r,left:s,right:o}=n;return t>=i&&t<=r&&e>=s&&e<=o}function GE(n,e,t){n.top+=e,n.bottom=n.top+n.height,n.left+=t,n.right=n.left+n.width}function Bj(n,e,t,i){const{top:r,right:s,bottom:o,left:l,width:d,height:u}=n,f=d*e,A=u*e;return i>r-A&&il-f&&t{this.positions.set(t,{scrollPosition:{top:t.scrollTop,left:t.scrollLeft},clientRect:sL(t)})})}handleScroll(e){const t=pA(e),i=this.positions.get(t);if(!i)return null;const r=i.scrollPosition;let s,o;if(t===this._document){const u=this.getViewportScrollPosition();s=u.top,o=u.left}else s=t.scrollTop,o=t.scrollLeft;const l=r.top-s,d=r.left-o;return this.positions.forEach((u,f)=>{u.clientRect&&t!==f&&t.contains(f)&&GE(u.clientRect,l,d)}),r.top=s,r.left=o,{top:l,left:d}}getViewportScrollPosition(){return{top:window.scrollY,left:window.scrollX}}}function Rj(n){const e=n.cloneNode(!0),t=e.querySelectorAll("[id]"),i=n.nodeName.toLowerCase();e.removeAttribute("id");for(let r=0;rDC(t,e)))}constructor(e,t,i,r,s,o){this._config=t,this._document=i,this._ngZone=r,this._viewportRuler=s,this._dragDropRegistry=o,this._passiveTransform={x:0,y:0},this._activeTransform={x:0,y:0},this._hasStartedDragging=!1,this._moveEvents=new hn,this._pointerMoveSubscription=rt.EMPTY,this._pointerUpSubscription=rt.EMPTY,this._scrollSubscription=rt.EMPTY,this._resizeSubscription=rt.EMPTY,this._boundaryElement=null,this._nativeInteractionsEnabled=!0,this._handles=[],this._disabledHandles=new Set,this._direction="ltr",this.dragStartDelay=0,this._disabled=!1,this.beforeStarted=new hn,this.started=new hn,this.released=new hn,this.ended=new hn,this.entered=new hn,this.exited=new hn,this.dropped=new hn,this.moved=this._moveEvents,this._pointerDown=l=>{if(this.beforeStarted.next(),this._handles.length){const d=this._getTargetHandle(l);d&&!this._disabledHandles.has(d)&&!this.disabled&&this._initializeDragSequence(d,l)}else this.disabled||this._initializeDragSequence(this._rootElement,l)},this._pointerMove=l=>{const d=this._getPointerPositionOnPage(l);if(!this._hasStartedDragging){if(Math.abs(d.x-this._pickupPositionOnPage.x)+Math.abs(d.y-this._pickupPositionOnPage.y)>=this._config.dragStartThreshold){const R=Date.now()>=this._dragStartTime+this._getDragStartDelay(l),G=this._dropContainer;if(!R)return void this._endDragSequence(l);(!G||!G.isDragging()&&!G.isReceiving())&&(l.preventDefault(),this._hasStartedDragging=!0,this._ngZone.run(()=>this._startDragSequence(l)))}return}l.preventDefault();const u=this._getConstrainedPointerPosition(d);if(this._hasMoved=!0,this._lastKnownPointerPosition=d,this._updatePointerDirectionDelta(u),this._dropContainer)this._updateActiveDropContainer(u,d);else{const f=this.constrainPosition?this._initialDomRect:this._pickupPositionOnPage,A=this._activeTransform;A.x=u.x-f.x+this._passiveTransform.x,A.y=u.y-f.y+this._passiveTransform.y,this._applyRootElementTransform(A.x,A.y)}this._moveEvents.observers.length&&this._ngZone.run(()=>{this._moveEvents.next({source:this,pointerPosition:u,event:l,distance:this._getDragDistance(u),delta:this._pointerDirectionDelta})})},this._pointerUp=l=>{this._endDragSequence(l)},this._nativeDragStart=l=>{if(this._handles.length){const d=this._getTargetHandle(l);d&&!this._disabledHandles.has(d)&&!this.disabled&&l.preventDefault()}else this.disabled||l.preventDefault()},this.withRootElement(e).withParent(t.parentDragRef||null),this._parentPositions=new Pj(i),o.registerDragItem(this)}getPlaceholderElement(){return this._placeholder}getRootElement(){return this._rootElement}getVisibleElement(){return this.isDragging()?this.getPlaceholderElement():this.getRootElement()}withHandles(e){this._handles=e.map(i=>hu(i)),this._handles.forEach(i=>DC(i,this.disabled)),this._toggleNativeDragInteractions();const t=new Set;return this._disabledHandles.forEach(i=>{this._handles.indexOf(i)>-1&&t.add(i)}),this._disabledHandles=t,this}withPreviewTemplate(e){return this._previewTemplate=e,this}withPlaceholderTemplate(e){return this._placeholderTemplate=e,this}withRootElement(e){const t=hu(e);return t!==this._rootElement&&(this._rootElement&&this._removeRootElementListeners(this._rootElement),this._ngZone.runOutsideAngular(()=>{t.addEventListener("mousedown",this._pointerDown,Z4),t.addEventListener("touchstart",this._pointerDown,Lj),t.addEventListener("dragstart",this._nativeDragStart,Z4)}),this._initialTransform=void 0,this._rootElement=t),typeof SVGElement<"u"&&this._rootElement instanceof SVGElement&&(this._ownerSVGElement=this._rootElement.ownerSVGElement),this}withBoundaryElement(e){return this._boundaryElement=e?hu(e):null,this._resizeSubscription.unsubscribe(),e&&(this._resizeSubscription=this._viewportRuler.change(10).subscribe(()=>this._containInsideBoundaryOnResize())),this}withParent(e){return this._parentDragRef=e,this}dispose(){this._removeRootElementListeners(this._rootElement),this.isDragging()&&this._rootElement?.remove(),this._anchor?.remove(),this._destroyPreview(),this._destroyPlaceholder(),this._dragDropRegistry.removeDragItem(this),this._removeSubscriptions(),this.beforeStarted.complete(),this.started.complete(),this.released.complete(),this.ended.complete(),this.entered.complete(),this.exited.complete(),this.dropped.complete(),this._moveEvents.complete(),this._handles=[],this._disabledHandles.clear(),this._dropContainer=void 0,this._resizeSubscription.unsubscribe(),this._parentPositions.clear(),this._boundaryElement=this._rootElement=this._ownerSVGElement=this._placeholderTemplate=this._previewTemplate=this._anchor=this._parentDragRef=null}isDragging(){return this._hasStartedDragging&&this._dragDropRegistry.isDragging(this)}reset(){this._rootElement.style.transform=this._initialTransform||"",this._activeTransform={x:0,y:0},this._passiveTransform={x:0,y:0}}disableHandle(e){!this._disabledHandles.has(e)&&this._handles.indexOf(e)>-1&&(this._disabledHandles.add(e),DC(e,!0))}enableHandle(e){this._disabledHandles.has(e)&&(this._disabledHandles.delete(e),DC(e,this.disabled))}withDirection(e){return this._direction=e,this}_withDropContainer(e){this._dropContainer=e}getFreeDragPosition(){const e=this.isDragging()?this._activeTransform:this._passiveTransform;return{x:e.x,y:e.y}}setFreeDragPosition(e){return this._activeTransform={x:0,y:0},this._passiveTransform.x=e.x,this._passiveTransform.y=e.y,this._dropContainer||this._applyRootElementTransform(e.x,e.y),this}withPreviewContainer(e){return this._previewContainer=e,this}_sortFromLastPointerPosition(){const e=this._lastKnownPointerPosition;e&&this._dropContainer&&this._updateActiveDropContainer(this._getConstrainedPointerPosition(e),e)}_removeSubscriptions(){this._pointerMoveSubscription.unsubscribe(),this._pointerUpSubscription.unsubscribe(),this._scrollSubscription.unsubscribe()}_destroyPreview(){this._preview?.remove(),this._previewRef?.destroy(),this._preview=this._previewRef=null}_destroyPlaceholder(){this._placeholder?.remove(),this._placeholderRef?.destroy(),this._placeholder=this._placeholderRef=null}_endDragSequence(e){if(this._dragDropRegistry.isDragging(this)&&(this._removeSubscriptions(),this._dragDropRegistry.stopDragging(this),this._toggleNativeDragInteractions(),this._handles&&(this._rootElement.style.webkitTapHighlightColor=this._rootElementTapHighlight),this._hasStartedDragging))if(this.released.next({source:this,event:e}),this._dropContainer)this._dropContainer._stopScrolling(),this._animatePreviewToPlaceholder().then(()=>{this._cleanupDragArtifacts(e),this._cleanupCachedDimensions(),this._dragDropRegistry.stopDragging(this)});else{this._passiveTransform.x=this._activeTransform.x;const t=this._getPointerPositionOnPage(e);this._passiveTransform.y=this._activeTransform.y,this._ngZone.run(()=>{this.ended.next({source:this,distance:this._getDragDistance(t),dropPoint:t,event:e})}),this._cleanupCachedDimensions(),this._dragDropRegistry.stopDragging(this)}}_startDragSequence(e){qE(e)&&(this._lastTouchEventTime=Date.now()),this._toggleNativeDragInteractions();const t=this._dropContainer;if(t){const i=this._rootElement,r=i.parentNode,s=this._placeholder=this._createPlaceholderElement(),o=this._anchor=this._anchor||this._document.createComment(""),l=this._getShadowRoot();r.insertBefore(o,i),this._initialTransform=i.style.transform||"",this._preview=this._createPreviewElement(),Dj(i,!1,aL),this._document.body.appendChild(r.replaceChild(s,i)),this._getPreviewInsertionPoint(r,l).appendChild(this._preview),this.started.next({source:this,event:e}),t.start(),this._initialContainer=t,this._initialIndex=t.getItemIndex(this)}else this.started.next({source:this,event:e}),this._initialContainer=this._initialIndex=void 0;this._parentPositions.cache(t?t.getScrollableParents():[])}_initializeDragSequence(e,t){this._parentDragRef&&t.stopPropagation();const i=this.isDragging(),r=qE(t),s=!r&&0!==t.button,o=this._rootElement,l=pA(t),d=!r&&this._lastTouchEventTime&&this._lastTouchEventTime+800>Date.now(),u=r?M4(t):C4(t);if(l&&l.draggable&&"mousedown"===t.type&&t.preventDefault(),i||s||d||u)return;if(this._handles.length){const S=o.style;this._rootElementTapHighlight=S.webkitTapHighlightColor||"",S.webkitTapHighlightColor="transparent"}this._hasStartedDragging=this._hasMoved=!1,this._removeSubscriptions(),this._initialDomRect=this._rootElement.getBoundingClientRect(),this._pointerMoveSubscription=this._dragDropRegistry.pointerMove.subscribe(this._pointerMove),this._pointerUpSubscription=this._dragDropRegistry.pointerUp.subscribe(this._pointerUp),this._scrollSubscription=this._dragDropRegistry.scrolled(this._getShadowRoot()).subscribe(S=>this._updateOnScroll(S)),this._boundaryElement&&(this._boundaryRect=sL(this._boundaryElement));const f=this._previewTemplate;this._pickupPositionInElement=f&&f.template&&!f.matchSize?{x:0,y:0}:this._getPointerPositionInElement(this._initialDomRect,e,t);const A=this._pickupPositionOnPage=this._lastKnownPointerPosition=this._getPointerPositionOnPage(t);this._pointerDirectionDelta={x:0,y:0},this._pointerPositionAtLastDirectionChange={x:A.x,y:A.y},this._dragStartTime=Date.now(),this._dragDropRegistry.startDragging(this,t)}_cleanupDragArtifacts(e){Dj(this._rootElement,!0,aL),this._anchor.parentNode.replaceChild(this._rootElement,this._anchor),this._destroyPreview(),this._destroyPlaceholder(),this._initialDomRect=this._boundaryRect=this._previewRect=this._initialTransform=void 0,this._ngZone.run(()=>{const t=this._dropContainer,i=t.getItemIndex(this),r=this._getPointerPositionOnPage(e),s=this._getDragDistance(r),o=t._isOverContainer(r.x,r.y);this.ended.next({source:this,distance:s,dropPoint:r,event:e}),this.dropped.next({item:this,currentIndex:i,previousIndex:this._initialIndex,container:t,previousContainer:this._initialContainer,isPointerOverContainer:o,distance:s,dropPoint:r,event:e}),t.drop(this,i,this._initialIndex,this._initialContainer,o,s,r,e),this._dropContainer=this._initialContainer})}_updateActiveDropContainer({x:e,y:t},{x:i,y:r}){let s=this._initialContainer._getSiblingContainerFromPosition(this,e,t);!s&&this._dropContainer!==this._initialContainer&&this._initialContainer._isOverContainer(e,t)&&(s=this._initialContainer),s&&s!==this._dropContainer&&this._ngZone.run(()=>{this.exited.next({item:this,container:this._dropContainer}),this._dropContainer.exit(this),this._dropContainer=s,this._dropContainer.enter(this,e,t,s===this._initialContainer&&s.sortingDisabled?this._initialIndex:void 0),this.entered.next({item:this,container:s,currentIndex:s.getItemIndex(this)})}),this.isDragging()&&(this._dropContainer._startScrollingIfNecessary(i,r),this._dropContainer._sortItem(this,e,t,this._pointerDirectionDelta),this.constrainPosition?this._applyPreviewTransform(e,t):this._applyPreviewTransform(e-this._pickupPositionInElement.x,t-this._pickupPositionInElement.y))}_createPreviewElement(){const e=this._previewTemplate,t=this.previewClass,i=e?e.template:null;let r;if(i&&e){const s=e.matchSize?this._initialDomRect:null,o=e.viewContainer.createEmbeddedView(i,e.context);o.detectChanges(),r=Uj(o,this._document),this._previewRef=o,e.matchSize?zj(r,s):r.style.transform=J4(this._pickupPositionOnPage.x,this._pickupPositionOnPage.y)}else r=Rj(this._rootElement),zj(r,this._initialDomRect),this._initialTransform&&(r.style.transform=this._initialTransform);return iL(r.style,{"pointer-events":"none",margin:"0",position:"fixed",top:"0",left:"0","z-index":`${this._config.zIndex||1e3}`},aL),DC(r,!1),r.classList.add("cdk-drag-preview"),r.setAttribute("dir",this._direction),t&&(Array.isArray(t)?t.forEach(s=>r.classList.add(s)):r.classList.add(t)),r}_animatePreviewToPlaceholder(){if(!this._hasMoved)return Promise.resolve();const e=this._placeholder.getBoundingClientRect();this._preview.classList.add("cdk-drag-animating"),this._applyPreviewTransform(e.left,e.top);const t=function Oye(n){const e=getComputedStyle(n),t=rL(e,"transition-property"),i=t.find(l=>"transform"===l||"all"===l);if(!i)return 0;const r=t.indexOf(i),s=rL(e,"transition-duration"),o=rL(e,"transition-delay");return Ij(s[r])+Ij(o[r])}(this._preview);return 0===t?Promise.resolve():this._ngZone.runOutsideAngular(()=>new Promise(i=>{const r=o=>{(!o||pA(o)===this._preview&&"transform"===o.propertyName)&&(this._preview?.removeEventListener("transitionend",r),i(),clearTimeout(s))},s=setTimeout(r,1.5*t);this._preview.addEventListener("transitionend",r)}))}_createPlaceholderElement(){const e=this._placeholderTemplate,t=e?e.template:null;let i;return t?(this._placeholderRef=e.viewContainer.createEmbeddedView(t,e.context),this._placeholderRef.detectChanges(),i=Uj(this._placeholderRef,this._document)):i=Rj(this._rootElement),i.style.pointerEvents="none",i.classList.add("cdk-drag-placeholder"),i}_getPointerPositionInElement(e,t,i){const r=t===this._rootElement?null:t,s=r?r.getBoundingClientRect():e,o=qE(i)?i.targetTouches[0]:i,l=this._getViewportScrollPosition();return{x:s.left-e.left+(o.pageX-s.left-l.left),y:s.top-e.top+(o.pageY-s.top-l.top)}}_getPointerPositionOnPage(e){const t=this._getViewportScrollPosition(),i=qE(e)?e.touches[0]||e.changedTouches[0]||{pageX:0,pageY:0}:e,r=i.pageX-t.left,s=i.pageY-t.top;if(this._ownerSVGElement){const o=this._ownerSVGElement.getScreenCTM();if(o){const l=this._ownerSVGElement.createSVGPoint();return l.x=r,l.y=s,l.matrixTransform(o.inverse())}}return{x:r,y:s}}_getConstrainedPointerPosition(e){const t=this._dropContainer?this._dropContainer.lockAxis:null;let{x:i,y:r}=this.constrainPosition?this.constrainPosition(e,this,this._initialDomRect,this._pickupPositionInElement):e;if("x"===this.lockAxis||"x"===t?r=this._pickupPositionOnPage.y-(this.constrainPosition?this._pickupPositionInElement.y:0):("y"===this.lockAxis||"y"===t)&&(i=this._pickupPositionOnPage.x-(this.constrainPosition?this._pickupPositionInElement.x:0)),this._boundaryRect){const{x:s,y:o}=this.constrainPosition?{x:0,y:0}:this._pickupPositionInElement,l=this._boundaryRect,{width:d,height:u}=this._getPreviewRect(),f=l.top+o,A=l.bottom-(u-o);i=Nj(i,l.left+s,l.right-(d-s)),r=Nj(r,f,A)}return{x:i,y:r}}_updatePointerDirectionDelta(e){const{x:t,y:i}=e,r=this._pointerDirectionDelta,s=this._pointerPositionAtLastDirectionChange,o=Math.abs(t-s.x),l=Math.abs(i-s.y);return o>this._config.pointerDirectionChangeThreshold&&(r.x=t>s.x?1:-1,s.x=t),l>this._config.pointerDirectionChangeThreshold&&(r.y=i>s.y?1:-1,s.y=i),r}_toggleNativeDragInteractions(){if(!this._rootElement||!this._handles)return;const e=this._handles.length>0||!this.isDragging();e!==this._nativeInteractionsEnabled&&(this._nativeInteractionsEnabled=e,DC(this._rootElement,e))}_removeRootElementListeners(e){e.removeEventListener("mousedown",this._pointerDown,Z4),e.removeEventListener("touchstart",this._pointerDown,Lj),e.removeEventListener("dragstart",this._nativeDragStart,Z4)}_applyRootElementTransform(e,t){const i=J4(e,t),r=this._rootElement.style;null==this._initialTransform&&(this._initialTransform=r.transform&&"none"!=r.transform?r.transform:""),r.transform=K4(i,this._initialTransform)}_applyPreviewTransform(e,t){const i=this._previewTemplate?.template?void 0:this._initialTransform,r=J4(e,t);this._preview.style.transform=K4(r,i)}_getDragDistance(e){const t=this._pickupPositionOnPage;return t?{x:e.x-t.x,y:e.y-t.y}:{x:0,y:0}}_cleanupCachedDimensions(){this._boundaryRect=this._previewRect=void 0,this._parentPositions.clear()}_containInsideBoundaryOnResize(){let{x:e,y:t}=this._passiveTransform;if(0===e&&0===t||this.isDragging()||!this._boundaryElement)return;const i=this._rootElement.getBoundingClientRect(),r=this._boundaryElement.getBoundingClientRect();if(0===r.width&&0===r.height||0===i.width&&0===i.height)return;const s=r.left-i.left,o=i.right-r.right,l=r.top-i.top,d=i.bottom-r.bottom;r.width>i.width?(s>0&&(e+=s),o>0&&(e-=o)):e=0,r.height>i.height?(l>0&&(t+=l),d>0&&(t-=d)):t=0,(e!==this._passiveTransform.x||t!==this._passiveTransform.y)&&this.setFreeDragPosition({y:t,x:e})}_getDragStartDelay(e){const t=this.dragStartDelay;return"number"==typeof t?t:qE(e)?t.touch:t?t.mouse:0}_updateOnScroll(e){const t=this._parentPositions.handleScroll(e);if(t){const i=pA(e);this._boundaryRect&&i!==this._boundaryElement&&i.contains(this._boundaryElement)&&GE(this._boundaryRect,t.top,t.left),this._pickupPositionOnPage.x+=t.left,this._pickupPositionOnPage.y+=t.top,this._dropContainer||(this._activeTransform.x-=t.left,this._activeTransform.y-=t.top,this._applyRootElementTransform(this._activeTransform.x,this._activeTransform.y))}}_getViewportScrollPosition(){return this._parentPositions.positions.get(this._document)?.scrollPosition||this._parentPositions.getViewportScrollPosition()}_getShadowRoot(){return void 0===this._cachedShadowRoot&&(this._cachedShadowRoot=lO(this._rootElement)),this._cachedShadowRoot}_getPreviewInsertionPoint(e,t){const i=this._previewContainer||"global";if("parent"===i)return e;if("global"===i){const r=this._document;return t||r.fullscreenElement||r.webkitFullscreenElement||r.mozFullScreenElement||r.msFullscreenElement||r.body}return hu(i)}_getPreviewRect(){return(!this._previewRect||!this._previewRect.width&&!this._previewRect.height)&&(this._previewRect=this._preview?this._preview.getBoundingClientRect():this._initialDomRect),this._previewRect}_getTargetHandle(e){return this._handles.find(t=>e.target&&(e.target===t||t.contains(e.target)))}}function J4(n,e){return`translate3d(${Math.round(n)}px, ${Math.round(e)}px, 0)`}function Nj(n,e,t){return Math.max(e,Math.min(t,n))}function qE(n){return"t"===n.type[0]}function Uj(n,e){const t=n.rootNodes;if(1===t.length&&t[0].nodeType===e.ELEMENT_NODE)return t[0];const i=e.createElement("div");return t.forEach(r=>i.appendChild(r)),i}function zj(n,e){n.style.width=`${e.width}px`,n.style.height=`${e.height}px`,n.style.transform=J4(e.left,e.top)}function QE(n,e){return Math.max(0,Math.min(e,n))}class Hye{constructor(e,t){this._element=e,this._dragDropRegistry=t,this._itemPositions=[],this.orientation="vertical",this._previousSwap={drag:null,delta:0,overlaps:!1}}start(e){this.withItems(e)}sort(e,t,i,r){const s=this._itemPositions,o=this._getItemIndexFromPointerPosition(e,t,i,r);if(-1===o&&s.length>0)return null;const l="horizontal"===this.orientation,d=s.findIndex(se=>se.drag===e),u=s[o],A=u.clientRect,S=d>o?1:-1,R=this._getItemOffsetPx(s[d].clientRect,A,S),G=this._getSiblingOffsetPx(d,s,S),re=s.slice();return function zye(n,e,t){const i=QE(e,n.length-1),r=QE(t,n.length-1);if(i===r)return;const s=n[i],o=r{if(re[le]===se)return;const Ee=se.drag===e,Ce=Ee?R:G,We=Ee?e.getPlaceholderElement():se.drag.getRootElement();se.offset+=Ce,l?(We.style.transform=K4(`translate3d(${Math.round(se.offset)}px, 0, 0)`,se.initialTransform),GE(se.clientRect,0,Ce)):(We.style.transform=K4(`translate3d(0, ${Math.round(se.offset)}px, 0)`,se.initialTransform),GE(se.clientRect,Ce,0))}),this._previousSwap.overlaps=oL(A,t,i),this._previousSwap.drag=u.drag,this._previousSwap.delta=l?r.x:r.y,{previousIndex:d,currentIndex:o}}enter(e,t,i,r){const s=null==r||r<0?this._getItemIndexFromPointerPosition(e,t,i):r,o=this._activeDraggables,l=o.indexOf(e),d=e.getPlaceholderElement();let u=o[s];if(u===e&&(u=o[s+1]),!u&&(null==s||-1===s||s-1&&o.splice(l,1),u&&!this._dragDropRegistry.isDragging(u)){const f=u.getRootElement();f.parentElement.insertBefore(d,f),o.splice(s,0,e)}else hu(this._element).appendChild(d),o.push(e);d.style.transform="",this._cacheItemPositions()}withItems(e){this._activeDraggables=e.slice(),this._cacheItemPositions()}withSortPredicate(e){this._sortPredicate=e}reset(){this._activeDraggables.forEach(e=>{const t=e.getRootElement();if(t){const i=this._itemPositions.find(r=>r.drag===e)?.initialTransform;t.style.transform=i||""}}),this._itemPositions=[],this._activeDraggables=[],this._previousSwap.drag=null,this._previousSwap.delta=0,this._previousSwap.overlaps=!1}getActiveItemsSnapshot(){return this._activeDraggables}getItemIndex(e){return("horizontal"===this.orientation&&"rtl"===this.direction?this._itemPositions.slice().reverse():this._itemPositions).findIndex(i=>i.drag===e)}updateOnScroll(e,t){this._itemPositions.forEach(({clientRect:i})=>{GE(i,e,t)}),this._itemPositions.forEach(({drag:i})=>{this._dragDropRegistry.isDragging(i)&&i._sortFromLastPointerPosition()})}_cacheItemPositions(){const e="horizontal"===this.orientation;this._itemPositions=this._activeDraggables.map(t=>{const i=t.getVisibleElement();return{drag:t,offset:0,initialTransform:i.style.transform||"",clientRect:sL(i)}}).sort((t,i)=>e?t.clientRect.left-i.clientRect.left:t.clientRect.top-i.clientRect.top)}_getItemOffsetPx(e,t,i){const r="horizontal"===this.orientation;let s=r?t.left-e.left:t.top-e.top;return-1===i&&(s+=r?t.width-e.width:t.height-e.height),s}_getSiblingOffsetPx(e,t,i){const r="horizontal"===this.orientation,s=t[e].clientRect,o=t[e+-1*i];let l=s[r?"width":"height"]*i;if(o){const d=r?"left":"top",u=r?"right":"bottom";-1===i?l-=o.clientRect[d]-s[u]:l+=s[d]-o.clientRect[u]}return l}_shouldEnterAsFirstChild(e,t){if(!this._activeDraggables.length)return!1;const i=this._itemPositions,r="horizontal"===this.orientation;if(i[0].drag!==this._activeDraggables[0]){const o=i[i.length-1].clientRect;return r?e>=o.right:t>=o.bottom}{const o=i[0].clientRect;return r?e<=o.left:t<=o.top}}_getItemIndexFromPointerPosition(e,t,i,r){const s="horizontal"===this.orientation,o=this._itemPositions.findIndex(({drag:l,clientRect:d})=>l!==e&&((!r||l!==this._previousSwap.drag||!this._previousSwap.overlaps||(s?r.x:r.y)!==this._previousSwap.delta)&&(s?t>=Math.floor(d.left)&&t=Math.floor(d.top)&&i!0,this.sortPredicate=()=>!0,this.beforeStarted=new hn,this.entered=new hn,this.exited=new hn,this.dropped=new hn,this.sorted=new hn,this.receivingStarted=new hn,this.receivingStopped=new hn,this._isDragging=!1,this._draggables=[],this._siblings=[],this._activeSiblings=new Set,this._viewportScrollSubscription=rt.EMPTY,this._verticalScrollDirection=mA.NONE,this._horizontalScrollDirection=Nf.NONE,this._stopScrollTimers=new hn,this._cachedShadowRoot=null,this._startScrollInterval=()=>{this._stopScrolling(),function Fye(n=0,e=TE){return n<0&&(n=0),I4(n,n,e)}(0,lW).pipe(Ql(this._stopScrollTimers)).subscribe(()=>{const o=this._scrollNode,l=this.autoScrollStep;this._verticalScrollDirection===mA.UP?o.scrollBy(0,-l):this._verticalScrollDirection===mA.DOWN&&o.scrollBy(0,l),this._horizontalScrollDirection===Nf.LEFT?o.scrollBy(-l,0):this._horizontalScrollDirection===Nf.RIGHT&&o.scrollBy(l,0)})},this.element=hu(e),this._document=i,this.withScrollableParents([this.element]),t.registerDropContainer(this),this._parentPositions=new Pj(i),this._sortStrategy=new Hye(this.element,t),this._sortStrategy.withSortPredicate((o,l)=>this.sortPredicate(o,l,this))}dispose(){this._stopScrolling(),this._stopScrollTimers.complete(),this._viewportScrollSubscription.unsubscribe(),this.beforeStarted.complete(),this.entered.complete(),this.exited.complete(),this.dropped.complete(),this.sorted.complete(),this.receivingStarted.complete(),this.receivingStopped.complete(),this._activeSiblings.clear(),this._scrollNode=null,this._parentPositions.clear(),this._dragDropRegistry.removeDropContainer(this)}isDragging(){return this._isDragging}start(){this._draggingStarted(),this._notifyReceivingSiblings()}enter(e,t,i,r){this._draggingStarted(),null==r&&this.sortingDisabled&&(r=this._draggables.indexOf(e)),this._sortStrategy.enter(e,t,i,r),this._cacheParentPositions(),this._notifyReceivingSiblings(),this.entered.next({item:e,container:this,currentIndex:this.getItemIndex(e)})}exit(e){this._reset(),this.exited.next({item:e,container:this})}drop(e,t,i,r,s,o,l,d={}){this._reset(),this.dropped.next({item:e,currentIndex:t,previousIndex:i,container:this,previousContainer:r,isPointerOverContainer:s,distance:o,dropPoint:l,event:d})}withItems(e){const t=this._draggables;return this._draggables=e,e.forEach(i=>i._withDropContainer(this)),this.isDragging()&&(t.filter(r=>r.isDragging()).every(r=>-1===e.indexOf(r))?this._reset():this._sortStrategy.withItems(this._draggables)),this}withDirection(e){return this._sortStrategy.direction=e,this}connectedTo(e){return this._siblings=e.slice(),this}withOrientation(e){return this._sortStrategy.orientation=e,this}withScrollableParents(e){const t=hu(this.element);return this._scrollableElements=-1===e.indexOf(t)?[t,...e]:e.slice(),this}getScrollableParents(){return this._scrollableElements}getItemIndex(e){return this._isDragging?this._sortStrategy.getItemIndex(e):this._draggables.indexOf(e)}isReceiving(){return this._activeSiblings.size>0}_sortItem(e,t,i,r){if(this.sortingDisabled||!this._domRect||!Bj(this._domRect,.05,t,i))return;const s=this._sortStrategy.sort(e,t,i,r);s&&this.sorted.next({previousIndex:s.previousIndex,currentIndex:s.currentIndex,container:this,item:e})}_startScrollingIfNecessary(e,t){if(this.autoScrollDisabled)return;let i,r=mA.NONE,s=Nf.NONE;if(this._parentPositions.positions.forEach((o,l)=>{l===this._document||!o.clientRect||i||Bj(o.clientRect,.05,e,t)&&([r,s]=function Gye(n,e,t,i,r){const s=Gj(e,r),o=qj(e,i);let l=mA.NONE,d=Nf.NONE;if(s){const u=n.scrollTop;s===mA.UP?u>0&&(l=mA.UP):n.scrollHeight-u>n.clientHeight&&(l=mA.DOWN)}if(o){const u=n.scrollLeft;"rtl"===t?o===Nf.RIGHT?u<0&&(d=Nf.RIGHT):n.scrollWidth+u>n.clientWidth&&(d=Nf.LEFT):o===Nf.LEFT?u>0&&(d=Nf.LEFT):n.scrollWidth-u>n.clientWidth&&(d=Nf.RIGHT)}return[l,d]}(l,o.clientRect,this._sortStrategy.direction,e,t),(r||s)&&(i=l))}),!r&&!s){const{width:o,height:l}=this._viewportRuler.getViewportSize(),d={width:o,height:l,top:0,right:o,bottom:l,left:0};r=Gj(d,t),s=qj(d,e),i=window}i&&(r!==this._verticalScrollDirection||s!==this._horizontalScrollDirection||i!==this._scrollNode)&&(this._verticalScrollDirection=r,this._horizontalScrollDirection=s,this._scrollNode=i,(r||s)&&i?this._ngZone.runOutsideAngular(this._startScrollInterval):this._stopScrolling())}_stopScrolling(){this._stopScrollTimers.next()}_draggingStarted(){const e=hu(this.element).style;this.beforeStarted.next(),this._isDragging=!0,this._initialScrollSnap=e.msScrollSnapType||e.scrollSnapType||"",e.scrollSnapType=e.msScrollSnapType="none",this._sortStrategy.start(this._draggables),this._cacheParentPositions(),this._viewportScrollSubscription.unsubscribe(),this._listenToScrollEvents()}_cacheParentPositions(){const e=hu(this.element);this._parentPositions.cache(this._scrollableElements),this._domRect=this._parentPositions.positions.get(e).clientRect}_reset(){this._isDragging=!1;const e=hu(this.element).style;e.scrollSnapType=e.msScrollSnapType=this._initialScrollSnap,this._siblings.forEach(t=>t._stopReceiving(this)),this._sortStrategy.reset(),this._stopScrolling(),this._viewportScrollSubscription.unsubscribe(),this._parentPositions.clear()}_isOverContainer(e,t){return null!=this._domRect&&oL(this._domRect,e,t)}_getSiblingContainerFromPosition(e,t,i){return this._siblings.find(r=>r._canReceive(e,t,i))}_canReceive(e,t,i){if(!this._domRect||!oL(this._domRect,t,i)||!this.enterPredicate(e,this))return!1;const r=this._getShadowRoot().elementFromPoint(t,i);if(!r)return!1;const s=hu(this.element);return r===s||s.contains(r)}_startReceiving(e,t){const i=this._activeSiblings;!i.has(e)&&t.every(r=>this.enterPredicate(r,this)||this._draggables.indexOf(r)>-1)&&(i.add(e),this._cacheParentPositions(),this._listenToScrollEvents(),this.receivingStarted.next({initiator:e,receiver:this,items:t}))}_stopReceiving(e){this._activeSiblings.delete(e),this._viewportScrollSubscription.unsubscribe(),this.receivingStopped.next({initiator:e,receiver:this})}_listenToScrollEvents(){this._viewportScrollSubscription=this._dragDropRegistry.scrolled(this._getShadowRoot()).subscribe(e=>{if(this.isDragging()){const t=this._parentPositions.handleScroll(e);t&&this._sortStrategy.updateOnScroll(t.top,t.left)}else this.isReceiving()&&this._cacheParentPositions()})}_getShadowRoot(){if(!this._cachedShadowRoot){const e=lO(hu(this.element));this._cachedShadowRoot=e||this._document}return this._cachedShadowRoot}_notifyReceivingSiblings(){const e=this._sortStrategy.getActiveItemsSnapshot().filter(t=>t.isDragging());this._siblings.forEach(t=>t._startReceiving(this,e))}}function Gj(n,e){const{top:t,bottom:i,height:r}=n,s=.05*r;return e>=t-s&&e<=t+s?mA.UP:e>=i-s&&e<=i+s?mA.DOWN:mA.NONE}function qj(n,e){const{left:t,right:i,width:r}=n,s=.05*r;return e>=t-s&&e<=t+s?Nf.LEFT:e>=i-s&&e<=i+s?Nf.RIGHT:Nf.NONE}const eB=P0({passive:!1,capture:!0});let qye=(()=>{class n{constructor(t,i){this._ngZone=t,this._dropInstances=new Set,this._dragInstances=new Set,this._activeDragInstances=[],this._globalListeners=new Map,this._draggingPredicate=r=>r.isDragging(),this.pointerMove=new hn,this.pointerUp=new hn,this.scroll=new hn,this._preventDefaultWhileDragging=r=>{this._activeDragInstances.length>0&&r.preventDefault()},this._persistentTouchmoveListener=r=>{this._activeDragInstances.length>0&&(this._activeDragInstances.some(this._draggingPredicate)&&r.preventDefault(),this.pointerMove.next(r))},this._document=i}registerDropContainer(t){this._dropInstances.has(t)||this._dropInstances.add(t)}registerDragItem(t){this._dragInstances.add(t),1===this._dragInstances.size&&this._ngZone.runOutsideAngular(()=>{this._document.addEventListener("touchmove",this._persistentTouchmoveListener,eB)})}removeDropContainer(t){this._dropInstances.delete(t)}removeDragItem(t){this._dragInstances.delete(t),this.stopDragging(t),0===this._dragInstances.size&&this._document.removeEventListener("touchmove",this._persistentTouchmoveListener,eB)}startDragging(t,i){if(!(this._activeDragInstances.indexOf(t)>-1)&&(this._activeDragInstances.push(t),1===this._activeDragInstances.length)){const r=i.type.startsWith("touch");this._globalListeners.set(r?"touchend":"mouseup",{handler:s=>this.pointerUp.next(s),options:!0}).set("scroll",{handler:s=>this.scroll.next(s),options:!0}).set("selectstart",{handler:this._preventDefaultWhileDragging,options:eB}),r||this._globalListeners.set("mousemove",{handler:s=>this.pointerMove.next(s),options:eB}),this._ngZone.runOutsideAngular(()=>{this._globalListeners.forEach((s,o)=>{this._document.addEventListener(o,s.handler,s.options)})})}}stopDragging(t){const i=this._activeDragInstances.indexOf(t);i>-1&&(this._activeDragInstances.splice(i,1),0===this._activeDragInstances.length&&this._clearGlobalListeners())}isDragging(t){return this._activeDragInstances.indexOf(t)>-1}scrolled(t){const i=[this.scroll];return t&&t!==this._document&&i.push(new Pe(r=>this._ngZone.runOutsideAngular(()=>{const o=l=>{this._activeDragInstances.length&&r.next(l)};return t.addEventListener("scroll",o,!0),()=>{t.removeEventListener("scroll",o,!0)}}))),gm(...i)}ngOnDestroy(){this._dragInstances.forEach(t=>this.removeDragItem(t)),this._dropInstances.forEach(t=>this.removeDropContainer(t)),this._clearGlobalListeners(),this.pointerMove.complete(),this.pointerUp.complete()}_clearGlobalListeners(){this._globalListeners.forEach((t,i)=>{this._document.removeEventListener(i,t.handler,t.options)}),this._globalListeners.clear()}static#e=this.\u0275fac=function(i){return new(i||n)(xi(io),xi(ba))};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();const Qye={dragStartThreshold:5,pointerDirectionChangeThreshold:5};let lL=(()=>{class n{constructor(t,i,r,s){this._document=t,this._ngZone=i,this._viewportRuler=r,this._dragDropRegistry=s}createDrag(t,i=Qye){return new Uye(t,i,this._document,this._ngZone,this._viewportRuler,this._dragDropRegistry)}createDropList(t){return new Vye(t,this._dragDropRegistry,this._document,this._ngZone,this._viewportRuler)}static#e=this.\u0275fac=function(i){return new(i||n)(xi(ba),xi(io),xi(OE),xi(qye))};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();const WE=new Bi("CDK_DRAG_PARENT"),Qj=new Bi("CdkDragHandle");let Wj=(()=>{class n{get disabled(){return this._disabled}set disabled(t){this._disabled=t,this._stateChanges.next(this)}constructor(t,i){this.element=t,this._parentDrag=i,this._stateChanges=new hn,this._disabled=!1,i?._addHandle(this)}ngOnDestroy(){this._parentDrag?._removeHandle(this),this._stateChanges.complete()}static#e=this.\u0275fac=function(i){return new(i||n)(Lt(oo),Lt(WE,12))};static#t=this.\u0275dir=Ft({type:n,selectors:[["","cdkDragHandle",""]],hostAttrs:[1,"cdk-drag-handle"],inputs:{disabled:[mi.HasDecoratorInputTransform,"cdkDragHandleDisabled","disabled",_o]},standalone:!0,features:[qo([{provide:Qj,useExisting:n}]),ql]})}return n})();const jj=new Bi("CDK_DRAG_CONFIG"),$j=new Bi("CdkDropList");let cL=(()=>{class n{static#e=this._dragInstances=[];get disabled(){return this._disabled||this.dropContainer&&this.dropContainer.disabled}set disabled(t){this._disabled=t,this._dragRef.disabled=this._disabled}constructor(t,i,r,s,o,l,d,u,f,A,S){this.element=t,this.dropContainer=i,this._ngZone=s,this._viewContainerRef=o,this._dir=d,this._changeDetectorRef=f,this._selfHandle=A,this._parentDrag=S,this._destroyed=new hn,this._handles=new cn([]),this.started=new Ls,this.released=new Ls,this.ended=new Ls,this.entered=new Ls,this.exited=new Ls,this.dropped=new Ls,this.moved=new Pe(R=>{const G=this._dragRef.moved.pipe(bi(re=>({source:this,pointerPosition:re.pointerPosition,event:re.event,delta:re.delta,distance:re.distance}))).subscribe(R);return()=>{G.unsubscribe()}}),this._dragRef=u.createDrag(t,{dragStartThreshold:l&&null!=l.dragStartThreshold?l.dragStartThreshold:5,pointerDirectionChangeThreshold:l&&null!=l.pointerDirectionChangeThreshold?l.pointerDirectionChangeThreshold:5,zIndex:l?.zIndex}),this._dragRef.data=this,n._dragInstances.push(this),l&&this._assignDefaults(l),i&&(this._dragRef._withDropContainer(i._dropListRef),i.addItem(this)),this._syncInputs(this._dragRef),this._handleEvents(this._dragRef)}getPlaceholderElement(){return this._dragRef.getPlaceholderElement()}getRootElement(){return this._dragRef.getRootElement()}reset(){this._dragRef.reset()}getFreeDragPosition(){return this._dragRef.getFreeDragPosition()}setFreeDragPosition(t){this._dragRef.setFreeDragPosition(t)}ngAfterViewInit(){this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.pipe(ad(1),Ql(this._destroyed)).subscribe(()=>{this._updateRootElement(),this._setupHandlesListener(),this.freeDragPosition&&this._dragRef.setFreeDragPosition(this.freeDragPosition)})})}ngOnChanges(t){const i=t.rootElementSelector,r=t.freeDragPosition;i&&!i.firstChange&&this._updateRootElement(),r&&!r.firstChange&&this.freeDragPosition&&this._dragRef.setFreeDragPosition(this.freeDragPosition)}ngOnDestroy(){this.dropContainer&&this.dropContainer.removeItem(this);const t=n._dragInstances.indexOf(this);t>-1&&n._dragInstances.splice(t,1),this._ngZone.runOutsideAngular(()=>{this._handles.complete(),this._destroyed.next(),this._destroyed.complete(),this._dragRef.dispose()})}_addHandle(t){const i=this._handles.getValue();i.push(t),this._handles.next(i)}_removeHandle(t){const i=this._handles.getValue(),r=i.indexOf(t);r>-1&&(i.splice(r,1),this._handles.next(i))}_setPreviewTemplate(t){this._previewTemplate=t}_resetPreviewTemplate(t){t===this._previewTemplate&&(this._previewTemplate=null)}_setPlaceholderTemplate(t){this._placeholderTemplate=t}_resetPlaceholderTemplate(t){t===this._placeholderTemplate&&(this._placeholderTemplate=null)}_updateRootElement(){const t=this.element.nativeElement;let i=t;this.rootElementSelector&&(i=void 0!==t.closest?t.closest(this.rootElementSelector):t.parentElement?.closest(this.rootElementSelector)),this._dragRef.withRootElement(i||t)}_getBoundaryElement(){const t=this.boundaryElement;return t?"string"==typeof t?this.element.nativeElement.closest(t):hu(t):null}_syncInputs(t){t.beforeStarted.subscribe(()=>{if(!t.isDragging()){const i=this._dir,r=this.dragStartDelay,s=this._placeholderTemplate?{template:this._placeholderTemplate.templateRef,context:this._placeholderTemplate.data,viewContainer:this._viewContainerRef}:null,o=this._previewTemplate?{template:this._previewTemplate.templateRef,context:this._previewTemplate.data,matchSize:this._previewTemplate.matchSize,viewContainer:this._viewContainerRef}:null;t.disabled=this.disabled,t.lockAxis=this.lockAxis,t.dragStartDelay="object"==typeof r&&r?r:ux(r),t.constrainPosition=this.constrainPosition,t.previewClass=this.previewClass,t.withBoundaryElement(this._getBoundaryElement()).withPlaceholderTemplate(s).withPreviewTemplate(o).withPreviewContainer(this.previewContainer||"global"),i&&t.withDirection(i.value)}}),t.beforeStarted.pipe(ad(1)).subscribe(()=>{if(this._parentDrag)return void t.withParent(this._parentDrag._dragRef);let i=this.element.nativeElement.parentElement;for(;i;){if(i.classList.contains("cdk-drag")){t.withParent(n._dragInstances.find(r=>r.element.nativeElement===i)?._dragRef||null);break}i=i.parentElement}})}_handleEvents(t){t.started.subscribe(i=>{this.started.emit({source:this,event:i.event}),this._changeDetectorRef.markForCheck()}),t.released.subscribe(i=>{this.released.emit({source:this,event:i.event})}),t.ended.subscribe(i=>{this.ended.emit({source:this,distance:i.distance,dropPoint:i.dropPoint,event:i.event}),this._changeDetectorRef.markForCheck()}),t.entered.subscribe(i=>{this.entered.emit({container:i.container.data,item:this,currentIndex:i.currentIndex})}),t.exited.subscribe(i=>{this.exited.emit({container:i.container.data,item:this})}),t.dropped.subscribe(i=>{this.dropped.emit({previousIndex:i.previousIndex,currentIndex:i.currentIndex,previousContainer:i.previousContainer.data,container:i.container.data,isPointerOverContainer:i.isPointerOverContainer,item:this,distance:i.distance,dropPoint:i.dropPoint,event:i.event})})}_assignDefaults(t){const{lockAxis:i,dragStartDelay:r,constrainPosition:s,previewClass:o,boundaryElement:l,draggingDisabled:d,rootElementSelector:u,previewContainer:f}=t;this.disabled=d??!1,this.dragStartDelay=r||0,i&&(this.lockAxis=i),s&&(this.constrainPosition=s),o&&(this.previewClass=o),l&&(this.boundaryElement=l),u&&(this.rootElementSelector=u),f&&(this.previewContainer=f)}_setupHandlesListener(){this._handles.pipe(lu(t=>{const i=t.map(r=>r.element);this._selfHandle&&this.rootElementSelector&&i.push(this.element),this._dragRef.withHandles(i)}),Df(t=>gm(...t.map(i=>i._stateChanges.pipe(sA(i))))),Ql(this._destroyed)).subscribe(t=>{const i=this._dragRef,r=t.element.nativeElement;t.disabled?i.disableHandle(r):i.enableHandle(r)})}static#t=this.\u0275fac=function(i){return new(i||n)(Lt(oo),Lt($j,12),Lt(ba),Lt(io),Lt(fs),Lt(jj,8),Lt(_m,8),Lt(lL),Lt(Sc),Lt(Qj,10),Lt(WE,12))};static#n=this.\u0275dir=Ft({type:n,selectors:[["","cdkDrag",""]],hostAttrs:[1,"cdk-drag"],hostVars:4,hostBindings:function(i,r){2&i&&Ja("cdk-drag-disabled",r.disabled)("cdk-drag-dragging",r._dragRef.isDragging())},inputs:{data:[mi.None,"cdkDragData","data"],lockAxis:[mi.None,"cdkDragLockAxis","lockAxis"],rootElementSelector:[mi.None,"cdkDragRootElement","rootElementSelector"],boundaryElement:[mi.None,"cdkDragBoundary","boundaryElement"],dragStartDelay:[mi.None,"cdkDragStartDelay","dragStartDelay"],freeDragPosition:[mi.None,"cdkDragFreeDragPosition","freeDragPosition"],disabled:[mi.HasDecoratorInputTransform,"cdkDragDisabled","disabled",_o],constrainPosition:[mi.None,"cdkDragConstrainPosition","constrainPosition"],previewClass:[mi.None,"cdkDragPreviewClass","previewClass"],previewContainer:[mi.None,"cdkDragPreviewContainer","previewContainer"]},outputs:{started:"cdkDragStarted",released:"cdkDragReleased",ended:"cdkDragEnded",entered:"cdkDragEntered",exited:"cdkDragExited",dropped:"cdkDragDropped",moved:"cdkDragMoved"},exportAs:["cdkDrag"],standalone:!0,features:[qo([{provide:WE,useExisting:n}]),ql,kl]})}return n})(),Jye=(()=>{class n{static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275mod=vo({type:n});static#n=this.\u0275inj=ra({providers:[lL],imports:[LE]})}return n})();const eve=["overlayCard"],tve=["resizeHandleCorner"],nve=["*"],ive=n=>({"with-body":n}),rve=n=>({expand:n}),sve=n=>({"transparent-bg":n});function ove(n,e){if(1&n&&(Gt(0,"div",11),Fl(),Gt(1,"svg"),Vr(2,"use"),dn()()),2&n){const t=Pr(2);jn(2),Lw("href","assets/icons/",t.icon,".svg#",t.icon,"")}}function ave(n,e){if(1&n){const t=ta();Gt(0,"div",6),zs(1,ove,3,3,"div",7),Gt(2,"h5",8),qi(3),dn(),Gt(4,"button",9),Ai("click",function(){Ci(t);const r=Pr();return Mi(r.showBody=!r.showBody)}),Fl(),Gt(5,"svg"),Vr(6,"use",10),dn()()()}if(2&n){const t=Pr();Qn("ngClass",Oh(4,ive,t.showBody)),jn(),Qn("ngIf",t.icon),jn(2),tA(t.overlayTitle),jn(),Qn("ngClass",Oh(6,rve,t.showBody))}}function lve(n,e){if(1&n&&(Gt(0,"div",12),iu(1),dn()),2&n){const t=Pr();Qn("ngClass",Oh(1,sve,t.transparentBody))}}function cve(n,e){if(1&n){const t=ta();Gt(0,"span",13,1),Ai("cdkDragMoved",function(){return Ci(t),Mi(Pr().onResize())}),dn()}2&n&&Qn("hidden",!Pr().showBody)}let IC=(()=>{class n{overlayTitle;active=!1;icon;resizable=!1;transparentBody=!1;keepAspectRatioFixed=!1;showBody=!0;aspectRatio=window.innerWidth/window.innerHeight;overlayCard;resizeHandleCorner;MIN_RES_WIDTH=300;MIN_RES_HEIGHT=100;ngAfterViewInit(){if(this.resizable){const t=this.resizeHandleCorner.nativeElement;t.style.bottom="0",t.style.right="0",new kye.ResizeSensor(this.overlayCard.nativeElement,()=>{this.resetHandlePosition()}),window.addEventListener("resize",()=>{this.resetHandlePosition()})}}onResize(){const i=this.overlayCard.nativeElement,r=this.resizeHandleCorner.nativeElement.getBoundingClientRect(),s=i.getBoundingClientRect(),o=r.left-s.left+r.width,l=r.top-s.top+r.height;this.setHandleTransform(s,r),o>this.MIN_RES_WIDTH&&l>this.MIN_RES_HEIGHT&&(i.style.width=o+"px",i.style.height=this.keepAspectRatioFixed?o/this.aspectRatio+30+"px":l+"px")}resetHandlePosition(){const t=this.resizeHandleCorner.nativeElement;this.setHandleTransform(this.overlayCard.nativeElement.getBoundingClientRect(),t.getBoundingClientRect()),t.style.bottom=null,t.style.right=null}setHandleTransform(t,i){this.resizeHandleCorner.nativeElement.style.transform=`translate3d(${t.width-i.width}px, ${t.height-i.height}px, 0)`}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=rs({type:n,selectors:[["app-overlay"]],viewQuery:function(i,r){if(1&i&&(_l(eve,5),_l(tve,5)),2&i){let s;pa(s=ma())&&(r.overlayCard=s.first),pa(s=ma())&&(r.resizeHandleCorner=s.first)}},inputs:{overlayTitle:"overlayTitle",active:"active",icon:"icon",resizable:"resizable",transparentBody:"transparentBody",keepAspectRatioFixed:"keepAspectRatioFixed"},ngContentSelectors:nve,decls:5,vars:4,consts:[["overlayCard",""],["resizeHandleCorner",""],["cdkDrag","","cdkDragBoundary","body",1,"overlay-card","card",3,"hidden"],["class","card-header d-flex justify-content-between","cdkDragHandle","",3,"ngClass",4,"ngIf"],["class","overlay-card-content",3,"ngClass",4,"ngIf"],["class","resize-handle corner","cdkDrag","",3,"hidden","cdkDragMoved",4,"ngIf"],["cdkDragHandle","",1,"card-header","d-flex","justify-content-between",3,"ngClass"],["class","align-self-center card-icon",4,"ngIf"],[1,"align-self-center","m-0","px-2"],["matTooltip","Expand / Collapse","matTooltipPosition","right",1,"align-self-center","card-icon","btn-blank","expandCollapse",3,"click","ngClass"],["href","assets/icons/expand.svg#expand"],[1,"align-self-center","card-icon"],[1,"overlay-card-content",3,"ngClass"],["cdkDrag","",1,"resize-handle","corner",3,"cdkDragMoved","hidden"]],template:function(i,r){1&i&&(yh(),Gt(0,"div",2,0),zs(2,ave,7,8,"div",3)(3,lve,2,3,"div",4)(4,cve,2,1,"span",5),dn()),2&i&&(Qn("hidden",!r.active),jn(2),Qn("ngIf",r.overlayTitle),jn(),Qn("ngIf",r.showBody),jn(),Qn("ngIf",r.resizable))},dependencies:[om,Lh,cL,Wj,a1],styles:[".overlay-card.card{color:var(--phoenix-text-color);background:none;max-width:100vw;font-size:12px;min-width:300px;height:100%;max-height:70vh;box-shadow:none;border:none;position:relative;z-index:200}.overlay-card.card .card-header{width:12rem;background:var(--phoenix-background-color-secondary);box-shadow:var(--phoenix-box-shadow);padding:.4rem .8rem;border-radius:10px;border:none;cursor:move;text-align:center;transition:all .2s}.overlay-card.card .card-header.with-body{border-bottom-left-radius:0;border-bottom-right-radius:0}.overlay-card.card .card-header .card-icon{display:flex;height:.7rem;width:.7rem}.overlay-card.card .card-header h5{font-size:.9rem}.overlay-card.card .card-header .expandCollapse{cursor:pointer;transition:all .2s}.overlay-card.card .card-header .expandCollapse.expand{transform:scaleY(-1)}.overlay-card.card .card-header .expandCollapse svg{width:100%;height:100%}.overlay-card.card .overlay-card-content{background:var(--phoenix-background-color-secondary);box-shadow:var(--phoenix-box-shadow);border-radius:0 10px 10px;overflow:auto;height:100%}.overlay-card.card .overlay-card-content.transparent-bg{background:none}.overlay-card.card .list-group{color:var(--phoenix-text-color-secondary);background:var(--phoenix-background-color-secondary);max-height:40vh;overflow:auto}.overlay-card.card .list-group .list-group-item{background-color:var(--phoenix-background-color-secondary);border-color:var(--phoenix-border)}.overlay-card.card .resize-handle{width:1rem;height:1rem;cursor:nwse-resize;position:absolute}.overlay-card.card .resize-handle.corner{border-right:.2rem solid var(--phoenix-text-color);border-bottom:.2rem solid var(--phoenix-text-color)}\n"],encapsulation:2})}return n})();const dve=(n,e,t)=>({"active-object":n,"is-cut":e,"d-none":t});function uve(n,e){if(1&n&&(Gt(0,"option",15),qi(1),dn()),2&n){const t=e.$implicit;Qn("value",t),jn(),yl(" ",t," ")}}function hve(n,e){if(1&n){const t=ta();Gt(0,"mat-checkbox",16),Ai("change",function(r){return Ci(t),Mi(Pr(3).toggleInvisible(r.checked))}),qi(1," Hide Invisible Objects "),dn()}}function fve(n,e){if(1&n){const t=ta();Gt(0,"div",7)(1,"div",8)(2,"span"),qi(3,"Choose a collection: "),dn(),Gt(4,"div",9)(5,"label",10),qi(6,"Event"),dn(),Gt(7,"select",11),Ai("change",function(r){return Ci(t),Mi(Pr(2).changeCollection(r.target.value))}),Gt(8,"option",12),qi(9,"Choose Collection"),dn(),zs(10,uve,2,2,"option",13),dn()(),zs(11,hve,2,0,"mat-checkbox",14),dn()()}if(2&n){const t=Pr(2);jn(10),Qn("ngForOf",t.collections),jn(),Qn("ngIf",t.showingCollection)}}function pve(n,e){if(1&n){const t=ta();Gt(0,"th")(1,"div",20)(2,"div"),qi(3),dn(),Gt(4,"div",21)(5,"button",22),Ai("click",function(){const r=Ci(t).$implicit;return Mi(Pr(3).sort(r,"dec"))}),Fl(),Gt(6,"svg"),Vr(7,"use",23),dn()(),Dh(),Gt(8,"button",24),Ai("click",function(){const r=Ci(t).$implicit;return Mi(Pr(3).sort(r,"asc"))}),Fl(),Gt(9,"svg"),Vr(10,"use",23),dn()()()()()}if(2&n){const t=e.$implicit,i=Pr(3);jn(3),yl(" ",i.getPrettySymbol(t)," ")}}function mve(n,e){if(1&n){const t=ta();Gt(0,"div",33)(1,"button",34),Ai("click",function(){Ci(t);const r=Pr().$implicit;return Mi(Pr(3).lookAtObject(r.uuid))}),Fl(),Gt(2,"svg"),Vr(3,"use",35),dn()(),Dh(),Gt(4,"button",36),Ai("click",function(){Ci(t);const r=Pr().$implicit;return Mi(Pr(3).highlightObject(r.uuid))}),Fl(),Gt(5,"svg"),Vr(6,"use",37),dn()()()}}function Ave(n,e){if(1&n&&(Gt(0,"td"),qi(1),dn()),2&n){const t=e.$implicit,i=Pr().$implicit;jn(),yl(" ",i[t]," ")}}function gve(n,e){if(1&n){const t=ta();Gt(0,"tr",25)(1,"td"),qi(2),dn(),Gt(3,"td"),zs(4,mve,7,0,"div",26),dn(),Gt(5,"td")(6,"div",27)(7,"div",28),Vr(8,"input",29),dn(),Gt(9,"div",30)(10,"button",31),Ai("click",function(){const r=Ci(t),s=r.$implicit,o=r.index;return Mi(Pr(3).addLabel(o,s.uuid))}),Fl(),Gt(11,"svg"),Vr(12,"use",32),dn()()()()(),zs(13,Ave,2,1,"td",18),dn()}if(2&n){const t=e.$implicit,i=e.index,r=Pr(3);Qn("ngClass",U6(6,dve,r.activeObject&&r.activeObject.value===t.uuid,t.isCut,t.isCut&&r.hideInvisible)),sl("id",t.uuid),jn(2),yl("#",i,""),jn(2),Qn("ngIf",t.uuid),jn(4),Qn("id","label"+i),jn(5),Qn("ngForOf",r.collectionColumns)}}function _ve(n,e){if(1&n&&(Gt(0,"table",17)(1,"thead")(2,"tr")(3,"th"),qi(4,"No."),dn(),Gt(5,"th"),qi(6,"Selection"),dn(),Gt(7,"th"),qi(8,"Label"),dn(),zs(9,pve,11,1,"th",18),dn()(),Gt(10,"tbody"),zs(11,gve,14,10,"tr",19),dn()()),2&n){const t=Pr(2);jn(9),Qn("ngForOf",t.collectionColumns),jn(2),Qn("ngForOf",t.showingCollection)}}function yve(n,e){1&n&&(Gt(0,"p",38),qi(1," Load event data to be able to display information about the collections here. "),dn())}function vve(n,e){if(1&n&&(Gt(0,"div",2),zs(1,fve,12,2,"div",3),Gt(2,"div",4),zs(3,_ve,12,2,"table",5)(4,yve,2,0,"p",6),dn()()),2&n){const t=Pr();jn(),Qn("ngIf",null!=t.collections),jn(2),Qn("ngIf",t.showingCollection),jn(),Qn("ngIf",!t.collections)}}let Xj=(()=>{class n{elementRef;eventDisplay;showObjectsInfo;hideInvisible;collections;selectedCollection;showingCollection;collectionColumns;getPrettySymbol=Xy.getPrettySymbol;activeObject;constructor(t,i){this.elementRef=t,this.eventDisplay=i}ngOnInit(){this.eventDisplay.listenToDisplayedEventChange(t=>this.collections=this.eventDisplay.getCollections()),this.activeObject=this.eventDisplay.getActiveObjectId(),this.activeObject.onUpdate(t=>{document.getElementById(t)&&document.getElementById(t).scrollIntoView(!1)})}changeCollection(t){const i=this.getEventDataGroup();this.selectedCollection=t,this.showingCollection=this.eventDisplay.getCollection(t).map(r=>({...r,isCut:!i.getObjectByProperty("uuid",r.uuid)?.visible})),this.collectionColumns=Object.keys(this.showingCollection[0]).filter(r=>!["uuid","hits","isCut"].includes(r))}sort(t,i){this.showingCollection.sort("asc"===i?(r,s)=>r[t]r[t]>s[t]?-1:1)}lookAtObject(t){t&&(this.activeObject.update(t),this.eventDisplay.lookAtObject(t))}highlightObject(t){t&&(this.activeObject.update(t),this.eventDisplay.highlightObject(t))}enableHighlighting(){this.eventDisplay.enableHighlighting()}disableHighlighting(){this.eventDisplay.disableHighlighting()}toggleInvisible(t){this.hideInvisible=t}addLabel(t,i){const r=this.elementRef.nativeElement.querySelector(`#label${t}`).value;this.selectedCollection&&this.eventDisplay.addLabelToObject(r,this.selectedCollection,t,i)}getEventDataGroup(){return this.eventDisplay.getThreeManager().getSceneManager().getScene().getObjectByName(el.EVENT_DATA_ID)}static \u0275fac=function(i){return new(i||n)(Lt(oo),Lt(Al))};static \u0275cmp=rs({type:n,selectors:[["app-collections-info-overlay"]],inputs:{showObjectsInfo:"showObjectsInfo"},decls:2,vars:3,consts:[["overlayTitle","Collections Info","icon","info",3,"resizable","active"],["class","collectionsInfo m-2",4,"ngIf"],[1,"collectionsInfo","m-2"],["class","collectionSelector mb-2 d-flex align-items-center",4,"ngIf"],[1,"boxBody","table-responsive"],["id","collectionTable","class","table table-borderless table-sm",4,"ngIf"],["class","emptyBox",4,"ngIf"],[1,"collectionSelector","mb-2","d-flex","align-items-center"],[1,"d-flex","align-items-center"],[1,"eventSelector"],["for","event"],["id","collection","name","collection",3,"change"],["value","","selected","","disabled","","hidden",""],[3,"value",4,"ngFor","ngForOf"],[3,"change",4,"ngIf"],[3,"value"],[3,"change"],["id","collectionTable",1,"table","table-borderless","table-sm"],[4,"ngFor","ngForOf"],[3,"ngClass",4,"ngFor","ngForOf"],[1,"head-wrapper"],[1,"sort-options"],[1,"icon-wrapper","icon-button","btn-blank","up",3,"click"],["href","assets/icons/expand.svg#expand"],[1,"icon-wrapper","icon-button","btn-blank",3,"click"],[3,"ngClass"],["class","row justify-content-center icon-wrapper",4,"ngIf"],[1,"row","m-0","add-label"],[1,"col-10","p-0"],["type","text",1,"form-control","form-control-sm",3,"id"],[1,"col-2","p-0","pl-2","text-center","icon-wrapper"],["matTooltip","Add, update or remove object label",1,"object-select","btn-blank",3,"click"],["href","assets/icons/update.svg#update"],[1,"row","justify-content-center","icon-wrapper"],["matTooltip","Move camera to object",1,"object-select","btn-blank",3,"click"],["href","assets/icons/views.svg#views"],["matTooltip","Highlight object",1,"object-select","btn-blank",3,"click"],["href","assets/icons/cursor.svg#cursor"],[1,"emptyBox"]],template:function(i,r){1&i&&(Gt(0,"app-overlay",0),zs(1,vve,5,3,"div",1),dn()),2&i&&(Qn("resizable",!0)("active",r.showObjectsInfo),jn(),Qn("ngIf",r.showObjectsInfo))},dependencies:[om,am,Lh,a1,EC,TC,rv,IC],styles:[".collectionsInfo[_ngcontent-%COMP%]{height:95%}.collectionsInfo[_ngcontent-%COMP%] .collectionSelector[_ngcontent-%COMP%]{height:15%;min-height:2rem}.collectionsInfo[_ngcontent-%COMP%] .collectionSelector[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{color:var(--phoenix-text-color-secondary);margin-right:1rem}.collectionsInfo[_ngcontent-%COMP%] .collectionSelector[_ngcontent-%COMP%] mat-checkbox[_ngcontent-%COMP%]{margin-left:1rem}.boxBody[_ngcontent-%COMP%]{height:85%;overflow:scroll}.boxBody[_ngcontent-%COMP%] p.emptyBox[_ngcontent-%COMP%]{max-width:21em}.boxBody[_ngcontent-%COMP%] .add-label[_ngcontent-%COMP%]{min-width:8rem}.boxBody[_ngcontent-%COMP%] .add-label[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{padding:.1rem .3rem;font-size:.75rem}#collectionTable[_ngcontent-%COMP%]{position:relative;color:var(--phoenix-text-color-secondary)}#collectionTable[_ngcontent-%COMP%] thead[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{position:sticky;top:0;z-index:100;background:var(--phoenix-background-color-secondary)}#collectionTable[_ngcontent-%COMP%] thead[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] th[_ngcontent-%COMP%] .head-wrapper[_ngcontent-%COMP%]{display:flex;align-items:center}#collectionTable[_ngcontent-%COMP%] thead[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] th[_ngcontent-%COMP%] .head-wrapper[_ngcontent-%COMP%] .sort-options[_ngcontent-%COMP%]{display:flex;flex-direction:row}#collectionTable[_ngcontent-%COMP%] thead[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] th[_ngcontent-%COMP%] .head-wrapper[_ngcontent-%COMP%] .sort-options[_ngcontent-%COMP%] .icon-wrapper[_ngcontent-%COMP%]{display:flex;width:1rem;height:1rem;padding:.2rem}#collectionTable[_ngcontent-%COMP%] thead[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] th[_ngcontent-%COMP%] .head-wrapper[_ngcontent-%COMP%] .sort-options[_ngcontent-%COMP%] .icon-wrapper.up[_ngcontent-%COMP%]{transform:rotate(180deg)}#collectionTable[_ngcontent-%COMP%] thead[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] th[_ngcontent-%COMP%] .head-wrapper[_ngcontent-%COMP%] .sort-options[_ngcontent-%COMP%] .icon-wrapper[_ngcontent-%COMP%] svg[_ngcontent-%COMP%]{width:100%;height:100%}#collectionTable[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] *[_ngcontent-%COMP%]{padding-right:1.2rem}#collectionTable[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] *[_ngcontent-%COMP%]:last-child{padding-right:0}#collectionTable[_ngcontent-%COMP%] tr.is-cut[_ngcontent-%COMP%]{opacity:.5}#collectionTable[_ngcontent-%COMP%] tr.active-object[_ngcontent-%COMP%]{color:var(--phoenix-background-color);background:var(--phoenix-text-color);box-shadow:0 0 15px var(--phoenix-text-color)}#collectionTable[_ngcontent-%COMP%] tr.active-object[_ngcontent-%COMP%] div.icon-wrapper[_ngcontent-%COMP%]{--phoenix-options-icon-path: var(--phoenix-background-color);--phoenix-options-icon-bg: var(--phoenix-text-color-hover)}#collectionTable[_ngcontent-%COMP%] tr.active-object[_ngcontent-%COMP%] .add-label[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{--phoenix-text-color: var(--phoenix-background-color);--phoenix-background-color-tertiary: var( --phoenix-text-color-secondary );--phoenix-border: var(--phoenix-background-color)}#collectionTable[_ngcontent-%COMP%] td[_ngcontent-%COMP%] .object-select[_ngcontent-%COMP%]{position:relative;width:1.6rem;height:1.6rem;margin-right:.4em;text-align:center;background-color:var(--phoenix-options-icon-bg);border-radius:10px;cursor:pointer}#collectionTable[_ngcontent-%COMP%] td[_ngcontent-%COMP%] .object-select[_ngcontent-%COMP%]:last-child{margin-right:0}#collectionTable[_ngcontent-%COMP%] td[_ngcontent-%COMP%] .object-select[_ngcontent-%COMP%]:hover{border:1px solid var(--phoenix-options-icon-path)}#collectionTable[_ngcontent-%COMP%] td[_ngcontent-%COMP%] .object-select[_ngcontent-%COMP%] svg[_ngcontent-%COMP%]{position:absolute;top:0;left:0;padding:.4rem;width:100%;height:100%;vertical-align:top}.eventSelector[_ngcontent-%COMP%]{display:flex}.eventSelector[_ngcontent-%COMP%] label[_ngcontent-%COMP%]{display:none;color:var(--phoenix-text-color-secondary)}.eventSelector[_ngcontent-%COMP%] select[_ngcontent-%COMP%]{width:9rem;padding:5px 10px;font-size:12px;border:1px solid rgba(88,88,88,.08);box-shadow:var(--phoenix-icon-shadow);background-color:var(--phoenix-background-color-tertiary);color:var(--phoenix-text-color-secondary)}"]})}return n})(),uL=(()=>{class n{overlay;showObjectsInfo=!1;overlayWindow;constructor(t){this.overlay=t}ngOnInit(){const t=this.overlay.create(),i=new t1(Xj);this.overlayWindow=t.attach(i),this.overlayWindow.instance.showObjectsInfo=this.showObjectsInfo}ngOnDestroy(){this.overlayWindow.destroy()}toggleOverlay(){this.showObjectsInfo=!this.showObjectsInfo,this.overlayWindow.instance.showObjectsInfo=this.showObjectsInfo,this.showObjectsInfo?this.overlayWindow.instance.enableHighlighting():this.overlayWindow.instance.disableHighlighting()}static \u0275fac=function(i){return new(i||n)(Lt(fu))};static \u0275cmp=rs({type:n,selectors:[["app-collections-info"]],decls:1,vars:1,consts:[["tooltip","Event data collections info","icon","info",3,"click","active"]],template:function(i,r){1&i&&(Gt(0,"app-menu-toggle",0),Ai("click",function(){return r.toggleOverlay()}),dn()),2&i&&Qn("active",r.showObjectsInfo)},dependencies:[qc]})}return n})();const bve=n=>({"active-object":n});function xve(n,e){if(1&n&&(Gt(0,"option",13),qi(1),dn()),2&n){const t=e.$implicit;Qn("value",t.name),jn(),yl(" ",t.name," ")}}function wve(n,e){if(1&n){const t=ta();Gt(0,"div",7)(1,"div",8)(2,"span"),qi(3,"Choose a collection: "),dn(),Gt(4,"div",9)(5,"select",10),Ai("change",function(r){return Ci(t),Mi(Pr(2).changeCollection(r.target.value))}),Gt(6,"option",11),qi(7,"Choose Collection"),dn(),zs(8,xve,2,2,"option",12),dn()()()()}if(2&n){const t=Pr(2);jn(8),Qn("ngForOf",t.children)}}function Cve(n,e){if(1&n){const t=ta();Gt(0,"div",18)(1,"button",19),Ai("click",function(){Ci(t);const r=Pr().$implicit;return Mi(Pr(3).lookAtObject(r.uuid))}),Fl(),Gt(2,"svg"),Vr(3,"use",20),dn()(),Dh(),Gt(4,"button",21),Ai("click",function(){Ci(t);const r=Pr().$implicit;return Mi(Pr(3).highlightObject(r.uuid))}),Fl(),Gt(5,"svg"),Vr(6,"use",22),dn()()()}}function Mve(n,e){if(1&n&&(Gt(0,"tr",16)(1,"td"),qi(2),dn(),Gt(3,"td"),zs(4,Cve,7,0,"div",17),dn()()),2&n){const t=e.$implicit,i=e.index,r=Pr(3);Qn("ngClass",Oh(4,bve,r.activeObject&&r.activeObject.value===t.uuid)),sl("id",t.uuid),jn(2),yl("#",i,""),jn(2),Qn("ngIf",t.uuid)}}function Sve(n,e){if(1&n&&(Gt(0,"table",14)(1,"thead")(2,"tr")(3,"th"),qi(4,"No."),dn(),Gt(5,"th"),qi(6,"Selection"),dn()()(),Gt(7,"tbody"),zs(8,Mve,5,6,"tr",15),dn()()),2&n){const t=Pr(2);jn(8),Qn("ngForOf",t.showingCollection)}}function Eve(n,e){1&n&&(Gt(0,"p",23),qi(1," Load event data to be able to display information about the collections here. "),dn())}function Tve(n,e){if(1&n&&(Gt(0,"div",2),zs(1,wve,9,1,"div",3),Gt(2,"div",4),zs(3,Sve,9,1,"table",5)(4,Eve,2,0,"p",6),dn()()),2&n){const t=Pr();jn(),Qn("ngIf",null!=t.children),jn(2),Qn("ngIf",t.showingCollection),jn(),Qn("ngIf",!t.children)}}let Yj=(()=>{class n{eventDisplay;browseDetectorParts;selectedCollection;showingCollection;activeObject;children;constructor(t){this.eventDisplay=t}ngOnInit(){this.children=this.eventDisplay.getThreeManager().getSceneManager().getGeometries().children,this.activeObject=this.eventDisplay.getActiveObjectId(),this.activeObject.onUpdate(t=>{document.getElementById(t)&&document.getElementById(t).scrollIntoView(!1)})}changeCollection(t){this.selectedCollection=t;for(const i of this.children)if(i.name===this.selectedCollection){this.showingCollection=i.children;break}}lookAtObject(t){t&&(this.activeObject.update(t),this.eventDisplay.lookAtObject(t,!0))}highlightObject(t){t&&(this.activeObject.update(t),this.eventDisplay.highlightObject(t,!0))}enableHighlighting(){this.eventDisplay.enableHighlighting()}disableHighlighting(){this.eventDisplay.disableHighlighting()}static \u0275fac=function(i){return new(i||n)(Lt(Al))};static \u0275cmp=rs({type:n,selectors:[["app-geometry-browser-overlay"]],inputs:{browseDetectorParts:"browseDetectorParts"},decls:2,vars:3,consts:[["overlayTitle","Browse Display","icon","info",3,"resizable","active"],["class","collectionsInfo m-2",4,"ngIf"],[1,"collectionsInfo","m-2"],["class","collectionSelector mb-2 d-flex align-items-center",4,"ngIf"],[1,"boxBody","table-responsive"],["id","collectionTable","class","table table-borderless table-sm",4,"ngIf"],["class","emptyBox",4,"ngIf"],[1,"collectionSelector","mb-2","d-flex","align-items-center"],[1,"d-flex","align-items-center"],[1,"eventSelector"],["id","detectorCollection","name","detectorCollection",3,"change"],["value","","selected","","disabled","","hidden",""],[3,"value",4,"ngFor","ngForOf"],[3,"value"],["id","collectionTable",1,"table","table-borderless","table-sm"],[3,"ngClass",4,"ngFor","ngForOf"],[3,"ngClass"],["class","row justify-content-center icon-wrapper",4,"ngIf"],[1,"row","justify-content-center","icon-wrapper"],["matTooltip","Move camera to object",1,"object-select","btn-blank",3,"click"],["href","assets/icons/views.svg#views"],["matTooltip","Highlight object",1,"object-select","btn-blank",3,"click"],["href","assets/icons/cursor.svg#cursor"],[1,"emptyBox"]],template:function(i,r){1&i&&(Gt(0,"app-overlay",0),zs(1,Tve,5,3,"div",1),dn()),2&i&&(Qn("resizable",!0)("active",r.browseDetectorParts),jn(),Qn("ngIf",r.browseDetectorParts))},dependencies:[om,am,Lh,a1,EC,TC,IC],styles:[".collectionsInfo[_ngcontent-%COMP%]{height:95%}.collectionsInfo[_ngcontent-%COMP%] .collectionSelector[_ngcontent-%COMP%]{height:15%;min-height:2rem}.collectionsInfo[_ngcontent-%COMP%] .collectionSelector[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{color:var(--phoenix-text-color-secondary);margin-right:1rem}.boxBody[_ngcontent-%COMP%]{height:85%;overflow:scroll}.boxBody[_ngcontent-%COMP%] p.emptyBox[_ngcontent-%COMP%]{max-width:21em}#collectionTable[_ngcontent-%COMP%]{position:relative;color:var(--phoenix-text-color-secondary)}#collectionTable[_ngcontent-%COMP%] thead[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{position:sticky;top:0;z-index:100;background:var(--phoenix-background-color-secondary)}#collectionTable[_ngcontent-%COMP%] thead[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] th[_ngcontent-%COMP%] .row[_ngcontent-%COMP%]{margin-right:10px;margin-left:-92px}#collectionTable[_ngcontent-%COMP%] thead[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] th[_ngcontent-%COMP%] .icon-wrapper[_ngcontent-%COMP%]{display:flex;width:1rem;height:1rem;padding:.2rem}#collectionTable[_ngcontent-%COMP%] thead[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] th[_ngcontent-%COMP%] .icon-wrapper[_ngcontent-%COMP%] svg[_ngcontent-%COMP%]{width:100%;height:100%}#collectionTable[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] *[_ngcontent-%COMP%]{padding-right:1.2rem}#collectionTable[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] *[_ngcontent-%COMP%]:last-child{padding-right:0}#collectionTable[_ngcontent-%COMP%] tr.active-object[_ngcontent-%COMP%]{color:var(--phoenix-background-color);background:var(--phoenix-text-color);box-shadow:0 0 15px var(--phoenix-text-color)}#collectionTable[_ngcontent-%COMP%] tr.active-object[_ngcontent-%COMP%] div.icon-wrapper[_ngcontent-%COMP%]{--phoenix-options-icon-path: var(--phoenix-background-color);--phoenix-options-icon-bg: var(--phoenix-text-color-hover)}#collectionTable[_ngcontent-%COMP%] td[_ngcontent-%COMP%] .object-select[_ngcontent-%COMP%]{position:relative;width:1.6rem;height:1.6rem;margin-right:.4em;text-align:center;background-color:var(--phoenix-options-icon-bg);border-radius:10px;cursor:pointer}#collectionTable[_ngcontent-%COMP%] td[_ngcontent-%COMP%] .object-select[_ngcontent-%COMP%]:last-child{margin-right:0}#collectionTable[_ngcontent-%COMP%] td[_ngcontent-%COMP%] .object-select[_ngcontent-%COMP%]:hover{border:1px solid var(--phoenix-options-icon-path)}#collectionTable[_ngcontent-%COMP%] td[_ngcontent-%COMP%] .object-select[_ngcontent-%COMP%] svg[_ngcontent-%COMP%]{position:absolute;top:0;left:0;padding:.4rem;width:100%;height:100%;vertical-align:top}.eventSelector[_ngcontent-%COMP%]{display:flex}.eventSelector[_ngcontent-%COMP%] label[_ngcontent-%COMP%]{display:none;color:var(--phoenix-text-color-secondary)}.eventSelector[_ngcontent-%COMP%] select[_ngcontent-%COMP%]{width:9rem;padding:5px 10px;font-size:12px;border:1px solid rgba(88,88,88,.08);box-shadow:var(--phoenix-icon-shadow);background-color:var(--phoenix-background-color-tertiary);color:var(--phoenix-text-color-secondary)}"]})}return n})(),Kj=(()=>{class n{overlay;browseDetectorParts=!1;overlayWindow;constructor(t){this.overlay=t}ngOnInit(){const t=this.overlay.create(),i=new t1(Yj);this.overlayWindow=t.attach(i),this.overlayWindow.instance.browseDetectorParts=this.browseDetectorParts}ngOnDestroy(){this.overlayWindow.destroy()}toggleOverlay(){this.browseDetectorParts=!this.browseDetectorParts,this.overlayWindow.instance.browseDetectorParts=this.browseDetectorParts,this.browseDetectorParts?this.overlayWindow.instance.enableHighlighting():this.overlayWindow.instance.disableHighlighting()}static \u0275fac=function(i){return new(i||n)(Lt(fu))};static \u0275cmp=rs({type:n,selectors:[["app-geometry-browser"]],decls:1,vars:1,consts:[["tooltip","Browse geometry","icon","info",3,"click","active"]],template:function(i,r){1&i&&(Gt(0,"app-menu-toggle",0),Ai("click",function(){return r.toggleOverlay()}),dn()),2&i&&Qn("active",r.browseDetectorParts)},dependencies:[qc]})}return n})();function Dve(n,e){}class tB{constructor(){this.role="dialog",this.panelClass="",this.hasBackdrop=!0,this.backdropClass="",this.disableClose=!1,this.width="",this.height="",this.data=null,this.ariaDescribedBy=null,this.ariaLabelledBy=null,this.ariaLabel=null,this.ariaModal=!0,this.autoFocus="first-tabbable",this.restoreFocus=!0,this.closeOnNavigation=!0,this.closeOnDestroy=!0,this.closeOnOverlayDetachments=!0}}let Zj=(()=>{class n extends TO{constructor(t,i,r,s,o,l,d,u){super(),this._elementRef=t,this._focusTrapFactory=i,this._config=s,this._interactivityChecker=o,this._ngZone=l,this._overlayRef=d,this._focusMonitor=u,this._platform=pi(dd),this._focusTrap=null,this._elementFocusedBeforeDialogWasOpened=null,this._closeInteractionType=null,this._ariaLabelledByQueue=[],this._changeDetectorRef=pi(Sc),this.attachDomPortal=f=>{this._portalOutlet.hasAttached();const A=this._portalOutlet.attachDomPortal(f);return this._contentAttached(),A},this._document=r,this._config.ariaLabelledBy&&this._ariaLabelledByQueue.push(this._config.ariaLabelledBy)}_addAriaLabelledBy(t){this._ariaLabelledByQueue.push(t),this._changeDetectorRef.markForCheck()}_removeAriaLabelledBy(t){const i=this._ariaLabelledByQueue.indexOf(t);i>-1&&(this._ariaLabelledByQueue.splice(i,1),this._changeDetectorRef.markForCheck())}_contentAttached(){this._initializeFocusTrap(),this._handleBackdropClicks(),this._captureInitialFocus()}_captureInitialFocus(){this._trapFocus()}ngOnDestroy(){this._restoreFocus()}attachComponentPortal(t){this._portalOutlet.hasAttached();const i=this._portalOutlet.attachComponentPortal(t);return this._contentAttached(),i}attachTemplatePortal(t){this._portalOutlet.hasAttached();const i=this._portalOutlet.attachTemplatePortal(t);return this._contentAttached(),i}_recaptureFocus(){this._containsFocus()||this._trapFocus()}_forceFocus(t,i){this._interactivityChecker.isFocusable(t)||(t.tabIndex=-1,this._ngZone.runOutsideAngular(()=>{const r=()=>{t.removeEventListener("blur",r),t.removeEventListener("mousedown",r),t.removeAttribute("tabindex")};t.addEventListener("blur",r),t.addEventListener("mousedown",r)})),t.focus(i)}_focusByCssSelector(t,i){let r=this._elementRef.nativeElement.querySelector(t);r&&this._forceFocus(r,i)}_trapFocus(){const t=this._elementRef.nativeElement;switch(this._config.autoFocus){case!1:case"dialog":this._containsFocus()||t.focus();break;case!0:case"first-tabbable":this._focusTrap?.focusInitialElementWhenReady().then(i=>{i||this._focusDialogContainer()});break;case"first-heading":this._focusByCssSelector('h1, h2, h3, h4, h5, h6, [role="heading"]');break;default:this._focusByCssSelector(this._config.autoFocus)}}_restoreFocus(){const t=this._config.restoreFocus;let i=null;if("string"==typeof t?i=this._document.querySelector(t):"boolean"==typeof t?i=t?this._elementFocusedBeforeDialogWasOpened:null:t&&(i=t),this._config.restoreFocus&&i&&"function"==typeof i.focus){const r=cO(),s=this._elementRef.nativeElement;(!r||r===this._document.body||r===s||s.contains(r))&&(this._focusMonitor?(this._focusMonitor.focusVia(i,this._closeInteractionType),this._closeInteractionType=null):i.focus())}this._focusTrap&&this._focusTrap.destroy()}_focusDialogContainer(){this._elementRef.nativeElement.focus&&this._elementRef.nativeElement.focus()}_containsFocus(){const t=this._elementRef.nativeElement,i=cO();return t===i||t.contains(i)}_initializeFocusTrap(){this._platform.isBrowser&&(this._focusTrap=this._focusTrapFactory.create(this._elementRef.nativeElement),this._document&&(this._elementFocusedBeforeDialogWasOpened=cO()))}_handleBackdropClicks(){this._overlayRef.backdropClick().subscribe(()=>{this._config.disableClose&&this._recaptureFocus()})}static#e=this.\u0275fac=function(i){return new(i||n)(Lt(oo),Lt(NQ),Lt(ba,8),Lt(tB),Lt(yO),Lt(io),Lt(L4),Lt(e1))};static#t=this.\u0275cmp=rs({type:n,selectors:[["cdk-dialog-container"]],viewQuery:function(i,r){if(1&i&&_l(wC,7),2&i){let s;pa(s=ma())&&(r._portalOutlet=s.first)}},hostAttrs:["tabindex","-1",1,"cdk-dialog-container"],hostVars:6,hostBindings:function(i,r){2&i&&sl("id",r._config.id||null)("role",r._config.role)("aria-modal",r._config.ariaModal)("aria-labelledby",r._config.ariaLabel?null:r._ariaLabelledByQueue[0])("aria-label",r._config.ariaLabel)("aria-describedby",r._config.ariaDescribedBy||null)},standalone:!0,features:[Lo,yd],decls:1,vars:0,consts:[["cdkPortalOutlet",""]],template:function(i,r){1&i&&zs(0,Dve,0,0,"ng-template",0)},dependencies:[wC],styles:[".cdk-dialog-container{display:block;width:100%;height:100%;min-height:inherit;max-height:inherit}"],encapsulation:2})}return n})();class hL{constructor(e,t){this.overlayRef=e,this.config=t,this.closed=new hn,this.disableClose=t.disableClose,this.backdropClick=e.backdropClick(),this.keydownEvents=e.keydownEvents(),this.outsidePointerEvents=e.outsidePointerEvents(),this.id=t.id,this.keydownEvents.subscribe(i=>{27===i.keyCode&&!this.disableClose&&!bC(i)&&(i.preventDefault(),this.close(void 0,{focusOrigin:"keyboard"}))}),this.backdropClick.subscribe(()=>{this.disableClose||this.close(void 0,{focusOrigin:"mouse"})}),this._detachSubscription=e.detachments().subscribe(()=>{!1!==t.closeOnOverlayDetachments&&this.close()})}close(e,t){if(this.containerInstance){const i=this.closed;this.containerInstance._closeInteractionType=t?.focusOrigin||"program",this._detachSubscription.unsubscribe(),this.overlayRef.dispose(),i.next(e),i.complete(),this.componentInstance=this.containerInstance=null}}updatePosition(){return this.overlayRef.updatePosition(),this}updateSize(e="",t=""){return this.overlayRef.updateSize({width:e,height:t}),this}addPanelClass(e){return this.overlayRef.addPanelClass(e),this}removePanelClass(e){return this.overlayRef.removePanelClass(e),this}}const Jj=new Bi("DialogScrollStrategy",{providedIn:"root",factory:()=>{const n=pi(fu);return()=>n.scrollStrategies.block()}}),Ive=new Bi("DialogData"),Bve=new Bi("DefaultDialogConfig");let Rve=0,e$=(()=>{class n{get openDialogs(){return this._parentDialog?this._parentDialog.openDialogs:this._openDialogsAtThisLevel}get afterOpened(){return this._parentDialog?this._parentDialog.afterOpened:this._afterOpenedAtThisLevel}constructor(t,i,r,s,o,l){this._overlay=t,this._injector=i,this._defaultOptions=r,this._parentDialog=s,this._overlayContainer=o,this._openDialogsAtThisLevel=[],this._afterAllClosedAtThisLevel=new hn,this._afterOpenedAtThisLevel=new hn,this._ariaHiddenElements=new Map,this.afterAllClosed=CD(()=>this.openDialogs.length?this._getAfterAllClosed():this._getAfterAllClosed().pipe(sA(void 0))),this._scrollStrategy=l}open(t,i){(i={...this._defaultOptions||new tB,...i}).id=i.id||"cdk-dialog-"+Rve++,i.id&&this.getDialogById(i.id);const s=this._getOverlayConfig(i),o=this._overlay.create(s),l=new hL(o,i),d=this._attachContainer(o,l,i);return l.containerInstance=d,this._attachDialogContent(t,l,d,i),this.openDialogs.length||this._hideNonDialogContentFromAssistiveTechnology(),this.openDialogs.push(l),l.closed.subscribe(()=>this._removeOpenDialog(l,!0)),this.afterOpened.next(l),l}closeAll(){fL(this.openDialogs,t=>t.close())}getDialogById(t){return this.openDialogs.find(i=>i.id===t)}ngOnDestroy(){fL(this._openDialogsAtThisLevel,t=>{!1===t.config.closeOnDestroy&&this._removeOpenDialog(t,!1)}),fL(this._openDialogsAtThisLevel,t=>t.close()),this._afterAllClosedAtThisLevel.complete(),this._afterOpenedAtThisLevel.complete(),this._openDialogsAtThisLevel=[]}_getOverlayConfig(t){const i=new BO({positionStrategy:t.positionStrategy||this._overlay.position().global().centerHorizontally().centerVertically(),scrollStrategy:t.scrollStrategy||this._scrollStrategy(),panelClass:t.panelClass,hasBackdrop:t.hasBackdrop,direction:t.direction,minWidth:t.minWidth,minHeight:t.minHeight,maxWidth:t.maxWidth,maxHeight:t.maxHeight,width:t.width,height:t.height,disposeOnNavigation:t.closeOnNavigation});return t.backdropClass&&(i.backdropClass=t.backdropClass),i}_attachContainer(t,i,r){const s=r.injector||r.viewContainerRef?.injector,o=[{provide:tB,useValue:r},{provide:hL,useValue:i},{provide:L4,useValue:t}];let l;r.container?"function"==typeof r.container?l=r.container:(l=r.container.type,o.push(...r.container.providers(r))):l=Zj;const d=new t1(l,r.viewContainerRef,ml.create({parent:s||this._injector,providers:o}),r.componentFactoryResolver);return t.attach(d).instance}_attachDialogContent(t,i,r,s){if(t instanceof Ud){const o=this._createInjector(s,i,r,void 0);let l={$implicit:s.data,dialogRef:i};s.templateContext&&(l={...l,..."function"==typeof s.templateContext?s.templateContext():s.templateContext}),r.attachTemplatePortal(new PE(t,null,l,o))}else{const o=this._createInjector(s,i,r,this._injector),l=r.attachComponentPortal(new t1(t,s.viewContainerRef,o,s.componentFactoryResolver));i.componentRef=l,i.componentInstance=l.instance}}_createInjector(t,i,r,s){const o=t.injector||t.viewContainerRef?.injector,l=[{provide:Ive,useValue:t.data},{provide:hL,useValue:i}];return t.providers&&("function"==typeof t.providers?l.push(...t.providers(i,t,r)):l.push(...t.providers)),t.direction&&(!o||!o.get(_m,null,{optional:!0}))&&l.push({provide:_m,useValue:{value:t.direction,change:po()}}),ml.create({parent:o||s,providers:l})}_removeOpenDialog(t,i){const r=this.openDialogs.indexOf(t);r>-1&&(this.openDialogs.splice(r,1),this.openDialogs.length||(this._ariaHiddenElements.forEach((s,o)=>{s?o.setAttribute("aria-hidden",s):o.removeAttribute("aria-hidden")}),this._ariaHiddenElements.clear(),i&&this._getAfterAllClosed().next()))}_hideNonDialogContentFromAssistiveTechnology(){const t=this._overlayContainer.getContainerElement();if(t.parentElement){const i=t.parentElement.children;for(let r=i.length-1;r>-1;r--){const s=i[r];s!==t&&"SCRIPT"!==s.nodeName&&"STYLE"!==s.nodeName&&!s.hasAttribute("aria-live")&&(this._ariaHiddenElements.set(s,s.getAttribute("aria-hidden")),s.setAttribute("aria-hidden","true"))}}}_getAfterAllClosed(){const t=this._parentDialog;return t?t._getAfterAllClosed():this._afterAllClosedAtThisLevel}static#e=this.\u0275fac=function(i){return new(i||n)(xi(fu),xi(ml),xi(Bve,8),xi(n,12),xi(O4),xi(Jj))};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();function fL(n,e){let t=n.length;for(;t--;)e(n[t])}let kve=(()=>{class n{static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275mod=vo({type:n});static#n=this.\u0275inj=ra({providers:[e$],imports:[NE,k4,GQ,k4]})}return n})();function Fve(n,e){}class pL{constructor(){this.role="dialog",this.panelClass="",this.hasBackdrop=!0,this.backdropClass="",this.disableClose=!1,this.width="",this.height="",this.data=null,this.ariaDescribedBy=null,this.ariaLabelledBy=null,this.ariaLabel=null,this.ariaModal=!0,this.autoFocus="first-tabbable",this.restoreFocus=!0,this.delayFocusTrap=!0,this.closeOnNavigation=!0}}const mL="mdc-dialog--open",t$="mdc-dialog--opening",n$="mdc-dialog--closing";let i$=(()=>{class n extends Zj{constructor(t,i,r,s,o,l,d,u,f){super(t,i,r,s,o,l,d,f),this._animationMode=u,this._animationStateChanged=new Ls,this._animationsEnabled="NoopAnimations"!==this._animationMode,this._actionSectionCount=0,this._hostElement=this._elementRef.nativeElement,this._enterAnimationDuration=this._animationsEnabled?s$(this._config.enterAnimationDuration)??150:0,this._exitAnimationDuration=this._animationsEnabled?s$(this._config.exitAnimationDuration)??75:0,this._animationTimer=null,this._finishDialogOpen=()=>{this._clearAnimationClasses(),this._openAnimationDone(this._enterAnimationDuration)},this._finishDialogClose=()=>{this._clearAnimationClasses(),this._animationStateChanged.emit({state:"closed",totalTime:this._exitAnimationDuration})}}_contentAttached(){super._contentAttached(),this._startOpenAnimation()}_startOpenAnimation(){this._animationStateChanged.emit({state:"opening",totalTime:this._enterAnimationDuration}),this._animationsEnabled?(this._hostElement.style.setProperty(r$,`${this._enterAnimationDuration}ms`),this._requestAnimationFrame(()=>this._hostElement.classList.add(t$,mL)),this._waitForAnimationToComplete(this._enterAnimationDuration,this._finishDialogOpen)):(this._hostElement.classList.add(mL),Promise.resolve().then(()=>this._finishDialogOpen()))}_startExitAnimation(){this._animationStateChanged.emit({state:"closing",totalTime:this._exitAnimationDuration}),this._hostElement.classList.remove(mL),this._animationsEnabled?(this._hostElement.style.setProperty(r$,`${this._exitAnimationDuration}ms`),this._requestAnimationFrame(()=>this._hostElement.classList.add(n$)),this._waitForAnimationToComplete(this._exitAnimationDuration,this._finishDialogClose)):Promise.resolve().then(()=>this._finishDialogClose())}_updateActionSectionCount(t){this._actionSectionCount+=t,this._changeDetectorRef.markForCheck()}_clearAnimationClasses(){this._hostElement.classList.remove(t$,n$)}_waitForAnimationToComplete(t,i){null!==this._animationTimer&&clearTimeout(this._animationTimer),this._animationTimer=setTimeout(i,t)}_requestAnimationFrame(t){this._ngZone.runOutsideAngular(()=>{"function"==typeof requestAnimationFrame?requestAnimationFrame(t):t()})}_captureInitialFocus(){this._config.delayFocusTrap||this._trapFocus()}_openAnimationDone(t){this._config.delayFocusTrap&&this._trapFocus(),this._animationStateChanged.next({state:"opened",totalTime:t})}ngOnDestroy(){super.ngOnDestroy(),null!==this._animationTimer&&clearTimeout(this._animationTimer)}attachComponentPortal(t){const i=super.attachComponentPortal(t);return i.location.nativeElement.classList.add("mat-mdc-dialog-component-host"),i}static#e=this.\u0275fac=function(i){return new(i||n)(Lt(oo),Lt(NQ),Lt(ba,8),Lt(pL),Lt(yO),Lt(io),Lt(L4),Lt(Od,8),Lt(e1))};static#t=this.\u0275cmp=rs({type:n,selectors:[["mat-dialog-container"]],hostAttrs:["tabindex","-1",1,"mat-mdc-dialog-container","mdc-dialog"],hostVars:10,hostBindings:function(i,r){2&i&&(zw("id",r._config.id),sl("aria-modal",r._config.ariaModal)("role",r._config.role)("aria-labelledby",r._config.ariaLabel?null:r._ariaLabelledByQueue[0])("aria-label",r._config.ariaLabel)("aria-describedby",r._config.ariaDescribedBy||null),Ja("_mat-animation-noopable",!r._animationsEnabled)("mat-mdc-dialog-container-with-actions",r._actionSectionCount>0))},standalone:!0,features:[Lo,yd],decls:3,vars:0,consts:[[1,"mdc-dialog__container"],[1,"mat-mdc-dialog-surface","mdc-dialog__surface"],["cdkPortalOutlet",""]],template:function(i,r){1&i&&(Gt(0,"div",0)(1,"div",1),zs(2,Fve,0,0,"ng-template",2),dn()())},dependencies:[wC],styles:['.mdc-elevation-overlay{position:absolute;border-radius:inherit;pointer-events:none;opacity:var(--mdc-elevation-overlay-opacity, 0);transition:opacity 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-dialog,.mdc-dialog__scrim{position:fixed;top:0;left:0;align-items:center;justify-content:center;box-sizing:border-box;width:100%;height:100%}.mdc-dialog{display:none;z-index:var(--mdc-dialog-z-index, 7)}.mdc-dialog .mdc-dialog__content{padding:20px 24px 20px 24px}.mdc-dialog .mdc-dialog__surface{min-width:280px}@media(max-width: 592px){.mdc-dialog .mdc-dialog__surface{max-width:calc(100vw - 32px)}}@media(min-width: 592px){.mdc-dialog .mdc-dialog__surface{max-width:560px}}.mdc-dialog .mdc-dialog__surface{max-height:calc(100% - 32px)}.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{max-width:none}@media(max-width: 960px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{max-height:560px;width:560px}.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface .mdc-dialog__close{right:-12px}}@media(max-width: 720px)and (max-width: 672px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{width:calc(100vw - 112px)}}@media(max-width: 720px)and (min-width: 672px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{width:560px}}@media(max-width: 720px)and (max-height: 720px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{max-height:calc(100vh - 160px)}}@media(max-width: 720px)and (min-height: 720px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{max-height:560px}}@media(max-width: 720px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface .mdc-dialog__close{right:-12px}}@media(max-width: 720px)and (max-height: 400px),(max-width: 600px),(min-width: 720px)and (max-height: 400px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{height:100%;max-height:100vh;max-width:100vw;width:100vw;border-radius:0}.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface .mdc-dialog__close{order:-1;left:-12px}.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface .mdc-dialog__header{padding:0 16px 9px;justify-content:flex-start}.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface .mdc-dialog__title{margin-left:calc(16px - 2 * 12px)}}@media(min-width: 960px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{width:calc(100vw - 400px)}.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface .mdc-dialog__close{right:-12px}}.mdc-dialog.mdc-dialog__scrim--hidden .mdc-dialog__scrim{opacity:0}.mdc-dialog__scrim{opacity:0;z-index:-1}.mdc-dialog__container{display:flex;flex-direction:row;align-items:center;justify-content:space-around;box-sizing:border-box;height:100%;opacity:0;pointer-events:none}.mdc-dialog__surface{position:relative;display:flex;flex-direction:column;flex-grow:0;flex-shrink:0;box-sizing:border-box;max-width:100%;max-height:100%;pointer-events:auto;overflow-y:auto;outline:0;transform:scale(0.8)}.mdc-dialog__surface .mdc-elevation-overlay{width:100%;height:100%;top:0;left:0}[dir=rtl] .mdc-dialog__surface,.mdc-dialog__surface[dir=rtl]{text-align:right}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mdc-dialog__surface{outline:2px solid windowText}}.mdc-dialog__surface::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:2px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none}@media screen and (forced-colors: active){.mdc-dialog__surface::before{border-color:CanvasText}}@media screen and (-ms-high-contrast: active),screen and (-ms-high-contrast: none){.mdc-dialog__surface::before{content:none}}.mdc-dialog__title{display:block;margin-top:0;position:relative;flex-shrink:0;box-sizing:border-box;margin:0 0 1px;padding:0 24px 9px}.mdc-dialog__title::before{display:inline-block;width:0;height:40px;content:"";vertical-align:0}[dir=rtl] .mdc-dialog__title,.mdc-dialog__title[dir=rtl]{text-align:right}.mdc-dialog--scrollable .mdc-dialog__title{margin-bottom:1px;padding-bottom:15px}.mdc-dialog--fullscreen .mdc-dialog__header{align-items:baseline;border-bottom:1px solid rgba(0,0,0,0);display:inline-flex;justify-content:space-between;padding:0 24px 9px;z-index:1}@media screen and (forced-colors: active){.mdc-dialog--fullscreen .mdc-dialog__header{border-bottom-color:CanvasText}}.mdc-dialog--fullscreen .mdc-dialog__header .mdc-dialog__close{right:-12px}.mdc-dialog--fullscreen .mdc-dialog__title{margin-bottom:0;padding:0;border-bottom:0}.mdc-dialog--fullscreen.mdc-dialog--scrollable .mdc-dialog__title{border-bottom:0;margin-bottom:0}.mdc-dialog--fullscreen .mdc-dialog__close{top:5px}.mdc-dialog--fullscreen.mdc-dialog--scrollable .mdc-dialog__actions{border-top:1px solid rgba(0,0,0,0)}@media screen and (forced-colors: active){.mdc-dialog--fullscreen.mdc-dialog--scrollable .mdc-dialog__actions{border-top-color:CanvasText}}.mdc-dialog--fullscreen--titleless .mdc-dialog__close{margin-top:4px}.mdc-dialog--fullscreen--titleless.mdc-dialog--scrollable .mdc-dialog__close{margin-top:0}.mdc-dialog__content{flex-grow:1;box-sizing:border-box;margin:0;overflow:auto}.mdc-dialog__content>:first-child{margin-top:0}.mdc-dialog__content>:last-child{margin-bottom:0}.mdc-dialog__title+.mdc-dialog__content,.mdc-dialog__header+.mdc-dialog__content{padding-top:0}.mdc-dialog--scrollable .mdc-dialog__title+.mdc-dialog__content{padding-top:8px;padding-bottom:8px}.mdc-dialog__content .mdc-deprecated-list:first-child:last-child{padding:6px 0 0}.mdc-dialog--scrollable .mdc-dialog__content .mdc-deprecated-list:first-child:last-child{padding:0}.mdc-dialog__actions{display:flex;position:relative;flex-shrink:0;flex-wrap:wrap;align-items:center;justify-content:flex-end;box-sizing:border-box;min-height:52px;margin:0;padding:8px;border-top:1px solid rgba(0,0,0,0)}@media screen and (forced-colors: active){.mdc-dialog__actions{border-top-color:CanvasText}}.mdc-dialog--stacked .mdc-dialog__actions{flex-direction:column;align-items:flex-end}.mdc-dialog__button{margin-left:8px;margin-right:0;max-width:100%;text-align:right}[dir=rtl] .mdc-dialog__button,.mdc-dialog__button[dir=rtl]{margin-left:0;margin-right:8px}.mdc-dialog__button:first-child{margin-left:0;margin-right:0}[dir=rtl] .mdc-dialog__button:first-child,.mdc-dialog__button:first-child[dir=rtl]{margin-left:0;margin-right:0}[dir=rtl] .mdc-dialog__button,.mdc-dialog__button[dir=rtl]{text-align:left}.mdc-dialog--stacked .mdc-dialog__button:not(:first-child){margin-top:12px}.mdc-dialog--open,.mdc-dialog--opening,.mdc-dialog--closing{display:flex}.mdc-dialog--opening .mdc-dialog__scrim{transition:opacity 150ms linear}.mdc-dialog--opening .mdc-dialog__container{transition:opacity 75ms linear,transform 150ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-dialog--closing .mdc-dialog__scrim,.mdc-dialog--closing .mdc-dialog__container{transition:opacity 75ms linear}.mdc-dialog--closing .mdc-dialog__container{transform:none}.mdc-dialog--closing .mdc-dialog__surface{transform:none}.mdc-dialog--open .mdc-dialog__scrim{opacity:1}.mdc-dialog--open .mdc-dialog__container{opacity:1}.mdc-dialog--open .mdc-dialog__surface{transform:none}.mdc-dialog--open.mdc-dialog__surface-scrim--shown .mdc-dialog__surface-scrim{opacity:1}.mdc-dialog--open.mdc-dialog__surface-scrim--hiding .mdc-dialog__surface-scrim{transition:opacity 75ms linear}.mdc-dialog--open.mdc-dialog__surface-scrim--showing .mdc-dialog__surface-scrim{transition:opacity 150ms linear}.mdc-dialog__surface-scrim{display:none;opacity:0;position:absolute;width:100%;height:100%;z-index:1}.mdc-dialog__surface-scrim--shown .mdc-dialog__surface-scrim,.mdc-dialog__surface-scrim--showing .mdc-dialog__surface-scrim,.mdc-dialog__surface-scrim--hiding .mdc-dialog__surface-scrim{display:block}.mdc-dialog-scroll-lock{overflow:hidden}.mdc-dialog--no-content-padding .mdc-dialog__content{padding:0}.mdc-dialog--sheet .mdc-dialog__container .mdc-dialog__close{right:12px;top:9px;position:absolute;z-index:1}.mdc-dialog__scrim--removed{pointer-events:none}.mdc-dialog__scrim--removed .mdc-dialog__scrim,.mdc-dialog__scrim--removed .mdc-dialog__surface-scrim{display:none}.mat-mdc-dialog-content{max-height:65vh}.mat-mdc-dialog-container{position:static;display:block}.mat-mdc-dialog-container,.mat-mdc-dialog-container .mdc-dialog__container,.mat-mdc-dialog-container .mdc-dialog__surface{max-height:inherit;min-height:inherit;min-width:inherit;max-width:inherit}.mat-mdc-dialog-container .mdc-dialog__surface{width:100%;height:100%}.mat-mdc-dialog-component-host{display:contents}.mat-mdc-dialog-container{--mdc-dialog-container-elevation: var(--mdc-dialog-container-elevation-shadow);outline:0}.mat-mdc-dialog-container .mdc-dialog__surface{background-color:var(--mdc-dialog-container-color, white)}.mat-mdc-dialog-container .mdc-dialog__surface{box-shadow:var(--mdc-dialog-container-elevation, 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12))}.mat-mdc-dialog-container .mdc-dialog__surface{border-radius:var(--mdc-dialog-container-shape, 4px)}.mat-mdc-dialog-container .mdc-dialog__title{font-family:var(--mdc-dialog-subhead-font, Roboto, sans-serif);line-height:var(--mdc-dialog-subhead-line-height, 1.5rem);font-size:var(--mdc-dialog-subhead-size, 1rem);font-weight:var(--mdc-dialog-subhead-weight, 400);letter-spacing:var(--mdc-dialog-subhead-tracking, 0.03125em)}.mat-mdc-dialog-container .mdc-dialog__title{color:var(--mdc-dialog-subhead-color, rgba(0, 0, 0, 0.87))}.mat-mdc-dialog-container .mdc-dialog__content{font-family:var(--mdc-dialog-supporting-text-font, Roboto, sans-serif);line-height:var(--mdc-dialog-supporting-text-line-height, 1.5rem);font-size:var(--mdc-dialog-supporting-text-size, 1rem);font-weight:var(--mdc-dialog-supporting-text-weight, 400);letter-spacing:var(--mdc-dialog-supporting-text-tracking, 0.03125em)}.mat-mdc-dialog-container .mdc-dialog__content{color:var(--mdc-dialog-supporting-text-color, rgba(0, 0, 0, 0.6))}.mat-mdc-dialog-container .mdc-dialog__container{transition:opacity linear var(--mat-dialog-transition-duration, 0ms)}.mat-mdc-dialog-container .mdc-dialog__surface{transition:transform var(--mat-dialog-transition-duration, 0ms) 0ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-dialog-container._mat-animation-noopable .mdc-dialog__container,.mat-mdc-dialog-container._mat-animation-noopable .mdc-dialog__surface{transition:none}.cdk-overlay-pane.mat-mdc-dialog-panel{max-width:var(--mat-dialog-container-max-width, 80vw);min-width:var(--mat-dialog-container-min-width, 0)}@media(max-width: 599px){.cdk-overlay-pane.mat-mdc-dialog-panel{max-width:var(--mat-dialog-container-small-max-width, 80vw)}}.mat-mdc-dialog-title{padding:var(--mat-dialog-headline-padding, 0 24px 9px)}.mat-mdc-dialog-content{display:block}.mat-mdc-dialog-container .mat-mdc-dialog-content{padding:var(--mat-dialog-content-padding, 20px 24px)}.mat-mdc-dialog-container-with-actions .mat-mdc-dialog-content{padding:var(--mat-dialog-with-actions-content-padding, 20px 24px)}.mat-mdc-dialog-container .mat-mdc-dialog-title+.mat-mdc-dialog-content{padding-top:0}.mat-mdc-dialog-actions{padding:var(--mat-dialog-actions-padding, 8px);justify-content:var(--mat-dialog-actions-alignment, start)}.mat-mdc-dialog-actions.mat-mdc-dialog-actions-align-start,.mat-mdc-dialog-actions[align=start]{justify-content:start}.mat-mdc-dialog-actions.mat-mdc-dialog-actions-align-center,.mat-mdc-dialog-actions[align=center]{justify-content:center}.mat-mdc-dialog-actions.mat-mdc-dialog-actions-align-end,.mat-mdc-dialog-actions[align=end]{justify-content:flex-end}.mat-mdc-dialog-actions .mat-button-base+.mat-button-base,.mat-mdc-dialog-actions .mat-mdc-button-base+.mat-mdc-button-base{margin-left:8px}[dir=rtl] .mat-mdc-dialog-actions .mat-button-base+.mat-button-base,[dir=rtl] .mat-mdc-dialog-actions .mat-mdc-button-base+.mat-mdc-button-base{margin-left:0;margin-right:8px}'],encapsulation:2})}return n})();const r$="--mat-dialog-transition-duration";function s$(n){return null==n?null:"number"==typeof n?n:n.endsWith("ms")?ux(n.substring(0,n.length-2)):n.endsWith("s")?1e3*ux(n.substring(0,n.length-1)):"0"===n?0:null}var nB=function(n){return n[n.OPEN=0]="OPEN",n[n.CLOSING=1]="CLOSING",n[n.CLOSED=2]="CLOSED",n}(nB||{});class _x{constructor(e,t,i){this._ref=e,this._containerInstance=i,this._afterOpened=new hn,this._beforeClosed=new hn,this._state=nB.OPEN,this.disableClose=t.disableClose,this.id=e.id,e.addPanelClass("mat-mdc-dialog-panel"),i._animationStateChanged.pipe(od(r=>"opened"===r.state),ad(1)).subscribe(()=>{this._afterOpened.next(),this._afterOpened.complete()}),i._animationStateChanged.pipe(od(r=>"closed"===r.state),ad(1)).subscribe(()=>{clearTimeout(this._closeFallbackTimeout),this._finishDialogClose()}),e.overlayRef.detachments().subscribe(()=>{this._beforeClosed.next(this._result),this._beforeClosed.complete(),this._finishDialogClose()}),gm(this.backdropClick(),this.keydownEvents().pipe(od(r=>27===r.keyCode&&!this.disableClose&&!bC(r)))).subscribe(r=>{this.disableClose||(r.preventDefault(),function o$(n,e,t){return n._closeInteractionType=e,n.close(t)}(this,"keydown"===r.type?"keyboard":"mouse"))})}close(e){this._result=e,this._containerInstance._animationStateChanged.pipe(od(t=>"closing"===t.state),ad(1)).subscribe(t=>{this._beforeClosed.next(e),this._beforeClosed.complete(),this._ref.overlayRef.detachBackdrop(),this._closeFallbackTimeout=setTimeout(()=>this._finishDialogClose(),t.totalTime+100)}),this._state=nB.CLOSING,this._containerInstance._startExitAnimation()}afterOpened(){return this._afterOpened}afterClosed(){return this._ref.closed}beforeClosed(){return this._beforeClosed}backdropClick(){return this._ref.backdropClick}keydownEvents(){return this._ref.keydownEvents}updatePosition(e){let t=this._ref.config.positionStrategy;return e&&(e.left||e.right)?e.left?t.left(e.left):t.right(e.right):t.centerHorizontally(),e&&(e.top||e.bottom)?e.top?t.top(e.top):t.bottom(e.bottom):t.centerVertically(),this._ref.updatePosition(),this}updateSize(e="",t=""){return this._ref.updateSize(e,t),this}addPanelClass(e){return this._ref.addPanelClass(e),this}removePanelClass(e){return this._ref.removePanelClass(e),this}getState(){return this._state}_finishDialogClose(){this._state=nB.CLOSED,this._ref.close(this._result,{focusOrigin:this._closeInteractionType}),this.componentInstance=null}}const AL=new Bi("MatMdcDialogData"),Nve=new Bi("mat-mdc-dialog-default-options"),a$=new Bi("mat-mdc-dialog-scroll-strategy",{providedIn:"root",factory:()=>{const n=pi(fu);return()=>n.scrollStrategies.block()}});let zve=0,yx=(()=>{class n{get openDialogs(){return this._parentDialog?this._parentDialog.openDialogs:this._openDialogsAtThisLevel}get afterOpened(){return this._parentDialog?this._parentDialog.afterOpened:this._afterOpenedAtThisLevel}_getAfterAllClosed(){const t=this._parentDialog;return t?t._getAfterAllClosed():this._afterAllClosedAtThisLevel}constructor(t,i,r,s,o,l,d,u){this._overlay=t,this._defaultOptions=s,this._scrollStrategy=o,this._parentDialog=l,this._openDialogsAtThisLevel=[],this._afterAllClosedAtThisLevel=new hn,this._afterOpenedAtThisLevel=new hn,this.dialogConfigClass=pL,this.afterAllClosed=CD(()=>this.openDialogs.length?this._getAfterAllClosed():this._getAfterAllClosed().pipe(sA(void 0))),this._dialog=i.get(e$),this._dialogRefConstructor=_x,this._dialogContainerType=i$,this._dialogDataToken=AL}open(t,i){let r;(i={...this._defaultOptions||new pL,...i}).id=i.id||"mat-mdc-dialog-"+zve++,i.scrollStrategy=i.scrollStrategy||this._scrollStrategy();const s=this._dialog.open(t,{...i,positionStrategy:this._overlay.position().global().centerHorizontally().centerVertically(),disableClose:!0,closeOnDestroy:!1,closeOnOverlayDetachments:!1,container:{type:this._dialogContainerType,providers:()=>[{provide:this.dialogConfigClass,useValue:i},{provide:tB,useValue:i}]},templateContext:()=>({dialogRef:r}),providers:(o,l,d)=>(r=new this._dialogRefConstructor(o,i,d),r.updatePosition(i?.position),[{provide:this._dialogContainerType,useValue:d},{provide:this._dialogDataToken,useValue:l.data},{provide:this._dialogRefConstructor,useValue:r}])});return r.componentRef=s.componentRef,r.componentInstance=s.componentInstance,this.openDialogs.push(r),this.afterOpened.next(r),r.afterClosed().subscribe(()=>{const o=this.openDialogs.indexOf(r);o>-1&&(this.openDialogs.splice(o,1),this.openDialogs.length||this._getAfterAllClosed().next())}),r}closeAll(){this._closeDialogs(this.openDialogs)}getDialogById(t){return this.openDialogs.find(i=>i.id===t)}ngOnDestroy(){this._closeDialogs(this._openDialogsAtThisLevel),this._afterAllClosedAtThisLevel.complete(),this._afterOpenedAtThisLevel.complete()}_closeDialogs(t){let i=t.length;for(;i--;)t[i].close()}static#e=this.\u0275fac=function(i){return new(i||n)(xi(fu),xi(ml),xi(gb,8),xi(Nve,8),xi(a$),xi(n,12),xi(O4),xi(Od,8))};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),Hve=0,l$=(()=>{class n{constructor(t,i,r){this._dialogRef=t,this._elementRef=i,this._dialog=r}ngOnInit(){this._dialogRef||(this._dialogRef=function c$(n,e){let t=n.nativeElement.parentElement;for(;t&&!t.classList.contains("mat-mdc-dialog-container");)t=t.parentElement;return t?e.find(i=>i.id===t.id):null}(this._elementRef,this._dialog.openDialogs)),this._dialogRef&&Promise.resolve().then(()=>{this._onAdd()})}ngOnDestroy(){this._dialogRef?._containerInstance&&Promise.resolve().then(()=>{this._onRemove()})}static#e=this.\u0275fac=function(i){return new(i||n)(Lt(_x,8),Lt(oo),Lt(yx))};static#t=this.\u0275dir=Ft({type:n,standalone:!0})}return n})(),jE=(()=>{class n extends l${constructor(){super(...arguments),this.id="mat-mdc-dialog-title-"+Hve++}_onAdd(){this._dialogRef._containerInstance?._addAriaLabelledBy?.(this.id)}_onRemove(){this._dialogRef?._containerInstance?._removeAriaLabelledBy?.(this.id)}static#e=this.\u0275fac=(()=>{let t;return function(r){return(t||(t=Ca(n)))(r||n)}})();static#t=this.\u0275dir=Ft({type:n,selectors:[["","mat-dialog-title",""],["","matDialogTitle",""]],hostAttrs:[1,"mat-mdc-dialog-title","mdc-dialog__title"],hostVars:1,hostBindings:function(i,r){2&i&&zw("id",r.id)},inputs:{id:"id"},exportAs:["matDialogTitle"],standalone:!0,features:[Lo]})}return n})(),$E=(()=>{class n{static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275dir=Ft({type:n,selectors:[["","mat-dialog-content",""],["mat-dialog-content"],["","matDialogContent",""]],hostAttrs:[1,"mat-mdc-dialog-content","mdc-dialog__content"],standalone:!0})}return n})(),XE=(()=>{class n extends l${_onAdd(){this._dialogRef._containerInstance?._updateActionSectionCount?.(1)}_onRemove(){this._dialogRef._containerInstance?._updateActionSectionCount?.(-1)}static#e=this.\u0275fac=(()=>{let t;return function(r){return(t||(t=Ca(n)))(r||n)}})();static#t=this.\u0275dir=Ft({type:n,selectors:[["","mat-dialog-actions",""],["mat-dialog-actions"],["","matDialogActions",""]],hostAttrs:[1,"mat-mdc-dialog-actions","mdc-dialog__actions"],hostVars:6,hostBindings:function(i,r){2&i&&Ja("mat-mdc-dialog-actions-align-start","start"===r.align)("mat-mdc-dialog-actions-align-center","center"===r.align)("mat-mdc-dialog-actions-align-end","end"===r.align)},inputs:{align:"align"},standalone:!0,features:[Lo]})}return n})();let Gve=(()=>{class n{static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275mod=vo({type:n});static#n=this.\u0275inj=ra({providers:[yx],imports:[kve,NE,k4,Qd,Qd]})}return n})();const qve=["mat-button",""],Qve=[[["",8,"material-icons",3,"iconPositionEnd",""],["mat-icon",3,"iconPositionEnd",""],["","matButtonIcon","",3,"iconPositionEnd",""]],"*",[["","iconPositionEnd","",8,"material-icons"],["mat-icon","iconPositionEnd",""],["","matButtonIcon","","iconPositionEnd",""]]],Wve=[".material-icons:not([iconPositionEnd]), mat-icon:not([iconPositionEnd]), [matButtonIcon]:not([iconPositionEnd])","*",".material-icons[iconPositionEnd], mat-icon[iconPositionEnd], [matButtonIcon][iconPositionEnd]"],Yve=new Bi("MAT_BUTTON_CONFIG"),Kve=[{attribute:"mat-button",mdcClasses:["mdc-button","mat-mdc-button"]},{attribute:"mat-flat-button",mdcClasses:["mdc-button","mdc-button--unelevated","mat-mdc-unelevated-button"]},{attribute:"mat-raised-button",mdcClasses:["mdc-button","mdc-button--raised","mat-mdc-raised-button"]},{attribute:"mat-stroked-button",mdcClasses:["mdc-button","mdc-button--outlined","mat-mdc-outlined-button"]},{attribute:"mat-fab",mdcClasses:["mdc-fab","mat-mdc-fab"]},{attribute:"mat-mini-fab",mdcClasses:["mdc-fab","mdc-fab--mini","mat-mdc-mini-fab"]},{attribute:"mat-icon-button",mdcClasses:["mdc-icon-button","mat-mdc-icon-button"]}];let u$=(()=>{class n{get ripple(){return this._rippleLoader?.getRipple(this._elementRef.nativeElement)}set ripple(t){this._rippleLoader?.attachRipple(this._elementRef.nativeElement,t)}get disableRipple(){return this._disableRipple}set disableRipple(t){this._disableRipple=t,this._updateRippleDisabled()}get disabled(){return this._disabled}set disabled(t){this._disabled=t,this._updateRippleDisabled()}constructor(t,i,r,s){this._elementRef=t,this._platform=i,this._ngZone=r,this._animationMode=s,this._focusMonitor=pi(e1),this._rippleLoader=pi(A_e),this._isFab=!1,this._disableRipple=!1,this._disabled=!1;const o=pi(Yve,{optional:!0}),l=t.nativeElement,d=l.classList;this.disabledInteractive=o?.disabledInteractive??!1,this._rippleLoader?.configureRipple(l,{className:"mat-mdc-button-ripple"});for(const{attribute:u,mdcClasses:f}of Kve)l.hasAttribute(u)&&d.add(...f)}ngAfterViewInit(){this._focusMonitor.monitor(this._elementRef,!0)}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef),this._rippleLoader?.destroyRipple(this._elementRef.nativeElement)}focus(t="program",i){t?this._focusMonitor.focusVia(this._elementRef.nativeElement,t,i):this._elementRef.nativeElement.focus(i)}_getAriaDisabled(){return null!=this.ariaDisabled?this.ariaDisabled:!(!this.disabled||!this.disabledInteractive)||null}_getDisabledAttribute(){return!(this.disabledInteractive||!this.disabled)||null}_updateRippleDisabled(){this._rippleLoader?.setDisabled(this._elementRef.nativeElement,this.disableRipple||this.disabled)}static#e=this.\u0275fac=function(i){fM()};static#t=this.\u0275dir=Ft({type:n,inputs:{color:"color",disableRipple:[mi.HasDecoratorInputTransform,"disableRipple","disableRipple",_o],disabled:[mi.HasDecoratorInputTransform,"disabled","disabled",_o],ariaDisabled:[mi.HasDecoratorInputTransform,"aria-disabled","ariaDisabled",_o],disabledInteractive:[mi.HasDecoratorInputTransform,"disabledInteractive","disabledInteractive",_o]},features:[ql]})}return n})(),BC=(()=>{class n extends u${constructor(t,i,r,s){super(t,i,r,s)}static#e=this.\u0275fac=function(i){return new(i||n)(Lt(oo),Lt(dd),Lt(io),Lt(Od,8))};static#t=this.\u0275cmp=rs({type:n,selectors:[["button","mat-button",""],["button","mat-raised-button",""],["button","mat-flat-button",""],["button","mat-stroked-button",""]],hostVars:14,hostBindings:function(i,r){2&i&&(sl("disabled",r._getDisabledAttribute())("aria-disabled",r._getAriaDisabled()),P_(r.color?"mat-"+r.color:""),Ja("mat-mdc-button-disabled",r.disabled)("mat-mdc-button-disabled-interactive",r.disabledInteractive)("_mat-animation-noopable","NoopAnimations"===r._animationMode)("mat-unthemed",!r.color)("mat-mdc-button-base",!0))},exportAs:["matButton"],standalone:!0,features:[Lo,yd],attrs:qve,ngContentSelectors:Wve,decls:7,vars:4,consts:[[1,"mat-mdc-button-persistent-ripple"],[1,"mdc-button__label"],[1,"mat-mdc-focus-indicator"],[1,"mat-mdc-button-touch-target"]],template:function(i,r){1&i&&(yh(Qve),Vr(0,"span",0),iu(1),Gt(2,"span",1),iu(3,1),dn(),iu(4,2),Vr(5,"span",2)(6,"span",3)),2&i&&Ja("mdc-button__ripple",!r._isFab)("mdc-fab__ripple",r._isFab)},styles:['.mdc-touch-target-wrapper{display:inline}.mdc-elevation-overlay{position:absolute;border-radius:inherit;pointer-events:none;opacity:var(--mdc-elevation-overlay-opacity, 0);transition:opacity 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-button{position:relative;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-width:64px;border:none;outline:none;line-height:inherit;user-select:none;-webkit-appearance:none;overflow:visible;vertical-align:middle;background:rgba(0,0,0,0)}.mdc-button .mdc-elevation-overlay{width:100%;height:100%;top:0;left:0}.mdc-button::-moz-focus-inner{padding:0;border:0}.mdc-button:active{outline:none}.mdc-button:hover{cursor:pointer}.mdc-button:disabled{cursor:default;pointer-events:none}.mdc-button[hidden]{display:none}.mdc-button .mdc-button__icon{margin-left:0;margin-right:8px;display:inline-block;position:relative;vertical-align:top}[dir=rtl] .mdc-button .mdc-button__icon,.mdc-button .mdc-button__icon[dir=rtl]{margin-left:8px;margin-right:0}.mdc-button .mdc-button__progress-indicator{font-size:0;position:absolute;transform:translate(-50%, -50%);top:50%;left:50%;line-height:initial}.mdc-button .mdc-button__label{position:relative}.mdc-button .mdc-button__focus-ring{pointer-events:none;border:2px solid rgba(0,0,0,0);border-radius:6px;box-sizing:content-box;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(100% + 4px);width:calc(100% + 4px);display:none}@media screen and (forced-colors: active){.mdc-button .mdc-button__focus-ring{border-color:CanvasText}}.mdc-button .mdc-button__focus-ring::after{content:"";border:2px solid rgba(0,0,0,0);border-radius:8px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(100% + 4px);width:calc(100% + 4px)}@media screen and (forced-colors: active){.mdc-button .mdc-button__focus-ring::after{border-color:CanvasText}}@media screen and (forced-colors: active){.mdc-button.mdc-ripple-upgraded--background-focused .mdc-button__focus-ring,.mdc-button:not(.mdc-ripple-upgraded):focus .mdc-button__focus-ring{display:block}}.mdc-button .mdc-button__touch{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%)}.mdc-button__label+.mdc-button__icon{margin-left:8px;margin-right:0}[dir=rtl] .mdc-button__label+.mdc-button__icon,.mdc-button__label+.mdc-button__icon[dir=rtl]{margin-left:0;margin-right:8px}svg.mdc-button__icon{fill:currentColor}.mdc-button--touch{margin-top:6px;margin-bottom:6px}.mdc-button{padding:0 8px 0 8px}.mdc-button--unelevated{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);padding:0 16px 0 16px}.mdc-button--unelevated.mdc-button--icon-trailing{padding:0 12px 0 16px}.mdc-button--unelevated.mdc-button--icon-leading{padding:0 16px 0 12px}.mdc-button--raised{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);padding:0 16px 0 16px}.mdc-button--raised.mdc-button--icon-trailing{padding:0 12px 0 16px}.mdc-button--raised.mdc-button--icon-leading{padding:0 16px 0 12px}.mdc-button--outlined{border-style:solid;transition:border 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-button--outlined .mdc-button__ripple{border-style:solid;border-color:rgba(0,0,0,0)}.mat-mdc-button{font-family:var(--mdc-text-button-label-text-font);font-size:var(--mdc-text-button-label-text-size);letter-spacing:var(--mdc-text-button-label-text-tracking);font-weight:var(--mdc-text-button-label-text-weight);text-transform:var(--mdc-text-button-label-text-transform);height:var(--mdc-text-button-container-height);border-radius:var(--mdc-text-button-container-shape);padding:0 var(--mat-text-button-horizontal-padding, 8px)}.mat-mdc-button:not(:disabled){color:var(--mdc-text-button-label-text-color)}.mat-mdc-button:disabled{color:var(--mdc-text-button-disabled-label-text-color)}.mat-mdc-button .mdc-button__ripple{border-radius:var(--mdc-text-button-container-shape)}.mat-mdc-button:has(.material-icons,mat-icon,[matButtonIcon]){padding:0 var(--mat-text-button-with-icon-horizontal-padding, 8px)}.mat-mdc-button>.mat-icon{margin-right:var(--mat-text-button-icon-spacing, 8px);margin-left:var(--mat-text-button-icon-offset, 0)}[dir=rtl] .mat-mdc-button>.mat-icon{margin-right:var(--mat-text-button-icon-offset, 0);margin-left:var(--mat-text-button-icon-spacing, 8px)}.mat-mdc-button .mdc-button__label+.mat-icon{margin-right:var(--mat-text-button-icon-offset, 0);margin-left:var(--mat-text-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-button .mdc-button__label+.mat-icon{margin-right:var(--mat-text-button-icon-spacing, 8px);margin-left:var(--mat-text-button-icon-offset, 0)}.mat-mdc-button .mat-ripple-element{background-color:var(--mat-text-button-ripple-color)}.mat-mdc-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-text-button-state-layer-color)}.mat-mdc-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-text-button-disabled-state-layer-color)}.mat-mdc-button:hover .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-text-button-hover-state-layer-opacity)}.mat-mdc-button.cdk-program-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-button.cdk-keyboard-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-button.mat-mdc-button-disabled-interactive:focus .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-text-button-focus-state-layer-opacity)}.mat-mdc-button:active .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-text-button-pressed-state-layer-opacity)}.mat-mdc-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-text-button-touch-target-display)}.mat-mdc-button[disabled],.mat-mdc-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-text-button-disabled-label-text-color)}.mat-mdc-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-unelevated-button{font-family:var(--mdc-filled-button-label-text-font);font-size:var(--mdc-filled-button-label-text-size);letter-spacing:var(--mdc-filled-button-label-text-tracking);font-weight:var(--mdc-filled-button-label-text-weight);text-transform:var(--mdc-filled-button-label-text-transform);height:var(--mdc-filled-button-container-height);border-radius:var(--mdc-filled-button-container-shape);padding:0 var(--mat-filled-button-horizontal-padding, 16px)}.mat-mdc-unelevated-button:not(:disabled){background-color:var(--mdc-filled-button-container-color)}.mat-mdc-unelevated-button:disabled{background-color:var(--mdc-filled-button-disabled-container-color)}.mat-mdc-unelevated-button:not(:disabled){color:var(--mdc-filled-button-label-text-color)}.mat-mdc-unelevated-button:disabled{color:var(--mdc-filled-button-disabled-label-text-color)}.mat-mdc-unelevated-button .mdc-button__ripple{border-radius:var(--mdc-filled-button-container-shape)}.mat-mdc-unelevated-button>.mat-icon{margin-right:var(--mat-filled-button-icon-spacing, 8px);margin-left:var(--mat-filled-button-icon-offset, -4px)}[dir=rtl] .mat-mdc-unelevated-button>.mat-icon{margin-right:var(--mat-filled-button-icon-offset, -4px);margin-left:var(--mat-filled-button-icon-spacing, 8px)}.mat-mdc-unelevated-button .mdc-button__label+.mat-icon{margin-right:var(--mat-filled-button-icon-offset, -4px);margin-left:var(--mat-filled-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-unelevated-button .mdc-button__label+.mat-icon{margin-right:var(--mat-filled-button-icon-spacing, 8px);margin-left:var(--mat-filled-button-icon-offset, -4px)}.mat-mdc-unelevated-button .mat-ripple-element{background-color:var(--mat-filled-button-ripple-color)}.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-filled-button-state-layer-color)}.mat-mdc-unelevated-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-filled-button-disabled-state-layer-color)}.mat-mdc-unelevated-button:hover .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-filled-button-hover-state-layer-opacity)}.mat-mdc-unelevated-button.cdk-program-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button.cdk-keyboard-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button.mat-mdc-button-disabled-interactive:focus .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-filled-button-focus-state-layer-opacity)}.mat-mdc-unelevated-button:active .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-filled-button-pressed-state-layer-opacity)}.mat-mdc-unelevated-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-filled-button-touch-target-display)}.mat-mdc-unelevated-button[disabled],.mat-mdc-unelevated-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-filled-button-disabled-label-text-color);background-color:var(--mdc-filled-button-disabled-container-color)}.mat-mdc-unelevated-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-raised-button{font-family:var(--mdc-protected-button-label-text-font);font-size:var(--mdc-protected-button-label-text-size);letter-spacing:var(--mdc-protected-button-label-text-tracking);font-weight:var(--mdc-protected-button-label-text-weight);text-transform:var(--mdc-protected-button-label-text-transform);height:var(--mdc-protected-button-container-height);border-radius:var(--mdc-protected-button-container-shape);padding:0 var(--mat-protected-button-horizontal-padding, 16px);box-shadow:var(--mdc-protected-button-container-elevation-shadow)}.mat-mdc-raised-button:not(:disabled){background-color:var(--mdc-protected-button-container-color)}.mat-mdc-raised-button:disabled{background-color:var(--mdc-protected-button-disabled-container-color)}.mat-mdc-raised-button:not(:disabled){color:var(--mdc-protected-button-label-text-color)}.mat-mdc-raised-button:disabled{color:var(--mdc-protected-button-disabled-label-text-color)}.mat-mdc-raised-button .mdc-button__ripple{border-radius:var(--mdc-protected-button-container-shape)}.mat-mdc-raised-button>.mat-icon{margin-right:var(--mat-protected-button-icon-spacing, 8px);margin-left:var(--mat-protected-button-icon-offset, -4px)}[dir=rtl] .mat-mdc-raised-button>.mat-icon{margin-right:var(--mat-protected-button-icon-offset, -4px);margin-left:var(--mat-protected-button-icon-spacing, 8px)}.mat-mdc-raised-button .mdc-button__label+.mat-icon{margin-right:var(--mat-protected-button-icon-offset, -4px);margin-left:var(--mat-protected-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-raised-button .mdc-button__label+.mat-icon{margin-right:var(--mat-protected-button-icon-spacing, 8px);margin-left:var(--mat-protected-button-icon-offset, -4px)}.mat-mdc-raised-button .mat-ripple-element{background-color:var(--mat-protected-button-ripple-color)}.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-protected-button-state-layer-color)}.mat-mdc-raised-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-protected-button-disabled-state-layer-color)}.mat-mdc-raised-button:hover .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-protected-button-hover-state-layer-opacity)}.mat-mdc-raised-button.cdk-program-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button.cdk-keyboard-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button.mat-mdc-button-disabled-interactive:focus .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-protected-button-focus-state-layer-opacity)}.mat-mdc-raised-button:active .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-protected-button-pressed-state-layer-opacity)}.mat-mdc-raised-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-protected-button-touch-target-display)}.mat-mdc-raised-button:hover{box-shadow:var(--mdc-protected-button-hover-container-elevation-shadow)}.mat-mdc-raised-button:focus{box-shadow:var(--mdc-protected-button-focus-container-elevation-shadow)}.mat-mdc-raised-button:active,.mat-mdc-raised-button:focus:active{box-shadow:var(--mdc-protected-button-pressed-container-elevation-shadow)}.mat-mdc-raised-button[disabled],.mat-mdc-raised-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-protected-button-disabled-label-text-color);background-color:var(--mdc-protected-button-disabled-container-color)}.mat-mdc-raised-button[disabled].mat-mdc-button-disabled,.mat-mdc-raised-button.mat-mdc-button-disabled.mat-mdc-button-disabled{box-shadow:var(--mdc-protected-button-disabled-container-elevation-shadow)}.mat-mdc-raised-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-outlined-button{font-family:var(--mdc-outlined-button-label-text-font);font-size:var(--mdc-outlined-button-label-text-size);letter-spacing:var(--mdc-outlined-button-label-text-tracking);font-weight:var(--mdc-outlined-button-label-text-weight);text-transform:var(--mdc-outlined-button-label-text-transform);height:var(--mdc-outlined-button-container-height);border-radius:var(--mdc-outlined-button-container-shape);padding:0 15px 0 15px;border-width:var(--mdc-outlined-button-outline-width);padding:0 var(--mat-outlined-button-horizontal-padding, 15px)}.mat-mdc-outlined-button:not(:disabled){color:var(--mdc-outlined-button-label-text-color)}.mat-mdc-outlined-button:disabled{color:var(--mdc-outlined-button-disabled-label-text-color)}.mat-mdc-outlined-button .mdc-button__ripple{border-radius:var(--mdc-outlined-button-container-shape)}.mat-mdc-outlined-button:not(:disabled){border-color:var(--mdc-outlined-button-outline-color)}.mat-mdc-outlined-button:disabled{border-color:var(--mdc-outlined-button-disabled-outline-color)}.mat-mdc-outlined-button.mdc-button--icon-trailing{padding:0 11px 0 15px}.mat-mdc-outlined-button.mdc-button--icon-leading{padding:0 15px 0 11px}.mat-mdc-outlined-button .mdc-button__ripple{top:-1px;left:-1px;bottom:-1px;right:-1px;border-width:var(--mdc-outlined-button-outline-width)}.mat-mdc-outlined-button .mdc-button__touch{left:calc(-1 * var(--mdc-outlined-button-outline-width));width:calc(100% + 2 * var(--mdc-outlined-button-outline-width))}.mat-mdc-outlined-button>.mat-icon{margin-right:var(--mat-outlined-button-icon-spacing, 8px);margin-left:var(--mat-outlined-button-icon-offset, -4px)}[dir=rtl] .mat-mdc-outlined-button>.mat-icon{margin-right:var(--mat-outlined-button-icon-offset, -4px);margin-left:var(--mat-outlined-button-icon-spacing, 8px)}.mat-mdc-outlined-button .mdc-button__label+.mat-icon{margin-right:var(--mat-outlined-button-icon-offset, -4px);margin-left:var(--mat-outlined-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-outlined-button .mdc-button__label+.mat-icon{margin-right:var(--mat-outlined-button-icon-spacing, 8px);margin-left:var(--mat-outlined-button-icon-offset, -4px)}.mat-mdc-outlined-button .mat-ripple-element{background-color:var(--mat-outlined-button-ripple-color)}.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-outlined-button-state-layer-color)}.mat-mdc-outlined-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-outlined-button-disabled-state-layer-color)}.mat-mdc-outlined-button:hover .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-outlined-button-hover-state-layer-opacity)}.mat-mdc-outlined-button.cdk-program-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button.cdk-keyboard-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button.mat-mdc-button-disabled-interactive:focus .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-outlined-button-focus-state-layer-opacity)}.mat-mdc-outlined-button:active .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-outlined-button-pressed-state-layer-opacity)}.mat-mdc-outlined-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-outlined-button-touch-target-display)}.mat-mdc-outlined-button[disabled],.mat-mdc-outlined-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-outlined-button-disabled-label-text-color);border-color:var(--mdc-outlined-button-disabled-outline-color)}.mat-mdc-outlined-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-button-base{text-decoration:none}.mat-mdc-button,.mat-mdc-unelevated-button,.mat-mdc-raised-button,.mat-mdc-outlined-button{-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-button .mat-mdc-button-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-button .mat-mdc-button-ripple,.mat-mdc-unelevated-button .mat-mdc-button-ripple,.mat-mdc-raised-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{content:"";opacity:0}.mat-mdc-button .mdc-button__label,.mat-mdc-unelevated-button .mdc-button__label,.mat-mdc-raised-button .mdc-button__label,.mat-mdc-outlined-button .mdc-button__label{z-index:1}.mat-mdc-button .mat-mdc-focus-indicator,.mat-mdc-unelevated-button .mat-mdc-focus-indicator,.mat-mdc-raised-button .mat-mdc-focus-indicator,.mat-mdc-outlined-button .mat-mdc-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-unelevated-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-raised-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-outlined-button:focus .mat-mdc-focus-indicator::before{content:""}.mat-mdc-button._mat-animation-noopable,.mat-mdc-unelevated-button._mat-animation-noopable,.mat-mdc-raised-button._mat-animation-noopable,.mat-mdc-outlined-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-button>.mat-icon,.mat-mdc-unelevated-button>.mat-icon,.mat-mdc-raised-button>.mat-icon,.mat-mdc-outlined-button>.mat-icon{display:inline-block;position:relative;vertical-align:top;font-size:1.125rem;height:1.125rem;width:1.125rem}.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mdc-button__ripple{top:-1px;left:-1px;bottom:-1px;right:-1px;border-width:-1px}.mat-mdc-unelevated-button .mat-mdc-focus-indicator::before,.mat-mdc-raised-button .mat-mdc-focus-indicator::before{margin:calc(calc(var(--mat-mdc-focus-indicator-border-width, 3px) + 2px)*-1)}.mat-mdc-outlined-button .mat-mdc-focus-indicator::before{margin:calc(calc(var(--mat-mdc-focus-indicator-border-width, 3px) + 3px)*-1)}',".cdk-high-contrast-active .mat-mdc-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-unelevated-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-raised-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-outlined-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-icon-button{outline:solid 1px}"],encapsulation:2,changeDetection:0})}return n})(),ebe=(()=>{class n{static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275mod=vo({type:n});static#n=this.\u0275inj=ra({imports:[Qd,P4,Qd]})}return n})();function tbe(n,e){if(1&n){const t=ta();ig(0),Gt(1,"input",29,5),Ai("change",function(r){return Mi(Ci(t).$implicit.handler(r.target.files))}),dn(),Gt(3,"button",13),Ai("click",function(){return Ci(t),Mi(Ga(2).click())}),Vr(4,"img",30),qi(5),dn(),rg()}if(2&n){const t=e.$implicit;jn(),Qn("accept",t.accept),jn(4),yl(" Load ",t.fileType," ")}}function nbe(n,e){if(1&n&&(Gt(0,"div")(1,"p",10)(2,"b"),qi(3,"Event data"),dn()(),Gt(4,"div",11),zs(5,tbe,6,2,"ng-container",28),dn()()),2&n){const t=Pr();jn(5),Qn("ngForOf",t.eventDataOptionsWithHandler)}}let h$=(()=>{class n{eventDisplay;dialogRef;eventDataImportOptions=[qh.JSON];eventDataOptionsWithHandler;supportedEventDataFormats=[new cx(qh.JSON,".json",this.handleJSONEventDataInput.bind(this),"application/json"),new cx(qh.EDM4HEPJSON,".edm4hep.json",this.handleEDM4HEPJSONEventDataInput.bind(this),"application/json"),new cx(qh.JIVEXML,".xml",this.handleJiveXMLDataInput.bind(this),"text/xml"),new cx(qh.ZIP,".zip",this.handleZipEventDataInput.bind(this),".zip"),new cx(qh.IG,".ig",this.handleIgEventDataInput.bind(this),".ig")];constructor(t,i){this.eventDisplay=t,this.dialogRef=i}ngOnInit(){this.eventDataOptionsWithHandler=this.supportedEventDataFormats.filter(t=>this.eventDataImportOptions.includes(t.format)),this.eventDataImportOptions.forEach(t=>{if(t instanceof cx){const i=t.handler.bind(this);t.handler=r=>{i(r),this.onClose()},this.eventDataOptionsWithHandler.push(t)}})}getSupportedEventDataFormats(){return this.eventDataImportOptions.map(t=>t instanceof cx?t.format:t).filter(t=>"ZIP"!==t).join(", ")}onClose(){this.dialogRef.close()}handleJSONEventDataInput(t){this.handleFileInput(t[0],"json",r=>{const s="string"==typeof r?JSON.parse(r):r;this.eventDisplay.parsePhoenixEvents(s)})}handleEDM4HEPJSONEventDataInput(t){this.handleFileInput(t[0],"json",r=>{const s="string"==typeof r?JSON.parse(r):r,o=new Hge;o.setRawEventData(s),o.processEventData(),this.eventDisplay.parsePhoenixEvents(o.getEventData())})}handleJiveXMLDataInput(t){this.handleFileInput(t[0],"xml",r=>{const s=new CE;s.process(r);const o=s.getEventData();this.eventDisplay.buildEventDataFromJSON(o)})}handleOBJInput(t){this.handleFileInput(t[0],"obj",(r,s)=>{this.eventDisplay.parseOBJGeometry(r,s)})}handleSceneInput(t){this.handleFileInput(t[0],"phnx",r=>{this.eventDisplay.parsePhoenixDisplay(r)})}handleGLTFInput(t){this.handleFileInput(t[0],"gltf",(r,s)=>{this.eventDisplay.parseGLTFGeometry(r,s)})}handlePhoenixInput(t){this.handleFileInput(t[0],"phnx",r=>{this.eventDisplay.parsePhoenixDisplay(r)})}handleROOTInput(t){var i=this;return(0,Te.A)(function*(){const r=prompt("Enter object name in ROOT file");yield i.eventDisplay.loadRootGeometry(URL.createObjectURL(t[0]),r,t[0].name.split(".")[0]),i.onClose()})()}handleRootJSONInput(t){var i=this;return(0,Te.A)(function*(){if(!i.isFileOfExtension(t[0],"gz"))return;const r=t[0].name.split(".")[0];yield i.eventDisplay.loadRootJSONGeometry(URL.createObjectURL(t[0]),r),i.onClose()})()}handleIgEventDataInput(t){const i=new gQ;i.readIgArchive(t[0],r=>{const s=i.getAllEventsData(r);this.eventDisplay.parsePhoenixEvents(s),this.onClose()})}handleZipEventDataInput(t){var i=this;return(0,Te.A)(function*(){if(!i.isFileOfExtension(t[0],"zip"))return;const r={};let s;try{s=yield AQ(t[0])}catch(l){return console.error("Error while reading zip",l),void i.eventDisplay.getInfoLogger().add("Could not read zip file","Error")}Object.keys(s).filter(l=>l.endsWith(".json")).forEach(l=>{Object.assign(r,JSON.parse(s[l]))});const o=new CE;Object.keys(s).filter(l=>l.endsWith(".xml")||l.startsWith("JiveXML")).forEach(l=>{o.process(s[l]);const d=o.getEventData();Object.assign(r,{[l]:d})}),i.eventDisplay.parsePhoenixEvents(r),i.onClose()})()}handleFileInput(t,i,r){const s=new FileReader;this.isFileOfExtension(t,i)&&(s.onload=()=>{r(s.result.toString(),t.name.split(".")[0])},s.readAsText(t)),this.onClose()}isFileOfExtension(t,i){return t.name.split(".").pop()===i||(console.error("Error: Invalid file format!"),this.eventDisplay.getInfoLogger().add("Invalid file format!","Error"),!1)}saveScene(){this.eventDisplay.exportPhoenixDisplay()}exportOBJ(){this.eventDisplay.exportToOBJ()}static \u0275fac=function(i){return new(i||n)(Lt(Al),Lt(_x))};static \u0275cmp=rs({type:n,selectors:[["app-io-options-dialog"]],inputs:{eventDataImportOptions:"eventDataImportOptions"},decls:47,vars:1,consts:[["objFileInput",""],["gltfFileInput",""],["rootFileInput",""],["rootJSONFileInput",""],["loadSceneInput",""],["eventDataFileInput",""],[1,"dialog"],["mat-dialog-title",""],["mat-dialog-content","",1,"dialog-content"],[4,"ngIf"],[1,"text-center"],[1,"row","centered"],["type","file","tabindex","-1","accept",".obj","name","image",1,"file-input",3,"change"],[1,"file-input-button",3,"click"],["src","assets/icons/obj.svg","alt",""],["type","file","tabindex","-1","accept",".gltf","name","image",1,"file-input",3,"change"],["src","assets/icons/gltf.svg","alt",""],["type","file","tabindex","-1","accept",".root",1,"file-input",3,"change"],["src","assets/icons/file-import.svg","alt",""],["type","file","tabindex","-1","accept",".json.gz",1,"file-input",3,"change"],["id","exportScene",1,"file-input-button","load-export",3,"click"],["src","assets/icons/save.svg","alt",""],["type","file","tabindex","-1","accept",".phnx","name","image",1,"file-input",3,"change"],["id","importScene",1,"file-input-button","load-export",3,"click"],["src","assets/icons/upload.svg","alt",""],["id","exportOBJ",1,"file-input-button","export-button",3,"click"],["mat-dialog-actions","","align","end"],["mat-flat-button","","color","primary","cdkFocusInitial","",3,"click"],[4,"ngFor","ngForOf"],["type","file","tabindex","-1",1,"file-input",3,"change","accept"],["src","assets/icons/eventData.svg","alt","Event data icon"]],template:function(i,r){if(1&i){const s=ta();Gt(0,"div",6)(1,"h1",7),qi(2,"Import and export"),dn(),Gt(3,"div",8),zs(4,nbe,6,1,"div",9),Gt(5,"p",10)(6,"b"),qi(7,"Geometries"),dn()(),Gt(8,"div",11)(9,"input",12,0),Ai("change",function(l){return Ci(s),Mi(r.handleOBJInput(l.target.files))}),dn(),Gt(11,"button",13),Ai("click",function(){return Ci(s),Mi(Ga(10).click())}),Vr(12,"img",14),qi(13," Load .obj "),dn(),Gt(14,"input",15,1),Ai("change",function(l){return Ci(s),Mi(r.handleGLTFInput(l.target.files))}),dn(),Gt(16,"button",13),Ai("click",function(){return Ci(s),Mi(Ga(15).click())}),Vr(17,"img",16),qi(18," Load .gltf "),dn(),Gt(19,"input",17,2),Ai("change",function(l){return Ci(s),Mi(r.handleROOTInput(l.target.files))}),dn(),Gt(21,"button",13),Ai("click",function(){return Ci(s),Mi(Ga(20).click())}),Vr(22,"img",18),qi(23," Load .root "),dn(),Gt(24,"input",19,3),Ai("change",function(l){return Ci(s),Mi(r.handleRootJSONInput(l.target.files))}),dn(),Gt(26,"button",13),Ai("click",function(){return Ci(s),Mi(Ga(25).click())}),Vr(27,"img",18),qi(28," Load .json.gz "),dn()(),Gt(29,"p",10)(30,"b"),qi(31,"Scene"),dn()(),Gt(32,"div",11)(33,"button",20),Ai("click",function(){return Ci(s),Mi(r.saveScene())}),Vr(34,"img",21),qi(35," Save scene "),dn(),Gt(36,"input",22,4),Ai("change",function(l){return Ci(s),Mi(r.handlePhoenixInput(l.target.files))}),dn(),Gt(38,"button",23),Ai("click",function(){return Ci(s),Mi(Ga(37).click())}),Vr(39,"img",24),qi(40," Load scene "),dn(),Gt(41,"button",25),Ai("click",function(){return Ci(s),Mi(r.exportOBJ())}),Vr(42,"img",14),qi(43," Save OBJ "),dn()()(),Gt(44,"div",26)(45,"button",27),Ai("click",function(){return Ci(s),Mi(r.onClose())}),qi(46," Close "),dn()()()}2&i&&(jn(4),Qn("ngIf",r.eventDataImportOptions.length>0))},dependencies:[am,Lh,jE,XE,$E,BC],styles:[".row[_ngcontent-%COMP%]{justify-content:center;margin:1rem 0}.file-input[_ngcontent-%COMP%]{width:.1px;height:.1px;opacity:0;overflow:hidden;position:absolute;z-index:-1}.file-input-button[_ngcontent-%COMP%]{font-size:1em;font-weight:700;color:#fff;background-color:#6eaece;padding:1em .5em;border:none;border-radius:10px;width:8rem;margin:0 .4rem}.file-input-button.load-export[_ngcontent-%COMP%]{padding:.8em .2em;width:7rem}.file-input-button.load-export[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{max-height:1.2em}.file-input-button.export-button[_ngcontent-%COMP%]{background-color:#cb7133}.file-input-button.export-button[_ngcontent-%COMP%]:hover{background-color:#ad5b2d}.file-input-button[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{max-height:2em;display:block;width:100%}.file-input-button[_ngcontent-%COMP%]:hover{background-color:#118ab2}#exportScene[_ngcontent-%COMP%]{background-color:#5bd99e}#exportScene[_ngcontent-%COMP%]:hover{background-color:#05c292}#importScene[_ngcontent-%COMP%]{background-color:#ecc25e}#importScene[_ngcontent-%COMP%]:hover{background-color:#d6b44d}"]})}return n})(),gL=(()=>{class n{dialog;eventDataImportOptions=Object.values(qh);constructor(t){this.dialog=t}openIODialog(){this.dialog.open(h$,{panelClass:"dialog"}).componentInstance.eventDataImportOptions=this.eventDataImportOptions}static \u0275fac=function(i){return new(i||n)(Lt(yx))};static \u0275cmp=rs({type:n,selectors:[["app-io-options"]],inputs:{eventDataImportOptions:"eventDataImportOptions"},decls:1,vars:1,consts:[["tooltip","Import and export options","icon","import",3,"click","active"]],template:function(i,r){1&i&&(Gt(0,"app-menu-toggle",0),Ai("click",function(){return r.openIODialog()}),dn()),2&i&&Qn("active",!1)},dependencies:[qc]})}return n})();const ibe=["overlayWindow"];let f$=(()=>{class n{eventDisplay;showOverlay=!0;transparentBody=!1;orthographicView=!1;overlayViewFixed=!1;overlayWindow;constructor(t){this.eventDisplay=t}ngAfterViewInit(){const t=this.initializeCanvas(this.overlayWindow.nativeElement);this.eventDisplay.setOverlayRenderer(t)}initializeCanvas(t){const i=window.innerWidth/2.5,r=window.innerHeight/2.5;return t.width=i,t.height=r,t.style.width=i.toString()+" px",t.style.height=r.toString()+" px",t}switchOverlayView(){this.orthographicView=!this.orthographicView,this.eventDisplay.getUIManager().toggleOrthographicView(this.orthographicView)}fixOverlayView(){this.overlayViewFixed=!this.overlayViewFixed,this.eventDisplay.fixOverlayView(this.overlayViewFixed)}toggleBgTransparency(){this.transparentBody=!this.transparentBody}static \u0275fac=function(i){return new(i||n)(Lt(Al))};static \u0275cmp=rs({type:n,selectors:[["app-overlay-view-window"]],viewQuery:function(i,r){if(1&i&&_l(ibe,5),2&i){let s;pa(s=ma())&&(r.overlayWindow=s.first)}},inputs:{showOverlay:"showOverlay"},decls:8,vars:9,consts:[["overlayWindow",""],["overlayTitle","Overlay View","icon","overlay",3,"resizable","transparentBody","active","keepAspectRatioFixed"],[1,"overlay-view-wrapper"],["id","overlay-canvas",3,"hidden"],[1,"overlay-view-controls","position-absolute","d-flex","flex-row"],["icon","transparent","matTooltip","Toggle background transparency",1,"overlay-view-control",3,"click"],["icon","move-lock",1,"overlay-view-control",3,"click","matTooltip","active"],[1,"overlay-view-control",3,"click","icon","matTooltip"]],template:function(i,r){if(1&i){const s=ta();Gt(0,"app-overlay",1)(1,"div",2),Vr(2,"canvas",3,0),Gt(4,"div",4)(5,"app-menu-toggle",5),Ai("click",function(){return Ci(s),Mi(r.toggleBgTransparency())}),dn(),Gt(6,"app-menu-toggle",6),Ai("click",function(){return Ci(s),Mi(r.fixOverlayView())}),dn(),Gt(7,"app-menu-toggle",7),Ai("click",function(){return Ci(s),Mi(r.switchOverlayView())}),dn()()()()}2&i&&(Qn("resizable",!0)("transparentBody",r.transparentBody)("active",r.showOverlay)("keepAspectRatioFixed",!0),jn(2),Qn("hidden",!r.showOverlay),jn(4),Qn("matTooltip",(r.overlayViewFixed?"Restore":"Fix")+" overlay view")("active",r.overlayViewFixed),jn(),Qn("icon",r.orthographicView?"orthographic":"perspective")("matTooltip","Switch to "+(r.orthographicView?"orthographic":"perspective")+" view"))},dependencies:[a1,qc,IC],styles:["#overlay-canvas[_ngcontent-%COMP%]{background-color:#0000001a;width:100%}.overlay-view-controls[_ngcontent-%COMP%]{bottom:1em;right:1em;opacity:0;transition:opacity .2s}.overlay-view-controls[_ngcontent-%COMP%] .overlay-view-control[_ngcontent-%COMP%]{background:var(--phoenix-background-color-secondary);box-shadow:var(--phoenix-box-shadow);overflow:hidden;width:2.5rem;height:2.5rem;border-radius:50%;display:flex;justify-content:center;align-items:center}.overlay-view-wrapper[_ngcontent-%COMP%]:hover .overlay-view-controls[_ngcontent-%COMP%]{opacity:1;transition:opacity .2s}"]})}return n})(),_L=(()=>{class n{overlay;overlayWindow;showOverlay=!1;constructor(t){this.overlay=t}ngOnInit(){const t=this.overlay.create(),i=new t1(f$);this.overlayWindow=t.attach(i),this.overlayWindow.instance.showOverlay=this.showOverlay}ngOnDestroy(){this.overlayWindow.destroy()}toggleOverlay(){this.showOverlay=!this.showOverlay,this.overlayWindow.instance.showOverlay=this.showOverlay}static \u0275fac=function(i){return new(i||n)(Lt(fu))};static \u0275cmp=rs({type:n,selectors:[["app-overlay-view"]],decls:1,vars:1,consts:[["tooltip","Overlay view","icon","overlay",3,"click","active"]],template:function(i,r){1&i&&(Gt(0,"app-menu-toggle",0),Ai("click",function(){return r.toggleOverlay()}),dn()),2&i&&Qn("active",r.showOverlay)},dependencies:[qc]})}return n})(),p$=(()=>{class n{transform(t,i){let r="";return Array.isArray(t)?(r+="\n",t.forEach(s=>r+=s+"\n")):r=t.toString(),r}static \u0275fac=function(i){return new(i||n)};static \u0275pipe=Ic({name:"attributePipe",type:n,pure:!0})}return n})();function rbe(n,e){if(1&n&&(Gt(0,"div",4)(1,"strong"),qi(2),dn(),qi(3),rS(4,"attributePipe"),dn()),2&n){const t=e.$implicit;jn(2),tA(t.attributeName),jn(),yl(" : ",function Q6(n,e,t){const i=n+Cs,r=Zi(),s=km(r,i);return sS(r,i)?z6(r,Yc(),e,s.transform,t,s):s.transform(t)}(4,2,t.attributeValue)," ")}}function sbe(n,e){if(1&n&&(Gt(0,"div",2),zs(1,rbe,5,4,"div",3),dn()),2&n){const t=Pr();jn(),Qn("ngForOf",t.selectedObject.attributes)}}let m$=(()=>{class n{eventDisplay;hiddenSelectedInfo;selectedObject={name:"Object",attributes:[]};constructor(t){this.eventDisplay=t}ngOnInit(){this.eventDisplay.allowSelection(this.selectedObject)}static \u0275fac=function(i){return new(i||n)(Lt(Al))};static \u0275cmp=rs({type:n,selectors:[["app-object-selection-overlay"]],inputs:{hiddenSelectedInfo:"hiddenSelectedInfo"},decls:2,vars:3,consts:[["icon","cursor",3,"overlayTitle","active"],["id","selectedObjectPanelBody","class","m-1",4,"ngIf"],["id","selectedObjectPanelBody",1,"m-1"],["class","attributeField",4,"ngFor","ngForOf"],[1,"attributeField"]],template:function(i,r){1&i&&(Gt(0,"app-overlay",0),zs(1,sbe,2,1,"div",1),dn()),2&i&&(Qn("overlayTitle",r.selectedObject.name)("active",!r.hiddenSelectedInfo),jn(),Qn("ngIf",r.selectedObject.attributes.length>0))},dependencies:[am,Lh,IC,p$],styles:["#selectedObjectPanelBody[_ngcontent-%COMP%]{padding:0 .8em;overflow:auto;max-width:300px;max-height:16rem;min-width:7rem}"]})}return n})(),yL=(()=>{class n{overlay;eventDisplay;hiddenSelectedInfo=!0;overlayWindow;constructor(t,i){this.overlay=t,this.eventDisplay=i}ngOnInit(){const t=this.overlay.create(),i=new t1(m$);this.overlayWindow=t.attach(i),this.overlayWindow.instance.hiddenSelectedInfo=this.hiddenSelectedInfo}ngOnDestroy(){this.overlayWindow.destroy()}toggleOverlay(){this.hiddenSelectedInfo=!this.hiddenSelectedInfo,this.overlayWindow.instance.hiddenSelectedInfo=this.hiddenSelectedInfo,this.eventDisplay.enableSelecting(!this.hiddenSelectedInfo)}static \u0275fac=function(i){return new(i||n)(Lt(fu),Lt(Al))};static \u0275cmp=rs({type:n,selectors:[["app-object-selection"]],decls:1,vars:1,consts:[["tooltip","Object selection","icon","cursor",3,"click","active"]],template:function(i,r){1&i&&(Gt(0,"app-menu-toggle",0),Ai("click",function(){return r.toggleOverlay()}),dn()),2&i&&Qn("active",!r.hiddenSelectedInfo)},dependencies:[qc]})}return n})();function obe(n,e){if(1&n&&(Gt(0,"option",4),qi(1),dn()),2&n){const t=e.$implicit;Qn("value",t),jn(),yl(" ",t," ")}}function abe(n,e){if(1&n){const t=ta();Gt(0,"div",1)(1,"select",2),Ai("change",function(r){return Ci(t),Mi(Pr().changeEvent(r))}),zs(2,obe,2,2,"option",3),dn()()}if(2&n){const t=Pr();jn(2),Qn("ngForOf",t.events)}}let vL=(()=>{class n{eventDisplay;events;constructor(t){this.eventDisplay=t}ngOnInit(){this.eventDisplay.listenToLoadedEventsChange(t=>this.events=t)}changeEvent(t){this.eventDisplay.loadEvent(t.target.value)}static \u0275fac=function(i){return new(i||n)(Lt(Al))};static \u0275cmp=rs({type:n,selectors:[["app-event-selector"]],decls:1,vars:1,consts:[["class","eventSelector mx-2","matTooltip","Event selector","matTooltipPosition","above",4,"ngIf"],["matTooltip","Event selector","matTooltipPosition","above",1,"eventSelector","mx-2"],["name","event",3,"change"],[3,"value",4,"ngFor","ngForOf"],[3,"value"]],template:function(i,r){1&i&&zs(0,abe,3,1,"div",0),2&i&&Qn("ngIf",null!=r.events)},dependencies:[am,Lh,a1,EC,TC],styles:[".eventSelector[_ngcontent-%COMP%] select[_ngcontent-%COMP%]{width:9rem;padding:5px 10px;font-size:12px;border:1px solid rgba(88,88,88,.08);box-shadow:var(--phoenix-icon-shadow);background-color:var(--phoenix-background-color-tertiary);color:var(--phoenix-text-color-secondary)}"]})}return n})();const lbe=["knob"],cbe=["valueIndicatorContainer"];function dbe(n,e){if(1&n&&(Gt(0,"div",2,1)(2,"div",5)(3,"span",6),qi(4),dn()()()),2&n){const t=Pr();jn(4),tA(t.valueIndicatorText)}}const ube=["trackActive"],hbe=["*"];function fbe(n,e){if(1&n&&Vr(0,"div"),2&n){const t=e.$implicit,i=e.$index,r=Pr(3);P_(0===t?"mdc-slider__tick-mark--active":"mdc-slider__tick-mark--inactive"),$M("transform",r._calcTickMarkTransform(i))}}function pbe(n,e){1&n&&function O3(n,e,t,i,r,s,o,l,d,u,f,A,S){im("NgControlFlow");const R=void 0!==d,G=Zi(),re=l?o.bind(G[Yo][Ka]):o,se=new hK(R,re);G[Cs+n]=se,zs(n+1,e,t,i,r,s),R&&zs(n+2,d,u,f,A,S)}(0,fbe,1,4,"div",8,F3),2&n&&function L3(n){const e=Ye(null),t=Lc();try{const i=Zi(),r=i[Gr],s=i[t];if(void 0===s.liveCollection){const l=t+1,d=QP(i,l),u=WP(r,l);s.liveCollection=new fK(d,i,u)}else s.liveCollection.reset();const o=s.liveCollection;if(function cK(n,e,t){let i,r,s=0,o=n.length-1;if(Array.isArray(e)){let l=e.length-1;for(;s<=o&&s<=l;){const d=n.at(s),u=e[s],f=GP(s,d,s,u,t);if(0!==f){f<0&&n.updateValue(s,u),s++;continue}const A=n.at(o),S=e[l],R=GP(o,A,l,S,t);if(0!==R){R<0&&n.updateValue(o,S),o--,l--;continue}const G=t(s,d),re=t(o,A),se=t(s,u);if(Object.is(se,re)){const le=t(l,S);Object.is(le,G)?(n.swap(s,o),n.updateValue(o,S),l--,o--):n.move(o,s),n.updateValue(s,u),s++}else if(i??=new D8,r??=T8(n,s,o,t),qP(n,i,s,se))n.updateValue(s,u),s++,o++;else if(r.has(se))i.set(G,n.detach(s)),o--;else{const le=n.create(s,e[s]);n.attach(s,le),s++,o++}}for(;s<=l;)E8(n,i,t,s,e[s]),s++}else if(null!=e){const l=e[Symbol.iterator]();let d=l.next();for(;!d.done&&s<=o;){const u=n.at(s),f=d.value,A=GP(s,u,s,f,t);if(0!==A)A<0&&n.updateValue(s,f),s++,d=l.next();else{i??=new D8,r??=T8(n,s,o,t);const S=t(s,f);if(qP(n,i,s,S))n.updateValue(s,f),s++,o++,d=l.next();else if(r.has(S)){const R=t(s,u);i.set(R,n.detach(s)),o--}else n.attach(s,n.create(s,f)),s++,o++,d=l.next()}}for(;!d.done;)E8(n,i,t,n.length,d.value),d=l.next()}for(;s<=o;)n.destroy(n.detach(o--));i?.forEach(l=>{n.destroy(l)})}(o,n,s.trackByFn),o.updateIndexes(),s.hasEmptyBlock){const l=hh(),d=0===o.length;if(Hd(i,l,d)){const u=t+2,f=QP(i,u);if(d){const A=WP(r,u),S=vy(f,A.tView.ssrId);Kv(f,Xv(i,A,void 0,{dehydratedView:S}),0,fy(A,S))}else uw(f,0)}}}finally{Ye(e)}}(Pr(2)._tickMarks)}function mbe(n,e){if(1&n&&(Gt(0,"div",6,1),zs(2,pbe,2,0),dn()),2&n){const t=Pr();jn(2),R_(2,t._cachedWidth?2:-1)}}function Abe(n,e){if(1&n&&Vr(0,"mat-slider-visual-thumb",7),2&n){const t=Pr();Qn("discrete",t.discrete)("thumbPosition",1)("valueIndicatorText",t.startValueIndicatorText)}}var na=function(n){return n[n.START=1]="START",n[n.END=2]="END",n}(na||{}),PC=function(n){return n[n.ACTIVE=0]="ACTIVE",n[n.INACTIVE=1]="INACTIVE",n}(PC||{});const iB=new Bi("_MatSlider"),A$=new Bi("_MatSliderThumb"),g$=new Bi("_MatSliderRangeThumb"),_$=new Bi("_MatSliderVisualThumb");let gbe=(()=>{class n{constructor(t,i,r,s){this._cdr=t,this._ngZone=i,this._slider=s,this._isHovered=!1,this._isActive=!1,this._isValueIndicatorVisible=!1,this._platform=pi(dd),this._onPointerMove=o=>{if(this._sliderInput._isFocused)return;const l=this._hostElement.getBoundingClientRect(),d=this._slider._isCursorOnSliderThumb(o,l);this._isHovered=d,d?this._showHoverRipple():this._hideRipple(this._hoverRippleRef)},this._onMouseLeave=()=>{this._isHovered=!1,this._hideRipple(this._hoverRippleRef)},this._onFocus=()=>{this._hideRipple(this._hoverRippleRef),this._showFocusRipple(),this._hostElement.classList.add("mdc-slider__thumb--focused")},this._onBlur=()=>{this._isActive||this._hideRipple(this._focusRippleRef),this._isHovered&&this._showHoverRipple(),this._hostElement.classList.remove("mdc-slider__thumb--focused")},this._onDragStart=o=>{0===o.button&&(this._isActive=!0,this._showActiveRipple())},this._onDragEnd=()=>{this._isActive=!1,this._hideRipple(this._activeRippleRef),this._sliderInput._isFocused||this._hideRipple(this._focusRippleRef),this._platform.SAFARI&&this._showHoverRipple()},this._hostElement=r.nativeElement}ngAfterViewInit(){this._ripple.radius=24,this._sliderInput=this._slider._getInput(this.thumbPosition),this._sliderInputEl=this._sliderInput._hostElement;const t=this._sliderInputEl;this._ngZone.runOutsideAngular(()=>{t.addEventListener("pointermove",this._onPointerMove),t.addEventListener("pointerdown",this._onDragStart),t.addEventListener("pointerup",this._onDragEnd),t.addEventListener("pointerleave",this._onMouseLeave),t.addEventListener("focus",this._onFocus),t.addEventListener("blur",this._onBlur)})}ngOnDestroy(){const t=this._sliderInputEl;t&&(t.removeEventListener("pointermove",this._onPointerMove),t.removeEventListener("pointerdown",this._onDragStart),t.removeEventListener("pointerup",this._onDragEnd),t.removeEventListener("pointerleave",this._onMouseLeave),t.removeEventListener("focus",this._onFocus),t.removeEventListener("blur",this._onBlur))}_showHoverRipple(){this._isShowingRipple(this._hoverRippleRef)||(this._hoverRippleRef=this._showRipple({enterDuration:0,exitDuration:0}),this._hoverRippleRef?.element.classList.add("mat-mdc-slider-hover-ripple"))}_showFocusRipple(){this._isShowingRipple(this._focusRippleRef)||(this._focusRippleRef=this._showRipple({enterDuration:0,exitDuration:0},!0),this._focusRippleRef?.element.classList.add("mat-mdc-slider-focus-ripple"))}_showActiveRipple(){this._isShowingRipple(this._activeRippleRef)||(this._activeRippleRef=this._showRipple({enterDuration:225,exitDuration:400}),this._activeRippleRef?.element.classList.add("mat-mdc-slider-active-ripple"))}_isShowingRipple(t){return t?.state===xp.FADING_IN||t?.state===xp.VISIBLE}_showRipple(t,i){if(!this._slider.disabled&&(this._showValueIndicator(),this._slider._isRange&&this._slider._getThumb(this.thumbPosition===na.START?na.END:na.START)._showValueIndicator(),!this._slider._globalRippleOptions?.disabled||i))return this._ripple.launch({animation:this._slider._noopAnimations?{enterDuration:0,exitDuration:0}:t,centered:!0,persistent:!0})}_hideRipple(t){if(t?.fadeOut(),this._isShowingAnyRipple())return;this._slider._isRange||this._hideValueIndicator();const i=this._getSibling();i._isShowingAnyRipple()||(this._hideValueIndicator(),i._hideValueIndicator())}_showValueIndicator(){this._hostElement.classList.add("mdc-slider__thumb--with-indicator")}_hideValueIndicator(){this._hostElement.classList.remove("mdc-slider__thumb--with-indicator")}_getSibling(){return this._slider._getThumb(this.thumbPosition===na.START?na.END:na.START)}_getValueIndicatorContainer(){return this._valueIndicatorContainer?.nativeElement}_getKnob(){return this._knob.nativeElement}_isShowingAnyRipple(){return this._isShowingRipple(this._hoverRippleRef)||this._isShowingRipple(this._focusRippleRef)||this._isShowingRipple(this._activeRippleRef)}static#e=this.\u0275fac=function(i){return new(i||n)(Lt(Sc),Lt(io),Lt(oo),Lt(iB))};static#t=this.\u0275cmp=rs({type:n,selectors:[["mat-slider-visual-thumb"]],viewQuery:function(i,r){if(1&i&&(_l(k0,5),_l(lbe,5),_l(cbe,5)),2&i){let s;pa(s=ma())&&(r._ripple=s.first),pa(s=ma())&&(r._knob=s.first),pa(s=ma())&&(r._valueIndicatorContainer=s.first)}},hostAttrs:[1,"mdc-slider__thumb","mat-mdc-slider-visual-thumb"],inputs:{discrete:"discrete",thumbPosition:"thumbPosition",valueIndicatorText:"valueIndicatorText"},standalone:!0,features:[qo([{provide:_$,useExisting:n}]),yd],decls:4,vars:2,consts:[["knob",""],["valueIndicatorContainer",""],[1,"mdc-slider__value-indicator-container"],[1,"mdc-slider__thumb-knob"],["matRipple","",1,"mat-mdc-focus-indicator",3,"matRippleDisabled"],[1,"mdc-slider__value-indicator"],[1,"mdc-slider__value-indicator-text"]],template:function(i,r){1&i&&(zs(0,dbe,5,1,"div",2),Vr(1,"div",3,0)(3,"div",4)),2&i&&(R_(0,r.discrete?0:-1),jn(3),Qn("matRippleDisabled",!0))},dependencies:[k0],styles:[".mat-mdc-slider-visual-thumb .mat-ripple{height:100%;width:100%}.mat-mdc-slider .mdc-slider__tick-marks{justify-content:start}.mat-mdc-slider .mdc-slider__tick-marks .mdc-slider__tick-mark--active,.mat-mdc-slider .mdc-slider__tick-marks .mdc-slider__tick-mark--inactive{position:absolute;left:2px}"],encapsulation:2,changeDetection:0})}return n})(),bL=(()=>{class n{get disabled(){return this._disabled}set disabled(t){this._disabled=t;const i=this._getInput(na.END),r=this._getInput(na.START);i&&(i.disabled=this._disabled),r&&(r.disabled=this._disabled)}get discrete(){return this._discrete}set discrete(t){this._discrete=t,this._updateValueIndicatorUIs()}get min(){return this._min}set min(t){const i=isNaN(t)?this._min:t;this._min!==i&&this._updateMin(i)}_updateMin(t){const i=this._min;this._min=t,this._isRange?this._updateMinRange({old:i,new:t}):this._updateMinNonRange(t),this._onMinMaxOrStepChange()}_updateMinRange(t){const i=this._getInput(na.END),r=this._getInput(na.START),s=i.value,o=r.value;r.min=t.new,i.min=Math.max(t.new,r.value),r.max=Math.min(i.max,i.value),r._updateWidthInactive(),i._updateWidthInactive(),t.newt.old?this._onTranslateXChangeBySideEffect(r,i):this._onTranslateXChangeBySideEffect(i,r),s!==i.value&&this._onValueChange(i),o!==r.value&&this._onValueChange(r)}_updateMaxNonRange(t){const i=this._getInput(na.END);if(i){const r=i.value;i.max=t,i._updateThumbUIByValue(),this._updateTrackUI(i),r!==i.value&&this._onValueChange(i)}}get step(){return this._step}set step(t){const i=isNaN(t)?this._step:t;this._step!==i&&this._updateStep(i)}_updateStep(t){this._step=t,this._isRange?this._updateStepRange():this._updateStepNonRange(),this._onMinMaxOrStepChange()}_updateStepRange(){const t=this._getInput(na.END),i=this._getInput(na.START),r=t.value,s=i.value,o=i.value;t.min=this._min,i.max=this._max,t.step=this._step,i.step=this._step,this._platform.SAFARI&&(t.value=t.value,i.value=i.value),t.min=Math.max(this._min,i.value),i.max=Math.min(this._max,t.value),i._updateWidthInactive(),t._updateWidthInactive(),t.value`${d}`,this._rippleRadius=24,this.startValueIndicatorText="",this.endValueIndicatorText="",this._isRange=!1,this._isRtl=!1,this._hasViewInitialized=!1,this._tickMarkTrackWidth=0,this._hasAnimation=!1,this._resizeTimer=null,this._platform=pi(dd),this._knobRadius=8,this._thumbsOverlap=!1,this._noopAnimations="NoopAnimations"===l,this._dirChangeSubscription=this._dir.change.subscribe(()=>this._onDirChange()),this._isRtl="rtl"===this._dir.value}ngAfterViewInit(){this._platform.isBrowser&&this._updateDimensions();const t=this._getInput(na.END),i=this._getInput(na.START);this._isRange=!!t&&!!i,this._cdr.detectChanges();const r=this._getThumb(na.END);this._rippleRadius=r._ripple.radius,this._inputPadding=this._rippleRadius-this._knobRadius,this._isRange?this._initUIRange(t,i):this._initUINonRange(t),this._updateTrackUI(t),this._updateTickMarkUI(),this._updateTickMarkTrackUI(),this._observeHostResize(),this._cdr.detectChanges()}_initUINonRange(t){t.initProps(),t.initUI(),this._updateValueIndicatorUI(t),this._hasViewInitialized=!0,t._updateThumbUIByValue()}_initUIRange(t,i){t.initProps(),t.initUI(),i.initProps(),i.initUI(),t._updateMinMax(),i._updateMinMax(),t._updateStaticStyles(),i._updateStaticStyles(),this._updateValueIndicatorUIs(),this._hasViewInitialized=!0,t._updateThumbUIByValue(),i._updateThumbUIByValue()}ngOnDestroy(){this._dirChangeSubscription.unsubscribe(),this._resizeObserver?.disconnect(),this._resizeObserver=null}_onDirChange(){this._isRtl="rtl"===this._dir.value,this._isRange?this._onDirChangeRange():this._onDirChangeNonRange(),this._updateTickMarkUI()}_onDirChangeRange(){const t=this._getInput(na.END),i=this._getInput(na.START);t._setIsLeftThumb(),i._setIsLeftThumb(),t.translateX=t._calcTranslateXByValue(),i.translateX=i._calcTranslateXByValue(),t._updateStaticStyles(),i._updateStaticStyles(),t._updateWidthInactive(),i._updateWidthInactive(),t._updateThumbUIByValue(),i._updateThumbUIByValue()}_onDirChangeNonRange(){this._getInput(na.END)._updateThumbUIByValue()}_observeHostResize(){typeof ResizeObserver>"u"||!ResizeObserver||this._ngZone.runOutsideAngular(()=>{this._resizeObserver=new ResizeObserver(()=>{this._isActive()||(this._resizeTimer&&clearTimeout(this._resizeTimer),this._onResize())}),this._resizeObserver.observe(this._elementRef.nativeElement)})}_isActive(){return this._getThumb(na.START)._isActive||this._getThumb(na.END)._isActive}_getValue(t=na.END){const i=this._getInput(t);return i?i.value:this.min}_skipUpdate(){return!(!this._getInput(na.START)?._skipUIUpdate&&!this._getInput(na.END)?._skipUIUpdate)}_updateDimensions(){this._cachedWidth=this._elementRef.nativeElement.offsetWidth,this._cachedLeft=this._elementRef.nativeElement.getBoundingClientRect().left}_setTrackActiveStyles(t){const i=this._trackActive.nativeElement.style;i.left=t.left,i.right=t.right,i.transformOrigin=t.transformOrigin,i.transform=t.transform}_calcTickMarkTransform(t){return`translateX(${t*(this._tickMarkTrackWidth/(this._tickMarks.length-1))}px`}_onTranslateXChange(t){this._hasViewInitialized&&(this._updateThumbUI(t),this._updateTrackUI(t),this._updateOverlappingThumbUI(t))}_onTranslateXChangeBySideEffect(t,i){this._hasViewInitialized&&(t._updateThumbUIByValue(),i._updateThumbUIByValue())}_onValueChange(t){this._hasViewInitialized&&(this._updateValueIndicatorUI(t),this._updateTickMarkUI(),this._cdr.detectChanges())}_onMinMaxOrStepChange(){this._hasViewInitialized&&(this._updateTickMarkUI(),this._updateTickMarkTrackUI(),this._cdr.markForCheck())}_onResize(){if(this._hasViewInitialized){if(this._updateDimensions(),this._isRange){const t=this._getInput(na.END),i=this._getInput(na.START);t._updateThumbUIByValue(),i._updateThumbUIByValue(),t._updateStaticStyles(),i._updateStaticStyles(),t._updateMinMax(),i._updateMinMax(),t._updateWidthInactive(),i._updateWidthInactive()}else{const t=this._getInput(na.END);t&&t._updateThumbUIByValue()}this._updateTickMarkUI(),this._updateTickMarkTrackUI(),this._cdr.detectChanges()}}_areThumbsOverlapping(){const t=this._getInput(na.START),i=this._getInput(na.END);return!(!t||!i)&&i.translateX-t.translateX<20}_updateOverlappingThumbClassNames(t){const i=t.getSibling(),r=this._getThumb(t.thumbPosition);this._getThumb(i.thumbPosition)._hostElement.classList.remove("mdc-slider__thumb--top"),r._hostElement.classList.toggle("mdc-slider__thumb--top",this._thumbsOverlap)}_updateOverlappingThumbUI(t){!this._isRange||this._skipUpdate()||this._thumbsOverlap!==this._areThumbsOverlapping()&&(this._thumbsOverlap=!this._thumbsOverlap,this._updateOverlappingThumbClassNames(t))}_updateThumbUI(t){this._skipUpdate()||(this._getThumb(t.thumbPosition===na.END?na.END:na.START)._hostElement.style.transform=`translateX(${t.translateX}px)`)}_updateValueIndicatorUI(t){if(this._skipUpdate())return;const i=this.displayWith(t.value);if(this._hasViewInitialized?t._valuetext=i:t._hostElement.setAttribute("aria-valuetext",i),this.discrete){t.thumbPosition===na.START?this.startValueIndicatorText=i:this.endValueIndicatorText=i;const r=this._getThumb(t.thumbPosition);i.length<3?r._hostElement.classList.add("mdc-slider__thumb--short-value"):r._hostElement.classList.remove("mdc-slider__thumb--short-value")}}_updateValueIndicatorUIs(){const t=this._getInput(na.END),i=this._getInput(na.START);t&&this._updateValueIndicatorUI(t),i&&this._updateValueIndicatorUI(i)}_updateTickMarkTrackUI(){if(!this.showTickMarks||this._skipUpdate())return;const t=this._step&&this._step>0?this._step:1,r=(Math.floor(this.max/t)*t-this.min)/(this.max-this.min);this._tickMarkTrackWidth=this._cachedWidth*r-6}_updateTrackUI(t){this._skipUpdate()||(this._isRange?this._updateTrackUIRange(t):this._updateTrackUINonRange(t))}_updateTrackUIRange(t){const i=t.getSibling();if(!i||!this._cachedWidth)return;const r=Math.abs(i.translateX-t.translateX)/this._cachedWidth;this._setTrackActiveStyles(t._isLeftThumb&&this._cachedWidth?{left:"auto",right:this._cachedWidth-i.translateX+"px",transformOrigin:"right",transform:`scaleX(${r})`}:{left:`${i.translateX}px`,right:"auto",transformOrigin:"left",transform:`scaleX(${r})`})}_updateTrackUINonRange(t){this._setTrackActiveStyles(this._isRtl?{left:"auto",right:"0px",transformOrigin:"right",transform:`scaleX(${1-t.fillPercentage})`}:{left:"0px",right:"auto",transformOrigin:"left",transform:`scaleX(${t.fillPercentage})`})}_updateTickMarkUI(){if(!this.showTickMarks||void 0===this.step||void 0===this.min||void 0===this.max)return;const t=this.step>0?this.step:1;this._isRange?this._updateTickMarkUIRange(t):this._updateTickMarkUINonRange(t),this._isRtl&&this._tickMarks.reverse()}_updateTickMarkUINonRange(t){const i=this._getValue();let r=Math.max(Math.floor((i-this.min)/t),0),s=Math.max(Math.floor((this.max-i)/t),0);this._isRtl?r++:s++,this._tickMarks=Array(r).fill(PC.ACTIVE).concat(Array(s).fill(PC.INACTIVE))}_updateTickMarkUIRange(t){const i=this._getValue(),r=this._getValue(na.START),s=Math.max(Math.floor((r-this.min)/t),0),o=Math.max(Math.floor((i-r)/t)+1,0),l=Math.max(Math.floor((this.max-i)/t),0);this._tickMarks=Array(s).fill(PC.INACTIVE).concat(Array(o).fill(PC.ACTIVE),Array(l).fill(PC.INACTIVE))}_getInput(t){return t===na.END&&this._input?this._input:this._inputs?.length?t===na.START?this._inputs.first:this._inputs.last:void 0}_getThumb(t){return t===na.END?this._thumbs?.last:this._thumbs?.first}_setTransition(t){this._hasAnimation=!this._platform.IOS&&t&&!this._noopAnimations,this._elementRef.nativeElement.classList.toggle("mat-mdc-slider-with-animation",this._hasAnimation)}_isCursorOnSliderThumb(t,i){const r=i.width/2,d=t.clientY-(i.y+r);return Math.pow(t.clientX-(i.x+r),2)+Math.pow(d,2)YE),multi:!0};let YE=(()=>{class n{get value(){return ru(this._hostElement.value,0)}set value(t){const i=(t=isNaN(t)?0:t)+"";this._hasSetInitialValue?this._isActive||this._setValue(i):this._initialValue=i}_setValue(t){this._hostElement.value=t,this._updateThumbUIByValue(),this._slider._onValueChange(this),this._cdr.detectChanges(),this._slider._cdr.markForCheck()}get translateX(){return this._slider.min>=this._slider.max?(this._translateX=this._tickMarkOffset,this._translateX):(void 0===this._translateX&&(this._translateX=this._calcTranslateXByValue()),this._translateX)}set translateX(t){this._translateX=t}get min(){return ru(this._hostElement.min,0)}set min(t){this._hostElement.min=t+"",this._cdr.detectChanges()}get max(){return ru(this._hostElement.max,0)}set max(t){this._hostElement.max=t+"",this._cdr.detectChanges()}get step(){return ru(this._hostElement.step,0)}set step(t){this._hostElement.step=t+"",this._cdr.detectChanges()}get disabled(){return _o(this._hostElement.disabled)}set disabled(t){this._hostElement.disabled=t,this._cdr.detectChanges(),this._slider.disabled!==this.disabled&&(this._slider.disabled=this.disabled)}get percentage(){return this._slider.min>=this._slider.max?this._slider._isRtl?1:0:(this.value-this._slider.min)/(this._slider.max-this._slider.min)}get fillPercentage(){return this._slider._cachedWidth?0===this._translateX?0:this.translateX/this._slider._cachedWidth:this._slider._isRtl?1:0}_setIsFocused(t){this._isFocused=t}constructor(t,i,r,s){this._ngZone=t,this._elementRef=i,this._cdr=r,this._slider=s,this.valueChange=new Ls,this.dragStart=new Ls,this.dragEnd=new Ls,this.thumbPosition=na.END,this._knobRadius=8,this._tickMarkOffset=3,this._isActive=!1,this._isFocused=!1,this._hasSetInitialValue=!1,this._destroyed=new hn,this._skipUIUpdate=!1,this._onTouchedFn=()=>{},this._isControlInitialized=!1,this._platform=pi(dd),this._hostElement=i.nativeElement,this._ngZone.runOutsideAngular(()=>{this._hostElement.addEventListener("pointerdown",this._onPointerDown.bind(this)),this._hostElement.addEventListener("pointermove",this._onPointerMove.bind(this)),this._hostElement.addEventListener("pointerup",this._onPointerUp.bind(this))})}ngOnDestroy(){this._hostElement.removeEventListener("pointerdown",this._onPointerDown),this._hostElement.removeEventListener("pointermove",this._onPointerMove),this._hostElement.removeEventListener("pointerup",this._onPointerUp),this._destroyed.next(),this._destroyed.complete(),this.dragStart.complete(),this.dragEnd.complete()}initProps(){this._updateWidthInactive(),this.disabled!==this._slider.disabled&&(this._slider.disabled=!0),this.step=this._slider.step,this.min=this._slider.min,this.max=this._slider.max,this._initValue()}initUI(){this._updateThumbUIByValue()}_initValue(){this._hasSetInitialValue=!0,void 0===this._initialValue?this.value=this._getDefaultValue():(this._hostElement.value=this._initialValue,this._updateThumbUIByValue(),this._slider._onValueChange(this),this._cdr.detectChanges())}_getDefaultValue(){return this.min}_onBlur(){this._setIsFocused(!1),this._onTouchedFn()}_onFocus(){this._slider._setTransition(!1),this._slider._updateTrackUI(this),this._setIsFocused(!0)}_onChange(){this.valueChange.emit(this.value),this._isActive&&this._updateThumbUIByValue({withAnimation:!0})}_onInput(){this._onChangeFn?.(this.value),(this._slider.step||!this._isActive)&&this._updateThumbUIByValue({withAnimation:!0}),this._slider._onValueChange(this)}_onNgControlValueChange(){(!this._isActive||!this._isFocused)&&(this._slider._onValueChange(this),this._updateThumbUIByValue()),this._slider.disabled=this._formControl.disabled}_onPointerDown(t){if(!this.disabled&&0===t.button){if(this._platform.IOS){const i=this._slider._isCursorOnSliderThumb(t,this._slider._getThumb(this.thumbPosition)._hostElement.getBoundingClientRect());return this._isActive=i,this._updateWidthActive(),void this._slider._updateDimensions()}this._isActive=!0,this._setIsFocused(!0),this._updateWidthActive(),this._slider._updateDimensions(),this._slider.step||this._updateThumbUIByPointerEvent(t,{withAnimation:!0}),this.disabled||(this._handleValueCorrection(t),this.dragStart.emit({source:this,parent:this._slider,value:this.value}))}}_handleValueCorrection(t){this._skipUIUpdate=!0,setTimeout(()=>{this._skipUIUpdate=!1,this._fixValue(t)},0)}_fixValue(t){const i=t.clientX-this._slider._cachedLeft,r=this._slider._cachedWidth,s=0===this._slider.step?1:this._slider.step,o=Math.floor((this._slider.max-this._slider.min)/s),u=Math.round((this._slider._isRtl?1-i/r:i/r)*o)/o*(this._slider.max-this._slider.min)+this._slider.min,f=Math.round(u/s)*s;if(f===this.value)return this._slider._onValueChange(this),void(this._slider.step>0?this._updateThumbUIByValue():this._updateThumbUIByPointerEvent(t,{withAnimation:this._slider._hasAnimation}));this.value=f,this.valueChange.emit(this.value),this._onChangeFn?.(this.value),this._slider._onValueChange(this),this._slider.step>0?this._updateThumbUIByValue():this._updateThumbUIByPointerEvent(t,{withAnimation:this._slider._hasAnimation})}_onPointerMove(t){!this._slider.step&&this._isActive&&this._updateThumbUIByPointerEvent(t)}_onPointerUp(){this._isActive&&(this._isActive=!1,this._platform.SAFARI&&this._setIsFocused(!1),this.dragEnd.emit({source:this,parent:this._slider,value:this.value}),setTimeout(()=>this._updateWidthInactive(),this._platform.IOS?10:0))}_clamp(t){const i=this._tickMarkOffset;return Math.max(Math.min(t,this._slider._cachedWidth-this._tickMarkOffset),i)}_calcTranslateXByValue(){return this._slider._isRtl?(1-this.percentage)*(this._slider._cachedWidth-2*this._tickMarkOffset)+this._tickMarkOffset:this.percentage*(this._slider._cachedWidth-2*this._tickMarkOffset)+this._tickMarkOffset}_calcTranslateXByPointerEvent(t){return t.clientX-this._slider._cachedLeft}_updateWidthActive(){}_updateWidthInactive(){this._hostElement.style.padding=`0 ${this._slider._inputPadding}px`,this._hostElement.style.width=`calc(100% + ${this._slider._inputPadding-2*this._tickMarkOffset}px)`,this._hostElement.style.left=`-${this._slider._rippleRadius-this._tickMarkOffset}px`}_updateThumbUIByValue(t){this.translateX=this._clamp(this._calcTranslateXByValue()),this._updateThumbUI(t)}_updateThumbUIByPointerEvent(t,i){this.translateX=this._clamp(this._calcTranslateXByPointerEvent(t)),this._updateThumbUI(i)}_updateThumbUI(t){this._slider._setTransition(!!t?.withAnimation),this._slider._onTranslateXChange(this)}writeValue(t){(this._isControlInitialized||null!==t)&&(this.value=t)}registerOnChange(t){this._onChangeFn=t,this._isControlInitialized=!0}registerOnTouched(t){this._onTouchedFn=t}setDisabledState(t){this.disabled=t}focus(){this._hostElement.focus()}blur(){this._hostElement.blur()}static#e=this.\u0275fac=function(i){return new(i||n)(Lt(io),Lt(oo),Lt(Sc),Lt(iB))};static#t=this.\u0275dir=Ft({type:n,selectors:[["input","matSliderThumb",""]],hostAttrs:["type","range",1,"mdc-slider__input"],hostVars:1,hostBindings:function(i,r){1&i&&Ai("change",function(){return r._onChange()})("input",function(){return r._onInput()})("blur",function(){return r._onBlur()})("focus",function(){return r._onFocus()}),2&i&&sl("aria-valuetext",r._valuetext)},inputs:{value:[mi.HasDecoratorInputTransform,"value","value",ru]},outputs:{valueChange:"valueChange",dragStart:"dragStart",dragEnd:"dragEnd"},exportAs:["matSliderThumb"],standalone:!0,features:[qo([ybe,{provide:A$,useExisting:n}]),ql]})}return n})(),xbe=(()=>{class n{static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275mod=vo({type:n});static#n=this.\u0275inj=ra({imports:[Qd,P4]})}return n})(),xL=(()=>{class n{eventDisplay;clippingEnabled;startClippingAngle;openingClippingAngle;constructor(t){this.eventDisplay=t;const i=this.eventDisplay.getStateManager();i.clippingEnabled.onUpdate(r=>this.clippingEnabled=r),i.startClippingAngle.onUpdate(r=>this.startClippingAngle=r),i.openingClippingAngle.onUpdate(r=>this.openingClippingAngle=r)}changeStartClippingAngle(t){this.eventDisplay.getUIManager().rotateStartAngleClipping(t)}changeOpeningClippingAngle(t){this.eventDisplay.getUIManager().rotateOpeningAngleClipping(t)}toggleClipping(t){const i=t.checked;this.eventDisplay.getUIManager().setClipping(i),this.clippingEnabled=i}static \u0275fac=function(i){return new(i||n)(Lt(Al))};static \u0275cmp=rs({type:n,selectors:[["app-object-clipping"]],decls:17,vars:5,consts:[["menu",""],["clippingCheckbox",""],["startingAngleSlider",""],["openingAngleSlider",""],[1,"mat-menu"],["mat-menu-item","",3,"click"],[3,"click","change","checked"],["mat-menu-item","",1,"slider-btn",3,"focus"],["min","0","max","360","step","1","thumbLabel",""],["matSliderThumb","",3,"valueChange","value"],["tooltip","Geometry clipping","icon","clipping",3,"matMenuTriggerFor","active"]],template:function(i,r){if(1&i){const s=ta();Gt(0,"mat-menu",4,0)(2,"button",5),Ai("click",function(l){Ci(s);const d=Ga(4);return l.stopPropagation(),Mi(d._inputElement.nativeElement.click())}),Gt(3,"mat-checkbox",6,1),Ai("click",function(l){return Ci(s),Mi(l.stopPropagation())})("change",function(l){return Ci(s),Mi(r.toggleClipping(l))}),qi(5," Clipping "),dn()(),Gt(6,"button",7),Ai("focus",function(){return Ci(s),Mi(Ga(9).focus())}),Gt(7,"mat-slider",8)(8,"input",9,2),Ai("valueChange",function(l){return Ci(s),Mi(r.changeStartClippingAngle(l))}),dn()(),qi(10," Start Angle "),dn(),Gt(11,"button",7),Ai("focus",function(){return Ci(s),Mi(Ga(14).focus())}),Gt(12,"mat-slider",8)(13,"input",9,3),Ai("valueChange",function(l){return Ci(s),Mi(r.changeOpeningClippingAngle(l))}),dn()(),qi(15," Opening Angle "),dn()(),Vr(16,"app-menu-toggle",10)}if(2&i){const s=Ga(1);jn(3),Qn("checked",r.clippingEnabled),jn(5),Qn("value",r.startClippingAngle),jn(5),Qn("value",r.openingClippingAngle),jn(3),Qn("matMenuTriggerFor",s)("active",r.clippingEnabled)}},dependencies:[o1,s1,CC,bL,YE,rv,qc],styles:[".slider-btn[_ngcontent-%COMP%]{overflow:visible}mat-slider[_ngcontent-%COMP%]{margin-left:.75rem;margin-right:.75rem}"]})}return n})(),rB=(()=>{class n{eventDisplay;darkTheme=!1;constructor(t){this.eventDisplay=t}ngOnInit(){this.darkTheme=this.eventDisplay.getUIManager().getDarkTheme()}setDarkTheme(){this.darkTheme=!this.darkTheme,this.eventDisplay.getUIManager().setDarkTheme(this.darkTheme)}static \u0275fac=function(i){return new(i||n)(Lt(Al))};static \u0275cmp=rs({type:n,selectors:[["app-dark-theme"]],decls:1,vars:1,consts:[["tooltip","Dark theme","icon","dark",3,"click","active"]],template:function(i,r){1&i&&(Gt(0,"app-menu-toggle",0),Ai("click",function(){return r.setDarkTheme()}),dn()),2&i&&Qn("active",r.darkTheme)},dependencies:[qc]})}return n})(),sB=(()=>{class n{eventDisplay;autoRotate=!1;constructor(t){this.eventDisplay=t}toggleAutoRotate(){this.autoRotate=!this.autoRotate,this.eventDisplay.getUIManager().setAutoRotate(this.autoRotate)}static \u0275fac=function(i){return new(i||n)(Lt(Al))};static \u0275cmp=rs({type:n,selectors:[["app-auto-rotate"]],decls:1,vars:1,consts:[["tooltip","Auto rotate","icon","rotate",3,"click","active"]],template:function(i,r){1&i&&(Gt(0,"app-menu-toggle",0),Ai("click",function(){return r.toggleAutoRotate()}),dn()),2&i&&Qn("active",r.autoRotate)},dependencies:[qc]})}return n})(),y$=(()=>{class n{data;dialogRef;eventDisplay;cartesianPos=new It;originChangedSub=null;stopShiftingSub=null;showCartesianGrid;gridConfig;scale;shiftGrid;constructor(t,i,r){this.data=t,this.dialogRef=i,this.eventDisplay=r}ngOnInit(){this.shiftGrid=this.eventDisplay.getThreeManager().shiftGrid,this.showCartesianGrid=this.data.gridVisible,this.scale=this.data.scale,this.gridConfig=this.eventDisplay.getUIManager().getCartesianGridConfig(),this.cartesianPos=this.eventDisplay.getThreeManager().origin}onClose(){this.dialogRef.close()}onSave(t,i,r){this.shiftCartesianGridByValues(new It(10*t,10*i,10*r))}shiftCartesianGridByPointer(){this.shiftGrid=!0,this.eventDisplay.getUIManager().shiftCartesianGridByPointer(),this.originChangedSub=this.eventDisplay.getThreeManager().originChanged.subscribe(t=>{this.translateGrid(t)}),this.stopShiftingSub=this.eventDisplay.getThreeManager().stopShifting.subscribe(t=>{t&&(this.originChangedSub.unsubscribe(),this.stopShiftingSub.unsubscribe())}),this.onClose()}shiftCartesianGridByValues(t){this.translateGrid(t),this.eventDisplay.getThreeManager().originChangedEmit(t)}translateGrid(t){const i=t,r=this.cartesianPos,s=new It(i.x-r.x,i.y-r.y,i.z-r.z);this.eventDisplay.getUIManager().translateCartesianGrid(s.clone()),this.eventDisplay.getUIManager().translateCartesianLabels(s.clone()),this.cartesianPos=i}addXYPlanes(t){this.gridConfig.zDistance=Number(t.target.value),this.callSetShowCartesianGrid()}addYZPlanes(t){this.gridConfig.xDistance=Number(t.target.value),this.callSetShowCartesianGrid()}addZXPlanes(t){this.gridConfig.yDistance=Number(t.target.value),this.callSetShowCartesianGrid()}changeSparsity(t){this.gridConfig.sparsity=Number(t.target.value),this.callSetShowCartesianGrid()}showXYPlanes(t){this.gridConfig.showXY=t.checked,this.callSetShowCartesianGrid()}showYZPlanes(t){this.gridConfig.showYZ=t.checked,this.callSetShowCartesianGrid()}showZXPlanes(t){this.gridConfig.showZX=t.checked,this.callSetShowCartesianGrid()}callSetShowCartesianGrid(){this.eventDisplay.getUIManager().setShowCartesianGrid(this.showCartesianGrid,this.scale,this.gridConfig)}calcPlanes(t){return Math.max(0,1+2*Math.floor(10*t/(this.scale*this.gridConfig.sparsity)))}static \u0275fac=function(i){return new(i||n)(Lt(AL),Lt(_x),Lt(Al))};static \u0275cmp=rs({type:n,selectors:[["app-cartesian-grid-config"]],decls:65,vars:28,consts:[["xPos",""],["yPos",""],["zPos",""],["showXYPlanesCheckbox",""],["xyPlaneSlider",""],["showYZPlanesCheckbox",""],["yzPlaneSlider",""],["showZXPlanesCheckbox",""],["zxPlaneSlider",""],["sparsitySlider",""],["mat-dialog-title",""],["mat-dialog-content","",1,"container","dialog-content"],[1,"item-config-single"],[1,"item-config-group"],["for","xPos",1,"item-config-label"],["type","number","placeholder","Origin X","name","xPos","id","xPos",1,"form-control",3,"value"],["for","yPos",1,"item-config-label"],["type","number","placeholder","Origin Y","name","yPos","id","yPos",1,"form-control",3,"value"],["for","zPos",1,"item-config-label"],["type","number","placeholder","Origin Z","name","zPos","id","zPos",1,"form-control",3,"value"],["mat-stroked-button","",3,"click","disabled"],["mat-menu-item","",1,"explain-button",2,"margin","0.5rem 0",3,"click","disabled"],[1,"explain-text"],["mat-menu-item","",3,"click"],[3,"ngModelChange","click","change","ngModel"],["mat-menu-item","",1,"slider-btn",3,"focus"],["min","-300","step","300","thumbLabel","",3,"max"],["matSliderThumb","",3,"input","value"],["min","1","max","5","step","1","thumbLabel",""],["mat-dialog-actions","","align","end"],["mat-flat-button","","color","primary","cdkFocusInitial","",3,"click"]],template:function(i,r){if(1&i){const s=ta();Gt(0,"div")(1,"h1",10),qi(2,"Customize Cartesian Grid"),dn(),Gt(3,"div",11)(4,"div",12)(5,"div",13)(6,"label",14),qi(7,"x (cm) : "),dn(),Vr(8,"input",15,0),rS(10,"number"),dn(),Gt(11,"div",13)(12,"label",16),qi(13,"y (cm) : "),dn(),Vr(14,"input",17,1),rS(16,"number"),dn(),Gt(17,"div",13)(18,"label",18),qi(19,"z (cm) : "),dn(),Vr(20,"input",19,2),rS(22,"number"),dn(),Gt(23,"button",20),Ai("click",function(){Ci(s);const l=Ga(9),d=Ga(15),u=Ga(21);return Mi(r.onSave(l.value,d.value,u.value))}),qi(24," Save "),dn(),Gt(25,"button",21),Ai("click",function(l){return Ci(s),l.stopPropagation(),Mi(r.shiftCartesianGridByPointer())}),qi(26," Shift Cartesian Grid on click "),Gt(27,"p",22),qi(28," Click on a point to shift the grid. Keep clicking at various points to continue shifting. Right click to stop. "),dn()()(),Gt(29,"div")(30,"button",23),Ai("click",function(){return Ci(s),Mi(Ga(32)._inputElement.nativeElement.click())}),Gt(31,"mat-checkbox",24,3),qw("ngModelChange",function(l){return Ci(s),nS(r.gridConfig.showXY,l)||(r.gridConfig.showXY=l),Mi(l)}),Ai("click",function(l){return Ci(s),Mi(l.stopPropagation())})("change",function(l){return Ci(s),Mi(r.showXYPlanes(l))}),qi(33,"Show XY Planes "),dn()(),Gt(34,"button",25),Ai("focus",function(){return Ci(s),Mi(Ga(37).focus())}),Gt(35,"mat-slider",26)(36,"input",27,4),Ai("input",function(l){return Ci(s),Mi(r.addXYPlanes(l))}),dn()(),qi(38),dn(),Gt(39,"button",23),Ai("click",function(){return Ci(s),Mi(Ga(41)._inputElement.nativeElement.click())}),Gt(40,"mat-checkbox",24,5),qw("ngModelChange",function(l){return Ci(s),nS(r.gridConfig.showYZ,l)||(r.gridConfig.showYZ=l),Mi(l)}),Ai("click",function(l){return Ci(s),Mi(l.stopPropagation())})("change",function(l){return Ci(s),Mi(r.showYZPlanes(l))}),qi(42,"Show YZ Planes "),dn()(),Gt(43,"button",25),Ai("focus",function(){return Ci(s),Mi(Ga(46).focus())}),Gt(44,"mat-slider",26)(45,"input",27,6),Ai("input",function(l){return Ci(s),Mi(r.addYZPlanes(l))}),dn()(),qi(47),dn(),Gt(48,"button",23),Ai("click",function(){return Ci(s),Mi(Ga(50)._inputElement.nativeElement.click())}),Gt(49,"mat-checkbox",24,7),qw("ngModelChange",function(l){return Ci(s),nS(r.gridConfig.showZX,l)||(r.gridConfig.showZX=l),Mi(l)}),Ai("click",function(l){return Ci(s),Mi(l.stopPropagation())})("change",function(l){return Ci(s),Mi(r.showZXPlanes(l))}),qi(51,"Show ZX Planes "),dn()(),Gt(52,"button",25),Ai("focus",function(){return Ci(s),Mi(Ga(55).focus())}),Gt(53,"mat-slider",26)(54,"input",27,8),Ai("input",function(l){return Ci(s),Mi(r.addZXPlanes(l))}),dn()(),qi(56),dn(),Gt(57,"button",25),Ai("focus",function(){return Ci(s),Mi(Ga(60).focus())}),Gt(58,"mat-slider",28)(59,"input",27,9),Ai("input",function(l){return Ci(s),Mi(r.changeSparsity(l))}),dn()(),qi(61),dn()()(),Gt(62,"div",29)(63,"button",30),Ai("click",function(){return Ci(s),Mi(r.onClose())}),qi(64," Close "),dn()()()}2&i&&(jn(8),Qn("value",G3(10,19,r.cartesianPos.x/10,"1.2-2")),jn(6),Qn("value",G3(16,22,r.cartesianPos.y/10,"1.2-2")),jn(6),Qn("value",G3(22,25,r.cartesianPos.z/10,"1.2-2")),jn(3),Qn("disabled",r.shiftGrid),jn(2),Qn("disabled",r.shiftGrid),jn(6),Gw("ngModel",r.gridConfig.showXY),jn(4),Qn("max",r.scale),jn(),Qn("value",r.gridConfig.zDistance),jn(2),yl(" XY Plane (",r.calcPlanes(r.gridConfig.zDistance),") "),jn(2),Gw("ngModel",r.gridConfig.showYZ),jn(4),Qn("max",r.scale),jn(),Qn("value",r.gridConfig.xDistance),jn(2),yl(" YZ Plane (",r.calcPlanes(r.gridConfig.xDistance),") "),jn(2),Gw("ngModel",r.gridConfig.showZX),jn(4),Qn("max",r.scale),jn(),Qn("value",r.gridConfig.yDistance),jn(2),yl(" ZX Plane (",r.calcPlanes(r.gridConfig.yDistance),") "),jn(3),Qn("value",r.gridConfig.sparsity),jn(2),yl(" Sparsity (",r.gridConfig.sparsity,") "))},dependencies:[jE,XE,$E,BC,UO,X4,s1,bL,YE,rv,E7],styles:[".container[_ngcontent-%COMP%]{display:flex;flex-direction:row}.item-config-single[_ngcontent-%COMP%]{display:flex;flex-direction:column}.item-config-single[_ngcontent-%COMP%] .item-config-group[_ngcontent-%COMP%]{margin:.1rem 2rem}.item-config-single[_ngcontent-%COMP%] .item-config-group[_ngcontent-%COMP%] .item-config-label[_ngcontent-%COMP%]{display:inline;margin:1rem}.item-config-single[_ngcontent-%COMP%] .item-config-group[_ngcontent-%COMP%] .form-control[_ngcontent-%COMP%]{width:60%;display:inline}.item-config-single[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{margin:.5rem 4rem}.item-config-single[_ngcontent-%COMP%] .explain-button[_ngcontent-%COMP%]{padding-top:1rem}.item-config-single[_ngcontent-%COMP%] .explain-text[_ngcontent-%COMP%]{width:20rem;opacity:.7;margin-top:.5rem;font-size:.9rem}"]})}return n})();function wbe(n,e){if(1&n&&(Fl(),Gt(0,"svg",15),Vr(1,"use"),dn()),2&n){const t=Pr().$implicit;jn(),Lw("href","assets/icons/",t.icon,".svg#",t.icon,"")}}function Cbe(n,e){if(1&n){const t=ta();Gt(0,"button",11),Ai("click",function(r){const s=Ci(t).$implicit;return Mi(Pr().displayView(r,s))}),zs(1,wbe,2,3,"svg",14),qi(2),dn()}if(2&n){const t=e.$implicit;jn(),Qn("ngIf",t.icon),jn(),yl(" ",t.name," ")}}let wL=(()=>{class n{eventDisplay;dialog;trigger;showCartesianGrid=!1;scale=3e3;views;show3DPoints;origin=new It(0,0,0);sub;constructor(t,i){this.eventDisplay=t,this.dialog=i}ngOnInit(){this.views=this.eventDisplay.getUIManager().getPresetViews(),this.sub=this.eventDisplay.getThreeManager().originChanged.subscribe(t=>{this.origin=t})}openCartesianGridConfigDialog(){this.dialog.open(y$,{data:{gridVisible:this.showCartesianGrid,scale:this.scale},position:{bottom:"5rem",left:"3rem"}})}displayView(t,i){t.stopPropagation(),this.eventDisplay.getUIManager().displayView(i)}setAxis(t){const i=t.checked;this.eventDisplay.getUIManager().setShowAxis(i)}setEtaPhiGrid(t){const i=t.checked;this.eventDisplay.getUIManager().setShowEtaPhiGrid(i)}setCartesianGrid(t){this.showCartesianGrid=t.checked,this.eventDisplay.getUIManager().setShowCartesianGrid(this.showCartesianGrid,this.scale)}showLabels(t){this.eventDisplay.getUIManager().showLabels(t.checked)}show3DMousePoints(t){this.show3DPoints=t.checked,this.eventDisplay.getUIManager().show3DMousePoints(this.show3DPoints)}toggleShowDistance(t){this.trigger.closeMenu(),this.eventDisplay.getUIManager().show3DDistance(t.checked)}ngOnDestroy(){this.sub.unsubscribe()}static \u0275fac=function(i){return new(i||n)(Lt(Al),Lt(yx))};static \u0275cmp=rs({type:n,selectors:[["app-view-options"]],viewQuery:function(i,r){if(1&i&&_l(CC,5),2&i){let s;pa(s=ma())&&(r.trigger=s.first)}},decls:31,vars:3,consts:[["viewOptions",""],["showCartesianGridCheckbox",""],["showEtaPhiGridCheckbox",""],["showAxisCheckbox",""],["showLabelsCheckbox",""],["showMouse3DPointsCheckbox",""],["show3DDistanceCheckbox",""],["mat-menu-item",""],[3,"click","change"],[1,"icon-wrapper","icon-button","btn-blank","item-settings",3,"click"],["href","assets/icons/gear.svg#gear"],["mat-menu-item","",3,"click"],["mat-menu-item","",3,"click",4,"ngFor","ngForOf"],["tooltip","View options and Tools","icon","views",3,"matMenuTriggerFor","active"],["class","view-icon",4,"ngIf"],[1,"view-icon"]],template:function(i,r){if(1&i){const s=ta();Gt(0,"mat-menu",null,0)(2,"button",7)(3,"mat-checkbox",8,1),Ai("click",function(l){return Ci(s),Mi(l.stopPropagation())})("change",function(l){return Ci(s),Mi(r.setCartesianGrid(l))}),qi(5,"Show Cartesian Grid "),dn(),Gt(6,"button",9),Ai("click",function(){return Ci(s),Mi(r.openCartesianGridConfigDialog())}),Fl(),Gt(7,"svg"),Vr(8,"use",10),dn()()(),Dh(),Gt(9,"button",11),Ai("click",function(l){Ci(s);const d=Ga(11);return l.stopPropagation(),Mi(d._inputElement.nativeElement.click())}),Gt(10,"mat-checkbox",8,2),Ai("click",function(l){return Ci(s),Mi(l.stopPropagation())})("change",function(l){return Ci(s),Mi(r.setEtaPhiGrid(l))}),qi(12,"Show Eta Phi Grid "),dn()(),Gt(13,"button",11),Ai("click",function(l){Ci(s);const d=Ga(15);return l.stopPropagation(),Mi(d._inputElement.nativeElement.click())}),Gt(14,"mat-checkbox",8,3),Ai("click",function(l){return Ci(s),Mi(l.stopPropagation())})("change",function(l){return Ci(s),Mi(r.setAxis(l))}),qi(16,"Show Axis "),dn()(),Gt(17,"button",11),Ai("click",function(){return Ci(s),Mi(Ga(19)._inputElement.nativeElement.click())}),Gt(18,"mat-checkbox",8,4),Ai("click",function(l){return Ci(s),Mi(l.stopPropagation())})("change",function(l){return Ci(s),Mi(r.showLabels(l))}),qi(20,"Show Labels "),dn()(),Gt(21,"button",11),Ai("click",function(l){Ci(s);const d=Ga(23);return l.stopPropagation(),Mi(d._inputElement.nativeElement.click())}),Gt(22,"mat-checkbox",8,5),Ai("click",function(l){return Ci(s),Mi(l.stopPropagation())})("change",function(l){return Ci(s),Mi(r.show3DMousePoints(l))}),qi(24,"Show 3D Coordinates "),dn()(),Gt(25,"button",11),Ai("click",function(l){Ci(s);const d=Ga(27);return l.stopPropagation(),Mi(d._inputElement.nativeElement.click())}),Gt(26,"mat-checkbox",8,6),Ai("click",function(l){return Ci(s),Mi(l.stopPropagation())})("change",function(l){return Ci(s),Mi(r.toggleShowDistance(l))}),qi(28,"Show 3D Distance "),dn()(),zs(29,Cbe,3,2,"button",12),dn(),Vr(30,"app-menu-toggle",13)}if(2&i){const s=Ga(1);jn(29),Qn("ngForOf",r.views),jn(),Qn("matMenuTriggerFor",s)("active",!1)}},dependencies:[am,Lh,o1,s1,CC,rv,qc],styles:[".view-icon[_ngcontent-%COMP%]{width:1.2rem;height:1.2rem;margin-right:.5rem}.icon-wrapper[_ngcontent-%COMP%]{display:inline-block;width:1.5rem;height:1.5rem;padding:.23rem;transition:all .4s;transform:translateY(27%)}.icon-wrapper.icon-button[_ngcontent-%COMP%]:hover{background:var(--phoenix-options-icon-bg);border-radius:40%;cursor:pointer}.icon-wrapper[_ngcontent-%COMP%] svg[_ngcontent-%COMP%]{width:100%;height:100%;vertical-align:top}.item-settings[_ngcontent-%COMP%]{margin-right:.2rem;margin-left:.5rem}"]})}return n})();function Sbe(n,e){1&n&&(Gt(0,"li",2),qi(1," No actions. "),dn())}function Ebe(n,e){if(1&n&&(Gt(0,"li",2),qi(1),dn()),2&n){const t=e.$implicit;jn(),yl(" ",t," ")}}let v$=(()=>{class n{eventDisplay;showInfoPanel;actionsList=[];version="2.15.1";constructor(t){this.eventDisplay=t}ngOnInit(){this.actionsList=this.eventDisplay.getInfoLogger().getInfoLoggerList()}static \u0275fac=function(i){return new(i||n)(Lt(Al))};static \u0275cmp=rs({type:n,selectors:[["app-info-panel-overlay"]],inputs:{showInfoPanel:"showInfoPanel"},decls:6,vars:5,consts:[["overlayTitle","Info Panel","icon","info-panel",3,"resizable","active"],[1,"list-group","list-group-flush"],[1,"list-group-item"],["class","list-group-item",4,"ngIf"],["class","list-group-item",4,"ngFor","ngForOf"]],template:function(i,r){1&i&&(Gt(0,"app-overlay",0)(1,"ul",1)(2,"li",2),qi(3),dn(),zs(4,Sbe,2,0,"li",3)(5,Ebe,2,1,"li",4),dn()()),2&i&&(Qn("resizable",!0)("active",r.showInfoPanel),jn(3),yl(" Phoenix Version: ",r.version," "),jn(),Qn("ngIf",0===r.actionsList.length),jn(),Qn("ngForOf",r.actionsList))},dependencies:[am,Lh,IC],styles:[".list-group-item[_ngcontent-%COMP%]{font-size:.8rem;padding:.5rem 1rem}"]})}return n})(),CL=(()=>{class n{overlay;showInfoPanel=!1;overlayWindow;constructor(t){this.overlay=t}ngOnInit(){const t=this.overlay.create(),i=new t1(v$);this.overlayWindow=t.attach(i),this.overlayWindow.instance.showInfoPanel=this.showInfoPanel}ngOnDestroy(){this.overlayWindow.destroy()}toggleOverlay(){this.showInfoPanel=!this.showInfoPanel,this.overlayWindow.instance.showInfoPanel=this.showInfoPanel}static \u0275fac=function(i){return new(i||n)(Lt(fu))};static \u0275cmp=rs({type:n,selectors:[["app-info-panel"]],decls:1,vars:1,consts:[["tooltip","Info panel","icon","info-panel",3,"click","active"]],template:function(i,r){1&i&&(Gt(0,"app-menu-toggle",0),Ai("click",function(){return r.toggleOverlay()}),dn()),2&i&&Qn("active",r.showInfoPanel)},dependencies:[qc]})}return n})(),oB=(()=>{class n{eventDisplay;orthographicView=!1;constructor(t){this.eventDisplay=t}switchMainView(){this.orthographicView=!this.orthographicView,this.eventDisplay.getUIManager().toggleOrthographicView(this.orthographicView)}static \u0275fac=function(i){return new(i||n)(Lt(Al))};static \u0275cmp=rs({type:n,selectors:[["app-main-view-toggle"]],decls:1,vars:2,consts:[[3,"click","icon","matTooltip"]],template:function(i,r){1&i&&(Gt(0,"app-menu-toggle",0),Ai("click",function(){return r.switchMainView()}),dn()),2&i&&Qn("icon",r.orthographicView?"perspective":"orthographic")("matTooltip","Switch to "+(r.orthographicView?"perspective":"orthographic")+" view")},dependencies:[a1,qc]})}return n})(),ML=(()=>{class n{eventDisplay;allCameras;zoomFactor=1.1;zoomTimeout;zoomTime=200;constructor(t){this.eventDisplay=t}zoomTo(t){this.zoomTime=this.zoomTime>30?Math.floor(this.zoomTime/1.1):this.zoomTime,this.eventDisplay.zoomTo(t,this.zoomTime),this.zoomTimeout=setTimeout(()=>{this.zoomTo(t)},this.zoomTime)}zoomIn(t){t&&this.zoomTo(1/this.zoomFactor)}zoomOut(t){t&&this.zoomTo(this.zoomFactor)}clearZoom(){this.zoomTime=200,clearTimeout(this.zoomTimeout)}static \u0275fac=function(i){return new(i||n)(Lt(Al))};static \u0275cmp=rs({type:n,selectors:[["app-zoom-controls"]],decls:3,vars:2,consts:[[1,"d-flex"],["tooltip","Zoom out (hold)","icon","zoom-out",3,"click","touchstart","mousedown","mouseup","mouseleave","touchend","touchcancel","touchmove","active"],["tooltip","Zoom in (hold)","icon","zoom-in",3,"click","touchstart","mousedown","mouseup","mouseleave","touchend","touchcancel","touchmove","active"]],template:function(i,r){1&i&&(Gt(0,"div",0)(1,"app-menu-toggle",1),Ai("click",function(){return r.zoomOut(!0),r.clearZoom()})("touchstart",function(){return r.zoomOut(!0)})("mousedown",function(o){return r.zoomOut(0===o.button)})("mouseup",function(){return r.clearZoom()})("mouseleave",function(){return r.clearZoom()})("touchend",function(){return r.clearZoom()})("touchcancel",function(){return r.clearZoom()})("touchmove",function(){return r.clearZoom()}),dn(),Gt(2,"app-menu-toggle",2),Ai("click",function(){return r.zoomIn(!0),r.clearZoom()})("touchstart",function(){return r.zoomIn(!0)})("mousedown",function(o){return r.zoomIn(0===o.button)})("mouseup",function(){return r.clearZoom()})("mouseleave",function(){return r.clearZoom()})("touchend",function(){return r.clearZoom()})("touchcancel",function(){return r.clearZoom()})("touchmove",function(){return r.clearZoom()}),dn()()),2&i&&(jn(),Qn("active",!1),jn(),Qn("active",!1))},dependencies:[qc]})}return n})(),aB=(()=>{class n{eventDisplay;isAnimating=!1;constructor(t){this.eventDisplay=t}toggleAnimateEvent(){this.isAnimating||(this.isAnimating=!0,this.eventDisplay.animateEventWithCollision(1e4,()=>{this.isAnimating=!1}))}static \u0275fac=function(i){return new(i||n)(Lt(Al))};static \u0275cmp=rs({type:n,selectors:[["app-animate-event"]],decls:1,vars:1,consts:[["tooltip","Animate event","icon","event-folder",3,"click","active"]],template:function(i,r){1&i&&(Gt(0,"app-menu-toggle",0),Ai("click",function(){return r.toggleAnimateEvent()}),dn()),2&i&&Qn("active",r.isAnimating)},dependencies:[qc]})}return n})(),SL=(()=>{class n{eventDisplay;vrSupported=!1;vrActive=!1;constructor(t){this.eventDisplay=t,navigator?.xr?.isSessionSupported?.(Qq.SESSION_TYPE).then(i=>{i&&(this.vrSupported=!0)}).catch(i=>console.warn("Error in VR",i))}toggleVr(){this.vrActive?(this.eventDisplay.endXR(mm.VR),this.vrActive=!1):(this.eventDisplay.initXR(mm.VR,()=>{this.vrActive=!1,this.eventDisplay.endXR(mm.VR)}),this.vrActive=!0)}static \u0275fac=function(i){return new(i||n)(Lt(Al))};static \u0275cmp=rs({type:n,selectors:[["app-vr-toggle"]],decls:1,vars:3,consts:[["icon","vr",3,"click","disabled","active","tooltip"]],template:function(i,r){1&i&&(Gt(0,"app-menu-toggle",0),Ai("click",function(){return r.vrSupported&&r.toggleVr()}),dn()),2&i&&Qn("disabled",!r.vrSupported)("active",r.vrActive)("tooltip",r.vrSupported?r.vrActive?"Exit VR":"Enter VR":"VR not supported")},dependencies:[qc]})}return n})();function Tbe(n,e){if(1&n){const t=ta();ig(0),Gt(1,"button",4),Ai("click",function(){return Ci(t),Mi(Pr().toggleAr(!0))}),qi(2,"AR with overlays"),dn(),Gt(3,"button",4),Ai("click",function(){return Ci(t),Mi(Pr().toggleAr(!1))}),qi(4,"AR without overlays"),dn(),rg()}}function Dbe(n,e){1&n&&(Gt(0,"button",5),qi(1,"AR not supported"),dn())}let EL=(()=>{class n{eventDisplay;arSupported=!1;arActive=!1;constructor(t){this.eventDisplay=t,navigator.xr?.isSessionSupported?.(HF.SESSION_TYPE).then(i=>{i&&(this.arSupported=!0)}).catch(i=>console.warn("Error in AR",i))}toggleAr(t=!0){HF.enableDomOverlay=t,this.arActive?(this.eventDisplay.endXR(mm.AR),this.arActive=!1):(this.eventDisplay.initXR(mm.AR,()=>{this.arActive=!1,this.eventDisplay.endXR(mm.AR)}),this.arActive=!0)}static \u0275fac=function(i){return new(i||n)(Lt(Al))};static \u0275cmp=rs({type:n,selectors:[["app-ar-toggle"]],decls:5,vars:6,consts:[["arToggleOptions",""],[4,"ngIf"],["mat-menu-item","","disabled","",4,"ngIf"],["icon","ar",3,"click","matMenuTriggerFor","disabled","active","tooltip"],["mat-menu-item","",3,"click"],["mat-menu-item","","disabled",""]],template:function(i,r){if(1&i){const s=ta();Gt(0,"mat-menu",null,0),zs(2,Tbe,5,0,"ng-container",1)(3,Dbe,2,0,"button",2),dn(),Gt(4,"app-menu-toggle",3),Ai("click",function(){return Ci(s),Mi(r.arSupported&&(r.arActive?r.toggleAr():null))}),dn()}if(2&i){const s=Ga(1);jn(2),Qn("ngIf",r.arSupported),jn(),Qn("ngIf",!r.arSupported),jn(),Qn("matMenuTriggerFor",s)("disabled",!r.arSupported)("active",r.arActive)("tooltip",r.arSupported?r.arActive?"Exit AR":"Enter AR":"AR not supported")}},dependencies:[Lh,o1,s1,CC,qc]})}return n})(),TL=(()=>{class n{ssMode=!1;ngOnInit(){document.onfullscreenchange=()=>{document.fullscreenElement||this.toggleSSMode()}}toggleSSMode(){this.ssMode=!this.ssMode,document.body.classList.toggle("ss-mode"),this.ssMode?(setTimeout(()=>{document.addEventListener("click",this.onDocumentClick),document.addEventListener("touchstart",this.onDocumentClick)},1),document.documentElement.requestFullscreen?.()):(document.removeEventListener("click",this.onDocumentClick),document.removeEventListener("touchstart",this.onDocumentClick))}onDocumentClick=()=>{document.exitFullscreen?.()};static \u0275fac=function(i){return new(i||n)};static \u0275cmp=rs({type:n,selectors:[["app-ss-mode"]],decls:1,vars:1,consts:[["tooltip","Screenshot mode: phoenix will become fullscreen and the menu is suppressed","icon","ss-mode",3,"click","active"]],template:function(i,r){1&i&&(Gt(0,"app-menu-toggle",0),Ai("click",function(){return r.toggleSSMode()}),dn()),2&i&&Qn("active",r.ssMode)},dependencies:[qc],styles:["#uiMenu,#phoenixMenu,#mainLogo,#statsElement{transition:opacity .4s}.ss-mode #uiMenu,.ss-mode #phoenixMenu,.ss-mode #mainLogo,.ss-mode #statsElement{visibility:hidden;opacity:0}\n"],encapsulation:2})}return n})(),Pbe=(()=>{class n{constructor(){this._listeners=[]}notify(t,i){for(let r of this._listeners)r(t,i)}listen(t){return this._listeners.push(t),()=>{this._listeners=this._listeners.filter(i=>t!==i)}}ngOnDestroy(){this._listeners=[]}static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();const Rbe=["input"],kbe=["formField"],Fbe=["*"];let b$=0;class x${constructor(e,t){this.source=e,this.value=t}}const Obe={provide:Of,useExisting:jt(()=>C$),multi:!0},w$=new Bi("MatRadioGroup"),Lbe=new Bi("mat-radio-default-options",{providedIn:"root",factory:function Nbe(){return{color:"accent"}}});let C$=(()=>{class n{get name(){return this._name}set name(t){this._name=t,this._updateRadioButtonNames()}get labelPosition(){return this._labelPosition}set labelPosition(t){this._labelPosition="before"===t?"before":"after",this._markRadiosForCheck()}get value(){return this._value}set value(t){this._value!==t&&(this._value=t,this._updateSelectedRadioFromValue(),this._checkSelectedRadioButton())}_checkSelectedRadioButton(){this._selected&&!this._selected.checked&&(this._selected.checked=!0)}get selected(){return this._selected}set selected(t){this._selected=t,this.value=t?t.value:null,this._checkSelectedRadioButton()}get disabled(){return this._disabled}set disabled(t){this._disabled=t,this._markRadiosForCheck()}get required(){return this._required}set required(t){this._required=t,this._markRadiosForCheck()}constructor(t){this._changeDetector=t,this._value=null,this._name="mat-radio-group-"+b$++,this._selected=null,this._isInitialized=!1,this._labelPosition="after",this._disabled=!1,this._required=!1,this._controlValueAccessorChangeFn=()=>{},this.onTouched=()=>{},this.change=new Ls}ngAfterContentInit(){this._isInitialized=!0,this._buttonChanges=this._radios.changes.subscribe(()=>{this.selected&&!this._radios.find(t=>t===this.selected)&&(this._selected=null)})}ngOnDestroy(){this._buttonChanges?.unsubscribe()}_touch(){this.onTouched&&this.onTouched()}_updateRadioButtonNames(){this._radios&&this._radios.forEach(t=>{t.name=this.name,t._markForCheck()})}_updateSelectedRadioFromValue(){this._radios&&(null===this._selected||this._selected.value!==this._value)&&(this._selected=null,this._radios.forEach(i=>{i.checked=this.value===i.value,i.checked&&(this._selected=i)}))}_emitChangeEvent(){this._isInitialized&&this.change.emit(new x$(this._selected,this._value))}_markRadiosForCheck(){this._radios&&this._radios.forEach(t=>t._markForCheck())}writeValue(t){this.value=t,this._changeDetector.markForCheck()}registerOnChange(t){this._controlValueAccessorChangeFn=t}registerOnTouched(t){this.onTouched=t}setDisabledState(t){this.disabled=t,this._changeDetector.markForCheck()}static#e=this.\u0275fac=function(i){return new(i||n)(Lt(Sc))};static#t=this.\u0275dir=Ft({type:n,selectors:[["mat-radio-group"]],contentQueries:function(i,r,s){if(1&i&&mp(s,IL,5),2&i){let o;pa(o=ma())&&(r._radios=o)}},hostAttrs:["role","radiogroup",1,"mat-mdc-radio-group"],inputs:{color:"color",name:"name",labelPosition:"labelPosition",value:"value",selected:"selected",disabled:[mi.HasDecoratorInputTransform,"disabled","disabled",_o],required:[mi.HasDecoratorInputTransform,"required","required",_o]},outputs:{change:"change"},exportAs:["matRadioGroup"],standalone:!0,features:[qo([Obe,{provide:w$,useExisting:n}]),ql]})}return n})(),IL=(()=>{class n{get checked(){return this._checked}set checked(t){this._checked!==t&&(this._checked=t,t&&this.radioGroup&&this.radioGroup.value!==this.value?this.radioGroup.selected=this:!t&&this.radioGroup&&this.radioGroup.value===this.value&&(this.radioGroup.selected=null),t&&this._radioDispatcher.notify(this.id,this.name),this._changeDetector.markForCheck())}get value(){return this._value}set value(t){this._value!==t&&(this._value=t,null!==this.radioGroup&&(this.checked||(this.checked=this.radioGroup.value===t),this.checked&&(this.radioGroup.selected=this)))}get labelPosition(){return this._labelPosition||this.radioGroup&&this.radioGroup.labelPosition||"after"}set labelPosition(t){this._labelPosition=t}get disabled(){return this._disabled||null!==this.radioGroup&&this.radioGroup.disabled}set disabled(t){this._setDisabled(t)}get required(){return this._required||this.radioGroup&&this.radioGroup.required}set required(t){this._required=t}get color(){return this._color||this.radioGroup&&this.radioGroup.color||this._providerOverride&&this._providerOverride.color||"accent"}set color(t){this._color=t}get inputId(){return`${this.id||this._uniqueId}-input`}constructor(t,i,r,s,o,l,d,u){this._elementRef=i,this._changeDetector=r,this._focusMonitor=s,this._radioDispatcher=o,this._providerOverride=d,this._uniqueId="mat-radio-"+ ++b$,this.id=this._uniqueId,this.disableRipple=!1,this.tabIndex=0,this.change=new Ls,this._checked=!1,this._value=null,this._removeUniqueSelectionListener=()=>{},this.radioGroup=t,this._noopAnimations="NoopAnimations"===l,u&&(this.tabIndex=ru(u,0))}focus(t,i){i?this._focusMonitor.focusVia(this._inputElement,i,t):this._inputElement.nativeElement.focus(t)}_markForCheck(){this._changeDetector.markForCheck()}ngOnInit(){this.radioGroup&&(this.checked=this.radioGroup.value===this._value,this.checked&&(this.radioGroup.selected=this),this.name=this.radioGroup.name),this._removeUniqueSelectionListener=this._radioDispatcher.listen((t,i)=>{t!==this.id&&i===this.name&&(this.checked=!1)})}ngDoCheck(){this._updateTabIndex()}ngAfterViewInit(){this._updateTabIndex(),this._focusMonitor.monitor(this._elementRef,!0).subscribe(t=>{!t&&this.radioGroup&&this.radioGroup._touch()})}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef),this._removeUniqueSelectionListener()}_emitChangeEvent(){this.change.emit(new x$(this,this._value))}_isRippleDisabled(){return this.disableRipple||this.disabled}_onInputClick(t){t.stopPropagation()}_onInputInteraction(t){if(t.stopPropagation(),!this.checked&&!this.disabled){const i=this.radioGroup&&this.value!==this.radioGroup.value;this.checked=!0,this._emitChangeEvent(),this.radioGroup&&(this.radioGroup._controlValueAccessorChangeFn(this.value),i&&this.radioGroup._emitChangeEvent())}}_onTouchTargetClick(t){this._onInputInteraction(t),this.disabled||this._inputElement.nativeElement.focus()}_setDisabled(t){this._disabled!==t&&(this._disabled=t,this._changeDetector.markForCheck())}_updateTabIndex(){const t=this.radioGroup;let i;if(i=t&&t.selected&&!this.disabled?t.selected===this?this.tabIndex:-1:this.tabIndex,i!==this._previousTabIndex){const r=this._inputElement?.nativeElement;r&&(r.setAttribute("tabindex",i+""),this._previousTabIndex=i)}}static#e=this.\u0275fac=function(i){return new(i||n)(Lt(w$,8),Lt(oo),Lt(Sc),Lt(e1),Lt(Pbe),Lt(Od,8),Lt(Lbe,8),bu("tabindex"))};static#t=this.\u0275cmp=rs({type:n,selectors:[["mat-radio-button"]],viewQuery:function(i,r){if(1&i&&(_l(Rbe,5),_l(kbe,7,oo)),2&i){let s;pa(s=ma())&&(r._inputElement=s.first),pa(s=ma())&&(r._rippleTrigger=s.first)}},hostAttrs:[1,"mat-mdc-radio-button"],hostVars:15,hostBindings:function(i,r){1&i&&Ai("focus",function(){return r._inputElement.nativeElement.focus()}),2&i&&(sl("id",r.id)("tabindex",null)("aria-label",null)("aria-labelledby",null)("aria-describedby",null),Ja("mat-primary","primary"===r.color)("mat-accent","accent"===r.color)("mat-warn","warn"===r.color)("mat-mdc-radio-checked",r.checked)("_mat-animation-noopable",r._noopAnimations))},inputs:{id:"id",name:"name",ariaLabel:[mi.None,"aria-label","ariaLabel"],ariaLabelledby:[mi.None,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[mi.None,"aria-describedby","ariaDescribedby"],disableRipple:[mi.HasDecoratorInputTransform,"disableRipple","disableRipple",_o],tabIndex:[mi.HasDecoratorInputTransform,"tabIndex","tabIndex",t=>null==t?0:ru(t)],checked:[mi.HasDecoratorInputTransform,"checked","checked",_o],value:"value",labelPosition:"labelPosition",disabled:[mi.HasDecoratorInputTransform,"disabled","disabled",_o],required:[mi.HasDecoratorInputTransform,"required","required",_o],color:"color"},outputs:{change:"change"},exportAs:["matRadioButton"],standalone:!0,features:[ql,yd],ngContentSelectors:Fbe,decls:13,vars:16,consts:[["formField",""],["input",""],["mat-internal-form-field","",3,"labelPosition"],[1,"mdc-radio"],[1,"mat-mdc-radio-touch-target",3,"click"],["type","radio",1,"mdc-radio__native-control",3,"change","id","checked","disabled","required"],[1,"mdc-radio__background"],[1,"mdc-radio__outer-circle"],[1,"mdc-radio__inner-circle"],["mat-ripple","",1,"mat-radio-ripple","mat-mdc-focus-indicator",3,"matRippleTrigger","matRippleDisabled","matRippleCentered"],[1,"mat-ripple-element","mat-radio-persistent-ripple"],[1,"mdc-label",3,"for"]],template:function(i,r){if(1&i){const s=ta();yh(),Gt(0,"div",2,0)(2,"div",3)(3,"div",4),Ai("click",function(l){return Ci(s),Mi(r._onTouchTargetClick(l))}),dn(),Gt(4,"input",5,1),Ai("change",function(l){return Ci(s),Mi(r._onInputInteraction(l))}),dn(),Gt(6,"div",6),Vr(7,"div",7)(8,"div",8),dn(),Gt(9,"div",9),Vr(10,"div",10),dn()(),Gt(11,"label",11),iu(12),dn()()}2&i&&(Qn("labelPosition",r.labelPosition),jn(2),Ja("mdc-radio--disabled",r.disabled),jn(2),Qn("id",r.inputId)("checked",r.checked)("disabled",r.disabled)("required",r.required),sl("name",r.name)("value",r.value)("aria-label",r.ariaLabel)("aria-labelledby",r.ariaLabelledby)("aria-describedby",r.ariaDescribedby),jn(5),Qn("matRippleTrigger",r._rippleTrigger.nativeElement)("matRippleDisabled",r._isRippleDisabled())("matRippleCentered",!0),jn(2),Qn("for",r.inputId))},dependencies:[k0,SO],styles:['.mdc-radio{display:inline-block;position:relative;flex:0 0 auto;box-sizing:content-box;width:20px;height:20px;cursor:pointer;will-change:opacity,transform,border-color,color}.mdc-radio[hidden]{display:none}.mdc-radio__background{display:inline-block;position:relative;box-sizing:border-box;width:20px;height:20px}.mdc-radio__background::before{position:absolute;transform:scale(0, 0);border-radius:50%;opacity:0;pointer-events:none;content:"";transition:opacity 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1),transform 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-radio__outer-circle{position:absolute;top:0;left:0;box-sizing:border-box;width:100%;height:100%;border-width:2px;border-style:solid;border-radius:50%;transition:border-color 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-radio__inner-circle{position:absolute;top:0;left:0;box-sizing:border-box;width:100%;height:100%;transform:scale(0, 0);border-width:10px;border-style:solid;border-radius:50%;transition:transform 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1),border-color 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-radio__native-control{position:absolute;margin:0;padding:0;opacity:0;cursor:inherit;z-index:1}.mdc-radio--touch{margin-top:4px;margin-bottom:4px;margin-right:4px;margin-left:4px}.mdc-radio--touch .mdc-radio__native-control{top:calc((40px - 48px) / 2);right:calc((40px - 48px) / 2);left:calc((40px - 48px) / 2);width:48px;height:48px}.mdc-radio.mdc-ripple-upgraded--background-focused .mdc-radio__focus-ring,.mdc-radio:not(.mdc-ripple-upgraded):focus .mdc-radio__focus-ring{pointer-events:none;border:2px solid rgba(0,0,0,0);border-radius:6px;box-sizing:content-box;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:100%;width:100%}@media screen and (forced-colors: active){.mdc-radio.mdc-ripple-upgraded--background-focused .mdc-radio__focus-ring,.mdc-radio:not(.mdc-ripple-upgraded):focus .mdc-radio__focus-ring{border-color:CanvasText}}.mdc-radio.mdc-ripple-upgraded--background-focused .mdc-radio__focus-ring::after,.mdc-radio:not(.mdc-ripple-upgraded):focus .mdc-radio__focus-ring::after{content:"";border:2px solid rgba(0,0,0,0);border-radius:8px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(100% + 4px);width:calc(100% + 4px)}@media screen and (forced-colors: active){.mdc-radio.mdc-ripple-upgraded--background-focused .mdc-radio__focus-ring::after,.mdc-radio:not(.mdc-ripple-upgraded):focus .mdc-radio__focus-ring::after{border-color:CanvasText}}.mdc-radio__native-control:checked+.mdc-radio__background,.mdc-radio__native-control:disabled+.mdc-radio__background{transition:opacity 120ms 0ms cubic-bezier(0, 0, 0.2, 1),transform 120ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-radio__native-control:checked+.mdc-radio__background .mdc-radio__outer-circle,.mdc-radio__native-control:disabled+.mdc-radio__background .mdc-radio__outer-circle{transition:border-color 120ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-radio__native-control:checked+.mdc-radio__background .mdc-radio__inner-circle,.mdc-radio__native-control:disabled+.mdc-radio__background .mdc-radio__inner-circle{transition:transform 120ms 0ms cubic-bezier(0, 0, 0.2, 1),border-color 120ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-radio--disabled{cursor:default;pointer-events:none}.mdc-radio__native-control:checked+.mdc-radio__background .mdc-radio__inner-circle{transform:scale(0.5);transition:transform 120ms 0ms cubic-bezier(0, 0, 0.2, 1),border-color 120ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-radio__native-control:disabled+.mdc-radio__background,[aria-disabled=true] .mdc-radio__native-control+.mdc-radio__background{cursor:default}.mdc-radio__native-control:focus+.mdc-radio__background::before{transform:scale(1);opacity:.12;transition:opacity 120ms 0ms cubic-bezier(0, 0, 0.2, 1),transform 120ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-radio-button{-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-radio-button .mdc-radio{padding:calc((var(--mdc-radio-state-layer-size) - 20px) / 2)}.mat-mdc-radio-button .mdc-radio [aria-disabled=true] .mdc-radio__native-control:checked+.mdc-radio__background .mdc-radio__outer-circle,.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control:disabled:checked+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-disabled-selected-icon-color)}.mat-mdc-radio-button .mdc-radio [aria-disabled=true] .mdc-radio__native-control+.mdc-radio__background .mdc-radio__inner-circle,.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control:disabled+.mdc-radio__background .mdc-radio__inner-circle{border-color:var(--mdc-radio-disabled-selected-icon-color)}.mat-mdc-radio-button .mdc-radio [aria-disabled=true] .mdc-radio__native-control:checked+.mdc-radio__background .mdc-radio__outer-circle,.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control:disabled:checked+.mdc-radio__background .mdc-radio__outer-circle{opacity:var(--mdc-radio-disabled-selected-icon-opacity)}.mat-mdc-radio-button .mdc-radio [aria-disabled=true] .mdc-radio__native-control+.mdc-radio__background .mdc-radio__inner-circle,.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control:disabled+.mdc-radio__background .mdc-radio__inner-circle{opacity:var(--mdc-radio-disabled-selected-icon-opacity)}.mat-mdc-radio-button .mdc-radio [aria-disabled=true] .mdc-radio__native-control:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle,.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control:disabled:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-disabled-unselected-icon-color)}.mat-mdc-radio-button .mdc-radio [aria-disabled=true] .mdc-radio__native-control:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle,.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control:disabled:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle{opacity:var(--mdc-radio-disabled-unselected-icon-opacity)}.mat-mdc-radio-button .mdc-radio.mdc-ripple-upgraded--background-focused .mdc-radio__native-control:enabled:checked+.mdc-radio__background .mdc-radio__outer-circle,.mat-mdc-radio-button .mdc-radio:not(.mdc-ripple-upgraded):focus .mdc-radio__native-control:enabled:checked+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-selected-focus-icon-color)}.mat-mdc-radio-button .mdc-radio.mdc-ripple-upgraded--background-focused .mdc-radio__native-control:enabled+.mdc-radio__background .mdc-radio__inner-circle,.mat-mdc-radio-button .mdc-radio:not(.mdc-ripple-upgraded):focus .mdc-radio__native-control:enabled+.mdc-radio__background .mdc-radio__inner-circle{border-color:var(--mdc-radio-selected-focus-icon-color)}.mat-mdc-radio-button .mdc-radio:hover .mdc-radio__native-control:enabled:checked+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-selected-hover-icon-color)}.mat-mdc-radio-button .mdc-radio:hover .mdc-radio__native-control:enabled+.mdc-radio__background .mdc-radio__inner-circle{border-color:var(--mdc-radio-selected-hover-icon-color)}.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control:enabled:checked+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-selected-icon-color)}.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control:enabled+.mdc-radio__background .mdc-radio__inner-circle{border-color:var(--mdc-radio-selected-icon-color)}.mat-mdc-radio-button .mdc-radio:not(:disabled):active .mdc-radio__native-control:enabled:checked+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-selected-pressed-icon-color)}.mat-mdc-radio-button .mdc-radio:not(:disabled):active .mdc-radio__native-control:enabled+.mdc-radio__background .mdc-radio__inner-circle{border-color:var(--mdc-radio-selected-pressed-icon-color)}.mat-mdc-radio-button .mdc-radio:hover .mdc-radio__native-control:enabled:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-unselected-hover-icon-color)}.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control:enabled:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-unselected-icon-color)}.mat-mdc-radio-button .mdc-radio:not(:disabled):active .mdc-radio__native-control:enabled:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-unselected-pressed-icon-color)}.mat-mdc-radio-button .mdc-radio .mdc-radio__background::before{top:calc(-1 * (var(--mdc-radio-state-layer-size) - 20px) / 2);left:calc(-1 * (var(--mdc-radio-state-layer-size) - 20px) / 2);width:var(--mdc-radio-state-layer-size);height:var(--mdc-radio-state-layer-size)}.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control{top:calc((var(--mdc-radio-state-layer-size) - var(--mdc-radio-state-layer-size)) / 2);right:calc((var(--mdc-radio-state-layer-size) - var(--mdc-radio-state-layer-size)) / 2);left:calc((var(--mdc-radio-state-layer-size) - var(--mdc-radio-state-layer-size)) / 2);width:var(--mdc-radio-state-layer-size);height:var(--mdc-radio-state-layer-size)}.mat-mdc-radio-button .mdc-radio .mdc-radio__background::before{background-color:var(--mat-radio-ripple-color)}.mat-mdc-radio-button .mdc-radio:hover .mdc-radio__native-control:not([disabled]):not(:focus)~.mdc-radio__background::before{opacity:.04;transform:scale(1)}.mat-mdc-radio-button.mat-mdc-radio-checked .mdc-radio__background::before{background-color:var(--mat-radio-checked-ripple-color)}.mat-mdc-radio-button.mat-mdc-radio-checked .mat-ripple-element{background-color:var(--mat-radio-checked-ripple-color)}.mat-mdc-radio-button .mdc-radio--disabled+label{color:var(--mat-radio-disabled-label-color)}.mat-mdc-radio-button .mat-radio-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:50%}.mat-mdc-radio-button .mat-radio-ripple .mat-ripple-element{opacity:.14}.mat-mdc-radio-button .mat-radio-ripple::before{border-radius:50%}.mat-mdc-radio-button._mat-animation-noopable .mdc-radio__background::before,.mat-mdc-radio-button._mat-animation-noopable .mdc-radio__outer-circle,.mat-mdc-radio-button._mat-animation-noopable .mdc-radio__inner-circle{transition:none !important}.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control:focus:enabled:not(:checked)~.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-unselected-focus-icon-color, black)}.mat-mdc-radio-button.cdk-focused .mat-mdc-focus-indicator::before{content:""}.mat-mdc-radio-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%);display:var(--mat-radio-touch-target-display)}[dir=rtl] .mat-mdc-radio-touch-target{left:0;right:50%;transform:translate(50%, -50%)}'],encapsulation:2,changeDetection:0})}return n})(),Ube=(()=>{class n{static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275mod=vo({type:n});static#n=this.\u0275inj=ra({imports:[Qd,hS,P4,IL,Qd]})}return n})();function zbe(n,e){if(1&n&&(Gt(0,"mat-radio-button",12),qi(1),dn()),2&n){const t=e.$implicit;Qn("value",t),jn(),yl("",t," ")}}let BL=(()=>{class n{eventDisplay;fittings=["Crop","Stretch"];fitting="Crop";width=3840;height=2160;disabled=!1;constructor(t){this.eventDisplay=t}ngOnInit(){}checkSize(){return this.eventDisplay.getThreeManager().checkScreenShotCanvasSize(this.width,this.height,this.fitting)}setWidth(t){this.width=t,this.disabled=!this.checkSize()}setHeight(t){this.height=t,this.disabled=!this.checkSize()}buttonText(){return this.disabled?"Size too large":"Create picture"}makePicture(){this.eventDisplay.getThreeManager().makeScreenShot(this.width,this.height,this.fitting)}static \u0275fac=function(i){return new(i||n)(Lt(Al))};static \u0275cmp=rs({type:n,selectors:[["app-make-picture"]],decls:20,vars:11,consts:[["menu",""],["width",""],["height",""],[1,"mat-menu"],["mat-menu-item","",1,"size-input",3,"click"],["mapInput","","type","number",3,"change","click","value"],["mat-menu-item","",3,"click"],[1,"fitting-radios",3,"ngModelChange","ngModel"],[3,"value",4,"ngFor","ngForOf"],["mat-menu-item","",1,"make-picture",3,"click","disabled"],["tooltip","Creates a picture from the current view: directly saves a png of arbitrary size from the current view","icon","png",3,"matMenuTriggerFor"],["hidden","","id","screenshotCanvas"],[3,"value"]],template:function(i,r){if(1&i){const s=ta();Gt(0,"mat-menu",3,0)(2,"button",4),Ai("click",function(l){return Ci(s),Mi(l.stopPropagation())}),Gt(3,"label"),qi(4,"width"),dn(),Gt(5,"input",5,1),Ai("change",function(){Ci(s);const l=Ga(6);return Mi(r.setWidth(l.value))})("click",function(l){return Ci(s),Mi(l.stopPropagation())}),dn()(),Gt(7,"button",4),Ai("click",function(l){return Ci(s),Mi(l.stopPropagation())}),Gt(8,"label"),qi(9,"height"),dn(),Gt(10,"input",5,2),Ai("change",function(){Ci(s);const l=Ga(11);return Mi(r.setHeight(l.value))})("click",function(l){return Ci(s),Mi(l.stopPropagation())}),dn()(),Gt(12,"button",6),Ai("click",function(l){return Ci(s),Mi(l.stopPropagation())}),Gt(13,"mat-radio-group",7),qw("ngModelChange",function(l){return Ci(s),nS(r.fitting,l)||(r.fitting=l),Mi(l)}),zs(14,zbe,2,2,"mat-radio-button",8),dn()(),Gt(15,"button",9),Ai("click",function(){return Ci(s),Mi(r.makePicture())}),qi(16),dn()(),Vr(17,"app-menu-toggle",10),Gt(18,"div"),Vr(19,"canvas",11),dn()}if(2&i){const s=Ga(1);jn(5),Ja("badSize",r.disabled),Qn("value",3840),jn(5),Ja("badSize",r.disabled),Qn("value",2610),jn(3),Gw("ngModel",r.fitting),jn(),Qn("ngForOf",r.fittings),jn(),Qn("disabled",r.disabled),jn(),yl(" ",r.buttonText()," "),jn(),Qn("matMenuTriggerFor",s)}},dependencies:[am,UO,X4,o1,s1,CC,C$,IL,qc],styles:[".size-input{background:transparent;color:var(--phoenix-text-color);text-align:center}.size-input label{width:60px}.size-input input{background:transparent;color:var(--phoenix-text-color);width:80px}.badSize{border-color:red}.make-picture{text-align:center;display:block}.make-picture span{padding:5px 25px;border:2px solid var(--phoenix-text-color);border-radius:8px}\n"],encapsulation:2})}return n})(),PL=(()=>{class n{eventDisplay;performanceMode=!1;constructor(t){this.eventDisplay=t}togglePerformance(){this.performanceMode=!this.performanceMode,this.eventDisplay.getThreeManager().setAntialiasing(!this.performanceMode)}static \u0275fac=function(i){return new(i||n)(Lt(Al))};static \u0275cmp=rs({type:n,selectors:[["app-performance-toggle"]],decls:1,vars:1,consts:[["tooltip","Performance mode","icon","performance",3,"click","active"]],template:function(i,r){1&i&&(Gt(0,"app-menu-toggle",0),Ai("click",function(){return r.togglePerformance()}),dn()),2&i&&Qn("active",r.performanceMode)},dependencies:[qc]})}return n})();var Hbe=Se(1230);const Vbe=["qrcodeCanvas"];let M$=(()=>{class n{dialogRef;baseLink;shareLink;embedLink;urlOptions=Object.assign({},Lge);qrcodeCanvas;constructor(t){this.dialogRef=t;const i=window.location.href,r=-1===i.lastIndexOf("?")?i.length:i.lastIndexOf("?");this.baseLink=i.slice(0,r),this.shareLink=new pC(this.baseLink),this.embedLink=this.getEmbedLink()}ngAfterViewInit(){this.updateQRCode(this.shareLink.value),this.shareLink.onUpdate(this.updateQRCode.bind(this))}onClose(){this.dialogRef.close()}getEmbedLink(t=""){return``}setOptionValue(t,i){this.urlOptions[t]=i,this.onOptionsChange()}onOptionsChange(){const t=Object.getOwnPropertyNames(this.urlOptions).reduce((i,r)=>(this.urlOptions[r]&&i.push(`${r}=${encodeURI(this.urlOptions[r])}`),i),[]).join("&");this.shareLink.update(this.baseLink+(t?"?":"")+t),this.embedLink=this.getEmbedLink(t)}copyText(t,i){const r=document.createElement("input");document.body.appendChild(r),r.value=t,r.select(),document.execCommand("copy"),document.body.removeChild(r),i.focus(),i.innerText="COPIED",setTimeout(()=>{i.innerText="COPY"},2e3)}updateQRCode(t){Hbe.toCanvas(this.qrcodeCanvas.nativeElement,t)}static \u0275fac=function(i){return new(i||n)(Lt(_x))};static \u0275cmp=rs({type:n,selectors:[["app-share-link-dialog"]],viewQuery:function(i,r){if(1&i&&_l(Vbe,5),2&i){let s;pa(s=ma())&&(r.qrcodeCanvas=s.first)}},decls:49,vars:5,consts:[["qrcodeCanvas",""],[1,"dialog"],["mat-dialog-title",""],["mat-dialog-content","",1,"dialog-content"],[1,"form-group","mt-2"],["for","eventDataFile"],["type","text","id","eventDataFile","placeholder","assets/files/event_data/atlaseventdump2.json",1,"form-control",3,"input","value"],[1,"form-group"],["for","eventDataType"],["id","eventDataType",1,"form-control",3,"input"],["selected","","value",""],["value","jivexml"],["value","json"],["for","configuration"],["type","text","id","configuration","placeholder","assets/files/config/phoenix-config.json",1,"form-control",3,"input","value"],[3,"change","checked"],[1,"share-box","my-2"],[1,"share-box-copy",3,"click"],[1,"qrcode","d-flex","justify-content-center"],["mat-dialog-actions",""],["mat-button","","cdkFocusInitial","",3,"click"]],template:function(i,r){if(1&i){const s=ta();Gt(0,"div",1)(1,"h1",2),qi(2,"Create shareable link"),dn(),Gt(3,"div",3)(4,"h5"),qi(5,"URL options"),dn(),Gt(6,"div",4)(7,"label",5),qi(8,"Event data file (URL or path)"),dn(),Gt(9,"input",6),Ai("input",function(l){return Ci(s),Mi(r.setOptionValue("file",l.target.value))}),dn()(),Gt(10,"div",7)(11,"label",8),qi(12,"Event data type"),dn(),Gt(13,"select",9),Ai("input",function(l){return Ci(s),Mi(r.setOptionValue("type",l.target.value))}),Gt(14,"option",10),qi(15,"Select"),dn(),Gt(16,"option",11),qi(17,"JiveXML"),dn(),Gt(18,"option",12),qi(19,"JSON"),dn()()(),Gt(20,"div",7)(21,"label",13),qi(22,"Configuration (URL or path)"),dn(),Gt(23,"input",14),Ai("input",function(l){return Ci(s),Mi(r.setOptionValue("config",l.target.value))}),dn()(),Gt(24,"div",7)(25,"mat-checkbox",15),Ai("change",function(l){return Ci(s),Mi(r.setOptionValue("hideWidgets",l.checked))}),qi(26," Hide all widgets "),dn()(),Gt(27,"h5"),qi(28,"Share"),dn(),Gt(29,"div",16)(30,"span"),qi(31),dn(),Gt(32,"button",17),Ai("click",function(l){return Ci(s),Mi(r.copyText(r.shareLink.value,l.target))}),qi(33," COPY "),dn()(),Gt(34,"h5"),qi(35,"Embed"),dn(),Gt(36,"div",16)(37,"span"),qi(38),dn(),Gt(39,"button",17),Ai("click",function(l){return Ci(s),Mi(r.copyText(r.embedLink,l.target))}),qi(40," COPY "),dn()(),Gt(41,"h5"),qi(42,"QR Code"),dn(),Gt(43,"div",18),Vr(44,"canvas",null,0),dn()(),Gt(46,"div",19)(47,"button",20),Ai("click",function(){return Ci(s),Mi(r.onClose())}),qi(48,"Close"),dn()()()}2&i&&(jn(9),Qn("value",r.urlOptions.file),jn(14),Qn("value",r.urlOptions.config),jn(2),Qn("checked",r.urlOptions.hideWidgets),jn(6),tA(r.shareLink.value),jn(7),tA(r.embedLink))},dependencies:[jE,XE,$E,BC,EC,TC,rv],styles:[".share-box[_ngcontent-%COMP%]{width:30rem;max-width:100%;position:relative;background:var(--phoenix-background-color-tertiary);border:1px solid var(--phoenix-border);border-radius:.5rem;padding:1.25rem;word-wrap:break-word}.share-box[_ngcontent-%COMP%] .share-box-copy[_ngcontent-%COMP%]{position:absolute;top:-1px;right:-1px;background:transparent;color:inherit;cursor:pointer;padding:.25rem .5rem;font-size:.75rem;border:1px solid var(--phoenix-border);border-radius:.5rem}.share-box[_ngcontent-%COMP%] .share-box-copy[_ngcontent-%COMP%]:hover{background:var(--phoenix-border)}"]})}return n})(),RL=(()=>{class n{dialog;constructor(t){this.dialog=t}openShareLinkDialog(){this.dialog.open(M$)}static \u0275fac=function(i){return new(i||n)(Lt(yx))};static \u0275cmp=rs({type:n,selectors:[["app-share-link"]],decls:1,vars:1,consts:[["tooltip","Create shareable link","icon","share",3,"click","active"]],template:function(i,r){1&i&&(Gt(0,"app-menu-toggle",0),Ai("click",function(){return r.openShareLinkDialog()}),dn()),2&i&&Qn("active",!1)},dependencies:[qc]})}return n})();const Gbe=["*"];let KE=(()=>{class n{eventDataImportOptions=Object.values(qh);animationPresets=MW;static \u0275fac=function(i){return new(i||n)};static \u0275cmp=rs({type:n,selectors:[["app-ui-menu"]],inputs:{eventDataImportOptions:"eventDataImportOptions",animationPresets:"animationPresets"},ngContentSelectors:Gbe,decls:23,vars:2,consts:[[3,"animationPresets"],[3,"eventDataImportOptions"]],template:function(i,r){1&i&&(yh(),Gt(0,"app-ui-menu-wrapper"),Vr(1,"app-event-selector")(2,"app-zoom-controls")(3,"app-view-options")(4,"app-auto-rotate")(5,"app-dark-theme")(6,"app-object-clipping")(7,"app-main-view-toggle")(8,"app-overlay-view")(9,"app-object-selection")(10,"app-info-panel")(11,"app-animate-event")(12,"app-animate-camera",0)(13,"app-collections-info")(14,"app-geometry-browser")(15,"app-performance-toggle")(16,"app-vr-toggle")(17,"app-ar-toggle")(18,"app-ss-mode")(19,"app-make-picture")(20,"app-io-options",1)(21,"app-share-link"),iu(22),dn()),2&i&&(jn(12),Qn("animationPresets",r.animationPresets),jn(8),Qn("eventDataImportOptions",r.eventDataImportOptions))},dependencies:[kO,uL,Kj,gL,_L,yL,vL,xL,rB,sB,wL,CL,oB,ML,RO,aB,SL,EL,TL,BL,PL,RL]})}return n})();function qbe(n,e){if(1&n&&(Gt(0,"a",5),Vr(1,"img",6),dn()),2&n){const t=Pr();Qn("href",t.url,K1),jn(),Qn("src",t.logo,K1)}}function Qbe(n,e){if(1&n&&(Gt(0,"p")(1,"b"),qi(2),dn()()),2&n){const t=Pr();jn(2),tA(t.tagline)}}function Wbe(n,e){if(1&n&&(ig(0),Gt(1,"b"),qi(2),dn(),qi(3),rg()),2&n){const t=Pr().$implicit;jn(2),yl("",t.label,": "),jn(),yl("",t.value," ")}}function jbe(n,e){if(1&n&&(ig(0),qi(1),rg()),2&n){const t=Pr().$implicit;jn(),yl(" ",t," ")}}function $be(n,e){if(1&n&&(Gt(0,"p"),zs(1,Wbe,4,2,"ng-container",3)(2,jbe,2,1,"ng-container",3),dn()),2&n){const t=e.$implicit;jn(),Qn("ngIf",t.label),jn(),Qn("ngIf",!t.label)}}let lB=(()=>{class n{eventDisplay;experimentInfo;url;logo;tagline;constructor(t){this.eventDisplay=t}ngOnInit(){this.eventDisplay.listenToDisplayedEventChange(()=>{this.experimentInfo=this.eventDisplay.getEventMetadata()})}static \u0275fac=function(i){return new(i||n)(Lt(Al))};static \u0275cmp=rs({type:n,selectors:[["app-experiment-info"]],inputs:{url:"url",logo:"logo",tagline:"tagline"},decls:5,vars:3,consts:[["id","experimentInfo","cdkDrag","","cdkDragBoundary","body",1,"experimentInfo"],["class","experimentLogoWrapper","target","_blank","rel","noopener noreferrer",3,"href",4,"ngIf"],[1,"textInfo"],[4,"ngIf"],[4,"ngFor","ngForOf"],["target","_blank","rel","noopener noreferrer",1,"experimentLogoWrapper",3,"href"],["alt","",1,"experimentLogo",3,"src"]],template:function(i,r){1&i&&(Gt(0,"div",0),zs(1,qbe,2,2,"a",1),Gt(2,"div",2),zs(3,Qbe,3,1,"p",3)(4,$be,3,2,"p",4),dn()()),2&i&&(jn(),Qn("ngIf",r.url),jn(2),Qn("ngIf",r.tagline),jn(),Qn("ngForOf",r.experimentInfo))},dependencies:[am,Lh,cL],styles:[".experimentInfo[_ngcontent-%COMP%]{position:absolute;top:5rem;left:1rem;display:flex;flex-direction:row;justify-items:flex-end;justify-content:flex-end;align-items:center;align-content:center;font-family:Courier New,Lucida Console,monospace;cursor:move}.experimentLogoWrapper[_ngcontent-%COMP%]{width:6rem}.experimentLogoWrapper[_ngcontent-%COMP%] .experimentLogo[_ngcontent-%COMP%]{width:100%;height:100%}.textInfo[_ngcontent-%COMP%]{margin-left:1rem}.textInfo[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{color:var(--phoenix-text-color-secondary);font-size:.8rem;margin-bottom:.5rem;-webkit-user-select:none;user-select:none}@media screen and (max-width: 768px){.experimentInfo[_ngcontent-%COMP%]{top:4rem;max-width:40%}.experimentLogoWrapper[_ngcontent-%COMP%]{height:4rem}.textInfo[_ngcontent-%COMP%]{display:none}}"]})}return n})();const Xbe=["switch"],Ybe=["*"];function Kbe(n,e){1&n&&(Gt(0,"div",10),Fl(),Gt(1,"svg",12),Vr(2,"path",13),dn(),Gt(3,"svg",14),Vr(4,"path",15),dn()())}const Zbe=new Bi("mat-slide-toggle-default-options",{providedIn:"root",factory:()=>({disableToggleValue:!1,hideIcon:!1})}),Jbe={provide:Of,useExisting:jt(()=>kL),multi:!0};class S${constructor(e,t){this.source=e,this.checked=t}}let exe=0,kL=(()=>{class n{_createChangeEvent(t){return new S$(this,t)}get buttonId(){return`${this.id||this._uniqueId}-button`}focus(){this._switchElement.nativeElement.focus()}get checked(){return this._checked}set checked(t){this._checked=t,this._changeDetectorRef.markForCheck()}get inputId(){return`${this.id||this._uniqueId}-input`}constructor(t,i,r,s,o,l){this._elementRef=t,this._focusMonitor=i,this._changeDetectorRef=r,this.defaults=o,this._onChange=d=>{},this._onTouched=()=>{},this._validatorOnChange=()=>{},this._checked=!1,this.name=null,this.labelPosition="after",this.ariaLabel=null,this.ariaLabelledby=null,this.disabled=!1,this.disableRipple=!1,this.tabIndex=0,this.change=new Ls,this.toggleChange=new Ls,this.tabIndex=parseInt(s)||0,this.color=o.color||"accent",this._noopAnimations="NoopAnimations"===l,this.id=this._uniqueId="mat-mdc-slide-toggle-"+ ++exe,this.hideIcon=o.hideIcon??!1,this._labelId=this._uniqueId+"-label"}ngAfterContentInit(){this._focusMonitor.monitor(this._elementRef,!0).subscribe(t=>{"keyboard"===t||"program"===t?(this._focused=!0,this._changeDetectorRef.markForCheck()):t||Promise.resolve().then(()=>{this._focused=!1,this._onTouched(),this._changeDetectorRef.markForCheck()})})}ngOnChanges(t){t.required&&this._validatorOnChange()}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef)}writeValue(t){this.checked=!!t}registerOnChange(t){this._onChange=t}registerOnTouched(t){this._onTouched=t}validate(t){return this.required&&!0!==t.value?{required:!0}:null}registerOnValidatorChange(t){this._validatorOnChange=t}setDisabledState(t){this.disabled=t,this._changeDetectorRef.markForCheck()}toggle(){this.checked=!this.checked,this._onChange(this.checked)}_emitChangeEvent(){this._onChange(this.checked),this.change.emit(this._createChangeEvent(this.checked))}_handleClick(){this.toggleChange.emit(),this.defaults.disableToggleValue||(this.checked=!this.checked,this._onChange(this.checked),this.change.emit(new S$(this,this.checked)))}_getAriaLabelledBy(){return this.ariaLabelledby?this.ariaLabelledby:this.ariaLabel?null:this._labelId}static#e=this.\u0275fac=function(i){return new(i||n)(Lt(oo),Lt(e1),Lt(Sc),bu("tabindex"),Lt(Zbe),Lt(Od,8))};static#t=this.\u0275cmp=rs({type:n,selectors:[["mat-slide-toggle"]],viewQuery:function(i,r){if(1&i&&_l(Xbe,5),2&i){let s;pa(s=ma())&&(r._switchElement=s.first)}},hostAttrs:[1,"mat-mdc-slide-toggle"],hostVars:13,hostBindings:function(i,r){2&i&&(zw("id",r.id),sl("tabindex",null)("aria-label",null)("name",null)("aria-labelledby",null),P_(r.color?"mat-"+r.color:""),Ja("mat-mdc-slide-toggle-focused",r._focused)("mat-mdc-slide-toggle-checked",r.checked)("_mat-animation-noopable",r._noopAnimations))},inputs:{name:"name",id:"id",labelPosition:"labelPosition",ariaLabel:[mi.None,"aria-label","ariaLabel"],ariaLabelledby:[mi.None,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[mi.None,"aria-describedby","ariaDescribedby"],required:[mi.HasDecoratorInputTransform,"required","required",_o],color:"color",disabled:[mi.HasDecoratorInputTransform,"disabled","disabled",_o],disableRipple:[mi.HasDecoratorInputTransform,"disableRipple","disableRipple",_o],tabIndex:[mi.HasDecoratorInputTransform,"tabIndex","tabIndex",t=>null==t?0:ru(t)],checked:[mi.HasDecoratorInputTransform,"checked","checked",_o],hideIcon:[mi.HasDecoratorInputTransform,"hideIcon","hideIcon",_o]},outputs:{change:"change",toggleChange:"toggleChange"},exportAs:["matSlideToggle"],standalone:!0,features:[qo([Jbe,{provide:pu,useExisting:n,multi:!0}]),ql,kl,yd],ngContentSelectors:Ybe,decls:13,vars:24,consts:[["switch",""],["mat-internal-form-field","",3,"labelPosition"],["role","switch","type","button",1,"mdc-switch",3,"click","tabIndex","disabled"],[1,"mdc-switch__track"],[1,"mdc-switch__handle-track"],[1,"mdc-switch__handle"],[1,"mdc-switch__shadow"],[1,"mdc-elevation-overlay"],[1,"mdc-switch__ripple"],["mat-ripple","",1,"mat-mdc-slide-toggle-ripple","mat-mdc-focus-indicator",3,"matRippleTrigger","matRippleDisabled","matRippleCentered"],[1,"mdc-switch__icons"],[1,"mdc-label",3,"click","for"],["viewBox","0 0 24 24","aria-hidden","true",1,"mdc-switch__icon","mdc-switch__icon--on"],["d","M19.69,5.23L8.96,15.96l-4.23-4.23L2.96,13.5l6,6L21.46,7L19.69,5.23z"],["viewBox","0 0 24 24","aria-hidden","true",1,"mdc-switch__icon","mdc-switch__icon--off"],["d","M20 13H4v-2h16v2z"]],template:function(i,r){if(1&i){const s=ta();yh(),Gt(0,"div",1)(1,"button",2,0),Ai("click",function(){return Ci(s),Mi(r._handleClick())}),Vr(3,"div",3),Gt(4,"div",4)(5,"div",5)(6,"div",6),Vr(7,"div",7),dn(),Gt(8,"div",8),Vr(9,"div",9),dn(),zs(10,Kbe,5,0,"div",10),dn()()(),Gt(11,"label",11),Ai("click",function(l){return Ci(s),Mi(l.stopPropagation())}),iu(12),dn()()}if(2&i){const s=Ga(2);Qn("labelPosition",r.labelPosition),jn(),Ja("mdc-switch--selected",r.checked)("mdc-switch--unselected",!r.checked)("mdc-switch--checked",r.checked)("mdc-switch--disabled",r.disabled),Qn("tabIndex",r.disabled?-1:r.tabIndex)("disabled",r.disabled),sl("id",r.buttonId)("name",r.name)("aria-label",r.ariaLabel)("aria-labelledby",r._getAriaLabelledBy())("aria-describedby",r.ariaDescribedby)("aria-required",r.required||null)("aria-checked",r.checked),jn(8),Qn("matRippleTrigger",s)("matRippleDisabled",r.disableRipple||r.disabled)("matRippleCentered",!0),jn(),R_(10,r.hideIcon?-1:10),jn(),Qn("for",r.buttonId),sl("id",r._labelId)}},dependencies:[k0,SO],styles:['.mdc-elevation-overlay{position:absolute;border-radius:inherit;pointer-events:none;opacity:var(--mdc-elevation-overlay-opacity);transition:opacity 280ms cubic-bezier(0.4, 0, 0.2, 1);background-color:var(--mdc-elevation-overlay-color)}.mdc-switch{align-items:center;background:none;border:none;cursor:pointer;display:inline-flex;flex-shrink:0;margin:0;outline:none;overflow:visible;padding:0;position:relative}.mdc-switch[hidden]{display:none}.mdc-switch:disabled{cursor:default;pointer-events:none}.mdc-switch__track{overflow:hidden;position:relative;width:100%}.mdc-switch__track::before,.mdc-switch__track::after{border:1px solid rgba(0,0,0,0);border-radius:inherit;box-sizing:border-box;content:"";height:100%;left:0;position:absolute;width:100%}@media screen and (forced-colors: active){.mdc-switch__track::before,.mdc-switch__track::after{border-color:currentColor}}.mdc-switch__track::before{transition:transform 75ms 0ms cubic-bezier(0, 0, 0.2, 1);transform:translateX(0)}.mdc-switch__track::after{transition:transform 75ms 0ms cubic-bezier(0.4, 0, 0.6, 1);transform:translateX(-100%)}[dir=rtl] .mdc-switch__track::after,.mdc-switch__track[dir=rtl]::after{transform:translateX(100%)}.mdc-switch--selected .mdc-switch__track::before{transition:transform 75ms 0ms cubic-bezier(0.4, 0, 0.6, 1);transform:translateX(100%)}[dir=rtl] .mdc-switch--selected .mdc-switch__track::before,.mdc-switch--selected .mdc-switch__track[dir=rtl]::before{transform:translateX(-100%)}.mdc-switch--selected .mdc-switch__track::after{transition:transform 75ms 0ms cubic-bezier(0, 0, 0.2, 1);transform:translateX(0)}.mdc-switch__handle-track{height:100%;pointer-events:none;position:absolute;top:0;transition:transform 75ms 0ms cubic-bezier(0.4, 0, 0.2, 1);left:0;right:auto;transform:translateX(0)}[dir=rtl] .mdc-switch__handle-track,.mdc-switch__handle-track[dir=rtl]{left:auto;right:0}.mdc-switch--selected .mdc-switch__handle-track{transform:translateX(100%)}[dir=rtl] .mdc-switch--selected .mdc-switch__handle-track,.mdc-switch--selected .mdc-switch__handle-track[dir=rtl]{transform:translateX(-100%)}.mdc-switch__handle{display:flex;pointer-events:auto;position:absolute;top:50%;transform:translateY(-50%);left:0;right:auto}[dir=rtl] .mdc-switch__handle,.mdc-switch__handle[dir=rtl]{left:auto;right:0}.mdc-switch__handle::before,.mdc-switch__handle::after{border:1px solid rgba(0,0,0,0);border-radius:inherit;box-sizing:border-box;content:"";width:100%;height:100%;left:0;position:absolute;top:0;transition:background-color 75ms 0ms cubic-bezier(0.4, 0, 0.2, 1),border-color 75ms 0ms cubic-bezier(0.4, 0, 0.2, 1);z-index:-1}@media screen and (forced-colors: active){.mdc-switch__handle::before,.mdc-switch__handle::after{border-color:currentColor}}.mdc-switch__shadow{border-radius:inherit;bottom:0;left:0;position:absolute;right:0;top:0}.mdc-elevation-overlay{bottom:0;left:0;right:0;top:0}.mdc-switch__ripple{left:50%;position:absolute;top:50%;transform:translate(-50%, -50%);z-index:-1}.mdc-switch:disabled .mdc-switch__ripple{display:none}.mdc-switch__icons{height:100%;position:relative;width:100%;z-index:1}.mdc-switch__icon{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0;opacity:0;transition:opacity 30ms 0ms cubic-bezier(0.4, 0, 1, 1)}.mdc-switch--selected .mdc-switch__icon--on,.mdc-switch--unselected .mdc-switch__icon--off{opacity:1;transition:opacity 45ms 30ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-slide-toggle .mdc-switch--disabled+label{color:var(--mdc-switch-disabled-label-text-color)}.mdc-switch{width:var(--mdc-switch-track-width)}.mdc-switch.mdc-switch--selected:enabled .mdc-switch__handle::after{background:var(--mdc-switch-selected-handle-color)}.mdc-switch.mdc-switch--selected:enabled:hover:not(:focus):not(:active) .mdc-switch__handle::after{background:var(--mdc-switch-selected-hover-handle-color)}.mdc-switch.mdc-switch--selected:enabled:focus:not(:active) .mdc-switch__handle::after{background:var(--mdc-switch-selected-focus-handle-color)}.mdc-switch.mdc-switch--selected:enabled:active .mdc-switch__handle::after{background:var(--mdc-switch-selected-pressed-handle-color)}.mdc-switch.mdc-switch--selected:disabled .mdc-switch__handle::after{background:var(--mdc-switch-disabled-selected-handle-color)}.mdc-switch.mdc-switch--unselected:enabled .mdc-switch__handle::after{background:var(--mdc-switch-unselected-handle-color)}.mdc-switch.mdc-switch--unselected:enabled:hover:not(:focus):not(:active) .mdc-switch__handle::after{background:var(--mdc-switch-unselected-hover-handle-color)}.mdc-switch.mdc-switch--unselected:enabled:focus:not(:active) .mdc-switch__handle::after{background:var(--mdc-switch-unselected-focus-handle-color)}.mdc-switch.mdc-switch--unselected:enabled:active .mdc-switch__handle::after{background:var(--mdc-switch-unselected-pressed-handle-color)}.mdc-switch.mdc-switch--unselected:disabled .mdc-switch__handle::after{background:var(--mdc-switch-disabled-unselected-handle-color)}.mdc-switch .mdc-switch__handle::before{background:var(--mdc-switch-handle-surface-color)}.mdc-switch:enabled .mdc-switch__shadow{box-shadow:var(--mdc-switch-handle-elevation)}.mdc-switch:disabled .mdc-switch__shadow{box-shadow:var(--mdc-switch-disabled-handle-elevation)}.mdc-switch .mdc-switch__focus-ring-wrapper,.mdc-switch .mdc-switch__handle{height:var(--mdc-switch-handle-height)}.mdc-switch .mdc-switch__handle{border-radius:var(--mdc-switch-handle-shape)}.mdc-switch .mdc-switch__handle{width:var(--mdc-switch-handle-width)}.mdc-switch .mdc-switch__handle-track{width:calc(100% - var(--mdc-switch-handle-width))}.mdc-switch.mdc-switch--selected:enabled .mdc-switch__icon{fill:var(--mdc-switch-selected-icon-color)}.mdc-switch.mdc-switch--selected:disabled .mdc-switch__icon{fill:var(--mdc-switch-disabled-selected-icon-color)}.mdc-switch.mdc-switch--unselected:enabled .mdc-switch__icon{fill:var(--mdc-switch-unselected-icon-color)}.mdc-switch.mdc-switch--unselected:disabled .mdc-switch__icon{fill:var(--mdc-switch-disabled-unselected-icon-color)}.mdc-switch.mdc-switch--selected:disabled .mdc-switch__icons{opacity:var(--mdc-switch-disabled-selected-icon-opacity)}.mdc-switch.mdc-switch--unselected:disabled .mdc-switch__icons{opacity:var(--mdc-switch-disabled-unselected-icon-opacity)}.mdc-switch.mdc-switch--selected .mdc-switch__icon{width:var(--mdc-switch-selected-icon-size);height:var(--mdc-switch-selected-icon-size)}.mdc-switch.mdc-switch--unselected .mdc-switch__icon{width:var(--mdc-switch-unselected-icon-size);height:var(--mdc-switch-unselected-icon-size)}.mdc-switch.mdc-switch--selected:enabled:hover:not(:focus) .mdc-switch__ripple::before,.mdc-switch.mdc-switch--selected:enabled:hover:not(:focus) .mdc-switch__ripple::after{background-color:var(--mdc-switch-selected-hover-state-layer-color)}.mdc-switch.mdc-switch--selected:enabled:focus .mdc-switch__ripple::before,.mdc-switch.mdc-switch--selected:enabled:focus .mdc-switch__ripple::after{background-color:var(--mdc-switch-selected-focus-state-layer-color)}.mdc-switch.mdc-switch--selected:enabled:active .mdc-switch__ripple::before,.mdc-switch.mdc-switch--selected:enabled:active .mdc-switch__ripple::after{background-color:var(--mdc-switch-selected-pressed-state-layer-color)}.mdc-switch.mdc-switch--unselected:enabled:hover:not(:focus) .mdc-switch__ripple::before,.mdc-switch.mdc-switch--unselected:enabled:hover:not(:focus) .mdc-switch__ripple::after{background-color:var(--mdc-switch-unselected-hover-state-layer-color)}.mdc-switch.mdc-switch--unselected:enabled:focus .mdc-switch__ripple::before,.mdc-switch.mdc-switch--unselected:enabled:focus .mdc-switch__ripple::after{background-color:var(--mdc-switch-unselected-focus-state-layer-color)}.mdc-switch.mdc-switch--unselected:enabled:active .mdc-switch__ripple::before,.mdc-switch.mdc-switch--unselected:enabled:active .mdc-switch__ripple::after{background-color:var(--mdc-switch-unselected-pressed-state-layer-color)}.mdc-switch.mdc-switch--selected:enabled:hover:not(:focus):hover .mdc-switch__ripple::before,.mdc-switch.mdc-switch--selected:enabled:hover:not(:focus).mdc-ripple-surface--hover .mdc-switch__ripple::before{opacity:var(--mdc-switch-selected-hover-state-layer-opacity)}.mdc-switch.mdc-switch--selected:enabled:focus.mdc-ripple-upgraded--background-focused .mdc-switch__ripple::before,.mdc-switch.mdc-switch--selected:enabled:focus:not(.mdc-ripple-upgraded):focus .mdc-switch__ripple::before{transition-duration:75ms;opacity:var(--mdc-switch-selected-focus-state-layer-opacity)}.mdc-switch.mdc-switch--selected:enabled:active:not(.mdc-ripple-upgraded) .mdc-switch__ripple::after{transition:opacity 150ms linear}.mdc-switch.mdc-switch--selected:enabled:active:not(.mdc-ripple-upgraded):active .mdc-switch__ripple::after{transition-duration:75ms;opacity:var(--mdc-switch-selected-pressed-state-layer-opacity)}.mdc-switch.mdc-switch--selected:enabled:active.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-switch-selected-pressed-state-layer-opacity)}.mdc-switch.mdc-switch--unselected:enabled:hover:not(:focus):hover .mdc-switch__ripple::before,.mdc-switch.mdc-switch--unselected:enabled:hover:not(:focus).mdc-ripple-surface--hover .mdc-switch__ripple::before{opacity:var(--mdc-switch-unselected-hover-state-layer-opacity)}.mdc-switch.mdc-switch--unselected:enabled:focus.mdc-ripple-upgraded--background-focused .mdc-switch__ripple::before,.mdc-switch.mdc-switch--unselected:enabled:focus:not(.mdc-ripple-upgraded):focus .mdc-switch__ripple::before{transition-duration:75ms;opacity:var(--mdc-switch-unselected-focus-state-layer-opacity)}.mdc-switch.mdc-switch--unselected:enabled:active:not(.mdc-ripple-upgraded) .mdc-switch__ripple::after{transition:opacity 150ms linear}.mdc-switch.mdc-switch--unselected:enabled:active:not(.mdc-ripple-upgraded):active .mdc-switch__ripple::after{transition-duration:75ms;opacity:var(--mdc-switch-unselected-pressed-state-layer-opacity)}.mdc-switch.mdc-switch--unselected:enabled:active.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-switch-unselected-pressed-state-layer-opacity)}.mdc-switch .mdc-switch__ripple{height:var(--mdc-switch-state-layer-size);width:var(--mdc-switch-state-layer-size)}.mdc-switch .mdc-switch__track{height:var(--mdc-switch-track-height)}.mdc-switch:disabled .mdc-switch__track{opacity:var(--mdc-switch-disabled-track-opacity)}.mdc-switch:enabled .mdc-switch__track::after{background:var(--mdc-switch-selected-track-color)}.mdc-switch:enabled:hover:not(:focus):not(:active) .mdc-switch__track::after{background:var(--mdc-switch-selected-hover-track-color)}.mdc-switch:enabled:focus:not(:active) .mdc-switch__track::after{background:var(--mdc-switch-selected-focus-track-color)}.mdc-switch:enabled:active .mdc-switch__track::after{background:var(--mdc-switch-selected-pressed-track-color)}.mdc-switch:disabled .mdc-switch__track::after{background:var(--mdc-switch-disabled-selected-track-color)}.mdc-switch:enabled .mdc-switch__track::before{background:var(--mdc-switch-unselected-track-color)}.mdc-switch:enabled:hover:not(:focus):not(:active) .mdc-switch__track::before{background:var(--mdc-switch-unselected-hover-track-color)}.mdc-switch:enabled:focus:not(:active) .mdc-switch__track::before{background:var(--mdc-switch-unselected-focus-track-color)}.mdc-switch:enabled:active .mdc-switch__track::before{background:var(--mdc-switch-unselected-pressed-track-color)}.mdc-switch:disabled .mdc-switch__track::before{background:var(--mdc-switch-disabled-unselected-track-color)}.mdc-switch .mdc-switch__track{border-radius:var(--mdc-switch-track-shape)}.mdc-switch:enabled .mdc-switch__shadow{box-shadow:var(--mdc-switch-handle-elevation-shadow)}.mdc-switch:disabled .mdc-switch__shadow{box-shadow:var(--mdc-switch-disabled-handle-elevation-shadow)}.mat-mdc-slide-toggle{display:inline-block;-webkit-tap-highlight-color:rgba(0,0,0,0);outline:0}.mat-mdc-slide-toggle .mat-mdc-slide-toggle-ripple,.mat-mdc-slide-toggle .mdc-switch__ripple::after{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:50%;pointer-events:none}.mat-mdc-slide-toggle .mat-mdc-slide-toggle-ripple:not(:empty),.mat-mdc-slide-toggle .mdc-switch__ripple::after:not(:empty){transform:translateZ(0)}.mat-mdc-slide-toggle .mdc-switch__ripple::after{content:"";opacity:0}.mat-mdc-slide-toggle .mdc-switch:hover .mdc-switch__ripple::after{opacity:.04;transition:opacity 75ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-slide-toggle.mat-mdc-slide-toggle-focused .mdc-switch .mdc-switch__ripple::after{opacity:.12}.mat-mdc-slide-toggle.mat-mdc-slide-toggle-focused .mat-mdc-focus-indicator::before{content:""}.mat-mdc-slide-toggle .mat-ripple-element{opacity:.12}.mat-mdc-slide-toggle .mat-mdc-focus-indicator::before{border-radius:50%}.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__handle-track,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-elevation-overlay,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__icon,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__handle::before,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__handle::after,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__track::before,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__track::after{transition:none}.mat-mdc-slide-toggle .mdc-switch:enabled+.mdc-label{cursor:pointer}.mdc-switch__handle{transition:width 75ms cubic-bezier(0.4, 0, 0.2, 1),height 75ms cubic-bezier(0.4, 0, 0.2, 1),margin 75ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-switch--selected .mdc-switch__track::before{opacity:var(--mat-switch-hidden-track-opacity);transition:var(--mat-switch-hidden-track-transition)}.mdc-switch--selected .mdc-switch__track::after{opacity:var(--mat-switch-visible-track-opacity);transition:var(--mat-switch-visible-track-transition)}.mdc-switch--unselected .mdc-switch__track::before{opacity:var(--mat-switch-visible-track-opacity);transition:var(--mat-switch-visible-track-transition)}.mdc-switch--unselected .mdc-switch__track::after{opacity:var(--mat-switch-hidden-track-opacity);transition:var(--mat-switch-hidden-track-transition)}.mat-mdc-slide-toggle .mdc-switch--unselected .mdc-switch__handle{width:var(--mat-switch-unselected-handle-size);height:var(--mat-switch-unselected-handle-size)}.mat-mdc-slide-toggle .mdc-switch--selected .mdc-switch__handle{width:var(--mat-switch-selected-handle-size);height:var(--mat-switch-selected-handle-size)}.mat-mdc-slide-toggle .mdc-switch__handle:has(.mdc-switch__icons){width:var(--mat-switch-with-icon-handle-size);height:var(--mat-switch-with-icon-handle-size)}.mat-mdc-slide-toggle:active .mdc-switch:not(.mdc-switch--disabled) .mdc-switch__handle{width:var(--mat-switch-pressed-handle-size);height:var(--mat-switch-pressed-handle-size)}.mat-mdc-slide-toggle .mdc-switch--selected .mdc-switch__handle{margin:var(--mat-switch-selected-handle-horizontal-margin)}.mat-mdc-slide-toggle .mdc-switch--selected .mdc-switch__handle:has(.mdc-switch__icons){margin:var(--mat-switch-selected-with-icon-handle-horizontal-margin)}.mat-mdc-slide-toggle .mdc-switch--unselected .mdc-switch__handle{margin:var(--mat-switch-unselected-handle-horizontal-margin)}.mat-mdc-slide-toggle .mdc-switch--unselected .mdc-switch__handle:has(.mdc-switch__icons){margin:var(--mat-switch-unselected-with-icon-handle-horizontal-margin)}.mat-mdc-slide-toggle:active .mdc-switch--selected:not(.mdc-switch--disabled) .mdc-switch__handle{margin:var(--mat-switch-selected-pressed-handle-horizontal-margin)}.mat-mdc-slide-toggle:active .mdc-switch--unselected:not(.mdc-switch--disabled) .mdc-switch__handle{margin:var(--mat-switch-unselected-pressed-handle-horizontal-margin)}.mdc-switch__track::after,.mdc-switch__track::before{border-width:var(--mat-switch-track-outline-width);border-color:var(--mat-switch-track-outline-color)}.mdc-switch--selected .mdc-switch__track::after,.mdc-switch--selected .mdc-switch__track::before{border-width:var(--mat-switch-selected-track-outline-width)}.mdc-switch--disabled .mdc-switch__track::after,.mdc-switch--disabled .mdc-switch__track::before{border-width:var(--mat-switch-disabled-unselected-track-outline-width);border-color:var(--mat-switch-disabled-unselected-track-outline-color)}.mdc-switch--disabled.mdc-switch--selected .mdc-switch__handle::after{opacity:var(--mat-switch-disabled-selected-handle-opacity)}.mdc-switch--disabled.mdc-switch--unselected .mdc-switch__handle::after{opacity:var(--mat-switch-disabled-unselected-handle-opacity)}'],encapsulation:2,changeDetection:0})}return n})(),ixe=(()=>{class n{static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275mod=vo({type:n});static#n=this.\u0275inj=ra({imports:[kL,Qd,Qd]})}return n})();function rxe(n,e){if(1&n){const t=ta();Gt(0,"input",4),Ai("input",function(r){return Ci(t),Mi(Pr().onValueChange(r.target.value))}),dn()}2&n&&Qn("value",Pr().value)}let E$=(()=>{class n{value=0;min=0;oldMin=0;max=100;oldMax=0;step=1;allowCustomValue=!1;onChange=new Ls;onValueChange(t){t&&this.onChange.emit(t)}toggleMinCut(t){t.checked?this.min=this.oldMin:(this.oldMin=this.min,this.min=Number.MIN_SAFE_INTEGER)}toggleMaxCut(t){t.checked?this.max=this.oldMax:(this.oldMax=this.max,this.max=Number.MAX_SAFE_INTEGER)}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=rs({type:n,selectors:[["app-config-slider"]],inputs:{value:"value",min:"min",max:"max",step:"step",allowCustomValue:"allowCustomValue"},outputs:{onChange:"onChange"},decls:4,vars:5,consts:[[1,"d-flex","flex-row","align-items-center"],["thumbLabel","",1,"mx-2",3,"min","max","step"],["matSliderThumb","",3,"valueChange","value"],["class","config-slider-input","type","number",3,"value","input",4,"ngIf"],["type","number",1,"config-slider-input",3,"input","value"]],template:function(i,r){1&i&&(Gt(0,"div",0)(1,"mat-slider",1)(2,"input",2),Ai("valueChange",function(o){return r.onValueChange(o)}),dn()(),zs(3,rxe,1,1,"input",3),dn()),2&i&&(jn(),Qn("min",r.min)("max",r.max)("step",r.step),jn(),Qn("value",r.value),jn(),Qn("ngIf",r.allowCustomValue))},dependencies:[Lh,bL,YE],styles:[".config-slider-input[_ngcontent-%COMP%]{background:transparent;color:var(--phoenix-text-color);border:none;border-bottom:1px solid var(--phoenix-text-color);width:25%;-moz-appearance:textfield}input[_ngcontent-%COMP%]::-webkit-outer-spin-button, input[_ngcontent-%COMP%]::-webkit-inner-spin-button{-webkit-appearance:none}"]})}return n})();const sxe=["phoenixMenuItem"],oxe=n=>({"top.px":n}),axe=n=>({"font-weight-bold w-100":n}),lxe=n=>({"p-0":n}),cxe=n=>({expanded:n});function dxe(n,e){1&n&&Uw(0)}function uxe(n,e){if(1&n){const t=ta();ig(0),Gt(1,"mat-slide-toggle",9),Ai("change",function(r){return Ci(t),Mi(Pr().currentNode.toggleSelfAndDescendants(r.checked))}),zs(2,dxe,1,0,"ng-container",10),dn(),rg()}if(2&n){const t=Pr(),i=Ga(5);jn(),Qn("checked",t.currentNode.toggleState),jn(),Qn("ngTemplateOutlet",i)}}function hxe(n,e){if(1&n&&(Gt(0,"span",14),Fl(),Gt(1,"svg"),Vr(2,"use"),dn()()),2&n){const t=Pr(2);jn(2),Lw("href","assets/icons/",t.currentNode.icon,".svg#",t.currentNode.icon,"")}}function fxe(n,e){if(1&n&&(Gt(0,"span",11),zs(1,hxe,3,3,"span",12),Gt(2,"span",13),qi(3),dn()()),2&n){const t=Pr();jn(),Qn("ngIf",t.currentNode.icon),jn(),Qn("title",t.currentNode.name),jn(),tA(t.currentNode.name)}}function pxe(n,e){if(1&n){const t=ta();Gt(0,"div",20),Ai("click",function(){return Ci(t),Mi(Pr(2).currentNode.configActive=!1)}),dn()}}function mxe(n,e){if(1&n&&(Gt(0,"label",26),qi(1),dn()),2&n){const t=Pr(2).$implicit;Qn("ngClass",Oh(2,axe,"label"===t.type)),jn(),yl(" ",t.label," ")}}function Axe(n,e){if(1&n){const t=ta();Gt(0,"mat-checkbox",9),Ai("change",function(r){Ci(t);const s=Pr(3).$implicit;return s.onChange(r.checked),Mi(s.isChecked=r.checked)}),dn()}2&n&&Qn("checked",Pr(3).$implicit.isChecked)}function gxe(n,e){if(1&n){const t=ta();Gt(0,"app-config-slider",34),Ai("onChange",function(r){Ci(t);const s=Pr(3).$implicit;return s.onChange(r),Mi(s.value=r)}),dn()}if(2&n){const t=Pr(3).$implicit;Qn("value",t.value)("min",t.min)("max",t.max)("step",t.step)("allowCustomValue",t.allowCustomValue)}}function _xe(n,e){if(1&n){const t=ta();Gt(0,"button",35),Ai("click",function(){return Ci(t),Mi(Pr(3).$implicit.onClick())}),qi(1),dn()}if(2&n){const t=Pr(3).$implicit;jn(),yl(" ",t.label," ")}}function yxe(n,e){if(1&n){const t=ta();Gt(0,"input",36),Ai("input",function(r){Ci(t);const s=Pr(3).$implicit;return s.onChange(r.target.value),Mi(s.color=r.target.value)}),dn()}2&n&&Qn("value",Pr(3).$implicit.color)}function vxe(n,e){if(1&n){const t=ta();Gt(0,"div",37)(1,"div",38)(2,"mat-checkbox",9),Ai("change",function(r){return Ci(t),Mi(Pr(3).$implicit.setEnableMin(r.checked))}),dn(),Gt(3,"mat-checkbox",9),Ai("change",function(r){return Ci(t),Mi(Pr(3).$implicit.setEnableMax(r.checked))}),dn()(),Gt(4,"div",38)(5,"input",39),Ai("input",function(r){Ci(t);const s=Pr(3).$implicit;return s.value=r.target.value,Mi(s.onChange(s))}),dn(),Gt(6,"input",40),Ai("input",function(r){Ci(t);const s=Pr(3).$implicit;return s.highValue=r.target.value,Mi(s.onChange(s))}),dn()()()}if(2&n){const t=Pr(3).$implicit;jn(2),Qn("checked",t.enableMin),jn(),Qn("checked",t.enableMax),jn(2),Qn("value",t.value),jn(),Qn("value",t.highValue)}}function bxe(n,e){if(1&n&&(Gt(0,"option",43),qi(1),dn()),2&n){const t=e.$implicit;Qn("value",t),jn(),yl(" ",t," ")}}function xxe(n,e){if(1&n){const t=ta();Gt(0,"select",41),Ai("change",function(r){return Ci(t),Mi(Pr(3).$implicit.onChange(r.target.value))}),zs(1,bxe,2,2,"option",42),dn()}if(2&n){const t=Pr(3).$implicit;jn(),Qn("ngForOf",t.options)}}function wxe(n,e){if(1&n&&(Gt(0,"div",27),zs(1,Axe,1,1,"mat-checkbox",28)(2,gxe,1,5,"app-config-slider",29)(3,_xe,2,1,"button",30)(4,yxe,1,1,"input",31)(5,vxe,7,4,"div",32)(6,xxe,2,1,"select",33),dn()),2&n){const t=Pr(2).$implicit;Qn("ngClass",Oh(7,lxe,"button"===t.type)),jn(),Qn("ngSwitchCase","checkbox"),jn(),Qn("ngSwitchCase","slider"),jn(),Qn("ngSwitchCase","button"),jn(),Qn("ngSwitchCase","color"),jn(),Qn("ngSwitchCase","rangeSlider"),jn(),Qn("ngSwitchCase","select")}}function Cxe(n,e){if(1&n&&(Gt(0,"div",23),zs(1,mxe,2,4,"label",24)(2,wxe,7,9,"div",25),dn()),2&n){const t=Pr().$implicit;jn(),Qn("ngIf","button"!==t.type),jn(),Qn("ngIf","label"!==t.type)}}function Mxe(n,e){if(1&n&&(ig(0,21),zs(1,Cxe,3,2,"div",22),rg()),2&n){const t=e.$implicit;Qn("ngSwitch",t.type),jn(),Qn("ngIf",!t.hidden)}}function Sxe(n,e){if(1&n){const t=ta();Gt(0,"div")(1,"button",15),Ai("click",function(){Ci(t);const r=Pr();return r.calculateConfigTop(),Mi(r.currentNode.configActive=!r.currentNode.configActive)}),Fl(),Gt(2,"svg"),Vr(3,"use",16),dn()(),zs(4,pxe,1,0,"div",17),Dh(),Gt(5,"div",18),zs(6,Mxe,2,2,"ng-container",19),dn()()}if(2&n){const t=Pr();jn(4),Qn("ngIf",t.currentNode.configActive),jn(),Qn("hidden",!t.currentNode.configActive)("ngStyle",Oh(4,oxe,t.configTop)),jn(),Qn("ngForOf",t.castConfigsToAny(t.currentNode.configs))}}function Exe(n,e){if(1&n){const t=ta();Gt(0,"button",44),Ai("click",function(){Ci(t);const r=Pr();return Mi(r.currentNode.childrenActive=!r.currentNode.childrenActive)}),Fl(),Gt(1,"svg"),Vr(2,"use",45),dn()()}if(2&n){const t=Pr();Qn("ngClass",Oh(1,cxe,t.currentNode.childrenActive))}}function Txe(n,e){1&n&&Vr(0,"app-phoenix-menu-item",48),2&n&&Qn("currentNode",e.$implicit)}function Dxe(n,e){if(1&n&&(Gt(0,"div",46),zs(1,Txe,1,1,"app-phoenix-menu-item",47),dn()),2&n){const t=Pr();jn(),Qn("ngForOf",t.currentNode.children)}}let T$=(()=>{class n{cdr;currentNode;phoenixMenuItem;configTop;constructor(t){this.cdr=t}calculateConfigTop(){this.phoenixMenuItem&&(this.configTop=this.phoenixMenuItem.nativeElement.getBoundingClientRect().top,this.cdr.detectChanges())}castConfigsToAny(t){return t}static \u0275fac=function(i){return new(i||n)(Lt(Sc))};static \u0275cmp=rs({type:n,selectors:[["app-phoenix-menu-item"]],viewQuery:function(i,r){if(1&i&&_l(sxe,5),2&i){let s;pa(s=ma())&&(r.phoenixMenuItem=s.first)}},inputs:{currentNode:"currentNode"},decls:10,vars:5,consts:[["phoenixMenuItem",""],["nodeName",""],[1,"phoenix-menu-item"],[1,"phoenix-menu-item-left","align-items-center"],[4,"ngIf","ngIfElse"],[1,"phoenix-menu-item-right"],[4,"ngIf"],["class","icon-wrapper icon-button btn-blank item-expand","data-testid","dropdown",3,"ngClass","click",4,"ngIf"],["class","phoenix-menu-children",4,"ngIf"],[3,"change","checked"],[4,"ngTemplateOutlet"],[1,"d-flex","w-100","align-items-center"],["class","icon-wrapper item-icon",4,"ngIf"],[1,"item-name",3,"title"],[1,"icon-wrapper","item-icon"],[1,"icon-wrapper","icon-button","btn-blank","item-settings",3,"click"],["href","assets/icons/gear.svg#gear"],["class","item-config-backdrop",3,"click",4,"ngIf"],[1,"item-config",3,"hidden","ngStyle"],[3,"ngSwitch",4,"ngFor","ngForOf"],[1,"item-config-backdrop",3,"click"],[3,"ngSwitch"],["class","item-config-single",4,"ngIf"],[1,"item-config-single"],["class","item-config-label","for","item-config-field",3,"ngClass",4,"ngIf"],["class","item-config-data",3,"ngClass",4,"ngIf"],["for","item-config-field",1,"item-config-label",3,"ngClass"],[1,"item-config-data",3,"ngClass"],[3,"checked","change",4,"ngSwitchCase"],[3,"value","min","max","step","allowCustomValue","onChange",4,"ngSwitchCase"],["class","w-100","mat-button","","mat-stroked-button","",3,"click",4,"ngSwitchCase"],["id","item-config-field","type","color",3,"value","input",4,"ngSwitchCase"],["class","range-slider",4,"ngSwitchCase"],["id","item-config-field","class","w-100",3,"change",4,"ngSwitchCase"],[3,"onChange","value","min","max","step","allowCustomValue"],["mat-button","","mat-stroked-button","",1,"w-100",3,"click"],["id","item-config-field","type","color",3,"input","value"],[1,"range-slider"],[1,"range-slider-inputs","d-flex","justify-content-between"],["type","number","placeholder","Min","step","config.step",1,"form-control","form-control-sm",3,"input","value"],["type","number","placeholder","Max","step","config.step",1,"form-control","form-control-sm",3,"input","value"],["id","item-config-field",1,"w-100",3,"change"],[3,"value",4,"ngFor","ngForOf"],[3,"value"],["data-testid","dropdown",1,"icon-wrapper","icon-button","btn-blank","item-expand",3,"click","ngClass"],["href","assets/icons/expand.svg#expand"],[1,"phoenix-menu-children"],[3,"currentNode",4,"ngFor","ngForOf"],[3,"currentNode"]],template:function(i,r){if(1&i&&(Gt(0,"div",2,0)(2,"div",3),zs(3,uxe,3,2,"ng-container",4)(4,fxe,4,3,"ng-template",null,1,nR),dn(),Gt(6,"div",5),zs(7,Sxe,7,6,"div",6)(8,Exe,3,3,"button",7),dn()(),zs(9,Dxe,2,1,"div",8)),2&i){const s=Ga(5);jn(3),Qn("ngIf",r.currentNode.onToggle)("ngIfElse",s),jn(4),Qn("ngIf",r.currentNode.configs.length>0),jn(),Qn("ngIf",r.currentNode.children.length>0),jn(),Qn("ngIf",r.currentNode.childrenActive)}},dependencies:[om,am,Lh,M7,C7,pD,x7,BC,EC,TC,kL,rv,n,E$],styles:[".phoenix-menu-item{width:100%;padding:.6rem;background:var(--phoenix-background-color-secondary);color:var(--phoenix-text-color);font-size:.8rem;transition:all .5s;display:flex;justify-content:space-between;align-items:center}.phoenix-menu-item-left{display:flex;justify-content:flex-start;min-width:0;padding-right:.5rem;overflow:hidden}.phoenix-menu-item-left .item-name{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.phoenix-menu-item-left .item-icon{margin-right:.2rem}.phoenix-menu-item-right{display:flex;justify-content:flex-end}.phoenix-menu-item-right .item-expand.expanded{transform:scaleY(-1)}.phoenix-menu-item-right .item-settings{margin-right:.2rem}.phoenix-menu-item-right .item-config-backdrop{position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:110}.phoenix-menu-item-right .item-config{position:absolute;margin-top:-5rem;right:100%;width:14rem;padding:.5rem;background:var(--phoenix-background-color-secondary);color:var(--phoenix-text-color-secondary);box-shadow:var(--phoenix-box-shadow);display:flex;flex-direction:column;z-index:120}.phoenix-menu-item-right .item-config>*{margin-bottom:.4rem}.phoenix-menu-item-right .item-config>*:last-child{margin-bottom:0}.phoenix-menu-item-right .item-config .item-config-single{display:flex;flex-direction:row}.phoenix-menu-item-right .item-config .item-config-single .item-config-label{width:30%}.phoenix-menu-item-right .item-config .item-config-single .item-config-data{flex-grow:1;padding-left:.5rem}.phoenix-menu-item .icon-wrapper{display:inline-block;width:1.3rem;height:1.3rem;padding:.23rem;transition:all .4s}.phoenix-menu-item .icon-wrapper.icon-button:hover{background:var(--phoenix-options-icon-bg);border-radius:40%;cursor:pointer}.phoenix-menu-item .icon-wrapper svg{width:100%;height:100%;vertical-align:top}.phoenix-menu-item .mat-slide-toggle-bar{width:30px!important}.phoenix-menu-item .mat-slide-toggle-thumb{width:15px!important;height:15px!important;position:absolute;top:2px}.phoenix-menu-item .mat-slider-horizontal{min-width:0;width:100%;height:20px}.phoenix-menu-item .mat-slider-horizontal .mat-slider-wrapper{top:10px}.phoenix-menu-item label.mat-checkbox-layout{margin:0}@media screen and (max-width: 768px){.phoenix-menu-item{font-size:.75rem;padding:.5rem}.phoenix-menu-item .icon-wrapper{width:1rem;height:1rem;padding:.15rem}}.phoenix-menu-children{margin-left:.5rem;border-left:1px solid var(--phoenix-accent)}.range-slider .range-slider-inputs{gap:20%}\n"],encapsulation:2})}return n})(),ZE=(()=>{class n{rootNode;static \u0275fac=function(i){return new(i||n)};static \u0275cmp=rs({type:n,selectors:[["app-phoenix-menu"]],inputs:{rootNode:"rootNode"},decls:2,vars:1,consts:[["id","phoenixMenu"],[3,"currentNode"]],template:function(i,r){1&i&&(Gt(0,"div",0),Vr(1,"app-phoenix-menu-item",1),dn()),2&i&&(jn(),Qn("currentNode",r.rootNode))},dependencies:[T$],styles:["[_nghost-%COMP%]{width:15rem;max-width:45%;position:absolute;top:5rem;right:1rem}#phoenixMenu[_ngcontent-%COMP%]{background:var(--phoenix-background-color-secondary);max-height:75vh;overflow-y:auto;box-shadow:var(--phoenix-box-shadow);z-index:100}@media screen and (max-width: 768px){#phoenixMenu[_ngcontent-%COMP%]{top:4rem}}"]})}return n})(),D$=(()=>{class n{experimentLink;ngOnInit(){const t=new URL(window.location.href);t.searchParams.delete("embed"),this.experimentLink=t.toString()}goToExperiment(){window.open(this.experimentLink,"_blank")}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=rs({type:n,selectors:[["app-experiment-link"]],decls:1,vars:0,consts:[["tooltip","See full event display","icon","link",3,"click"]],template:function(i,r){1&i&&(Gt(0,"app-menu-toggle",0),Ai("click",function(){return r.goToExperiment()}),dn())},dependencies:[qc]})}return n})(),RC=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275cmp=rs({type:n,selectors:[["app-embed-menu"]],decls:8,vars:0,consts:[["id","embedMenu"],["id","embedMenuInner"]],template:function(i,r){1&i&&(Gt(0,"div",0)(1,"div",1),Vr(2,"app-dark-theme")(3,"app-auto-rotate")(4,"app-main-view-toggle")(5,"app-animate-event")(6,"app-animate-camera")(7,"app-experiment-link"),dn()())},dependencies:[rB,sB,oB,RO,aB,D$],styles:["#embedMenu[_ngcontent-%COMP%]{display:none}#embedMenu[_ngcontent-%COMP%] #embedMenuInner[_ngcontent-%COMP%]{display:flex;position:absolute;left:1rem;bottom:1rem;background:var(--phoenix-background-color-secondary);border:1px solid var(--phoenix-background-color-tertiary);box-shadow:var(--phoenix-box-shadow);border-radius:30px;padding:.25rem 0}"]})}return n})(),I$=(()=>{class n{eventDisplay;phoenixMenuRoot=new yC("Phoenix Menu","phoenix-menu");eventDataImportOptions=[qh.JSON,qh.JIVEXML,qh.ZIP];loaded=!1;loadingProgress=0;constructor(t){this.eventDisplay=t}ngOnInit(){let t;t={eventFile:"assets/files/JiveXML/JiveXML_336567_2327102923.xml",eventType:"jivexml"};const i={eventDataLoader:new J_,presetViews:[new Xu("Left View",[0,0,-12e3],[0,0,0],"left-cube"),new Xu("Center View",[-500,12e3,0],[0,0,0],"top-cube"),new Xu("Right View",[0,0,12e3],[0,0,0],"right-cube")],defaultView:[4e3,0,4e3,0,0,0],phoenixMenuRoot:this.phoenixMenuRoot,defaultEventFile:t};this.eventDisplay.init(i),this.eventDisplay.loadGLTFGeometry("assets/geometry/ATLAS/Barrel-Toroid.gltf","Barrel Toroid","Magnets",1e3),this.eventDisplay.loadGLTFGeometry("assets/geometry/ATLAS/End-Cap-Toroid.gltf","Endcap","Magnets",1e3),this.eventDisplay.loadGLTFGeometry("assets/geometry/ATLAS/Feet.gltf","Feet","Magnets",1e3),this.eventDisplay.loadGLTFGeometry("assets/geometry/ATLAS/Warm-Structure.gltf","Warm structure","Magnets",1e3),this.eventDisplay.loadGLTFGeometry("assets/geometry/ATLAS/Lar-Barrel.gltf","LAr Barrel","Calorimeters",1e3),this.eventDisplay.loadGLTFGeometry("assets/geometry/ATLAS/Lar-EMEC.gltf","LAr EC1","Calorimeters",1e3),this.eventDisplay.loadGLTFGeometry("assets/geometry/ATLAS/Lar-FCAL.gltf","LAr FCAL","Calorimeters",1e3),this.eventDisplay.loadGLTFGeometry("assets/geometry/ATLAS/Lar-HEC.gltf","LAr HEC","Calorimeters",1e3),this.eventDisplay.loadGLTFGeometry("assets/geometry/ATLAS/Tile-Barrel.gltf","Tile Cal","Calorimeters",1e3),this.eventDisplay.loadGLTFGeometry("assets/geometry/ATLAS/Tile-End-Cap.gltf","Tile Cal EC","Calorimeters",1e3),this.eventDisplay.loadGLTFGeometry("assets/geometry/ATLAS/Beam.gltf","Beam","Inner Detector",1e3),this.eventDisplay.loadGLTFGeometry("assets/geometry/ATLAS/Pixel.gltf","Pixel","Inner Detector",1e3,!0),this.eventDisplay.loadGLTFGeometry("assets/geometry/ATLAS/SCT-BAR.gltf","SCT","Inner Detector",1e3),this.eventDisplay.loadGLTFGeometry("assets/geometry/ATLAS/SCT-EC.gltf","SCT Endcaps","Inner Detector",1e3),this.eventDisplay.loadGLTFGeometry("assets/geometry/ATLAS/TRT-BAR.gltf","TRT","Inner Detector",1e3),this.eventDisplay.loadGLTFGeometry("assets/geometry/ATLAS/TRT-EC.gltf","TRT Endcaps","Inner Detector",1e3),this.eventDisplay.loadGLTFGeometry("assets/geometry/ATLAS/Extra-Wheel.gltf","Extra wheel","Muon Spectrometer > Endcaps",1e3),this.eventDisplay.loadGLTFGeometry("assets/geometry/ATLAS/Big-Wheel.gltf","Big wheel","Muon Spectrometer > Endcaps",1e3),this.eventDisplay.loadGLTFGeometry("assets/geometry/ATLAS/Outer-Wheel.gltf","Outer Wheel","Muon Spectrometer > Endcaps",1e3),this.eventDisplay.loadGLTFGeometry("assets/geometry/ATLAS/Muon-Barrel-Inner.gltf","Muon Barrel Inner","Muon Spectrometer > Barrel",1e3),this.eventDisplay.loadGLTFGeometry("assets/geometry/ATLAS/Muon-Barrel-Middle.gltf","Muon Barrel Middle","Muon Spectrometer > Barrel",1e3),this.eventDisplay.loadGLTFGeometry("assets/geometry/ATLAS/Muon-Barrel-Outer.gltf","Muon Barrel Outer","Muon Spectrometer > Barrel",1e3),this.eventDisplay.loadGLTFGeometry("assets/geometry/ATLAS/Muon-Big-Wheel-MDT.gltf","Big Wheel MDT ","Muon Spectrometer > Endcaps",1e3),this.eventDisplay.loadGLTFGeometry("assets/geometry/ATLAS/Small-Wheel-Chambers.gltf","Small Wheel","Muon Spectrometer > Endcaps",1e3),this.eventDisplay.loadGLTFGeometry("assets/geometry/ATLAS/Small-Wheel-Hub.gltf","Small Wheel Hub","Muon Spectrometer > Endcaps",1e3),this.eventDisplay.loadGLTFGeometry("assets/geometry/ATLAS/Small-Wheel-NJD.gltf","Small Wheel Feet","Muon Spectrometer > Endcaps",1e3),this.eventDisplay.loadGLTFGeometry("assets/geometry/ATLAS/TGC2.gltf","TGC2","Muon Spectrometer > Endcaps",1e3),this.eventDisplay.loadGLTFGeometry("assets/geometry/ATLAS/TGC3.gltf","TGC3","Muon Spectrometer > Endcaps",1e3),this.eventDisplay.getLoadingManager().addProgressListener(r=>this.loadingProgress=r),this.eventDisplay.getLoadingManager().addLoadListenerWithCheck(()=>{console.log("Loading default configuration."),this.loaded=!0,this.eventDisplay.getURLOptionsManager().getURLOptions().get("config")||(new fA).loadStateFromJSON(Yge)})}static \u0275fac=function(i){return new(i||n)(Lt(Al))};static \u0275cmp=rs({type:n,selectors:[["app-atlas"]],decls:7,vars:4,consts:[[3,"loaded","progress"],[3,"eventDataImportOptions"],["logo","assets/images/atlas.svg","url","https://home.cern/science/experiments/atlas","tagline","ATLAS Experiment at CERN"],[3,"rootNode"],["id","eventDisplay"]],template:function(i,r){1&i&&Vr(0,"app-loader",0)(1,"app-nav")(2,"app-ui-menu",1)(3,"app-embed-menu")(4,"app-experiment-info",2)(5,"app-phoenix-menu",3)(6,"div",4),2&i&&(Qn("loaded",r.loaded)("progress",r.loadingProgress),jn(2),Qn("eventDataImportOptions",r.eventDataImportOptions),jn(3),Qn("rootNode",r.phoenixMenuRoot))},dependencies:[ax,KE,lB,ZE,lx,RC]})}return n})(),B$=(()=>{class n{lastEventsURL="";lastEventsOptions=!1;unzip(t){return(0,Te.A)(function*(){const i=new(iO());yield i.loadAsync(t);let r="",s=!1;for(const o in i.files){if(s){console.error("Zip archive contains more than one file. Ignoring all but first");break}r=yield i.file(o).async("string"),s=!0}return r})()}makeRequest(t,i,r,s={}){return fetch(t,s).then(o=>o[i]()).then(o=>{"blob"===i?o.arrayBuffer().then(l=>this.unzip(l)).then(l=>r(l)):r(o)}).catch(o=>(console.error(o),!0)),!1}loadJSONEvent(t,i){i.parsePhoenixEvents(JSON.parse(t))}loadJiveXMLEvent(t,i){const r=new CE;r.process(t);const s=r.getEventData();i.buildEventDataFromJSON(s)}loadEvent(t,i,r={}){this.lastEventsURL=t,this.lastEventsOptions=r;const s="zip"===t.split(".").pop(),o=s?t.substring(0,t.length-4):t;return this.makeRequest(t,s?"blob":"text",l=>{switch(o.split(".").pop()){case"xml":this.loadJiveXMLEvent(l,i);break;case"json":this.loadJSONEvent(l,i)}},r)}reloadLastEvents(t){this.lastEventsURL.length>0&&this.loadEvent(this.lastEventsURL,t,this.lastEventsOptions)}static \u0275fac=function(i){return new(i||n)};static \u0275prov=Gi({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();const Ixe=(n,e)=>({"active-icon":n,"reload-icon":e});let P$=(()=>{class n{eventDisplay;fileLoader;interval;tooltip;icon;active=!1;reloading=!1;intervalId;events;constructor(t,i){this.eventDisplay=t,this.fileLoader=i}ngOnInit(){this.eventDisplay.listenToLoadedEventsChange(t=>{this.events=t,this.active&&(clearInterval(this.intervalId),this.startCycleInterval())})}toggleCycle(){this.reloading=this.active&&!this.reloading,this.active=!this.active||this.reloading,console.log(this.active,this.reloading),clearInterval(this.intervalId),this.active&&this.startCycleInterval()}startCycleInterval(t=0){let i=t;this.eventDisplay.loadEvent(this.events[i]),i=i+1>=this.events.length?-1:i+1,this.intervalId=setInterval(()=>{-1==i&&(this.reloading&&this.fileLoader.reloadLastEvents(this.eventDisplay),i=0),this.eventDisplay.loadEvent(this.events[i]),i=i+1>=this.events.length?-1:i+1},this.interval)}static \u0275fac=function(i){return new(i||n)(Lt(Al),Lt(B$))};static \u0275cmp=rs({type:n,selectors:[["app-cycle-events"]],inputs:{interval:"interval",tooltip:"tooltip",icon:"icon"},decls:3,vars:4,consts:[["matTooltip","Cycle (off/on/on+reload)","matTooltipPosition","above","matTooltipTouchGestures","off",1,"cycle-events",3,"click"],[1,"cycle-events-icon",3,"ngClass"],["href","assets/icons/cycle-events.svg#cycle-events"]],template:function(i,r){1&i&&(Gt(0,"button",0),Ai("click",function(){return r.toggleCycle()}),Fl(),Gt(1,"svg",1),Vr(2,"use",2),dn()()),2&i&&(jn(),Qn("ngClass",function tR(n,e,t,i,r){return H6(Zi(),Yc(),n,e,t,i,r)}(1,Ixe,r.active,r.reloading)))},dependencies:[om,a1],styles:["[_nghost-%COMP%]{display:flex;margin:0 .6rem}[_nghost-%COMP%] .cycle-events[_ngcontent-%COMP%]{display:flex;background:unset;border:none;height:2.5rem;width:2.5rem;min-height:2.5rem;min-width:2.5rem;padding:.65rem;cursor:pointer;align-self:center;transition:all .4s}[_nghost-%COMP%] .cycle-events-icon[_ngcontent-%COMP%]{width:100%;height:100%}[_nghost-%COMP%] .cycle-events-icon.active-icon[_ngcontent-%COMP%]{--phoenix-options-icon-path: #00bcd4}[_nghost-%COMP%] .cycle-events-icon.reload-icon[_ngcontent-%COMP%]{--phoenix-options-icon-path: #77dd77}[_nghost-%COMP%] .cycle-events[_ngcontent-%COMP%]:hover{background-color:var(--phoenix-options-icon-bg);border-radius:40%;transition:all .4s}[_nghost-%COMP%] .cycle-events.disabled[_ngcontent-%COMP%]{cursor:not-allowed;opacity:.4}"]})}return n})(),Bxe=(()=>{class n{eventDisplay;open=!1;constructor(t){this.eventDisplay=t}moveVP(t,i){for(const r of["Modules","Support","RFFoil","DeliveryPipes"])t.getObjectByName("VP > Left > "+r).position.setComponent(0,i),t.getObjectByName("VP > Right > "+r).position.setComponent(0,-i)}toggleVP(){this.open=!this.open,this.moveVP(this.eventDisplay.getThreeManager().getSceneManager(),this.open?30:0)}static \u0275fac=function(i){return new(i||n)(Lt(Al))};static \u0275cmp=rs({type:n,selectors:[["app-vp-toggle"]],decls:1,vars:2,consts:[[3,"click","tooltip","icon"]],template:function(i,r){1&i&&(Gt(0,"app-menu-toggle",0),Ai("click",function(){return r.toggleVP()}),dn()),2&i&&Qn("tooltip",(r.open?"Close":"Open")+"VP")("icon",r.open?"closevp":"openvp")},dependencies:[qc]})}return n})(),Pxe=(()=>{class n{eventDisplay;events;phoenixMenuRoot=new yC("Phoenix Menu","phoenix-menu");loaded=!1;loadingProgress=0;eventDataImportOptions=[qh.JSON,qh.ZIP];constructor(t){this.eventDisplay=t}ngOnInit(){const t={eventDataLoader:new J_,presetViews:[new Xu("Global View",[-8e3,6e3,0],[0,0,8e3],"perspective",mC.On,90,90),new Xu("Calo View",[-8e3,6e3,16e3],[0,0,12e3],"perspective",mC.On,90,90),new Xu("Side View",[-12e3,0,12e3],[0,0,12e3],"right-cube"),new Xu("Vertex Locator View",[-500,1e3,0],[0,0,0],"top-cube"),new Xu("Front View",[0,0,-6e3],[0,0,0],"left-cube"),new Xu("Top View",[0,16e3,12e3],[0,0,12e3],"top-cube")],defaultView:[-8e3,6e3,0,0,0,8e3],phoenixMenuRoot:this.phoenixMenuRoot,defaultEventFile:{eventFile:"assets/files/lhcb/LHCbEventData.json",eventType:"json"}};this.eventDisplay.init(t);try{this.eventDisplay.loadGLTFGeometry("assets/geometry/LHCb/LHCb.glb",void 0,void 0,1,!0)}catch(i){console.log("Error:",i)}this.eventDisplay.getLoadingManager().addProgressListener(i=>this.loadingProgress=i),this.eventDisplay.getLoadingManager().addLoadListenerWithCheck(()=>this.loaded=!0)}static \u0275fac=function(i){return new(i||n)(Lt(Al))};static \u0275cmp=rs({type:n,selectors:[["app-lhcb"]],decls:28,vars:5,consts:[[3,"loaded","progress"],[3,"interval"],[3,"eventDataImportOptions"],["logo","assets/images/lhcb.svg","url","https://home.cern/science/experiments/lhcb","tagline","LHCb Experiment at CERN"],[3,"rootNode"],["id","eventDisplay"]],template:function(i,r){1&i&&(Vr(0,"app-loader",0)(1,"app-nav"),Gt(2,"app-ui-menu-wrapper"),Vr(3,"app-event-selector")(4,"app-cycle-events",1)(5,"app-zoom-controls")(6,"app-view-options")(7,"app-auto-rotate")(8,"app-dark-theme")(9,"app-object-clipping")(10,"app-main-view-toggle")(11,"app-overlay-view")(12,"app-object-selection")(13,"app-info-panel")(14,"app-animate-event")(15,"app-collections-info")(16,"app-performance-toggle")(17,"app-vr-toggle")(18,"app-ar-toggle")(19,"app-ss-mode")(20,"app-make-picture")(21,"app-io-options",2)(22,"app-share-link")(23,"app-vp-toggle"),dn(),Vr(24,"app-embed-menu")(25,"app-experiment-info",3)(26,"app-phoenix-menu",4)(27,"div",5)),2&i&&(Qn("loaded",r.loaded)("progress",r.loadingProgress),jn(4),Qn("interval",5e3),jn(17),Qn("eventDataImportOptions",r.eventDataImportOptions),jn(5),Qn("rootNode",r.phoenixMenuRoot))},dependencies:[ax,kO,uL,gL,_L,yL,vL,xL,rB,sB,wL,lB,CL,oB,ML,ZE,aB,SL,EL,TL,BL,PL,lx,RL,RC,P$,Bxe]})}return n})(),Rxe=(()=>{class n{eventDisplay;phoenixMenuRoot=new yC("Phoenix Menu","phoenix-menu");loaded=!1;loadingProgress=0;eventDataImportOptions=[qh.JSON,qh.IG];constructor(t){this.eventDisplay=t}ngOnInit(){const t=new gQ,i={eventDataLoader:t,presetViews:[new Xu("Left View",[0,0,-12e3],[0,0,0],"left-cube"),new Xu("Center View",[-500,12e3,0],[0,0,0],"top-cube"),new Xu("Right View",[0,0,12e3],[0,0,0],"right-cube")],defaultView:[4e3,0,4e3,0,0,0],phoenixMenuRoot:this.phoenixMenuRoot};this.eventDisplay.init(i),this.eventDisplay.loadRootJSONGeometry("https://root.cern/js/files/geom/cms.json.gz","CMS Detector",void 0,10,!0),t.readIgArchive("assets/files/cms/Hto4l_120-130GeV.ig",r=>{const s=t.getAllEventsData(r);this.eventDisplay.parsePhoenixEvents(s)}),this.eventDisplay.getLoadingManager().addProgressListener(r=>this.loadingProgress=r),this.eventDisplay.getLoadingManager().addLoadListenerWithCheck(()=>this.loaded=!0)}static \u0275fac=function(i){return new(i||n)(Lt(Al))};static \u0275cmp=rs({type:n,selectors:[["app-cms"]],decls:7,vars:4,consts:[[3,"loaded","progress"],[3,"eventDataImportOptions"],["logo","assets/images/cms.svg","url","https://home.cern/science/experiments/cms","tagline","CMS Experiment at LHC, CERN"],[3,"rootNode"],["id","eventDisplay"]],template:function(i,r){1&i&&Vr(0,"app-loader",0)(1,"app-nav")(2,"app-ui-menu",1)(3,"app-embed-menu")(4,"app-experiment-info",2)(5,"app-phoenix-menu",3)(6,"div",4),2&i&&(Qn("loaded",r.loaded)("progress",r.loadingProgress),jn(2),Qn("eventDataImportOptions",r.eventDataImportOptions),jn(3),Qn("rootNode",r.phoenixMenuRoot))},dependencies:[ax,KE,lB,ZE,lx,RC]})}return n})(),kxe=(()=>{class n{eventDisplay;http;hitsFile="assets/files/TrackML/event000001000-hits.csv";particlesFile="assets/files/TrackML/event000001000-particles.csv";truthFile="assets/files/TrackML/event000001000-truth.csv";filesProcessed=0;numFiles=3;trackMLLoader;httpOptions={headers:new lm({}),responseType:"text"};phoenixMenuRoot=new yC("Phoenix Menu","phoenix-menu");loaded=!1;loadingProgress=0;constructor(t,i){this.eventDisplay=t,this.http=i}ngOnInit(){this.trackMLLoader=new Vge;const t={eventDataLoader:this.trackMLLoader,presetViews:[new Xu("Right View",[0,0,6e3],[0,0,0],"right-cube"),new Xu("Center View",[-500,1e3,0],[0,0,0],"top-cube"),new Xu("Left View",[0,0,-6e3],[0,0,0],"left-cube")],defaultView:[4e3,0,4e3,0,0,0],phoenixMenuRoot:this.phoenixMenuRoot};this.eventDisplay.init(t),this.eventDisplay.loadOBJGeometry("assets/geometry/TrackML/strip_long_simplified.obj","Long Strip",15311419,void 0,!0),this.eventDisplay.loadOBJGeometry("assets/geometry/TrackML/pixel_simplified.obj","Pixel",14854632,void 0,!0),this.eventDisplay.loadOBJGeometry("assets/geometry/TrackML/strip_short_simplified.obj","Short Strip",3579797,void 0,!0),this.eventDisplay.loadOBJGeometry("assets/geometry/TrackML/beampipe_simplified.obj","Beampipe",8355711,void 0,!0),this.eventDisplay.loadOBJGeometry("assets/geometry/TrackML/pixel_support_tube_simplified.obj","PST",8107007,void 0,!0),this.loadTrackMLData(),this.eventDisplay.getLoadingManager().addProgressListener(i=>this.loadingProgress=i),this.eventDisplay.getLoadingManager().addLoadListenerWithCheck(()=>this.loaded=!0)}loadTrackMLData(){this.http.get(this.hitsFile,this.httpOptions).subscribe(t=>{this.loadHits(t),this.http.get(this.particlesFile,this.httpOptions).subscribe(i=>{this.loadParticles(i),this.http.get(this.truthFile,this.httpOptions).subscribe(r=>this.loadTruth(r))})})}loadHits(t){console.log("loading hits"),this.trackMLLoader.processHits(t),this.filesProcessed++,this.finishConversion()}loadParticles(t){console.log("loading particles"),this.trackMLLoader.processParticles(t),this.filesProcessed++,this.finishConversion()}loadTruth(t){console.log("loading truth"),this.trackMLLoader.processTruth(t),this.filesProcessed++,this.finishConversion()}finishConversion(){if(this.filesProcessed===this.numFiles){const t=this.trackMLLoader.getEventData("TrackMLEvent");this.eventDisplay.buildEventDataFromJSON(t)}}static \u0275fac=function(i){return new(i||n)(Lt(Al),Lt(vS))};static \u0275cmp=rs({type:n,selectors:[["app-trackml"]],decls:6,vars:3,consts:[[3,"loaded","progress"],[3,"rootNode"],["id","eventDisplay"]],template:function(i,r){1&i&&Vr(0,"app-loader",0)(1,"app-nav")(2,"app-ui-menu")(3,"app-embed-menu")(4,"app-phoenix-menu",1)(5,"div",2),2&i&&(Qn("loaded",r.loaded)("progress",r.loadingProgress),jn(4),Qn("rootNode",r.phoenixMenuRoot))},dependencies:[ax,KE,ZE,lx,RC]})}return n})(),jxe=(()=>{class n{static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275mod=vo({type:n});static#n=this.\u0275inj=ra({imports:[Qd,Qd]})}return n})(),Jxe=(()=>{class n{static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275mod=vo({type:n});static#n=this.\u0275inj=ra({})}return n})(),Fwe=(()=>{class n{static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275mod=vo({type:n});static#n=this.\u0275inj=ra({imports:[Qd,Qd]})}return n})(),e2e=(()=>{class n{injector;constructor(t){this.injector=t}handleError(t){console.error("ERROR IN PHOENIX APP","\n",t),this.injector.get(sO).setError(t)}static \u0275fac=function(i){return new(i||n)(xi(ml))};static \u0275prov=Gi({token:n,factory:n.\u0275fac})}return n})(),t2e=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=vo({type:n});static \u0275inj=ra({providers:[Al,sO,{provide:xl,useClass:e2e}],imports:[hS,qz,Jye,Gve,ebe,x1e,NE,wye,u1e,Ube,xbe,ixe,Rye,jxe,Jxe,Fwe]})}return n})(),n2e=(()=>{class n{eventDisplay;http;loaded=!1;loadingProgress=0;constructor(t,i){this.eventDisplay=t,this.http=i}ngOnInit(){const t={presetViews:[new Xu("Left View",[0,0,-12e3],[0,0,0],"left-cube"),new Xu("Center View",[-500,12e3,0],[0,0,0],"top-cube"),new Xu("Right View",[0,0,12e3],[0,0,0],"right-cube")]};this.eventDisplay.init(t),this.eventDisplay.getLoadingManager().addProgressListener(i=>this.loadingProgress=i),this.eventDisplay.getLoadingManager().addLoadListenerWithCheck(()=>this.loaded=!0)}static \u0275fac=function(i){return new(i||n)(Lt(Al),Lt(vS))};static \u0275cmp=rs({type:n,selectors:[["app-playground"]],decls:5,vars:2,consts:[[3,"loaded","progress"],["id","eventDisplay"]],template:function(i,r){1&i&&Vr(0,"app-loader",0)(1,"app-nav")(2,"app-ui-menu")(3,"app-embed-menu")(4,"div",1),2&i&&Qn("loaded",r.loaded)("progress",r.loadingProgress)},dependencies:[ax,KE,lx,RC]})}return n})();function Z$(n){return new Ln(3e3,!1)}function ov(n){switch(n.length){case 0:return new kE;case 1:return n[0];default:return new oW(n)}}function J$(n,e,t=new Map,i=new Map){const r=[],s=[];let o=-1,l=null;if(e.forEach(d=>{const u=d.get("offset"),f=u==o,A=f&&l||new Map;d.forEach((S,R)=>{let G=R,re=S;if("offset"!==R)switch(G=n.normalizePropertyName(G,r),re){case"!":re=t.get(R);break;case n1:re=i.get(R);break;default:re=n.normalizeStyleValue(R,G,re,r)}A.set(G,re)}),f||s.push(A),l=A,o=u}),r.length)throw function M2e(n){return new Ln(3502,!1)}();return s}function zL(n,e,t,i){switch(e){case"start":n.onStart(()=>i(t&&HL(t,"start",n)));break;case"done":n.onDone(()=>i(t&&HL(t,"done",n)));break;case"destroy":n.onDestroy(()=>i(t&&HL(t,"destroy",n)))}}function HL(n,e,t){const s=VL(n.element,n.triggerName,n.fromState,n.toState,e||n.phaseName,t.totalTime??n.totalTime,!!t.disabled),o=n._data;return null!=o&&(s._data=o),s}function VL(n,e,t,i,r="",s=0,o){return{element:n,triggerName:e,fromState:t,toState:i,phaseName:r,totalTime:s,disabled:!!o}}function ym(n,e,t){let i=n.get(e);return i||n.set(e,i=t),i}function eX(n){const e=n.indexOf(":");return[n.substring(1,e),n.slice(e+1)]}const L2e=typeof document>"u"?null:document.documentElement;function GL(n){const e=n.parentNode||n.host||null;return e===L2e?null:e}let bx=null,tX=!1;function nX(n,e){for(;e;){if(e===n)return!0;e=GL(e)}return!1}function iX(n,e,t){if(t)return Array.from(n.querySelectorAll(e));const i=n.querySelector(e);return i?[i]:[]}let qL=(()=>{class n{validateStyleProperty(t){return function U2e(n){bx||(bx=function z2e(){return typeof document<"u"?document.body:null}()||{},tX=!!bx.style&&"WebkitAppearance"in bx.style);let e=!0;return bx.style&&!function N2e(n){return"ebkit"==n.substring(1,6)}(n)&&(e=n in bx.style,!e&&tX&&(e="Webkit"+n.charAt(0).toUpperCase()+n.slice(1)in bx.style)),e}(t)}matchesElement(t,i){return!1}containsElement(t,i){return nX(t,i)}getParentElement(t){return GL(t)}query(t,i,r){return iX(t,i,r)}computeStyle(t,i,r){return r||""}animate(t,i,r,s,o,l=[],d){return new kE(r,s)}static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac})}return n})();class QL{static#e=this.NOOP=new qL}class WL{}const V2e=1e3,jL="ng-enter",mB="ng-leave",AB="ng-trigger",gB=".ng-trigger",sX="ng-animating",$L=".ng-animating";function l1(n){if("number"==typeof n)return n;const e=n.match(/^(-?[\.\d]+)(m?s)/);return!e||e.length<2?0:XL(parseFloat(e[1]),e[2])}function XL(n,e){return"s"===e?n*V2e:n}function _B(n,e,t){return n.hasOwnProperty("duration")?n:function q2e(n,e,t){let r,s=0,o="";if("string"==typeof n){const l=n.match(/^(-?[\.\d]+)(m?s)(?:\s+(-?[\.\d]+)(m?s))?(?:\s+([-a-z]+(?:\(.+?\))?))?$/i);if(null===l)return e.push(Z$()),{duration:0,delay:0,easing:""};r=XL(parseFloat(l[1]),l[2]);const d=l[3];null!=d&&(s=XL(parseFloat(d),l[4]));const u=l[5];u&&(o=u)}else r=n;if(!t){let l=!1,d=e.length;r<0&&(e.push(function i2e(){return new Ln(3100,!1)}()),l=!0),s<0&&(e.push(function r2e(){return new Ln(3101,!1)}()),l=!0),l&&e.splice(d,0,Z$())}return{duration:r,delay:s,easing:o}}(n,e,t)}function N0(n,e,t){e.forEach((i,r)=>{const s=KL(r);t&&!t.has(r)&&t.set(r,n.style[s]),n.style[s]=i})}function xx(n,e){e.forEach((t,i)=>{const r=KL(i);n.style[r]=""})}function tT(n){return Array.isArray(n)?1==n.length?n[0]:function v_e(n,e=null){return{type:aa.Sequence,steps:n,options:e}}(n):n}const YL=new RegExp("{{\\s*(.+?)\\s*}}","g");function aX(n){let e=[];if("string"==typeof n){let t;for(;t=YL.exec(n);)e.push(t[1]);YL.lastIndex=0}return e}function nT(n,e,t){const i=`${n}`,r=i.replace(YL,(s,o)=>{let l=e[o];return null==l&&(t.push(function o2e(n){return new Ln(3003,!1)}()),l=""),l.toString()});return r==i?n:r}const j2e=/-+([a-z0-9])/g;function KL(n){return n.replace(j2e,(...e)=>e[1].toUpperCase())}function vm(n,e,t){switch(e.type){case aa.Trigger:return n.visitTrigger(e,t);case aa.State:return n.visitState(e,t);case aa.Transition:return n.visitTransition(e,t);case aa.Sequence:return n.visitSequence(e,t);case aa.Group:return n.visitGroup(e,t);case aa.Animate:return n.visitAnimate(e,t);case aa.Keyframes:return n.visitKeyframes(e,t);case aa.Style:return n.visitStyle(e,t);case aa.Reference:return n.visitReference(e,t);case aa.AnimateChild:return n.visitAnimateChild(e,t);case aa.AnimateRef:return n.visitAnimateRef(e,t);case aa.Query:return n.visitQuery(e,t);case aa.Stagger:return n.visitStagger(e,t);default:throw function a2e(n){return new Ln(3004,!1)}()}}function ZL(n,e){return window.getComputedStyle(n)[e]}const Y2e=new Set(["width","height","minWidth","minHeight","maxWidth","maxHeight","left","top","bottom","right","fontSize","outlineWidth","outlineOffset","paddingTop","paddingLeft","paddingBottom","paddingRight","marginTop","marginLeft","marginBottom","marginRight","borderRadius","borderWidth","borderTopWidth","borderLeftWidth","borderRightWidth","borderBottomWidth","textIndent","perspective"]);class lX extends WL{normalizePropertyName(e,t){return KL(e)}normalizeStyleValue(e,t,i,r){let s="";const o=i.toString().trim();if(Y2e.has(t)&&0!==i&&"0"!==i)if("number"==typeof i)s="px";else{const l=i.match(/^[+-]?[\d\.]+([a-z]*)$/);l&&0==l[1].length&&r.push(function l2e(n,e){return new Ln(3005,!1)}())}return o+s}}const yB="*";const vB=new Set(["true","1"]),bB=new Set(["false","0"]);function cX(n,e){const t=vB.has(n)||bB.has(n),i=vB.has(e)||bB.has(e);return(r,s)=>{let o=n==yB||n==r,l=e==yB||e==s;return!o&&t&&"boolean"==typeof r&&(o=r?vB.has(n):bB.has(n)),!l&&i&&"boolean"==typeof s&&(l=s?vB.has(e):bB.has(e)),o&&l}}const eCe=new RegExp("s*:selfs*,?","g");function JL(n,e,t,i){return new tCe(n).build(e,t,i)}class tCe{constructor(e){this._driver=e}build(e,t,i){const r=new rCe(t);return this._resetContextStyleTimingState(r),vm(this,tT(e),r)}_resetContextStyleTimingState(e){e.currentQuerySelector="",e.collectedStyles=new Map,e.collectedStyles.set("",new Map),e.currentTime=0}visitTrigger(e,t){let i=t.queryCount=0,r=t.depCount=0;const s=[],o=[];return"@"==e.name.charAt(0)&&t.errors.push(function c2e(){return new Ln(3006,!1)}()),e.definitions.forEach(l=>{if(this._resetContextStyleTimingState(t),l.type==aa.State){const d=l,u=d.name;u.toString().split(/\s*,\s*/).forEach(f=>{d.name=f,s.push(this.visitState(d,t))}),d.name=u}else if(l.type==aa.Transition){const d=this.visitTransition(l,t);i+=d.queryCount,r+=d.depCount,o.push(d)}else t.errors.push(function d2e(){return new Ln(3007,!1)}())}),{type:aa.Trigger,name:e.name,states:s,transitions:o,queryCount:i,depCount:r,options:null}}visitState(e,t){const i=this.visitStyle(e.styles,t),r=e.options&&e.options.params||null;if(i.containsDynamicStyles){const s=new Set,o=r||{};i.styles.forEach(l=>{l instanceof Map&&l.forEach(d=>{aX(d).forEach(u=>{o.hasOwnProperty(u)||s.add(u)})})}),s.size&&t.errors.push(function u2e(n,e){return new Ln(3008,!1)}(0,s.values()))}return{type:aa.State,name:e.name,style:i,options:r?{params:r}:null}}visitTransition(e,t){t.queryCount=0,t.depCount=0;const i=vm(this,tT(e.animation),t),r=function K2e(n,e){const t=[];return"string"==typeof n?n.split(/\s*,\s*/).forEach(i=>function Z2e(n,e,t){if(":"==n[0]){const d=function J2e(n,e){switch(n){case":enter":return"void => *";case":leave":return"* => void";case":increment":return(t,i)=>parseFloat(i)>parseFloat(t);case":decrement":return(t,i)=>parseFloat(i) *"}}(n,t);if("function"==typeof d)return void e.push(d);n=d}const i=n.match(/^(\*|[-\w]+)\s*()\s*(\*|[-\w]+)$/);if(null==i||i.length<4)return t.push(function v2e(n){return new Ln(3015,!1)}()),e;const r=i[1],s=i[2],o=i[3];e.push(cX(r,o)),"<"==s[0]&&(r!=yB||o!=yB)&&e.push(cX(o,r))}(i,t,e)):t.push(n),t}(e.expr,t.errors);return{type:aa.Transition,matchers:r,animation:i,queryCount:t.queryCount,depCount:t.depCount,options:wx(e.options)}}visitSequence(e,t){return{type:aa.Sequence,steps:e.steps.map(i=>vm(this,i,t)),options:wx(e.options)}}visitGroup(e,t){const i=t.currentTime;let r=0;const s=e.steps.map(o=>{t.currentTime=i;const l=vm(this,o,t);return r=Math.max(r,t.currentTime),l});return t.currentTime=r,{type:aa.Group,steps:s,options:wx(e.options)}}visitAnimate(e,t){const i=function oCe(n,e){if(n.hasOwnProperty("duration"))return n;if("number"==typeof n)return eN(_B(n,e).duration,0,"");const t=n;if(t.split(/\s+/).some(s=>"{"==s.charAt(0)&&"{"==s.charAt(1))){const s=eN(0,0,"");return s.dynamic=!0,s.strValue=t,s}const r=_B(t,e);return eN(r.duration,r.delay,r.easing)}(e.timings,t.errors);t.currentAnimateTimings=i;let r,s=e.styles?e.styles:Yu({});if(s.type==aa.Keyframes)r=this.visitKeyframes(s,t);else{let o=e.styles,l=!1;if(!o){l=!0;const u={};i.easing&&(u.easing=i.easing),o=Yu(u)}t.currentTime+=i.duration+i.delay;const d=this.visitStyle(o,t);d.isEmptyStep=l,r=d}return t.currentAnimateTimings=null,{type:aa.Animate,timings:i,style:r,options:null}}visitStyle(e,t){const i=this._makeStyleAst(e,t);return this._validateStyleAst(i,t),i}_makeStyleAst(e,t){const i=[],r=Array.isArray(e.styles)?e.styles:[e.styles];for(let l of r)"string"==typeof l?l===n1?i.push(l):t.errors.push(new Ln(3002,!1)):i.push(new Map(Object.entries(l)));let s=!1,o=null;return i.forEach(l=>{if(l instanceof Map&&(l.has("easing")&&(o=l.get("easing"),l.delete("easing")),!s))for(let d of l.values())if(d.toString().indexOf("{{")>=0){s=!0;break}}),{type:aa.Style,styles:i,easing:o,offset:e.offset,containsDynamicStyles:s,options:null}}_validateStyleAst(e,t){const i=t.currentAnimateTimings;let r=t.currentTime,s=t.currentTime;i&&s>0&&(s-=i.duration+i.delay),e.styles.forEach(o=>{"string"!=typeof o&&o.forEach((l,d)=>{const u=t.collectedStyles.get(t.currentQuerySelector),f=u.get(d);let A=!0;f&&(s!=r&&s>=f.startTime&&r<=f.endTime&&(t.errors.push(function f2e(n,e,t,i,r){return new Ln(3010,!1)}()),A=!1),s=f.startTime),A&&u.set(d,{startTime:s,endTime:r}),t.options&&function W2e(n,e,t){const i=e.params||{},r=aX(n);r.length&&r.forEach(s=>{i.hasOwnProperty(s)||t.push(function s2e(n){return new Ln(3001,!1)}())})}(l,t.options,t.errors)})})}visitKeyframes(e,t){const i={type:aa.Keyframes,styles:[],options:null};if(!t.currentAnimateTimings)return t.errors.push(function p2e(){return new Ln(3011,!1)}()),i;let s=0;const o=[];let l=!1,d=!1,u=0;const f=e.steps.map(le=>{const Ee=this._makeStyleAst(le,t);let Ce=null!=Ee.offset?Ee.offset:function sCe(n){if("string"==typeof n)return null;let e=null;if(Array.isArray(n))n.forEach(t=>{if(t instanceof Map&&t.has("offset")){const i=t;e=parseFloat(i.get("offset")),i.delete("offset")}});else if(n instanceof Map&&n.has("offset")){const t=n;e=parseFloat(t.get("offset")),t.delete("offset")}return e}(Ee.styles),We=0;return null!=Ce&&(s++,We=Ee.offset=Ce),d=d||We<0||We>1,l=l||We0&&s{const Ce=S>0?Ee==R?1:S*Ee:o[Ee],We=Ce*se;t.currentTime=G+re.delay+We,re.duration=We,this._validateStyleAst(le,t),le.offset=Ce,i.styles.push(le)}),i}visitReference(e,t){return{type:aa.Reference,animation:vm(this,tT(e.animation),t),options:wx(e.options)}}visitAnimateChild(e,t){return t.depCount++,{type:aa.AnimateChild,options:wx(e.options)}}visitAnimateRef(e,t){return{type:aa.AnimateRef,animation:this.visitReference(e.animation,t),options:wx(e.options)}}visitQuery(e,t){const i=t.currentQuerySelector,r=e.options||{};t.queryCount++,t.currentQuery=e;const[s,o]=function nCe(n){const e=!!n.split(/\s*,\s*/).find(t=>":self"==t);return e&&(n=n.replace(eCe,"")),n=n.replace(/@\*/g,gB).replace(/@\w+/g,t=>gB+"-"+t.slice(1)).replace(/:animating/g,$L),[n,e]}(e.selector);t.currentQuerySelector=i.length?i+" "+s:s,ym(t.collectedStyles,t.currentQuerySelector,new Map);const l=vm(this,tT(e.animation),t);return t.currentQuery=null,t.currentQuerySelector=i,{type:aa.Query,selector:s,limit:r.limit||0,optional:!!r.optional,includeSelf:o,animation:l,originalSelector:e.selector,options:wx(e.options)}}visitStagger(e,t){t.currentQuery||t.errors.push(function _2e(){return new Ln(3013,!1)}());const i="full"===e.timings?{duration:0,delay:0,easing:"full"}:_B(e.timings,t.errors,!0);return{type:aa.Stagger,animation:vm(this,tT(e.animation),t),timings:i,options:null}}}class rCe{constructor(e){this.errors=e,this.queryCount=0,this.depCount=0,this.currentTransition=null,this.currentQuery=null,this.currentQuerySelector=null,this.currentAnimateTimings=null,this.currentTime=0,this.collectedStyles=new Map,this.options=null,this.unsupportedCSSPropertiesFound=new Set}}function wx(n){return n?(n={...n}).params&&(n.params=function iCe(n){return n?{...n}:null}(n.params)):n={},n}function eN(n,e,t){return{duration:n,delay:e,easing:t}}function tN(n,e,t,i,r,s,o=null,l=!1){return{type:1,element:n,keyframes:e,preStyleProps:t,postStyleProps:i,duration:r,delay:s,totalTime:r+s,easing:o,subTimeline:l}}class xB{constructor(){this._map=new Map}get(e){return this._map.get(e)||[]}append(e,t){let i=this._map.get(e);i||this._map.set(e,i=[]),i.push(...t)}has(e){return this._map.has(e)}clear(){this._map.clear()}}const cCe=new RegExp(":enter","g"),uCe=new RegExp(":leave","g");function nN(n,e,t,i,r,s=new Map,o=new Map,l,d,u=[]){return(new hCe).buildKeyframes(n,e,t,i,r,s,o,l,d,u)}class hCe{buildKeyframes(e,t,i,r,s,o,l,d,u,f=[]){u=u||new xB;const A=new iN(e,t,u,r,s,f,[]);A.options=d;const S=d.delay?l1(d.delay):0;A.currentTimeline.delayNextStep(S),A.currentTimeline.setStyles([o],null,A.errors,d),vm(this,i,A);const R=A.timelines.filter(G=>G.containsAnimation());if(R.length&&l.size){let G;for(let re=R.length-1;re>=0;re--){const se=R[re];if(se.element===t){G=se;break}}G&&!G.allowOnlyTimelineStyles()&&G.setStyles([l],null,A.errors,d)}return R.length?R.map(G=>G.buildKeyframes()):[tN(t,[],[],[],0,S,"",!1)]}visitTrigger(e,t){}visitState(e,t){}visitTransition(e,t){}visitAnimateChild(e,t){const i=t.subInstructions.get(t.element);if(i){const r=t.createSubContext(e.options),s=t.currentTimeline.currentTime,o=this._visitSubInstructions(i,r,r.options);s!=o&&t.transformIntoNewTimeline(o)}t.previousNode=e}visitAnimateRef(e,t){const i=t.createSubContext(e.options);i.transformIntoNewTimeline(),this._applyAnimationRefDelays([e.options,e.animation.options],t,i),this.visitReference(e.animation,i),t.transformIntoNewTimeline(i.currentTimeline.currentTime),t.previousNode=e}_applyAnimationRefDelays(e,t,i){for(const r of e){const s=r?.delay;if(s){const o="number"==typeof s?s:l1(nT(s,r?.params??{},t.errors));i.delayNextStep(o)}}}_visitSubInstructions(e,t,i){let s=t.currentTimeline.currentTime;const o=null!=i.duration?l1(i.duration):null,l=null!=i.delay?l1(i.delay):null;return 0!==o&&e.forEach(d=>{const u=t.appendInstructionToTimeline(d,o,l);s=Math.max(s,u.duration+u.delay)}),s}visitReference(e,t){t.updateOptions(e.options,!0),vm(this,e.animation,t),t.previousNode=e}visitSequence(e,t){const i=t.subContextCount;let r=t;const s=e.options;if(s&&(s.params||s.delay)&&(r=t.createSubContext(s),r.transformIntoNewTimeline(),null!=s.delay)){r.previousNode.type==aa.Style&&(r.currentTimeline.snapshotCurrentStyles(),r.previousNode=wB);const o=l1(s.delay);r.delayNextStep(o)}e.steps.length&&(e.steps.forEach(o=>vm(this,o,r)),r.currentTimeline.applyStylesToKeyframe(),r.subContextCount>i&&r.transformIntoNewTimeline()),t.previousNode=e}visitGroup(e,t){const i=[];let r=t.currentTimeline.currentTime;const s=e.options&&e.options.delay?l1(e.options.delay):0;e.steps.forEach(o=>{const l=t.createSubContext(e.options);s&&l.delayNextStep(s),vm(this,o,l),r=Math.max(r,l.currentTimeline.currentTime),i.push(l.currentTimeline)}),i.forEach(o=>t.currentTimeline.mergeTimelineCollectedStyles(o)),t.transformIntoNewTimeline(r),t.previousNode=e}_visitTiming(e,t){if(e.dynamic){const i=e.strValue;return _B(t.params?nT(i,t.params,t.errors):i,t.errors)}return{duration:e.duration,delay:e.delay,easing:e.easing}}visitAnimate(e,t){const i=t.currentAnimateTimings=this._visitTiming(e.timings,t),r=t.currentTimeline;i.delay&&(t.incrementTime(i.delay),r.snapshotCurrentStyles());const s=e.style;s.type==aa.Keyframes?this.visitKeyframes(s,t):(t.incrementTime(i.duration),this.visitStyle(s,t),r.applyStylesToKeyframe()),t.currentAnimateTimings=null,t.previousNode=e}visitStyle(e,t){const i=t.currentTimeline,r=t.currentAnimateTimings;!r&&i.hasCurrentStyleProperties()&&i.forwardFrame();const s=r&&r.easing||e.easing;e.isEmptyStep?i.applyEmptyStep(s):i.setStyles(e.styles,s,t.errors,t.options),t.previousNode=e}visitKeyframes(e,t){const i=t.currentAnimateTimings,r=t.currentTimeline.duration,s=i.duration,l=t.createSubContext().currentTimeline;l.easing=i.easing,e.styles.forEach(d=>{l.forwardTime((d.offset||0)*s),l.setStyles(d.styles,d.easing,t.errors,t.options),l.applyStylesToKeyframe()}),t.currentTimeline.mergeTimelineCollectedStyles(l),t.transformIntoNewTimeline(r+s),t.previousNode=e}visitQuery(e,t){const i=t.currentTimeline.currentTime,r=e.options||{},s=r.delay?l1(r.delay):0;s&&(t.previousNode.type===aa.Style||0==i&&t.currentTimeline.hasCurrentStyleProperties())&&(t.currentTimeline.snapshotCurrentStyles(),t.previousNode=wB);let o=i;const l=t.invokeQuery(e.selector,e.originalSelector,e.limit,e.includeSelf,!!r.optional,t.errors);t.currentQueryTotal=l.length;let d=null;l.forEach((u,f)=>{t.currentQueryIndex=f;const A=t.createSubContext(e.options,u);s&&A.delayNextStep(s),u===t.element&&(d=A.currentTimeline),vm(this,e.animation,A),A.currentTimeline.applyStylesToKeyframe(),o=Math.max(o,A.currentTimeline.currentTime)}),t.currentQueryIndex=0,t.currentQueryTotal=0,t.transformIntoNewTimeline(o),d&&(t.currentTimeline.mergeTimelineCollectedStyles(d),t.currentTimeline.snapshotCurrentStyles()),t.previousNode=e}visitStagger(e,t){const i=t.parentContext,r=t.currentTimeline,s=e.timings,o=Math.abs(s.duration),l=o*(t.currentQueryTotal-1);let d=o*t.currentQueryIndex;switch(s.duration<0?"reverse":s.easing){case"reverse":d=l-d;break;case"full":d=i.currentStaggerTime}const f=t.currentTimeline;d&&f.delayNextStep(d);const A=f.currentTime;vm(this,e.animation,t),t.previousNode=e,i.currentStaggerTime=r.currentTime-A+(r.startTime-i.currentTimeline.startTime)}}const wB={};class iN{constructor(e,t,i,r,s,o,l,d){this._driver=e,this.element=t,this.subInstructions=i,this._enterClassName=r,this._leaveClassName=s,this.errors=o,this.timelines=l,this.parentContext=null,this.currentAnimateTimings=null,this.previousNode=wB,this.subContextCount=0,this.options={},this.currentQueryIndex=0,this.currentQueryTotal=0,this.currentStaggerTime=0,this.currentTimeline=d||new CB(this._driver,t,0),l.push(this.currentTimeline)}get params(){return this.options.params}updateOptions(e,t){if(!e)return;const i=e;let r=this.options;null!=i.duration&&(r.duration=l1(i.duration)),null!=i.delay&&(r.delay=l1(i.delay));const s=i.params;if(s){let o=r.params;o||(o=this.options.params={}),Object.keys(s).forEach(l=>{(!t||!o.hasOwnProperty(l))&&(o[l]=nT(s[l],o,this.errors))})}}_copyOptions(){const e={};if(this.options){const t=this.options.params;if(t){const i=e.params={};Object.keys(t).forEach(r=>{i[r]=t[r]})}}return e}createSubContext(e=null,t,i){const r=t||this.element,s=new iN(this._driver,r,this.subInstructions,this._enterClassName,this._leaveClassName,this.errors,this.timelines,this.currentTimeline.fork(r,i||0));return s.previousNode=this.previousNode,s.currentAnimateTimings=this.currentAnimateTimings,s.options=this._copyOptions(),s.updateOptions(e),s.currentQueryIndex=this.currentQueryIndex,s.currentQueryTotal=this.currentQueryTotal,s.parentContext=this,this.subContextCount++,s}transformIntoNewTimeline(e){return this.previousNode=wB,this.currentTimeline=this.currentTimeline.fork(this.element,e),this.timelines.push(this.currentTimeline),this.currentTimeline}appendInstructionToTimeline(e,t,i){const r={duration:t??e.duration,delay:this.currentTimeline.currentTime+(i??0)+e.delay,easing:""},s=new fCe(this._driver,e.element,e.keyframes,e.preStyleProps,e.postStyleProps,r,e.stretchStartingKeyframe);return this.timelines.push(s),r}incrementTime(e){this.currentTimeline.forwardTime(this.currentTimeline.duration+e)}delayNextStep(e){e>0&&this.currentTimeline.delayNextStep(e)}invokeQuery(e,t,i,r,s,o){let l=[];if(r&&l.push(this.element),e.length>0){e=(e=e.replace(cCe,"."+this._enterClassName)).replace(uCe,"."+this._leaveClassName);let u=this._driver.query(this.element,e,1!=i);0!==i&&(u=i<0?u.slice(u.length+i,u.length):u.slice(0,i)),l.push(...u)}return!s&&0==l.length&&o.push(function y2e(n){return new Ln(3014,!1)}()),l}}class CB{constructor(e,t,i,r){this._driver=e,this.element=t,this.startTime=i,this._elementTimelineStylesLookup=r,this.duration=0,this.easing=null,this._previousKeyframe=new Map,this._currentKeyframe=new Map,this._keyframes=new Map,this._styleSummary=new Map,this._localTimelineStyles=new Map,this._pendingStyles=new Map,this._backFill=new Map,this._currentEmptyStepKeyframe=null,this._elementTimelineStylesLookup||(this._elementTimelineStylesLookup=new Map),this._globalTimelineStyles=this._elementTimelineStylesLookup.get(t),this._globalTimelineStyles||(this._globalTimelineStyles=this._localTimelineStyles,this._elementTimelineStylesLookup.set(t,this._localTimelineStyles)),this._loadKeyframe()}containsAnimation(){switch(this._keyframes.size){case 0:return!1;case 1:return this.hasCurrentStyleProperties();default:return!0}}hasCurrentStyleProperties(){return this._currentKeyframe.size>0}get currentTime(){return this.startTime+this.duration}delayNextStep(e){const t=1===this._keyframes.size&&this._pendingStyles.size;this.duration||t?(this.forwardTime(this.currentTime+e),t&&this.snapshotCurrentStyles()):this.startTime+=e}fork(e,t){return this.applyStylesToKeyframe(),new CB(this._driver,e,t||this.currentTime,this._elementTimelineStylesLookup)}_loadKeyframe(){this._currentKeyframe&&(this._previousKeyframe=this._currentKeyframe),this._currentKeyframe=this._keyframes.get(this.duration),this._currentKeyframe||(this._currentKeyframe=new Map,this._keyframes.set(this.duration,this._currentKeyframe))}forwardFrame(){this.duration+=1,this._loadKeyframe()}forwardTime(e){this.applyStylesToKeyframe(),this.duration=e,this._loadKeyframe()}_updateStyle(e,t){this._localTimelineStyles.set(e,t),this._globalTimelineStyles.set(e,t),this._styleSummary.set(e,{time:this.currentTime,value:t})}allowOnlyTimelineStyles(){return this._currentEmptyStepKeyframe!==this._currentKeyframe}applyEmptyStep(e){e&&this._previousKeyframe.set("easing",e);for(let[t,i]of this._globalTimelineStyles)this._backFill.set(t,i||n1),this._currentKeyframe.set(t,n1);this._currentEmptyStepKeyframe=this._currentKeyframe}setStyles(e,t,i,r){t&&this._previousKeyframe.set("easing",t);const s=r&&r.params||{},o=function pCe(n,e){const t=new Map;let i;return n.forEach(r=>{if("*"===r){i??=e.keys();for(let s of i)t.set(s,n1)}else for(let[s,o]of r)t.set(s,o)}),t}(e,this._globalTimelineStyles);for(let[l,d]of o){const u=nT(d,s,i);this._pendingStyles.set(l,u),this._localTimelineStyles.has(l)||this._backFill.set(l,this._globalTimelineStyles.get(l)??n1),this._updateStyle(l,u)}}applyStylesToKeyframe(){0!=this._pendingStyles.size&&(this._pendingStyles.forEach((e,t)=>{this._currentKeyframe.set(t,e)}),this._pendingStyles.clear(),this._localTimelineStyles.forEach((e,t)=>{this._currentKeyframe.has(t)||this._currentKeyframe.set(t,e)}))}snapshotCurrentStyles(){for(let[e,t]of this._localTimelineStyles)this._pendingStyles.set(e,t),this._updateStyle(e,t)}getFinalKeyframe(){return this._keyframes.get(this.duration)}get properties(){const e=[];for(let t in this._currentKeyframe)e.push(t);return e}mergeTimelineCollectedStyles(e){e._styleSummary.forEach((t,i)=>{const r=this._styleSummary.get(i);(!r||t.time>r.time)&&this._updateStyle(i,t.value)})}buildKeyframes(){this.applyStylesToKeyframe();const e=new Set,t=new Set,i=1===this._keyframes.size&&0===this.duration;let r=[];this._keyframes.forEach((l,d)=>{const u=new Map([...this._backFill,...l]);u.forEach((f,A)=>{"!"===f?e.add(A):f===n1&&t.add(A)}),i||u.set("offset",d/this.duration),r.push(u)});const s=[...e.values()],o=[...t.values()];if(i){const l=r[0],d=new Map(l);l.set("offset",0),d.set("offset",1),r=[l,d]}return tN(this.element,r,s,o,this.duration,this.startTime,this.easing,!1)}}class fCe extends CB{constructor(e,t,i,r,s,o,l=!1){super(e,t,o.delay),this.keyframes=i,this.preStyleProps=r,this.postStyleProps=s,this._stretchStartingKeyframe=l,this.timings={duration:o.duration,delay:o.delay,easing:o.easing}}containsAnimation(){return this.keyframes.length>1}buildKeyframes(){let e=this.keyframes,{delay:t,duration:i,easing:r}=this.timings;if(this._stretchStartingKeyframe&&t){const s=[],o=i+t,l=t/o,d=new Map(e[0]);d.set("offset",0),s.push(d);const u=new Map(e[0]);u.set("offset",hX(l)),s.push(u);const f=e.length-1;for(let A=1;A<=f;A++){let S=new Map(e[A]);const R=S.get("offset");S.set("offset",hX((t+R*i)/o)),s.push(S)}i=o,t=0,r="",e=s}return tN(this.element,e,this.preStyleProps,this.postStyleProps,i,t,r,!0)}}function hX(n,e=3){const t=Math.pow(10,e-1);return Math.round(n*t)/t}function fX(n,e,t,i,r,s,o,l,d,u,f,A,S){return{type:0,element:n,triggerName:e,isRemovalTransition:r,fromState:t,fromStyles:s,toState:i,toStyles:o,timelines:l,queriedElements:d,preStyleProps:u,postStyleProps:f,totalTime:A,errors:S}}const rN={};class pX{constructor(e,t,i){this._triggerName=e,this.ast=t,this._stateStyles=i}match(e,t,i,r){return function mCe(n,e,t,i,r){return n.some(s=>s(e,t,i,r))}(this.ast.matchers,e,t,i,r)}buildStyles(e,t,i){let r=this._stateStyles.get("*");return void 0!==e&&(r=this._stateStyles.get(e?.toString())||r),r?r.buildStyles(t,i):new Map}build(e,t,i,r,s,o,l,d,u,f){const A=[],S=this.ast.options&&this.ast.options.params||rN,G=this.buildStyles(i,l&&l.params||rN,A),re=d&&d.params||rN,se=this.buildStyles(r,re,A),le=new Set,Ee=new Map,Ce=new Map,We="void"===r,Mt={params:mX(re,S),delay:this.ast.options?.delay},yt=f?[]:nN(e,t,this.ast.animation,s,o,G,se,Mt,u,A);let Et=0;return yt.forEach(Xt=>{Et=Math.max(Xt.duration+Xt.delay,Et)}),A.length?fX(t,this._triggerName,i,r,We,G,se,[],[],Ee,Ce,Et,A):(yt.forEach(Xt=>{const Un=Xt.element,wt=ym(Ee,Un,new Set);Xt.preStyleProps.forEach(Vi=>wt.add(Vi));const Kt=ym(Ce,Un,new Set);Xt.postStyleProps.forEach(Vi=>Kt.add(Vi)),Un!==t&&le.add(Un)}),fX(t,this._triggerName,i,r,We,G,se,yt,[...le.values()],Ee,Ce,Et))}}function mX(n,e){const t={...e};return Object.entries(n).forEach(([i,r])=>{null!=r&&(t[i]=r)}),t}class ACe{constructor(e,t,i){this.styles=e,this.defaultParams=t,this.normalizer=i}buildStyles(e,t){const i=new Map,r=mX(e,this.defaultParams);return this.styles.styles.forEach(s=>{"string"!=typeof s&&s.forEach((o,l)=>{o&&(o=nT(o,r,t));const d=this.normalizer.normalizePropertyName(l,t);o=this.normalizer.normalizeStyleValue(l,d,o,t),i.set(l,o)})}),i}}class _Ce{constructor(e,t,i){this.name=e,this.ast=t,this._normalizer=i,this.transitionFactories=[],this.states=new Map,t.states.forEach(r=>{this.states.set(r.name,new ACe(r.style,r.options&&r.options.params||{},i))}),AX(this.states,"true","1"),AX(this.states,"false","0"),t.transitions.forEach(r=>{this.transitionFactories.push(new pX(e,r,this.states))}),this.fallbackTransition=function yCe(n,e,t){return new pX(n,{type:aa.Transition,animation:{type:aa.Sequence,steps:[],options:null},matchers:[(o,l)=>!0],options:null,queryCount:0,depCount:0},e)}(e,this.states)}get containsQueries(){return this.ast.queryCount>0}matchTransition(e,t,i,r){return this.transitionFactories.find(o=>o.match(e,t,i,r))||null}matchStyles(e,t,i){return this.fallbackTransition.buildStyles(e,t,i)}}function AX(n,e,t){n.has(e)?n.has(t)||n.set(t,n.get(e)):n.has(t)&&n.set(e,n.get(t))}const vCe=new xB;class bCe{constructor(e,t,i){this.bodyNode=e,this._driver=t,this._normalizer=i,this._animations=new Map,this._playersById=new Map,this.players=[]}register(e,t){const i=[],s=JL(this._driver,t,i,[]);if(i.length)throw function S2e(n){return new Ln(3503,!1)}();this._animations.set(e,s)}_buildPlayer(e,t,i){const r=e.element,s=J$(this._normalizer,e.keyframes,t,i);return this._driver.animate(r,s,e.duration,e.delay,e.easing,[],!0)}create(e,t,i={}){const r=[],s=this._animations.get(e);let o;const l=new Map;if(s?(o=nN(this._driver,t,s,jL,mB,new Map,new Map,i,vCe,r),o.forEach(f=>{const A=ym(l,f.element,new Map);f.postStyleProps.forEach(S=>A.set(S,null))})):(r.push(function E2e(){return new Ln(3300,!1)}()),o=[]),r.length)throw function T2e(n){return new Ln(3504,!1)}();l.forEach((f,A)=>{f.forEach((S,R)=>{f.set(R,this._driver.computeStyle(A,R,n1))})});const u=ov(o.map(f=>{const A=l.get(f.element);return this._buildPlayer(f,new Map,A)}));return this._playersById.set(e,u),u.onDestroy(()=>this.destroy(e)),this.players.push(u),u}destroy(e){const t=this._getPlayer(e);t.destroy(),this._playersById.delete(e);const i=this.players.indexOf(t);i>=0&&this.players.splice(i,1)}_getPlayer(e){const t=this._playersById.get(e);if(!t)throw function D2e(n){return new Ln(3301,!1)}();return t}listen(e,t,i,r){const s=VL(t,"","","");return zL(this._getPlayer(e),i,s,r),()=>{}}command(e,t,i,r){if("register"==i)return void this.register(e,r[0]);if("create"==i)return void this.create(e,t,r[0]||{});const s=this._getPlayer(e);switch(i){case"play":s.play();break;case"pause":s.pause();break;case"reset":s.reset();break;case"restart":s.restart();break;case"finish":s.finish();break;case"init":s.init();break;case"setPosition":s.setPosition(parseFloat(r[0]));break;case"destroy":this.destroy(e)}}}const gX="ng-animate-queued",sN="ng-animate-disabled",SCe=[],_X={namespaceId:"",setForRemoval:!1,setForMove:!1,hasAnimation:!1,removedBeforeQueried:!1},ECe={namespaceId:"",setForMove:!1,setForRemoval:!1,hasAnimation:!1,removedBeforeQueried:!0},vg="__ng_removed";class oN{get params(){return this.options.params}constructor(e,t=""){this.namespaceId=t;const i=e&&e.hasOwnProperty("value");if(this.value=function BCe(n){return n??null}(i?e.value:e),i){const{value:s,...o}=e;this.options=o}else this.options={};this.options.params||(this.options.params={})}absorbOptions(e){const t=e.params;if(t){const i=this.options.params;Object.keys(t).forEach(r=>{null==i[r]&&(i[r]=t[r])})}}}const iT="void",aN=new oN(iT);class TCe{constructor(e,t,i){this.id=e,this.hostElement=t,this._engine=i,this.players=[],this._triggers=new Map,this._queue=[],this._elementListeners=new Map,this._hostClassName="ng-tns-"+e,AA(t,this._hostClassName)}listen(e,t,i,r){if(!this._triggers.has(t))throw function I2e(n,e){return new Ln(3302,!1)}();if(null==i||0==i.length)throw function B2e(n){return new Ln(3303,!1)}();if(!function PCe(n){return"start"==n||"done"==n}(i))throw function P2e(n,e){return new Ln(3400,!1)}();const s=ym(this._elementListeners,e,[]),o={name:t,phase:i,callback:r};s.push(o);const l=ym(this._engine.statesByElement,e,new Map);return l.has(t)||(AA(e,AB),AA(e,AB+"-"+t),l.set(t,aN)),()=>{this._engine.afterFlush(()=>{const d=s.indexOf(o);d>=0&&s.splice(d,1),this._triggers.has(t)||l.delete(t)})}}register(e,t){return!this._triggers.has(e)&&(this._triggers.set(e,t),!0)}_getTrigger(e){const t=this._triggers.get(e);if(!t)throw function R2e(n){return new Ln(3401,!1)}();return t}trigger(e,t,i,r=!0){const s=this._getTrigger(t),o=new lN(this.id,t,e);let l=this._engine.statesByElement.get(e);l||(AA(e,AB),AA(e,AB+"-"+t),this._engine.statesByElement.set(e,l=new Map));let d=l.get(t);const u=new oN(i,this.id);if(!(i&&i.hasOwnProperty("value"))&&d&&u.absorbOptions(d.options),l.set(t,u),d||(d=aN),u.value!==iT&&d.value===u.value){if(!function FCe(n,e){const t=Object.keys(n),i=Object.keys(e);if(t.length!=i.length)return!1;for(let r=0;r{xx(e,se),N0(e,le)})}return}const S=ym(this._engine.playersByElement,e,[]);S.forEach(re=>{re.namespaceId==this.id&&re.triggerName==t&&re.queued&&re.destroy()});let R=s.matchTransition(d.value,u.value,e,u.params),G=!1;if(!R){if(!r)return;R=s.fallbackTransition,G=!0}return this._engine.totalQueuedPlayers++,this._queue.push({element:e,triggerName:t,transition:R,fromState:d,toState:u,player:o,isFallbackTransition:G}),G||(AA(e,gX),o.onStart(()=>{FC(e,gX)})),o.onDone(()=>{let re=this.players.indexOf(o);re>=0&&this.players.splice(re,1);const se=this._engine.playersByElement.get(e);if(se){let le=se.indexOf(o);le>=0&&se.splice(le,1)}}),this.players.push(o),S.push(o),o}deregister(e){this._triggers.delete(e),this._engine.statesByElement.forEach(t=>t.delete(e)),this._elementListeners.forEach((t,i)=>{this._elementListeners.set(i,t.filter(r=>r.name!=e))})}clearElementCache(e){this._engine.statesByElement.delete(e),this._elementListeners.delete(e);const t=this._engine.playersByElement.get(e);t&&(t.forEach(i=>i.destroy()),this._engine.playersByElement.delete(e))}_signalRemovalForInnerTriggers(e,t){const i=this._engine.driver.query(e,gB,!0);i.forEach(r=>{if(r[vg])return;const s=this._engine.fetchNamespacesByElement(r);s.size?s.forEach(o=>o.triggerLeaveAnimation(r,t,!1,!0)):this.clearElementCache(r)}),this._engine.afterFlushAnimationsDone(()=>i.forEach(r=>this.clearElementCache(r)))}triggerLeaveAnimation(e,t,i,r){const s=this._engine.statesByElement.get(e),o=new Map;if(s){const l=[];if(s.forEach((d,u)=>{if(o.set(u,d.value),this._triggers.has(u)){const f=this.trigger(e,u,iT,r);f&&l.push(f)}}),l.length)return this._engine.markElementAsRemoved(this.id,e,!0,t,o),i&&ov(l).onDone(()=>this._engine.processLeaveNode(e)),!0}return!1}prepareLeaveAnimationListeners(e){const t=this._elementListeners.get(e),i=this._engine.statesByElement.get(e);if(t&&i){const r=new Set;t.forEach(s=>{const o=s.name;if(r.has(o))return;r.add(o);const d=this._triggers.get(o).fallbackTransition,u=i.get(o)||aN,f=new oN(iT),A=new lN(this.id,o,e);this._engine.totalQueuedPlayers++,this._queue.push({element:e,triggerName:o,transition:d,fromState:u,toState:f,player:A,isFallbackTransition:!0})})}}removeNode(e,t){const i=this._engine;if(e.childElementCount&&this._signalRemovalForInnerTriggers(e,t),this.triggerLeaveAnimation(e,t,!0))return;let r=!1;if(i.totalAnimations){const s=i.players.length?i.playersByQueriedElement.get(e):[];if(s&&s.length)r=!0;else{let o=e;for(;o=o.parentNode;)if(i.statesByElement.get(o)){r=!0;break}}}if(this.prepareLeaveAnimationListeners(e),r)i.markElementAsRemoved(this.id,e,!1,t);else{const s=e[vg];(!s||s===_X)&&(i.afterFlush(()=>this.clearElementCache(e)),i.destroyInnerAnimations(e),i._onRemovalComplete(e,t))}}insertNode(e,t){AA(e,this._hostClassName)}drainQueuedTransitions(e){const t=[];return this._queue.forEach(i=>{const r=i.player;if(r.destroyed)return;const s=i.element,o=this._elementListeners.get(s);o&&o.forEach(l=>{if(l.name==i.triggerName){const d=VL(s,i.triggerName,i.fromState.value,i.toState.value);d._data=e,zL(i.player,l.phase,d,l.callback)}}),r.markedForDestroy?this._engine.afterFlush(()=>{r.destroy()}):t.push(i)}),this._queue=[],t.sort((i,r)=>{const s=i.transition.ast.depCount,o=r.transition.ast.depCount;return 0==s||0==o?s-o:this._engine.driver.containsElement(i.element,r.element)?1:-1})}destroy(e){this.players.forEach(t=>t.destroy()),this._signalRemovalForInnerTriggers(this.hostElement,e)}}class DCe{_onRemovalComplete(e,t){this.onRemovalComplete(e,t)}constructor(e,t,i,r){this.bodyNode=e,this.driver=t,this._normalizer=i,this.scheduler=r,this.players=[],this.newHostElements=new Map,this.playersByElement=new Map,this.playersByQueriedElement=new Map,this.statesByElement=new Map,this.disabledNodes=new Set,this.totalAnimations=0,this.totalQueuedPlayers=0,this._namespaceLookup={},this._namespaceList=[],this._flushFns=[],this._whenQuietFns=[],this.namespacesByHostElement=new Map,this.collectedEnterElements=[],this.collectedLeaveElements=[],this.onRemovalComplete=(s,o)=>{}}get queuedPlayers(){const e=[];return this._namespaceList.forEach(t=>{t.players.forEach(i=>{i.queued&&e.push(i)})}),e}createNamespace(e,t){const i=new TCe(e,t,this);return this.bodyNode&&this.driver.containsElement(this.bodyNode,t)?this._balanceNamespaceList(i,t):(this.newHostElements.set(t,i),this.collectEnterElement(t)),this._namespaceLookup[e]=i}_balanceNamespaceList(e,t){const i=this._namespaceList,r=this.namespacesByHostElement;if(i.length-1>=0){let o=!1,l=this.driver.getParentElement(t);for(;l;){const d=r.get(l);if(d){const u=i.indexOf(d);i.splice(u+1,0,e),o=!0;break}l=this.driver.getParentElement(l)}o||i.unshift(e)}else i.push(e);return r.set(t,e),e}register(e,t){let i=this._namespaceLookup[e];return i||(i=this.createNamespace(e,t)),i}registerTrigger(e,t,i){let r=this._namespaceLookup[e];r&&r.register(t,i)&&this.totalAnimations++}destroy(e,t){e&&(this.afterFlush(()=>{}),this.afterFlushAnimationsDone(()=>{const i=this._fetchNamespace(e);this.namespacesByHostElement.delete(i.hostElement);const r=this._namespaceList.indexOf(i);r>=0&&this._namespaceList.splice(r,1),i.destroy(t),delete this._namespaceLookup[e]}))}_fetchNamespace(e){return this._namespaceLookup[e]}fetchNamespacesByElement(e){const t=new Set,i=this.statesByElement.get(e);if(i)for(let r of i.values())if(r.namespaceId){const s=this._fetchNamespace(r.namespaceId);s&&t.add(s)}return t}trigger(e,t,i,r){if(MB(t)){const s=this._fetchNamespace(e);if(s)return s.trigger(t,i,r),!0}return!1}insertNode(e,t,i,r){if(!MB(t))return;const s=t[vg];if(s&&s.setForRemoval){s.setForRemoval=!1,s.setForMove=!0;const o=this.collectedLeaveElements.indexOf(t);o>=0&&this.collectedLeaveElements.splice(o,1)}if(e){const o=this._fetchNamespace(e);o&&o.insertNode(t,i)}r&&this.collectEnterElement(t)}collectEnterElement(e){this.collectedEnterElements.push(e)}markElementAsDisabled(e,t){t?this.disabledNodes.has(e)||(this.disabledNodes.add(e),AA(e,sN)):this.disabledNodes.has(e)&&(this.disabledNodes.delete(e),FC(e,sN))}removeNode(e,t,i){if(MB(t)){this.scheduler?.notify();const r=e?this._fetchNamespace(e):null;r?r.removeNode(t,i):this.markElementAsRemoved(e,t,!1,i);const s=this.namespacesByHostElement.get(t);s&&s.id!==e&&s.removeNode(t,i)}else this._onRemovalComplete(t,i)}markElementAsRemoved(e,t,i,r,s){this.collectedLeaveElements.push(t),t[vg]={namespaceId:e,setForRemoval:r,hasAnimation:i,removedBeforeQueried:!1,previousTriggersValues:s}}listen(e,t,i,r,s){return MB(t)?this._fetchNamespace(e).listen(t,i,r,s):()=>{}}_buildInstruction(e,t,i,r,s){return e.transition.build(this.driver,e.element,e.fromState.value,e.toState.value,i,r,e.fromState.options,e.toState.options,t,s)}destroyInnerAnimations(e){let t=this.driver.query(e,gB,!0);t.forEach(i=>this.destroyActiveAnimationsForElement(i)),0!=this.playersByQueriedElement.size&&(t=this.driver.query(e,$L,!0),t.forEach(i=>this.finishActiveQueriedAnimationOnElement(i)))}destroyActiveAnimationsForElement(e){const t=this.playersByElement.get(e);t&&t.forEach(i=>{i.queued?i.markedForDestroy=!0:i.destroy()})}finishActiveQueriedAnimationOnElement(e){const t=this.playersByQueriedElement.get(e);t&&t.forEach(i=>i.finish())}whenRenderingDone(){return new Promise(e=>{if(this.players.length)return ov(this.players).onDone(()=>e());e()})}processLeaveNode(e){const t=e[vg];if(t&&t.setForRemoval){if(e[vg]=_X,t.namespaceId){this.destroyInnerAnimations(e);const i=this._fetchNamespace(t.namespaceId);i&&i.clearElementCache(e)}this._onRemovalComplete(e,t.setForRemoval)}e.classList?.contains(sN)&&this.markElementAsDisabled(e,!1),this.driver.query(e,".ng-animate-disabled",!0).forEach(i=>{this.markElementAsDisabled(i,!1)})}flush(e=-1){let t=[];if(this.newHostElements.size&&(this.newHostElements.forEach((i,r)=>this._balanceNamespaceList(i,r)),this.newHostElements.clear()),this.totalAnimations&&this.collectedEnterElements.length)for(let i=0;ii()),this._flushFns=[],this._whenQuietFns.length){const i=this._whenQuietFns;this._whenQuietFns=[],t.length?ov(t).onDone(()=>{i.forEach(r=>r())}):i.forEach(r=>r())}}reportError(e){throw function k2e(n){return new Ln(3402,!1)}()}_flushAnimations(e,t){const i=new xB,r=[],s=new Map,o=[],l=new Map,d=new Map,u=new Map,f=new Set;this.disabledNodes.forEach(zn=>{f.add(zn);const oi=this.driver.query(zn,".ng-animate-queued",!0);for(let hi=0;hi{const hi=jL+re++;G.set(oi,hi),zn.forEach(vi=>AA(vi,hi))});const se=[],le=new Set,Ee=new Set;for(let zn=0;znle.add(vi)):Ee.add(oi))}const Ce=new Map,We=bX(S,Array.from(le));We.forEach((zn,oi)=>{const hi=mB+re++;Ce.set(oi,hi),zn.forEach(vi=>AA(vi,hi))}),e.push(()=>{R.forEach((zn,oi)=>{const hi=G.get(oi);zn.forEach(vi=>FC(vi,hi))}),We.forEach((zn,oi)=>{const hi=Ce.get(oi);zn.forEach(vi=>FC(vi,hi))}),se.forEach(zn=>{this.processLeaveNode(zn)})});const Mt=[],yt=[];for(let zn=this._namespaceList.length-1;zn>=0;zn--)this._namespaceList[zn].drainQueuedTransitions(t).forEach(hi=>{const vi=hi.player,mr=hi.element;if(Mt.push(vi),this.collectedEnterElements.length){const Fs=mr[vg];if(Fs&&Fs.setForMove){if(Fs.previousTriggersValues&&Fs.previousTriggersValues.has(hi.triggerName)){const Us=Fs.previousTriggersValues.get(hi.triggerName),ws=this.statesByElement.get(hi.element);if(ws&&ws.has(hi.triggerName)){const Co=ws.get(hi.triggerName);Co.value=Us,ws.set(hi.triggerName,Co)}}return void vi.destroy()}}const Mr=!A||!this.driver.containsElement(A,mr),ns=Ce.get(mr),$s=G.get(mr),fi=this._buildInstruction(hi,i,$s,ns,Mr);if(fi.errors&&fi.errors.length)return void yt.push(fi);if(Mr)return vi.onStart(()=>xx(mr,fi.fromStyles)),vi.onDestroy(()=>N0(mr,fi.toStyles)),void r.push(vi);if(hi.isFallbackTransition)return vi.onStart(()=>xx(mr,fi.fromStyles)),vi.onDestroy(()=>N0(mr,fi.toStyles)),void r.push(vi);const Rr=[];fi.timelines.forEach(Fs=>{Fs.stretchStartingKeyframe=!0,this.disabledNodes.has(Fs.element)||Rr.push(Fs)}),fi.timelines=Rr,i.append(mr,fi.timelines),o.push({instruction:fi,player:vi,element:mr}),fi.queriedElements.forEach(Fs=>ym(l,Fs,[]).push(vi)),fi.preStyleProps.forEach((Fs,Us)=>{if(Fs.size){let ws=d.get(Us);ws||d.set(Us,ws=new Set),Fs.forEach((Co,lo)=>ws.add(lo))}}),fi.postStyleProps.forEach((Fs,Us)=>{let ws=u.get(Us);ws||u.set(Us,ws=new Set),Fs.forEach((Co,lo)=>ws.add(lo))})});if(yt.length){const zn=[];yt.forEach(oi=>{zn.push(function F2e(n,e){return new Ln(3505,!1)}())}),Mt.forEach(oi=>oi.destroy()),this.reportError(zn)}const Et=new Map,Xt=new Map;o.forEach(zn=>{const oi=zn.element;i.has(oi)&&(Xt.set(oi,oi),this._beforeAnimationBuild(zn.player.namespaceId,zn.instruction,Et))}),r.forEach(zn=>{const oi=zn.element;this._getPreviousPlayers(oi,!1,zn.namespaceId,zn.triggerName,null).forEach(vi=>{ym(Et,oi,[]).push(vi),vi.destroy()})});const Un=se.filter(zn=>wX(zn,d,u)),wt=new Map;vX(wt,this.driver,Ee,u,n1).forEach(zn=>{wX(zn,d,u)&&Un.push(zn)});const Vi=new Map;R.forEach((zn,oi)=>{vX(Vi,this.driver,new Set(zn),d,"!")}),Un.forEach(zn=>{const oi=wt.get(zn),hi=Vi.get(zn);wt.set(zn,new Map([...oi?.entries()??[],...hi?.entries()??[]]))});const Yi=[],En=[],wi={};o.forEach(zn=>{const{element:oi,player:hi,instruction:vi}=zn;if(i.has(oi)){if(f.has(oi))return hi.onDestroy(()=>N0(oi,vi.toStyles)),hi.disabled=!0,hi.overrideTotalTime(vi.totalTime),void r.push(hi);let mr=wi;if(Xt.size>1){let ns=oi;const $s=[];for(;ns=ns.parentNode;){const fi=Xt.get(ns);if(fi){mr=fi;break}$s.push(ns)}$s.forEach(fi=>Xt.set(fi,mr))}const Mr=this._buildAnimation(hi.namespaceId,vi,Et,s,Vi,wt);if(hi.setRealPlayer(Mr),mr===wi)Yi.push(hi);else{const ns=this.playersByElement.get(mr);ns&&ns.length&&(hi.parentPlayer=ov(ns)),r.push(hi)}}else xx(oi,vi.fromStyles),hi.onDestroy(()=>N0(oi,vi.toStyles)),En.push(hi),f.has(oi)&&r.push(hi)}),En.forEach(zn=>{const oi=s.get(zn.element);if(oi&&oi.length){const hi=ov(oi);zn.setRealPlayer(hi)}}),r.forEach(zn=>{zn.parentPlayer?zn.syncPlayerEvents(zn.parentPlayer):zn.destroy()});for(let zn=0;zn!Mr.destroyed);mr.length?RCe(this,oi,mr):this.processLeaveNode(oi)}return se.length=0,Yi.forEach(zn=>{this.players.push(zn),zn.onDone(()=>{zn.destroy();const oi=this.players.indexOf(zn);this.players.splice(oi,1)}),zn.play()}),Yi}afterFlush(e){this._flushFns.push(e)}afterFlushAnimationsDone(e){this._whenQuietFns.push(e)}_getPreviousPlayers(e,t,i,r,s){let o=[];if(t){const l=this.playersByQueriedElement.get(e);l&&(o=l)}else{const l=this.playersByElement.get(e);if(l){const d=!s||s==iT;l.forEach(u=>{u.queued||!d&&u.triggerName!=r||o.push(u)})}}return(i||r)&&(o=o.filter(l=>!(i&&i!=l.namespaceId||r&&r!=l.triggerName))),o}_beforeAnimationBuild(e,t,i){const s=t.element,o=t.isRemovalTransition?void 0:e,l=t.isRemovalTransition?void 0:t.triggerName;for(const d of t.timelines){const u=d.element,f=u!==s,A=ym(i,u,[]);this._getPreviousPlayers(u,f,o,l,t.toState).forEach(R=>{const G=R.getRealPlayer();G.beforeDestroy&&G.beforeDestroy(),R.destroy(),A.push(R)})}xx(s,t.fromStyles)}_buildAnimation(e,t,i,r,s,o){const l=t.triggerName,d=t.element,u=[],f=new Set,A=new Set,S=t.timelines.map(G=>{const re=G.element;f.add(re);const se=re[vg];if(se&&se.removedBeforeQueried)return new kE(G.duration,G.delay);const le=re!==d,Ee=function kCe(n){const e=[];return xX(n,e),e}((i.get(re)||SCe).map(Et=>Et.getRealPlayer())).filter(Et=>!!Et.element&&Et.element===re),Ce=s.get(re),We=o.get(re),Mt=J$(this._normalizer,G.keyframes,Ce,We),yt=this._buildPlayer(G,Mt,Ee);if(G.subTimeline&&r&&A.add(re),le){const Et=new lN(e,l,re);Et.setRealPlayer(yt),u.push(Et)}return yt});u.forEach(G=>{ym(this.playersByQueriedElement,G.element,[]).push(G),G.onDone(()=>function ICe(n,e,t){let i=n.get(e);if(i){if(i.length){const r=i.indexOf(t);i.splice(r,1)}0==i.length&&n.delete(e)}return i}(this.playersByQueriedElement,G.element,G))}),f.forEach(G=>AA(G,sX));const R=ov(S);return R.onDestroy(()=>{f.forEach(G=>FC(G,sX)),N0(d,t.toStyles)}),A.forEach(G=>{ym(r,G,[]).push(R)}),R}_buildPlayer(e,t,i){return t.length>0?this.driver.animate(e.element,t,e.duration,e.delay,e.easing,i):new kE(e.duration,e.delay)}}class lN{constructor(e,t,i){this.namespaceId=e,this.triggerName=t,this.element=i,this._player=new kE,this._containsRealPlayer=!1,this._queuedCallbacks=new Map,this.destroyed=!1,this.parentPlayer=null,this.markedForDestroy=!1,this.disabled=!1,this.queued=!0,this.totalTime=0}setRealPlayer(e){this._containsRealPlayer||(this._player=e,this._queuedCallbacks.forEach((t,i)=>{t.forEach(r=>zL(e,i,void 0,r))}),this._queuedCallbacks.clear(),this._containsRealPlayer=!0,this.overrideTotalTime(e.totalTime),this.queued=!1)}getRealPlayer(){return this._player}overrideTotalTime(e){this.totalTime=e}syncPlayerEvents(e){const t=this._player;t.triggerCallback&&e.onStart(()=>t.triggerCallback("start")),e.onDone(()=>this.finish()),e.onDestroy(()=>this.destroy())}_queueEvent(e,t){ym(this._queuedCallbacks,e,[]).push(t)}onDone(e){this.queued&&this._queueEvent("done",e),this._player.onDone(e)}onStart(e){this.queued&&this._queueEvent("start",e),this._player.onStart(e)}onDestroy(e){this.queued&&this._queueEvent("destroy",e),this._player.onDestroy(e)}init(){this._player.init()}hasStarted(){return!this.queued&&this._player.hasStarted()}play(){!this.queued&&this._player.play()}pause(){!this.queued&&this._player.pause()}restart(){!this.queued&&this._player.restart()}finish(){this._player.finish()}destroy(){this.destroyed=!0,this._player.destroy()}reset(){!this.queued&&this._player.reset()}setPosition(e){this.queued||this._player.setPosition(e)}getPosition(){return this.queued?0:this._player.getPosition()}triggerCallback(e){const t=this._player;t.triggerCallback&&t.triggerCallback(e)}}function MB(n){return n&&1===n.nodeType}function yX(n,e){const t=n.style.display;return n.style.display=e??"none",t}function vX(n,e,t,i,r){const s=[];t.forEach(d=>s.push(yX(d)));const o=[];i.forEach((d,u)=>{const f=new Map;d.forEach(A=>{const S=e.computeStyle(u,A,r);f.set(A,S),(!S||0==S.length)&&(u[vg]=ECe,o.push(u))}),n.set(u,f)});let l=0;return t.forEach(d=>yX(d,s[l++])),o}function bX(n,e){const t=new Map;if(n.forEach(l=>t.set(l,[])),0==e.length)return t;const r=new Set(e),s=new Map;function o(l){if(!l)return 1;let d=s.get(l);if(d)return d;const u=l.parentNode;return d=t.has(u)?u:r.has(u)?1:o(u),s.set(l,d),d}return e.forEach(l=>{const d=o(l);1!==d&&t.get(d).push(l)}),t}function AA(n,e){n.classList?.add(e)}function FC(n,e){n.classList?.remove(e)}function RCe(n,e,t){ov(t).onDone(()=>n.processLeaveNode(e))}function xX(n,e){for(let t=0;tr.add(s)):e.set(n,i),t.delete(n),!0}class rT{constructor(e,t,i,r){this._driver=t,this._normalizer=i,this._triggerCache={},this.onRemovalComplete=(s,o)=>{},this._transitionEngine=new DCe(e.body,t,i,r),this._timelineEngine=new bCe(e.body,t,i),this._transitionEngine.onRemovalComplete=(s,o)=>this.onRemovalComplete(s,o)}registerTrigger(e,t,i,r,s){const o=e+"-"+r;let l=this._triggerCache[o];if(!l){const d=[],f=JL(this._driver,s,d,[]);if(d.length)throw function C2e(n,e){return new Ln(3404,!1)}();l=function gCe(n,e,t){return new _Ce(n,e,t)}(r,f,this._normalizer),this._triggerCache[o]=l}this._transitionEngine.registerTrigger(t,r,l)}register(e,t){this._transitionEngine.register(e,t)}destroy(e,t){this._transitionEngine.destroy(e,t)}onInsert(e,t,i,r){this._transitionEngine.insertNode(e,t,i,r)}onRemove(e,t,i){this._transitionEngine.removeNode(e,t,i)}disableAnimations(e,t){this._transitionEngine.markElementAsDisabled(e,t)}process(e,t,i,r){if("@"==i.charAt(0)){const[s,o]=eX(i);this._timelineEngine.command(s,t,o,r)}else this._transitionEngine.trigger(e,t,i,r)}listen(e,t,i,r,s){if("@"==i.charAt(0)){const[o,l]=eX(i);return this._timelineEngine.listen(o,t,l,s)}return this._transitionEngine.listen(e,t,i,r,s)}flush(e=-1){this._transitionEngine.flush(e)}get players(){return[...this._transitionEngine.players,...this._timelineEngine.players]}whenRenderingDone(){return this._transitionEngine.whenRenderingDone()}afterFlushAnimationsDone(e){this._transitionEngine.afterFlushAnimationsDone(e)}}class sT{static#e=this.initialStylesByElement=new WeakMap;constructor(e,t,i){this._element=e,this._startStyles=t,this._endStyles=i,this._state=0;let r=sT.initialStylesByElement.get(e);r||sT.initialStylesByElement.set(e,r=new Map),this._initialStyles=r}start(){this._state<1&&(this._startStyles&&N0(this._element,this._startStyles,this._initialStyles),this._state=1)}finish(){this.start(),this._state<2&&(N0(this._element,this._initialStyles),this._endStyles&&(N0(this._element,this._endStyles),this._endStyles=null),this._state=1)}destroy(){this.finish(),this._state<3&&(sT.initialStylesByElement.delete(this._element),this._startStyles&&(xx(this._element,this._startStyles),this._endStyles=null),this._endStyles&&(xx(this._element,this._endStyles),this._endStyles=null),N0(this._element,this._initialStyles),this._state=3)}}function cN(n){let e=null;return n.forEach((t,i)=>{(function LCe(n){return"display"===n||"position"===n})(i)&&(e=e||new Map,e.set(i,t))}),e}class CX{constructor(e,t,i,r){this.element=e,this.keyframes=t,this.options=i,this._specialStyles=r,this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._initialized=!1,this._finished=!1,this._started=!1,this._destroyed=!1,this._originalOnDoneFns=[],this._originalOnStartFns=[],this.time=0,this.parentPlayer=null,this.currentSnapshot=new Map,this._duration=i.duration,this._delay=i.delay||0,this.time=this._duration+this._delay}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(e=>e()),this._onDoneFns=[])}init(){this._buildPlayer(),this._preparePlayerBeforeStart()}_buildPlayer(){if(this._initialized)return;this._initialized=!0;const e=this.keyframes;this.domPlayer=this._triggerWebAnimation(this.element,e,this.options),this._finalKeyframe=e.length?e[e.length-1]:new Map;const t=()=>this._onFinish();this.domPlayer.addEventListener("finish",t),this.onDestroy(()=>{this.domPlayer.removeEventListener("finish",t)})}_preparePlayerBeforeStart(){this._delay?this._resetDomPlayerState():this.domPlayer.pause()}_convertKeyframesToObject(e){const t=[];return e.forEach(i=>{t.push(Object.fromEntries(i))}),t}_triggerWebAnimation(e,t,i){return e.animate(this._convertKeyframesToObject(t),i)}onStart(e){this._originalOnStartFns.push(e),this._onStartFns.push(e)}onDone(e){this._originalOnDoneFns.push(e),this._onDoneFns.push(e)}onDestroy(e){this._onDestroyFns.push(e)}play(){this._buildPlayer(),this.hasStarted()||(this._onStartFns.forEach(e=>e()),this._onStartFns=[],this._started=!0,this._specialStyles&&this._specialStyles.start()),this.domPlayer.play()}pause(){this.init(),this.domPlayer.pause()}finish(){this.init(),this._specialStyles&&this._specialStyles.finish(),this._onFinish(),this.domPlayer.finish()}reset(){this._resetDomPlayerState(),this._destroyed=!1,this._finished=!1,this._started=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}_resetDomPlayerState(){this.domPlayer&&this.domPlayer.cancel()}restart(){this.reset(),this.play()}hasStarted(){return this._started}destroy(){this._destroyed||(this._destroyed=!0,this._resetDomPlayerState(),this._onFinish(),this._specialStyles&&this._specialStyles.destroy(),this._onDestroyFns.forEach(e=>e()),this._onDestroyFns=[])}setPosition(e){void 0===this.domPlayer&&this.init(),this.domPlayer.currentTime=e*this.time}getPosition(){return+(this.domPlayer.currentTime??0)/this.time}get totalTime(){return this._delay+this._duration}beforeDestroy(){const e=new Map;this.hasStarted()&&this._finalKeyframe.forEach((i,r)=>{"offset"!==r&&e.set(r,this._finished?i:ZL(this.element,r))}),this.currentSnapshot=e}triggerCallback(e){const t="start"===e?this._onStartFns:this._onDoneFns;t.forEach(i=>i()),t.length=0}}class MX{validateStyleProperty(e){return!0}validateAnimatableStyleProperty(e){return!0}matchesElement(e,t){return!1}containsElement(e,t){return nX(e,t)}getParentElement(e){return GL(e)}query(e,t,i){return iX(e,t,i)}computeStyle(e,t,i){return ZL(e,t)}animate(e,t,i,r,s,o=[]){const d={duration:i,delay:r,fill:0==r?"both":"forwards"};s&&(d.easing=s);const u=new Map,f=o.filter(R=>R instanceof CX);(function $2e(n,e){return 0===n||0===e})(i,r)&&f.forEach(R=>{R.currentSnapshot.forEach((G,re)=>u.set(re,G))});let A=function Q2e(n){return n.length?n[0]instanceof Map?n:n.map(e=>new Map(Object.entries(e))):[]}(t).map(R=>new Map(R));A=function X2e(n,e,t){if(t.size&&e.length){let i=e[0],r=[];if(t.forEach((s,o)=>{i.has(o)||r.push(o),i.set(o,s)}),r.length)for(let s=1;so.set(l,ZL(n,l)))}}return e}(e,A,u);const S=function OCe(n,e){let t=null,i=null;return Array.isArray(e)&&e.length?(t=cN(e[0]),e.length>1&&(i=cN(e[e.length-1]))):e instanceof Map&&(t=cN(e)),t||i?new sT(n,t,i):null}(e,A);return new CX(e,A,d,S)}}const SX="@.disabled";class EX{constructor(e,t,i,r){this.namespaceId=e,this.delegate=t,this.engine=i,this._onDestroy=r,this.\u0275type=0}get data(){return this.delegate.data}destroyNode(e){this.delegate.destroyNode?.(e)}destroy(){this.engine.destroy(this.namespaceId,this.delegate),this.engine.afterFlushAnimationsDone(()=>{queueMicrotask(()=>{this.delegate.destroy()})}),this._onDestroy?.()}createElement(e,t){return this.delegate.createElement(e,t)}createComment(e){return this.delegate.createComment(e)}createText(e){return this.delegate.createText(e)}appendChild(e,t){this.delegate.appendChild(e,t),this.engine.onInsert(this.namespaceId,t,e,!1)}insertBefore(e,t,i,r=!0){this.delegate.insertBefore(e,t,i),this.engine.onInsert(this.namespaceId,t,e,r)}removeChild(e,t,i){this.engine.onRemove(this.namespaceId,t,this.delegate)}selectRootElement(e,t){return this.delegate.selectRootElement(e,t)}parentNode(e){return this.delegate.parentNode(e)}nextSibling(e){return this.delegate.nextSibling(e)}setAttribute(e,t,i,r){this.delegate.setAttribute(e,t,i,r)}removeAttribute(e,t,i){this.delegate.removeAttribute(e,t,i)}addClass(e,t){this.delegate.addClass(e,t)}removeClass(e,t){this.delegate.removeClass(e,t)}setStyle(e,t,i,r){this.delegate.setStyle(e,t,i,r)}removeStyle(e,t,i){this.delegate.removeStyle(e,t,i)}setProperty(e,t,i){"@"==t.charAt(0)&&t==SX?this.disableAnimations(e,!!i):this.delegate.setProperty(e,t,i)}setValue(e,t){this.delegate.setValue(e,t)}listen(e,t,i){return this.delegate.listen(e,t,i)}disableAnimations(e,t){this.engine.disableAnimations(e,t)}}class NCe extends EX{constructor(e,t,i,r,s){super(t,i,r,s),this.factory=e,this.namespaceId=t}setProperty(e,t,i){"@"==t.charAt(0)?"."==t.charAt(1)&&t==SX?this.disableAnimations(e,i=void 0===i||!!i):this.engine.process(this.namespaceId,e,t.slice(1),i):this.delegate.setProperty(e,t,i)}listen(e,t,i){if("@"==t.charAt(0)){const r=function UCe(n){switch(n){case"body":return document.body;case"document":return document;case"window":return window;default:return n}}(e);let s=t.slice(1),o="";return"@"!=s.charAt(0)&&([s,o]=function zCe(n){const e=n.indexOf(".");return[n.substring(0,e),n.slice(e+1)]}(s)),this.engine.listen(this.namespaceId,r,s,o,l=>{this.factory.scheduleListenerCallback(l._data||-1,i,l)})}return this.delegate.listen(e,t,i)}}class HCe{constructor(e,t,i){this.delegate=e,this.engine=t,this._zone=i,this._currentId=0,this._microtaskId=1,this._animationCallbacksBuffer=[],this._rendererCache=new Map,this._cdRecurDepth=0,t.onRemovalComplete=(r,s)=>{const o=s?.parentNode(r);o&&s.removeChild(o,r)}}createRenderer(e,t){const r=this.delegate.createRenderer(e,t);if(!e||!t?.data?.animation){const u=this._rendererCache;let f=u.get(r);return f||(f=new EX("",r,this.engine,()=>u.delete(r)),u.set(r,f)),f}const s=t.id,o=t.id+"-"+this._currentId;this._currentId++,this.engine.register(o,e);const l=u=>{Array.isArray(u)?u.forEach(l):this.engine.registerTrigger(s,o,e,u.name,u)};return t.data.animation.forEach(l),new NCe(this,o,r,this.engine)}begin(){this._cdRecurDepth++,this.delegate.begin&&this.delegate.begin()}_scheduleCountTask(){queueMicrotask(()=>{this._microtaskId++})}scheduleListenerCallback(e,t,i){if(e>=0&&et(i));const r=this._animationCallbacksBuffer;0==r.length&&queueMicrotask(()=>{this._zone.run(()=>{r.forEach(s=>{const[o,l]=s;o(l)}),this._animationCallbacksBuffer=[]})}),r.push([t,i])}end(){this._cdRecurDepth--,0==this._cdRecurDepth&&this._zone.runOutsideAngular(()=>{this._scheduleCountTask(),this.engine.flush(this._microtaskId)}),this.delegate.end&&this.delegate.end()}whenRenderingDone(){return this.engine.whenRenderingDone()}}const TX=[{provide:WL,useFactory:function GCe(){return new lX}},{provide:rT,useClass:(()=>{class n extends rT{constructor(t,i,r){super(t,i,r,pi(sb,{optional:!0}))}ngOnDestroy(){this.flush()}static#e=this.\u0275fac=function(i){return new(i||n)(xi(ba),xi(QL),xi(WL))};static#t=this.\u0275prov=Gi({token:n,factory:n.\u0275fac})}return n})()},{provide:OM,useFactory:function qCe(n,e,t){return new HCe(n,e,t)},deps:[qR,rT,io]}],dN=[{provide:QL,useFactory:()=>new MX},{provide:Od,useValue:"BrowserAnimations"},...TX],DX=[{provide:QL,useClass:qL},{provide:Od,useValue:"NoopAnimations"},...TX];let uN,QCe=(()=>{class n{static withConfig(t){return{ngModule:n,providers:t.disableAnimations?DX:dN}}static#e=this.\u0275fac=function(i){return new(i||n)};static#t=this.\u0275mod=vo({type:n});static#n=this.\u0275inj=ra({providers:dN,imports:[Z7]})}return n})();uN=[{path:"",component:_Q},{path:"home",component:_Q},{path:"geometry",component:$ge},{path:"atlas",component:I$},{path:"lhcb",component:Pxe},{path:"cms",component:Rxe},{path:"trackml",component:kxe},{path:"playground",component:n2e}];let WCe=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=vo({type:n,bootstrap:[Eae]});static \u0275inj=ra({imports:[Z7,Hre,qz.forRoot(uN,{useHash:!0}),QCe,t2e]})}return n})();Mie().bootstrapModule(WCe).catch(n=>console.error(n))},3511:(Yr,mt,Se)=>{Yr.exports={ResizeSensor:Se(626),ElementQueries:Se(4868)}},4868:function(Yr,mt,Se){"use strict";var Te,x,L;typeof window<"u"&&window,x=[Se(626)],void 0!==(L="function"==typeof(Te=function(ve){var ke=function(){var Ye,Ze={},Re=[];function He(v){v||(v=document.documentElement);var p=window.getComputedStyle(v,null).fontSize;return parseFloat(p)||16}function De(v,p){var C=p.split(/\d/),I=C[C.length-1];switch(p=parseFloat(p),I){case"px":default:return p;case"em":return p*He(v);case"rem":return p*He();case"vw":return p*document.documentElement.clientWidth/100;case"vh":return p*document.documentElement.clientHeight/100;case"vmin":case"vmax":var U=document.documentElement.clientWidth/100,k=document.documentElement.clientHeight/100;return p*(0,Math["vmin"===I?"min":"max"])(U,k)}}function F(v,p){this.element=v;var C,I,U,k,Z,ee,he,V,b=["min-width","min-height","max-width","max-height"];this.call=function(){for(C in U=function Ve(v){if(!v.getBoundingClientRect)return{width:v.offsetWidth,height:v.offsetHeight};var p=v.getBoundingClientRect();return{width:Math.round(p.width),height:Math.round(p.height)}}(this.element),ee={},Ze[p])Ze[p].hasOwnProperty(C)&&(k=De(this.element,(I=Ze[p][C]).value),Z="width"===I.property?U.width:U.height,he="","min"===I.mode&&Z>=k&&(he+=I.value),"max"===I.mode&&Z<=k&&(he+=I.value),ee[V=I.mode+"-"+I.property]||(ee[V]=""),he&&-1===(" "+ee[V]+" ").indexOf(" "+he+" ")&&(ee[V]+=" "+he));for(var P in b)b.hasOwnProperty(P)&&(ee[b[P]]?this.element.setAttribute(b[P],ee[b[P]].substr(1)):this.element.removeAttribute(b[P]))}}function J(v,p){v.elementQueriesSetupInformation||(v.elementQueriesSetupInformation=new F(v,p)),v.elementQueriesSensor||(v.elementQueriesSensor=new ve(v,function(){v.elementQueriesSetupInformation.call()}))}function Y(v,p,C,I){if(typeof Ze[v]>"u"){Ze[v]=[];var U=Re.length;Ye.innerHTML+="\n"+v+" {animation: 0.1s element-queries;}",Ye.innerHTML+="\n"+v+" > .resize-sensor {min-width: "+U+"px;}",Re.push(v)}Ze[v].push({mode:p,property:C,value:I})}function ue(v){var p;if(document.querySelectorAll&&(p=v?v.querySelectorAll.bind(v):document.querySelectorAll.bind(document)),!p&&typeof $$<"u"&&(p=$$),!p&&typeof jQuery<"u"&&(p=jQuery),!p)throw"No document.querySelectorAll, jQuery or Mootools's $$ found.";return p}function me(v){var p=[],C=[],I=[],U=0,k=-1,Z=[];for(var ee in v.children)if(v.children.hasOwnProperty(ee)&&v.children[ee].tagName&&"img"===v.children[ee].tagName.toLowerCase()){p.push(v.children[ee]);var he=v.children[ee].getAttribute("min-width")||v.children[ee].getAttribute("data-min-width"),V=v.children[ee].getAttribute("data-src")||v.children[ee].getAttribute("url");I.push(V),C.push({minWidth:he}),he?v.children[ee].style.display="none":(U=p.length-1,v.children[ee].style.display="block")}function P(){var z,T=!1;for(z in p)p.hasOwnProperty(z)&&C[z].minWidth&&v.offsetWidth>C[z].minWidth&&(T=z);if(T||(T=U),k!==T)if(Z[T])p[k].style.display="none",p[T].style.display="block",k=T;else{var W=new Image;W.onload=function(){p[T].src=I[T],p[k].style.display="none",p[T].style.display="block",Z[T]=!0,k=T},W.src=I[T]}else p[T].src=I[T]}k=U,v.resizeSensorInstance=new ve(v,P),P()}var B=/,?[\s\t]*([^,\n]*?)((?:\[[\s\t]*?(?:min|max)-(?:width|height)[\s\t]*?[~$\^]?=[\s\t]*?"[^"]*?"[\s\t]*?])+)([^,\n\s\{]*)/gim,$=/\[[\s\t]*?(min|max)-(width|height)[\s\t]*?[~$\^]?=[\s\t]*?"([^"]*?)"[\s\t]*?]/gim;function g(v){var p,C,I,U;for(v=v.replace(/'/g,'"');null!==(p=B.exec(v));)for(C=p[1]+p[3],I=p[2];null!==(U=$.exec(I));)Y(C,U[1],U[2],U[3])}function E(v){var p="";if(v)if("string"==typeof v)(-1!==(v=v.toLowerCase()).indexOf("min-width")||-1!==v.indexOf("max-width"))&&g(v);else for(var C=0,I=v.length;C img, [data-responsive-image] {overflow: hidden; padding: 0; } [responsive-image] > img, [data-responsive-image] > img {width: 100%;}",Ye.innerHTML+="\n@keyframes element-queries { 0% { visibility: inherit; } }",document.getElementsByTagName("head")[0].appendChild(Ye),_=!0);for(var p=0,C=document.styleSheets.length;p"u")return null;var L=typeof window<"u"&&window.Math==Math?window:typeof self<"u"&&self.Math==Math?self:Function("return this")(),ve=L.requestAnimationFrame||L.mozRequestAnimationFrame||L.webkitRequestAnimationFrame||function(Ve){return L.setTimeout(Ve,20)},ke=L.cancelAnimationFrame||L.mozCancelAnimationFrame||L.webkitCancelAnimationFrame||function(Ve){L.clearTimeout(Ve)};function ot(Ve,De){var F=Object.prototype.toString.call(Ve),J="[object Array]"===F||"[object NodeList]"===F||"[object HTMLCollection]"===F||"[object Object]"===F||typeof jQuery<"u"&&Ve instanceof jQuery||typeof Elements<"u"&&Ve instanceof Elements,Y=0,ue=Ve.length;if(J)for(;Y{"use strict";var mt={single_source_shortest_paths:function(Se,Te,x){var L={},ve={};ve[Te]=0;var ot,Ye,Ze,Re,He,De,ke=mt.PriorityQueue.make();for(ke.push(Te,0);!ke.empty();)for(Ze in Re=(ot=ke.pop()).cost,He=Se[Ye=ot.value]||{})He.hasOwnProperty(Ze)&&(De=Re+He[Ze],(typeof ve[Ze]>"u"||ve[Ze]>De)&&(ve[Ze]=De,ke.push(Ze,De),L[Ze]=Ye));if(typeof x<"u"&&typeof ve[x]>"u"){var Y=["Could not find a path from ",Te," to ",x,"."].join("");throw new Error(Y)}return L},extract_shortest_path_from_predecessor_list:function(Se,Te){for(var x=[],L=Te;L;)x.push(L),L=Se[L];return x.reverse(),x},find_path:function(Se,Te,x){var L=mt.single_source_shortest_paths(Se,Te,x);return mt.extract_shortest_path_from_predecessor_list(L,x)},PriorityQueue:{make:function(Se){var L,Te=mt.PriorityQueue,x={};for(L in Se=Se||{},Te)Te.hasOwnProperty(L)&&(x[L]=Te[L]);return x.queue=[],x.sorter=Se.sorter||Te.default_sorter,x},default_sorter:function(Se,Te){return Se.cost-Te.cost},push:function(Se,Te){this.queue.push({value:Se,cost:Te}),this.queue.sort(this.sorter)},pop:function(){return this.queue.shift()},empty:function(){return 0===this.queue.length}}};Yr.exports=mt},5474:Yr=>{"use strict";Yr.exports=function(Se){for(var Te=[],x=Se.length,L=0;L=55296&&ve<=56319&&x>L+1){var ke=Se.charCodeAt(L+1);ke>=56320&&ke<=57343&&(ve=1024*(ve-55296)+ke-56320+65536,L+=1)}ve<128?Te.push(ve):ve<2048?(Te.push(ve>>6|192),Te.push(63&ve|128)):ve<55296||ve>=57344&&ve<65536?(Te.push(ve>>12|224),Te.push(ve>>6&63|128),Te.push(63&ve|128)):ve>=65536&&ve<=1114111?(Te.push(ve>>18|240),Te.push(ve>>12&63|128),Te.push(ve>>6&63|128),Te.push(63&ve|128)):Te.push(239,191,189)}return new Uint8Array(Te).buffer}},5747:function(Yr){Yr.exports=function(){"use strict";var mt=function(ne,j){return(mt=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(ce,ae){ce.__proto__=ae}||function(ce,ae){for(var Ue in ae)Object.prototype.hasOwnProperty.call(ae,Ue)&&(ce[Ue]=ae[Ue])})(ne,j)};function Se(ne,j){if("function"!=typeof j&&null!==j)throw new TypeError("Class extends value "+String(j)+" is not a constructor or null");function ce(){this.constructor=ne}mt(ne,j),ne.prototype=null===j?Object.create(j):(ce.prototype=j.prototype,new ce)}var Te=function(){return Te=Object.assign||function(j){for(var ce,ae=1,Ue=arguments.length;ae0&&dt[dt.length-1])&&(6===Wn[0]||2===Wn[0])){ce=0;continue}if(3===Wn[0]&&(!dt||Wn[1]>dt[0]&&Wn[1]=55296&&Ue<=56319&&ce>10),Bt%1024+56320),(Ue+1===ce||ae.length>16384)&&(dt+=String.fromCharCode.apply(String,ae),ae.length=0)}return dt},He="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Ve=typeof Uint8Array>"u"?[]:new Uint8Array(256),De=0;De<64;De++)Ve[He.charCodeAt(De)]=De;for(var F="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",J=typeof Uint8Array>"u"?[]:new Uint8Array(256),Y=0;Y<64;Y++)J[F.charCodeAt(Y)]=Y;for(var V=function(ne,j,ce){return ne.slice?ne.slice(j,ce):new Uint16Array(Array.prototype.slice.call(ne,j,ce))},T=function(){function ne(j,ce,ae,Ue,dt,Bt){this.initialValue=j,this.errorValue=ce,this.highStart=ae,this.highValueIndex=Ue,this.index=dt,this.data=Bt}return ne.prototype.get=function(j){var ce;if(j>=0){if(j<55296||j>56319&&j<=65535)return this.data[ce=((ce=this.index[j>>5])<<2)+(31&j)];if(j<=65535)return this.data[ce=((ce=this.index[2048+(j-55296>>5)])<<2)+(31&j)];if(j>11)],this.data[ce=((ce=this.index[ce+=j>>5&63])<<2)+(31&j)];if(j<=1114111)return this.data[this.highValueIndex]}return this.errorValue},ne}(),z="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",W=typeof Uint8Array>"u"?[]:new Uint8Array(256),fe=0;fe<64;fe++)W[z.charCodeAt(fe)]=fe;var ce,ae,Ue,Bt,an,Ne=10,pt=13,vt=15,qt=17,Ot=18,Bn=19,Mn=20,bn=21,Dn=22,Cn=24,yn=25,Sn=26,ii=27,ai=28,ti=30,ss=32,Bs=33,yo=34,xt=35,ge=37,ye=38,Pe=39,At=40,Nt=42,hn=[9001,65288],cn="\xd7",ci=(ce=function(ne){var ae,dt,Bt,an,on,j=.75*ne.length,ce=ne.length,Ue=0;"="===ne[ne.length-1]&&(j--,"="===ne[ne.length-2]&&j--);var Wn=typeof ArrayBuffer<"u"&&typeof Uint8Array<"u"&&typeof Uint8Array.prototype.slice<"u"?new ArrayBuffer(j):new Array(j),Zn=Array.isArray(Wn)?Wn:new Uint8Array(Wn);for(ae=0;ae>4,Zn[Ue++]=(15&Bt)<<4|an>>2,Zn[Ue++]=(3&an)<<6|63&on;return Wn}("KwAAAAAAAAAACA4AUD0AADAgAAACAAAAAAAIABAAGABAAEgAUABYAGAAaABgAGgAYgBqAF8AZwBgAGgAcQB5AHUAfQCFAI0AlQCdAKIAqgCyALoAYABoAGAAaABgAGgAwgDKAGAAaADGAM4A0wDbAOEA6QDxAPkAAQEJAQ8BFwF1AH0AHAEkASwBNAE6AUIBQQFJAVEBWQFhAWgBcAF4ATAAgAGGAY4BlQGXAZ8BpwGvAbUBvQHFAc0B0wHbAeMB6wHxAfkBAQIJAvEBEQIZAiECKQIxAjgCQAJGAk4CVgJeAmQCbAJ0AnwCgQKJApECmQKgAqgCsAK4ArwCxAIwAMwC0wLbAjAA4wLrAvMC+AIAAwcDDwMwABcDHQMlAy0DNQN1AD0DQQNJA0kDSQNRA1EDVwNZA1kDdQB1AGEDdQBpA20DdQN1AHsDdQCBA4kDkQN1AHUAmQOhA3UAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AKYDrgN1AHUAtgO+A8YDzgPWAxcD3gPjA+sD8wN1AHUA+wMDBAkEdQANBBUEHQQlBCoEFwMyBDgEYABABBcDSARQBFgEYARoBDAAcAQzAXgEgASIBJAEdQCXBHUAnwSnBK4EtgS6BMIEyAR1AHUAdQB1AHUAdQCVANAEYABgAGAAYABgAGAAYABgANgEYADcBOQEYADsBPQE/AQEBQwFFAUcBSQFLAU0BWQEPAVEBUsFUwVbBWAAYgVgAGoFcgV6BYIFigWRBWAAmQWfBaYFYABgAGAAYABgAKoFYACxBbAFuQW6BcEFwQXHBcEFwQXPBdMF2wXjBeoF8gX6BQIGCgYSBhoGIgYqBjIGOgZgAD4GRgZMBmAAUwZaBmAAYABgAGAAYABgAGAAYABgAGAAYABgAGIGYABpBnAGYABgAGAAYABgAGAAYABgAGAAYAB4Bn8GhQZgAGAAYAB1AHcDFQSLBmAAYABgAJMGdQA9A3UAmwajBqsGqwaVALMGuwbDBjAAywbSBtIG1QbSBtIG0gbSBtIG0gbdBuMG6wbzBvsGAwcLBxMHAwcbByMHJwcsBywHMQcsB9IGOAdAB0gHTgfSBkgHVgfSBtIG0gbSBtIG0gbSBtIG0gbSBiwHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAdgAGAALAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAdbB2MHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsB2kH0gZwB64EdQB1AHUAdQB1AHUAdQB1AHUHfQdgAIUHjQd1AHUAlQedB2AAYAClB6sHYACzB7YHvgfGB3UAzgfWBzMB3gfmB1EB7gf1B/0HlQENAQUIDQh1ABUIHQglCBcDLQg1CD0IRQhNCEEDUwh1AHUAdQBbCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIcAh3CHoIMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIgggwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAALAcsBywHLAcsBywHLAcsBywHLAcsB4oILAcsB44I0gaWCJ4Ipgh1AHUAqgiyCHUAdQB1AHUAdQB1AHUAdQB1AHUAtwh8AXUAvwh1AMUIyQjRCNkI4AjoCHUAdQB1AO4I9gj+CAYJDgkTCS0HGwkjCYIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiAAIAAAAFAAYABgAGIAXwBgAHEAdQBFAJUAogCyAKAAYABgAEIA4ABGANMA4QDxAMEBDwE1AFwBLAE6AQEBUQF4QkhCmEKoQrhCgAHIQsAB0MLAAcABwAHAAeDC6ABoAHDCwMMAAcABwAHAAdDDGMMAAcAB6MM4wwjDWMNow3jDaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAEjDqABWw6bDqABpg6gAaABoAHcDvwOPA+gAaABfA/8DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DpcPAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcAB9cPKwkyCToJMAB1AHUAdQBCCUoJTQl1AFUJXAljCWcJawkwADAAMAAwAHMJdQB2CX4JdQCECYoJjgmWCXUAngkwAGAAYABxAHUApgn3A64JtAl1ALkJdQDACTAAMAAwADAAdQB1AHUAdQB1AHUAdQB1AHUAowYNBMUIMAAwADAAMADICcsJ0wnZCRUE4QkwAOkJ8An4CTAAMAB1AAAKvwh1AAgKDwoXCh8KdQAwACcKLgp1ADYKqAmICT4KRgowADAAdQB1AE4KMAB1AFYKdQBeCnUAZQowADAAMAAwADAAMAAwADAAMAAVBHUAbQowADAAdQC5CXUKMAAwAHwBxAijBogEMgF9CoQKiASMCpQKmgqIBKIKqgquCogEDQG2Cr4KxgrLCjAAMADTCtsKCgHjCusK8Qr5CgELMAAwADAAMAB1AIsECQsRC3UANAEZCzAAMAAwADAAMAB1ACELKQswAHUANAExCzkLdQBBC0kLMABRC1kLMAAwADAAMAAwADAAdQBhCzAAMAAwAGAAYABpC3ELdwt/CzAAMACHC4sLkwubC58Lpwt1AK4Ltgt1APsDMAAwADAAMAAwADAAMAAwAL4LwwvLC9IL1wvdCzAAMADlC+kL8Qv5C/8LSQswADAAMAAwADAAMAAwADAAMAAHDDAAMAAwADAAMAAODBYMHgx1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1ACYMMAAwADAAdQB1AHUALgx1AHUAdQB1AHUAdQA2DDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AD4MdQBGDHUAdQB1AHUAdQB1AEkMdQB1AHUAdQB1AFAMMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQBYDHUAdQB1AF8MMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUA+wMVBGcMMAAwAHwBbwx1AHcMfwyHDI8MMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAYABgAJcMMAAwADAAdQB1AJ8MlQClDDAAMACtDCwHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsB7UMLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AA0EMAC9DDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAsBywHLAcsBywHLAcsBywHLQcwAMEMyAwsBywHLAcsBywHLAcsBywHLAcsBywHzAwwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1ANQM2QzhDDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMABgAGAAYABgAGAAYABgAOkMYADxDGAA+AwADQYNYABhCWAAYAAODTAAMAAwADAAFg1gAGAAHg37AzAAMAAwADAAYABgACYNYAAsDTQNPA1gAEMNPg1LDWAAYABgAGAAYABgAGAAYABgAGAAUg1aDYsGVglhDV0NcQBnDW0NdQ15DWAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAlQCBDZUAiA2PDZcNMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAnw2nDTAAMAAwADAAMAAwAHUArw23DTAAMAAwADAAMAAwADAAMAAwADAAMAB1AL8NMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAB1AHUAdQB1AHUAdQDHDTAAYABgAM8NMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAA1w11ANwNMAAwAD0B5A0wADAAMAAwADAAMADsDfQN/A0EDgwOFA4wABsOMAAwADAAMAAwADAAMAAwANIG0gbSBtIG0gbSBtIG0gYjDigOwQUuDsEFMw7SBjoO0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGQg5KDlIOVg7SBtIGXg5lDm0OdQ7SBtIGfQ6EDooOjQ6UDtIGmg6hDtIG0gaoDqwO0ga0DrwO0gZgAGAAYADEDmAAYAAkBtIGzA5gANIOYADaDokO0gbSBt8O5w7SBu8O0gb1DvwO0gZgAGAAxA7SBtIG0gbSBtIGYABgAGAAYAAED2AAsAUMD9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGFA8sBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAccD9IGLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHJA8sBywHLAcsBywHLAccDywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywPLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAc0D9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAccD9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGFA8sBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHPA/SBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gYUD0QPlQCVAJUAMAAwADAAMACVAJUAlQCVAJUAlQCVAEwPMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAA//8EAAQABAAEAAQABAAEAAQABAANAAMAAQABAAIABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQACgATABcAHgAbABoAHgAXABYAEgAeABsAGAAPABgAHABLAEsASwBLAEsASwBLAEsASwBLABgAGAAeAB4AHgATAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABYAGwASAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAWAA0AEQAeAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAFAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAJABYAGgAbABsAGwAeAB0AHQAeAE8AFwAeAA0AHgAeABoAGwBPAE8ADgBQAB0AHQAdAE8ATwAXAE8ATwBPABYAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAFAATwBAAE8ATwBPAEAATwBQAFAATwBQAB4AHgAeAB4AHgAeAB0AHQAdAB0AHgAdAB4ADgBQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgBQAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAJAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAkACQAJAAkACQAJAAkABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAFAAHgAeAB4AKwArAFAAUABQAFAAGABQACsAKwArACsAHgAeAFAAHgBQAFAAUAArAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAUAAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAYAA0AKwArAB4AHgAbACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQADQAEAB4ABAAEAB4ABAAEABMABAArACsAKwArACsAKwArACsAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAKwArACsAKwBWAFYAVgBWAB4AHgArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AGgAaABoAGAAYAB4AHgAEAAQABAAEAAQABAAEAAQABAAEAAQAEwAEACsAEwATAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABLAEsASwBLAEsASwBLAEsASwBLABoAGQAZAB4AUABQAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABMAUAAEAAQABAAEAAQABAAEAB4AHgAEAAQABAAEAAQABABQAFAABAAEAB4ABAAEAAQABABQAFAASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUAAeAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAFAABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQAUABQAB4AHgAYABMAUAArACsABAAbABsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAFAABAAEAAQABAAEAFAABAAEAAQAUAAEAAQABAAEAAQAKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAArACsAHgArAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAUAAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAABAAEAA0ADQBLAEsASwBLAEsASwBLAEsASwBLAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUAArACsAKwBQAFAAUABQACsAKwAEAFAABAAEAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABABQACsAKwArACsAKwArACsAKwAEACsAKwArACsAUABQACsAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAFAAUAAaABoAUABQAFAAUABQAEwAHgAbAFAAHgAEACsAKwAEAAQABAArAFAAUABQAFAAUABQACsAKwArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQACsAUABQACsAKwAEACsABAAEAAQABAAEACsAKwArACsABAAEACsAKwAEAAQABAArACsAKwAEACsAKwArACsAKwArACsAUABQAFAAUAArAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLAAQABABQAFAAUAAEAB4AKwArACsAKwArACsAKwArACsAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQACsAKwAEAFAABAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAArACsAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAB4AGwArACsAKwArACsAKwArAFAABAAEAAQABAAEAAQAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABAArACsAKwArACsAKwArAAQABAAEACsAKwArACsAUABQACsAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAB4AUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAAQAUAArAFAAUABQAFAAUABQACsAKwArAFAAUABQACsAUABQAFAAUAArACsAKwBQAFAAKwBQACsAUABQACsAKwArAFAAUAArACsAKwBQAFAAUAArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArAAQABAAEAAQABAArACsAKwAEAAQABAArAAQABAAEAAQAKwArAFAAKwArACsAKwArACsABAArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAHgAeAB4AHgAeAB4AGwAeACsAKwArACsAKwAEAAQABAAEAAQAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAUAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAAEACsAKwArACsAKwArACsABAAEACsAUABQAFAAKwArACsAKwArAFAAUAAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAKwAOAFAAUABQAFAAUABQAFAAHgBQAAQABAAEAA4AUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAKwArAAQAUAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAAEACsAKwArACsAKwArACsABAAEACsAKwArACsAKwArACsAUAArAFAAUAAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwBQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAFAABAAEAAQABAAEAAQABAArAAQABAAEACsABAAEAAQABABQAB4AKwArACsAKwBQAFAAUAAEAFAAUABQAFAAUABQAFAAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAFAAUABQAFAAUABQABoAUABQAFAAUABQAFAAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQACsAUAArACsAUABQAFAAUABQAFAAUAArACsAKwAEACsAKwArACsABAAEAAQABAAEAAQAKwAEACsABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArAAQABAAeACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqAFwAXAAqACoAKgAqACoAKgAqACsAKwArACsAGwBcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAeAEsASwBLAEsASwBLAEsASwBLAEsADQANACsAKwArACsAKwBcAFwAKwBcACsAXABcAFwAXABcACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACsAXAArAFwAXABcAFwAXABcAFwAXABcAFwAKgBcAFwAKgAqACoAKgAqACoAKgAqACoAXAArACsAXABcAFwAXABcACsAXAArACoAKgAqACoAKgAqACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwBcAFwAXABcAFAADgAOAA4ADgAeAA4ADgAJAA4ADgANAAkAEwATABMAEwATAAkAHgATAB4AHgAeAAQABAAeAB4AHgAeAB4AHgBLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAFAAUABQAFAAUABQAFAADQAEAB4ABAAeAAQAFgARABYAEQAEAAQAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQADQAEAAQABAAEAAQADQAEAAQAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArAA0ADQAeAB4AHgAeAB4AHgAEAB4AHgAeAB4AHgAeACsAHgAeAA4ADgANAA4AHgAeAB4AHgAeAAkACQArACsAKwArACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgBcAEsASwBLAEsASwBLAEsASwBLAEsADQANAB4AHgAeAB4AXABcAFwAXABcAFwAKgAqACoAKgBcAFwAXABcACoAKgAqAFwAKgAqACoAXABcACoAKgAqACoAKgAqACoAXABcAFwAKgAqACoAKgBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKgAqAFwAKgBLAEsASwBLAEsASwBLAEsASwBLACoAKgAqACoAKgAqAFAAUABQAFAAUABQACsAUAArACsAKwArACsAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgBQAFAAUABQAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUAArACsAUABQAFAAUABQAFAAUAArAFAAKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAKwBQACsAUABQAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsABAAEAAQAHgANAB4AHgAeAB4AHgAeAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUAArACsADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAANAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAWABEAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAA0ADQANAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAANAA0AKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUAArAAQABAArACsAKwArACsAKwArACsAKwArACsAKwBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqAA0ADQAVAFwADQAeAA0AGwBcACoAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwAeAB4AEwATAA0ADQAOAB4AEwATAB4ABAAEAAQACQArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUAAEAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAHgArACsAKwATABMASwBLAEsASwBLAEsASwBLAEsASwBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAArACsAXABcAFwAXABcACsAKwArACsAKwArACsAKwArACsAKwBcAFwAXABcAFwAXABcAFwAXABcAFwAXAArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAXAArACsAKwAqACoAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAArACsAHgAeAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKwAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKwArAAQASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArACoAKgAqACoAKgAqACoAXAAqACoAKgAqACoAKgArACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABABQAFAAUABQAFAAUABQACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwANAA0AHgANAA0ADQANAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAEAAQAHgAeAB4AHgAeAB4AHgAeAB4AKwArACsABAAEAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwAeAB4AHgAeAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArAA0ADQANAA0ADQBLAEsASwBLAEsASwBLAEsASwBLACsAKwArAFAAUABQAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAA0ADQBQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUAAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArAAQABAAEAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAAQAUABQAFAAUABQAFAABABQAFAABAAEAAQAUAArACsAKwArACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsABAAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAKwBQACsAUAArAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgBQAB4AHgAeAFAAUABQACsAHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQACsAKwAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQACsAHgAeAB4AHgAeAB4AHgAOAB4AKwANAA0ADQANAA0ADQANAAkADQANAA0ACAAEAAsABAAEAA0ACQANAA0ADAAdAB0AHgAXABcAFgAXABcAFwAWABcAHQAdAB4AHgAUABQAFAANAAEAAQAEAAQABAAEAAQACQAaABoAGgAaABoAGgAaABoAHgAXABcAHQAVABUAHgAeAB4AHgAeAB4AGAAWABEAFQAVABUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ADQAeAA0ADQANAA0AHgANAA0ADQAHAB4AHgAeAB4AKwAEAAQABAAEAAQABAAEAAQABAAEAFAAUAArACsATwBQAFAAUABQAFAAHgAeAB4AFgARAE8AUABPAE8ATwBPAFAAUABQAFAAUAAeAB4AHgAWABEAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArABsAGwAbABsAGwAbABsAGgAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGgAbABsAGwAbABoAGwAbABoAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAHgAeAFAAGgAeAB0AHgBQAB4AGgAeAB4AHgAeAB4AHgAeAB4AHgBPAB4AUAAbAB4AHgBQAFAAUABQAFAAHgAeAB4AHQAdAB4AUAAeAFAAHgBQAB4AUABPAFAAUAAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAHgBQAFAAUABQAE8ATwBQAFAAUABQAFAATwBQAFAATwBQAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAFAAUABQAFAATwBPAE8ATwBPAE8ATwBPAE8ATwBQAFAAUABQAFAAUABQAFAAUAAeAB4AUABQAFAAUABPAB4AHgArACsAKwArAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHQAdAB4AHgAeAB0AHQAeAB4AHQAeAB4AHgAdAB4AHQAbABsAHgAdAB4AHgAeAB4AHQAeAB4AHQAdAB0AHQAeAB4AHQAeAB0AHgAdAB0AHQAdAB0AHQAeAB0AHgAeAB4AHgAeAB0AHQAdAB0AHgAeAB4AHgAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHgAeAB0AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAeAB0AHQAdAB0AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAeAB4AHgAdAB4AHgAeAB4AHgAeAB4AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABYAEQAWABEAHgAeAB4AHgAeAB4AHQAeAB4AHgAeAB4AHgAeACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAWABEAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAFAAHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAeAB4AHQAdAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHQAdAB4AHgAeAB4AHQAdAB0AHgAeAB0AHgAeAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlAB4AHQAdAB4AHgAdAB4AHgAeAB4AHQAdAB4AHgAeAB4AJQAlAB0AHQAlAB4AJQAlACUAIAAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAeAB4AHgAeAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAdAB0AHQAeAB0AJQAdAB0AHgAdAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAdAB0AHQAdACUAHgAlACUAJQAdACUAJQAdAB0AHQAlACUAHQAdACUAHQAdACUAJQAlAB4AHQAeAB4AHgAeAB0AHQAlAB0AHQAdAB0AHQAdACUAJQAlACUAJQAdACUAJQAgACUAHQAdACUAJQAlACUAJQAlACUAJQAeAB4AHgAlACUAIAAgACAAIAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AFwAXABcAFwAXABcAHgATABMAJQAeAB4AHgAWABEAFgARABYAEQAWABEAFgARABYAEQAWABEATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAWABEAFgARABYAEQAWABEAFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFgARABYAEQAWABEAFgARABYAEQAWABEAFgARABYAEQAWABEAFgARABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAWABEAFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAEAAQABAAeAB4AKwArACsAKwArABMADQANAA0AUAATAA0AUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUAANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAA0ADQANAA0ADQANAA0ADQAeAA0AFgANAB4AHgAXABcAHgAeABcAFwAWABEAFgARABYAEQAWABEADQANAA0ADQATAFAADQANAB4ADQANAB4AHgAeAB4AHgAMAAwADQANAA0AHgANAA0AFgANAA0ADQANAA0ADQANAA0AHgANAB4ADQANAB4AHgAeACsAKwArACsAKwArACsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwArACsAKwArACsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArAA0AEQARACUAJQBHAFcAVwAWABEAFgARABYAEQAWABEAFgARACUAJQAWABEAFgARABYAEQAWABEAFQAWABEAEQAlAFcAVwBXAFcAVwBXAFcAVwBXAAQABAAEAAQABAAEACUAVwBXAFcAVwA2ACUAJQBXAFcAVwBHAEcAJQAlACUAKwBRAFcAUQBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFEAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBRAFcAUQBXAFEAVwBXAFcAVwBXAFcAUQBXAFcAVwBXAFcAVwBRAFEAKwArAAQABAAVABUARwBHAFcAFQBRAFcAUQBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBRAFcAVwBXAFcAVwBXAFEAUQBXAFcAVwBXABUAUQBHAEcAVwArACsAKwArACsAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwAlACUAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACsAKwArACsAKwArACsAKwArACsAKwArAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBPAE8ATwBPAE8ATwBPAE8AJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAEcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAADQATAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABLAEsASwBLAEsASwBLAEsASwBLAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAABAAEAAQABAAeAAQABAAEAAQABAAEAAQABAAEAAQAHgBQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUABQAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAeAA0ADQANAA0ADQArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAB4AHgAeAB4AHgAeAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AUABQAFAAUABQAFAAUABQAFAAUABQAAQAUABQAFAABABQAFAAUABQAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAeAB4AHgAeAAQAKwArACsAUABQAFAAUABQAFAAHgAeABoAHgArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAADgAOABMAEwArACsAKwArACsAKwArACsABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwANAA0ASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUAAeAB4AHgBQAA4AUABQAAQAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAA0ADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArAB4AWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYACsAKwArAAQAHgAeAB4AHgAeAB4ADQANAA0AHgAeAB4AHgArAFAASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArAB4AHgBcAFwAXABcAFwAKgBcAFwAXABcAFwAXABcAFwAXABcAEsASwBLAEsASwBLAEsASwBLAEsAXABcAFwAXABcACsAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArAFAAUABQAAQAUABQAFAAUABQAFAAUABQAAQABAArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAHgANAA0ADQBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAXAAqACoAKgBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqAFwAKgAqACoAXABcACoAKgBcAFwAXABcAFwAKgAqAFwAKgBcACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcACoAKgBQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAA0ADQBQAFAAUAAEAAQAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUAArACsAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQADQAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAVABVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBUAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVACsAKwArACsAKwArACsAKwArACsAKwArAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAKwArACsAKwBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAKwArACsAKwAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAKwArACsAKwArAFYABABWAFYAVgBWAFYAVgBWAFYAVgBWAB4AVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgArAFYAVgBWAFYAVgArAFYAKwBWAFYAKwBWAFYAKwBWAFYAVgBWAFYAVgBWAFYAVgBWAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAEQAWAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAaAB4AKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAGAARABEAGAAYABMAEwAWABEAFAArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACUAJQAlACUAJQAWABEAFgARABYAEQAWABEAFgARABYAEQAlACUAFgARACUAJQAlACUAJQAlACUAEQAlABEAKwAVABUAEwATACUAFgARABYAEQAWABEAJQAlACUAJQAlACUAJQAlACsAJQAbABoAJQArACsAKwArAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAcAKwATACUAJQAbABoAJQAlABYAEQAlACUAEQAlABEAJQBXAFcAVwBXAFcAVwBXAFcAVwBXABUAFQAlACUAJQATACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXABYAJQARACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAWACUAEQAlABYAEQARABYAEQARABUAVwBRAFEAUQBRAFEAUQBRAFEAUQBRAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAEcARwArACsAVwBXAFcAVwBXAFcAKwArAFcAVwBXAFcAVwBXACsAKwBXAFcAVwBXAFcAVwArACsAVwBXAFcAKwArACsAGgAbACUAJQAlABsAGwArAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwAEAAQABAAQAB0AKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsADQANAA0AKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAAQAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAA0AUABQAFAAUAArACsAKwArAFAAUABQAFAAUABQAFAAUAANAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwAeACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAKwArAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUAArACsAKwBQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwANAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAUABQAFAAUABQAAQABAAEACsABAAEACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAKwBQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEACsAKwArACsABABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAA0ADQANAA0ADQANAA0ADQAeACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAArACsAKwArAFAAUABQAFAAUAANAA0ADQANAA0ADQAUACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsADQANAA0ADQANAA0ADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAAQABAAEAAQAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArAAQABAANACsAKwBQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAB4AHgAeAB4AHgArACsAKwArACsAKwAEAAQABAAEAAQABAAEAA0ADQAeAB4AHgAeAB4AKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwAeACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsASwBLAEsASwBLAEsASwBLAEsASwANAA0ADQANAFAABAAEAFAAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAeAA4AUAArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAADQANAB4ADQAEAAQABAAEAB4ABAAEAEsASwBLAEsASwBLAEsASwBLAEsAUAAOAFAADQANAA0AKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAANAA0AHgANAA0AHgAEACsAUABQAFAAUABQAFAAUAArAFAAKwBQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAA0AKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsABAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQACsABAAEAFAABAAEAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABAArACsAUAArACsAKwArACsAKwAEACsAKwArACsAKwBQAFAAUABQAFAABAAEACsAKwAEAAQABAAEAAQABAAEACsAKwArAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAAQABABQAFAAUABQAA0ADQANAA0AHgBLAEsASwBLAEsASwBLAEsASwBLAA0ADQArAB4ABABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAFAAUAAeAFAAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAArACsABAAEAAQABAAEAAQABAAEAAQADgANAA0AEwATAB4AHgAeAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAFAAUABQAFAABAAEACsAKwAEAA0ADQAeAFAAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKwArACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBcAFwADQANAA0AKgBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAKwArAFAAKwArAFAAUABQAFAAUABQAFAAUAArAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQAKwAEAAQAKwArAAQABAAEAAQAUAAEAFAABAAEAA0ADQANACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAArACsABAAEAAQABAAEAAQABABQAA4AUAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAFAABAAEAAQABAAOAB4ADQANAA0ADQAOAB4ABAArACsAKwArACsAKwArACsAUAAEAAQABAAEAAQABAAEAAQABAAEAAQAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAA0ADQANAFAADgAOAA4ADQANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEACsABAAEAAQABAAEAAQABAAEAFAADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwAOABMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAArACsAKwAEACsABAAEACsABAAEAAQABAAEAAQABABQAAQAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAKwBQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQAKwAEAAQAKwAEAAQABAAEAAQAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAaABoAGgAaAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAASABIAEgAQwBDAEMAUABQAFAAUABDAFAAUABQAEgAQwBIAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAASABDAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwAJAAkACQAJAAkACQAJABYAEQArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABIAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwANAA0AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEAAQABAANACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAA0ADQANAB4AHgAeAB4AHgAeAFAAUABQAFAADQAeACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAANAA0AHgAeACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwAEAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAARwBHABUARwAJACsAKwArACsAKwArACsAKwArACsAKwAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACsAKwArACsAKwArACsAKwBXAFcAVwBXAFcAVwBXAFcAVwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUQBRAFEAKwArACsAKwArACsAKwArACsAKwArACsAKwBRAFEAUQBRACsAKwArACsAKwArACsAKwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArACsAHgAEAAQADQAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AHgAeAB4AKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAAQABAAEAAQABAAeAB4AHgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAB4AHgAEAAQABAAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQAHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwBQAFAAKwArAFAAKwArAFAAUAArACsAUABQAFAAUAArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAUAArAFAAUABQAFAAUABQAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAHgAeAFAAUABQAFAAUAArAFAAKwArACsAUABQAFAAUABQAFAAUAArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeACsAKwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4ABAAeAB4AHgAeAB4AHgAeAB4AHgAeAAQAHgAeAA0ADQANAA0AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAAQAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArAAQABAAEAAQABAAEAAQAKwAEAAQAKwAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwBQAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArABsAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArAB4AHgAeAB4ABAAEAAQABAAEAAQABABQACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArABYAFgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAGgBQAFAAUAAaAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAKwBQACsAKwBQACsAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwBQACsAUAArACsAKwArACsAKwBQACsAKwArACsAUAArAFAAKwBQACsAUABQAFAAKwBQAFAAKwBQACsAKwBQACsAUAArAFAAKwBQACsAUAArAFAAUAArAFAAKwArAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUAArAFAAUABQAFAAKwBQACsAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAUABQAFAAKwBQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8AJQAlACUAHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB4AHgAeACUAJQAlAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAlACUAJQAlACUAHgAlACUAJQAlACUAIAAgACAAJQAlACAAJQAlACAAIAAgACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACEAIQAhACEAIQAlACUAIAAgACUAJQAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlACUAIAAlACUAJQAlACAAIAAgACUAIAAgACAAJQAlACUAJQAlACUAJQAgACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAlAB4AJQAeACUAJQAlACUAJQAgACUAJQAlACUAHgAlAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAgACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACAAIAAgACUAJQAlACAAIAAgACAAIAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABcAFwAXABUAFQAVAB4AHgAeAB4AJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAgACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAgACUAJQAgACUAJQAlACUAJQAlACUAJQAgACAAIAAgACAAIAAgACAAJQAlACUAJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAgACAAIAAgACAAIAAgACAAIAAgACUAJQAgACAAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAgACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAlACAAIAAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAgACAAIAAlACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwArAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACUAVwBXACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAA=="),ae=Array.isArray(ce)?function(ne){for(var j=ne.length,ce=[],ae=0;ae0;){var an=ae[--dt];if(Array.isArray(ne)?-1!==ne.indexOf(an):ne===an)for(var on=ce;on<=ae.length;){var Bt;if((Bt=ae[++on])===j)return!0;if(Bt!==Ne)break}if(an!==Ne)break}return!1},O=function(ne,j){for(var ce=ne;ce>=0;){var ae=j[ce];if(ae!==Ne)return ae;ce--}return 0},ie=function(ne,j,ce,ae,Ue){if(0===ce[ae])return cn;var dt=ae-1;if(Array.isArray(Ue)&&!0===Ue[dt])return cn;var Bt=dt-1,an=dt+1,on=j[dt],Wn=Bt>=0?j[Bt]:0,Zn=j[an];if(2===on&&3===Zn)return cn;if(-1!==Si.indexOf(on))return"!";if(-1!==Si.indexOf(Zn)||-1!==bi.indexOf(Zn))return cn;if(8===O(dt,j))return"\xf7";if(11===ci.get(ne[dt])||(on===ss||on===Bs)&&11===ci.get(ne[an])||7===on||7===Zn||9===on||-1===[Ne,pt,vt].indexOf(on)&&9===Zn||-1!==[qt,Ot,Bn,Cn,ai].indexOf(Zn)||O(dt,j)===Dn||D(23,Dn,dt,j)||D([qt,Ot],bn,dt,j)||D(12,12,dt,j))return cn;if(on===Ne)return"\xf7";if(23===on||23===Zn)return cn;if(16===Zn||16===on)return"\xf7";if(-1!==[pt,vt,bn].indexOf(Zn)||14===on||36===Wn&&-1!==Rs.indexOf(on)||on===ai&&36===Zn||Zn===Mn||-1!==Pi.indexOf(Zn)&&on===yn||-1!==Pi.indexOf(on)&&Zn===yn||on===ii&&-1!==[ge,ss,Bs].indexOf(Zn)||-1!==[ge,ss,Bs].indexOf(on)&&Zn===Sn||-1!==Pi.indexOf(on)&&-1!==Jn.indexOf(Zn)||-1!==Jn.indexOf(on)&&-1!==Pi.indexOf(Zn)||-1!==[ii,Sn].indexOf(on)&&(Zn===yn||-1!==[Dn,vt].indexOf(Zn)&&j[an+1]===yn)||-1!==[Dn,vt].indexOf(on)&&Zn===yn||on===yn&&-1!==[yn,ai,Cn].indexOf(Zn))return cn;if(-1!==[yn,ai,Cn,qt,Ot].indexOf(Zn))for(var ri=dt;ri>=0;){if((Xi=j[ri])===yn)return cn;if(-1===[ai,Cn].indexOf(Xi))break;ri--}if(-1!==[ii,Sn].indexOf(Zn))for(ri=-1!==[qt,Ot].indexOf(on)?Bt:dt;ri>=0;){var Xi;if((Xi=j[ri])===yn)return cn;if(-1===[ai,Cn].indexOf(Xi))break;ri--}if(ye===on&&-1!==[ye,Pe,yo,xt].indexOf(Zn)||-1!==[Pe,yo].indexOf(on)&&-1!==[Pe,At].indexOf(Zn)||-1!==[At,xt].indexOf(on)&&Zn===At||-1!==Ln.indexOf(on)&&-1!==[Mn,Sn].indexOf(Zn)||-1!==Ln.indexOf(Zn)&&on===ii||-1!==Pi.indexOf(on)&&-1!==Pi.indexOf(Zn)||on===Cn&&-1!==Pi.indexOf(Zn)||-1!==Pi.concat(yn).indexOf(on)&&Zn===Dn&&-1===hn.indexOf(ne[an])||-1!==Pi.concat(yn).indexOf(Zn)&&on===Ot)return cn;if(41===on&&41===Zn){for(var Ss=ce[dt],Ur=1;Ss>0&&41===j[--Ss];)Ur++;if(Ur%2!=0)return cn}return on===ss&&Zn===Bs?cn:"\xf7"},_e=function(ne,j){j||(j={lineBreak:"normal",wordBreak:"normal"});var ce=function(ne,j){void 0===j&&(j="strict");var ce=[],ae=[],Ue=[];return ne.forEach(function(dt,Bt){var an=ci.get(dt);if(an>50?(Ue.push(!0),an-=50):Ue.push(!1),-1!==["normal","auto","loose"].indexOf(j)&&-1!==[8208,8211,12316,12448].indexOf(dt))return ae.push(Bt),ce.push(16);if(4===an||11===an){if(0===Bt)return ae.push(Bt),ce.push(ti);var on=ce[Bt-1];return-1===Wi.indexOf(on)?(ae.push(ae[Bt-1]),ce.push(on)):(ae.push(Bt),ce.push(ti))}return ae.push(Bt),31===an?ce.push("strict"===j?bn:ge):an===Nt||29===an?ce.push(ti):43===an?ce.push(dt>=131072&&dt<=196605||dt>=196608&&dt<=262141?ge:ti):void ce.push(an)}),[ae,ce,Ue]}(ne,j.lineBreak),ae=ce[0],Ue=ce[1],dt=ce[2];return("break-all"===j.wordBreak||"break-word"===j.wordBreak)&&(Ue=Ue.map(function(an){return-1!==[yn,ti,Nt].indexOf(an)?ge:an})),[ae,Ue,"keep-all"===j.wordBreak?dt.map(function(an,on){return an&&ne[on]>=19968&&ne[on]<=40959}):void 0]},Oe=function(){function ne(j,ce,ae,Ue){this.codePoints=j,this.required="!"===ce,this.start=ae,this.end=Ue}return ne.prototype.slice=function(){return Re.apply(void 0,this.codePoints.slice(this.start,this.end))},ne}(),$o=function(ne){return ne>=48&&ne<=57},Uf=function(ne){return $o(ne)||ne>=65&&ne<=70||ne>=97&&ne<=102},xm=function(ne){return 10===ne||9===ne||32===ne},xg=function(ne){return function(ne){return function(ne){return ne>=97&&ne<=122}(ne)||function(ne){return ne>=65&&ne<=90}(ne)}(ne)||function(ne){return ne>=128}(ne)||95===ne},Xh=function(ne){return xg(ne)||$o(ne)||45===ne},wg=function(ne){return ne>=0&&ne<=8||11===ne||ne>=14&&ne<=31||127===ne},Hf=function(ne,j){return 92===ne&&10!==j},go=function(ne,j,ce){return 45===ne?xg(j)||Hf(j,ce):!!xg(ne)||!(92!==ne||!Hf(ne,j))},Wa=function(ne,j,ce){return 43===ne||45===ne?!!$o(j)||46===j&&$o(ce):$o(46===ne?j:ne)},LC=function(ne){var j=0,ce=1;(43===ne[j]||45===ne[j])&&(45===ne[j]&&(ce=-1),j++);for(var ae=[];$o(ne[j]);)ae.push(ne[j++]);var Ue=ae.length?parseInt(Re.apply(void 0,ae),10):0;46===ne[j]&&j++;for(var dt=[];$o(ne[j]);)dt.push(ne[j++]);var Bt=dt.length,an=Bt?parseInt(Re.apply(void 0,dt),10):0;(69===ne[j]||101===ne[j])&&j++;var on=1;(43===ne[j]||45===ne[j])&&(45===ne[j]&&(on=-1),j++);for(var Wn=[];$o(ne[j]);)Wn.push(ne[j++]);var Zn=Wn.length?parseInt(Re.apply(void 0,Wn),10):0;return ce*(Ue+an*Math.pow(10,-Bt))*Math.pow(10,on*Zn)},Ex={type:2},Tx={type:3},Dx={type:4},Cg={type:13},Mg={type:8},va={type:21},Sg={type:9},u1={type:10},jd={type:11},h1={type:12},Ix={type:14},z0={type:23},wp={type:1},f1={type:25},H0={type:24},Bx={type:26},Px={type:27},Rx={type:28},av={type:29},_A={type:31},p1={type:32},Vf=function(){function ne(){this._value=[]}return ne.prototype.write=function(j){this._value=this._value.concat(Ze(j))},ne.prototype.read=function(){for(var j=[],ce=this.consumeToken();ce!==p1;)j.push(ce),ce=this.consumeToken();return j},ne.prototype.consumeToken=function(){var j=this.consumeCodePoint();switch(j){case 34:return this.consumeStringToken(34);case 35:var ce=this.peekCodePoint(0),ae=this.peekCodePoint(1),Ue=this.peekCodePoint(2);if(Xh(ce)||Hf(ae,Ue)){var dt=go(ce,ae,Ue)?2:1;return{type:5,value:this.consumeName(),flags:dt}}break;case 36:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),Cg;break;case 39:return this.consumeStringToken(39);case 40:return Ex;case 41:return Tx;case 42:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),Ix;break;case 43:if(Wa(j,this.peekCodePoint(0),this.peekCodePoint(1)))return this.reconsumeCodePoint(j),this.consumeNumericToken();break;case 44:return Dx;case 45:var an=j,on=this.peekCodePoint(0),Wn=this.peekCodePoint(1);if(Wa(an,on,Wn))return this.reconsumeCodePoint(j),this.consumeNumericToken();if(go(an,on,Wn))return this.reconsumeCodePoint(j),this.consumeIdentLikeToken();if(45===on&&62===Wn)return this.consumeCodePoint(),this.consumeCodePoint(),H0;break;case 46:if(Wa(j,this.peekCodePoint(0),this.peekCodePoint(1)))return this.reconsumeCodePoint(j),this.consumeNumericToken();break;case 47:if(42===this.peekCodePoint(0))for(this.consumeCodePoint();;){var Zn=this.consumeCodePoint();if(42===Zn&&47===(Zn=this.consumeCodePoint()))return this.consumeToken();if(-1===Zn)return this.consumeToken()}break;case 58:return Bx;case 59:return Px;case 60:if(33===this.peekCodePoint(0)&&45===this.peekCodePoint(1)&&45===this.peekCodePoint(2))return this.consumeCodePoint(),this.consumeCodePoint(),f1;break;case 64:var ri=this.peekCodePoint(0),Xi=this.peekCodePoint(1),Ss=this.peekCodePoint(2);if(go(ri,Xi,Ss))return{type:7,value:this.consumeName()};break;case 91:return Rx;case 92:if(Hf(j,this.peekCodePoint(0)))return this.reconsumeCodePoint(j),this.consumeIdentLikeToken();break;case 93:return av;case 61:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),Mg;break;case 123:return jd;case 125:return h1;case 117:case 85:var Ur=this.peekCodePoint(0),zr=this.peekCodePoint(1);return 43===Ur&&(Uf(zr)||63===zr)&&(this.consumeCodePoint(),this.consumeUnicodeRangeToken()),this.reconsumeCodePoint(j),this.consumeIdentLikeToken();case 124:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),Sg;if(124===this.peekCodePoint(0))return this.consumeCodePoint(),va;break;case 126:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),u1;break;case-1:return p1}return xm(j)?(this.consumeWhiteSpace(),_A):$o(j)?(this.reconsumeCodePoint(j),this.consumeNumericToken()):xg(j)?(this.reconsumeCodePoint(j),this.consumeIdentLikeToken()):{type:6,value:Re(j)}},ne.prototype.consumeCodePoint=function(){var j=this._value.shift();return typeof j>"u"?-1:j},ne.prototype.reconsumeCodePoint=function(j){this._value.unshift(j)},ne.prototype.peekCodePoint=function(j){return j>=this._value.length?-1:this._value[j]},ne.prototype.consumeUnicodeRangeToken=function(){for(var j=[],ce=this.consumeCodePoint();Uf(ce)&&j.length<6;)j.push(ce),ce=this.consumeCodePoint();for(var ae=!1;63===ce&&j.length<6;)j.push(ce),ce=this.consumeCodePoint(),ae=!0;if(ae)return{type:30,start:parseInt(Re.apply(void 0,j.map(function(on){return 63===on?48:on})),16),end:parseInt(Re.apply(void 0,j.map(function(on){return 63===on?70:on})),16)};var Bt=parseInt(Re.apply(void 0,j),16);if(45===this.peekCodePoint(0)&&Uf(this.peekCodePoint(1))){this.consumeCodePoint(),ce=this.consumeCodePoint();for(var an=[];Uf(ce)&&an.length<6;)an.push(ce),ce=this.consumeCodePoint();return{type:30,start:Bt,end:parseInt(Re.apply(void 0,an),16)}}return{type:30,start:Bt,end:Bt}},ne.prototype.consumeIdentLikeToken=function(){var j=this.consumeName();return"url"===j.toLowerCase()&&40===this.peekCodePoint(0)?(this.consumeCodePoint(),this.consumeUrlToken()):40===this.peekCodePoint(0)?(this.consumeCodePoint(),{type:19,value:j}):{type:20,value:j}},ne.prototype.consumeUrlToken=function(){var j=[];if(this.consumeWhiteSpace(),-1===this.peekCodePoint(0))return{type:22,value:""};var ce=this.peekCodePoint(0);if(39===ce||34===ce){var ae=this.consumeStringToken(this.consumeCodePoint());return 0===ae.type&&(this.consumeWhiteSpace(),-1===this.peekCodePoint(0)||41===this.peekCodePoint(0))?(this.consumeCodePoint(),{type:22,value:ae.value}):(this.consumeBadUrlRemnants(),z0)}for(;;){var Ue=this.consumeCodePoint();if(-1===Ue||41===Ue)return{type:22,value:Re.apply(void 0,j)};if(xm(Ue))return this.consumeWhiteSpace(),-1===this.peekCodePoint(0)||41===this.peekCodePoint(0)?(this.consumeCodePoint(),{type:22,value:Re.apply(void 0,j)}):(this.consumeBadUrlRemnants(),z0);if(34===Ue||39===Ue||40===Ue||wg(Ue))return this.consumeBadUrlRemnants(),z0;if(92===Ue){if(!Hf(Ue,this.peekCodePoint(0)))return this.consumeBadUrlRemnants(),z0;j.push(this.consumeEscapedCodePoint())}else j.push(Ue)}},ne.prototype.consumeWhiteSpace=function(){for(;xm(this.peekCodePoint(0));)this.consumeCodePoint()},ne.prototype.consumeBadUrlRemnants=function(){for(;;){var j=this.consumeCodePoint();if(41===j||-1===j)return;Hf(j,this.peekCodePoint(0))&&this.consumeEscapedCodePoint()}},ne.prototype.consumeStringSlice=function(j){for(var ae="";j>0;){var Ue=Math.min(5e4,j);ae+=Re.apply(void 0,this._value.splice(0,Ue)),j-=Ue}return this._value.shift(),ae},ne.prototype.consumeStringToken=function(j){for(var ce="",ae=0;;){var Ue=this._value[ae];if(-1===Ue||void 0===Ue||Ue===j)return{type:0,value:ce+=this.consumeStringSlice(ae)};if(10===Ue)return this._value.splice(0,ae),wp;if(92===Ue){var dt=this._value[ae+1];-1!==dt&&void 0!==dt&&(10===dt?(ce+=this.consumeStringSlice(ae),ae=-1,this._value.shift()):Hf(Ue,dt)&&(ce+=this.consumeStringSlice(ae),ce+=Re(this.consumeEscapedCodePoint()),ae=-1))}ae++}},ne.prototype.consumeNumber=function(){var j=[],ce=4,ae=this.peekCodePoint(0);for((43===ae||45===ae)&&j.push(this.consumeCodePoint());$o(this.peekCodePoint(0));)j.push(this.consumeCodePoint());ae=this.peekCodePoint(0);var Ue=this.peekCodePoint(1);if(46===ae&&$o(Ue))for(j.push(this.consumeCodePoint(),this.consumeCodePoint()),ce=8;$o(this.peekCodePoint(0));)j.push(this.consumeCodePoint());ae=this.peekCodePoint(0),Ue=this.peekCodePoint(1);var dt=this.peekCodePoint(2);if((69===ae||101===ae)&&((43===Ue||45===Ue)&&$o(dt)||$o(Ue)))for(j.push(this.consumeCodePoint(),this.consumeCodePoint()),ce=8;$o(this.peekCodePoint(0));)j.push(this.consumeCodePoint());return[LC(j),ce]},ne.prototype.consumeNumericToken=function(){var j=this.consumeNumber(),ce=j[0],ae=j[1],Ue=this.peekCodePoint(0),dt=this.peekCodePoint(1),Bt=this.peekCodePoint(2);return go(Ue,dt,Bt)?{type:15,number:ce,flags:ae,unit:this.consumeName()}:37===Ue?(this.consumeCodePoint(),{type:16,number:ce,flags:ae}):{type:17,number:ce,flags:ae}},ne.prototype.consumeEscapedCodePoint=function(){var j=this.consumeCodePoint();if(Uf(j)){for(var ce=Re(j);Uf(this.peekCodePoint(0))&&ce.length<6;)ce+=Re(this.consumeCodePoint());xm(this.peekCodePoint(0))&&this.consumeCodePoint();var ae=parseInt(ce,16);return 0===ae||function(ne){return ne>=55296&&ne<=57343}(ae)||ae>1114111?65533:ae}return-1===j?65533:j},ne.prototype.consumeName=function(){for(var j="";;){var ce=this.consumeCodePoint();if(Xh(ce))j+=Re(ce);else{if(!Hf(ce,this.peekCodePoint(0)))return this.reconsumeCodePoint(ce),j;j+=Re(this.consumeEscapedCodePoint())}}},ne}(),V0=function(){function ne(j){this._tokens=j}return ne.create=function(j){var ce=new Vf;return ce.write(j),new ne(ce.read())},ne.parseValue=function(j){return ne.create(j).parseComponentValue()},ne.parseValues=function(j){return ne.create(j).parseComponentValues()},ne.prototype.parseComponentValue=function(){for(var j=this.consumeToken();31===j.type;)j=this.consumeToken();if(32===j.type)throw new SyntaxError("Error parsing CSS component value, unexpected EOF");this.reconsumeToken(j);var ce=this.consumeComponentValue();do{j=this.consumeToken()}while(31===j.type);if(32===j.type)return ce;throw new SyntaxError("Error parsing CSS component value, multiple values found when expecting only one")},ne.prototype.parseComponentValues=function(){for(var j=[];;){var ce=this.consumeComponentValue();if(32===ce.type)return j;j.push(ce),j.push()}},ne.prototype.consumeComponentValue=function(){var j=this.consumeToken();switch(j.type){case 11:case 28:case 2:return this.consumeSimpleBlock(j.type);case 19:return this.consumeFunction(j)}return j},ne.prototype.consumeSimpleBlock=function(j){for(var ce={type:j,values:[]},ae=this.consumeToken();;){if(32===ae.type||Au(ae,j))return ce;this.reconsumeToken(ae),ce.values.push(this.consumeComponentValue()),ae=this.consumeToken()}},ne.prototype.consumeFunction=function(j){for(var ce={name:j.value,values:[],type:18};;){var ae=this.consumeToken();if(32===ae.type||3===ae.type)return ce;this.reconsumeToken(ae),ce.values.push(this.consumeComponentValue())}},ne.prototype.consumeToken=function(){var j=this._tokens.shift();return typeof j>"u"?p1:j},ne.prototype.reconsumeToken=function(j){this._tokens.unshift(j)},ne}(),xi=function(ne){return 15===ne.type},Dd=function(ne){return 17===ne.type},pi=function(ne){return 20===ne.type},bh=function(ne){return 0===ne.type},Ac=function(ne,j){return pi(ne)&&ne.value===j},Cp=function(ne){return 31!==ne.type},$d=function(ne){return 31!==ne.type&&4!==ne.type},pd=function(ne){var j=[],ce=[];return ne.forEach(function(ae){if(4===ae.type){if(0===ce.length)throw new Error("Error parsing function args, zero tokens for arg");return j.push(ce),void(ce=[])}31!==ae.type&&ce.push(ae)}),ce.length&&j.push(ce),j},Au=function(ne,j){return 11===j&&12===ne.type||28===j&&29===ne.type||2===j&&3===ne.type},nl=function(ne){return 17===ne.type||15===ne.type},cl=function(ne){return 16===ne.type||nl(ne)},G0=function(ne){return ne.length>1?[ne[0],ne[1]]:[ne[0]]},Xl={type:17,number:0,flags:4},Gf={type:16,number:50,flags:4},md={type:16,number:100,flags:4},wm=function(ne,j,ce){var ae=ne[0],Ue=ne[1];return[ha(ae,j),ha(typeof Ue<"u"?Ue:ae,ce)]},ha=function(ne,j){if(16===ne.type)return ne.number/100*j;if(xi(ne))switch(ne.unit){case"rem":case"em":return 16*ne.number;default:return ne.number}return ne.number},ku_parse=function(ne,j){if(15===j.type)switch(j.unit){case"deg":return Math.PI*j.number/180;case"grad":return Math.PI/200*j.number;case"rad":return j.number;case"turn":return 2*Math.PI*j.number}throw new Error("Unsupported angle type")},m1=function(ne){return 15===ne.type&&("deg"===ne.unit||"grad"===ne.unit||"rad"===ne.unit||"turn"===ne.unit)},Yh=function(ne){switch(ne.filter(pi).map(function(ce){return ce.value}).join(" ")){case"to bottom right":case"to right bottom":case"left top":case"top left":return[Xl,Xl];case"to top":case"bottom":return gu(0);case"to bottom left":case"to left bottom":case"right top":case"top right":return[Xl,md];case"to right":case"left":return gu(90);case"to top left":case"to left top":case"right bottom":case"bottom right":return[md,md];case"to bottom":case"top":return gu(180);case"to top right":case"to right top":case"left bottom":case"bottom left":return[md,Xl];case"to left":case"right":return gu(270)}return 0},gu=function(ne){return Math.PI*ne/180},Yl_parse=function(ne,j){if(18===j.type){var ce=zo[j.name];if(typeof ce>"u")throw new Error('Attempting to parse an unsupported color function "'+j.name+'"');return ce(ne,j.values)}if(5===j.type){if(3===j.value.length){var ae=j.value.substring(0,1),Ue=j.value.substring(1,2),dt=j.value.substring(2,3);return Kl(parseInt(ae+ae,16),parseInt(Ue+Ue,16),parseInt(dt+dt,16),1)}if(4===j.value.length){ae=j.value.substring(0,1),Ue=j.value.substring(1,2),dt=j.value.substring(2,3);var Bt=j.value.substring(3,4);return Kl(parseInt(ae+ae,16),parseInt(Ue+Ue,16),parseInt(dt+dt,16),parseInt(Bt+Bt,16)/255)}if(6===j.value.length)return ae=j.value.substring(0,2),Ue=j.value.substring(2,4),dt=j.value.substring(4,6),Kl(parseInt(ae,16),parseInt(Ue,16),parseInt(dt,16),1);if(8===j.value.length)return ae=j.value.substring(0,2),Ue=j.value.substring(2,4),dt=j.value.substring(4,6),Bt=j.value.substring(6,8),Kl(parseInt(ae,16),parseInt(Ue,16),parseInt(dt,16),parseInt(Bt,16)/255)}if(20===j.type){var an=Wc[j.value.toUpperCase()];if(typeof an<"u")return an}return Wc.TRANSPARENT},Xd=function(ne){return!(255&ne)},vl=function(ne){var j=255&ne,ce=255&ne>>8,ae=255&ne>>16,Ue=255&ne>>24;return j<255?"rgba("+Ue+","+ae+","+ce+","+j/255+")":"rgb("+Ue+","+ae+","+ce+")"},Kl=function(ne,j,ce,ae){return(ne<<24|j<<16|ce<<8|Math.round(255*ae))>>>0},ko=function(ne,j){if(17===ne.type)return ne.number;if(16===ne.type){var ce=3===j?1:255;return 3===j?ne.number/100*ce:Math.round(ne.number/100*ce)}return 0},xh=function(ne,j){var ce=j.filter($d);if(3===ce.length){var ae=ce.map(ko);return Kl(ae[0],ae[1],ae[2],1)}if(4===ce.length){var an=ce.map(ko);return Kl(an[0],an[1],an[2],an[3])}return 0};function za(ne,j,ce){return ce<0&&(ce+=1),ce>=1&&(ce-=1),ce<1/6?(j-ne)*ce*6+ne:ce<.5?j:ce<2/3?6*(j-ne)*(2/3-ce)+ne:ne}var Ui=function(ne,j){var ce=j.filter($d),ae=ce[0],Ue=ce[1],dt=ce[2],Bt=ce[3],an=(17===ae.type?gu(ae.number):ku_parse(ne,ae))/(2*Math.PI),on=cl(Ue)?Ue.number/100:0,Wn=cl(dt)?dt.number/100:0,Zn=typeof Bt<"u"&&cl(Bt)?ha(Bt,1):1;if(0===on)return Kl(255*Wn,255*Wn,255*Wn,1);var ri=Wn<=.5?Wn*(on+1):Wn+on-Wn*on,Xi=2*Wn-ri,Ss=za(Xi,ri,an+1/3),Ur=za(Xi,ri,an),zr=za(Xi,ri,an-1/3);return Kl(255*Ss,255*Ur,255*zr,Zn)},zo={hsl:Ui,hsla:Ui,rgb:xh,rgba:xh},eh=function(ne,j){return Yl_parse(ne,V0.create(j).parseComponentValue())},Wc={ALICEBLUE:4042850303,ANTIQUEWHITE:4209760255,AQUA:16777215,AQUAMARINE:2147472639,AZURE:4043309055,BEIGE:4126530815,BISQUE:4293182719,BLACK:255,BLANCHEDALMOND:4293643775,BLUE:65535,BLUEVIOLET:2318131967,BROWN:2771004159,BURLYWOOD:3736635391,CADETBLUE:1604231423,CHARTREUSE:2147418367,CHOCOLATE:3530104575,CORAL:4286533887,CORNFLOWERBLUE:1687547391,CORNSILK:4294499583,CRIMSON:3692313855,CYAN:16777215,DARKBLUE:35839,DARKCYAN:9145343,DARKGOLDENROD:3095837695,DARKGRAY:2846468607,DARKGREEN:6553855,DARKGREY:2846468607,DARKKHAKI:3182914559,DARKMAGENTA:2332068863,DARKOLIVEGREEN:1433087999,DARKORANGE:4287365375,DARKORCHID:2570243327,DARKRED:2332033279,DARKSALMON:3918953215,DARKSEAGREEN:2411499519,DARKSLATEBLUE:1211993087,DARKSLATEGRAY:793726975,DARKSLATEGREY:793726975,DARKTURQUOISE:13554175,DARKVIOLET:2483082239,DEEPPINK:4279538687,DEEPSKYBLUE:12582911,DIMGRAY:1768516095,DIMGREY:1768516095,DODGERBLUE:512819199,FIREBRICK:2988581631,FLORALWHITE:4294635775,FORESTGREEN:579543807,FUCHSIA:4278255615,GAINSBORO:3705462015,GHOSTWHITE:4177068031,GOLD:4292280575,GOLDENROD:3668254975,GRAY:2155905279,GREEN:8388863,GREENYELLOW:2919182335,GREY:2155905279,HONEYDEW:4043305215,HOTPINK:4285117695,INDIANRED:3445382399,INDIGO:1258324735,IVORY:4294963455,KHAKI:4041641215,LAVENDER:3873897215,LAVENDERBLUSH:4293981695,LAWNGREEN:2096890111,LEMONCHIFFON:4294626815,LIGHTBLUE:2916673279,LIGHTCORAL:4034953471,LIGHTCYAN:3774873599,LIGHTGOLDENRODYELLOW:4210742015,LIGHTGRAY:3553874943,LIGHTGREEN:2431553791,LIGHTGREY:3553874943,LIGHTPINK:4290167295,LIGHTSALMON:4288707327,LIGHTSEAGREEN:548580095,LIGHTSKYBLUE:2278488831,LIGHTSLATEGRAY:2005441023,LIGHTSLATEGREY:2005441023,LIGHTSTEELBLUE:2965692159,LIGHTYELLOW:4294959359,LIME:16711935,LIMEGREEN:852308735,LINEN:4210091775,MAGENTA:4278255615,MAROON:2147483903,MEDIUMAQUAMARINE:1724754687,MEDIUMBLUE:52735,MEDIUMORCHID:3126187007,MEDIUMPURPLE:2473647103,MEDIUMSEAGREEN:1018393087,MEDIUMSLATEBLUE:2070474495,MEDIUMSPRINGGREEN:16423679,MEDIUMTURQUOISE:1221709055,MEDIUMVIOLETRED:3340076543,MIDNIGHTBLUE:421097727,MINTCREAM:4127193855,MISTYROSE:4293190143,MOCCASIN:4293178879,NAVAJOWHITE:4292783615,NAVY:33023,OLDLACE:4260751103,OLIVE:2155872511,OLIVEDRAB:1804477439,ORANGE:4289003775,ORANGERED:4282712319,ORCHID:3664828159,PALEGOLDENROD:4008225535,PALEGREEN:2566625535,PALETURQUOISE:2951671551,PALEVIOLETRED:3681588223,PAPAYAWHIP:4293907967,PEACHPUFF:4292524543,PERU:3448061951,PINK:4290825215,PLUM:3718307327,POWDERBLUE:2967529215,PURPLE:2147516671,REBECCAPURPLE:1714657791,RED:4278190335,ROSYBROWN:3163525119,ROYALBLUE:1097458175,SADDLEBROWN:2336560127,SALMON:4202722047,SANDYBROWN:4104413439,SEAGREEN:780883967,SEASHELL:4294307583,SIENNA:2689740287,SILVER:3233857791,SKYBLUE:2278484991,SLATEBLUE:1784335871,SLATEGRAY:1887473919,SLATEGREY:1887473919,SNOW:4294638335,SPRINGGREEN:16744447,STEELBLUE:1182971135,TAN:3535047935,TEAL:8421631,THISTLE:3636451583,TOMATO:4284696575,TRANSPARENT:0,TURQUOISE:1088475391,VIOLET:4001558271,WHEAT:4125012991,WHITE:4294967295,WHITESMOKE:4126537215,YELLOW:4294902015,YELLOWGREEN:2597139199},Tg={name:"background-clip",initialValue:"border-box",prefix:!1,type:1,parse:function(ne,j){return j.map(function(ce){if(pi(ce))switch(ce.value){case"padding-box":return 1;case"content-box":return 2}return 0})}},Ad={name:"background-color",initialValue:"transparent",prefix:!1,type:3,format:"color"},mi=function(ne,j){var ce=Yl_parse(ne,j[0]),ae=j[1];return ae&&cl(ae)?{color:ce,stop:ae}:{color:ce,stop:null}},Dg=function(ne,j){var ce=ne[0],ae=ne[ne.length-1];null===ce.stop&&(ce.stop=Xl),null===ae.stop&&(ae.stop=md);for(var Ue=[],dt=0,Bt=0;Btdt?on:dt),dt=on}else Ue.push(null)}var Wn=null;for(Bt=0;BtBt.optimumDistance)?{optimumCorner:an,optimumDistance:Zn}:Bt},{optimumDistance:Ue?1/0:-1/0,optimumCorner:null}).optimumCorner},Ya=function(ne,j){var ce=gu(180),ae=[];return pd(j).forEach(function(Ue,dt){if(0===dt){var Bt=Ue[0];if(20===Bt.type&&-1!==["top","left","right","bottom"].indexOf(Bt.value))return void(ce=Yh(Ue));if(m1(Bt))return void(ce=(ku_parse(ne,Bt)+gu(270))%gu(360))}var an=mi(ne,Ue);ae.push(an)}),{angle:ce,stops:ae,type:1}},Bg="closest-side",Wf="farthest-side",yu="closest-corner",lv="farthest-corner",$f="ellipse",vu="contain",vA=function(ne,j){var ce=0,ae=3,Ue=[],dt=[];return pd(j).forEach(function(Bt,an){var on=!0;if(0===an?on=Bt.reduce(function(Zn,ri){if(pi(ri))switch(ri.value){case"center":return dt.push(Gf),!1;case"top":case"left":return dt.push(Xl),!1;case"right":case"bottom":return dt.push(md),!1}else if(cl(ri)||nl(ri))return dt.push(ri),!1;return Zn},on):1===an&&(on=Bt.reduce(function(Zn,ri){if(pi(ri))switch(ri.value){case"circle":return ce=0,!1;case $f:return ce=1,!1;case vu:case Bg:return ae=0,!1;case Wf:return ae=1,!1;case yu:return ae=2,!1;case"cover":case lv:return ae=3,!1}else if(nl(ri)||cl(ri))return Array.isArray(ae)||(ae=[]),ae.push(ri),!1;return Zn},on)),on){var Wn=mi(ne,Bt);Ue.push(Wn)}}),{size:ae,shape:ce,stops:Ue,position:dt,type:2}},th_parse=function(ne,j){if(22===j.type){var ce={url:j.value,type:0};return ne.cache.addImage(j.value),ce}if(18===j.type){var ae=Pg[j.name];if(typeof ae>"u")throw new Error('Attempting to parse an unsupported image function "'+j.name+'"');return ae(ne,j.values)}throw new Error("Unsupported image type "+j.type)};for(var Pg={"linear-gradient":function(ne,j){var ce=gu(180),ae=[];return pd(j).forEach(function(Ue,dt){if(0===dt){var Bt=Ue[0];if(20===Bt.type&&"to"===Bt.value)return void(ce=Yh(Ue));if(m1(Bt))return void(ce=ku_parse(ne,Bt))}var an=mi(ne,Ue);ae.push(an)}),{angle:ce,stops:ae,type:1}},"-moz-linear-gradient":Ya,"-ms-linear-gradient":Ya,"-o-linear-gradient":Ya,"-webkit-linear-gradient":Ya,"radial-gradient":function(ne,j){var ce=0,ae=3,Ue=[],dt=[];return pd(j).forEach(function(Bt,an){var on=!0;if(0===an){var Wn=!1;on=Bt.reduce(function(ri,Xi){if(Wn)if(pi(Xi))switch(Xi.value){case"center":return dt.push(Gf),ri;case"top":case"left":return dt.push(Xl),ri;case"right":case"bottom":return dt.push(md),ri}else(cl(Xi)||nl(Xi))&&dt.push(Xi);else if(pi(Xi))switch(Xi.value){case"circle":return ce=0,!1;case $f:return ce=1,!1;case"at":return Wn=!0,!1;case Bg:return ae=0,!1;case"cover":case Wf:return ae=1,!1;case vu:case yu:return ae=2,!1;case lv:return ae=3,!1}else if(nl(Xi)||cl(Xi))return Array.isArray(ae)||(ae=[]),ae.push(Xi),!1;return ri},on)}if(on){var Zn=mi(ne,Bt);Ue.push(Zn)}}),{size:ae,shape:ce,stops:Ue,position:dt,type:2}},"-moz-radial-gradient":vA,"-ms-radial-gradient":vA,"-o-radial-gradient":vA,"-webkit-radial-gradient":vA,"-webkit-gradient":function(ne,j){var ce=gu(180),ae=[],Ue=1;return pd(j).forEach(function(on,Wn){var Zn=on[0];if(0===Wn){if(pi(Zn)&&"linear"===Zn.value)return void(Ue=1);if(pi(Zn)&&"radial"===Zn.value)return void(Ue=2)}if(18===Zn.type)if("from"===Zn.name){var ri=Yl_parse(ne,Zn.values[0]);ae.push({stop:Xl,color:ri})}else if("to"===Zn.name)ri=Yl_parse(ne,Zn.values[0]),ae.push({stop:md,color:ri});else if("color-stop"===Zn.name){var Xi=Zn.values.filter($d);if(2===Xi.length){ri=Yl_parse(ne,Xi[1]);var Ss=Xi[0];Dd(Ss)&&ae.push({stop:{type:16,number:100*Ss.number,flags:Ss.flags},color:ri})}}}),1===Ue?{angle:(ce+gu(180))%gu(360),stops:ae,type:Ue}:{size:3,shape:0,stops:ae,position:[],type:Ue}}},Os={name:"background-image",initialValue:"none",type:1,prefix:!1,parse:function(ne,j){if(0===j.length)return[];var ce=j[0];return 20===ce.type&&"none"===ce.value?[]:j.filter(function(ae){return $d(ae)&&function rs(ne){return!(20===ne.type&&"none"===ne.value||18===ne.type&&!Pg[ne.name])}(ae)}).map(function(ae){return th_parse(ne,ae)})}},vo={name:"background-origin",initialValue:"border-box",prefix:!1,type:1,parse:function(ne,j){return j.map(function(ce){if(pi(ce))switch(ce.value){case"padding-box":return 1;case"content-box":return 2}return 0})}},Ou={name:"background-position",initialValue:"0% 0%",type:1,prefix:!1,parse:function(ne,j){return pd(j).map(function(ce){return ce.filter(cl)}).map(G0)}},Ft={name:"background-repeat",initialValue:"repeat",prefix:!1,type:1,parse:function(ne,j){return pd(j).map(function(ce){return ce.filter(pi).map(function(ae){return ae.value}).join(" ")}).map(Ic)}},Ic=function(ne){switch(ne){case"no-repeat":return 1;case"repeat-x":case"repeat no-repeat":return 2;case"repeat-y":case"no-repeat repeat":return 3;default:return 0}},Wo=function(ne){return ne.AUTO="auto",ne.CONTAIN="contain",ne.COVER="cover",ne}(Wo||{}),rl={name:"background-size",initialValue:"0",prefix:!1,type:1,parse:function(ne,j){return pd(j).map(function(ce){return ce.filter(bl)})}},bl=function(ne){return pi(ne)||cl(ne)},Sl=function(ne){return{name:"border-"+ne+"-color",initialValue:"transparent",prefix:!1,type:3,format:"color"}},Bc=Sl("top"),Sp=Sl("right"),Ep=Sl("bottom"),_c=Sl("left"),Pc=function(ne){return{name:"border-radius-"+ne,initialValue:"0 0",prefix:!1,type:1,parse:function(j,ce){return G0(ce.filter(cl))}}},Zh=Pc("top-left"),Lu=Pc("top-right"),Mm=Pc("bottom-right"),Tp=Pc("bottom-left"),Dp=function(ne){return{name:"border-"+ne+"-style",initialValue:"solid",prefix:!1,type:2,parse:function(j,ce){switch(ce){case"none":return 0;case"dashed":return 2;case"dotted":return 3;case"double":return 4}return 1}}},Nu=Dp("top"),g1=Dp("right"),Q0=Dp("bottom"),bA=Dp("left"),Jh=function(ne){return{name:"border-"+ne+"-width",initialValue:"0",type:0,prefix:!1,parse:function(j,ce){return xi(ce)?ce.number:0}}},Yd=Jh("top"),Rg=Jh("right"),Ip=Jh("bottom"),cv=Jh("left"),nh={name:"color",initialValue:"transparent",prefix:!1,type:3,format:"color"},yc={name:"direction",initialValue:"ltr",prefix:!1,type:2,parse:function(ne,j){return"rtl"===j?1:0}},kg={name:"display",initialValue:"inline-block",prefix:!1,type:1,parse:function(ne,j){return j.filter(pi).reduce(function(ce,ae){return ce|ef(ae.value)},0)}},ef=function(ne){switch(ne){case"block":case"-webkit-box":return 2;case"inline":return 4;case"run-in":return 8;case"flow":return 16;case"flow-root":return 32;case"table":return 64;case"flex":case"-webkit-flex":return 128;case"grid":case"-ms-grid":return 256;case"ruby":return 512;case"subgrid":return 1024;case"list-item":return 2048;case"table-row-group":return 4096;case"table-header-group":return 8192;case"table-footer-group":return 16384;case"table-row":return 32768;case"table-cell":return 65536;case"table-column-group":return 131072;case"table-column":return 262144;case"table-caption":return 524288;case"ruby-base":return 1048576;case"ruby-text":return 2097152;case"ruby-base-container":return 4194304;case"ruby-text-container":return 8388608;case"contents":return 16777216;case"inline-block":return 33554432;case"inline-list-item":return 67108864;case"inline-table":return 134217728;case"inline-flex":return 268435456;case"inline-grid":return 536870912}return 0},bo={name:"float",initialValue:"none",prefix:!1,type:2,parse:function(ne,j){switch(j){case"left":return 1;case"right":return 2;case"inline-start":return 3;case"inline-end":return 4}return 0}},Rc={name:"letter-spacing",initialValue:"0",prefix:!1,type:0,parse:function(ne,j){return 20===j.type&&"normal"===j.value?0:17===j.type||15===j.type?j.number:0}},jc=function(ne){return ne.NORMAL="normal",ne.STRICT="strict",ne}(jc||{}),Fg={name:"line-break",initialValue:"normal",prefix:!1,type:2,parse:function(ne,j){return"strict"===j?jc.STRICT:jc.NORMAL}},Sm={name:"line-height",initialValue:"normal",prefix:!1,type:4},ih=function(ne,j){return pi(ne)&&"normal"===ne.value?1.2*j:17===ne.type?j*ne.number:cl(ne)?ha(ne,j):j},Em={name:"list-style-image",initialValue:"none",type:0,prefix:!1,parse:function(ne,j){return 20===j.type&&"none"===j.value?null:th_parse(ne,j)}},vc={name:"list-style-position",initialValue:"outside",prefix:!1,type:2,parse:function(ne,j){return"inside"===j?0:1}},xA={name:"list-style-type",initialValue:"none",prefix:!1,type:2,parse:function(ne,j){switch(j){case"disc":return 0;case"circle":return 1;case"square":return 2;case"decimal":return 3;case"cjk-decimal":return 4;case"decimal-leading-zero":return 5;case"lower-roman":return 6;case"upper-roman":return 7;case"lower-greek":return 8;case"lower-alpha":return 9;case"upper-alpha":return 10;case"arabic-indic":return 11;case"armenian":return 12;case"bengali":return 13;case"cambodian":return 14;case"cjk-earthly-branch":return 15;case"cjk-heavenly-stem":return 16;case"cjk-ideographic":return 17;case"devanagari":return 18;case"ethiopic-numeric":return 19;case"georgian":return 20;case"gujarati":return 21;case"gurmukhi":case"hebrew":return 22;case"hiragana":return 23;case"hiragana-iroha":return 24;case"japanese-formal":return 25;case"japanese-informal":return 26;case"kannada":return 27;case"katakana":return 28;case"katakana-iroha":return 29;case"khmer":return 30;case"korean-hangul-formal":return 31;case"korean-hanja-formal":return 32;case"korean-hanja-informal":return 33;case"lao":return 34;case"lower-armenian":return 35;case"malayalam":return 36;case"mongolian":return 37;case"myanmar":return 38;case"oriya":return 39;case"persian":return 40;case"simp-chinese-formal":return 41;case"simp-chinese-informal":return 42;case"tamil":return 43;case"telugu":return 44;case"thai":return 45;case"tibetan":return 46;case"trad-chinese-formal":return 47;case"trad-chinese-informal":return 48;case"upper-armenian":return 49;case"disclosure-open":return 50;case"disclosure-closed":return 51;default:return-1}}},Bp=function(ne){return{name:"margin-"+ne,initialValue:"0",prefix:!1,type:4}},tf=Bp("top"),W0=Bp("right"),El=Bp("bottom"),Pp=Bp("left"),j0={name:"overflow",initialValue:"visible",prefix:!1,type:1,parse:function(ne,j){return j.filter(pi).map(function(ce){switch(ce.value){case"hidden":return 1;case"scroll":return 2;case"clip":return 3;case"auto":return 4;default:return 0}})}},wA={name:"overflow-wrap",initialValue:"normal",prefix:!1,type:2,parse:function(ne,j){return"break-word"===j?"break-word":"normal"}},Nl=function(ne){return{name:"padding-"+ne,initialValue:"0",prefix:!1,type:3,format:"length-percentage"}},Rp=Nl("top"),sa=Nl("right"),Id=Nl("bottom"),_1=Nl("left"),Og={name:"text-align",initialValue:"left",prefix:!1,type:2,parse:function(ne,j){switch(j){case"right":return 2;case"center":case"justify":return 1;default:return 0}}},kx={name:"position",initialValue:"static",prefix:!1,type:2,parse:function(ne,j){switch(j){case"relative":return 1;case"absolute":return 2;case"fixed":return 3;case"sticky":return 4}return 0}},y1={name:"text-shadow",initialValue:"none",type:1,prefix:!1,parse:function(ne,j){return 1===j.length&&Ac(j[0],"none")?[]:pd(j).map(function(ce){for(var ae={color:Wc.TRANSPARENT,offsetX:Xl,offsetY:Xl,blur:Xl},Ue=0,dt=0;dt"u")throw new Error('Attempting to parse an unsupported transform function "'+j.name+'"');return ce(j.values)}return null}},MA={matrix:function(ne){var j=ne.filter(function(ce){return 17===ce.type}).map(function(ce){return ce.number});return 6===j.length?j:null},matrix3d:function(ne){var j=ne.filter(function(on){return 17===on.type}).map(function(on){return on.number});return 16===j.length?[j[0],j[1],j[4],j[5],j[12],j[13]]:null}},rh={type:16,number:50,flags:4},Tl=[rh,rh],Gr={name:"transform-origin",initialValue:"50% 50%",prefix:!0,type:1,parse:function(ne,j){var ce=j.filter(cl);return 2!==ce.length?Tl:[ce[0],ce[1]]}},so={name:"visible",initialValue:"none",prefix:!1,type:2,parse:function(ne,j){switch(j){case"hidden":return 1;case"collapse":return 2;default:return 0}}},pl=function(ne){return ne.NORMAL="normal",ne.BREAK_ALL="break-all",ne.KEEP_ALL="keep-all",ne}(pl||{}),Kd={name:"word-break",initialValue:"normal",prefix:!1,type:2,parse:function(ne,j){switch(j){case"break-all":return pl.BREAK_ALL;case"keep-all":return pl.KEEP_ALL;default:return pl.NORMAL}}},oc={name:"z-index",initialValue:"auto",prefix:!1,type:0,parse:function(ne,j){if(20===j.type)return{auto:!0,order:0};if(Dd(j))return{auto:!1,order:j.number};throw new Error("Invalid z-index number parsed")}},Ul={name:"time",parse:function(ne,j){if(15===j.type)switch(j.unit.toLowerCase()){case"s":return 1e3*j.number;case"ms":return j.number}throw new Error("Unsupported time type")}},nf={name:"opacity",initialValue:"1",type:0,prefix:!1,parse:function(ne,j){return Dd(j)?j.number:1}},Ka={name:"text-decoration-color",initialValue:"transparent",prefix:!1,type:3,format:"color"},$c={name:"text-decoration-line",initialValue:"none",prefix:!1,type:1,parse:function(ne,j){return j.filter(pi).map(function(ce){switch(ce.value){case"underline":return 1;case"overline":return 2;case"line-through":return 3;case"none":return 4}return 0}).filter(function(ce){return 0!==ce})}},Uu={name:"font-family",initialValue:"",prefix:!1,type:1,parse:function(ne,j){var ce=[],ae=[];return j.forEach(function(Ue){switch(Ue.type){case 20:case 0:ce.push(Ue.value);break;case 17:ce.push(Ue.number.toString());break;case 4:ae.push(ce.join(" ")),ce.length=0}}),ce.length&&ae.push(ce.join(" ")),ae.map(function(Ue){return-1===Ue.indexOf(" ")?Ue:"'"+Ue+"'"})}},Mo={name:"font-size",initialValue:"0",prefix:!1,type:3,format:"length"},kp={name:"font-weight",initialValue:"normal",type:0,prefix:!1,parse:function(ne,j){return Dd(j)?j.number:pi(j)&&"bold"===j.value?700:400}},$0={name:"font-variant",initialValue:"none",type:1,prefix:!1,parse:function(ne,j){return j.filter(pi).map(function(ce){return ce.value})}},rf={name:"font-style",initialValue:"normal",prefix:!1,type:2,parse:function(ne,j){switch(j){case"oblique":return"oblique";case"italic":return"italic";default:return"normal"}}},Yo=function(ne,j){return!!(ne&j)},Rl={name:"content",initialValue:"none",type:1,prefix:!1,parse:function(ne,j){if(0===j.length)return[];var ce=j[0];return 20===ce.type&&"none"===ce.value?[]:j}},Tm={name:"counter-increment",initialValue:"none",prefix:!0,type:1,parse:function(ne,j){if(0===j.length)return null;var ce=j[0];if(20===ce.type&&"none"===ce.value)return null;for(var ae=[],Ue=j.filter(Cp),dt=0;dt1?1:0],this.overflowWrap=cs(j,wA,ce.overflowWrap),this.paddingTop=cs(j,Rp,ce.paddingTop),this.paddingRight=cs(j,sa,ce.paddingRight),this.paddingBottom=cs(j,Id,ce.paddingBottom),this.paddingLeft=cs(j,_1,ce.paddingLeft),this.paintOrder=cs(j,Dl,ce.paintOrder),this.position=cs(j,kx,ce.position),this.textAlign=cs(j,Og,ce.textAlign),this.textDecorationColor=cs(j,Ka,null!==(ae=ce.textDecorationColor)&&void 0!==ae?ae:ce.color),this.textDecorationLine=cs(j,$c,null!==(Ue=ce.textDecorationLine)&&void 0!==Ue?Ue:ce.textDecoration),this.textShadow=cs(j,y1,ce.textShadow),this.textTransform=cs(j,Lg,ce.textTransform),this.transform=cs(j,CA,ce.transform),this.transformOrigin=cs(j,Gr,ce.transformOrigin),this.visibility=cs(j,so,ce.visibility),this.webkitTextStrokeColor=cs(j,Cs,ce.webkitTextStrokeColor),this.webkitTextStrokeWidth=cs(j,Ch,ce.webkitTextStrokeWidth),this.wordBreak=cs(j,Kd,ce.wordBreak),this.zIndex=cs(j,oc,ce.zIndex)}return ne.prototype.isVisible=function(){return this.display>0&&this.opacity>0&&0===this.visibility},ne.prototype.isTransparent=function(){return Xd(this.backgroundColor)},ne.prototype.isTransformed=function(){return null!==this.transform},ne.prototype.isPositioned=function(){return 0!==this.position},ne.prototype.isPositionedWithZIndex=function(){return this.isPositioned()&&!this.zIndex.auto},ne.prototype.isFloating=function(){return 0!==this.float},ne.prototype.isInlineLevel=function(){return Yo(this.display,4)||Yo(this.display,33554432)||Yo(this.display,268435456)||Yo(this.display,536870912)||Yo(this.display,67108864)||Yo(this.display,134217728)},ne}(),sh=function(){return function ne(j,ce){this.content=cs(j,Rl,ce.content),this.quotes=cs(j,Op,ce.quotes)}}(),kc=function(){return function ne(j,ce){this.counterIncrement=cs(j,Tm,ce.counterIncrement),this.counterReset=cs(j,bc,ce.counterReset)}}(),cs=function(ne,j,ce){var ae=new Vf,Ue=null!==ce&&typeof ce<"u"?ce.toString():j.initialValue;ae.write(Ue);var dt=new V0(ae.read());switch(j.type){case 2:var Bt=dt.parseComponentValue();return j.parse(ne,pi(Bt)?Bt.value:j.initialValue);case 0:return j.parse(ne,dt.parseComponentValue());case 1:return j.parse(ne,dt.parseComponentValues());case 4:return dt.parseComponentValue();case 3:switch(j.format){case"angle":return ku_parse(ne,dt.parseComponentValue());case"color":return Yl_parse(ne,dt.parseComponentValue());case"image":return th_parse(ne,dt.parseComponentValue());case"length":var an=dt.parseComponentValue();return nl(an)?an:Xl;case"length-percentage":var on=dt.parseComponentValue();return cl(on)?on:Xl;case"time":return Ul.parse(ne,dt.parseComponentValue())}}},Fc=function(ne,j){var ce=function(ne){switch(ne.getAttribute("data-html2canvas-debug")){case"all":return 1;case"clone":return 2;case"parse":return 3;case"render":return 4;default:return 0}}(ne);return 1===ce||j===ce},dl=function(){return function ne(j,ce){this.context=j,this.textNodes=[],this.elements=[],this.flags=0,Fc(ce,3),this.styles=new sf(j,window.getComputedStyle(ce,null)),t_(ce)&&(this.styles.animationDuration.some(function(ae){return ae>0})&&(ce.style.animationDuration="0s"),null!==this.styles.transform&&(ce.style.transform="none")),this.bounds=ot(this.context,ce),Fc(ce,4)&&(this.flags|=16)}}(),af="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",zl=typeof Uint8Array>"u"?[]:new Uint8Array(256),Hl=0;Hl<64;Hl++)zl[af.charCodeAt(Hl)]=Hl;for(var lc=function(ne,j,ce){return ne.slice?ne.slice(j,ce):new Uint16Array(Array.prototype.slice.call(ne,j,ce))},Zd=function(){function ne(j,ce,ae,Ue,dt,Bt){this.initialValue=j,this.errorValue=ce,this.highStart=ae,this.highValueIndex=Ue,this.index=dt,this.data=Bt}return ne.prototype.get=function(j){var ce;if(j>=0){if(j<55296||j>56319&&j<=65535)return this.data[ce=((ce=this.index[j>>5])<<2)+(31&j)];if(j<=65535)return this.data[ce=((ce=this.index[2048+(j-55296>>5)])<<2)+(31&j)];if(j>11)],this.data[ce=((ce=this.index[ce+=j>>5&63])<<2)+(31&j)];if(j<=1114111)return this.data[this.highValueIndex]}return this.errorValue},ne}(),Im="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",b1=typeof Uint8Array>"u"?[]:new Uint8Array(256),Sh=0;Sh<64;Sh++)b1[Im.charCodeAt(Sh)]=Sh;var uf=8,Bm=9,Zf=11,Jf=12,uv=function(){for(var ne=[],j=0;j>10),Bt%1024+56320),(Ue+1===ce||ae.length>16384)&&(dt+=String.fromCharCode.apply(String,ae),ae.length=0)}return dt},Pm=function(ne,j){var ce=function(ne){var ae,dt,Bt,an,on,j=.75*ne.length,ce=ne.length,Ue=0;"="===ne[ne.length-1]&&(j--,"="===ne[ne.length-2]&&j--);var Wn=typeof ArrayBuffer<"u"&&typeof Uint8Array<"u"&&typeof Uint8Array.prototype.slice<"u"?new ArrayBuffer(j):new Array(j),Zn=Array.isArray(Wn)?Wn:new Uint8Array(Wn);for(ae=0;ae>4,Zn[Ue++]=(15&Bt)<<4|an>>2,Zn[Ue++]=(3&an)<<6|63&on;return Wn}(ne),ae=Array.isArray(ce)?function(ne){for(var j=ne.length,ce=[],ae=0;ae=55296&&Ue<=56319&&ce=ce)return{done:!0,value:null};for(var Bt="\xd7";aeBt.x||Zn.y>Bt.y;return Bt=Zn,0===Wn||ri});return ne.body.removeChild(j),an}(document);return Object.defineProperty(Oc,"SUPPORT_WORD_BREAKING",{value:ne}),ne},get SUPPORT_SVG_DRAWING(){var ne=function(ne){var j=new Image,ce=ne.createElement("canvas"),ae=ce.getContext("2d");if(!ae)return!1;j.src="data:image/svg+xml,";try{ae.drawImage(j,0,0),ce.toDataURL()}catch{return!1}return!0}(document);return Object.defineProperty(Oc,"SUPPORT_SVG_DRAWING",{value:ne}),ne},get SUPPORT_FOREIGNOBJECT_DRAWING(){var ne="function"==typeof Array.from&&"function"==typeof window.fetch?function(ne){var j=ne.createElement("canvas"),ce=100;j.width=ce,j.height=ce;var ae=j.getContext("2d");if(!ae)return Promise.reject(!1);ae.fillStyle="rgb(0, 255, 0)",ae.fillRect(0,0,ce,ce);var Ue=new Image,dt=j.toDataURL();Ue.src=dt;var Bt=K0(ce,ce,0,0,Ue);return ae.fillStyle="red",ae.fillRect(0,0,ce,ce),Z0(Bt).then(function(an){ae.drawImage(an,0,0);var on=ae.getImageData(0,0,ce,ce).data;ae.fillStyle="red",ae.fillRect(0,0,ce,ce);var Wn=ne.createElement("div");return Wn.style.backgroundImage="url("+dt+")",Wn.style.height="100px",Hu(on)?Z0(K0(ce,ce,0,0,Wn)):Promise.reject(!1)}).then(function(an){return ae.drawImage(an,0,0),Hu(ae.getImageData(0,0,ce,ce).data)}).catch(function(){return!1})}(document):Promise.resolve(!1);return Object.defineProperty(Oc,"SUPPORT_FOREIGNOBJECT_DRAWING",{value:ne}),ne},get SUPPORT_CORS_IMAGES(){var ne=typeof(new Image).crossOrigin<"u";return Object.defineProperty(Oc,"SUPPORT_CORS_IMAGES",{value:ne}),ne},get SUPPORT_RESPONSE_TYPE(){var ne="string"==typeof(new XMLHttpRequest).responseType;return Object.defineProperty(Oc,"SUPPORT_RESPONSE_TYPE",{value:ne}),ne},get SUPPORT_CORS_XHR(){var ne="withCredentials"in new XMLHttpRequest;return Object.defineProperty(Oc,"SUPPORT_CORS_XHR",{value:ne}),ne},get SUPPORT_NATIVE_TEXT_SEGMENTATION(){var ne=!!(typeof Intl<"u"&&Intl.Segmenter);return Object.defineProperty(Oc,"SUPPORT_NATIVE_TEXT_SEGMENTATION",{value:ne}),ne}},pf=function(){return function ne(j,ce){this.text=j,this.bounds=ce}}(),tp=function(ne,j){var ce=j.ownerDocument;if(ce){var ae=ce.createElement("html2canvaswrapper");ae.appendChild(j.cloneNode(!0));var Ue=j.parentNode;if(Ue){Ue.replaceChild(ae,j);var dt=ot(ne,ae);return ae.firstChild&&Ue.replaceChild(ae.firstChild,ae),dt}}return ke.EMPTY},Hg=function(ne,j,ce){var ae=ne.ownerDocument;if(!ae)throw new Error("Node has no owner document");var Ue=ae.createRange();return Ue.setStart(ne,j),Ue.setEnd(ne,j+ce),Ue},Th=function(ne){if(Oc.SUPPORT_NATIVE_TEXT_SEGMENTATION){var j=new Intl.Segmenter(void 0,{granularity:"grapheme"});return Array.from(j.segment(ne)).map(function(ce){return ce.segment})}return function(ne){for(var ae,j=Rm(ne),ce=[];!(ae=j.next()).done;)ae.value&&ce.push(ae.value.slice());return ce}(ne)},w1=function(ne,j){return 0!==j.letterSpacing?Th(ne):function(ne,j){if(Oc.SUPPORT_NATIVE_TEXT_SEGMENTATION){var ce=new Intl.Segmenter(void 0,{granularity:"word"});return Array.from(ce.segment(ne)).map(function(ae){return ae.segment})}return ja(ne,j)}(ne,j)},Fx=[32,160,4961,65792,65793,4153,4241],ja=function(ne,j){for(var Ue,ce=function(ne,j){var ce=Ze(ne),ae=_e(ce,j),Ue=ae[0],dt=ae[1],Bt=ae[2],an=ce.length,on=0,Wn=0;return{next:function(){if(Wn>=an)return{done:!0,value:null};for(var Zn=cn;Wn0)if(Oc.SUPPORT_RANGE_BOUNDS){var on=Hg(ae,Bt,an.length).getClientRects();if(on.length>1){var Wn=Th(an),Zn=0;Wn.forEach(function(Xi){dt.push(new pf(Xi,ke.fromDOMRectList(ne,Hg(ae,Zn+Bt,Xi.length).getClientRects()))),Zn+=Xi.length})}else dt.push(new pf(an,ke.fromDOMRectList(ne,on)))}else{var ri=ae.splitText(an.length);dt.push(new pf(an,tp(ne,ae))),ae=ri}else Oc.SUPPORT_RANGE_BOUNDS||(ae=ae.splitText(an.length));Bt+=an.length}),dt}(j,this.text,ae,ce)}}(),RA=function(ne,j){switch(j){case 1:return ne.toLowerCase();case 3:return ne.replace(Fm,Om);case 2:return ne.toUpperCase();default:return ne}},Fm=/(^|\s|:|-|\(|\))([a-z])/g,Om=function(ne,j,ce){return ne.length>0?j+ce.toUpperCase():ne},C1=function(ne){function j(ce,ae){var Ue=ne.call(this,ce,ae)||this;return Ue.src=ae.currentSrc||ae.src,Ue.intrinsicWidth=ae.naturalWidth,Ue.intrinsicHeight=ae.naturalHeight,Ue.context.cache.addImage(Ue.src),Ue}return Se(j,ne),j}(dl),M1=function(ne){function j(ce,ae){var Ue=ne.call(this,ce,ae)||this;return Ue.canvas=ae,Ue.intrinsicWidth=ae.width,Ue.intrinsicHeight=ae.height,Ue}return Se(j,ne),j}(dl),S1=function(ne){function j(ce,ae){var Ue=ne.call(this,ce,ae)||this,dt=new XMLSerializer,Bt=ot(ce,ae);return ae.setAttribute("width",Bt.width+"px"),ae.setAttribute("height",Bt.height+"px"),Ue.svg="data:image/svg+xml,"+encodeURIComponent(dt.serializeToString(ae)),Ue.intrinsicWidth=ae.width.baseVal.value,Ue.intrinsicHeight=ae.height.baseVal.value,Ue.context.cache.addImage(Ue.svg),Ue}return Se(j,ne),j}(dl),E1=function(ne){function j(ce,ae){var Ue=ne.call(this,ce,ae)||this;return Ue.value=ae.value,Ue}return Se(j,ne),j}(dl),Vg=function(ne){function j(ce,ae){var Ue=ne.call(this,ce,ae)||this;return Ue.start=ae.start,Ue.reversed="boolean"==typeof ae.reversed&&!0===ae.reversed,Ue}return Se(j,ne),j}(dl),Zi=[{type:15,flags:0,unit:"px",number:3}],wa=[{type:16,flags:0,number:50}],Ha="checkbox",kA="radio",Lm="password",dh=707406591,FA=function(ne){function j(ce,ae){var Ue=ne.call(this,ce,ae)||this;switch(Ue.type=ae.type.toLowerCase(),Ue.checked=ae.checked,Ue.value=function(ne){var j=ne.type===Lm?new Array(ne.value.length+1).join("\u2022"):ne.value;return 0===j.length?ne.placeholder||"":j}(ae),(Ue.type===Ha||Ue.type===kA)&&(Ue.styles.backgroundColor=3739148031,Ue.styles.borderTopColor=Ue.styles.borderRightColor=Ue.styles.borderBottomColor=Ue.styles.borderLeftColor=2779096575,Ue.styles.borderTopWidth=Ue.styles.borderRightWidth=Ue.styles.borderBottomWidth=Ue.styles.borderLeftWidth=1,Ue.styles.borderTopStyle=Ue.styles.borderRightStyle=Ue.styles.borderBottomStyle=Ue.styles.borderLeftStyle=1,Ue.styles.backgroundClip=[0],Ue.styles.backgroundOrigin=[0],Ue.bounds=function(ne){return ne.width>ne.height?new ke(ne.left+(ne.width-ne.height)/2,ne.top,ne.height,ne.height):ne.width0)ce.textNodes.push(new hv(ne,Ue,ce.styles));else if(Vp(Ue))if(np(Ue)&&Ue.assignedNodes)Ue.assignedNodes().forEach(function(an){return Yc(ne,an,ce,ae)});else{var Bt=uh(ne,Ue);Bt.styles.isVisible()&&(hh(Ue,Bt,ae)?Bt.flags|=4:mf(Bt.styles)&&(Bt.flags|=2),-1!==D1.indexOf(Ue.tagName)&&(Bt.flags|=8),ce.elements.push(Bt),Ue.shadowRoot?Yc(ne,Ue.shadowRoot,Bt,ae):!LA(Ue)&&!I1(Ue)&&!Lc(Ue)&&Yc(ne,Ue,Bt,ae))}},uh=function(ne,j){return jg(j)?new C1(ne,j):Wg(j)?new M1(ne,j):I1(j)?new S1(ne,j):n_(j)?new E1(ne,j):i_(j)?new Vg(ne,j):r_(j)?new FA(ne,j):Lc(j)?new Gg(ne,j):LA(j)?new T1(ne,j):o_(j)?new fv(ne,j):new dl(ne,j)},J0=function(ne,j){var ce=uh(ne,j);return ce.flags|=4,Yc(ne,j,ce,ce),ce},hh=function(ne,j,ce){return j.styles.isPositionedWithZIndex()||j.styles.opacity<1||j.styles.isTransformed()||Qg(ne)&&ce.styles.isTransparent()},mf=function(ne){return ne.isPositioned()||ne.isFloating()},e_=function(ne){return ne.nodeType===Node.TEXT_NODE},Vp=function(ne){return ne.nodeType===Node.ELEMENT_NODE},t_=function(ne){return Vp(ne)&&typeof ne.style<"u"&&!qg(ne)},qg=function(ne){return"object"==typeof ne.className},n_=function(ne){return"LI"===ne.tagName},i_=function(ne){return"OL"===ne.tagName},r_=function(ne){return"INPUT"===ne.tagName},I1=function(ne){return"svg"===ne.tagName},Qg=function(ne){return"BODY"===ne.tagName},Wg=function(ne){return"CANVAS"===ne.tagName},s_=function(ne){return"VIDEO"===ne.tagName},jg=function(ne){return"IMG"===ne.tagName},o_=function(ne){return"IFRAME"===ne.tagName},a_=function(ne){return"STYLE"===ne.tagName},LA=function(ne){return"TEXTAREA"===ne.tagName},Lc=function(ne){return"SELECT"===ne.tagName},np=function(ne){return"SLOT"===ne.tagName},gl=function(ne){return ne.tagName.indexOf("-")>0},Fl=function(){function ne(){this.counters={}}return ne.prototype.getCounterValue=function(j){var ce=this.counters[j];return ce&&ce.length?ce[ce.length-1]:1},ne.prototype.getCounterValues=function(j){return this.counters[j]||[]},ne.prototype.pop=function(j){var ce=this;j.forEach(function(ae){return ce.counters[ae].pop()})},ne.prototype.parse=function(j){var ce=this,ae=j.counterIncrement,Ue=j.counterReset,dt=!0;null!==ae&&ae.forEach(function(an){var on=ce.counters[an.counter];on&&0!==an.increment&&(dt=!1,on.length||on.push(1),on[Math.max(0,on.length-1)]+=an.increment)});var Bt=[];return dt&&Ue.forEach(function(an){var on=ce.counters[an.counter];Bt.push(an.counter),on||(on=ce.counters[an.counter]=[]),on.push(an.reset)}),Bt},ne}(),B1={integers:[1e3,900,500,400,100,90,50,40,10,9,5,4,1],values:["M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"]},Dh={integers:[9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,900,800,700,600,500,400,300,200,100,90,80,70,60,50,40,30,20,10,9,8,7,6,5,4,3,2,1],values:["\u0554","\u0553","\u0552","\u0551","\u0550","\u054f","\u054e","\u054d","\u054c","\u054b","\u054a","\u0549","\u0548","\u0547","\u0546","\u0545","\u0544","\u0543","\u0542","\u0541","\u0540","\u053f","\u053e","\u053d","\u053c","\u053b","\u053a","\u0539","\u0538","\u0537","\u0536","\u0535","\u0534","\u0533","\u0532","\u0531"]},pv={integers:[1e4,9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,400,300,200,100,90,80,70,60,50,40,30,20,19,18,17,16,15,10,9,8,7,6,5,4,3,2,1],values:["\u05d9\u05f3","\u05d8\u05f3","\u05d7\u05f3","\u05d6\u05f3","\u05d5\u05f3","\u05d4\u05f3","\u05d3\u05f3","\u05d2\u05f3","\u05d1\u05f3","\u05d0\u05f3","\u05ea","\u05e9","\u05e8","\u05e7","\u05e6","\u05e4","\u05e2","\u05e1","\u05e0","\u05de","\u05dc","\u05db","\u05d9\u05d8","\u05d9\u05d7","\u05d9\u05d6","\u05d8\u05d6","\u05d8\u05d5","\u05d9","\u05d8","\u05d7","\u05d6","\u05d5","\u05d4","\u05d3","\u05d2","\u05d1","\u05d0"]},P1={integers:[1e4,9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,900,800,700,600,500,400,300,200,100,90,80,70,60,50,40,30,20,10,9,8,7,6,5,4,3,2,1],values:["\u10f5","\u10f0","\u10ef","\u10f4","\u10ee","\u10ed","\u10ec","\u10eb","\u10ea","\u10e9","\u10e8","\u10e7","\u10e6","\u10e5","\u10e4","\u10f3","\u10e2","\u10e1","\u10e0","\u10df","\u10de","\u10dd","\u10f2","\u10dc","\u10db","\u10da","\u10d9","\u10d8","\u10d7","\u10f1","\u10d6","\u10d5","\u10d4","\u10d3","\u10d2","\u10d1","\u10d0"]},Gp=function(ne,j,ce,ae,Ue,dt){return nece?Um(ne,Ue,dt.length>0):ae.integers.reduce(function(Bt,an,on){for(;ne>=an;)ne-=an,Bt+=ae.values[on];return Bt},"")+dt},Nm=function(ne,j,ce,ae){var Ue="";do{ce||ne--,Ue=ae(ne)+Ue,ne/=j}while(ne*j>=j);return Ue},Za=function(ne,j,ce,ae,Ue){var dt=ce-j+1;return(ne<0?"-":"")+(Nm(Math.abs(ne),dt,ae,function(Bt){return Re(Math.floor(Bt%dt)+j)})+Ue)},qp=function(ne,j,ce){void 0===ce&&(ce=". ");var ae=j.length;return Nm(Math.abs(ne),ae,!1,function(Ue){return j[Math.floor(Ue%ae)]})+ce},Ih=function(ne,j,ce,ae,Ue,dt){if(ne<-9999||ne>9999)return Um(ne,4,Ue.length>0);var Bt=Math.abs(ne),an=Ue;if(0===Bt)return j[0]+an;for(var on=0;Bt>0&&on<=4;on++){var Wn=Bt%10;0===Wn&&Yo(dt,1)&&""!==an?an=j[Wn]+an:Wn>1||1===Wn&&0===on||1===Wn&&1===on&&Yo(dt,2)||1===Wn&&1===on&&Yo(dt,4)&&ne>100||1===Wn&&on>1&&Yo(dt,8)?an=j[Wn]+(on>0?ce[on-1]:"")+an:1===Wn&&on>0&&(an=ce[on-1]+an),Bt=Math.floor(Bt/10)}return(ne<0?ae:"")+an},rp="\ub9c8\uc774\ub108\uc2a4",Um=function(ne,j,ce){var ae=ce?". ":"",Ue=ce?"\u3001":"",dt=ce?", ":"",Bt=ce?" ":"";switch(j){case 0:return"\u2022"+Bt;case 1:return"\u25e6"+Bt;case 2:return"\u25fe"+Bt;case 5:var an=Za(ne,48,57,!0,ae);return an.length<4?"0"+an:an;case 4:return qp(ne,"\u3007\u4e00\u4e8c\u4e09\u56db\u4e94\u516d\u4e03\u516b\u4e5d",Ue);case 6:return Gp(ne,1,3999,B1,3,ae).toLowerCase();case 7:return Gp(ne,1,3999,B1,3,ae);case 8:return Za(ne,945,969,!1,ae);case 9:return Za(ne,97,122,!1,ae);case 10:return Za(ne,65,90,!1,ae);case 11:return Za(ne,1632,1641,!0,ae);case 12:case 49:return Gp(ne,1,9999,Dh,3,ae);case 35:return Gp(ne,1,9999,Dh,3,ae).toLowerCase();case 13:return Za(ne,2534,2543,!0,ae);case 14:case 30:return Za(ne,6112,6121,!0,ae);case 15:return qp(ne,"\u5b50\u4e11\u5bc5\u536f\u8fb0\u5df3\u5348\u672a\u7533\u9149\u620c\u4ea5",Ue);case 16:return qp(ne,"\u7532\u4e59\u4e19\u4e01\u620a\u5df1\u5e9a\u8f9b\u58ec\u7678",Ue);case 17:case 48:return Ih(ne,"\u96f6\u4e00\u4e8c\u4e09\u56db\u4e94\u516d\u4e03\u516b\u4e5d","\u5341\u767e\u5343\u842c","\u8ca0",Ue,14);case 47:return Ih(ne,"\u96f6\u58f9\u8cb3\u53c3\u8086\u4f0d\u9678\u67d2\u634c\u7396","\u62fe\u4f70\u4edf\u842c","\u8ca0",Ue,15);case 42:return Ih(ne,"\u96f6\u4e00\u4e8c\u4e09\u56db\u4e94\u516d\u4e03\u516b\u4e5d","\u5341\u767e\u5343\u842c","\u8d1f",Ue,14);case 41:return Ih(ne,"\u96f6\u58f9\u8d30\u53c1\u8086\u4f0d\u9646\u67d2\u634c\u7396","\u62fe\u4f70\u4edf\u842c","\u8d1f",Ue,15);case 26:return Ih(ne,"\u3007\u4e00\u4e8c\u4e09\u56db\u4e94\u516d\u4e03\u516b\u4e5d","\u5341\u767e\u5343\u4e07","\u30de\u30a4\u30ca\u30b9",Ue,0);case 25:return Ih(ne,"\u96f6\u58f1\u5f10\u53c2\u56db\u4f0d\u516d\u4e03\u516b\u4e5d","\u62fe\u767e\u5343\u4e07","\u30de\u30a4\u30ca\u30b9",Ue,7);case 31:return Ih(ne,"\uc601\uc77c\uc774\uc0bc\uc0ac\uc624\uc721\uce60\ud314\uad6c","\uc2ed\ubc31\ucc9c\ub9cc",rp,dt,7);case 33:return Ih(ne,"\u96f6\u4e00\u4e8c\u4e09\u56db\u4e94\u516d\u4e03\u516b\u4e5d","\u5341\u767e\u5343\u842c",rp,dt,0);case 32:return Ih(ne,"\u96f6\u58f9\u8cb3\u53c3\u56db\u4e94\u516d\u4e03\u516b\u4e5d","\u62fe\u767e\u5343",rp,dt,7);case 18:return Za(ne,2406,2415,!0,ae);case 20:return Gp(ne,1,19999,P1,3,ae);case 21:return Za(ne,2790,2799,!0,ae);case 22:return Za(ne,2662,2671,!0,ae);case 22:return Gp(ne,1,10999,pv,3,ae);case 23:return qp(ne,"\u3042\u3044\u3046\u3048\u304a\u304b\u304d\u304f\u3051\u3053\u3055\u3057\u3059\u305b\u305d\u305f\u3061\u3064\u3066\u3068\u306a\u306b\u306c\u306d\u306e\u306f\u3072\u3075\u3078\u307b\u307e\u307f\u3080\u3081\u3082\u3084\u3086\u3088\u3089\u308a\u308b\u308c\u308d\u308f\u3090\u3091\u3092\u3093");case 24:return qp(ne,"\u3044\u308d\u306f\u306b\u307b\u3078\u3068\u3061\u308a\u306c\u308b\u3092\u308f\u304b\u3088\u305f\u308c\u305d\u3064\u306d\u306a\u3089\u3080\u3046\u3090\u306e\u304a\u304f\u3084\u307e\u3051\u3075\u3053\u3048\u3066\u3042\u3055\u304d\u3086\u3081\u307f\u3057\u3091\u3072\u3082\u305b\u3059");case 27:return Za(ne,3302,3311,!0,ae);case 28:return qp(ne,"\u30a2\u30a4\u30a6\u30a8\u30aa\u30ab\u30ad\u30af\u30b1\u30b3\u30b5\u30b7\u30b9\u30bb\u30bd\u30bf\u30c1\u30c4\u30c6\u30c8\u30ca\u30cb\u30cc\u30cd\u30ce\u30cf\u30d2\u30d5\u30d8\u30db\u30de\u30df\u30e0\u30e1\u30e2\u30e4\u30e6\u30e8\u30e9\u30ea\u30eb\u30ec\u30ed\u30ef\u30f0\u30f1\u30f2\u30f3",Ue);case 29:return qp(ne,"\u30a4\u30ed\u30cf\u30cb\u30db\u30d8\u30c8\u30c1\u30ea\u30cc\u30eb\u30f2\u30ef\u30ab\u30e8\u30bf\u30ec\u30bd\u30c4\u30cd\u30ca\u30e9\u30e0\u30a6\u30f0\u30ce\u30aa\u30af\u30e4\u30de\u30b1\u30d5\u30b3\u30a8\u30c6\u30a2\u30b5\u30ad\u30e6\u30e1\u30df\u30b7\u30f1\u30d2\u30e2\u30bb\u30b9",Ue);case 34:return Za(ne,3792,3801,!0,ae);case 37:return Za(ne,6160,6169,!0,ae);case 38:return Za(ne,4160,4169,!0,ae);case 39:return Za(ne,2918,2927,!0,ae);case 40:return Za(ne,1776,1785,!0,ae);case 43:return Za(ne,3046,3055,!0,ae);case 44:return Za(ne,3174,3183,!0,ae);case 45:return Za(ne,3664,3673,!0,ae);case 46:return Za(ne,3872,3881,!0,ae);default:return Za(ne,48,57,!0,ae)}},gf="data-html2canvas-ignore",$g=function(){function ne(j,ce,ae){if(this.context=j,this.options=ae,this.scrolledElements=[],this.referenceElement=ce,this.counters=new Fl,this.quoteDepth=0,!ce.ownerDocument)throw new Error("Cloned element does not have an owner document");this.documentElement=this.cloneNode(ce.ownerDocument.documentElement,!1)}return ne.prototype.toIFrame=function(j,ce){var ae=this,Ue=Yg(j,ce);if(!Ue.contentWindow)return Promise.reject("Unable to find iframe window");var dt=j.defaultView.pageXOffset,Bt=j.defaultView.pageYOffset,an=Ue.contentWindow,on=an.document,Wn=Kg(Ue).then(function(){return x(ae,void 0,void 0,function(){var Zn,ri;return L(this,function(Xi){switch(Xi.label){case 0:return this.scrolledElements.forEach(u_),an&&(an.scrollTo(ce.left,ce.top),/(iPad|iPhone|iPod)/g.test(navigator.userAgent)&&(an.scrollY!==ce.top||an.scrollX!==ce.left)&&(this.context.logger.warn("Unable to restore scroll position for cloned document"),this.context.windowBounds=this.context.windowBounds.add(an.scrollX-ce.left,an.scrollY-ce.top,0,0))),Zn=this.options.onclone,typeof(ri=this.clonedReferenceElement)>"u"?[2,Promise.reject("Error finding the "+this.referenceElement.nodeName+" in the cloned document")]:on.fonts&&on.fonts.ready?[4,on.fonts.ready]:[3,2];case 1:Xi.sent(),Xi.label=2;case 2:return/(AppleWebKit)/g.test(navigator.userAgent)?[4,Ox(on)]:[3,4];case 3:Xi.sent(),Xi.label=4;case 4:return"function"==typeof Zn?[2,Promise.resolve().then(function(){return Zn(on,ri)}).then(function(){return Ue})]:[2,Ue]}})})});return on.open(),on.write(Zg(document.doctype)+""),d_(this.referenceElement.ownerDocument,dt,Bt),on.replaceChild(on.adoptNode(this.documentElement),on.documentElement),on.close(),Wn},ne.prototype.createElementClone=function(j){if(Fc(j,2),Wg(j))return this.createCanvasClone(j);if(s_(j))return this.createVideoClone(j);if(a_(j))return this.createStyleClone(j);var ce=j.cloneNode(!1);return jg(ce)&&(jg(j)&&j.currentSrc&&j.currentSrc!==j.src&&(ce.src=j.currentSrc,ce.srcset=""),"lazy"===ce.loading&&(ce.loading="eager")),gl(ce)?this.createCustomElementClone(ce):ce},ne.prototype.createCustomElementClone=function(j){var ce=document.createElement("html2canvascustomelement");return k1(j.style,ce),ce},ne.prototype.createStyleClone=function(j){try{var ce=j.sheet;if(ce&&ce.cssRules){var ae=[].slice.call(ce.cssRules,0).reduce(function(dt,Bt){return Bt&&"string"==typeof Bt.cssText?dt+Bt.cssText:dt},""),Ue=j.cloneNode(!1);return Ue.textContent=ae,Ue}}catch(dt){if(this.context.logger.error("Unable to access cssRules property",dt),"SecurityError"!==dt.name)throw dt}return j.cloneNode(!1)},ne.prototype.createCanvasClone=function(j){var ce;if(this.options.inlineImages&&j.ownerDocument){var ae=j.ownerDocument.createElement("img");try{return ae.src=j.toDataURL(),ae}catch{this.context.logger.info("Unable to inline canvas contents, canvas is tainted",j)}}var Ue=j.cloneNode(!1);try{Ue.width=j.width,Ue.height=j.height;var dt=j.getContext("2d"),Bt=Ue.getContext("2d");if(Bt)if(!this.options.allowTaint&&dt)Bt.putImageData(dt.getImageData(0,0,j.width,j.height),0,0);else{var an=null!==(ce=j.getContext("webgl2"))&&void 0!==ce?ce:j.getContext("webgl");if(an){var on=an.getContextAttributes();!1===on?.preserveDrawingBuffer&&this.context.logger.warn("Unable to clone WebGL context as it has preserveDrawingBuffer=false",j)}Bt.drawImage(j,0,0)}return Ue}catch{this.context.logger.info("Unable to clone canvas as it is tainted",j)}return Ue},ne.prototype.createVideoClone=function(j){var ce=j.ownerDocument.createElement("canvas");ce.width=j.offsetWidth,ce.height=j.offsetHeight;var ae=ce.getContext("2d");try{return ae&&(ae.drawImage(j,0,0,ce.width,ce.height),this.options.allowTaint||ae.getImageData(0,0,ce.width,ce.height)),ce}catch{this.context.logger.info("Unable to clone video as it is tainted",j)}var Ue=j.ownerDocument.createElement("canvas");return Ue.width=j.offsetWidth,Ue.height=j.offsetHeight,Ue},ne.prototype.appendChildNode=function(j,ce,ae){(!Vp(ce)||!function(ne){return"SCRIPT"===ne.tagName}(ce)&&!ce.hasAttribute(gf)&&("function"!=typeof this.options.ignoreElements||!this.options.ignoreElements(ce)))&&(!this.options.copyStyles||!Vp(ce)||!a_(ce))&&j.appendChild(this.cloneNode(ce,ae))},ne.prototype.cloneChildNodes=function(j,ce,ae){for(var Ue=this,dt=j.shadowRoot?j.shadowRoot.firstChild:j.firstChild;dt;dt=dt.nextSibling)if(Vp(dt)&&np(dt)&&"function"==typeof dt.assignedNodes){var Bt=dt.assignedNodes();Bt.length&&Bt.forEach(function(an){return Ue.appendChildNode(ce,an,ae)})}else this.appendChildNode(ce,dt,ae)},ne.prototype.cloneNode=function(j,ce){if(e_(j))return document.createTextNode(j.data);if(!j.ownerDocument)return j.cloneNode(!1);var ae=j.ownerDocument.defaultView;if(ae&&Vp(j)&&(t_(j)||qg(j))){var Ue=this.createElementClone(j);Ue.style.transitionProperty="none";var dt=ae.getComputedStyle(j),Bt=ae.getComputedStyle(j,":before"),an=ae.getComputedStyle(j,":after");this.referenceElement===j&&t_(Ue)&&(this.clonedReferenceElement=Ue),Qg(Ue)&&NC(Ue);var on=this.counters.parse(new kc(this.context,dt)),Wn=this.resolvePseudoContent(j,Ue,Bt,Xg.BEFORE);gl(j)&&(ce=!0),s_(j)||this.cloneChildNodes(j,Ue,ce),Wn&&Ue.insertBefore(Wn,Ue.firstChild);var Zn=this.resolvePseudoContent(j,Ue,an,Xg.AFTER);return Zn&&Ue.appendChild(Zn),this.counters.pop(on),(dt&&(this.options.copyStyles||qg(j))&&!o_(j)||ce)&&k1(dt,Ue),(0!==j.scrollTop||0!==j.scrollLeft)&&this.scrolledElements.push([Ue,j.scrollLeft,j.scrollTop]),(LA(j)||Lc(j))&&(LA(Ue)||Lc(Ue))&&(Ue.value=j.value),Ue}return j.cloneNode(!1)},ne.prototype.resolvePseudoContent=function(j,ce,ae,Ue){var dt=this;if(ae){var Bt=ae.content,an=ce.ownerDocument;if(an&&Bt&&"none"!==Bt&&"-moz-alt-content"!==Bt&&"none"!==ae.display){this.counters.parse(new kc(this.context,ae));var on=new sh(this.context,ae),Wn=an.createElement("html2canvaspseudoelement");k1(ae,Wn),on.content.forEach(function(ri){if(0===ri.type)Wn.appendChild(an.createTextNode(ri.value));else if(22===ri.type){var Xi=an.createElement("img");Xi.src=ri.value,Xi.style.opacity="1",Wn.appendChild(Xi)}else if(18===ri.type){if("attr"===ri.name){var Ss=ri.values.filter(pi);Ss.length&&Wn.appendChild(an.createTextNode(j.getAttribute(Ss[0].value)||""))}else if("counter"===ri.name){var Ur=ri.values.filter($d),Ho=Ur[1];if((zr=Ur[0])&&pi(zr)){var Ns=dt.counters.getCounterValue(zr.value),Zr=Ho&&pi(Ho)?xA.parse(dt.context,Ho.value):3;Wn.appendChild(an.createTextNode(Um(Ns,Zr,!1)))}}else if("counters"===ri.name){var zr,So=ri.values.filter($d),Xo=So[1];if(Ho=So[2],(zr=So[0])&&pi(zr)){var Fo=dt.counters.getCounterValues(zr.value),Es=Ho&&pi(Ho)?xA.parse(dt.context,Ho.value):3,La=Xo&&0===Xo.type?Xo.value:"",Ba=Fo.map(function(eu){return Um(eu,Es,!1)}).join(La);Wn.appendChild(an.createTextNode(Ba))}}}else if(20===ri.type)switch(ri.value){case"open-quote":Wn.appendChild(an.createTextNode(ac(on.quotes,dt.quoteDepth++,!0)));break;case"close-quote":Wn.appendChild(an.createTextNode(ac(on.quotes,--dt.quoteDepth,!1)));break;default:Wn.appendChild(an.createTextNode(ri.value))}}),Wn.className=h_+" "+Jg;var Zn=Ue===Xg.BEFORE?" "+h_:" "+Jg;return qg(ce)?ce.className.baseValue+=Zn:ce.className+=Zn,Wn}}},ne.destroy=function(j){return!!j.parentNode&&(j.parentNode.removeChild(j),!0)},ne}(),Xg=function(ne){return ne[ne.BEFORE=0]="BEFORE",ne[ne.AFTER=1]="AFTER",ne}(Xg||{}),Yg=function(ne,j){var ce=ne.createElement("iframe");return ce.className="html2canvas-container",ce.style.visibility="hidden",ce.style.position="fixed",ce.style.left="-10000px",ce.style.top="0px",ce.style.border="0",ce.width=j.width.toString(),ce.height=j.height.toString(),ce.scrolling="no",ce.setAttribute(gf,"true"),ne.body.appendChild(ce),ce},mv=function(ne){return new Promise(function(j){ne.complete?j():ne.src?(ne.onload=j,ne.onerror=j):j()})},Ox=function(ne){return Promise.all([].slice.call(ne.images,0).map(mv))},Kg=function(ne){return new Promise(function(j,ce){var ae=ne.contentWindow;if(!ae)return ce("No window assigned for iframe");var Ue=ae.document;ae.onload=ne.onload=function(){ae.onload=ne.onload=null;var dt=setInterval(function(){Ue.body.childNodes.length>0&&"complete"===Ue.readyState&&(clearInterval(dt),j(ne))},50)}})},NA=["all","d","content"],k1=function(ne,j){for(var ce=ne.length-1;ce>=0;ce--){var ae=ne.item(ce);-1===NA.indexOf(ae)&&j.style.setProperty(ae,ne.getPropertyValue(ae))}return j},Zg=function(ne){var j="";return ne&&(j+=""),j},d_=function(ne,j,ce){ne&&ne.defaultView&&(j!==ne.defaultView.pageXOffset||ce!==ne.defaultView.pageYOffset)&&ne.defaultView.scrollTo(j,ce)},u_=function(ne){var j=ne[0],ae=ne[2];j.scrollLeft=ne[1],j.scrollTop=ae},h_="___html2canvas___pseudoelement_before",Jg="___html2canvas___pseudoelement_after",Bh='{\n content: "" !important;\n display: none !important;\n}',NC=function(ne){zm(ne,"."+h_+":before"+Bh+"\n ."+Jg+":after"+Bh)},zm=function(ne,j){var ce=ne.ownerDocument;if(ce){var ae=ce.createElement("style");ae.textContent=j,ne.appendChild(ae)}},Ph=function(){function ne(){}return ne.getOrigin=function(j){var ce=ne._link;return ce?(ce.href=j,ce.href=ce.href,ce.protocol+ce.hostname+ce.port):"about:blank"},ne.isSameOrigin=function(j){return ne.getOrigin(j)===ne._origin},ne.setContext=function(j){ne._link=j.document.createElement("a"),ne._origin=ne.getOrigin(j.location.href)},ne._origin="about:blank",ne}(),gv=function(){function ne(j,ce){this.context=j,this._options=ce,this._cache={}}return ne.prototype.addImage=function(j){var ce=Promise.resolve();return this.has(j)||(m_(j)||Lx(j))&&(this._cache[j]=this.loadImage(j)).catch(function(){}),ce},ne.prototype.match=function(j){return this._cache[j]},ne.prototype.loadImage=function(j){return x(this,void 0,void 0,function(){var ce,ae,Ue,dt,Bt=this;return L(this,function(an){switch(an.label){case 0:return ce=Ph.isSameOrigin(j),ae=!p_(j)&&!0===this._options.useCORS&&Oc.SUPPORT_CORS_IMAGES&&!ce,Ue=!p_(j)&&!ce&&!m_(j)&&"string"==typeof this._options.proxy&&Oc.SUPPORT_CORS_XHR&&!ae,ce||!1!==this._options.allowTaint||p_(j)||m_(j)||Ue||ae?(dt=j,Ue?[4,this.proxy(dt)]:[3,2]):[2];case 1:dt=an.sent(),an.label=2;case 2:return this.context.logger.debug("Added image "+j.substring(0,256)),[4,new Promise(function(on,Wn){var Zn=new Image;Zn.onload=function(){return on(Zn)},Zn.onerror=Wn,(e0(dt)||ae)&&(Zn.crossOrigin="anonymous"),Zn.src=dt,!0===Zn.complete&&setTimeout(function(){return on(Zn)},500),Bt._options.imageTimeout>0&&setTimeout(function(){return Wn("Timed out ("+Bt._options.imageTimeout+"ms) loading image")},Bt._options.imageTimeout)})];case 3:return[2,an.sent()]}})})},ne.prototype.has=function(j){return typeof this._cache[j]<"u"},ne.prototype.keys=function(){return Promise.resolve(Object.keys(this._cache))},ne.prototype.proxy=function(j){var ce=this,ae=this._options.proxy;if(!ae)throw new Error("No proxy defined");var Ue=j.substring(0,256);return new Promise(function(dt,Bt){var an=Oc.SUPPORT_RESPONSE_TYPE?"blob":"text",on=new XMLHttpRequest;on.onload=function(){if(200===on.status)if("text"===an)dt(on.response);else{var ri=new FileReader;ri.addEventListener("load",function(){return dt(ri.result)},!1),ri.addEventListener("error",function(Xi){return Bt(Xi)},!1),ri.readAsDataURL(on.response)}else Bt("Failed to proxy resource "+Ue+" with status code "+on.status)},on.onerror=Bt;var Wn=ae.indexOf("?")>-1?"&":"?";if(on.open("GET",""+ae+Wn+"url="+encodeURIComponent(j)+"&responseType="+an),"text"!==an&&on instanceof XMLHttpRequest&&(on.responseType=an),ce._options.imageTimeout){var Zn=ce._options.imageTimeout;on.timeout=Zn,on.ontimeout=function(){return Bt("Timed out ("+Zn+"ms) proxying "+Ue)}}on.send()})},ne}(),f_=/^data:image\/svg\+xml/i,F1=/^data:image\/.*;base64,/i,_v=/^data:image\/.*/i,Lx=function(ne){return Oc.SUPPORT_SVG_DRAWING||!Nx(ne)},p_=function(ne){return _v.test(ne)},e0=function(ne){return F1.test(ne)},m_=function(ne){return"blob"===ne.substr(0,4)},Nx=function(ne){return"svg"===ne.substr(-3).toLowerCase()||f_.test(ne)},vs=function(){function ne(j,ce){this.type=0,this.x=j,this.y=ce}return ne.prototype.add=function(j,ce){return new ne(this.x+j,this.y+ce)},ne}(),Vu=function(ne,j,ce){return new vs(ne.x+(j.x-ne.x)*ce,ne.y+(j.y-ne.y)*ce)},O1=function(){function ne(j,ce,ae,Ue){this.type=1,this.start=j,this.startControl=ce,this.endControl=ae,this.end=Ue}return ne.prototype.subdivide=function(j,ce){var ae=Vu(this.start,this.startControl,j),Ue=Vu(this.startControl,this.endControl,j),dt=Vu(this.endControl,this.end,j),Bt=Vu(ae,Ue,j),an=Vu(Ue,dt,j),on=Vu(Bt,an,j);return ce?new ne(this.start,ae,Bt,on):new ne(on,an,dt,this.end)},ne.prototype.add=function(j,ce){return new ne(this.start.add(j,ce),this.startControl.add(j,ce),this.endControl.add(j,ce),this.end.add(j,ce))},ne.prototype.reverse=function(){return new ne(this.end,this.endControl,this.startControl,this.start)},ne}(),Nc=function(ne){return 1===ne.type},L1=function(){return function ne(j){var ce=j.styles,ae=j.bounds,Ue=wm(ce.borderTopLeftRadius,ae.width,ae.height),dt=Ue[0],Bt=Ue[1],an=wm(ce.borderTopRightRadius,ae.width,ae.height),on=an[0],Wn=an[1],Zn=wm(ce.borderBottomRightRadius,ae.width,ae.height),ri=Zn[0],Xi=Zn[1],Ss=wm(ce.borderBottomLeftRadius,ae.width,ae.height),Ur=Ss[0],zr=Ss[1],Ho=[];Ho.push((dt+on)/ae.width),Ho.push((Ur+ri)/ae.width),Ho.push((Bt+zr)/ae.height),Ho.push((Wn+Xi)/ae.height);var Ns=Math.max.apply(Math,Ho);Ns>1&&(dt/=Ns,Bt/=Ns,on/=Ns,Wn/=Ns,ri/=Ns,Xi/=Ns,Ur/=Ns,zr/=Ns);var Zr=ae.width-on,So=ae.height-Xi,Xo=ae.width-ri,Fo=ae.height-zr,Es=ce.borderTopWidth,La=ce.borderRightWidth,Ba=ce.borderBottomWidth,Vo=ce.borderLeftWidth,wc=ha(ce.paddingTop,j.bounds.width),eu=ha(ce.paddingRight,j.bounds.width),xu=ha(ce.paddingBottom,j.bounds.width),ul=ha(ce.paddingLeft,j.bounds.width);this.topLeftBorderDoubleOuterBox=dt>0||Bt>0?Oa(ae.left+Vo/3,ae.top+Es/3,dt-Vo/3,Bt-Es/3,Po.TOP_LEFT):new vs(ae.left+Vo/3,ae.top+Es/3),this.topRightBorderDoubleOuterBox=dt>0||Bt>0?Oa(ae.left+Zr,ae.top+Es/3,on-La/3,Wn-Es/3,Po.TOP_RIGHT):new vs(ae.left+ae.width-La/3,ae.top+Es/3),this.bottomRightBorderDoubleOuterBox=ri>0||Xi>0?Oa(ae.left+Xo,ae.top+So,ri-La/3,Xi-Ba/3,Po.BOTTOM_RIGHT):new vs(ae.left+ae.width-La/3,ae.top+ae.height-Ba/3),this.bottomLeftBorderDoubleOuterBox=Ur>0||zr>0?Oa(ae.left+Vo/3,ae.top+Fo,Ur-Vo/3,zr-Ba/3,Po.BOTTOM_LEFT):new vs(ae.left+Vo/3,ae.top+ae.height-Ba/3),this.topLeftBorderDoubleInnerBox=dt>0||Bt>0?Oa(ae.left+2*Vo/3,ae.top+2*Es/3,dt-2*Vo/3,Bt-2*Es/3,Po.TOP_LEFT):new vs(ae.left+2*Vo/3,ae.top+2*Es/3),this.topRightBorderDoubleInnerBox=dt>0||Bt>0?Oa(ae.left+Zr,ae.top+2*Es/3,on-2*La/3,Wn-2*Es/3,Po.TOP_RIGHT):new vs(ae.left+ae.width-2*La/3,ae.top+2*Es/3),this.bottomRightBorderDoubleInnerBox=ri>0||Xi>0?Oa(ae.left+Xo,ae.top+So,ri-2*La/3,Xi-2*Ba/3,Po.BOTTOM_RIGHT):new vs(ae.left+ae.width-2*La/3,ae.top+ae.height-2*Ba/3),this.bottomLeftBorderDoubleInnerBox=Ur>0||zr>0?Oa(ae.left+2*Vo/3,ae.top+Fo,Ur-2*Vo/3,zr-2*Ba/3,Po.BOTTOM_LEFT):new vs(ae.left+2*Vo/3,ae.top+ae.height-2*Ba/3),this.topLeftBorderStroke=dt>0||Bt>0?Oa(ae.left+Vo/2,ae.top+Es/2,dt-Vo/2,Bt-Es/2,Po.TOP_LEFT):new vs(ae.left+Vo/2,ae.top+Es/2),this.topRightBorderStroke=dt>0||Bt>0?Oa(ae.left+Zr,ae.top+Es/2,on-La/2,Wn-Es/2,Po.TOP_RIGHT):new vs(ae.left+ae.width-La/2,ae.top+Es/2),this.bottomRightBorderStroke=ri>0||Xi>0?Oa(ae.left+Xo,ae.top+So,ri-La/2,Xi-Ba/2,Po.BOTTOM_RIGHT):new vs(ae.left+ae.width-La/2,ae.top+ae.height-Ba/2),this.bottomLeftBorderStroke=Ur>0||zr>0?Oa(ae.left+Vo/2,ae.top+Fo,Ur-Vo/2,zr-Ba/2,Po.BOTTOM_LEFT):new vs(ae.left+Vo/2,ae.top+ae.height-Ba/2),this.topLeftBorderBox=dt>0||Bt>0?Oa(ae.left,ae.top,dt,Bt,Po.TOP_LEFT):new vs(ae.left,ae.top),this.topRightBorderBox=on>0||Wn>0?Oa(ae.left+Zr,ae.top,on,Wn,Po.TOP_RIGHT):new vs(ae.left+ae.width,ae.top),this.bottomRightBorderBox=ri>0||Xi>0?Oa(ae.left+Xo,ae.top+So,ri,Xi,Po.BOTTOM_RIGHT):new vs(ae.left+ae.width,ae.top+ae.height),this.bottomLeftBorderBox=Ur>0||zr>0?Oa(ae.left,ae.top+Fo,Ur,zr,Po.BOTTOM_LEFT):new vs(ae.left,ae.top+ae.height),this.topLeftPaddingBox=dt>0||Bt>0?Oa(ae.left+Vo,ae.top+Es,Math.max(0,dt-Vo),Math.max(0,Bt-Es),Po.TOP_LEFT):new vs(ae.left+Vo,ae.top+Es),this.topRightPaddingBox=on>0||Wn>0?Oa(ae.left+Math.min(Zr,ae.width-La),ae.top+Es,Zr>ae.width+La?0:Math.max(0,on-La),Math.max(0,Wn-Es),Po.TOP_RIGHT):new vs(ae.left+ae.width-La,ae.top+Es),this.bottomRightPaddingBox=ri>0||Xi>0?Oa(ae.left+Math.min(Xo,ae.width-Vo),ae.top+Math.min(So,ae.height-Ba),Math.max(0,ri-La),Math.max(0,Xi-Ba),Po.BOTTOM_RIGHT):new vs(ae.left+ae.width-La,ae.top+ae.height-Ba),this.bottomLeftPaddingBox=Ur>0||zr>0?Oa(ae.left+Vo,ae.top+Math.min(Fo,ae.height-Ba),Math.max(0,Ur-Vo),Math.max(0,zr-Ba),Po.BOTTOM_LEFT):new vs(ae.left+Vo,ae.top+ae.height-Ba),this.topLeftContentBox=dt>0||Bt>0?Oa(ae.left+Vo+ul,ae.top+Es+wc,Math.max(0,dt-(Vo+ul)),Math.max(0,Bt-(Es+wc)),Po.TOP_LEFT):new vs(ae.left+Vo+ul,ae.top+Es+wc),this.topRightContentBox=on>0||Wn>0?Oa(ae.left+Math.min(Zr,ae.width+Vo+ul),ae.top+Es+wc,Zr>ae.width+Vo+ul?0:on-Vo+ul,Wn-(Es+wc),Po.TOP_RIGHT):new vs(ae.left+ae.width-(La+eu),ae.top+Es+wc),this.bottomRightContentBox=ri>0||Xi>0?Oa(ae.left+Math.min(Xo,ae.width-(Vo+ul)),ae.top+Math.min(So,ae.height+Es+wc),Math.max(0,ri-(La+eu)),Xi-(Ba+xu),Po.BOTTOM_RIGHT):new vs(ae.left+ae.width-(La+eu),ae.top+ae.height-(Ba+xu)),this.bottomLeftContentBox=Ur>0||zr>0?Oa(ae.left+Vo+ul,ae.top+Fo,Math.max(0,Ur-(Vo+ul)),zr-(Ba+xu),Po.BOTTOM_LEFT):new vs(ae.left+Vo+ul,ae.top+ae.height-(Ba+xu))}}(),Po=function(ne){return ne[ne.TOP_LEFT=0]="TOP_LEFT",ne[ne.TOP_RIGHT=1]="TOP_RIGHT",ne[ne.BOTTOM_RIGHT=2]="BOTTOM_RIGHT",ne[ne.BOTTOM_LEFT=3]="BOTTOM_LEFT",ne}(Po||{}),Oa=function(ne,j,ce,ae,Ue){var dt=(Math.sqrt(2)-1)/3*4,Bt=ce*dt,an=ae*dt,on=ne+ce,Wn=j+ae;switch(Ue){case Po.TOP_LEFT:return new O1(new vs(ne,Wn),new vs(ne,Wn-an),new vs(on-Bt,j),new vs(on,j));case Po.TOP_RIGHT:return new O1(new vs(ne,j),new vs(ne+Bt,j),new vs(on,Wn-an),new vs(on,Wn));case Po.BOTTOM_RIGHT:return new O1(new vs(on,j),new vs(on,j+an),new vs(ne+Bt,Wn),new vs(ne,Wn));default:return new O1(new vs(on,Wn),new vs(on-Bt,Wn),new vs(ne,j+an),new vs(ne,j))}},cc=function(ne){return[ne.topLeftBorderBox,ne.topRightBorderBox,ne.bottomRightBorderBox,ne.bottomLeftBorderBox]},Ca=function(ne){return[ne.topLeftPaddingBox,ne.topRightPaddingBox,ne.bottomRightPaddingBox,ne.bottomLeftPaddingBox]},Wp=function(){return function ne(j,ce,ae){this.offsetX=j,this.offsetY=ce,this.matrix=ae,this.type=0,this.target=6}}(),gd=function(){return function ne(j,ce){this.path=j,this.target=ce,this.type=1}}(),UA=function(){return function ne(j){this.opacity=j,this.type=2,this.target=6}}(),yv=function(ne){return 1===ne.type},t0=function(ne,j){return ne.length===j.length&&ne.some(function(ce,ae){return ce===j[ae]})},ds=function(){return function ne(j){this.element=j,this.inlineLevel=[],this.nonInlineLevel=[],this.negativeZIndex=[],this.zeroOrAutoZIndexOrTransformedOrOpacity=[],this.positiveZIndex=[],this.nonPositionedFloats=[],this.nonPositionedInlineLevel=[]}}(),mh=function(){function ne(j,ce){if(this.container=j,this.parent=ce,this.effects=[],this.curves=new L1(this.container),this.container.styles.opacity<1&&this.effects.push(new UA(this.container.styles.opacity)),null!==this.container.styles.transform&&this.effects.push(new Wp(this.container.bounds.left+this.container.styles.transformOrigin[0].number,this.container.bounds.top+this.container.styles.transformOrigin[1].number,this.container.styles.transform)),0!==this.container.styles.overflowX){var Bt=cc(this.curves),an=Ca(this.curves);t0(Bt,an)?this.effects.push(new gd(Bt,6)):(this.effects.push(new gd(Bt,2)),this.effects.push(new gd(an,4)))}}return ne.prototype.getEffects=function(j){for(var ce=-1===[2,3].indexOf(this.container.styles.position),ae=this.parent,Ue=this.effects.slice(0);ae;){var dt=ae.effects.filter(function(on){return!yv(on)});if(ce||0!==ae.container.styles.position||!ae.parent){if(Ue.unshift.apply(Ue,dt),ce=-1===[2,3].indexOf(ae.container.styles.position),0!==ae.container.styles.overflowX){var Bt=cc(ae.curves),an=Ca(ae.curves);t0(Bt,an)||Ue.unshift(new gd(an,6))}}else Ue.unshift.apply(Ue,dt);ae=ae.parent}return Ue.filter(function(on){return Yo(on.target,j)})},ne}(),Hm=function(ne,j,ce,ae){ne.container.elements.forEach(function(Ue){var dt=Yo(Ue.flags,4),Bt=Yo(Ue.flags,2),an=new mh(Ue,ne);Yo(Ue.styles.display,2048)&&ae.push(an);var on=Yo(Ue.flags,8)?[]:ae;if(dt||Bt){var Wn=dt||Ue.styles.isPositioned()?ce:j,Zn=new ds(an);if(Ue.styles.isPositioned()||Ue.styles.opacity<1||Ue.styles.isTransformed()){var ri=Ue.styles.zIndex.order;if(ri<0){var Xi=0;Wn.negativeZIndex.some(function(Ur,zr){return ri>Ur.element.container.styles.zIndex.order?(Xi=zr,!1):Xi>0}),Wn.negativeZIndex.splice(Xi,0,Zn)}else if(ri>0){var Ss=0;Wn.positiveZIndex.some(function(Ur,zr){return ri>=Ur.element.container.styles.zIndex.order?(Ss=zr+1,!1):Ss>0}),Wn.positiveZIndex.splice(Ss,0,Zn)}else Wn.zeroOrAutoZIndexOrTransformedOrOpacity.push(Zn)}else Ue.styles.isFloating()?Wn.nonPositionedFloats.push(Zn):Wn.nonPositionedInlineLevel.push(Zn);Hm(an,Zn,dt?Zn:ce,on)}else Ue.styles.isInlineLevel()?j.inlineLevel.push(an):j.nonInlineLevel.push(an),Hm(an,j,ce,on);Yo(Ue.flags,8)&&U1(Ue,on)})},U1=function(ne,j){for(var ce=ne instanceof Vg?ne.start:1,ae=ne instanceof Vg&&ne.reversed,Ue=0;Ue"u"?ne[0]:ce},A_=function(ne,j,ce,ae,Ue){var dt=j[0],Bt=j[1],an=ce[0],on=ce[1];switch(ne){case 2:return[new vs(Math.round(ae.left),Math.round(ae.top+Bt)),new vs(Math.round(ae.left+ae.width),Math.round(ae.top+Bt)),new vs(Math.round(ae.left+ae.width),Math.round(on+ae.top+Bt)),new vs(Math.round(ae.left),Math.round(on+ae.top+Bt))];case 3:return[new vs(Math.round(ae.left+dt),Math.round(ae.top)),new vs(Math.round(ae.left+dt+an),Math.round(ae.top)),new vs(Math.round(ae.left+dt+an),Math.round(ae.height+ae.top)),new vs(Math.round(ae.left+dt),Math.round(ae.height+ae.top))];case 1:return[new vs(Math.round(ae.left+dt),Math.round(ae.top+Bt)),new vs(Math.round(ae.left+dt+an),Math.round(ae.top+Bt)),new vs(Math.round(ae.left+dt+an),Math.round(ae.top+Bt+on)),new vs(Math.round(ae.left+dt),Math.round(ae.top+Bt+on))];default:return[new vs(Math.round(Ue.left),Math.round(Ue.top)),new vs(Math.round(Ue.left+Ue.width),Math.round(Ue.top)),new vs(Math.round(Ue.left+Ue.width),Math.round(Ue.height+Ue.top)),new vs(Math.round(Ue.left),Math.round(Ue.height+Ue.top))]}},Vm="Hidden Text",V1=function(){function ne(j){this._data={},this._document=j}return ne.prototype.parseMetrics=function(j,ce){var ae=this._document.createElement("div"),Ue=this._document.createElement("img"),dt=this._document.createElement("span"),Bt=this._document.body;ae.style.visibility="hidden",ae.style.fontFamily=j,ae.style.fontSize=ce,ae.style.margin="0",ae.style.padding="0",ae.style.whiteSpace="nowrap",Bt.appendChild(ae),Ue.src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",Ue.width=1,Ue.height=1,Ue.style.margin="0",Ue.style.padding="0",Ue.style.verticalAlign="baseline",dt.style.fontFamily=j,dt.style.fontSize=ce,dt.style.margin="0",dt.style.padding="0",dt.appendChild(this._document.createTextNode(Vm)),ae.appendChild(dt),ae.appendChild(Ue);var an=Ue.offsetTop-dt.offsetTop+2;ae.removeChild(dt),ae.appendChild(this._document.createTextNode(Vm)),ae.style.lineHeight="normal",Ue.style.verticalAlign="super";var on=Ue.offsetTop-ae.offsetTop+2;return Bt.removeChild(ae),{baseline:an,middle:on}},ne.prototype.getMetrics=function(j,ce){var ae=j+" "+ce;return typeof this._data[ae]>"u"&&(this._data[ae]=this.parseMetrics(j,ce)),this._data[ae]},ne}(),r0=function(){return function ne(j,ce){this.context=j,this.options=ce}}(),GA=function(ne){function j(ce,ae){var Ue=ne.call(this,ce,ae)||this;return Ue._activeEffects=[],Ue.canvas=ae.canvas?ae.canvas:document.createElement("canvas"),Ue.ctx=Ue.canvas.getContext("2d"),ae.canvas||(Ue.canvas.width=Math.floor(ae.width*ae.scale),Ue.canvas.height=Math.floor(ae.height*ae.scale),Ue.canvas.style.width=ae.width+"px",Ue.canvas.style.height=ae.height+"px"),Ue.fontMetrics=new V1(document),Ue.ctx.scale(Ue.options.scale,Ue.options.scale),Ue.ctx.translate(-ae.x,-ae.y),Ue.ctx.textBaseline="bottom",Ue._activeEffects=[],Ue.context.logger.debug("Canvas renderer initialized ("+ae.width+"x"+ae.height+") with scale "+ae.scale),Ue}return Se(j,ne),j.prototype.applyEffects=function(ce){for(var ae=this;this._activeEffects.length;)this.popEffect();ce.forEach(function(Ue){return ae.applyEffect(Ue)})},j.prototype.applyEffect=function(ce){this.ctx.save(),function(ne){return 2===ne.type}(ce)&&(this.ctx.globalAlpha=ce.opacity),function(ne){return 0===ne.type}(ce)&&(this.ctx.translate(ce.offsetX,ce.offsetY),this.ctx.transform(ce.matrix[0],ce.matrix[1],ce.matrix[2],ce.matrix[3],ce.matrix[4],ce.matrix[5]),this.ctx.translate(-ce.offsetX,-ce.offsetY)),yv(ce)&&(this.path(ce.path),this.ctx.clip()),this._activeEffects.push(ce)},j.prototype.popEffect=function(){this._activeEffects.pop(),this.ctx.restore()},j.prototype.renderStack=function(ce){return x(this,void 0,void 0,function(){return L(this,function(Ue){switch(Ue.label){case 0:return ce.element.container.styles.isVisible()?[4,this.renderStackContent(ce)]:[3,2];case 1:Ue.sent(),Ue.label=2;case 2:return[2]}})})},j.prototype.renderNode=function(ce){return x(this,void 0,void 0,function(){return L(this,function(ae){switch(ae.label){case 0:return Yo(ce.container.flags,16),ce.container.styles.isVisible()?[4,this.renderNodeBackgroundAndBorders(ce)]:[3,3];case 1:return ae.sent(),[4,this.renderNodeContent(ce)];case 2:ae.sent(),ae.label=3;case 3:return[2]}})})},j.prototype.renderTextWithLetterSpacing=function(ce,ae,Ue){var dt=this;0===ae?this.ctx.fillText(ce.text,ce.bounds.left,ce.bounds.top+Ue):Th(ce.text).reduce(function(an,on){return dt.ctx.fillText(on,an,ce.bounds.top+Ue),an+dt.ctx.measureText(on).width},ce.bounds.left)},j.prototype.createFontStyle=function(ce){var ae=ce.fontVariant.filter(function(Bt){return"normal"===Bt||"small-caps"===Bt}).join(""),Ue=Qm(ce.fontFamily).join(", "),dt=xi(ce.fontSize)?""+ce.fontSize.number+ce.fontSize.unit:ce.fontSize.number+"px";return[[ce.fontStyle,ae,ce.fontWeight,dt,Ue].join(" "),Ue,dt]},j.prototype.renderTextNode=function(ce,ae){return x(this,void 0,void 0,function(){var Ue,Bt,an,on,Wn,Zn,ri,Xi=this;return L(this,function(Ss){return Ue=this.createFontStyle(ae),Bt=Ue[1],an=Ue[2],this.ctx.font=Ue[0],this.ctx.direction=1===ae.direction?"rtl":"ltr",this.ctx.textAlign="left",this.ctx.textBaseline="alphabetic",on=this.fontMetrics.getMetrics(Bt,an),Wn=on.baseline,Zn=on.middle,ri=ae.paintOrder,ce.textBounds.forEach(function(Ur){ri.forEach(function(zr){switch(zr){case 0:Xi.ctx.fillStyle=vl(ae.color),Xi.renderTextWithLetterSpacing(Ur,ae.letterSpacing,Wn);var Ho=ae.textShadow;Ho.length&&Ur.text.trim().length&&(Ho.slice(0).reverse().forEach(function(Ns){Xi.ctx.shadowColor=vl(Ns.color),Xi.ctx.shadowOffsetX=Ns.offsetX.number*Xi.options.scale,Xi.ctx.shadowOffsetY=Ns.offsetY.number*Xi.options.scale,Xi.ctx.shadowBlur=Ns.blur.number,Xi.renderTextWithLetterSpacing(Ur,ae.letterSpacing,Wn)}),Xi.ctx.shadowColor="",Xi.ctx.shadowOffsetX=0,Xi.ctx.shadowOffsetY=0,Xi.ctx.shadowBlur=0),ae.textDecorationLine.length&&(Xi.ctx.fillStyle=vl(ae.textDecorationColor||ae.color),ae.textDecorationLine.forEach(function(Ns){switch(Ns){case 1:Xi.ctx.fillRect(Ur.bounds.left,Math.round(Ur.bounds.top+Wn),Ur.bounds.width,1);break;case 2:Xi.ctx.fillRect(Ur.bounds.left,Math.round(Ur.bounds.top),Ur.bounds.width,1);break;case 3:Xi.ctx.fillRect(Ur.bounds.left,Math.ceil(Ur.bounds.top+Zn),Ur.bounds.width,1)}}));break;case 1:ae.webkitTextStrokeWidth&&Ur.text.trim().length&&(Xi.ctx.strokeStyle=vl(ae.webkitTextStrokeColor),Xi.ctx.lineWidth=ae.webkitTextStrokeWidth,Xi.ctx.lineJoin=window.chrome?"miter":"round",Xi.ctx.strokeText(Ur.text,Ur.bounds.left,Ur.bounds.top+Wn)),Xi.ctx.strokeStyle="",Xi.ctx.lineWidth=0,Xi.ctx.lineJoin="miter"}})}),[2]})})},j.prototype.renderReplacedElement=function(ce,ae,Ue){if(Ue&&ce.intrinsicWidth>0&&ce.intrinsicHeight>0){var dt=ml(ce),Bt=Ca(ae);this.path(Bt),this.ctx.save(),this.ctx.clip(),this.ctx.drawImage(Ue,0,0,ce.intrinsicWidth,ce.intrinsicHeight,dt.left,dt.top,dt.width,dt.height),this.ctx.restore()}},j.prototype.renderNodeContent=function(ce){return x(this,void 0,void 0,function(){var ae,Ue,dt,Bt,an,Zn,ri,Xi,Ur,zr,Ho,Ns,Zr,So,Xo,Fo;return L(this,function(Es){switch(Es.label){case 0:this.applyEffects(ce.getEffects(4)),Ue=ce.curves,dt=(ae=ce.container).styles,Bt=0,an=ae.textNodes,Es.label=1;case 1:return Bt0&&bf>0&&($p=dt.ctx.createRadialGradient(eu+ed,xu+Fd,0,eu+ed,xu+Fd,Ah),Dg(Zn.stops,2*Ah).forEach(function(jm){return $p.addColorStop(jm.stop,vl(jm.color))}),dt.path(wc),dt.ctx.fillStyle=$p,Ah!==bf?(Xp=ce.bounds.left+.5*ce.bounds.width,xf=ce.bounds.top+.5*ce.bounds.height,Rh=1/(Yp=bf/Ah),dt.ctx.save(),dt.ctx.translate(Xp,xf),dt.ctx.transform(1,0,0,Yp,0,0),dt.ctx.translate(-Xp,-xf),dt.ctx.fillRect(eu,Rh*(xu-xf)+xf,ul,Kc*Rh),dt.ctx.restore()):dt.ctx.fill())):(Ur=op(ce,ae,[null,null,null]),wc=Ur[0],ed=Ur[1],Fd=Ur[2],zr=Cm(Zn.angle,ul=Ur[3],Kc=Ur[4]),Ho=zr[0],Ns=zr[1],Zr=zr[2],So=zr[3],Xo=zr[4],(Fo=document.createElement("canvas")).width=ul,Fo.height=Kc,Es=Fo.getContext("2d"),La=Es.createLinearGradient(Ns,So,Zr,Xo),Dg(Zn.stops,Ho).forEach(function(jm){return La.addColorStop(jm.stop,vl(jm.color))}),Es.fillStyle=La,Es.fillRect(0,0,ul,Kc),ul>0&&Kc>0&&(Ba=dt.ctx.createPattern(Fo,"repeat"),dt.renderRepeat(wc,Ba,ed,Fd))),qA.label=6;case 6:return ae--,[2]}})},dt=this,Bt=0,an=ce.styles.backgroundImage.slice(0).reverse(),Wn.label=1;case 1:return Bt0?2!==Zn.style?[3,5]:[4,this.renderDashedDottedBorder(Zn.color,Zn.width,an,ce.curves,2)]:[3,11]:[3,13];case 4:return Xi.sent(),[3,11];case 5:return 3!==Zn.style?[3,7]:[4,this.renderDashedDottedBorder(Zn.color,Zn.width,an,ce.curves,3)];case 6:return Xi.sent(),[3,11];case 7:return 4!==Zn.style?[3,9]:[4,this.renderDoubleBorder(Zn.color,Zn.width,an,ce.curves)];case 8:return Xi.sent(),[3,11];case 9:return[4,this.renderSolidBorder(Zn.color,an,ce.curves)];case 10:Xi.sent(),Xi.label=11;case 11:an++,Xi.label=12;case 12:return on++,[3,3];case 13:return[2]}})})},j.prototype.renderDashedDottedBorder=function(ce,ae,Ue,dt,Bt){return x(this,void 0,void 0,function(){var an,on,Wn,Zn,ri,Xi,Ss,Ur,zr,Ho,Ns,Zr,So,Xo,Fo,Es;return L(this,function(La){return this.ctx.save(),an=function(ne,j){switch(j){case 0:return Vl(ne.topLeftBorderStroke,ne.topRightBorderStroke);case 1:return Vl(ne.topRightBorderStroke,ne.bottomRightBorderStroke);case 2:return Vl(ne.bottomRightBorderStroke,ne.bottomLeftBorderStroke);default:return Vl(ne.bottomLeftBorderStroke,ne.topLeftBorderStroke)}}(dt,Ue),on=H1(dt,Ue),2===Bt&&(this.path(on),this.ctx.clip()),Nc(on[0])?(Wn=on[0].start.x,Zn=on[0].start.y):(Wn=on[0].x,Zn=on[0].y),Nc(on[1])?(ri=on[1].end.x,Xi=on[1].end.y):(ri=on[1].x,Xi=on[1].y),Ss=0===Ue||2===Ue?Math.abs(Wn-ri):Math.abs(Zn-Xi),this.ctx.beginPath(),this.formatPath(3===Bt?an:on.slice(0,2)),Ur=ae<3?3*ae:2*ae,zr=ae<3?2*ae:ae,3===Bt&&(Ur=ae,zr=ae),Ho=!0,Ss<=2*Ur?Ho=!1:Ss<=2*Ur+zr?(Ur*=Ns=Ss/(2*Ur+zr),zr*=Ns):(Zr=Math.floor((Ss+zr)/(Ur+zr)),So=(Ss-Zr*Ur)/(Zr-1),zr=(Xo=(Ss-(Zr+1)*Ur)/Zr)<=0||Math.abs(zr-So){Yr.exports=function mt(Se,Te,x){function L(ot,Ye){if(!Te[ot]){if(!Se[ot]){if(ve)return ve(ot,!0);var Re=new Error("Cannot find module '"+ot+"'");throw Re.code="MODULE_NOT_FOUND",Re}var He=Te[ot]={exports:{}};Se[ot][0].call(He.exports,function(Ve){return L(Se[ot][1][Ve]||Ve)},He,He.exports,mt,Se,Te,x)}return Te[ot].exports}for(var ve=void 0,ke=0;ke>4,Ve=1>6:64,De=2>2)+ve.charAt(He)+ve.charAt(Ve)+ve.charAt(De));return F.join("")},Te.decode=function(ke){var ot,Ye,Ze,Re,He,Ve,De=0,F=0,J="data:";if(ke.substr(0,5)===J)throw new Error("Invalid base64 input, it looks like a data url.");var Y,ue=3*(ke=ke.replace(/[^A-Za-z0-9+/=]/g,"")).length/4;if(ke.charAt(ke.length-1)===ve.charAt(64)&&ue--,ke.charAt(ke.length-2)===ve.charAt(64)&&ue--,ue%1!=0)throw new Error("Invalid base64 input, bad content length.");for(Y=L.uint8array?new Uint8Array(0|ue):new Array(0|ue);De>4,Ye=(15&Re)<<4|(He=ve.indexOf(ke.charAt(De++)))>>2,Ze=(3&He)<<6|(Ve=ve.indexOf(ke.charAt(De++))),Y[F++]=ot,64!==He&&(Y[F++]=Ye),64!==Ve&&(Y[F++]=Ze);return Y}},{"./support":30,"./utils":32}],2:[function(mt,Se,Te){"use strict";var x=mt("./external"),L=mt("./stream/DataWorker"),ve=mt("./stream/Crc32Probe"),ke=mt("./stream/DataLengthProbe");function ot(Ye,Ze,Re,He,Ve){this.compressedSize=Ye,this.uncompressedSize=Ze,this.crc32=Re,this.compression=He,this.compressedContent=Ve}ot.prototype={getContentWorker:function(){var Ye=new L(x.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new ke("data_length")),Ze=this;return Ye.on("end",function(){if(this.streamInfo.data_length!==Ze.uncompressedSize)throw new Error("Bug : uncompressed data size mismatch")}),Ye},getCompressedWorker:function(){return new L(x.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize",this.compressedSize).withStreamInfo("uncompressedSize",this.uncompressedSize).withStreamInfo("crc32",this.crc32).withStreamInfo("compression",this.compression)}},ot.createWorkerFrom=function(Ye,Ze,Re){return Ye.pipe(new ve).pipe(new ke("uncompressedSize")).pipe(Ze.compressWorker(Re)).pipe(new ke("compressedSize")).withStreamInfo("compression",Ze)},Se.exports=ot},{"./external":6,"./stream/Crc32Probe":25,"./stream/DataLengthProbe":26,"./stream/DataWorker":27}],3:[function(mt,Se,Te){"use strict";var x=mt("./stream/GenericWorker");Te.STORE={magic:"\0\0",compressWorker:function(){return new x("STORE compression")},uncompressWorker:function(){return new x("STORE decompression")}},Te.DEFLATE=mt("./flate")},{"./flate":7,"./stream/GenericWorker":28}],4:[function(mt,Se,Te){"use strict";var x=mt("./utils"),L=function(){for(var ve,ke=[],ot=0;ot<256;ot++){ve=ot;for(var Ye=0;Ye<8;Ye++)ve=1&ve?3988292384^ve>>>1:ve>>>1;ke[ot]=ve}return ke}();Se.exports=function(ve,ke){return void 0!==ve&&ve.length?"string"!==x.getTypeOf(ve)?function(ot,Ye,Ze,Re){var He=L,Ve=0+Ze;ot^=-1;for(var De=0;De>>8^He[255&(ot^Ye[De])];return~ot}(0|ke,ve,ve.length):function(ot,Ye,Ze,Re){var He=L,Ve=0+Ze;ot^=-1;for(var De=0;De>>8^He[255&(ot^Ye.charCodeAt(De))];return~ot}(0|ke,ve,ve.length):0}},{"./utils":32}],5:[function(mt,Se,Te){"use strict";Te.base64=!1,Te.binary=!1,Te.dir=!1,Te.createFolders=!0,Te.date=null,Te.compression=null,Te.compressionOptions=null,Te.comment=null,Te.unixPermissions=null,Te.dosPermissions=null},{}],6:[function(mt,Se,Te){"use strict";var x;x=typeof Promise<"u"?Promise:mt("lie"),Se.exports={Promise:x}},{lie:37}],7:[function(mt,Se,Te){"use strict";var x=typeof Uint8Array<"u"&&typeof Uint16Array<"u"&&typeof Uint32Array<"u",L=mt("pako"),ve=mt("./utils"),ke=mt("./stream/GenericWorker"),ot=x?"uint8array":"array";function Ye(Ze,Re){ke.call(this,"FlateWorker/"+Ze),this._pako=null,this._pakoAction=Ze,this._pakoOptions=Re,this.meta={}}Te.magic="\b\0",ve.inherits(Ye,ke),Ye.prototype.processChunk=function(Ze){this.meta=Ze.meta,null===this._pako&&this._createPako(),this._pako.push(ve.transformTo(ot,Ze.data),!1)},Ye.prototype.flush=function(){ke.prototype.flush.call(this),null===this._pako&&this._createPako(),this._pako.push([],!0)},Ye.prototype.cleanUp=function(){ke.prototype.cleanUp.call(this),this._pako=null},Ye.prototype._createPako=function(){this._pako=new L[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var Ze=this;this._pako.onData=function(Re){Ze.push({data:Re,meta:Ze.meta})}},Te.compressWorker=function(Ze){return new Ye("Deflate",Ze)},Te.uncompressWorker=function(){return new Ye("Inflate",{})}},{"./stream/GenericWorker":28,"./utils":32,pako:38}],8:[function(mt,Se,Te){"use strict";function x(He,Ve){var De,F="";for(De=0;De>>=8;return F}function L(He,Ve,De,F,J,Y){var ue,Q,me=He.file,X=He.compression,B=Y!==ot.utf8encode,$=ve.transformTo("string",Y(me.name)),g=ve.transformTo("string",ot.utf8encode(me.name)),E=me.comment,_=ve.transformTo("string",Y(E)),v=ve.transformTo("string",ot.utf8encode(E)),p=g.length!==me.name.length,C=v.length!==E.length,I="",U="",k="",Z=me.dir,ee=me.date,he={crc32:0,compressedSize:0,uncompressedSize:0};Ve&&!De||(he.crc32=He.crc32,he.compressedSize=He.compressedSize,he.uncompressedSize=He.uncompressedSize);var V=0;Ve&&(V|=8),B||!p&&!C||(V|=2048);var z,fe,b=0,P=0;Z&&(b|=16),"UNIX"===J?(P=798,b|=(fe=z=me.unixPermissions,z||(fe=Z?16893:33204),(65535&fe)<<16)):(P=20,b|=function(z){return 63&(z||0)}(me.dosPermissions)),ue=ee.getUTCHours(),ue<<=6,ue|=ee.getUTCMinutes(),ue<<=5,ue|=ee.getUTCSeconds()/2,Q=ee.getUTCFullYear()-1980,Q<<=4,Q|=ee.getUTCMonth()+1,Q<<=5,Q|=ee.getUTCDate(),p&&(U=x(1,1)+x(Ye($),4)+g,I+="up"+x(U.length,2)+U),C&&(k=x(1,1)+x(Ye(_),4)+v,I+="uc"+x(k.length,2)+k);var T="";return T+="\n\0",T+=x(V,2),T+=X.magic,T+=x(ue,2),T+=x(Q,2),T+=x(he.crc32,4),T+=x(he.compressedSize,4),T+=x(he.uncompressedSize,4),T+=x($.length,2),T+=x(I.length,2),{fileRecord:Ze.LOCAL_FILE_HEADER+T+$+I,dirRecord:Ze.CENTRAL_FILE_HEADER+x(P,2)+T+x(_.length,2)+"\0\0\0\0"+x(b,4)+x(F,4)+$+I+_}}var ve=mt("../utils"),ke=mt("../stream/GenericWorker"),ot=mt("../utf8"),Ye=mt("../crc32"),Ze=mt("../signature");function Re(He,Ve,De,F){ke.call(this,"ZipFileWorker"),this.bytesWritten=0,this.zipComment=Ve,this.zipPlatform=De,this.encodeFileName=F,this.streamFiles=He,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}ve.inherits(Re,ke),Re.prototype.push=function(He){var Ve=He.meta.percent||0,De=this.entriesCount,F=this._sources.length;this.accumulate?this.contentBuffer.push(He):(this.bytesWritten+=He.data.length,ke.prototype.push.call(this,{data:He.data,meta:{currentFile:this.currentFile,percent:De?(Ve+100*(De-F-1))/De:100}}))},Re.prototype.openedSource=function(He){this.currentSourceOffset=this.bytesWritten,this.currentFile=He.file.name;var Ve=this.streamFiles&&!He.file.dir;if(Ve){var De=L(He,Ve,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:De.fileRecord,meta:{percent:0}})}else this.accumulate=!0},Re.prototype.closedSource=function(He){this.accumulate=!1;var F,Ve=this.streamFiles&&!He.file.dir,De=L(He,Ve,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(De.dirRecord),Ve)this.push({data:(F=He,Ze.DATA_DESCRIPTOR+x(F.crc32,4)+x(F.compressedSize,4)+x(F.uncompressedSize,4)),meta:{percent:100}});else for(this.push({data:De.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},Re.prototype.flush=function(){for(var He=this.bytesWritten,Ve=0;Ve=this.index;ke--)ot=(ot<<8)+this.byteAt(ke);return this.index+=ve,ot},readString:function(ve){return x.transformTo("string",this.readData(ve))},readData:function(){},lastIndexOfSignature:function(){},readAndCheckSignature:function(){},readDate:function(){var ve=this.readInt(4);return new Date(Date.UTC(1980+(ve>>25&127),(ve>>21&15)-1,ve>>16&31,ve>>11&31,ve>>5&63,(31&ve)<<1))}},Se.exports=L},{"../utils":32}],19:[function(mt,Se,Te){"use strict";var x=mt("./Uint8ArrayReader");function L(ve){x.call(this,ve)}mt("../utils").inherits(L,x),L.prototype.readData=function(ve){this.checkOffset(ve);var ke=this.data.slice(this.zero+this.index,this.zero+this.index+ve);return this.index+=ve,ke},Se.exports=L},{"../utils":32,"./Uint8ArrayReader":21}],20:[function(mt,Se,Te){"use strict";var x=mt("./DataReader");function L(ve){x.call(this,ve)}mt("../utils").inherits(L,x),L.prototype.byteAt=function(ve){return this.data.charCodeAt(this.zero+ve)},L.prototype.lastIndexOfSignature=function(ve){return this.data.lastIndexOf(ve)-this.zero},L.prototype.readAndCheckSignature=function(ve){return ve===this.readData(4)},L.prototype.readData=function(ve){this.checkOffset(ve);var ke=this.data.slice(this.zero+this.index,this.zero+this.index+ve);return this.index+=ve,ke},Se.exports=L},{"../utils":32,"./DataReader":18}],21:[function(mt,Se,Te){"use strict";var x=mt("./ArrayReader");function L(ve){x.call(this,ve)}mt("../utils").inherits(L,x),L.prototype.readData=function(ve){if(this.checkOffset(ve),0===ve)return new Uint8Array(0);var ke=this.data.subarray(this.zero+this.index,this.zero+this.index+ve);return this.index+=ve,ke},Se.exports=L},{"../utils":32,"./ArrayReader":17}],22:[function(mt,Se,Te){"use strict";var x=mt("../utils"),L=mt("../support"),ve=mt("./ArrayReader"),ke=mt("./StringReader"),ot=mt("./NodeBufferReader"),Ye=mt("./Uint8ArrayReader");Se.exports=function(Ze){var Re=x.getTypeOf(Ze);return x.checkSupport(Re),"string"!==Re||L.uint8array?"nodebuffer"===Re?new ot(Ze):L.uint8array?new Ye(x.transformTo("uint8array",Ze)):new ve(x.transformTo("array",Ze)):new ke(Ze)}},{"../support":30,"../utils":32,"./ArrayReader":17,"./NodeBufferReader":19,"./StringReader":20,"./Uint8ArrayReader":21}],23:[function(mt,Se,Te){"use strict";Te.LOCAL_FILE_HEADER="PK\x03\x04",Te.CENTRAL_FILE_HEADER="PK\x01\x02",Te.CENTRAL_DIRECTORY_END="PK\x05\x06",Te.ZIP64_CENTRAL_DIRECTORY_LOCATOR="PK\x06\x07",Te.ZIP64_CENTRAL_DIRECTORY_END="PK\x06\x06",Te.DATA_DESCRIPTOR="PK\x07\b"},{}],24:[function(mt,Se,Te){"use strict";var x=mt("./GenericWorker"),L=mt("../utils");function ve(ke){x.call(this,"ConvertWorker to "+ke),this.destType=ke}L.inherits(ve,x),ve.prototype.processChunk=function(ke){this.push({data:L.transformTo(this.destType,ke.data),meta:ke.meta})},Se.exports=ve},{"../utils":32,"./GenericWorker":28}],25:[function(mt,Se,Te){"use strict";var x=mt("./GenericWorker"),L=mt("../crc32");function ve(){x.call(this,"Crc32Probe"),this.withStreamInfo("crc32",0)}mt("../utils").inherits(ve,x),ve.prototype.processChunk=function(ke){this.streamInfo.crc32=L(ke.data,this.streamInfo.crc32||0),this.push(ke)},Se.exports=ve},{"../crc32":4,"../utils":32,"./GenericWorker":28}],26:[function(mt,Se,Te){"use strict";var x=mt("../utils"),L=mt("./GenericWorker");function ve(ke){L.call(this,"DataLengthProbe for "+ke),this.propName=ke,this.withStreamInfo(ke,0)}x.inherits(ve,L),ve.prototype.processChunk=function(ke){ke&&(this.streamInfo[this.propName]=(this.streamInfo[this.propName]||0)+ke.data.length),L.prototype.processChunk.call(this,ke)},Se.exports=ve},{"../utils":32,"./GenericWorker":28}],27:[function(mt,Se,Te){"use strict";var x=mt("../utils"),L=mt("./GenericWorker");function ve(ke){L.call(this,"DataWorker");var ot=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type="",this._tickScheduled=!1,ke.then(function(Ye){ot.dataIsReady=!0,ot.data=Ye,ot.max=Ye&&Ye.length||0,ot.type=x.getTypeOf(Ye),ot.isPaused||ot._tickAndRepeat()},function(Ye){ot.error(Ye)})}x.inherits(ve,L),ve.prototype.cleanUp=function(){L.prototype.cleanUp.call(this),this.data=null},ve.prototype.resume=function(){return!!L.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,x.delay(this._tickAndRepeat,[],this)),!0)},ve.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(x.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},ve.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var ke=null,ot=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case"string":ke=this.data.substring(this.index,ot);break;case"uint8array":ke=this.data.subarray(this.index,ot);break;case"array":case"nodebuffer":ke=this.data.slice(this.index,ot)}return this.index=ot,this.push({data:ke,meta:{percent:this.max?this.index/this.max*100:0}})},Se.exports=ve},{"../utils":32,"./GenericWorker":28}],28:[function(mt,Se,Te){"use strict";function x(L){this.name=L||"default",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}x.prototype={push:function(L){this.emit("data",L)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit("end"),this.cleanUp(),this.isFinished=!0}catch(L){this.emit("error",L)}return!0},error:function(L){return!this.isFinished&&(this.isPaused?this.generatedError=L:(this.isFinished=!0,this.emit("error",L),this.previous&&this.previous.error(L),this.cleanUp()),!0)},on:function(L,ve){return this._listeners[L].push(ve),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(L,ve){if(this._listeners[L])for(var ke=0;ke "+L:L}},Se.exports=x},{}],29:[function(mt,Se,Te){"use strict";var x=mt("../utils"),L=mt("./ConvertWorker"),ve=mt("./GenericWorker"),ke=mt("../base64"),ot=mt("../support"),Ye=mt("../external"),Ze=null;if(ot.nodestream)try{Ze=mt("../nodejs/NodejsStreamOutputAdapter")}catch{}function He(Ve,De,F){var J=De;switch(De){case"blob":case"arraybuffer":J="uint8array";break;case"base64":J="string"}try{this._internalType=J,this._outputType=De,this._mimeType=F,x.checkSupport(J),this._worker=Ve.pipe(new L(J)),Ve.lock()}catch(Y){this._worker=new ve("error"),this._worker.error(Y)}}He.prototype={accumulate:function(Ve){return function Re(Ve,De){return new Ye.Promise(function(F,J){var Y=[],ue=Ve._internalType,Q=Ve._outputType,me=Ve._mimeType;Ve.on("data",function(X,B){Y.push(X),De&&De(B)}).on("error",function(X){Y=[],J(X)}).on("end",function(){try{var X=function(B,$,g){switch(B){case"blob":return x.newBlob(x.transformTo("arraybuffer",$),g);case"base64":return ke.encode($);default:return x.transformTo(B,$)}}(Q,function(B,$){var g,E=0,_=null,v=0;for(g=0;g<$.length;g++)v+=$[g].length;switch(B){case"string":return $.join("");case"array":return Array.prototype.concat.apply([],$);case"uint8array":for(_=new Uint8Array(v),g=0;g<$.length;g++)_.set($[g],E),E+=$[g].length;return _;case"nodebuffer":return Buffer.concat($);default:throw new Error("concat : unsupported type '"+B+"'")}}(ue,Y),me);F(X)}catch(B){J(B)}Y=[]}).resume()})}(this,Ve)},on:function(Ve,De){var F=this;return this._worker.on(Ve,"data"===Ve?function(J){De.call(F,J.data,J.meta)}:function(){x.delay(De,arguments,F)}),this},resume:function(){return x.delay(this._worker.resume,[],this._worker),this},pause:function(){return this._worker.pause(),this},toNodejsStream:function(Ve){if(x.checkSupport("nodestream"),"nodebuffer"!==this._outputType)throw new Error(this._outputType+" is not supported by this method");return new Ze(this,{objectMode:"nodebuffer"!==this._outputType},Ve)}},Se.exports=He},{"../base64":1,"../external":6,"../nodejs/NodejsStreamOutputAdapter":13,"../support":30,"../utils":32,"./ConvertWorker":24,"./GenericWorker":28}],30:[function(mt,Se,Te){"use strict";if(Te.base64=!0,Te.array=!0,Te.string=!0,Te.arraybuffer=typeof ArrayBuffer<"u"&&typeof Uint8Array<"u",Te.nodebuffer=typeof Buffer<"u",Te.uint8array=typeof Uint8Array<"u",typeof ArrayBuffer>"u")Te.blob=!1;else{var x=new ArrayBuffer(0);try{Te.blob=0===new Blob([x],{type:"application/zip"}).size}catch{try{var L=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);L.append(x),Te.blob=0===L.getBlob("application/zip").size}catch{Te.blob=!1}}}try{Te.nodestream=!!mt("readable-stream").Readable}catch{Te.nodestream=!1}},{"readable-stream":16}],31:[function(mt,Se,Te){"use strict";for(var x=mt("./utils"),L=mt("./support"),ve=mt("./nodejsUtils"),ke=mt("./stream/GenericWorker"),ot=new Array(256),Ye=0;Ye<256;Ye++)ot[Ye]=252<=Ye?6:248<=Ye?5:240<=Ye?4:224<=Ye?3:192<=Ye?2:1;function Ze(){ke.call(this,"utf-8 decode"),this.leftOver=null}function Re(){ke.call(this,"utf-8 encode")}ot[254]=ot[254]=1,Te.utf8encode=function(He){return L.nodebuffer?ve.newBufferFrom(He,"utf-8"):function(Ve){var De,F,J,Y,ue,Q=Ve.length,me=0;for(Y=0;Y>>6:(F<65536?De[ue++]=224|F>>>12:(De[ue++]=240|F>>>18,De[ue++]=128|F>>>12&63),De[ue++]=128|F>>>6&63),De[ue++]=128|63&F);return De}(He)},Te.utf8decode=function(He){return L.nodebuffer?x.transformTo("nodebuffer",He).toString("utf-8"):function(Ve){var De,F,J,Y,ue=Ve.length,Q=new Array(2*ue);for(De=F=0;De>10&1023,Q[F++]=56320|1023&J)}return Q.length!==F&&(Q.subarray?Q=Q.subarray(0,F):Q.length=F),x.applyFromCharCode(Q)}(He=x.transformTo(L.uint8array?"uint8array":"array",He))},x.inherits(Ze,ke),Ze.prototype.processChunk=function(He){var Ve=x.transformTo(L.uint8array?"uint8array":"array",He.data);if(this.leftOver&&this.leftOver.length){if(L.uint8array){var De=Ve;(Ve=new Uint8Array(De.length+this.leftOver.length)).set(this.leftOver,0),Ve.set(De,this.leftOver.length)}else Ve=this.leftOver.concat(Ve);this.leftOver=null}var F=function(Y,ue){var Q;for((ue=ue||Y.length)>Y.length&&(ue=Y.length),Q=ue-1;0<=Q&&128==(192&Y[Q]);)Q--;return Q<0||0===Q?ue:Q+ot[Y[Q]]>ue?Q:ue}(Ve),J=Ve;F!==Ve.length&&(L.uint8array?(J=Ve.subarray(0,F),this.leftOver=Ve.subarray(F,Ve.length)):(J=Ve.slice(0,F),this.leftOver=Ve.slice(F,Ve.length))),this.push({data:Te.utf8decode(J),meta:He.meta})},Ze.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:Te.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},Te.Utf8DecodeWorker=Ze,x.inherits(Re,ke),Re.prototype.processChunk=function(He){this.push({data:Te.utf8encode(He.data),meta:He.meta})},Te.Utf8EncodeWorker=Re},{"./nodejsUtils":14,"./stream/GenericWorker":28,"./support":30,"./utils":32}],32:[function(mt,Se,Te){"use strict";var x=mt("./support"),L=mt("./base64"),ve=mt("./nodejsUtils"),ke=mt("./external");function ot(De){return De}function Ye(De,F){for(var J=0;J>8;this.dir=!!(16&this.externalFileAttributes),0==He&&(this.dosPermissions=63&this.externalFileAttributes),3==He&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||"/"!==this.fileNameStr.slice(-1)||(this.dir=!0)},parseZIP64ExtraField:function(){if(this.extraFields[1]){var He=x(this.extraFields[1].value);this.uncompressedSize===L.MAX_VALUE_32BITS&&(this.uncompressedSize=He.readInt(8)),this.compressedSize===L.MAX_VALUE_32BITS&&(this.compressedSize=He.readInt(8)),this.localHeaderOffset===L.MAX_VALUE_32BITS&&(this.localHeaderOffset=He.readInt(8)),this.diskNumberStart===L.MAX_VALUE_32BITS&&(this.diskNumberStart=He.readInt(4))}},readExtraFields:function(He){var Ve,De,F,J=He.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});He.index+4>>6:(He<65536?Re[F++]=224|He>>>12:(Re[F++]=240|He>>>18,Re[F++]=128|He>>>12&63),Re[F++]=128|He>>>6&63),Re[F++]=128|63&He);return Re},Te.buf2binstring=function(Ze){return Ye(Ze,Ze.length)},Te.binstring2buf=function(Ze){for(var Re=new x.Buf8(Ze.length),He=0,Ve=Re.length;He>10&1023,Y[Ve++]=56320|1023&De)}return Ye(Y,Ve)},Te.utf8border=function(Ze,Re){var He;for((Re=Re||Ze.length)>Ze.length&&(Re=Ze.length),He=Re-1;0<=He&&128==(192&Ze[He]);)He--;return He<0||0===He?Re:He+ke[Ze[He]]>Re?He:Re}},{"./common":41}],43:[function(mt,Se,Te){"use strict";Se.exports=function(x,L,ve,ke){for(var ot=65535&x,Ye=x>>>16&65535,Ze=0;0!==ve;){for(ve-=Ze=2e3>>1:L>>>1;ve[ke]=L}return ve}();Se.exports=function(L,ve,ke,ot){var Ye=x,Ze=ot+ke;L^=-1;for(var Re=ot;Re>>8^Ye[255&(L^ve[Re])];return~L}},{}],46:[function(mt,Se,Te){"use strict";var x,L=mt("../utils/common"),ve=mt("./trees"),ke=mt("./adler32"),ot=mt("./crc32"),Ye=mt("./messages"),Ze=0,He=0,Ve=-2,J=2,Y=8,Q=286,me=30,X=19,B=2*Q+1,$=15,g=3,E=258,_=E+g+1,v=42,p=113;function Z(te,Je){return te.msg=Ye[Je],Je}function ee(te){return(te<<1)-(4te.avail_out&&(tt=te.avail_out),0!==tt&&(L.arraySet(te.output,Je.pending_buf,Je.pending_out,tt,te.next_out),te.next_out+=tt,Je.pending_out+=tt,te.total_out+=tt,te.avail_out-=tt,Je.pending-=tt,0===Je.pending&&(Je.pending_out=0))}function b(te,Je){ve._tr_flush_block(te,0<=te.block_start?te.block_start:-1,te.strstart-te.block_start,Je),te.block_start=te.strstart,V(te.strm)}function P(te,Je){te.pending_buf[te.pending++]=Je}function T(te,Je){te.pending_buf[te.pending++]=Je>>>8&255,te.pending_buf[te.pending++]=255&Je}function z(te,Je){var tt,Fe,Ne=te.max_chain_length,rt=te.strstart,St=te.prev_length,pt=te.nice_match,st=te.strstart>te.w_size-_?te.strstart-(te.w_size-_):0,vt=te.window,Yt=te.w_mask,qt=te.prev,Ot=te.strstart+E,Bn=vt[rt+St-1],Mn=vt[rt+St];te.prev_length>=te.good_match&&(Ne>>=2),pt>te.lookahead&&(pt=te.lookahead);do{if(vt[(tt=Je)+St]===Mn&&vt[tt+St-1]===Bn&&vt[tt]===vt[rt]&&vt[++tt]===vt[rt+1]){rt+=2,tt++;do{}while(vt[++rt]===vt[++tt]&&vt[++rt]===vt[++tt]&&vt[++rt]===vt[++tt]&&vt[++rt]===vt[++tt]&&vt[++rt]===vt[++tt]&&vt[++rt]===vt[++tt]&&vt[++rt]===vt[++tt]&&vt[++rt]===vt[++tt]&&rtst&&0!=--Ne);return St<=te.lookahead?St:te.lookahead}function W(te){var Je,tt,Fe,Ne,rt,St,pt,st,vt,Yt,qt=te.w_size;do{if(Ne=te.window_size-te.lookahead-te.strstart,te.strstart>=qt+(qt-_)){for(L.arraySet(te.window,te.window,qt,qt,0),te.match_start-=qt,te.strstart-=qt,te.block_start-=qt,Je=tt=te.hash_size;Fe=te.head[--Je],te.head[Je]=qt<=Fe?Fe-qt:0,--tt;);for(Je=tt=qt;Fe=te.prev[--Je],te.prev[Je]=qt<=Fe?Fe-qt:0,--tt;);Ne+=qt}if(0===te.strm.avail_in)break;if(pt=te.window,st=te.strstart+te.lookahead,Yt=void 0,(vt=Ne)<(Yt=(St=te.strm).avail_in)&&(Yt=vt),tt=0===Yt?0:(St.avail_in-=Yt,L.arraySet(pt,St.input,St.next_in,Yt,st),1===St.state.wrap?St.adler=ke(St.adler,pt,Yt,st):2===St.state.wrap&&(St.adler=ot(St.adler,pt,Yt,st)),St.next_in+=Yt,St.total_in+=Yt,Yt),te.lookahead+=tt,te.lookahead+te.insert>=g)for(te.ins_h=te.window[rt=te.strstart-te.insert],te.ins_h=(te.ins_h<=g&&(te.ins_h=(te.ins_h<=g)if(Fe=ve._tr_tally(te,te.strstart-te.match_start,te.match_length-g),te.lookahead-=te.match_length,te.match_length<=te.max_lazy_match&&te.lookahead>=g){for(te.match_length--;te.strstart++,te.ins_h=(te.ins_h<=g&&(te.ins_h=(te.ins_h<=g&&te.match_length<=te.prev_length){for(Ne=te.strstart+te.lookahead-g,Fe=ve._tr_tally(te,te.strstart-1-te.prev_match,te.prev_length-g),te.lookahead-=te.prev_length-1,te.prev_length-=2;++te.strstart<=Ne&&(te.ins_h=(te.ins_h<te.pending_buf_size-5&&(tt=te.pending_buf_size-5);;){if(te.lookahead<=1){if(W(te),0===te.lookahead&&Je===Ze)return 1;if(0===te.lookahead)break}te.strstart+=te.lookahead,te.lookahead=0;var Fe=te.block_start+tt;if((0===te.strstart||te.strstart>=Fe)&&(te.lookahead=te.strstart-Fe,te.strstart=Fe,b(te,!1),0===te.strm.avail_out)||te.strstart-te.block_start>=te.w_size-_&&(b(te,!1),0===te.strm.avail_out))return 1}return te.insert=0,4===Je?(b(te,!0),0===te.strm.avail_out?3:4):(te.strstart>te.block_start&&b(te,!1),1)}),new Me(4,4,8,4,fe),new Me(4,5,16,8,fe),new Me(4,6,32,32,fe),new Me(4,4,16,16,we),new Me(8,16,32,32,we),new Me(8,16,128,128,we),new Me(8,32,128,256,we),new Me(32,128,258,1024,we),new Me(32,258,258,4096,we)],Te.deflateInit=function(te,Je){return bt(te,Je,Y,15,8,0)},Te.deflateInit2=bt,Te.deflateReset=lt,Te.deflateResetKeep=Ge,Te.deflateSetHeader=function(te,Je){return te&&te.state?2!==te.state.wrap?Ve:(te.state.gzhead=Je,He):Ve},Te.deflate=function(te,Je){var tt,Fe,Ne,rt;if(!te||!te.state||5>8&255),P(Fe,Fe.gzhead.time>>16&255),P(Fe,Fe.gzhead.time>>24&255),P(Fe,9===Fe.level?2:2<=Fe.strategy||Fe.level<2?4:0),P(Fe,255&Fe.gzhead.os),Fe.gzhead.extra&&Fe.gzhead.extra.length&&(P(Fe,255&Fe.gzhead.extra.length),P(Fe,Fe.gzhead.extra.length>>8&255)),Fe.gzhead.hcrc&&(te.adler=ot(te.adler,Fe.pending_buf,Fe.pending,0)),Fe.gzindex=0,Fe.status=69):(P(Fe,0),P(Fe,0),P(Fe,0),P(Fe,0),P(Fe,0),P(Fe,9===Fe.level?2:2<=Fe.strategy||Fe.level<2?4:0),P(Fe,3),Fe.status=p);else{var St=Y+(Fe.w_bits-8<<4)<<8;St|=(2<=Fe.strategy||Fe.level<2?0:Fe.level<6?1:6===Fe.level?2:3)<<6,0!==Fe.strstart&&(St|=32),St+=31-St%31,Fe.status=p,T(Fe,St),0!==Fe.strstart&&(T(Fe,te.adler>>>16),T(Fe,65535&te.adler)),te.adler=1}if(69===Fe.status)if(Fe.gzhead.extra){for(Ne=Fe.pending;Fe.gzindex<(65535&Fe.gzhead.extra.length)&&(Fe.pending!==Fe.pending_buf_size||(Fe.gzhead.hcrc&&Fe.pending>Ne&&(te.adler=ot(te.adler,Fe.pending_buf,Fe.pending-Ne,Ne)),V(te),Ne=Fe.pending,Fe.pending!==Fe.pending_buf_size));)P(Fe,255&Fe.gzhead.extra[Fe.gzindex]),Fe.gzindex++;Fe.gzhead.hcrc&&Fe.pending>Ne&&(te.adler=ot(te.adler,Fe.pending_buf,Fe.pending-Ne,Ne)),Fe.gzindex===Fe.gzhead.extra.length&&(Fe.gzindex=0,Fe.status=73)}else Fe.status=73;if(73===Fe.status)if(Fe.gzhead.name){Ne=Fe.pending;do{if(Fe.pending===Fe.pending_buf_size&&(Fe.gzhead.hcrc&&Fe.pending>Ne&&(te.adler=ot(te.adler,Fe.pending_buf,Fe.pending-Ne,Ne)),V(te),Ne=Fe.pending,Fe.pending===Fe.pending_buf_size)){rt=1;break}rt=Fe.gzindexNe&&(te.adler=ot(te.adler,Fe.pending_buf,Fe.pending-Ne,Ne)),0===rt&&(Fe.gzindex=0,Fe.status=91)}else Fe.status=91;if(91===Fe.status)if(Fe.gzhead.comment){Ne=Fe.pending;do{if(Fe.pending===Fe.pending_buf_size&&(Fe.gzhead.hcrc&&Fe.pending>Ne&&(te.adler=ot(te.adler,Fe.pending_buf,Fe.pending-Ne,Ne)),V(te),Ne=Fe.pending,Fe.pending===Fe.pending_buf_size)){rt=1;break}rt=Fe.gzindexNe&&(te.adler=ot(te.adler,Fe.pending_buf,Fe.pending-Ne,Ne)),0===rt&&(Fe.status=103)}else Fe.status=103;if(103===Fe.status&&(Fe.gzhead.hcrc?(Fe.pending+2>Fe.pending_buf_size&&V(te),Fe.pending+2<=Fe.pending_buf_size&&(P(Fe,255&te.adler),P(Fe,te.adler>>8&255),te.adler=0,Fe.status=p)):Fe.status=p),0!==Fe.pending){if(V(te),0===te.avail_out)return Fe.last_flush=-1,He}else if(0===te.avail_in&&ee(Je)<=ee(tt)&&4!==Je)return Z(te,-5);if(666===Fe.status&&0!==te.avail_in)return Z(te,-5);if(0!==te.avail_in||0!==Fe.lookahead||Je!==Ze&&666!==Fe.status){var pt=2===Fe.strategy?function(st,vt){for(var Yt;;){if(0===st.lookahead&&(W(st),0===st.lookahead)){if(vt===Ze)return 1;break}if(st.match_length=0,Yt=ve._tr_tally(st,0,st.window[st.strstart]),st.lookahead--,st.strstart++,Yt&&(b(st,!1),0===st.strm.avail_out))return 1}return st.insert=0,4===vt?(b(st,!0),0===st.strm.avail_out?3:4):st.last_lit&&(b(st,!1),0===st.strm.avail_out)?1:2}(Fe,Je):3===Fe.strategy?function(st,vt){for(var Yt,qt,Ot,Bn,Mn=st.window;;){if(st.lookahead<=E){if(W(st),st.lookahead<=E&&vt===Ze)return 1;if(0===st.lookahead)break}if(st.match_length=0,st.lookahead>=g&&0st.lookahead&&(st.match_length=st.lookahead)}if(st.match_length>=g?(Yt=ve._tr_tally(st,1,st.match_length-g),st.lookahead-=st.match_length,st.strstart+=st.match_length,st.match_length=0):(Yt=ve._tr_tally(st,0,st.window[st.strstart]),st.lookahead--,st.strstart++),Yt&&(b(st,!1),0===st.strm.avail_out))return 1}return st.insert=0,4===vt?(b(st,!0),0===st.strm.avail_out?3:4):st.last_lit&&(b(st,!1),0===st.strm.avail_out)?1:2}(Fe,Je):x[Fe.level].func(Fe,Je);if(3!==pt&&4!==pt||(Fe.status=666),1===pt||3===pt)return 0===te.avail_out&&(Fe.last_flush=-1),He;if(2===pt&&(1===Je?ve._tr_align(Fe):5!==Je&&(ve._tr_stored_block(Fe,0,0,!1),3===Je&&(he(Fe.head),0===Fe.lookahead&&(Fe.strstart=0,Fe.block_start=0,Fe.insert=0))),V(te),0===te.avail_out))return Fe.last_flush=-1,He}return 4!==Je?He:Fe.wrap<=0?1:(2===Fe.wrap?(P(Fe,255&te.adler),P(Fe,te.adler>>8&255),P(Fe,te.adler>>16&255),P(Fe,te.adler>>24&255),P(Fe,255&te.total_in),P(Fe,te.total_in>>8&255),P(Fe,te.total_in>>16&255),P(Fe,te.total_in>>24&255)):(T(Fe,te.adler>>>16),T(Fe,65535&te.adler)),V(te),0=tt.w_size&&(0===rt&&(he(tt.head),tt.strstart=0,tt.block_start=0,tt.insert=0),vt=new L.Buf8(tt.w_size),L.arraySet(vt,Je,Yt-tt.w_size,tt.w_size,0),Je=vt,Yt=tt.w_size),St=te.avail_in,pt=te.next_in,st=te.input,te.avail_in=Yt,te.next_in=0,te.input=Je,W(tt);tt.lookahead>=g;){for(Fe=tt.strstart,Ne=tt.lookahead-(g-1);tt.ins_h=(tt.ins_h<>>=g=$>>>24,ue-=g,0==(g=$>>>16&255))I[Ye++]=65535&$;else{if(!(16&g)){if(!(64&g)){$=Q[(65535&$)+(Y&(1<>>=g,ue-=g),ue<15&&(Y+=C[ke++]<>>=g=$>>>24,ue-=g,!(16&(g=$>>>16&255))){if(!(64&g)){$=me[(65535&$)+(Y&(1<>>=g,ue-=g,(g=Ye-Ze)<_){if(De<(g=_-g)&&ve.sane){x.msg="invalid distance too far back",ve.mode=30;break e}if(p=J,(v=0)===F){if(v+=Ve-g,g>3,Y&=(1<<(ue-=E<<3))-1,x.next_in=ke,x.next_out=Ye,x.avail_in=ke>>24&255)+(v>>>8&65280)+((65280&v)<<8)+((255&v)<<24)}function Y(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new x.Buf16(320),this.work=new x.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function ue(v){var p;return v&&v.state?(v.total_in=v.total_out=(p=v.state).total=0,v.msg="",p.wrap&&(v.adler=1&p.wrap),p.mode=Ve,p.last=0,p.havedict=0,p.dmax=32768,p.head=null,p.hold=0,p.bits=0,p.lencode=p.lendyn=new x.Buf32(De),p.distcode=p.distdyn=new x.Buf32(F),p.sane=1,p.back=-1,Re):He}function Q(v){var p;return v&&v.state?((p=v.state).wsize=0,p.whave=0,p.wnext=0,ue(v)):He}function me(v,p){var C,I;return v&&v.state?(I=v.state,p<0?(C=0,p=-p):(C=1+(p>>4),p<48&&(p&=15)),p&&(p<8||15=k.wsize?(x.arraySet(k.window,p,C-k.wsize,k.wsize,0),k.wnext=0,k.whave=k.wsize):(I<(U=k.wsize-k.wnext)&&(U=I),x.arraySet(k.window,p,C-I,U,k.wnext),(I-=U)?(x.arraySet(k.window,p,C-I,I,0),k.wnext=I,k.whave=k.wsize):(k.wnext+=U,k.wnext===k.wsize&&(k.wnext=0),k.whave>>8&255,C.check=ve(C.check,rt,2,0),b=V=0,C.mode=2;break}if(C.flags=0,C.head&&(C.head.done=!1),!(1&C.wrap)||(((255&V)<<8)+(V>>8))%31){v.msg="incorrect header check",C.mode=30;break}if(8!=(15&V)){v.msg="unknown compression method",C.mode=30;break}if(b-=4,te=8+(15&(V>>>=4)),0===C.wbits)C.wbits=te;else if(te>C.wbits){v.msg="invalid window size",C.mode=30;break}C.dmax=1<>8&1),512&C.flags&&(rt[0]=255&V,rt[1]=V>>>8&255,C.check=ve(C.check,rt,2,0)),b=V=0,C.mode=3;case 3:for(;b<32;){if(0===ee)break e;ee--,V+=I[k++]<>>8&255,rt[2]=V>>>16&255,rt[3]=V>>>24&255,C.check=ve(C.check,rt,4,0)),b=V=0,C.mode=4;case 4:for(;b<16;){if(0===ee)break e;ee--,V+=I[k++]<>8),512&C.flags&&(rt[0]=255&V,rt[1]=V>>>8&255,C.check=ve(C.check,rt,2,0)),b=V=0,C.mode=5;case 5:if(1024&C.flags){for(;b<16;){if(0===ee)break e;ee--,V+=I[k++]<>>8&255,C.check=ve(C.check,rt,2,0)),b=V=0}else C.head&&(C.head.extra=null);C.mode=6;case 6:if(1024&C.flags&&(ee<(z=C.length)&&(z=ee),z&&(C.head&&(te=C.head.extra_len-C.length,C.head.extra||(C.head.extra=new Array(C.head.extra_len)),x.arraySet(C.head.extra,I,k,z,te)),512&C.flags&&(C.check=ve(C.check,I,z,k)),ee-=z,k+=z,C.length-=z),C.length))break e;C.length=0,C.mode=7;case 7:if(2048&C.flags){if(0===ee)break e;for(z=0;te=I[k+z++],C.head&&te&&C.length<65536&&(C.head.name+=String.fromCharCode(te)),te&&z>9&1,C.head.done=!0),v.adler=C.check=0,C.mode=12;break;case 10:for(;b<32;){if(0===ee)break e;ee--,V+=I[k++]<>>=7&b,b-=7&b,C.mode=27;break}for(;b<3;){if(0===ee)break e;ee--,V+=I[k++]<>>=1)){case 0:C.mode=14;break;case 1:if(E(C),C.mode=20,6!==p)break;V>>>=2,b-=2;break e;case 2:C.mode=17;break;case 3:v.msg="invalid block type",C.mode=30}V>>>=2,b-=2;break;case 14:for(V>>>=7&b,b-=7&b;b<32;){if(0===ee)break e;ee--,V+=I[k++]<>>16^65535)){v.msg="invalid stored block lengths",C.mode=30;break}if(C.length=65535&V,b=V=0,C.mode=15,6===p)break e;case 15:C.mode=16;case 16:if(z=C.length){if(ee>>=5)),b-=5,C.ncode=4+(15&(V>>>=5)),V>>>=4,b-=4,286>>=3,b-=3}for(;C.have<19;)C.lens[St[C.have++]]=0;if(C.lencode=C.lendyn,C.lenbits=7,Je=ot(0,C.lens,0,19,C.lencode,0,C.work,tt={bits:C.lenbits}),C.lenbits=tt.bits,Je){v.msg="invalid code lengths set",C.mode=30;break}C.have=0,C.mode=19;case 19:for(;C.have>>16&255,je=65535&Ne,!((we=Ne>>>24)<=b);){if(0===ee)break e;ee--,V+=I[k++]<>>=we,b-=we,C.lens[C.have++]=je;else{if(16===je){for(Fe=we+2;b>>=we,b-=we,0===C.have){v.msg="invalid bit length repeat",C.mode=30;break}te=C.lens[C.have-1],z=3+(3&V),V>>>=2,b-=2}else if(17===je){for(Fe=we+3;b>>=we)),V>>>=3,b-=3}else{for(Fe=we+7;b>>=we)),V>>>=7,b-=7}if(C.have+z>C.nlen+C.ndist){v.msg="invalid bit length repeat",C.mode=30;break}for(;z--;)C.lens[C.have++]=te}}if(30===C.mode)break;if(0===C.lens[256]){v.msg="invalid code -- missing end-of-block",C.mode=30;break}if(C.lenbits=9,Je=ot(1,C.lens,0,C.nlen,C.lencode,0,C.work,tt={bits:C.lenbits}),C.lenbits=tt.bits,Je){v.msg="invalid literal/lengths set",C.mode=30;break}if(C.distbits=6,C.distcode=C.distdyn,Je=ot(2,C.lens,C.nlen,C.ndist,C.distcode,0,C.work,tt={bits:C.distbits}),C.distbits=tt.bits,Je){v.msg="invalid distances set",C.mode=30;break}if(C.mode=20,6===p)break e;case 20:C.mode=21;case 21:if(6<=ee&&258<=he){v.next_out=Z,v.avail_out=he,v.next_in=k,v.avail_in=ee,C.hold=V,C.bits=b,ke(v,T),Z=v.next_out,U=v.output,he=v.avail_out,k=v.next_in,I=v.input,ee=v.avail_in,V=C.hold,b=C.bits,12===C.mode&&(C.back=-1);break}for(C.back=0;Me=(Ne=C.lencode[V&(1<>>16&255,je=65535&Ne,!((we=Ne>>>24)<=b);){if(0===ee)break e;ee--,V+=I[k++]<>Ge)])>>>16&255,je=65535&Ne,!(Ge+(we=Ne>>>24)<=b);){if(0===ee)break e;ee--,V+=I[k++]<>>=Ge,b-=Ge,C.back+=Ge}if(V>>>=we,b-=we,C.back+=we,C.length=je,0===Me){C.mode=26;break}if(32&Me){C.back=-1,C.mode=12;break}if(64&Me){v.msg="invalid literal/length code",C.mode=30;break}C.extra=15&Me,C.mode=22;case 22:if(C.extra){for(Fe=C.extra;b>>=C.extra,b-=C.extra,C.back+=C.extra}C.was=C.length,C.mode=23;case 23:for(;Me=(Ne=C.distcode[V&(1<>>16&255,je=65535&Ne,!((we=Ne>>>24)<=b);){if(0===ee)break e;ee--,V+=I[k++]<>Ge)])>>>16&255,je=65535&Ne,!(Ge+(we=Ne>>>24)<=b);){if(0===ee)break e;ee--,V+=I[k++]<>>=Ge,b-=Ge,C.back+=Ge}if(V>>>=we,b-=we,C.back+=we,64&Me){v.msg="invalid distance code",C.mode=30;break}C.offset=je,C.extra=15&Me,C.mode=24;case 24:if(C.extra){for(Fe=C.extra;b>>=C.extra,b-=C.extra,C.back+=C.extra}if(C.offset>C.dmax){v.msg="invalid distance too far back",C.mode=30;break}C.mode=25;case 25:if(0===he)break e;if(C.offset>(z=T-he)){if((z=C.offset-z)>C.whave&&C.sane){v.msg="invalid distance too far back",C.mode=30;break}W=z>C.wnext?C.wsize-(z-=C.wnext):C.wnext-z,z>C.length&&(z=C.length),fe=C.window}else fe=U,W=Z-C.offset,z=C.length;for(heB?(g=W[fe+F[p]],b[P+F[p]]):(g=96,0),Y=1<>Z)+(ue-=Y)]=$<<24|g<<16|E,0!==ue;);for(Y=1<>=1;if(0!==Y?(V&=Y-1,V+=Y):V=0,p++,0==--T[v]){if(v===I)break;v=Ze[Re+F[p]]}if(U>>7)]}function P(Ne,rt){Ne.pending_buf[Ne.pending++]=255&rt,Ne.pending_buf[Ne.pending++]=rt>>>8&255}function T(Ne,rt,St){Ne.bi_valid>J-St?(Ne.bi_buf|=rt<>J-Ne.bi_valid,Ne.bi_valid+=St-J):(Ne.bi_buf|=rt<>>=1,St<<=1,0<--rt;);return St>>>1}function fe(Ne,rt,St){var pt,st,vt=new Array(F+1),Yt=0;for(pt=1;pt<=F;pt++)vt[pt]=Yt=Yt+St[pt-1]<<1;for(st=0;st<=rt;st++){var qt=Ne[2*st+1];0!==qt&&(Ne[2*st]=W(vt[qt]++,qt))}}function we(Ne){var rt;for(rt=0;rt<286;rt++)Ne.dyn_ltree[2*rt]=0;for(rt=0;rt<30;rt++)Ne.dyn_dtree[2*rt]=0;for(rt=0;rt<19;rt++)Ne.bl_tree[2*rt]=0;Ne.dyn_ltree[512]=1,Ne.opt_len=Ne.static_len=0,Ne.last_lit=Ne.matches=0}function Me(Ne){8>1;1<=St;St--)Ge(Ne,vt,St);for(st=Ot;St=Ne.heap[1],Ne.heap[1]=Ne.heap[Ne.heap_len--],Ge(Ne,vt,1),pt=Ne.heap[1],Ne.heap[--Ne.heap_max]=St,Ne.heap[--Ne.heap_max]=pt,vt[2*st]=vt[2*St]+vt[2*pt],Ne.depth[st]=(Ne.depth[St]>=Ne.depth[pt]?Ne.depth[St]:Ne.depth[pt])+1,vt[2*St+1]=vt[2*pt+1]=st,Ne.heap[1]=st++,Ge(Ne,vt,1),2<=Ne.heap_len;);Ne.heap[--Ne.heap_max]=Ne.heap[1],function(Mn,bn){var Dn,$n,Cn,yn,Sn,ii,ai=bn.dyn_tree,zi=bn.max_code,ti=bn.stat_desc.static_tree,Lr=bn.stat_desc.has_stree,ss=bn.stat_desc.extra_bits,Bs=bn.stat_desc.extra_base,yo=bn.stat_desc.max_length,xt=0;for(yn=0;yn<=F;yn++)Mn.bl_count[yn]=0;for(ai[2*Mn.heap[Mn.heap_max]+1]=0,Dn=Mn.heap_max+1;Dn<573;Dn++)yo<(yn=ai[2*ai[2*($n=Mn.heap[Dn])+1]+1]+1)&&(yn=yo,xt++),ai[2*$n+1]=yn,zi<$n||(Mn.bl_count[yn]++,Sn=0,Bs<=$n&&(Sn=ss[$n-Bs]),Mn.opt_len+=(ii=ai[2*$n])*(yn+Sn),Lr&&(Mn.static_len+=ii*(ti[2*$n+1]+Sn)));if(0!==xt){do{for(yn=yo-1;0===Mn.bl_count[yn];)yn--;Mn.bl_count[yn]--,Mn.bl_count[yn+1]+=2,Mn.bl_count[yo]--,xt-=2}while(0>=7;st<30;st++)for(ee[st]=vt<<7,rt=0;rt<1<<$[st]-7;rt++)p[256+vt++]=st;for(St=0;St<=F;St++)Yt[St]=0;for(rt=0;rt<=143;)_[2*rt+1]=8,rt++,Yt[8]++;for(;rt<=255;)_[2*rt+1]=9,rt++,Yt[9]++;for(;rt<=279;)_[2*rt+1]=7,rt++,Yt[7]++;for(;rt<=287;)_[2*rt+1]=8,rt++,Yt[8]++;for(fe(_,287,Yt),rt=0;rt<30;rt++)v[2*rt+1]=5,v[2*rt]=W(rt,5);U=new he(_,B,257,286,F),k=new he(v,$,0,30,F),Z=new he(new Array(0),g,0,19,7)}(),tt=!0),Ne.l_desc=new V(Ne.dyn_ltree,U),Ne.d_desc=new V(Ne.dyn_dtree,k),Ne.bl_desc=new V(Ne.bl_tree,Z),Ne.bi_buf=0,Ne.bi_valid=0,we(Ne)},Te._tr_stored_block=Fe,Te._tr_flush_block=function(Ne,rt,St,pt){var st,vt,Yt=0;0>>=1)if(1&Bn&&0!==qt.dyn_ltree[2*Ot])return 0;if(0!==qt.dyn_ltree[18]||0!==qt.dyn_ltree[20]||0!==qt.dyn_ltree[26])return 1;for(Ot=32;Ot<256;Ot++)if(0!==qt.dyn_ltree[2*Ot])return 1;return 0}(Ne)),bt(Ne,Ne.l_desc),bt(Ne,Ne.d_desc),Yt=function(qt){var Ot;for(te(qt,qt.dyn_ltree,qt.l_desc.max_code),te(qt,qt.dyn_dtree,qt.d_desc.max_code),bt(qt,qt.bl_desc),Ot=18;3<=Ot&&0===qt.bl_tree[2*E[Ot]+1];Ot--);return qt.opt_len+=3*(Ot+1)+5+5+4,Ot}(Ne),(vt=Ne.static_len+3+7>>>3)<=(st=Ne.opt_len+3+7>>>3)&&(st=vt)):st=vt=St+5,St+4<=st&&-1!==rt?Fe(Ne,rt,St,pt):4===Ne.strategy||vt===st?(T(Ne,2+(pt?1:0),3),lt(Ne,_,v)):(T(Ne,4+(pt?1:0),3),function(qt,Ot,Bn,Mn){var bn;for(T(qt,Ot-257,5),T(qt,Bn-1,5),T(qt,Mn-4,4),bn=0;bn>>8&255,Ne.pending_buf[Ne.d_buf+2*Ne.last_lit+1]=255&rt,Ne.pending_buf[Ne.l_buf+Ne.last_lit]=255&St,Ne.last_lit++,0===rt?Ne.dyn_ltree[2*St]++:(Ne.matches++,rt--,Ne.dyn_ltree[2*(C[St]+256+1)]++,Ne.dyn_dtree[2*b(rt)]++),Ne.last_lit===Ne.lit_bufsize-1},Te._tr_align=function(Ne){var rt;T(Ne,2,3),z(Ne,256,_),16===(rt=Ne).bi_valid?(P(rt,rt.bi_buf),rt.bi_buf=0,rt.bi_valid=0):8<=rt.bi_valid&&(rt.pending_buf[rt.pending++]=255&rt.bi_buf,rt.bi_buf>>=8,rt.bi_valid-=8)}},{"../utils/common":41}],53:[function(mt,Se,Te){"use strict";Se.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},{}],54:[function(mt,Se,Te){(function(x){!function(L,ve){"use strict";if(!L.setImmediate){var ke,ot,Ye,Ze,Re=1,He={},Ve=!1,De=L.document,F=Object.getPrototypeOf&&Object.getPrototypeOf(L);F=F&&F.setTimeout?F:L,ke="[object process]"==={}.toString.call(L.process)?function(Q){process.nextTick(function(){Y(Q)})}:function(){if(L.postMessage&&!L.importScripts){var Q=!0,me=L.onmessage;return L.onmessage=function(){Q=!1},L.postMessage("","*"),L.onmessage=me,Q}}()?(Ze="setImmediate$"+Math.random()+"$",L.addEventListener?L.addEventListener("message",ue,!1):L.attachEvent("onmessage",ue),function(Q){L.postMessage(Ze+Q,"*")}):L.MessageChannel?((Ye=new MessageChannel).port1.onmessage=function(Q){Y(Q.data)},function(Q){Ye.port2.postMessage(Q)}):De&&"onreadystatechange"in De.createElement("script")?(ot=De.documentElement,function(Q){var me=De.createElement("script");me.onreadystatechange=function(){Y(Q),me.onreadystatechange=null,ot.removeChild(me),me=null},ot.appendChild(me)}):function(Q){setTimeout(Y,0,Q)},F.setImmediate=function(Q){"function"!=typeof Q&&(Q=new Function(""+Q));for(var me=new Array(arguments.length-1),X=0;X"u"?void 0===x?this:x:self)}).call(this,typeof global<"u"?global:typeof self<"u"?self:typeof window<"u"?window:{})},{}]},{},[10])(10)},1230:(Yr,mt,Se)=>{const Te=Se(8856),x=Se(64),L=Se(7282),ve=Se(5099);function ke(ot,Ye,Ze,Re,He){const Ve=[].slice.call(arguments,1),De=Ve.length,F="function"==typeof Ve[De-1];if(!F&&!Te())throw new Error("Callback required as last argument");if(!F){if(De<1)throw new Error("Too few arguments provided");return 1===De?(Ze=Ye,Ye=Re=void 0):2===De&&!Ye.getContext&&(Re=Ze,Ze=Ye,Ye=void 0),new Promise(function(J,Y){try{const ue=x.create(Ze,Re);J(ot(ue,Ye,Re))}catch(ue){Y(ue)}})}if(De<2)throw new Error("Too few arguments provided");2===De?(He=Ze,Ze=Ye,Ye=Re=void 0):3===De&&(Ye.getContext&&typeof He>"u"?(He=Re,Re=void 0):(He=Re,Re=Ze,Ze=Ye,Ye=void 0));try{const J=x.create(Ze,Re);He(null,ot(J,Ye,Re))}catch(J){He(J)}}mt.create=x.create,mt.toCanvas=ke.bind(null,L.render),mt.toDataURL=ke.bind(null,L.renderToDataURL),mt.toString=ke.bind(null,function(ot,Ye,Ze){return ve.render(ot,Ze)})},8856:Yr=>{Yr.exports=function(){return"function"==typeof Promise&&Promise.prototype&&Promise.prototype.then}},1650:(Yr,mt,Se)=>{const Te=Se(4469).getSymbolSize;mt.getRowColCoords=function(L){if(1===L)return[];const ve=Math.floor(L/7)+2,ke=Te(L),ot=145===ke?26:2*Math.ceil((ke-13)/(2*ve-2)),Ye=[ke-7];for(let Ze=1;Ze{const Te=Se(2321),x=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"," ","$","%","*","+","-",".","/",":"];function L(ve){this.mode=Te.ALPHANUMERIC,this.data=ve}L.getBitsLength=function(ke){return 11*Math.floor(ke/2)+ke%2*6},L.prototype.getLength=function(){return this.data.length},L.prototype.getBitsLength=function(){return L.getBitsLength(this.data.length)},L.prototype.write=function(ke){let ot;for(ot=0;ot+2<=this.data.length;ot+=2){let Ye=45*x.indexOf(this.data[ot]);Ye+=x.indexOf(this.data[ot+1]),ke.put(Ye,11)}this.data.length%2&&ke.put(x.indexOf(this.data[ot]),6)},Yr.exports=L},7930:Yr=>{function mt(){this.buffer=[],this.length=0}mt.prototype={get:function(Se){const Te=Math.floor(Se/8);return 1==(this.buffer[Te]>>>7-Se%8&1)},put:function(Se,Te){for(let x=0;x>>Te-x-1&1))},getLengthInBits:function(){return this.length},putBit:function(Se){const Te=Math.floor(this.length/8);this.buffer.length<=Te&&this.buffer.push(0),Se&&(this.buffer[Te]|=128>>>this.length%8),this.length++}},Yr.exports=mt},6393:Yr=>{function mt(Se){if(!Se||Se<1)throw new Error("BitMatrix size must be defined and greater than 0");this.size=Se,this.data=new Uint8Array(Se*Se),this.reservedBit=new Uint8Array(Se*Se)}mt.prototype.set=function(Se,Te,x,L){const ve=Se*this.size+Te;this.data[ve]=x,L&&(this.reservedBit[ve]=!0)},mt.prototype.get=function(Se,Te){return this.data[Se*this.size+Te]},mt.prototype.xor=function(Se,Te,x){this.data[Se*this.size+Te]^=x},mt.prototype.isReserved=function(Se,Te){return this.reservedBit[Se*this.size+Te]},Yr.exports=mt},2333:(Yr,mt,Se)=>{const Te=Se(5474),x=Se(2321);function L(ve){this.mode=x.BYTE,"string"==typeof ve&&(ve=Te(ve)),this.data=new Uint8Array(ve)}L.getBitsLength=function(ke){return 8*ke},L.prototype.getLength=function(){return this.data.length},L.prototype.getBitsLength=function(){return L.getBitsLength(this.data.length)},L.prototype.write=function(ve){for(let ke=0,ot=this.data.length;ke{const Te=Se(6196),x=[1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,4,1,2,4,4,2,4,4,4,2,4,6,5,2,4,6,6,2,5,8,8,4,5,8,8,4,5,8,11,4,8,10,11,4,9,12,16,4,9,16,16,6,10,12,18,6,10,17,16,6,11,16,19,6,13,18,21,7,14,21,25,8,16,20,25,8,17,23,25,9,17,23,34,9,18,25,30,10,20,27,32,12,21,29,35,12,23,34,37,12,25,34,40,13,26,35,42,14,28,38,45,15,29,40,48,16,31,43,51,17,33,45,54,18,35,48,57,19,37,51,60,19,38,53,63,20,40,56,66,21,43,59,70,22,45,62,74,24,47,65,77,25,49,68,81],L=[7,10,13,17,10,16,22,28,15,26,36,44,20,36,52,64,26,48,72,88,36,64,96,112,40,72,108,130,48,88,132,156,60,110,160,192,72,130,192,224,80,150,224,264,96,176,260,308,104,198,288,352,120,216,320,384,132,240,360,432,144,280,408,480,168,308,448,532,180,338,504,588,196,364,546,650,224,416,600,700,224,442,644,750,252,476,690,816,270,504,750,900,300,560,810,960,312,588,870,1050,336,644,952,1110,360,700,1020,1200,390,728,1050,1260,420,784,1140,1350,450,812,1200,1440,480,868,1290,1530,510,924,1350,1620,540,980,1440,1710,570,1036,1530,1800,570,1064,1590,1890,600,1120,1680,1980,630,1204,1770,2100,660,1260,1860,2220,720,1316,1950,2310,750,1372,2040,2430];mt.getBlocksCount=function(ke,ot){switch(ot){case Te.L:return x[4*(ke-1)+0];case Te.M:return x[4*(ke-1)+1];case Te.Q:return x[4*(ke-1)+2];case Te.H:return x[4*(ke-1)+3];default:return}},mt.getTotalCodewordsCount=function(ke,ot){switch(ot){case Te.L:return L[4*(ke-1)+0];case Te.M:return L[4*(ke-1)+1];case Te.Q:return L[4*(ke-1)+2];case Te.H:return L[4*(ke-1)+3];default:return}}},6196:(Yr,mt)=>{mt.L={bit:1},mt.M={bit:0},mt.Q={bit:3},mt.H={bit:2},mt.isValid=function(x){return x&&typeof x.bit<"u"&&x.bit>=0&&x.bit<4},mt.from=function(x,L){if(mt.isValid(x))return x;try{return function Se(Te){if("string"!=typeof Te)throw new Error("Param is not a string");switch(Te.toLowerCase()){case"l":case"low":return mt.L;case"m":case"medium":return mt.M;case"q":case"quartile":return mt.Q;case"h":case"high":return mt.H;default:throw new Error("Unknown EC Level: "+Te)}}(x)}catch{return L}}},6745:(Yr,mt,Se)=>{const Te=Se(4469).getSymbolSize;mt.getPositions=function(ve){const ke=Te(ve);return[[0,0],[ke-7,0],[0,ke-7]]}},7402:(Yr,mt,Se)=>{const Te=Se(4469),ve=Te.getBCHDigit(1335);mt.getEncodedBits=function(ot,Ye){const Ze=ot.bit<<3|Ye;let Re=Ze<<10;for(;Te.getBCHDigit(Re)-ve>=0;)Re^=1335<{const Se=new Uint8Array(512),Te=new Uint8Array(256);(function(){let L=1;for(let ve=0;ve<255;ve++)Se[ve]=L,Te[L]=ve,L<<=1,256&L&&(L^=285);for(let ve=255;ve<512;ve++)Se[ve]=Se[ve-255]})(),mt.log=function(L){if(L<1)throw new Error("log("+L+")");return Te[L]},mt.exp=function(L){return Se[L]},mt.mul=function(L,ve){return 0===L||0===ve?0:Se[Te[L]+Te[ve]]}},3780:(Yr,mt,Se)=>{const Te=Se(2321),x=Se(4469);function L(ve){this.mode=Te.KANJI,this.data=ve}L.getBitsLength=function(ke){return 13*ke},L.prototype.getLength=function(){return this.data.length},L.prototype.getBitsLength=function(){return L.getBitsLength(this.data.length)},L.prototype.write=function(ve){let ke;for(ke=0;ke=33088&&ot<=40956)ot-=33088;else{if(!(ot>=57408&&ot<=60351))throw new Error("Invalid SJIS character: "+this.data[ke]+"\nMake sure your charset is UTF-8");ot-=49472}ot=192*(ot>>>8&255)+(255&ot),ve.put(ot,13)}},Yr.exports=L},357:(Yr,mt)=>{mt.Patterns={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7};function Te(x,L,ve){switch(x){case mt.Patterns.PATTERN000:return(L+ve)%2==0;case mt.Patterns.PATTERN001:return L%2==0;case mt.Patterns.PATTERN010:return ve%3==0;case mt.Patterns.PATTERN011:return(L+ve)%3==0;case mt.Patterns.PATTERN100:return(Math.floor(L/2)+Math.floor(ve/3))%2==0;case mt.Patterns.PATTERN101:return L*ve%2+L*ve%3==0;case mt.Patterns.PATTERN110:return(L*ve%2+L*ve%3)%2==0;case mt.Patterns.PATTERN111:return(L*ve%3+(L+ve)%2)%2==0;default:throw new Error("bad maskPattern:"+x)}}mt.isValid=function(L){return null!=L&&""!==L&&!isNaN(L)&&L>=0&&L<=7},mt.from=function(L){return mt.isValid(L)?parseInt(L,10):void 0},mt.getPenaltyN1=function(L){const ve=L.size;let ke=0,ot=0,Ye=0,Ze=null,Re=null;for(let He=0;He=5&&(ke+=ot-5+3),Ze=De,ot=1),De=L.get(Ve,He),De===Re?Ye++:(Ye>=5&&(ke+=Ye-5+3),Re=De,Ye=1)}ot>=5&&(ke+=ot-5+3),Ye>=5&&(ke+=Ye-5+3)}return ke},mt.getPenaltyN2=function(L){const ve=L.size;let ke=0;for(let ot=0;ot=10&&(1488===ot||93===ot)&&ke++,Ye=Ye<<1&2047|L.get(Re,Ze),Re>=10&&(1488===Ye||93===Ye)&&ke++}return 40*ke},mt.getPenaltyN4=function(L){let ve=0;const ke=L.data.length;for(let Ye=0;Ye{const Te=Se(9797),x=Se(9091);mt.NUMERIC={id:"Numeric",bit:1,ccBits:[10,12,14]},mt.ALPHANUMERIC={id:"Alphanumeric",bit:2,ccBits:[9,11,13]},mt.BYTE={id:"Byte",bit:4,ccBits:[8,16,16]},mt.KANJI={id:"Kanji",bit:8,ccBits:[8,10,12]},mt.MIXED={bit:-1},mt.getCharCountIndicator=function(ke,ot){if(!ke.ccBits)throw new Error("Invalid mode: "+ke);if(!Te.isValid(ot))throw new Error("Invalid version: "+ot);return ot>=1&&ot<10?ke.ccBits[0]:ot<27?ke.ccBits[1]:ke.ccBits[2]},mt.getBestModeForData=function(ke){return x.testNumeric(ke)?mt.NUMERIC:x.testAlphanumeric(ke)?mt.ALPHANUMERIC:x.testKanji(ke)?mt.KANJI:mt.BYTE},mt.toString=function(ke){if(ke&&ke.id)return ke.id;throw new Error("Invalid mode")},mt.isValid=function(ke){return ke&&ke.bit&&ke.ccBits},mt.from=function(ke,ot){if(mt.isValid(ke))return ke;try{return function L(ve){if("string"!=typeof ve)throw new Error("Param is not a string");switch(ve.toLowerCase()){case"numeric":return mt.NUMERIC;case"alphanumeric":return mt.ALPHANUMERIC;case"kanji":return mt.KANJI;case"byte":return mt.BYTE;default:throw new Error("Unknown mode: "+ve)}}(ke)}catch{return ot}}},1200:(Yr,mt,Se)=>{const Te=Se(2321);function x(L){this.mode=Te.NUMERIC,this.data=L.toString()}x.getBitsLength=function(ve){return 10*Math.floor(ve/3)+(ve%3?ve%3*3+1:0)},x.prototype.getLength=function(){return this.data.length},x.prototype.getBitsLength=function(){return x.getBitsLength(this.data.length)},x.prototype.write=function(ve){let ke,ot,Ye;for(ke=0;ke+3<=this.data.length;ke+=3)ot=this.data.substr(ke,3),Ye=parseInt(ot,10),ve.put(Ye,10);const Ze=this.data.length-ke;Ze>0&&(ot=this.data.substr(ke),Ye=parseInt(ot,10),ve.put(Ye,3*Ze+1))},Yr.exports=x},8116:(Yr,mt,Se)=>{const Te=Se(3010);mt.mul=function(L,ve){const ke=new Uint8Array(L.length+ve.length-1);for(let ot=0;ot=0;){const ot=ke[0];for(let Ze=0;Ze{const Te=Se(4469),x=Se(6196),L=Se(7930),ve=Se(6393),ke=Se(1650),ot=Se(6745),Ye=Se(357),Ze=Se(505),Re=Se(2389),He=Se(112),Ve=Se(7402),De=Se(2321),F=Se(584);function me(E,_,v){const p=E.size,C=Ve.getEncodedBits(_,v);let I,U;for(I=0;I<15;I++)U=1==(C>>I&1),E.set(I<6?I:I<8?I+1:p-15+I,8,U,!0),E.set(8,I<8?p-I-1:I<9?15-I-1+1:15-I-1,U,!0);E.set(p-8,8,1,!0)}function g(E,_,v,p){let C;if(Array.isArray(E))C=F.fromArray(E);else{if("string"!=typeof E)throw new Error("Invalid data");{let ee=_;if(!ee){const he=F.rawSplit(E);ee=He.getBestVersionForData(he,v)}C=F.fromString(E,ee||40)}}const I=He.getBestVersionForData(C,v);if(!I)throw new Error("The amount of data is too big to be stored in a QR Code");if(_){if(_=0&&k<=6&&(0===Z||6===Z)||Z>=0&&Z<=6&&(0===k||6===k)||k>=2&&k<=4&&Z>=2&&Z<=4,!0)}}(Z,_),function Y(E){const _=E.size;for(let v=8;v<_-8;v++){const p=v%2==0;E.set(v,6,p,!0),E.set(6,v,p,!0)}}(Z),function ue(E,_){const v=ke.getPositions(_);for(let p=0;p=7&&function Q(E,_){const v=E.size,p=He.getEncodedBits(_);let C,I,U;for(let k=0;k<18;k++)C=Math.floor(k/3),I=k%3+v-8-3,U=1==(p>>k&1),E.set(C,I,U,!0),E.set(I,C,U,!0)}(Z,_),function X(E,_){const v=E.size;let p=-1,C=v-1,I=7,U=0;for(let k=v-1;k>0;k-=2)for(6===k&&k--;;){for(let Z=0;Z<2;Z++)if(!E.isReserved(C,k-Z)){let ee=!1;U<_.length&&(ee=1==(_[U]>>>I&1)),E.set(C,k-Z,ee),I--,-1===I&&(U++,I=7)}if(C+=p,C<0||v<=C){C-=p,p=-p;break}}}(Z,U),isNaN(p)&&(p=Ye.getBestMask(Z,me.bind(null,Z,v))),Ye.applyMask(p,Z),me(Z,v,p),{modules:Z,version:_,errorCorrectionLevel:v,maskPattern:p,segments:C}}mt.create=function(_,v){if(typeof _>"u"||""===_)throw new Error("No input text");let C,I,p=x.M;return typeof v<"u"&&(p=x.from(v.errorCorrectionLevel,x.M),C=He.from(v.version),I=Ye.from(v.maskPattern),v.toSJISFunc&&Te.setToSJISFunction(v.toSJISFunc)),g(_,C,p,I)}},2389:(Yr,mt,Se)=>{const Te=Se(8116);function x(L){this.genPoly=void 0,this.degree=L,this.degree&&this.initialize(this.degree)}x.prototype.initialize=function(ve){this.degree=ve,this.genPoly=Te.generateECPolynomial(this.degree)},x.prototype.encode=function(ve){if(!this.genPoly)throw new Error("Encoder not initialized");const ke=new Uint8Array(ve.length+this.degree);ke.set(ve);const ot=Te.mod(ke,this.genPoly),Ye=this.degree-ot.length;if(Ye>0){const Ze=new Uint8Array(this.degree);return Ze.set(ot,Ye),Ze}return ot},Yr.exports=x},9091:(Yr,mt)=>{let x="(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+";x=x.replace(/u/g,"\\u");const L="(?:(?![A-Z0-9 $%*+\\-./:]|"+x+")(?:.|[\r\n]))+";mt.KANJI=new RegExp(x,"g"),mt.BYTE_KANJI=new RegExp("[^A-Z0-9 $%*+\\-./:]+","g"),mt.BYTE=new RegExp(L,"g"),mt.NUMERIC=new RegExp("[0-9]+","g"),mt.ALPHANUMERIC=new RegExp("[A-Z $%*+\\-./:]+","g");const ve=new RegExp("^"+x+"$"),ke=new RegExp("^[0-9]+$"),ot=new RegExp("^[A-Z0-9 $%*+\\-./:]+$");mt.testKanji=function(Ze){return ve.test(Ze)},mt.testNumeric=function(Ze){return ke.test(Ze)},mt.testAlphanumeric=function(Ze){return ot.test(Ze)}},584:(Yr,mt,Se)=>{const Te=Se(2321),x=Se(1200),L=Se(742),ve=Se(2333),ke=Se(3780),ot=Se(9091),Ye=Se(4469),Ze=Se(2623);function Re(Q){return unescape(encodeURIComponent(Q)).length}function He(Q,me,X){const B=[];let $;for(;null!==($=Q.exec(X));)B.push({data:$[0],index:$.index,mode:me,length:$[0].length});return B}function Ve(Q){const me=He(ot.NUMERIC,Te.NUMERIC,Q),X=He(ot.ALPHANUMERIC,Te.ALPHANUMERIC,Q);let B,$;return Ye.isKanjiModeEnabled()?(B=He(ot.BYTE,Te.BYTE,Q),$=He(ot.KANJI,Te.KANJI,Q)):(B=He(ot.BYTE_KANJI,Te.BYTE,Q),$=[]),me.concat(X,B,$).sort(function(E,_){return E.index-_.index}).map(function(E){return{data:E.data,mode:E.mode,length:E.length}})}function De(Q,me){switch(me){case Te.NUMERIC:return x.getBitsLength(Q);case Te.ALPHANUMERIC:return L.getBitsLength(Q);case Te.KANJI:return ke.getBitsLength(Q);case Te.BYTE:return ve.getBitsLength(Q)}}function ue(Q,me){let X;const B=Te.getBestModeForData(Q);if(X=Te.from(me,B),X!==Te.BYTE&&X.bit=0?me[me.length-1]:null;return B&&B.mode===X.mode?(me[me.length-1].data+=X.data,me):(me.push(X),me)},[])}(_))},mt.rawSplit=function(me){return mt.fromArray(Ve(me,Ye.isKanjiModeEnabled()))}},4469:(Yr,mt)=>{let Se;const Te=[0,26,44,70,100,134,172,196,242,292,346,404,466,532,581,655,733,815,901,991,1085,1156,1258,1364,1474,1588,1706,1828,1921,2051,2185,2323,2465,2611,2761,2876,3034,3196,3362,3532,3706];mt.getSymbolSize=function(L){if(!L)throw new Error('"version" cannot be null or undefined');if(L<1||L>40)throw new Error('"version" should be in range from 1 to 40');return 4*L+17},mt.getSymbolTotalCodewords=function(L){return Te[L]},mt.getBCHDigit=function(x){let L=0;for(;0!==x;)L++,x>>>=1;return L},mt.setToSJISFunction=function(L){if("function"!=typeof L)throw new Error('"toSJISFunc" is not a valid function.');Se=L},mt.isKanjiModeEnabled=function(){return typeof Se<"u"},mt.toSJIS=function(L){return Se(L)}},9797:(Yr,mt)=>{mt.isValid=function(Te){return!isNaN(Te)&&Te>=1&&Te<=40}},112:(Yr,mt,Se)=>{const Te=Se(4469),x=Se(505),L=Se(6196),ve=Se(2321),ke=Se(9797),Ye=Te.getBCHDigit(7973);function Re(De,F){return ve.getCharCountIndicator(De,F)+4}function He(De,F){let J=0;return De.forEach(function(Y){const ue=Re(Y.mode,F);J+=ue+Y.getBitsLength()}),J}mt.from=function(F,J){return ke.isValid(F)?parseInt(F,10):J},mt.getCapacity=function(F,J,Y){if(!ke.isValid(F))throw new Error("Invalid QR Code version");typeof Y>"u"&&(Y=ve.BYTE);const me=8*(Te.getSymbolTotalCodewords(F)-x.getTotalCodewordsCount(F,J));if(Y===ve.MIXED)return me;const X=me-Re(Y,F);switch(Y){case ve.NUMERIC:return Math.floor(X/10*3);case ve.ALPHANUMERIC:return Math.floor(X/11*2);case ve.KANJI:return Math.floor(X/13);default:return Math.floor(X/8)}},mt.getBestVersionForData=function(F,J){let Y;const ue=L.from(J,L.M);if(Array.isArray(F)){if(F.length>1)return function Ve(De,F){for(let J=1;J<=40;J++)if(He(De,J)<=mt.getCapacity(J,F,ve.MIXED))return J}(F,ue);if(0===F.length)return 1;Y=F[0]}else Y=F;return function Ze(De,F,J){for(let Y=1;Y<=40;Y++)if(F<=mt.getCapacity(Y,J,De))return Y}(Y.mode,Y.getLength(),ue)},mt.getEncodedBits=function(F){if(!ke.isValid(F)||F<7)throw new Error("Invalid QR Code version");let J=F<<12;for(;Te.getBCHDigit(J)-Ye>=0;)J^=7973<{const Te=Se(7569);mt.render=function(ke,ot,Ye){let Ze=Ye,Re=ot;typeof Ze>"u"&&(!ot||!ot.getContext)&&(Ze=ot,ot=void 0),ot||(Re=function L(){try{return document.createElement("canvas")}catch{throw new Error("You need to specify a canvas element")}}()),Ze=Te.getOptions(Ze);const He=Te.getImageWidth(ke.modules.size,Ze),Ve=Re.getContext("2d"),De=Ve.createImageData(He,He);return Te.qrToImageData(De.data,ke,Ze),function x(ve,ke,ot){ve.clearRect(0,0,ke.width,ke.height),ke.style||(ke.style={}),ke.height=ot,ke.width=ot,ke.style.height=ot+"px",ke.style.width=ot+"px"}(Ve,Re,He),Ve.putImageData(De,0,0),Re},mt.renderToDataURL=function(ke,ot,Ye){let Ze=Ye;return typeof Ze>"u"&&(!ot||!ot.getContext)&&(Ze=ot,ot=void 0),Ze||(Ze={}),mt.render(ke,ot,Ze).toDataURL(Ze.type||"image/png",(Ze.rendererOpts||{}).quality)}},5099:(Yr,mt,Se)=>{const Te=Se(7569);function x(ke,ot){const Ye=ke.a/255,Ze=ot+'="'+ke.hex+'"';return Ye<1?Ze+" "+ot+'-opacity="'+Ye.toFixed(2).slice(1)+'"':Ze}function L(ke,ot,Ye){let Ze=ke+ot;return typeof Ye<"u"&&(Ze+=" "+Ye),Ze}mt.render=function(ot,Ye,Ze){const Re=Te.getOptions(Ye),He=ot.modules.size,Ve=ot.modules.data,De=He+2*Re.margin,F=Re.color.light.a?"':"",J="0&&F>0&&ke[De-1]||(Ze+=He?L("M",F+Ye,.5+J+Ye):L("m",Re,0),Re=0,He=!1),F+1',Q=''+F+J+"\n";return"function"==typeof Ze&&Ze(null,Q),Q}},7569:(Yr,mt)=>{function Se(Te){if("number"==typeof Te&&(Te=Te.toString()),"string"!=typeof Te)throw new Error("Color should be defined as hex string");let x=Te.slice().replace("#","").split("");if(x.length<3||5===x.length||x.length>8)throw new Error("Invalid hex color: "+Te);(3===x.length||4===x.length)&&(x=Array.prototype.concat.apply([],x.map(function(ve){return[ve,ve]}))),6===x.length&&x.push("F","F");const L=parseInt(x.join(""),16);return{r:L>>24&255,g:L>>16&255,b:L>>8&255,a:255&L,hex:"#"+x.slice(0,6).join("")}}mt.getOptions=function(x){x||(x={}),x.color||(x.color={});const ve=x.width&&x.width>=21?x.width:void 0;return{width:ve,scale:ve?4:x.scale||4,margin:typeof x.margin>"u"||null===x.margin||x.margin<0?4:x.margin,color:{dark:Se(x.color.dark||"#000000ff"),light:Se(x.color.light||"#ffffffff")},type:x.type,rendererOpts:x.rendererOpts||{}}},mt.getScale=function(x,L){return L.width&&L.width>=x+2*L.margin?L.width/(x+2*L.margin):L.scale},mt.getImageWidth=function(x,L){const ve=mt.getScale(x,L);return Math.floor((x+2*L.margin)*ve)},mt.qrToImageData=function(x,L,ve){const ke=L.modules.size,ot=L.modules.data,Ye=mt.getScale(ke,ve),Ze=Math.floor((ke+2*ve.margin)*Ye),Re=ve.margin*Ye,He=[ve.color.light,ve.color.dark];for(let Ve=0;Ve=Re&&De>=Re&&Ve{"use strict";function Te(L,ve,ke,ot,Ye,Ze,Re){try{var He=L[Ze](Re),Ve=He.value}catch(De){return void ke(De)}He.done?ve(Ve):Promise.resolve(Ve).then(ot,Ye)}function x(L){return function(){var ve=this,ke=arguments;return new Promise(function(ot,Ye){var Ze=L.apply(ve,ke);function Re(Ve){Te(Ze,ot,Ye,Re,He,"next",Ve)}function He(Ve){Te(Ze,ot,Ye,Re,He,"throw",Ve)}Re(void 0)})}}Se.d(mt,{A:()=>x})},2843:(Yr,mt,Se)=>{"use strict";Se.d(mt,{Mw:()=>Ve,NM:()=>De,Ru:()=>Q,Vm:()=>B,YF:()=>He,b8:()=>F,bk:()=>ue,lf:()=>J,lg:()=>Ze,md:()=>Ye,nC:()=>Re,xh:()=>ot});var Te=Se(4882),x=Se(8362),L=Se(8872),ve=Se(4246),ke=Se(3147);function ot(g,E){if(!g||g.empty())return{x:0,y:0,width:0,height:0};if((0,L.isNodeJs)()&&"bbox"!==E||g.property("_batch_mode"))return{x:0,y:0,width:parseInt(g.attr("width")),height:parseInt(g.attr("height"))};const _=C=>{let I=g.style(C);return I&&(0,L.isStr)(I)?(I=parseFloat(I.replace("px","")),Number.isFinite(I)?Math.round(I):0):0};let v=g.node().getBoundingClientRect();"bbox"===E&&parseFloat(v.width)>0&&(v=g.node().getBBox());const p={x:0,y:0,width:parseInt(v.width),height:parseInt(v.height)};return void 0!==v.left?(p.x=parseInt(v.left),p.y=parseInt(v.top)):void 0!==v.x&&(p.x=parseInt(v.x),p.y=parseInt(v.y)),(void 0===E||"nopadding"===E)&&(p.width-=_("padding-left")+_("padding-right"),p.height-=_("padding-top")+_("padding-bottom")),p}function Ye(g,E){if(!E)return E;for(;!g.empty()&&!g.classed("root_canvas");){const _=g.attr("class");_&&(_.indexOf("root_frame")>=0||_.indexOf("__root_pad_")>=0)&&(E.x+=g.property("draw_x")||0,E.y+=g.property("draw_y")||0),g=(0,x.Lt)(g.node().parentNode)}return E}function Ze(g,E,_){E||(E="6.4g");const v=(E=E.trim()).length;if(v<2)return _?[g.toFixed(4),"6.4f"]:g.toFixed(4);const p=E[v-1];let C,I=(E=E.slice(0,v-1)).indexOf(".");I=I<0?4:parseInt(E.slice(I+1)),(!Number.isInteger(I)||I<=0)&&(I=4);let U=!1;if("e"===p||"E"===p)C=!0;else if("Q"===p)C=!0,U=!0;else if("f"===p||"F"===p)C=!1;else if("W"===p)C=!1,U=!0;else{if("g"===p||"G"===p){const Z=Ze(g,E+"Q",!0);let ee=Ze(g,E+"W",!0);return Z[0].length0&&(I=20,k=g.toFixed(I));let Z=0;for(;ZZ&&ee--,0!==ee&&(I-=ee,I<0?I=0:I>20&&(I=20),k=g.toFixed(I))}return _?[k,"5."+I+"f"]:k}class Re{constructor(E){this.opt=(0,L.isStr)(E)?E.toUpperCase().trim():"",this.part=""}empty(){return 0===this.opt.length||0===this.opt.replace(/[ ;_,]/g,"").length}remain(){return this.opt}check(E,_){const v=this.opt.indexOf(E);if(v<0)return!1;if(this.opt=this.opt.slice(0,v)+this.opt.slice(v+E.length),this.part="",!_)return!0;let p=v;for(;pv&&(this.part=this.opt.slice(v,p),this.opt=this.opt.slice(0,v)+this.opt.slice(p)),!0}partAsInt(E,_){let v=1;const p=this.part?this.part[this.part.length-1]:"";"K"===p?v=1e3:"M"===p?v=1e6:"G"===p&&(v=1e9);let C=this.part.replace(/^\D+/g,"");return C=C?parseInt(C,10):Number.NaN,Number.isInteger(C)?v*C+(E||0):_||0}partAsFloat(E,_){let v=this.part.replace(/^\D+/g,"");return v=v?parseFloat(v):Number.NaN,Number.isFinite(v)?v+(E||0):_||0}}class He{constructor(E){void 0!==E&&this.seed(E)}seed(E){(E=Math.abs(E))>1e8?E=Math.abs(1e8*Math.sin(E)):E<1&&(E*=1e8),this.m_w=Math.round(E),this.m_z=987654321}random(){if(void 0===this.m_z)return Math.random();this.m_z=36969*(65535&this.m_z)+(this.m_z>>16)&4294967295,this.m_w=18e3*(65535&this.m_w)+(this.m_w>>16)&4294967295;let E=(this.m_z<<16)+this.m_w&4294967295;return E/=4294967296,E+.5}}function Ve(g,E){E||(E={}),E.line?void 0===E.ndig&&(E.ndig=0):E.calc=!0;let _=g.length;if(_<3&&(E.line=!0),E.t=E.t??.2,void 0===E.ndig||E.height){E.maxy=g[0].gry,E.mindiff=100;for(let I=1;I<_;I++)E.maxy=Math.max(E.maxy,g[I].gry),E.mindiff=Math.min(E.mindiff,Math.abs(g[I].grx-g[I-1].grx),Math.abs(g[I].gry-g[I-1].gry));void 0===E.ndig&&(E.ndig=E.mindiff>20?0:E.mindiff>5?1:2)}const v=(I,U,k)=>{const Z=Math.sqrt((U.gry-I.gry)**2+(U.grx-I.grx)**2)*E.t,ee=Math.atan2(U.dgry,U.dgrx),he=Math.atan2(k*(U.gry-I.gry),k*(U.grx-I.grx));I.dgrx=Z*Math.cos(2*he-ee),I.dgry=Z*Math.sin(2*he-ee)},p=I=>{if(!E.ndig||Math.round(I)===I)return I.toFixed(0);let U=I.toFixed(E.ndig),k=U.length-1;for(;"0"===U[k];)k--;return"."===U[k]&&k--,U=U.slice(0,k+1),"-0"===U?"0":U};if(E.calc){for(let I=1;I<_-1;I++)g[I].dgrx=(g[I+1].grx-g[I-1].grx)*E.t,g[I].dgry=(g[I+1].gry-g[I-1].gry)*E.t;_>2?(v(g[0],g[1],1),v(g[_-1],g[_-2],-1)):2===g.length&&(g[0].dgrx=(g[1].grx-g[0].grx)*E.t,g[0].dgry=(g[1].gry-g[0].gry)*E.t,g[1].dgrx=-g[0].dgrx,g[1].dgry=-g[0].dgry)}let C=`${E.cmd??"M"}${p(g[0].grx)},${p(g[0].gry)}`;if(E.line)if(_<1e4){let I=0,U=0,k=Math.round(g[0].grx),Z=Math.round(g[0].gry);const ee=()=>{I&&(C+="h"+I,I=0),U&&(C+="v"+U,U=0)};for(let he=1;he<_;++he){const V=g[he],b=Math.round(V.grx)-k,P=Math.round(V.gry)-Z;b&&P?(ee(),C+=`l${b},${P}`):!b&&P?((0===U||P<0!=U<0)&&ee(),U+=P):b&&!P&&((0===I||b<0!=I<0)&&ee(),I+=b),k+=b,Z+=P}ee()}else{let I=Math.round(g[0].grx),U=Math.round(g[0].gry),k=U,Z=U,ee=U;for(let he=1;he<_;++he){const V=g[he],b=Math.round(V.grx),P=Math.round(V.gry),T=b-I;if(0===T){k=Math.min(k,P),Z=Math.max(Z,P),ee=P;continue}k!==Z&&(k!==U&&(C+="v"+(k-U)),C+="v"+(Z-k),Z!==ee&&(C+="v"+(ee-Z)),U=ee);const z=P-U;C+=z?`l${T},${z}`:`h${T}`,I=b,U=P,ee=k=Z=P}k!==Z&&(k!==U&&(C+="v"+(k-U)),C+="v"+(Z-k),Z!==ee&&(C+="v"+(ee-Z)))}else{let I=1;E.qubic&&(_--,I++,C+=`Q${p(g[1].grx-g[1].dgrx)},${p(g[1].gry-g[1].dgry)},${p(g[1].grx)},${p(g[1].gry)}`),C+=`C${p(g[I-1].grx+g[I-1].dgrx)},${p(g[I-1].gry+g[I-1].dgry)},${p(g[I].grx-g[I].dgrx)},${p(g[I].gry-g[I].dgry)},${p(g[I].grx)},${p(g[I].gry)}`;for(let U=I+1;U<_;U++)C+=`S${p(g[U].grx-g[U].dgrx)},${p(g[U].gry-g[U].dgry)},${p(g[U].grx)},${p(g[U].gry)}`;E.qubic&&(C+=`Q${p(g[_].grx-g[_].dgrx)},${p(g[_].gry-g[_].dgry)},${p(g[_].grx)},${p(g[_].gry)}`)}return E.height&&(E.close=`L${p(g[g.length-1].grx)},${p(Math.max(E.maxy,E.height))}H${p(g[0].grx)}Z`),C}function De(g){return(g=g.replace(/url\("#(\w+)"\)/g,"url(#$1)").replace(/ class="\w*"/g,"").replace(/ pad="\w*"/g,"").replace(/ title=""/g,"").replace(/<\/g>/g,"").replace(/<\/g>/g,"")).replace(/<\/svg>/g,"")}class F{constructor(E){this.divid=null,E&&this.setDom(E)}setDom(E){void 0!==E&&(this.divid=E,delete this._selected_main)}getDom(){return this.divid}selectDom(E){if(!this.divid)return(0,x.Lt)(null);let _=this._selected_main;if(!_){if((0,L.isStr)(this.divid)){let I=this.divid;"#"!==I[0]&&(I="#"+I),_=(0,x.Lt)(I),_.empty()||(this.divid=_.node())}else _=(0,x.Lt)(this.divid);this._selected_main=_}if(!_||_.empty()||"origin"===E)return _;const v=_.property("use_enlarge"),C="simple"===(_.property("layout")||"simple")?"":_.property("layout_selector");return C&&(_=_.select(C)),!E&&!_.empty()&&v&&(_=(0,x.Lt)((0,L.getDocument)().getElementById("jsroot_enlarge_div"))),_}_accessTopPainter(E){const _=this.selectDom().node()?.firstChild;return _?(!0===E?_.painter=this:!1===E&&delete _.painter,_.painter):null}setTopPainter(){this._accessTopPainter(!0)}getTopPainter(){return this._accessTopPainter()}clearTopPainter(){this._accessTopPainter(!1)}cleanup(E){this.clearTopPainter();const _=this.selectDom("origin");!_.empty()&&!E&&_.html(""),this.divid=null,delete this._selected_main,(0,L.isFunc)(this._hpainter?.removePainter)&&this._hpainter.removePainter(this),delete this._hitemname,delete this._hdrawopt,delete this._hpainter}checkResize(){}testMainResize(E,_,v){const p=this.enlargeMain("state"),C=this.selectDom("origin"),I=this.selectDom();"on"!==p&&_?.width&&_?.height&&C.style("width",_.width+"px").style("height",_.height+"px");const k=ot(C,!0),Z=C.attr("can_resize");let ee=!1;"height"===Z&&v&&Math.abs(k.width*v-k.height)>.1*k.width&&(ee=!0),(k.height<=5||k.width<=5)&&Z&&"false"!==Z&&(ee=!0),ee&&"on"!==p&&(k.width>5?(v=v||.66,C.style("height",Math.round(k.width*v)+"px")):"height"!==Z&&C.style("width","200px").style("height","100px"));const he=ot(I),V=I.property("_jsroot_height"),b=I.property("_jsroot_width");return he.changed=!1,V&&b&&V>0&&b>0?(V!==he.height||b!==he.width)&&(he.changed=E>1||he.width/b<.99||he.width/b>1.01||he.height/V<.99||he.height/V>1.01):he.changed=!0,he.changed&&I.property("_jsroot_height",he.height).property("_jsroot_width",he.width),C.property("did_enlarge")&&(he.changed=!0,C.property("did_enlarge",!1)),he}enlargeMain(E,_){const v=this.selectDom(!0),p=this.selectDom("origin"),C=(0,L.getDocument)();if(v.empty()||!L.settings.CanEnlarge||!1===p.property("can_enlarge"))return!1;if(void 0===E||"verify"===E)return!0;const I=p.property("use_enlarge")?"on":"off";if("state"===E)return I;"toggle"===E&&(E="off"===I);let U=(0,x.Lt)(C.getElementById("jsroot_enlarge_div"));if(!0===E&&"on"!==I){if(!U.empty())return!1;U=(0,x.Lt)(C.body).append("div").attr("id","jsroot_enlarge_div").attr("style","position: fixed; margin: 0px; border: 0px; padding: 0px; left: 1px; top: 1px; bottom: 1px; right: 1px; background: white; opacity: 0.95; z-index: 100; overflow: hidden;");const k=ot(v),Z=ot(U);if((Z.width<=k.width||Z.height<=k.height)&&Z.width*Z.height0;)U.node().appendChild(v.node().firstChild);return p.property("use_enlarge",!0),p.property("did_enlarge",!0),!0}if(!1===E&&"off"!==I){for(;U.node()&&U.node().childNodes.length>0;)v.node().appendChild(U.node().firstChild);return U.remove(),p.property("use_enlarge",!1),p.property("did_enlarge",!0),!0}return!1}setItemName(E,_,v){(0,L.isStr)(E)?this._hitemname=E:delete this._hitemname,(0,L.isStr)(_)&&(this._hdrawopt=_),this._hpainter=v}getItemName(){return this._hitemname??null}getItemDrawOpt(){return this._hdrawopt??""}}function J(){return Y.apply(this,arguments)}function Y(){return(Y=(0,Te.A)(function*(){return Se.e(398).then(Se.t.bind(Se,7398,19)).then(g=>(L.internals.nodejs_window||(L.internals.nodejs_window=new g.JSDOM("hello").window,L.internals.nodejs_document=L.internals.nodejs_window.document,L.internals.nodejs_body=(0,x.Lt)(L.internals.nodejs_document).select("body")),{JSDOM:g.JSDOM,doc:L.internals.nodejs_document,body:L.internals.nodejs_body}))})).apply(this,arguments)}function ue(g,E,_){(0,L.isObject)(g)||(_=E,E=g,g=null);const v=_?`translate(${E},${_})`:E?`translate(${E})`:null;return g?g.attr("transform",v):v}function Q(g,E){E?g.style("stroke","steelblue").style("fill-opacity","0.1"):g.style("stroke","#4572A7").style("fill","#4572A7").style("opacity","0")}function X(){return(X=(0,Te.A)(function*(g,E){const _=(0,L.isNodeJs)();let v,p,C=!1;const I=_?Promise.all([Se.e(76),Se.e(360)]).then(Se.bind(Se,7360)).then(V=>(v=V,Promise.all([Se.e(76),Se.e(537)]).then(Se.bind(Se,6537)))).then(V=>{p=V.default}):(0,L.loadScript)(L.source_dir+"scripts/jspdf.umd.min.js").then(()=>(0,L.loadScript)(L.source_dir+"scripts/svg2pdf.umd.min.js")).then(()=>{v=globalThis.jspdf,p=globalThis.svg2pdf}),U=[],k=[],Z=[],ee=g.node.getAttribute("transform"),he={};return g.reset_tranform&&g.node.removeAttribute("transform"),I.then(()=>{if((0,x.Lt)(g.node).selectAll("g").each(function(){this.hasAttribute("font-family")&&"Courier New"===this.getAttribute("font-family")&&(this.setAttribute("font-family","courier"),g.can_modify||U.push(this))}),(0,x.Lt)(g.node).selectAll("text").each(function(){this.hasAttribute("dominant-baseline")?(this.setAttribute("dy",".2em"),this.removeAttribute("dominant-baseline"),g.can_modify||k.push(this)):g.can_modify&&_&&".4em"===this.getAttribute("dy")&&this.setAttribute("dy",".2em"),(0,ke.cp)(this)&&(C=!0,g.can_modify||Z.push(this))}),_){const P=L.internals.nodejs_document;P.oldFunc=P.createElementNS,globalThis.document=P,globalThis.CSSStyleSheet=L.internals.nodejs_window.CSSStyleSheet,globalThis.CSSStyleRule=L.internals.nodejs_window.CSSStyleRule,P.createElementNS=function(T,z){const W=P.oldFunc(T,z);return W.getBBox=function(){let fe=50,we=10;if("text"===this.tagName){const Me=(0,ve.dj)(this);fe=(0,ke.N7)(this.textContent,Me),we=Me.size}return{x:0,y:0,width:fe,height:we}},W}}const V=new v.jsPDF({orientation:"landscape",unit:"px",format:[g.width+10,g.height+10]});(0,x.Lt)(g.node).selectAll("style").each(function(){const P=this.$fonthandler;if(!P||he[P.name]||"ttf"!==P.format)return;const T=P.name.toLowerCase().replace(/\s/g,"")+".ttf";V.addFileToVFS(T,P.base64),V.addFont(T,P.name,"normal","normal","symbol"===P.name?"StandardEncoding":"Identity-H"),he[P.name]=!0});let b=Promise.resolve(!0);return C&&!he.symbol&&((0,ve.Zq)("symbol")||(b=_?Se.e(926).then(Se.t.bind(Se,3926,19)).then(P=>{const T=P.readFileSync("../../fonts/symbol.ttf").toString("base64");console.log("reading symbol.ttf",T.length),(0,ve.uT)(25,"symbol","ttf",T)}):(0,L.httpRequest)(L.source_dir+"fonts/symbol.ttf","bin").then(P=>{const T=(0,L.btoa_func)(P);(0,ve.uT)(25,"symbol","ttf",T)})),b=b.then(()=>{const P=(0,ve.Zq)("symbol"),T=new ve.qg(1242,10);T.name="symbol",T.base64=P.base64,T.addCustomFontToSvg((0,x.Lt)(g.node)),V.addFileToVFS("symbol.ttf",P.base64),V.addFont("symbol.ttf","symbol","normal","normal","StandardEncoding")})),b.then(()=>p.svg2pdf(g.node,V,{x:5,y:5,width:g.width,height:g.height})).then(()=>{g.reset_tranform&&!g.can_modify&&ee&&g.node.setAttribute("transform",ee),U.forEach(T=>T.setAttribute("font-family","Courier New")),k.forEach(T=>{T.setAttribute("dominant-baseline","middle"),T.removeAttribute("dy")}),Z.forEach(T=>{T.innerHTML=T.$originalHTML});const P=V.output(E?"arraybuffer":"dataurlstring");return _&&(globalThis.document=void 0,globalThis.CSSStyleSheet=void 0,globalThis.CSSStyleRule=void 0,L.internals.nodejs_document.createElementNS=L.internals.nodejs_document.oldFunc,E)?Buffer.from(P):P})})})).apply(this,arguments)}function B(g,E,_){return $.apply(this,arguments)}function $(){return $=(0,Te.A)(function*(g,E,_){if("svg"===E)return g;if("pdf"===E)return function me(g,E){return X.apply(this,arguments)}(g,_);g=(g=encodeURIComponent(''+g)).replace(/%([0-9A-F]{2})/g,(C,I)=>{const U=String.fromCharCode("0x"+I);return"%"===U?"%25":U}),g=decodeURIComponent(g);const p="data:image/svg+xml;base64,"+(0,L.btoa_func)(g);return(0,L.isNodeJs)()?Se.e(511).then(Se.t.bind(Se,1511,19)).then(function(){var C=(0,Te.A)(function*(I){return I.default.loadImage(p).then(U=>{const k=I.default.createCanvas(U.width,U.height);return k.getContext("2d").drawImage(U,0,0,U.width,U.height),_?k.toBuffer("image/"+E):E?k.toDataURL("image/"+E):k})});return function(I){return C.apply(this,arguments)}}()):new Promise(C=>{const I=document.createElement("img");I.onload=function(){const U=document.createElement("canvas");U.width=I.width,U.height=I.height,U.getContext("2d").drawImage(I,0,0),_&&E?U.toBlob(k=>k.arrayBuffer().then(C),"image/"+E):C(E?U.toDataURL("image/"+E):U)},I.onerror=function(U){console.log(`IMAGE ERROR ${U}`),C(null)},I.src=p})}),$.apply(this,arguments)}},4246:(Yr,mt,Se)=>{"use strict";Se.d(mt,{Zq:()=>He,dj:()=>Ve,qg:()=>Ze,uT:()=>Re});const Te="Arial",x="Times New Roman",L="Courier New",ve="Verdana",ke="Symbol",ot="Wingdings",Ye=[null,{n:x,s:"italic",aw:.5314},{n:x,w:"bold",aw:.5809},{n:x,s:"italic",w:"bold",aw:.554},{n:Te,aw:.5778},{n:Te,s:"oblique",aw:.5783},{n:Te,w:"bold",aw:.6034},{n:Te,s:"oblique",w:"bold",aw:.603},{n:L,aw:.6003},{n:L,s:"oblique",aw:.6004},{n:L,w:"bold",aw:.6003},{n:L,s:"oblique",w:"bold",aw:.6005},{n:ke,aw:.5521},{n:x,aw:.5521},{n:ot,aw:.5664},{n:ke,s:"italic",aw:.5314},{n:ve,aw:.5664},{n:ve,s:"italic",aw:.5495},{n:ve,w:"bold",aw:.5748},{n:ve,s:"italic",w:"bold",aw:.5578}];class Ze{constructor(F,J,Y){Y&&J<1&&(J*=Y,this.scaled=!0),this.size=Math.round(J||11),this.scale=Y,this.func=this.setFont.bind(this);const ue=F&&Number.isInteger(F)?Math.floor(F/10):0,Q=Ye[ue];Q?this.setNameStyleWeight(Q.n,Q.s,Q.w,Q.aw,Q.format,Q.base64):this.setNameStyleWeight(Te)}setNameStyleWeight(F,J,Y,ue,Q,me){this.name=F,this.style=J||null,this.weight=Y||null,this.aver_width=ue||(Y?.58:.55),this.format=Q,this.base64=me,this.name===ke||this.name===ot?(this.isSymbol=this.name,this.name=x):this.isSymbol=""}setPainter(F){this.painter=F}addCustomFontToSvg(F){if(!this.base64||!this.name)return;const J="custom_font_"+this.name;let ue=F.selectChild(".canvas_defs");ue.empty()&&(ue=F.insert("svg:defs",":first-child").attr("class","canvas_defs")),ue.selectChild("."+J).empty()&&(console.log("Adding style entry for class",J),ue.append("style").attr("class",J).property("$fonthandler",this).text(`@font-face { font-family: "${this.name}"; font-weight: normal; font-style: normal; src: url(data:application/font-ttf;charset=utf-8;base64,${this.base64}); }`))}setFont(F){this.base64&&this.painter&&this.addCustomFontToSvg(this.painter.getCanvSvg()),F.attr("font-family",this.name).attr("font-size",this.size).attr("xml:space","preserve").attr("font-weight",this.weight||null).attr("font-style",this.style||null)}setSize(F){this.size=Math.round(F)}setColor(F){this.color=F}setAlign(F){this.align=F}setAngle(F){this.angle=F}roundAngle(F,J){this.angle=parseInt(this.angle||0),Number.isInteger(this.angle)||(this.angle=0),this.angle=Math.round(this.angle/F)*F+(J||0),this.angle<0?this.angle+=360:this.angle>=360&&(this.angle-=360)}clearFont(F){F.attr("font-family",null).attr("font-size",null).attr("xml:space",null).attr("font-weight",null).attr("font-style",null)}isMonospace(){const F=this.name.toLowerCase();return 0===F.indexOf("courier")||"monospace"===F||"monaco"===F}getFontHtml(){let F=Math.round(this.size)+"pt "+this.name;return this.weight&&(F+=" "+this.weight),this.style&&(F+=" "+this.style),F}getFontName(){return this.isSymbol||this.name||"none"}}function Re(De,F,J,Y){Number.isInteger(De)?Ye[De]={n:F,format:J,base64:Y}:console.error(`Wrong index ${De} for custom font`)}function He(De){return Ye.find(F=>F?.n===De&&F?.base64)}function Ve(De){const F=De.getAttribute("font-size"),J=De.getAttribute("font-family"),Y=F.indexOf("px"),ue=Y>0?Number.parseInt(F.slice(0,Y)):12;let Q=De.getAttribute("font-style"),me=De.getAttribute("font-weight"),X=null,B="";"normal"===me?me="":"bold"===me&&(B+="b"),"normal"===Q?Q="":"italic"===Q?B+="i":"oblique"===Q&&(B+="o"),"arial"===J?B+="Arial":"times"===J?B+="Times New Roman":"verdana"===J&&(B+="Verdana");for(let g=1;g{"use strict";Se.d(mt,{rb:()=>g,JW:()=>De,tP:()=>$,as:()=>F,OZ:()=>X,m6:()=>J,Nn:()=>Y,XR:()=>B,QD:()=>me});var Te=Se(4882),x=Se(8362),L=Se(8872),ve=Se(3147),ke=Se(2843),ot=Se(2586),Ye=Se(2985);class Ze{constructor(_){this.color="none",this.colorindx=0,this.pattern=0,this.used=!0,this.kind=_.kind||2,this.changed=!1,this.func=this.apply.bind(this),this.setArgs(_),this.changed=!1}setArgs(_){(0,L.isObject)(_.attr)&&(void 0===_.pattern&&void 0!==_.attr.fFillStyle&&(_.pattern=_.attr.fFillStyle),void 0===_.color&&void 0!==_.attr.fFillColor&&(_.color=_.attr.fFillColor));const v=this.changed;this.change(_.color,_.pattern,_.svg,_.color_as_svg,_.painter),this.changed=v}apply(_){this.used=!0,_.style("fill",this.getFillColor()),"opacity"in this&&_.style("opacity",this.opacity),"antialias"in this&&_.style("antialias",this.antialias)}getFillColor(){return this.pattern_url||this.color}getFillColorAlt(_){return this.color&&"none"!==this.color?this.color:_}empty(){const _=this.getFillColor();return!_||"none"===_}setUsed(_){this.used=_}hasColor(){return this.color&&"none"!==this.color}setSolidColor(_){delete this.pattern_url,this.color=_,this.pattern=1001}setOpacity(_){this.opacity=_}isSolid(_){return!(1001!==this.pattern||this.gradient||_&&_!==this.color)}verifyDirectChange(_){(0,L.isStr)(this.pattern)&&(this.pattern=parseInt(this.pattern)),Number.isInteger(this.pattern)||(this.pattern=0),this.change(this.color,this.pattern,_?_.getCanvSvg():null,!0,_)}change(_,v,p,C,I){if(delete this.pattern_url,delete this.gradient,this.changed=!0,void 0!==_&&Number.isInteger(parseInt(_))&&!C&&(this.colorindx=parseInt(_)),void 0!==v&&Number.isInteger(parseInt(v))&&(this.pattern=parseInt(v),delete this.opacity,delete this.antialias),1e3===this.pattern&&0===this.colorindx)return this.pattern_url="white",!0;if(1e3===this.pattern&&(this.pattern=1001),this.pattern<1001)return this.pattern_url="none",!0;if(this.isSolid()&&0===this.colorindx&&1===this.kind&&!C)return this.pattern_url="none",!0;let U=this.colorindx;if(C?(this.color=_,"none"!==_&&(U=(0,x.yW)(_).hex().slice(1))):this.color=I?I.getColor(U):(0,Ye.oU)(U),(0,L.isStr)(this.color)||((0,L.isObject)(this.color)&&(this.color?._typename===Ye.pX||this.color?._typename===Ye.ho)&&(this.gradient=this.color),this.color="none"),this.isSolid())return!0;if(!this.gradient){if(this.pattern>=4e3&&this.pattern<=4100)return this.opacity=(this.pattern-4e3)/100,!0;if(this.pattern<3e3||"none"===this.color)return!1}if(!p||p.empty())return!1;let k="",Z="",ee=null,he="",V="",b=2,P=2;if(this.gradient)k=`grad_${this.gradient.fNumber}`;else{switch(k=`pat_${this.pattern}_${U}`,this.pattern){case 3001:b=P=2,he="M0,0h1v1h-1zM1,1h1v1h-1z";break;case 3002:b=4,P=2,he="M1,0h1v1h-1zM3,1h1v1h-1z";break;case 3003:b=P=4,he="M2,1h1v1h-1zM0,3h1v1h-1z";break;case 3004:b=P=8,Z="M8,0L0,8";break;case 3005:b=P=8,Z="M0,0L8,8";break;case 3006:b=P=4,Z="M1,0v4";break;case 3007:b=P=4,Z="M0,1h4";break;case 3008:b=P=10,he="M0,3v-3h3ZM7,0h3v3ZM0,7v3h3ZM7,10h3v-3ZM5,2l3,3l-3,3l-3,-3Z",Z="M0,3l5,5M3,10l5,-5M10,7l-5,-5M7,0l-5,5";break;case 3009:b=12,P=12,Z="M0,0A6,6,0,0,0,12,0M6,6A6,6,0,0,0,12,12M6,6A6,6,0,0,1,0,12",ee="none";break;case 3010:b=P=10,Z="M0,2h10M0,7h10M2,0v2M7,2v5M2,7v3";break;case 3011:b=9,P=18,Z="M5,0v8M2,1l6,6M8,1l-6,6M9,9v8M6,10l3,3l-3,3M0,9v8M3,10l-3,3l3,3",ee="none";break;case 3012:b=10,P=20,Z="M5,1A4,4,0,0,0,5,9A4,4,0,0,0,5,1M0,11A4,4,0,0,1,0,19M10,11A4,4,0,0,0,10,19",ee="none";break;case 3013:b=P=7,Z="M0,0L7,7M7,0L0,7",ee="none";break;case 3014:b=P=16,Z="M0,0h16v16h-16v-16M0,12h16M12,0v16M4,0v8M4,4h8M0,8h8M8,4v8",ee="none";break;case 3015:b=6,P=12,Z="M2,1A2,2,0,0,0,2,5A2,2,0,0,0,2,1M0,7A2,2,0,0,1,0,11M6,7A2,2,0,0,0,6,11",ee="none";break;case 3016:b=12,P=7,Z="M0,1A3,2,0,0,1,3,3A3,2,0,0,0,9,3A3,2,0,0,1,12,1",ee="none";break;case 3017:b=P=4,Z="M3,1l-2,2";break;case 3018:b=P=4,Z="M1,1l2,2";break;case 3019:b=P=12,Z="M1,6A5,5,0,0,0,11,6A5,5,0,0,0,1,6h-1h1A5,5,0,0,1,6,11v1v-1A5,5,0,0,1,11,6h1h-1A5,5,0,0,1,6,1v-1v1A5,5,0,0,1,1,6",ee="none";break;case 3020:b=7,P=12,Z="M1,0A2,3,0,0,0,3,3A2,3,0,0,1,3,9A2,3,0,0,0,1,12",ee="none";break;case 3021:b=P=8,Z="M8,2h-2v4h-4v2M2,0v2h-2",ee="none";break;case 3022:b=P=8,Z="M0,2h2v4h4v2M6,0v2h2",ee="none";break;case 3023:b=P=8,he="M4,0h4v4zM8,4v4h-4z",V="M4,0L0,4L4,8L8,4Z";break;case 3024:b=P=16,he="M0,8v8h2v-8zM8,0v8h2v-8M4,14v2h12v-2z",V="M0,2h8v6h4v-6h4v12h-12v-6h-4z";break;case 3025:b=P=18,he="M5,13v-8h8ZM18,0v18h-18l5,-5h8v-8Z";break;default:{if(this.pattern>3025&&this.pattern<3100){b=4,P=2,he="M1,0h1v1h-1zM3,1h1v1h-1z";break}const z=this.pattern%1e3,W=z%10,fe=(z-W)%100/10,we=(z-10*fe-W)/100;if(!we)break;const Me=fe===W||0===fe||5===fe||9===fe||0===W||5===W||9===W,je=I?.getPadPainter(),Ge=je?Math.max(je.getPadWidth(),je.getPadHeight()):600,lt=Math.max(.1,L.gStyle.fHatchesSpacing*Ge*.001),bt=6*Math.max(1,Math.round(lt)),te=we*bt;k+=Me?`_hn${Math.round(100*lt)}`:`_ho${bt}`,b=P=6*te;const Fe=Me?(St,pt,st,vt)=>{if(0===st||90===st){const Cn=Math.round(P/(we*lt*3)),yn=P/Cn;let Sn=yn/2;for(;Sn0;){let $n=0,Cn=Dn,yn=b,Sn=Dn+Ot;Cn<-1e-5?($n=-Cn/Ot*b,Cn=0):Sn>P&&(yn=(P-Cn)/Ot*b,Sn=P),vt&&($n=b-$n,yn=b-yn),Z+=`M${Math.round($n)},${Math.round(Cn)}L${Math.round(yn)},${Math.round(Sn)}`,Dn-=Mn}}:(St,pt)=>{const st=[];let Ot,Bn,Mn,vt=te,Yt=0,qt=P;for(Math.abs(St)<3&&(vt=Math.round(te/12*9)),0===St?(vt=Math.round(te/12*8),Yt=vt/2):St>0?qt-=vt:Yt=vt;Yt<=qt;)Ot=Yt+St*vt,Ot<0?(Mn=Math.round(Yt/(Yt-Ot)*b),st.push(0,Yt,Mn,0),st.push(b,P-Yt,b-Mn,P)):Ot>P?(Mn=Math.round((P-Yt)/(Ot-Yt)*b),st.push(0,Yt,Mn,P),st.push(b,P-Yt,b-Mn,0)):st.push(0,Yt,b,Ot),Yt+=vt;for(let bn=0;bnwe===Math.round(we)?we.toFixed(0):we.toFixed(2);z?W.attr("x1",fe(this.gradient.fStart.fX)).attr("y1",fe(1-this.gradient.fStart.fY)).attr("x2",fe(this.gradient.fEnd.fX)).attr("y2",fe(1-this.gradient.fEnd.fY)):W.attr("cx",fe(this.gradient.fStart.fX)).attr("cy",fe(1-this.gradient.fStart.fY)).attr("cr",fe(this.gradient.fR1));for(let we=0;we=0&&(L.gStyle[_]=p)}v&&(L.gStyle[v]=this.pattern)}}var Re=Se(4082);class He{constructor(_){this.used=!0,_._typename&&void 0!==_.fTextFont&&(_={attr:_}),this.setArgs(_)}setArgs(_){_.attr?(_.font=_.attr.fTextFont||_.attr_alt?.fTextFont||0,_.size=_.attr.fTextSize||_.attr_alt?.fTextSize||0,this.color_index=_.attr.fTextColor||_.attr_alt?.fTextColor||0,_.color=_.painter?.getColor(this.color_index)??(0,Ye.oU)(this.color_index),_.align=_.attr.fTextAlign||_.attr_alt?.fTextAlign||0,_.angle=_.attr.fTextAngle||_.attr_alt?.fTextAngle||0):"number"==typeof _.color&&(this.color_index=_.color,_.color=_.painter?.getColor(_.color)??(0,Ye.oU)(_.color)),this.font=_.font,this.size=_.size,this.color=_.color,this.align=_.align,this.angle=_.angle,this.angle_used=!1,this.align_used=!1}empty(){return"none"===this.color}change(_,v,p,C,I){void 0!==_&&(this.font=_),void 0!==v&&(this.size=v),void 0!==p&&(this.color!==p&&delete this.color_index,this.color=p),void 0!==C&&(this.align=C),void 0!==I&&(this.angle=I),this.changed=!0}verifyDirectChange(){this.change(parseInt(this.font),parseFloat(this.size),this.color,parseInt(this.align),parseInt(this.angle))}createArg(_){return _||(_={}),this.align_used=!_.noalign&&!_.align,this.align_used&&(_.align=this.align),this.angle_used=!_.norotate,this.angle_used&&this.angle&&(_.rotate=-this.angle),_.color=this.color||"black",_}getSize(_,v,p,C){return this.size>=1?Math.round(this.size):(_||(_=1e3),v||(v=_),p||(p=1),Math.round((this.size||C||0)*Math.min(_,v)*p))}getAltSize(_,v){return _||(_=this.size),Math.round(_>=1?_:_*v)}getGedFont(){return Math.floor(this.font/10)}setGedFont(_){const v=parseInt(_);return v>0&&v<17&&this.change(10*v+this.font%10),this.font}}var Ve=Se(4246);class De extends ke.b8{constructor(_,v,p){super(_),this.pad_name=_?this.selectCurrentPad():"",this.assignObject(v),(0,L.isStr)(p)&&(this.options={original:p})}assignObject(_){(0,L.isObject)(_)?this.draw_object=_:delete this.draw_object}setPadName(_){this.pad_name=(0,L.isStr)(_)?_:this.selectCurrentPad()}getPadName(){return this.pad_name||""}isBatchMode(){return!!(0,L.isBatchMode)()||(this.getCanvPainter()?.isBatchMode()??!1)}assignSnapId(_){this.snapid=_}cleanup(){this.removeG();let _=!0;if(this.isMainPainter()){const v=this.getPadPainter();(!v||!1===v.normal_canvas)&&(_=!1)}delete this.pad_name,delete this._main_painter,this.draw_object=null,delete this.snapid,delete this.fillatt,delete this.lineatt,delete this.markeratt,delete this.bins,delete this.root_colors,delete this.options,delete this.options_store,delete this.rstyle,delete this.csstype,super.cleanup(_)}getObject(){return this.draw_object}getObjectName(){return this.getObject()?.fName??""}getClassName(){return this.getObject()?._typename??""}matchObjectType(_){const v=this.getClassName();return!(!_||!v)&&((0,L.isStr)(_)?_===v:(0,L.isStr)(_._typename)?_._typename===v:v.match(_))}setItemName(_,v,p){if(super.setItemName(_,v,p),this.no_default_title||!_)return;const C=this.getCanvSvg();C.empty()?this.selectDom().attr("title",_):C.select("title").text(_);const I=this.getCanvPainter();I&&(I===this||this.isMainPainter()&&I===this.getPadPainter())&&I.drawItemNameOnCanvas(_)}storeDrawOpt(_){if(!this.options)return;_||(_="");const v=_.indexOf(";;");v>=0&&(_=_.slice(0,v)),this.options.original=_,this.options_store=Object.assign({},this.options)}getDrawOpt(_){if(!this.options)return"";if((0,L.isFunc)(this.options.asString)){let v=!1;const p=this.getPadPainter();if(!this.options_store||p?._interactively_changed)v=!0;else for(const C in this.options)this.options[C]!==this.options_store[C]&&(v=!0);if(v&&(0,L.isFunc)(this.options.asString))return this.options.asString(this.isMainPainter(),_?null:p?.getRootPad())}return this.options.original||""}getSupportedDrawOptions(){const _=this.getPadPainter(),v=this.getClassName();return v&&(0,L.isFunc)(_?.getObjectDrawSettings)?_.getObjectDrawSettings(L.prROOT+v,"nosame")?.opts:[]}redrawObject(_,v){if(!this.updateObject(_,v))return!1;const p=(0,L.getDocument)(),C=p.body.style.cursor;document.body.style.cursor="wait";const I=this.redrawPad();return p.body.style.cursor=C,I}updateObject(_){return!!this.matchObjectType(_)&&(Object.assign(this.getObject(),_),!0)}getObjectHint(){const _=this.getItemName();return _?_.length>20?"..."+_.slice(_.length-17):_:this.getObjectName()||this.getClassName()||""}getColor(_){return this.root_colors||(this.root_colors=this.getCanvPainter()?.root_colors||(0,Ye.HG)()),this.root_colors[_]}addColor(_){this.root_colors||(this.root_colors=this.getCanvPainter()?.root_colors||(0,Ye.HG)());const v=this.root_colors.indexOf(_);return v>=0?v:(this.root_colors.push(_),this.root_colors.length-1)}isTooltipAllowed(){return(this.getCanvPainter()||this).tooltip_allowed}setTooltipAllowed(_){void 0===_&&(_=!0);const v=this.getCanvPainter()||this;v.tooltip_allowed="toggle"===_?!v.tooltip_allowed:_}checkResize(_){return this.getCanvPainter()?.checkCanvasResize(_)}removeG(){this.draw_g?.remove(),delete this.draw_g}getG(){return this.draw_g}createG(_){let v;if(_){const I=this.getFrameSvg();if(I.empty())return console.error("Not found frame to create g element inside"),I;(0,L.isStr)(_)||(_="main_layer"),v=I.selectChild("."+_)}else v=this.getLayerSvg("primitives_layer");this.draw_g&&this.draw_g.node().parentNode!==v.node()&&(console.log("g element changes its layer!!"),this.removeG()),this.draw_g?this.draw_g.selectAll("*").remove():(this.draw_g=v.append("svg:g"),_||v.selectChildren(".most_upper_primitives").raise());const p=this.getClassName(),C=this.getObjectName();return(C||p)&&this.draw_g.attr("objname",(C||"name").replace(/[^\w]/g,"_")).attr("objtype",(p||"type").replace(/[^\w]/g,"_")),this.draw_g.property("in_frame",!!_),this.draw_g}bringToFront(_){if(!this.draw_g||(this.draw_g.node().parentNode?.appendChild(this.draw_g.node()),!_||!this.snapid))return;const p=this.getPadPainter();p?.snapid&&this.getCanvPainter()?.sendWebsocket("POPOBJ:"+JSON.stringify([p.snapid.toString(),this.snapid.toString()]))}getCanvSvg(){return this.selectDom().select(".root_canvas")}getPadSvg(_){void 0===_&&(_=this.pad_name);let v=this.getCanvSvg();if(!_||v.empty())return v;const p=v.property("pad_painter");return p?.pads_cache&&p.pads_cache[_]?(0,x.Lt)(p.pads_cache[_]):(v=v.select(".primitives_layer .__root_pad_"+_),p&&(p.pads_cache||(p.pads_cache={}),p.pads_cache[_]=v.node()),v)}getUniqueId(_=!1){return!_&&void 0===this._unique_painter_id&&(this._unique_painter_id=L.internals.id_counter++),this._unique_painter_id}setSecondaryId(_,v){this._main_painter_id=_.getUniqueId(),this._secondary_id=v}isSecondary(_){return void 0!==this._main_painter_id&&(!(0,L.isObject)(_)||this._main_painter_id===_.getUniqueId(!0))}getSnapId(_){return this.snapid?this.snapid.toString()+(_?"#"+_:""):""}getLayerSvg(_,v){let p=this.getPadSvg(v);return p.empty()?p:(0===_.indexOf("prim#")&&(p=p.selectChild(".primitives_layer"),_=_.slice(5)),p.selectChild("."+_))}selectCurrentPad(_){const v=this.getCanvSvg();if(v.empty())return"";const p=v.property("current_pad");return void 0!==_&&v.property("current_pad",_),p}getPadPainter(_){const v=this.getPadSvg((0,L.isStr)(_)?_:void 0);return v.empty()?null:v.property("pad_painter")}getCanvPainter(){const _=this.getCanvSvg();return _.empty()?null:_.property("pad_painter")}getAxisToSvgFunc(_,v){const p={isndc:_,nornd:v},C=this.draw_g?.property("in_frame");if(C&&(p.main=this.getFramePainter()),p.main?.grx&&p.main?.gry)v?(p.x=function(I){return this.main.grx(I)},p.y=function(I){return this.main.gry(I)}):(p.x=function(I){return Math.round(this.main.grx(I))},p.y=function(I){return Math.round(this.main.gry(I))});else if(C)console.error(`Problem to create functor for ${this.getClassName()}`),p.x=()=>0,p.y=()=>0;else{const I=this.getPadPainter();_||(p.pad=I?.getRootPad(!0)),p.padw=I?.getPadWidth()??10,p.x=function(U){return this.pad&&(this.pad.fLogx&&(U=U>0?Math.log10(U):this.pad.fUxmin),U=(U-this.pad.fX1)/(this.pad.fX2-this.pad.fX1)),U*=this.padw,this.nornd?U:Math.round(U)},p.padh=I?.getPadHeight()??10,p.y=function(U){return this.pad&&(this.pad.fLogy&&(U=U>0?Math.log10(U):this.pad.fUymin),U=(U-this.pad.fY1)/(this.pad.fY2-this.pad.fY1)),U=(1-U)*this.padh,this.nornd?U:Math.round(U)}}return p}axisToSvg(_,v,p,C){return this.getAxisToSvgFunc(p,C)[_](v)}svgToAxis(_,v,p){if(this.draw_g?.property("in_frame"))return this.getFramePainter()?.revertAxis(_,v)??0;const I=this.getPadPainter(),U=p||!I?null:I.getRootPad(!0);let k=I?"y"===_?1-v/I.getPadHeight():v/I.getPadWidth():0;return U&&("y"===_?(k=U.fY1+k*(U.fY2-U.fY1),U.fLogy&&(k=Math.pow(10,k))):(k=U.fX1+k*(U.fX2-U.fX1),U.fLogx&&(k=Math.pow(10,k)))),k}getFrameSvg(_){const v=this.getLayerSvg("primitives_layer",_);if(v.empty())return v;let p=v.node().firstChild;for(;p;){const C=(0,x.Lt)(p);if(C.classed("root_frame"))return C;p=p.nextSibling}return(0,x.Lt)(null)}getFramePainter(){return this.getPadPainter()?.getFramePainter()}getMainPainter(_){let v=this._main_painter;if(!v){const p=this.getPadPainter();v=p?p.getMainPainter():this.getTopPainter(),v||(v=null),_||(this._main_painter=v)}return v}isMainPainter(){return this===this.getMainPainter()}setAsMainPainter(_){const v=this.getPadPainter();v?v.setMainPainter(this,_):this.setTopPainter()}addToPadPrimitives(_){void 0!==_&&this.setPadName(_);const v=this.getPadPainter(_);return!(!v||v===this||(v.painters.indexOf(this)<0&&v.painters.push(this),!this.rstyle&&v.next_rstyle&&(this.rstyle=v.next_rstyle),0))}removeFromPadPrimitives(){const _=this.getPadPainter();if(!_||_===this)return!1;const v=_.painters.indexOf(this);return v>=0&&_.painters.splice(v,1),!0}createAttMarker(_){(0,L.isObject)(_)?void 0!==_.fMarkerColor&&void 0!==_.fMarkerStyle&&void 0!==_.fMarkerSize&&(_={attr:_,std:!1}):_={std:!0},void 0===_.std&&(_.std=!0),void 0===_.painter&&(_.painter=this);let v=_.std?this.markeratt:null;return v?(!v.changed||_.force)&&v.setArgs(_):v=new ot.e(_),_.std&&(this.markeratt=v),v}createAttLine(_){(0,L.isObject)(_)?void 0!==_.fLineColor&&void 0!==_.fLineStyle&&void 0!==_.fLineWidth&&(_={attr:_,std:!1}):_={std:!0},void 0===_.std&&(_.std=!0),void 0===_.painter&&(_.painter=this);let v=_.std?this.lineatt:null;return v?(!v.changed||_.force)&&v.setArgs(_):v=new Re.gx(_),_.std&&(this.lineatt=v),v}createAttText(_){(0,L.isObject)(_)?void 0!==_.fTextFont&&void 0!==_.fTextSize&&void 0!==_.fTextColor&&(_={attr:_,std:!1}):_={std:!0},void 0===_.std&&(_.std=!0),void 0===_.painter&&(_.painter=this);let v=_.std?this.textatt:null;return v?(!v.changed||_.force)&&v.setArgs(_):v=new He(_),_.std&&(this.textatt=v),v}createAttFill(_){(0,L.isObject)(_)?_._typename&&void 0!==_.fFillColor&&void 0!==_.fFillStyle&&(_={attr:_,std:!1}):_={std:!0},void 0===_.std&&(_.std=!0);let v=_.std?this.fillatt:null;return _.svg||(_.svg=this.getCanvSvg()),void 0===_.painter&&(_.painter=this),v?(!v.changed||_.force)&&v.setArgs(_):v=new Ze(_),_.std&&(this.fillatt=v),v}forEachPainter(_,v){const p=this.getPadPainter();if(p)p.forEachPainterInPad(_,v);else{const C=this.getTopPainter();C&&"pads"!==v&&_(C)}}interactiveRedraw(_,v,p){var C=this;return(0,Te.A)(function*(){let I,U;return(0,L.isStr)(v)&&0!==v.indexOf("exec:")&&(I=v),"pad"===_?U=C.redrawPad(I):!1!==_&&(U=C.redraw(I)),(0,L.getPromise)(U).then(()=>{const k=C.getCanvPainter();return(0,L.isFunc)(k?.producePadEvent)&&k.producePadEvent("redraw",C.getPadPainter(),C,null,p),(0,L.isFunc)(k?.processChanges)&&k.processChanges(v,C,p),C})})()}redrawPad(_){var v=this;return(0,Te.A)(function*(){return v.getPadPainter()?.redrawPad(_)??!1})()}executeMenuCommand(_){return"Inspect"===_.fName&&this.showInspector()}submitCanvExec(_,v){if(!_||!(0,L.isStr)(_))return;const p=this.getCanvPainter();(0,L.isFunc)(p?.submitExec)&&p.submitExec(this,_,v)}deleteAttr(){delete this.lineatt,delete this.fillatt,delete this.markeratt}showInspector(){return!1}fillContextMenu(_){const v=this.getObjectName();let p=this.getClassName();const C=p.lastIndexOf("::");C>0&&(p=p.slice(C+2)),_.add(`header:${p&&v?`${p}:${v}`:p||v||"object"}`);const U=_.size();return(0,L.isFunc)(this.fillContextMenuItems)&&this.fillContextMenuItems(_),_.size()>U&&this.showInspector("check")&&_.add("Inspect",this.showInspector),_.addAttributesMenu(this),_.size()>U}showObjectStatus(_,v,p,C){let I=this.getCanvPainter();if(I&&!(0,L.isFunc)(I.showCanvasStatus)&&(I=null),!I&&!(0,L.isFunc)(L.internals.showStatus)||"on"===this.enlargeMain("state"))return!1;if(void 0===_&&void 0===v){const U=this.getObject();if(!U)return;_=this.getItemName()||U.fName,v=U.fTitle||U._typename,p=U._typename}I?I.showCanvasStatus(_,v,p,C):L.internals.showStatus(_,v,p,C)}redraw(){}startTextDrawing(_,v,p,C){if(p||(p=this.draw_g),!p||p.empty())return;const I="font"===v?_:new Ve.qg(_,v);I.setPainter(this),p.call(I.func),p.property("draw_text_completed",!1).property("all_args",[]).property("text_font",I).property("text_factor",0).property("max_text_width",0).property("max_font_size",C).property("_fast_drawing",this.getPadPainter()?._fast_drawing??!1),p.property("_fast_drawing")&&p.property("_font_too_small",C&&C<5||I.size<4)}scaleTextDrawing(_,v){v||(v=this.draw_g),v&&!v.empty()&&_&&_>v.property("text_factor")&&v.property("text_factor",_)}_checkAllTextDrawing(_,v,p){let C=_.property("all_args"),I=0;if(C||(console.log("Text drawing is finished - why calling _checkAllTextDrawing?????"),C=[]),C.forEach(P=>{P.ready||I++}),I>0)return void((0,L.isFunc)(v)&&(_.node().textResolveFunc=v,_.node().try_optimize=p));_.property("all_args",null);const U=_.property("text_factor"),k=_.property("text_font"),Z=_.property("max_font_size");let ee=k.size,he=!1,V=!0;U>0&&(U<.9||U>1)&&(k.size=Math.max(1,Math.floor(k.size/U))),Z&&k.size>Z&&(k.size=Z),k.size!==ee&&(_.call(k.func),ee=k.size),C.forEach(P=>{if(P.mj_node&&P.applyAttributesToMathJax){const T=P.mj_node.select("svg");P.applyAttributesToMathJax(this,P.mj_node,T,P,ee,U),delete P.mj_node,V=!1}else P.txt_g&&(V=!1)}),v||(v=_.node().textResolveFunc,p=_.node().try_optimize,delete _.node().textResolveFunc,delete _.node().try_optimize);const b=p&&V?[]:null;C.forEach(P=>{let T,z,W=1;if(P.txt_node)T=P.txt_node,delete P.txt_node,z=!0,null!==b&&b.push(T);else{if(!P.txt_g)return;T=P.txt_g,delete P.txt_g,z=!1}T.attr("visibility",null),he=!0,P.width&&("middle"===P.align[0]?P.x+=P.width/2:"end"===P.align[0]&&(P.x+=P.width)),P.height&&(0===P.align[1].indexOf("bottom")?P.y+=P.height:"middle"===P.align[1]&&(P.y+=P.height/2));let fe=0,we=0;if(z)(0,L.isNodeJs)()?P.scale&&U>0&&(P.box.width*=1/U,P.box.height*=1/U):!P.plain&&!P.fast&&(P.box=(0,ke.xh)(T,"bbox")),P.plain?(T.attr("text-anchor",P.align[0]),"top"===P.align[1]?T.attr("dy",".8em"):"middle"===P.align[1]&&((0,L.isNodeJs)()?T.attr("dy",".4em"):T.attr("dominant-baseline","middle"))):(T.attr("text-anchor","start"),fe=("middle"===P.align[0]?-.5:"end"===P.align[0]?-1:0)*P.box.width,we=("top"===P.align[1]?P.top_shift||1:"middle"===P.align[1]?P.mid_shift||.5:0)*P.box.height);else if(P.text_rect){const lt=P.text_rect;W=U>0&&Math.abs(1-U)>.01?1/U:1,fe=("middle"===P.align[0]?-.5:"end"===P.align[0]?-1:0)*lt.width*W,"top"===P.align[1]?we=-lt.y1*W:"bottom"===P.align[1]?we=-lt.y2*W:"middle"===P.align[1]&&(we=-.5*(lt.y1+lt.y2)*W)}else console.error("text rect not calcualted - please check code");P.rotate||(P.x+=fe,P.y+=we,fe=we=0);let Me=(0,ke.bk)(Math.round(P.x),Math.round(P.y))||"";const je=(0,ke.bk)(Math.round(fe),Math.round(we)),Ge=lt=>{Me&&(Me+=" "),Me+=lt};P.rotate&&Ge(`rotate(${Math.round(P.rotate)})`),1!==W&&Ge(`scale(${W.toFixed(3)})`),je&&Ge(je),Me&&T.attr("transform",Me)}),he||k.clearFont(_),null!==b&&b.length>1&&["fill","text-anchor"].forEach(P=>{let T=b[0].attr(P);b.forEach(z=>{const W=z.attr(P);(!W||W!==T)&&(T=void 0)}),T&&(_.attr(P,T),b.forEach(z=>{z.attr(P,null)}))}),v&&v(this)}_postprocessDrawText(_,v){return _.box=(0,L.isNodeJs)()||L.settings.ApproxTextSize||_.fast?_.text_rect||{height:1.2*_.font_size,width:_.text.length*_.font_size*_.font.aver_width}:(0,ke.xh)(v,"bbox"),v.attr("visibility","hidden"),_.box.width>_.draw_g.property("max_text_width")&&_.draw_g.property("max_text_width",_.box.width),_.scale&&this.scaleTextDrawing(Math.max(1.05*_.box.width/_.width,_.box.height/_.height),_.draw_g),_.result_width=_.box.width,_.result_height=_.box.height,(0,L.isFunc)(_.post_process)&&_.post_process(this),_.box.width}drawText(_){if(_.text||(_.text=""),_.draw_g=_.draw_g||this.draw_g,!_.draw_g||_.draw_g.empty())return;const v=_.draw_g.property("text_font");_.font=v,v&&(v.color&&!_.color&&(_.color=v.color),v.align&&!_.align&&(_.align=v.align),v.angle&&!_.rotate&&(_.rotate=v.angle));let p=["start","middle"];if((0,L.isStr)(_.align)?(p=_.align.split(";"),1===p.length&&p.push("middle")):"number"==typeof _.align?(_.align/10>=3?p[0]="end":_.align/10>=2&&(p[0]="middle"),_.align%10==0?p[1]="bottom":_.align%10==1?p[1]="bottom-base":_.align%10==3&&(p[1]="top")):(0,L.isObject)(_.align)&&2===_.align.length&&(p=_.align),void 0===_.latex&&(_.latex=1),_.align=p,_.x=_.x||0,_.y=_.y||0,!1!==_.scale&&(_.scale=_.width&&_.height&&!_.font_size),_.width=_.width||0,_.height=_.height||0,_.draw_g.property("_fast_drawing"))if(_.scale){if(_.height<4)return 0}else if(_.font_size){if(_.font_size<4)return 0}else if(_.draw_g.property("_font_too_small"))return 0;_.draw_g.property("all_args").push(_),_.ready=!1;let C=2===_.latex;const I=L.constants.Latex;return 1===_.latex&&(C=L.settings.Latex===I.AlwaysMathJax||L.settings.Latex===I.MathJax&&_.text.match(/[#{\\]/g)||_.text.match(/[\\]/g)),!C||_.nomathjax?(_.txt_node=_.draw_g.append("svg:text"),_.color&&_.txt_node.attr("fill",_.color),_.font_size?_.txt_node.attr("font-size",_.font_size):_.font_size=v.size,_.plain=!_.latex||L.settings.Latex===I.Off||L.settings.Latex===I.Symbols,_.simple_latex=_.latex&&L.settings.Latex===I.Symbols,!_.plain||_.simple_latex||_.font&&_.font.isSymbol?(_.simple_latex||(0,ve.KA)(_.text)||_.plain?(_.simple_latex=!0,(0,ve.eN)(this,_.txt_node,_)):(_.txt_node.remove(),delete _.txt_node,_.txt_g=_.draw_g.append("svg:g"),(0,ve.Bm)(this,_.txt_g,_)),_.ready=!0,this._postprocessDrawText(_,_.txt_g||_.txt_node),_.draw_g.property("draw_text_completed")&&this._checkAllTextDrawing(_.draw_g),0):(_.plain=!0,_.txt_node.text(_.text),_.ready=!0,this._postprocessDrawText(_,_.txt_node))):(_.mj_node=_.draw_g.append("svg:g").attr("visibility","hidden"),(0,ve._o)(this,_.mj_node,_).then(()=>{_.ready=!0,_.draw_g.property("draw_text_completed")&&this._checkAllTextDrawing(_.draw_g)}),0)}finishTextDrawing(_,v){var p=this;return(0,Te.A)(function*(){return _||(_=p.draw_g),!(!_||_.empty())&&(_.property("draw_text_completed",!0),new Promise(C=>{p._checkAllTextDrawing(_,C,v)}))})()}configureUserContextMenu(_){_&&(0,L.isFunc)(_)?this._userContextMenuFunc=_:delete this._userContextMenuFunc}fillObjectExecMenu(_,v){var p=this;return(0,Te.A)(function*(){if((0,L.isFunc)(p._userContextMenuFunc))return p._userContextMenuFunc(_,v);const C=p.getCanvPainter();if(!p.snapid||!C||C?._readonly||!C?._websocket)return _;function I(Z){const ee=_.exec_painter||this,he=ee.getCanvPainter(),V=_.exec_items[parseInt(Z)];if(V?.fName){if("Show:Editor"===V.fExec)return void((0,L.isFunc)(he?.activateGed)&&he.activateGed(ee));if((!(0,L.isFunc)(he?.executeObjectMethod)||!he.executeObjectMethod(ee,V,V.$execid))&&(V.fClassName=ee.getClassName(),(V.$execid.indexOf("#x")>0||V.$execid.indexOf("#y")>0||V.$execid.indexOf("#z")>0)&&(V.fClassName=L.clTAxis),!ee.executeMenuCommand(V)&&V.$execid)){if(!V.fArgs)return he?.v7canvas?he.submitExec(ee,V.fExec,v):ee.submitCanvExec(V.fExec,V.$execid);_.showMethodArgsDialog(V).then(b=>{if(!b||ee.executeMenuCommand(V,b))return;const P=V.fExec.slice(0,V.fExec.length-1)+b+")";he?.v7canvas?he.submitExec(ee,P,v):he?.sendWebsocket(`OBJEXEC:${V.$execid}:${P}`)})}}}const U=(Z,ee,he,V)=>{if(!_._got_menu){if(_._got_menu=!0,V&&ee!==V.fId&&console.error(`missmatch between request ${ee} and reply ${V.fId} identifiers`),_.exec_items=V?.fItems,_.exec_items?.length){let b;Z.size()>0&&Z.add("separator");for(let P=0;P<_.exec_items.length;++P){const T=_.exec_items[P];if(T.$execid=V.fId,T.$menu=_,T.fClassName&&b&&b!==T.fClassName&&(Z.add("endsub:"),b=""),b!==T.fClassName){b=T.fClassName;const z=b.lastIndexOf("::"),W=z>0?b.slice(z+2):b;Z.add("sub:"+W.replace(/[<>]/g,"_"))}void 0===T.fChecked||T.fChecked<0?Z.add(T.fName,P,I):Z.addchk(T.fChecked,T.fName,P,I)}b&&Z.add("endsub:")}he(Z)}},k=p.getSnapId(v);return _._got_menu=!1,_.painter&&(_.exec_painter=_.painter!==p?p:void 0),new Promise(Z=>{let ee=!1;function he(V){ee||(ee=!0,Z(V))}setTimeout(()=>U(_,k,he),2e3),C.submitMenuRequest(p,v,k).then(V=>U(_,k,he,V))})})()}configureUserTooltipHandler(_,v){_&&(0,L.isFunc)(_)?(this._user_tooltip_handler=_,this._user_tooltip_timeout=v||100):(delete this._user_tooltip_handler,delete this._user_tooltip_timeout)}configureUserClickHandler(_){const v=this.getFramePainter();(0,L.isFunc)(v?.configureUserClickHandler)&&v.configureUserClickHandler(_)}configureUserDblclickHandler(_){const v=this.getFramePainter();(0,L.isFunc)(v?.configureUserDblclickHandler)&&v.configureUserDblclickHandler(_)}hasUserTooltip(){return(0,L.isFunc)(this._user_tooltip_handler)}provideUserTooltip(_){if(this.hasUserTooltip()){if(this._user_tooltip_timeout<=0)return this._user_tooltip_handler(_);if(this._user_tooltip_handle&&(clearTimeout(this._user_tooltip_handle),delete this._user_tooltip_handle),!_)return this._user_tooltip_handler(_);this._user_tooltip_handle=setTimeout(()=>{delete this._user_tooltip_handle,this._user_tooltip_handler&&this._user_tooltip_handler(_)},this._user_tooltip_timeout)}}provideSpecialDrawArea(_){var v=this;return(0,Te.A)(function*(){return _===v._special_draw_area||v.getCanvPainter().toggleProjection(_).then(()=>(v._special_draw_area=_,!0))})()}drawInSpecialArea(_,v,p){var C=this;return(0,Te.A)(function*(){const I=C.getCanvPainter();return!(!C._special_draw_area||!(0,L.isFunc)(I?.drawProjection))&&I.drawProjection(p||C._special_draw_area,_,v)})()}getToolTip(_){if(void 0===_?.clientX||void 0===_?.clientY)return null;const v=this.getFrameSvg();if(v.empty())return null;const p=v.selectChild(".main_layer");if(p.empty())return null;const C=(0,x.Wn)(_,p.node()),I={touch:!1,x:C[0],y:C[1]};if((0,L.isFunc)(this.extractToolTip))return this.extractToolTip(I);I.disabled=!0;const U=(0,L.isFunc)(this.processTooltipEvent)?this.processTooltipEvent(I):null;return U?.user_info||U}}function F(E,_){const v=new ke.b8(E);return v.txt=_,v.redrawObject=function(p){return this.txt=p,this.drawText(),!0},v.drawText=(0,Te.A)(function*(){let p=this.txt._typename===L.clTObjString?this.txt.fString:this.txt.value;(0,L.isStr)(p)||(p="");const C=this.txt.mathjax||L.settings.Latex===L.constants.Latex.AlwaysMathJax;if(!C&&!("as_is"in this.txt)){const k=p.split("\n");p="";for(let Z=0;Z${k[Z]}`}const I=this.selectDom();let U=I.select("div");return U.empty()&&(U=I.append("div").attr("style","max-width:100%;max-height:100%;overflow:auto")),U.html(p),this.setTopPainter(),C&&(0,ve.s7)(I.node()),this}),v.drawText()}function J(E){return new De(E).getCanvPainter()}function Y(E){return new De(E).getMainPainter(!0)}let Q=null;function me(E){E.active?(Q?.getFramePainter()?.setFrameActive(!1),Q=E.pp,Q?.getFramePainter()?.setFrameActive(!0)):Q===E.pp&&(Q=null)}function X(){return Q}function B(E,_){!0===_?_={force:!0}:(0,L.isObject)(_)||(_=null);let v=!1;return new De(E).forEachPainter(p=>{!v&&(0,L.isFunc)(p.checkResize)&&(v=p.checkResize(_))}),v}function $(E){const _=new De(E),v=[];return _.forEachPainter(p=>{v.indexOf(p)<0&&v.push(p)}),v.forEach(p=>p.cleanup()),_.selectDom().html(""),v}const g={kDecimals:(0,L.BIT)(7),kTickPlus:(0,L.BIT)(9),kTickMinus:(0,L.BIT)(10),kAxisRange:(0,L.BIT)(11),kCenterTitle:(0,L.BIT)(12),kCenterLabels:(0,L.BIT)(14),kRotateTitle:(0,L.BIT)(15),kPalette:(0,L.BIT)(16),kNoExponent:(0,L.BIT)(17),kLabelsHori:(0,L.BIT)(18),kLabelsVert:(0,L.BIT)(19),kLabelsDown:(0,L.BIT)(20),kLabelsUp:(0,L.BIT)(21),kIsInteger:(0,L.BIT)(22),kMoreLogLabels:(0,L.BIT)(23),kOppositeTitle:(0,L.BIT)(32)}},4082:(Yr,mt,Se)=>{"use strict";Se.d(mt,{Ov:()=>ot,gx:()=>ke});var Te=Se(8362),x=Se(8872),L=Se(2985);const ve=["","","3,3","1,2","3,4,1,4","5,3,1,3","5,3,1,3,1,3,1,3","5,5","5,3,1,3,1,3","20,5","20,10,1,10","1,3"];class ke{constructor(Ze){this.func=this.apply.bind(this),this.used=!0,Ze._typename&&void 0!==Ze.fLineStyle&&(Ze={attr:Ze}),this.setArgs(Ze)}setArgs(Ze){Ze.attr?(this.color_index=Ze.attr.fLineColor,Ze.color=Ze.color0||(Ze.painter?.getColor(this.color_index)??(0,L.oU)(this.color_index)),void 0===Ze.width&&(Ze.width=Ze.attr.fLineWidth),void 0===Ze.style&&(Ze.style=Ze.attr.fLineStyle)):(0,x.isStr)(Ze.color)?"none"!==Ze.color&&!Ze.width&&(Ze.width=1):"number"==typeof Ze.color&&(this.color_index=Ze.color,Ze.color=Ze.painter?.getColor(Ze.color)??(0,L.oU)(Ze.color)),void 0===Ze.width&&(Ze.width=Ze.color&&"none"!==Ze.color?1:0),this.color=0===Ze.width?"none":Ze.color,this.width=Ze.width,this.style=Ze.style,this.pattern=Ze.pattern||ve[this.style]||null,Ze.can_excl&&(this.excl_side=this.excl_width=0,Math.abs(this.width)>99&&(this.excl_side=this.width<0?-1:1,this.excl_width=5*Math.floor(this.width/100),this.width=Math.abs(this.width%100))),!this.color&&this.width>0&&(this.color="lightgrey")}changeExcl(Ze,Re){void 0!==Re&&(this.excl_width=Re),void 0!==Ze&&(this.excl_side=Ze,0===this.excl_width&&0!==this.excl_side&&(this.excl_width=20)),this.changed=!0}empty(){return"none"===this.color}setUsed(Ze){this.used=Ze}setBorder(Ze,Re){this.rx=Ze,this.ry=Re,this.func=this.applyBorder.bind(this)}apply(Ze){this.used=!0,this.empty()?Ze.style("stroke",null).style("stroke-width",null).style("stroke-dasharray",null):Ze.style("stroke",this.color).style("stroke-width",this.width).style("stroke-dasharray",this.pattern)}applyBorder(Ze){this.used=!0,this.empty()?Ze.style("stroke",null).style("stroke-width",null).style("stroke-dasharray",null).attr("rx",null).attr("ry",null):Ze.style("stroke",this.color).style("stroke-width",this.width).style("stroke-dasharray",this.pattern).attr("rx",this.rx||null).attr("ry",this.ry||null)}change(Ze,Re,He){void 0!==Ze&&(this.color!==Ze&&delete this.color_index,this.color=Ze),void 0!==Re&&(this.width=Re),void 0!==He&&(this.style=He,this.pattern=ve[this.style]||null),this.changed=!0}verifyDirectChange(){this.change(this.color,parseInt(this.width),parseInt(this.style))}createSample(Ze,Re,He,Ve){Ve&&(Ze=(0,Te.Lt)(Ze)),Ze.append("path").attr("d",`M0,${He/2}h${Re}`).call(this.func)}saveToStyle(Ze,Re,He){if(Ze){const Ve=void 0!==this.color_index?this.color_index:(0,L.vB)(this.color);Ve>=0&&(x.gStyle[Ze]=Ve)}Re&&(x.gStyle[Re]=this.width),He&&(x.gStyle[He]=this.style)}}function ot(Ye){return(Ye<0||Ye>=ve.length)&&(Ye=11),ve[Ye]}},2586:(Yr,mt,Se)=>{"use strict";Se.d(mt,{e:()=>ke});var Te=Se(8872),x=Se(8362),L=Se(2985);const ve=[0,1,2,3,4,5,106,107,104,1,1,1,1,1,1,1,1,1,1,1,104,125,126,132,4,25,26,27,28,130,30,3,32,127,128,35,36,37,38,137,40,140,42,142,44,144,46,146,148,149];class ke{constructor(Ye){this.x0=this.y0=0,this.color="black",this.style=1,this.size=8,this.scale=1,this.stroke=!0,this.fill=!0,this.marker="",this.ndig=0,this.used=!0,this.changed=!1,this.func=this.apply.bind(this),this.setArgs(Ye),this.changed=!1}setArgs(Ye){(0,Te.isObject)(Ye)&&"number"==typeof Ye.fMarkerStyle&&(Ye={attr:Ye}),Ye.attr&&(void 0===Ye.color&&(Ye.color=Ye.painter?Ye.painter.getColor(Ye.attr.fMarkerColor):(0,L.oU)(Ye.attr.fMarkerColor)),(!Ye.style||Ye.style<0)&&(Ye.style=Ye.attr.fMarkerStyle),Ye.size||(Ye.size=Ye.attr.fMarkerSize)),this.color=Ye.color,this.style=Ye.style,this.size=Ye.size,this.refsize=Ye.refsize,this._configure()}setUsed(Ye){this.used=Ye}resetPos(){this.lastx=this.lasty=null}create(Ye,Ze){if(!this.optimized)return`M${(Ye+this.x0).toFixed(this.ndig)},${(Ze+this.y0).toFixed(this.ndig)}${this.marker}`;const Re=Math.round(Ye),He=Math.round(Ze);let Ve=`M${Re},${He}`;if(null!==this.lastx)if(Re===this.lastx&&He===this.lasty)Ve="";else{const De=`m${Re-this.lastx},${He-this.lasty}`;De.length=0&&(this.style=Ze),void 0!==Re&&(this.size=Re),this._configure()}_configure(){if(this.x0=this.y0=0,1===this.style||777===this.style)return this.fill=!1,this.marker="h1",this.size=1,this.optimized=!0,this.resetPos(),!0;this.optimized=!1;const Ye=ve[this.style]??104,Ze=Ye%100;this.fill=Ye>=100,this.scale=this.refsize||8;const Re=this.getFullSize();this.ndig=Re>7?0:Re>2?1:2,30===Ze&&this.ndig++;let He=Re.toFixed(this.ndig);const Ve=(Re/2).toFixed(this.ndig),De=(Re/3).toFixed(this.ndig),F=(Re/4).toFixed(this.ndig),J=(Re/8).toFixed(this.ndig),Y=(3*Re/8).toFixed(this.ndig);switch(Ze){case 1:this.marker="h1";break;case 2:this.y0=-Re/2,this.marker=`v${He}m-${Ve},-${Ve}h${He}`;break;case 3:this.x0=this.y0=-Re/2,this.marker=`l${He},${He}m0,-${He}l-${He},${He}m0,-${Ve}h${He}m-${Ve},-${Ve}v${He}`;break;case 4:this.x0=-parseFloat(Ve),He=(2*parseFloat(Ve)).toFixed(this.ndig),this.marker=`a${Ve},${Ve},0,1,0,${He},0a${Ve},${Ve},0,1,0,-${He},0z`;break;case 5:this.x0=this.y0=-Re/2,this.marker=`l${He},${He}m0,-${He}l-${He},${He}`;break;case 6:this.x0=-1,this.marker="a1,1,0,1,0,2,0a1,1,0,1,0,-2,0z";break;case 7:this.x0=-1.5,this.marker="a1.5,1.5,0,1,0,3,0a1.5,1.5,0,1,0,-3,0z";break;case 25:this.x0=this.y0=-Re/2,this.marker=`v${He}h${He}v-${He}z`;break;case 26:this.y0=-Re/2,this.marker=`l-${Ve},${He}h${He}z`;break;case 27:default:this.y0=-Re/2,this.marker=`l${De},${Ve}l-${De},${Ve}l-${De},-${Ve}z`;break;case 28:this.x0=this.y0=Re/6,this.marker=`h${De}v-${De}h-${De}v-${De}h-${De}v${De}h-${De}v${De}h${De}v${De}h${De}z`;break;case 30:{this.y0=-Re/2;const ue=(5*Re/6).toFixed(this.ndig),Q=(5*Re/8).toFixed(this.ndig);this.marker=`l${De},${He}l-${ue},-${Q}h${He}l-${ue},${Q}z`;break}case 32:this.y0=Re/2,this.marker=`l-${Ve},-${He}h${He}z`;break;case 35:this.x0=-Re/2,this.marker=`l${Ve},${Ve}l${Ve},-${Ve}l-${Ve},-${Ve}zh${He}m-${Ve},-${Ve}v${He}`;break;case 36:this.x0=this.y0=-Re/2,this.marker=`h${He}v${He}h-${He}zl${He},${He}m0,-${He}l-${He},${He}`;break;case 37:this.x0=-Re/2,this.marker=`h${He}l-${F},-${Ve}l-${Ve},${He}h${Ve}l-${Ve},-${He}z`;break;case 38:this.x0=-Re/4,this.y0=-Re/2,this.marker=`h${Ve}l${F},${F}v${Ve}l-${F},${F}h-${Ve}l-${F},-${F}v-${Ve}zm${F},0v${He}m-${Ve},-${Ve}h${He}`;break;case 40:this.x0=-Re/4,this.y0=-Re/2,this.marker=`l${Ve},${He}l${F},-${F}l-${He},-${Ve}zm${Ve},0l-${Ve},${He}l-${F},-${F}l${He},-${Ve}z`;break;case 42:this.y0=-Re/2,this.marker=`l${J},${Y}l${Y},${J}l-${Y},${J}l-${J},${Y}l-${J},-${Y}l-${Y},-${J}l${Y},-${J}z`;break;case 44:this.x0=-Re/4,this.y0=-Re/2,this.marker=`h${Ve}l-${J},${Y}l${Y},-${J}v${Ve}l-${Y},-${J}l${J},${Y}h-${Ve}l${J},-${Y}l-${Y},${J}v-${Ve}l${Y},${J}z`;break;case 46:this.x0=-Re/4,this.y0=-Re/2,this.marker=`l${F},${F}l${F},-${F}l${F},${F}l-${F},${F}l${F},${F}l-${F},${F}l-${F},-${F}l-${F},${F}l-${F},-${F}l${F},-${F}l-${F},-${F}z`;break;case 48:this.x0=-Re/4,this.y0=-Re/2,this.marker=`l${F},${F}l-${F},${F}l-${F},-${F}zm${Ve},0l${F},${F}l-${F},${F}l-${F},-${F}zm0,${Ve}l${F},${F}l-${F},${F}l-${F},-${F}zm-${Ve},0l${F},${F}l-${F},${F}l-${F},-${F}z`;break;case 49:this.x0=-Re/6,this.y0=-Re/2,this.marker=`h${De}v${De}h-${De}zm${De},${De}h${De}v${De}h-${De}zm-${De},${De}h${De}v${De}h-${De}zm-${De},-${De}h${De}v${De}h-${De}z`}return!0}getStrokeColor(){return this.stroke?this.color:"none"}getFillColor(){return this.fill?this.color:"none"}empty(){return"none"===this.color||!this.fill&&!this.stroke}apply(Ye){this.used=!0,Ye.style("stroke",this.stroke?this.color:"none").style("fill",this.fill?this.color:"none")}verifyDirectChange(){this.change(this.color,parseInt(this.style),parseFloat(this.size))}createSample(Ye,Ze,Re,He){He&&(Ye=(0,x.Lt)(Ye)),this.resetPos(),Ye.append("path").attr("d",this.create(Ze/2,Re/2)).call(this.func)}}},3847:(Yr,mt,Se)=>{"use strict";Se.d(mt,{Bx:()=>Ze,DH:()=>C,DJ:()=>E,Fc:()=>g,G1:()=>$,KG:()=>_,LR:()=>F,Sc:()=>B,Te:()=>Re,Yw:()=>J,_l:()=>p,ke:()=>Ve,mZ:()=>He,oE:()=>me,rv:()=>Q,yW:()=>ue});var Te=Se(4882),x=Se(8362),L=Se(2923),ve=Se(8872),ke=Se(2843),ot=Se(2586),Ye=Se(4082);function Ze(I,U){if((!U||!(0,ve.isObject)(U))&&(U={}),(0,ve.isStr)(I)&&("#"===I[0]&&9===I.length||I.indexOf("rgba")>=0)){const k=(0,x.yW)(I);U.color=new L.Q1f(k.r,k.g,k.b),U.opacity=k.opacity??1,U.transparent=U.opacity<1}else U.color=new L.Q1f(I);return U}const Re=new L.KQV(L.c9P);function He(I,U,k){if(I){void 0!==k&&(globalThis.docuemnt=k);const P=new L.w4A;return P.setPrecision(U),P}const he={svg_attr:{},svg_style:{},path_attr:{},accPath:"",createElementNS(P,T){return"path"===T?{_wrapper:this,setAttribute(z,W){if("style"===z&&W){const fe=W.indexOf(";stroke-opacity:1;stroke-width:1;stroke-linecap:round");fe>=0&&fe===W.length-53&&(W=W.slice(0,W.length-53));const we=W.indexOf(";fill-opacity:1");we>=0&&we===W.length-15&&(W=W.slice(0,W.length-15))}this._wrapper.path_attr[z]=W}}:"svg"!==T?(console.error(`not supported element for SVGRenderer ${T}`),null):{_wrapper:this,childNodes:[],style:this.svg_style,setAttribute(z,W){this._wrapper.svg_attr[z]=W},appendChild(z){this._wrapper.accPath+=``,this._wrapper.path_attr={}},removeChild(z){this.childNodes=[]}}}};let V;(0,ve.isNodeJs)()&&(V=globalThis.document,globalThis.document=he);const b=new L.w4A;return(0,ve.isNodeJs)()&&(globalThis.document=V),b.doc_wrapper=he,b.originalRender=b.render,b.render=function(P,T){const z=globalThis.document;(0,ve.isNodeJs)()&&(globalThis.document=this.doc_wrapper),this.originalRender(P,T),(0,ve.isNodeJs)()&&(globalThis.document=z)},b.clearHTML=function(){this.doc_wrapper.accPath=""},b.makeOuterHTML=function(){const P=this.doc_wrapper;return`${P.accPath}`},b.fillTargetSVG=function(P){if((0,ve.isNodeJs)()){const T=this.doc_wrapper;P.setAttribute("viewBox",T.svg_attr.viewBox),P.setAttribute("width",T.svg_attr.width),P.setAttribute("height",T.svg_attr.height),P.style.background=T.svg_style.backgroundColor||"",P.innerHTML=T.accPath}else{const T=this.domElement;for(P.setAttribute("viewBox",T.getAttribute("viewBox")),P.setAttribute("width",T.getAttribute("width")),P.setAttribute("height",T.getAttribute("height")),P.style.background=T.style.backgroundColor;T.firstChild;){const z=T.firstChild;T.removeChild(z),P.appendChild(z)}}},b.setPrecision(U),b}function Ve(I,U){void 0===U&&(U=(0,ve.isBatchMode)()),I||(I=U?ve.settings.Render3DBatch:ve.settings.Render3D);const k=ve.constants.Render3D;return I===k.Default&&(I=U?k.WebGLImage:k.WebGL),U&&I===k.WebGL&&(I=k.WebGLImage),I}const De={access3dKind(I){const U=this.getPadSvg();if(U.empty())return-1;const k=U.property("can3d");return void 0!==I&&U.property("can3d",I),k??-1},getSizeFor3d(I){void 0===I&&(I=(I=Ve())!==ve.constants.Render3D.WebGL?ve.constants.Embed3D.EmbedSVG:ve.settings.Embed3D!==ve.constants.Embed3D.Default?ve.settings.Embed3D:ve.browser.isFirefox||ve.browser.chromeVersion>95?ve.constants.Embed3D.Embed:ve.constants.Embed3D.Overlay);const U=this.getPadSvg(),k="draw3d_"+(this.getPadName()||"canvas");if(U.empty()){const b=(0,ke.xh)(this.selectDom());return b.height<10&&b.width>10&&(b.height=Math.round(.66*b.width),this.selectDom().style("height",b.height+"px")),b.x=0,b.y=0,b.clname=k,b.can3d=-1,b}const Z=this.getFramePainter(),ee=this.getPadPainter();let he;if(Z?.mode3d&&I>0)he=Z.getFrameRect();else{let b=I>0?U:this.getCanvSvg();he={x:0,y:0,width:b.property("draw_width"),height:b.property("draw_height")},Number.isNaN(he.width)||Number.isNaN(he.height)?(he.width=ee.getPadWidth(),he.height=ee.getPadHeight()):Z&&!Z.mode3d&&(b=this.getFrameSvg(),he.x=b.property("draw_x"),he.y=b.property("draw_y"))}he.clname=k,he.can3d=I;const V=ee?.getPadRect();if(V){const b=Math.round(.07*he.width),P=Math.round(.05*he.height);he.x=Math.max(0,he.x-b),he.y=Math.max(0,he.y-P),he.width=Math.min(he.width+2*b,V.width-he.x),he.height=Math.min(he.height+2*P,V.height-he.y)}return 1===I&&(he=(0,ke.md)(this.getPadSvg(),he)),he},clear3dCanvas(){const I=this.access3dKind(null);if(I<0){const k=this.selectDom().node();let Z=k?.firstChild;return Z&&!Z.$jsroot&&(Z=Z.nextSibling),Z?.$jsroot&&(delete Z.painter,k.removeChild(Z)),I}const U=this.getSizeFor3d(I);if(0===U.can3d)(0,x.Lt)(this.getCanvSvg().node().nextSibling).remove(),this.getCanvSvg().style("display",null);else{if(this.getPadSvg().empty())return;this.apply3dSize(U).remove(),this.getFrameSvg().style("display",null)}return I},add3dCanvas(I,U,k){if(U&&!(I.can3d<-1)){if(-1===I.can3d){const Z=this.selectDom().node();return void(null!==Z&&(Z.appendChild(U),U.painter=this,U.$jsroot=!0))}if(I.can3d>0&&!k&&(I.can3d=ve.constants.Embed3D.EmbedSVG),this.access3dKind(I.can3d),0===I.can3d)this.getCanvSvg().style("display","none"),this.getCanvSvg().node().parentNode.appendChild(U);else{if(this.getPadSvg().empty())return;this.getFrameSvg().style("display","none"),this.apply3dSize(I).attr("title","").node().appendChild(U)}}},apply3dSize(I,U){if(I.can3d<0)return(0,x.Lt)(null);let k;if(I.can3d>1){if(k=this.getLayerSvg(I.clname),U)return k;const Z=this.getPadSvg();I.can3d===ve.constants.Embed3D.EmbedSVG?(k.empty()&&(k=Z.insert("g",".primitives_layer").attr("class",I.clname)),(0,ke.bk)(k,I.x,I.y)):(k.empty()&&(k=Z.insert("foreignObject",".primitives_layer").attr("class",I.clname)),k.attr("x",I.x).attr("y",I.y).attr("width",I.width).attr("height",I.height).attr("viewBox",`0 0 ${I.width} ${I.height}`).attr("preserveAspectRatio","xMidYMid"))}else{let Z=this.getCanvSvg().node().parentNode;if(k=(0,x.Lt)(Z).select("."+I.clname),U)return k;this.getCanvSvg().property("redraw_by_resize",!0),k.empty()&&(k=(0,x.Lt)(Z).append("div").attr("class",I.clname).style("user-select","none"));const ee=Z.getBoundingClientRect(),he=(0,ve.getDocument)();for(;Z;){if(Z===he){Z=null;break}try{if("static"!==getComputedStyle(Z).position)break}catch{break}Z=Z.parentNode}const V=Z?.getBoundingClientRect()??{top:0,left:0},b=Math.round(ee.left-V.left),P=Math.round(ee.top-V.top);k.style("position","absolute").style("left",I.x+b+"px").style("top",I.y+P+"px").style("width",I.width+"px").style("height",I.height+"px")}return k}};function F(I){Object.assign(I,De)}function J(I,U,k,Z){return Y.apply(this,arguments)}function Y(){return(Y=(0,Te.A)(function*(I,U,k,Z){const ee=ve.constants.Render3D,he=(0,ve.getDocument)();let V;if(k=Ve(k),Z||(Z={antialias:!0,alpha:!0}),k===ee.SVG){const b=He(!1,0,he);b.jsroot_dom=he.createElementNS("http://www.w3.org/2000/svg","svg"),V=Promise.resolve(b)}else if((0,ve.isNodeJs)())V=Se.e(511).then(Se.t.bind(Se,1511,19)).then(b=>(Z.canvas=b.default.createCanvas(I,U),Z.canvas.addEventListener=()=>{},Z.canvas.removeEventListener=()=>{},Z.canvas.style={},Se.e(254).then(Se.t.bind(Se,8254,19)))).then(b=>{const P=b.default(I,U,{preserveDrawingBuffer:!0});if(!P)throw Error("Fail to create headless-gl");Z.context=P,P.canvas=Z.canvas;const T=new L.JeP(Z);return T.jsroot_output=new L.nWS(I,U),T.setRenderTarget(T.jsroot_output),T.jsroot_dom=he.createElementNS("http://www.w3.org/2000/svg","image"),T});else if(k===ee.WebGL)V=Promise.resolve(new L.JeP(Z));else{const b=new L.JeP(Z);b.jsroot_dom=he.createElementNS("http://www.w3.org/2000/svg","image"),V=Promise.resolve(b)}return V.then(b=>(b.jsroot_dom?b.jsroot_custom_dom=!0:b.jsroot_dom=b.domElement,b.jsroot_render3d=k,b.jsroot_image_format="png",b.originalSetSize=b.setSize,b.setSize=function(P,T,z){this.jsroot_custom_dom&&(this.jsroot_dom.setAttribute("width",P),this.jsroot_dom.setAttribute("height",T)),this.originalSetSize(P,T,z)},b.setSize(I,U),b))})).apply(this,arguments)}function ue(I){if(I)if((0,ve.isNodeJs)()){const U=(0,ve.isFunc)(I.getContext)?I.getContext():null,k=U?.getExtension("STACKGL_destroy_context");(0,ve.isFunc)(k?.destroy)&&k.destroy()}else ve.browser.isChrome&&(0,ve.isFunc)(I.forceContextLoss)&&I.forceContextLoss(),(0,ve.isFunc)(I.dispose)&&I.dispose()}function Q(I){(0,ve.isFunc)(I.clearHTML)&&I.clearHTML()}function me(I){const U=ve.constants.Render3D;if(I.jsroot_render3d!==U.WebGL)if(I.jsroot_render3d===U.SVG)I.fillTargetSVG(I.jsroot_dom);else if((0,ve.isNodeJs)()){const k=I.domElement,Z=k.getContext("2d"),ee=new Uint8Array(4*k.width*k.height);I.readRenderTargetPixels(I.jsroot_output,0,0,k.width,k.height,ee);let b,P,he=0,V=4*(k.height-1)*k.width;for(;he=this.parent.offsetWidth&&(k.l=this.parent.offsetWidth-this.tt.offsetWidth-3),k.u+this.tt.offsetHeight+15>=this.parent.offsetHeight&&(k.u=this.parent.offsetHeight-this.tt.offsetHeight-15);let he=this.parent;for(;he;){const V=getComputedStyle(he);if(!V||"static"!==V.position||!he.parentNode||1!==he.parentNode.nodeType)break;he=he.parentNode}if(he&&he!==this.parent){const V=he.getBoundingClientRect();k.l+=Z.left-V.left,k.u+=Z.top-V.top}}this.tt.style.top=`${k.u+15}px`,this.tt.style.left=`${k.l+3}px`}show(U){if(!U)return this.hide();if((0,ve.isObject)(U)&&(U.lines||U.line)){if(U.only_status)return this.hide();if(U.line)U=U.line;else{let k=U.lines[0];for(let Z=1;Z"+U.lines[Z];U=k}}if(null===this.tt){const k=(0,ve.getDocument)();this.tt=k.createElement("div"),this.tt.setAttribute("style","opacity: 1; filter: alpha(opacity=1); position: absolute; display: block; overflow: hidden; z-index: 101;"),this.cont=k.createElement("div"),this.cont.setAttribute("style","display: block; padding: 2px 12px 3px 7px; margin-left: 5px; font-size: 11px; background: #777; color: #fff;"),this.tt.appendChild(this.cont),this.parent.appendChild(this.tt)}this.lastlbl!==U&&(this.cont.innerHTML=U,this.lastlbl=U,this.tt.style.width="auto")}hide(){null!==this.tt&&this.parent.removeChild(this.tt),this.tt=null,this.lastlbl=""}}function B(I,U,k,Z,ee){const he=ve.settings.Zooming&&ve.settings.ZoomMouse,V=(0,ve.isFunc)(I.processMouseClick);let b=null;function P(fe){if(b){if(b.mouse_zoom_mesh)return fe.stopImmediatePropagation(),void fe.stopPropagation();if(!(void 0!==fe.button&&0!==fe.button||void 0!==fe.buttons&&1!==fe.buttons)){if(b.enable_zoom&&(b.mouse_zoom_mesh=b.detectZoomMesh(fe),b.mouse_zoom_mesh))return fe.stopImmediatePropagation(),void fe.stopPropagation();b.enable_select&&(b.mouse_select_pnt=b.getMousePos(fe,{}))}}}function T(fe){if(b){if(b.mouse_zoom_mesh&&b.mouse_zoom_mesh.point2&&b.painter.get3dZoomCoord){let we=b.mouse_zoom_mesh.object.zoom,Me=b.painter.get3dZoomCoord(b.mouse_zoom_mesh.point,we),je=b.painter.get3dZoomCoord(b.mouse_zoom_mesh.point2,we);Me>je&&([Me,je]=[je,Me]),"z"===we&&b.mouse_zoom_mesh.object.use_y_for_z&&(we="y"),Methis.delayedProcessMouseMove(),this.mouse_tmout):this.delayedProcessMouseMove()}},b.delayedProcessMouseMove=function(){if(delete this.tmout_handle,!this.painter)return;const fe=this.tmout_mouse,we=this.getMouseIntersects(fe),Me=this.processMouseMove(we);if(Me){let je="",Ge="",lt="",bt="";fe&&(lt=fe.x.toFixed(0)+","+fe.y.toFixed(0)),(0,ve.isStr)(Me)?bt=Me:(je=Me.name,Ge=Me.title,Me.line?bt=Me.line:Me.lines&&(bt=Me.lines.slice(1).join(" "),je=Me.lines[0])),this.painter.showObjectStatus(je,Ge,bt,lt)}if(this.cursor_changed=!1,Me&&this.painter?.isTooltipAllowed())this.tooltip.checkParent(this.painter.selectDom().node()),this.tooltip.show(Me,fe),this.tooltip.pos(this.tmout_ttpos);else if(this.tooltip.hide(),we)for(let je=0;jeb.changeEvent()),b.addEventListener("start",()=>b.startEvent()),b.addEventListener("end",()=>b.endEvent()),b.lstn_contextmenu=fe=>b.mainProcessContextMenu(fe),b.lstn_dblclick=fe=>b.mainProcessDblClick(fe),b.lstn_mousemove=fe=>b.mainProcessMouseMove(fe),b.lstn_mouseleave=()=>b.mainProcessMouseLeave(),Z.domElement.addEventListener("click",b.lstn_click),Z.domElement.addEventListener("dblclick",b.lstn_dblclick),Z.domElement.addEventListener("contextmenu",b.lstn_contextmenu),Z.domElement.addEventListener("mousemove",b.lstn_mousemove),Z.domElement.addEventListener("mouseleave",b.lstn_mouseleave),b}function $(I,U){if(I){if(I.children)for(let k=0;k{const z={size:3*this.scale*k};T?(z.map=T,z.transparent=!0):z.color=U.color||"black";const W=new L.ONl(this.geom,new L.BH$(z));return W.nvertex=1,W};if(1!==k){const T=Z();return this.noPromise?T:Promise.resolve(T)}const ee=new ot.e({style:U.style,color:U.color,size:7}),he=ee.fill?1:7,V=``,b="data:image/svg+xml;charset=utf8,"+((0,ve.isNodeJs)()?V:encodeURIComponent(V));let P;if((0,ve.isNodeJs)())P=Se.e(511).then(Se.t.bind(Se,1511,19)).then(T=>T.default.loadImage(b).then(z=>{const W=T.default.createCanvas(64,64);return W.getContext("2d").drawImage(z,0,0,64,64),new L.GOR(W)}));else{if(this.noPromise)return Z((new L.Tap).load(b));P=new Promise((T,z)=>{(new L.Tap).load(b,fe=>T(fe),void 0,()=>z())})}return P.then(Z)}}function C(I,U,k=!1){if(!I||!U)return null;let Z,ee,he;(0,ve.isStr)(U)||k?(Z=I.v7EvalColor(U+"color","black"),ee=parseInt(I.v7EvalAttr(U+"style",0)),he=parseInt(I.v7EvalAttr(U+"width",1))):(Z=I.getColor(U.fLineColor),ee=U.fLineStyle,he=U.fLineWidth);const V=ee?(0,Ye.Ov)(ee):"",b=V?V.split(","):[],P=b&&b.length>=2?new L.Fvt({color:Z,dashSize:parseInt(b[0]),gapSize:parseInt(b[1])}):new L.mrM({color:Z});return he&&he>1&&(P.linewidth=he),P}},2985:(Yr,mt,Se)=>{"use strict";Se.d(mt,{$q:()=>ke,HG:()=>ue,LQ:()=>I,TZ:()=>X,d_:()=>Q,ho:()=>ve,jh:()=>C,nM:()=>E,nj:()=>F,np:()=>B,oU:()=>$,pX:()=>L,rE:()=>_,tA:()=>ot,uw:()=>me,vB:()=>g});var Te=Se(8872),x=Se(8362);const L="TLinearGradient",ve="TRadialGradient",ke=0,ot=1;function F(U,k=255){const Z=Math.round(U*k).toString(16);return 1===Z.length?"0"+Z:Z}let J=[];function ue(){return J}function Q(U){if(U?._typename!==Te.clTColor)return null;let k="#"+F(U.fRed)+F(U.fGreen)+F(U.fBlue);switch(void 0!==U.fAlpha&&1!==U.fAlpha&&(k+=F(U.fAlpha)),k){case"#ffffff":return"white";case"#000000":return"black";case"#ff0000":return"red";case"#00ff00":return"green";case"#0000ff":return"blue";case"#ffff00":return"yellow";case"#ff00ff":return"magenta";case"#00ffff":return"cyan"}return k}function me(U){const k=[];U||(U=ue());for(let Z=0;Z=0&&V.fNumber<=1e4&&(ee[V.fNumber]=Q(V)):(ee[V.fNumber]=V,V.toString=()=>"white")}}for(let he=0;he=0?Z:(k.push(U),k.length-1)}class _{constructor(k,Z){this.palette=Z?me(k):k}calcColorIndex(k,Z){const ee=this.palette.length,he=Math.floor((k+.99)*ee/(Z-1));return he>ee-1?ee-1:he}getColor(k){return this.palette[k]}getLength(){return this.palette.length}calcColor(k,Z){return this.getColor(this.calcColorIndex(k,Z))}}function v(U){const k=(P,T,z)=>(z<0&&(z+=1),z>1&&(z-=1),z<.16666666666666666?P+6*(T-P)*z:z<.5?T:z<.6666666666666666?P+(T-P)*(.6666666666666666-z)*6:P),Z=(P,T,z)=>{const W=T<.5?T*(1+z):T+z-T*z,fe=2*T-W,we=k(fe,W,P+1/3),Me=k(fe,W,P),je=k(fe,W,P-1/3);return"#"+F(we)+F(Me)+F(je)},b=[];for(let P=0;P<50;++P)b.push(Z((280-5.6*(P+1))/360,.5,1));return new _(b,U)}function C(U,k){if((U=U||Te.settings.Palette)>0&&U<10)return function p(){const U=[];for(let k=0;k<50;++k){const Z=F((k+2)/60);U.push("#"+Z+Z+Z)}return new _(U)}();if(U<51)return v(k);U>113&&(U=57);const Z=[0,.125,.25,.375,.5,.625,.75,.875,1];let ee;switch(U){case 51:ee=[[0,9,13,17,24,32,27,25,29],[0,0,0,2,37,74,113,160,221],[28,42,59,78,98,129,154,184,221]];break;case 52:ee=[[0,32,64,96,128,160,192,224,255],[0,32,64,96,128,160,192,224,255],[0,32,64,96,128,160,192,224,255]];break;case 53:ee=[[0,45,99,156,212,230,237,234,242],[0,0,0,45,101,168,238,238,243],[0,1,1,3,9,8,11,95,230]];break;case 54:ee=[[0,22,44,68,93,124,160,192,237],[0,16,41,67,93,125,162,194,241],[97,100,99,99,93,68,44,26,74]];break;case 55:ee=[[0,5,15,35,102,196,208,199,110],[0,48,124,192,206,226,97,16,0],[99,142,198,201,90,22,13,8,2]];break;case 56:ee=[[242,234,237,230,212,156,99,45,0],[243,238,238,168,101,45,0,0,0],[230,95,11,8,9,3,1,1,0]];break;case 57:ee=[[53.091,15.096,19.89,5.916,45.951,135.1755,208.743,253.878,248.982],[42.432,91.7745,128.5455,163.6845,183.039,191.046,186.864,200.481,250.716],[134.9715,221.442,213.8175,201.807,163.8375,118.881,89.2245,50.184,13.7445]];break;case 58:ee=[[0,24,2,54,176,236,202,194,255],[0,29,92,129,117,120,176,236,255],[0,68,80,34,57,172,252,245,255]];break;case 59:ee=[[13,23,25,63,76,104,137,161,206],[95,67,37,21,0,12,35,52,79],[4,3,2,6,11,22,49,98,208]];break;case 60:ee=[[0,61,89,122,143,160,185,204,231],[0,0,0,0,14,37,72,132,235],[0,140,224,144,4,5,6,9,13]];break;case 61:ee=[[14,7,2,0,5,11,55,131,229],[105,56,26,1,42,74,131,171,229],[2,21,35,60,92,113,160,185,229]];break;case 62:ee=[[0,0,0,70,148,231,235,237,244],[0,0,0,0,0,69,67,216,244],[0,102,228,231,177,124,137,20,244]];break;case 63:ee=[[50,56,63,68,93,121,165,192,241],[66,81,91,96,111,128,155,189,241],[97,91,75,65,77,103,143,167,217]];break;case 64:ee=[[145,166,167,156,131,114,101,112,132],[158,178,179,181,163,154,144,152,159],[190,199,201,192,176,169,160,166,190]];break;case 65:ee=[[93,91,99,108,130,125,132,155,174],[126,124,128,129,131,121,119,153,173],[103,94,87,85,80,85,107,120,146]];break;case 66:ee=[[24,40,69,90,104,114,120,132,103],[29,52,94,127,150,162,159,151,101],[29,52,96,132,162,181,184,186,131]];break;case 67:ee=[[46,38,61,92,113,121,132,150,191],[46,36,40,69,110,135,131,92,34],[46,80,74,70,81,105,165,211,225]];break;case 68:ee=[[0,4,12,30,52,101,142,190,237],[0,40,86,121,140,172,187,213,240],[0,9,14,18,21,23,27,35,101]];break;case 69:ee=[[198,206,206,211,198,181,161,171,244],[103,133,150,172,178,174,163,175,244],[49,54,55,66,91,130,184,224,244]];break;case 70:ee=[[243,243,240,240,241,239,186,151,129],[0,46,99,149,194,220,183,166,147],[6,8,36,91,169,235,246,240,233]];break;case 71:ee=[[22,19,19,25,35,53,88,139,210],[0,32,69,108,135,159,183,198,215],[77,96,110,116,110,100,90,78,70]];break;case 72:ee=[[68,116,165,182,189,180,145,111,71],[37,82,135,178,204,225,221,202,147],[16,55,105,147,196,226,232,224,178]];break;case 73:ee=[[61,99,136,181,213,225,198,136,24],[149,140,96,83,132,178,190,135,22],[214,203,168,135,110,100,111,113,22]];break;case 74:ee=[[76,120,156,183,197,180,162,154,140],[34,35,42,69,102,137,164,188,197],[64,69,78,105,142,177,205,217,198]];break;case 75:ee=[[37,102,157,188,196,214,223,235,251],[37,29,25,37,67,91,132,185,251],[37,32,33,45,66,98,137,187,251]];break;case 76:ee=[[79,100,119,137,153,172,192,205,250],[63,79,93,103,115,135,167,196,250],[51,59,66,61,62,70,110,160,250]];break;case 77:ee=[[43,44,50,66,125,172,178,155,157],[63,63,85,101,138,163,122,51,39],[121,101,58,44,47,55,57,44,43]];break;case 78:ee=[[0,41,62,79,90,87,99,140,228],[0,57,81,93,85,70,71,125,228],[95,91,91,82,60,43,44,112,228]];break;case 79:ee=[[49,59,72,88,114,141,176,205,222],[78,72,66,57,59,75,106,142,173],[78,55,46,40,39,39,40,41,47]];break;case 80:ee=[[243,222,201,185,165,158,166,187,219],[94,108,132,135,125,96,68,51,61],[7,9,12,19,45,89,118,146,118]];break;case 81:ee=[[19,44,74,105,137,166,194,206,220],[19,28,40,55,82,110,159,181,220],[19,42,68,96,129,157,188,203,220]];break;case 82:ee=[[33,44,70,99,140,165,199,211,216],[38,50,76,105,140,165,191,189,167],[55,67,97,124,140,166,163,129,52]];break;case 83:ee=[[0,33,73,124,136,152,159,171,223],[0,43,92,124,134,126,121,144,223],[0,43,68,76,73,64,72,114,223]];break;case 84:ee=[[5,18,45,124,193,223,205,128,49],[48,134,207,230,193,113,28,0,7],[6,15,41,121,193,226,208,130,49]];break;case 85:ee=[[180,106,104,135,164,188,189,165,144],[72,126,154,184,198,207,205,190,179],[41,120,158,188,194,181,145,100,62]];break;case 86:ee=[[57,72,94,117,136,154,174,192,215],[0,33,68,109,140,171,192,196,209],[116,137,173,201,200,201,203,190,187]];break;case 87:ee=[[31,71,123,160,210,222,214,199,183],[40,117,171,211,231,220,190,132,65],[234,214,228,222,210,160,105,60,34]];break;case 88:ee=[[123,108,109,126,154,172,188,196,218],[184,138,130,133,154,175,188,196,218],[208,130,109,99,110,122,150,171,218]];break;case 89:ee=[[105,106,122,143,159,172,176,181,207],[252,197,194,187,174,162,153,136,125],[146,133,144,155,163,167,166,162,174]];break;case 90:ee=[[171,141,145,152,154,159,163,158,177],[236,143,100,63,53,55,44,31,6],[59,48,46,44,42,54,82,112,179]];break;case 91:ee=[[180,190,209,223,204,228,205,152,91],[93,125,147,172,181,224,233,198,158],[236,218,160,133,114,132,162,220,218]];break;case 92:ee=[[225,183,162,135,115,111,119,145,211],[205,177,166,135,124,117,117,132,172],[186,165,155,135,126,130,150,178,226]];break;case 93:ee=[[39,43,59,63,80,116,153,177,223],[39,43,59,74,91,114,139,165,223],[39,50,59,70,85,115,151,176,223]];break;case 94:ee=[[0,38,60,76,84,89,101,128,204],[0,10,15,23,35,57,83,123,199],[0,11,22,40,63,86,97,94,85]];break;case 95:ee=[[94,112,141,165,167,140,91,49,27],[27,46,88,135,166,161,135,97,58],[42,52,81,106,139,158,155,137,116]];break;case 96:ee=[[30,49,79,117,135,151,146,138,147],[63,60,72,90,94,94,68,46,16],[18,28,41,56,62,63,50,36,21]];break;case 97:ee=[[0,30,63,101,143,152,169,187,230],[0,14,28,42,58,61,67,74,91],[39,26,21,18,15,14,14,13,13]];break;case 98:ee=[[149,140,164,179,182,181,131,87,61],[62,70,107,136,144,138,117,87,74],[40,38,45,49,49,49,38,32,34]];break;case 99:ee=[[99,112,148,165,179,182,183,183,208],[39,40,57,79,104,127,148,161,198],[15,16,18,33,51,79,103,129,177]];break;case 100:ee=[[99,116,154,174,200,196,201,201,230],[0,0,8,32,58,83,119,136,173],[5,6,7,9,9,14,17,19,24]];break;case 101:ee=[[82,106,126,141,155,163,142,107,66],[62,44,69,107,135,152,149,132,119],[39,25,31,60,73,68,49,72,188]];break;case 102:ee=[[18,29,44,72,116,158,184,208,221],[27,46,71,105,146,177,189,190,183],[39,55,80,108,130,133,124,100,76]];break;case 103:ee=[[0,48,119,173,212,224,228,228,245],[0,13,30,47,79,127,167,205,245],[0,68,75,43,16,22,55,128,245]];break;case 104:ee=[[34,70,129,187,225,226,216,193,179],[48,91,147,194,226,229,196,110,12],[234,212,216,224,206,110,53,40,29]];break;case 105:ee=[[30,55,103,147,174,203,188,151,105],[0,65,138,182,187,175,121,53,9],[191,202,212,208,171,140,97,57,30]];break;case 106:ee=[[112,97,113,125,138,159,178,188,225],[16,17,24,37,56,81,110,136,189],[38,35,46,59,78,103,130,152,201]];break;case 107:ee=[[18,72,5,23,29,201,200,98,29],[0,0,43,167,211,117,0,0,0],[51,203,177,26,10,9,8,3,0]];break;case 108:ee=[[19,42,64,88,118,147,175,187,205],[19,55,89,125,154,169,161,129,70],[19,32,47,70,100,128,145,130,75]];break;case 109:ee=[[33,31,42,68,86,111,141,172,227],[255,175,145,106,88,55,15,0,0],[255,205,202,203,208,205,203,206,231]];break;case 110:ee=[[0,25,50,79,110,145,181,201,254],[0,16,30,46,63,82,101,124,179],[0,12,21,29,39,49,61,74,103]];break;case 111:ee=[[0,13,30,44,72,120,156,200,247],[0,36,84,117,141,153,151,158,247],[0,94,100,82,56,66,76,131,247]];break;case 112:ee=[[26,51,43,33,28,35,74,144,246],[9,24,55,87,118,150,180,200,222],[30,96,112,114,112,101,72,35,0]];break;case 113:ee=[[0,5,65,97,124,156,189,224,255],[32,54,77,100,123,148,175,203,234],[77,110,107,111,120,119,111,94,70]];break;default:return v()}const V=ee[0],b=ee[1],P=ee[2],T=[];for(let z=1;z0){k[parseInt(he.slice(0,V))]=(0,x.yW)(`rgb(${he.slice(V+1)})`).formatHex();continue}if(V=he.indexOf("="),V>0){k[parseInt(he.slice(0,V))]=(0,x.yW)(`rgba(${he.slice(V+1)})`).formatHex8();continue}if(V=he.indexOf("#"),V<0)continue;const b=parseInt(he.slice(0,V)),P=JSON.parse(he.slice(V+1)),T={_typename:10===P[0]?L:ve,fNumber:b,fType:P[0]};let z=1;T.fCoordinateMode=Math.round(P[z++]);const W=Math.round(P[z++]);T.fColorPositions=P.slice(z,z+W),z+=W,T.fColors=P.slice(z,z+4*W),z+=4*W,T.fStart={fX:P[z++],fY:P[z++]},T.fEnd={fX:P[z++],fY:P[z++]},T._typename===ve&&z{const ee=Z.s;for(let he=0;he{"use strict";Se.d(mt,{Bm:()=>$,KA:()=>X,N7:()=>He,_o:()=>ee,cp:()=>ue,eN:()=>me,s7:()=>V,xV:()=>Ye});var Te=Se(4882),x=Se(8872),L=Se(2843),ve=Se(4246);const ke={"#alpha":"\u03b1","#beta":"\u03b2","#chi":"\u03c7","#delta":"\u03b4","#varepsilon":"\u03b5","#phi":"\u03c6","#gamma":"\u03b3","#eta":"\u03b7","#iota":"\u03b9","#varphi":"\u03c6","#kappa":"\u03ba","#lambda":"\u03bb","#mu":"\u03bc","#nu":"\u03bd","#omicron":"\u03bf","#pi":"\u03c0","#theta":"\u03b8","#rho":"\u03c1","#sigma":"\u03c3","#tau":"\u03c4","#upsilon":"\u03c5","#varomega":"\u03d6","#omega":"\u03c9","#xi":"\u03be","#psi":"\u03c8","#zeta":"\u03b6","#Alpha":"\u0391","#Beta":"\u0392","#Chi":"\u03a7","#Delta":"\u0394","#Epsilon":"\u0395","#Phi":"\u03a6","#Gamma":"\u0393","#Eta":"\u0397","#Iota":"\u0399","#vartheta":"\u03d1","#Kappa":"\u039a","#Lambda":"\u039b","#Mu":"\u039c","#Nu":"\u039d","#Omicron":"\u039f","#Pi":"\u03a0","#Theta":"\u0398","#Rho":"\u03a1","#Sigma":"\u03a3","#Tau":"\u03a4","#Upsilon":"\u03a5","#varsigma":"\u03c2","#Omega":"\u03a9","#Xi":"\u039e","#Psi":"\u03a8","#Zeta":"\u0396","#varUpsilon":"\u03d2","#epsilon":"\u03b5","#leq":"\u2264","#/":"\u2044","#infty":"\u221e","#voidb":"\u0192","#club":"\u2663","#diamond":"\u2666","#heart":"\u2665","#spade":"\u2660","#leftrightarrow":"\u2194","#leftarrow":"\u2190","#uparrow":"\u2191","#rightarrow":"\u2192","#downarrow":"\u2193","#circ":"\u2e30","#pm":"\xb1","#doublequote":"\u2033","#geq":"\u2265","#times":"\xd7","#propto":"\u221d","#partial":"\u2202","#bullet":"\u2022","#divide":"\xf7","#neq":"\u2260","#equiv":"\u2261","#approx":"\u2248","#3dots":"\u2026","#cbar":"|","#topbar":"\xaf","#downleftarrow":"\u21b5","#aleph":"\u2135","#Jgothic":"\u2111","#Rgothic":"\u211c","#voidn":"\u2118","#otimes":"\u2297","#oplus":"\u2295","#oslash":"\u2205","#cap":"\u2229","#cup":"\u222a","#supset":"\u2283","#supseteq":"\u2287","#notsubset":"\u2284","#subset":"\u2282","#subseteq":"\u2286","#in":"\u2208","#notin":"\u2209","#angle":"\u2220","#nabla":"\u2207","#oright":"\xae","#ocopyright":"\xa9","#trademark":"\u2122","#prod":"\u220f","#surd":"\u221a","#upoint":"\u2027","#corner":"\xac","#wedge":"\u2227","#vee":"\u2228","#Leftrightarrow":"\u21d4","#Leftarrow":"\u21d0","#Uparrow":"\u21d1","#Rightarrow":"\u21d2","#Downarrow":"\u21d3","#void2":"","#LT":"<","#void1":"\xae","#copyright":"\xa9","#void3":"\u2122","#sum":"\u2211","#arctop":"\u239b","#lbar":"\u23a2","#arcbottom":"\u239d","#void4":"","#void8":"\u23a2","#bottombar":"\u230a","#arcbar":"\u23a7","#ltbar":"\u23a8","#AA":"\u212b","#aa":"\xe5","#void06":"","#GT":">","#int":"\u222b","#forall":"\u2200","#exists":"\u2203","#koppa":"\u03df","#sampi":"\u03e1","#stigma":"\u03db","#san":"\u03fb","#sho":"\u03f8","#varcoppa":"\u03d9","#digamma":"\u03dd","#Digamma":"\u03dc","#Koppa":"\u03de","#varKoppa":"\u03d8","#Sampi":"\u03e0","#Stigma":"\u03da","#San":"\u03fa","#Sho":"\u03f7","#vec":"","#dot":"\u22c5","#hat":"\xb7","#ddot":"","#acute":"","#grave":"","#check":"\u2713","#tilde":"\u02dc","#slash":"\u2044","#hbar":"\u0127","#box":"\u25fd","#Box":"\u2610","#parallel":"\u2225","#perp":"\u22a5","#odot":"\u2299","#left":"","#right":"","{}":"","#mp":"\u2213","#P":"\xb6","#sqrt":"\u221a","#bar":"","#overline":"","#underline":"","#strike":""},ot=new RegExp(Object.keys(ke).sort((P,T)=>P.lengthT.length?-1:0).join("|"),"g"),Ye=P=>{for(;P.length>2&&"{"===P[0]&&"}"===P[P.length-1];)P=P.slice(1,P.length-1);return P.replace(ot,T=>ke[T]).replace(/\{\}/g,"")},Ze=[453,535,661,973,955,1448,1242,324,593,596,778,1011,431,570,468,492,947,885,947,947,947,947,947,947,947,947,511,495,980,1010,987,893,1624,1185,1147,1193,1216,1080,1028,1270,1274,531,910,1177,1004,1521,1252,1276,1111,1276,1164,1056,1073,1215,1159,1596,1150,1124,1065,540,591,540,837,874,572,929,972,879,973,901,569,967,973,453,458,903,453,1477,973,970,972,976,638,846,548,973,870,1285,884,864,835,656,430,656,1069],Re={945:1002,946:996,967:917,948:953,949:834,966:1149,947:847,951:989,953:516,954:951,955:913,956:1003,957:862,959:967,960:1070,952:954,961:973,963:1017,964:797,965:944,982:1354,969:1359,958:803,968:1232,950:825,913:1194,914:1153,935:1162,916:1178,917:1086,934:1358,915:1016,919:1275,921:539,977:995,922:1189,923:1170,924:1523,925:1253,927:1281,928:1281,920:1285,929:1102,931:1041,932:1069,933:1135,962:848,937:1279,926:1092,936:1334,918:1067,978:1154,8730:986,8804:940,8260:476,8734:1453,402:811,9827:1170,9830:931,9829:1067,9824:965,8596:1768,8592:1761,8593:895,8594:1761,8595:895,710:695,177:955,8243:680,8805:947,215:995,8733:1124,8706:916,8226:626,247:977,8800:969,8801:1031,8776:976,8230:1552,175:883,8629:1454,8501:1095,8465:1002,8476:1490,8472:1493,8855:1417,8853:1417,8709:1205,8745:1276,8746:1404,8839:1426,8835:1426,8836:1426,8838:1426,8834:1426,8747:480,8712:1426,8713:1426,8736:1608,8711:1551,174:1339,169:1339,8482:1469,8719:1364,729:522,172:1033,8743:1383,8744:1383,8660:1768,8656:1496,8657:1447,8658:1496,8659:1447,8721:1182,9115:882,9144:1e3,9117:882,8970:749,9127:1322,9128:1322,8491:1150,229:929,8704:1397,8707:1170,8901:524,183:519,10003:1477,732:692,295:984,9725:1780,9744:1581,8741:737,8869:1390,8857:1421};function He(P,T,z){const W=P.length,fe=(z||T.size)*T.aver_width;if(T.isMonospace())return W*fe;let we=0;for(let Me=0;Me=32&&je<127?Ze[je-32]:Re[je]||1e3}return we/1e3*fe}const Ve=[{name:"#it{"},{name:"#bf{"},{name:"#underline{",deco:"underline"},{name:"#overline{",deco:"overline"},{name:"#strike{",deco:"line-through"},{name:"#kern[",arg:"float"},{name:"#lower[",arg:"float"},{name:"#scale[",arg:"float"},{name:"#color[",arg:"int"},{name:"#font[",arg:"int"},{name:"_{",low_up:"low"},{name:"^{",low_up:"up"},{name:"#bar{",deco:"overline"},{name:"#hat{",accent:"\u02c6",hasw:!0},{name:"#check{",accent:"\u02c7",hasw:!0},{name:"#acute{",accent:"\u02ca"},{name:"#grave{",accent:"\u02cb"},{name:"#dot{",accent:"\u02d9"},{name:"#ddot{",accent:"\u02ba",hasw:!0},{name:"#tilde{",accent:"\u02dc",hasw:!0},{name:"#slash{",accent:"\u2215"},{name:"#vec{",accent:"\u02ed",hasw:!0},{name:"#frac{",twolines:"line"},{name:"#splitline{",twolines:!0},{name:"#sqrt[",arg:"int",sqrt:!0},{name:"#sqrt{",sqrt:!0},{name:"#sum",special:"\u2211",w:.8,h:.9},{name:"#int",special:"\u222b",w:.3,h:1},{name:"#left[",right:"#right]",braces:"[]"},{name:"#left(",right:"#right)",braces:"()"},{name:"#left{",right:"#right}",braces:"{}"},{name:"#left|",right:"#right|",braces:"||"},{name:"#[]{",braces:"[]"},{name:"#(){",braces:"()"},{name:"#{}{",braces:"{}"},{name:"#||{",braces:"||"}],De=[0,8704,0,8707,0,0,8717,0,0,8727,0,0,8722,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8773,913,914,935,916,917,934,915,919,921,977,922,923,924,925,927,928,920,929,931,932,933,962,937,926,936,918,0,8756,0,8869,0,0,945,946,967,948,949,966,947,951,953,981,954,955,956,957,959,960,952,961,963,964,965,982,969,958,968,950,0,402,0,8764,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,978,8242,8804,8260,8734,0,9827,9830,9829,9824,8596,8592,8593,8594,8595,0,0,8243,8805,0,8733,8706,8729,0,8800,8801,8776,8230,0,0,8629,8501,8465,8476,8472,8855,8853,8709,8745,8746,8835,8839,8836,8834,8838,8712,8713,8736,8711,0,0,8482,8719,8730,8901,0,8743,8744,8660,8656,8657,8658,8659,9674,9001,0,0,8482,8721,0,0,0,0,0,0,0,0,0,0,8364,9002,8747,8992,0,8993],F=[128393,9986,9985,128083,128365,128366,128367,128383,9990,128386,128387,128234,128235,128236,128237,128193,128194,128196,128463,128464,128452,8987,128430,128432,128434,128435,128436,128427,128428,9991,9997,128398,9996,128076,128077,128078,9756,9758,9757,9759,128400,9786,128528,9785,128163,9760,127987,127985,9992,9788,128167,10052,128326,10014,128328,10016,10017,9770,9775,2384,9784,9800,9801,9802,9803,9804,9805,9806,9807,9808,9809,9810,9811,128624,128629,9679,128318,9632,9633,128912,10065,10066,11047,10731,9670,10070,11045,8999,11193,8984,127989,127990,128630,128631,0,9450,9312,9313,9314,9315,9316,9317,9318,9319,9320,9321,9471,10102,10103,10104,10105,10106,10107,10108,10109,10110,10111,128610,128608,128609,128611,128606,128604,128605,128607,183,8226,9642,9898,128902,128904,9673,9678,128319,9642,9723,128962,10022,9733,10038,10036,10041,10037,11216,8982,10209,8977,11217,10026,10032,128336,128337,128338,128339,128340,128341,128342,128343,128344,128345,128346,128347,11184,11185,11186,11187,11188,11189,11190,11191,128618,128619,128597,128596,128599,128598,128592,128593,128594,128595,9003,8998,11160,11162,11161,11163,11144,11146,11145,11147,129128,129130,129129,129131,129132,129133,129135,129134,129144,129146,129145,129147,129148,129149,129151,129150,8678,8680,8679,8681,11012,8691,11008,11009,11011,11010,129196,129197,128502,10004,128503,128505],J={};function Y(P){if(!J[945]){let T=0;for(const z in ke){const W=ke[z];if(1===W.length){let fe=0;if(T<54)fe=97+T,T>25&&(fe-=58),52===T&&(fe=161),53===T&&(fe=206);else{const Me=T-54;switch(fe=163+Me,Me){case 75:fe=197;break;case 76:fe=229;break;case 80:fe=34;break;case 81:fe=36}}const we=W.charCodeAt(0);we>128&&(J[we]=fe)}if(++T>136)break}}return J[P]??P}function ue(P){if(1!==P.childNodes.length)return!1;const T=P.textContent;if(!T)return!1;let z="",W=-1;for(let fe=0;fe'+String.fromCharCode(Me)+"",W=fe)}return!(W<0||(W32?z[we-33]:0)||we)}return W}function me(P,T,z){z.plain=!0,z.simple_latex&&(z.text=Ye(z.text)),T.text(z.font&&z.font.isSymbol?Q(z.text,z.font.isSymbol):z.text)}function X(P){return!P||P.indexOf("#")<0&&P.indexOf("{")<0}function B(P,T,z,W){let fe=0;const we=()=>(W.g||(W.g=P.append("svg:g")),W.g),Me=Fe=>{W.x+=Math.round(Fe)},je=(Fe,Ne,rt,St)=>{W.rect?(W.rect.x1=Math.min(W.rect.x1,Fe),W.rect.y1=Math.min(W.rect.y1,Ne),W.rect.x2=Math.max(W.rect.x2,rt),W.rect.y2=Math.max(W.rect.y2,St)):W.rect={x1:Fe,y1:Ne,x2:rt,y2:St},W.rect.last_y1=Ne,W.rect.width=W.rect.x2-W.rect.x1,W.rect.height=W.rect.y2-W.rect.y1,W.parent||(T.text_rect=W.rect)},Ge=Fe=>{je(W.x,W.y,W.x+Fe*W.fsize*.4,W.y),Me(Fe*W.fsize*.4)},lt=(Fe,Ne,rt,St)=>{Ne=Math.round(Ne),rt=Math.round(rt),(0,L.bk)(Fe.g,Ne,rt),Fe.rect.x1+=Ne,Fe.rect.x2+=Ne,Fe.rect.y1+=rt,Fe.rect.y2+=rt,St?je(W.x+Fe.rect.x1,W.y+Fe.rect.y1,W.x+Fe.rect.x2,W.y+Fe.rect.y2):je(Fe.rect.x1,Fe.rect.y1,Fe.rect.x2,Fe.rect.y2)},bt=()=>{const Fe=we();return 1!==fe||z||W.x||W.y?(0,L.bk)(Fe.append("svg:g"),W.x,W.y):Fe},te=(Fe,Ne,rt)=>{let St=0,pt=1,st=!1;Ne||(Ne="{"),rt||(rt="}");const vt=qt=>St+qt.length<=z.length&&z.slice(St,St+qt.length)===qt;if(Fe){if(!vt(Ne))return console.log(`not starting with ${Ne} in ${z}`),-1;z=z.slice(Ne.length)}for(;0!==pt&&StFe.append("svg:path").style("stroke",rt?"none":W.color||T.color).style("stroke-width",rt?null:Math.max(1,Math.round(W.fsize*(W.font.weight?.1:.07)))).style("fill",rt?W.color||T.color:"none").attr("d",Ne??null),tt=Fe=>({lvl:W.lvl+1,x:0,y:0,fsize:W.fsize*(Fe||1),color:W.color,font:W.font,parent:W,painter:W.painter});for(;z;){let Fe=z.length,Ne=null;for(let pt=0;pt=0&&st0){const pt=Fe===z.length&&0===fe&&!Ne;fe++;let st=Ye(z.slice(0,Fe)),vt=0,Yt=0;for(;vt0&&(Ge(vt),st=st.slice(vt));Yt0&&(st=st.slice(0,st.length-Yt)),st||pt){const Ot=(W.g||(pt?P:we())).append("svg:text");pt&&!W.g&&(W.g=Ot),W.ufont&&(W.font.setPainter(T.painter),W.font.setFont(W.g)),void 0!==W.bold&&W.g.attr("font-weight",W.bold?"bold":"normal"),void 0!==W.italic&&W.g.attr("font-style",W.italic?"italic":"normal"),Ot.attr("fill",W.color||T.color||null),W.fisze!==W.font.size&&Ot.attr("font-size",Math.round(W.fsize)),Ot.text(W.font&&W.font.isSymbol?Q(st,W.font.isSymbol):st);const Bn=(0,x.isNodeJs)()||x.settings.ApproxTextSize||T.fast?{height:1.2*W.fsize,width:He(st,W.font,W.fsize)}:(0,L.xh)(Ot,"nopadding");W.x&&Ot.attr("x",W.x),W.y&&Ot.attr("y",W.y);const Mn=1===st.length&&!W.font.isMonospace()&&"lfij".indexOf(st)>=0?.1*W.fsize:0;je(W.x,W.y-.8*Bn.height,W.x+Bn.width,W.y+.2*Bn.height),pt?W.deco?(Ot.attr("text-decoration",W.deco),delete W.deco):W.xgap=Mn:(Me(Bn.width+Mn),Ge(Yt),W.xgap=0)}else Ge(Yt)}if(!Ne)return!0;if(z=z.slice(Fe+Ne.name.length),fe++,Ne.accent){const pt=te();if(-1===pt)return!1;const st=bt(),vt=tt(),Yt=1!==pt.length?1:pt>="a"&&pt<="z"&&"tdbfhkli".indexOf(pt)<0?.75:.9;B(st,T,pt,vt);const qt=.6*W.fsize,Ot=Math.round(vt.rect.y1*Yt),Bn=Math.round(.1*W.fsize),Mn=2*Bn,bn=`a${Bn},${Bn},0,0,1,${Mn},0a${Bn},${Bn},0,0,1,${-Mn},0z`;let Dn=0,$n=vt.rect.width;Ne.hasw&&$n0?bn/2:0,Dn-Bn.rect.y1,!0),Ot&&Ot.attr("d",`M0,${Math.round(Dn)}h${Math.round(Mn-.1*W.fsize)}`),Me(Mn),delete W.twolines;continue}const rt=pt=>{const st={};if(pt&&(z="{"+z,st[pt]=te("low"===pt?"_":"^"),-1===st[pt]))return!1;for(;z;)if("_"===z[0]){if(z=z.slice(1),st.low=st.low?-1:te("_"),-1===st.low)return console.log(`error with ${Ne.name} low limit`),!1}else{if("^"!==z[0])break;if(z=z.slice(1),st.up=st.up?-1:te("^"),-1===st.up)return console.log(`error with ${Ne.name} upper limit ${z}`),!1}return st};if(Ne.low_up){const pt=rt(Ne.low_up);if(!pt)return!1;const st=W.x,vt=.03*W.fsize,Yt=.25*W.fsize;let qt,Ot,Bn=0,Mn=0,bn=-W.fsize;pt.up&&(qt=tt(.6),B(we(),T,pt.up,qt)),pt.low&&(Ot=tt(.6),B(we(),T,pt.low,Ot)),qt&&(Ot||(bn=Math.min(bn,W.rect.last_y1)),lt(qt,st+vt,bn-qt.rect.y1-.1*W.fsize),Bn=qt.rect.width),Ot&&(lt(Ot,st+vt,Yt-Ot.rect.y2+.1*W.fsize),Mn=Ot.rect.width),Me(vt+Math.max(Bn,Mn));continue}if(Ne.special){const pt=rt()||{},st=bt(),vt=Je(st),Yt=Math.round(1.7*W.fsize),qt=Math.round(W.fsize),Ot=Math.round(.1*Yt);let Bn,Mn;if("#sum"===Ne.name?(Bn=Mn=qt/2,vt.attr("d",`M${qt},${Math.round(-.75*Yt)}h${-qt}l${Math.round(.4*qt)},${Math.round(.3*Yt)}l${Math.round(-.4*qt)},${Math.round(.7*Yt)}h${qt}`)):(Bn=3*Ot,Mn=Ot,vt.attr("d",`M0,${Math.round(.25*Yt-Ot)}a${Ot},${Ot},0,0,0,${2*Ot},0v${2*Ot-Yt}a${Ot},${Ot},0,1,1,${2*Ot},0`)),je(W.x,W.y-.6*Yt,W.x+qt,W.y+.4*Yt),pt.low){const bn=tt(.6);B(st,T,pt.low,bn),lt(bn,Mn-bn.rect.width/2,.25*Yt-bn.rect.y1,!0)}if(pt.up){const bn=tt(.6);B(st,T,pt.up,bn),lt(bn,Bn-bn.rect.width/2,-.75*Yt-bn.rect.y2,!0)}Me(qt);continue}if(Ne.braces){const pt=Ne.right,vt=te(!1,pt?Ne.name:"{",pt),Yt=bt(),qt=tt(),Ot=Je(Yt);B(Yt,T,vt,qt);const Bn=Je(Yt),Mn=Math.max(2,Math.round(.2*W.fsize)),bn=qt.rect,Dn=Math.round(bn.y2-bn.y1),$n=Math.round(bn.y1),Cn=Math.round(bn.width);switch(Ne.braces){case"||":Ot.attr("d",`M${Mn},${$n}v${Dn}`),Bn.attr("d",`M${3*Mn+Cn},${$n}v${Dn}`);break;case"[]":Ot.attr("d",`M${2*Mn},${$n}h${-Mn}v${Dn}h${Mn}`),Bn.attr("d",`M${2*Mn+Cn},${$n}h${Mn}v${Dn}h${-Mn}`);break;case"{}":Ot.attr("d",`M${2*Mn},${$n}a${Mn},${Mn},0,0,0,${-Mn},${Mn}v${Dn/2-2*Mn}a${Mn},${Mn},0,0,1,${-Mn},${Mn}a${Mn},${Mn},0,0,1,${Mn},${Mn}v${Dn/2-2*Mn}a${Mn},${Mn},0,0,0,${Mn},${Mn}`),Bn.attr("d",`M${2*Mn+Cn},${$n}a${Mn},${Mn},0,0,1,${Mn},${Mn}v${Dn/2-2*Mn}a${Mn},${Mn},0,0,0,${Mn},${Mn}a${Mn},${Mn},0,0,0,${-Mn},${Mn}v${Dn/2-2*Mn}a${Mn},${Mn},0,0,1,${-Mn},${Mn}`);break;default:Ot.attr("d",`M${Mn},${$n}a${4*Dn},${4*Dn},0,0,0,0,${Dn}`),Bn.attr("d",`M${3*Mn+Cn},${$n}a${4*Dn},${4*Dn},0,0,1,0,${Dn}`)}lt(qt,2*Mn,0,!0),je(W.x,W.y+bn.y1,W.x+4*Mn+bn.width,W.y+bn.y2),Me(4*Mn+bn.width);continue}if(Ne.deco){const pt=te(),st=bt(),vt=tt();vt.deco=Ne.deco,B(st,T,pt,vt);const Yt=vt.rect;if(vt.deco){const qt=Je(st),Ot=Math.round(Yt.width);switch(vt.deco){case"underline":qt.attr("d",`M0,${Math.round(Yt.y2)}h${Ot}`);break;case"overline":qt.attr("d",`M0,${Math.round(Yt.y1)}h${Ot}`);break;case"line-through":qt.attr("d",`M0,${Math.round(.45*Yt.y1+.55*Yt.y2)}h${Ot}`)}}lt(vt,0,0,!0),Me(Yt.width);continue}if("#bf{"===Ne.name||"#it{"===Ne.name){const pt=te();if(-1===pt)return!1;const st=tt();"#bf{"===Ne.name?st.bold=!st.bold:st.italic=!st.italic,B(we(),T,pt,st),lt(st,W.x,W.y),Me(st.rect.width);continue}let St=0;if(Ne.arg){const pt=z.indexOf("]{");if(pt<0)return console.log("missing argument for ",Ne.name),!1;if(St=z.slice(0,pt),"int"===Ne.arg){if(St=parseInt(St),!Number.isInteger(St))return console.log("wrong int argument",z.slice(0,pt)),!1}else if("float"===Ne.arg&&(St=parseFloat(St),!Number.isFinite(St)))return console.log("wrong float argument",z.slice(0,pt)),!1;z=z.slice(pt+2)}if("#kern["!==Ne.name&&"#lower["!==Ne.name)if("#color["!==Ne.name&&"#scale["!==Ne.name&&"#font["!==Ne.name){if(Ne.sqrt){const pt=te();if(-1===pt)return!1;const st=bt(),vt=tt();let Yt;Ne.arg&&(Yt=tt(.7),B(st,T,St.toString(),Yt));const qt=Je(st);B(st,T,pt,vt);const Ot=vt.rect,Bn=Math.round(Ot.height),Mn=Math.round(.1*Ot.height),bn=Math.round(Ot.width),Dn=Math.round((Ot.y1+Ot.y2)/2),$n=Math.round(.2*W.fsize),Cn=Math.round(Ot.y2);Yt&<(Yt,0,Dn-.3*Yt.fsize,!0),qt.attr("d",`M0,${Dn}h${Mn}l${Mn},${Cn-Dn-$n}l${Mn},${-Bn+$n}h${Math.round(.2*Bn+bn)}v${Mn}`),lt(vt,.4*Bn,0,!0),je(W.x,W.y+Ot.y1-.1*W.fsize,W.x+bn+.6*Bn,W.y+Ot.y2),Me(bn+.6*Bn)}}else{const pt=te();if(-1===pt)return!1;const st=tt();"#color["===Ne.name?st.color=W.painter.getColor(St):"#font["===Ne.name?(st.font=new ve.qg(St),st.ufont=!0):st.fsize*=St,B(we(),T,pt,st),lt(st,W.x,W.y),Me(st.rect.width)}else{const pt=te();if(-1===pt)return!1;const st=tt();B(we(),T,pt,st);let vt=0,Yt=0;"kern["===Ne.name?vt=St:Yt=St,lt(st,W.x+vt*st.rect.width,W.y+Yt*st.rect.height),Me(st.rect.width*(vt>0?1+St:1))}}return!0}function $(P,T,z){return B(T,z,z.text,{lvl:0,g:T,x:0,y:0,dx:0,dy:-.1,fsize:z.font_size,font:z.font,parent:null,painter:P})}let g;function E(){return _.apply(this,arguments)}function _(){return(_=(0,Te.A)(function*(){const P=void 0!==g;if(!P&&typeof globalThis.MathJax<"u")return globalThis.MathJax;P||(g=[]);const T=new Promise(fe=>{g?g.push(fe):fe(globalThis.MathJax)});if(P)return T;const z={scale:1,minScale:.5,mtextInheritFont:!1,merrorInheritFont:!0,mathmlSpacing:!1,skipAttributes:{},exFactor:.5,displayAlign:"center",displayIndent:"0",fontCache:"local",localID:null,internalSpeechTitles:!0,titleID:0};if(!(0,x.isNodeJs)()){window.MathJax={options:{enableMenu:!1},loader:{load:["[tex]/color","[tex]/upgreek","[tex]/mathtools","[tex]/physics"]},tex:{packages:{"[+]":["color","upgreek","mathtools","physics"]}},svg:z,startup:{ready(){MathJax.startup.defaultReady();const we=g;g=void 0,we.forEach(Me=>Me(globalThis.MathJax))}}};let fe="../mathjax/3.2.0";return x.browser.webwindow&&x.source_dir.indexOf("https://root.cern/js")<0&&x.source_dir.indexOf("https://jsroot.gsi.de")<0&&(fe="mathjax"),(0,x.loadScript)(x.source_dir+fe+"/es5/tex-svg.js").catch(()=>(0,x.loadScript)("https://cdn.jsdelivr.net/npm/mathjax@3.2.0/es5/tex-svg.js")).then(()=>T)}let W;return(0,L.lf)().then(fe=>(W=fe.JSDOM,Se.e(598).then(Se.t.bind(Se,3598,19)))).then(fe=>(fe.init({loader:{load:["input/tex","output/svg","[tex]/color","[tex]/upgreek","[tex]/mathtools","[tex]/physics"]},tex:{packages:{"[+]":["color","upgreek","mathtools","physics"]}},svg:z,config:{JSDOM:W},startup:{typeset:!1,ready(){const we=MathJax;we.startup.registerConstructor("jsdomAdaptor",()=>new we._.adaptors.HTMLAdaptor.HTMLAdaptor((new we.config.config.JSDOM).window)),we.startup.useAdaptor("jsdomAdaptor",!0),we.startup.defaultReady();const Me=g;g=void 0,Me.forEach(je=>je(we))}}}),T))})).apply(this,arguments)}const v={"#LT":"\\langle","#GT":"\\rangle","#club":"\\clubsuit","#spade":"\\spadesuit","#heart":"\\heartsuit","#diamond":"\\diamondsuit","#voidn":"\\wp","#voidb":"f","#copyright":"(c)","#ocopyright":"(c)","#trademark":"TM","#void3":"TM","#oright":"R","#void1":"R","#3dots":"\\ldots","#lbar":"\\mid","#void8":"\\mid","#divide":"\\div","#Jgothic":"\\Im","#Rgothic":"\\Re","#doublequote":'"',"#plus":"+","#minus":"-","#/":"/","#upoint":".","#aa":"\\mathring{a}","#AA":"\\mathring{A}","#omicron":"o","#Alpha":"A","#Beta":"B","#Epsilon":"E","#Zeta":"Z","#Eta":"H","#Iota":"I","#Kappa":"K","#Mu":"M","#Nu":"N","#Omicron":"O","#Rho":"P","#Tau":"T","#Chi":"X","#varomega":"\\varpi","#corner":"?","#ltbar":"?","#bottombar":"?","#notsubset":"?","#arcbottom":"?","#cbar":"?","#arctop":"?","#topbar":"?","#arcbar":"?","#downleftarrow":"?","#splitline":"\\genfrac{}{}{0pt}{}","#it":"\\textit","#bf":"\\textbf","#frac":"\\frac","#left{":"\\lbrace","#right}":"\\rbrace","#left\\[":"\\lbrack","#right\\]":"\\rbrack","#\\[\\]{":"\\lbrack"," } ":"\\rbrack","#\\[":"\\lbrack","#\\]":"\\rbrack","#{":"\\lbrace","#}":"\\rbrace"," ":"\\;"},p={upDelta:"Updelta",upGamma:"Upgamma",upLambda:"Uplambda",upOmega:"Upomega",upPhi:"Upphi",upPi:"Uppi",upPsi:"Uppsi",upSigma:"Upsigma",upTheta:"Uptheta",upUpsilon:"Upupsilon",upXi:"Upxi",notcong:"ncong",notgeq:"ngeq",notgr:"ngtr",notless:"nless",notleq:"nleq",notsucc:"nsucc",notprec:"nprec",notsubseteq:"nsubseteq",notsupseteq:"nsupseteq",openclubsuit:"clubsuit",openspadesuit:"spadesuit",dasharrow:"dashrightarrow",comp:"circ",iiintop:"iiint",iintop:"iint",ointop:"oint"},C={Digamma:988,upDigamma:988,digamma:989,updigamma:989,Koppa:990,koppa:991,upkoppa:991,upKoppa:990,VarKoppa:984,upVarKoppa:984,varkoppa:985,upvarkoppa:985,varkappa:954,upvarkappa:954,varbeta:976,upvarbeta:976,Sampi:992,upSampi:992,sampi:993,upsampi:993,Stigma:986,upStigma:986,stigma:987,upstigma:987,San:1018,upSan:1018,san:1019,upsan:1019,Sho:1015,upSho:1015,sho:1016,upsho:1016,P:182,aa:176,bulletdashcirc:8887,circdashbullet:8886,downuparrows:8693,updownarrows:8645,dashdownarrow:8675,dashuparrow:8673,complement:8705,dbar:396,ddddot:8943,dddot:8943,ddots:8945,defineequal:8797,defineeq:8797,downdownharpoons:10597,downupharpoons:10607,updownharpoons:10606,upupharpoons:10595,hateq:8793,ldbrack:10214,rdbrack:10215,leadsfrom:8604,leftsquigarrow:8668,lightning:9735,napprox:8777,nasymp:8813,nequiv:8802,nsimeq:8772,nsubseteq:8840,nsubset:8836,notapprox:8777,notasymp:8813,notequiv:8802,notni:8716,notsimeq:8772,notsubseteq:8840,notsubset:8836,notsupseteq:8841,notsupset:8837,nsupset:8837,setdif:8726,simarrow:10610,t:8256,u:711,v:711,undercurvearrowright:10555,updbar:396,wwbar:8213,awointop:8754,awoint:8755,barintop:10780,barint:10779,cwintop:8753,cwint:8753,cwointop:8755,cwoint:8754,oiiintop:8752,oiiint:8752,oiintop:8751,oiint:8751,slashintop:10767,slashint:10767},I=['"',"'","`","=","~"];function Z(P,T,z,W,fe,we){let Me=parseInt(z.attr("width")),je=parseInt(z.attr("height"));if(Number.isInteger(je)&&Number.isInteger(Me))we>0&&(Me/=we,je/=we,z.attr("width",Math.round(Me)).attr("height",Math.round(je)));else{const Je=(0,L.xh)(T,"bbox");Me=Je.width||Me||100,je=Je.height||je||10}we>0&&W.valign&&(W.valign=W.valign/we),null===W.valign&&(W.valign=(fe-je)/2);const Ge={x:1,y:1};let lt="x",bt="y";180===W.rotate?Ge.x=Ge.y=-1:(270===W.rotate||90===W.rotate)&&(Ge.x=270===W.rotate?-1:1,Ge.y=-Ge.x,lt="y",bt="x"),"middle"===W.align[0]?W[lt]+=Ge.x*(W.width-Me)/2:"end"===W.align[0]&&(W[lt]+=Ge.x*(W.width-Me)),"middle"===W.align[1]?W[bt]+=Ge.y*(W.height-je)/2:"bottom"===W.align[1]?W[bt]+=Ge.y*(W.height-je):"bottom-base"===W.align[1]&&(W[bt]+=Ge.y*(W.height-je-W.valign));let te=(0,L.bk)(W.x,W.y)||"";W.rotate&&(te&&(te+=" "),te+=`rotate(${W.rotate})`),T.attr("transform",te||null).attr("visibility",null)}function ee(P,T,z){return he.apply(this,arguments)}function he(){return(he=(0,Te.A)(function*(P,T,z){const W=function U(P,T,z,W){if(2!==T){for(const Me in v)P=P.replace(new RegExp(Me,"g"),v[Me]);for(const Me in ke)Me.length>2&&(P=P.replace(new RegExp(Me,"g"),"\\"+Me.slice(1)));let fe="",we=!0;for(;P;){let Me=P.indexOf("#color[");if(Me<0&&we){fe=P;break}if(we=!1,0!==Me&&(fe+=Me<0?P:P.slice(0,Me),Me<0))break;if(Me=(P=P.slice(Me+7)).indexOf("]{"),Me<=0)break;const je=parseInt(P.slice(0,Me));if(!Number.isInteger(je))break;const Ge=W.getColor(je);let lt=1;for(P=P.slice(Me+2),Me=-1;lt&&++Me{P=P.replace(new RegExp(`(\\\\${fe})`,"g"),`\\unicode{0x${fe.charCodeAt(0).toString(16)}}`)});for(const fe in p)P=P.replace(new RegExp(`\\\\\\b${fe}\\b`,"g"),`\\${p[fe]}`)}return(0,x.isStr)(z)?`\\color{${z}}{${P}}`:P}(z.text,z.latex,z.color,P),fe={em:z.font.size,ex:z.font.size/2,family:z.font.name,scale:1,containerWidth:-1,lineWidth:1e5};return E().then(we=>we.tex2svgPromise(W,fe)).then(we=>{const Me=we.querySelector("svg");return T.append(()=>Me),function k(P,T,z,W){const fe=Ge=>{if(!Ge||!(0,x.isStr)(Ge)||Ge.length<3)return null;const lt=Ge.indexOf("ex");return lt<0||lt!==Ge.length-2?null:(Ge=parseFloat(Ge.slice(0,lt)),Number.isFinite(Ge)?Ge*W.font.size*.5:null)};let we=fe(z.getAttribute("width")),Me=fe(z.getAttribute("height")),je=z.getAttribute("style");if(je&&je.length>18&&0===je.indexOf("vertical-align:")){const Ge=je.indexOf("ex;");je=Ge>0&&Ge===je.length-3?fe(je.slice(16,je.length-1)):null}else je=null;if(we=!we||we<=.5?1:Math.round(we),Me=!Me||Me<=.5?1:Math.round(Me),z.setAttribute("width",we),z.setAttribute("height",Me),z.removeAttribute("style"),!(0,x.isNodeJs)()){const Ge=(0,L.xh)(T,"bbox");we=1.05*Ge.width,Me=1.05*Ge.height}W.valign=je,W.scale&&P.scaleTextDrawing(Math.max(we/W.width,Me/W.height),W.draw_g)}(P,T,Me,z),z.applyAttributesToMathJax=Z,!0})})).apply(this,arguments)}function V(P){return b.apply(this,arguments)}function b(){return(b=(0,Te.A)(function*(P){return E().then(T=>T.typesetPromise(P?[P]:void 0))})).apply(this,arguments)}},6983:(Yr,mt,Se)=>{"use strict";Se.r(mt),Se.d(mt,{Beta:()=>Sn,BetaDist:()=>Bs,BetaDistI:()=>yo,BetaIncomplete:()=>Me,BreitWigner:()=>yn,Chebyshev0:()=>In,Chebyshev1:()=>ci,Chebyshev10:()=>D,Chebyshev2:()=>Pi,Chebyshev3:()=>Si,Chebyshev4:()=>bi,Chebyshev5:()=>Jn,Chebyshev6:()=>Wi,Chebyshev7:()=>Ln,Chebyshev8:()=>Rs,Chebyshev9:()=>oe,ChebyshevN:()=>cn,FDist:()=>Mn,FDistI:()=>Dn,Gamma:()=>$,GammaDist:()=>ii,Gaus:()=>Cn,InvPi:()=>Ut,Landau:()=>U,LaplaceDist:()=>ai,LaplaceDistI:()=>zi,LogNormal:()=>ss,Pi:()=>sn,PiOver2:()=>xn,PiOver4:()=>wn,Polynomial1eval:()=>He,Polynomialeval:()=>Re,Prob:()=>$n,Sq:()=>_t,Student:()=>ti,StudentI:()=>Lr,TwoPi:()=>tn,beta:()=>V,beta_cdf_c:()=>Ge,beta_pdf:()=>he,beta_quantile:()=>je,breitwigner_cdf:()=>tt,breitwigner_cdf_c:()=>Je,cauchy_cdf:()=>Ne,cauchy_cdf_c:()=>Fe,cauchy_pdf:()=>rt,chisquared_cdf:()=>lt,chisquared_cdf_c:()=>b,chisquared_pdf:()=>Bn,crystalball_cdf:()=>hn,crystalball_cdf_c:()=>kn,crystalball_function:()=>Ht,crystalball_pdf:()=>Nt,erf:()=>J,erfc:()=>F,expo:()=>ye,exponential_cdf:()=>Ot,exponential_cdf_c:()=>qt,fdistribution_cdf:()=>Dn,fdistribution_cdf_c:()=>bn,fdistribution_pdf:()=>Mn,gamma:()=>$,gamma_pdf:()=>pt,gamma_quantile:()=>te,gamma_quantile_c:()=>bt,gaus:()=>xt,gausn:()=>K,gaussian_cdf:()=>me,gaussian_cdf_c:()=>Q,gaussian_pdf:()=>St,gausxy:()=>ge,getTEfficiencyBoundaryFunc:()=>it,igam:()=>p,igamc:()=>v,igami:()=>C,inc_beta:()=>we,inc_gamma:()=>Z,inc_gamma_c:()=>k,incbet:()=>W,incbi:()=>fe,landau:()=>Pe,landau_pdf:()=>I,landaun:()=>At,lgam:()=>Ve,lgamma:()=>ee,lognormal_cdf:()=>ue,lognormal_cdf_c:()=>Y,lognormal_pdf:()=>X,ndtri:()=>g,normal_cdf:()=>me,normal_cdf_c:()=>Q,normal_pdf:()=>B,normal_quantile:()=>E,normal_quantile_c:()=>_,pseries:()=>z,stirf:()=>De,tdistribution_cdf:()=>vt,tdistribution_cdf_c:()=>st,tdistribution_pdf:()=>Yt,tgamma:()=>$});const Te=11102230246251565e-32,x=-708.3964185322641,L=709.782712893384,ve=108.11685576785767,ke=4503599627370496,ot=2220446049250313e-31,Ye=1.4142135623730951,Ze=3.141592653589793;function Re(qe,nt,at){if(!at)return nt[0];let ht=nt[0];for(let Qt=1;Qt<=at;++Qt)ht=ht*qe+nt[Qt];return ht}function He(qe,nt,at){if(!at)return nt[0];let ht=qe+nt[0];for(let Qt=1;Qt=Number.MAX_VALUE||qe==Number.POSITIVE_INFINITY)return Number.POSITIVE_INFINITY;if(qe<-34)return at=-qe,Qt=Ve(at),nt=Math.floor(at),nt===at||(vn=at-nt,vn>.5&&(nt+=1,vn=nt-at),vn=at*Math.sin(Math.PI*vn),vn<1e-300)?Number.POSITIVE_INFINITY:(vn=Math.log(Math.PI)-Math.log(vn)-Qt,vn);if(qe<13){for(vn=1,nt=0,ht=qe;ht>=3;)nt-=1,ht=qe+nt,vn*=ht;for(;ht<2;){if(ht<1e-300)return Number.POSITIVE_INFINITY;vn/=ht,nt+=1,ht=qe+nt}return vn<0&&(vn=-vn),2===ht?Math.log(vn):(nt-=2,nt=(qe+=nt)*Re(qe,Hn,5)/He(qe,Vn,6),Math.log(vn)+nt)}return qe>2556348e299?Number.POSITIVE_INFINITY:(at=(qe-.5)*Math.log(qe)-qe+.9189385332046728,qe>1e8||(nt=1/(qe*qe),at+=qe>=1e3?((.0007936507936507937*nt-.002777777777777778)*nt+.08333333333333333)/qe:Re(nt,[.0008116141674705085,-.0005950619042843014,.0007936503404577169,-.002777777777300997,.08333333333333319],4)/qe),at)}function De(qe){let nt,at,ht;const vn=Math.sqrt(2*Math.PI);return at=1/qe,at=1+at*Re(at,[.0007873113957930937,-.00022954996161337813,-.0026813261780578124,.0034722222160545866,.08333333333334822],4),nt=Math.exp(qe),qe>ve?(ht=Math.pow(qe,.5*qe-.25),nt=ht*(ht/nt)):nt=Math.pow(qe,qe-.5)/nt,nt=vn*nt*at,nt}function F(qe){let vn,en,jt,fn,Hn;return jt=qe<0?-qe:qe,jt<1?1-J(qe):(Hn=-qe*qe,Hn<-L||(Hn=Math.exp(Hn),jt<8?(vn=Re(jt,[2.461969814735305e-10,.5641895648310689,7.463210564422699,48.63719709856814,196.5208329560771,526.4451949954773,934.5285271719576,1027.5518868951572,557.5353353693994],8),en=He(jt,[13.228195115474499,86.70721408859897,354.9377788878199,975.7085017432055,1823.9091668790973,2246.3376081871097,1656.6630919416134,557.5353408177277],8)):(vn=Re(jt,[.5641895835477551,1.275366707599781,5.019050422511805,6.160210979930536,7.4097426995044895,2.9788666537210022],5),en=He(jt,[2.2605286322011726,9.396035249380015,12.048953980809666,17.08144507475659,9.608968090632859,3.369076451000815],6)),fn=Hn*vn/en,qe<0&&(fn=2-fn),0==fn)?qe<0?2:0:fn)}function J(qe){if(Math.abs(qe)>1)return 1-F(qe);const ht=qe*qe;return qe*Re(ht,[9.604973739870516,90.02601972038427,2232.005345946843,7003.325141128051,55592.30130103949],4)/He(ht,[33.56171416475031,521.3579497801527,4594.323829709801,22629.000061389095,49267.39426086359],5)}function Y(qe,nt,at,ht){void 0===ht&&(ht=0);const Qt=(Math.log(qe-ht)-nt)/(at*Ye);return Qt>1?.5*F(Qt):.5*(1-J(Qt))}function ue(qe,nt,at,ht=0){const Qt=(Math.log(qe-ht)-nt)/(at*Ye);return Qt<-1?.5*F(-Qt):.5*(1+J(Qt))}function Q(qe,nt,at=0){const ht=(qe-at)/(nt*Ye);return ht>1?.5*F(ht):.5*(1-J(ht))}function me(qe,nt,at=0){const ht=(qe-at)/(nt*Ye);return ht<-1?.5*F(-ht):.5*(1+J(ht))}function X(qe,nt,at,ht=0){if(qe-ht<=0)return 0;const Qt=(Math.log(qe-ht)-nt)/at;return 1/((qe-ht)*Math.abs(at)*Math.sqrt(2*Ze))*Math.exp(-Qt*Qt/2)}function B(qe,nt=1,at=0){const ht=(qe-at)/nt;return 1/(Math.sqrt(2*Ze)*Math.abs(nt))*Math.exp(-ht*ht/2)}function $(qe){let nt,at,ht,Qt,vn=1;if(qe>=Number.MAX_VALUE)return qe;if(at=Math.abs(qe),at>33){if(qe<0){if(nt=Math.floor(at),nt==at)return Number.POSITIVE_INFINITY;if(Qt=Math.round(nt),1&Qt||(vn=-1),ht=at-nt,ht>.5&&(nt+=1,ht=at-nt),ht=at*Math.sin(Math.PI*ht),0==ht)return vn>0?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY;ht=Math.abs(ht),ht=Math.PI/(ht*De(at))}else ht=De(qe);return vn*ht}for(ht=1;qe>=3;)ht*=qe-=1;let en=!1;for(;qe<0&&!en;)qe>-1e-9?en=!0:(ht/=qe,qe+=1);for(;qe<2&&!en;)qe<1e-9?en=!0:(ht/=qe,qe+=1);return en?0==qe?Number.POSITIVE_INFINITY:ht/((1+.5772156649015329*qe)*qe):2==qe?ht:(nt=Re(qe-=2,[.00016011952247675185,.0011913514700658638,.010421379756176158,.04763678004571372,.20744822764843598,.4942148268014971,1],6),at=Re(qe,[-23158187332412014e-21,.0005396055804933034,-.004456419138517973,.011813978522206043,.035823639860549865,-.23459179571824335,.0714304917030273,1],7),ht*nt/at)}function g(qe){if(qe<=0)return Number.NEGATIVE_INFINITY;if(qe>=1)return Number.POSITIVE_INFINITY;const fn=.1353352832366127;let Hi,_r,Li,Hn=1,Vn=qe;if(Vn>1-fn&&(Vn=1-Vn,Hn=0),Vn>fn)return Vn-=.5,_r=Vn*Vn,Hi=Vn+Vn*(_r*Re(_r,[-59.96335010141079,98.00107541859997,-56.67628574690703,13.931260938727968,-1.2391658386738125],4)/He(_r,[1.9544885833814176,4.676279128988815,86.36024213908905,-225.46268785411937,200.26021238006066,-82.03722561683334,15.90562251262117,-1.1833162112133],8)),Hi*=2.5066282746310007,Hi;Hi=Math.sqrt(-2*Math.log(Vn));const Kr=Hi-Math.log(Hi)/Hi,os=1/Hi;return Li=Hi<8?os*Re(os,[4.0554489230596245,31.525109459989388,57.16281922464213,44.08050738932008,14.684956192885803,2.1866330685079025,-.1402560791713545,-.03504246268278482,-.0008574567851546854],8)/He(os,[15.779988325646675,45.39076351288792,41.3172038254672,15.04253856929075,2.504649462083094,-.14218292285478779,-.03808064076915783,-.0009332594808954574],8):os*Re(os,[3.2377489177694603,6.915228890689842,3.9388102529247444,1.3330346081580755,.20148538954917908,.012371663481782003,.00030158155350823543,26580697468673755e-22,6.239745391849833e-9],8)/He(os,[6.02427039364742,3.6798356385616087,1.3770209948908132,.21623699359449663,.013420400608854318,.00032801446468212774,28924786474538068e-22,6.790194080099813e-9],8),Hi=Kr-Li,0!=Hn&&(Hi=-Hi),Hi}function E(qe,nt){return nt*g(qe)}function _(qe,nt){return-nt*g(qe)}function v(qe,nt){if(qe<=0)return 0;if(nt<=0)return 1;if(nt<1||ntke&&(en*=ot,fn*=ot,jt*=ot,Hn*=ot)}while(Li>Te);return Vn*at}function p(qe,nt){if(qe<=0)return 1;if(nt<=0)return 0;if(nt>1&&nt>qe)return 1-v(qe,nt);let at=qe*Math.log(nt)-nt-Ve(qe);if(at<-L)return 0;at=Math.exp(at);let ht=qe,Qt=1,vn=1;do{ht+=1,Qt*=nt/ht,vn+=Qt}while(Qt/vn>Te);return vn*at/qe}function C(qe,nt){if(qe<=0)return console.error(`igami : Wrong domain for parameter a = ${qe} (must be > 0)`),0;if(nt<=0)return Number.POSITIVE_INFINITY;if(nt>=1)return 0;const at=Number.MAX_VALUE,ht=5*Te;let en,Hn,Vn,Hi,_r,Li,Qt=at,vn=0,jt=0,fn=1;for(Vn=1/(9*qe),Hn=1-Vn-g(nt)*Math.sqrt(Vn),en=qe*Hn*Hn*Hn,Hi=Ve(qe),_r=0;_r<10&&!(en>Qt||enfn)||(Hn=nt?(vn=en,fn=Hn,Li<0?(Li=0,Vn=.5):Vn=Li>1?.5*Vn+.5:(nt-jt)/(fn-jt),Li+=1):(Qt=en,jt=Hn,Li>0?(Li=0,Vn=.5):Li<-1?Vn*=.5:Vn=(nt-jt)/(fn-jt),Li-=1);return en}function I(qe,nt,at=0){if(nt<=0)return 0;const ht=(qe-at)/nt;let Qt,vn,en,jt;const fn=[.4259894875,-.124976255,.039842437,-.006298287635,.001511162253],Hn=[1,-.3388260629,.09594393323,-.01608042283,.003778942063],Vn=[.1788541609,.1173957403,.01488850518,-.001394989411,.0001283617211],Hi=[1,.7428795082,.3153932961,.06694219548,.008790609714],_r=[.1788544503,.09359161662,.006325387654,6611667319e-14,-2031049101e-15],Li=[1,.6097809921,.2560616665,.04746722384,.006957301675],Kr=[.9874054407,118.6723273,849.279436,-743.7792444,427.0262186],os=[1,106.8615961,337.6496214,2016.712389,1597.063511],ia=[1.003675074,167.5702434,4789.711289,21217.86767,-22324.9491],Vs=[1,156.9424537,3745.310488,9834.698876,66924.28357],un=[1.000827619,664.9143136,62972.92665,475554.6998,-5743609.109],di=[1,651.4101098,56974.73333,165917.4725,-2815759.939],Rt=[.04166666667,-.01996527778,.02709538966],ui=[-1.84556867,-4.284640743];if(ht<-5.5){if(Qt=Math.exp(ht+1),Qt<1e-10)return 0;vn=Math.exp(-1/Qt),en=Math.sqrt(Qt),jt=vn/en*.3989422803*(1+(Rt[0]+(Rt[1]+Rt[2]*Qt)*Qt)*Qt)}else ht<-1?(Qt=Math.exp(-ht-1),jt=Math.exp(-Qt)*Math.sqrt(Qt)*(fn[0]+(fn[1]+(fn[2]+(fn[3]+fn[4]*ht)*ht)*ht)*ht)/(Hn[0]+(Hn[1]+(Hn[2]+(Hn[3]+Hn[4]*ht)*ht)*ht)*ht)):ht<1?jt=(Vn[0]+(Vn[1]+(Vn[2]+(Vn[3]+Vn[4]*ht)*ht)*ht)*ht)/(Hi[0]+(Hi[1]+(Hi[2]+(Hi[3]+Hi[4]*ht)*ht)*ht)*ht):ht<5?jt=(_r[0]+(_r[1]+(_r[2]+(_r[3]+_r[4]*ht)*ht)*ht)*ht)/(Li[0]+(Li[1]+(Li[2]+(Li[3]+Li[4]*ht)*ht)*ht)*ht):ht<12?(Qt=1/ht,jt=Qt*Qt*(Kr[0]+(Kr[1]+(Kr[2]+(Kr[3]+Kr[4]*Qt)*Qt)*Qt)*Qt)/(os[0]+(os[1]+(os[2]+(os[3]+os[4]*Qt)*Qt)*Qt)*Qt)):ht<50?(Qt=1/ht,jt=Qt*Qt*(ia[0]+(ia[1]+(ia[2]+(ia[3]+ia[4]*Qt)*Qt)*Qt)*Qt)/(Vs[0]+(Vs[1]+(Vs[2]+(Vs[3]+Vs[4]*Qt)*Qt)*Qt)*Qt)):ht<300?(Qt=1/ht,jt=Qt*Qt*(un[0]+(un[1]+(un[2]+(un[3]+un[4]*Qt)*Qt)*Qt)*Qt)/(di[0]+(di[1]+(di[2]+(di[3]+di[4]*Qt)*Qt)*Qt)*Qt)):(Qt=1/(ht-ht*Math.log(ht)/(ht+1)),jt=Qt*Qt*(1+(ui[0]+ui[1]*Qt)*Qt));return jt/nt}function U(qe,nt,at,ht){if(at<=0)return 0;const Qt=I((qe-nt)/at,1,0);return ht?Qt/at:Qt}function k(qe,nt){return v(qe,nt)}function Z(qe,nt){return p(qe,nt)}function ee(qe){return Ve(qe)}function he(qe,nt,at){if(qe<0||qe>1)return 0;if(0==qe){if(nt<1)return Number.POSITIVE_INFINITY;if(nt>1)return 0;if(1==nt)return at}if(1==qe){if(at<1)return Number.POSITIVE_INFINITY;if(at>1)return 0;if(1==at)return nt}return Math.exp(ee(nt+at)-ee(nt)-ee(at)+Math.log(qe)*(nt-1)+Math.log1p(-qe)*(at-1))}function V(qe,nt){return Math.exp(ee(qe)+ee(nt)-ee(qe+nt))}function b(qe,nt,at=0){return k(.5*nt,.5*(qe-at))}function z(qe,nt,at){let ht,Qt,vn,en,jt;const fn=1/qe;vn=(1-nt)*at,en=vn/(qe+1);const Hn=en;Qt=vn,jt=2,ht=0;const Vn=Te*fn;for(;Math.abs(en)>Vn;)vn=(jt-nt)*at/jt,Qt*=vn,en=Qt/(qe+jt),ht+=en,jt+=1;return ht+=Hn,ht+=fn,vn=qe*Math.log(at),qe+nt=1?1:(Vn=0,fn=1-at,at>qe/(qe+nt)?(Vn=1,ht=nt,Qt=qe,jt=at,en=fn):(ht=qe,Qt=nt,jt=fn,en=at),1==Vn&&Qt*en<=1&&en<=.95?vn=z(ht,Qt,en):(Hn=en*(ht+Qt-2)-(ht-1),fn=Hn<0?function P(qe,nt,at){let ht,Qt,vn,en,jt,fn,Hn,Vn,Hi,_r,Li,Kr,os,ia,Vs,un,di,Rt,ui;const Pn=3*Te;Vn=qe,Hi=qe+nt,_r=qe,Li=qe+1,Kr=1,os=nt-1,ia=Li,Vs=qe+2,en=0,Hn=1,vn=1,fn=1,Rt=1,un=1,ui=0;do{if(ht=-at*Vn*Hi/(_r*Li),Qt=vn+en*ht,jt=fn+Hn*ht,en=vn,vn=Qt,Hn=fn,fn=jt,ht=at*Kr*os/(ia*Vs),Qt=vn+en*ht,jt=fn+Hn*ht,en=vn,vn=Qt,Hn=fn,fn=jt,0!=jt&&(un=Qt/jt),0!=un?(di=Math.abs((Rt-un)/un),Rt=un):di=1,dike&&(en*=ot,vn*=ot,Hn*=ot,fn*=ot),(Math.abs(jt)ke&&(fn*=ot,jt*=ot,Hi*=ot,Vn*=ot),(Math.abs(Hn)(di&&(fn=fn<=Te?1-Te:1-fn),fn);if(un=0,at<=0)return 0;if(at>=1)return 1;if(Hn=0,os=0,Vn=1,ia=1,ui=0,qe<=1||nt<=1)Kr=1e-6,di=0,ht=qe,Qt=nt,vn=at,fn=ht/(ht+Qt),jt=W(ht,Qt,fn);else{if(Kr=1e-4,_r=-g(at),at>.5?(di=1,ht=nt,Qt=qe,vn=1-at,_r=-_r):(di=0,ht=qe,Qt=nt,vn=at),Hi=(_r*_r-3)/6,fn=2/(1/(2*ht-1)+1/(2*Qt-1)),en=_r*Math.sqrt(fn+Hi)/fn-(1/(2*Qt-1)-1/(2*ht-1))*(Hi+5/6-2/(3*fn)),en*=2,en0;){if(Pn){for(Rt=0,Li=.5,un=0;un<100;un++){if(0!=un){if(fn=Hn+Li*(Vn-Hn),1==fn&&(fn=1-Te),0==fn&&(Li=.5,fn=Hn+Li*(Vn-Hn),0==fn))return Fn();if(jt=W(ht,Qt,fn),_r=(Vn-Hn)/(Vn+Hn),Math.abs(_r)3?1-(1-Li)*(1-Li):Rt>1?.5*Li+.5:(vn-jt)/(ia-os),Rt+=1,Hn>.75){1==di?(di=0,ht=qe,Qt=nt,vn=at):(di=1,ht=nt,Qt=qe,vn=1-at),fn=1-fn,jt=W(ht,Qt,fn),Hn=0,os=0,Vn=1,ia=1;continue}}else{if(Vn=fn,1==di&&Vn0?(Rt=0,Li=.5):Rt<-3?Li*=Li:Rt<-1?Li*=.5:Li=(jt-vn)/(ia-os),Rt-=1}}if(Hn>=1)return fn=1-Te,Fn();if(fn<=0)return fn=0,Fn();break}if(Pn=!0,ui)return Fn();for(ui=1,Hi=Ve(ht+Qt)-Ve(ht)-Ve(Qt),un=0;un<8&&(0!=un&&(jt=W(ht,Qt,fn)),jtia?(fn=Vn,jt=ia):jtL||(en=Math.exp(en),en=(jt-vn)/en,Vs=fn-en,Vs<=Hn&&(jt=(fn-Hn)/(Vn-Hn),Vs=Hn+.5*jt*(fn-Hn),Vs<=0))||Vs>=Vn&&(jt=(Vn-fn)/(Vn-Hn),Vs=Vn-.5*jt*(Vn-fn),Vs>=1))break;if(fn=Vs,Math.abs(en/fn)<128*Te)return Fn()}Kr=256*Te}return Fn()}function we(qe,nt,at){return W(nt,at,qe)}const Me=we;function je(qe,nt,at){return fe(nt,at,qe)}function Ge(qe,nt,at){return we(1-qe,at,nt)}function lt(qe,nt,at=0){return Z(.5*nt,.5*(qe-at))}function bt(qe,nt,at){return at*C(nt,qe)}function te(qe,nt,at){return at*C(nt,1-qe)}function Je(qe,nt,at=0){return.5-Math.atan(2*(qe-at)/nt)/Ze}function tt(qe,nt,at=0){return.5+Math.atan(2*(qe-at)/nt)/Ze}function Fe(qe,nt,at=0){return.5-Math.atan((qe-at)/nt)/Ze}function Ne(qe,nt,at=0){return.5+Math.atan((qe-at)/nt)/Ze}function rt(qe,nt=1,at=0){return nt/(Ze*((qe-at)*(qe-at)+nt*nt))}function St(qe,nt=1,at=0){const ht=(qe-at)/nt;return 1/(Math.sqrt(2*Ze)*Math.abs(nt))*Math.exp(-ht*ht/2)}function pt(qe,nt,at,ht=0){return qe-ht<0?0:qe-ht==0?1==nt?1/at:0:1==nt?Math.exp(-(qe-ht)/at)/at:Math.exp((nt-1)*Math.log((qe-ht)/at)-(qe-ht)/at-ee(nt))/at}function st(qe,nt,at=0){const ht=qe-at,Qt=ht>0?1:-1;return.5-.5*we(ht*ht/(nt+ht*ht),.5,.5*nt)*Qt}function vt(qe,nt,at=0){const ht=qe-at,Qt=ht>0?1:-1;return.5+.5*we(ht*ht/(nt+ht*ht),.5,.5*nt)*Qt}function Yt(qe,nt,at=0){return Math.exp(ee((nt+1)/2)-ee(nt/2))/Math.sqrt(Ze*nt)*Math.pow(1+(qe-at)*(qe-at)/nt,-(nt+1)/2)}function qt(qe,nt,at=0){return qe-at<0?1:Math.exp(-nt*(qe-at))}function Ot(qe,nt,at=0){return qe-at<0?0:-Math.expm1(-nt*(qe-at))}function Bn(qe,nt,at=0){return qe-at<0?0:qe==at&&0==nt/2-1?.5:Math.exp((nt/2-1)*Math.log((qe-at)/2)-(qe-at)/2-ee(nt/2))/2}function Mn(qe,nt,at,ht=0){return nt<0||at<0?Number.NaN:qe-ht<0?0:Math.exp(nt/2*Math.log(nt)+at/2*Math.log(at)+ee((nt+at)/2)-ee(nt/2)-ee(at/2)+(nt/2-1)*Math.log(qe-ht)-(nt+at)/2*Math.log(at+nt*(qe-ht)))}function bn(qe,nt,at,ht=0){return nt<0||at<0?Number.NaN:at/(at+nt*(qe-ht))>.9&&nt>1&&at>1?1-Dn(qe,nt,at,ht):we(at/(at+nt*(qe-ht)),.5*at,.5*nt)}function Dn(qe,nt,at,ht=0){if(nt<0||at<0)return Number.NaN;const Qt=nt*(qe-ht)/(at+nt*(qe-ht));return Qt>.9&&nt>1&&at>1?1-bn(qe,nt,at,ht):we(Qt,.5*nt,.5*at)}function $n(qe,nt){return nt<=0?0:qe<=0?qe<0?0:1:b(qe,nt,0)}function Cn(qe,nt,at,ht){if(!at)return 1e30;const Qt=(qe-nt)/at;if(Qt<-39||Qt>39)return 0;const vn=Math.exp(-.5*Qt*Qt);return ht?vn/(2.5066282746310002*at):vn}function yn(qe,nt,at){return at/((qe-nt)*(qe-nt)+at*at/4)/2/Math.PI}function Sn(qe,nt){return Math.exp(ee(qe)+ee(nt)-ee(qe+nt))}function ii(qe,nt,at=0,ht=1){return qe0?1-.5*Me(at/(at+qe*qe),.5*at,.5):.5*Me(at/(at+qe*qe),.5*at,.5)}function ss(qe,nt,at=0,ht=1){return qe1||nt<=0||at<=0)return 0;const ht=Sn(nt,at);return Math.pow(qe,nt-1)*Math.pow(1-qe,at-1)/ht}function yo(qe,nt,at){return qe<0||qe>1||nt<=0||at<=0?0:Me(qe,nt,at)}function xt(qe,nt,at){return qe.GetParValue(at+0)*Math.exp(-.5*Math.pow((nt-qe.GetParValue(at+1))/qe.GetParValue(at+2),2))}function K(qe,nt,at){return xt(qe,nt,at)/(Math.sqrt(2*Math.PI)*qe.GetParValue(at+2))}function ge(qe,nt,at,ht){return qe.GetParValue(ht+0)*Math.exp(-.5*Math.pow((nt-qe.GetParValue(ht+1))/qe.GetParValue(ht+2),2))*Math.exp(-.5*Math.pow((at-qe.GetParValue(ht+3))/qe.GetParValue(ht+4),2))}function ye(qe,nt,at){return Math.exp(qe.GetParValue(at+0)+qe.GetParValue(at+1)*nt)}function Pe(qe,nt,at){return U(nt,qe.GetParValue(at+1),qe.GetParValue(at+2),!1)}function At(qe,nt,at){return U(nt,qe.GetParValue(at+1),qe.GetParValue(at+2),!0)}function Ht(qe,nt,at,ht,Qt=0){if(ht<0)return 0;let vn=(qe-Qt)/ht;nt<0&&(vn=-vn);const en=Math.abs(nt);if(vn>-en)return Math.exp(-.5*vn*vn);const jt=at/en;return Math.exp(-.5*en*en)*Math.pow(jt/(jt-en-vn),at)}function Nt(qe,nt,at,ht,Qt=0){if(ht<0)return 0;if(at<=1)return Number.NaN;const vn=Math.abs(nt);return 1/(ht*(at/vn*1/(at-1)*Math.exp(-nt*nt/2)+Math.sqrt(Ze/2)*(1+J(vn/Math.sqrt(2)))))*Ht(qe,nt,at,ht,Qt)}function nn(qe,nt,at,ht,Qt=0){if(0==ht||0==nt)return 0;const vn=1==at,en=Math.abs(nt);let jt=(qe-Qt)/ht,fn=0,Hn=0;nt<0&&(jt=-jt);const Vn=Math.sqrt(Ze/2),Hi=Math.sqrt(2*Ze),_r=1/Math.sqrt(2);if(jt<=-en){const Li=Math.pow(at/en,at)*Math.exp(-.5*nt*nt),Kr=at/en-en;Hn=vn?-Li*Math.log(at/en)+Li*Math.log(Kr-jt):at/en*(1/(at-1))*Math.exp(-nt*nt/2)-Li/(at-1)*Math.pow(Kr-jt,1-at),fn=Vn*(1+J(en*_r))}else fn=Q(jt,1),fn*=Hi,Hn=0;return ht*(fn+Hn)}function hn(qe,nt,at,ht,Qt=0){if(at<=1)return Number.NaN;const vn=Math.abs(nt),fn=ht*(at/vn*1/(at-1)*Math.exp(-nt*nt/2)+Math.sqrt(Ze/2)*(1+J(vn/Math.sqrt(2)))),Hn=nn(qe,nt,at,ht,Qt);return nt>0?1-Hn/fn:Hn/fn}function kn(qe,nt,at,ht,Qt=0){if(at<=1)return Number.NaN;const vn=Math.abs(nt),fn=ht*(at/vn*1/(at-1)*Math.exp(-nt*nt/2)+Math.sqrt(Ze/2)*(1+J(vn/Math.sqrt(2)))),Hn=nn(qe,nt,at,ht,Qt);return nt>0?Hn/fn:1-Hn/fn}function cn(qe,nt,at){let ht=0,Qt=0;const vn=2*nt;for(let en=qe;en>=1;en--){const jt=ht;ht=vn*ht-Qt+at[en],Qt=jt}return nt*ht-Qt+at[0]}function In(qe,nt){return nt}function ci(qe,nt,at){return nt+at*qe}function Pi(qe,nt,at,ht){return nt+at*qe+ht*(2*qe*qe-1)}function Si(qe,...nt){return cn(3,qe,nt)}function bi(qe,...nt){return cn(4,qe,nt)}function Jn(qe,...nt){return cn(5,qe,nt)}function Wi(qe,...nt){return cn(6,qe,nt)}function Ln(qe,...nt){return cn(7,qe,nt)}function Rs(qe,...nt){return cn(8,qe,nt)}function oe(qe,...nt){return cn(9,qe,nt)}function D(qe,...nt){return cn(10,qe,nt)}function O(qe,nt,at,ht){const Qt=(1-at)/2;return ht?nt==qe?1:je(1-Qt,nt+1,qe-nt):0==nt?0:je(Qt,nt,qe-nt+1)}function ie(qe,nt,at,ht){if(0==qe)return ht?1:0;const vn=nt/qe,jt=E(1-(1-at)/2,Math.sqrt(vn*(1-vn)/qe));return ht?vn+jt>1?1:vn+jt:vn-jt<0?0:vn-jt}function _e(qe,nt,at,ht){if(0==qe)return ht?1:0;const vn=nt/qe,en=E(1-(1-at)/2,1),jt=(nt+.5*en*en)/(qe+en*en),fn=en/(qe+en*en)*Math.sqrt(qe*vn*(1-vn)+en*en/4);return ht?jt+fn>1?1:jt+fn:jt-fn<0?0:jt-fn}function Oe(qe,nt,at,ht){const vn=E(1-(1-at)/2,1),en=(nt+.5*vn*vn)/(qe+vn*vn),jt=vn*Math.sqrt(en*(1-en)/(qe+vn*vn));return ht?en+jt>1?1:en+jt:en-jt<0?0:en-jt}function $e(qe,nt,at,ht){const en=(1-at)/2;let fn=0,Hn=1,Vn=0;if(nt>0&&nt<1){const Hi=$e(qe,0,at,ht);return Vn=($e(qe,1,at,ht)-Hi)*nt+Hi,Vn}for(;Math.abs(Hn-fn)>1e-9;){Vn=(fn+Hn)/2;let Hi=.5*he(Vn,nt+1,qe-nt+1)/(qe+1);nt-1>=0&&(Hi+=Ge(Vn,nt,qe-nt+1)),Hi>(ht?en:1-en)?fn=Vn:Hn=Vn}return Vn}function et(qe,nt,at,ht,Qt,vn){const en=nt+Qt,jt=qe-nt+vn;return ht?en>0&&jt>0?je((1+at)/2,en,jt):1:en>0&&jt>0?je((1-at)/2,en,jt):0}function it(qe,nt){if(nt)return et;switch(qe){case 0:return O;case 1:return ie;case 2:return _e;case 3:return Oe;case 4:return console.log("Feldman-Cousins interval kFFC not supported; using kFCP"),O;case 8:return $e}return console.log(`Not recognized stat option ${qe}, using kFCP`),O}function _t(qe){return qe*qe}function sn(){return Math.PI}function tn(){return 2*Math.PI}function xn(){return Math.PI/2}function wn(){return Math.PI/4}function Ut(){return 1/Math.PI}},8872:(Yr,mt,Se)=>{"use strict";Se.r(mt),Se.d(mt,{BIT:()=>v,_ensureJSROOT:()=>ia,addMethods:()=>I,atob_func:()=>F,browser:()=>Y,btoa_func:()=>J,clTAnnotation:()=>xt,clTAttCanvas:()=>kn,clTAttFill:()=>Fe,clTAttLine:()=>tt,clTAttMarker:()=>Ne,clTAttText:()=>rt,clTAxis:()=>ci,clTBox:()=>ye,clTCanvas:()=>hn,clTClonesArray:()=>Je,clTColor:()=>K,clTCutG:()=>vt,clTDiamond:()=>ii,clTF1:()=>D,clTF2:()=>O,clTF3:()=>ie,clTFile:()=>je,clTGaxis:()=>cn,clTGeoNode:()=>it,clTGeoNodeMatrix:()=>_t,clTGeoVolume:()=>et,clTGraph:()=>pt,clTGraph2DAsymmErrors:()=>qt,clTGraph2DErrors:()=>Yt,clTGraphPolar:()=>Ot,clTGraphPolargram:()=>Bn,clTGraphTime:()=>Mn,clTH1:()=>Si,clTH1D:()=>Jn,clTH1I:()=>bi,clTH2:()=>Wi,clTH2F:()=>Rs,clTH2I:()=>Ln,clTH3:()=>oe,clTHStack:()=>St,clTHashList:()=>lt,clTImagePalette:()=>Lr,clTKey:()=>Me,clTLatex:()=>Bs,clTLegend:()=>ai,clTLegendEntry:()=>zi,clTLine:()=>ge,clTList:()=>Ge,clTMap:()=>bt,clTMathText:()=>yo,clTMultiGraph:()=>st,clTNamed:()=>W,clTObjArray:()=>te,clTObjString:()=>we,clTObject:()=>z,clTPad:()=>nn,clTPaletteAxis:()=>ti,clTPave:()=>bn,clTPaveClass:()=>Sn,clTPaveLabel:()=>yn,clTPaveStats:()=>$n,clTPaveText:()=>Dn,clTPavesText:()=>Cn,clTPolyLine:()=>Pe,clTPolyLine3D:()=>At,clTPolyMarker3D:()=>Ht,clTProfile:()=>_e,clTProfile2D:()=>Oe,clTProfile3D:()=>$e,clTString:()=>fe,clTStyle:()=>Pi,clTText:()=>ss,clone:()=>p,constants:()=>Q,create:()=>Ut,createHistogram:()=>qe,createHttpRequest:()=>V,createTGraph:()=>ht,createTHStack:()=>Qt,createTMultiGraph:()=>vn,createTPolyLine:()=>at,decodeUrl:()=>ee,findFunction:()=>he,gStyle:()=>X,getDocument:()=>B,getMethods:()=>jt,getPromise:()=>os,httpRequest:()=>b,injectCode:()=>$,internals:()=>ot,isArrayProto:()=>ue,isBatchMode:()=>He,isFunc:()=>Hi,isNodeJs:()=>De,isObject:()=>Vn,isPromise:()=>Li,isRootCollection:()=>Hn,isStr:()=>_r,kInspect:()=>wn,kNoStats:()=>xn,kNoZoom:()=>tn,loadScript:()=>E,nsREX:()=>sn,parse:()=>U,parseMulti:()=>k,postponePromise:()=>Kr,prROOT:()=>T,registerMethods:()=>fn,setBatchMode:()=>Ve,setHistogramTitle:()=>nt,settings:()=>me,source_dir:()=>Ze,toJSON:()=>Z,version:()=>ve,version_date:()=>L,version_id:()=>x});var Te=Se(4882);const x="7.6.0",L="23/02/2024",ve=x+" "+L,ke=!!("object"==typeof process&&Vn(process.versions)&&process.versions.node&&process.versions.v8),ot={id_counter:1},Ye="file:///Users/emoyse/LocalDocuments/phoenix/node_modules/jsroot/modules/core.mjs";let Ze="";if(Ye&&_r(Ye)){const un=Ye.indexOf("modules/core.mjs");un>=0?(Ze=Ye.slice(0,un),console.log(`Set jsroot source_dir to ${Ze}, ${ve}`)):(console.log(`jsroot bundle, ${ve}`),ot.ignore_v6=!0)}let Re=ke;function He(){return Re}function Ve(un){Re=!!un}function De(){return ke}const F=De()?un=>Buffer.from(un,"base64").toString("latin1"):globalThis?.atob,J=De()?un=>Buffer.from(un,"latin1").toString("base64"):globalThis?.btoa,Y={isFirefox:!0,isSafari:!1,isChrome:!1,isWin:!1,touches:!1,screenWidth:1200};function ue(un){if(un.length<14||0!==un.indexOf("[object "))return 0;const di=un.indexOf("Array]");return di<0||di!==un.length-6?0:14===un.length?1:2}typeof document<"u"&&typeof window<"u"&&typeof navigator<"u"&&(navigator.userAgentData?.brands?.forEach(un=>{"HeadlessChrome"===un.brand?(Y.isChromeHeadless=!0,Y.chromeVersion=parseInt(un.version)):"Chromium"===un.brand&&(Y.isChrome=!0,Y.chromeVersion=parseInt(un.version))}),Y.chromeVersion?(Y.isFirefox=!1,Y.isWin="Windows"===navigator.userAgentData.platform):(Y.isFirefox=navigator.userAgent.indexOf("Firefox")>=0,Y.isSafari=Object.prototype.toString.call(window.HTMLElement).indexOf("Constructor")>0,Y.isChrome=!!window.chrome,Y.isChromeHeadless=navigator.userAgent.indexOf("HeadlessChrome")>=0,Y.chromeVersion=Y.isChrome||Y.isChromeHeadless?parseInt(navigator.userAgent.match(/Chrom(?:e|ium)\/([0-9]+)\.([0-9]+)\.([0-9]+)\.([0-9]+)/)[1]):0,Y.isWin=navigator.userAgent.indexOf("Windows")>=0),Y.touches="ontouchend"in document,Y.screenWidth=window.screen?.width??1200);const Q={Render3D:{Default:0,WebGL:1,WebGLImage:2,SVG:3,fromString(un){return"webgl"===un||"gl"===un?this.WebGL:"img"===un?this.WebGLImage:"svg"===un?this.SVG:this.Default}},Embed3D:{NoEmbed:-1,Default:0,Overlay:1,Embed:2,EmbedSVG:3,fromString(un){return"embed"===un?this.Embed:"overlay"===un?this.Overlay:this.Default}},Latex:{Off:0,Symbols:1,Normal:2,MathJax:3,AlwaysMathJax:4,fromString(un){if(!un||!_r(un))return this.Normal;switch(un){case"off":return this.Off;case"symbols":return this.Symbols;case"normal":case"latex":case"exp":case"experimental":return this.Normal;case"MathJax":case"mathjax":case"math":return this.MathJax;case"AlwaysMathJax":case"alwaysmath":case"alwaysmathjax":return this.AlwaysMathJax}const di=parseInt(un);return Number.isInteger(di)&&di>=this.Off&&di<=this.AlwaysMathJax?di:this.Normal}}},me={Render3D:Q.Render3D.Default,Render3DBatch:Q.Render3D.Default,Embed3D:Q.Embed3D.Default,Tooltip:!ke,TooltipAnimation:500,ContextMenu:!ke,Zooming:!ke,ZoomMouse:!ke,ZoomWheel:!ke,ZoomTouch:!ke,MoveResize:!Y.touches&&!ke,HandleKeys:!ke,DragAndDrop:!ke,DragGraphs:!0,ProgressBox:!ke,ToolBar:!ke&&"popup",ToolBarSide:"left",ToolBarVert:!1,CanEnlarge:!0,CanAdjustFrame:!1,ApproxTextSize:!1,OptimizeDraw:1,AutoStat:!0,FrameNDC:{},SmallPad:{width:150,height:100},Palette:57,Latex:Q.Latex.Normal,GeoGradPerSegm:6,GeoCompressComp:!0,IgnoreUrlOptions:!1,HierarchyLimit:250,DislpayKind:"simple",BrowserWidth:250,XValuesFormat:void 0,YValuesFormat:void 0,ZValuesFormat:void 0,HandleWrongHttpResponse:!1,UseStamp:!0,MaxRanges:200,WithCredentials:!1,SkipStreamerInfos:!1,OnlyLastCycle:!1,DarkMode:!1,PreferSavedPoints:!1,AxisTiltAngle:25,StripAxisLabels:!0,FuncAsCurve:!1},X={fName:"Modern",fOptLogx:0,fOptLogy:0,fOptLogz:0,fOptDate:0,fOptFile:0,fDateX:.01,fDateY:.01,fOptTitle:1,fCanvasColor:0,fPadColor:0,fPadBottomMargin:.1,fPadTopMargin:.1,fPadLeftMargin:.1,fPadRightMargin:.1,fPadGridX:!1,fPadGridY:!1,fPadTickX:0,fPadTickY:0,fPadBorderSize:2,fPadBorderMode:0,fCanvasBorderSize:2,fCanvasBorderMode:0,fStatColor:0,fStatStyle:1e3,fStatTextColor:1,fStatFontSize:0,fStatFont:42,fStatBorderSize:1,fStatFormat:"6.4g",fStatX:.98,fStatY:.935,fStatW:.2,fStatH:.16,fTitleAlign:23,fTitleColor:0,fTitleTextColor:1,fTitleBorderSize:0,fTitleFont:42,fTitleFontSize:.05,fTitleStyle:0,fTitleX:.5,fTitleY:.995,fTitleW:0,fTitleH:0,fFitFormat:"5.4g",fOptStat:1111,fOptFit:0,fNumberContours:20,fGridColor:0,fGridStyle:3,fGridWidth:1,fFrameFillColor:0,fFrameFillStyle:1001,fFrameLineColor:1,fFrameLineWidth:1,fFrameLineStyle:1,fFrameBorderSize:1,fFrameBorderMode:0,fEndErrorSize:2,fErrorX:.5,fHistMinimumZero:!1,fHistTopMargin:.05,fHistFillColor:0,fHistFillStyle:1001,fHistLineColor:602,fHistLineStyle:1,fHistLineWidth:1,fPaintTextFormat:"g",fTimeOffset:788918400,fLegendBorderSize:1,fLegendFont:42,fLegendTextSize:0,fLegendFillColor:0,fHatchesLineWidth:1,fHatchesSpacing:1,fCandleWhiskerRange:1,fCandleBoxRange:.5,fCandleScaled:!1,fViolinScaled:!0,fOrthoCamera:!1,fXAxisExpXOffset:0,fXAxisExpYOffset:0,fYAxisExpXOffset:0,fYAxisExpYOffset:0,fAxisMaxDigits:5,fStripDecimals:!0,fBarWidth:1};function B(){return ke?ot.nodejs_document:typeof document<"u"?document:"object"==typeof window?window.document:void 0}function $(un){return g.apply(this,arguments)}function g(){return(g=(0,Te.A)(function*(un){if(ke){let di,Rt;return Se.e(36).then(Se.t.bind(Se,9036,19)).then(ui=>(di=ui.tmpNameSync()+".js",Se.e(424).then(Se.t.bind(Se,9424,19)))).then(ui=>(Rt=ui,Rt.writeFileSync(di,un),import("file://"+di))).finally(()=>Rt.unlinkSync(di))}if(typeof document<"u"){const di=document.getElementsByTagName("script");for(let ui=0;ui=0?ia():Promise.resolve(!0)).then(()=>{const ui=document.createElement("script");return ui.setAttribute("type","text/javascript"),ui.innerHTML=un,document.head.appendChild(ui),Kr(!0,10)})}return!1})).apply(this,arguments)}function E(un){return _.apply(this,arguments)}function _(){return(_=(0,Te.A)(function*(un){if(!un)return!0;if(_r(un)&&un.indexOf(";")>=0&&(un=un.split(";")),!_r(un)){const Pn=un,Fn=()=>!Pn.length||E(Pn.shift()).then(Fn,Fn);return Fn()}0===un.indexOf("$$$")&&(0===(un=un.slice(3)).indexOf("style/")&&un.indexOf(".css")<0&&(un+=".css"),un=Ze+un);const di=un.indexOf(".css")>0;if(ke)return di?null:0===un.indexOf("http:")||0===un.indexOf("https:")?b(un,"text").then(Pn=>$(Pn)):0===un.indexOf("./")?Se.e(424).then(Se.t.bind(Se,9424,19)).then(Pn=>$(Pn.readFileSync(un))):import(un);const Rt=Pn=>{if(Pn===un)return!0;const Fn=Pn.indexOf(un);return Fn>0&&Fn+un.length===Pn.length&&"/"===Pn[Fn-1]};if(di){const Pn=document.getElementsByTagName("link");for(let Fn=0;Fn{ui.onload=()=>Pn(!0),ui.onerror=()=>{ui.remove(),Fn(Error(`Fail to load ${un}`))},document.head.appendChild(ui)})})).apply(this,arguments)}function v(un){return 1<=0)return di.clones[Fn]}else di={obj:[],clones:[],nofunc:Rt};const ui=ue(Object.prototype.toString.apply(un));if(1===ui){const Fn=[];di.obj.push(un),di.clones.push(Fn);for(let _i=0;_i{if(null==Fn)return;if(_r(Fn)){if(ui||Fn.length<6||0!==Fn.indexOf("$ref:"))return;const Qr=parseInt(Fn.slice(5));return!Number.isInteger(Qr)||Qr<0||Qr>=Rt.length?void 0:(ui=!1,Rt[Qr])}if("object"!=typeof Fn)return;if(ue(Object.prototype.toString.apply(Fn))>0){for(let Qr=0;Qr=Rt.length?void 0:(ui=!0,Rt[Qr])}if(!1!==ui&&gs>1&&"$arr"===Dr[0]&&"len"===Dr[1]){let Qr;switch(Fn.$arr){case"Int8":Qr=new Int8Array(Fn.len);break;case"Uint8":Qr=new Uint8Array(Fn.len);break;case"Int16":Qr=new Int16Array(Fn.len);break;case"Uint16":Qr=new Uint16Array(Fn.len);break;case"Int32":Qr=new Int32Array(Fn.len);break;case"Uint32":Qr=new Uint32Array(Fn.len);break;case"Float32":Qr=new Float32Array(Fn.len);break;case"Int64":case"Uint64":case"Float64":Qr=new Float64Array(Fn.len);break;default:Qr=new Array(Fn.len)}if(Qr.fill("Bool"!==Fn.$arr&&0),void 0!==Fn.b){const ro=F(Fn.b);if(!Qr.buffer)throw new Error("base64 coding supported only for native arrays with binary data");{const Zs=new DataView(Qr.buffer,Fn.o||0),Gi=Math.min(ro.length,Zs.byteLength);for(let Uo=0;Uo=0)){Rt.push(Fn),Fn._typename&&I(Fn);for(let Qr=0;Qr{if(Hi(Fn))return;if(null==Fn||!Vn(Fn))return Fn;if(ue(Object.prototype.toString.apply(Fn))>0){const ro=new Array(Fn.length);for(let Zs=0;Zs=0)return{$ref:_i};const Dr=Object.keys(Fn),gs=Dr.length,Qr={};if(3===gs&&"$pair"===Dr[0]&&"first"===Dr[1]&&"second"===Dr[2])return Qr.$pair=Fn.$pair,Qr.first=ui(Fn.first),Qr.second=ui(Fn.second),Qr;Rt.push(Fn);for(let ro=0;ro"u")return di;un=document.URL}di.url=un;const Rt=un.indexOf("?");if(Rt<0)return di;for(un=decodeURI(un.slice(Rt+1));un;){let ui=0,Pn=0,Fn=-1,_i=-1;for(;ui=0&&(Pn=(Pn+1)%2),_i<0&&(_i=ui);break;case'"':Pn<=0&&(Pn=(Pn-1)%2),_i<0&&(_i=ui);break;case"=":_i<0&&Fn<0&&(Fn=ui)}ui++}if(Fn<0&&_i<0)di.opts[un.slice(0,ui)]="";else if(Fn>0){let Dr=un.slice(Fn+1,ui);("'"===Dr[0]||'"'===Dr[0])&&Dr[0]===Dr[Dr.length-1]&&(Dr=Dr.slice(1,Dr.length-1)),di.opts[un.slice(0,Fn)]=Dr}if(ui>=un.length||"#"===un[ui])break;un=un.slice(ui+1)}return di}function he(un){if(Hi(un))return un;if(!_r(un))return null;const di=un.split(".");let Rt=globalThis;for(let ui=0;Rt&&ui{},Dr.error_callback=Hi(ui)?ui.bind(Dr):function(Zs){console.warn(Zs.message),this.http_callback(null)}.bind(Dr),di||(di="buf");let gs="GET",Qr=!0;const ro=di.indexOf(";sync");switch(ro>0&&(di=di.slice(0,ro),Qr=!1),di){case"head":gs="HEAD";break;case"posttext":gs="POST",di="text";break;case"postbuf":gs="POST",di="buf";break;case"post":case"multi":gs="POST"}return Dr.kind=di,me.WithCredentials&&(Dr.withCredentials=!0),me.HandleWrongHttpResponse&&"GET"===gs&&Hi(Dr.addEventListener)&&Dr.addEventListener("progress",function(Zs){Zs.lengthComputable&&this.expected_size&&Zs.loaded>this.expected_size&&(this.did_abort=!0,this.abort(),this.error_callback(Error(`Server sends more bytes ${Zs.loaded} than expected ${this.expected_size}. Abort I/O operation`),598))}.bind(Dr)),Dr.onreadystatechange=function(){if(!this.did_abort){if(2===this.readyState&&this.expected_size){const Zs=parseInt(this.getResponseHeader("Content-Length"));if(Number.isInteger(Zs)&&Zs>this.expected_size&&!me.HandleWrongHttpResponse)return this.did_abort=!0,this.abort(),this.error_callback(Error(`Server response size ${Zs} larger than expected ${this.expected_size}. Abort I/O operation`),599)}if(4===this.readyState){if(200!==this.status&&206!==this.status&&!Y.qt5&&(0!==this.status||0!==un.indexOf("file://")&&0!==un.indexOf("blob:")))return this.error_callback(Error(`Fail to load url ${un}`),this.status);if(this.nodejs_checkzip&&"gzip"===this.getResponseHeader("content-encoding"))return Se.e(578).then(Se.t.bind(Se,7578,19)).then(Zs=>{const Gi=Zs.unzipSync(Buffer.from(this.response)),Uo=JSON.parse(Gi);return this.http_callback(U(Uo))});switch(this.kind){case"xml":return this.http_callback(this.responseXML);case"text":return this.http_callback(this.responseText);case"object":return this.http_callback(U(this.responseText));case"multi":return this.http_callback(k(this.responseText));case"head":return this.http_callback(this)}if(void 0===this.responseType)return this.http_callback(this.responseText);if("bin"===this.kind&&"byteLength"in this.response){const Zs=new Uint8Array(this.response);let Gi="";for(let Uo=0;Uo0&&(Dr.nodejs_checkzip=!0,Dr.responseType="arraybuffer"),Dr}if(De()){if(!Pn)throw Error("Not allowed to create http requests in node.js without promise");return Se.e(149).then(Se.t.bind(Se,9149,19)).then(Dr=>Fn(new Dr.default))}const _i=Fn(new XMLHttpRequest);return Pn?Promise.resolve(_i):_i}function b(un,di,Rt){return P.apply(this,arguments)}function P(){return(P=(0,Te.A)(function*(un,di,Rt){return new Promise((ui,Pn)=>{V(un,di,ui,Pn,!0).then(Fn=>Fn.send(Rt||null))})})).apply(this,arguments)}const T="ROOT.",z="TObject",W="TNamed",fe="TString",we="TObjString",Me="TKey",je="TFile",Ge="TList",lt="THashList",bt="TMap",te="TObjArray",Je="TClonesArray",tt="TAttLine",Fe="TAttFill",Ne="TAttMarker",rt="TAttText",St="THStack",pt="TGraph",st="TMultiGraph",vt="TCutG",Yt="TGraph2DErrors",qt="TGraph2DAsymmErrors",Ot="TGraphPolar",Bn="TGraphPolargram",Mn="TGraphTime",bn="TPave",Dn="TPaveText",$n="TPaveStats",Cn="TPavesText",yn="TPaveLabel",Sn="TPaveClass",ii="TDiamond",ai="TLegend",zi="TLegendEntry",ti="TPaletteAxis",Lr="TImagePalette",ss="TText",Bs="TLatex",yo="TMathText",xt="TAnnotation",K="TColor",ge="TLine",ye="TBox",Pe="TPolyLine",At="TPolyLine3D",Ht="TPolyMarker3D",Nt="TAttPad",nn="TPad",hn="TCanvas",kn="TAttCanvas",cn="TGaxis",In="TAttAxis",ci="TAxis",Pi="TStyle",Si="TH1",bi="TH1I",Jn="TH1D",Wi="TH2",Ln="TH2I",Rs="TH2F",oe="TH3",D="TF1",O="TF2",ie="TF3",_e="TProfile",Oe="TProfile2D",$e="TProfile3D",et="TGeoVolume",it="TGeoNode",_t="TGeoNodeMatrix",sn="ROOT::Experimental::",tn=-1111,xn=v(9),wn="inspect";function Ut(un,di){const Rt=di||{};switch(un){case z:C(Rt,{fUniqueID:0,fBits:0});break;case W:C(Rt,{fUniqueID:0,fBits:0,fName:"",fTitle:""});break;case Ge:case lt:C(Rt,{name:un,arr:[],opt:[]});break;case In:C(Rt,{fNdivisions:510,fAxisColor:1,fLabelColor:1,fLabelFont:42,fLabelOffset:.005,fLabelSize:.035,fTickLength:.03,fTitleOffset:1,fTitleSize:.035,fTitleColor:1,fTitleFont:42});break;case ci:Ut(W,Rt),Ut(In,Rt),C(Rt,{fNbins:1,fXmin:0,fXmax:1,fXbins:[],fFirst:0,fLast:0,fBits2:0,fTimeDisplay:!1,fTimeFormat:"",fLabels:null,fModLabs:null});break;case tt:C(Rt,{fLineColor:1,fLineStyle:1,fLineWidth:1});break;case Fe:C(Rt,{fFillColor:0,fFillStyle:0});break;case Ne:C(Rt,{fMarkerColor:1,fMarkerStyle:1,fMarkerSize:1});break;case ge:Ut(z,Rt),Ut(tt,Rt),C(Rt,{fX1:0,fX2:1,fY1:0,fY2:1});break;case ye:Ut(z,Rt),Ut(tt,Rt),Ut(Fe,Rt),C(Rt,{fX1:0,fX2:1,fY1:0,fY2:1});break;case bn:Ut(ye,Rt),C(Rt,{fX1NDC:0,fY1NDC:0,fX2NDC:1,fY2NDC:1,fBorderSize:0,fInit:1,fShadowColor:1,fCornerRadius:0,fOption:"brNDC",fName:""});break;case rt:C(Rt,{fTextAngle:0,fTextSize:0,fTextAlign:22,fTextColor:1,fTextFont:42});break;case Dn:Ut(bn,Rt),Ut(rt,Rt),C(Rt,{fLabel:"",fLongest:27,fMargin:.05,fLines:Ut(Ge)});break;case $n:Ut(Dn,Rt),C(Rt,{fFillColor:X.fStatColor,fFillStyle:X.fStatStyle,fTextFont:X.fStatFont,fTextSize:X.fStatFontSize,fTextColor:X.fStatTextColor,fBorderSize:X.fStatBorderSize,fOptFit:0,fOptStat:0,fFitFormat:"",fStatFormat:"",fParent:null});break;case ai:Ut(bn,Rt),Ut(rt,Rt),C(Rt,{fColumnSeparation:0,fEntrySeparation:.1,fMargin:.25,fNColumns:1,fPrimitives:Ut(Ge),fName:bn,fBorderSize:X.fLegendBorderSize,fTextFont:X.fLegendFont,fTextSize:X.fLegendTextSize,fFillColor:X.fLegendFillColor});break;case ti:Ut(bn,Rt),C(Rt,{fAxis:Ut(cn),fH:null,fName:bn});break;case zi:Ut(z,Rt),Ut(rt,Rt),Ut(tt,Rt),Ut(Fe,Rt),Ut(Ne,Rt),C(Rt,{fLabel:"",fObject:null,fOption:"",fTextAlign:0,fTextColor:0,fTextFont:0});break;case ss:Ut(W,Rt),Ut(rt,Rt),C(Rt,{fLimitFactorSize:3,fOriginSize:.04});break;case Bs:Ut(ss,Rt),Ut(tt,Rt),C(Rt,{fX:0,fY:0});break;case we:Ut(z,Rt),C(Rt,{fString:""});break;case Si:Ut(W,Rt),Ut(tt,Rt),Ut(Fe,Rt),Ut(Ne,Rt),C(Rt,{fBits:8,fNcells:0,fXaxis:Ut(ci),fYaxis:Ut(ci),fZaxis:Ut(ci),fFillColor:X.fHistFillColor,fFillStyle:X.fHistFillStyle,fLineColor:X.fHistLineColor,fLineStyle:X.fHistLineStyle,fLineWidth:X.fHistLineWidth,fBarOffset:0,fBarWidth:1e3,fEntries:0,fTsumw:0,fTsumw2:0,fTsumwx:0,fTsumwx2:0,fMaximum:tn,fMinimum:tn,fNormFactor:0,fContour:[],fSumw2:[],fOption:"",fFunctions:Ut(Ge),fBufferSize:0,fBuffer:[],fBinStatErrOpt:0,fStatOverflows:2});break;case bi:case Jn:case"TH1L64":case"TH1F":case"TH1S":case"TH1C":Ut(Si,Rt),Rt.fArray=[];break;case Wi:Ut(Si,Rt),C(Rt,{fScalefactor:1,fTsumwy:0,fTsumwy2:0,fTsumwxy:0});break;case Ln:case"TH2L64":case Rs:case"TH2D":case"TH2S":case"TH2C":Ut(Wi,Rt),Rt.fArray=[];break;case oe:Ut(Si,Rt),C(Rt,{fTsumwy:0,fTsumwy2:0,fTsumwz:0,fTsumwz2:0,fTsumwxy:0,fTsumwxz:0,fTsumwyz:0});break;case"TH3I":case"TH3L64":case"TH3F":case"TH3D":case"TH3S":case"TH3C":Ut(oe,Rt),Rt.fArray=[];break;case St:Ut(W,Rt),C(Rt,{fHists:Ut(Ge),fHistogram:null,fMaximum:tn,fMinimum:tn});break;case pt:Ut(W,Rt),Ut(tt,Rt),Ut(Fe,Rt),Ut(Ne,Rt),C(Rt,{fFunctions:Ut(Ge),fHistogram:null,fMaxSize:0,fMaximum:tn,fMinimum:tn,fNpoints:0,fX:[],fY:[]});break;case"TGraphAsymmErrors":Ut(pt,Rt),C(Rt,{fEXlow:[],fEXhigh:[],fEYlow:[],fEYhigh:[]});break;case st:Ut(W,Rt),C(Rt,{fFunctions:Ut(Ge),fGraphs:Ut(Ge),fHistogram:null,fMaximum:tn,fMinimum:tn});break;case Bn:Ut(W,Rt),Ut(rt,Rt),Ut(tt,Rt),C(Rt,{fRadian:!0,fDegree:!1,fGrad:!1,fPolarLabelColor:1,fRadialLabelColor:1,fAxisAngle:0,fPolarOffset:.04,fPolarTextSize:.04,fRadialOffset:.025,fRadialTextSize:.035,fRwrmin:0,fRwrmax:1,fRwtmin:0,fRwtmax:2*Math.PI,fTickpolarSize:.02,fPolarLabelFont:62,fRadialLabelFont:62,fCutRadial:0,fNdivRad:508,fNdivPol:508});break;case Pe:Ut(z,Rt),Ut(tt,Rt),Ut(Fe,Rt),C(Rt,{fLastPoint:-1,fN:0,fOption:"",fX:null,fY:null});break;case cn:Ut(ge,Rt),Ut(rt,Rt),C(Rt,{fChopt:"",fFunctionName:"",fGridLength:0,fLabelColor:1,fLabelFont:42,fLabelOffset:.005,fLabelSize:.035,fName:"",fNdiv:12,fTickSize:.02,fTimeFormat:"",fTitle:"",fTitleOffset:1,fTitleSize:.035,fWmax:100,fWmin:0});break;case Nt:C(Rt,{fLeftMargin:X.fPadLeftMargin,fRightMargin:X.fPadRightMargin,fBottomMargin:X.fPadBottomMargin,fTopMargin:X.fPadTopMargin,fXfile:2,fYfile:2,fAfile:1,fXstat:.99,fYstat:.99,fAstat:2,fFrameFillColor:X.fFrameFillColor,fFrameFillStyle:X.fFrameFillStyle,fFrameLineColor:X.fFrameLineColor,fFrameLineWidth:X.fFrameLineWidth,fFrameLineStyle:X.fFrameLineStyle,fFrameBorderSize:X.fFrameBorderSize,fFrameBorderMode:X.fFrameBorderMode});break;case nn:Ut(z,Rt),Ut(tt,Rt),Ut(Fe,Rt),Ut(Nt,Rt),C(Rt,{fFillColor:X.fPadColor,fFillStyle:1001,fX1:0,fY1:0,fX2:1,fY2:1,fXtoAbsPixelk:1,fXtoPixelk:1,fXtoPixel:1,fYtoAbsPixelk:1,fYtoPixelk:1,fYtoPixel:1,fUtoAbsPixelk:1,fUtoPixelk:1,fUtoPixel:1,fVtoAbsPixelk:1,fVtoPixelk:1,fVtoPixel:1,fAbsPixeltoXk:1,fPixeltoXk:1,fPixeltoX:1,fAbsPixeltoYk:1,fPixeltoYk:1,fPixeltoY:1,fXlowNDC:0,fYlowNDC:0,fXUpNDC:0,fYUpNDC:0,fWNDC:1,fHNDC:1,fAbsXlowNDC:0,fAbsYlowNDC:0,fAbsWNDC:1,fAbsHNDC:1,fUxmin:0,fUymin:0,fUxmax:0,fUymax:0,fTheta:30,fPhi:30,fAspectRatio:0,fNumber:0,fLogx:X.fOptLogx,fLogy:X.fOptLogy,fLogz:X.fOptLogz,fTickx:X.fPadTickX,fTicky:X.fPadTickY,fPadPaint:0,fCrosshair:0,fCrosshairPos:0,fBorderSize:X.fPadBorderSize,fBorderMode:X.fPadBorderMode,fModified:!1,fGridx:X.fPadGridX,fGridy:X.fPadGridY,fAbsCoord:!1,fEditable:!0,fFixedAspectRatio:!1,fPrimitives:Ut(Ge),fExecs:null,fName:"pad",fTitle:"canvas"});break;case kn:C(Rt,{fXBetween:2,fYBetween:2,fTitleFromTop:1.2,fXdate:.2,fYdate:.3,fAdate:1});break;case hn:Ut(nn,Rt),C(Rt,{fFillColor:X.fCanvasColor,fFillStyle:1001,fNumPaletteColor:0,fNextPaletteColor:0,fDISPLAY:"$DISPLAY",fDoubleBuffer:0,fRetained:!0,fXsizeUser:0,fYsizeUser:0,fXsizeReal:20,fYsizeReal:10,fWindowTopX:0,fWindowTopY:0,fWindowWidth:0,fWindowHeight:0,fBorderSize:X.fCanvasBorderSize,fBorderMode:X.fCanvasBorderMode,fCw:500,fCh:300,fCatt:Ut(kn),kMoveOpaque:!0,kResizeOpaque:!0,fHighLightColor:5,fBatch:!0,kShowEventStatus:!1,kAutoExec:!0,kMenuBar:!0});break;case et:Ut(W,Rt),Ut(tt,Rt),Ut(Fe,Rt),C(Rt,{fGeoAtt:0,fFinder:null,fMedium:null,fNodes:null,fNtotal:0,fNumber:0,fRefCount:0,fShape:null,fVoxels:null});break;case it:Ut(W,Rt),C(Rt,{fGeoAtt:0,fMother:null,fNovlp:0,fNumber:0,fOverlaps:null,fVolume:null});break;case _t:Ut(it,Rt),C(Rt,{fMatrix:null});break;case"TGeoTrack":Ut(z,Rt),Ut(tt,Rt),Ut(Ne,Rt),C(Rt,{fGeoAtt:0,fNpoints:0,fPoints:[]});break;case At:Ut(z,Rt),Ut(tt,Rt),C(Rt,{fLastPoint:-1,fN:0,fOption:"",fP:[]});break;case Ht:Ut(z,Rt),Ut(Ne,Rt),C(Rt,{fLastPoint:-1,fN:0,fName:"",fOption:"",fP:[]})}return Rt._typename=un,I(Rt,un),Rt}function qe(un,di,Rt,ui){const Pn=Ut(un);if(!Pn.fXaxis||!Pn.fYaxis||!Pn.fZaxis)return null;switch(Pn.fName="hist",Pn.fTitle="title",di&&C(Pn.fXaxis,{fNbins:di,fXmin:0,fXmax:di}),Rt&&C(Pn.fYaxis,{fNbins:Rt,fXmin:0,fXmax:Rt}),ui&&C(Pn.fZaxis,{fNbins:ui,fXmin:0,fXmax:ui}),parseInt(un[2])){case 1:di&&(Pn.fNcells=di+2);break;case 2:di&&Rt&&(Pn.fNcells=(di+2)*(Rt+2));break;case 3:di&&Rt&&ui&&(Pn.fNcells=(di+2)*(Rt+2)*(ui+2))}if(Pn.fNcells>0){switch(un[3]){case"C":Pn.fArray=new Int8Array(Pn.fNcells);break;case"S":Pn.fArray=new Int16Array(Pn.fNcells);break;case"I":Pn.fArray=new Int32Array(Pn.fNcells);break;case"F":Pn.fArray=new Float32Array(Pn.fNcells);break;case"L":case"D":Pn.fArray=new Float64Array(Pn.fNcells);break;default:Pn.fArray=new Array(Pn.fNcells)}Pn.fArray.fill(0)}return Pn}function nt(un,di){if(un)if(di.indexOf(";")<0)un.fTitle=di;else{const Rt=di.split(";");un.fTitle=Rt[0],Rt.length>1&&(un.fXaxis.fTitle=Rt[1]),Rt.length>2&&(un.fYaxis.fTitle=Rt[2]),Rt.length>3&&(un.fZaxis.fTitle=Rt[3])}}function at(un,di){const Rt=Ut(Pe);return un&&(Rt.fN=un,di?(Rt.fX=new Int32Array(un),Rt.fY=new Int32Array(un)):(Rt.fX=new Float32Array(un),Rt.fY=new Float32Array(un))),Rt}function ht(un,di,Rt){const ui=C(Ut(pt),{fBits:1032,fName:"graph",fTitle:"title"});if(un>0){ui.fMaxSize=ui.fNpoints=un;const Pn=Vn(di)&&di.length===un,Fn=Vn(Rt)&&Rt.length===un;for(let _i=0;_i"u"&&(Rt.TestBit=function(Pn){return!!(this.fBits&Pn)},Rt.InvertBit=function(Pn){this.fBits=this.fBits^16777215&Pn}),ui||((un===Ge||un===lt)&&(Rt.Clear=function(){this.arr=[],this.opt=[]},Rt.Add=function(Pn,Fn){this.arr.push(Pn),this.opt.push(_r(Fn)?Fn:"")},Rt.AddFirst=function(Pn,Fn){this.arr.unshift(Pn),this.opt.unshift(_r(Fn)?Fn:"")},Rt.RemoveAt=function(Pn){this.arr.splice(Pn,1),this.opt.splice(Pn,1)}),(un===Dn||un===$n)&&(Rt.AddText=function(Pn){const Fn=Ut(Bs);Fn.fTitle=Pn,Fn.fTextAlign=this.fTextAlign,this.fLines.Add(Fn)},Rt.Clear=function(){this.fLines.Clear()}),(0===un.indexOf(D)||un===O)&&(Rt.addFormula=function(Pn){Pn&&(void 0===this.formulas&&(this.formulas=[]),this.formulas.push(Pn))},Rt.GetParName=function(Pn){if(this.fParams?.fParNames)return this.fParams.fParNames[Pn];if(this.fFormula?.fParams)for(let Fn=0,_i=this.fFormula.fParams;Fn<_i.length;++Fn)if(_i[Fn].second===Pn)return _i[Fn].first;return this.fNames&&this.fNames[Pn]?this.fNames[Pn]:`p${Pn}`},Rt.GetParValue=function(Pn){return this.fParams?.fParameters?this.fParams.fParameters[Pn]:this.fFormula?.fClingParameters?this.fFormula.fClingParameters[Pn]:this.fParams?this.fParams[Pn]:void 0},Rt.GetParError=function(Pn){return this.fParErrors?this.fParErrors[Pn]:void 0},Rt.GetNumPars=function(){return this.fNpar}),(0===un.indexOf(pt)||un===vt)&&un!==Bn&&un!==Mn&&(Rt.IsInside=function(Pn,Fn){const _i=this.fX,Dr=this.fY;let gs=0,Qr=this.fNpoints-1,ro=!1;for(;gs=Fn||Dr[Qr]=Fn)&&_i[gs]+(Fn-Dr[gs])/(Dr[Qr]-Dr[gs])*(_i[Qr]-_i[gs])=this.fNcells&&(Pn=this.fNcells-1),Pn<0&&(Pn=0),Pn=0&&PnGi))for(let ra=0;ra$h)continue;ro++;const rc=Ut(nn);rc.fName=rc.fTitle=`${this.fName}_${ro}`,rc.fNumber=ro,this._typename!==hn?(rc.fAbsWNDC=($h-ic)*this.fAbsWNDC,rc.fAbsHNDC=(Gi-Uo)*this.fAbsHNDC,rc.fAbsXlowNDC=this.fAbsXlowNDC+ic*this.fAbsWNDC,rc.fAbsYlowNDC=this.fAbsYlowNDC+Uo*this.fAbsWNDC):(rc.fAbsWNDC=$h-ic,rc.fAbsHNDC=Gi-Uo,rc.fAbsXlowNDC=ic,rc.fAbsYlowNDC=Uo),this.fPrimitives.Add(rc)}}return Pn*Fn},Rt.GetPad=function(Pn){return this.fPrimitives.arr.find(Fn=>Fn._typename===nn&&Fn.fNumber===Pn)}),0===un.indexOf(_e)&&(un===$e?(Rt.getBin=function(Pn,Fn,_i){return Pn+(this.fXaxis.fNbins+2)*(Fn+(this.fYaxis.fNbins+2)*_i)},Rt.getBinContent=function(Pn,Fn,_i){const Dr=this.getBin(Pn,Fn,_i);return Dr<0||Dr>=this.fNcells||this.fBinEntries[Dr]<1e-300?0:this.fArray?this.fArray[Dr]/this.fBinEntries[Dr]:0},Rt.getBinEntries=function(Pn,Fn,_i){const Dr=this.getBin(Pn,Fn,_i);return Dr<0||Dr>=this.fNcells?0:this.fBinEntries[Dr]}):un===Oe?(Rt.getBin=function(Pn,Fn){return Pn+(this.fXaxis.fNbins+2)*Fn},Rt.getBinContent=function(Pn,Fn){const _i=this.getBin(Pn,Fn);return _i<0||_i>=this.fNcells||this.fBinEntries[_i]<1e-300||!this.fArray?0:this.fArray[_i]/this.fBinEntries[_i]},Rt.getBinEntries=function(Pn,Fn){const _i=this.getBin(Pn,Fn);return _i<0||_i>=this.fNcells?0:this.fBinEntries[_i]}):(Rt.getBin=function(Pn){return Pn},Rt.getBinContent=function(Pn){return Pn<0||Pn>=this.fNcells||this.fBinEntries[Pn]<1e-300||!this.fArray?0:this.fArray[Pn]/this.fBinEntries[Pn]}),Rt.getBinEffectiveEntries=function(Pn){if(Pn<0||Pn>=this.fNcells)return 0;const Fn=this.fBinEntries[Pn];if(!this.fBinSumw2||this.fBinSumw2.length!==this.fNcells)return Fn;const _i=this.fBinSumw2[Pn];return _i>0?Fn*Fn/_i:0},Rt.getBinError=function(Pn){if(Pn<0||Pn>=this.fNcells)return 0;const Fn=this.fArray[Pn],_i=this.fBinEntries[Pn],Dr=this.fSumw2[Pn],gs=this.getBinEffectiveEntries(Pn);if(_i<1e-300)return 0;if(3===this.fErrorMode)return 1/Math.sqrt(_i);const Zs=Math.sqrt(Math.abs(Dr/_i-(Fn/_i)**2));return 2===this.fErrorMode?0!==Zs?Zs/Math.sqrt(gs):1/Math.sqrt(12*gs):1===this.fErrorMode?Zs:Zs/Math.sqrt(gs)}),un===ci&&(Rt.GetBinLowEdge=function(Pn){return this.fNbins<=0?0:this.fXbins.length>0&&Pn>0&&Pn<=this.fNbins?this.fXbins[Pn-1]:this.fXmin+(Pn-1)*(this.fXmax-this.fXmin)/this.fNbins},Rt.GetBinCenter=function(Pn){return this.fNbins<=0?0:this.fXbins.length>0&&Pn>0&&Pn=0?Math.sqrt(this.M2()):-Math.sqrt(-this.M2())},Rt.Perp2=Rt.Pt2=function(){return this.fX**2+this.fY**2},Rt.Pt=Rt.pt=function(){return Math.sqrt(this.P2())},Rt.Phi=Rt.phi=function(){return Math.atan2(this.fY,this.fX)},Rt.Eta=Rt.eta=function(){return Math.atanh(this.Pz/this.P())}),en[un]=Rt),Rt}function fn(un,di){en[un]=di}function Hn(un,di){if(Vn(un)){if(un.$kind===Ge||un.$kind===te)return!0;di||(di=un._typename)}return di===Ge||di===lt||di===bt||di===te||di===Je}function Vn(un){return un&&"object"==typeof un}function Hi(un){return"function"==typeof un}function _r(un){return"string"==typeof un}function Li(un){return Vn(un)&&Hi(un.then)}function Kr(un,di){return new Promise(Rt=>{setTimeout(()=>{const ui=Hi(un)?un():un;Rt(ui)},di)})}function os(un){return Li(un)?un:Promise.resolve(un)}function ia(){return Vs.apply(this,arguments)}function Vs(){return(Vs=(0,Te.A)(function*(){return(globalThis.JSROOT?Promise.resolve(!0):E(Ze+"scripts/JSRoot.core.js")).then(()=>{if(globalThis.JSROOT?._complete_loading)return globalThis.JSROOT._complete_loading()}).then(()=>globalThis.JSROOT)})).apply(this,arguments)}X.fXaxis=Ut(In),X.fYaxis=Ut(In),X.fZaxis=Ut(In)},8362:(Yr,mt,Se)=>{"use strict";function x(y,H,Ae){y.prototype=H.prototype=Ae,Ae.constructor=y}function L(y,H){var Ae=Object.create(y.prototype);for(var be in H)Ae[be]=H[be];return Ae}function ve(){}Se.d(mt,{$E:()=>yA,DC:()=>$g,D_:()=>xh,F6:()=>sn,JL:()=>bv,JQ:()=>hn,Lt:()=>Yh,Qh:()=>p,Wn:()=>ko,ZE:()=>af,aL:()=>Yg,aX:()=>EA,m4:()=>Dl,w7:()=>Bh,yW:()=>g});var ot=1/.7,Ye="\\s*([+-]?\\d+)\\s*",Ze="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",Re="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",He=/^#([0-9a-f]{3,8})$/,Ve=new RegExp(`^rgb\\(${Ye},${Ye},${Ye}\\)$`),De=new RegExp(`^rgb\\(${Re},${Re},${Re}\\)$`),F=new RegExp(`^rgba\\(${Ye},${Ye},${Ye},${Ze}\\)$`),J=new RegExp(`^rgba\\(${Re},${Re},${Re},${Ze}\\)$`),Y=new RegExp(`^hsl\\(${Ze},${Re},${Re}\\)$`),ue=new RegExp(`^hsla\\(${Ze},${Re},${Re},${Ze}\\)$`),Q={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function me(){return this.rgb().formatHex()}function $(){return this.rgb().formatRgb()}function g(y){var H,Ae;return y=(y+"").trim().toLowerCase(),(H=He.exec(y))?(Ae=H[1].length,H=parseInt(H[1],16),6===Ae?E(H):3===Ae?new C(H>>8&15|H>>4&240,H>>4&15|240&H,(15&H)<<4|15&H,1):8===Ae?_(H>>24&255,H>>16&255,H>>8&255,(255&H)/255):4===Ae?_(H>>12&15|H>>8&240,H>>8&15|H>>4&240,H>>4&15|240&H,((15&H)<<4|15&H)/255):null):(H=Ve.exec(y))?new C(H[1],H[2],H[3],1):(H=De.exec(y))?new C(255*H[1]/100,255*H[2]/100,255*H[3]/100,1):(H=F.exec(y))?_(H[1],H[2],H[3],H[4]):(H=J.exec(y))?_(255*H[1]/100,255*H[2]/100,255*H[3]/100,H[4]):(H=Y.exec(y))?V(H[1],H[2]/100,H[3]/100,1):(H=ue.exec(y))?V(H[1],H[2]/100,H[3]/100,H[4]):Q.hasOwnProperty(y)?E(Q[y]):"transparent"===y?new C(NaN,NaN,NaN,0):null}function E(y){return new C(y>>16&255,y>>8&255,255&y,1)}function _(y,H,Ae,be){return be<=0&&(y=H=Ae=NaN),new C(y,H,Ae,be)}function v(y){return y instanceof ve||(y=g(y)),y?new C((y=y.rgb()).r,y.g,y.b,y.opacity):new C}function p(y,H,Ae,be){return 1===arguments.length?v(y):new C(y,H,Ae,be??1)}function C(y,H,Ae,be){this.r=+y,this.g=+H,this.b=+Ae,this.opacity=+be}function I(){return`#${he(this.r)}${he(this.g)}${he(this.b)}`}function k(){const y=Z(this.opacity);return`${1===y?"rgb(":"rgba("}${ee(this.r)}, ${ee(this.g)}, ${ee(this.b)}${1===y?")":`, ${y})`}`}function Z(y){return isNaN(y)?1:Math.max(0,Math.min(1,y))}function ee(y){return Math.max(0,Math.min(255,Math.round(y)||0))}function he(y){return((y=ee(y))<16?"0":"")+y.toString(16)}function V(y,H,Ae,be){return be<=0?y=H=Ae=NaN:Ae<=0||Ae>=1?y=H=NaN:H<=0&&(y=NaN),new T(y,H,Ae,be)}function b(y){if(y instanceof T)return new T(y.h,y.s,y.l,y.opacity);if(y instanceof ve||(y=g(y)),!y)return new T;if(y instanceof T)return y;var H=(y=y.rgb()).r/255,Ae=y.g/255,be=y.b/255,Xe=Math.min(H,Ae,be),ut=Math.max(H,Ae,be),gt=NaN,Tt=ut-Xe,Vt=(ut+Xe)/2;return Tt?(gt=H===ut?(Ae-be)/Tt+6*(Ae0&&Vt<1?0:gt,new T(gt,Tt,Vt,y.opacity)}function T(y,H,Ae,be){this.h=+y,this.s=+H,this.l=+Ae,this.opacity=+be}function z(y){return(y=(y||0)%360)<0?y+360:y}function W(y){return Math.max(0,Math.min(1,y||0))}function fe(y,H,Ae){return 255*(y<60?H+(Ae-H)*y/60:y<180?Ae:y<240?H+(Ae-H)*(240-y)/60:H)}x(ve,g,{copy(y){return Object.assign(new this.constructor,this,y)},displayable(){return this.rgb().displayable()},hex:me,formatHex:me,formatHex8:function X(){return this.rgb().formatHex8()},formatHsl:function B(){return b(this).formatHsl()},formatRgb:$,toString:$}),x(C,p,L(ve,{brighter(y){return y=null==y?ot:Math.pow(ot,y),new C(this.r*y,this.g*y,this.b*y,this.opacity)},darker(y){return y=null==y?.7:Math.pow(.7,y),new C(this.r*y,this.g*y,this.b*y,this.opacity)},rgb(){return this},clamp(){return new C(ee(this.r),ee(this.g),ee(this.b),Z(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:I,formatHex:I,formatHex8:function U(){return`#${he(this.r)}${he(this.g)}${he(this.b)}${he(255*(isNaN(this.opacity)?1:this.opacity))}`},formatRgb:k,toString:k})),x(T,function P(y,H,Ae,be){return 1===arguments.length?b(y):new T(y,H,Ae,be??1)},L(ve,{brighter(y){return y=null==y?ot:Math.pow(ot,y),new T(this.h,this.s,this.l*y,this.opacity)},darker(y){return y=null==y?.7:Math.pow(.7,y),new T(this.h,this.s,this.l*y,this.opacity)},rgb(){var y=this.h%360+360*(this.h<0),H=isNaN(y)||isNaN(this.s)?0:this.s,Ae=this.l,be=Ae+(Ae<.5?Ae:1-Ae)*H,Xe=2*Ae-be;return new C(fe(y>=240?y-240:y+120,Xe,be),fe(y,Xe,be),fe(y<120?y+240:y-120,Xe,be),this.opacity)},clamp(){return new T(z(this.h),W(this.s),W(this.l),Z(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const y=Z(this.opacity);return`${1===y?"hsl(":"hsla("}${z(this.h)}, ${100*W(this.s)}%, ${100*W(this.l)}%${1===y?")":`, ${y})`}`}}));const we=Math.PI/180,Me=180/Math.PI,Ge=.96422,lt=1,bt=.82521,te=4/29,Je=6/29,tt=3*Je*Je,Fe=Je*Je*Je;function Ne(y){if(y instanceof pt)return new pt(y.l,y.a,y.b,y.opacity);if(y instanceof bn)return Dn(y);y instanceof C||(y=v(y));var ut,gt,H=qt(y.r),Ae=qt(y.g),be=qt(y.b),Xe=st((.2225045*H+.7168786*Ae+.0606169*be)/lt);return H===Ae&&Ae===be?ut=gt=Xe:(ut=st((.4360747*H+.3850649*Ae+.1430804*be)/Ge),gt=st((.0139322*H+.0971045*Ae+.7141733*be)/bt)),new pt(116*Xe-16,500*(ut-Xe),200*(Xe-gt),y.opacity)}function pt(y,H,Ae,be){this.l=+y,this.a=+H,this.b=+Ae,this.opacity=+be}function st(y){return y>Fe?Math.pow(y,1/3):y/tt+te}function vt(y){return y>Je?y*y*y:tt*(y-te)}function Yt(y){return 255*(y<=.0031308?12.92*y:1.055*Math.pow(y,1/2.4)-.055)}function qt(y){return(y/=255)<=.04045?y/12.92:Math.pow((y+.055)/1.055,2.4)}function bn(y,H,Ae,be){this.h=+y,this.c=+H,this.l=+Ae,this.opacity=+be}function Dn(y){if(isNaN(y.h))return new pt(y.l,0,0,y.opacity);var H=y.h*we;return new pt(y.l,Math.cos(H)*y.c,Math.sin(H)*y.c,y.opacity)}x(pt,function St(y,H,Ae,be){return 1===arguments.length?Ne(y):new pt(y,H,Ae,be??1)},L(ve,{brighter(y){return new pt(this.l+18*(y??1),this.a,this.b,this.opacity)},darker(y){return new pt(this.l-18*(y??1),this.a,this.b,this.opacity)},rgb(){var y=(this.l+16)/116,H=isNaN(this.a)?y:y+this.a/500,Ae=isNaN(this.b)?y:y-this.b/200;return new C(Yt(3.1338561*(H=Ge*vt(H))-1.6168667*(y=lt*vt(y))-.4906146*(Ae=bt*vt(Ae))),Yt(-.9787684*H+1.9161415*y+.033454*Ae),Yt(.0719453*H-.2289914*y+1.4052427*Ae),this.opacity)}})),x(bn,function Mn(y,H,Ae,be){return 1===arguments.length?function Ot(y){if(y instanceof bn)return new bn(y.h,y.c,y.l,y.opacity);if(y instanceof pt||(y=Ne(y)),0===y.a&&0===y.b)return new bn(NaN,0y+be)}function hn(){return function In(y,H){var Ae=0,be=null,Xe=null,ut=null;function gt(Tt){var kr,Vt=Tt.length,Wt=new Array(Vt),pn=Nt(0,Vt),Gn=new Array(Vt*Vt),qn=new Array(Vt),Ei=0;Tt=Float64Array.from({length:Vt*Vt},H?(pr,wr)=>Tt[wr%Vt][wr/Vt|0]:(pr,wr)=>Tt[wr/Vt|0][wr%Vt]);for(let pr=0;prbe(Wt[wr],Wt[Ts]));for(const wr of pn){const Ts=pr;if(y){const jo=Nt(1+~Vt,Vt).filter(qr=>qr<0?Tt[~qr*Vt+wr]:Tt[wr*Vt+qr]);Xe&&jo.sort((qr,nr)=>Xe(qr<0?-Tt[~qr*Vt+wr]:Tt[wr*Vt+qr],nr<0?-Tt[~nr*Vt+wr]:Tt[wr*Vt+nr]));for(const qr of jo)qr<0?(Gn[~qr*Vt+wr]||(Gn[~qr*Vt+wr]={source:null,target:null})).target={index:wr,startAngle:pr,endAngle:pr+=Tt[~qr*Vt+wr]*Ei,value:Tt[~qr*Vt+wr]}:(Gn[wr*Vt+qr]||(Gn[wr*Vt+qr]={source:null,target:null})).source={index:wr,startAngle:pr,endAngle:pr+=Tt[wr*Vt+qr]*Ei,value:Tt[wr*Vt+qr]};qn[wr]={index:wr,startAngle:Ts,endAngle:pr,value:Wt[wr]}}else{const jo=Nt(0,Vt).filter(qr=>Tt[wr*Vt+qr]||Tt[qr*Vt+wr]);Xe&&jo.sort((qr,nr)=>Xe(Tt[wr*Vt+qr],Tt[wr*Vt+nr]));for(const qr of jo){let nr;if(wr=0))throw new Error(`invalid digits: ${y}`);if(H>15)return Jn;const Ae=10**H;return function(be){this._+=be[0];for(let Xe=1,ut=be.length;XeSi)if(Math.abs(Gn*Vt-Wt*pn)>Si&&ut){let Ei=be-gt,kr=Xe-Tt,pr=Vt*Vt+Wt*Wt,wr=Ei*Ei+kr*kr,Ts=Math.sqrt(pr),jo=Math.sqrt(qn),qr=ut*Math.tan((ci-Math.acos((pr+qn-wr)/(2*Ts*jo)))/2),nr=qr/jo,Xs=qr/Ts;Math.abs(nr-1)>Si&&this._append`L${H+nr*pn},${Ae+nr*Gn}`,this._append`A${ut},${ut},0,0,${+(Gn*Ei>pn*kr)},${this._x1=H+Xs*Vt},${this._y1=Ae+Xs*Wt}`}else this._append`L${this._x1=H},${this._y1=Ae}`}arc(H,Ae,be,Xe,ut,gt){if(H=+H,Ae=+Ae,gt=!!gt,(be=+be)<0)throw new Error(`negative radius: ${be}`);let Tt=be*Math.cos(Xe),Vt=be*Math.sin(Xe),Wt=H+Tt,pn=Ae+Vt,Gn=1^gt,qn=gt?Xe-ut:ut-Xe;null===this._x1?this._append`M${Wt},${pn}`:(Math.abs(this._x1-Wt)>Si||Math.abs(this._y1-pn)>Si)&&this._append`L${Wt},${pn}`,be&&(qn<0&&(qn=qn%Pi+Pi),qn>bi?this._append`A${be},${be},0,1,${Gn},${H-Tt},${Ae-Vt}A${be},${be},0,1,${Gn},${this._x1=Wt},${this._y1=pn}`:qn>Si&&this._append`A${be},${be},0,${+(qn>=ci)},${Gn},${this._x1=H+be*Math.cos(ut)},${this._y1=Ae+be*Math.sin(ut)}`)}rect(H,Ae,be,Xe){this._append`M${this._x0=this._x1=+H},${this._y0=this._y1=+Ae}h${be=+be}v${+Xe}h${-be}Z`}toString(){return this._}}function Rs(){return new Ln}Rs.prototype=Ln.prototype;var oe=Array.prototype.slice;function D(y){return function(){return y}}function O(y){return y.source}function ie(y){return y.target}function _e(y){return y.radius}function Oe(y){return y.startAngle}function $e(y){return y.endAngle}function et(){return 0}function sn(){return function _t(y){var H=O,Ae=ie,be=_e,Xe=_e,ut=Oe,gt=$e,Tt=et,Vt=null;function Wt(){var pn,Gn=H.apply(this,arguments),qn=Ae.apply(this,arguments),Ei=Tt.apply(this,arguments)/2,kr=oe.call(arguments),pr=+be.apply(this,(kr[0]=Gn,kr)),wr=ut.apply(this,kr)-ye,Ts=gt.apply(this,kr)-ye,jo=+Xe.apply(this,(kr[0]=qn,kr)),qr=ut.apply(this,kr)-ye,nr=gt.apply(this,kr)-ye;if(Vt||(Vt=pn=Rs()),Ei>Ht&&(yo(Ts-wr)>2*Ei+Ht?Ts>wr?(wr+=Ei,Ts-=Ei):(wr-=Ei,Ts+=Ei):wr=Ts=(wr+Ts)/2,yo(nr-qr)>2*Ei+Ht?nr>qr?(qr+=Ei,nr-=Ei):(qr-=Ei,nr+=Ei):qr=nr=(qr+nr)/2),Vt.moveTo(pr*xt(wr),pr*K(wr)),Vt.arc(0,0,pr,wr,Ts),wr!==qr||Ts!==nr)if(y){var bs=jo-+y.apply(this,arguments),Go=(qr+nr)/2;Vt.quadraticCurveTo(0,0,bs*xt(qr),bs*K(qr)),Vt.lineTo(jo*xt(Go),jo*K(Go)),Vt.lineTo(bs*xt(nr),bs*K(nr))}else Vt.quadraticCurveTo(0,0,jo*xt(qr),jo*K(qr)),Vt.arc(0,0,jo,qr,nr);if(Vt.quadraticCurveTo(0,0,pr*xt(wr),pr*K(wr)),Vt.closePath(),pn)return Vt=null,pn+""||null}return y&&(Wt.headRadius=function(pn){return arguments.length?(y="function"==typeof pn?pn:D(+pn),Wt):y}),Wt.radius=function(pn){return arguments.length?(be=Xe="function"==typeof pn?pn:D(+pn),Wt):be},Wt.sourceRadius=function(pn){return arguments.length?(be="function"==typeof pn?pn:D(+pn),Wt):be},Wt.targetRadius=function(pn){return arguments.length?(Xe="function"==typeof pn?pn:D(+pn),Wt):Xe},Wt.startAngle=function(pn){return arguments.length?(ut="function"==typeof pn?pn:D(+pn),Wt):ut},Wt.endAngle=function(pn){return arguments.length?(gt="function"==typeof pn?pn:D(+pn),Wt):gt},Wt.padAngle=function(pn){return arguments.length?(Tt="function"==typeof pn?pn:D(+pn),Wt):Tt},Wt.source=function(pn){return arguments.length?(H=pn,Wt):H},Wt.target=function(pn){return arguments.length?(Ae=pn,Wt):Ae},Wt.context=function(pn){return arguments.length?(Vt=pn??null,Wt):Vt},Wt}()}var xn={value:()=>{}};function wn(){for(var be,y=0,H=arguments.length,Ae={};y=0&&(be=Ae.slice(Xe+1),Ae=Ae.slice(0,Xe)),Ae&&!H.hasOwnProperty(Ae))throw new Error("unknown type: "+Ae);return{type:Ae,name:be}})}(y+"",Ae),ut=-1,gt=be.length;if(!(arguments.length<2)){if(null!=H&&"function"!=typeof H)throw new Error("invalid callback: "+H);for(;++ut0)for(var Xe,ut,Ae=new Array(Xe),be=0;be=0&&"xmlns"!==(H=y.slice(0,Ae))&&(y=y.slice(Ae+1)),Qt.hasOwnProperty(H)?{space:Qt[H],local:y}:y}function en(y){return function(){var H=this.ownerDocument,Ae=this.namespaceURI;return Ae===ht&&H.documentElement.namespaceURI===ht?H.createElement(y):H.createElementNS(Ae,y)}}function jt(y){return function(){return this.ownerDocument.createElementNS(y.space,y.local)}}function fn(y){var H=vn(y);return(H.local?jt:en)(H)}function Hn(){}function Vn(y){return null==y?Hn:function(){return this.querySelector(y)}}function Li(){return[]}function Kr(y){return null==y?Li:function(){return this.querySelectorAll(y)}}function Vs(y){return function(){return this.matches(y)}}function un(y){return function(H){return H.matches(y)}}var di=Array.prototype.find;function ui(){return this.firstElementChild}var Fn=Array.prototype.filter;function _i(){return Array.from(this.children)}function ro(y){return new Array(y.length)}function Gi(y,H){this.ownerDocument=y.ownerDocument,this.namespaceURI=y.namespaceURI,this._next=null,this._parent=y,this.__data__=H}function ra(y,H,Ae,be,Xe,ut){for(var Tt,gt=0,Vt=H.length,Wt=ut.length;gtH?1:y>=H?0:NaN}function $o(y){return function(){this.removeAttribute(y)}}function U0(y){return function(){this.removeAttributeNS(y.space,y.local)}}function Uf(y,H){return function(){this.setAttribute(y,H)}}function OC(y,H){return function(){this.setAttributeNS(y.space,y.local,H)}}function zf(y,H){return function(){var Ae=H.apply(this,arguments);null==Ae?this.removeAttribute(y):this.setAttribute(y,Ae)}}function bg(y,H){return function(){var Ae=H.apply(this,arguments);null==Ae?this.removeAttributeNS(y.space,y.local):this.setAttributeNS(y.space,y.local,Ae)}}function xm(y){return y.ownerDocument&&y.ownerDocument.defaultView||y.document&&y||y.defaultView}function xg(y){return function(){this.style.removeProperty(y)}}function Xh(y,H,Ae){return function(){this.style.setProperty(y,H,Ae)}}function wg(y,H,Ae){return function(){var be=H.apply(this,arguments);null==be?this.style.removeProperty(y):this.style.setProperty(y,be,Ae)}}function go(y,H){return y.style.getPropertyValue(H)||xm(y).getComputedStyle(y,null).getPropertyValue(H)}function Wa(y){return function(){delete this[y]}}function LC(y,H){return function(){this[y]=H}}function Ex(y,H){return function(){var Ae=H.apply(this,arguments);null==Ae?delete this[y]:this[y]=Ae}}function Dx(y){return y.trim().split(/^|\s+/)}function Cg(y){return y.classList||new Mg(y)}function Mg(y){this._node=y,this._names=Dx(y.getAttribute("class")||"")}function va(y,H){for(var Ae=Cg(y),be=-1,Xe=H.length;++be=0&&(this._names.splice(H,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(y){return this._names.indexOf(y)>=0}};var Qf=[null];function gc(y,H){this._groups=y,this._parents=H}function ku(){return new gc([[document.documentElement]],Qf)}function Yh(y){return"string"==typeof y?new gc([[document.querySelector(y)]],[document.documentElement]):new gc([[y]],Qf)}gc.prototype=ku.prototype={constructor:gc,select:function Hi(y){"function"!=typeof y&&(y=Vn(y));for(var H=this._groups,Ae=H.length,be=new Array(Ae),Xe=0;Xe=qr&&(qr=jo+1);!(Xs=wr[qr])&&++qr=0;)(gt=be[Xe])&&(ut&&4^gt.compareDocumentPosition(ut)&&ut.parentNode.insertBefore(gt,ut),ut=gt);return this},sort:function Td(y){function H(Gn,qn){return Gn&&qn?y(Gn.__data__,qn.__data__):!Gn-!qn}y||(y=Bi);for(var Ae=this._groups,be=Ae.length,Xe=new Array(be),ut=0;ut1?this.each((null==H?xg:"function"==typeof H?wg:Xh)(y,H,Ae??"")):go(this.node(),y)},property:function Tx(y,H){return arguments.length>1?this.each((null==H?Wa:"function"==typeof H?Ex:LC)(y,H)):this.node()[y]},classed:function Ix(y,H){var Ae=Dx(y+"");if(arguments.length<2){for(var be=Cg(this.node()),Xe=-1,ut=Ae.length;++Xe=0&&(Ae=H.slice(be+1),H=H.slice(0,be)),{type:H,name:Ae}})}(y+""),ut=be.length;if(!(arguments.length<2)){for(Tt=H?Xl:G0,Xe=0;Xeko(Ae,H))}vl.prototype=function Xd(){return new vl}.prototype={constructor:vl,get:function(y){for(var H=this._;!(H in y);)if(!(y=y.parentNode))return;return y[H]},set:function(y,H){return y[this._]=H},remove:function(y){return this._ in y&&delete y[this._]},toString:function(){return this._}};const Ui={passive:!1},zo={capture:!0,passive:!1};function eh(y){y.stopImmediatePropagation()}function Wc(y){y.preventDefault(),y.stopImmediatePropagation()}var mi=y=>()=>y;function Dg(y,{sourceEvent:H,subject:Ae,target:be,identifier:Xe,active:ut,x:gt,y:Tt,dx:Vt,dy:Wt,dispatch:pn}){Object.defineProperties(this,{type:{value:y,enumerable:!0,configurable:!0},sourceEvent:{value:H,enumerable:!0,configurable:!0},subject:{value:Ae,enumerable:!0,configurable:!0},target:{value:be,enumerable:!0,configurable:!0},identifier:{value:Xe,enumerable:!0,configurable:!0},active:{value:ut,enumerable:!0,configurable:!0},x:{value:gt,enumerable:!0,configurable:!0},y:{value:Tt,enumerable:!0,configurable:!0},dx:{value:Vt,enumerable:!0,configurable:!0},dy:{value:Wt,enumerable:!0,configurable:!0},_:{value:pn}})}function Ig(y){return!y.ctrlKey&&!y.button}function Cm(){return this.parentNode}function _u(y,H){return H??{x:y.x,y:y.y}}function Mp(){return navigator.maxTouchPoints||"ontouchstart"in this}function yA(){var Tt,Vt,Wt,pn,y=Ig,H=Cm,Ae=_u,be=Mp,Xe={},ut=wn("start","drag","end"),gt=0,Gn=0;function qn(nr){nr.on("mousedown.drag",Ei).filter(be).on("touchstart.drag",wr).on("touchmove.drag",Ts,Ui).on("touchend.drag touchcancel.drag",jo).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function Ei(nr,Xs){if(!pn&&y.call(this,nr,Xs)){var bs=qr(this,H.call(this,nr,Xs),nr,Xs,"mouse");bs&&(Yh(nr.view).on("mousemove.drag",kr,zo).on("mouseup.drag",pr,zo),function Tg(y){var H=y.document.documentElement,Ae=Yh(y).on("dragstart.drag",Wc,zo);"onselectstart"in H?Ae.on("selectstart.drag",Wc,zo):(H.__noselect=H.style.MozUserSelect,H.style.MozUserSelect="none")}(nr.view),eh(nr),Wt=!1,Tt=nr.clientX,Vt=nr.clientY,bs("start",nr))}}function kr(nr){if(Wc(nr),!Wt){var Xs=nr.clientX-Tt,bs=nr.clientY-Vt;Wt=Xs*Xs+bs*bs>Gn}Xe.mouse("drag",nr)}function pr(nr){Yh(nr.view).on("mousemove.drag mouseup.drag",null),function Ad(y,H){var Ae=y.document.documentElement,be=Yh(y).on("dragstart.drag",null);H&&(be.on("click.drag",Wc,zo),setTimeout(function(){be.on("click.drag",null)},0)),"onselectstart"in Ae?be.on("selectstart.drag",null):(Ae.style.MozUserSelect=Ae.__noselect,delete Ae.__noselect)}(nr.view,Wt),Wc(nr),Xe.mouse("end",nr)}function wr(nr,Xs){if(y.call(this,nr,Xs)){var zc,dc,bs=nr.changedTouches,Go=H.call(this,nr,Xs),hl=bs.length;for(zc=0;zcH?1:y>=H?0:NaN}function Ya(y,H){return null==y||null==H?NaN:Hy?1:H>=y?0:NaN}function wh(y){let H,Ae,be;function Xe(Tt,Vt,Wt=0,pn=Tt.length){if(Wt>>1;Ae(Tt[Gn],Vt)<0?Wt=Gn+1:pn=Gn}while(WtKh(y(Tt),Vt),be=(Tt,Vt)=>y(Tt)-Vt):(H=y===Kh||y===Ya?y:Bg,Ae=y,be=y),{left:Xe,center:function gt(Tt,Vt,Wt=0,pn=Tt.length){const Gn=Xe(Tt,Vt,Wt,pn-1);return Gn>Wt&&be(Tt[Gn-1],Vt)>-be(Tt[Gn],Vt)?Gn-1:Gn},right:function ut(Tt,Vt,Wt=0,pn=Tt.length){if(Wt>>1;Ae(Tt[Gn],Vt)<=0?Wt=Gn+1:pn=Gn}while(Wt=rs?10:ut>=Pg?5:ut>=Os?2:1;let Tt,Vt,Wt;return Xe<0?(Wt=Math.pow(10,-Xe)/gt,Tt=Math.round(y*Wt),Vt=Math.round(H*Wt),Tt/WtH&&--Vt,Wt=-Wt):(Wt=Math.pow(10,Xe)*gt,Tt=Math.round(y/Wt),Vt=Math.round(H/Wt),Tt*WtH&&--Vt),Vt0))return[];if((y=+y)==(H=+H))return[y];const be=H=Xe))return[];const Tt=ut-Xe+1,Vt=new Array(Tt);if(be)if(gt<0)for(let Wt=0;Wt()=>y;function Jh(y,H){var Ae=H-y;return Ae?function g1(y,H){return function(Ae){return y+Ae*H}}(y,Ae):Nu(isNaN(y)?H:y)}var Yd=function y(H){var Ae=function bA(y){return 1==(y=+y)?Jh:function(H,Ae){return Ae-H?function Q0(y,H,Ae){return y=Math.pow(y,Ae),H=Math.pow(H,Ae)-y,Ae=1/Ae,function(be){return Math.pow(y+be*H,Ae)}}(H,Ae,y):Nu(isNaN(H)?Ae:H)}}(H);function be(Xe,ut){var gt=Ae((Xe=p(Xe)).r,(ut=p(ut)).r),Tt=Ae(Xe.g,ut.g),Vt=Ae(Xe.b,ut.b),Wt=Jh(Xe.opacity,ut.opacity);return function(pn){return Xe.r=gt(pn),Xe.g=Tt(pn),Xe.b=Vt(pn),Xe.opacity=Wt(pn),Xe+""}}return be.gamma=y,be}(1);function Rg(y,H){H||(H=[]);var Xe,Ae=y?Math.min(H.length,y.length):0,be=H.slice();return function(ut){for(Xe=0;XeAe&&(ut=H.slice(Ae,ut),Tt[gt]?Tt[gt]+=ut:Tt[++gt]=ut),(be=be[0])===(Xe=Xe[0])?Tt[gt]?Tt[gt]+=Xe:Tt[++gt]=Xe:(Tt[++gt]=null,Vt.push({i:gt,x:yc(be,Xe)})),Ae=bo.lastIndex;return Ae180?pn+=360:pn-Wt>180&&(Wt+=360),qn.push({i:Gn.push(Xe(Gn)+"rotate(",null,be)-2,x:yc(Wt,pn)})):pn&&Gn.push(Xe(Gn)+"rotate("+pn+be)}(Wt.rotate,pn.rotate,Gn,qn),function Tt(Wt,pn,Gn,qn){Wt!==pn?qn.push({i:Gn.push(Xe(Gn)+"skewX(",null,be)-2,x:yc(Wt,pn)}):pn&&Gn.push(Xe(Gn)+"skewX("+pn+be)}(Wt.skewX,pn.skewX,Gn,qn),function Vt(Wt,pn,Gn,qn,Ei,kr){if(Wt!==Gn||pn!==qn){var pr=Ei.push(Xe(Ei)+"scale(",null,",",null,")");kr.push({i:pr-4,x:yc(Wt,Gn)},{i:pr-2,x:yc(pn,qn)})}else(1!==Gn||1!==qn)&&Ei.push(Xe(Ei)+"scale("+Gn+","+qn+")")}(Wt.scaleX,Wt.scaleY,pn.scaleX,pn.scaleY,Gn,qn),Wt=pn=null,function(Ei){for(var wr,kr=-1,pr=qn.length;++krH&&(Ae=y,y=H,H=Ae),function(be){return Math.max(y,Math.min(H,be))}}(y[0],y[qn-1])),Tt=qn>2?y1:kx,Vt=Wt=null,Gn}function Gn(qn){return null==qn||isNaN(qn=+qn)?ut:(Vt||(Vt=Tt(y.map(be),H,Ae)))(be(gt(qn)))}return Gn.invert=function(qn){return gt(Xe((Wt||(Wt=Tt(H,y.map(be),yc)))(qn)))},Gn.domain=function(qn){return arguments.length?(y=Array.from(qn,Rp),pn()):y.slice()},Gn.range=function(qn){return arguments.length?(H=Array.from(qn),pn()):H.slice()},Gn.rangeRound=function(qn){return H=Array.from(qn),Ae=ih,pn()},Gn.clamp=function(qn){return arguments.length?(gt=!!qn||Id,pn()):gt!==Id},Gn.interpolate=function(qn){return arguments.length?(Ae=qn,pn()):Ae},Gn.unknown=function(qn){return arguments.length?(ut=qn,Gn):ut},function(qn,Ei){return be=qn,Xe=Ei,pn()}}function v1(){return CA()(Id,Id)}function MA(y,H){if((Ae=(y=H?y.toExponential(H-1):y.toExponential()).indexOf("e"))<0)return null;var Ae,be=y.slice(0,Ae);return[be.length>1?be[0]+be.slice(2):be,+y.slice(Ae+1)]}function rh(y){return(y=MA(Math.abs(y)))?y[1]:NaN}var Ul,so=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function pl(y){if(!(H=so.exec(y)))throw new Error("invalid format: "+y);var H;return new Kd({fill:H[1],align:H[2],sign:H[3],symbol:H[4],zero:H[5],width:H[6],comma:H[7],precision:H[8]&&H[8].slice(1),trim:H[9],type:H[10]})}function Kd(y){this.fill=void 0===y.fill?" ":y.fill+"",this.align=void 0===y.align?">":y.align+"",this.sign=void 0===y.sign?"-":y.sign+"",this.symbol=void 0===y.symbol?"":y.symbol+"",this.zero=!!y.zero,this.width=void 0===y.width?void 0:+y.width,this.comma=!!y.comma,this.precision=void 0===y.precision?void 0:+y.precision,this.trim=!!y.trim,this.type=void 0===y.type?"":y.type+""}function Ka(y,H){var Ae=MA(y,H);if(!Ae)return y+"";var be=Ae[0],Xe=Ae[1];return Xe<0?"0."+new Array(-Xe).join("0")+be:be.length>Xe+1?be.slice(0,Xe+1)+"."+be.slice(Xe+1):be+new Array(Xe-be.length+2).join("0")}pl.prototype=Kd.prototype,Kd.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(void 0===this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(void 0===this.precision?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type};var $c={"%":(y,H)=>(100*y).toFixed(H),b:y=>Math.round(y).toString(2),c:y=>y+"",d:function Bo(y){return Math.abs(y=Math.round(y))>=1e21?y.toLocaleString("en").replace(/,/g,""):y.toString(10)},e:(y,H)=>y.toExponential(H),f:(y,H)=>y.toFixed(H),g:(y,H)=>y.toPrecision(H),o:y=>Math.round(y).toString(8),p:(y,H)=>Ka(100*y,H),r:Ka,s:function nf(y,H){var Ae=MA(y,H);if(!Ae)return y+"";var be=Ae[0],Xe=Ae[1],ut=Xe-(Ul=3*Math.max(-8,Math.min(8,Math.floor(Xe/3))))+1,gt=be.length;return ut===gt?be:ut>gt?be+new Array(ut-gt+1).join("0"):ut>0?be.slice(0,ut)+"."+be.slice(ut):"0."+new Array(1-ut).join("0")+MA(y,Math.max(0,H+ut-1))[0]},X:y=>Math.round(y).toString(16).toUpperCase(),x:y=>Math.round(y).toString(16)};function Uu(y){return y}var rf,Yo,Rl,Mo=Array.prototype.map,kp=["y","z","a","f","p","n","\xb5","m","","k","M","G","T","P","E","Z","Y"];function Bd(y){var H=y.domain;return y.ticks=function(Ae){var be=H();return Ou(be[0],be[be.length-1],Ae??10)},y.tickFormat=function(Ae,be){var Xe=H();return function ac(y,H,Ae,be){var ut,Xe=Ic(y,H,Ae);switch((be=pl(be??",f")).type){case"s":var gt=Math.max(Math.abs(y),Math.abs(H));return null==be.precision&&!isNaN(ut=function Fp(y,H){return Math.max(0,3*Math.max(-8,Math.min(8,Math.floor(rh(H)/3)))-rh(Math.abs(y)))}(Xe,gt))&&(be.precision=ut),Rl(be,gt);case"":case"e":case"g":case"p":case"r":null==be.precision&&!isNaN(ut=function Op(y,H){return y=Math.abs(y),H=Math.abs(H)-y,Math.max(0,rh(H)-rh(y))+1}(Xe,Math.max(Math.abs(y),Math.abs(H))))&&(be.precision=ut-("e"===be.type));break;case"f":case"%":null==be.precision&&!isNaN(ut=function bc(y){return Math.max(0,-rh(Math.abs(y)))}(Xe))&&(be.precision=ut-2*("%"===be.type))}return Yo(be)}(Xe[0],Xe[Xe.length-1],Ae??10,be)},y.nice=function(Ae){null==Ae&&(Ae=10);var Vt,Wt,be=H(),Xe=0,ut=be.length-1,gt=be[Xe],Tt=be[ut],pn=10;for(Tt0;){if((Wt=Ft(gt,Tt,Ae))===Vt)return be[Xe]=gt,be[ut]=Tt,H(be);if(Wt>0)gt=Math.floor(gt/Wt)*Wt,Tt=Math.ceil(Tt/Wt)*Wt;else{if(!(Wt<0))break;gt=Math.ceil(gt*Wt)/Wt,Tt=Math.floor(Tt*Wt)/Wt}Vt=Wt}return y},y}function Dl(){var y=v1();return y.copy=function(){return Lg(y,Dl())},_c.apply(y,arguments),Bd(y)}function Ch(y,H){var gt,Ae=0,be=(y=y.slice()).length-1,Xe=y[Ae],ut=y[be];return ut-y(-H,Ae)}function af(){const y=function SA(y){const H=y(sf,sh),Ae=H.domain;let Xe,ut,be=10;function gt(){return Xe=function Fc(y){return y===Math.E?Math.log:10===y&&Math.log10||2===y&&Math.log2||(y=Math.log(y),H=>Math.log(H)/y)}(be),ut=function X0(y){return 10===y?Ia:y===Math.E?Math.exp:H=>Math.pow(y,H)}(be),Ae()[0]<0?(Xe=dl(Xe),ut=dl(ut),y(kc,cs)):y(sf,sh),H}return H.base=function(Tt){return arguments.length?(be=+Tt,gt()):be},H.domain=function(Tt){return arguments.length?(Ae(Tt),gt()):Ae()},H.ticks=Tt=>{const Vt=Ae();let Wt=Vt[0],pn=Vt[Vt.length-1];const Gn=pn0){for(;qn<=Ei;++qn)for(kr=1;krpn)break;Ts.push(pr)}}else for(;qn<=Ei;++qn)for(kr=be-1;kr>=1;--kr)if(pr=qn>0?kr/ut(-qn):kr*ut(qn),!(prpn)break;Ts.push(pr)}2*Ts.length{if(null==Tt&&(Tt=10),null==Vt&&(Vt=10===be?"s":","),"function"!=typeof Vt&&(!(be%1)&&null==(Vt=pl(Vt)).precision&&(Vt.trim=!0),Vt=Yo(Vt)),Tt===1/0)return Vt;const Wt=Math.max(1,be*Tt/H.ticks().length);return pn=>{let Gn=pn/ut(Math.round(Xe(pn)));return Gn*beAe(Ch(Ae(),{floor:Tt=>ut(Math.floor(Xe(Tt))),ceil:Tt=>ut(Math.ceil(Xe(Tt)))})),H}(CA()).domain([1,10]);return y.copy=()=>Lg(y,af()).base(y.base()),_c.apply(y,arguments),y}function zl(y){return function(H){return Math.sign(H)*Math.log1p(Math.abs(H/y))}}function Hl(y){return function(H){return Math.sign(H)*Math.expm1(Math.abs(H))*y}}function EA(){var y=function Lp(y){var H=1,Ae=y(zl(H),Hl(H));return Ae.constant=function(be){return arguments.length?y(zl(H=+be),Hl(H)):H},Bd(Ae)}(CA());return y.copy=function(){return Lg(y,EA()).constant(y.constant())},_c.apply(y,arguments)}!function Tm(y){rf=function $0(y){var H=void 0===y.grouping||void 0===y.thousands?Uu:function Tl(y,H){return function(Ae,be){for(var Xe=Ae.length,ut=[],gt=0,Tt=y[0],Vt=0;Xe>0&&Tt>0&&(Vt+Tt+1>be&&(Tt=Math.max(1,be-Vt)),ut.push(Ae.substring(Xe-=Tt,Xe+Tt)),!((Vt+=Tt+1)>be));)Tt=y[gt=(gt+1)%y.length];return ut.reverse().join(H)}}(Mo.call(y.grouping,Number),y.thousands+""),Ae=void 0===y.currency?"":y.currency[0]+"",be=void 0===y.currency?"":y.currency[1]+"",Xe=void 0===y.decimal?".":y.decimal+"",ut=void 0===y.numerals?Uu:function Gr(y){return function(H){return H.replace(/[0-9]/g,function(Ae){return y[+Ae]})}}(Mo.call(y.numerals,String)),gt=void 0===y.percent?"%":y.percent+"",Tt=void 0===y.minus?"\u2212":y.minus+"",Vt=void 0===y.nan?"NaN":y.nan+"";function Wt(Gn){var qn=(Gn=pl(Gn)).fill,Ei=Gn.align,kr=Gn.sign,pr=Gn.symbol,wr=Gn.zero,Ts=Gn.width,jo=Gn.comma,qr=Gn.precision,nr=Gn.trim,Xs=Gn.type;"n"===Xs?(jo=!0,Xs="g"):$c[Xs]||(void 0===qr&&(qr=12),nr=!0,Xs="g"),(wr||"0"===qn&&"="===Ei)&&(wr=!0,qn="0",Ei="=");var bs="$"===pr?Ae:"#"===pr&&/[boxX]/.test(Xs)?"0"+Xs.toLowerCase():"",Go="$"===pr?be:/[%p]/.test(Xs)?gt:"",hl=$c[Xs],zc=/[defgprs%]/.test(Xs);function dc(ao){var Zo,tu,nu,wl=bs,Js=Go;if("c"===Xs)Js=hl(ao)+Js,ao="";else{var td=(ao=+ao)<0||1/ao<0;if(ao=isNaN(ao)?Vt:hl(Math.abs(ao),qr),nr&&(ao=function oc(y){e:for(var Xe,H=y.length,Ae=1,be=-1;Ae0&&(be=0)}return be>0?y.slice(0,be)+y.slice(Xe+1):y}(ao)),td&&0==+ao&&"+"!==kr&&(td=!1),wl=(td?"("===kr?kr:Tt:"-"===kr||"("===kr?"":kr)+wl,Js=("s"===Xs?kp[8+Ul/3]:"")+Js+(td&&"("===kr?")":""),zc)for(Zo=-1,tu=ao.length;++Zo(nu=ao.charCodeAt(Zo))||nu>57){Js=(46===nu?Xe+ao.slice(Zo+1):ao.slice(Zo))+Js,ao=ao.slice(0,Zo);break}}jo&&!wr&&(ao=H(ao,1/0));var Ld=wl.length+ao.length+Js.length,Jl=Ld>1)+wl+ao+Js+Jl.slice(Ld);break;default:ao=Jl+wl+ao+Js}return ut(ao)}return qr=void 0===qr?6:/[gprs]/.test(Xs)?Math.max(1,Math.min(21,qr)):Math.max(0,Math.min(20,qr)),dc.toString=function(){return Gn+""},dc}return{format:Wt,formatPrefix:function pn(Gn,qn){var Ei=Wt(((Gn=pl(Gn)).type="f",Gn)),kr=3*Math.max(-8,Math.min(8,Math.floor(rh(qn)/3))),pr=Math.pow(10,-kr),wr=kp[8+kr/3];return function(Ts){return Ei(pr*Ts)+wr}}}}(y),Yo=rf.format,Rl=rf.formatPrefix}({thousands:",",grouping:[3],currency:["$",""]});const Ug=new Date,zg=new Date;function xc(y,H,Ae,be){function Xe(ut){return y(ut=0===arguments.length?new Date:new Date(+ut)),ut}return Xe.floor=ut=>(y(ut=new Date(+ut)),ut),Xe.ceil=ut=>(y(ut=new Date(ut-1)),H(ut,1),y(ut),ut),Xe.round=ut=>{const gt=Xe(ut),Tt=Xe.ceil(ut);return ut-gt(H(ut=new Date(+ut),null==gt?1:Math.floor(gt)),ut),Xe.range=(ut,gt,Tt)=>{const Vt=[];if(ut=Xe.ceil(ut),Tt=null==Tt?1:Math.floor(Tt),!(ut0))return Vt;let Wt;do{Vt.push(Wt=new Date(+ut)),H(ut,Tt),y(ut)}while(Wtxc(gt=>{if(gt>=gt)for(;y(gt),!ut(gt);)gt.setTime(gt-1)},(gt,Tt)=>{if(gt>=gt)if(Tt<0)for(;++Tt<=0;)for(;H(gt,-1),!ut(gt););else for(;--Tt>=0;)for(;H(gt,1),!ut(gt););}),Ae&&(Xe.count=(ut,gt)=>(Ug.setTime(+ut),zg.setTime(+gt),y(Ug),y(zg),Math.floor(Ae(Ug,zg))),Xe.every=ut=>(ut=Math.floor(ut),isFinite(ut)&&ut>0?ut>1?Xe.filter(be?gt=>be(gt)%ut==0:gt=>Xe.count(0,gt)%ut==0):Xe:null)),Xe}const Dm=xc(()=>{},(y,H)=>{y.setTime(+y+H)},(y,H)=>H-y);Dm.every=y=>(y=Math.floor(y),isFinite(y)&&y>0?y>1?xc(H=>{H.setTime(Math.floor(H/y)*y)},(H,Ae)=>{H.setTime(+H+Ae*y)},(H,Ae)=>(Ae-H)/y):Dm:null);const lc=1e3,Xc=6e4,ah=60*Xc,Zd=24*ah,Im=7*Zd,b1=30*Zd,Sh=365*Zd,zu=xc(y=>{y.setTime(y-y.getMilliseconds())},(y,H)=>{y.setTime(+y+H*lc)},(y,H)=>(H-y)/lc,y=>y.getUTCSeconds()),lh=xc(y=>{y.setTime(y-y.getMilliseconds()-y.getSeconds()*lc)},(y,H)=>{y.setTime(+y+H*Xc)},(y,H)=>(H-y)/Xc,y=>y.getMinutes()),kl=xc(y=>{y.setUTCSeconds(0,0)},(y,H)=>{y.setTime(+y+H*Xc)},(y,H)=>(H-y)/Xc,y=>y.getUTCMinutes()),Yf=xc(y=>{y.setTime(y-y.getMilliseconds()-y.getSeconds()*lc-y.getMinutes()*Xc)},(y,H)=>{y.setTime(+y+H*ah)},(y,H)=>(H-y)/ah,y=>y.getHours()),zp=xc(y=>{y.setUTCMinutes(0,0,0)},(y,H)=>{y.setTime(+y+H*ah)},(y,H)=>(H-y)/ah,y=>y.getUTCHours()),Kf=xc(y=>y.setHours(0,0,0,0),(y,H)=>y.setDate(y.getDate()+H),(y,H)=>(H-y-(H.getTimezoneOffset()-y.getTimezoneOffset())*Xc)/Zd,y=>y.getDate()-1),uf=xc(y=>{y.setUTCHours(0,0,0,0)},(y,H)=>{y.setUTCDate(y.getUTCDate()+H)},(y,H)=>(H-y)/Zd,y=>y.getUTCDate()-1),Bm=xc(y=>{y.setUTCHours(0,0,0,0)},(y,H)=>{y.setUTCDate(y.getUTCDate()+H)},(y,H)=>(H-y)/Zd,y=>Math.floor(y/Zd));function Eh(y){return xc(H=>{H.setDate(H.getDate()-(H.getDay()+7-y)%7),H.setHours(0,0,0,0)},(H,Ae)=>{H.setDate(H.getDate()+7*Ae)},(H,Ae)=>(Ae-H-(Ae.getTimezoneOffset()-H.getTimezoneOffset())*Xc)/Im)}const Zf=Eh(0),Jf=Eh(1),hf=(Eh(2),Eh(3),Eh(4));function Pm(y){return xc(H=>{H.setUTCDate(H.getUTCDate()-(H.getUTCDay()+7-y)%7),H.setUTCHours(0,0,0,0)},(H,Ae)=>{H.setUTCDate(H.getUTCDate()+7*Ae)},(H,Ae)=>(Ae-H)/Im)}Eh(5),Eh(6);const oa=Pm(0),ep=Pm(1),Rm=(Pm(2),Pm(3),Pm(4)),Rd=(Pm(5),Pm(6),xc(y=>{y.setDate(1),y.setHours(0,0,0,0)},(y,H)=>{y.setMonth(y.getMonth()+H)},(y,H)=>H.getMonth()-y.getMonth()+12*(H.getFullYear()-y.getFullYear()),y=>y.getMonth())),Y0=xc(y=>{y.setUTCDate(1),y.setUTCHours(0,0,0,0)},(y,H)=>{y.setUTCMonth(y.getUTCMonth()+H)},(y,H)=>H.getUTCMonth()-y.getUTCMonth()+12*(H.getUTCFullYear()-y.getUTCFullYear()),y=>y.getUTCMonth()),ch=xc(y=>{y.setMonth(0,1),y.setHours(0,0,0,0)},(y,H)=>{y.setFullYear(y.getFullYear()+H)},(y,H)=>H.getFullYear()-y.getFullYear(),y=>y.getFullYear());ch.every=y=>isFinite(y=Math.floor(y))&&y>0?xc(H=>{H.setFullYear(Math.floor(H.getFullYear()/y)*y),H.setMonth(0,1),H.setHours(0,0,0,0)},(H,Ae)=>{H.setFullYear(H.getFullYear()+Ae*y)}):null;const ff=xc(y=>{y.setUTCMonth(0,1),y.setUTCHours(0,0,0,0)},(y,H)=>{y.setUTCFullYear(y.getUTCFullYear()+H)},(y,H)=>H.getUTCFullYear()-y.getUTCFullYear(),y=>y.getUTCFullYear());function Hu(y,H,Ae,be,Xe,ut){const gt=[[zu,1,lc],[zu,5,5e3],[zu,15,15e3],[zu,30,3e4],[ut,1,Xc],[ut,5,5*Xc],[ut,15,15*Xc],[ut,30,30*Xc],[Xe,1,ah],[Xe,3,3*ah],[Xe,6,6*ah],[Xe,12,12*ah],[be,1,Zd],[be,2,2*Zd],[Ae,1,Im],[H,1,b1],[H,3,3*b1],[y,1,Sh]];function Vt(Wt,pn,Gn){const qn=Math.abs(pn-Wt)/Gn,Ei=wh(([,,wr])=>wr).right(gt,qn);if(Ei===gt.length)return y.every(Ic(Wt/Sh,pn/Sh,Gn));if(0===Ei)return Dm.every(Math.max(Ic(Wt,pn,Gn),1));const[kr,pr]=gt[qn/gt[Ei-1][2]isFinite(y=Math.floor(y))&&y>0?xc(H=>{H.setUTCFullYear(Math.floor(H.getUTCFullYear()/y)*y),H.setUTCMonth(0,1),H.setUTCHours(0,0,0,0)},(H,Ae)=>{H.setUTCFullYear(H.getUTCFullYear()+Ae*y)}):null;const[x1,K0]=Hu(ff,Y0,oa,Bm,zp,kl),[Z0,Oc]=Hu(ch,Rd,Zf,Kf,Yf,lh);function pf(y){if(0<=y.y&&y.y<100){var H=new Date(-1,y.m,y.d,y.H,y.M,y.S,y.L);return H.setFullYear(y.y),H}return new Date(y.y,y.m,y.d,y.H,y.M,y.S,y.L)}function Hp(y){if(0<=y.y&&y.y<100){var H=new Date(Date.UTC(-1,y.m,y.d,y.H,y.M,y.S,y.L));return H.setUTCFullYear(y.y),H}return new Date(Date.UTC(y.y,y.m,y.d,y.H,y.M,y.S,y.L))}function tp(y,H,Ae){return{y,m:H,d:Ae,H:0,M:0,S:0,L:0}}var gf,$g,Yg,mv,Th={"-":"",_:" ",0:"0"},Gs=/^\s*\d+/,w1=/^%/,Fx=/[\\^$*+?|[\]().{}]/g;function ja(y,H,Ae){var be=y<0?"-":"",Xe=(be?-y:y)+"",ut=Xe.length;return be+(ut[H.toLowerCase(),Ae]))}function Om(y,H,Ae){var be=Gs.exec(H.slice(Ae,Ae+1));return be?(y.w=+be[0],Ae+be[0].length):-1}function C1(y,H,Ae){var be=Gs.exec(H.slice(Ae,Ae+1));return be?(y.u=+be[0],Ae+be[0].length):-1}function M1(y,H,Ae){var be=Gs.exec(H.slice(Ae,Ae+2));return be?(y.U=+be[0],Ae+be[0].length):-1}function S1(y,H,Ae){var be=Gs.exec(H.slice(Ae,Ae+2));return be?(y.V=+be[0],Ae+be[0].length):-1}function E1(y,H,Ae){var be=Gs.exec(H.slice(Ae,Ae+2));return be?(y.W=+be[0],Ae+be[0].length):-1}function Vg(y,H,Ae){var be=Gs.exec(H.slice(Ae,Ae+4));return be?(y.y=+be[0],Ae+be[0].length):-1}function Zi(y,H,Ae){var be=Gs.exec(H.slice(Ae,Ae+2));return be?(y.y=+be[0]+(+be[0]>68?1900:2e3),Ae+be[0].length):-1}function wa(y,H,Ae){var be=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(H.slice(Ae,Ae+6));return be?(y.Z=be[1]?0:-(be[2]+(be[3]||"00")),Ae+be[0].length):-1}function Ci(y,H,Ae){var be=Gs.exec(H.slice(Ae,Ae+1));return be?(y.q=3*be[0]-3,Ae+be[0].length):-1}function Mi(y,H,Ae){var be=Gs.exec(H.slice(Ae,Ae+2));return be?(y.m=be[0]-1,Ae+be[0].length):-1}function Ha(y,H,Ae){var be=Gs.exec(H.slice(Ae,Ae+2));return be?(y.d=+be[0],Ae+be[0].length):-1}function kA(y,H,Ae){var be=Gs.exec(H.slice(Ae,Ae+3));return be?(y.m=0,y.d=+be[0],Ae+be[0].length):-1}function Lm(y,H,Ae){var be=Gs.exec(H.slice(Ae,Ae+2));return be?(y.H=+be[0],Ae+be[0].length):-1}function dh(y,H,Ae){var be=Gs.exec(H.slice(Ae,Ae+2));return be?(y.M=+be[0],Ae+be[0].length):-1}function FA(y,H,Ae){var be=Gs.exec(H.slice(Ae,Ae+2));return be?(y.S=+be[0],Ae+be[0].length):-1}function Gg(y,H,Ae){var be=Gs.exec(H.slice(Ae,Ae+3));return be?(y.L=+be[0],Ae+be[0].length):-1}function T1(y,H,Ae){var be=Gs.exec(H.slice(Ae,Ae+6));return be?(y.L=Math.floor(be[0]/1e3),Ae+be[0].length):-1}function fv(y,H,Ae){var be=w1.exec(H.slice(Ae,Ae+1));return be?Ae+be[0].length:-1}function D1(y,H,Ae){var be=Gs.exec(H.slice(Ae));return be?(y.Q=+be[0],Ae+be[0].length):-1}function Yc(y,H,Ae){var be=Gs.exec(H.slice(Ae));return be?(y.s=+be[0],Ae+be[0].length):-1}function uh(y,H){return ja(y.getDate(),H,2)}function J0(y,H){return ja(y.getHours(),H,2)}function hh(y,H){return ja(y.getHours()%12||12,H,2)}function mf(y,H){return ja(1+Kf.count(ch(y),y),H,3)}function e_(y,H){return ja(y.getMilliseconds(),H,3)}function Vp(y,H){return e_(y,H)+"000"}function t_(y,H){return ja(y.getMonth()+1,H,2)}function qg(y,H){return ja(y.getMinutes(),H,2)}function n_(y,H){return ja(y.getSeconds(),H,2)}function i_(y){var H=y.getDay();return 0===H?7:H}function r_(y,H){return ja(Zf.count(ch(y)-1,y),H,2)}function OA(y){var H=y.getDay();return H>=4||0===H?hf(y):hf.ceil(y)}function I1(y,H){return y=OA(y),ja(hf.count(ch(y),y)+(4===ch(y).getDay()),H,2)}function Qg(y){return y.getDay()}function Wg(y,H){return ja(Jf.count(ch(y)-1,y),H,2)}function s_(y,H){return ja(y.getFullYear()%100,H,2)}function jg(y,H){return ja((y=OA(y)).getFullYear()%100,H,2)}function o_(y,H){return ja(y.getFullYear()%1e4,H,4)}function a_(y,H){var Ae=y.getDay();return ja((y=Ae>=4||0===Ae?hf(y):hf.ceil(y)).getFullYear()%1e4,H,4)}function l_(y){var H=y.getTimezoneOffset();return(H>0?"-":(H*=-1,"+"))+ja(H/60|0,"0",2)+ja(H%60,"0",2)}function LA(y,H){return ja(y.getUTCDate(),H,2)}function Lc(y,H){return ja(y.getUTCHours(),H,2)}function np(y,H){return ja(y.getUTCHours()%12||12,H,2)}function gl(y,H){return ja(1+uf.count(ff(y),y),H,3)}function Fl(y,H){return ja(y.getUTCMilliseconds(),H,3)}function B1(y,H){return Fl(y,H)+"000"}function Dh(y,H){return ja(y.getUTCMonth()+1,H,2)}function pv(y,H){return ja(y.getUTCMinutes(),H,2)}function P1(y,H){return ja(y.getUTCSeconds(),H,2)}function Gp(y){var H=y.getUTCDay();return 0===H?7:H}function Nm(y,H){return ja(oa.count(ff(y)-1,y),H,2)}function Za(y){var H=y.getUTCDay();return H>=4||0===H?Rm(y):Rm.ceil(y)}function qp(y,H){return y=Za(y),ja(Rm.count(ff(y),y)+(4===ff(y).getUTCDay()),H,2)}function Af(y){return y.getUTCDay()}function fh(y,H){return ja(ep.count(ff(y)-1,y),H,2)}function ph(y,H){return ja(y.getUTCFullYear()%100,H,2)}function Qp(y,H){return ja((y=Za(y)).getUTCFullYear()%100,H,2)}function Ih(y,H){return ja(y.getUTCFullYear()%1e4,H,4)}function c_(y,H){var Ae=y.getUTCDay();return ja((y=Ae>=4||0===Ae?Rm(y):Rm.ceil(y)).getUTCFullYear()%1e4,H,4)}function R1(){return"+0000"}function ip(){return"%"}function rp(y){return+y}function Um(y){return Math.floor(+y/1e3)}!function Ox(y){gf=function Hg(y){var H=y.dateTime,Ae=y.date,be=y.time,Xe=y.periods,ut=y.days,gt=y.shortDays,Tt=y.months,Vt=y.shortMonths,Wt=RA(Xe),pn=Fm(Xe),Gn=RA(ut),qn=Fm(ut),Ei=RA(gt),kr=Fm(gt),pr=RA(Tt),wr=Fm(Tt),Ts=RA(Vt),jo=Fm(Vt),qr={a:function td(Qs){return gt[Qs.getDay()]},A:function Ld(Qs){return ut[Qs.getDay()]},b:function Jl(Qs){return Vt[Qs.getMonth()]},B:function cp(Qs){return Tt[Qs.getMonth()]},c:null,d:uh,e:uh,f:Vp,g:jg,G:a_,H:J0,I:hh,j:mf,L:e_,m:t_,M:qg,p:function a0(Qs){return Xe[+(Qs.getHours()>=12)]},q:function l0(Qs){return 1+~~(Qs.getMonth()/3)},Q:rp,s:Um,S:n_,u:i_,U:r_,V:I1,w:Qg,W:Wg,x:null,X:null,y:s_,Y:o_,Z:l_,"%":ip},nr={a:function Xm(Qs){return gt[Qs.getUTCDay()]},A:function em(Qs){return ut[Qs.getUTCDay()]},b:function gh(Qs){return Vt[Qs.getUTCMonth()]},B:function c0(Qs){return Tt[Qs.getUTCMonth()]},c:null,d:LA,e:LA,f:B1,g:Qp,G:c_,H:Lc,I:np,j:gl,L:Fl,m:Dh,M:pv,p:function d0(Qs){return Xe[+(Qs.getUTCHours()>=12)]},q:function wf(Qs){return 1+~~(Qs.getUTCMonth()/3)},Q:rp,s:Um,S:P1,u:Gp,U:Nm,V:qp,w:Af,W:fh,x:null,X:null,y:ph,Y:Ih,Z:R1,"%":ip},Xs={a:function dc(Qs,Ma,Va){var Wr=Ei.exec(Ma.slice(Va));return Wr?(Qs.w=kr.get(Wr[0].toLowerCase()),Va+Wr[0].length):-1},A:function ao(Qs,Ma,Va){var Wr=Gn.exec(Ma.slice(Va));return Wr?(Qs.w=qn.get(Wr[0].toLowerCase()),Va+Wr[0].length):-1},b:function wl(Qs,Ma,Va){var Wr=Ts.exec(Ma.slice(Va));return Wr?(Qs.m=jo.get(Wr[0].toLowerCase()),Va+Wr[0].length):-1},B:function Js(Qs,Ma,Va){var Wr=pr.exec(Ma.slice(Va));return Wr?(Qs.m=wr.get(Wr[0].toLowerCase()),Va+Wr[0].length):-1},c:function Zo(Qs,Ma,Va){return hl(Qs,H,Ma,Va)},d:Ha,e:Ha,f:T1,g:Zi,G:Vg,H:Lm,I:Lm,j:kA,L:Gg,m:Mi,M:dh,p:function zc(Qs,Ma,Va){var Wr=Wt.exec(Ma.slice(Va));return Wr?(Qs.p=pn.get(Wr[0].toLowerCase()),Va+Wr[0].length):-1},q:Ci,Q:D1,s:Yc,S:FA,u:C1,U:M1,V:S1,w:Om,W:E1,x:function tu(Qs,Ma,Va){return hl(Qs,Ae,Ma,Va)},X:function nu(Qs,Ma,Va){return hl(Qs,be,Ma,Va)},y:Zi,Y:Vg,Z:wa,"%":fv};function bs(Qs,Ma){return function(Va){var _h,QA,Vx,Wr=[],nd=-1,Sa=0,ec=Qs.length;for(Va instanceof Date||(Va=new Date(+Va));++nd53)return null;"w"in Wr||(Wr.w=1),"Z"in Wr?(ec=(Sa=Hp(tp(Wr.y,0,1))).getUTCDay(),Sa=ec>4||0===ec?ep.ceil(Sa):ep(Sa),Sa=uf.offset(Sa,7*(Wr.V-1)),Wr.y=Sa.getUTCFullYear(),Wr.m=Sa.getUTCMonth(),Wr.d=Sa.getUTCDate()+(Wr.w+6)%7):(ec=(Sa=pf(tp(Wr.y,0,1))).getDay(),Sa=ec>4||0===ec?Jf.ceil(Sa):Jf(Sa),Sa=Kf.offset(Sa,7*(Wr.V-1)),Wr.y=Sa.getFullYear(),Wr.m=Sa.getMonth(),Wr.d=Sa.getDate()+(Wr.w+6)%7)}else("W"in Wr||"U"in Wr)&&("w"in Wr||(Wr.w="u"in Wr?Wr.u%7:"W"in Wr?1:0),ec="Z"in Wr?Hp(tp(Wr.y,0,1)).getUTCDay():pf(tp(Wr.y,0,1)).getDay(),Wr.m=0,Wr.d="W"in Wr?(Wr.w+6)%7+7*Wr.W-(ec+5)%7:Wr.w+7*Wr.U-(ec+6)%7);return"Z"in Wr?(Wr.H+=Wr.Z/100|0,Wr.M+=Wr.Z%100,Hp(Wr)):pf(Wr)}}function hl(Qs,Ma,Va,Wr){for(var _h,QA,nd=0,Sa=Ma.length,ec=Va.length;nd=ec)return-1;if(37===(_h=Ma.charCodeAt(nd++))){if(_h=Ma.charAt(nd++),!(QA=Xs[_h in Th?Ma.charAt(nd++):_h])||(Wr=QA(Qs,Va,Wr))<0)return-1}else if(_h!=Va.charCodeAt(Wr++))return-1}return Wr}return qr.x=bs(Ae,qr),qr.X=bs(be,qr),qr.c=bs(H,qr),nr.x=bs(Ae,nr),nr.X=bs(be,nr),nr.c=bs(H,nr),{format:function(Qs){var Ma=bs(Qs+="",qr);return Ma.toString=function(){return Qs},Ma},parse:function(Qs){var Ma=Go(Qs+="",!1);return Ma.toString=function(){return Qs},Ma},utcFormat:function(Qs){var Ma=bs(Qs+="",nr);return Ma.toString=function(){return Qs},Ma},utcParse:function(Qs){var Ma=Go(Qs+="",!0);return Ma.toString=function(){return Qs},Ma}}}(y),$g=gf.format,Yg=gf.utcFormat,mv=gf.utcParse}({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});var Kg="%Y-%m-%dT%H:%M:%S.%LZ";function Av(y){return new Date(y)}function h_(y){return y instanceof Date?+y:+new Date(+y)}function Jg(y,H,Ae,be,Xe,ut,gt,Tt,Vt,Wt){var pn=v1(),Gn=pn.invert,qn=pn.domain,Ei=Wt(".%L"),kr=Wt(":%S"),pr=Wt("%I:%M"),wr=Wt("%I %p"),Ts=Wt("%a %d"),jo=Wt("%b %d"),qr=Wt("%B"),nr=Wt("%Y");function Xs(bs){return(Vt(bs)=1?bu:y<=-1?-bu:Math.asin(y)}function ds(y){return y.innerRadius}function mh(y){return y.outerRadius}function Hm(y){return y.startAngle}function U1(y){return y.endAngle}function z1(y){return y&&y.padAngle}function zA(y,H,Ae,be,Xe,ut,gt){var Tt=y-Ae,Vt=H-be,Wt=(gt?ut:-ut)/Wp(Tt*Tt+Vt*Vt),pn=Wt*Vt,Gn=-Wt*Tt,qn=y+pn,Ei=H+Gn,kr=Ae+pn,pr=be+Gn,wr=(qn+kr)/2,Ts=(Ei+pr)/2,jo=kr-qn,qr=pr-Ei,nr=jo*jo+qr*qr,Xs=Xe-ut,bs=qn*pr-kr*Ei,Go=(qr<0?-1:1)*Wp(cc(0,Xs*Xs*nr-bs*bs)),hl=(bs*qr-jo*Go)/nr,zc=(-bs*jo-qr*Go)/nr,dc=(bs*qr+jo*Go)/nr,ao=(-bs*jo+qr*Go)/nr,wl=hl-wr,Js=zc-Ts,Zo=dc-wr,tu=ao-Ts;return wl*wl+Js*Js>Zo*Zo+tu*tu&&(hl=dc,zc=ao),{cx:hl,cy:zc,x01:-pn,y01:-Gn,x11:hl*(Xe/Xs-1),y11:zc*(Xe/Xs-1)}}function bv(){var y=ds,H=mh,Ae=Nc(0),be=null,Xe=Hm,ut=U1,gt=z1,Tt=null,Vt=function Ko(y){let H=3;return y.digits=function(Ae){if(!arguments.length)return H;if(null==Ae)H=null;else{const be=Math.floor(Ae);if(!(be>=0))throw new RangeError(`invalid digits: ${Ae}`);H=be}return y},()=>new Ln(H)}(Wt);function Wt(){var pn,Gn,qn=+y.apply(this,arguments),Ei=+H.apply(this,arguments),kr=Xe.apply(this,arguments)-bu,pr=ut.apply(this,arguments)-bu,wr=L1(pr-kr),Ts=pr>kr;if(Tt||(Tt=pn=Vt()),Eigd)if(wr>yv-gd)Tt.moveTo(Ei*Oa(kr),Ei*Ca(kr)),Tt.arc(0,0,Ei,kr,pr,!Ts),qn>gd&&(Tt.moveTo(qn*Oa(pr),qn*Ca(pr)),Tt.arc(0,0,qn,pr,kr,Ts));else{var Js,Zo,jo=kr,qr=pr,nr=kr,Xs=pr,bs=wr,Go=wr,hl=gt.apply(this,arguments)/2,zc=hl>gd&&(be?+be.apply(this,arguments):Wp(qn*qn+Ei*Ei)),dc=N1(L1(Ei-qn)/2,+Ae.apply(this,arguments)),ao=dc,wl=dc;if(zc>gd){var tu=t0(zc/qn*Ca(hl)),nu=t0(zc/Ei*Ca(hl));(bs-=2*tu)>gd?(nr+=tu*=Ts?1:-1,Xs-=tu):(bs=0,nr=Xs=(kr+pr)/2),(Go-=2*nu)>gd?(jo+=nu*=Ts?1:-1,qr-=nu):(Go=0,jo=qr=(kr+pr)/2)}var td=Ei*Oa(jo),Ld=Ei*Ca(jo),Jl=qn*Oa(Xs),cp=qn*Ca(Xs);if(dc>gd){var gh,a0=Ei*Oa(qr),l0=Ei*Ca(qr),Xm=qn*Oa(nr),em=qn*Ca(nr);if(wr1?0:y<-1?UA:Math.acos(y)}((c0*wf+d0*Qs)/(Wp(c0*c0+d0*d0)*Wp(wf*wf+Qs*Qs)))/2),Va=Wp(gh[0]*gh[0]+gh[1]*gh[1]);ao=N1(dc,(qn-Va)/(Ma-1)),wl=N1(dc,(Ei-Va)/(Ma+1))}else ao=wl=0}Go>gd?wl>gd?(Js=zA(Xm,em,td,Ld,Ei,wl,Ts),Zo=zA(a0,l0,Jl,cp,Ei,wl,Ts),Tt.moveTo(Js.cx+Js.x01,Js.cy+Js.y01),wlgd&&bs>gd?ao>gd?(Js=zA(Jl,cp,a0,l0,qn,-ao,Ts),Zo=zA(td,Ld,Xm,em,qn,-ao,Ts),Tt.lineTo(Js.cx+Js.x01,Js.cy+Js.y01),ao=0&&y._call.call(void 0,H),y=y._next;--sp}()}finally{sp=0,function GA(){for(var y,Ae,H=ml,be=1/0;H;)H._call?(be>H._time&&(be=H._time),y=H,H=H._next):(Ae=H._next,H._next=null,H=y?y._next=Ae:ml=Ae);jp=y,g_(be)}(),op=0}}function Gm(){var y=xl.now(),H=y-HA;H>_f&&(kd-=H,HA=y)}function g_(y){sp||(Vl&&(Vl=clearTimeout(Vl)),y-op>24?(y<1/0&&(Vl=setTimeout(r0,y-xl.now()-kd)),Zl&&(Zl=clearInterval(Zl))):(Zl||(HA=xl.now(),Zl=setInterval(Gm,_f)),sp=1,n0(r0)))}function __(y,H,Ae){var be=new VA;return be.restart(Xe=>{be.stop(),y(Xe+H)},H=null==H?0:+H,Ae),be}VA.prototype=Vm.prototype={constructor:VA,restart:function(y,H,Ae){if("function"!=typeof y)throw new TypeError("callback is not a function");Ae=(null==Ae?Uc():+Ae)+(null==H?0:+H),!this._next&&jp!==this&&(jp?jp._next=this:ml=this,jp=this),this._call=y,this._time=Ae,g_()},stop:function(){this._call&&(this._call=null,this._time=1/0,g_())}};var qm=wn("start","end","cancel","interrupt"),oo=[],Qm=0,Ls=3;function o0(y,H,Ae,be,Xe,ut){var gt=y.__transition;if(gt){if(Ae in gt)return}else y.__transition={};!function ae(y,H,Ae){var Xe,be=y.__transition;function gt(Wt){var pn,Gn,qn,Ei;if(1!==Ae.state)return Vt();for(pn in be)if((Ei=be[pn]).name===Ae.name){if(Ei.state===Ls)return __(gt);4===Ei.state?(Ei.state=6,Ei.timer.stop(),Ei.on.call("interrupt",y,y.__data__,Ei.index,Ei.group),delete be[pn]):+pnQm)throw new Error("too late; already scheduled");return Ae}function j(y,H){var Ae=ce(y,H);if(Ae.state>Ls)throw new Error("too late; already running");return Ae}function ce(y,H){var Ae=y.__transition;if(!Ae||!(Ae=Ae[H]))throw new Error("transition not found");return Ae}function Bt(y,H){var Ae,be;return function(){var Xe=j(this,y),ut=Xe.tween;if(ut!==Ae)for(var gt=0,Tt=(be=Ae=ut).length;gt=0&&(H=H.slice(0,Ae)),!H||"start"===H})}(H)?ne:j;return function(){var gt=ut(this,y),Tt=gt.on;Tt!==be&&(Xe=(be=Tt).copy()).on(H,Ae),gt.on=Xe}}(Ae,y,H))},attr:function Ns(y,H){var Ae=vn(y),be="transform"===Ae?j0:Zn;return this.attrTween(y,"function"==typeof H?(Ae.local?Ho:zr)(Ae,be,Wn(this,"attr."+y,H)):null==H?(Ae.local?Xi:ri)(Ae):(Ae.local?Ur:Ss)(Ae,be,H))},attrTween:function Es(y,H){var Ae="attr."+y;if(arguments.length<2)return(Ae=this.tween(Ae))&&Ae._value;if(null==H)return this.tween(Ae,null);if("function"!=typeof H)throw new Error;var be=vn(y);return this.tween(Ae,(be.local?Xo:Fo)(be,H))},style:function xv(y,H,Ae){var be="transform"==(y+="")?Pp:Zn;return null==H?this.styleTween(y,function UC(y,H){var Ae,be,Xe;return function(){var ut=go(this,y),gt=(this.style.removeProperty(y),go(this,y));return ut===gt?null:ut===Ae&>===be?Xe:Xe=H(Ae=ut,be=gt)}}(y,be)).on("end.style."+y,Ux(y)):"function"==typeof H?this.styleTween(y,function zC(y,H,Ae){var be,Xe,ut;return function(){var gt=go(this,y),Tt=Ae(this),Vt=Tt+"";return null==Tt&&(this.style.removeProperty(y),Vt=Tt=go(this,y)),gt===Vt?null:gt===be&&Vt===Xe?ut:(Xe=Vt,ut=H(be=gt,Tt))}}(y,be,Wn(this,"style."+y,H))).each(function zx(y,H){var Ae,be,Xe,Tt,ut="style."+H,gt="end."+ut;return function(){var Vt=j(this,y),Wt=Vt.on,pn=null==Vt.value[ut]?Tt||(Tt=Ux(H)):void 0;(Wt!==Ae||Xe!==pn)&&(be=(Ae=Wt).copy()).on(gt,Xe=pn),Vt.on=be}}(this._id,y)):this.styleTween(y,function lT(y,H,Ae){var be,ut,Xe=Ae+"";return function(){var gt=go(this,y);return gt===Xe?null:gt===be?ut:ut=H(be=gt,Ae)}}(y,be,H),Ae).on("end.style."+y,null)},styleTween:function v_(y,H,Ae){var be="style."+(y+="");if(arguments.length<2)return(be=this.tween(be))&&be._value;if(null==H)return this.tween(be,null);if("function"!=typeof H)throw new Error;return this.tween(be,function $m(y,H,Ae){var be,Xe;function ut(){var gt=H.apply(this,arguments);return gt!==Xe&&(be=(Xe=gt)&&function HC(y,H,Ae){return function(be){this.style.setProperty(y,H.call(this,be),Ae)}}(y,gt,Ae)),be}return ut._value=H,ut}(y,H,Ae??""))},text:function Kp(y){return this.tween("text","function"==typeof y?function Hx(y){return function(){var H=y(this);this.textContent=H??""}}(Wn(this,"text",y)):function VC(y){return function(){this.textContent=y}}(null==y?"":y+""))},textTween:function wv(y){var H="text";if(arguments.length<1)return(H=this.tween(H))&&H._value;if(null==y)return this.tween(H,null);if("function"!=typeof y)throw new Error;return this.tween(H,function Od(y){var H,Ae;function be(){var Xe=y.apply(this,arguments);return Xe!==Ae&&(H=(Ae=Xe)&&function cT(y){return function(H){this.textContent=y.call(this,H)}}(Xe)),H}return be._value=y,be}(y))},remove:function xf(){return this.on("end.remove",function Xp(y){return function(){var H=this.parentNode;for(var Ae in this.__transition)if(+Ae!==y)return;H&&H.removeChild(this)}}(this._id))},tween:function on(y,H){var Ae=this._id;if(y+="",arguments.length<2){for(var gt,be=ce(this.node(),Ae).tween,Xe=0,ut=be.length;Xe2&&be.state<5,be.state=6,be.timer.stop(),be.on.call(Xe?"interrupt":"cancel",y,y.__data__,be.index,be.group),delete Ae[gt]):ut=!1;ut&&delete y.__transition}}(this,y)})},ku.prototype.transition=function Mv(y){var H,Ae;y instanceof Zp?(H=y._id,y=y._name):(H=q1(),(Ae=Jp).time=Uc(),y=null==y?null:y+"");for(var be=this._groups,Xe=be.length,ut=0;ut{"use strict";Se.d(mt,{$2:()=>he,AI:()=>b,Xv:()=>k,hd:()=>U,iO:()=>Z,uA:()=>I});var Te=Se(4882),L=(Se(8362),Se(8872)),ve=Se(4369),ke=Se(1949),ot=Se(2843),Ye=Se(1922),Ze=Se(5102);function Re(){return He.apply(this,arguments)}function He(){return(He=(0,Te.A)(function*(){return Se.e(653).then(Se.bind(Se,7653))})).apply(this,arguments)}function Ve(){return De.apply(this,arguments)}function De(){return(De=(0,Te.A)(function*(){return Promise.resolve().then(Se.bind(Se,4483))})).apply(this,arguments)}function F(){return J.apply(this,arguments)}function J(){return(J=(0,Te.A)(function*(){return Promise.all([Se.e(679),Se.e(76),Se.e(122)]).then(Se.bind(Se,1122))})).apply(this,arguments)}function Y(){return ue.apply(this,arguments)}function ue(){return(ue=(0,Te.A)(function*(){return Promise.resolve().then(Se.bind(Se,6043))})).apply(this,arguments)}function Q(){return me.apply(this,arguments)}function me(){return(me=(0,Te.A)(function*(){return Promise.resolve().then(Se.bind(Se,2454)).then(te=>{const Je=U(L.prROOT+"TGeoVolumeAssembly");return Je&&(Je.icon="img_geoassembly"),te})})).apply(this,arguments)}const X="TGraph2D",B="TH2Poly",$="TEllipse",g="TSpline3",E="TTree",_="TCanvasWebSnapshot",v="fPrimitives",p="fFunctions",C={lst:[{name:L.clTCanvas,icon:"img_canvas",class:()=>Ve().then(te=>te.TCanvasPainter),opt:";grid;gridx;gridy;tick;tickx;ticky;log;logx;logy;logz",expand_item:v,noappend:!0},{name:L.clTPad,icon:"img_canvas",func:Ze.jg.draw,opt:";grid;gridx;gridy;tick;tickx;ticky;log;logx;logy;logz",expand_item:v,noappend:!0},{name:"TSlider",icon:"img_canvas",func:Ze.jg.draw},{name:Ze.cw,icon:"img_canvas",func:Ze.jg.draw},{name:"TFrame",icon:"img_frame",draw:()=>Ve().then(te=>te.drawTFrame)},{name:L.clTPave,icon:"img_pavetext",class:()=>Promise.resolve().then(Se.bind(Se,5891)).then(te=>te.TPavePainter)},{name:L.clTPaveText,sameas:L.clTPave},{name:L.clTPavesText,sameas:L.clTPave},{name:L.clTPaveStats,sameas:L.clTPave},{name:L.clTPaveLabel,sameas:L.clTPave},{name:L.clTPaveClass,sameas:L.clTPave},{name:L.clTDiamond,sameas:L.clTPave},{name:L.clTLegend,icon:"img_pavelabel",sameas:L.clTPave},{name:L.clTPaletteAxis,icon:"img_colz",sameas:L.clTPave},{name:L.clTLatex,icon:"img_text",draw:()=>Re().then(te=>te.drawText),direct:!0},{name:L.clTMathText,sameas:L.clTLatex},{name:L.clTText,sameas:L.clTLatex},{name:L.clTAnnotation,sameas:L.clTLatex},{name:/^TH1/,icon:"img_histo1d",class:()=>Promise.resolve().then(Se.bind(Se,8142)).then(te=>te.TH1Painter),opt:";hist;P;P0;E;E1;E2;E3;E4;E1X0;L;LF2;C;B;B1;A;TEXT;LEGO;same",ctrl:"l",expand_item:p,for_derived:!0},{name:L.clTProfile,icon:"img_profile",class:()=>Promise.resolve().then(Se.bind(Se,8142)).then(te=>te.TH1Painter),opt:";E0;E1;E2;p;AH;hist",expand_item:p},{name:B,icon:"img_histo2d",class:()=>Promise.resolve().then(Se.bind(Se,4355)).then(te=>te.TH2Painter),opt:";COL;COL0;COLZ;LCOL;LCOL0;LCOLZ;LEGO;TEXT;same",expand_item:"fBins",theonly:!0},{name:"TProfile2Poly",sameas:B},{name:"TH2PolyBin",icon:"img_histo2d",draw_field:"fPoly",draw_field_opt:"L"},{name:/^TH2/,icon:"img_histo2d",class:()=>Promise.resolve().then(Se.bind(Se,4355)).then(te=>te.TH2Painter),dflt:"col",opt:";COL;COLZ;COL0;COL1;COL0Z;COL1Z;COLA;BOX;BOX1;PROJ;PROJX1;PROJX2;PROJX3;PROJY1;PROJY2;PROJY3;SCAT;TEXT;TEXTE;TEXTE0;CANDLE;CANDLE1;CANDLE2;CANDLE3;CANDLE4;CANDLE5;CANDLE6;CANDLEY1;CANDLEY2;CANDLEY3;CANDLEY4;CANDLEY5;CANDLEY6;VIOLIN;VIOLIN1;VIOLIN2;VIOLINY1;VIOLINY2;CONT;CONT1;CONT2;CONT3;CONT4;ARR;SURF;SURF1;SURF2;SURF4;SURF6;E;A;LEGO;LEGO0;LEGO1;LEGO2;LEGO3;LEGO4;same",ctrl:"lego",expand_item:p,for_derived:!0},{name:L.clTProfile2D,sameas:L.clTH2},{name:/^TH3/,icon:"img_histo3d",class:()=>Promise.resolve().then(Se.bind(Se,1828)).then(te=>te.TH3Painter),opt:";SCAT;BOX;BOX2;BOX3;GLBOX1;GLBOX2;GLCOL",expand_item:p,for_derived:!0},{name:L.clTProfile3D,sameas:L.clTH3},{name:L.clTHStack,icon:"img_histo1d",class:()=>Se.e(217).then(Se.bind(Se,217)).then(te=>te.THStackPainter),expand_item:"fHists",opt:"NOSTACK;HIST;E;PFC;PLC"},{name:L.clTPolyMarker3D,icon:"img_histo3d",draw:()=>Promise.all([Se.e(76),Se.e(289)]).then(Se.bind(Se,4289)).then(te=>te.drawPolyMarker3D),direct:!0,frame:"3d"},{name:L.clTPolyLine3D,icon:"img_graph",draw:()=>Promise.all([Se.e(76),Se.e(289)]).then(Se.bind(Se,4289)).then(te=>te.drawPolyLine3D),direct:!0,frame:"3d"},{name:"TGraphStruct"},{name:"TGraphNode"},{name:"TGraphEdge"},{name:L.clTGraphTime,icon:"img_graph",class:()=>Se.e(280).then(Se.bind(Se,7280)).then(te=>te.TGraphTimePainter),opt:"once;repeat;first",theonly:!0},{name:X,icon:"img_graph",class:()=>Se.e(763).then(Se.bind(Se,5763)).then(te=>te.TGraph2DPainter),opt:";P;PCOL",theonly:!0},{name:L.clTGraph2DErrors,sameas:X,opt:";P;PCOL;ERR",theonly:!0},{name:L.clTGraph2DAsymmErrors,sameas:X,opt:";P;PCOL;ERR",theonly:!0},{name:L.clTGraphPolargram,icon:"img_graph",class:()=>Se.e(675).then(Se.bind(Se,6675)).then(te=>te.TGraphPolargramPainter),theonly:!0},{name:L.clTGraphPolar,icon:"img_graph",class:()=>Se.e(675).then(Se.bind(Se,6675)).then(te=>te.TGraphPolarPainter),opt:";F;L;P;PE",theonly:!0},{name:/^TGraph/,icon:"img_graph",class:()=>Se.e(679).then(Se.bind(Se,2679)).then(te=>te.TGraphPainter),opt:";L;P"},{name:"TEfficiency",icon:"img_graph",class:()=>Promise.all([Se.e(679),Se.e(508)]).then(Se.bind(Se,1508)).then(te=>te.TEfficiencyPainter),opt:";AP"},{name:L.clTCutG,sameas:L.clTGraph},{name:/^RooHist/,sameas:L.clTGraph},{name:/^RooCurve/,sameas:L.clTGraph},{name:"TScatter",icon:"img_graph",class:()=>Promise.all([Se.e(679),Se.e(165)]).then(Se.bind(Se,1165)).then(te=>te.TScatterPainter),opt:";A"},{name:"RooPlot",icon:"img_canvas",func:function lt(te,Je){return bt.apply(this,arguments)}},{name:"TRatioPlot",icon:"img_mgraph",class:()=>Promise.all([Se.e(76),Se.e(103)]).then(Se.bind(Se,6103)).then(te=>te.TRatioPlotPainter),opt:""},{name:L.clTMultiGraph,icon:"img_mgraph",class:()=>Promise.all([Se.e(679),Se.e(76),Se.e(642)]).then(Se.bind(Se,6642)).then(te=>te.TMultiGraphPainter),opt:";l;p;3d",expand_item:"fGraphs"},{name:ve.R0,icon:"img_question",draw:()=>Y().then(te=>te.drawStreamerInfo)},{name:"TWebPainting",icon:"img_graph",class:()=>Se.e(445).then(Se.bind(Se,9445)).then(te=>te.TWebPaintingPainter)},{name:_,icon:"img_canvas",draw:()=>Ve().then(te=>te.drawTPadSnapshot)},{name:"TPadWebSnapshot",sameas:_},{name:"kind:Text",icon:"img_text",func:Ye.as},{name:L.clTObjString,icon:"img_text",func:Ye.as},{name:L.clTF1,icon:"img_tf1",class:()=>Promise.resolve().then(Se.bind(Se,8868)).then(te=>te.TF1Painter),opt:";L;C;FC;FL"},{name:L.clTF2,icon:"img_tf2",class:()=>Se.e(781).then(Se.bind(Se,2781)).then(te=>te.TF2Painter),opt:";BOX;ARR;SURF;SURF1;SURF2;SURF4;SURF6;LEGO;LEGO0;LEGO1;LEGO2;LEGO3;LEGO4;same"},{name:L.clTF3,icon:"img_histo3d",class:()=>Se.e(734).then(Se.bind(Se,4734)).then(te=>te.TF3Painter),opt:";SURF"},{name:g,icon:"img_tf1",class:()=>Se.e(246).then(Se.bind(Se,5246)).then(te=>te.TSplinePainter)},{name:"TSpline5",sameas:g},{name:$,icon:"img_graph",draw:()=>Re().then(te=>te.drawEllipse),direct:!0},{name:"TArc",sameas:$},{name:"TCrown",sameas:$},{name:"TPie",icon:"img_graph",draw:()=>Re().then(te=>te.drawPie),direct:!0},{name:"TPieSlice",icon:"img_graph",dummy:!0},{name:"TExec",icon:"img_graph",dummy:!0},{name:L.clTLine,icon:"img_graph",class:()=>Se.e(76).then(Se.bind(Se,801)).then(te=>te.TLinePainter)},{name:"TArrow",icon:"img_graph",class:()=>Promise.all([Se.e(76),Se.e(302)]).then(Se.bind(Se,3302)).then(te=>te.TArrowPainter)},{name:L.clTPolyLine,icon:"img_graph",draw:()=>Re().then(te=>te.drawPolyLine),direct:!0},{name:"TCurlyLine",sameas:L.clTPolyLine},{name:"TCurlyArc",sameas:L.clTPolyLine},{name:"TParallelCoord",icon:"img_graph",dummy:!0},{name:L.clTGaxis,icon:"img_graph",class:()=>Se.e(15).then(Se.bind(Se,4015)).then(te=>te.TGaxisPainter)},{name:L.clTBox,icon:"img_graph",draw:()=>Re().then(te=>te.drawBox),direct:!0},{name:"TWbox",sameas:L.clTBox},{name:"TSliderBox",sameas:L.clTBox},{name:"TMarker",icon:"img_graph",draw:()=>Re().then(te=>te.drawMarker),direct:!0},{name:"TPolyMarker",icon:"img_graph",draw:()=>Re().then(te=>te.drawPolyMarker),direct:!0},{name:"TASImage",icon:"img_mgraph",class:()=>Se.e(666).then(Se.bind(Se,6666)).then(te=>te.TASImagePainter),opt:";z"},{name:"TJSImage",icon:"img_mgraph",draw:()=>Re().then(te=>te.drawJSImage),opt:";scale;center"},{name:L.clTGeoVolume,icon:"img_histo3d",class:()=>Q().then(te=>te.TGeoPainter),get_expand:()=>Q().then(te=>te.expandGeoObject),opt:";more;all;count;projx;projz;wire;no_screen;dflt",ctrl:"dflt"},{name:"TEveGeoShapeExtract",sameas:L.clTGeoVolume,opt:";more;all;count;projx;projz;wire;dflt"},{name:L.nsREX+"REveGeoShapeExtract",sameas:L.clTGeoVolume,opt:";more;all;count;projx;projz;wire;dflt"},{name:"TGeoOverlap",sameas:L.clTGeoVolume,opt:";more;all;count;projx;projz;wire;dflt",dflt:"dflt",ctrl:"expand"},{name:"TGeoManager",sameas:L.clTGeoVolume,opt:";more;all;count;projx;projz;wire;tracks;no_screen;dflt",dflt:"expand",ctrl:"dflt",noappend:!0,exapnd_after_draw:!0},{name:"TGeoVolumeAssembly",sameas:L.clTGeoVolume,opt:";more;all;count"},{name:/^TGeo/,class:()=>Q().then(te=>te.TGeoPainter),get_expand:()=>Q().then(te=>te.expandGeoObject),opt:";more;all;axis;compa;count;projx;projz;wire;no_screen;dflt",dflt:"dflt",ctrl:"expand"},{name:"TAxis3D",icon:"img_graph",draw:()=>Q().then(te=>te.drawAxis3D),direct:!0},{name:"kind:Command",icon:"img_execute",execute:!0},{name:"TFolder",icon:"img_folder",icon2:"img_folderopen",noinspect:!0,get_expand:()=>Y().then(te=>te.folderHierarchy)},{name:"TTask",icon:"img_task",get_expand:()=>Y().then(te=>te.taskHierarchy),for_derived:!0},{name:E,icon:"img_tree",get_expand:()=>Promise.resolve().then(Se.bind(Se,1949)).then(te=>te.treeHierarchy),draw:()=>F().then(te=>te.drawTree),dflt:"expand",opt:"player;testio",shift:L.kInspect},{name:"TNtuple",sameas:E},{name:"TNtupleD",sameas:E},{name:ke.clTBranchFunc,icon:"img_leaf_method",draw:()=>F().then(te=>te.drawTree),opt:";dump",noinspect:!0},{name:/^TBranch/,icon:"img_branch",draw:()=>F().then(te=>te.drawTree),dflt:"expand",opt:";dump",ctrl:"dump",shift:L.kInspect,ignore_online:!0,always_draw:!0},{name:/^TLeaf/,icon:"img_leaf",noexpand:!0,draw:()=>F().then(te=>te.drawTree),opt:";dump",ctrl:"dump",ignore_online:!0,always_draw:!0},{name:L.clTList,icon:"img_list",draw:()=>Y().then(te=>te.drawList),get_expand:()=>Y().then(te=>te.listHierarchy),dflt:"expand"},{name:L.clTHashList,sameas:L.clTList},{name:L.clTObjArray,sameas:L.clTList},{name:L.clTClonesArray,sameas:L.clTList},{name:L.clTMap,sameas:L.clTList},{name:L.clTColor,icon:"img_color"},{name:L.clTFile,icon:"img_file",noinspect:!0},{name:"TMemFile",icon:"img_file",noinspect:!0},{name:L.clTStyle,icon:"img_question",noexpand:!0},{name:"Session",icon:"img_globe"},{name:"kind:TopFolder",icon:"img_base"},{name:"kind:Folder",icon:"img_folder",icon2:"img_folderopen",noinspect:!0},{name:L.nsREX+"RCanvas",icon:"img_canvas",class:()=>je().then(te=>te.RCanvasPainter),opt:"",expand_item:v},{name:L.nsREX+"RCanvasDisplayItem",icon:"img_canvas",draw:()=>je().then(te=>te.drawRPadSnapshot),opt:"",expand_item:v},{name:L.nsREX+"RHist1Drawable",icon:"img_histo1d",class:()=>je("rh1").then(te=>te.RH1Painter),opt:""},{name:L.nsREX+"RHist2Drawable",icon:"img_histo2d",class:()=>je("rh2").then(te=>te.RH2Painter),opt:""},{name:L.nsREX+"RHist3Drawable",icon:"img_histo3d",class:()=>je("rh3").then(te=>te.RH3Painter),opt:""},{name:L.nsREX+"RHistDisplayItem",icon:"img_histo1d",draw:()=>je("rh3").then(te=>te.drawHistDisplayItem),opt:""},{name:L.nsREX+"RText",icon:"img_text",draw:()=>je("more").then(te=>te.drawText),opt:"",direct:"v7",csstype:"text"},{name:L.nsREX+"RFrameTitle",icon:"img_text",draw:()=>je().then(te=>te.drawRFrameTitle),opt:"",direct:"v7",csstype:"title"},{name:L.nsREX+"RPaletteDrawable",icon:"img_text",class:()=>je("more").then(te=>te.RPalettePainter),opt:""},{name:L.nsREX+"RDisplayHistStat",icon:"img_pavetext",class:()=>je("pave").then(te=>te.RHistStatsPainter),opt:""},{name:L.nsREX+"RLine",icon:"img_graph",draw:()=>je("more").then(te=>te.drawLine),opt:"",direct:"v7",csstype:"line"},{name:L.nsREX+"RBox",icon:"img_graph",draw:()=>je("more").then(te=>te.drawBox),opt:"",direct:"v7",csstype:"box"},{name:L.nsREX+"RMarker",icon:"img_graph",draw:()=>je("more").then(te=>te.drawMarker),opt:"",direct:"v7",csstype:"marker"},{name:L.nsREX+"RPave",icon:"img_pavetext",class:()=>je("pave").then(te=>te.RPavePainter),opt:""},{name:L.nsREX+"RLegend",icon:"img_graph",class:()=>je("pave").then(te=>te.RLegendPainter),opt:""},{name:L.nsREX+"RPaveText",icon:"img_pavetext",class:()=>je("pave").then(te=>te.RPaveTextPainter),opt:""},{name:L.nsREX+"RFrame",icon:"img_frame",draw:()=>je().then(te=>te.drawRFrame),opt:""},{name:L.nsREX+"RFont",icon:"img_text",draw:()=>je().then(te=>te.drawRFont),opt:"",direct:"v7",csstype:"font"},{name:L.nsREX+"RAxisDrawable",icon:"img_frame",draw:()=>je().then(te=>te.drawRAxis),opt:""}],cache:{}};function I(te){return C.lst.push(te),te}function U(te,Je){if(!(0,L.isStr)(te))return null;""===Je&&(Je=null);let tt=null;if(null===Je&&te in C.cache)return C.cache[te];const Fe=0===te.indexOf(L.prROOT)?te.slice(5):`kind:${te}`;let Ne=0;for(let rt=0;rt=0)return St}}else if(Je===Ne)return St;++Ne}return tt}function k(te){return(0,L.isStr)(te)&&(te=U(te)),!!(0,L.isObject)(te)&&(te.func||te.class||te.draw||te.draw_field)}function Z(te,Je){const tt={opts:null,inspect:!1,expand:!1,draw:!1,handle:null};if(!(0,L.isStr)(te))return tt;let Fe=!1,Ne=!1,rt=!1;(0,L.isStr)(Je)||(Je="");for(let St=0;St<1e3;++St){const pt=U(te,St);if(!(pt&&(tt.handle||(tt.handle=pt),pt.noinspect&&(Ne=!0),pt.noappend&&(tt.noappend=!0),(pt.expand||pt.get_expand||pt.expand_item||pt.can_expand)&&(rt=!0),pt.func||pt.class||pt.draw)))break;if(Fe=!0,!("opt"in pt))continue;const st=pt.opt.split(";");for(let vt=0;vt=0))&&(null===tt.opts&&(tt.opts=[]),tt.opts.indexOf(st[vt])<0&&tt.opts.push(st[vt]));if(pt.theonly)break}return Je.indexOf("noinspect")>=0&&(Ne=!0),Fe&&null===tt.opts&&(tt.opts=[""]),!Fe&&0===te.indexOf(L.prROOT)&&!Ne&&(tt.opts=[]),!Ne&&tt.opts&&tt.opts.push(L.kInspect),tt.inspect=!Ne,tt.expand=rt,tt.draw=!!tt.opts,tt}function he(te,Je,tt){return V.apply(this,arguments)}function V(){return(V=(0,Te.A)(function*(te,Je,tt){if(!(0,L.isObject)(Je))return Promise.reject(Error("not an object in draw call"));if((0,L.isStr)(tt)&&0===tt.indexOf(L.kInspect))return Y().then(pt=>pt.drawInspector(te,Je,tt));let Fe,Ne,St;if("_typename"in Je)Ne="type "+Je._typename,Fe=U(L.prROOT+Je._typename,tt);else{if(!("_kind"in Je))return Y().then(pt=>pt.drawInspector(te,Je,tt));Ne="kind "+Je._kind,Fe=U(Je._kind,tt)}if(!Fe)return Promise.reject(Error(`Object of ${Ne} cannot be shown with draw`));if(Fe.dummy)return null;if(Fe.draw_field&&Je[Fe.draw_field])return he(te,Je[Fe.draw_field],tt||Fe.draw_field_opt);if(!k(Fe)){if(tt&&tt.indexOf("same")>=0){const pt=(0,Ye.Nn)(te);if((0,L.isFunc)(pt?.performDrop))return pt.performDrop(Je,"",null,tt)}return Promise.reject(Error(`Function not specified to draw object ${Ne}`))}function rt(){let pt,st;return"v7"===Fe.direct?pt=Se.e(990).then(Se.bind(Se,1990)).then(vt=>(st=new vt.RObjectPainter(te,Je,tt,Fe.csstype),st.redraw=Fe.func,vt.ensureRCanvas(st,Fe.frame||!1))).then(()=>st.redraw()):Fe.direct?(st=new Ye.JW(te,Je,tt),st.redraw=Fe.func,pt=Ve().then(vt=>vt.ensureTCanvas(st,Fe.frame||!1)).then(()=>st.redraw())):pt=(0,L.getPromise)(Fe.func(te,Je,tt)),pt.then(vt=>{if(st||(st=vt),!1===st)return null;if(!st)throw Error(`Fail to draw object ${Ne}`);return(0,L.isObject)(st)&&!st.options&&(st.options={original:tt||""}),st})}if((0,L.isFunc)(Fe.func))return rt();if((0,L.isFunc)(Fe.class))St=Fe.class().then(pt=>{Fe.func=pt.draw});else if((0,L.isFunc)(Fe.draw))St=Fe.draw().then(pt=>{Fe.func=pt});else{if(!Fe.func||!(0,L.isStr)(Fe.func))return Promise.reject(Error(`Draw function or class not specified to draw ${Ne}`));if(!Fe.prereq&&!Fe.script)return Promise.reject(Error(`Prerequicities to load ${Fe.func} are not specified`));St=(L.internals.ignore_v6?Promise.resolve(!0):(0,L._ensureJSROOT)().then(st=>(Fe.prereq?st.require(Fe.prereq):Promise.resolve(!0)).then(()=>{if(Fe.script)return(0,L.loadScript)(Fe.script)}).then(()=>st._complete_loading()))).then(()=>{const st=(0,L.findFunction)(Fe.func);if(!(0,L.isFunc)(st))return Promise.reject(Error(`Fail to find function ${Fe.func} after loading ${Fe.prereq||Fe.script}`));Fe.func=st})}return St.then(()=>rt())})).apply(this,arguments)}function b(te,Je,tt){return P.apply(this,arguments)}function P(){return(P=(0,Te.A)(function*(te,Je,tt){if(!(0,L.isObject)(Je))return Promise.reject(Error("not an object in redraw"));const Fe=(0,Ye.m6)(te);let Ne,St,rt=null;if(Je._typename&&(Ne=U(L.prROOT+Je._typename)),Ne?.draw_field&&Je[Ne.draw_field]&&(Je=Je[Ne.draw_field]),Fe)if(Fe.matchObjectType(Je._typename))St=Fe.redrawObject(Je,tt),St&&(rt=Fe);else for(let pt=0;ptrt):((0,Ye.tP)(te),he(te,Je,tt))})).apply(this,arguments)}function Me(te){te.prototype.drawObject=(...Je)=>he(...Je).catch(tt=>(console.log(`Error ${tt?.message??tt} at ${tt?.stack??"uncknown place"}`),null)),te.prototype.getObjectDrawSettings=Z}function je(te){return Ge.apply(this,arguments)}function Ge(){return(Ge=(0,Te.A)(function*(te){return Se.e(990).then(Se.bind(Se,1990)).then(Je=>{switch(Me(Je.RPadPainter),te){case"more":return Promise.all([Se.e(990),Se.e(696)]).then(Se.bind(Se,8696));case"pave":return Promise.all([Se.e(990),Se.e(409)]).then(Se.bind(Se,4409));case"rh1":return Promise.all([Se.e(990),Se.e(521),Se.e(908)]).then(Se.bind(Se,7908));case"rh2":return Promise.all([Se.e(990),Se.e(521),Se.e(125)]).then(Se.bind(Se,2125));case"rh3":return Promise.all([Se.e(990),Se.e(521),Se.e(125),Se.e(908),Se.e(746)]).then(Se.bind(Se,8746))}return Je})})).apply(this,arguments)}function bt(){return bt=(0,Te.A)(function*(te,Je){return he(te,Je._hist,"hist").then(function(){var tt=(0,Te.A)(function*(Fe){const Ne=[];for(let rt=0;rtFe)});return function(Fe){return tt.apply(this,arguments)}}())}),bt.apply(this,arguments)}L.internals.addDrawFunc=I,Me(Ze.jg),L.internals.addStreamerInfosForPainter=function T(te){if(!te)return;const Je=[L.clTObject,L.clTNamed,L.clTString,"TCollection",L.clTAttLine,L.clTAttFill,L.clTAttMarker,L.clTAttText];function tt(Fe,Ne){const rt=Fe.fElements?.arr[0];if("BASE"!==rt?.fTypeName||Ne>4||Je.indexOf(rt.fName)>=0)return null;let St=U(L.prROOT+rt.fName);if(St&&!St.for_derived&&(St=null),null===St)for(let pt=0;pt{if(null!==U(L.prROOT+Fe.fName))return;const Ne=tt(Fe,0);if(Ne){const rt=Object.assign({},Ne);delete rt.for_derived,rt.name=Fe.fName,I(rt)}})}},2454:(Yr,mt,Se)=>{"use strict";Se.r(mt),Se.d(mt,{ClonedNodes:()=>Z.De,GeoDrawingControl:()=>rt,TGeoPainter:()=>$n,build:()=>yo,createGeoPainter:()=>Sn,drawAxis3D:()=>Bs,drawDummy3DGeom:()=>Lr,expandGeoObject:()=>bt,produceRenderOrder:()=>Z.Pz});var Te=Se(4882),x=Se(8872),L=Se(2923),ve=Se(5992);class ke{constructor(K,ge,ye,Pe,At="div"){this.parent=K,this.object=ge,this.property=ye,this._disabled=!1,this._hidden=!1,this.initialValue=this.getValue(),this.domElement=document.createElement("div"),this.domElement.classList.add("controller"),this.domElement.classList.add(Pe),this.$name=document.createElement("div"),this.$name.classList.add("name"),ke.nextNameID=ke.nextNameID||0,this.$name.id="lil-gui-name-"+ ++ke.nextNameID,this.$widget=document.createElement(At),this.$widget.classList.add("widget"),this.$disable=this.$widget,this.domElement.appendChild(this.$name),this.domElement.appendChild(this.$widget),this.domElement.addEventListener("keydown",Ht=>Ht.stopPropagation()),this.domElement.addEventListener("keyup",Ht=>Ht.stopPropagation()),this.parent.children.push(this),this.parent.controllers.push(this),this.parent.$children.appendChild(this.domElement),this._listenCallback=this._listenCallback.bind(this),this.name(ye)}name(K){return this._name=K,this.$name.innerHTML=K,this}onChange(K){return this._onChange=K,this}_callOnChange(){this.parent._callOnChange(this),void 0!==this._onChange&&this._onChange.call(this,this.getValue()),this._changed=!0}onFinishChange(K){return this._onFinishChange=K,this}_callOnFinishChange(){this._changed&&(this.parent._callOnFinishChange(this),void 0!==this._onFinishChange&&this._onFinishChange.call(this,this.getValue())),this._changed=!1}reset(){return this.setValue(this.initialValue),this._callOnFinishChange(),this}enable(K=!0){return this.disable(!K)}disable(K=!0){return K===this._disabled||(this._disabled=K,this.domElement.classList.toggle("disabled",K),this.$disable.toggleAttribute("disabled",K)),this}show(K=!0){return this._hidden=!K,this.domElement.style.display=this._hidden?"none":"",this}hide(){return this.show(!1)}options(K){const ge=this.parent.add(this.object,this.property,K);return ge.name(this._name),this.destroy(),ge}min(K){return this}max(K){return this}step(K){return this}decimals(K){return this}listen(K=!0){return this._listening=K,void 0!==this._listenCallbackID&&(cancelAnimationFrame(this._listenCallbackID),this._listenCallbackID=void 0),this._listening&&this._listenCallback(),this}_listenCallback(){this._listenCallbackID=requestAnimationFrame(this._listenCallback);const K=this.save();K!==this._listenPrevValue&&this.updateDisplay(),this._listenPrevValue=K}getValue(){return this.object[this.property]}setValue(K){return this.object[this.property]=K,this._callOnChange(),this.updateDisplay(),this}updateDisplay(){return this}load(K){return this.setValue(K),this._callOnFinishChange(),this}save(){return this.getValue()}destroy(){this.listen(!1),this.parent.children.splice(this.parent.children.indexOf(this),1),this.parent.controllers.splice(this.parent.controllers.indexOf(this),1),this.parent.$children.removeChild(this.domElement)}}class ot extends ke{constructor(K,ge,ye){super(K,ge,ye,"boolean","label"),this.$input=document.createElement("input"),this.$input.setAttribute("type","checkbox"),this.$input.setAttribute("aria-labelledby",this.$name.id),this.$widget.appendChild(this.$input),this.$input.addEventListener("change",()=>{this.setValue(this.$input.checked),this._callOnFinishChange()}),this.$disable=this.$input,this.updateDisplay()}updateDisplay(){return this.$input.checked=this.getValue(),this}}function Ye(xt){let K,ge;return(K=xt.match(/(#|0x)?([a-f0-9]{6})/i))?ge=K[2]:(K=xt.match(/rgb\(\s*(\d*)\s*,\s*(\d*)\s*,\s*(\d*)\s*\)/))?ge=parseInt(K[1]).toString(16).padStart(2,0)+parseInt(K[2]).toString(16).padStart(2,0)+parseInt(K[3]).toString(16).padStart(2,0):(K=xt.match(/^#?([a-f0-9])([a-f0-9])([a-f0-9])$/i))&&(ge=K[1]+K[1]+K[2]+K[2]+K[3]+K[3]),!!ge&&"#"+ge}const Re={isPrimitive:!0,match:xt=>"number"==typeof xt,fromHexString:xt=>parseInt(xt.substring(1),16),toHexString:xt=>"#"+xt.toString(16).padStart(6,0)},De=[{isPrimitive:!0,match:xt=>"string"==typeof xt,fromHexString:Ye,toHexString:Ye},Re,{isPrimitive:!1,match:xt=>Array.isArray(xt),fromHexString(xt,K,ge=1){const ye=Re.fromHexString(xt);K[0]=(ye>>16&255)/255*ge,K[1]=(ye>>8&255)/255*ge,K[2]=(255&ye)/255*ge},toHexString:([xt,K,ge],ye=1)=>Re.toHexString(xt*(ye=255/ye)<<16^K*ye<<8^ge*ye)},{isPrimitive:!1,match:xt=>Object(xt)===xt,fromHexString(xt,K,ge=1){const ye=Re.fromHexString(xt);K.r=(ye>>16&255)/255*ge,K.g=(ye>>8&255)/255*ge,K.b=(255&ye)/255*ge},toHexString:({r:xt,g:K,b:ge},ye=1)=>Re.toHexString(xt*(ye=255/ye)<<16^K*ye<<8^ge*ye)}];class J extends ke{constructor(K,ge,ye,Pe){super(K,ge,ye,"color"),this.$input=document.createElement("input"),this.$input.setAttribute("type","color"),this.$input.setAttribute("tabindex",-1),this.$input.setAttribute("aria-labelledby",this.$name.id),this.$text=document.createElement("input"),this.$text.setAttribute("type","text"),this.$text.setAttribute("spellcheck","false"),this.$text.setAttribute("aria-labelledby",this.$name.id),this.$display=document.createElement("div"),this.$display.classList.add("display"),this.$display.appendChild(this.$input),this.$widget.appendChild(this.$display),this.$widget.appendChild(this.$text),this._format=function F(xt){return De.find(K=>K.match(xt))}(this.initialValue),this._rgbScale=Pe,this._initialValueHexString=this.save(),this._textFocused=!1,this.$input.addEventListener("input",()=>{this._setValueFromHexString(this.$input.value)}),this.$input.addEventListener("blur",()=>{this._callOnFinishChange()}),this.$text.addEventListener("input",()=>{const At=Ye(this.$text.value);At&&this._setValueFromHexString(At)}),this.$text.addEventListener("focus",()=>{this._textFocused=!0,this.$text.select()}),this.$text.addEventListener("blur",()=>{this._textFocused=!1,this.updateDisplay(),this._callOnFinishChange()}),this.$disable=this.$text,this.updateDisplay()}reset(){return this._setValueFromHexString(this._initialValueHexString),this}_setValueFromHexString(K){if(this._format.isPrimitive){const ge=this._format.fromHexString(K);this.setValue(ge)}else this._format.fromHexString(K,this.getValue(),this._rgbScale),this._callOnChange(),this.updateDisplay()}save(){return this._format.toHexString(this.getValue(),this._rgbScale)}load(K){return this._setValueFromHexString(K),this._callOnFinishChange(),this}updateDisplay(){return this.$input.value=this._format.toHexString(this.getValue(),this._rgbScale),this._textFocused||(this.$text.value=this.$input.value.substring(1)),this.$display.style.backgroundColor=this.$input.value,this}}class Y extends ke{constructor(K,ge,ye){super(K,ge,ye,"function"),this.$button=document.createElement("button"),this.$button.appendChild(this.$name),this.$widget.appendChild(this.$button),this.$button.addEventListener("click",Pe=>{Pe.preventDefault(),this.getValue().call(this.object),this._callOnChange()}),this.$button.addEventListener("touchstart",()=>{},{passive:!0}),this.$disable=this.$button}}class ue extends ke{constructor(K,ge,ye,Pe,At,Ht){super(K,ge,ye,"number"),this._initInput(),this.min(Pe),this.max(At);const Nt=void 0!==Ht;this.step(Nt?Ht:this._getImplicitStep(),Nt),this.updateDisplay()}decimals(K){return this._decimals=K,this.updateDisplay(),this}min(K){return this._min=K,this._onUpdateMinMax(),this}max(K){return this._max=K,this._onUpdateMinMax(),this}step(K,ge=!0){return this._step=K,this._stepExplicit=ge,this}updateDisplay(){const K=this.getValue();if(this._hasSlider){let ge=(K-this._min)/(this._max-this._min);ge=Math.max(0,Math.min(ge,1)),this.$fill.style.width=100*ge+"%"}return this._inputFocused||(this.$input.value=void 0===this._decimals?K:K.toFixed(this._decimals)),this}_initInput(){this.$input=document.createElement("input"),this.$input.setAttribute("type","text"),this.$input.setAttribute("aria-labelledby",this.$name.id),window.matchMedia("(pointer: coarse)").matches&&(this.$input.setAttribute("type","number"),this.$input.setAttribute("step","any")),this.$widget.appendChild(this.$input),this.$disable=this.$input;const ye=Wi=>{const Ln=parseFloat(this.$input.value);isNaN(Ln)||(this._snapClampSetValue(Ln+Wi),this.$input.value=this.getValue())};let Nt,nn,hn,kn,cn,Ht=!1;const Pi=Wi=>{if(Ht){const Ln=Wi.clientX-Nt;Math.abs(Wi.clientY-nn)>5?(Wi.preventDefault(),this.$input.blur(),Ht=!1,this._setDraggingStyle(!0,"vertical")):Math.abs(Ln)>5&&Si()}Ht||(cn-=(Wi.clientY-hn)*this._step*this._arrowKeyMultiplier(Wi),kn+cn>this._max?cn=this._max-kn:kn+cn{this._setDraggingStyle(!1,"vertical"),this._callOnFinishChange(),window.removeEventListener("mousemove",Pi),window.removeEventListener("mouseup",Si)};this.$input.addEventListener("input",()=>{let Wi=parseFloat(this.$input.value);isNaN(Wi)||(this._stepExplicit&&(Wi=this._snap(Wi)),this.setValue(this._clamp(Wi)))}),this.$input.addEventListener("keydown",Wi=>{"Enter"===Wi.key&&this.$input.blur(),"ArrowUp"===Wi.code&&(Wi.preventDefault(),ye(this._step*this._arrowKeyMultiplier(Wi))),"ArrowDown"===Wi.code&&(Wi.preventDefault(),ye(this._step*this._arrowKeyMultiplier(Wi)*-1))}),this.$input.addEventListener("wheel",Wi=>{this._inputFocused&&(Wi.preventDefault(),ye(this._step*this._normalizeMouseWheel(Wi)))},{passive:!1}),this.$input.addEventListener("mousedown",Wi=>{Nt=Wi.clientX,nn=hn=Wi.clientY,Ht=!0,kn=this.getValue(),cn=0,window.addEventListener("mousemove",Pi),window.addEventListener("mouseup",Si)}),this.$input.addEventListener("focus",()=>{this._inputFocused=!0}),this.$input.addEventListener("blur",()=>{this._inputFocused=!1,this.updateDisplay(),this._callOnFinishChange()})}_initSlider(){this._hasSlider=!0,this.$slider=document.createElement("div"),this.$slider.classList.add("slider"),this.$fill=document.createElement("div"),this.$fill.classList.add("fill"),this.$slider.appendChild(this.$fill),this.$widget.insertBefore(this.$slider,this.$input),this.domElement.classList.add("hasSlider");const ge=Jn=>{const Wi=this.$slider.getBoundingClientRect();let Ln=((Jn,Wi,Ln,Rs,oe)=>(Jn-Wi)/(Ln-Wi)*(this._max-Rs)+Rs)(Jn,Wi.left,Wi.right,this._min);this._snapClampSetValue(Ln)},Pe=Jn=>{ge(Jn.clientX)},At=()=>{this._callOnFinishChange(),this._setDraggingStyle(!1),window.removeEventListener("mousemove",Pe),window.removeEventListener("mouseup",At)};let Nt,nn,Ht=!1;const hn=Jn=>{Jn.preventDefault(),this._setDraggingStyle(!0),ge(Jn.touches[0].clientX),Ht=!1},cn=Jn=>{if(Ht){const Ln=Jn.touches[0].clientY-nn;Math.abs(Jn.touches[0].clientX-Nt)>Math.abs(Ln)?hn(Jn):(window.removeEventListener("touchmove",cn),window.removeEventListener("touchend",In))}else Jn.preventDefault(),ge(Jn.touches[0].clientX)},In=()=>{this._callOnFinishChange(),this._setDraggingStyle(!1),window.removeEventListener("touchmove",cn),window.removeEventListener("touchend",In)},ci=this._callOnFinishChange.bind(this);let Si;this.$slider.addEventListener("mousedown",Jn=>{this._setDraggingStyle(!0),ge(Jn.clientX),window.addEventListener("mousemove",Pe),window.addEventListener("mouseup",At)}),this.$slider.addEventListener("touchstart",Jn=>{Jn.touches.length>1||(this._hasScrollBar?(Nt=Jn.touches[0].clientX,nn=Jn.touches[0].clientY,Ht=!0):hn(Jn),window.addEventListener("touchmove",cn,{passive:!1}),window.addEventListener("touchend",In))},{passive:!1}),this.$slider.addEventListener("wheel",Jn=>{if(Math.abs(Jn.deltaX)this._max&&(K=this._max),K}_snapClampSetValue(K){this.setValue(this._clamp(this._snap(K)))}get _hasScrollBar(){const K=this.parent.root.$children;return K.scrollHeight>K.clientHeight}get _hasMin(){return void 0!==this._min}get _hasMax(){return void 0!==this._max}}class Q extends ke{constructor(K,ge,ye,Pe){super(K,ge,ye,"option"),this.$select=document.createElement("select"),this.$select.setAttribute("aria-labelledby",this.$name.id),this.$display=document.createElement("div"),this.$display.classList.add("display"),this._values=Array.isArray(Pe)?Pe:Object.values(Pe),this._names=Array.isArray(Pe)?Pe:Object.keys(Pe),this._names.forEach(At=>{const Ht=document.createElement("option");Ht.innerHTML=At,this.$select.appendChild(Ht)}),this.$select.addEventListener("change",()=>{this.setValue(this._values[this.$select.selectedIndex]),this._callOnFinishChange()}),this.$select.addEventListener("focus",()=>{this.$display.classList.add("focus")}),this.$select.addEventListener("blur",()=>{this.$display.classList.remove("focus")}),this.$widget.appendChild(this.$select),this.$widget.appendChild(this.$display),this.$disable=this.$select,this.updateDisplay()}updateDisplay(){const K=this.getValue(),ge=this._values.indexOf(K);return this.$select.selectedIndex=ge,this.$display.innerHTML=-1===ge?K:this._names[ge],this}}class me extends ke{constructor(K,ge,ye){super(K,ge,ye,"string"),this.$input=document.createElement("input"),this.$input.setAttribute("type","text"),this.$input.setAttribute("aria-labelledby",this.$name.id),this.$input.addEventListener("input",()=>{this.setValue(this.$input.value)}),this.$input.addEventListener("keydown",Pe=>{"Enter"===Pe.code&&this.$input.blur()}),this.$input.addEventListener("blur",()=>{this._callOnFinishChange()}),this.$widget.appendChild(this.$input),this.$disable=this.$input,this.updateDisplay()}updateDisplay(){return this.$input.value=this.getValue(),this}}let $=!1;class g{constructor({parent:K,autoPlace:ge=void 0===K,container:ye,width:Pe,title:At="Controls",closeFolders:Ht=!1,injectStyles:Nt=!0,touchStyles:nn=!0}={}){if(this.parent=K,this.root=K?K.root:this,this.children=[],this.controllers=[],this.folders=[],this._closed=!1,this._hidden=!1,this.domElement=document.createElement("div"),this.domElement.classList.add("lil-gui"),this.$title=document.createElement("div"),this.$title.classList.add("title"),this.$title.setAttribute("role","button"),this.$title.setAttribute("aria-expanded",!0),this.$title.setAttribute("tabindex",0),this.$title.addEventListener("click",()=>this.openAnimated(this._closed)),this.$title.addEventListener("keydown",hn=>{("Enter"===hn.code||"Space"===hn.code)&&(hn.preventDefault(),this.$title.click())}),this.$title.addEventListener("touchstart",()=>{},{passive:!0}),this.$children=document.createElement("div"),this.$children.classList.add("children"),this.domElement.appendChild(this.$title),this.domElement.appendChild(this.$children),this.title(At),this.parent)return this.parent.children.push(this),this.parent.folders.push(this),void this.parent.$children.appendChild(this.domElement);this.domElement.classList.add("root"),nn&&this.domElement.classList.add("allow-touch-styles"),!$&&Nt&&(function B(xt){const K=document.createElement("style");K.innerHTML=xt;const ge=document.querySelector("head link[rel=stylesheet], head style");ge?document.head.insertBefore(K,ge):document.head.appendChild(K)}('.lil-gui {\n font-family: var(--font-family);\n font-size: var(--font-size);\n line-height: 1;\n font-weight: normal;\n font-style: normal;\n text-align: left;\n background-color: var(--background-color);\n color: var(--text-color);\n user-select: none;\n -webkit-user-select: none;\n touch-action: manipulation;\n --background-color: #1f1f1f;\n --text-color: #ebebeb;\n --title-background-color: #111111;\n --title-text-color: #ebebeb;\n --widget-color: #424242;\n --hover-color: #4f4f4f;\n --focus-color: #595959;\n --number-color: #2cc9ff;\n --string-color: #a2db3c;\n --font-size: 11px;\n --input-font-size: 11px;\n --font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;\n --font-family-mono: Menlo, Monaco, Consolas, "Droid Sans Mono", monospace;\n --padding: 4px;\n --spacing: 4px;\n --widget-height: 20px;\n --title-height: calc(var(--widget-height) + var(--spacing) * 1.25);\n --name-width: 45%;\n --slider-knob-width: 2px;\n --slider-input-width: 27%;\n --color-input-width: 27%;\n --slider-input-min-width: 45px;\n --color-input-min-width: 45px;\n --folder-indent: 7px;\n --widget-padding: 0 0 0 3px;\n --widget-border-radius: 2px;\n --checkbox-size: calc(0.75 * var(--widget-height));\n --scrollbar-width: 5px;\n}\n.lil-gui, .lil-gui * {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n}\n.lil-gui.root {\n width: var(--width, 245px);\n display: flex;\n flex-direction: column;\n}\n.lil-gui.root > .title {\n background: var(--title-background-color);\n color: var(--title-text-color);\n}\n.lil-gui.root > .children {\n overflow-x: hidden;\n overflow-y: auto;\n}\n.lil-gui.root > .children::-webkit-scrollbar {\n width: var(--scrollbar-width);\n height: var(--scrollbar-width);\n background: var(--background-color);\n}\n.lil-gui.root > .children::-webkit-scrollbar-thumb {\n border-radius: var(--scrollbar-width);\n background: var(--focus-color);\n}\n@media (pointer: coarse) {\n .lil-gui.allow-touch-styles, .lil-gui.allow-touch-styles .lil-gui {\n --widget-height: 28px;\n --padding: 6px;\n --spacing: 6px;\n --font-size: 13px;\n --input-font-size: 16px;\n --folder-indent: 10px;\n --scrollbar-width: 7px;\n --slider-input-min-width: 50px;\n --color-input-min-width: 65px;\n }\n}\n.lil-gui.force-touch-styles, .lil-gui.force-touch-styles .lil-gui {\n --widget-height: 28px;\n --padding: 6px;\n --spacing: 6px;\n --font-size: 13px;\n --input-font-size: 16px;\n --folder-indent: 10px;\n --scrollbar-width: 7px;\n --slider-input-min-width: 50px;\n --color-input-min-width: 65px;\n}\n.lil-gui.autoPlace {\n max-height: 100%;\n position: fixed;\n top: 0;\n right: 15px;\n z-index: 1001;\n}\n\n.lil-gui .controller {\n display: flex;\n align-items: center;\n padding: 0 var(--padding);\n margin: var(--spacing) 0;\n}\n.lil-gui .controller.disabled {\n opacity: 0.5;\n}\n.lil-gui .controller.disabled, .lil-gui .controller.disabled * {\n pointer-events: none !important;\n}\n.lil-gui .controller > .name {\n min-width: var(--name-width);\n flex-shrink: 0;\n white-space: pre;\n padding-right: var(--spacing);\n line-height: var(--widget-height);\n}\n.lil-gui .controller .widget {\n position: relative;\n display: flex;\n align-items: center;\n width: 100%;\n min-height: var(--widget-height);\n}\n.lil-gui .controller.string input {\n color: var(--string-color);\n}\n.lil-gui .controller.boolean .widget {\n cursor: pointer;\n}\n.lil-gui .controller.color .display {\n width: 100%;\n height: var(--widget-height);\n border-radius: var(--widget-border-radius);\n position: relative;\n}\n@media (hover: hover) {\n .lil-gui .controller.color .display:hover:before {\n content: " ";\n display: block;\n position: absolute;\n border-radius: var(--widget-border-radius);\n border: 1px solid #fff9;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n }\n}\n.lil-gui .controller.color input[type=color] {\n opacity: 0;\n width: 100%;\n height: 100%;\n cursor: pointer;\n}\n.lil-gui .controller.color input[type=text] {\n margin-left: var(--spacing);\n font-family: var(--font-family-mono);\n min-width: var(--color-input-min-width);\n width: var(--color-input-width);\n flex-shrink: 0;\n}\n.lil-gui .controller.option select {\n opacity: 0;\n position: absolute;\n width: 100%;\n max-width: 100%;\n}\n.lil-gui .controller.option .display {\n position: relative;\n pointer-events: none;\n border-radius: var(--widget-border-radius);\n height: var(--widget-height);\n line-height: var(--widget-height);\n max-width: 100%;\n overflow: hidden;\n word-break: break-all;\n padding-left: 0.55em;\n padding-right: 1.75em;\n background: var(--widget-color);\n}\n@media (hover: hover) {\n .lil-gui .controller.option .display.focus {\n background: var(--focus-color);\n }\n}\n.lil-gui .controller.option .display.active {\n background: var(--focus-color);\n}\n.lil-gui .controller.option .display:after {\n font-family: "lil-gui";\n content: "\u2195";\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n padding-right: 0.375em;\n}\n.lil-gui .controller.option .widget,\n.lil-gui .controller.option select {\n cursor: pointer;\n}\n@media (hover: hover) {\n .lil-gui .controller.option .widget:hover .display {\n background: var(--hover-color);\n }\n}\n.lil-gui .controller.number input {\n color: var(--number-color);\n}\n.lil-gui .controller.number.hasSlider input {\n margin-left: var(--spacing);\n width: var(--slider-input-width);\n min-width: var(--slider-input-min-width);\n flex-shrink: 0;\n}\n.lil-gui .controller.number .slider {\n width: 100%;\n height: var(--widget-height);\n background-color: var(--widget-color);\n border-radius: var(--widget-border-radius);\n padding-right: var(--slider-knob-width);\n overflow: hidden;\n cursor: ew-resize;\n touch-action: pan-y;\n}\n@media (hover: hover) {\n .lil-gui .controller.number .slider:hover {\n background-color: var(--hover-color);\n }\n}\n.lil-gui .controller.number .slider.active {\n background-color: var(--focus-color);\n}\n.lil-gui .controller.number .slider.active .fill {\n opacity: 0.95;\n}\n.lil-gui .controller.number .fill {\n height: 100%;\n border-right: var(--slider-knob-width) solid var(--number-color);\n box-sizing: content-box;\n}\n\n.lil-gui-dragging .lil-gui {\n --hover-color: var(--widget-color);\n}\n.lil-gui-dragging * {\n cursor: ew-resize !important;\n}\n\n.lil-gui-dragging.lil-gui-vertical * {\n cursor: ns-resize !important;\n}\n\n.lil-gui .title {\n height: var(--title-height);\n line-height: calc(var(--title-height) - 4px);\n font-weight: 600;\n padding: 0 var(--padding);\n -webkit-tap-highlight-color: transparent;\n cursor: pointer;\n outline: none;\n text-decoration-skip: objects;\n}\n.lil-gui .title:before {\n font-family: "lil-gui";\n content: "\u25be";\n padding-right: 2px;\n display: inline-block;\n}\n.lil-gui .title:active {\n background: var(--title-background-color);\n opacity: 0.75;\n}\n@media (hover: hover) {\n body:not(.lil-gui-dragging) .lil-gui .title:hover {\n background: var(--title-background-color);\n opacity: 0.85;\n }\n .lil-gui .title:focus {\n text-decoration: underline var(--focus-color);\n }\n}\n.lil-gui.root > .title:focus {\n text-decoration: none !important;\n}\n.lil-gui.closed > .title:before {\n content: "\u25b8";\n}\n.lil-gui.closed > .children {\n transform: translateY(-7px);\n opacity: 0;\n}\n.lil-gui.closed:not(.transition) > .children {\n display: none;\n}\n.lil-gui.transition > .children {\n transition-duration: 300ms;\n transition-property: height, opacity, transform;\n transition-timing-function: cubic-bezier(0.2, 0.6, 0.35, 1);\n overflow: hidden;\n pointer-events: none;\n}\n.lil-gui .children:empty:before {\n content: "Empty";\n padding: 0 var(--padding);\n margin: var(--spacing) 0;\n display: block;\n height: var(--widget-height);\n font-style: italic;\n line-height: var(--widget-height);\n opacity: 0.5;\n}\n.lil-gui.root > .children > .lil-gui > .title {\n border: 0 solid var(--widget-color);\n border-width: 1px 0;\n transition: border-color 300ms;\n}\n.lil-gui.root > .children > .lil-gui.closed > .title {\n border-bottom-color: transparent;\n}\n.lil-gui + .controller {\n border-top: 1px solid var(--widget-color);\n margin-top: 0;\n padding-top: var(--spacing);\n}\n.lil-gui .lil-gui .lil-gui > .title {\n border: none;\n}\n.lil-gui .lil-gui .lil-gui > .children {\n border: none;\n margin-left: var(--folder-indent);\n border-left: 2px solid var(--widget-color);\n}\n.lil-gui .lil-gui .controller {\n border: none;\n}\n\n.lil-gui input {\n -webkit-tap-highlight-color: transparent;\n border: 0;\n outline: none;\n font-family: var(--font-family);\n font-size: var(--input-font-size);\n border-radius: var(--widget-border-radius);\n height: var(--widget-height);\n background: var(--widget-color);\n color: var(--text-color);\n width: 100%;\n}\n@media (hover: hover) {\n .lil-gui input:hover {\n background: var(--hover-color);\n }\n .lil-gui input:active {\n background: var(--focus-color);\n }\n}\n.lil-gui input:disabled {\n opacity: 1;\n}\n.lil-gui input[type=text],\n.lil-gui input[type=number] {\n padding: var(--widget-padding);\n}\n.lil-gui input[type=text]:focus,\n.lil-gui input[type=number]:focus {\n background: var(--focus-color);\n}\n.lil-gui input::-webkit-outer-spin-button,\n.lil-gui input::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0;\n}\n.lil-gui input[type=number] {\n -moz-appearance: textfield;\n}\n.lil-gui input[type=checkbox] {\n appearance: none;\n -webkit-appearance: none;\n height: var(--checkbox-size);\n width: var(--checkbox-size);\n border-radius: var(--widget-border-radius);\n text-align: center;\n cursor: pointer;\n}\n.lil-gui input[type=checkbox]:checked:before {\n font-family: "lil-gui";\n content: "\u2713";\n font-size: var(--checkbox-size);\n line-height: var(--checkbox-size);\n}\n@media (hover: hover) {\n .lil-gui input[type=checkbox]:focus {\n box-shadow: inset 0 0 0 1px var(--focus-color);\n }\n}\n.lil-gui button {\n -webkit-tap-highlight-color: transparent;\n outline: none;\n cursor: pointer;\n font-family: var(--font-family);\n font-size: var(--font-size);\n color: var(--text-color);\n width: 100%;\n height: var(--widget-height);\n text-transform: none;\n background: var(--widget-color);\n border-radius: var(--widget-border-radius);\n border: 1px solid var(--widget-color);\n text-align: center;\n line-height: calc(var(--widget-height) - 4px);\n}\n@media (hover: hover) {\n .lil-gui button:hover {\n background: var(--hover-color);\n border-color: var(--hover-color);\n }\n .lil-gui button:focus {\n border-color: var(--focus-color);\n }\n}\n.lil-gui button:active {\n background: var(--focus-color);\n}\n\n@font-face {\n font-family: "lil-gui";\n src: url("data:application/font-woff;charset=utf-8;base64,d09GRgABAAAAAAUsAAsAAAAACJwAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABHU1VCAAABCAAAAH4AAADAImwmYE9TLzIAAAGIAAAAPwAAAGBKqH5SY21hcAAAAcgAAAD0AAACrukyyJBnbHlmAAACvAAAAF8AAACEIZpWH2hlYWQAAAMcAAAAJwAAADZfcj2zaGhlYQAAA0QAAAAYAAAAJAC5AHhobXR4AAADXAAAABAAAABMAZAAAGxvY2EAAANsAAAAFAAAACgCEgIybWF4cAAAA4AAAAAeAAAAIAEfABJuYW1lAAADoAAAASIAAAIK9SUU/XBvc3QAAATEAAAAZgAAAJCTcMc2eJxVjbEOgjAURU+hFRBK1dGRL+ALnAiToyMLEzFpnPz/eAshwSa97517c/MwwJmeB9kwPl+0cf5+uGPZXsqPu4nvZabcSZldZ6kfyWnomFY/eScKqZNWupKJO6kXN3K9uCVoL7iInPr1X5baXs3tjuMqCtzEuagm/AAlzQgPAAB4nGNgYRBlnMDAysDAYM/gBiT5oLQBAwuDJAMDEwMrMwNWEJDmmsJwgCFeXZghBcjlZMgFCzOiKOIFAB71Bb8AeJy1kjFuwkAQRZ+DwRAwBtNQRUGKQ8OdKCAWUhAgKLhIuAsVSpWz5Bbkj3dEgYiUIszqWdpZe+Z7/wB1oCYmIoboiwiLT2WjKl/jscrHfGg/pKdMkyklC5Zs2LEfHYpjcRoPzme9MWWmk3dWbK9ObkWkikOetJ554fWyoEsmdSlt+uR0pCJR34b6t/TVg1SY3sYvdf8vuiKrpyaDXDISiegp17p7579Gp3p++y7HPAiY9pmTibljrr85qSidtlg4+l25GLCaS8e6rRxNBmsnERunKbaOObRz7N72ju5vdAjYpBXHgJylOAVsMseDAPEP8LYoUHicY2BiAAEfhiAGJgZWBgZ7RnFRdnVJELCQlBSRlATJMoLV2DK4glSYs6ubq5vbKrJLSbGrgEmovDuDJVhe3VzcXFwNLCOILB/C4IuQ1xTn5FPilBTj5FPmBAB4WwoqAHicY2BkYGAA4sk1sR/j+W2+MnAzpDBgAyEMQUCSg4EJxAEAwUgFHgB4nGNgZGBgSGFggJMhDIwMqEAYAByHATJ4nGNgAIIUNEwmAABl3AGReJxjYAACIQYlBiMGJ3wQAEcQBEV4nGNgZGBgEGZgY2BiAAEQyQWEDAz/wXwGAAsPATIAAHicXdBNSsNAHAXwl35iA0UQXYnMShfS9GPZA7T7LgIu03SSpkwzYTIt1BN4Ak/gKTyAeCxfw39jZkjymzcvAwmAW/wgwHUEGDb36+jQQ3GXGot79L24jxCP4gHzF/EIr4jEIe7wxhOC3g2TMYy4Q7+Lu/SHuEd/ivt4wJd4wPxbPEKMX3GI5+DJFGaSn4qNzk8mcbKSR6xdXdhSzaOZJGtdapd4vVPbi6rP+cL7TGXOHtXKll4bY1Xl7EGnPtp7Xy2n00zyKLVHfkHBa4IcJ2oD3cgggWvt/V/FbDrUlEUJhTn/0azVWbNTNr0Ens8de1tceK9xZmfB1CPjOmPH4kitmvOubcNpmVTN3oFJyjzCvnmrwhJTzqzVj9jiSX911FjeAAB4nG3HMRKCMBBA0f0giiKi4DU8k0V2GWbIZDOh4PoWWvq6J5V8If9NVNQcaDhyouXMhY4rPTcG7jwYmXhKq8Wz+p762aNaeYXom2n3m2dLTVgsrCgFJ7OTmIkYbwIbC6vIB7WmFfAAAA==") format("woff");\n}'),$=!0),ye?ye.appendChild(this.domElement):ge&&(this.domElement.classList.add("autoPlace"),document.body.appendChild(this.domElement)),Pe&&this.domElement.style.setProperty("--width",Pe+"px"),this._closeFolders=Ht}add(K,ge,ye,Pe,At){if(Object(ye)===ye)return new Q(this,K,ge,ye);const Ht=K[ge];switch(typeof Ht){case"number":return new ue(this,K,ge,ye,Pe,At);case"boolean":return new ot(this,K,ge);case"string":return new me(this,K,ge);case"function":return new Y(this,K,ge)}console.error("gui.add failed\n\tproperty:",ge,"\n\tobject:",K,"\n\tvalue:",Ht)}addColor(K,ge,ye=1){return new J(this,K,ge,ye)}addFolder(K){const ge=new g({parent:this,title:K});return this.root._closeFolders&&ge.close(),ge}load(K,ge=!0){return K.controllers&&this.controllers.forEach(ye=>{ye instanceof Y||ye._name in K.controllers&&ye.load(K.controllers[ye._name])}),ge&&K.folders&&this.folders.forEach(ye=>{ye._title in K.folders&&ye.load(K.folders[ye._title])}),this}save(K=!0){const ge={controllers:{},folders:{}};return this.controllers.forEach(ye=>{if(!(ye instanceof Y)){if(ye._name in ge.controllers)throw new Error(`Cannot save GUI with duplicate property "${ye._name}"`);ge.controllers[ye._name]=ye.save()}}),K&&this.folders.forEach(ye=>{if(ye._title in ge.folders)throw new Error(`Cannot save GUI with duplicate folder "${ye._title}"`);ge.folders[ye._title]=ye.save()}),ge}open(K=!0){return this._setClosed(!K),this.$title.setAttribute("aria-expanded",!this._closed),this.domElement.classList.toggle("closed",this._closed),this}close(){return this.open(!1)}_setClosed(K){this._closed!==K&&(this._closed=K,this._callOnOpenClose(this))}show(K=!0){return this._hidden=!K,this.domElement.style.display=this._hidden?"none":"",this}hide(){return this.show(!1)}openAnimated(K=!0){return this._setClosed(!K),this.$title.setAttribute("aria-expanded",!this._closed),requestAnimationFrame(()=>{this.$children.style.height=this.$children.clientHeight+"px",this.domElement.classList.add("transition");const ye=At=>{At.target===this.$children&&(this.$children.style.height="",this.domElement.classList.remove("transition"),this.$children.removeEventListener("transitionend",ye))};this.$children.addEventListener("transitionend",ye);const Pe=K?this.$children.scrollHeight:0;this.domElement.classList.toggle("closed",!K),requestAnimationFrame(()=>{this.$children.style.height=Pe+"px"})}),this}title(K){return this._title=K,this.$title.innerHTML=K,this}reset(K=!0){return(K?this.controllersRecursive():this.controllers).forEach(ye=>ye.reset()),this}onChange(K){return this._onChange=K,this}_callOnChange(K){this.parent&&this.parent._callOnChange(K),void 0!==this._onChange&&this._onChange.call(this,{object:K.object,property:K.property,value:K.getValue(),controller:K})}onFinishChange(K){return this._onFinishChange=K,this}_callOnFinishChange(K){this.parent&&this.parent._callOnFinishChange(K),void 0!==this._onFinishChange&&this._onFinishChange.call(this,{object:K.object,property:K.property,value:K.getValue(),controller:K})}onOpenClose(K){return this._onOpenClose=K,this}_callOnOpenClose(K){this.parent&&this.parent._callOnOpenClose(K),void 0!==this._onOpenClose&&this._onOpenClose.call(this,K)}destroy(){this.parent&&(this.parent.children.splice(this.parent.children.indexOf(this),1),this.parent.folders.splice(this.parent.folders.indexOf(this),1)),this.domElement.parentElement&&this.domElement.parentElement.removeChild(this.domElement),Array.from(this.children).forEach(K=>K.destroy())}controllersRecursive(){let K=Array.from(this.controllers);return this.folders.forEach(ge=>{K=K.concat(ge.controllersRecursive())}),K}foldersRecursive(){let K=Array.from(this.folders);return this.folders.forEach(ge=>{K=K.concat(ge.foldersRecursive())}),K}}var _=Se(3847),v=Se(2985),p=Se(2843),C=Se(1922),I=Se(7900),U=Se(2866),k=Se(4483),Z=Se(578);const V="TGeoManager",b="TEveGeoShapeExtract",P="TGeoOverlap",T="TGeoVolumeAssembly",z="TEveTrack",W="TEvePointSet",fe=`${x.nsREX}REveGeoShapeExtract`;let Me=0;function je(xt,K,ge){void 0===K&&(K=1),ge||(Me=0,ge="");const ye=(0,x.create)(x.clTGeoVolume);if((0,Z.bg)(ye,Z.Wv.kVisThis,!0),(0,Z.bg)(ye,Z.Wv.kVisDaughters,!0),ge&&xt._typename!==Z.HO||K<=0)return ye.fName=ge,ye.fLineColor=Me++%8+2,ye.fShape=xt,ye;ge&&(ge+="/"),ye.$geoh=!0,ye.fName="";const Pe=(0,x.create)(x.clTGeoNodeMatrix);(0,Z.bg)(Pe,Z.Wv.kVisThis,!0),(0,Z.bg)(Pe,Z.Wv.kVisDaughters,!0),Pe.fName="Left",Pe.fMatrix=xt.fNode.fLeftMat,Pe.fVolume=je(xt.fNode.fLeft,K-1,ge+"Left");const At=(0,x.create)(x.clTGeoNodeMatrix);return(0,Z.bg)(At,Z.Wv.kVisThis,!0),(0,Z.bg)(At,Z.Wv.kVisDaughters,!0),At.fName="Right",At.fMatrix=xt.fNode.fRightMat,At.fVolume=je(xt.fNode.fRight,K-1,ge+"Right"),ye.fNodes=(0,x.create)(x.clTList),ye.fNodes.Add(Pe),ye.fNodes.Add(At),ge||(Me=0),ye}function Ge(xt){const K=xt?.getFramePainter();if(xt?.mode3d&&(0,x.isFunc)(K?.create3DScene)&&K?.renderer){let ge=1,ye=1,Pe=1,At=0,Ht=0,Nt=0;return K.scale_xmax>K.scale_xmin&&(ge=2*K.size_x3d/(K.scale_xmax-K.scale_xmin),At=(K.scale_xmax+K.scale_xmin)/2*ge),K.scale_ymax>K.scale_ymin&&(ye=2*K.size_y3d/(K.scale_ymax-K.scale_ymin),Ht=(K.scale_ymax+K.scale_ymin)/2*ye),K.scale_zmax>K.scale_zmin&&(Pe=2*K.size_z3d/(K.scale_zmax-K.scale_zmin),Nt=(K.scale_zmax+K.scale_zmin)/2*Pe-K.size_z3d),{webgl:K.webgl,scene:K.scene,scene_width:K.scene_width,scene_height:K.scene_height,toplevel:K.toplevel,renderer:K.renderer,camera:K.camera,scale_x:ge,scale_y:ye,scale_z:Pe,offset_x:At,offset_y:Ht,offset_z:Nt}}}function lt(xt,K,ge,ye){if(!K?.arr?.length)return;const Pe={_name:ge,_kind:x.prROOT+x.clTList,_title:ye,_more:!0,_geoobj:K,_parent:xt,_get:At=>Promise.resolve(At._geoobj||null),_expand(At,Ht){if(Ht.fVolume&&(Ht=Ht.fVolume.fNodes),!Ht.arr)return!1;At._childs=[],(0,Z.$T)(null,Ht.arr);for(const Nt in Ht.arr)ti(At,Ht.arr[Nt]);return!0}};xt._childs||(xt._childs=[]),xt._childs.push(Pe)}function bt(xt,K){if(yn(),!xt||!K)return!1;const ge=0===K._typename.indexOf(x.clTGeoNode),ye=0===K._typename.indexOf(x.clTGeoVolume),Pe=K._typename===V,At=K._typename===b||K._typename===fe,Ht=K._typename===P;if(!(ge||ye||Pe||At||Ht))return!1;if(xt._childs)return!0;if(Pe)return lt(xt,K.fMaterials,"Materials","list of materials"),lt(xt,K.fMedia,"Media","list of media"),lt(xt,K.fTracks,"Tracks","list of tracks"),lt(xt,K.fOverlaps,"Overlaps","list of detected overlaps"),ti(xt,K.fMasterVolume),!0;if(Ht)return ti(xt,K.fVolume1),ti(xt,K.fVolume2),ti(xt,K.fMarker,"Marker"),!0;let Nt,nn,hn;if(At?(nn=K.fElements?.arr,hn=K.fShape):(Nt=ge?K.fVolume:K,nn=Nt?.fNodes?.arr,hn=Nt?.fShape),!nn&&hn?._typename===Z.HO&&hn?.fNode)return xt._childs||(ti(xt,hn.fNode.fLeft,"Left"),ti(xt,hn.fNode.fRight,"Right")),!0;if(!nn)return!1;(0,Z.$T)(K,nn);for(let kn=0;kn{(xt===ge._volume||xt===ge._geoobj)&&(ge._icon=ge._icon.split(" ")[0]+Je(xt),K.updateTreeNode(ge))})}function Fe(xt){const K=xt?.object;return K?K.stack?K.stack:K.stacks&&void 0!==xt.instanceId&&xt.instanceId{const ye=ge.name;if(!ye)throw new Error("must provide button name in button config");if(-1!==K.indexOf(ye))throw new Error(`button name ${ye} is taken`);K.push(ye);const Pe=ge.title||ge.name;if(!(0,x.isFunc)(ge.click))throw new Error("must provide button click() function in button config");ve.IK.createSVG(this.element,ve.IK[ge.icon],16,Pe,this.bright).on("click",ge.click).style("position","relative").style("padding","3px 1px")})}changeBrightness(K){this.bright!==K&&(this.element.selectAll("*").remove(),this.bright=K,this.createButtons())}cleanup(){this.element?.remove(),delete this.element}}class rt extends _.KG{constructor(K,ge){super(),this.mesh=K?.material?K:null,this.bloom=ge}setHighlight(K,ge){return this.drawSpecial(K,ge)}drawSpecial(K,ge){const ye=this.mesh;if(ye?.material){if(ye.isInstancedMesh){if(ye._highlight_mesh&&(ye.remove(ye._highlight_mesh),delete ye._highlight_mesh),K&&void 0!==ge){const Pe=new L.eaF(ye.geometry,ye.material.clone());this.bloom?(Pe.layers.enable(1),Pe.material.emissive=new L.Q1f(65280)):(Pe.material.color=new L.Q1f(K),Pe.material.opacity=1);const At=new L.kn4;ye.getMatrixAt(ge,At),Pe.applyMatrix4(At),ye.add(Pe),Pe.jsroot_special=!0,ye._highlight_mesh=Pe}return!0}if(K)return ye.origin||(ye.origin={color:ye.material.color,emissive:ye.material.emissive,opacity:ye.material.opacity,width:ye.material.linewidth,size:ye.material.size}),this.bloom?(ye.layers.enable(1),ye.material.emissive=new L.Q1f(65280)):(ye.material.color=new L.Q1f(K),ye.material.opacity=1),ye.hightlightWidthScale&&!x.browser.isWin&&(ye.material.linewidth=ye.origin.width*ye.hightlightWidthScale),ye.highlightScale&&(ye.material.size=ye.origin.size*ye.highlightScale),!0;if(ye.origin)return this.bloom?(ye.material.emissive=ye.origin.emissive,ye.layers.enable(0)):(ye.material.color=ye.origin.color,ye.material.opacity=ye.origin.opacity),ye.hightlightWidthScale&&(ye.material.linewidth=ye.origin.width),ye.highlightScale&&(ye.material.size=ye.origin.size),!0}}}class $n extends C.JW{constructor(K,ge){let ye;ge?._typename===V&&(ye=ge,ge=ge.fMasterVolume),ge?._typename&&0===ge._typename.indexOf(x.clTGeoVolume)&&(ge={_typename:x.clTGeoNode,fVolume:ge,fName:ge.fName,$geoh:ge.$geoh,_proxy:!0}),super(K,ge),Ge(this.getMainPainter())&&(this.superimpose=!0),ye&&(this.geo_manager=ye),this.no_default_title=!0,this.mode3d=!0,this.drawing_stage=0,this.drawing_log="Init",this.ctrl={clipIntersect:!0,clipVisualize:!1,clip:[{name:"x",enabled:!1,value:0,min:-100,max:100,step:1},{name:"y",enabled:!1,value:0,min:-100,max:100,step:1},{name:"z",enabled:!1,value:0,min:-100,max:100,step:1}],_highlight:0,highlight:0,highlight_bloom:0,highlight_scene:0,highlight_color:"#00ff00",bloom_strength:1.5,more:1,maxfaces:0,vislevel:void 0,maxnodes:void 0,dflt_colors:!1,info:{num_meshes:0,num_faces:0,num_shapes:0},depthTest:!0,depthMethod:"dflt",select_in_view:!1,update_browser:!0,use_fog:!1,light:{kind:"points",top:!1,bottom:!1,left:!1,right:!1,front:!1,specular:!0,power:1},lightKindItems:[{name:"AmbientLight",value:"ambient"},{name:"DirectionalLight",value:"points"},{name:"HemisphereLight",value:"hemisphere"},{name:"Ambient + Point",value:"mix"}],trans_radial:0,trans_z:0,scale:new L.Pq0(1,1,1),zoom:1,rotatey:0,rotatez:0,depthMethodItems:[{name:"Default",value:"dflt"},{name:"Raytraicing",value:"ray"},{name:"Boundary box",value:"box"},{name:"Mesh size",value:"size"},{name:"Central point",value:"pnt"}],cameraKindItems:[{name:"Perspective",value:"perspective"},{name:"Perspective (Floor XOZ)",value:"perspXOZ"},{name:"Perspective (Floor YOZ)",value:"perspYOZ"},{name:"Perspective (Floor XOY)",value:"perspXOY"},{name:"Orthographic (XOY)",value:"orthoXOY"},{name:"Orthographic (XOZ)",value:"orthoXOZ"},{name:"Orthographic (ZOY)",value:"orthoZOY"},{name:"Orthographic (ZOX)",value:"orthoZOX"},{name:"Orthographic (XnOY)",value:"orthoXNOY"},{name:"Orthographic (XnOZ)",value:"orthoXNOZ"},{name:"Orthographic (ZnOY)",value:"orthoZNOY"},{name:"Orthographic (ZnOX)",value:"orthoZNOX"}],cameraOverlayItems:[{name:"None",value:"none"},{name:"Bar",value:"bar"},{name:"Axis",value:"axis"},{name:"Grid",value:"grid"},{name:"Grid background",value:"gridb"},{name:"Grid foreground",value:"gridf"}],camera_kind:"perspective",camera_overlay:"gridb",rotate:!1,background:x.settings.DarkMode?"#000000":"#ffffff",can_rotate:!0,_axis:0,instancing:0,_count:!1,wireframe:!1,transparency:0,flatShading:!1,roughness:.5,metalness:.5,shininess:0,reflectivity:.5,material_kind:"lambert",materialKinds:[{name:"MeshLambertMaterial",value:"lambert",emissive:!0,props:[{name:"flatShading"}]},{name:"MeshBasicMaterial",value:"basic"},{name:"MeshStandardMaterial",value:"standard",emissive:!0,props:[{name:"flatShading"},{name:"roughness",min:0,max:1,step:.001},{name:"metalness",min:0,max:1,step:.001}]},{name:"MeshPhysicalMaterial",value:"physical",emissive:!0,props:[{name:"flatShading"},{name:"roughness",min:0,max:1,step:.001},{name:"metalness",min:0,max:1,step:.001},{name:"reflectivity",min:0,max:1,step:.001}]},{name:"MeshPhongMaterial",value:"phong",emissive:!0,props:[{name:"flatShading"},{name:"shininess",min:0,max:100,step:.1}]},{name:"MeshNormalMaterial",value:"normal",props:[{name:"flatShading"}]},{name:"MeshDepthMaterial",value:"depth"},{name:"MeshMatcapMaterial",value:"matcap"},{name:"MeshToonMaterial",value:"toon"}],getMaterialCfg:function(){let Pe;return this.materialKinds.forEach(At=>{At.value===this.material_kind&&(Pe=At)}),Pe}},this.cleanup(!0)}changeDarkMode(K){("#000000"===this.ctrl.background||"#ffffff"===this.ctrl.background)&&this.changedBackground(K??x.settings.DarkMode?"#000000":"#ffffff")}changeStage(K,ge){if(this.drawing_stage=K,!ge)switch(K){case 0:ge="Building done";break;case 1:ge="collect visibles";break;case 2:ge="worker collect visibles";break;case 3:ge="Analyse visibles";break;case 4:ge="collect shapes for building";break;case 5:ge="Start build shapes";break;case 6:ge="Worker build shapes";break;case 7:ge="Build shapes";break;case 8:ge="Build ready";break;case 9:ge="Wait for main painter";break;case 10:ge="Build projection";break;default:ge=`stage ${K}`}this.drawing_log=ge}isStage(K){return K===this.drawing_stage}isBatchMode(){return(0,x.isBatchMode)()||this.batch_mode}createToolbar(){if(this._toolbar||!this._webgl||this.ctrl.notoolbar||this.isBatchMode())return;const K=[{name:"toImage",title:"Save as PNG",icon:"camera",click:()=>this.createSnapshot()},{name:"control",title:"Toggle control UI",icon:"rect",click:()=>this.showControlGui("toggle")},{name:"enlarge",title:"Enlarge geometry drawing",icon:"circle",click:()=>this.toggleEnlarge()}];navigator.getVRDisplays&&(K.push({name:"entervr",title:"Enter VR (It requires a VR Headset connected)",icon:"vrgoggles",click:()=>this.toggleVRMode()}),this.initVRMode()),x.settings.ContextMenu&&K.push({name:"menu",title:"Show context menu",icon:"question",click:ye=>{ye.preventDefault(),ye.stopPropagation(),!(0,I.IV)()&&(0,I.ES)(ye,this).then(Pe=>{Pe.painter.fillContextMenu(Pe),Pe.show()})}});const ge=new L.Q1f(this.ctrl.background);this._toolbar=new Ne(this.selectDom(),ge.r+ge.g+ge.b<1,K),this._toolbar.createButtons()}initVRMode(){this._dolly=new L.YJl,this._scene.add(this._dolly),this._standingMatrix=new L.kn4,this._raycasterEnd=new L.Pq0,this._raycasterOrigin=new L.Pq0,navigator.getVRDisplays().then(K=>{const ge=K[0];ge&&(this._renderer.vr.setDevice(ge),this._vrDisplay=ge,ge.stageParameters&&this._standingMatrix.fromArray(ge.stageParameters.sittingToStandingTransform),this.initVRControllersGeometry())})}initVRControllersGeometry(){const K=new L.Gu$(.025,18,36),ge=new L.V9B({color:"grey",vertexColors:!1}),ye=new L.V9B({color:"fuchsia",vertexColors:!1}),Pe=new L.iNn(.001,.001,2),At=new L.eaF(Pe,ye),Ht=new L.eaF(Pe,ye),Nt=new L.eaF(K,ge),nn=new L.eaF(K,ge);this._controllersMeshes=[],this._controllersMeshes.push(Nt),this._controllersMeshes.push(nn),At.position.z-=1,Ht.position.z-=1,Nt.add(At),nn.add(Ht),this._dolly.add(Nt),this._dolly.add(nn),Nt.visible=!1,nn.visible=!1}updateVRControllersList(){const K=navigator.getGamepads&&navigator.getGamepads();if(!this.vrControllers||K.length!==this.vrControllers.length){this._controllersMeshes.forEach(ge=>{ge.visible=!1}),this._vrControllers=[];for(let ge=0;geK.indexOf(ge)===ye),this._controls.processMouseMove(K)}updateVRControllers(){this.updateVRControllersList();for(let K=0;K{this._previousCameraNear=this._camera.near,this._dolly.position.set(this._camera.position.x/4,-this._camera.position.y/8,-this._camera.position.z/4),this._camera.position.set(0,0,0),this._dolly.add(this._camera),this._camera.near=.1,this._camera.updateProjectionMatrix(),this._renderer.vr.enabled=!0,this._renderer.setAnimationLoop(()=>{this.updateVRControllers(),this.render3D(0)})}),this._renderer.vr.enabled=!0,window.addEventListener("keydown",K=>{"Escape"===K.code&&this.exitVRMode()})}}exitVRMode(){this._vrDisplay.isPresenting&&(this._renderer.vr.enabled=!1,this._dolly.remove(this._camera),this._scene.add(this._camera),this._camera.position.copy(this._previousCameraPosition),this._previousCameraPosition=void 0,this._camera.rotation.copy(this._previousCameraRotation),this._previousCameraRotation=void 0,this._camera.near=this._previousCameraNear,this._camera.updateProjectionMatrix(),this._vrDisplay.exitPresent())}getGeometry(){return this.getObject()}modifyVisisbility(K,ge){if(0!==(0,Z.Dh)(this.getGeometry()))return;if(!K)return(0,Z.bg)(this.getGeometry().fVolume,Z.Wv.kVisThis,"+"===ge);let ye,Pe=!1;K.indexOf("*")<0?(ye=new RegExp("^"+K+"$"),Pe=!0):(ye=new RegExp("^"+K.split("*").join(".*")+"$"),Pe=!1),this.findNodeWithVolume(ye,At=>((0,Z.N_)(At.node.fVolume,"+"!==ge),Pe?At:null))}decodeOptions(K){(0,x.isStr)(K)||(K=""),this.superimpose&&0===K.indexOf("same")&&(K=K.slice(4));const ge=this.ctrl,ye=K.indexOf("macro:");if(ye>=0){let Ht=K.indexOf(";",ye+6);Ht<0&&(Ht=K.length),ge.script_name=K.slice(ye+6,Ht),K=K.slice(0,ye)+K.slice(Ht+1),console.log(`script ${ge.script_name} rest ${K}`)}for(;;){const Ht=K.indexOf("+"),Nt=K.indexOf("-");if(Ht<0&&Nt<0)break;let nn=Ht,hn="+";(nn<0||Nt>=0&&Nt{let Ht=1;return"N"===Pe.part[0]&&(Ht=-1,Pe.part=Pe.part.slice(1)),Ht*Pe.partAsFloat()};if(Pe.check("CAMX",!0)&&(ge.camx=At()),Pe.check("CAMY",!0)&&(ge.camy=At()),Pe.check("CAMZ",!0)&&(ge.camz=At()),Pe.check("CAMLX",!0)&&(ge.camlx=At()),Pe.check("CAMLY",!0)&&(ge.camly=At()),Pe.check("CAMLZ",!0)&&(ge.camlz=At()),Pe.check("BLACK")&&(ge.background="#000000"),Pe.check("WHITE")&&(ge.background="#FFFFFF"),Pe.check("BKGR_",!0)){let Ht=null;if(Pe.partAsInt(1)>0)Ht=(0,v.oU)(Pe.partAsInt());else for(let Nt=0;Nt<8;++Nt)(0,v.oU)(Nt).toUpperCase()===Pe.part&&(Ht=(0,v.oU)(Nt));Ht&&(ge.background="#"+new L.Q1f(Ht).getHexString())}Pe.check("R3D_",!0)&&(ge.Render3D=x.constants.Render3D.fromString(Pe.part.toLowerCase())),Pe.check("MORE",!0)&&(ge.more=Pe.partAsInt(0,2)??2),Pe.check("ALL")&&(ge.more=100,ge.vislevel=99),Pe.check("VISLVL",!0)&&(ge.vislevel=Pe.partAsInt()),Pe.check("MAXNODES",!0)&&(ge.maxnodes=Pe.partAsInt()),Pe.check("MAXFACES",!0)&&(ge.maxfaces=Pe.partAsInt()),(Pe.check("CONTROLS")||Pe.check("CTRL"))&&(ge.show_controls=!0),Pe.check("CLIPXYZ")&&(ge.clip[0].enabled=ge.clip[1].enabled=ge.clip[2].enabled=!0),Pe.check("CLIPX")&&(ge.clip[0].enabled=!0),Pe.check("CLIPY")&&(ge.clip[1].enabled=!0),Pe.check("CLIPZ")&&(ge.clip[2].enabled=!0),Pe.check("CLIP")&&(ge.clip[0].enabled=ge.clip[1].enabled=ge.clip[2].enabled=!0),Pe.check("PROJX",!0)&&(ge.project="x",Pe.partAsInt(1)>0&&(ge.projectPos=Pe.partAsInt()),ge.can_rotate=0),Pe.check("PROJY",!0)&&(ge.project="y",Pe.partAsInt(1)>0&&(ge.projectPos=Pe.partAsInt()),ge.can_rotate=0),Pe.check("PROJZ",!0)&&(ge.project="z",Pe.partAsInt(1)>0&&(ge.projectPos=Pe.partAsInt()),ge.can_rotate=0),(Pe.check("DFLT_COLORS")||Pe.check("DFLT"))&&(ge.dflt_colors=!0),Pe.check("SSAO"),Pe.check("NOBLOOM")&&(ge.highlight_bloom=!1),Pe.check("BLOOM")&&(ge.highlight_bloom=!0),Pe.check("OUTLINE")&&(ge.outline=!0),Pe.check("NOWORKER")&&(ge.use_worker=-1),Pe.check("WORKER")&&(ge.use_worker=1),Pe.check("NOFOG")&&(ge.use_fog=!1),Pe.check("FOG")&&(ge.use_fog=!0),(Pe.check("NOHIGHLIGHT")||Pe.check("NOHIGH"))&&(ge.highlight_scene=ge.highlight=!1),Pe.check("HIGHLIGHT")&&(ge.highlight_scene=ge.highlight=!0),Pe.check("HSCENEONLY")&&(ge.highlight_scene=!0,ge.highlight=!1),Pe.check("NOHSCENE")&&(ge.highlight_scene=!1),Pe.check("HSCENE")&&(ge.highlight_scene=!0),(Pe.check("WIREFRAME")||Pe.check("WIRE"))&&(ge.wireframe=!0),Pe.check("ROTATE")&&(ge.rotate=!0),(Pe.check("INVX")||Pe.check("INVERTX"))&&(ge.scale.x=-1),(Pe.check("INVY")||Pe.check("INVERTY"))&&(ge.scale.y=-1),(Pe.check("INVZ")||Pe.check("INVERTZ"))&&(ge.scale.z=-1),Pe.check("COUNT")&&(ge._count=!0),Pe.check("TRANSP",!0)&&(ge.transparency=Pe.partAsInt(0,100)/100),Pe.check("OPACITY",!0)&&(ge.transparency=1-Pe.partAsInt(0,100)/100),(Pe.check("AXISCENTER")||Pe.check("AXISC")||Pe.check("AC"))&&(ge._axis=2),(Pe.check("AXIS")||Pe.check("A"))&&(ge._axis=1),Pe.check("TRR",!0)&&(ge.trans_radial=Pe.partAsInt()/100),Pe.check("TRZ",!0)&&(ge.trans_z=Pe.partAsInt()/100),Pe.check("W")&&(ge.wireframe=!0),Pe.check("Y")&&(ge._yup=!0),Pe.check("Z")&&(ge._yup=!1),void 0===ge._yup&&(ge._yup=this.getCanvSvg().empty()),this.options=ge}activateInBrowser(K,ge){(0,x.isStr)(K)&&(K=[K]),this._hpainter&&(this._hpainter.activateItems(K,ge),this.ctrl.update_browser||setTimeout(()=>this._hpainter.activateItems([]),2e3))}testMatrixes(){let K=0,ge=0,ye=0;const Pe={domatrix:!0,func:()=>{let Nt=this.getmatrix();const nn=this.copyStack(),hn=this._clones.createObject3D(nn.stack,this._toplevel,"mesh");if(!hn)return!0;ge++;const kn=hn.matrixWorld;if(kn.equals(Nt))return!0;if(kn.determinant()>0&&Nt.determinant()<-.9){const In=new L.Pq0(1,1,-1);if(Nt=Nt.clone().scale(In),kn.equals(Nt))return!0}let cn=0;for(let In=0;In<16;++In)cn=Math.max(cn,Math.abs(kn.elements[In]-Nt.elements[In]));return ye=Math.max(cn,ye),cn<1e-4||(console.log(`${this._clones.resolveStack(nn.stack).name} maxdiff ${cn} determ ${kn.determinant()} ${Nt.determinant()}`),K++,!1)}},At=(new Date).getTime();this._clones.scanVisible(Pe);const Ht=(new Date).getTime();console.log(`Compare matrixes total ${ge} errors ${K} takes ${Ht-At} maxdiff ${ye}`)}fillContextMenu(K){K.add("header: Draw options"),K.addchk(this.ctrl.update_browser,"Browser update",()=>{this.ctrl.update_browser=!this.ctrl.update_browser,this.ctrl.update_browser||this.activateInBrowser([])}),K.addchk(this.ctrl.show_controls,"Show Controls",()=>this.showControlGui("toggle")),K.add("sub:Show axes",()=>this.setAxesDraw("toggle")),K.addchk(0===this.ctrl._axis,"off",0,ge=>this.setAxesDraw(parseInt(ge))),K.addchk(1===this.ctrl._axis,"side",1,ge=>this.setAxesDraw(parseInt(ge))),K.addchk(2===this.ctrl._axis,"center",2,ge=>this.setAxesDraw(parseInt(ge))),K.add("endsub:"),this.geo_manager&&K.addchk(this.ctrl.showtop,"Show top volume",()=>this.setShowTop(!this.ctrl.showtop)),K.addchk(this.ctrl.wireframe,"Wire frame",()=>this.toggleWireFrame()),this.getCanvPainter()||K.addchk(this.isTooltipAllowed(),"Show tooltips",()=>this.setTooltipAllowed("toggle")),K.add("sub:Highlight"),K.addchk(!this.ctrl.highlight,"Off",()=>{this.ctrl.highlight=!1,this.changedHighlight()}),K.addchk(this.ctrl.highlight&&!this.ctrl.highlight_bloom,"Normal",()=>{this.ctrl.highlight=!0,this.ctrl.highlight_bloom=!1,this.changedHighlight()}),K.addchk(this.ctrl.highlight&&this.ctrl.highlight_bloom,"Bloom",()=>{this.ctrl.highlight=!0,this.ctrl.highlight_bloom=!0,this.changedHighlight()}),K.add("separator"),K.addchk(this.ctrl.highlight_scene,"Scene",ge=>{this.ctrl.highlight_scene=ge,this.changedHighlight()}),K.add("endsub:"),K.add("sub:Camera"),K.add("Reset position",()=>this.focusCamera()),this.ctrl.project||K.addchk(this.ctrl.rotate,"Autorotate",()=>this.setAutoRotate(!this.ctrl.rotate)),this._geom_viewer||(K.addchk(this.canRotateCamera(),"Can rotate",()=>this.changeCanRotate(!this.ctrl.can_rotate)),K.add("Get position",()=>K.info("Position (as url)","&opt="+this.produceCameraUrl())),this.isOrthoCamera()||K.add("Absolute position",()=>{const ge=this.produceCameraUrl(!0),ye=ge.indexOf("camlx");K.info("Position (as url)","&opt="+(ye<0?ge:ge.slice(0,ye)+"\n"+ge.slice(ye)))}),K.add("sub:Kind"),this.ctrl.cameraKindItems.forEach(ge=>K.addchk(this.ctrl.camera_kind===ge.value,ge.name,ge.value,ye=>{this.ctrl.camera_kind=ye,this.changeCamera()})),K.add("endsub:"),this.isOrthoCamera()&&(K.add("sub:Overlay"),this.ctrl.cameraOverlayItems.forEach(ge=>K.addchk(this.ctrl.camera_overlay===ge.value,ge.name,ge.value,ye=>{this.ctrl.camera_overlay=ye,this.changeCamera()})),K.add("endsub:"))),K.add("endsub:"),K.addchk(this.ctrl.select_in_view,"Select in view",()=>{this.ctrl.select_in_view=!this.ctrl.select_in_view,this.ctrl.select_in_view&&this.startDrawGeometry()})}changedGlobalTransparency(K){const ge=(0,x.isFunc)(K)?K:null;(ge||void 0===K)&&(K=this.ctrl.transparency),this._toplevel?.traverse(ye=>{if(void 0===ye?.material?.inherentOpacity)return;const Pe=ge?ge(ye):void 0;ye.material.opacity=void 0!==Pe?1-Pe:Math.min(1-(K||0),ye.material.inherentOpacity),ye.material.depthWrite=1===ye.material.opacity,ye.material.transparent=ye.material.opacity<1}),this.render3D()}changedMaterial(){this._toplevel?.traverse(K=>{void 0!==K.material?.inherentArgs&&(K.material=(0,Z.Cc)(this.ctrl,K.material.inherentArgs))}),this.render3D(-1)}changeMaterialProperty(K){const ge=this.ctrl[K];if(void 0===ge)return console.error("No property ",K);this._toplevel?.traverse(ye=>{void 0!==ye.material?.inherentArgs&&void 0!==ye.material[K]&&(ye.material[K]=ge,ye.material.needsUpdate=!0)}),this.render3D()}resetTransformation(){this.changedTransformation("reset")}changedTransformation(K){if(!this._toplevel)return;const ge=this.ctrl,ye=new L.kn4,Pe=new L.Pq0;"reset"===K&&(ge.trans_z=ge.trans_radial=0),this._toplevel.traverse(At=>{if(void 0!==At.stack){const Ht=At.parent;if("reset"===K)return Ht.matrix0&&(Ht.matrix.copy(Ht.matrix0),Ht.matrix.decompose(Ht.position,Ht.quaternion,Ht.scale),Ht.matrixWorldNeedsUpdate=!0),delete Ht.matrix0,delete Ht.vect0,delete Ht.vect1,void delete Ht.minvert;if(void 0===Ht.vect0){Ht.matrix0=Ht.matrix.clone(),Ht.minvert=(new L.kn4).copy(Ht.matrixWorld).invert();const Nt=(0,Z.UX)(At,null,!0);Ht.vect0=new L.Pq0((Nt.max.x+Nt.min.x)/2,(Nt.max.y+Nt.min.y)/2,(At._flippedMesh?-1:1)*(Nt.max.z+Nt.min.z)/2).applyMatrix4(Ht.matrixWorld),Ht.vect1=new L.Pq0(0,0,0).applyMatrix4(Ht.minvert)}Pe.set(ge.trans_radial*Ht.vect0.x,ge.trans_radial*Ht.vect0.y,ge.trans_z*Ht.vect0.z).applyMatrix4(Ht.minvert).sub(Ht.vect1),Ht.matrix.multiplyMatrices(Ht.matrix0,ye.makeTranslation(Pe.x,Pe.y,Pe.z)),Ht.matrix.decompose(Ht.position,Ht.quaternion,Ht.scale),Ht.matrixWorldNeedsUpdate=!0}else if(void 0!==At.stacks){if(At.instanceMatrix.needsUpdate=!0,"reset"===K)return At.trans?.forEach((Nt,nn)=>{At.setMatrixAt(nn,Nt.matrix0)}),void delete At.trans;if(void 0===At.trans){At.trans=new Array(At.count),At.geometry.computeBoundingBox();for(let Nt=0;Nt{Pe.set(ge.trans_radial*Nt.vect0.x,ge.trans_radial*Nt.vect0.y,ge.trans_z*Nt.vect0.z).applyMatrix4(Nt.minvert).sub(Nt.vect1),Ht.multiplyMatrices(Nt.matrix0,ye.makeTranslation(Pe.x,Pe.y,Pe.z)),At.setMatrixAt(nn,Ht)})}}),this._toplevel.updateMatrixWorld(),"norender"!==K&&this.drawAxesAndOverlay()}changedAutoRotate(){this.autorotate(2.5)}changedAxes(){(0,x.isStr)(this.ctrl._axis)&&(this.ctrl._axis=parseInt(this.ctrl._axis)),this.drawAxesAndOverlay()}changedBackground(K){if(void 0!==K&&(this.ctrl.background=K),this._scene.background=new L.Q1f(this.ctrl.background),this._renderer.setClearColor(this._scene.background,1),this.render3D(0),this._toolbar){const ge=new L.Q1f(this.ctrl.background);this._toolbar.changeBrightness(ge.r+ge.g+ge.b<1)}}showControlGui(K){if(!this.ctrl)return;if("toggle"===K?K=!this._gui:void 0===K&&(K=this.ctrl.show_controls),this.ctrl.show_controls=K,this._gui)return void(K||(this._gui.destroy(),delete this._gui));if(!K||!this._renderer)return;const ge=this.selectDom();"static"===ge.style("position")&&ge.style("position","relative"),this._gui=new g({container:ge.node(),closeFolders:!0,width:Math.min(300,this._scene_width/2),title:"Settings"});const ye=this._gui.domElement;ye.style.position="absolute",ye.style.top=0,ye.style.right=0,this._gui.painter=this;const Pe=Si=>{const bi={};return Si.forEach(Jn=>{bi[Jn.name]=Jn.value}),bi};if(!this.ctrl.project){const Si=this._gui.addFolder("Selection");this.ctrl.maxnodes||(this.ctrl.maxnodes=this._clones?.getMaxVisNodes()??1e4),this.ctrl.vislevel||(this.ctrl.vislevel=this._clones?.getVisLevel()??3),this.ctrl.maxfaces||(this.ctrl.maxfaces=2e5*this.ctrl.more),this.ctrl.more=1,Si.add(this.ctrl,"vislevel",1,99,1).name("Visibility level").listen().onChange(()=>this.startRedraw(500)),Si.add(this.ctrl,"maxnodes",0,5e5,1e3).name("Visible nodes").listen().onChange(()=>this.startRedraw(500)),Si.add(this.ctrl,"maxfaces",0,5e6,1e5).name("Max faces").listen().onChange(()=>this.startRedraw(500))}if(this.ctrl.project){const Si=this.getGeomBoundingBox(this.getProjectionSource(),.01),bi=this.ctrl.project;void 0===this.ctrl.projectPos&&(this.ctrl.projectPos=(Si.min[bi]+Si.max[bi])/2),this._gui.add(this.ctrl,"projectPos",Si.min[bi],Si.max[bi]).name(bi.toUpperCase()+" projection").onChange(()=>this.startDrawGeometry())}else{const Si=this._gui.addFolder("Clipping");for(let bi=0;bi<3;++bi){const Jn=this.ctrl.clip[bi],Wi=Jn.name.toUpperCase();Si.add(Jn,"enabled").name("Enable "+Wi).listen().onChange(()=>this.changedClipping(-1)),Si.add(Jn,"value",Jn.min,Jn.max,Jn.step).name(Wi+" position").listen().onChange(()=>this.changedClipping(bi))}Si.add(this.ctrl,"clipIntersect").name("Clip intersection").onChange(()=>this.changedClipping(-1)),Si.add(this.ctrl,"clipVisualize").name("Visualize").onChange(()=>this.changedClipping(-1))}const At=this._gui.addFolder("Scene");At.add(this.ctrl.light,"kind",Pe(this.ctrl.lightKindItems)).name("Light").listen().onChange(()=>{Ht.show("mix"===this.ctrl.light.kind||"points"===this.ctrl.light.kind),this.changedLight()}),this.ctrl.light._pnts=this.ctrl.light.specular?0:this.ctrl.light.front?1:2;const Ht=At.add(this.ctrl.light,"_pnts",{specular:0,front:1,box:2}).name("Positions").show("mix"===this.ctrl.light.kind||"points"===this.ctrl.light.kind).onChange(Si=>{this.ctrl.light.specular=0===Si,this.ctrl.light.front=1===Si,this.ctrl.light.top=this.ctrl.light.bottom=this.ctrl.light.left=this.ctrl.light.right=2===Si,this.changedLight()});At.add(this.ctrl.light,"power",0,10,.01).name("Power").listen().onChange(()=>this.changedLight()),At.add(this.ctrl,"use_fog").name("Fog").listen().onChange(()=>this.changedUseFog());const Nt=this._gui.addFolder("Appearance");this.ctrl._highlight=this.ctrl.highlight?this.ctrl.highlight_bloom?2:1:0,Nt.add(this.ctrl,"_highlight",{none:0,normal:1,bloom:2}).name("Highlight Selection").listen().onChange(()=>{this.changedHighlight(this.ctrl._highlight),hn.show(2===this.ctrl._highlight),nn.show(1===this.ctrl._highlight)});const nn=Nt.addColor(this.ctrl,"highlight_color").name("Hightlight color").show(1===this.ctrl._highlight),hn=Nt.add(this.ctrl,"bloom_strength",0,3).name("Bloom strength").listen().onChange(()=>this.changedHighlight()).show(2===this.ctrl._highlight);Nt.addColor(this.ctrl,"background").name("Background").onChange(Si=>this.changedBackground(Si)),Nt.add(this.ctrl,"_axis",{none:0,side:1,center:2}).name("Axes").onChange(()=>this.changedAxes()),this.ctrl.project||Nt.add(this.ctrl,"rotate").name("Autorotate").listen().onChange(()=>this.changedAutoRotate());const kn=this._gui.addFolder("Material");let cn=[];const In=()=>{cn.forEach(bi=>bi.destroy()),cn=[];const Si=this.ctrl.getMaterialCfg()?.props;Si&&Si.forEach(bi=>{const Jn=kn.add(this.ctrl,bi.name,bi.min,bi.max,bi.step).onChange(()=>{this.changeMaterialProperty(bi.name)});cn.push(Jn)})};kn.add(this.ctrl,"material_kind",Pe(this.ctrl.materialKinds)).name("Kind").listen().onChange(()=>{In(),this.ensureBloom(!1),this.changedMaterial(),this.changedHighlight()}),kn.add(this.ctrl,"transparency",0,1,.001).name("Transparency").listen().onChange(Si=>this.changedGlobalTransparency(Si)),kn.add(this.ctrl,"wireframe").name("Wireframe").listen().onChange(()=>this.changedWireFrame()),kn.add(this,"showMaterialDocu").name("Docu from threejs.org"),In();const ci=this._gui.addFolder("Camera");ci.add(this.ctrl,"camera_kind",Pe(this.ctrl.cameraKindItems)).name("Kind").listen().onChange(()=>{Pi.show(0===this.ctrl.camera_kind.indexOf("ortho")),this.changeCamera()}),ci.add(this.ctrl,"can_rotate").name("Can rotate").listen().onChange(()=>this.changeCanRotate()),ci.add(this,"focusCamera").name("Reset position");const Pi=ci.add(this.ctrl,"camera_overlay",Pe(this.ctrl.cameraOverlayItems)).name("Overlay").listen().onChange(()=>this.changeCamera()).show(0===this.ctrl.camera_kind.indexOf("ortho"));if(this._webgl){const Si=this._gui.addFolder("Advanced");Si.add(this.ctrl,"depthTest").name("Depth test").listen().onChange(()=>this.changedDepthTest()),Si.add(this.ctrl,"depthMethod",Pe(this.ctrl.depthMethodItems)).name("Rendering order").onChange(bi=>this.changedDepthMethod(bi)),Si.add(this,"resetAdvanced").name("Reset")}if(!this.ctrl.project){const Si=this._gui.addFolder("Transform");Si.add(this.ctrl,"trans_z",0,3,.01).name("Z axis").listen().onChange(()=>this.changedTransformation()),Si.add(this.ctrl,"trans_radial",0,3,.01).name("Radial").listen().onChange(()=>this.changedTransformation()),Si.add(this,"resetTransformation").name("Reset"),(this.ctrl.trans_z||this.ctrl.trans_radial)&&Si.open()}}showMaterialDocu(){const K=this.ctrl.getMaterialCfg();K?.name&&typeof window<"u"&&window.open("https://threejs.org/docs/index.html#api/en/materials/"+K.name,"_blank")}changedHighlight(K){void 0!==K&&(this.ctrl.highlight=0!==K,this.ctrl.highlight&&(this.ctrl.highlight_bloom=2===K)),this.ensureBloom(),this.ctrl.highlight||this.highlightMesh(null),this._slave_painters?.forEach(ge=>{ge.ctrl.highlight=this.ctrl.highlight,ge.ctrl.highlight_bloom=this.ctrl.highlight_bloom,ge.ctrl.bloom_strength=this.ctrl.bloom_strength,ge.changedHighlight()})}changeCanRotate(K){void 0!==K&&(this.ctrl.can_rotate=K),this._controls&&(this._controls.enableRotate=this.ctrl.can_rotate)}changedUseFog(){this._scene.fog=this.ctrl.use_fog?this._fog:null,this.render3D()}changeCamera(){this._controls&&(this._controls.cleanup(),delete this._controls),this.ensureBloom(!1),this.createCamera(),this.createSpecialEffects(),this.adjustCameraPosition(!0),this.addOrbitControls(),this.render3D()}ensureBloom(K){if(void 0===K&&(0===this.ctrl.highlight_bloom&&(this.ctrl.highlight_bloom=this._webgl),K=this.ctrl.highlight_bloom&&this.ctrl.getMaterialCfg()?.emissive),K&&!this._bloomComposer){this._camera.layers.enable(1),this._bloomComposer=new L.s0G(this._renderer),this._bloomComposer.addPass(new L.AHc(this._scene,this._camera));const ge=new L.Cgj(new L.I9Y(this._scene_width,this._scene_height),1.5,.4,.85);ge.threshold=0,ge.radius=0,ge.renderToScreen=!0,this._bloomComposer.addPass(ge),this._renderer.autoClear=!1}else!K&&this._bloomComposer&&(this._bloomComposer.dispose(),delete this._bloomComposer,this._renderer&&(this._renderer.autoClear=!0),this._camera?.layers.disable(1),this._camera?.layers.set(0));this._bloomComposer?.passes&&(this._bloomComposer.passes[1].strength=this.ctrl.bloom_strength)}orbitContext(K,ge){(0,I.ES)(K,this).then(ye=>{let Pe=0,At=0,Ht=0;if(ge)for(let Nt=0;Nt1;Nt&&ye.add("header:"+(Pe>0?"Items":"Nodes"));for(let nn=0;nn")&&(In=(this.getItemName()||"top")+In.slice(6)),cn=In.slice(In.lastIndexOf("/")+1),cn||(cn=In),ci=cn;else{if(!kn)continue;cn=this._clones.getStackName(kn),In=this.getStackFullName(kn),ci=this.getItemName(),0===cn.indexOf("Nodes/")?ci=cn.slice(6):cn?ci=cn:ci||(ci="header")}if(Ht++,ye.add((Nt?"sub:":"header:")+ci,In,Si=>this.activateInBrowser([Si],!0)),ye.add("Browse",In,Si=>this.activateInBrowser([Si],!0)),this._hpainter&&ye.add("Inspect",In,Si=>this._hpainter.display(Si,x.kInspect)),(0,x.isFunc)(this.hidePhysicalNode))ye.add("Hide",In,Si=>this.hidePhysicalNode([Si])),Ht>1&&ye.add("Hide all before",nn,Si=>{const bi=[];for(let Jn=0;Jn{const bi=ge[Si].object;bi.visible=!1,bi.geo_object&&(bi.geo_object.$hidden_via_menu=!0),ye.painter.render3D()},"Hide this physical node"),Nt&&ye.add("endsub:");continue}const Pi=this.accessObjectWireFrame(hn);void 0!==Pi&&ye.addchk(Pi,"Wireframe",nn,Si=>{const bi=ge[Si].object.material;bi.wireframe=!bi.wireframe,this.render3D()},"Toggle wireframe mode for the node"),Ht>1&&ye.add("Manifest",nn,Si=>{this._last_manifest&&(this._last_manifest.wireframe=!this._last_manifest.wireframe),this._last_hidden&&this._last_hidden.forEach(bi=>{bi.visible=!0}),this._last_hidden=[];for(let bi=0;bi{bi.visible=!1}),this._last_manifest=ge[Si].object.material,this._last_manifest.wireframe=!this._last_manifest.wireframe,this.render3D()},"Manifest selected node"),ye.add("Focus",nn,Si=>{this.focusCamera(ge[Si].object)}),this._geom_viewer||(ye.add("Hide",nn,Si=>{const bi=this._clones.resolveStack(ge[Si].object.stack);bi.obj&&bi.node.kind===Z.k$&&bi.obj.fVolume?((0,Z.bg)(bi.obj.fVolume,Z.Wv.kVisThis,!1),tt(bi.obj.fVolume,this._hpainter)):bi.obj&&bi.node.kind===Z.NN&&(bi.obj.fRnrSelf=!1,tt(bi.obj,this._hpainter)),this.testGeomChanges()},"Hide all logical nodes of that kind"),ye.add("Hide only this",nn,Si=>{this._clones.setPhysNodeVisibility(Fe(ge[Si]),!1),this.testGeomChanges()},"Hide only this physical node"),nn>1&&ye.add("Hide all before",nn,Si=>{for(let bi=0;bi=0;--ye){const Pe=K[ye].object;let At=Pe.visible&&(Fe(K[ye])||void 0!==Pe.geo_name);At&&Pe.material&&void 0!==Pe.material.opacity&&(At=Pe.material.opacity>=.1),Pe.jsroot_special&&(At=!1);for(let Ht=0;Htthis._clipPlanes[0].constant^Ht&&(Nt=!1),ge[1].enabled&&this._clipPlanes[1].normal.dot(At)>this._clipPlanes[1].constant^Ht&&(Nt=!1),ge[2].enabled&&this._clipPlanes[2].normal.dot(At)>this._clipPlanes[2].constant&&(Nt=!1),Nt||ye.push(K[Pe])}K=ye}return K}testCameraPositionChange(){if(!this.ctrl.select_in_view||this._draw_all_nodes)return;const K=(0,Z.d4)(this._camera);(0,Z.P1)(K).CheckBox(this.getGeomBoundingBox())||this.startDrawGeometry()}resolveStack(K){return this._clones&&K?this._clones.resolveStack(K):null}getStackFullName(K){const ge=this.getItemName(),ye=this.resolveStack(K);return ye&&ye.name?ge?ge+"/"+ye.name:ye.name:ge}addHighlightHandler(K){(0,x.isFunc)(K?.highlightMesh)&&(this._highlight_handlers||(this._highlight_handlers=[]),this._highlight_handlers.push(K))}highlightMesh(K,ge,ye,Pe,At,Ht){if(ye){K=K?[K]:[];const kn=this.getExtrasContainer();kn&&kn.traverse(cn=>{cn.geo_object===ye&&K.indexOf(cn)<0&&K.push(cn)})}else At&&this._toplevel?(K=[],this._toplevel.traverse(kn=>{kn instanceof L.eaF&&(0,Z.xq)(kn.stack,At)&&K.push(kn)})):K=K?[K]:[];if(K.length||(K=null),K&&(K[0].geo_object?this.ctrl.highlight_scene||(K=null):this.ctrl.highlight||(K=null)),!Ht){K&&(ye||(ye=K[0].geo_object),At||(At=K[0].stack));const kn=this._highlight_handlers||(this._main_painter?this._main_painter._slave_painters.concat([this._main_painter]):this._slave_painters);for(let cn=0;cnkn.get_ctrl?kn.get_ctrl():new rt(kn,this.ctrl.highlight_bloom&&this._bloomComposer);let hn=!1;if(Nt&&K&&Nt.length===K.length){hn=!0;for(let kn=0;kn{if(!this.ctrl||!this._controls)return;let Ht,Nt,nn,ge=null,ye=null,Pe=null,At=[];for(let kn=0;kn")&&(ci=this.getItemName()+ci.slice(6)),At.push(ci),ge||(ge=cn,ye=ci,Ht=cn.geo_object,cn.get_ctrl&&(Nt=cn.get_ctrl().extractIndex(K[kn]),void 0!==Nt&&(0,x.isStr)(ye)&&(ye+=" indx:"+JSON.stringify(Nt))),nn=In,nn&&(Pe=this.resolveStack(nn),cn.stacks&&(Nt=K[kn].instanceId))))}if(this.highlightMesh(ge,void 0,Ht,Nt),this.ctrl.update_browser&&(this.ctrl.highlight&&ye&&(At=[ye]),this.activateInBrowser(At)),!Pe?.obj)return ye;const hn=(0,Z.V)(Pe.obj);return hn.unshift(ye),{name:Pe.obj.fName,title:Pe.obj.fTitle||Pe.obj._typename,lines:hn}},this._controls.processMouseLeave=function(){this.processMouseMove([])},this._controls.processDblClick=()=>{!this.ctrl||!this._controls||(this._last_manifest?(this._last_manifest.wireframe=!this._last_manifest.wireframe,this._last_hidden&&this._last_hidden.forEach(K=>{K.visible=!0}),delete this._last_hidden,delete this._last_manifest):this.adjustCameraPosition(!0),this.render3D())})}nextDrawAction(){if(!this._clones||this.isStage(0))return!1;if(this.isStage(1)){if(this._geom_viewer)return this._draw_all_nodes=!1,this.changeStage(3),!0;if(this.ctrl.use_worker>0){if(!this._worker)return this.startWorker(),1;if(!this._worker_ready)return 1}let K=this._first_drawing?this._clones.countVisibles():0,ge=null,ye=null;K||(K=this._clones.markVisibles(!1,!1,!!this.geo_manager&&!this.ctrl.showtop)),this.ctrl.select_in_view&&!this._first_drawing&&(ge=(0,Z.d4)(this._camera),ye=(0,Z.P1)(ge),ye.CheckBox(this.getGeomBoundingBox())&&(ge=null,ye=null)),this._current_face_limit=this.ctrl.maxfaces,ge&&(this._current_face_limit*=1.25);let Pe=!this.isBatchMode()&&x.browser.isChrome&&(K>1e4||ge&&this._clones.scanVisible()>1e5);if(Pe&&0===x.source_dir.indexOf("file://")&&(console.log("disable worker for jsroot from file system"),Pe=!1),Pe&&!this._worker&&this.ctrl.use_worker>=0&&this.startWorker(),!Pe||!this._worker_ready){const Ht=this._clones.collectVisibles(this._current_face_limit,ye);return this._new_draw_nodes=Ht.lst,this._draw_all_nodes=Ht.complete,this.changeStage(3),!0}const At={collect:this._current_face_limit,flags:this._clones.getVisibleFlags(),matrix:ge?ge.elements:null,vislevel:this._clones.getVisLevel(),maxvisnodes:this._clones.getMaxVisNodes()};return this.submitToWorker(At),this.changeStage(2),2}if(this.isStage(2))return 2;if(this.isStage(3)){if(this._new_append_nodes)this._new_draw_nodes=this._draw_nodes.concat(this._new_append_nodes),delete this._new_append_nodes;else if(this._draw_nodes){let K;K=this._geom_viewer?this._draw_nodes:this._clones.mergeVisibles(this._new_draw_nodes,this._draw_nodes);for(let ge=0;ge0&&(this.drawing_log=`Delete ${K.length} nodes`)}return this._draw_nodes=this._new_draw_nodes,delete this._new_draw_nodes,this.changeStage(4),!0}if(this.isStage(4)){const K=this._clones.collectShapes(this._draw_nodes);return this._build_shapes=this._clones.mergeShapesLists(this._build_shapes,K),this.changeStage(5),!0}if(this.isStage(5)){if(this.canSubmitToWorker()){const K={limit:this._current_face_limit,shapes:[]};let ge=0;for(let ye=0;ye0)return this.submitToWorker(K),this.changeStage(6),2}this.changeStage(7)}if(this.isStage(6))return 2;if(this.isStage(7)||this.isStage(8)){if(this.isStage(7)){const At=this._clones.buildShapes(this._build_shapes,this._current_face_limit,500);if(!At.done)return this.ctrl.info.num_shapes=At.shapes,this.drawing_log=`Creating: ${At.shapes} / ${this._build_shapes.length} shapes, ${At.faces} faces`,!0;this.ctrl.info.num_shapes=this._build_shapes.length,this.changeStage(8)}const K=(new Date).getTime(),ge=this.ctrl.project?this._full_geom:this._toplevel;let ye=!1,Pe=!0;if(this.ctrl.project||(ye=this._clones.createInstancedMeshes(this.ctrl,ge,this._draw_nodes,this._build_shapes,(0,v.HG)())),!ye)for(let At=0;At500)){Pe=!1;break}}return Pe?this.ctrl.project?(this.changeStage(10),!0):(this.changeStage(0),!1):(this.isStage(7)||(this.drawing_log=`Building meshes ${this.ctrl.info.num_meshes} / ${this.ctrl.info.num_faces}`),!0)}if(this.isStage(9)){if(!this._main_painter)return this.changeStage(0,"Lost main painter"),!1;if(!this._main_painter._drawing_ready)return 1;this.changeStage(10)}return this.isStage(10)?(this.doProjection(),this.changeStage(0),!1):(console.error(`never come here, stage ${this.drawing_stage}`),!1)}createEntryMesh(K,ge,ye){return this._splitColors&&K.stack&&(0===K.stack[0]?K.custom_color="green":1===K.stack[0]&&(K.custom_color="blue")),this._clones.createEntryMesh(this.ctrl,ye,K,ge,(0,v.HG)()),!0}appendMoreNodes(K,ge){if(!this.isStage(0)&&!ge)return void(this._provided_more_nodes=K);if(this._more_nodes)for(let Pe=0;Pe0&&(this._more_nodes=ye),ge||this.render3D()}getProjectionSource(){return this._clones_owner?this._full_geom:this._main_painter?this._main_painter._drawing_ready?this._main_painter._toplevel:(console.warn("MAIN PAINTER NOT READY WHEN DO PROJECTION"),null):(console.warn("MAIN PAINTER DISAPPER"),null)}extendCustomBoundingBox(K){if(!K)return;this._customBoundingBox||(this._customBoundingBox=(new L.NRn).makeEmpty());const ge=this._customBoundingBox.clone();this._customBoundingBox.union(K),this._customBoundingBox.equals(ge)||(this._adjust_camera_with_render=!0)}getGeomBoundingBox(K,ge){const ye=new L.NRn,Pe=!this._clones;return void 0===K&&(K=this._toplevel),ye.makeEmpty(),this._customBoundingBox&&K===this._toplevel?(ye.union(this._customBoundingBox),ye):K?(K.traverse(At=>{(Pe||At.stack&&At instanceof L.eaF||At.main_track&&At instanceof L.DXC||At.stacks&&At instanceof L.ZLX)&&(0,Z.UX)(At,ye)}),"original"===ge?(ye.translate(new L.Pq0(-K.position.x,-K.position.y,-K.position.z)),ye.min.multiply(new L.Pq0(1/K.scale.x,1/K.scale.y,1/K.scale.z)),ye.max.multiply(new L.Pq0(1/K.scale.x,1/K.scale.y,1/K.scale.z))):void 0!==ge&&ye.expandByVector(ye.getSize(new L.Pq0).multiplyScalar(ge)),ye):(ye.min.x=ye.min.y=ye.min.z=-1,ye.max.x=ye.max.y=ye.max.z=1,ye)}doProjection(){const K=this.getProjectionSource();if(!K)return!1;if((0,_.G1)(this._toplevel,!0),void 0===this.ctrl.projectPos){const ge=this.getGeomBoundingBox(K),ye=ge.min[this.ctrl.project],Pe=ge.max[this.ctrl.project];let At=(ye+Pe)/2;ye<0&&Pe>0&&Math.abs(At)<.2*Math.max(-ye,Pe)&&(At=0),this.ctrl.projectPos=At}return K.traverse(ge=>{if(!(ge instanceof L.eaF&&ge.stack))return;const ye=(0,Z.qr)(ge.geometry,ge.parent.absMatrix||ge.parent.matrixWorld,this.ctrl.project,this.ctrl.projectPos,ge._flippedMesh);if(!ye)return;const Pe=new L.eaF(ye,ge.material.clone());this._toplevel.add(Pe),Pe.stack=ge.stack}),!0}changedLight(K){if(!this._camera)return;const ge=!K;K||(K=this.getGeomBoundingBox());const ye=K.max.x-K.min.x,Pe=K.max.y-K.min.y,At=K.max.z-K.min.z,Ht=[],Nt=.5*(this.ctrl.light.power??1);if(this._camera._lights!==this.ctrl.light.kind)switch((0,_.G1)(this._camera,!0),this._camera._lights=this.ctrl.light.kind,this._camera._lights){case"ambient":this._camera.add(new L.$p8(15724527,Nt));break;case"hemisphere":this._camera.add(new L.dth(16777147,526368,Nt));break;case"mix":this._camera.add(new L.$p8(15724527,Nt));default:for(let nn=0;nn<6;++nn){const hn=new L.ZyN(15724527,Nt);this._camera.add(hn),hn._id=nn}}for(let nn=0;nn{nn.power=4*Nt*Math.PI/Ht.length}),ge&&this.render3D()}isOrthoCamera(){return 0===this.ctrl.camera_kind.indexOf("ortho")}createCamera(){this._camera&&(this._scene.remove(this._camera),(0,_.G1)(this._camera),delete this._camera),this.isOrthoCamera()?this._camera=new L.qUd(-this._scene_width/2,this._scene_width/2,this._scene_height/2,-this._scene_height/2,1,1e4):(this._camera=new L.ubm(25,this._scene_width/this._scene_height,1,1e4),this._camera.up=this.ctrl._yup?new L.Pq0(0,1,0):new L.Pq0(0,0,1));const K=new L.ZyN(15724527,.1);K.position.set(10,10,10),this._camera.add(K),this._scene.add(this._camera)}createSpecialEffects(){this._webgl&&this.ctrl.outline&&(0,x.isFunc)(this.createOutline)&&(this._effectComposer=new L.s0G(this._renderer),this._effectComposer.addPass(new L.AHc(this._scene,this._camera)),this.createOutline(this._scene_width,this._scene_height)),this.ensureBloom()}createScene(K,ge,ye){var Pe=this;return(0,Te.A)(function*(){if(Pe.superimpose){const At=Ge(Pe.getMainPainter());return At?.renderer&&(Pe._scene=At.scene,Pe._scene_width=At.scene_width,Pe._scene_height=At.scene_height,Pe._renderer=At.renderer,Pe._webgl=Pe._renderer.jsroot_render3d===x.constants.Render3D.WebGL,Pe._toplevel=new L.B69,Pe._scene.add(Pe._toplevel),(At.scale_x||At.scale_y||At.scale_z)&&Pe._toplevel.scale.set(At.scale_x,At.scale_y,At.scale_z),(At.offset_x||At.offset_y||At.offset_z)&&Pe._toplevel.position.set(At.offset_x,At.offset_y,At.offset_z),Pe._toplevel.updateMatrix(),Pe._toplevel.updateMatrixWorld(),Pe._camera=At.camera),Pe._renderer?.jsroot_dom}return Pe._scene=new L.Z58,Pe._fog=new L.jUj(16777215,1,1e4),Pe._scene.fog=Pe.ctrl.use_fog?Pe._fog:null,Pe._scene.overrideMaterial=new L.G_z({color:7340287,vertexColors:!1,transparent:!0,opacity:.2,depthTest:!1}),Pe._scene_width=K,Pe._scene_height=ge,Pe.createCamera(),Pe._selected_mesh=null,Pe._overall_size=10,Pe._toplevel=new L.B69,Pe._scene.add(Pe._toplevel),Pe._scene.background=new L.Q1f(Pe.ctrl.background),(0,_.Yw)(K,ge,ye,{antialias:!0,logarithmicDepthBuffer:!1,preserveDrawingBuffer:!0}).then(At=>{if(Pe._renderer=At,Pe.batch_format&&(At.jsroot_image_format=Pe.batch_format),Pe._webgl=Pe._renderer.jsroot_render3d===x.constants.Render3D.WebGL,Pe._renderer.setPixelRatio&&!(0,x.isNodeJs)()&&Pe._renderer.setPixelRatio(window.devicePixelRatio),Pe._renderer.setSize(K,ge,!Pe._fit_main_area),Pe._renderer.localClippingEnabled=!0,Pe._renderer.setClearColor(Pe._scene.background,1),Pe._fit_main_area&&Pe._webgl){Pe._renderer.domElement.style.width="100%",Pe._renderer.domElement.style.height="100%";const Ht=Pe.selectDom();"static"===Ht.style("position")&&Ht.style("position","relative")}if(Pe._animating=!1,Pe.ctrl.doubleside=!1,Pe.createSpecialEffects(),Pe._fit_main_area&&!Pe._webgl){const Nt=(0,x.getDocument)().createElementNS("http://www.w3.org/2000/svg","svg");return Nt.setAttribute("width",K),Nt.setAttribute("height",ge),Nt.appendChild(Pe._renderer.jsroot_dom),Nt}return Pe._renderer.jsroot_dom})})()}startDrawGeometry(K){K||this.isStage(0)?(this._clones_owner&&this._clones&&this._clones.setDefaultColors(this.ctrl.dflt_colors),this._startm=(new Date).getTime(),this._last_render_tm=this._startm,this._last_render_meshes=0,this.changeStage(1),this._drawing_ready=!1,this.ctrl.info.num_meshes=0,this.ctrl.info.num_faces=0,this.ctrl.info.num_shapes=0,this._selected_mesh=null,this.ctrl.project&&(this._clones_owner?this._full_geom?this.changeStage(10):this._full_geom=new L.B69:this.changeStage(9)),delete this._last_manifest,delete this._last_hidden,delete this._draw_nodes_again,this.continueDraw()):this._draw_nodes_again=!0}resetAdvanced(){this.ctrl.depthTest=!0,this.ctrl.clipIntersect=!0,this.ctrl.depthMethod="ray",this.changedDepthMethod("norender"),this.changedDepthTest()}getOverallSize(K){if(!this._overall_size||K||this._customBoundingBox){const ge=this.getGeomBoundingBox();if(!Number.isFinite(ge.min.x))return 1e3;this._overall_size=2*Math.max(ge.max.x-ge.min.x,ge.max.y-ge.min.y,ge.max.z-ge.min.z)}return this._overall_size}createSnapshot(K){if(!this._renderer)return;this.render3D(0);const ge=this._renderer.domElement.toDataURL("image/png");if("asis"===K)return ge;ge.replace("image/png","image/octet-stream");const ye=(0,x.getDocument)(),Pe=ye.createElement("a");(0,x.isStr)(Pe.download)&&(ye.body.appendChild(Pe),Pe.download=K||"geometry.png",Pe.href=ge,Pe.click(),ye.body.removeChild(Pe))}produceCameraUrl(K){if(!this._camera)return"";if(this._camera.isOrthographicCamera){const kn=Math.round(100*this._camera.zoom);return this.ctrl.camera_kind+(100===kn?"":`,zoom=${kn}`)}let ge="";if("perspective"!==this.ctrl.camera_kind&&(ge=this.ctrl.camera_kind+","),!0===K){const kn=this._camera?.position,cn=this._controls?.target;if(!kn||!cn)return"";const In=Pi=>{let Si="";return Pi<0&&(Si="n",Pi=-Pi),Si+Pi.toFixed(0)};let ci=`${ge}camx${In(kn.x)},camy${In(kn.y)},camz${In(kn.z)}`;return(cn.x||cn.y||cn.z)&&(ci+=`,camlx${In(cn.x)},camly${In(cn.y)},camlz${In(cn.z)}`),ci}if(!this._lookat||!this._camera0pos)return"";const ye=(new L.Pq0).add(this._camera0pos).sub(this._lookat),Pe=(new L.Pq0).add(this._camera.position).sub(this._lookat),At=Math.min(1e4,Math.max(1,this.ctrl.zoom*Pe.length()/ye.length()*100));ye.normalize(),Pe.normalize();const Ht=new L.PTz,Nt=new L.O9p;Ht.setFromUnitVectors(ye,Pe),Nt.setFromQuaternion(Ht,"YZX");let nn=Nt.y/Math.PI*180,hn=Nt.z/Math.PI*180;return nn<0&&(nn+=360),hn<0&&(hn+=360),`${ge}roty${nn.toFixed(0)},rotz${hn.toFixed(0)},zoom${At.toFixed(0)}`}calculateZoom(){if(this._camera0pos&&this._camera&&this._lookat){const K=(new L.Pq0).add(this._camera0pos).sub(this._lookat);return(new L.Pq0).add(this._camera.position).sub(this._lookat).length()/K.length()}return 0}adjustCameraPosition(K,ge){if(!this._toplevel||this.superimpose)return;const ye=!0===K,Pe="first"===K||ye,At="only_set"===K,Ht=this.getGeomBoundingBox();if(!Number.isFinite(Ht.min.x))return void console.log("FAILS to get geometry bounding box");const Nt=Ht.max.x-Ht.min.x,nn=Ht.max.y-Ht.min.y,hn=Ht.max.z-Ht.min.z,kn=(Ht.max.x+Ht.min.x)/2,cn=(Ht.max.y+Ht.min.y)/2,In=(Ht.max.z+Ht.min.z)/2,ci=this.ctrl._axis||"bar"===this.ctrl.camera_overlay?.2:.1;if(this._scene_size&&!ye){const Jn=this._scene_size,Wi=(Rs,oe,D)=>(D||(D=Math.abs((Rs+oe)/2)),D<=1e-20||Math.abs(oe-Rs)/D>.01);if(!(Wi(Nt,Jn.sizex)||Wi(nn,Jn.sizey)||Wi(hn,Jn.sizez)||Wi(kn,Jn.midx,Jn.sizex)||Wi(cn,Jn.midy,Jn.sizey)||Wi(In,Jn.midz,Jn.sizez)))return void(this.ctrl.select_in_view&&this.startDrawGeometry())}if(this._scene_size={sizex:Nt,sizey:nn,sizez:hn,midx:kn,midy:cn,midz:In},this._overall_size=2*Math.max(Nt,nn,hn),this._camera.near=this._overall_size/350,this._camera.far=100*this._overall_size,this._fog.near=.5*this._overall_size,this._fog.far=5*this._overall_size,Pe)for(let Jn=0;Jn<3;++Jn){const Wi=this.ctrl.clip[Jn];Wi.min=Ht.min[Wi.name],Wi.max=Ht.max[Wi.name];const Ln=Wi.max-Wi.min;Wi.max+=.01*Ln,Wi.min-=.01*Ln,Wi.step=Ln>100?.1:Ln>1?.001:void 0,Wi.value?Wi.valueWi.max&&(Wi.value=Wi.max):Wi.value=(Wi.min+Wi.max)/2}let Pi=2*this.ctrl.zoom;const Si=Math.max(Nt,nn,hn),bi=this.ctrl.camera_kind.indexOf("N")>0?-1:1;if(this._lookat=new L.Pq0(kn,cn,In),this._camera0pos=new L.Pq0(-2*Si,0,0),this._camera.updateMatrixWorld(),this._camera.updateProjectionMatrix(),(this.ctrl.rotatey||this.ctrl.rotatez)&&this.ctrl.can_rotate){const Jn=this.calculateZoom();ge&&Jn&&(Pi=2*Jn);const Wi=new L.O9p(0,this.ctrl.rotatey/180*Math.PI,this.ctrl.rotatez/180*Math.PI,"YZX");this._camera.position.set(-Pi*Si,0,0),this._camera.position.applyEuler(Wi),this._camera.position.add(new L.Pq0(kn,cn,In)),ge&&Jn&&(Pi*=Jn/this.calculateZoom(),this._camera.position.set(-Pi*Si,0,0),this._camera.position.applyEuler(Wi),this._camera.position.add(new L.Pq0(kn,cn,In)))}else if(void 0!==this.ctrl.camx&&void 0!==this.ctrl.camy&&void 0!==this.ctrl.camz)this._camera.position.set(this.ctrl.camx,this.ctrl.camy,this.ctrl.camz),this._lookat.set(this.ctrl.camlx||0,this.ctrl.camly||0,this.ctrl.camlz||0),this.ctrl.camx=this.ctrl.camy=this.ctrl.camz=this.ctrl.camlx=this.ctrl.camly=this.ctrl.camlz=void 0;else if("orthoXOY"===this.ctrl.camera_kind||"orthoXNOY"===this.ctrl.camera_kind)this._camera.up.set(0,1,0),this._camera.position.set(bi<0?2*kn:0,0,In+bi*hn*2),this._lookat.set(bi<0?2*kn:0,0,In),this._camera.left=Ht.min.x-ci*Nt,this._camera.right=Ht.max.x+ci*Nt,this._camera.top=Ht.max.y+ci*nn,this._camera.bottom=Ht.min.y-ci*nn,ge||(this._camera.zoom=this.ctrl.zoom||1),this._camera.orthoSign=bi,this._camera.orthoZ=[In,hn/2];else if("orthoXOZ"===this.ctrl.camera_kind||"orthoXNOZ"===this.ctrl.camera_kind)this._camera.up.set(0,0,1),this._camera.position.set(bi<0?2*kn:0,cn-bi*nn*2,0),this._lookat.set(bi<0?2*kn:0,cn,0),this._camera.left=Ht.min.x-ci*Nt,this._camera.right=Ht.max.x+ci*Nt,this._camera.top=Ht.max.z+ci*hn,this._camera.bottom=Ht.min.z-ci*hn,ge||(this._camera.zoom=this.ctrl.zoom||1),this._camera.orthoIndicies=[0,2,1],this._camera.orthoRotation=Jn=>Jn.rotateX(Math.PI/2),this._camera.orthoSign=bi,this._camera.orthoZ=[cn,-nn/2];else if("orthoZOY"===this.ctrl.camera_kind||"orthoZNOY"===this.ctrl.camera_kind)this._camera.up.set(0,1,0),this._camera.position.set(kn-bi*Nt*2,0,bi<0?2*In:0),this._lookat.set(kn,0,bi<0?2*In:0),this._camera.left=Ht.min.z-ci*hn,this._camera.right=Ht.max.z+ci*hn,this._camera.top=Ht.max.y+ci*nn,this._camera.bottom=Ht.min.y-ci*nn,ge||(this._camera.zoom=this.ctrl.zoom||1),this._camera.orthoIndicies=[2,1,0],this._camera.orthoRotation=Jn=>Jn.rotateY(-Math.PI/2),this._camera.orthoSign=bi,this._camera.orthoZ=[kn,-Nt/2];else if("orthoZOX"===this.ctrl.camera_kind||"orthoZNOX"===this.ctrl.camera_kind)this._camera.up.set(1,0,0),this._camera.position.set(0,cn-bi*nn*2,bi>0?2*In:0),this._lookat.set(0,cn,bi>0?2*In:0),this._camera.left=Ht.min.z-ci*hn,this._camera.right=Ht.max.z+ci*hn,this._camera.top=Ht.max.x+ci*Nt,this._camera.bottom=Ht.min.x-ci*Nt,ge||(this._camera.zoom=this.ctrl.zoom||1),this._camera.orthoIndicies=[2,0,1],this._camera.orthoRotation=Jn=>Jn.rotateX(Math.PI/2).rotateY(Math.PI/2),this._camera.orthoSign=bi,this._camera.orthoZ=[cn,-nn/2];else if(this.ctrl.project)switch(this.ctrl.project){case"x":this._camera.position.set(1.5*Pi*Math.max(nn,hn),0,0);break;case"y":this._camera.position.set(0,1.5*Pi*Math.max(Nt,hn),0);break;case"z":this._camera.position.set(0,0,1.5*Pi*Math.max(Nt,nn))}else"perspXOZ"===this.ctrl.camera_kind?(this._camera.up.set(0,1,0),this._camera.position.set(kn-3*Si,cn,In)):"perspYOZ"===this.ctrl.camera_kind?(this._camera.up.set(1,0,0),this._camera.position.set(kn,cn-3*Si,In)):"perspXOY"===this.ctrl.camera_kind?(this._camera.up.set(0,0,1),this._camera.position.set(kn-3*Si,cn,In)):this.ctrl._yup?(this._camera.up.set(0,1,0),this._camera.position.set(kn-Pi*Math.max(Nt,hn),cn+Pi*nn,In-Pi*Math.max(Nt,hn))):(this._camera.up.set(0,0,1),this._camera.position.set(kn-Pi*Math.max(Nt,nn),cn-Pi*Math.max(Nt,nn),In+Pi*hn));if(this._camera.isOrthographicCamera&&this.isOrthoCamera()&&this._scene_width&&this._scene_height){const Jn=this._scene_width/this._scene_height,Wi=this._camera.right-this._camera.left,Ln=this._camera.top-this._camera.bottom;if(Jn>Wi/Ln){const Rs=(this._camera.right+this._camera.left)/2;this._camera.left=Rs-Ln*Jn/2,this._camera.right=Rs+Ln*Jn/2}else{const Rs=(this._camera.top+this._camera.bottom)/2;this._camera.top=Rs+Wi/Jn/2,this._camera.bottom=Rs-Wi/Jn/2}}this._camera.lookAt(this._lookat),this._camera.updateProjectionMatrix(),this.changedLight(Ht),this._controls&&(this._controls.target.copy(this._lookat),At||this._controls.update()),this.ctrl.select_in_view&&!At&&this.startDrawGeometry()}setCameraPosition(K,ge,ye){if(!this.ctrl)return;this.ctrl.rotatey=K||0,this.ctrl.rotatez=ge||0;let Pe=!1;ye&&Number.isFinite(ye)?this.ctrl.zoom=ye:Pe=!0,this.adjustCameraPosition(!1,Pe)}setCameraPositionAndLook(K,ge,ye,Pe,At,Ht){this.ctrl&&(this.ctrl.camx=K,this.ctrl.camy=ge,this.ctrl.camz=ye,this.ctrl.camlx=Pe,this.ctrl.camly=At,this.ctrl.camlz=Ht,this.adjustCameraPosition(!1))}focusOnItem(K){if(!K||!this._clones)return;const ge=this._clones.findStackByName(K);ge&&this.focusCamera(this._clones.resolveStack(ge,!0),!1)}focusCamera(K,ge){if(this.ctrl.project||this.isOrthoCamera())return this.adjustCameraPosition(!0),this.render3D();let ye=new L.NRn;if(void 0===K)ye=this.getGeomBoundingBox();else if(K instanceof L.eaF)ye.setFromObject(K);else{const Wi=(new L.Pq0).setFromMatrixPosition(K.matrix),Ln=K.node,Rs=new L.Pq0(Ln.fDX,Ln.fDY,Ln.fDZ).multiplyScalar(.5);ye.min=Wi.clone().sub(Rs),ye.max=Wi.clone().add(Rs)}const Pe=ye.max.x-ye.min.x,At=ye.max.y-ye.min.y,Ht=ye.max.z-ye.min.z,Nt=(ye.max.x+ye.min.x)/2,nn=(ye.max.y+ye.min.y)/2,hn=(ye.max.z+ye.min.z)/2;let kn,cn=50,In=0;kn=this.ctrl._yup?new L.Pq0(Nt-2*Math.max(Pe,Ht),nn+2*At,hn-2*Math.max(Pe,Ht)):new L.Pq0(Nt-2*Math.max(Pe,At),nn-2*Math.max(Pe,At),hn+2*Ht);const ci=new L.Pq0(Nt,nn,hn),Pi=this._controls.target,Si=kn.sub(this._camera.position).divideScalar(cn),bi=ci.sub(Pi).divideScalar(cn);if(ge=ge&&this._webgl){for(let Wi=0;Wi<3;++Wi){const Ln=this.ctrl.clip[Wi];Ln.enabled||(Ln.value=Ln.min,Ln.enabled=!0),Ln.inc=((Ln.min+Ln.max)/2-Ln.value)/cn}this.updateClipping()}this._animating=!0;const Jn=()=>{if(void 0===this._animating)return;this._animating?requestAnimationFrame(Jn):this._geom_viewer||this.startDrawGeometry();const Wi=1-Math.cos(2*Math.PI*In/cn);this._camera.position.add(Si.clone().multiplyScalar(Wi)),Pi.add(bi.clone().multiplyScalar(Wi)),this._lookat=Pi,this._camera.lookAt(this._lookat),this._camera.updateProjectionMatrix();const Ln=(new Date).getTime();if(ge){for(let oe=0;oe<3;++oe)this.ctrl.clip[oe].value+=this.ctrl.clip[oe].inc*Wi;this.updateClipping()}else this.render3D(0);const Rs=(new Date).getTime();0===In&&Rs-Ln>200&&(cn=20),In++,this._animating=In{if(!this._renderer||!this.ctrl)return;const At=new Date;this.ctrl.rotate&&requestAnimationFrame(Pe),this._controls&&(this._controls.autoRotate=this.ctrl.rotate,this._controls.autoRotateSpeed=ge*(At.getTime()-ye.getTime())/16.6666,this._controls.update()),ye=new Date,this.render3D(0)};this._webgl&&Pe()}completeScene(){}drawCount(K,ge){var ye=this;return(0,Te.A)(function*(){const Pe=In=>(ye.isBatchMode()?"anytime":In.toString())+" ms",At=["Unique nodes: "+ye._clones.nodes.length,"Unique visible: "+K,"Time to clone: "+Pe(ge)];ye._clones.scanVisible();let Ht=0;const Nt={clones:ye._clones,cnt:[],func(In){return void 0===this.cnt[this.last]?this.cnt[this.last]=1:this.cnt[this.last]++,Ht+=(0,Z._b)(this.clones.getNodeShape(In.id)),!0}};let nn=(new Date).getTime(),hn=ye._clones.scanVisible(Nt),kn=(new Date).getTime();At.push(`Total visible nodes: ${hn}`,`Total shapes: ${Ht}`);for(let In=0;Incn.append("p").text(In)),(0,x.postponePromise)(()=>{Nt.domatrix=!0,nn=(new Date).getTime(),hn=ye._clones.scanVisible(Nt),kn=(new Date).getTime();const In=`Time to scan with matrix: ${Pe(kn-nn)}`;return ye.isBatchMode()?At.push(In):cn.append("p").text(In),ye},100)})()}performDrop(K,ge,ye,Pe){var At=this;return(0,Te.A)(function*(){if("TTree"===K?.$kind){let Ht="extract_geo_tracks";Pe&&Pe.indexOf("$")>0&&(Ht=Pe.slice(0,Pe.indexOf("$")),Pe=Pe.slice(Pe.indexOf("$")+1));const Nt=(0,x.findFunction)(Ht);return Nt?Nt(K,Pe).then(nn=>nn?At.drawExtras(nn,"",!1).then(()=>(At.updateClipping(!0),At.render3D(100))):At):Promise.reject(Error(`Function ${Ht} not found`))}return At.drawExtras(K,ge).then(Ht=>Ht?(ye&&(ye._painter=At),At.render3D(100)):At)})()}mouseOverHierarchy(K,ge,ye){if(!this.ctrl)return;const Pe=ye._obj;!Pe||Pe._typename!==z&&Pe._typename!==W&&Pe._typename!==x.clTPolyMarker3D||this.highlightMesh(null,65280,K?Pe:null)}clearExtras(){this.getExtrasContainer("delete"),delete this._extraObjects,this.render3D()}addExtra(K,ge){return void 0===this._extraObjects&&(this._extraObjects=(0,x.create)(x.clTList)),!(this._extraObjects.arr.indexOf(K)>=0||(this._extraObjects.Add(K,ge),delete K.$hidden_via_menu,0))}extraObjectVisible(K,ge,ye){if(!this._extraObjects)return;const Pe=K.itemFullName(ge);let At=this._extraObjects.opt.indexOf(Pe);if(At<0&&ge._obj&&(At=this._extraObjects.arr.indexOf(ge._obj),At>=0&&(this._extraObjects.opt[At]=Pe)),At<0)return;const Ht=this._extraObjects.arr[At];let Nt=!!Ht.$hidden_via_menu;if(ye){Ht.$hidden_via_menu=Nt,Nt=!Nt;let nn=null;this._toplevel.traverse(hn=>{hn.geo_object===Ht&&(nn=hn)}),nn?(nn.visible=Nt,this.render3D()):Nt&&this.drawExtras(Ht,"",!1).then(()=>{this.updateClipping(!0),this.render3D()})}return Nt}drawExtras(K,ge,ye,Pe){var At=this;return(0,Te.A)(function*(){if(!K?._typename||!ye&&K.$hidden_via_menu)return!1;let Ht=!1;void 0===ye?(ye=!0,Ht=!0):Pe&&(Ht=!0);let Nt=!1;if(K._typename===x.clTList||K._typename===x.clTObjArray){if(!K.arr)return!1;const nn=[];for(let hn=0;hn")+`/[${hn}]`),nn.push(At.drawExtras(K.arr[hn],cn,ye))}Nt=Promise.all(nn).then(hn=>hn.indexOf(!0)>=0)}else"Mesh"===K._typename?(At.addToExtrasContainer(K),Nt=Promise.resolve(!0)):"TGeoTrack"===K._typename?(!ye||At.addExtra(K,ge))&&(Nt=At.drawGeoTrack(K,ge)):K._typename===x.clTPolyLine3D?(!ye||At.addExtra(K,ge))&&(Nt=At.drawPolyLine(K,ge)):K._typename===z||K._typename===`${x.nsREX}REveTrack`?(!ye||At.addExtra(K,ge))&&(Nt=At.drawEveTrack(K,ge)):K._typename===W||K._typename===`${x.nsREX}REvePointSet`||K._typename===x.clTPolyMarker3D?(!ye||At.addExtra(K,ge))&&(Nt=At.drawHit(K,ge)):(K._typename===b||K._typename===fe)&&(!ye||At.addExtra(K,ge))&&(Nt=At.drawExtraShape(K,ge));return(0,x.getPromise)(Nt).then(nn=>{if(!nn||!Ht)return nn;At.updateClipping(!0);const hn=At.render3D(100,!!Pe&&"nopromise");return Pe?At:hn})})()}getExtrasContainer(K,ge){if(!this._toplevel)return null;ge||(ge="tracks");let ye=null;const Pe=[];for(let At=0;At/Tracks")&&(In.main_track=!0),this.addToExtrasContainer(In),!0}drawPolyLine(K,ge){if(!K)return!1;const ye=x.browser.isWin?1:K.fLineWidth||1,Pe=(0,v.oU)(K.fLineColor)||"#ff00ff",At=K.fN,Ht=K.fP,Nt=new Float32Array(6*(At-1)),nn=this.ctrl.projectPos,hn="x"===this.ctrl.project,kn="y"===this.ctrl.project,cn="z"===this.ctrl.project;for(let Pi=0,Si=0;Pi(cn.defaultOrder=cn.renderOrder=1e6,cn.highlightScale=2,cn.geo_name=ge,cn.geo_object=K,ye.addToExtrasContainer(cn),!0))})()}drawExtraShape(K,ge){const ye=yo(K);return!!ye&&(ye.geo_name=ge,ye.geo_object=K,this.addToExtrasContainer(ye),!0)}findNodeWithVolume(K,ge,ye,Pe,At){let Ht=!1,Nt=null;if(ye)Pe&&(Pe+="/"),Pe+=ye.fName;else{if(!(ye=this.getGeometry())&&0!==(0,Z.Dh)(ye))return null;Pe=this.geo_manager?ye.fName:"",Ht=!0,At=[]}if(!ye.fVolume||ye.fVolume._searched)return null;if(K.test(ye.fVolume.fName)&&(Nt=ge({node:ye,item:Pe}),Nt))return Nt;if(ye.fVolume._searched=!0,At.push(ye.fVolume),ye.fVolume.fNodes)for(let nn=0,hn=ye.fVolume.fNodes.arr.length;nn{const Ht=new RegExp("^"+At+"$"),Nt=ge.findNodeWithVolume(Ht,nn=>nn);return Nt||console.log(`Did not found ${At} volume`),{found:Nt,fVolume:Nt?.node?.fVolume,InvisibleAll(nn){(0,Z.N_)(this.fVolume,nn)},Draw(){!this.found||!this.fVolume||(ye.obj=this.found.node,ye.prefix=this.found.item,console.log(`Select volume for drawing ${this.fVolume.fName} ${ye.prefix}`))},SetTransparency(nn){this.fVolume?.fMedium?.fMaterial&&(this.fVolume.fMedium.fMaterial.fFillStyle=3e3+nn)},SetLineColor(nn){this.fVolume&&(this.fVolume.fLineColor=nn)}}},DefaultColors:()=>{ge.ctrl.dflt_colors=!0},SetMaxVisNodes:At=>{ge.ctrl.maxnodes||(ge.ctrl.maxnodes=parseInt(At)||0)},SetVisLevel:At=>{ge.ctrl.vislevel||(ge.ctrl.vislevel=parseInt(At)||0)}};return(0,ve.Rh)(`Loading macro ${K}`),(0,x.httpRequest)(K,"text").then(At=>{const Ht=At.split("\n");let Nt=0;for(;NtGetVolume",".GetVolume"),nn=nn.replace("->InvisibleAll",".InvisibleAll"),nn=nn.replace("->SetMaxVisNodes",".SetMaxVisNodes"),nn=nn.replace("->DefaultColors",".DefaultColors"),nn=nn.replace("->Draw",".Draw"),nn=nn.replace("->SetTransparency",".SetTransparency"),nn=nn.replace("->SetLineColor",".SetLineColor"),nn=nn.replace("->SetVisLevel",".SetVisLevel"),nn.indexOf("->")>=0)))try{new Function("gGeoManager",nn)(Pe)}catch{console.error(`Problem by processing ${nn}`)}}return ye}).catch(()=>(console.error(`Fail to load ${K}`),ye))})()}assignClones(K){this._clones_owner=!0,this._clones=K}extractRawShapes(K,ge){let ye=null,Pe=0;ge&&(ye=K.numnodes>1e6?{length:K.numnodes}:new Array(K.numnodes)),K.nodes.forEach(Ht=>{Ht=Z.De.formatServerElement(Ht),ye?ye[Ht.id]=Ht:this._clones.updateNode(Ht)}),ge&&(this._clones_owner=!0,this._clones=new Z.De(null,ye),this._clones.name_prefix=this._clones.getNodeName(0),this._clones.setConfig(this.ctrl),this._clones.maxdepth=20);let At=0;K.cfg&&(At=K.cfg.nsegm),At&&(Pe=(0,Z.QL)("GradPerSegm"),(0,Z.QL)("GradPerSegm",360/Math.max(At,6)));for(let Ht=0;Ht(At.fillatt?.color&&(ye.ctrl.background=At.fillatt.color),nn=ye.getFramePainter(),ye.batch_mode=At.isBatchMode(),Nt=(0,_.ke)(void 0,ye.batch_mode),(0,_.LR)(nn),nn.mode3d=!0,Ht=nn.getSizeFor3d(void 0,Nt),ye._fit_main_area=-1===Ht.can3d,ye.createScene(Ht.width,Ht.height,Nt).then(hn=>nn.add3dCanvas(Ht,hn,Nt===x.constants.Render3D.WebGL))))}else{const Ht=ye.selectDom("origin");ye.batch_mode=(0,x.isBatchMode)()||!Ht.empty()&&Ht.property("_batch_mode"),ye.batch_format=Ht.property("_batch_format");const Nt=(0,_.ke)(ye.options.Render3D,ye.batch_mode);ye.ctrl.use_worker>0&&!ye.batch_mode&&ye.startWorker(),(0,_.LR)(ye);const nn=ye.getSizeFor3d(void 0,Nt);ye._fit_main_area=-1===nn.can3d,Pe=ye.createScene(nn.width,nn.height,Nt).then(hn=>ye.add3dCanvas(nn,hn,ye._webgl))}}return Pe.then(()=>(ye._first_drawing&&!ye.ctrl.maxfaces&&(ye.ctrl.maxfaces=2e5*ye.ctrl.more),ye.setAsMainPainter(),ye.createToolbar(),ye._clones?new Promise(At=>{ye._resolveFunc=At,ye.showDrawInfo("Drawing geometry"),ye.startDrawGeometry(!0)}):ye.completeDraw()))})()}showDrawInfo(K){if(this.isBatchMode()||!this._first_drawing||!this._start_drawing_time)return;const ge=this._renderer.domElement.parentNode;if(!ge)return;let ye=ge.querySelector(".geo_info");if(K){const Pe=.001*((new Date).getTime()-this._start_drawing_time);ye||(ye=(0,x.getDocument)().createElement("p"),ye.setAttribute("class","geo_info"),ye.setAttribute("style","position: absolute; text-align: center; vertical-align: middle; top: 45%; left: 40%; color: red; font-size: 150%;"),ge.append(ye)),ye.innerHTML=`${K}, ${Pe.toFixed(1)}s`}else ye?.remove()}continueDraw(){if(this.isStage(0))return;const K=(new Date).getTime(),ge=this._first_drawing?1e3:200;let ye=K;for(;;){const At=this.nextDrawAction();if(!At)break;if(ye=(new Date).getTime(),ye-this._startm>1e5){this.changeStage(0,"Abort build after 100s");break}if(!(!0===At&&ye-Kge||1===At||2===At))return(0,ve.Rh)(this.drawing_log),this.showDrawInfo(this.drawing_log),this._first_drawing&&this._webgl&&this._num_meshes-this._last_render_meshes>100&&ye-this._last_render_tm>2.5*ge&&(this.adjustCameraPosition(),this.render3D(-1),this._last_render_meshes=this.ctrl.info.num_meshes),void(2!==At&&setTimeout(()=>this.continueDraw(),1===At?100:1))}const Pe=ye-this._startm;if((this._first_drawing||this._full_redrawing)&&console.log(`Create tm = ${Pe} meshes ${this.ctrl.info.num_meshes} faces ${this.ctrl.info.num_faces}`),Pe>300)return(0,ve.Rh)("Rendering geometry"),this.showDrawInfo("Rendering"),setTimeout(()=>this.completeDraw(!0),10);this.completeDraw(!0)}testCameraPosition(K){this._camera.updateMatrixWorld(),this.drawOverlay();const ge=this._camera.position.clone();if(!(!K&&this._last_camera_position&&this._last_camera_position.distanceTo(ge)<1e-4*(this._overall_size||1e3))){if(this._last_camera_position=ge,this.ctrl._axis){const ye=(this._controls?.target||this._lookat).clone().sub(this._camera.position).normalize();this.getExtrasContainer("get","axis")?.traverse(Pe=>{(0,x.isFunc)(Pe._axis_flip)&&Pe._axis_flip(ye)})}this.ctrl.project||(0,Z.Pz)(this._toplevel,ge,this.ctrl.depthMethod,this._clones)}}render3D(K,ge){if(!this._renderer)return this.did_cleanup?console.warn("try to render after cleanup"):console.warn("renderer object not exists - check code"),this;const ye=void 0!==K&&K>0&&"nopromise"!==ge;if(void 0===K&&(K=5),K>0&&this._webgl)return this.isBatchMode()&&(K=1),ye?new Promise(Ht=>{this._render_resolveFuncs||(this._render_resolveFuncs=[]),this._render_resolveFuncs.push(Ht),this.render_tmout||(this.render_tmout=setTimeout(()=>this.render3D(0),K))}):(this.render_tmout||(this.render_tmout=setTimeout(()=>this.render3D(0),K)),this);this.render_tmout&&(clearTimeout(this.render_tmout),delete this.render_tmout),(0,_.rv)(this._renderer);const Pe=new Date;this._adjust_camera_with_render&&(this.adjustCameraPosition("only_set"),delete this._adjust_camera_with_render),this.testCameraPosition(-1===K),this._webgl&&this._effectComposer&&this._effectComposer.passes.length>0?this._effectComposer.render():this._webgl&&this._bloomComposer&&this._bloomComposer.passes.length>0?(this._renderer.clear(),this._camera.layers.set(1),this._bloomComposer.render(),this._renderer.clearDepth(),this._camera.layers.set(0),this._renderer.render(this._scene,this._camera)):this._renderer.render(this._scene,this._camera);const At=new Date;if(this.last_render_tm=At.getTime(),0===this.first_render_tm&&!0===ge&&(this.first_render_tm=At.getTime()-Pe.getTime(),this.first_render_tm>500&&console.log(`three.js r${L.sPf}, first render tm = ${this.first_render_tm}`)),(0,_.oE)(this._renderer),this._render_resolveFuncs){const Ht=this._render_resolveFuncs;delete this._render_resolveFuncs,Ht.forEach(Nt=>Nt(this))}}startWorker(){this._worker||(this._worker_ready=!1,this._worker_jobs=0,this._worker=new Worker(x.source_dir+"scripts/geoworker.js"),this._worker.onmessage=K=>{if((0,x.isObject)(K.data)){if("log"in K.data)return console.log(`geo: ${K.data.log}`);if("progress"in K.data)return(0,ve.Rh)(K.data.progress);K.data.tm3=(new Date).getTime(),"init"in K.data?(this._worker_ready=!0,console.log("Worker ready: "+(K.data.tm3-K.data.tm0))):this.processWorkerReply(K.data)}},this._worker.postMessage({init:!0,browser:x.browser,tm0:(new Date).getTime(),vislevel:this._clones.getVisLevel(),maxvisnodes:this._clones.getMaxVisNodes(),clones:this._clones.nodes,sortmap:this._clones.sortmap}))}canSubmitToWorker(K){return!!this._worker&&this._worker_ready&&(0===this._worker_jobs||K)}submitToWorker(K){if(!this._worker)return!1;this._worker_jobs++,K.tm0=(new Date).getTime(),this._worker.postMessage(K)}processWorkerReply(K){if(this._worker_jobs--,"collect"in K)return this._new_draw_nodes=K.new_nodes,this._draw_all_nodes=K.complete,this.changeStage(3),this.continueDraw();if("shapes"in K){for(let ge=0;ge{Wi[Ln+Jn[0]]=Oe,Wi[Ln+Jn[1]]=$e,Wi[Ln+Jn[2]]=et??oe,Ln+=3},O=(Oe,$e)=>{const et=new L._l5(Oe,{font:_.Te,size:$e,height:0,curveSegments:5});return et.computeBoundingBox(),et._width=et.boundingBox.max.x-et.boundingBox.min.x,et._height=et.boundingBox.max.y-et.boundingBox.min.y,et.translate(-et._width/2,-et._height/2,0),this._camera.orthoSign<0&&et.rotateY(Math.PI),(0,x.isFunc)(this._camera.orthoRotation)&&this._camera.orthoRotation(et),et},ie=(Oe,$e,et,it,_t)=>{const sn=[0,0,0];sn[Jn[0]]=et,sn[Jn[1]]=it,sn[Jn[2]]=_t??oe;const tn=new L.eaF(Oe,$e);return tn.translateX(sn[0]).translateY(sn[1]).translateZ(sn[2]),tn};if("bar"===this.ctrl.camera_overlay){const Oe=this.getExtrasContainer("create","overlay");let $e=.15*Pe+.85*At,et=.05*Pe+.95*At;const it=.9*Nt+.1*Ht,_t=.86*Nt+.14*Ht,sn=Si.createTicks();sn.major?.length>1&&($e=sn.major[sn.major.length-2],et=sn.major[sn.major.length-1]),Wi=new Float32Array(18),Ln=0,D($e,it,Rs),D($e,_t,Rs),D($e,(it+_t)/2,Rs),D(et,(it+_t)/2,Rs),D(et,it,Rs),D(et,_t,Rs);const tn=new L.mrM({color:"green"}),xn=new L.V9B({color:"green",vertexColors:!1});Oe.add((0,_.Fc)(Wi,tn));const wn=O(Si.format(et-$e,!0),Math.abs(_t-it));return Oe.add(ie(wn,xn,(et+$e)/2,(it+_t)/2+.8*wn._height,Rs)),!0}const _e=0===this.ctrl.camera_overlay.indexOf("grid");if(_e&&this._camera.orthoZ&&("gridf"===this.ctrl.camera_overlay?oe+=this._camera.orthoSign*this._camera.orthoZ[1]:"gridb"===this.ctrl.camera_overlay&&(oe-=this._camera.orthoSign*this._camera.orthoZ[1])),"axis"===this.ctrl.camera_overlay||_e){const Oe=this.getExtrasContainer("create","overlay"),$e=new L.mrM({color:new L.Q1f("black")}),et=_e?new L.mrM({color:new L.Q1f(12303291)}):null,it=_e?new L.Fvt({color:new L.Q1f(14540253),dashSize:kn,gapSize:kn}):null,_t=new L.V9B({color:"black",vertexColors:!1}),sn=Si.createTicks();for(;sn.next();){const xn=sn.tick,wn=1===sn.kind?1:.6;if(_e&&(Wi=new Float32Array(6),Ln=0,D(xn,Nt-wn*nn-kn),D(xn,Ht+wn*nn+kn),Oe.add((0,_.Fc)(Wi,1===sn.kind?et:it))),Wi=new Float32Array(12),Ln=0,D(xn,Nt),D(xn,Nt-wn*nn),D(xn,Ht),D(xn,Ht+wn*nn),Oe.add((0,_.Fc)(Wi,$e)),1!==sn.kind)continue;const Ut=O(Si.format(xn,!0),hn);Oe.add(ie(Ut,_t,xn,Nt-nn-hn/2-Ut._height/2)),Oe.add(ie(Ut,_t,xn,Ht+nn+hn/2+Ut._height/2))}const tn=bi.createTicks();for(;tn.next();){const xn=tn.tick,wn=1===tn.kind?1:.6;if(_e&&(Wi=new Float32Array(6),Ln=0,D(Pe+wn*nn+kn,xn),D(At-wn*nn-kn,xn),Oe.add((0,_.Fc)(Wi,1===tn.kind?et:it))),Wi=new Float32Array(12),Ln=0,D(Pe,xn),D(Pe+wn*nn,xn),D(At,xn),D(At-wn*nn,xn),Oe.add((0,_.Fc)(Wi,$e)),1!==tn.kind)continue;const Ut=O(bi.format(xn,!0),hn);Oe.add(ie(Ut,_t,Pe+nn+hn/2+Ut._width/2,xn)),Oe.add(ie(Ut,_t,At-nn-hn/2-Ut._width/2,xn))}return!0}return!1}drawAxes(){if(this.getExtrasContainer("delete","axis"),!this.ctrl._axis)return!1;const K=this.getGeomBoundingBox(this._toplevel,this.superimpose?"original":void 0),ge=this.getExtrasContainer("create","axis"),ye=.02*Math.max(K.max.x-K.min.x,K.max.y-K.min.y,K.max.z-K.min.z),Pe=[0,0,0],At=["x","y","z"],Ht=["X","Y","Z"],Nt=["red","green","blue"],nn=this.isOrthoCamera(),hn=this.ctrl.camera_kind??"perspective";if(2===this.ctrl._axis)for(let kn=0;kn<3;++kn){const cn=At[kn];K.min[cn]<=0&&K.max[cn]>=0||(Pe[kn]=(K.min[cn]+K.max[cn])/2)}for(let kn=0;kn<3;++kn){let Rs=function(O,ie){O._other_side=!1,O._axis_norm=ie??new L.Pq0(1,0,0),O._axis_flip=function(_e){const Oe=_e.dot(this._axis_norm)<0;this._other_side!==Oe&&(this._other_side=Oe,this.rotateY(Math.PI))}},oe=function(O,ie=-1){O._last_angle=ie,O._axis_flip=function(_e){let Oe=0;switch(this._axis_name){case"x":Oe=-Math.atan2(_e.y,_e.z);break;case"y":Oe=-Math.atan2(_e.z,_e.x);break;default:Oe=Math.atan2(_e.y,_e.x)}Oe=Math.round(Oe/Math.PI*2+2)%4,this._last_angle!==Oe&&(this.rotateX((Oe-this._last_angle)*Math.PI/2),this._last_angle=Oe)}};if(nn&&hn.indexOf(Ht[kn])<0)continue;const cn=new Float32Array(6),In=Nt[kn],ci=At[kn],Pi=O=>{if(!O)return"0";const ie=Math.log10(Math.abs(O));if(ie<0){if(ie>-1)return O.toFixed(2);if(ie>-2)return O.toFixed(3)}else{if(ie<2)return O.toFixed(1);if(ie<4)return O.toFixed(0)}return O.toExponential(2)},Si=Pi(K.max[ci])+" "+Ht[kn];switch(cn[0]=K.min.x,cn[1]=K.min.y,cn[2]=K.min.z,cn[3]=K.min.x,cn[4]=K.min.y,cn[5]=K.min.z,kn){case 0:cn[3]=K.max.x;break;case 1:cn[4]=K.max.y;break;case 2:cn[5]=K.max.z}if(2===this.ctrl._axis)for(let O=0;O<6;++O)O%3!==kn&&(cn[O]=Pe[O%3]);const bi=new L.mrM({color:In});let Jn=(0,_.Fc)(cn,bi);Jn._no_clip=!0,ge.add(Jn);const Wi=new L.V9B({color:In,vertexColors:!1});if(0===Pe[kn]&&Pe[kn]>=K.min[ci]&&Pe[kn]<=K.max[ci]&&(2!==this.ctrl._axis||0===kn)){const O=nn?new L.tcD(.25*ye):new L.Gu$(.25*ye);Jn=new L.eaF(O,Wi),Jn.translateX(0===kn?Pe[0]:cn[0]),Jn.translateY(1===kn?Pe[1]:cn[1]),Jn.translateZ(2===kn?Pe[2]:cn[2]),Jn._no_clip=!0,ge.add(Jn)}let Ln=new L._l5(Si,{font:_.Te,size:ye,height:0,curveSegments:5});Jn=new L.eaF(Ln,Wi),Jn._no_clip=!0;let D=(new L.NRn).setFromObject(Jn);if(Ln.translate(.5*-D.max.x,-D.max.y/2,0),Jn.translateX(cn[3]),Jn.translateY(cn[4]),Jn.translateZ(cn[5]),Jn._axis_name=ci,0===kn)nn&&hn.indexOf("OX")>0?oe(Jn,0):(nn?hn.indexOf("OY")>0:this.ctrl._yup)?Rs(Jn,new L.Pq0(0,0,-1)):(Rs(Jn,new L.Pq0(0,1,0)),Jn.rotateX(Math.PI/2)),Jn.translateX(.5*ye+.5*D.max.x);else if(1===kn)(nn?hn.indexOf("OY")>0:this.ctrl._yup)?(oe(Jn,2),Jn.rotateX(-Math.PI/2),Jn.rotateY(-Math.PI/2),Jn.translateX(.5*ye+.5*D.max.x)):(Rs(Jn),Jn.rotateX(Math.PI/2),Jn.rotateY(-Math.PI/2),Jn.translateX(.5*-D.max.x-.5*ye));else if(2===kn){if(nn?hn.indexOf("OZ")<0:this.ctrl._yup){const O=nn&&(hn.indexOf("ZOX")>0||hn.indexOf("ZNOX")>0);Rs(Jn,O?new L.Pq0(0,-1,0):void 0),Jn.rotateY(-Math.PI/2),O&&Jn.rotateX(-Math.PI/2)}else oe(Jn),Jn.rotateX(Math.PI/2),Jn.rotateZ(Math.PI/2);Jn.translateX(.5*ye+.5*D.max.x)}if(ge.add(Jn),Ln=new L._l5(Pi(K.min[ci]),{font:_.Te,size:ye,height:0,curveSegments:5}),Jn=new L.eaF(Ln,Wi),Jn._no_clip=!0,D=(new L.NRn).setFromObject(Jn),Ln.translate(.5*-D.max.x,-D.max.y/2,0),Jn._axis_name=ci,Jn.translateX(cn[0]),Jn.translateY(cn[1]),Jn.translateZ(cn[2]),0===kn)nn&&hn.indexOf("OX")>0?oe(Jn,0):(nn?hn.indexOf("OY")>0:this.ctrl._yup)?Rs(Jn,new L.Pq0(0,0,-1)):(Rs(Jn,new L.Pq0(0,1,0)),Jn.rotateX(Math.PI/2)),Jn.translateX(.5*-ye-.5*D.max.x);else if(1===kn)(nn?hn.indexOf("OY")>0:this.ctrl._yup)?(oe(Jn,2),Jn.rotateX(-Math.PI/2),Jn.rotateY(-Math.PI/2),Jn.translateX(.5*-D.max.x-.5*ye)):(Rs(Jn),Jn.rotateX(Math.PI/2),Jn.rotateY(-Math.PI/2),Jn.translateX(.5*D.max.x+.5*ye));else if(2===kn){if(nn?hn.indexOf("OZ")<0:this.ctrl._yup){const O=nn&&(hn.indexOf("ZOX")>0||hn.indexOf("ZNOX")>0);Rs(Jn,O?new L.Pq0(0,-1,0):void 0),Jn.rotateY(-Math.PI/2),O&&Jn.rotateX(-Math.PI/2)}else oe(Jn),Jn.rotateX(Math.PI/2),Jn.rotateZ(Math.PI/2);Jn.translateX(.5*-D.max.x-.5*ye)}ge.add(Jn)}return!0}setAxesDraw(K){return this.ctrl._axis="toggle"===K?this.ctrl._axis?0:1:"number"==typeof K?K:K?1:0,this.drawAxesAndOverlay()}setAutoRotate(K){this.ctrl.project||(void 0!==K&&(this.ctrl.rotate=K),this.autorotate(2.5))}toggleWireFrame(){this.ctrl.wireframe=!this.ctrl.wireframe,this.changedWireFrame()}setWireFrame(K){this.ctrl.wireframe=!!K,this.changedWireFrame()}setShowTop(K){this.ctrl.showtop=!!K,this.redrawObject("same")}changedClipping(K=-1){(K<0||this.ctrl.clip[K]?.enabled)&&this.updateClipping(!1,!0)}changedDepthTest(){if(!this._toplevel)return;const K=this.ctrl.depthTest;this._toplevel.traverse(ge=>{ge instanceof L.eaF&&(ge.material.depthTest=K)}),this.render3D(0)}changedDepthMethod(K){if(delete this._last_camera_position,"norender"!==K)return this.render3D()}updateClipping(K,ge){if(this._renderer?.jsroot_render3d===x.constants.Render3D.SVG)return;this._clipPlanes||(this._clipPlanes=[new L.Zcv(new L.Pq0(1,0,0),0),new L.Zcv(new L.Pq0(0,this.ctrl._yup?-1:1,0),0),new L.Zcv(new L.Pq0(0,0,this.ctrl._yup?1:-1),0)]);const ye=this.ctrl.clip,Pe=[-1*ye[0].value,ye[1].value,(this.ctrl._yup?-1:1)*ye[2].value],At=this.getExtrasContainer(this.ctrl.clipVisualize?"":"delete","clipping");let Ht=[],Nt=!1,nn=this.ctrl.clipIntersect?16:0;for(let In=0;In<3;++In)if(ye[In].enabled&&(nn+=2<{!In._no_clip&&void 0!==In.material?.clippingPlanes&&(In.material.clippingPlanes!==Ht&&(In.material.clipIntersection=kn,In.material.clippingPlanes=Ht,In.material.needsUpdate=!0),void 0!==In.material.emissive&&In.material.side!==cn&&(In.material.side=cn,In.material.needsUpdate=!0))}),this.ctrl.doubleside=hn,K||this.render3D(0),Nt}setCompleteHandler(K){this._complete_handler=K}completeDraw(K){var ge=this;return(0,Te.A)(function*(){let ye=!1,Pe=!1,At=!0;if(!ge.ctrl)return console.warn("ctrl object does not exist in completeDraw - something went wrong"),ge;let Ht=Promise.resolve(!0);return ge._clones?(ge._first_drawing||ge._full_redrawing)&&ge.ctrl.tracks&&ge.geo_manager&&(Ht=ge.drawExtras(ge.geo_manager.fTracks,"/Tracks")):(At=!1,ge.getExtrasContainer("delete"),Ht=ge.drawExtras((ge._main_painter?ge._main_painter._extraObjects:null)||ge._extraObjects,"",!1)),Ht.then(()=>{if(ge._full_redrawing&&(ge.adjustCameraPosition("first"),ge._full_redrawing=!1,Pe=!0,ge.changedDepthMethod("norender")),ge._first_drawing&&(ge.adjustCameraPosition("first"),ge.showDrawInfo(),ge._first_drawing=!1,ye=!0,Pe=!0),ye&&ge.completeScene(),Pe&&(ge.ctrl.trans_radial||ge.ctrl.trans_z)&&ge.changedTransformation("norender"),Pe)return ge.drawAxesAndOverlay(!0)}).then(()=>{if(ge._scene.overrideMaterial=null,void 0!==ge._provided_more_nodes&&(ge.appendMoreNodes(ge._provided_more_nodes,!0),delete ge._provided_more_nodes),At)return ge.getExtrasContainer("delete"),ge.drawExtras(ge._main_painter?._extraObjects||ge._extraObjects,"",!1)}).then(()=>(ge.updateClipping(!0),ge.render3D(0,!0),K&&(0,ve.Rh)(),ge.addOrbitControls(),ye&&!ge.isBatchMode()&&(0===ge.ctrl.highlight&&(ge.ctrl.highlight=ge.first_render_tm<1e3),0===ge.ctrl.highlight_scene&&(ge.ctrl.highlight_scene=ge.ctrl.highlight),ge._webgl&&ge.ctrl.rotate&&!ge.ctrl.project&&ge.autorotate(2.5),ge._webgl&&ge.ctrl.show_controls&&ge.showControlGui(!0)),ge.setAsMainPainter(),(0,x.isFunc)(ge._resolveFunc)&&(ge._resolveFunc(ge),delete ge._resolveFunc),(0,x.isFunc)(ge._complete_handler)&&ge._complete_handler(ge),ge._draw_nodes_again?ge.startDrawGeometry():ge._drawing_ready=!0,ge))})()}isDrawingReady(){return this._drawing_ready||!1}removeDrawnNode(K){if(!this._draw_nodes)return;const ge=[];for(let ye=0;ye=0&&this._main_painter._slave_painters.splice(Pe,1)}for(let Pe=0;Pege(this)),delete this._render_resolveFuncs),this.superimpose||(0,_.yW)(this._renderer),this.ensureBloom(!1),delete this._effectComposer,delete this._scene,delete this._scene_size,this._scene_width=0,this._scene_height=0,this._renderer=null,this._toplevel=null,delete this._full_geom,delete this._fog,delete this._camera,delete this._camera0pos,delete this._lookat,delete this._selected_mesh,this._clones&&this._clones_owner&&this._clones.cleanup(this._draw_nodes,this._build_shapes),delete this._clones,delete this._clones_owner,delete this._draw_nodes,delete this._drawing_ready,delete this._build_shapes,delete this._new_draw_nodes,delete this._new_append_nodes,delete this._last_camera_position,this.first_render_tm=0,this.last_render_tm=0,this.changeStage(0,"cleanup"),delete this.drawing_log,delete this._gui,delete this._controls,delete this._context_menu,delete this._toolbar,delete this._worker}performResize(K,ge){return!(this._scene_width===K&&this._scene_height===ge||K<10||ge<10||(this._scene_width=K,this._scene_height=ge,this._camera&&this._renderer&&(this._camera.isPerspectiveCamera?this._camera.aspect=this._scene_width/this._scene_height:this._camera.isOrthographicCamera&&this.adjustCameraPosition(!0,!0),this._camera.updateProjectionMatrix(),this._renderer.setSize(this._scene_width,this._scene_height,!this._fit_main_area),this._effectComposer?.setSize(this._scene_width,this._scene_height),this._bloomComposer?.setSize(this._scene_width,this._scene_height),this.isStage(0)&&this.render3D()),0))}checkResize(K){const ge=this.getCanvPainter();if(ge&&!ge.checkCanvasResize(K))return!1;const ye=this.getSizeFor3d();return this.performResize(ye.width,ye.height)}toggleEnlarge(){this.enlargeMain("toggle")&&this.checkResize()}accessObjectWireFrame(K,ge){if(K?.material)return void 0!==ge&&K.stack&&(K.material.wireframe=ge),K.material.wireframe}changedWireFrame(){this._scene?.traverse(K=>this.accessObjectWireFrame(K,this.ctrl.wireframe)),this.render3D()}updateObject(K){if("same"===K||!K?._typename)return!1;if(K===this.getObject())return!0;let ge;return K._typename===V&&(ge=K,K=K.fMasterVolume),0===K._typename.indexOf(x.clTGeoVolume)&&(K={_typename:x.clTGeoNode,fVolume:K,fName:K.fName,$geoh:K.$geoh,_proxy:!0}),this.geo_manager&&ge?(this.geo_manager=ge,this.assignObject(K),this._did_update=!0,!0):!!this.matchObjectType(K._typename)&&(this.assignObject(K),this._did_update=!0,!0)}clearDrawings(){this._clones&&this._clones_owner&&this._clones.cleanup(this._draw_nodes,this._build_shapes),delete this._clones,delete this._clones_owner,delete this._draw_nodes,delete this._drawing_ready,delete this._build_shapes,delete this._extraObjects,delete this._clipCfg,(0,_.G1)(this._toplevel,!0),this._full_redrawing=!0}redraw(){if(this.superimpose){const ye=Ge(this.getMainPainter());ye&&(this._toplevel.scale.set(ye.scale_x??1,ye.scale_y??1,ye.scale_z??1),this._toplevel.position.set(ye.offset_x??0,ye.offset_y??0,ye.offset_z??0),this._toplevel.updateMatrix(),this._toplevel.updateMatrixWorld())}if(this._did_update)return this.startRedraw();const K=this._on_pad?this.getFramePainter():null;if(!K)return Promise.resolve(!1);const ge=K.getSizeFor3d(K.access3dKind());return K.apply3dSize(ge),this.performResize(ge.width,ge.height)}redrawObject(K,ge){return!!this.updateObject(K,ge)&&this.startRedraw()}startRedraw(K){if(K)return this._redraw_timer&&clearTimeout(this._redraw_timer),void(this._redraw_timer=setTimeout(()=>this.startRedraw(),K));delete this._redraw_timer,delete this._did_update,this.clearDrawings();const ge=this.getGeometry();return this.prepareObjectDraw(ge,this.geo_manager?ge.fName:"")}static draw(K,ge,ye){return(0,Te.A)(function*(){if(!ge)return null;let Pe=null,At=null,Ht="",Nt=!1;if("fShapeBits"in ge&&"fShapeId"in ge?(Pe=ge,ge=null):ge._typename===T||ge._typename===x.clTGeoVolume?Pe=ge.fShape:ge._typename===b||ge._typename===fe?(Pe=ge.fShape,Nt=!0):ge._typename===V?Pe=ge.fMasterVolume.fShape:ge._typename===P?(At=ge.fMarker,Ht="/Marker",ge=function we(xt){const K=(0,x.create)(x.clTGeoVolume);(0,Z.bg)(K,Z.Wv.kVisDaughters,!0),K.$geoh=!0,K.fName="";const ge=(0,x.create)(x.clTGeoNodeMatrix);ge.fName=xt.fVolume1.fName||"Overlap1",ge.fMatrix=xt.fMatrix1,ge.fVolume=xt.fVolume1;const ye=(0,x.create)(x.clTGeoNodeMatrix);return ye.fName=xt.fVolume2.fName||"Overlap2",ye.fMatrix=xt.fMatrix2,ye.fVolume=xt.fVolume2,K.fNodes=(0,x.create)(x.clTList),K.fNodes.Add(ge),K.fNodes.Add(ye),K}(ge),ye||(ye="wire")):"fVolume"in ge?ge.fVolume&&(Pe=ge.fVolume.fShape):ge=null,(0,x.isStr)(ye)&&0===ye.indexOf("comp")&&Pe&&Pe._typename===Z.HO&&Pe.fNode){let hn=1;"x"===(ye=ye.slice(4))[0]&&(hn=999,ye=ye.slice(1)+"_vislvl999"),ge=je(Pe,hn)}if(!ge&&Pe&&(ge=Object.assign((0,x.create)(x.clTNamed),{_typename:b,fTrans:null,fShape:Pe,fRGBA:[0,1,0,1],fElements:null,fRnrSelf:!0})),!ge)return null;const nn=Sn(K,ge,ye);return nn.ctrl.is_main&&!ge.$geo_painter&&(ge.$geo_painter=nn),!nn.ctrl.is_main&&nn.ctrl.project&&ge.$geo_painter&&(nn._main_painter=ge.$geo_painter,nn._main_painter._slave_painters.push(nn)),Nt&&(!nn.ctrl.vislevel||nn.ctrl.vislevel<9)&&(nn.ctrl.vislevel=9),At&&(nn._splitColors=!0,nn.addExtra(At,Ht)),nn.loadMacro(nn.ctrl.script_name).then(hn=>nn.prepareObjectDraw(hn.obj,hn.prefix))})()}}let Cn=!1;function yn(){function xt(K,ge){return`.jsroot .img_${K} { display: inline-block; height: 16px; width: 16px; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQ${ge}'); }`}!Cn&&(0,x.isFunc)(x.internals.addDrawFunc)&&(Cn=!0,x.internals.addDrawFunc({name:W,icon_get:zi,icon_click:ai}),x.internals.addDrawFunc({name:z,icon_get:zi,icon_click:ai})),(0,ve.fz)(`\n${xt("geoarb8","CAAAAAA6mKC9AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAJ0Uk5TAAB2k804AAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAAAEgAAABIAEbJaz4AAAB1SURBVBjTdY6rEYAwEETTy6lzK8/Fo+Jj18dTAjUgaQGfGiggtRDE8RtY93Zu514If2nzk2ux9c5TZkwXbiWTUavzws69oBfpYBrMT4r0Jhsw+QfRgQSw+CaKRsKsnV+SaF8MN49RBSgPUxO85PMl5n4tfGUH2gghs2uPAeQAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTUtMTItMDJUMTQ6MjY6MjkrMDE6MDDARtd2AAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE0LTExLTEyVDA4OjM5OjE5KzAxOjAwO3ydwwAAAABJRU5ErkJggg==")}\n${xt("geocombi","CAQAAAC1+jfqAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAJiS0dEAP+Hj8y/AAAACXBIWXMAAABIAAAASABGyWs+AAAAlUlEQVQoz5VQMQ4CMQyzEUNnBqT7Bo+4nZUH8gj+welWJsQDkHoCEYakTXMHSFiq2jqu4xRAEl2A7w4myWzpzCSZRZ658ldKu1hPnFsequBIc/hcLli3l52MAIANtpWrDsv8waGTW6BPuFtsdZArXyFuj33TQpazGEQF38phipnLgItxRcAoOeNpzv4PTXnC42fb//AGI5YqfQAU8dkAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTUtMTItMDJUMTQ6MjY6MjkrMDE6MDDARtd2AAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE0LTExLTEyVDA4OjM5OjE5KzAxOjAwO3ydwwAAAABJRU5ErkJggg==")}\n${xt("geocone","CAAAAAA6mKC9AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAJ0Uk5TAAB2k804AAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAAAEgAAABIAEbJaz4AAACRSURBVBjTdY+xDcNACEVvEm/ggo6Olva37IB0C3iEzJABvAHFTXBDeJRwthMnUvylk44vPjxK+afeokX0flQhJO7L4pafSOMxzaxIKc/Tc7SIjNLyieyZSjBzc4DqMZI0HTMonWPBNlogOLeuewbg9c0hOiIqH7DKmTCuFykjHe4XOzQ58XVMGxzt575tKzd6AX9yMkcWyPlsAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTEyLTAyVDE0OjI2OjI5KzAxOjAwwEbXdgAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNC0xMS0xMlQwODozOToxOSswMTowMDt8ncMAAAAASUVORK5CYII=")}\n${xt("geogtra","CAAAAAA6mKC9AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAJ0Uk5TAAB2k804AAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAAAEgAAABIAEbJaz4AAACCSURBVBjTVc+hDQMxDAVQD1FyqCQk0MwsCwQEG3+eCW6B0FvheDboFMGepTlVitPP/Cz5y0S/mNkw8pySU9INJDDH4vM4Usm5OrQXasXtkA+tQF+zxfcDY8EVwgNeiwmA37TEccK5oLOwQtuCj7BM2Fq7iGrxVqJbSsH+GzXs+798AThwKMh3/6jDAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTEyLTAyVDE0OjI2OjI5KzAxOjAwwEbXdgAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNC0xMS0xMlQwODozOToxOSswMTowMDt8ncMAAAAASUVORK5CYII=")}\n${xt("geomedium","BAMAAADt3eJSAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAABVQTFRFAAAAAAAAMDAww8PDWKj/////gICAG0/C4AAAAAF0Uk5TAEDm2GYAAAABYktHRAX4b+nHAAAACXBIWXMAAABIAAAASABGyWs+AAAAXElEQVQI102MwRGAMAgEuQ6IDwvQCjQdhAl/H7ED038JHhkd3dcOLAgESFARaAqnEB3yrj6QSEym1RbbOKinN+8q2Esui1GaX7VXSi4RUbxHRbER8X6O5Pg/fLgBBzMN8HfXD3AAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTUtMTItMDJUMTQ6MjY6MjkrMDE6MDDARtd2AAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE0LTExLTEyVDA4OjM5OjE5KzAxOjAwO3ydwwAAAABJRU5ErkJggg==")}\n${xt("geopara","CAAAAAA6mKC9AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAJ0Uk5TAAB2k804AAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAAAEgAAABIAEbJaz4AAABtSURBVBjTY2DADq5MT7+CzD9kaKjp+QhJYIWqublhMbKAgpOnZxWSQJdsVJTndCSBKoWoAM/VSALpqlEBAYeQBKJAAsi2BGgCBZDdEWUYFZCOLFBlGOWJ7AyGFeaotjIccopageK3R12PGHABACTYHWd0tGw6AAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTEyLTAyVDE0OjI2OjI5KzAxOjAwwEbXdgAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNC0xMS0xMlQwODozOToxOSswMTowMDt8ncMAAAAASUVORK5CYII=")}\n${xt("georotation","CAQAAAC1+jfqAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAJiS0dEAP+Hj8y/AAAACXBIWXMAAABIAAAASABGyWs+AAAAiklEQVQoz2NgYGBgYGDg+A/BmIAFIvyDEbs0AwMTAwHACLPiB5QVBTdpGSOSCZjScDcgc4z+32BgYGBgEGIQw3QDLkdCTZD8/xJFeBfDVxQT/j9n/MeIrMCNIRBJwX8GRuzGM/yHKMAljeILNFOuMTyEisEUMKIqucrwB2oyIhyQpH8y/MZrLWkAAHFzIHIc0Q5yAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTEyLTAyVDE0OjI2OjI5KzAxOjAwwEbXdgAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNC0xMS0xMlQwODozOToxOSswMTowMDt8ncMAAAAASUVORK5CYII=")}\n${xt("geotranslation","CAAAAAA6mKC9AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAJ0Uk5TAAB2k804AAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAAAEgAAABIAEbJaz4AAABESURBVBjTY2DgYGAAYzjgAAIQgSLAgSwAAcrWUUCAJBAVhSpgBAQumALGCJPAAsriHIS0IAQ4UAU4cGphQBWwZSAOAADGJBKdZk/rHQAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNS0xMi0wMlQxNDoyNjoyOSswMTowMMBG13YAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTQtMTEtMTJUMDg6Mzk6MTkrMDE6MDA7fJ3DAAAAAElFTkSuQmCC")}\n${xt("geotrd2","CAAAAAA6mKC9AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAJ0Uk5TAAB2k804AAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAAAEgAAABIAEbJaz4AAABsSURBVBjTbY+xDcAwCARZx6UraiaAmpoRvIIb75PWI2QITxIiRQKk0CCO/xcA/NZ9LRs7RkJEYg3QxczUwoGsXiMAoe8lAelqRWFNKpiNXZLAalRDd0f3TMgeMckABKsCDmu+442RddeHz9cf9jUkW8smGn8AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTUtMTItMDJUMTQ6MjY6MjkrMDE6MDDARtd2AAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE0LTExLTEyVDA4OjM5OjE5KzAxOjAwO3ydwwAAAABJRU5ErkJggg==")}\n${xt("geovolume","BAMAAADt3eJSAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAB5QTFRFAAAAMDAw///Ay8uc/7+Q/4BgmJh4gIDgAAD/////CZb2ugAAAAF0Uk5TAEDm2GYAAAABYktHRAnx2aXsAAAACXBIWXMAAABIAAAASABGyWs+AAAAR0lEQVQI12NggAEBIBAEQgYGQUYQAyIGIhgwAZMSGCgwMJuEKimFOhswsKWAGG4JDGxJIBk1EEO9o6NIDVkEpgauC24ODAAASQ8Pkj/retYAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTUtMTItMDJUMTQ6MjY6MjkrMDE6MDDARtd2AAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE0LTExLTEyVDA4OjM5OjE5KzAxOjAwO3ydwwAAAABJRU5ErkJggg==")}\n${xt("geoassembly","BAMAAADt3eJSAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAA9QTFRFAAAAMDAw/wAAAAD/////jEo0BQAAAAF0Uk5TAEDm2GYAAAABYktHRASPaNlRAAAACXBIWXMAAABIAAAASABGyWs+AAAAOklEQVQI12NggAFGRgEgEBRgEBSAMhgYGQQEgAR+oARGDIwCIAYjUL0A2DQQg9nY2ABVBKoGrgsDAADxzgNboMz8zQAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNS0xMi0wMlQxNDoyNjoyOSswMTowMMBG13YAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTQtMTEtMTJUMDg6Mzk6MTkrMDE6MDA7fJ3DAAAAAElFTkSuQmCC")}\n${xt("geocomposite","CAAAAAA6mKC9AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAJ0Uk5TAAB2k804AAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAAAEgAAABIAEbJaz4AAABuSURBVBjTY2AgF2hqgQCCr+0V4O7hFmgCF7CJyKysKkmxhfGNLaw9SppqAi2gfMuY5Agrl+ZaC6iAUXRJZX6Ic0klTMA5urapPFY5NRcmYKFqWl8S5RobBRNg0PbNT3a1dDGH8RlM3LysTRjIBwAG6xrzJt11BAAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNS0xMi0wMlQxNDoyNjoyOSswMTowMMBG13YAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTQtMTEtMTJUMDg6Mzk6MTkrMDE6MDA7fJ3DAAAAAElFTkSuQmCC")}\n${xt("geoctub","CAAAAAA6mKC9AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAJ0Uk5TAAB2k804AAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAAAEgAAABIAEbJaz4AAACESURBVBjTdc+xDcMwDARA7cKKHTuWX37LHaw+vQbQAJomA7j2DB7FhCMFCZB8pxPwJEv5kQcZW+3HencRBekak4aaMQIi8YJdAQ1CMeE0UBkuaLMETklQ9Alhka0JzzXWqLVBuQYPpWcVuBbZjZafNRYcDk9o/b07bvhINz+/zxu1/M0FSRcmAk/HaIcAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTUtMTItMDJUMTQ6MjY6MjkrMDE6MDDARtd2AAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE0LTExLTEyVDA4OjM5OjE5KzAxOjAwO3ydwwAAAABJRU5ErkJggg==")}\n${xt("geohype","CAAAAAA6mKC9AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAJ0Uk5TAAB2k804AAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAAAEgAAABIAEbJaz4AAACKSURBVBjTbU+rFQQhDKQSDDISEYuMREfHx6eHKMpYuf5qoIQt5bgDblfcuJk3nySEhSvceDV3c/ejT66lspopE9pXyIlkCrHMBACpu1DClekQAREi/loviCnF/NhRwJLaQ6hVhPjB8bOCsjlnNnNl0FWJVWxAqGzHONRHpu5Ml+nQ+8GzNW9n+Is3eg80Nk0iiwoAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTUtMTItMDJUMTQ6MjY6MjkrMDE6MDDARtd2AAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE0LTExLTEyVDA4OjM5OjE5KzAxOjAwO3ydwwAAAABJRU5ErkJggg==")}\n${xt("geomixture","BAMAAADt3eJSAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAACFQTFRFAAAAAAAAKysrVVUA//8B//8AgICAqqpV398gv79A////VYJtlwAAAAF0Uk5TAEDm2GYAAAABYktHRApo0PRWAAAACXBIWXMAAABIAAAASABGyWs+AAAAXklEQVQI12NgwASCQsJCgoZAhoADq1tKIJAhEpDGxpYIZKgxsLElgBhibAkOCY4gKTaGkPRGIEPUIYEBrEaAIY0tDawmgYWNgREkkjCVjRWkWCUhLY0FJCIIBljsBgCZTAykgaRiRwAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNS0xMi0wMlQxNDoyNjoyOSswMTowMMBG13YAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTQtMTEtMTJUMDg6Mzk6MTkrMDE6MDA7fJ3DAAAAAElFTkSuQmCC")}\n${xt("geopcon","CAAAAAA6mKC9AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAJ0Uk5TAAB2k804AAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAAAEgAAABIAEbJaz4AAACJSURBVBjTdc+hGcQwCIZhhjl/rkgWiECj8XgGyAbZoD5LdIRMkEnKkV575n75Pp8AgLU54dmh6mauelyAL2Qzxfe2sklioq6FacFAcRFXYhwJHdU5rDD2hEYB/CmoJVRMiIJqgtENuoqA8ltAlYAqRH4d1tGkwzTqN2gA7Nv+fUwkgZ/3mg34txM+szzATJS1HQAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNS0xMi0wMlQxNDoyNjoyOSswMTowMMBG13YAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTQtMTEtMTJUMDg6Mzk6MTkrMDE6MDA7fJ3DAAAAAElFTkSuQmCC")}\n${xt("geosphere","CAAAAAA6mKC9AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAJ0Uk5TAAB2k804AAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAAAEgAAABIAEbJaz4AAACFSURBVBjTdY+xEcQwCAQp5QNFjpQ5vZACFBFTADFFfKYCXINzlUAJruXll2ekxDAEt9zcANFbXb2mqm56dxsymAH0yccAJaeNi0h5QGyfxGJmivMPjj0nmLsbRmyFCss3rlbpcUjfS8wLUNRcJyCF6uqg2IvYCnoKC7f1kSbA6riTz7evfwj3Ml+H3KBqAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTEyLTAyVDE0OjI2OjI5KzAxOjAwwEbXdgAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNC0xMS0xMlQwODozOToxOSswMTowMDt8ncMAAAAASUVORK5CYII=")}\n${xt("geotrap","CAAAAAA6mKC9AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAJ0Uk5TAAB2k804AAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAAAEgAAABIAEbJaz4AAAB5SURBVBjTbY+hFYAwDETZB1OJi4yNPp0JqjtAZ2AELL5DdABmIS2PtLxHXH7u7l2W5W+uHMHpGiCHLYR1yw4SCZMIXBOJWVSjK7QDDAu4g8OBmAKK4sAEDdR3rw8YmcUcrEijKKhl7lN1IQPn9ExlgU6/WEyc75+5AYK0KY5oHBDfAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTEyLTAyVDE0OjI2OjI5KzAxOjAwwEbXdgAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNC0xMS0xMlQwODozOToxOSswMTowMDt8ncMAAAAASUVORK5CYII=")}\n${xt("geotubeseg","CAAAAAA6mKC9AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAJ0Uk5TAAB2k804AAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAAAEgAAABIAEbJaz4AAACBSURBVBjTdc+hEcQwDARA12P6QFBQ9LDwcXEVkA7SQTr4BlJBakgpsWdsh/wfux3NSCrlV86Mlrxmz1pBWq3bAHwETohxABVmDZADQp1BE+wDNnGywzHgmHDOreJNTDH3Xn3CVX0dpu2MHcIFBkYp/gKsQ8SCQ72V+36/+2aWf3kAQfgshnpXF0wAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTUtMTItMDJUMTQ6MjY6MjkrMDE6MDDARtd2AAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE0LTExLTEyVDA4OjM5OjE5KzAxOjAwO3ydwwAAAABJRU5ErkJggg==")}\n${xt("geoxtru","CAAAAAA6mKC9AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAJ0Uk5TAAB2k804AAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAAAEgAAABIAEbJaz4AAABcSURBVBjTY2AgEmhpeZV56vmWwQW00QUYwAJlSAI6XmVqukh8PT1bT03PchhXX09Pr9wQIQDiJ+ZowgWAXD3bck+QQDlCQTkDQgCoxA/ERBKwhbDglgA1lDMQDwCc/Rvq8nYsWgAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNS0xMi0wMlQxNDoyNjoyOSswMTowMMBG13YAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTQtMTEtMTJUMDg6Mzk6MTkrMDE6MDA7fJ3DAAAAAElFTkSuQmCC")}\n${xt("geobbox","CAAAAAA6mKC9AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAJ0Uk5TAAB2k804AAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAAAEgAAABIAEbJaz4AAAB/SURBVBjTVc+hEYAwDAXQLlNRF1tVGxn9NRswQiSSCdgDyQBM0FlIIb2WuL77uf6E8E0N02wKYRwDciTKREVvB04GuZSyOMCABRB1WGzF3uDNQTvs/RcDtJXT4fSEXA5XoiQt0ttVSm8Co2psIOvoimjAOqBmFtH5wEP2373TPIvTK1nrpULXAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTEyLTAyVDE0OjI2OjI5KzAxOjAwwEbXdgAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNC0xMS0xMlQwODozOToxOSswMTowMDt8ncMAAAAASUVORK5CYII=")}\n${xt("geoconeseg","CAAAAAA6mKC9AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAJ0Uk5TAAB2k804AAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAAAEgAAABIAEbJaz4AAAB4SURBVBjTdc6hEcAgDAXQbFNZXHQkFlkd/30myAIMwAws0gmYpVzvoFyv/S5P/B+izzQ387ZA2pkDnvsU1SQLVIFrOM4JFmEaYp2gCQbmPEGODhJ8jt7Am47hwgrzInGAifa/elUZnQLY00iU30BZAV+BWi2VfnIBv1osbHH8jX0AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTUtMTItMDJUMTQ6MjY6MjkrMDE6MDDARtd2AAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE0LTExLTEyVDA4OjM5OjE5KzAxOjAwO3ydwwAAAABJRU5ErkJggg==")}\n${xt("geoeltu","CAAAAAA6mKC9AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAJ0Uk5TAAB2k804AAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAAAEgAAABIAEbJaz4AAACGSURBVBjTdY+hFYUwDEU7xq9CIXC4uNjY6KczQXeoYgVMR2ABRmCGjvIp/6dgiEruueedvBDuOR57LQnKyc8CJmKO+N8bieIUPtmBWjIIx8XDBHYCipsnql1g2D0UP2OoDqwBncf+RdZmzFMHizRjog7KZYzawd4Ay93lEAPWR7WAvNbwMl/XwSxBV8qCjgAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNS0xMi0wMlQxNDoyNjoyOSswMTowMMBG13YAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTQtMTEtMTJUMDg6Mzk6MTkrMDE6MDA7fJ3DAAAAAElFTkSuQmCC")}\n${xt("geomaterial","CAQAAAC1+jfqAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAJiS0dEAP+Hj8y/AAAACXBIWXMAAABIAAAASABGyWs+AAAAbElEQVQoz62QMRbAIAhDP319Xon7j54qHSyCtaMZFCUkRjgDIdRU9yZUCfg8ut5aAHdcxtoNurmgA3ABNKIR9KimhSukPe2qxcCYC0pfFXx/aFWo7i42KKItOpopqvvnLzJmtlZTS7EfGAfwAM4EQbLIGV0sAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTEyLTAyVDE0OjI2OjI5KzAxOjAwwEbXdgAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNC0xMS0xMlQwODozOToxOSswMTowMDt8ncMAAAAASUVORK5CYII=")}\n${xt("geoparab","CAAAAAA6mKC9AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAJ0Uk5TAAB2k804AAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAAAEgAAABIAEbJaz4AAAB/SURBVBjTbY+xDYAwDAQ9UAp3X7p0m9o9dUZgA9oMwAjpMwMzMAnYBAQSX9mn9+tN9KOtzsWsLOvYCziUGNX3nnCLJRzKPgeYrhPW7FJNLUB3YJazYKQKTnBaxgXRzNmJcrt7XCHQp9kEB1wfELEir/KGj4Foh8A+/zW1nf51AFabKZuWK+mNAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTEyLTAyVDE0OjI2OjI5KzAxOjAwwEbXdgAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNC0xMS0xMlQwODozOToxOSswMTowMDt8ncMAAAAASUVORK5CYII=")}\n${xt("geopgon","CAAAAAA6mKC9AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAJ0Uk5TAAB2k804AAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAAAEgAAABIAEbJaz4AAABwSURBVBjTY2AgDlwAAzh3sX1sPRDEeuwDc+8V2dsHgQQ8LCzq74HkLSzs7Yva2tLt7S3sN4MNiDUGKQmysCi6BzWkzcI+PdY+aDPCljZlj1iFOUjW1tvHLjYuQhJIt5/DcAFZYLH9YnSn7iPST9gAACbsJth21haFAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTEyLTAyVDE0OjI2OjI5KzAxOjAwwEbXdgAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNC0xMS0xMlQwODozOToxOSswMTowMDt8ncMAAAAASUVORK5CYII=")}\n${xt("geotorus","CAAAAAA6mKC9AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAJ0Uk5TAAB2k804AAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAAAEgAAABIAEbJaz4AAACGSURBVBjTjY+hFcMwDEQ9SkFggXGIoejhw+LiGkBDlHoAr+AhgjNL5byChuXeE7gvPelUyjOds/f5Zw0ggfj5KVCPMBWeyx+SbQ1XUriAC2XfpWWxjQQEZasRtRHiCUAj3qN4JaolUJppzh4q7dUTdHFXW/tH9OuswWm3nI7tc08+/eGLl758ey9KpKrNOQAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNS0xMi0wMlQxNDoyNjoyOSswMTowMMBG13YAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTQtMTEtMTJUMDg6Mzk6MTkrMDE6MDA7fJ3DAAAAAElFTkSuQmCC")}\n${xt("geotrd1","CAAAAAA6mKC9AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAJ0Uk5TAAB2k804AAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAAAEgAAABIAEbJaz4AAAB/SURBVBjTbc6xDQMhDAVQ9qH6lUtal65/zQ5IDMAMmYAZrmKGm4FJzlEQQUo+bvwkG4fwm9lbodV7w40Y4WGfSxQiXiJlQfZOjWRb8Ioi3tKuBQMCo7+9N72BzPsfAuoTdUP9QN8wgOQwvsfWmHzpeT5BKydMNW0nhJGvGf7mAc5WKO9e5N2dAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE1LTEyLTAyVDE0OjI2OjI5KzAxOjAwwEbXdgAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNC0xMS0xMlQwODozOToxOSswMTowMDt8ncMAAAAASUVORK5CYII=")}\n${xt("geotube","CAAAAAA6mKC9AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAJ0Uk5TAAB2k804AAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAAAEgAAABIAEbJaz4AAACGSURBVBjTRc+tEcAwCAXgLFNbWeSzSDQazw5doWNUZIOM0BEyS/NHy10E30HyklKvWnJ+0le3sJoKn3X2z7GRuvG++YRyMMDt0IIKUXMzxbnugJi5m9K1gNnGBOUFElAWGMaKIKI4xoQggl00gT+A9hXWgDwnfqgsHRAx2m+8bfjfdyrx5AtsSjpwu+M2RgAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNS0xMi0wMlQxNDoyNjoyOSswMTowMMBG13YAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTQtMTEtMTJUMDg6Mzk6MTkrMDE6MDA7fJ3DAAAAAElFTkSuQmCC")}\n${xt("evepoints","BAMAAADt3eJSAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAABJQTFRF////n4mJcEdKRDMzcEdH////lLE/CwAAAAF0Uk5TAEDm2GYAAAABYktHRACIBR1IAAAACXBIWXMAAABIAAAASABGyWs+AAAAI0lEQVQI12NgIAowIpgKEJIZLiAgAKWZGQzQ9UGlWIizBQgAN4IAvGtVrTcAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTYtMDktMDJUMTU6MDQ6MzgrMDI6MDDPyc7hAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE2LTA5LTAyVDE1OjA0OjM4KzAyOjAwvpR2XQAAAABJRU5ErkJggg==")}\n${xt("evetrack","CAQAAAC1+jfqAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAJiS0dEAP+Hj8y/AAAACXBIWXMAAABIAAAASABGyWs+AAAAqElEQVQoz32RMQrCQBBFf4IgSMB0IpGkMpVHCFh7BbHIGTyVhU0K8QYewEKsbVJZaCUiPAsXV8Puzhaz7H8zs5+JUDjikLilQr5zpCRl5xMXZNScQE5gSMGaz70jjUAJcw5c3UBMTsUe+9Kzf065SbropeLXimWfDIgoab/tOyPGzOhz53+oSWcSGh7UdB2ZNKXBZdgAuUdEKJYmrEILyVgG6pE2tEHgDfe42rbjYzSHAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE2LTA5LTAyVDE1OjA0OjQ3KzAyOjAwM0S3EQAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNi0wOS0wMlQxNTowNDo0NyswMjowMEIZD60AAAAASUVORK5CYII=")}\n.jsroot .geovis_this { background-color: lightgreen; }\n.jsroot .geovis_daughters { background-color: lightblue; }\n.jsroot .geovis_all { background-color: yellow; }`)}function Sn(xt,K,ge){yn(),(0,Z.QL)("GradPerSegm",x.settings.GeoGradPerSegm),(0,Z.QL)("CompressComp",x.settings.GeoCompressComp);const ye=new $n(xt,K);return ye.decodeOptions(ge),ye}function ii(xt,K,ge){if(!K._geoobj)return!1;const ye=K._geoobj,Pe=K._volume,At=ye._typename===b||ye._typename===fe;if(!Pe&&!At)return!1;xt.add("separator");const Ht=(cn,In,ci)=>{if(In||(In={visible:0,hidden:0}),ci||(void 0!==In.assign?cn.fRnrSelf=In.assign:cn.fRnrSelf?In.vis++:In.hidden++),cn.fElements)for(let Pi=0;Pi{"self"===cn?(ye.fRnrSelf=!ye.fRnrSelf,K._icon=K._icon.split(" ")[0]+Je(ye),ge.updateTreeNode(K)):(Ht(ye,{assign:"true"===cn},!0),ge.forEachItem(In=>{In._geoobj&&In._icon&&(In._icon=K._icon.split(" ")[0]+Je(In._geoobj),ge.updateTreeNode(In))},K)),te(K,"testGeomChanges")},nn=cn=>{(0,Z.ZE)(Pe,cn);const In=K._icon.split(" ")[0]+Je(Pe);ge.forEachItem(ci=>{K._volume===ci._volume&&(ci._icon=In,ge.updateTreeNode(ci))}),ge.updateTreeNode(K),te(K,"testGeomChanges")},hn=te(K),kn=hn?ge.itemFullName(K,hn):"";if(0===K._geoobj._typename.indexOf(x.clTGeoNode)&&hn&&xt.add("Focus",()=>{hn&&(0,x.isFunc)(hn._painter?.focusOnItem)&&hn._painter.focusOnItem(kn)}),At){xt.addchk(ye.fRnrSelf,"Visible","self",Nt);const cn=Ht(ye,void 0,!0);cn.hidden+cn.visible>0&&xt.addchk(0===cn.hidden,"Daughters",0!==cn.hidden?"true":"false",Nt)}else{const cn=hn?._painter?._clones?.findStackByName(kn),In=cn?hn._painter._clones.getPhysNodeVisibility(cn):null,ci=(0,Z.zL)(Pe,Z.Wv.kVisThis);if(xt.addchk((0,Z.zL)(Pe,Z.Wv.kVisNone),"Invisible",Z.Wv.kVisNone,nn),cn){const Pi=Si=>{hn._painter._clones.setPhysNodeVisibility(cn,"off"!==Si&&Si),te(K,"testGeomChanges")};xt.add("sub:Physical vis","Physical node visibility - only for this instance"),xt.addchk(In?.visible,"on","on",Pi,"Enable visibility of phys node"),xt.addchk(In&&!In.visible,"off","off",Pi,"Disable visibility of physical node"),xt.add("reset","clear",Pi,"Reset custom visibility of physical node"),xt.add("reset all","clearall",Pi,"Reset all custom settings for all nodes"),xt.add("endsub:")}xt.addchk(ci,"Logical vis",Z.Wv.kVisThis,nn,"Logical node visibility - all instances"),xt.addchk((0,Z.zL)(Pe,Z.Wv.kVisDaughters),"Daughters",Z.Wv.kVisDaughters,nn,"Logical node daugthers visibility")}return!0}function ai(xt,K){return xt._volume?((0,Z.ZE)(xt._volume,xt._more&&xt._volume.fNodes?.arr?.length?Z.Wv.kVisDaughters:Z.Wv.kVisThis),tt(xt._volume,K),te(xt,"testGeomChanges"),!1):!xt._geoobj||xt._geoobj._typename!==b&&xt._geoobj._typename!==fe?void 0!==te(xt)?._painter?.extraObjectVisible(K,xt,!0):(xt._geoobj.fRnrSelf=!xt._geoobj.fRnrSelf,tt(xt._geoobj,K),te(xt,"testGeomChanges"),!1)}function zi(xt,K){let ge="";switch(xt._kind){case x.prROOT+z:ge="img_evetrack";break;case x.prROOT+W:case x.prROOT+x.clTPolyMarker3D:ge="img_evepoints"}return ge&&te(xt)?._painter?.extraObjectVisible(K,xt)&&(ge+=" geovis_this"),ge}function ti(xt,K,ge){const ye={_kind:x.prROOT+K._typename,_name:ge||(0,Z.Hs)(K),_title:K.fTitle,_parent:xt,_geoobj:K,_get:nn=>(nn._geoobj&&(nn._geoobj.$geoh=!0),Promise.resolve(nn._geoobj))};let Pe,At,Ht,Nt=!1;return"TGeoMaterial"===K._typename?ye._icon="img_geomaterial":"TGeoMedium"===K._typename?ye._icon="img_geomedium":"TGeoMixture"===K._typename?ye._icon="img_geomixture":0===K._typename.indexOf(x.clTGeoNode)&&K.fVolume?(ye._title="node:"+K._typename,K.fTitle&&(ye._title+=" "+K.fTitle),Pe=K.fVolume):0===K._typename.indexOf(x.clTGeoVolume)?Pe=K:K._typename===b||K._typename===fe?(Nt=!0,At=K.fShape,Ht=K.fElements?K.fElements.arr:null):void 0!==K.fShapeBits&&void 0!==K.fShapeId&&(At=K),Pe&&(At=Pe.fShape,Ht=Pe.fNodes?Pe.fNodes.arr:null),(Pe||At||Ht)&&(Pe&&(ye._volume=Pe),Ht?(ye._more=!0,ye._expand=bt):At&&At._typename===Z.HO&&At.fNode&&(ye._more=!0,ye._shape=At,ye._expand=function(nn){return ti(nn,nn._shape.fNode.fLeft,"Left"),ti(nn,nn._shape.fNode.fRight,"Right"),!0}),!ye._title&&K._typename!==x.clTGeoVolume&&(ye._title=K._typename),At?(""===ye._title&&(ye._title=At._typename),ye._icon=(0,Z.fD)(At)):ye._icon=ye._more?"img_geocombi":"img_geobbox",Pe?ye._icon+=Je(Pe):Nt&&(ye._icon+=Je(K)),ye._menu=ii,ye._icon_click=ai),xt._childs||(xt._childs=[]),ye._name||((0,x.isStr)(xt._name)?(ye._name=xt._name,ye._name.lastIndexOf("s")===ye._name.length-1&&(ye._name=ye._name.slice(0,ye._name.length-1)),ye._name+="_"+xt._childs.length):ye._name="item_"+xt._childs.length),xt._childs.push(ye),ye}function Lr(xt){return ss.apply(this,arguments)}function ss(){return(ss=(0,Te.A)(function*(xt){const K=(0,x.create)(x.clTNamed);K._typename=Z.Ce,K.fDX=1e-10,K.fDY=1e-10,K.fDZ=1e-10,K.fShapeId=1,K.fShapeBits=0,K.fOrigin=[0,0,0];const ge=Object.assign((0,x.create)(x.clTNamed),{_typename:b,fTrans:[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0],fShape:K,fRGBA:[0,0,0,0],fElements:null,fRnrSelf:!1}),ye=xt.getPadPainter(),Pe=ye?.pad?.fFillColor&&ye?.pad?.fFillStyle>1e3?"bkgr_"+ye.pad.fFillColor:"";return $n.draw(xt.getDom(),ge,Pe).then(At=>(At._dummy=!0,At))})).apply(this,arguments)}function Bs(){const xt=this.getMainPainter();if((0,x.isFunc)(xt?.setAxesDraw))return xt.setAxesDraw(!0);console.error("no geometry painter found to toggle TAxis3D drawing")}function yo(xt,K){if(!xt)return null;K||(K={}),K.numfaces||(K.numfaces=1e5),K.numnodes||(K.numnodes=1e3),K.frustum||(K.frustum=null),K.res_mesh=K.res_faces=0,void 0===K.instancing&&(K.instancing=-1),K.info={num_meshes:0,num_faces:0};let ge=null,ye=null;if(xt.visibles&&xt.nodes&&xt.numnodes){const Nt=xt.numnodes>1e6?{length:xt.numnodes}:new Array(xt.numnodes);xt.nodes.forEach(hn=>{Nt[hn.id]=Z.De.formatServerElement(hn)}),ge=new Z.De(null,Nt),ge.name_prefix=ge.getNodeName(0),ge.maxdepth=20;const nn=xt.cfg?.nsegm||30;for(let hn=0;hn{"use strict";Se.d(mt,{De:()=>Pi,$T:()=>St,Ce:()=>B,HO:()=>we,qU:()=>Wi,Wz:()=>K,_b:()=>Ne,P1:()=>kn,Cc:()=>cn,d4:()=>hn,uz:()=>Nt,Wv:()=>X,QL:()=>Y,UX:()=>Jn,Dh:()=>Fe,Hs:()=>rt,fD:()=>Rs,xq:()=>ci,NN:()=>Q,k$:()=>ue,Pz:()=>Ln,qr:()=>ye,V:()=>nn,bg:()=>lt,N_:()=>te,zL:()=>Ge,ZE:()=>bt});var Te=Se(2923),x=Se(8872);const L=1e-5;class Ze{constructor(D,O,ie,_e,Oe,$e){this.x=D,this.y=O,this.z=ie,this.nx=_e,this.ny=Oe,this.nz=$e}setnormal(D,O,ie){this.nx=D,this.ny=O,this.nz=ie}clone(){return new Ze(this.x,this.y,this.z,this.nx,this.ny,this.nz)}add(D){return this.x+=D.x,this.y+=D.y,this.z+=D.z,this}subtract(D){return this.x-=D.x,this.y-=D.y,this.z-=D.z,this}cross3(D,O,ie){const _e=this.x,Oe=this.y,$e=this.z;return this.x=Oe*ie-$e*O,this.y=$e*D-_e*ie,this.z=_e*O-Oe*D,this}normalize(){const D=Math.sqrt(this.x**2+this.y**2+this.z**2);return this.x/=D,this.y/=D,this.z/=D,this}dot(D){return this.x*D.x+this.y*D.y+this.z*D.z}diff(D){const Oe=this.x**2+this.y**2+this.z**2;return((this.x-D.x)**2+(this.y-D.y)**2+(this.z-D.z)**2)/(Oe>0?Oe:1e-10)}interpolate(D,O){const ie=1-O;return new Ze(this.x*ie+D.x*O,this.y*ie+D.y*O,this.z*ie+D.z*O,this.nx*ie+D.nx*O,this.ny*ie+D.ny*O,this.nz*ie+D.nz*O)}applyMatrix4(D){let O=this.x,ie=this.y,_e=this.z;const Oe=D.elements;return this.x=Oe[0]*O+Oe[4]*ie+Oe[8]*_e+Oe[12],this.y=Oe[1]*O+Oe[5]*ie+Oe[9]*_e+Oe[13],this.z=Oe[2]*O+Oe[6]*ie+Oe[10]*_e+Oe[14],O=this.nx,ie=this.ny,_e=this.nz,this.nx=Oe[0]*O+Oe[4]*ie+Oe[8]*_e,this.ny=Oe[1]*O+Oe[5]*ie+Oe[9]*_e,this.nz=Oe[2]*O+Oe[6]*ie+Oe[10]*_e,this}}class Re{constructor(D,O,ie){this.vertices=D||[],this.nsign=1,O?this.copyProperties(O,ie):this.vertices.length>0&&this.calculateProperties()}copyProperties(D,O){return this.normal=D.normal,this.w=D.w,this.nsign=D.nsign,O&&void 0!==D.id&&(this.id=D.id,this.parent=D),this}calculateProperties(D){if(this.normal&&!D)return;const O=this.vertices[0],ie=this.vertices[1],_e=this.vertices[2];return this.nsign=1,this.normal=new Ze(ie.x-O.x,ie.y-O.y,ie.z-O.z,0,0,0).cross3(_e.x-O.x,_e.y-O.y,_e.z-O.z).normalize(),this.w=this.normal.dot(O),this}clone(){const D=this.vertices.length,O=[];for(let ie=0;ieL?1:0}classifySide(D){let O=0,ie=0;const _e=D.vertices.length;for(let Oe=0;Oe<_e;++Oe){const $e=this.classifyVertex(D.vertices[Oe]);1===$e?++O:2===$e&&++ie}return O>0&&0===ie?1:0===O&&ie>0?2:0===O&&0===ie?0:3}splitPolygon(D,O,ie,_e,Oe){const $e=this.classifySide(D);if(0===$e)(this.nsign*D.nsign*this.normal.dot(D.normal)>0?O:ie).push(D);else if(1===$e)_e.push(D);else if(2===$e)Oe.push(D);else{const et=D.vertices.length,it=this.normal.x,_t=this.normal.y,sn=this.normal.z,tn=[],xn=[];let wn,Ut,qe,nt,at,ht,Qt,vn;for(wn=0;wn=3&&_e.push(new Re(tn,D,!0)),xn.length>=3&&Oe.push(new Re(xn,D,!0))}}}class He{constructor(D,O){if(this.polygons=[],this.front=this.back=void 0,!D)return;this.divider=D[0].clone();const ie=D.length,_e=[],Oe=[];for(let $e=0;$e0&&(this.front=new He(_e)),Oe.length>0&&(this.back=new He(Oe))}build(D){const O=D.length,ie=[],_e=[];let Oe=0;this.divider||(this.divider=D[0].clone(),this.polygons.push(D[0]),Oe=1);for(let $e=Oe;$e0&&(this.front||(this.front=new He),this.front.build(ie)),_e.length>0&&(this.back||(this.back=new He),this.back.build(_e))}collectPolygons(D){void 0===D&&(D=[]);const O=this.polygons.length;for(let ie=0;ieO.clone()),D.front=this.front?.clone(),D.back=this.back?.clone(),D}invert(){const D=this.polygons.length;for(let ie=0;ie1;_e;)for(_e=!1,tn=0;tn0)for(D.splice(0,D.length),$e=0;$e=0){let et=ie[$e]||1;for(;O.indexOf(Oe.fName+"#"+et)>=0;)++et;Oe.$geo_suffix="#"+et,ie[$e]=et+1}}O.push(rt(Oe))}}}function pt(oe,D,O,ie,_e,Oe,$e,et,it){const _t=new Te.Pq0(oe,D,O),sn=new Te.Pq0(ie,_e,Oe),tn=new Te.Pq0($e,et,it),xn=new Te.Pq0,wn=new Te.Pq0;return xn.subVectors(tn,sn),wn.subVectors(_t,sn),xn.cross(wn),xn}class st{constructor(D){this.nfaces=D,this.indx=0,this.pos=new Float32Array(9*D),this.norm=new Float32Array(9*D)}addFace3(D,O,ie,_e,Oe,$e,et,it,_t){const sn=this.indx,tn=this.pos;tn[sn]=D,tn[sn+1]=O,tn[sn+2]=ie,tn[sn+3]=_e,tn[sn+4]=Oe,tn[sn+5]=$e,tn[sn+6]=et,tn[sn+7]=it,tn[sn+8]=_t,this.last4=!1,this.indx=sn+9}startPolygon(){}stopPolygon(){}addFace4(D,O,ie,_e,Oe,$e,et,it,_t,sn,tn,xn,wn){let Ut=this.indx;const qe=this.pos;1!==wn&&(qe[Ut]=D,qe[Ut+1]=O,qe[Ut+2]=ie,qe[Ut+3]=_e,qe[Ut+4]=Oe,qe[Ut+5]=$e,qe[Ut+6]=et,qe[Ut+7]=it,qe[Ut+8]=_t,Ut+=9),2!==wn&&(qe[Ut]=D,qe[Ut+1]=O,qe[Ut+2]=ie,qe[Ut+3]=et,qe[Ut+4]=it,qe[Ut+5]=_t,qe[Ut+6]=sn,qe[Ut+7]=tn,qe[Ut+8]=xn,Ut+=9),this.last4=Ut!==this.indx+9,this.indx=Ut}setNormal4(D,O,ie,_e,Oe,$e,et,it,_t,sn,tn,xn,wn){if(this.last4&&wn)return console.error("missmatch between addFace4 and setNormal4 calls");let Ut=this.indx-(this.last4?18:9);const qe=this.norm;1!==wn&&(qe[Ut]=D,qe[Ut+1]=O,qe[Ut+2]=ie,qe[Ut+3]=_e,qe[Ut+4]=Oe,qe[Ut+5]=$e,qe[Ut+6]=et,qe[Ut+7]=it,qe[Ut+8]=_t,Ut+=9),2!==wn&&(qe[Ut]=D,qe[Ut+1]=O,qe[Ut+2]=ie,qe[Ut+3]=et,qe[Ut+4]=it,qe[Ut+5]=_t,qe[Ut+6]=sn,qe[Ut+7]=tn,qe[Ut+8]=xn)}recalcZ(D){const O=this.pos,ie=this.indx;let _e=ie-(this.last4?18:9);for(;_e0?9:18);const _t=this.norm;1!==et&&(_t[it]=D,_t[it+1]=O,_t[it+2]=ie,_t[it+3]=D,_t[it+4]=O,_t[it+5]=ie,_t[it+6]=_e,_t[it+7]=Oe,_t[it+8]=$e,it+=9),2!==et&&(_t[it]=D,_t[it+1]=O,_t[it+2]=ie,_t[it+3]=_e,_t[it+4]=Oe,_t[it+5]=$e,_t[it+6]=_e,_t[it+7]=Oe,_t[it+8]=$e)}create(){this.nfaces!==this.indx/9&&console.error(`Mismatch with created ${this.nfaces} and filled ${this.indx/9} number of faces`);const D=new Te.LoY;return D.setAttribute("position",new Te.THS(this.pos,3)),D.setAttribute("normal",new Te.THS(this.norm,3)),D}}class vt{constructor(){this.polygons=[]}startPolygon(D){this.multi=1,this.mnormal=D}stopPolygon(){this.multi&&(this.multi=0,console.error("Polygon should be already closed at this moment"))}addFace3(D,O,ie,_e,Oe,$e,et,it,_t){this.addFace4(D,O,ie,_e,Oe,$e,et,it,_t,et,it,_t,2)}addFace4(D,O,ie,_e,Oe,$e,et,it,_t,sn,tn,xn,wn){if(void 0===wn&&(wn=0),this.v1=new Ze(D,O,ie,0,0,0),this.v2=1===wn?null:new Ze(_e,Oe,$e,0,0,0),this.v3=new Ze(et,it,_t,0,0,0),this.v4=2===wn?null:new Ze(sn,tn,xn,0,0,0),this.reduce=wn,this.multi){let qe;return 2!==wn&&console.error("polygon not supported for not-reduced faces"),1==this.multi++?(qe=new Re,qe.vertices.push(this.mnormal?this.v2:this.v3),this.polygons.push(qe)):(qe=this.polygons[this.polygons.length-1],(this.mnormal?this.v2:this.v3).diff(this.mnormal?qe.vertices[qe.vertices.length-1]:qe.vertices[0])>1e-12&&console.error("vertex missmatch when building polygon")),void((this.mnormal?this.v3:this.v2).diff(this.mnormal?qe.vertices[0]:qe.vertices[qe.vertices.length-1])<1e-12?this.multi=0:this.mnormal?qe.vertices.push(this.v3):qe.vertices.unshift(this.v2))}const Ut=new Re;switch(wn){case 0:Ut.vertices.push(this.v1,this.v2,this.v3,this.v4);break;case 1:Ut.vertices.push(this.v1,this.v3,this.v4);break;case 2:Ut.vertices.push(this.v1,this.v2,this.v3)}this.polygons.push(Ut)}setNormal4(D,O,ie,_e,Oe,$e,et,it,_t,sn,tn,xn){this.v1.setnormal(D,O,ie),this.v2&&this.v2.setnormal(_e,Oe,$e),this.v3.setnormal(et,it,_t),this.v4&&this.v4.setnormal(sn,tn,xn)}setNormal_12_34(D,O,ie,_e,Oe,$e){this.v1.setnormal(D,O,ie),this.v2&&this.v2.setnormal(D,O,ie),this.v3.setnormal(_e,Oe,$e),this.v4&&this.v4.setnormal(_e,Oe,$e)}calcNormal(){this.cb||(this.pA=new Te.Pq0,this.pB=new Te.Pq0,this.pC=new Te.Pq0,this.cb=new Te.Pq0,this.ab=new Te.Pq0),this.pA.set(this.v1.x,this.v1.y,this.v1.z),1!==this.reduce?(this.pB.set(this.v2.x,this.v2.y,this.v2.z),this.pC.set(this.v3.x,this.v3.y,this.v3.z)):(this.pB.set(this.v3.x,this.v3.y,this.v3.z),this.pC.set(this.v4.x,this.v4.y,this.v4.z)),this.cb.subVectors(this.pC,this.pB),this.ab.subVectors(this.pA,this.pB),this.cb.cross(this.ab),this.setNormal(this.cb.x,this.cb.y,this.cb.z)}setNormal(D,O,ie){this.v1.setnormal(D,O,ie),this.v2&&this.v2.setnormal(D,O,ie),this.v3.setnormal(D,O,ie),this.v4&&this.v4.setnormal(D,O,ie)}recalcZ(D){this.v1.z=D(this.v1.x,this.v1.y,this.v1.z),this.v2&&(this.v2.z=D(this.v2.x,this.v2.y,this.v2.z)),this.v3.z=D(this.v3.x,this.v3.y,this.v3.z),this.v4&&(this.v4.z=D(this.v4.x,this.v4.y,this.v4.z))}create(){return{polygons:this.polygons}}}function qt(oe,D){const O=[4,7,6,5,0,3,7,4,4,5,1,0,6,2,1,5,7,3,2,6,1,2,3,0],ie=D>0?new vt:new st(12);for(let _e=0;_e0||ie[1]>0;let Oe=0,$e=360;(oe._typename===E||oe._typename===v||oe._typename===p)&&(Oe=oe.fPhi1,$e=oe.fPhi2-oe.fPhi1);const et=Math.max(4,Math.round($e/J.GradPerSegm));let it=et*(O[0]<=0||O[1]<=0?1:2);if(_e&&(it+=et*(ie[0]<=0||ie[1]<=0?1:2)),O[0]>0&&(it+=et*(ie[0]>0?2:1)),O[1]>0&&(it+=et*(ie[1]>0?2:1)),$e<360&&(it+=(O[0]>ie[0]?2:0)+(O[1]>ie[1]?2:0)),D<0)return it;const _t=Oe*Math.PI/180,sn=$e/et*Math.PI/180,tn=new Float32Array(et+1),xn=new Float32Array(et+1);for(let qe=0;qe<=et;++qe)xn[qe]=Math.cos(_t+qe*sn),tn[qe]=Math.sin(_t+qe*sn);const wn=D?new vt:new st(it),Ut=oe._typename!==p?null:(qe,nt,at)=>{const ht=at<0?oe.fNlow:oe.fNhigh;return(at<0?-oe.fDz:oe.fDz)-(qe*ht[0]+nt*ht[1])/ht[2]};for(let qe=0;qe<2&&(1!==qe||_e);++qe){const nt=0===qe?O:ie,at=qe,ht=1-qe;let Qt=1,vn=0;if(nt[0]!==nt[1]){const jt=Math.atan2(nt[1]-nt[0],2*oe.fDZ);Qt=Math.cos(jt),vn=Math.sin(jt)}1===qe&&(Qt*=-1,vn*=-1);const en=nt[0]<=0?2:nt[1]<=0?1:0;for(let jt=0;jt=ie&&Oe.max[O]>=ie||Oe.min[O]<=ie&&Oe.max[O]<=ie)return null;const $e=new De(oe,D,0,_e),et=2*Math.max(Math.abs(Oe.min.x),Math.abs(Oe.max.x)),it=2*Math.max(Math.abs(Oe.min.y),Math.abs(Oe.max.y)),_t=2*Math.max(Math.abs(Oe.min.z),Math.abs(Oe.max.z));let sn=1e4;switch(O){case"x":sn=Math.max(it,_t);break;case"y":sn=Math.max(et,_t);break;case"z":sn=Math.max(et,it)}const tn=function F(oe,D,O){let ie;switch((!O||O<1e4)&&(O=1e4),oe){case"x":ie=[new Ze(D,-3*O,O,1,0,0),new Ze(D,O,-3*O,1,0,0),new Ze(D,O,O,1,0,0)];break;case"y":ie=[new Ze(-3*O,D,O,0,1,0),new Ze(O,D,O,0,1,0),new Ze(O,D,-3*O,0,1,0)];break;default:ie=[new Ze(-3*O,O,D,0,0,1),new Ze(O,-3*O,D,0,0,1),new Ze(O,O,D,0,0,1)]}const _e=new He([new Re(ie)]);return new De(_e)}(O,ie,sn);return $e.cut_from_plane(tn),tn.toBufferGeometry()}function Pe(oe,D){void 0===D&&(D=0);try{switch(oe._typename){case B:return function Yt(oe,D){if(D<0)return 12;const O=oe.fDX,ie=oe.fDY,_e=oe.fDZ,Oe=D?new vt:new st(12);return Oe.addFace4(O,ie,_e,O,-ie,_e,O,-ie,-_e,O,ie,-_e),Oe.setNormal(1,0,0),Oe.addFace4(-O,ie,-_e,-O,-ie,-_e,-O,-ie,_e,-O,ie,_e),Oe.setNormal(-1,0,0),Oe.addFace4(-O,ie,-_e,-O,ie,_e,O,ie,_e,O,ie,-_e),Oe.setNormal(0,1,0),Oe.addFace4(-O,-ie,_e,-O,-ie,-_e,O,-ie,-_e,O,-ie,_e),Oe.setNormal(0,-1,0),Oe.addFace4(-O,ie,_e,-O,-ie,_e,O,-ie,_e,O,ie,_e),Oe.setNormal(0,0,1),Oe.addFace4(O,ie,-_e,O,-ie,-_e,-O,-ie,-_e,-O,ie,-_e),Oe.setNormal(0,0,-1),Oe.create()}(oe,D);case U:return function Ot(oe,D){if(D<0)return 12;const O=oe.fTxy,ie=oe.fTxz,_e=oe.fTyz;return qt([-oe.fZ*ie-O*oe.fY-oe.fX,-oe.fY-oe.fZ*_e,-oe.fZ,-oe.fZ*ie+O*oe.fY-oe.fX,oe.fY-oe.fZ*_e,-oe.fZ,-oe.fZ*ie+O*oe.fY+oe.fX,oe.fY-oe.fZ*_e,-oe.fZ,-oe.fZ*ie-O*oe.fY+oe.fX,-oe.fY-oe.fZ*_e,-oe.fZ,oe.fZ*ie-O*oe.fY-oe.fX,oe.fZ*_e-oe.fY,oe.fZ,oe.fZ*ie+O*oe.fY-oe.fX,oe.fY+oe.fZ*_e,oe.fZ,oe.fZ*ie+O*oe.fY+oe.fX,oe.fY+oe.fZ*_e,oe.fZ,oe.fZ*ie-O*oe.fY+oe.fX,oe.fZ*_e-oe.fY,oe.fZ],D)}(oe,D);case C:case I:return function Bn(oe,D){if(D<0)return 12;let O,ie;return oe._typename===C?O=ie=oe.fDY:(O=oe.fDy1,ie=oe.fDy2),qt([-oe.fDx1,O,-oe.fDZ,oe.fDx1,O,-oe.fDZ,oe.fDx1,-O,-oe.fDZ,-oe.fDx1,-O,-oe.fDZ,-oe.fDx2,ie,oe.fDZ,oe.fDx2,ie,oe.fDZ,oe.fDx2,-ie,oe.fDZ,-oe.fDx2,-ie,oe.fDZ],D)}(oe,D);case $:case T:case z:return function Mn(oe,D){if(D<0)return 12;const O=[oe.fXY[0][0],oe.fXY[0][1],-oe.fDZ,oe.fXY[1][0],oe.fXY[1][1],-oe.fDZ,oe.fXY[2][0],oe.fXY[2][1],-oe.fDZ,oe.fXY[3][0],oe.fXY[3][1],-oe.fDZ,oe.fXY[4][0],oe.fXY[4][1],oe.fDZ,oe.fXY[5][0],oe.fXY[5][1],oe.fDZ,oe.fXY[6][0],oe.fXY[6][1],oe.fDZ,oe.fXY[7][0],oe.fXY[7][1],oe.fDZ],ie=[4,7,6,6,5,4,3,7,4,4,0,3,5,1,0,0,4,5,6,2,1,1,5,6,7,3,2,2,6,7,1,2,3,3,0,1];for(let et=0;et=0||_e.indexOf(_t)>=0||_e.indexOf(sn)>=0?ie[et]=ie[et+1]=ie[et+2]=-1:(_e.push(it,_t,sn),Oe++)}const $e=D?new vt:new st(Oe);for(let et=0;et=0&&tn>=0&&D)if(0===et)Ut=new Te.Pq0(0,0,1);else if(30===et)Ut=new Te.Pq0(0,0,-1);else{const qe=pt(O[it],O[it+1],O[it+2],O[_t],O[_t+1],O[_t+2],O[sn],O[sn+1],O[sn+2]);qe.normalize();const nt=pt(O[tn],O[tn+1],O[tn+2],O[xn],O[xn+1],O[xn+2],O[wn],O[wn+1],O[wn+2]);nt.normalize(),qe.distanceToSquared(nt)<1e-12&&(Ut=qe)}null!==Ut?($e.addFace4(O[it],O[it+1],O[it+2],O[_t],O[_t+1],O[_t+2],O[sn],O[sn+1],O[sn+2],O[xn],O[xn+1],O[xn+2]),$e.setNormal(Ut.x,Ut.y,Ut.z)):(it>=0&&($e.addFace3(O[it],O[it+1],O[it+2],O[_t],O[_t+1],O[_t+2],O[sn],O[sn+1],O[sn+2]),$e.calcNormal()),tn>=0&&($e.addFace3(O[tn],O[tn+1],O[tn+2],O[xn],O[xn+1],O[xn+2],O[wn],O[wn+1],O[wn+2]),$e.calcNormal()))}return $e.create()}(oe,D);case V:return function bn(oe,D){const O=[oe.fRmax,oe.fRmin],ie=oe.fPhi1,_e=oe.fPhi2-oe.fPhi1,Oe=oe.fTheta1,$e=oe.fTheta2-oe.fTheta1,et=O[1]<=0;let it=oe.fNseg,_t=oe.fNz;if(D>0){const en=(et?2:4)*it*_t/D;en>1&&(it=Math.max(4,Math.floor(it/Math.sqrt(en))),_t=Math.max(4,Math.floor(_t/Math.sqrt(en))))}let sn=it*_t*2,tn=it*(et?1:2),xn=it*(et?1:2);const wn=360===_e?0:_t*(et?2:4),Ut=1e-10;if(D<0)return sn*(et?1:2)+tn+xn+wn;const qe=new Float32Array(it+1),nt=new Float32Array(it+1),at=new Float32Array(_t+1),ht=new Float32Array(_t+1);for(let en=0;en<=_t;++en){const jt=(Oe+$e/_t*en)*Math.PI/180;at[en]=Math.sin(jt),ht[en]=Math.cos(jt)}for(let en=0;en<=it;++en){const jt=(ie+_e/it*en)*Math.PI/180;qe[en]=Math.sin(jt),nt[en]=Math.cos(jt)}Math.abs(at[0])<=Ut&&(sn-=it,tn=0),Math.abs(at[_t])<=Ut&&(sn-=it,xn=0);const Qt=sn*(et?1:2)+tn+xn+wn,vn=D?new vt:new st(Qt);for(let en=0;en<2&&(1!==en||!et);++en){const jt=O[en],fn=0===en?1:-1,Hn=1-en,Vn=1-Hn;for(let Hi=0;Hi<_t;++Hi){const _r=Hi+Hn,Li=Hi+Vn;let Kr=0;Math.abs(at[_r])<=Ut?Kr=1:Math.abs(at[Li])<=Ut&&(Kr=2);for(let os=0;os=Ut){const jt=at[en],fn=ht[en],Hn=0===en?0:1,Vn=1-Hn;for(let Hi=0;Hi0?4:2)*ie*(_e+(360!==oe.fDphi?1:0));if(D<0)return Oe;D>0&&Oe>D&&(ie=Math.floor(ie/Math.sqrt(Oe/D)),_e=Math.floor(_e/Math.sqrt(Oe/D)),Oe=(oe.fRmin>0?4:2)*ie*(_e+(360!==oe.fDphi?1:0)));const $e=new Float32Array(ie+1),et=new Float32Array(ie+1),it=new Float32Array(_e+1),_t=new Float32Array(_e+1);for(let en=0;en<=ie;++en)$e[en]=Math.sin(en/ie*2*Math.PI),et[en]=Math.cos(en/ie*2*Math.PI);for(let en=0;en<=_e;++en){const jt=(oe.fPhi1+oe.fDphi*en/_e)/180*Math.PI;it[en]=Math.sin(jt),_t[en]=Math.cos(jt)}const sn=D?new vt:new st(Oe),tn=new Te.Pq0,xn=new Te.Pq0,wn=new Te.Pq0,Ut=new Te.Pq0,qe=new Te.Pq0,nt=new Te.Pq0,at=new Te.Pq0,ht=new Te.Pq0,Qt=new Te.Pq0,vn=new Te.Pq0;for(let en=0;en<2&&!(en>0&&oe.fRmin<=0);++en){const jt=en>0?oe.fRmin:oe.fRmax,fn=1-en,Hn=1-fn,Vn=en>0?-1:1;for(let Hi=0;Hi<_e;++Hi){const _r=Hi+fn,Li=Hi+Hn;Qt.x=O*_t[_r],Qt.y=O*it[_r],vn.x=O*_t[Li],vn.y=O*it[Li];for(let Kr=0;Kr0?0:1,Vn=1-Hn,Hi=oe.fRmin>0?0:1,_r=en>0?1:-1;for(let Li=0;Li0&&(it=!0);if(D<0)return(it?4:2)*_e*(oe.fNz-1);const _t=360===ie?null:[];for(let at=0;at<2;++at){const ht=0===at?"fRmax":"fRmin";for(let Qt=0;Qt0&&Qt0&&(0===at||it)&&($e[2*Qt+at]=1,et++),null!==_t&&(0===at?_t.push(new Te.I9Y(Oe*en,vn)):en0;--at){if(oe.fZ[at]===oe.fZ[at-1])continue;const ht=2*oe.fNz-1-at;tn.push([ht,at-1,at]),tn.push([ht,ht+1,at-1])}}else tn=Te.xJ6.triangulateShape(_t,[]);sn+=2*tn.length}const xn=O*Math.PI/180,wn=ie/_e*Math.PI/180,Ut=new Float32Array(_e+1),qe=new Float32Array(_e+1);for(let at=0;at<=_e;++at)qe[at]=Math.cos(xn+at*wn),Ut[at]=Math.sin(xn+at*wn);const nt=D?new vt:new st(sn);for(let at=0;at<2;++at){const ht=0===at?"fRmax":"fRmin",Qt=1-at,vn=at;let en=oe.fZ[0],jt=Oe*oe[ht][0];for(let fn=0;fn0&&(Hi*=-1,_r*=-1);for(let Li=0;Li<_e;++Li)nt.addFace4(jt*qe[Li+Qt],jt*Ut[Li+Qt],en,Vn*qe[Li+Qt],Vn*Ut[Li+Qt],Hn,Vn*qe[Li+vn],Vn*Ut[Li+vn],Hn,jt*qe[Li+vn],jt*Ut[Li+vn],en),nt.setNormal_12_34(Hi*qe[Li+Qt],Hi*Ut[Li+Qt],_r,Hi*qe[Li+vn],Hi*Ut[Li+vn],_r);en=Hn,jt=Vn}}for(let at=0;at0);for(let Hn=0;Hn<_e;++Hn)nt.addFace4(ht*qe[Hn+en],ht*Ut[Hn+en],vn,Qt*qe[Hn+en],Qt*Ut[Hn+en],vn,Qt*qe[Hn+jt],Qt*Ut[Hn+jt],vn,ht*qe[Hn+jt],ht*Ut[Hn+jt],vn,it?0:2),nt.setNormal(0,0,fn);nt.stopPolygon()}if(tn)for(let at=0;at<=_e;at+=_e){const ht=0===at?1:2,Qt=3-ht;for(let vn=0;vn0){const ht=2*O*(ie+1)/D;ht>1&&(O=Math.max(5,Math.floor(O/Math.sqrt(ht))),ie=Math.max(5,Math.floor(ie/Math.sqrt(ht))))}const _e=oe.fRlo,Oe=oe.fRhi;let $e=(ie+1)*O*2;if(0===_e&&($e-=2*O),0===Oe&&($e-=2*O),D<0)return $e;let et=-oe.fDZ,it=oe.fDZ;oe.fA>=0?oe.fB>et&&(et=oe.fB):oe.fB0?-1:1;const fn=0===qe?1:0===vn?2:0;for(let Hn=0;Hn0?4:2);if(D<0)return _e;D>0&&D>_e&&(O=Math.max(4,Math.floor(O/Math.sqrt(_e/D))),ie=Math.max(4,Math.floor(ie/Math.sqrt(_e/D))),_e=O*(ie+1)*(oe.fRmin>0?4:2));const Oe=new Float32Array(O+1),$e=new Float32Array(O+1);for(let it=0;it<=O;++it)$e[it]=Math.cos(it/O*2*Math.PI),Oe[it]=Math.sin(it/O*2*Math.PI);const et=D?new vt:new st(_e);for(let it=0;it<2&&!(it>0&&oe.fRmin<=0);++it){const _t=it>0?oe.fRmin:oe.fRmax,sn=it>0?oe.fTinsq:oe.fToutsq,tn=1-it,xn=1-tn;for(let wn=0;wn0?Math.sqrt(oe.fRmin**2+oe.fTinsq*_t**2):0,xn=oe.fRmin>0?0:1,wn=1-it,Ut=1-wn;for(let qe=0;qe=D||!ie)return O.polygons&&(O=Ve(O.polygons)),Oe&&O.applyMatrix4(Oe),O._exceed_limit=!0,O;let _t=new De(O,Oe,J.CompressComp?0:void 0);const sn=new De(ie,$e,_t.maxid);switch(_t.maxid=sn.maxid,oe.fNode._typename){case"TGeoIntersection":_t.direct_intersect(sn);break;case"TGeoUnion":_t.direct_union(sn);break;case"TGeoSubtraction":_t.direct_subtract(sn);break;default:tt("unsupported bool operation "+oe.fNode._typename+", use first geom")}return 0===K(_t)&&(tt(`Zero faces in comp shape left: ${oe.fNode.fLeft._typename} ${K(O)} faces right: ${oe.fNode.fRight._typename} ${K(ie)} faces use first`),_t=new De(O,Oe)),_e?{polygons:_t.toPolygons()}:_t.toBufferGeometry()}(oe,D);case he:break;case je:{const O=Pe(oe.fShape,D);return oe.fScale&&D>=0&&(0,x.isFunc)(O?.scale)&&O.scale(oe.fScale.fScale[0],oe.fScale.fScale[1],oe.fScale.fScale[2]),O}case Me:if(D<0)return 1;default:tt(`unsupported shape type ${oe._typename}`)}}catch(O){let ie="";void 0!==O.stack&&(ie=O.stack.split("\n")[0],ie=ie.indexOf(O.message)>=0?O.stack.split("\n")[1]:"at: "+ie),tt(`${oe._typename} err: ${O.message} ${ie}`)}return D<0?0:null}function Nt(oe,D){if(oe.server_shape&&(oe.nsegm===D||!oe.shape))return oe.server_shape;oe.nsegm=D;let O=null;if(oe.shape)O=Pe(oe.shape);else{if(!oe.raw?.buffer)return console.error("No raw data at all"),null;O=oe.sz?function At(oe){let D=0;if(oe.sz[0]&&(oe.vtxBuff=new Float32Array(oe.raw.buffer,D,oe.sz[0]),D+=4*oe.sz[0]),oe.sz[1]&&(D+=4*oe.sz[1]),oe.sz[2]&&(oe.prefixBuf=new Uint32Array(oe.raw.buffer,D,2),D+=8,oe.idxBuff=new Uint32Array(oe.raw.buffer,D,oe.sz[2]-2)),4!==oe.prefixBuf[0])throw Error("Expect triangles first.");if(oe.idxBuff.length!==3*oe.prefixBuf[1])throw Error("Expect single list of triangles in index buffer.");const _e=new Te.LoY;return _e.setAttribute("position",new Te.THS(oe.vtxBuff,3)),_e.setIndex(new Te.THS(oe.idxBuff,1)),_e.computeVertexNormals(),_e}(oe):function Ht(oe){const D=new Float32Array(oe.raw.buffer,0,oe.raw.buffer.byteLength/4),O=new Te.LoY;return O.setAttribute("position",new Te.THS(D,3)),O.setIndex(new Te.THS(new Uint32Array(oe.idx),1)),O.computeVertexNormals(),O}(oe)}return{_typename:"$$Shape$$",ready:!0,geom:O,nfaces:ss(O)}}function nn(oe){let D=[],O=null;if(void 0!==oe.fVolume?O=oe.fVolume.fShape:void 0!==oe.fShape?O=oe.fShape:void 0!==oe.fShapeBits&&void 0!==oe.fShapeId&&(O=oe),!O)return D.push(oe._typename),D;const ie=Math.max(O.fDX,O.fDY,O.fDZ),_e=ie>1e7||ie<1e-7,Oe=$e=>void 0===$e?"???":$e===Math.round($e)&&$e<1e7?Math.round($e):_e?$e.toExponential(4):$e.toPrecision(7);switch(D.push(O._typename),D.push(`DX=${Oe(O.fDX)} DY=${Oe(O.fDY)} DZ=${Oe(O.fDZ)}`),O._typename){case B:break;case U:D.push(`Alpha=${O.fAlpha} Phi=${O.fPhi} Theta=${O.fTheta}`);break;case I:D.push(`Dy1=${Oe(O.fDy1)} Dy2=${Oe(O.fDy1)}`);case C:D.push(`Dx1=${Oe(O.fDx1)} Dx2=${Oe(O.fDx1)}`);break;case $:case T:case z:break;case V:D.push(`Rmin=${Oe(O.fRmin)} Rmax=${Oe(O.fRmax)}`,`Phi1=${O.fPhi1} Phi2=${O.fPhi2}`,`Theta1=${O.fTheta1} Theta2=${O.fTheta2}`);break;case E:D.push(`Phi1=${O.fPhi1} Phi2=${O.fPhi2}`);case g:D.push(`Rmin1=${Oe(O.fRmin1)} Rmax1=${Oe(O.fRmax1)}`,`Rmin2=${Oe(O.fRmin2)} Rmax2=${Oe(O.fRmax2)}`);break;case p:case v:D.push(`Phi1=${O.fPhi1} Phi2=${O.fPhi2}`);case W:case _:D.push(`Rmin=${Oe(O.fRmin)} Rmax=${Oe(O.fRmax)}`);break;case b:D.push(`Rmin=${Oe(O.fRmin)} Rmax=${Oe(O.fRmax)}`,`Phi1=${O.fPhi1} Dphi=${O.fDphi}`);break;case Z:case ee:case P:break;case k:D.push(`Rlo=${Oe(O.fRlo)} Rhi=${Oe(O.fRhi)}`,`A=${Oe(O.fA)} B=${Oe(O.fB)}`);break;case fe:D.push(`Rmin=${Oe(O.fRmin)} Rmax=${Oe(O.fRmax)}`,`StIn=${Oe(O.fStIn)} StOut=${Oe(O.fStOut)}`);break;case we:case he:break;case je:D=nn(O.fShape),O.fScale&&D.unshift(`Scale X=${O.fScale.fScale[0]} Y=${O.fScale.fScale[1]} Z=${O.fScale.fScale[2]}`)}return D}function hn(oe){const D=new Te.kn4;return oe.updateMatrixWorld(),oe.matrixWorldInverse.copy(oe.matrixWorld).invert(),D.multiplyMatrices(oe.projectionMatrix,oe.matrixWorldInverse),D}function kn(oe){if(!oe)return null;oe instanceof Te.ubm&&(oe=hn(oe));const D=new Te.PPD;return D.setFromProjectionMatrix(oe),D.corners=new Float32Array([1,1,1,1,1,-1,1,-1,1,1,-1,-1,-1,1,1,-1,1,-1,-1,-1,1,-1,-1,-1,0,0,0]),D.test=new Te.Pq0(0,0,0),D.CheckShape=function(O,ie){const _e=this.test,Oe=this.corners.length,$e=this.corners;for(let et=0;et5},D}function cn(oe,D){oe||(oe={material_kind:"lambert"});const O=Object.assign({},D);let ie;return void 0===O.opacity&&(O.opacity=1),oe.transparency&&(O.opacity=Math.min(1-oe.transparency,O.opacity)),O.wireframe=oe.wireframe??!1,O.color||(O.color="red"),O.side=Te.hB5,O.transparent=O.opacity<1,O.depthWrite=1===O.opactity,"basic"===oe.material_kind?ie=new Te.V9B(O):"depth"===oe.material_kind?(delete O.color,ie=new Te.CSG(O)):"toon"===oe.material_kind?ie=new Te.Df(O):"matcap"===oe.material_kind?(delete O.wireframe,ie=new Te.FNr(O)):"standard"===oe.material_kind?(O.metalness=oe.metalness??.5,O.roughness=oe.roughness??.1,ie=new Te._4j(O)):"normal"===oe.material_kind?(delete O.color,ie=new Te.qBx(O)):"physical"===oe.material_kind?(O.metalness=oe.metalness??.5,O.roughness=oe.roughness??.1,O.reflectivity=oe.reflectivity??.5,O.emissive=O.color,ie=new Te.uSd(O)):"phong"===oe.material_kind?(O.shininess=oe.shininess??.9,ie=new Te.tXL(O)):(O.vertexColors=!1,ie=new Te.G_z(O)),void 0!==ie.flatShading&&void 0!==oe.flatShading&&(ie.flatShading=oe.flatShading),ie.inherentOpacity=D.opacity??1,ie.inherentArgs=D,ie}function In(oe,D){if(oe===D)return 0;const O=oe?.length??0,ie=D?.length??0,_e=OD[Oe])return 1;++Oe}return Oie?1:0}function ci(oe,D){if(!oe||!D)return!1;if(oe===D)return!0;if(oe.length!==D.length)return!1;for(let O=0;Othis.maxdepth&&(this.maxdepth=O);let _e=null;if(_e=ie===ue?D.fVolume?.fNodes?.arr||null:D.fElements?.arr||null,null!==_e){St(D,_e);for(let $e=0;$e<_e.length;++$e)this.createClones(_e[$e],O+1,ie)}if(O>1)return;this.nodes=[];const Oe=[];for(let $e=0;$eet.vol-$e.vol),this.sortmap=new Array(this.nodes.length);for(let $e=0;$e0),lt(et.fVolume,X.kVisDaughters,!0),lt(et,X.kVisDaughters,!0))):($e.vis=!Ge(et.fVolume,X.kVisNone)&&Ge(et.fVolume,X.kVisThis)?99:0,(!Ge(et,X.kVisDaughters)||!Ge(et.fVolume,X.kVisDaughters))&&($e.nochlds=!0),$e.vis>0&&$e.chlds&&!$e.nochlds&&($e.vis=1),0===Oe&&(ie&&($e.vis=0),delete $e.nochlds))):($e.vis=et.fRnrSelf?99:0,0===Oe&&1===this.nodes.length&&($e.vis=99),this.vislevel=9999),($e.vol<=0||$e.nfaces<=0)&&($e.vis=0),$e.vis&&_e++}return _e}produceIdShifts(){for(let O=0;O0)return void(ie||this.fVisibility.splice(_e,0,{visible:O,stack:D}))}ie||this.fVisibility.push({visible:O,stack:D})}}else delete this.fVisibility}getPhysNodeVisibility(D){if(!D||!this.fVisibility)return null;for(let O=0;O0)return null}return null}scanVisible(D,O){if(!this.nodes)return 0;void 0===O&&(D||(D={}),(O=D.vislvl||this.vislevel||4)>88&&(O=88),D.stack=new Array(100),D.nodeid=0,D.counter=0,D.last=0,D.copyStack=function(et){const it={nodeid:this.nodeid,seqid:this.counter,stack:new Array(this.last)};et&&(it.factor=et);for(let _t=0;_t0?D.matrices[D.last-1]:new Te.kn4;ie.matrix?(D.matrices[D.last]=D.mpool[D.last].fromArray(et.elements),D.matrices[D.last].multiply(D.mpool[D.last+1].fromArray(ie.matrix))):D.matrices[D.last]=et}let Oe=ie.vis,$e=ie.nochlds;if(D.testPhysVis){const et=D.testPhysVis();void 0!==et&&(Oe=et&&!ie.chlds?O+1:0,$e=!et)}if($e&&(O=0),Oe>O&&(!D.func||D.func(ie))&&_e++,D.counter++,O>0&&ie.chlds){D.last++;for(let et=0;et1&&1===$e.fLineColor?et.fillcolor=O[$e.fFillColor]:$e.fLineColor>=0&&(et.fillcolor=O[$e.fLineColor]);const _t=$e.fMedium?.fMaterial;if(_t){const sn=_t.fFillStyle;let tn=sn>=3e3&&sn<=3100?sn-3e3:0;if(this.use_dflt_colors){const xn=Math.round(_t.fZ);et.fillcolor=O[this.dflt_table[xn]],_t.fDensity<.1&&(tn=60)}tn>0&&(it=(100-tn)/100),void 0===et.fillcolor&&(et.fillcolor=O[_t.fFillColor])}void 0===et.fillcolor&&(et.fillcolor="lightgrey"),et.material=cn(this._cfg,{opacity:it,color:et.fillcolor})}return et}createObject3D(D,O,ie){let _e=this.nodes[0],Oe=O,$e=0;const et=(0,x.isObject)(ie)||"force"===ie;for(let it=0;it<=D.length;++it){const _t=it>0?D[it-1]:0,sn=it>0?this.nodes[_e.chlds[_t]]:_e;if(!sn)return console.error(`Wrong stack ${JSON.stringify(D)} for nodes at level ${it}, node.id ${_e.id}, numnodes ${this.nodes.length}, nchld ${_t}, numchilds ${_e.chlds.length}, chldid ${_e.chlds[_t]}`),null;let tn;if(_e=sn,Oe.children)for(let xn=0;xn-.9?new Te.eaF(_e.geom,$e.material):function bi(oe,D){void 0===oe.geomZ&&(oe.geomZ=Si(oe.geom));const O=new Te.eaF(oe.geomZ,D);return O.scale.copy(new Te.Pq0(1,1,-1)),O.updateMatrix(),O._flippedMesh=!0,O}(_e,$e.material),et.add(_t),et.absMatrix&&(_t.matrix.copy(et.absMatrix),_t.matrix.decompose(_t.position,_t.quaternion,_t.scale),_t.updateMatrixWorld()),_t.stack=ie.stack,_t.renderOrder=this.maxdepth-ie.stack.length,_t.$jsroot_order=et.$jsroot_depth,void 0!==D.info?.num_meshes&&(D.info.num_meshes++,D.info.num_faces+=_e.nfaces),_t}createInstancedMeshes(D,O,ie,_e,Oe){if(D.instancing<0)return!1;const $e=[];let et=1;for(let _t=0;_twn.nodeid===sn.nodeid);xn?(xn.entries.push(sn),et=Math.max(et,xn.entries.length)):tn.instances.push({nodeid:sn.nodeid,entries:[sn]})}return(D.instancing>0?et>2:ie.length>1e4&&et>10)?($e.forEach(_t=>{_t.used=!0,_t.instances.forEach(sn=>{const tn=sn.entries[0],xn=this.getDrawEntryProperties(tn,Oe);if(xn.material.wireframe=D.wireframe,xn.material.side=D.doubleside?Te.$EB:Te.hB5,1===sn.entries.length)this.createEntryMesh(D,O,tn,_t,Oe);else{const wn=[],Ut=[],qe=[],nt=[];if(sn.entries.forEach(at=>{const ht=this.resolveStack(at.stack,!0);ht.matrix.determinant()>-.9?(wn.push(ht.matrix),qe.push(at.stack)):(Ut.push(ht.matrix),nt.push(at.stack)),at.done=!0}),wn.length>0){const at=new Te.ZLX(_t.geom,xn.material,wn.length);at.stacks=qe,wn.forEach((ht,Qt)=>at.setMatrixAt(Qt,ht)),O.add(at),at.renderOrder=1,at.$jsroot_order=1,D.info.num_meshes++,D.info.num_faces+=_t.nfaces*wn.length}if(Ut.length>0){void 0===_t.geomZ&&(_t.geomZ=Si(_t.geom));const at=new Te.ZLX(_t.geomZ,xn.material,Ut.length);at.stacks=nt;const ht=(new Te.kn4).makeScale(1,1,-1);Ut.forEach((Qt,vn)=>{at.setMatrixAt(vn,Qt.multiply(ht))}),at._flippedMesh=!0,O.add(at),at.renderOrder=1,at.$jsroot_order=1,D.info.num_meshes++,D.info.num_faces+=_t.nfaces*Ut.length}}}),delete _t.instances}),!0):($e.forEach(_t=>{delete _t.instances}),!1)}getVolumeBoundary(D,O,ie){const _e={min:0,max:1,sortidcut:0};if(!this.sortmap)return console.error("sorting map do not exist"),_e;let Oe,$e,et=0,it=0;for(let _t=0;_t0)for(;_e>Oe&&ie.vislvl>1;)ie.vislvl--,ie.reset(),_e=this.scanVisible(ie);this.actual_level=ie.vislvl;let $e=0,et=0,it=-1,_t=10,sn=this.nodes.length+1;if(console.log(`Total visible nodes ${_e} numfaces ${ie.facecnt}`),ie.facecnt>D){const wn=this.getVolumeBoundary(ie.viscnt,D*(O?.8:1),Oe*(O?.8:1));if($e=wn.min,et=wn.max,sn=wn.sortidcut,O){ie.domatrix=!0,ie.frustum=O,ie.totalcam=0,ie.func=function(Ut){return Ut.vol<=$e&&this.frustum.CheckShape(this.getmatrix(),Ut)&&(this.viscnt[Ut.id]++,this.totalcam+=Ut.nfaces),!0};for(let Ut=0;Ut.2*D?this.getVolumeBoundary(ie.viscnt,.2*D,.2*Oe).min:0,_t=et/(it>0?it>0:$e)}}return ie.items=[],ie.func=function(tn){return tn.sortid=0&&tn.vol>it&&this.frustum.CheckShape(this.getmatrix(),tn)&&this.items.push(this.copyStack(_t)),!0},this.scanVisible(ie),{lst:ie.items,complete:0===$e}}mergeVisibles(D,O){let ie=0;const _e=[];for(let Oe=0;Oe_e.shape.factor&&(_e.shape.factor=_e.factor))}O.sort((ie,_e)=>_e.vol*_e.factor-ie.vol*ie.factor);for(let ie=0;ie=O)$e.done=!0;else if(_e>.01*D.length&&void 0!==ie&&(new Date).getTime()-Oe>ie)return $e}return $e.done=!0,$e}static formatServerElement(D){D.kind=2,D.vis=2;const O=D.matr;if(delete D.matr,!O?.length)return D;if(16===O.length)D.matrix=O;else{const ie=D.matrix=new Array(16);ie.fill(0),ie[0]=ie[5]=ie[10]=ie[15]=1,3===O.length?(ie[12]=O[0],ie[13]=O[1],ie[14]=O[2]):4===O.length?(ie[0]=O[0],ie[5]=O[1],ie[10]=O[2],ie[15]=O[3]):9===O.length?(ie[0]=O[0],ie[4]=O[1],ie[8]=O[2],ie[1]=O[3],ie[5]=O[4],ie[9]=O[5],ie[2]=O[6],ie[6]=O[7],ie[10]=O[8]):console.error(`wrong number of elements ${O.length} in the matrix`)}return D}}function Si(oe){let D=oe.getAttribute("position").array,O=oe.getAttribute("normal").array;const ie=oe.getIndex();if(ie){const it=ie.array,_t=oe.drawRange.start;let sn=oe.drawRange.count;_t+sn>it.length&&(sn=it.length-_t);const tn=new Float32Array(3*sn),xn=new Float32Array(3*sn);for(let wn=0;wn=D.length)&&console.log(`strange index ${3*Ut} totallen = ${D.length}`),tn[3*wn]=D[3*Ut],tn[3*wn+1]=D[3*Ut+1],tn[3*wn+2]=D[3*Ut+2],xn[3*wn]=O[3*Ut],xn[3*wn+1]=O[3*Ut+1],xn[3*wn+2]=O[3*Ut+2]}D=tn,O=xn}const _e=D.length,Oe=new Float32Array(_e),$e=new Float32Array(_e);for(let it=0,_t=0;it<_e;it+=3)Oe[it]=D[it+_t],Oe[it+1]=D[it+1+_t],Oe[it+2]=-D[it+2+_t],$e[it]=O[it+_t],$e[it+1]=O[it+1+_t],$e[it+2]=-O[it+2+_t],_t+=3,6===_t&&(_t=-3);const et=new Te.LoY;return et.setAttribute("position",new Te.THS(Oe,3)),et.setAttribute("normal",new Te.THS($e,3)),et}function Jn(oe,D,O){if(!oe?.geometry)return D;if(D||(D=(new Te.NRn).makeEmpty()),oe.isInstancedMesh){const Oe=new Te.kn4,$e=(new Te.NRn).makeEmpty();oe.geometry.computeBoundingBox();for(let et=0;et{sn.renderOrder=sn.defaultOrder||0,sn.material&&(sn.material.depthWrite=!0)})}function $e(_t,sn,tn){if(_t.children)for(let xn=0;xn<_t.children.length;++xn){const wn=_t.children[xn];wn.$jsroot_order===sn?wn.material&&(wn.material.transparent?(wn.material.depthWrite=!1,tn.push(wn)):Oe(wn)):(void 0===_t.$jsroot_depth||_t.$jsroot_depth1e3){for(let Ut=0;Ut<_t.length;++Ut)_t[Ut].renderOrder=(sn+tn)/2;return!1}const xn=new Te.Pq0;for(let Ut=0;Ut<_t.length;++Ut){const qe=_t[Ut];let nt=qe.$jsroot_box3;if(nt||(qe.$jsroot_box3=nt=Jn(qe)),"size"===O){const Qt=nt.getSize(new Te.Pq0);qe.$jsroot_distance=Qt.x*Qt.y*Qt.z;continue}if("pnt"===O){qe.$jsroot_distance=D.distanceTo(nt.getCenter(xn));continue}let at=Math.min(D.distanceTo(nt.min),D.distanceTo(nt.max));const ht=new Te.Pq0(nt.min.x,nt.min.y,nt.max.z);at=Math.min(at,D.distanceTo(ht)),ht.set(nt.min.x,nt.max.y,nt.min.z),at=Math.min(at,D.distanceTo(ht)),ht.set(nt.max.x,nt.min.y,nt.min.z),at=Math.min(at,D.distanceTo(ht)),ht.set(nt.max.x,nt.max.y,nt.min.z),at=Math.min(at,D.distanceTo(ht)),ht.set(nt.max.x,nt.min.y,nt.max.z),at=Math.min(at,D.distanceTo(ht)),ht.set(nt.min.x,nt.max.y,nt.max.z),at=Math.min(at,D.distanceTo(ht)),qe.$jsroot_distance=at}_t.sort((Ut,qe)=>Ut.$jsroot_distance-qe.$jsroot_distance);const wn=new Array(_t.length);for(let Ut=0;Ut<_t.length;++Ut)_t[Ut].$jsroot_index=Ut,wn[Ut]=_t[Ut];if("ray"===O)for(let Ut=_t.length-1;Ut>=0;--Ut){const qe=_t[Ut];let at,ht=qe.$jsroot_box3.getCenter(xn);for(let Qt=0;Qt<2;++Qt){ht.sub(D).normalize(),_e.set(D,ht),at=_e.intersectObjects(_t,!1)||[];const vn=[];for(let jt=0;jt0&&console.log(`MISS ${ie?.resolveStack(qe.stack)?.name}`),at.indexOf(qe)>=0||Qt>0)break;const en=qe.geometry.attributes.position.array;ht=new Te.Pq0((en[0]+en[3]+en[6])/3,(en[1]+en[4]+en[7])/3,(en[2]+en[5]+en[8])/3),ht.applyMatrix4(qe.matrixWorld)}for(let Qt=0;Qt{"use strict";Se.d(mt,{TB:()=>Ve,fm:()=>He,iF:()=>Re,rb:()=>ke.rb});var Te=Se(4882),x=Se(8872),L=Se(8362),ve=Se(2843),ke=Se(1922),ot=Se(4246);function Re(De,F){return De<.5?F?"%S.%L":"%H:%M:%S.%L":De<30?F?"%Mm%S":"%H:%M:%S":(De/=60)<30?F?"%Hh%M":"%d/%m %H:%M":(De/=60)<12?F?"%d-%Hh":"%d/%m/%y %Hh":(De/=24)<15.218425?F?"%d/%m":"%d/%m/%y":(De/=30.43685)<6?"%d/%m/%y":(De/=12)<2?F?"%m/%y":"%d/%m/%y":"%Y"}const He={initAxisPainter(){this.name="yaxis",this.kind="normal",this.func=null,this.order=0,this.full_min=0,this.full_max=1,this.scale_min=0,this.scale_max=1,this.ticks=[]},cleanupAxisPainter(){this.ticks=[],delete this.format,delete this.func,delete this.tfunc1,delete this.tfunc2,delete this.gr},assignFrameMembers(De,F){De[`gr${F}`]=this.gr,De[`log${F}`]=this.log,De[`scale_${F}min`]=this.scale_min,De[`scale_${F}max`]=this.scale_max},convertDate(De){return new Date(this.timeoffset+1e3*De)},revertPoint(De){const F=this.func.invert(De);return"time"===this.kind?(F-this.timeoffset)/1e3:F},formatTime(De,F){return F?this.tfunc1(De):this.tfunc2(De)},formatLog(De,F,J){const Y=parseFloat(De),ue=Math.round(Y);if(!F)return ue===Y&&Math.abs(ue)<1e9?ue.toString():(0,ve.lg)(Y,J||x.gStyle.fStatFormat);if(Y<=0)return null;let Q=Math.log10(Y);const me=this.logbase;return 10!==me&&(Q/=Math.log10(me)),this.moreloglabels||Math.abs(Q-Math.round(Q))<.001?this.noexp||2===F?Math.abs(me-Math.E)<.001?(0,ve.lg)(Y,J||x.gStyle.fStatFormat):Y.toFixed(Q<0?Math.round(.5-Q):0):this.formatExp(me,Math.floor(Q+.01),Y):null},formatNormal(De,F,J){let Y=parseFloat(De);if(F&&this.order&&(Y/=Math.pow(10,this.order)),x.gStyle.fStripDecimals&&Y===Math.round(Y))return Math.abs(Y)<1e9?Y.toFixed(0):Y.toExponential(4);if(F){if(this.ndig>10)return Y.toExponential(this.ndig-11);let ue=Y.toFixed(this.ndig);const Q=ue.indexOf(".");if(Q>0&&x.settings.StripAxisLabels)for(;ue.length>=Q&&("0"===ue[ue.length-1]||"."===ue[ue.length-1]);)ue=ue.slice(0,ue.length-1);return ue}return(0,ve.lg)(Y,J||x.gStyle.fStatFormat)},formatExp(De,F,J){let Y="";if(J&&0!==(J=Math.round(J/Math.pow(De,F)))&&1!==J&&(Y=J.toString()+(x.settings.Latex?"#times":"x")),Math.abs(De-Math.E)<.001?Y+="e":Y+=De.toString(),x.settings.StripAxisLabels){if(0===F)return"1";if(1===F)return Y}if(x.settings.Latex>x.constants.Latex.Symbols)return Y+`^{${F}}`;const ue={0:"\u2070",1:"\xb9",2:"\xb2",3:"\xb3",4:"\u2074",5:"\u2075",6:"\u2076",7:"\u2077",8:"\u2078",9:"\u2079","-":"\u207b"},Q=F.toString();for(let me=0;me{let Q=0,me=0;for(let $=1;$4&&J(Y);)F=Math.round(.8*F),Y=De.ticks(F);if(F<5&&J(Y)&&this.logbase&&10!==this.logbase){const ue=[];Y.forEach(Q=>{const me=Math.log10(Q)/Math.log10(this.logbase);Math.abs(Math.round(me)-me)<.01&&ue.push(Q)}),ue.length>0&&(Y=ue)}return Y},produceTicks(De,F){if(!this.noticksopt){const ue=De*(F||1);if(this.log)return this.poduceLogTicks(this.func,ue);const Q=this.func.domain(),me=$=>$.length<=ue||!($.length>ue+1)&&($[0]===Q[0]||$[ue]===Q[1]),X=this.func.ticks(ue);if(F||me(X))return X;const B=this.func.ticks(Math.round(.7*ue));return B.length>2&&me(B)?B:X}const J=this.func.domain(),Y=[];F&&(De=(De-1)*F);for(let ue=0;ue<=De;++ue)Y.push((J[0]*(De-ue)+J[1]*ue)/De);return Y},analyzeWheelEvent(De,F,J,Y){J||(J={});let ue=0,Q=1,me=1;if("dleft"in J&&(Q=J.dleft,ue=1),"dright"in J&&(me=J.dright,ue=1),J.delta?ue=J.delta:De&&(ue=De.wheelDelta?-De.wheelDelta:De.deltaY||De.detail),!ue||Y&&J.ignore)return;ue=ue<0?-.2:.2,Q*=ue,me*=ue;const X=J.min=this.scale_min,B=J.max=this.scale_max,$=this.full_min,g=this.full_max;if(J.min===J.max&&ue<0&&(J.min=$,J.max=g),!(J.min>=J.max)){if(J.reverse&&(F=1-F),F>0&&F<1){if(this.log){let E=J.min>0?Math.log10(J.max/J.min):2;E>10?E=10:E<.01&&(E=.01),J.min=J.min/Math.pow(10,E*Q*F),J.max=J.max*Math.pow(10,E*me*(1-F))}else if(Q!==-me||J.reverse){let E=J.max-J.min,_=E;Q>0&&(E=1.001*E/(1-Q)),J.min+=-Q*F*E,me>0&&(_=1.001*_/(1-me)),J.max-=-me*(1-F)*_}else{let E=(J.max-J.min)*me*F;Math.round(J.max)===J.max&&Math.round(J.min)===J.min&&Math.abs(E)>1&&(E=Math.round(E)),J.min+E<$?E=$-J.min:J.max+E>g&&(E=g-J.max),0!==E?(J.min+=E,J.max+=E):(delete J.min,delete J.max)}J.min>=J.max?J.min=J.max=void 0:Q!==me?(J.min<$&&X===$||J.max>g&&B===g)&&(J.min=J.max=void 0):(J.min<$&&(J.min=$),J.max>g&&(J.max=g))}else J.min=J.max=void 0;return J.changed=void 0!==J.min&&void 0!==J.max,J}}};class Ve extends ke.JW{constructor(F,J,Y){super(F,J),this.is_gaxis=J?._typename===x.clTGaxis,Object.assign(this,He),this.initAxisPainter(),this.embedded=Y,this.invert_side=!1,this.lbls_both_sides=!1}cleanup(){this.cleanupAxisPainter(),super.cleanup()}getAxisType(){return x.clTAxis}configureAxis(F,J,Y,ue,Q,me,X,B){this.name=F,this.full_min=J,this.full_max=Y,this.kind="normal",this.vertical=me,this.log=B.log||0,this.noexp_changed=B.noexp_changed,this.symlog=B.symlog||!1,this.reverse=B.reverse||!1,this.swap_side=B.swap_side||!1,this.fixed_ticks=B.fixed_ticks||null,this.maxTickSize=B.maxTickSize||0;const $=this.getObject();if(B.time_scale||$.fTimeDisplay?(this.kind="time",this.timeoffset=function Ye(De){if(!De)return 7889184e5;const J=De.fTimeFormat.indexOf("%F");if(J<0)return 1e3*x.gStyle.fTimeOffset;let Y=De.fTimeFormat.slice(J+2);if(0===Y.indexOf("1995-01-01 00:00:00s0"))return 7889184e5;if("0"===Y||""===Y)return 0;const ue=(p,C,I)=>{const U=Y.indexOf(p);if(U<0)return C;const k=parseInt(Y.slice(0,U));return Y=Y.slice(U+1),!Number.isInteger(k)||kI?C:k},Q=ue("-",1900,2900),me=ue("-",1,12)-1,X=ue(" ",1,31),B=ue(":",0,23),$=ue(":",0,59),g=ue("s",0,59),E=ue(" ",0,999);let v=new Date(Date.UTC(Q,me,X,B,$,g,E)).getTime();if(Y=Y.toUpperCase(),0===Y.indexOf("GMT")&&(Y=Y.slice(4).trim(),Y.length>3)){let p=0,C=1e3;"-"===Y[0]&&(p=1,C=-1e3),v-=C*(3600*parseInt(Y.slice(p,p+2))+60*parseInt(Y.slice(p+2,p+4)))}return v}($),this.timegmt=function Ze(De){const F=De?.fTimeFormat??"";return F.indexOf("gmt")>0||F.indexOf("GMT")>0}($)):this.kind=B.axis_func?"func":$.fLabels?"labels":"normal","time"===this.kind)this.func=(0,L.w7)().domain([this.convertDate(ue),this.convertDate(Q)]);else if(this.log){if(this.logbase=1===this.log||10===this.log?10:3===this.log?Math.E:Math.round(this.log),Q<=0&&(Q=1),ue<=0&&$&&!B.logcheckmin)for(let _=0;_<$.fNbins&&!((ue=Math.max(ue,$.GetBinLowEdge(_+1)))>0);++_);ue<=0&&B.log_min_nz&&(ue=this.log_min_nz=B.log_min_nz),(ue<=0||ue>=Q)&&(ue=Q*(B.logminfactor||1e-4)),this.func="func"===this.kind?this.createFuncHandle(B.axis_func,this.logbase,ue,Q):(0,L.ZE)().base(this.logbase).domain([ue,Q])}else if(this.symlog){let _=Math.max(Math.abs(ue),Math.abs(Q));Number.isInteger(this.symlog)&&this.symlog>0?_*=Math.pow(10,-1*this.symlog):_*=.01,this.func=(0,L.aX)().constant(_).domain([ue,Q])}else this.func="func"===this.kind?this.createFuncHandle(B.axis_func,0,ue,Q):(0,L.m4)().domain([ue,Q]);if(this.vertical^this.reverse){const _=X[0];X[0]=X[1],X[1]=_}this.func.range(X),this.scale_min=ue,this.scale_max=Q,this.gr="time"===this.kind?_=>this.func(this.convertDate(_)):this.log?_=>_20&&(this.nticks=20);let E=Math.abs(this.func.range()[1]-this.func.range()[0]);if(E<=0&&(E=100),"time"===this.kind){this.nticks>8&&(this.nticks=8);const _=this.scale_max-this.scale_min,v=$.fTimeFormat.indexOf("%F"),p=Re(_/E,!1);let C=v>=0?$.fTimeFormat.slice(0,v):$.fTimeFormat;(!C||_<.1*(this.full_max-this.full_min))&&(C=Re(_/this.nticks,!0)),this.tfunc1=this.tfunc2=this.timegmt?(0,L.aL)(C):(0,L.DC)(C),p!==C&&(this.tfunc2=this.timegmt?(0,L.aL)(p):(0,L.DC)(p)),this.format=this.formatTime}else if(this.log)this.nticks2>1&&(this.nticks*=this.nticks2,this.nticks2=1),this.noexp=$?.TestBit(ke.rb.kNoExponent),this.scale_max<300&&this.scale_min>.3&&!this.noexp_changed&&(this.noexp=!0),this.moreloglabels=$?.TestBit(ke.rb.kMoreLogLabels),this.format=this.formatLog;else if("labels"===this.kind){this.nticks=50;const _=this.scale_max-this.scale_min;this.nticks>_&&(this.nticks=Math.round(_)),this.regular_labels=!0,$&&$.fNbins&&$.fLabels&&($.fNbins!==Math.round($.fXmax-$.fXmin)||0!==$.fXmin||$.fXmax!==$.fNbins)&&(this.regular_labels=!1),this.nticks2=1,this.format=this.formatLabels}else this.order=0,this.ndig=0,this.format=this.formatNormal}getScaleMin(){return this.func?.domain()[0]??0}getScaleMax(){return this.func?.domain()[1]??0}formatLabels(F){const J=this.getObject();let Y=parseFloat(F);if(Y=this.regular_labels?Math.floor(Y):Math.round((Y-J.fXmin)/(J.fXmax-J.fXmin)*J.fNbins),Y<0||Y>=J.fNbins)return null;for(let ue=0;ue{X>=this.scale_min&&X<=this.scale_max&&me.push(X)});else if("labels"!==this.kind||this.regular_labels)me=this.produceTicks(this.nticks);else{me=[],Q.lbl_pos=[];const X=this.getObject();for(let B=0;B=this.scale_min&&$this.scale_min&&me.push($))}}if(Q.minor=Q.middle=Q.major=me,F){const X=Q.major,B=1e-5*(this.scale_max-this.scale_min);return X[0]>this.scale_min+B&&X.unshift(this.scale_min),X[X.length-1]1&&(!this.log||10===this.logbase)&&!this.fixed_ticks){Q.minor=Q.middle=this.produceTicks(Q.major.length,this.nticks2);const X=Math.abs(this.func.range()[1]-this.func.range()[0]);Q.middle.length<=Q.major.length||Q.middle.length>X/3.5?Q.minor=Q.middle=Q.major:this.nticks3>1&&!this.log&&(Q.minor=this.produceTicks(Q.middle.length,this.nticks3),(Q.minor.length<=Q.middle.length||Q.minor.length>X/1.7)&&(Q.minor=Q.middle))}if(Q.reset=function(){this.nminor=this.nmiddle=this.nmajor=0},Q.next=function(X){return!(this.nminor>=this.minor.length||(this.tick=this.minor[this.nminor++],this.grpos=this.func(this.tick),X&&(this.grpos=Math.round(this.grpos)),this.kind=3,this.nmiddle=this.major.length?null:this.func(this.major[this.nmajor])},Q.get_modifier=function(){return this.painter.findLabelModifier(this.painter.getObject(),this.nmajor-1,this.major)},this.order=0,this.ndig=0,("normal"===this.kind||"func"===this.kind)&&!this.log&&Q.major.length>0){let X=0,B=0,$=!1;if(!J){const v=Math.max(Math.abs(Q.major[0]),Math.abs(Q.major[Q.major.length-1])),p=Math.min(Math.abs(Q.major[0]),Math.abs(Q.major[Q.major.length-1])),C=v>0?3*Math.round(Math.log10(v)/3):0,I=p>0?3*Math.round(Math.log10(p)/3):0;$=v<2e4,(v||p)&&(X=Math.max(C,I)+3,B=Math.min(C,I)-3)}let g=0,E=this.ndig,_=1e10;for(let v=B;v<=X;v+=3){if($&&3===v)continue;this.order=v,this.ndig=0;let p=[],C=0,I=0;for(;Cx.gStyle.fAxisMaxDigits||k<0&&U.length>x.gStyle.fAxisMaxDigits)&&(I+=1e10,$=!1),I+=U.length,C++}else{if(++this.ndig>15)break;p=[],C=0,I=0}}!v&&this.ndig<4&&(I-=2*Q.major.length+3),I<_&&(_=I,g=this.order,E=this.ndig)}this.order=g,this.ndig=E,ue&&(this.order&&console.warn(`Axis painter - integer labels are configured, but axis order ${this.order} is preferable`),this.ndig&&console.warn(`Axis painter - integer labels are configured, but ${this.ndig} decimal digits are required`),this.ndig=0,this.order=0)}return Q}isCenteredLabels(){return"labels"===this.kind||!this.log&&this.getObject()?.TestBit(ke.rb.kCenterLabels)}addTitleDrag(F,J,Y,ue,Q){if(!x.settings.MoveResize||this.isBatchMode())return;let X,B,$,g,E,_,v,me=null;const p=(0,L.$E)().subject(Object);p.on("start",C=>{C.sourceEvent.preventDefault(),C.sourceEvent.stopPropagation();const I=F.node().getBBox(),U=J?I.height:I.width;$=X=F.property("shift_x"),g=B=F.property("shift_y"),E=J?X>0:B>0,_=J?[Q,Q/2,0]:[0,Q/2,Q];const k=J?-U/2:U/2;"middle"===this.title_align?(_[0]+=k,_[2]-=k):"begin"===this.title_align?(_[1]-=k,_[2]-=2*k):(_[0]+=2*k,_[1]+=k),v=this.titleCenter?1:ue^this.titleOpposite?0:2,_[v]=J?B:X,me=F.append("rect").attr("x",I.x).attr("y",I.y).attr("width",I.width).attr("height",I.height).style("cursor","move").call(ve.Ru,!0)}).on("drag",C=>{if(!me)return;C.sourceEvent.preventDefault(),C.sourceEvent.stopPropagation(),X+=C.dx,B+=C.dy;let I,U,k=0;const Z=J?B:X;for(let ee=1;ee<3;++ee)Math.abs(Z-_[ee])0:U>0)&&($=I,g=U,v=k,(0,ve.bk)(F,$,g))}).on("end",C=>{if(!me)return;C.sourceEvent.preventDefault(),C.sourceEvent.stopPropagation(),F.property("shift_x",$).property("shift_y",g);const I=this.getObject(),U=this.source_axis,k=(ee,he)=>{I&&I.TestBit(ee)!==he&&I.InvertBit(ee),U&&U.TestBit(ee)!==he&&U.InvertBit(ee)};this.titleOffset=(J?$:g)/Y;const Z=this.titleOffset/this.offsetScaling/this.titleSize;I&&(I.fTitleOffset=Z),U&&(U.fTitleOffset=Z),1===v?(k(ke.rb.kCenterTitle,!0),this.titleCenter=!0,k(ke.rb.kOppositeTitle,!1),this.titleOpposite=!1):0===v?(k(ke.rb.kCenterTitle,!1),this.titleCenter=!1,k(ke.rb.kOppositeTitle,!0),this.titleOpposite=!0):(k(ke.rb.kCenterTitle,!1),this.titleCenter=!1,k(ke.rb.kOppositeTitle,!1),this.titleOpposite=!1),this.submitAxisExec(`SetTitleOffset(${Z});;SetBit(${ke.rb.kCenterTitle},${this.titleCenter?1:0})`),me.remove(),me=null}),F.style("cursor","move").call(p)}setHistPainter(F,J){this.hist_painter=F,this.hist_axis=J}submitAxisExec(F,J){const Y=this.hist_painter?.snapid;Y&&this.hist_axis&&!J?this.submitCanvExec(F,`${Y}#${this.hist_axis}`):this.is_gaxis&&this.submitCanvExec(F)}produceTicksPath(F,J,Y,ue,Q,me){let X="",B="";for(this.ticks=[];F.next(!0);){let $=Math.round(Y/4),g=0;F.kind<3&&($=Math.round(Y/2)),1===F.kind&&(null!==this.format(F.tick,!0)&&($=Y),this.ticks.push(F.grpos)),ue>0?g=-$:J<0&&(g=-$,$=0),X+=this.vertical?`M${$},${F.grpos}H${g}`:`M${F.grpos},${-$}V${-g}`,Q&&(B+=this.vertical?`M${Q-$},${F.grpos}H${Q-g}`:`M${F.grpos},${Q+$}V${Q+g}`)}return me?X+B:""}findLabelModifier(F,J,Y){if(!F.fModLabs)return null;for(let ue=0;ue20&&fe>E-B&&(Z=Math.min(Z,(E-B)/fe));Z>1e-4&&Z<.7&&!b&&!W.vertical&&!C&&ee>5&&1===I.length&&!1===V&&(V=!0);let we=Z;V&&(T&&P?(we=Math.min(1,.8*T/P),we1e-4&&we<1||!1!==V)&&(he=1/we,W.scaleTextDrawing(he,I[0]))}v.lbls_both_sides&&I.push(F.append("svg:g").attr("class","axis_labels").attr("transform",v.vertical?`translate(${Y})`:`translate(0,${-ue})`)),_>0&&(T=_/Math.sin(k/180*Math.PI)-Math.tan(k/180*Math.PI));for(let W=0;W0&&(me=-me);let fe=0;const we=v.vertical?-B*me:B*me+g*$;v.startTextDrawing(X,"font",I[W]);for(let Me=0;Me0&&(lt.color=v.getColor(Ge.fTextColor)),lt.gap_before=Me>0?Math.abs(Math.round(bt-v.func(U[Me-1]))):0,lt.gap_after=Me(v.vertical?ue:Y)+5)continue}if(ee=Math.max(ee,je.length),v.vertical?(lt.x=we,lt.y=bt,lt.align=C?me<0?23:20:me<0?12:32):(lt.x=bt,lt.y=we,lt.align=C?me<0?12:32:me<0?20:23,!v.log||v.noexp||v.vertical||23!==lt.align?lt.align%10==3&&(lt.y-=.1*X.size):(lt.align=21,lt.y+=X.size)),C?lt.rotate=270:Ge&&-1!==Ge.fTextAngle&&(lt.rotate=-Ge.fTextAngle),0===W&&(lt.post_process=z),v.drawText(lt),fe&&bt!==fe&&(v.vertical&&!C||!v.vertical&&C)){const te=Math.abs(bt-fe);Z=Math.min(Z,.9*te/X.size)}fe=bt}if(v.order){let Me=0,je=0;"xaxis"===v.name?(Me=x.gStyle.fXAxisExpXOffset||0,je=x.gStyle.fXAxisExpYOffset||0):"yaxis"===v.name&&(Me=x.gStyle.fYAxisExpXOffset||0,je=x.gStyle.fYAxisExpYOffset||0),Me&&(Me=Math.round(Me*(v.getPadPainter()?.getPadWidth()??0))),je&&(je=Math.round(je*(v.getPadPainter()?.getPadHeight()??0))),v.drawText({color:X.color,x:Me+(v.vertical?5*me:Y+5),y:je+(v.has_obstacle?we:v.vertical?-3:-3*me),align:v.vertical?me<0?30:10:v.has_obstacle^me<0?13:10,latex:1,text:"#times"+v.formatExp(10,v.order),draw_g:I[W]})}}return v.finishTextDrawing(I[0],!0).then(()=>{if(I.length>1)return he&&v.scaleTextDrawing(he,I[1]),v.finishTextDrawing(I[1],!0)}).then(()=>(V&&I[0].selectAll("text").each(function(){const W=(0,L.Lt)(this),fe=W.attr("transform");W.attr("transform",`${fe} rotate(${k})`).style("text-anchor","start")}),P))})()}extractDrawAttributes(F,J,Y){const ue=this.getObject(),Q=this.getPadPainter(),me=Q?.getPadWidth()||F||J/.8,X=Q?.getPadHeight()||F||Y/.8;let g,E,_,B=0,$=0;if(this.scalingSize=F||Math.max(Math.min(me,X),10),this.is_gaxis){const p=ue.fChopt.indexOf("S")>=0;this.optionUnlab=ue.fChopt.indexOf("U")>=0,this.optionMinus=ue.fChopt.indexOf("-")>=0||ue.TestBit(ke.rb.kTickMinus),this.optionPlus=ue.fChopt.indexOf("+")>=0||ue.TestBit(ke.rb.kTickPlus),this.optionNoopt=ue.fChopt.indexOf("N")>=0,this.optionInt=ue.fChopt.indexOf("I")>=0,this.optionText=ue.fChopt.indexOf("T")>=0,this.createAttLine({attr:ue}),$=F||(this.vertical?1.7*Y:.6*J),B=p?ue.fTickSize:.03,g=this.getColor(ue.fTextColor),E=ue.fTextFont,_=ue.fLabelOffset,(this.vertical&&ue.fY1>ue.fY2&&!this.optionMinus||!this.vertical&&ue.fX1>ue.fX2)&&(_=-_)}else this.optionUnlab=!1,this.optionMinus=this.vertical^this.invert_side,this.optionPlus=!this.optionMinus,this.optionNoopt=!1,this.optionInt=!1,this.optionText=!1,this.createAttLine({color:ue.fAxisColor,width:1,style:1}),$=F||(this.vertical?me:X),B=ue.fTickLength,g=this.getColor(ue.fTitleColor),E=ue.fTitleFont,_=ue.fLabelOffset;_+=this.vertical?.002:.005,"labels"===this.kind&&(this.optionText=!0),this.optionNoexp=ue.TestBit(ke.rb.kNoExponent),this.ticksSize=Math.round(B*$),F&&this.ticksSize<0&&(this.ticksSize=-this.ticksSize),this.maxTickSize&&this.ticksSize>this.maxTickSize&&(this.ticksSize=this.maxTickSize),this.ticksColor=this.lineatt.color,this.ticksWidth=this.lineatt.width;const v=this.optionText?.66666:1;this.labelSize=Math.round(ue.fLabelSize<1?v*ue.fLabelSize*this.scalingSize:v*ue.fLabelSize),this.labelsOffset=Math.round(_*this.scalingSize),this.labelsFont=new ot.qg(ue.fLabelFont,this.labelSize,F),(this.labelSize<=0||Math.abs(ue.fLabelOffset)>1.1)&&(this.optionUnlab=!0),this.labelsFont.setColor(this.getColor(ue.fLabelColor)),this.fTitle=ue.fTitle,this.fTitle?(this.titleSize=ue.fTitleSize>=1?ue.fTitleSize:Math.round(ue.fTitleSize*this.scalingSize),this.titleFont=new ot.qg(E,this.titleSize,F),this.titleFont.setColor(g),this.offsetScaling=ue.fTitleSize>=1?1:(this.vertical?me:X)/this.scalingSize,this.titleOffset=ue.fTitleOffset,!this.titleOffset&&"x"===this.name[0]&&(this.titleOffset=x.gStyle.fXaxis.fTitleOffset),this.titleOffset*=this.titleSize*this.offsetScaling,this.titleCenter=ue.TestBit(ke.rb.kCenterTitle),this.titleOpposite=ue.TestBit(ke.rb.kOppositeTitle)):(delete this.titleSize,delete this.titleFont,delete this.offsetScaling,delete this.titleOffset,delete this.titleCenter,delete this.titleOpposite)}drawAxis(F,J,Y,ue,Q,me,X,B,$){var g=this;return(0,Te.A)(function*(){const E=g.getObject(),_=g.swap_side||!1;let v=F,p=!0;Q?g.invert_side&&(Q=-Q):Q=0,g.extractDrawAttributes(void 0,J,Y),g.is_gaxis&&(p=0!==E.fLineColor),g.lineatt.not_standard=!0,(!g.is_gaxis||"zaxis"===g.name)&&(v=F.selectChild(`.${g.name}_container`),v.empty()?v=F.append("svg:g").attr("class",`${g.name}_container`):v.selectAll("*").remove());let C="";p&&(C="M0,0"+(g.vertical?`v${Y}`:`h${J}`),Q&&(C+=g.vertical?`M${Q},0v${Y}`:`M0,${Q}h${J}`)),v.attr("transform",ue);let I=1,U=0;g.optionPlus&&g.optionMinus?(I=1,U=1):g.optionMinus?I=_^g.vertical?1:-1:g.optionPlus&&(I=_^g.vertical?-1:1);const k=g.createTicks(!1,g.optionNoexp,g.optionNoopt,g.optionInt);C+=g.produceTicksPath(k,I,g.ticksSize,U,Q,p&&!me&&!g.disable_ticks),!me&&C&&!g.lineatt.empty()&&v.append("svg:path").attr("d",C).call(g.lineatt.func);let Z=0,ee=0,he=null,V=0;return(me||g.optionUnlab?Promise.resolve(0):g.drawLabels(v,E,J,Y,k,I,g.labelsFont,g.labelsOffset,g.ticksSize,U,X,$)).then(P=>{if(V=P,x.settings.Zooming&&!g.disable_zooming&&!g.isBatchMode()){const we=Math.max(g.labelsFont.size,5),Me=v.append("svg:rect").attr("class","axis_zoom").style("opacity","0").style("cursor","crosshair");if(g.vertical){const je=(V||2*we)+3;Me.attr("x",I>0?-je:0).attr("y",0).attr("width",je).attr("height",Y)}else Me.attr("x",0).attr("y",I>0?0:-we-3).attr("width",J).attr("height",we+3)}if(g.position=0,B){const we=v.node(),Me=g.getPadSvg().node();if(we&&Me&&we.getBoundingClientRect&&Me.getBoundingClientRect){const je=we.getBoundingClientRect(),Ge=Me.getBoundingClientRect();g.position=je.left-Ge.left}we&&!Me&&console.warn("Why PAD element missing when search for position")}if(!g.fTitle||me)return!0;he=v.append("svg:g").attr("class","axis_title");let T=I;const z=E.TestBit(ke.rb.kRotateTitle)?-1:1;g.startTextDrawing(g.titleFont,"font",he);const W=_^g.titleOpposite;return g.title_align=g.titleCenter?"middle":z<0^W?"begin":"end",g.vertical?(T*=-1.6,Z=Math.round(T*g.titleOffset),ee=Math.round(g.titleCenter?Y/2:W?Y:0),g.drawText({align:g.title_align+";middle",rotate:z<0?90:270,text:g.fTitle,color:g.titleFont.color,draw_g:he})):(T*=1.6,Z=Math.round(g.titleCenter?J/2:W?0:J),ee=Math.round(T*g.titleOffset),g.drawText({align:g.title_align+";middle",rotate:z<0?180:0,text:g.fTitle,color:g.titleFont.color,draw_g:he})),g.addTitleDrag(he,g.vertical,T,_,g.vertical?Y:J),g.finishTextDrawing(he)}).then(()=>(he&&(!g.titleOffset&&g.vertical&&V&&(Z=Math.round(-I*(V+.7*g.offsetScaling*g.titleSize))),(0,ve.bk)(he,Z,ee),he.property("shift_x",Z).property("shift_y",ee)),g))})()}}},4483:(Yr,mt,Se)=>{"use strict";Se.r(mt),Se.d(mt,{TCanvasPainter:()=>Y,TPadPainter:()=>Ze.jg,drawTFrame:()=>B,drawTPadSnapshot:()=>me,ensureTCanvas:()=>ue});var Te=Se(4882),x=Se(8872),L=Se(8362),ve=Se(5992),ke=Se(6157),ot=Se(1922),Ye=Se(5638),Ze=Se(5102);const Re=(0,x.BIT)(15),He=(0,x.BIT)(17),Ve=(0,x.BIT)(18),De=(0,x.BIT)(19),F=(0,x.BIT)(23);function J(g,E,_){const v=new Ye.nc(g,E);return v.addToPadPrimitives(),"3d"===_&&(v.mode3d=!0),v.redraw()}class Y extends Ze.jg{constructor(E,_){super(E,_,!0),this._websocket=null,this.tooltip_allowed=x.settings.Tooltip,null===E&&null===_&&(x.settings.SmallPad.width=20,x.settings.SmallPad.height=10)}cleanup(){this._changed_layout&&this.setLayoutKind("simple"),delete this._changed_layout,super.cleanup()}getLayoutKind(){const E=this.selectDom("origin");return(E.empty()?"":E.property("layout"))||"simple"}setLayoutKind(E,_){const v=this.selectDom("origin");v.empty()||(E||(E="simple"),v.property("layout",E),v.property("layout_selector","simple"!==E&&_?_:null),this._changed_layout="simple"!==E)}changeLayout(E,_){var v=this;return(0,Te.A)(function*(){if(v.getLayoutKind()===E)return!0;const C=v.selectDom("origin"),I=C.select(".side_panel2"),U=[];let ee,k=C.select(".side_panel"),Z=v.selectDom();for(;Z.node().firstChild;)U.push(Z.node().removeChild(Z.node().firstChild));if(k.empty()||(0,ot.tP)(k.node()),I.empty()||(0,ot.tP)(I.node()),v.setLayoutKind("simple"),C.html(""),"simple"===E){Z=C;for(let he=0;he(p.proj_painter[E]=ee,ee))}return(0,x.isStr)(p.proj_painter[E])?(console.log("Not ready with first painting",E),!0):(p.proj_painter[E].getMainPainter()?.updateObject(_,v),p.proj_painter[E].redrawPad())})()}testUI5(){return!!this.use_openui&&(console.warn("full ui5 should be used - not loaded yet? Please check!!"),!0)}drawInSidePanel(E,_,v){var p=this;return(0,Te.A)(function*(){const C="projxy"===p.getLayoutKind()&&"Y"===v?".side_panel2":".side_panel",I=p.selectDom("origin").select(C);return I.empty()?null:p.drawObject(I.node(),E,_)})()}showMessage(E){this.testUI5()||(0,ve.Rh)(E,7e3)}saveCanvasAsFile(E){const _=E.indexOf(".");this.createImage(E.slice(_+1)).then(v=>this.sendWebsocket(`SAVE:${E}:${v}`))}sendSaveCommand(E){this.sendWebsocket("PRODUCE:"+E)}submitMenuRequest(E,_,v){var p=this;return(0,Te.A)(function*(){return new Promise(C=>{p._getmenu_callback=C,p.sendWebsocket("GETMENU:"+v)})})()}submitExec(E,_,v){if(!this._readonly&&E&&(v||(v=E.snapid),v&&(0,x.isStr)(v)&&_))return this.sendWebsocket(`OBJEXEC:${v}:${_}`)}sendWebsocket(E){return this._websocket?.canSend()?(this._websocket.send(E),!0):(console.warn(`DROP SEND: ${E}`),!1)}closeWebsocket(E){this._websocket&&(this._websocket.close(E),this._websocket.cleanup(),delete this._websocket)}useWebsocket(E){this.closeWebsocket(),this._websocket=E,this._websocket.setReceiver(this),this._websocket.connect()}websocketTimeout(E,_){if(!this._websocket)return;this._websocket._tmouts||(this._websocket._tmouts={});const v=this._websocket._tmouts[E];if(void 0===_)return void 0!==v;"reset"===_?v&&(clearTimeout(v),delete this._websocket._tmouts[E]):!v&&Number.isInteger(_)&&(this._websocket._tmouts[E]=setTimeout(()=>{delete this._websocket._tmouts[E]},_))}onWebsocketOpened(){}onWebsocketClosed(){this.embed_canvas||(0,ve.W4)()}onWebsocketMsg(E,_){if("CLOSE"===_)this.onWebsocketClosed(),this.closeWebsocket(!0);else if("SNAP6:"===_.slice(0,6)){const v=_.indexOf(":",6),p=_.slice(6,v),C=(0,x.parse)(_.slice(v+1));this.syncDraw(!0).then(()=>{this.snapid||this.resizeBrowser(C.fSnapshot.fWindowWidth,C.fSnapshot.fWindowHeight),!this.snapid&&(0,x.isFunc)(this.setFixedCanvasSize)&&(this._online_fixed_size=this.setFixedCanvasSize(C.fSnapshot.fCw,C.fSnapshot.fCh,C.fFixedSize))}).then(()=>this.redrawPadSnap(C)).then(()=>{this.completeCanvasSnapDrawing();let I=this.getWebPadOptions();I&&(I=":"+I),E.send(`READY6:${p}${I}`),this.confirmDraw()})}else if("MENU:"===_.slice(0,5)){const v=(0,x.parse)(_.slice(5));(0,x.isFunc)(this._getmenu_callback)&&(this._getmenu_callback(v),delete this._getmenu_callback)}else if("CMD:"===_.slice(0,4)){const v=(_=_.slice(4)).indexOf(":"),p=_.slice(0,v),C=_.slice(v+1),I=`REPLY:${p}:`;"SVG"===C||"PNG"===C||"JPEG"===C?this.createImage(C.toLowerCase()).then(U=>E.send(I+U)):(console.log(`Unrecognized command ${C}`),E.send(I))}else if("DXPROJ:"===_.slice(0,7)||"DYPROJ:"===_.slice(0,7)){const v=_[1],p=(0,x.parse)(_.slice(7));this.websocketTimeout(`proj${v}`,"reset"),this.drawProjection(v,p)}else if("CTRL:"===_.slice(0,5)){const v=(0,x.parse)(_.slice(5))||{};let p=!1;if(void 0!==v.title&&typeof document<"u"&&(document.title=v.title),v.x&&v.y&&typeof window<"u"&&(window.moveTo(v.x,v.y),p=!0),v.w&&v.h&&(this.resizeBrowser(Number.parseInt(v.w),Number.parseInt(v.h)),p=!0),v.cw&&v.ch&&(0,x.isFunc)(this.setFixedCanvasSize)&&(this._online_fixed_size=this.setFixedCanvasSize(Number.parseInt(v.cw),Number.parseInt(v.ch),!0),p=!0),["Menu","StatusBar","Editor","ToolBar","ToolTips"].forEach(I=>{void 0!==v[I]&&this.showSection(I,"1"===v[I])}),v.edit){const I=this.findSnap(v.edit);I&&this.showSection("Editor",!0).then(()=>this.producePadEvent("select",I.getPadPainter(),I))}v.winstate&&typeof window<"u"&&("iconify"===v.winstate?window.blur():window.focus()),p&&this.sendResized(!0)}else console.log(`unrecognized msg ${_}`)}sendResized(E){if(!this.pad||typeof window>"u")return;const _=this.getPadWidth(),v=this.getPadHeight(),p=window.screenLeft,C=window.screenTop,I=window.outerWidth,U=window.outerHeight,k=this._online_fixed_size?1:0;E||(E=_>0&&v>0&&(this.pad.fCw!==_||this.pad.fCh!==v))&&(this.pad.fCw=_,this.pad.fCh=v),E&&this.sendWebsocket(`RESIZED:${JSON.stringify([p,C,I,U,_,v,k])}`)}clickPadButton(E,_){return"ToggleGed"===E?this.activateGed(this,null,"toggle"):"ToggleStatus"===E?this.activateStatusBar("toggle"):super.clickPadButton(E,_)}hasEventStatus(){return!this.testUI5()&&(this.brlayout?this.brlayout.hasStatus():(0,ke.gZ)()?.hasStatusLine()??!1)}canStatusBar(){return this.testUI5()||this.brlayout||(0,ke.gZ)()}activateStatusBar(E){this.testUI5()||(this.brlayout?this.brlayout.createStatusLine(23,E):(0,ke.gZ)()?.createStatusLine(23,E),this.processChanges("sbits",this))}showCanvasStatus(...E){this.testUI5()||(this.brlayout||(0,ke.gZ)()?.brlayout)?.showStatus(...E)}hasGed(){return!this.testUI5()&&(this.brlayout?.hasContent()??!1)}removeGed(){this.testUI5()||(this.registerForPadEvents(null),this.ged_view&&(this.ged_view.getController().cleanupGed(),this.ged_view.destroy(),delete this.ged_view),this.brlayout?.deleteContent(!0),this.processChanges("sbits",this))}getUi5PanelData(){return{jsroot:{settings:x.settings,create:x.create,parse:x.parse,toJSON:x.toJSON,loadScript:x.loadScript,EAxisBits:ot.rb,getColorExec:ve.pp}}}activateGed(E,_,v){var p=this;return(0,Te.A)(function*(){if(p.testUI5()||!p.brlayout)return!1;if(p.brlayout.hasContent())return"toggle"===v||!1===v?p.removeGed():E?.getPadPainter()?.selectObjectPainter(E),!0;if(!1===v)return!1;const C=p.brlayout.createBrowserBtns();return ve.IK.createSVG(C,ve.IK.diamand,15,"toggle fix-pos mode","browser").style("margin","3px").on("click",()=>p.brlayout.toggleKind("fix")),ve.IK.createSVG(C,ve.IK.circle,15,"toggle float mode","browser").style("margin","3px").on("click",()=>p.brlayout.toggleKind("float")),ve.IK.createSVG(C,ve.IK.cross,15,"delete GED","browser").style("margin","3px").on("click",()=>p.removeGed()),p.brlayout.setBrowserContent("
Loading GED ...
"),p.brlayout.setBrowserTitle("GED"),p.brlayout.toggleBrowserKind(_||"float"),new Promise(I=>{(0,ve.cA)().then(U=>{(0,L.Lt)("#ged_placeholder").text(""),U.ui.require(["sap/ui/model/json/JSONModel","sap/ui/core/mvc/XMLView"],(k,Z)=>{const ee=new k({handle:null});Z.create({viewName:"rootui5.canv.view.Ged",viewData:p.getUi5PanelData("Ged")}).then(he=>{he.setModel(ee),he.placeAt("ged_placeholder"),p.ged_view=he,p.registerForPadEvents(he.getController().padEventsReceiver.bind(he.getController())),E?.getPadPainter()?.selectObjectPainter(E),console.log("activate GED"),p.processChanges("sbits",p),I(!0)})})})})})()}showSection(E,_){var v=this;return(0,Te.A)(function*(){if(v.testUI5())return!1;switch(E){case"Menu":case"ToolBar":break;case"StatusBar":v.activateStatusBar(_);break;case"Editor":return v.activateGed(v,null,!!_);case"ToolTips":v.setTooltipAllowed(_)}return!0})()}completeCanvasSnapDrawing(){this.pad&&(typeof document<"u"&&!this.embed_canvas&&this._websocket&&(document.title=this.pad.fTitle),!this._all_sections_showed&&(this._all_sections_showed=!0,this.showSection("Menu",this.pad.TestBit(He)),this.showSection("StatusBar",this.pad.TestBit(Re)),this.showSection("ToolBar",this.pad.TestBit(Ve)),this.showSection("Editor",this.pad.TestBit(De)),this.showSection("ToolTips",this.pad.TestBit(F)||this._highlight_connect)))}processHighlightConnect(E){if(!E||0===E.length||!this._highlight_connect||!this._websocket||this.doingDraw()||!this._websocket.canSend(2))return;const _=E[0]||E[1];if(!(_&&_.painter&&_.painter.snapid&&_.user_info))return;const v=_.painter.getPadPainter()||this;if(!v.snapid)return;const p=[v.snapid,_.painter.snapid,"0","0"];void 0!==_.user_info.binx&&void 0!==_.user_info.biny?(p[2]=_.user_info.binx.toString(),p[3]=_.user_info.biny.toString()):void 0!==_.user_info.bin&&(p[2]=_.user_info.bin.toString());const C=JSON.stringify(p);this._last_highlight_msg!==C&&(this._last_highlight_msg=C,this.sendWebsocket(`HIGHLIGHT:${C}`))}processChanges(E,_,v){if(!this._websocket||this._readonly||!this._websocket.canSend(2)||!(0,x.isStr)(E))return;let p="";switch(_||(_=this),E){case"sbits":p="STATUSBITS:"+this.getStatusBits();break;case"frame":case"zoom":(0,x.isFunc)(_.getWebPadOptions)||(_=_.getPadPainter()),(0,x.isFunc)(_.getWebPadOptions)&&(p="OPTIONS6:"+_.getWebPadOptions("only_this"));break;case"padpos":p="OPTIONS6:"+_.getWebPadOptions("with_subpads");break;case"drawopt":_.snapid&&(p="DRAWOPT:"+JSON.stringify([_.snapid.toString(),_.getDrawOpt()||""]));break;case"pave_moved":{const C=(0,Ze.O4)(_);C&&(p="PRIMIT6:"+(0,x.toJSON)(C));break}case"logx":case"logy":case"logz":{const C=_.getPadPainter();C?.snapid&&C?.pad&&(_=C,E=`exec:${"SetLog"+E[3]}(${C.pad["fLog"+E[3]]})`);break}}if(!p&&(0,x.isFunc)(_?.getSnapId)&&"exec:"===E.slice(0,5)){const C=_.getSnapId(v);C&&(p="PRIMIT6:"+(0,x.toJSON)({_typename:"TWebObjectOptions",snapid:C,opt:E.slice(5),fcust:"exec",fopt:[]}))}p?this._websocket.send(p):console.log(`Unprocessed changes ${E} for painter of ${_?.getObject()?._typename} subelem ${v}`)}selectActivePad(E,_,v){if(!this.snapid||!E)return;let p=null,C=!1;const I=E.matchObjectType(Ze.cw);E.snapid&&this._websocket&&(p={_typename:"TWebPadClick",padid:E.snapid.toString(),objid:"",x:-1,y:-1,dbl:!1}),!E.is_active_pad&&!I&&(C=!0,this.forEachPainterInPad(U=>U.drawActiveBorder(null,U===E),"pads")),void 0!==_?.snapid&&p&&(C=!0,p.objid=_.snapid.toString()),v&&p&&(C=!0,p.x=Math.round(v.x||0),p.y=Math.round(v.y||0),v.dbl&&(p.dbl=!0)),p&&(C||I)&&this.sendWebsocket("PADCLICKED:"+(0,x.toJSON)(p))}getStatusBits(){let E=0;return this.hasEventStatus()&&(E|=Re),this.hasGed()&&(E|=De),this.isTooltipAllowed()&&(E|=F),this.use_openui&&(E|=He),E}produceJSON(){const E=this.getObject(),_=0===E.fFillStyle;_&&(E.fFillStyle=1001),this.normal_canvas||this.forEachPainterInPad(p=>{if(p.isSecondary())return;const C=p.getObject();C?._typename&&E.fPrimitives.Add(C,p.getDrawOpt())},"objects");const v=(0,x.toJSON)(E);return _&&(E.fFillStyle=0),this.normal_canvas||E.fPrimitives.Clear(),v}resizeBrowser(E,_){!E||!_||this.isBatchMode()||this.embed_canvas||this.batch_mode||this._websocket?.resizeWindow(E,_)}static draw(E,_,v){return(0,Te.A)(function*(){const p=!_;p&&(_=(0,x.create)(x.clTCanvas));const C=new Y(E,_);if(C.checkSpecialsInPrimitives(_),!p&&_.fCw&&_.fCh&&!C.isBatchMode()){const I=C.selectDom().node().getBoundingClientRect();!I.height&&I.width>.1*_.fCw&&(C.selectDom().style("width",_.fCw+"px").style("height",_.fCh+"px"),C._fixed_size=!0)}return C.decodeOptions(v),C.normal_canvas=!p,C.createCanvasSvg(0),C.addPadButtons(),p&&v.indexOf("noframe")<0&&J(E,null),(0,ot.QD)({pp:C,active:!0}),C.drawPrimitives().then(()=>(C.showPadButtons(),C))})()}}function ue(g,E){return Q.apply(this,arguments)}function Q(){return(Q=(0,Te.A)(function*(g,E){if(!g)return Promise.reject(Error("Painter not provided in ensureTCanvas"));const _=!1===E||"3d"===E?"noframe":"";return(g.getCanvSvg().empty()?Y.draw(g.getDom(),null,_):Promise.resolve(!0)).then(()=>(!1!==E&&g.getFrameSvg().selectChild(".main_layer").empty()&&!g.getFramePainter()&&J(g.getDom(),null,E),g.addToPadPrimitives(),g))})).apply(this,arguments)}function me(g,E){return X.apply(this,arguments)}function X(){return(X=(0,Te.A)(function*(g,E){const _=(0,x.create)(x.clTCanvas),v=new Y(g,_);return v.normal_canvas=!1,v.addPadButtons(),v.syncDraw(!0).then(()=>v.redrawPadSnap(E)).then(()=>(v.confirmDraw(),v.showPadButtons(),v))})).apply(this,arguments)}function B(g,E,_){return $.apply(this,arguments)}function $(){return($=(0,Te.A)(function*(g,E,_){const v=new Ye.nc(g,E);return v.mode3d="3d"===_,ue(v,!1).then(()=>v.redraw())})).apply(this,arguments)}},5638:(Yr,mt,Se)=>{"use strict";Se.d(mt,{G_:()=>g,WJ:()=>$,nc:()=>_,qP:()=>Y,wM:()=>E});var Te=Se(4882),x=Se(8872),L=Se(8362),ve=Se(2843),ke=Se(1922),ot=Se(4082),Ye=Se(2866),Ze=Se(4246),Re=Se(7900),He=Se(5992);const De=3e-4;function F(v,p){if(!v)return;const C=v.getFramePainter();(0,x.isFunc)(C?.setTooltipEnabled)&&(C.setTooltipEnabled(p),C.processFrameTooltipEvent(null)),(0,x.isFunc)(v.control?.setTooltipEnabled)&&v.control.setTooltipEnabled(p)}function J(v,p){return v.$touch_arr??(0,L.D_)(v,p)}function Y(v){switch(v){case 1:return(p,C)=>{const I=Math.PI/180,U=p/2*I,k=C*I,Z=Math.sqrt(2),ee=2*Z/Math.PI,he=Math.cos(k),V=Math.sqrt(1+he*Math.cos(U));return{x:he*Math.sin(U)*2*Z/V/ee/I,y:Math.sin(k)*Z/V/ee/I}};case 2:return(p,C)=>({x:p,y:Math.log(Math.tan((Math.PI/2+C/180*Math.PI)/2))});case 3:return(p,C)=>({x:p*Math.cos(C/180*Math.PI),y:C});case 4:return(p,C)=>({x:p*(2*Math.cos(2*C/180*Math.PI/3)-1),y:180*Math.sin(C/180*Math.PI/3)});case 5:return(p,C)=>{const I=C*Math.PI/180;let k,Z,U=I;for(let ee=0;ee<100;ee++){if(k=2*U+Math.sin(2*U)-Math.PI*Math.sin(I),Z=4*Math.cos(U)**2,Z<1e-20){U=I;break}if(U-=k/Z,Math.abs(k/Z)<1e-4)break}return{x:p*Math.cos(U),y:90*Math.sin(U)}}}}function ue(v){if(!(0,x.isFunc)(v?.getDimension)||1!==v.getDimension())return;const p=v.draw_content?v.hmin:v.ymin,C=v.draw_content?v.hmax:v.ymax;v.zoom_ymin!==v.zoom_ymax&&p!==C&&p<=v.zoom_ymin&&v.zoom_ymax<=C&&(v.zoom_ymin=v.zoom_ymax=0)}let Q=null,me="",X=null;function B(v,p){return Q&&X===v&&me===p}function $(v,p){if(!x.settings.MoveResize)return;const C=v,I=C.getPadPainter();if(I?._fast_drawing||I?.isBatchMode())return;function U(V,b){function P(T,z){const W="js_"+T.replace(/[-]/g,"_");let fe=V.selectChild("."+W);if(p.cleanup)return fe.remove();fe.empty()&&(fe=V.append("path").classed(W,!0)),fe.style("opacity",0).style("cursor",T).attr("d",z),b&&fe.call(b)}P("nw-resize","M2,2h15v-5h-20v20h5Z"),P("ne-resize",`M${p.width-2},2h-15v-5h20v20h-5 Z`),P("sw-resize",`M2,${p.height-2}h15v5h-20v-20h5Z`),P("se-resize",`M${p.width-2},${p.height-2}h-15v5h20v-20h-5Z`),p.no_change_x||(P("w-resize",`M-3,18h5v${Math.max(0,p.height-36)}h-5Z`),P("e-resize",`M${p.width+3},18h-5v${Math.max(0,p.height-36)}h5Z`)),p.no_change_y||(P("n-resize",`M18,-3v5h${Math.max(0,p.width-36)}v-5Z`),P("s-resize",`M18,${p.height+3}v-5h${Math.max(0,p.width-36)}v5Z`))}!1===I?.isEditable()&&(p.cleanup=!0),(0,x.isFunc)(p.getDrawG)||(p.getDrawG=()=>C?.draw_g);const k=(V,b,P,T)=>{X=null,me="",Q&&(Q.remove(),Q=null);const z=p.getDrawG();if(!z)return!1;const W=p.x,fe=p.y;p.minwidth&&P600?(0,Re.sj)({clientX:b.evnt_x,clientY:b.evnt_y,skip_close:1},C):p.canselect&&P<=600&&C.getPadPainter()?.selectObjectPainter(C)}});const he=(0,L.$E)().subject(Object);he.on("start",function(V){if((0,He.iE)(V.sourceEvent)||me||(0,x.isFunc)(p.is_disabled)&&p.is_disabled("resize"))return;(0,Re.IV)(),F(C,!1),V.sourceEvent.stopPropagation(),V.sourceEvent.preventDefault();const b=p.pad_rect??I.getPadRect(),P={x:p.x,y:p.y,width:p.width,height:p.height,acc_x1:p.x,acc_y1:p.y,acc_x2:p.x+p.width,acc_y2:p.y+p.height,pad_w:b.width,pad_h:b.height};X=C,me="resize",Q=(0,L.Lt)(p.getDrawG().node().parentNode).append("rect").style("cursor",(0,L.Lt)(this).style("cursor")).attr("x",P.acc_x1).attr("y",P.acc_y1).attr("width",P.acc_x2-P.acc_x1).attr("height",P.acc_y2-P.acc_y1).property("drag_handle",P).call(ve.Ru,!0)}).on("drag",function(V){if(!B(C,"resize"))return;V.sourceEvent.preventDefault(),V.sourceEvent.stopPropagation();const b=Q.property("drag_handle"),P=(0,L.Lt)(this);let T=V.dx,z=V.dy;p.no_change_x&&(T=0),p.no_change_y&&(z=0),P.classed("js_nw_resize")?(b.acc_x1+=T,b.acc_y1+=z):P.classed("js_ne_resize")?(b.acc_x2+=T,b.acc_y1+=z):P.classed("js_sw_resize")?(b.acc_x1+=T,b.acc_y2+=z):P.classed("js_se_resize")?(b.acc_x2+=T,b.acc_y2+=z):P.classed("js_w_resize")?b.acc_x1+=T:P.classed("js_n_resize")?b.acc_y1+=z:P.classed("js_e_resize")?b.acc_x2+=T:P.classed("js_s_resize")&&(b.acc_y2+=z);const W=Math.max(0,b.acc_x1),fe=Math.min(b.acc_x2,b.pad_w),we=Math.max(0,b.acc_y1),Me=Math.min(b.acc_y2,b.pad_h);b.x=Math.min(W,fe),b.y=Math.min(we,Me),b.width=Math.abs(fe-W),b.height=Math.abs(Me-we),Q.attr("x",b.x).attr("y",b.y).attr("width",b.width).attr("height",b.height)}).on("end",function(V){if(!B(C,"resize"))return;V.sourceEvent.preventDefault();const b=Q.property("drag_handle");k(b.x,b.y,b.width,b.height)}),p.only_resize||p.getDrawG().style("cursor",p.cleanup?null:"move").call(p.cleanup?ee:Z),p.only_move||U(p.getDrawG(),he)}const g={hints_layer(){return this.getCanvPainter()?.getLayerSvg("info_layer")??(0,L.Lt)(null)},isTooltipShown(){if(!this.tooltip_enabled||!this.isTooltipAllowed())return!1;const v=this.hints_layer().selectChild(".objects_hints");return!v.empty()&&v.property("hints_pad")===this.getPadName()},setTooltipEnabled(v){void 0!==v&&(this.tooltip_enabled=v)},processFrameTooltipEvent(v,p){if(v?.handler){const Sn=this.draw_g?.selectChild(".main_layer");if(!Sn||Sn.empty())v=null;else if(v.touch&&p){const ii=J(p,Sn.node());v=ii&&1===ii.length?{touch:!0,x:ii[0][0],y:ii[0][1]}:null}else if(p){const ii=(0,L.Wn)(p,Sn.node());v={touch:!1,x:ii[0],y:ii[1]}}}let C=0,I=0,U=0,k=0,Z=!1,ee=11;const P=this.getFrameRect(),T=this.getPadPainter(),z=T?.getPadWidth(),W=new Ze.qg(160,ee),fe=!this.isTooltipAllowed()||!this.tooltip_enabled;v&&(v.disabled=fe,v.painters=!0);const we=T?.processPadTooltipEvent(v)??[];T?._deliver_webcanvas_events&&T?.is_active_pad&&v&&(0,x.isFunc)(T?.deliverWebCanvasEvent)&&T.deliverWebCanvasEvent("move",P.x+v.x,P.y+v.y,we),v?.touch&&(ee=15);for(let Sn=0;Sn{U=Math.max(U,ai.length)}),ii.height=Math.round(ii.lines.length*ee*1.2+6-ee*(1.2-1)),void 0!==ii.color1&&"none"!==ii.color1&&(0!==k&&k!==ii.color1&&(Z=!0),k=ii.color1))}}let Me=null,je=we.length>1;for(let Sn=0;Sn0){const zi=ii.lines[0].slice(0,ai+1);null===Me?Me=zi:Me!==zi&&(je=!1)}else je=!1}const Ge=this.hints_layer(),lt=C>15,bt=v?Math.round(v.x)+","+Math.round(v.y):"";let te=Ge.selectChild(".objects_hints"),Je="",tt="",Fe="",Ne=null,rt=1e10,St=null;for(let Sn=0;Sn1?Ne.lines[0]:Ne.name,Je=Ne.title||"",Fe=Ne.line,!Fe&&Ne.lines&&(Fe=Ne.lines.slice(1).join(" "))),this.showObjectStatus(tt,Je,Fe,bt),!v||fe||0===we.length||0===U||lt&&!St)return void te.remove();te.empty()&&(te=Ge.append("svg:g").attr("class","objects_hints").style("pointer-events","none"));let pt={x:0,y:0},st=P.transform||"";T.iscan||(pt=(0,ve.md)(this.getPadSvg(),pt),st=`translate(${pt.x},${pt.y}) ${st}`),te.attr("transform",st).property("last_point",v).property("hints_pad",this.getPadName());let vt=te.property("viewmode")||"",Yt=0,qt=v.x+P.hint_delta_x;if(lt||1===C)vt="single",qt+=15;else{let Sn=.5,ii=.5;"left"===vt?ii=.7:"right"===vt&&(Sn=.3),qt<=Sn*P.width?(vt="left",qt=20):qt>=ii*P.width?(vt="right",qt=P.width-60):qt=te.property("startx")}vt!==te.property("viewmode")&&(te.property("viewmode",vt),te.selectAll("*").remove());let Ot=10,Bn=10,Mn=-1111,bn=-1111;const Dn=-pt.y,$n=this.getCanvPainter(),Cn=$n.getPadHeight()-P.y-pt.y;for(let Sn=0;Sn=Bn-5&&Bs.y<=Bn+Bs.height+5&&(Bn=Bs.y+10,ss=-1)}-1111===Mn&&-1111===bn&&(Mn=bn=ii.x),Mn=Math.min(Mn,ii.x),bn=Math.min(bn,ii.x)}ai.attr("x",qt).attr("y",Ot).property("curry",Ot).property("gapy",Bn),Ot+=ii.height+5,Bn+=ii.height+5,zi||ai.selectAll("*").remove(),ai.attr("width",60).attr("height",ii.height);const ti=ai.append("rect").attr("x",0).attr("y",0).attr("width",60).attr("height",ii.height).style("fill","lightgrey").style("pointer-events","none");if(C>1){const ss=Z?ii.color1:ii.color2;ss&&"none"!==ss&&ti.style("stroke",ss)}ti.attr("stroke-width",ii.exact?3:1);for(let ss=0;ss<(ii.lines?.length??0);ss++){let Bs=ii.lines[ss];if(0===ss&&Me&&je&&(Bs=Bs.slice(Me.length)),Bs){const yo=ai.append("svg:text").attr("text-anchor","start").attr("x",3).attr("y",3+ss*ee*1.2).attr("dy",".8em").style("fill","black").style("pointer-events","none").call(W.func).text(Bs),xt=(0,ve.xh)(yo,"bbox");Yt=Math.max(Yt,xt.width)}}zi&&(x.settings.TooltipAnimation>0?ai.transition().duration(x.settings.TooltipAnimation).attrTween("opacity",Lr()):ai.attr("opacity",1))}Yt+=6;const yn=te.selectAll("svg");if("right"===vt&&qt+Yt>P.width-20&&(qt=P.width-Yt-20,yn.attr("x",qt)),"single"===vt&&qt+Yt>z-P.x&&qt>Yt+20&&(qt-=Yt+20,yn.attr("x",qt)),"single"!==vt&&Bn=qt-5&&yn.attr("y",function(){return(0,L.Lt)(this).property("gapy")});else if("single"!==vt&&Ot>Cn){const Sn=Math.max(Cn-Ot-10,Dn);Sn<0&&yn.attr("y",function(){return(0,L.Lt)(this).property("curry")+Sn})}Yt>10&&yn.attr("width",Yt).select("rect").attr("width",Yt),te.property("startx",qt),$n._highlight_connect&&(0,x.isFunc)($n.processHighlightConnect)&&$n.processHighlightConnect(we)},assign(v){Object.assign(v,this,{tooltip_enabled:!0})}},E={addBasicInteractivity(){g.assign(this),!this._frame_rotate&&!this._frame_fixpos&&$(this,{obj:this,x:this._frame_x,y:this._frame_y,width:this.getFrameWidth(),height:this.getFrameHeight(),is_disabled:k=>"move"===k&&this.mode3d,only_resize:!0,minwidth:20,minheight:20,redraw:()=>this.sizeChanged()});const v=this.draw_g.selectChild("path"),p=this.draw_g.selectChild(".main_layer");v.style("pointer-events","visibleFill").style("cursor","default"),p.style("pointer-events","visibleFill").style("cursor","default").property("handlers_set",0);const C=this.getPadPainter(),I=C?._fast_drawing?0:1;if(p.property("handlers_set")!==I){const k=I?this.processFrameTooltipEvent.bind(this,null):null,Z=I?this.processFrameTooltipEvent.bind(this,{handler:!0,touch:!1}):null;if(p.property("handlers_set",I).on("mouseenter",Z).on("mousemove",Z).on("mouseleave",k),x.browser.touches){const ee=I?this.processFrameTooltipEvent.bind(this,{handler:!0,touch:!0}):null;p.on("touchstart",ee).on("touchmove",ee).on("touchend",k).on("touchcancel",k)}}p.attr("x",0).attr("y",0).attr("width",this.getFrameWidth()).attr("height",this.getFrameHeight());const U=this.hints_layer().selectChild(".objects_hints");!U.empty()&&this.isTooltipAllowed()&&U.property("hints_pad")===this.getPadName()&&setTimeout(this.processFrameTooltipEvent.bind(this,U.property("last_point"),null),10)},addFrameInteractivity(v){var p=this;return(0,Te.A)(function*(){const C=p.getPadPainter(),I=p.getFrameSvg();if(C?._fast_drawing||I.empty())return p;if(v){const Z=I.selectAll(".x2axis_container"),ee=I.selectAll(".y2axis_container");return x.settings.ContextMenu&&(Z.on("contextmenu",he=>p.showContextMenu("x2",he)),ee.on("contextmenu",he=>p.showContextMenu("y2",he))),Z.on("mousemove",he=>p.showAxisStatus("x2",he)),ee.on("mousemove",he=>p.showAxisStatus("y2",he)),p}const U=I.selectAll(".xaxis_container"),k=I.selectAll(".yaxis_container");return p.can_zoom_x=p.can_zoom_y=x.settings.Zooming,C?.options&&(C.options.NoZoomX&&(p.can_zoom_x=!1),C.options.NoZoomY&&(p.can_zoom_y=!1)),I.property("interactive_set")||(p.addFrameKeysHandler(),p.zoom_kind=0,p.zoom_rect=null,p.zoom_origin=null,p.zoom_curr=null),x.settings.Zooming&&(x.settings.ZoomMouse&&(I.on("mousedown",Z=>p.startRectSel(Z)),I.on("dblclick",Z=>p.mouseDoubleClick(Z))),x.settings.ZoomWheel&&I.on("wheel",Z=>p.mouseWheel(Z))),x.browser.touches&&(x.settings.Zooming&&x.settings.ZoomTouch||x.settings.ContextMenu)&&I.on("touchstart",Z=>p.startTouchZoom(Z)),x.settings.ContextMenu&&(x.browser.touches&&(U.on("touchstart",Z=>p.startSingleTouchHandling("x",Z)),k.on("touchstart",Z=>p.startSingleTouchHandling("y",Z))),I.on("contextmenu",Z=>p.showContextMenu("",Z)),U.on("contextmenu",Z=>p.showContextMenu("x",Z)),k.on("contextmenu",Z=>p.showContextMenu("y",Z))),U.on("mousemove",Z=>p.showAxisStatus("x",Z)),k.on("mousemove",Z=>p.showAxisStatus("y",Z)),I.property("interactive_set",!0),p})()},addFrameKeysHandler(){this.keys_handler||typeof window>"u"||(this.keys_handler=v=>this.processKeyPress(v),window.addEventListener("keydown",this.keys_handler,!1))},processKeyPress(v){const C=this.selectDom(),I=this.getPadPainter();let U=v.key;if(!x.settings.HandleKeys||C.empty()||!1===this.enabledKeys||(0,ke.OZ)()!==I||["PageUp","PageDown","ArrowLeft","ArrowUp","ArrowRight","ArrowDown","PrintScreen","Escape","*"].indexOf(U)<0)return!1;v.shiftKey&&(U=`Shift ${U}`),v.altKey&&(U=`Alt ${U}`),v.ctrlKey&&(U=`Ctrl ${U}`);const k={name:"x",dleft:0,dright:0};switch(U){case"ArrowLeft":k.dleft=-1,k.dright=1;break;case"ArrowRight":k.dleft=1,k.dright=-1;break;case"Ctrl ArrowLeft":k.dleft=k.dright=-1;break;case"Ctrl ArrowRight":k.dleft=k.dright=1;break;case"ArrowUp":k.name="y",k.dleft=1,k.dright=-1;break;case"ArrowDown":k.name="y",k.dleft=-1,k.dright=1;break;case"Ctrl ArrowUp":k.name="y",k.dleft=k.dright=1;break;case"Ctrl ArrowDown":k.name="y",k.dleft=k.dright=-1;break;case"Escape":return I?.enlargePad(null,!1,!0),!0}if(k.dleft||k.dright){if(!x.settings.Zooming||this.mode3d&&0!==U.indexOf("Ctrl"))return!1;this.analyzeMouseWheelEvent(null,k,.5),k.changed&&(this.zoom(k.name,k.min,k.max),this.zoomChangedInteractive(k.name,!0)),v.stopPropagation(),v.preventDefault()}else{const Z=I?.findPadButton(U);Z&&(I.clickPadButton(Z),v.stopPropagation(),v.preventDefault())}return!0},processFrameClick(v,p){const C=this.getPadPainter();if(!C)return;v.painters=!0,v.disabled=!0;const I=C.processPadTooltipEvent(v);let k,U=null;for(let Z=0;Z100)return;const p=this.getFrameSvg(),C=(0,L.Wn)(v,p.node());if(3===v.buttons||1===v.button)return this.clearInteractiveElements(),this._shifting_buttons=v.buttons,v.$emul||(0,L.Lt)(window).on("mousemove.shiftHandler",k=>this.shiftMoveHanlder(k,C)).on("mouseup.shiftHandler",k=>this.shiftUpHanlder(k),!0),F(this,!1),v.preventDefault(),void v.stopPropagation();if(0!==v.button)return;v.preventDefault(),this.clearInteractiveElements();const I=this.getFrameWidth(),U=this.getFrameHeight();return this.zoom_lastpos=C,this.zoom_curr=[Math.max(0,Math.min(I,C[0])),Math.max(0,Math.min(U,C[1]))],this.zoom_origin=[0,0],this.zoom_second=!1,C[0]<0||C[0]>I?(this.zoom_second=C[0]>I&&this.y2_handle,this.zoom_kind=3,this.zoom_origin[1]=this.zoom_curr[1],this.zoom_curr[0]=I,this.zoom_curr[1]+=1):C[1]<0||C[1]>U?(this.zoom_second=C[1]<0&&this.x2_handle,this.zoom_kind=2,this.zoom_origin[0]=this.zoom_curr[0],this.zoom_curr[0]+=1,this.zoom_curr[1]=U):(this.zoom_kind=1,this.zoom_origin[0]=this.zoom_curr[0],this.zoom_origin[1]=this.zoom_curr[1]),v.$emul||(0,L.Lt)(window).on("mousemove.zoomRect",k=>this.moveRectSel(k)).on("mouseup.zoomRect",k=>this.endRectSel(k),!0),this.zoom_rect=null,F(this,!1),v.stopPropagation(),1!==this.zoom_kind?(0,x.postponePromise)(()=>this.startLabelsMove(),500):void 0},startLabelsMove(){if(this.zoom_rect)return;const v=2===this.zoom_kind?this.x_handle:this.y_handle;!(0,x.isFunc)(v?.processLabelsMove)||!this.zoom_lastpos||v.processLabelsMove("start",this.zoom_lastpos)&&(this.zoom_labels=v)},moveRectSel(v){if(0===this.zoom_kind||this.zoom_kind>100)return;v.preventDefault();const p=(0,L.Wn)(v,this.getFrameSvg().node());if(this.zoom_labels)return this.zoom_labels.processLabelsMove("move",p);switch(this.zoom_lastpos[0]=p[0],this.zoom_lastpos[1]=p[1],p[0]=Math.max(0,Math.min(this.getFrameWidth(),p[0])),p[1]=Math.max(0,Math.min(this.getFrameHeight(),p[1])),this.zoom_kind){case 1:this.zoom_curr[0]=p[0],this.zoom_curr[1]=p[1];break;case 2:this.zoom_curr[0]=p[0];break;case 3:this.zoom_curr[1]=p[1]}const C=Math.min(this.zoom_origin[0],this.zoom_curr[0]),I=Math.min(this.zoom_origin[1],this.zoom_curr[1]),U=Math.abs(this.zoom_curr[0]-this.zoom_origin[0]),k=Math.abs(this.zoom_curr[1]-this.zoom_origin[1]);if(!this.zoom_rect){if(1!==this.zoom_kind&&(U<2||k<2))return;this.zoom_rect=this.getFrameSvg().append("rect").style("pointer-events","none").call(ve.Ru,!0)}this.zoom_rect.attr("x",C).attr("y",I).attr("width",U).attr("height",k)},endRectSel(v){if(0===this.zoom_kind||this.zoom_kind>100)return;v.preventDefault(),v.$emul||(0,L.Lt)(window).on("mousemove.zoomRect",null).on("mouseup.zoomRect",null);const p=(0,L.Wn)(v,this.getFrameSvg().node());let I,C=this.zoom_kind;if(this.zoom_labels)this.zoom_labels.processLabelsMove("stop",p);else{const k=[this.can_zoom_x,this.can_zoom_y];switch(p[0]=Math.max(0,Math.min(this.getFrameWidth(),p[0])),p[1]=Math.max(0,Math.min(this.getFrameHeight(),p[1])),this.zoom_kind){case 1:this.zoom_curr[0]=p[0],this.zoom_curr[1]=p[1];break;case 2:this.zoom_curr[0]=p[0],k[1]=!1;break;case 3:this.zoom_curr[1]=p[1],k[0]=!1}const Z=this.swap_xy?1:0,ee=1-Z;let he,V,b,P,T=!1,z="x",W="y";k[Z]&&Math.abs(this.zoom_curr[Z]-this.zoom_origin[Z])>10&&(this.zoom_second&&2===this.zoom_kind&&(z="x2"),he=Math.min(this.revertAxis(z,this.zoom_origin[Z]),this.revertAxis(z,this.zoom_curr[Z])),V=Math.max(this.revertAxis(z,this.zoom_origin[Z]),this.revertAxis(z,this.zoom_curr[Z])),T=!0),k[ee]&&Math.abs(this.zoom_curr[ee]-this.zoom_origin[ee])>10&&(this.zoom_second&&3===this.zoom_kind&&(W="y2"),b=Math.min(this.revertAxis(W,this.zoom_origin[ee]),this.revertAxis(W,this.zoom_curr[ee])),P=Math.max(this.revertAxis(W,this.zoom_origin[ee]),this.revertAxis(W,this.zoom_curr[ee])),T=!0),"x2"===z?(this.zoomChangedInteractive(z,!0),I=this.zoomSingle(z,he,V),C=0):"y2"===W?(this.zoomChangedInteractive(W,!0),I=this.zoomSingle(W,b,P),C=0):T&&(this.zoomChangedInteractive("x",!0),this.zoomChangedInteractive("y",!0),I=this.zoom(he,V,b,P),C=0)}const U=1===C?{x:this.zoom_origin[0],y:this.zoom_origin[1]}:null;switch(this.clearInteractiveElements(),C){case 1:this.processFrameClick(U);break;case 2:this.getPadPainter()?.selectObjectPainter(this,null,"xaxis");break;case 3:this.getPadPainter()?.selectObjectPainter(this,null,"yaxis")}return I},mouseDoubleClick(v){v.preventDefault();const p=(0,L.Wn)(v,this.getFrameSvg().node()),C=this.getFrameWidth(),I=this.getFrameHeight();this.clearInteractiveElements();const U=p[0]>=0&&p[0]<=C,k=p[1]>=0&&p[1]<=I;if(U&&k&&this._dblclick_handler&&this.processFrameClick({x:p[0],y:p[1]},!0))return;let Z=(this.can_zoom_x?"x":"")+(this.can_zoom_y?"y":"")+"z";if(U){if(!k){if(!this.can_zoom_x)return;Z=this.swap_xy?"y":"x",p[1]<0&&this[Z+"2_handle"]&&(Z+="2")}}else{if(!this.can_zoom_y)return;Z=this.swap_xy?"x":"y",p[0]>C&&this[Z+"2_handle"]&&(Z+="2")}return this.unzoom(Z).then(ee=>{if(ee)return;const he=this.getPadPainter(),V=this.getFrameRect();return he?.selectObjectPainter(he,{x:p[0]+V.x,y:p[1]+V.y,dbl:!0})})},startTouchZoom(v){if(v.preventDefault(),v.stopPropagation(),0!==this.zoom_kind||me)return;const p=J(v,this.getFrameSvg().node());if(1===p.length){const Z=(new Date).getTime();let ee=1e10,he=100,V=100;this.last_touch_time&&this.last_touch_pos&&(ee=Z-this.last_touch_time,he=Math.abs(p[0][0]-this.last_touch_pos[0]),V=Math.abs(p[0][1]-this.last_touch_pos[1])),this.last_touch_time=Z,this.last_touch_pos=p[0],ee<500&&he<20&&V<20?(this.clearInteractiveElements(),this.unzoom("xyz"),delete this.last_touch_time):x.settings.ContextMenu&&this.startSingleTouchHandling("",v)}if(2!==p.length||!x.settings.Zooming||!x.settings.ZoomTouch)return;this.clearInteractiveElements(),this.endSingleTouchHandling(null);const C=p[0],I=p[1],U=this.getFrameWidth(),k=this.getFrameHeight();this.zoom_curr=[Math.min(C[0],I[0]),Math.min(C[1],I[1])],this.zoom_origin=[Math.max(C[0],I[0]),Math.max(C[1],I[1])],this.zoom_second=!1,this.zoom_curr[0]<0||this.zoom_curr[0]>U?(this.zoom_second=this.zoom_curr[0]>U&&this.y2_handle,this.zoom_kind=103,this.zoom_curr[0]=0,this.zoom_origin[0]=U):this.zoom_origin[1]>k||this.zoom_origin[1]<0?(this.zoom_second=this.zoom_origin[1]<0&&this.x2_handle,this.zoom_kind=102,this.zoom_curr[1]=0,this.zoom_origin[1]=k):this.zoom_kind=101,me="zoom",F(this,!1),this.zoom_rect=this.getFrameSvg().append("rect").attr("id","zoomRect").attr("x",this.zoom_curr[0]).attr("y",this.zoom_curr[1]).attr("width",this.zoom_origin[0]-this.zoom_curr[0]).attr("height",this.zoom_origin[1]-this.zoom_curr[1]).call(ve.Ru,!0),v.$emul||(0,L.Lt)(window).on("touchmove.zoomRect",Z=>this.moveTouchZoom(Z)).on("touchcancel.zoomRect",Z=>this.endTouchZoom(Z)).on("touchend.zoomRect",Z=>this.endTouchZoom(Z))},moveTouchZoom(v){if(this.zoom_kind<100)return;v.preventDefault();const p=J(v,this.getFrameSvg().node());if(2!==p.length)return this.clearInteractiveElements();const C=p[0],I=p[1];103!==this.zoom_kind&&(this.zoom_curr[0]=Math.min(C[0],I[0]),this.zoom_origin[0]=Math.max(C[0],I[0])),102!==this.zoom_kind&&(this.zoom_curr[1]=Math.min(C[1],I[1]),this.zoom_origin[1]=Math.max(C[1],I[1])),this.zoom_rect.attr("x",this.zoom_curr[0]).attr("y",this.zoom_curr[1]).attr("width",this.zoom_origin[0]-this.zoom_curr[0]).attr("height",this.zoom_origin[1]-this.zoom_curr[1]),(this.zoom_origin[0]-this.zoom_curr[0]>10||this.zoom_origin[1]-this.zoom_curr[1]>10)&&F(this,!1),v.stopPropagation()},endTouchZoom(v){if(this.zoom_kind<100)return;me="",v.preventDefault(),v.$emul||(0,L.Lt)(window).on("touchmove.zoomRect",null).on("touchend.zoomRect",null).on("touchcancel.zoomRect",null);let p,C,I,U,k=!1,Z="x",ee="y";const he=this.swap_xy?1:0,V=1-he,b=[!0,!0];102===this.zoom_kind&&(b[1]=!1),103===this.zoom_kind&&(b[0]=!1),b[he]&&Math.abs(this.zoom_curr[he]-this.zoom_origin[he])>10&&(this.zoom_second&&102===this.zoom_kind&&(Z="x2"),p=Math.min(this.revertAxis(Z,this.zoom_origin[he]),this.revertAxis(Z,this.zoom_curr[he])),C=Math.max(this.revertAxis(Z,this.zoom_origin[he]),this.revertAxis(Z,this.zoom_curr[he])),k=!0),b[V]&&Math.abs(this.zoom_curr[V]-this.zoom_origin[V])>10&&(this.zoom_second&&103===this.zoom_kind&&(ee="y2"),I=Math.min(this.revertAxis(ee,this.zoom_origin[V]),this.revertAxis(ee,this.zoom_curr[V])),U=Math.max(this.revertAxis(ee,this.zoom_origin[V]),this.revertAxis(ee,this.zoom_curr[V])),k=!0),this.clearInteractiveElements(),delete this.last_touch_time,"x2"===Z?(this.zoomChangedInteractive(Z,!0),this.zoomSingle(Z,p,C)):"y2"===ee?(this.zoomChangedInteractive(ee,!0),this.zoomSingle(ee,I,U)):k&&(this.zoomChangedInteractive("x",!0),this.zoomChangedInteractive("y",!0),this.zoom(p,C,I,U)),v.stopPropagation()},analyzeMouseWheelEvent(v,p,C,I,U){const k=U?this[p.name+"2_handle"]:null;return k?(p.second=Object.assign({},p),k.analyzeWheelEvent(v,C,p.second,I)):this[p.name+"_handle"]?.analyzeWheelEvent(v,C,p,I)},isAllowedDefaultYZooming(){if(this.self_drawaxes)return!0;const v=this.getPadPainter();if(v?.painters)for(let p=0;p=0&&I[1]<=k,I[1]<0),this.can_zoom_y&&this.analyzeMouseWheelEvent(v,this.swap_xy?p:C,1-I[1]/k,I[0]>=0&&I[0]<=U,I[0]>U);let Z=this.zoom(p.min,p.max,C.min,C.max);return p.changed&&this.zoomChangedInteractive("x",!0),C.changed&&this.zoomChangedInteractive("y",!0),p.second&&(Z=Z.then(()=>this.zoomSingle("x2",p.second.min,p.second.max)),p.second.changed&&this.zoomChangedInteractive("x2",!0)),C.second&&(Z=Z.then(()=>this.zoomSingle("y2",C.second.min,C.second.max)),C.second.changed&&this.zoomChangedInteractive("y2",!0)),Z},showContextMenu(v,p,C){if(3===p?.buttons)return p.preventDefault();if("zoom_kind"in this&&this.zoom_kind>100)return;let I,U=this,k=null,Z=!1,ee=null;const he=this.getFrameSvg().node();if((0,x.isFunc)(p?.stopPropagation)){p.preventDefault(),p.stopPropagation();const V=(0,L.Wn)(p,he),b=J(p,he);1===b.length?I={x:b[0][0],y:b[0][1],touch:!0}:2===V.length&&(I={x:V[0],y:V[1],touch:!1})}else if(void 0!==p?.x&&void 0!==p?.y&&void 0===p?.clientX){I=p;const V=he.getBoundingClientRect();p={clientX:V.left+I.x,clientY:V.top+I.y}}if("painter"===v&&C)U=C,v="";else if("main"===v)U=this.getMainPainter(!0),v="";else if(v)("x"===v||"y"===v||"z"===v||"pal"===v)&&(k=this.getMainPainter(!0),this.v7_frame&&(0,x.isFunc)(k?.v7EvalAttr)&&(k=null));else{const V=this.getPadPainter();let b=null;if(ee=this,I&&V){I.painters=!0;const P=V.processPadTooltipEvent(I);let T=1e3;for(let z=0;z0&&I.x<20&&I.y>0&&I.y<20),ee.setLastEventPos(I)}return k||(k=U),(0,x.isFunc)(U?.fillContextMenu)?(this.clearInteractiveElements(),(0,Re.ES)(p,U).then(V=>{let b=V.painter.fillContextMenu(V,v,C);if(ee&&(!b||Z&&"frame"!==v)&&(b=ee.fillContextMenu(V)),b)return k.fillObjectExecMenu(V,v).then(P=>(F(P.painter,!1),P.show().then(()=>F(P.painter,!0))))})):void 0},startSingleTouchHandling(v,p){const C=J(p,this.getFrameSvg().node());if(1!==C.length)return;p.preventDefault(),p.stopPropagation(),(0,Re.IV)();const I=(new Date).getTime();this._shifting_dx=0,this._shifting_dy=0,F(this,!1),(0,L.Lt)(window).on("touchmove.singleTouch",v?null:U=>this.moveTouchHandling(U,v,C[0])).on("touchcancel.singleTouch",U=>this.endSingleTouchHandling(U,v,C[0],I)).on("touchend.singleTouch",U=>this.endSingleTouchHandling(U,v,C[0],I))},moveTouchHandling(v,p,C){const I=this.getFrameSvg(),U=this.draw_g.selectChild(".main_layer");let k;try{k=J(v,I.node())[0]}catch{k=[0,0],v?.changedTouches&&(k=[v.changedTouches[0].clientX,v.changedTouches[0].clientY])}const Z=C[0]-k[0],ee=1===this.scales_ndim?0:C[1]-k[1],he=this.getFrameWidth(),V=this.getFrameHeight();this._shifting_dx=Z,this._shifting_dy=ee,U.attr("viewBox",`${Z} ${ee} ${he} ${V}`)},endSingleTouchHandling(v,p,C,I){v?.preventDefault(),v?.stopPropagation(),F(this,!0),(0,L.Lt)(window).on("touchmove.singleTouch",null).on("touchcancel.singleTouch",null).on("touchend.singleTouch",null),null!==v&&(Math.abs(this._shifting_dx)>2||Math.abs(this._shifting_dy)>2?this.performScalesShift():(new Date).getTime()-I>700&&this.showContextMenu(p,{x:C[0],y:C[1]}))},clearInteractiveElements(){(0,Re.IV)(),this.zoom_kind=0,this.zoom_rect?.remove(),delete this.zoom_rect,delete this.zoom_curr,delete this.zoom_origin,delete this.zoom_lastpos,delete this.zoom_labels,F(this,!0)},assign(v){Object.assign(v,this)}};class _ extends ke.JW{constructor(p,C){super(p,C&&C.$dummy?null:C),this.zoom_kind=0,this.mode3d=!1,this.shrink_frame_left=0,this.xmin=this.xmax=0,this.ymin=this.ymax=0,this.ranges_set=!1,this.axes_drawn=!1,this.keys_handler=null,this.projection=0}getFramePainter(){return this}is_root6(){return!0}getObject(p){return"xaxis"===p?this.xaxis:"yaxis"===p?this.yaxis:super.getObject()}setFrameActive(p){this.enabledKeys=p&&x.settings.HandleKeys,this.control&&(this.control.enableKeys=this.enabledKeys)}shrinkFrame(p,C){this.fX1NDC+=p,this.fX2NDC-=C}setLastEventPos(p){this.fLastEventPnt=p}getLastEventPos(){return this.fLastEventPnt}getProjectionFunc(){return Y(this.projection)}recalculateRange(p,C,I){this.projection=p||0,2===this.projection&&(this.scale_ymin<=-90||this.scale_ymax>=90)&&(console.warn(`Mercator Projection: Latitude out of range ${this.scale_ymin} ${this.scale_ymax}`),this.projection=0);const U=this.getProjectionFunc();if(!U)return;const k=[U(this.scale_xmin,this.scale_ymin),U(this.scale_xmin,this.scale_ymax),U(this.scale_xmax,this.scale_ymax),U(this.scale_xmax,this.scale_ymin)];this.scale_xmin<0&&this.scale_xmax>0&&(k.push(U(0,this.scale_ymin)),k.push(U(0,this.scale_ymax))),this.scale_ymin<0&&this.scale_ymax>0&&(k.push(U(this.scale_xmin,0)),k.push(U(this.scale_xmax,0))),this.original_xmin=this.scale_xmin,this.original_xmax=this.scale_xmax,this.original_ymin=this.scale_ymin,this.original_ymax=this.scale_ymax,C&&(this.scale_xmin=this.scale_xmax=k[0].x),I&&(this.scale_ymin=this.scale_ymax=k[0].y);for(let Z=1;Z1&&this.applyAxisZoom("y"),P>2&&this.applyAxisZoom("z")}b&&!b._checked_zooming&&(b._checked_zooming=!0,b.options.minimum!==x.kNoZoom&&(this.zoom_zmin=b.options.minimum,this.zoom_zmax=this.zmax),b.options.maximum!==x.kNoZoom&&(this.zoom_zmax=b.options.maximum,void 0===this.zoom_zmin&&(this.zoom_zmin=this.zmin)))}setAxes2Ranges(p,C,I,U,k,Z,ee,he){p&&(this.x2axis=C,this.x2min=I,this.x2max=U),k&&(this.y2axis=Z,this.y2min=ee,this.y2max=he)}getAxis(p){switch(p){case"x":return this.xaxis;case"y":return this.yaxis;case"z":return this.zaxis;case"x2":return this.x2axis;case"y2":return this.y2axis}return null}applyPadUserRange(p,C){if(!p)return;let I=p[`fU${C}min`],U=p[`fU${C}max`],k=1e-7;if("x"===C){if(Math.abs(p.fX1)>k||Math.abs(p.fX2-1)>k){const V=p.fX2-p.fX1;I=p.fX1+V*p.fLeftMargin,U=p.fX2-V*p.fRightMargin}}else if(Math.abs(p.fY1)>k||Math.abs(p.fY2-1)>k){const V=p.fY2-p.fY1;I=p.fY1+V*p.fBottomMargin,U=p.fY2-V*p.fTopMargin}if(I>=U||Math.abs(I)0&&(I=Math.exp(I*Math.log(10)),U=Math.exp(U*Math.log(10)));let Z=C;this.swap_xy&&(Z="x"===C?"y":"x");const ee=this[`scale_${Z}min`],he=this[`scale_${Z}max`];k=1e-7*(he-ee),(Math.abs(I-ee)>k||Math.abs(U-he)>k)&&(this[`zoom_${Z}min`]=I,this[`zoom_${Z}max`]=U)}applyAxisZoom(p){if(this.zoomChangedInteractive(p))return;this[`zoom_${p}min`]=this[`zoom_${p}max`]=0;const C=this.getAxis(p);C?.TestBit(ke.rb.kAxisRange)&&C.fFirst!==C.fLast&&(C.fFirst>1||C.fLast1?C.GetBinLowEdge(C.fFirst):C.fXmin,this[`zoom_${p}max`]=C.fLast0?this.scale_ymax=Math.exp(1.1*Math.log(this.scale_ymax)):this.scale_ymax+=.1*(this.scale_ymax-this.scale_ymin)),p.check_pad_range&&(this.applyAxisZoom("x"),p.ndim>1&&this.applyAxisZoom("y"),p.ndim>2&&this.applyAxisZoom("z"),"pad_range"===p.check_pad_range)){const b=this.getCanvPainter();(!b||!b.online_canvas)&&(this.applyPadUserRange(k,"x"),this.applyPadUserRange(k,"y"))}p.zoom_ymin!==p.zoom_ymax&&(this.zoom_ymin===this.zoom_ymax||!this.zoomChangedInteractive("y"))&&(this.zoom_ymin=p.zoom_ymin,this.zoom_ymax=p.zoom_ymax);let he=!0,V=!0;this.zoom_xmin!==this.zoom_xmax&&(this.scale_xmin=this.zoom_xmin,this.scale_xmax=this.zoom_xmax,he=!1),this.zoom_ymin!==this.zoom_ymax&&(this.scale_ymin=this.zoom_ymin,this.scale_ymax=this.zoom_ymax,V=!1),this.recalculateRange(p.Proj,he,V),this.x_handle=new Ye.TB(this.getDom(),this.xaxis,!0),this.x_handle.setPadName(this.getPadName()),this.x_handle.setHistPainter(p.hist_painter,"x"),this.x_handle.configureAxis("xaxis",this.xmin,this.xmax,this.scale_xmin,this.scale_xmax,this.swap_xy,this.swap_xy?[0,I]:[0,C],{reverse:this.reverse_x,log:this.swap_xy?ee:Z,noexp_changed:this.x_noexp_changed,symlog:this.swap_xy?p.symlog_y:p.symlog_x,logcheckmin:this.swap_xy,logminfactor:1e-4}),this.x_handle.assignFrameMembers(this,"x"),this.y_handle=new Ye.TB(this.getDom(),this.yaxis,!0),this.y_handle.setPadName(this.getPadName()),this.y_handle.setHistPainter(p.hist_painter,"y"),this.y_handle.configureAxis("yaxis",this.ymin,this.ymax,this.scale_ymin,this.scale_ymax,!this.swap_xy,this.swap_xy?[0,C]:[0,I],{reverse:this.reverse_y,log:this.swap_xy?Z:ee,noexp_changed:this.y_noexp_changed,symlog:this.swap_xy?p.symlog_x:p.symlog_y,logcheckmin:p.ndim<2||this.swap_xy,log_min_nz:p.ymin_nz&&p.ymin_nz<=this.ymax?.5*p.ymin_nz:0,logminfactor:De}),this.y_handle.assignFrameMembers(this,"y"),this.setRootPadRange(k)}createXY2(p){p||(p={ndim:this.scales_ndim??1}),this.reverse_x2=p.reverse_x||!1,this.reverse_y2=p.reverse_y||!1,this.logx2=this.logy2=0;const C=this.getFrameWidth(),I=this.getFrameHeight(),k=this.getPadPainter().getRootPad();p.second_x&&(this.scale_x2min=this.x2min,this.scale_x2max=this.x2max),p.second_y&&(this.scale_y2min=this.y2min,this.scale_y2max=this.y2max),p.extra_y_space&&p.second_y&&((this.swap_xy?k.fLogx:k.fLogy)&&this.scale_y2max>0?this.scale_y2max=Math.exp(1.1*Math.log(this.scale_y2max)):this.scale_y2max+=.1*(this.scale_y2max-this.scale_y2min)),this.zoom_x2min!==this.zoom_x2max&&p.second_x&&(this.scale_x2min=this.zoom_x2min,this.scale_x2max=this.zoom_x2max),this.zoom_y2min!==this.zoom_y2max&&p.second_y&&(this.scale_y2min=this.zoom_y2min,this.scale_y2max=this.zoom_y2max),p.second_x&&(this.x2_handle=new Ye.TB(this.getDom(),this.x2axis,!0),this.x2_handle.setPadName(this.getPadName()),this.x2_handle.setHistPainter(p.hist_painter,"x"),this.x2_handle.configureAxis("x2axis",this.x2min,this.x2max,this.scale_x2min,this.scale_x2max,this.swap_xy,this.swap_xy?[0,I]:[0,C],{reverse:this.reverse_x2,log:this.swap_xy?k.fLogy:k.fLogx,noexp_changed:this.x2_noexp_changed,logcheckmin:this.swap_xy,logminfactor:1e-4}),this.x2_handle.assignFrameMembers(this,"x2")),p.second_y&&(this.y2_handle=new Ye.TB(this.getDom(),this.y2axis,!0),this.y2_handle.setPadName(this.getPadName()),this.y2_handle.setHistPainter(p.hist_painter,"y"),this.y2_handle.configureAxis("y2axis",this.y2min,this.y2max,this.scale_y2min,this.scale_y2max,!this.swap_xy,this.swap_xy?[0,C]:[0,I],{reverse:this.reverse_y2,log:this.swap_xy?k.fLogx:k.fLogy,noexp_changed:this.y2_noexp_changed,logcheckmin:p.ndim<2||this.swap_xy,log_min_nz:p.ymin_nz&&p.ymin_nz0?x.gStyle.fGridColor:this.getAxis("x")?.fAxisColor??1;let he="";this.x_handle.ticks.forEach(V=>{he+=this.swap_xy?`M0,${V}h${k}`:`M${V},0v${U}`}),p.append("svg:path").attr("class","xgrid").attr("d",he).style("stroke",this.getColor(ee)||"black").style("stroke-width",x.gStyle.fGridWidth).style("stroke-dasharray",(0,ot.Ov)(Z))}if(I?.fGridy&&this.y_handle?.ticks){const ee=x.gStyle.fGridColor>0?x.gStyle.fGridColor:this.getAxis("y")?.fAxisColor??1;let he="";this.y_handle.ticks.forEach(V=>{he+=this.swap_xy?`M${V},0v${U}`:`M0,${V}h${k}`}),p.append("svg:path").attr("class","ygrid").attr("d",he).style("stroke",this.getColor(ee)||"black").style("stroke-width",x.gStyle.fGridWidth).style("stroke-dasharray",(0,ot.Ov)(Z))}}axisAsText(p,C){const I=this[`${p}_handle`];return I?I.axisAsText(C,x.settings[p.toUpperCase()+"ValuesFormat"]):C.toPrecision(4)}hasDrawnAxes(p,C){return!p&&!C&&this.axes_drawn}drawAxes(p,C,I,U,k,Z){var ee=this;return(0,Te.A)(function*(){if(ee.cleanAxesDrawings(),ee.xmin===ee.xmax||ee.ymin===ee.ymax)return!1;void 0===U&&(U=0);const he=ee.getFrameSvg().selectChild(".axis_layer"),V=ee.getFrameWidth(),b=ee.getFrameHeight(),P=ee.getPadPainter(),T=P.getRootPad(!0);ee.x_handle.invert_side=U>=10,ee.x_handle.lbls_both_sides=!ee.x_handle.invert_side&&T?.fTickx>1,ee.x_handle.has_obstacle=k,ee.y_handle.invert_side=U%10==1,ee.y_handle.lbls_both_sides=!ee.y_handle.invert_side&&T?.fTicky>1,ee.y_handle.has_obstacle=Z;const z=ee.swap_xy?ee.y_handle:ee.x_handle,W=ee.swap_xy?ee.x_handle:ee.y_handle;(!C||!I)&&P._fast_drawing&&(C=I=!0);let fe=Promise.resolve(!0);if(!C||!I){const we=!p&&x.settings.CanAdjustFrame,Me=z.drawAxis(he,V,b,z.invert_side?null:`translate(0,${b})`,T?.fTickx?-b:0,C,void 0,!1,P.getPadHeight()-b-ee.getFrameY()),je=W.drawAxis(he,V,b,W.invert_side?`translate(${V})`:null,T?.fTicky?V:0,I,W.invert_side?0:ee._frame_x,we);fe=Promise.all([Me,je]).then(()=>{if(ee.drawGrids(),!we)return;let Ge=0;const lt=W.position;return-.2*V0&<<.3*V&&ee.shrink_frame_left>0&</V>ee.shrink_frame_left&&(Ge=-ee.shrink_frame_left,ee.shrink_frame_left=0),Ge?(ee.shrinkFrame(Ge,0),ee.redraw().then(()=>ee.drawAxes(!0))):void 0})}return fe.then(()=>(p||(ee.axes_drawn=!0),!0))})()}drawAxes2(p,C){const I=this.getFrameSvg().selectChild(".axis_layer"),U=this.getFrameWidth(),k=this.getFrameHeight(),Z=this.getPadPainter(),ee=Z.getRootPad(!0);p&&(this.x2_handle.invert_side=!0,this.x2_handle.lbls_both_sides=!1,this.x2_handle.has_obstacle=!1),C&&(this.y2_handle.invert_side=!0,this.y2_handle.lbls_both_sides=!1);let b,P,he=this.swap_xy?this.y2_handle:this.x2_handle,V=this.swap_xy?this.x2_handle:this.y2_handle;return(he||V)&&Z._fast_drawing&&(he=V=null),he&&(b=he.drawAxis(I,U,k,he.invert_side?null:`translate(0,${k})`,ee?.fTickx?-k:0,!1,void 0,!1)),V&&(P=V.drawAxis(I,U,k,V.invert_side?`translate(${U})`:null,ee?.fTicky?U:0,!1,V.invert_side?0:this._frame_x,!1)),Promise.all([b,P])}updateAttributes(p){const C=this.getPadPainter(),I=C?.getRootPad(!0),U=this.getObject();(void 0===this.fX1NDC||p&&!this.modified_NDC)&&(I?(this.fX1NDC=I.fLeftMargin,this.fX2NDC=1-I.fRightMargin,this.fY1NDC=I.fBottomMargin,this.fY2NDC=1-I.fTopMargin):(this.fX1NDC=x.gStyle.fPadLeftMargin,this.fX2NDC=1-x.gStyle.fPadRightMargin,this.fY1NDC=x.gStyle.fPadBottomMargin,this.fY2NDC=1-x.gStyle.fPadTopMargin)),void 0===this.fillatt&&(this.createAttFill(U?{attr:U}:I?.fFrameFillColor?{pattern:I.fFrameFillStyle,color:I.fFrameFillColor}:I?{attr:I}:{pattern:1001,color:0}),!U&&this.fillatt.empty()&&C?.iscan?this.fillatt.setSolidColor("white"):4e3===I?.fFillStyle&&!this.fillatt.empty()&&this.fillatt.setOpacity(0)),this.createAttLine(U||void 0===I?.fFrameLineColor?{attr:U,color:"black"}:{color:I.fFrameLineColor,width:I.fFrameLineWidth,style:I.fFrameLineStyle})}sizeChanged(){const p=this.getPadPainter()?.getRootPad(!0);p&&(p.fLeftMargin=this.fX1NDC,p.fRightMargin=1-this.fX2NDC,p.fBottomMargin=this.fY1NDC,p.fTopMargin=1-this.fY2NDC,this.setRootPadRange(p)),this.interactiveRedraw("pad","frame")}cleanXY(){delete this.grx,delete this.gry,delete this.grz,delete this.grx2,delete this.gry2,this.x_handle?.cleanup(),this.y_handle?.cleanup(),this.z_handle?.cleanup(),this.x2_handle?.cleanup(),this.y2_handle?.cleanup(),delete this.x_handle,delete this.y_handle,delete this.z_handle,delete this.x2_handle,delete this.y2_handle}cleanAxesDrawings(){this.x_handle?.removeG(),this.y_handle?.removeG(),this.z_handle?.removeG(),this.x2_handle?.removeG(),this.y2_handle?.removeG(),this.draw_g?.selectChild(".axis_layer").selectAll("*").remove(),this.axes_drawn=!1}cleanFrameDrawings(){(0,x.isFunc)(this.create3DScene)&&this.create3DScene(-1),this.cleanAxesDrawings(),this.cleanXY(),this.ranges_set=!1,this.xmin=this.xmax=0,this.ymin=this.ymax=0,this.zmin=this.zmax=0,this.zoom_xmin=this.zoom_xmax=0,this.zoom_ymin=this.zoom_ymax=0,this.zoom_zmin=this.zoom_zmax=0,this.scale_xmin=this.scale_xmax=0,this.scale_ymin=this.scale_ymax=0,this.scale_zmin=this.scale_zmax=0,this.draw_g?.selectChild(".main_layer").selectAll("*").remove(),this.draw_g?.selectChild(".upper_layer").selectAll("*").remove(),this.xaxis=null,this.yaxis=null,this.zaxis=null,this.draw_g&&(this.draw_g.selectAll("*").remove(),this.draw_g.on("mousedown",null).on("dblclick",null).on("wheel",null).on("contextmenu",null).property("interactive_set",null),this.draw_g.remove()),delete this.draw_g,this.keys_handler&&(window.removeEventListener("keydown",this.keys_handler,!1),this.keys_handler=null)}cleanup(){this.cleanFrameDrawings(),delete this._click_handler,delete this._dblclick_handler,delete this.enabledKeys;const p=this.getPadPainter();p?.frame_painter_ref===this&&delete p.frame_painter_ref,super.cleanup()}redraw(){const p=this.getPadPainter();p&&(p.frame_painter_ref=this),this.updateAttributes();const C=p?.getPadRect()??{width:10,height:10},I=Math.round(C.width*this.fX1NDC),U=Math.round(C.height*(1-this.fY2NDC));let V,b,P,k=Math.round(C.width*(this.fX2NDC-this.fX1NDC)),Z=Math.round(C.height*(this.fY2NDC-this.fY1NDC)),ee=!1,he=!1;return p?.options&&(p.options.RotateFrame&&(ee=!0),p.options.FixFrame&&(he=!0)),ee?(V=`rotate(-90,${I},${U}) translate(${I-Z},${U})`,[k,Z]=[Z,k]):V=(0,ve.bk)(I,U),this._frame_x=I,this._frame_y=U,this._frame_width=k,this._frame_height=Z,this._frame_rotate=ee,this._frame_fixpos=he,this.mode3d||(this.draw_g=this.getFrameSvg(),this.draw_g.empty()?(this.draw_g=this.getLayerSvg("primitives_layer").append("svg:g").attr("class","root_frame"),this.isBatchMode()||this.draw_g.append("svg:title").text(""),b=this.draw_g.append("svg:path"),P=this.draw_g.append("svg:svg").attr("class","main_layer").attr("x",0).attr("y",0).attr("overflow","hidden"),this.draw_g.append("svg:g").attr("class","axis_layer"),this.draw_g.append("svg:g").attr("class","upper_layer")):(b=this.draw_g.selectChild("path"),P=this.draw_g.selectChild(".main_layer")),this.axes_drawn=!1,this.draw_g.attr("transform",V),b.attr("d",`M0,0H${k}V${Z}H0Z`).call(this.fillatt.func).call(this.lineatt.func),P.attr("width",k).attr("height",Z).attr("viewBox",`0 0 ${k} ${Z}`)),this}changeAxisLog(p,C){const I=this.getPadPainter(),U=I?.getRootPad(!0);if(!U)return;I._interactively_changed=!0;const k=`fLog${p}`;return U[k]||(this.swap_xy&&"x"===p?p="y":this.swap_xy&&"y"===p&&(p="x"),"labels"!==this[`${p}_handle`]?.kind)?(("toggle"===C||void 0===C)&&(C=U[k]?0:1),U[k]=C,this.interactiveRedraw("pad",`log${p}`)):void 0}toggleAxisLog(p){return this.changeAxisLog(p,"toggle")}fillContextMenu(p,C,I){const U=this.getMainPainter(!0),k=this.getPadPainter(),Z=k?.getRootPad(!0),ee="pal"===C;if(ee&&(C="z"),"x"===C||"y"===C||"z"===C||"x2"===C||"y2"===C){const V=I||this[C+"axis"],b=this[`${C}_handle`];if(!(0,x.isFunc)(V?.TestBit))return!1;if(p.add(`header: ${C.toUpperCase()} axis`),p.add("Unzoom",()=>this.unzoom(C)),Z){const P="fLog"+C[0];p.add("sub:SetLog "+C[0],()=>{p.input("Enter log kind: 0 - off, 1 - log10, 2 - log2, 3 - ln, ...",Z[P],"int",0,1e4).then(T=>{this.changeAxisLog(C[0],T)})}),p.addchk(0===Z[P],"linear",()=>this.changeAxisLog(C[0],0)),p.addchk(1===Z[P],"log10",()=>this.changeAxisLog(C[0],1)),p.addchk(2===Z[P],"log2",()=>this.changeAxisLog(C[0],2)),p.addchk(3===Z[P],"ln",()=>this.changeAxisLog(C[0],3)),p.addchk(4===Z[P],"log4",()=>this.changeAxisLog(C[0],4)),p.addchk(8===Z[P],"log8",()=>this.changeAxisLog(C[0],8)),p.add("endsub:")}return p.addchk(V.TestBit(ke.rb.kMoreLogLabels),"More log",P=>{V.InvertBit(ke.rb.kMoreLogLabels),U?.snapid&&1===C.length?U.interactiveRedraw("pad",`exec:SetMoreLogLabels(${P})`,C):this.interactiveRedraw("pad")}),p.addchk(b?.noexp??V.TestBit(ke.rb.kNoExponent),"No exponent",P=>{P!==V.TestBit(ke.rb.kNoExponent)&&V.InvertBit(ke.rb.kNoExponent),b&&(b.noexp_changed=!0),this[`${C}_noexp_changed`]=!0,U?.snapid&&1===C.length?U.interactiveRedraw("pad",`exec:SetNoExponent(${P})`,C):this.interactiveRedraw("pad")}),"z"===C&&(0,x.isFunc)(U?.fillPaletteMenu)&&U.fillPaletteMenu(p,!ee),"labels"===b?.kind&&V.fNbins>20&&p.add("Find label",()=>p.input("Label id").then(P=>{if(P)for(let T=0;Tthis.unzoom("x")),this.zoom_ymin!==this.zoom_ymax&&p.add("Unzoom Y",()=>this.unzoom("y")),this.zoom_zmin!==this.zoom_zmax&&p.add("Unzoom Z",()=>this.unzoom("z")),this.zoom_x2min!==this.zoom_x2max&&p.add("Unzoom X2",()=>this.unzoom("x2")),this.zoom_y2min!==this.zoom_y2max&&p.add("Unzoom Y2",()=>this.unzoom("y2")),p.add("Unzoom all",()=>this.unzoom("all")),Z&&(p.addchk(Z.fLogx,"SetLogx",()=>this.toggleAxisLog("x")),p.addchk(Z.fLogy,"SetLogy",()=>this.toggleAxisLog("y")),(0,x.isFunc)(U?.getDimension)&&U.getDimension()>1&&p.addchk(Z.fLogz,"SetLogz",()=>this.toggleAxisLog("z")),p.add("separator")),p.addchk(this.isTooltipAllowed(),"Show tooltips",()=>this.setTooltipAllowed("toggle")),p.addAttributesMenu(this,he?"":"Frame "),p.add("Save to gStyle",()=>{x.gStyle.fPadBottomMargin=this.fY1NDC,x.gStyle.fPadTopMargin=1-this.fY2NDC,x.gStyle.fPadLeftMargin=this.fX1NDC,x.gStyle.fPadRightMargin=1-this.fX2NDC,this.fillatt?.saveToStyle("fFrameFillColor","fFrameFillStyle"),this.lineatt?.saveToStyle("fFrameLineColor","fFrameLineWidth","fFrameLineStyle")},"Store frame position and graphical attributes to gStyle"),p.add("separator"),p.add("sub:Save as"),["svg","png","jpeg","pdf","webp"].forEach(V=>p.add(`frame.${V}`,()=>k.saveAs(V,"frame",`frame.${V}`))),p.add("endsub:"),!0}fillWebObjectOptions(p){p.fcust="frame",p.fopt=[this.scale_xmin||0,this.scale_ymin||0,this.scale_xmax||0,this.scale_ymax||0]}getFrameX(){return this._frame_x||0}getFrameY(){return this._frame_y||0}getFrameWidth(){return this._frame_width||0}getFrameHeight(){return this._frame_height||0}getFrameRect(){return{x:this._frame_x||0,y:this._frame_y||0,width:this.getFrameWidth(),height:this.getFrameHeight(),transform:this.draw_g?.attr("transform")||"",hint_delta_x:0,hint_delta_y:0}}configureUserClickHandler(p){this._click_handler=(0,x.isFunc)(p)?p:null}configureUserDblclickHandler(p){this._dblclick_handler=(0,x.isFunc)(p)?p:null}zoom(p,C,I,U,k,Z){var ee=this;return(0,Te.A)(function*(){"x"===p?(p=C,C=I,I=void 0):"y"===p?(U=I,I=C,p=C=void 0):"z"===p&&(k=C,Z=I,p=C=I=void 0);let he=p!==C,V=I!==U,b=k!==Z,P=!1,T=!1,z=!1;if(he){let fe=0;p<=ee.xmin&&(p=ee.xmin,fe++),C>=ee.xmax&&(C=ee.xmax,fe++),2===fe&&(he=!1,P=!0)}else P=p===C&&0===p;if(V){let fe=0;(I<=ee.ymin||!ee.ymin&&ee.logy&&(!ee.y_handle?.log_min_nz&&I=ee.ymax&&(U=ee.ymax,fe++),2===fe&&1!==ee.scales_ndim&&(V=!1,T=!0)}else T=I===U&&0===I;if(b){let fe=0;k<=ee.zmin&&(k=ee.zmin,fe++),Z>=ee.zmax&&(Z=ee.zmax,fe++),2===fe&&ee.scales_ndim>2&&(b=!1,z=!0)}else z=k===Z&&0===k;let W=!1;return(he||V||b)&&ee.forEachPainter(fe=>{(0,x.isFunc)(fe.canZoomInside)&&(he&&fe.canZoomInside("x",p,C)&&(ee.zoom_xmin=p,ee.zoom_xmax=C,W=!0,he=!1),V&&fe.canZoomInside("y",I,U)&&(ee.zoom_ymin=I,ee.zoom_ymax=U,W=!0,V=!1),b&&fe.canZoomInside("z",k,Z)&&(ee.zoom_zmin=k,ee.zoom_zmax=Z,W=!0,b=!1))}),(P||T||z)&&(P&&(ee.zoom_xmin!==ee.zoom_xmax&&(W=!0),ee.zoom_xmin=ee.zoom_xmax=0),T&&(ee.zoom_ymin!==ee.zoom_ymax&&(W=!0,ue(ee.getMainPainter())),ee.zoom_ymin=ee.zoom_ymax=0),z&&(ee.zoom_zmin!==ee.zoom_zmax&&(W=!0),ee.zoom_zmin=ee.zoom_zmax=0),W||ee.getPadPainter()?.painters?.forEach(fe=>{(0,x.isFunc)(fe?.unzoomUserRange)&&fe.unzoomUserRange(P,T,z)&&(W=!0)})),!!W&&ee.interactiveRedraw("pad","zoom").then(()=>!0)})()}zoomSingle(p,C,I){var U=this;return(0,Te.A)(function*(){if(!U[p+"_handle"])return!1;let k=C!==I,Z=!1;if(k){let he=0;C<=U[p+"min"]&&(C=U[p+"min"],he++),I>=U[p+"max"]&&(I=U[p+"max"],he++),2===he&&(k=!1,Z=!0)}else Z=C===I&&0===C;let ee=!1;return k&&U.forEachPainter(he=>{(0,x.isFunc)(he.canZoomInside)&&k&&he.canZoomInside(p[0],C,I)&&(U[`zoom_${p}min`]=C,U[`zoom_${p}max`]=I,ee=!0,k=!1)}),Z&&(U[`zoom_${p}min`]!==U[`zoom_${p}max`]&&(ee=!0,"y"===p&&ue(U.getMainPainter())),U[`zoom_${p}min`]=U[`zoom_${p}max`]=0),!!ee&&U.interactiveRedraw("pad","zoom").then(()=>!0)})()}isAxisZoomed(p){return this[`zoom_${p}min`]!==this[`zoom_${p}max`]}unzoom(p,C,I){var U=this;return(0,Te.A)(function*(){return"all"===p?U.unzoom("x2").then(()=>U.unzoom("y2")).then(()=>U.unzoom("xyz")):"x2"===p||"y2"===p?U.zoomSingle(p,0,0).then(k=>(k&&U.zoomChangedInteractive(p,"unzoom"),k)):(typeof p>"u"?p=C=I=!0:(0,x.isStr)(p)&&(I=p.indexOf("z")>=0,C=p.indexOf("y")>=0,p=p.indexOf("x")>=0),U.zoom(p?0:void 0,p?0:void 0,C?0:void 0,C?0:void 0,I?0:void 0,I?0:void 0).then(k=>(k&&p&&U.zoomChangedInteractive("x","unzoom"),k&&C&&U.zoomChangedInteractive("y","unzoom"),k&&I&&U.zoomChangedInteractive("z","unzoom"),k)))})()}zoomChangedInteractive(p,C){if("reset"===p)return void(this.zoom_changed_x=this.zoom_changed_y=this.zoom_changed_z=void 0);if(!p||"any"===p)return this.zoom_changed_x||this.zoom_changed_y||this.zoom_changed_z;if("x"!==p&&"y"!==p&&"z"!==p)return;const I="zoom_changed_"+p;if(void 0===C)return this[I];"unzoom"!==C?C&&(this[I]=!0):this[I]=void 0===this[I]}revertAxis(p,C){return this[`${p}_handle`]?.revertPoint(C)??0}showAxisStatus(p,C){const I=this.getAxis(p),U=(0,L.Wn)(C,this.getFrameSvg().node());let k=p,Z=x.clTAxis,ee="x"===p?0:1;I&&(k=I.fName,Z=I.fTitle||`TAxis object for ${p}`),this.swap_xy&&(ee=1-ee);const he=this.revertAxis(p,U[ee]);this.showObjectStatus(k,Z,`${p} : ${this.axisAsText(p,he)}`,`${U[0]},${U[1]}`)}addKeysHandler(){this.isBatchMode()||(E.assign(this),this.addFrameKeysHandler())}addInteractivity(p){return!(this.isBatchMode()||!x.settings.Zooming&&!x.settings.ContextMenu)&&(E.assign(this),p||this.addBasicInteractivity(),this.addFrameInteractivity(p))}}},5102:(Yr,mt,Se)=>{"use strict";Se.d(mt,{DR:()=>Q,O4:()=>X,cw:()=>F,jg:()=>B});var Te=Se(4882),x=Se(8872),L=Se(8362),ve=Se(2985),ke=Se(2843),ot=Se(1922),Ye=Se(4082),Ze=Se(4246),Re=Se(5638),He=Se(7900),Ve=Se(5992),De=Se(6157);const F="TButton",J=(0,x.BIT)(22);function Y($,g){return Math.round((g||1)*($.iscan||!$.has_canvas?16:12))}function ue($,g,E){E?.preventDefault(),E?.stopPropagation();const _=$.getLayerSvg("btns_layer",$.this_pad_name),v=_.select("[name='Toggle']");if(v.empty())return;let p=v.property("buttons_state");v.property("timout_handler")&&("timeout"!==g&&clearTimeout(v.property("timout_handler")),v.property("timout_handler",null));let C=!1;switch(g){case"enable":C=!0,$.btns_active_flag=!0;break;case"enterbtn":return void($.btns_active_flag=!0);case"timeout":C=!1;break;case"toggle":p=!p,v.property("buttons_state",p),C=p;break;case"disable":case"leavebtn":return $.btns_active_flag=!1,void(p||v.property("timout_handler",setTimeout(()=>ue($,"timeout"),1200)))}_.selectAll("svg").each(function(){this!==v.node()&&(0,L.Lt)(this).style("display",C?"":"none")})}const Q={alignButtons($,g,E){const _=Y(this,1.25),v=($.property("nextx")||0)+_;let p,C;$.property("vertical")?(p=$.property("leftside")?2:g-_,C=E-v):(p=$.property("leftside")?2:g-v,C=E-_),(0,ke.bk)($,p,C)},findPadButton($){const g=this.getLayerSvg("btns_layer",this.this_pad_name);let E="";return g.empty()||g.selectAll("svg").each(function(){(0,L.Lt)(this).attr("key")===$&&(E=(0,L.Lt)(this).attr("name"))}),E},removePadButtons(){const $=this.getLayerSvg("btns_layer",this.this_pad_name);$.empty()||($.selectAll("*").remove(),$.property("nextx",null))},showPadButtons(){const $=this.getLayerSvg("btns_layer",this.this_pad_name);if($.empty()||($.selectAll("*").remove(),!this._buttons))return;const g=this.iscan||!this.has_canvas;let _,v=$.property("leftside")?Y(this,1.25):0;if(this._fast_drawing)_=Ve.IK.createSVG($,Ve.IK.circle,Y(this),"enlargePad",!1).attr("name","Enlarge").attr("x",0).attr("y",0).on("click",p=>this.clickPadButton("enlargePad",p));else{_=Ve.IK.createSVG($,Ve.IK.rect,Y(this),"Toggle tool buttons",!1).attr("name","Toggle").attr("x",0).attr("y",0).property("buttons_state","popup"!==x.settings.ToolBar||x.browser.touches).on("click",p=>ue(this,"toggle",p)),_.node()._mouseenter=()=>ue(this,"enable"),_.node()._mouseleave=()=>ue(this,"disable");for(let p=0;pthis.clickPadButton(C.funcname,k)),U.node()._mouseenter=()=>ue(this,"enterbtn"),U.node()._mouseleave=()=>ue(this,"leavebtn"),v+=Y(this,1.25)}}$.property("nextx",v),this.alignButtons($,this.getPadWidth(),this.getPadHeight()),$.property("vertical")?_.attr("y",v):$.property("leftside")||_.attr("x",v)},assign($){Object.assign($,this)}};function X($){if(!$?.snapid)return null;const g={_typename:"TWebObjectOptions",snapid:$.snapid.toString(),opt:$.getDrawOpt(!0),fcust:"",fopt:[]};return(0,x.isFunc)($.fillWebObjectOptions)&&$.fillWebObjectOptions(g),g}class B extends ot.JW{constructor(g,E,_){super(g,E),this.pad=E,this.iscan=_,this.this_pad_name="",!this.iscan&&E?.fName&&(this.this_pad_name=E.fName.replace(" ","_"),(!/^[A-Za-z][A-Za-z0-9_]*$/.test(this.this_pad_name)||"button"===this.this_pad_name&&E._typename===F)&&(this.this_pad_name="jsroot_pad_"+x.internals.id_counter++)),this.painters=[],this.has_canvas=!0,this.forEachPainter=this.forEachPainterInPad;const v=this.selectDom();!v.empty()&&v.property("_batch_mode")&&(this.batch_mode=!0)}isBatchMode(){return void 0!==this.batch_mode?this.batch_mode:!!(0,x.isBatchMode)()||!(this.iscan||!this.has_canvas)&&this.getCanvPainter()?.isBatchMode()}isRoot6(){return!0}isEditable(){return this.pad?.fEditable??!0}svg_this_pad(){return this.getPadSvg(this.this_pad_name)}getMainPainter(){return this.main_painter_ref||null}setMainPainter(g,E){(!this.main_painter_ref||E)&&(this.main_painter_ref=g)}cleanup(){this._doing_draw&&console.error("pad drawing is not completed when cleanup is called"),this.painters.forEach(E=>E.cleanup());const g=this.svg_this_pad();g.empty()||(g.property("pad_painter",null),this.iscan||g.remove()),delete this.main_painter_ref,delete this.frame_painter_ref,delete this.pads_cache,delete this.custom_palette,delete this._pad_x,delete this._pad_y,delete this._pad_width,delete this._pad_height,delete this._doing_draw,delete this._interactively_changed,delete this._snap_primitives,delete this._last_grayscale,delete this._custom_colors,delete this._custom_palette_indexes,delete this._custom_palette_colors,delete this.root_colors,this.painters=[],this.pad=null,this.this_pad_name=void 0,this.has_canvas=!1,(0,ot.QD)({pp:this,active:!1}),super.cleanup()}getFramePainter(){return this.frame_painter_ref}getPadWidth(){return this._pad_width||0}getPadHeight(){return this._pad_height||0}getPadRect(){return{x:this._pad_x||0,y:this._pad_y||0,width:this.getPadWidth(),height:this.getPadHeight()}}getFrameRect(){const g=this.getFramePainter();if(g)return g.getFrameRect();const E=this.getPadWidth(),_=this.getPadHeight(),v={};return this.pad?(v.szx=Math.round(Math.max(0,.5-Math.max(this.pad.fLeftMargin,this.pad.fRightMargin))*E),v.szy=Math.round(Math.max(0,.5-Math.max(this.pad.fBottomMargin,this.pad.fTopMargin))*_)):(v.szx=Math.round(.5*E),v.szy=Math.round(.5*_)),v.width=2*v.szx,v.height=2*v.szy,v.x=Math.round(E/2-v.szx),v.y=Math.round(_/2-v.szy),v.hint_delta_x=v.szx,v.hint_delta_y=v.szy,v.transform=(0,ke.bk)(v.x,v.y)||"",v}getRootPad(g){return void 0===g||g?this.pad:null}cleanPrimitives(g){if((0,x.isFunc)(g))for(let E=this.painters.length-1;E>=0;--E)g(this.painters[E])&&(this.painters[E].cleanup(),this.painters.splice(E,1))}removePrimitive(g){const E=this.painters[g],_=[];let v=g;for(let p=this.painters.length-1;p>=0;--p)(p===g||this.painters[p].isSecondary(E))&&(_.push(this.painters[p]),this.painters.splice(p,1),p<=g&&v--);return _.forEach(p=>{p.cleanup(),this.main_painter_ref===p&&(delete this.main_painter_ref,v=-111)}),v}getCustomPalette(){return this.custom_palette||this.getCanvPainter()?.custom_palette}getNumPainters(){return this.painters.length}getAutoColor(g){g||(g=this._num_primitives||5),g<2&&(g=2);let E=this._auto_color??0;this._auto_color=(E+1)%g,E>=g&&(E=g-1);const _=this._custom_palette_indexes||this.getCanvPainter()?._custom_palette_indexes;if(_?.length)return _[Math.round(E*(_.length-3)/(g-1))];this._auto_palette||(this._auto_palette=(0,ve.jh)(x.settings.Palette,this.isGrayscale()));const v=Math.round(E*(this._auto_palette.getLength()-3)/(g-1)),p=this._auto_palette.getColor(v);return this.addColor(p)}forEachPainterInPad(g,E){E||(E="all"),"objects"!==E&&g(this);for(let _=0;_{delete _._color_palette}),this.root_colors=g?(0,ve.uw)(this._custom_colors):this._custom_colors,this._last_grayscale=g,this.custom_palette=this._custom_palette_colors?new ve.rE(this._custom_palette_colors,g):null}createCanvasSvg(g,E){const _=this.isBatchMode();let U,k,Z,p=null,C=null,I=null;if(g>0){if(this._fixed_size)return g>1;if(C=this.getCanvSvg(),C.empty()||(p=C.property("height_factor"),I=this.testMainResize(g,null,p),!I.changed&&1===g))return!1;_||(U=this.getLayerSvg("btns_layer",this.this_pad_name)),k=this.getLayerSvg("info_layer",this.this_pad_name),Z=C.selectChild(".canvas_fillrect")}else{const he=this.selectDom();"static"===he.style("position")&&he.style("position","relative"),C=he.append("svg").attr("class","jsroot root_canvas").property("pad_painter",this).property("current_pad","").property("redraw_by_resize",!1),this.setTopPainter(),_?C.attr("xmlns","http://www.w3.org/2000/svg"):this.online_canvas||C.append("svg:title").text("ROOT canvas"),(!_||this.pad.fFillStyle>0)&&(Z=C.append("svg:path").attr("class","canvas_fillrect")),_||Z.style("pointer-events","visibleFill").on("dblclick",V=>this.enlargePad(V,!0)).on("click",()=>this.selectObjectPainter()).on("mouseenter",()=>this.showObjectStatus()).on("contextmenu",x.settings.ContextMenu?V=>this.padContextMenu(V):null),C.append("svg:g").attr("class","primitives_layer"),k=C.append("svg:g").attr("class","info_layer"),_||(U=C.append("svg:g").attr("class","btns_layer").property("leftside","left"===x.settings.ToolBarSide).property("vertical",x.settings.ToolBarVert)),p=.66,this.pad?.fCw&&this.pad?.fCh&&this.pad?.fCw>0&&(p=this.pad.fCh/this.pad.fCw,(p<.1||p>10)&&(p=.66)),this._fixed_size?(he.style("overflow","auto"),I={width:this.pad.fCw,height:this.pad.fCh},(!I.width||!I.height)&&(I=(0,ke.xh)(he))):I=this.testMainResize(2,E,p)}this.setGrayscale(),this.createAttFill({attr:this.pad}),I.width<=5||I.height<=5?(C.style("display","none"),console.warn(`Hide canvas while geometry too small w=${I.width} h=${I.height}`),this._pad_width&&this._pad_height?(I.width=this._pad_width,I.height=this._pad_height):(I.width=800,I.height=600)):C.style("display",null),C.attr("x",0).attr("y",0).style("position","absolute"),this._fixed_size?C.attr("width",I.width).attr("height",I.height):C.style("width","100%").style("height","100%").style("left",0).style("top",0).style("bottom",0).style("right",0),C.style("filter",x.settings.DarkMode||this.pad?.$dark?"invert(100%)":null),C.attr("viewBox",`0 0 ${I.width} ${I.height}`).attr("preserveAspectRatio","none").property("height_factor",p).property("draw_x",0).property("draw_y",0).property("draw_width",I.width).property("draw_height",I.height),this._pad_x=0,this._pad_y=0,this._pad_width=I.width,this._pad_height=I.height,Z&&(Z.attr("d",`M0,0H${I.width}V${I.height}H0Z`).call(this.fillatt.func),this.drawActiveBorder(Z)),this.setFastDrawing(I.width*(1-this.pad.fLeftMargin-this.pad.fRightMargin),I.height*(1-this.pad.fBottomMargin-this.pad.fTopMargin)),this.alignButtons&&U&&this.alignButtons(U,I.width,I.height);let ee=k.selectChild(".canvas_date");if(x.gStyle.fOptDate){ee.empty()&&(ee=k.append("text").attr("class","canvas_date"));const he=new Date,V=Math.round(I.height*(1-x.gStyle.fDateY));let b=Math.round(I.width*x.gStyle.fDateX);!_&&b<25&&(b=25),x.gStyle.fOptDate>1&&he.setTime(1e3*x.gStyle.fOptDate),(0,ke.bk)(ee,b,V).style("text-anchor","start").text(he.toLocaleString("en-GB"))}else ee.remove();return x.gStyle.fOptFile&&this.getItemName()?this.drawItemNameOnCanvas(this.getItemName()):k.selectChild(".canvas_item").remove(),!0}drawItemNameOnCanvas(g){const E=this.getLayerSvg("info_layer",this.this_pad_name);let _=E.selectChild(".canvas_item");if(x.gStyle.fOptFile&&g){_.empty()&&(_=E.append("text").attr("class","canvas_item"));const v=this.getPadRect();(0,ke.bk)(_,Math.round(v.width*(1-x.gStyle.fDateX)),Math.round(v.height*(1-x.gStyle.fDateY))).style("text-anchor","end").text(g)}else _.remove()}isPadEnlarged(){return this.iscan||!this.has_canvas?"on"===this.enlargeMain("state"):this.getCanvSvg().property("pad_enlarged")===this.pad}enlargePad(g,E,_){if(g?.preventDefault(),g?.stopPropagation(),E&&this._websocket&&"off"===this.enlargeMain("state"))return;const v=this.getCanvSvg(),p=v.property("pad_enlarged");if(!this.iscan&&this.has_canvas&&(p||this.hasObjectsToDraw()||this.painters))p||_?p===this.pad?(this.enlargeMain(!1),v.property("pad_enlarged",null)):!_&&E&&console.error("missmatch with pad double click events"):(this.enlargeMain(!0,!0),v.property("pad_enlarged",this.pad),(0,ot.QD)({pp:this,active:!0}));else{if(this._fixed_size||!this.enlargeMain(!_&&"toggle"))return;"off"===this.enlargeMain("state")?v.property("pad_enlarged",null):(0,ot.QD)({pp:this,active:!0})}return this.checkResize(!0)}createPadSvg(g){if(!this.has_canvas)return this.createCanvasSvg(g?2:0),!0;const E=this.getCanvSvg(),_=E.property("draw_width"),v=E.property("draw_height"),p=E.property("pad_enlarged"),C=!(this.pad_draw_disabled||p&&p!==this.pad),I=this.isBatchMode();let he,V,b,U=Math.round(this.pad.fAbsWNDC*_),k=Math.round(this.pad.fAbsHNDC*v),Z=Math.round(this.pad.fAbsXlowNDC*_),ee=Math.round(v*(1-this.pad.fAbsYlowNDC))-k;if(p===this.pad&&(U=_,k=v,Z=ee=0),g?(he=this.svg_this_pad(),V=he.selectChild(".root_pad_border"),I||(b=this.getLayerSvg("btns_layer",this.this_pad_name)),this.addPadInteractive(!0)):(he=E.selectChild(".primitives_layer").append("svg:svg").classed("__root_pad_"+this.this_pad_name,!0).attr("pad",this.this_pad_name).property("pad_painter",this),I||he.append("svg:title").text("subpad "+this.this_pad_name),(!I||this.pad.fFillStyle>0||this.pad.fLineStyle>0&&this.pad.fLineColor>0)&&(V=he.append("svg:path").attr("class","root_pad_border")),I||V.style("pointer-events","visibleFill").on("dblclick",P=>this.enlargePad(P,!0)).on("click",()=>this.selectObjectPainter()).on("mouseenter",()=>this.showObjectStatus()).on("contextmenu",x.settings.ContextMenu?P=>this.padContextMenu(P):null),he.append("svg:g").attr("class","primitives_layer"),I||(b=he.append("svg:g").attr("class","btns_layer").property("leftside","left"!==x.settings.ToolBarSide).property("vertical",x.settings.ToolBarVert))),this.createAttFill({attr:this.pad}),this.createAttLine({attr:this.pad,color0:this.pad.fBorderMode?"":"none"}),he.style("display",C?null:"none").attr("viewBox",`0 0 ${U} ${k}`).attr("preserveAspectRatio","none").attr("x",Z).attr("y",ee).attr("width",U).attr("height",k).property("draw_x",Z).property("draw_y",ee).property("draw_width",U).property("draw_height",k),this._pad_x=Z,this._pad_y=ee,this._pad_width=U,this._pad_height=k,V){V.attr("d",`M0,0H${U}V${k}H0Z`).call(this.fillatt.func).call(this.lineatt.func),this.drawActiveBorder(V);let P=he.selectChild(".root_pad_border1"),T=he.selectChild(".root_pad_border2");if(this.pad.fBorderMode&&this.pad.fBorderSize){const z=this.pad.fBorderSize,W=this.pad.fBorderSize,fe=`M0,0h${U}l${-z},${W}h${2*z-U}v${k-2*W}l${-z},${W}z`,we=`M${U},${k}v${-k}l${-z},${W}v${k-2*W}h${2*z-U}l${-z},${W}z`;T.empty()&&(T=he.insert("svg:path",".primitives_layer").attr("class","root_pad_border2")),P.empty()&&(P=he.insert("svg:path",".primitives_layer").attr("class","root_pad_border1")),P.attr("d",this.pad.fBorderMode>0?fe:we).call(this.fillatt.func).style("fill",(0,L.Qh)(this.fillatt.color).brighter(.5).formatHex()),T.attr("d",this.pad.fBorderMode>0?we:fe).call(this.fillatt.func).style("fill",(0,L.Qh)(this.fillatt.color).darker(.5).formatHex())}else P.remove(),T.remove()}return this.setFastDrawing(U*(1-this.pad.fLeftMargin-this.pad.fRightMargin),k*(1-this.pad.fBottomMargin-this.pad.fTopMargin)),he.property("can3d")===x.constants.Embed3D.Overlay&&this.selectDom().select(".draw3d_"+this.this_pad_name).style("display",C?"":"none"),this.alignButtons&&b&&this.alignButtons(b,U,k),C}addPadInteractive(g=!1){if(this.iscan||this.isBatchMode())return;const E=this.getCanvSvg(),_=E.property("draw_width"),v=E.property("draw_height");(0,Re.WJ)(this,{cleanup:g,x:this._pad_x,y:this._pad_y,width:this._pad_width,height:this._pad_height,no_transform:!0,only_resize:!0,is_disabled:p=>E.property("pad_enlarged")||this.btns_active_flag||"move"===p&&(this._disable_dragging||this.getFramePainter()?.mode3d),getDrawG:()=>this.svg_this_pad(),pad_rect:{width:_,height:v},minwidth:20,minheight:20,move_resize:(p,C,I,U)=>{const k=this.pad.fAbsXlowNDC,Z=this.pad.fAbsYlowNDC,ee=I/_/this.pad.fAbsWNDC,he=U/v/this.pad.fAbsHNDC,V=p/_-k,b=1-(C+U)/v-Z;this.forEachPainterInPad(P=>{P.pad.fAbsXlowNDC+=(P.pad.fAbsXlowNDC-k)*(ee-1)+V,P.pad.fAbsYlowNDC+=(P.pad.fAbsYlowNDC-Z)*(he-1)+b,P.pad.fAbsWNDC*=ee,P.pad.fAbsHNDC*=he},"pads")},redraw:()=>this.interactiveRedraw("pad","padpos")})}disablePadDrawing(){!this.pad_draw_disabled&&this.has_canvas&&!this.iscan&&(this.pad_draw_disabled=!0,this.createPadSvg(!0))}checkSpecial(g){if(!g)return!1;if(g._typename===x.clTStyle)return Object.assign(x.gStyle,g),!0;if(g._typename===x.clTObjArray&&"ListOfColors"===g.name){if(this.options?.CreatePalette){let E=[];for(let _=g.arr.length-this.options.CreatePalette;_p&&p?.fName===g&&(!E||p?._typename===E),v=this._snap_primitives?.find(p=>_(1===p.fKind?p.fSnapshot:null));return v?v.fSnapshot:this.pad?.fPrimitives?.arr.find(_)}findPainterFor(g,E,_){return this.painters.find(v=>{const p=v.getObject();return!(!p||(!g||p!==g)&&(!E&&!_||E&&p.fName!==E||_&&p._typename!==_))})}hasObjectsToDraw(){return this.pad?.fPrimitives?.arr?.find(g=>g._typename!==x.clTPad)}syncDraw(g){const E={kind:g||"redraw"};return void 0===this._doing_draw?(this._doing_draw=[E],Promise.resolve(!0)):!(!0!==E.kind&&this._doing_draw.findIndex((_,v)=>v>0&&_.kind===E.kind)>0)&&(this._doing_draw.push(E),new Promise(_=>{E.func=_}))}doingDraw(){return void 0!==this._doing_draw}confirmDraw(){if(void 0===this._doing_draw)return console.warn("failure, should not happen");if(this._doing_draw.shift(),0===this._doing_draw.length)delete this._doing_draw;else{const g=this._doing_draw[0];g.func&&(g.func(),delete g.func)}}drawObject(){return(0,Te.A)(function*(){return console.log("Not possible to draw object without loading of draw.mjs"),null})()}drawPrimitives(g){var E=this;return(0,Te.A)(function*(){if(void 0===g)return E.iscan&&(E._start_tm=(new Date).getTime()),E._num_primitives=E.pad?.fPrimitives?.arr?.length||0,E.syncDraw(!0).then(()=>E.drawPrimitives(0));if(!E.pad||g>=E._num_primitives){if(E._start_tm){const v=(new Date).getTime()-E._start_tm;v>1e3&&console.log(`Canvas ${E.pad?.fName||"---"} drawing took ${(.001*v).toFixed(2)}s`),delete E._start_tm}return void E.confirmDraw()}const _=E.pad.fPrimitives.arr[g];return!_||g>0&&"TFrame"===_._typename&&E.getFramePainter()?E.drawPrimitives(g+1):E.drawObject(E.getDom(),_,E.pad.fPrimitives.opt[g]).then(v=>((0,x.isObject)(v)&&(v._primitive=!0),E.drawPrimitives(g+1)))})()}divide(g,E){var _=this;return(0,Te.A)(function*(){if(!_.pad.Divide(g,E))return _;const v=p=>p>=_.pad.fPrimitives.arr.length?_:_.drawObject(_.getDom(),_.pad.fPrimitives.arr[p]).then(()=>v(p+1));return v(0)})()}getSubPadPainter(g){for(let E=0;E{(0,x.isFunc)(v.processTooltipEvent)&&E.push(v)}),g&&(g.nproc=E.length),E.forEach(v=>{const p=v.processTooltipEvent(g)||{user_info:null};_.push(p),g?.painters&&(p.painter=v)}),_}changeDarkMode(g){this.getCanvSvg().style("filter",g??x.settings.DarkMode?"invert(100%)":null)}fillContextMenu(g){if(g.add(this.pad?`header:${this.pad._typename}::${this.pad.fName}`:"header:Canvas"),g.addchk(this.isTooltipAllowed(),"Show tooltips",()=>this.setTooltipAllowed("toggle")),!this._websocket){let _=function(v){this.pad[v.slice(1)]=parseInt(v[0]),this.interactiveRedraw("pad",v.slice(1))};g.addchk(this.pad?.fGridx,"Grid x",(this.pad?.fGridx?"0":"1")+"fGridx",_),g.addchk(this.pad?.fGridy,"Grid y",(this.pad?.fGridy?"0":"1")+"fGridy",_),g.add("sub:Ticks x"),g.addchk(0===this.pad?.fTickx,"normal","0fTickx",_),g.addchk(1===this.pad?.fTickx,"ticks on both sides","1fTickx",_),g.addchk(2===this.pad?.fTickx,"labels on both sides","2fTickx",_),g.add("endsub:"),g.add("sub:Ticks y"),g.addchk(0===this.pad?.fTicky,"normal","0fTicky",_),g.addchk(1===this.pad?.fTicky,"ticks on both sides","1fTicky",_),g.addchk(2===this.pad?.fTicky,"labels on both sides","2fTicky",_),g.add("endsub:"),g.addchk(this.pad?.fEditable,"Editable",v=>{this.pad.fEditable=v,this.interactiveRedraw("pad")}),this.iscan&&g.addchk(this.pad?.TestBit(J),"Gray scale",v=>{this.setGrayscale(v),this.interactiveRedraw("pad")}),(0,x.isFunc)(this.drawObject)&&g.add("Build legend",()=>this.buildLegend()),g.addAttributesMenu(this),g.add("Save to gStyle",()=>{this.pad&&(this.fillatt?.saveToStyle(this.iscan?"fCanvasColor":"fPadColor"),x.gStyle.fPadGridX=this.pad.fGridX,x.gStyle.fPadGridY=this.pad.fGridX,x.gStyle.fPadTickX=this.pad.fTickx,x.gStyle.fPadTickY=this.pad.fTicky,x.gStyle.fOptLogx=this.pad.fLogx,x.gStyle.fOptLogy=this.pad.fLogy,x.gStyle.fOptLogz=this.pad.fLogz)},"Store pad fill attributes, grid, tick and log scale settings to gStyle"),this.iscan&&g.addSettingsMenu(!1,!1,v=>{"dark"===v&&this.changeDarkMode()})}g.add("separator"),(0,x.isFunc)(this.hasMenuBar)&&(0,x.isFunc)(this.actiavteMenuBar)&&g.addchk(this.hasMenuBar(),"Menu bar",_=>this.actiavteMenuBar(_)),(0,x.isFunc)(this.hasEventStatus)&&(0,x.isFunc)(this.activateStatusBar)&&(0,x.isFunc)(this.canStatusBar)&&this.canStatusBar()&&g.addchk(this.hasEventStatus(),"Event status",()=>this.activateStatusBar("toggle")),(this.enlargeMain()||this.has_canvas&&this.hasObjectsToDraw())&&g.addchk(this.isPadEnlarged(),"Enlarge "+(this.iscan?"canvas":"pad"),()=>this.enlargePad());const E=this.this_pad_name||(this.iscan?"canvas":"pad");return g.add("sub:Save as"),["svg","png","jpeg","pdf","webp"].forEach(_=>g.add(`${E}.${_}`,()=>this.saveAs(_,this.iscan,`${E}.${_}`))),g.add("endsub:"),!0}padContextMenu(g){var E=this;return(0,Te.A)(function*(){return g.stopPropagation&&(g.stopPropagation(),g.preventDefault(),E.getFramePainter()?.setLastEventPos()),(0,He.ES)(g,E).then(_=>(E.fillContextMenu(_),E.fillObjectExecMenu(_,""))).then(_=>_.show())})()}redrawPad(g){var E=this;return(0,Te.A)(function*(){const _=E.syncDraw(g);if(!1===_)return console.log(`Prevent redrawing of ${E.pad.fName}`),!1;let v=!0;const p=C=>{for(;Cp(C))}return!0};return _.then(()=>(E.iscan?E.createCanvasSvg(2):v=E.createPadSvg(!0),p(0))).then(()=>(E.addPadInteractive(),E.confirmDraw(),(0,ot.OZ)()===E&&E.getCanvPainter()?.producePadEvent("padredraw",E),!0))})()}redraw(g){this.redrawPad(g)}needRedrawByResize(){const g=this.svg_this_pad();return!g.empty()&&g.property("can3d")===x.constants.Embed3D.Overlay||this.painters.findIndex(E=>!!(0,x.isFunc)(E.needRedrawByResize)&&E.needRedrawByResize())>=0}checkCanvasResize(g,E){if(this._ignore_resize||!this.iscan&&this.has_canvas)return!1;const _=this.syncDraw("canvas_resize");if(!1===_)return!1;(!0===g||!1===g)&&(E=g,g=null),(0,x.isObject)(g)&&g.force&&(E=!0),E||(E=this.needRedrawByResize());let v=!1;const p=C=>!v||C>=this.painters.length?(this.confirmDraw(),v):(0,x.getPromise)(this.painters[C].redraw(E?"redraw":"resize")).then(()=>p(C+1));return _.then(()=>(v=this.createCanvasSvg(E?2:1,g),v&&this.iscan&&this.pad&&this.online_canvas&&!this.embed_canvas&&!this.isBatchMode()&&(this._resize_tmout&&clearTimeout(this._resize_tmout),this._resize_tmout=setTimeout(()=>{delete this._resize_tmout,(0,x.isFunc)(this.sendResized)&&this.sendResized()},1e3)),p(0)))}updateObject(g){if(!g)return!1;this.pad.fBits=g.fBits,this.pad.fTitle=g.fTitle,this.pad.fGridx=g.fGridx,this.pad.fGridy=g.fGridy,this.pad.fTickx=g.fTickx,this.pad.fTicky=g.fTicky,this.pad.fLogx=g.fLogx,this.pad.fLogy=g.fLogy,this.pad.fLogz=g.fLogz,this.pad.fUxmin=g.fUxmin,this.pad.fUxmax=g.fUxmax,this.pad.fUymin=g.fUymin,this.pad.fUymax=g.fUymax,this.pad.fX1=g.fX1,this.pad.fX2=g.fX2,this.pad.fY1=g.fY1,this.pad.fY2=g.fY2,this.pad.fLeftMargin=g.fLeftMargin,this.pad.fRightMargin=g.fRightMargin,this.pad.fBottomMargin=g.fBottomMargin,this.pad.fTopMargin=g.fTopMargin,this.pad.fFillColor=g.fFillColor,this.pad.fFillStyle=g.fFillStyle,this.pad.fLineColor=g.fLineColor,this.pad.fLineStyle=g.fLineStyle,this.pad.fLineWidth=g.fLineWidth,this.pad.fPhi=g.fPhi,this.pad.fTheta=g.fTheta,this.pad.fEditable=g.fEditable,this.iscan&&this.checkSpecialsInPrimitives(g);const E=this.getFramePainter();if(E&&E.updateAttributes(!E.modified_NDC),!g.fPrimitives)return!1;let _=!1,v=0;for(let p=0;p8&&(he=8),he*=.1,g===_||E===v?(k.fX1NDC=.4*Z.fLeftMargin+.6*(1-Z.fRightMargin),k.fY1NDC=(1-he)*(1-Z.fTopMargin)+he*Z.fBottomMargin,k.fX2NDC=.99-Z.fRightMargin,k.fY2NDC=.99-Z.fTopMargin,void 0===C&&(C="autoplace")):(k.fX1NDC=g,k.fY1NDC=E,k.fX2NDC=_,k.fY2NDC=v),k.fFillStyle=1001,k.fTitle=p??"";const V=I.has_canvas?I.selectCurrentPad(I.this_pad_name):void 0;return I.drawObject(I.getDom(),k,C).then(b=>(I.selectCurrentPad(V),b))})()}addObjectPainter(g,E,_){if(g&&E&&E[_]&&void 0===g.snapid){this.painters.indexOf(g)<0&&this.painters.push(g),g.snapid=E[_].fObjectID;const v=p=>{if(p._unique_painter_id)for(let C=0;C=g.length)return delete _._snaps_map,_;const v=g[E];if(5===v.fKind)return _.processSnapStyle(v),_.drawNextSnap(g,E);if(4===v.fKind)return _.processSnapColors(v),_.drawNextSnap(g,E);const p=v.fObjectID;let C=(_._snaps_map[p]||0)+1,I=null;_._snaps_map[p]=C;for(let U=0;U<_.painters.length;++U)if(_.painters[U].snapid===p&&0==--C){I=_.painters[U];break}if(I){if(3===v.fKind)return I.redrawPadSnap(v).then(()=>_.drawNextSnap(g,E));let U;return 1===v.fKind?I.updateObject(v.fSnapshot,v.fOption,!0)&&(U=I.redraw()):2===v.fKind&&I.updateObject(v.fSnapshot)&&(U=I.redraw()),(0,x.getPromise)(U).then(()=>_.drawNextSnap(g,E))}if(3===v.fKind){const U=v.fSnapshot;U.fPrimitives=null;const k=new B(_.getDom(),U,!1);k.decodeOptions(v.fOption),k.addToPadPrimitives(_.this_pad_name),k.snapid=v.fObjectID,k.is_active_pad=!!v.fActive,k._readonly=v.fReadOnly??!1,k._snap_primitives=v.fPrimitives,k._has_execs=v.fHasExecs??!1,k.processSpecialSnaps(v.fPrimitives),k.createPadSvg(),k.matchObjectType(x.clTPad)&&v.fPrimitives.length>0&&k.addPadButtons(!0);const Z=k.selectCurrentPad(k.this_pad_name);return k.drawNextSnap(v.fPrimitives).then(()=>(k.addPadInteractive(),k.selectCurrentPad(Z),_.drawNextSnap(g,E)))}return 1!==v.fKind&&2!==v.fKind||"__ignore_drawing__"===v.fOption?_.drawNextSnap(g,E):_.drawObject(_.getDom(),v.fSnapshot,v.fOption).then(U=>(_.addObjectPainter(U,g,E),_.drawNextSnap(g,E)))})()}findSnap(g){if(this.snapid===g)return this;if(!this.painters)return null;for(let E=0;E0,void 0===E.snapid){E.snapid=g.fObjectID,E.draw_object=E.pad=_,E.isBatchMode()&&(!_.fCw||!_.fCh)&&(_.fCw=900,_.fCh=700),(!_.fCw||!_.fCh)&&(E._fixed_size=!1);const U=E.selectDom().attr("id");!E.isBatchMode()&&!E.use_openui&&!E.brlayout&&U&&(0,x.isStr)(U)&&(E.brlayout=new De.jX(U,null,E),E.brlayout.create(U,!0),E.setDom(E.brlayout.drawing_divid()),(0,Ve.d7)(E.brlayout)),E.processSpecialSnaps(g.fPrimitives),E.createCanvasSvg(0),E.isBatchMode()||E.addPadButtons(!0),typeof g.fHighlightConnect<"u"&&(E._highlight_connect=g.fHighlightConnect);let k=Promise.resolve(!0);if((0,x.isStr)(g.fScripts)&&g.fScripts){let Z="";0===g.fScripts.indexOf("load:")?Z=g.fScripts.slice(5).split(";"):0===g.fScripts.indexOf("assert:")&&(Z=g.fScripts.slice(7)),k=Z?(0,x.loadScript)(Z):(0,x.injectCode)(g.fScripts)}return k.then(()=>E.drawNextSnap(g.fPrimitives))}E.updateObject(_),E.iscan?E.createCanvasSvg(2):E.createPadSvg(!0);const v=(U,k,Z,ee)=>{const he=U.find(b=>!(void 0===b.snapid||!b.matchObjectType(Z)||ee&&(!b.getObject()||b.getObject().fName!==ee)));if(!he)return;const V=k.find(b=>!(1!==b.fKind||!b.fSnapshot||b.fSnapshot._typename!==Z||ee&&b.fSnapshot.fName!==ee));V&&he.snapid!==V.fObjectID&&(he.snapid=V.fObjectID)};g.fWithoutPrimitives||(v(E.painters,g.fPrimitives,"TFrame"),v(E.painters,g.fPrimitives,x.clTPaveText,"title"));let p=!1,C=!1;if(!g.fWithoutPrimitives)for(let U=0;Uee.fObjectID===k.snapid&&!ee.$checked);if(Z)p=!0,Z.$checked=!0;else if(U=E.removePrimitive(U),C=!0,-111===U){p=!1;break}}if(C&&delete E.pads_cache,!p&&!g.fWithoutPrimitives){const U=E.getFramePainter(),k=E.painters;E.painters=[],k.forEach(Z=>{U!==Z&&Z.cleanup()}),delete E.main_painter_ref,U&&(E.painters.push(U),U.cleanFrameDrawings(),U.redraw()),(0,x.isFunc)(E.removePadButtons)&&E.removePadButtons(),E.addPadButtons(!0)}const I=E.selectCurrentPad(E.this_pad_name);return E.drawNextSnap(g.fPrimitives).then(()=>(E.addPadInteractive(),E.selectCurrentPad(I),(0,ot.OZ)()===E&&E.getCanvPainter()?.producePadEvent("padredraw",E),E))})()}deliverWebCanvasEvent(g,E,_,v){if(!this._deliver_webcanvas_events||!this.is_active_pad||this.doingDraw()||void 0===E||void 0===_)return;const p=this.getCanvPainter();if(!p||!p._websocket||!p._websocket.canSend(2)||p._readonly)return;let C="";v&&v[0]&&v[0].painter?.snapid&&(C=v[0].painter.snapid.toString());const I=JSON.stringify([this.snapid,g,E.toString(),_.toString(),C]);p.sendWebsocket(`EVENT:${I}`)}createImage(g){var E=this;return(0,Te.A)(function*(){return"png"===g||"jpeg"===g||"svg"===g||"pdf"===g?E.produceImage(!0,g).then(_=>{if(!_||"svg"===g)return _;const v=_.indexOf("base64,");return v>0?_.slice(v+7):""}):""})()}getWebPadOptions(g,E){let _=void 0===g,v=null,p=!0;if(_&&this._readonly)return"";if("only_this"===g?(_=!0,p=!1):"with_subpads"===g&&(_=!0,p=!0),_&&(g=[]),E||(E=this.iscan?this:this.getCanvPainter()),this.snapid){if(v={_typename:"TWebPadOptions",snapid:this.snapid.toString(),active:!!this.is_active_pad,cw:0,ch:0,w:[],bits:0,primitives:[],logx:this.pad.fLogx,logy:this.pad.fLogy,logz:this.pad.fLogz,gridx:this.pad.fGridx,gridy:this.pad.fGridy,tickx:this.pad.fTickx,ticky:this.pad.fTicky,mleft:this.pad.fLeftMargin,mright:this.pad.fRightMargin,mtop:this.pad.fTopMargin,mbottom:this.pad.fBottomMargin,xlow:0,ylow:0,xup:1,yup:1,zx1:0,zx2:0,zy1:0,zy2:0,zz1:0,zz2:0},this.iscan)v.bits=this.getStatusBits(),v.cw=this.getPadWidth(),v.ch=this.getPadHeight(),v.w=[window.screenLeft,window.screenTop,window.outerWidth,window.outerHeight];else if(E){const C=E.getPadWidth(),I=E.getPadHeight(),U=this.getPadRect();v.cw=C,v.ch=I,v.xlow=U.x/C,v.ylow=1-(U.y+U.height)/I,v.xup=v.xlow+U.width/C,v.yup=v.ylow+U.height/I}this.getPadRanges(v)?g.push(v):console.log(`fail to get ranges for pad ${this.pad.fName}`)}return this.painters.forEach(C=>{if((0,x.isFunc)(C.getWebPadOptions))p&&C.getWebPadOptions(g,E);else{const I=X(C);I&&v.primitives.push(I)}}),_?(0,x.toJSON)(g):void 0}getPadRanges(g){if(!g)return!1;const E=this.getFramePainter(),_=this.svg_this_pad();if(g.ranges=E?.ranges_set??!1,g.ux1=g.px1=g.ranges?E.scale_xmin:0,g.uy1=g.py1=g.ranges?E.scale_ymin:0,g.ux2=g.px2=g.ranges?E.scale_xmax:0,g.uy2=g.py2=g.ranges?E.scale_ymax:0,g.uz1=g.ranges?E.scale_zmin??0:0,g.uz2=g.ranges?E.scale_zmax??0:0,E&&(E.zoom_xmin!==E.zoom_xmax&&(g.zx1=E.zoom_xmin,g.zx2=E.zoom_xmax),E.zoom_ymin!==E.zoom_ymax&&(g.zy1=E.zoom_ymin,g.zy2=E.zoom_ymax),E.zoom_zmin!==E.zoom_zmax&&(g.zz1=E.zoom_zmin,g.zz2=E.zoom_zmax)),!g.ranges||_.empty())return!0;const v=(I,U,k)=>I?U<=0?k:(U=Math.log10(U),I>1&&(U/=Math.log10(I)),U):U,p=E.getFrameRect();g.ux1=v(E.logx,g.ux1,0),g.ux2=v(E.logx,g.ux2,1);let C=(g.ux2-g.ux1)/(p.width||10);return g.px1=g.ux1-C*p.x,g.px2=g.px1+C*this.getPadWidth(),g.uy1=v(E.logy,g.uy1,0),g.uy2=v(E.logy,g.uy2,1),C=(g.uy2-g.uy1)/(p.height||10),g.py1=g.uy1-C*p.y,g.py2=g.py1+C*this.getPadHeight(),!0}itemContextMenu(g){const E=this.svg_this_pad().node().getBoundingClientRect(),_={clientX:E.left+10,clientY:E.top+10};if("pad"===g)return(0,x.postponePromise)(()=>this.padContextMenu(_),50);let p,v=null;switch(g){case"xaxis":case"yaxis":case"zaxis":v=this.getFramePainter(),p=g[0];break;case"frame":v=this.getFramePainter();break;default:{const C=parseInt(g);Number.isInteger(C)&&(v=this.painters[C])}}return(0,x.isFunc)(v?.fillContextMenu)?(0,He.ES)(_,v).then(C=>{if(v.fillContextMenu(C,p)||v.snapid)return v.fillObjectExecMenu(C,p).then(()=>(0,x.postponePromise)(()=>C.show(),50))}):void 0}saveAs(g,E,_){_||(_=(this.this_pad_name||(this.iscan?"canvas":"pad"))+"."+g),this.produceImage(E,g).then(v=>{if(!v)return console.error(`Fail to produce image ${_}`);(0,Ve.OJ)(_,"svg"!==g?v:"data:image/svg+xml;charset=utf-8,"+encodeURIComponent(v))})}findActivePad(){let g;return this.forEachPainterInPad(E=>{E.is_active_pad&&!g&&(g=E)},"pads"),g}produceImage(g,E){var _=this;return(0,Te.A)(function*(){const v="frame"===g,p=v?_.getFrameSvg(_.this_pad_name):g?_.getCanvSvg():_.svg_this_pad(),C=g&&!v?_.getCanvPainter():_,I=[];if(p.empty())return"";if(v||!g){const he=_.getCanvSvg().selectChild(".canvas_defs");he.empty()||(I.push({prnt:_.getCanvSvg(),defs:he}),p.node().insertBefore(he.node(),p.node().firstChild))}let U=null;C.forEachPainterInPad(he=>{if(he.is_active_pad&&!U&&(U=he,U.drawActiveBorder(null,!1)),v)return;const V={prnt:he.svg_this_pad()};I.push(V);const b=he.getLayerSvg("btns_layer",he.this_pad_name);V.btns_node=b.node(),V.btns_node&&(V.btns_prnt=V.btns_node.parentNode,V.btns_next=V.btns_node.nextSibling,b.remove());const P=he.getFramePainter();if(!(0,x.isFunc)(P?.render3D)||!(0,x.isFunc)(P?.access3dKind))return;const T=P.access3dKind();if(T!==x.constants.Embed3D.Overlay&&T!==x.constants.Embed3D.Embed)return;const z=P.getSizeFor3d(x.constants.Embed3D.Embed),W=P.renderer.domElement;P.render3D(0);const fe=W.toDataURL("image/png");T===x.constants.Embed3D.Embed&&(V.foreign=V.prnt.select("."+z.clname),V.foreign.remove());const we=P.getFrameSvg();V.frame_node=we.node(),V.frame_node&&(V.frame_next=V.frame_node.nextSibling,we.remove()),V.img=V.prnt.insert("image",".primitives_layer").attr("x",z.x).attr("y",z.y).attr("width",W.width).attr("height",W.height).attr("href",fe)},"pads");let k=p.property("draw_width"),Z=p.property("draw_height");if(v){const he=_.getFramePainter();k=he.getFrameWidth(),Z=he.getFrameHeight()}const ee="pdf"===E?{node:p.node(),width:k,height:Z,reset_tranform:v}:(0,ke.NM)(`${p.node().innerHTML}`);return(0,ke.Vm)(ee,E).then(he=>{U?.drawActiveBorder(null,!0);for(let V=0;V{p.add("header:Menus"),p.add(this.iscan?"Canvas":"Pad","pad",this.itemContextMenu),this.getFramePainter()&&p.add("Frame","frame",this.itemContextMenu);const C=this.getMainPainter();if(C&&(p.add("X axis","xaxis",this.itemContextMenu),p.add("Y axis","yaxis",this.itemContextMenu),(0,x.isFunc)(C.getDimension)&&C.getDimension()>1&&p.add("Z axis","zaxis",this.itemContextMenu)),this.painters?.length){p.add("separator");const I=[];this.painters.forEach((U,k)=>{const Z=U?.getObject();if(!Z||I.indexOf(Z)>=0)return;let ee=(0,x.isFunc)(U.getClassName)?U.getClassName():Z._typename||"";ee&&(ee+="::"),ee+=(0,x.isFunc)(U.getObjectName)?U.getObjectName():Z.fName||`item${k}`,p.add(ee,k,this.itemContextMenu),I.push(Z)})}p.show()});let _=!1;const v=[];for(let p=0;p{p.fLeftMargin=p.fRightMargin=p.fBottomMargin=p.fTopMargin=0}),_.check("WHITE")&&v(p=>{p.fFillColor=0}),_.check("LOG2X")&&v(p=>{p.fLogx=2,p.fUxmin=0,p.fUxmax=1,p.fX1=0,p.fX2=1}),_.check("LOGX")&&v(p=>{p.fLogx=1,p.fUxmin=0,p.fUxmax=1,p.fX1=0,p.fX2=1}),_.check("LOG2Y")&&v(p=>{p.fLogy=2,p.fUymin=0,p.fUymax=1,p.fY1=0,p.fY2=1}),_.check("LOGY")&&v(p=>{p.fLogy=1,p.fUymin=0,p.fUymax=1,p.fY1=0,p.fY2=1}),_.check("LOG2Z")&&v(p=>{p.fLogz=2}),_.check("LOGZ")&&v(p=>{p.fLogz=1}),_.check("LOGV")&&v(p=>{p.fLogv=1}),_.check("LOG2")&&v(p=>{p.fLogx=p.fLogy=p.fLogz=2}),_.check("LOG")&&v(p=>{p.fLogx=p.fLogy=p.fLogz=1}),_.check("LNX")&&v(p=>{p.fLogx=3,p.fUxmin=0,p.fUxmax=1,p.fX1=0,p.fX2=1}),_.check("LNY")&&v(p=>{p.fLogy=3,p.fUymin=0,p.fUymax=1,p.fY1=0,p.fY2=1}),_.check("LN")&&v(p=>{p.fLogx=p.fLogy=p.fLogz=3}),_.check("GRIDX")&&v(p=>{p.fGridx=1}),_.check("GRIDY")&&v(p=>{p.fGridy=1}),_.check("GRID")&&v(p=>{p.fGridx=p.fGridy=1}),_.check("TICKX")&&v(p=>{p.fTickx=1}),_.check("TICKY")&&v(p=>{p.fTicky=1}),_.check("TICKZ")&&v(p=>{p.fTickz=1}),_.check("TICK")&&v(p=>{p.fTickx=p.fTicky=1}),_.check("OTX")&&v(p=>{p.$OTX=!0}),_.check("OTY")&&v(p=>{p.$OTY=!0}),_.check("CTX")&&v(p=>{p.$CTX=!0}),_.check("CTY")&&v(p=>{p.$CTY=!0}),_.check("RX")&&v(p=>{p.$RX=!0}),_.check("RY")&&v(p=>{p.$RY=!0}),this.storeDrawOpt(g)}static draw(g,E,_){return(0,Te.A)(function*(){const v=new B(g,E,!1);v.decodeOptions(_),v.getCanvSvg().empty()?(v.has_canvas=!1,v.this_pad_name="",v.setTopPainter()):v.addToPadPrimitives(v.pad_name),v.createPadSvg(),v.matchObjectType(x.clTPad)&&(!v.has_canvas||v.hasObjectsToDraw())&&v.addPadButtons();const p=v.has_canvas?v.selectCurrentPad(v.this_pad_name):void 0;return(0,ot.QD)({pp:v,active:!0}),v.drawPrimitives().then(()=>(v.showPadButtons(),v.addPadInteractive(),v.selectCurrentPad(p),v))})()}}},6043:(Yr,mt,Se)=>{"use strict";Se.r(mt),Se.d(mt,{HierarchyPainter:()=>U,drawInspector:()=>ee,drawList:()=>Y,drawStreamerInfo:()=>k,folderHierarchy:()=>Q,getHPainter:()=>He.gZ,keysHierarchy:()=>B,listHierarchy:()=>X,markAsStreamerInfo:()=>E,objectHierarchy:()=>$,taskHierarchy:()=>me});var Te=Se(4882),x=Se(8872),L=Se(8362),ve=Se(4369),ke=Se(2985),ot=Se(2843),Ye=Se(1922),Ze=Se(7900),Re=Se(6923),He=Se(6157),Ve=Se(5992);const De="TopFolder";function J(V){return V<1e4?V.toFixed(0)+"B":V<1e6?(V/1e3).toFixed(2)+"KiB":V<1e9?(V/1e6).toFixed(2)+"MiB":(V/1e9).toFixed(2)+"GiB"}function Y(V,b,P){return ue.apply(this,arguments)}function ue(){return(ue=(0,Te.A)(function*(V,b,P){return b&&b.arr?{dom:V,lst:b,opt:P,indx:-1,painter:null,draw_next(){for(;++this.indx(fe&&!this.painter&&(this.painter=fe),this.draw_next()))}return this.painter}}.draw_next():null})).apply(this,arguments)}function Q(V,b){if(!b?.fFolders)return!1;if(0===b.fFolders.arr.length)return V._more=!1,!0;V._childs=[];for(let P=0;P=0?fe[lt]++:(fe[W.length]=we[W.length]=1,W.push(Ge))}V._childs=[];for(let Me=0;Me=0&&fe[lt]>1&&(Ge._cycle=we[lt]++,Ge._keyname=Ge._name,Ge._name=Ge._keyname+";"+Ge._cycle)}}else Ge={_name:Me.toString(),_kind:x.prROOT+"NULL",_title:"NULL",_value:"null",_obj:null};V._childs.push(Ge)}return!0}function B(V,b,P,T){if(void 0===b)return!1;V._childs=[];for(let z=0;z0&&W.fName===b[z-1].fName&&W.fCycle0&&b.length,Me=we&&b.length>x.settings.HierarchyLimit;let Ge,lt,bt,te,je=!1;if(we&&"Object"===V._name&&!V._parent&&(V._name="Array"),Me){je=!0;for(let Je=0;Je=0)continue;if(Me&&Ge){if(bt===tt){++te,lt=Je;continue}te>0&&(Ge._name+=".."+lt)}const Fe={_parent:V,_name:Je};if(Me&&(Ge=Fe,lt=Je,bt=tt,te=0),null===tt){Fe._value=Fe._title="null",z||V._childs.push(Fe);continue}let Ne=!1;if((0,x.isObject)(tt))if(T=Object.prototype.toString.apply(tt),(0,x.isArrayProto)(T)>0)Fe._title="array len="+tt.length,Ne="[object Array]"!==T,0===tt.length?(Fe._value="[ ]",Fe._more=!1):(Fe._value="[...]",Fe._more=!0,Fe._expand=$,Fe._obj=tt);else if("[object DataView]"===T)Fe._title="DataView len="+tt.byteLength,Fe._value="[...]",Fe._more=!0,Fe._expand=$,Fe._obj=tt;else if("[object Date]"===T)Fe._more=!1,Fe._title="Date",Fe._value=tt.toString(),Fe._vclass="h_value_num";else{(tt.$kind||tt._typename)&&(Fe._kind=Fe._title=x.prROOT+(tt.$kind||tt._typename)),tt._typename&&(Fe._title=tt._typename,W&&(0,Re.Xv)(tt._typename)&&(Fe._direct_context=!0));let rt=V,St=!1;for(;rt&&!St;)St=rt._obj===tt,rt=rt._parent;if(St)Fe._value="{ prnt }",Fe._vclass="h_value_num",Fe._more=!1,Ne=!0;else switch(Fe._obj=tt,Fe._more=!1,tt._typename){case x.clTColor:Fe._value=(0,ke.d_)(tt);break;case x.clTText:case x.clTLatex:Fe._value=tt.fTitle;break;case x.clTObjString:Fe._value=tt.fString;break;default:(0,x.isRootCollection)(tt)&&(0,x.isObject)(tt.arr)?(Fe._value=tt.arr.length?"[...]":"[]",Fe._title+=", size:"+tt.arr.length,tt.arr.length>0&&(Fe._more=!0)):(Fe._more=!0,Fe._value="{ }")}}else"number"==typeof tt||"boolean"==typeof tt?(Ne=!0,Fe._value="fBits"===Je?"0x"+tt.toString(16):tt.toString(),Fe._vclass="h_value_num"):(0,x.isStr)(tt)?(Ne=!0,Fe._value="""+tt.replace(/&/g,"&").replace(/"/g,""").replace(//g,">")+""",Fe._vclass="h_value_str"):typeof tt>"u"?(Ne=!0,Fe._value="undefined",Fe._vclass="h_value_num"):(Ne=!0,alert(`miss ${Je} type ${typeof tt}`));(!Ne||!z)&&V._childs.push(Fe)}return Me&&Ge&&te>0&&(Ge._name+=".."+lt),!0}function g(V){const b={_name:ve.D1,_childs:[]};for(let P=0;P"u"){console.warn(`strange element in StreamerInfo with type ${T._typename}`);continue}const z={_name:`${T.fName};${T.fClassVersion}`,_kind:`class ${T.fName}`,_title:`class:${T.fName} version:${T.fClassVersion} checksum:${T.fCheckSum}`,_icon:"img_class",_childs:[]};if(T.fTitle&&(z._title+=" "+T.fTitle),b._childs.push(z),!(typeof T.fElements>"u")){for(let W=0;W0)"'"===V[fe]&&T--;else if(z>0)'"'===V[fe]&&z--;else switch(V[fe]){case"'":T++;break;case'"':z++;break;case"[":P++;break;case"]":if(fe1&&we[0]===we[we.length-1]&&('"'===we[0]||"'"===we[0])&&(we=we.slice(1,we.length-1)),b.push(we),W=fe+1}}return 0===b.length&&b.push(V.slice(1,V.length-1).trim()),b}function p(V,b){if(b&&V&&"_childs"in b){for(let P=0;P(this._file||(this._file=we),we?we.readObject(W).then(Me=>{if(!z&&Me){const je=T.findItem({name:W,top:this,last_exists:!0,check_keys:!0});if(void 0!==je?.last&&je.last!==this){const Ge=we.getDir(T.itemFullName(je.last,this));if(Ge){je.last._name=je.last._keyname;const lt=T.itemFullName(je.last,this);B(je.last,Ge.fKeys,we,lt+"/")}}else B(this,we.fKeys,we,"");z=T.findItem({name:W,top:this})}return z&&(z._readobj=Me,"_expand"in z&&(z._name=z._keyname)),Me}):Promise.resolve(null));return this._file?fe(this._file):this._localfile?(0,ve.Tq)(this._localfile).then(we=>fe(we)):this._fullurl?(0,ve.Tq)(this._fullurl).then(we=>fe(we)):Promise.resolve(null)},B(P,b.fKeys,b,""),P}forEachItem(b,P){(0,x.isFunc)(b)&&function T(z,W){if(z&&(W&&(z._parent=W),b(z),"_childs"in z))for(let fe=0;fe=fe.length-1||we<0?je:P(je,fe.slice(we+1))}for(;we>0;){let je=we>=fe.length?fe:fe.slice(0,we);if(W._childs){for(let lt=0;lt=0&<Ge.showCommandArgsDialog(W._name,Me)):Promise.resolve(Me)).then(Ge=>{if(null===Ge)return!1;let lt="";for(let bt=0;bt0?"&":"?"}arg${bt+1}=${Ge[bt]}`;return we.empty()||(we.style("background","yellow"),W._title&&we.attr("title","Executing "+W._title)),(0,x.httpRequest)(fe+lt,"text").then(bt=>{if(we.empty())return bt;const te=bt&&"false"!==bt?"green":"red";return we.style("background",te),W._title&&we.attr("title",W._title+" lastres="+bt),setTimeout(()=>{we.style("background",null),W._icon&&we.classed("jsroot_fastcmd_btn")&&we.style("background-image",`url('${W._icon}')`)},2e3),"green"===te&&"_hreload"in W&&z.reload(),"green"===te&&"_update_item"in W&&z.updateItems(W._update_item.split(";")),bt})})})()}getObject(b,P){var T=this;return(0,Te.A)(function*(){const z={item:null,obj:null};let W,fe;if(null===b)return z;if((0,x.isStr)(b)?W=b:(0,x.isObject)(b)&&(void 0!==b._parent&&void 0!==b._name&&void 0!==b._kind?fe=b:void 0!==b.name?W=b.name:void 0!==b.arg?W=b.arg:void 0!==b.item&&(fe=b.item)),(0,x.isStr)(W)&&0===W.indexOf("img:"))return z.obj={_typename:"TJSImage",fName:W.slice(4)},z;fe?W=T.itemFullName(fe):fe=T.findItem({name:W,allow_index:!0,check_keys:!0});const we=fe?null:T.findItem({name:W,last_exists:!0,check_keys:!0,allow_index:!0});if(null!==we&&"last"in we&&null!==we.last){const je=T.itemFullName(we.last);return(0,x.isObject)(b)&&"rest"in b&&(b.rest===we.rest||b.rest.length<=we.rest.length)?z:T.expandItem(je,void 0,"hierarchy_expand_verbose"!==P).then(Ge=>{if(!Ge)return z;let lt=T.itemFullName(we.last);return lt&&(lt+="/"),T.getObject({name:lt+we.rest,rest:we.rest},P)})}if(z.item=fe,null!==fe&&(0,x.isObject)(fe._obj))return z.obj=fe._obj,z;let Me=fe;for(;Me;){if((0,x.isFunc)(Me._get))return Me._get(fe,null,P).then(je=>(z.obj=je,z));Me="_parent"in Me?Me._parent:null}return z})()}isLastSibling(b){if(!b||!b._parent||!b._parent._childs)return!1;const P=b._parent._childs;let T=P.indexOf(b);if(T<0)return!1;for(;++T=(b._parent._show_limit||x.settings.HierarchyLimit)&&(lt=!0)),b._d3cont=bt.node(),bt.attr("item",we);const Je=bt.append("div").attr("class","h_line");let tt=z?null:b._parent;for(;tt&&tt!==this.h;)Je.insert("div",":first-child").attr("class",this.isLastSibling(tt)?"img_empty":"img_line"),tt=tt._parent;let Fe="",Ne=!1;z||(W&&!lt?(Fe=b._isopen?"img_minus":"img_plus",Ne=!0):Fe="img_join");const rt=this;if(Fe){(lt||this.isLastSibling(b))&&(Fe+="bottom");const vt=Je.append("div").attr("class",Fe);Ne&&vt.style("cursor","pointer").on("click",function(Yt){rt.tree_click(Yt,this,"plusminus")})}if(this.with_icons&&!lt){const vt=b._isopen?je:Me,Yt=0===vt.indexOf("img_")?Je.append("div").attr("class",vt).attr("title",b._kind):Je.append("img").attr("src",vt).attr("alt","").attr("title",b._kind).style("vertical-align","top").style("width","18px").style("height","18px");("_icon_click"in b||fe&&"icon_click"in fe)&&Yt.on("click",function(qt){rt.tree_click(qt,this,"icon")})}const St=Je.append("a");if((Ge||W||lt)&&St.attr("class","h_item").on("click",function(vt){rt.tree_click(vt,this)}),lt)return b._break_point=!0,St.attr("title","there are "+(b._parent._childs.length-T)+" more items").text("...more..."),!1;"disp_kind"in rt?(x.settings.DragAndDrop&&Ge&&this.enableDrag(St,we),x.settings.ContextMenu&&te&&St.on("contextmenu",function(vt){rt.tree_contextmenu(vt,this)}),St.on("mouseover",function(){rt.tree_mouseover(!0,this)}).on("mouseleave",function(){rt.tree_mouseover(!1,this)})):b._direct_context&&x.settings.ContextMenu&&St.on("contextmenu",function(vt){rt.direct_contextmenu(vt,this)});let pt=b._name,st="";if("_realname"in b&&(pt=b._realname),"_title"in b&&(st=b._title),"_fullname"in b&&(st+=" fullname: "+b._fullname),st||(st=pt),St.attr("title",st).text(pt+("_value"in b?":":"")).style("background",b._background?b._background:null),"_value"in b){const vt=Je.append("p");"_vclass"in b&&vt.attr("class",b._vclass),b._isopen||vt.html(b._value)}if(W&&(z||b._isopen)){const vt=bt.append("div").attr("class","h_childs");this.show_overflow&&vt.style("overflow","initial");for(let Yt=0;YtP.exapndToLevel(b-1))})()}refreshHtml(){var b=this;return(0,Te.A)(function*(){const P=b.selectDom();if(P.empty())return b;P.html("").style("overflow",b.show_overflow?"auto":"hidden").style("display","flex").style("flex-direction","column"),function F(V){function b(W,fe,we,Me){return`.jsroot .img_${W} { display: inline-block; height: ${fe}px; width: ${fe}px; background-image: url("data:image/${we};base64,${Me}"); }`}(0,Ve.fz)(`\n.jsroot .h_tree { display: block; white-space: nowrap; }\n.jsroot .h_tree * { padding: 0; margin: 0; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; box-sizing: content-box; line-height: 14px }\n.jsroot .h_tree img { border: 0px; vertical-align: middle; }\n.jsroot .h_tree a { text-decoration: none; vertical-align: top; white-space: nowrap; padding: 1px 2px 0px 2px; display: inline-block; margin: 0; }\n.jsroot .h_tree p { font-weight: bold; white-space: nowrap; text-decoration: none; vertical-align: top; white-space: nowrap; padding: 1px 2px 0px 2px; display: inline-block; margin: 0; }\n.jsroot .h_value_str { color: green; }\n.jsroot .h_value_num { color: blue; }\n.jsroot .h_line { height: 18px; display: block; }\n.jsroot .h_button { cursor: pointer; color: blue; text-decoration: underline; }\n.jsroot .h_item { cursor: pointer; }\n.jsroot .h_item:hover { text-decoration: underline; }\n.jsroot .h_childs { overflow: hidden; display: block; }\n.jsroot_fastcmd_btn { height: 32px; width: 32px; display: inline-block; margin: 2px; padding: 2px; background-position: left 2px top 2px;\n background-repeat: no-repeat; background-size: 24px 24px; border-color: inherit; }\n.jsroot_inspector { border: 1px solid ${x.settings.DarkMode?"green":"black"}; box-shadow: 1px 1px 2px 2px ${x.settings.DarkMode?"#555":"#aaa"}; opacity: 0.95; background-color: ${x.settings.DarkMode?"black":"#E6E6FA"}; }\n.jsroot_drag_area { background-color: #007fff; }\n${b("minus",18,"gif","R0lGODlhEgASAJEDAIKCgoCAgAAAAP///yH5BAEAAAMALAAAAAASABIAAAInnD+By+2rnpyhWvsizE0zf4CIIpRlgiqaiDosa7zZdU22A9y6u98FADs=")}\n${b("minusbottom",18,"gif","R0lGODlhEgASAJECAICAgAAAAP///wAAACH5BAEAAAIALAAAAAASABIAAAImlC+Ay+2rnpygWvsizE0zf4CIEpRlgiqaiDosa7zZdU32jed6XgAAOw==")}\n${b("plus",18,"gif","R0lGODlhEgASAJECAICAgAAAAP///wAAACH5BAEAAAIALAAAAAASABIAAAIqlC+Ay+2rnpygWvsizCcczWieAW7BeSaqookfZ4yqU5LZdU06vfe8rysAADs=")}\n${b("plusbottom",18,"gif","R0lGODlhEgASAJECAICAgAAAAP///wAAACH5BAEAAAIALAAAAAASABIAAAIplC+Ay+2rnpygWvsizCcczWieAW7BeSaqookfZ4yqU5LZdU36zvd+XwAAOw==")}\n${b("empty",18,"gif","R0lGODlhEgASAJEAAAAAAP///4CAgP///yH5BAEAAAMALAAAAAASABIAAAIPnI+py+0Po5y02ouz3pwXADs=")}\n${b("line",18,"gif","R0lGODlhEgASAIABAICAgP///yH5BAEAAAEALAAAAAASABIAAAIZjB+Ay+2rnpwo0uss3kfz7X1XKE5k+ZxoAQA7")}\n${b("join",18,"gif","R0lGODlhEgASAIABAICAgP///yH5BAEAAAEALAAAAAASABIAAAIcjB+Ay+2rnpwo0uss3kf5BGocNJZiSZ2opK5BAQA7")}\n${b("joinbottom",18,"gif","R0lGODlhEgASAIABAICAgP///yH5BAEAAAEALAAAAAASABIAAAIZjB+Ay+2rnpwo0uss3kf5BGrcSJbmiaZGAQA7")}\n${b("base",18,"gif","R0lGODlhEwASAPcAAPv6/Pn4+mnN/4zf/764x2vO//Dv84HZ/5jl/0ZGmfTz9vLy8lHB/+zr70u+/7S03IODtd7d6c/P0ndqiq/w/4Pb/5SKo/Py9fPy9tTU121kjd/f4MzM062tx5+zy5rO67GwxNDM14d8mJzn/7awwry713zX/9bW27u71lFRmW5uoZ+fxjOy/zm1/9HQ2o3g/2xfgZeMplav7sn9/6Cgv37X/6Dp/3jU/2uJ2M7J1JC63vn5+v38/d7e38PD0Z7o/9LR4LS01cPDzPb1+Nzb5IJ2lHCEv5bk/53C3MrJ3X56t+np6YF7o3JsndTU5Wtgh5GHoKaesuLi4mrO/19RdnnV/4WBqF5QdWPK/4+PvW5uu4+PuuHh4q7w/97e68C9z63w/9PT0+zs7FtbmWVXerS0yaqitpuSqWVlpcL6/8jD0H/C9mVajqWu3nFwpYqHtFfE/42DnaWl0bTz/5OPt+7u7tra5Y+Yz+Tk56fM6Gek5pG50LGpvOHh72LJ/9XU5lbD/6GnwHpujfDu8mxpntzb45qav7PH41+n6JeXyUZGopyYsWeGyDu2/6LQ44re/1yV41TD/8LC1zix/sS/zdTU4Y+gsd/c5L7z+a6uzE+3+XG89L6+087O1sTD3K2twoGBtWVbgomo4P///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAKMALAAAAAATABIAAAjtAEcJFLgDTyE7SVCsAAJgoMNRYTII8fEpkAckOpiEaPhwlARLexxhmpEGzJEmBAJ0HMXhw6MfXeZQsDHADZ8hK13kMTEAwQgEL2oYiaJgJZFDU24cqHCgSgFGFgysBJAJkB8BBQRggQNJxKCVo0rIcMAgEgMHmnBMaADWEyIWLRptEqWETRG2K//ombSmjRZFoaCo4djRyZ0HchIlSECIRNGVXur0WcAlCJoUoOhcAltpyQIxPSRtGQPhjRkMKyN0krLhBCcaKrJoOCO1I48vi0CU6WDIyhNBKcEGyBEDBpUrZOJQugC2ufPnDwMCADs=")}\n${b("folder",18,"gif","R0lGODlhEgASANUAAPv7++/v79u3UsyZNOTk5MHBwaNxC8KPKre3t55sBrqHIpxqBMmWMb2KJbOBG5lnAdu3cbWCHaBuCMuYM///urB+GMWSLad1D8eUL6ampqVzDbeEH6t5E8iVMMCNKMbGxq58FppoAqh2EKx6FP/Ub//4k+vr6///nP/bdf/kf//viba2tv//////mQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAC4ALAAAAAASABIAAAaRQJdwSCwaj8ik0jUYTBidAEA5YFkplANhehxABGAwpKHYRByVwHBibbvbo8+Q0TrZ7/jWBTHEtP6AgX8GK0MWLSWJiostEoVCBy0qk5SVLQmPLh4tKZ2eny0LmQ0tKKanqC0hmQotJK+wsS0PfEIBZxUgHCIaBhIJCw8ZBUMABAUrycrLBQREAAEm0tPUUktKQQA7")}\n${b("folderopen",18,"gif","R0lGODlhEgASANUAAO/v76VzDfv7+8yZNMHBweTk5JpoAqBuCMuYM8mWMZ5sBpxqBPr7/Le3t///pcaaGvDker2KJc+iJqd1D7B+GOKzQ8KPKqJwCrOBG7WCHbeEH9e4QNq/bP/rhJlnAffwiaampuLBUMmgIf3VcKRyDP/XhLqHIqNxC8iVMMbGxqx6FP/kf//bdf/vievr67a2tv/4k8aaGf//nP//mf///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAADUALAAAAAASABIAAAaVwJpwSCwaj8ikUjgYIBIogEA5oFkZDEtheqzKvl9axKTJYCiAIYIGblutqtQwQYPZ73jZpCGM+f+AfiEdJy99M21tMxwxJQeGNTGIeHcyHzEjCpAAki2en54OIhULkAKSMiuqqysOGxIGkDWcMyy2t7YQDx58QqcBwMAkFwcKCwYgBEQFBC/Oz9AEBUUALtbX2FJLSUEAOw==")}\n${b("page",18,"gif","R0lGODlhEgASAOYAAPv7++/v7/j7/+32/8HBweTk5P39/djr/8Df//7///P5/8Ph//T09fn5+YGVw2t0pc7n/15hkFWn7ZOq0nqDsMDA/9nh7YSbyoqo2eTx/5G46pK873N+sPX6//f395Cjy83m/7rd/9jl9m13qGVqmoeh0n+OvI+z5Yyu387T//b6/2dtnvz9/32JtpS/8sbGxv7+/tvn92lwom96rHJ8rnSAsoep3NHp/8nk/7e3t+vr67a2tun1/3V4o+Hw/9vt/////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAEEALAAAAAASABIAAAejgEGCg4SFhoeILjaLjDY1AQCHG0AGAA0eDBY1E5CGGjBAoQkCMTUSHwGGJwaiAh0iNbEvhiihAgIDPDwpFRw5hhgsuLk8Pz8HNL+FJSoKuT4+xzczyoQXzjzQxjcgI9WDDrraPzc4OA/fgibZ0eTmCzLpQS0Z7TflCwgr8hT2EOYIQpCQ16OgwYMRCBgqQGCHw4cOCRQwBCCAjosYL3ZCxNFQIAA7")}\n${b("question",18,"gif","R0lGODlhEgASAPelAOP0//7//9bs//n///j//9Ls/8Pn//r//6rB1t3f5crO2N7g5k1livT4+7PW9dXt/+v4/+Xl5LHW9Ov6/+j1/6CyxrfCz9rd5Nzj6un1/Z6ouwcvj8HBzO7+/+3//+Ln7BUuXNHv/6K4y+/9/wEBZvX08snn/19qhufs8fP7/87n/+/t7czr/5q1yk55q97v/3Cfztnu//z//+X6/ypIdMHY7rPc/7fX9cbl/9/h52WHr2yKrd/0/9fw/4KTs9rm75Svzb2+ya690pu92mWJrcT3//H//+Dv/Xym35S216Ouwsvt/3N/mMnZ5gEBcMnq/wEBXs/o/wEBetzw/zdYpTdZpsvP2ClGml2N3b3H0Nzu/2Z2lF1ricrl/93w/97h6JqluktojM/u/+/z9g8pVff4+ebu9q+1xa6/zzdFaIiXr5Wyz0xslrTK4uL//2uIp11rh8Xj/NXn+Oz2/9bf6bG2xAEBePP//1xwkK/K5Nbr/8fp/2OBtG53kai3ykVCYwEBde/6/7O4xabI+fD//+by/x8+jDhZpM/q/6jK58nO19ny/7jV7ZO42NHr/9H4/2ZwimSV6VBxwMDX7Nvf5hYwX5m20sfb6Ieqyk9Yjr/k/cPM2NDp/+/098Tl9yQ9jLfW+Mne8sjU30JklP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAKUALAAAAAASABIAAAjxAEsJHEiwoMEyGMaQWthg0xeDAlGUWKjoz5mFAegY/LBiIalMUK54JCWEoJkIpA6kSDmoAykKgRaqGSiq04A5A5r4AKOEAAAtE2S0USAwSwYIhUb8METiUwAvemLMCMVEoIUjAF5MIYXAThUCDzgVWDQJjkA0cngIEHAHCCAqRqJ0QeQoDxeBFS71KKDCwxonhwiZwPEkzo4+AimJqBFCjBs+UjZ4WmLgxhAQVgb6acGIBShJkbAgMSAhCQ1IBTW8sZRI055HDhoRqXQCYo4tDMJgsqGDTJo6EAlyYFNkVJDgBgXBcJEAucEFeC44n04wIAA7")}\n${b("histo1d",16,"gif","iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAADAFBMVEW9vb2np6empqanpqenpqivr6//AAD3+fn09vb19vf3+Pv8+v//+//29/v3+fr19vbZ3Nza3d7X0+Lb3t7b3N3AwMP2+PimpqXe4+Th6uvQ0dTi6uzg5ebFx8nt6vb////r5/T2+fnl4e3a3uDN0NT7/P6lpqX3+vvn9vhcVVHu+//W1uH48//29P///f+mpqelpqb4/v/t/f9oY2H6///59v/x8fXw9fny9/78/v+lpqf7//9iXl12dHPW2t/R1tdtaGbT2dpoZmT6/v9ycnKCgoJpZGJ6dnT3///2///0//95entpa2t+gIKLjI55d3aDgYBvcXL1+/z9/v6lpaWGiIt7fH6Ji42SlJeEhIZubGyMjI17fYD+//+kpKSmpaaRk5WIioyRk5aYmp2OkJJ+f4KTlZilpKWcnqGVl5qcnqCfoaOYmp6PkZOdn6GsrrGoqq6qrK+rrbGpq66lp6uqrbCoqq20tLSsrKzc3NzMzMzPz88AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB6enrU4/9iYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmLU4/9KSkoAAAAAAAAAAAB6enrU4//m5uZiYmLm5uZiYmLm5uZiYmLm5uZiYmLm5ubU4/9KSkoAAAAAAAAAAAB6enrU4/9KSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkrU4/9KSkoAAAAAAAAAAABubm7U4//U4//U4//U4//U4//U4//U4//U4//U4//U4//U4/9KSkoAAAAAAAAAAABubm5KSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABt6dBwBYjWHVG2AAAAB3RSTlP///////8AGksDRgAAAAlwSFlzAAALEgAACxIB0t1+/AAAAOxJREFUeNpjYGBkggBmFmYmRlY2BkZ2DhDg5OLm4eblY2RjYOIXEBQSFhEFkgKCYkxsDOKcEpJS0jKycvJS8gpcIAFFJWUVGFIFCqipa8hrymtpy+sI6crr6bMxGBgayRvLm8iamkmZW1gCBayslWxs7ewd7OwdlZStrYC2ODm7uLrJu3t4usl7mRiwMeh7+/j6+VsHBMr7+wQFhwAFQsPCIyKjomOiIsOiYuPYGOITEpOSU1LTElNTElPlgQLpGZlZ2Tm5eZm5OZm5IAGm/ILCouKS0rKS4oISeaDDypniEICpgo2hsgoZVLMBAHIaNxuoIXy2AAAAAElFTkSuQmCC")}\n${b("histo2d",16,"gif","iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAACXBIWXMAAAsSAAALEgHS3X78AAABUUlEQVR42o1R0U7CQBDkU/w/v8qk1/OhCS+88miMiQYMBMNRTqiisQiRhF6h13adsuVKDEYvm81kdmdv9q7V7XallP65I30UrpErLGW73SaiFtDF5dXWmNNITJrubJ4RWUI2qU33GTorAdSJMeMwhOxpEE20noRTYISaajBcMrsdOlkgME+/vILtPw6j+BPg5vZuFRuUgZGX71tc2AjALuYrpWcP/WE1+ADAADMAY/OyFghfpJnlSTCAvLb1YDbJmArC5izwQa0K4g5EdgSbTQKTX8keOC8bgXSWAEbqmbs5BmPF3iyR8I+vdNrhIj3ewzdnlaBeWroCDHBZxWtm9DzaEyU2L8pSCNEI+N76+fVs8rE8fbeRUiWR53kHgWgs6cXbD2OOIScQnji7g7OE2UVZNILflnbrulx/XKfTAfL+OugJgqAShGF4/7/T6/Ug+AYZrx7y3UV8agAAAABJRU5ErkJggg==")}\n${b("histo3d",16,"gif","iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAADAFBMVEX////48OjIgTrHfjjKgTr78+yixH9HiQBHiACiw37jvJXfpVP6wzT7zTn7yj3lp1qOhyJzvgCa3wCa3gB2ugBinQ6Pt2D4+vfOjEr96p3986z83mT99rD99a3WhEvC0kaU3gCV3ADG71zo/KORzw1gowBonS3Z5snHfTb6uyD6tzD+/Nb7z0/70D3KdTXI1l3h+qTi+KXD7luU3ACY3gCc4QCi3g1QjwXHfjr710T6xi/+9sn70UH73E/MdDqhvQCi1BKkug2XxACU1wCS2ADD51rr9aJXkw/MpYDgpkb71U7+9MP7007hnEO3niOj0hGq3SCZtQCbtQCjtwj//+7F4Vui0wBDhgDk5eTMxcGxfi3TfTq+fyPPz4ak3xux5TG87kmZuwCZvACWtgDf8a+c0gCy3yNLiwD7/Ps1iwCiyAPF3F7j7bG67EW77kmq5yWYzwCZwwCTugDc8KTE51ve9YZCigCgwgCVuQDa5p7U9YSq4yWT2gCV2wCT2wCp2h/y+9HC6lW87DlChQBGigCixgCYvgDK3nyXvgC72UjG7mSj3xXL7XDK7W7b9J+36TrG9lBDhQBHigClywCbxQDJ33SXvwCYvQCcwADq+8S77Ei460Hd+KDD9VHU/2VEhgBdlR1rowCXwwDK4W6bxgCaxQCVvQDp/L+/8k7F91fn/6zC9V18tiNbkx/U1dSyv6RglihnoQCYwwChyQDs/7/P/2fE92F5tCBdkib19vXW1taoupVLiwNooQCWwADo/7h5tSBFhgaouZXx8vHOz86ftYVJiQBNjQKetIXt7u3Nzs0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBfAAAAAAAAAA2tmA2tmAAACQAAAAAAAAAAAAAAAAAAAAAATgAABNBfMAAAAAAAAA2tpQ2tpQAACQAAAAAAAAAAAAAAAAAAAAAAdQAABNBfMAAAAAAAAA2tsg2tsgAACQAAAAAAAAAAAAAAAAAAAAAAggAABNBfMCaVmCSAAAAAXRSTlMAQObYZgAAAAlwSFlzAAALEgAACxIB0t1+/AAAAQVJREFUeNpjYGBkYmZhZWBj5+BkAAMubh5ePn4BQSFhEVExcaCAhKSUtIysnLyCopKyiqqaOoOGppa2jq6evoGhkbGJqZk5g4WllbWNrZ29g6OTs4urmzuDh6eXt4+vn39AYFBwSGhYOENEZFR0TGxcfEJiUnJKalo6A0NGZlZ2Tm5efkFhUXFJqTnQnrLyisqq6prauvqGxqZmoEBLa1t7R2dXd09vX/+EiUCBSZOnTJ02fcbMWbPnzJ03HyiwYOGixUuWLlu+YuWq1WvWAgXWrd+wcdPmTVu2btu+Y/06kHd27tq9Z+++/QcOHtq1E+JBhsNHjh47fuLIYQYEOHnq1EkwAwCuO1brXBOTOwAAAABJRU5ErkJggg==")}\n${b("graph",16,"png","iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4AEFCgohaz8VogAAAT9JREFUOMulkz1LQlEYx39XmrIhcLa5i4mD4JBQrtHieDbb+gx3dbl9hca7tLi4VOsRMkKQVO7LLAQNNdSQgyJPg903tDT8w4HzPDznd56Xc1BKCVsokzTGjhPBXDcQAAEZDgPZCHDQaESH5/PYXyqZxp8A349vGHkjOXo3uXtp035sy79KABi8DQCwshb7x3U6gIYU6KNej+1kEwUEjbQeWtIb9mTsOCIgN1eXgiYd96OdcKNBOoCuQc47pFgoGmHw7skZTK9X16CUku5zV9BIkhz4vgSuG/nsWzvKIhmXAah+VpfJsxnGZMKkUln05NwykqOORq6UWkn+TRokXFEG/Vx/45c3fbrnFKjpRVkZgHKxbAC8NptrAfm9PAD2l42VtdJjDDwv2CSLpSaGMgsFc91hpdRFKtNtf6OxLeAbVYSb7ipFh3AAAAAASUVORK5CYII=")}\n${b("mgraph",16,"gif","iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAADAFBMVEW9vb2np6empqanpqenpqivr68AAAD3+fn09vb19vf3+Pv8+v//+//29/v3+fr19vbZ3Nza3d6/wcLb3t7b3N3AwMPi4et2oz0yfwDh3+n2+PimpqXe4+Th6uvD0NHi6uzg5ebFx8nt6vY2ggDs/881gQDr5/T2+fnFz9DDZVrAIhDEZVvJ0tTN0NTX0+IvZAA4hAAuYgDT0N77/P6lpqX3+vvn9vi/JRL81cHBJhTu+//W1uEkXgD48//29P8fWwD//f+mpqelpqb4/v/t/f+yCwDBKBi3CgD6//8kYAD59v/x8fXQ0dTw9fny9/78/v+lpqf7//+wAADV5ezZ5e7g6PQjZQDf4+/W2t/R1tfT2drT3+OvAAD9///6/v/////k4vIiXwC1AAD3///2///X6Oz0//9+rUgzfwAwdADa6u6xCwDAJxb5///1+/z9/v6lpaUwfADo/8vl4e3a3uDb6eu+IxL808C+IhDZ5+nW2tr+//+kpKSmpaaArUgvewB1oj39/v/e5ebVd227HgvJa2H8///6/PylpKXn4+ze4eLg5+j9/v20tLSsrKzc3NzMzMzPz88AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAPAAAAAAEAAAEAAABzL1z/CSMAAAAAAAAAAAAAAAMAAAAmCTsAAAAAAAAAAAAAAAAAAAQAAQEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7op0gAAAAB3RSTlP///////8AGksDRgAAAAlwSFlzAAALEgAACxIB0t1+/AAAAOhJREFUeNpjYGBkggBmFmYmRlY2BkZ2DhDg5OLm4eblY2RjYOIXEBQSFhEVE5cQl5RiYmOQ5pSRlZNXUFRSVlFV4wIJqGtoamnr6OrpGxgaGQMFTEzNzC0sraxtbPXs7B0c2RicnF1c3dw9PL28fXz9/IECAYFBwSGhYeERkVHRMYEBQFti4+ITEuOTklNSg9I8nNgYHOPTMzLjA7Oyc7Jz8/ILQAKFRRnFJaVl5RWVVdU1bAy18XX1DfGNTc0trW3t8UCBjvj4+M746q74+O7qHpAAUzwyADqsl6kGAZj62Bj6JyCDiWwAyPNF46u5fYIAAAAASUVORK5CYII=")}\n${b("tree",16,"gif","iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAABIAAAASABGyWs+AAAACXZwQWcAAAAQAAAAEABcxq3DAAACjklEQVQ4y4WTy49LcRzFP+2tzmVUr9dIDJOWGGVBicgEyTQTCzIetUFssDKJSFhY2SARCYvBbGrj8QcIkYglk8xCmEQ9xqNexbQVY2Zub3un9/W7PwstHZH4Jie/7+Kc8/suzgnwr+kjBqSBbm2lkm6bHyH3XM9SZQ8Z8s3UQJPo0IJVof5EZ7v2faxMrKONlhmQWN5GSFEwLbhybjBPhDwVsmQ4AaA09Mou+k8d702EAzXiS6KEgzahoIthGOi6DtKlN71GS+/cEPs0WewaX2R9ZphssP776UhESY0WSpQNg7Jh4Anx+zgJVKpV3uZyvHjzir27NwGs/XVBH8c7N2nnjx7eSqlYxPM8JCCkxBU+rhA4dVhCYJgmyc4Ej96/7rLi8nNAPc/k2ZNp7cnTpziuiy8lvpSI+tvYhS/xpY8vJXMiEbZv3MzFq3cJqaqiPX72jnKt9kfQRPZ9f5qZ70sMawyAas1GseIy1rNtVXK8Mkm1VsP2PBzhYQuB5Qns+t6AJQSqqlIcrTAy+ONGENBWLF3MN71MxXGo1mE6DqbrYLou8z/a7L3uMKvgUnU8xk2T3u71ADGFDdgvCx/3TwkLEfKxhWDHbY+eYZ+Obz6tJcmRApRsuJ8Ex4Po7Jl8/TDBl7flm4Gm5F1vSZKaFQUh4cB9OLgaDB3UVrjwA+6tBnKAis4El8lwujmJSVQeoKAxFzqDcG0KWhZC6R30tUJRQD3Odxqy4G+DDFks4pisY5RLgRx5pZ5T4cKy95yhSrxZDBCaVqIMOpAd2EIeSEW7wLQh3Ar7RtCHbk0v0vQy1WdgCymgf147Sa0dhAOVMZgoALDu2BDZ/xloQAzQgIOhMCnPYQ+gHRvi4d/8n00kYDRVLifLAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDEwLTAyLTExVDE0OjUxOjE3LTA2OjAwHh/NoQAAACV0RVh0ZGF0ZTptb2RpZnkAMjAwNC0wOS0yMFQxNzoxMDoyNi0wNTowMCcJijsAAAAASUVORK5CYII=")}\n${b("branch",16,"gif","iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAADAFBMVEX///99plFAfADL27hpmyfP8YxyoilSiRiv0XGGygK02VtRiBmVwjh8xQCcziFZkhLz9+9BfQB2rwaCyACRygFQigXw9Ox0mkpXkQCJzwBblgBmkzP8/fxEgQBCfwBEgQejwITe3t5hkC1CfgBfjynZ2tmSq3eArDu72oNvoDJajyTY2dhFgQDCzLqhvn9EgAazx55XkwCVzC2824GMs1J0oUTY48xajiK72YR9qj2Tq3dhkix+th99xAB3uADA3oQ+fABEgABIgwW82oOUyi5VkgCf0CaEygB+wwCbzjN1mkrA3YZ1tAB7wAB+uB1vl0JdmgCJwwCKzwBoqAB4nVBikiuayzZ8wQCFywCg0Sjd3t1lkjFBfABLgwhKgwlmpgCK0QCJxQBclwDMzMzPz89GggCDpFxDfgCIpmPl5eUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABhAABQEABuZQBjYQBvcgAIZABiYQBlZAAABQDU/wCx/wCO/wBr/wBI/wAl/wAA/wAA3AAAuQAAlgAAcwAAUADU/wCx/wCO/wBr/wBI/wAl/wAA/gAA3AAAuQAAlgAAcwAAUADj/wDH/wCr/wCP/wBz/wBX/wBV/wBJ3AA9uQAxlgAlcwAZUADw/wDi/wDU/wDG/wC4/wCq/wCq/wCS3AB6uQBilgBKcwAyUAD//wD//wD//wD//wD//wD//wD+/gDc3AC5uQCWlgBzcwBQUAD/8AD/4gD/1AD/xgD/uAD/qgD/qgDckgC5egCWYgBzSgBQMgD/4wD/xwD/qwD/jwD/cwD/VwD/VQDcSQC5PQCWMQBzJQBQGQD/1AD/sQD/jgD/awD/SAD/JQD+AADcAAC5AACWAABzAABQAAD/1AD/sQD/jgD/awD/SAD/JQD/AADcAACwULzWAAAAAXRSTlMAQObYZgAAAAlwSFlzAAALEgAACxIB0t1+/AAAALZJREFUeNpjYAADRiZGBmTAzMLKxowswM7BycWNLMDEw8vHL4AkICgkLCIqhiQgLiEpJS0D5cjKySsoKimrqMJk1dQ1NLW0dXQZ9PTlZEECBoZGxiamOmbmmhaWViABaxtbO3sHRycTZxdXA7ANbu4enkxeDt4+vn7WIAH/gMCg4JBQprDwiEhBkEBUtGBMrI5OXHxCYpI/2BrV5OSU5NS09BjB6CiE01JTM5KTVZHcmpycCWEAANfrHJleKislAAAAAElFTkSuQmCC")}\n${b("leaf",16,"gif","iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAADAFBMVEX////M27mQs2tilDA9eQA7egBbkhVTjAxJgwWBqVdGgQBrnySdxViu0WrE4oaYv2PC35NtoCqxvaSevX5FgAB7qje73nDK6neu109vpyVupCGo2kJ9xwBQhBtilC9pnx7G63PM6olgnAB/vQBDigCVv0yb1CaDzAB8uBJwmkNnnBnB52ui2Ca94WZopAE/hgCtz2ue2CmDywCByACKujtdjyqdvHpdlhLV9YdkowCFxwCw1lFXmAJvpC5jng1coABlpwBprAB8sitAfABDfgKx31Gr3TuCsi5sqABtqgBUkxTV85zL7I213mef0j+OxyKk00k/ewCp3TCSyhCw0mRRjQC23HmU0h55wQB5vQB4uQB1tgCIwBeJxgCBvQDC3ndCjACYx1204Fx6wwB7vQB1tABzsQBBfQBpkzdtpQB9tQA/iQCMu1SMukNUlQBYmQBsqAd4rh11rwZyrQBvqgBDfwCqvZVWkQBUnACp0Hq/43K733C+4X+w12eZyT2IvSN5sgpZkwBxmUSDqFlbnACJzQy742p/wwB2ugBysgBwrwBvqwBwqQBhmgBCfwDV2NN8pk1foACO1QBZmABRkABpqwB3uQB0sgB0rgBnogBUjgC7w7NymkFdnQBUhxmis41okjdCfgBGgQWHpWPMzMzb3NtumD5NhQzT09Pv8O/a2trOz87l5eXc3NzPz88AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABtHAA4HXQAAEgAAB9CTigAAABCfCQ4HTxy6Kw4HXRy+8xy+8wAAMwAAAAAAAAAAAAAAAAAAAAAAAgAAAgAABgYAAG7AAAAACgAAAgAAAgYAAEAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4Hnw4HnwAAFRpRiYmO2V0aWRtSSY7ZWdsZVNpdGNBO251amRGO3R0bCYmO3J3ZWlvVCY7c2xuaVc7d28ABCwBG8q3AAAAAXRSTlMAQObYZgAAAAlwSFlzAAALEgAACxIB0t1+/AAAAOtJREFUeNpjYIACRiZmFlY2dg4ol5OLm4eXj19AUAjMFRYRFROXkJSSlpEF8+XkFRSVlFVU1dQ1NMF8LW0dXT19A0MjYxNTIN/M3MLSytrG1s7ewdHJGSjg4urm7uHp5e3j6+cfABIIDAoOCVUJC4+IjIqOAQk4x8bFJyQmJadEpaalpQMFMjKzsnNy8/ILCouKS0qBAmXlFZVV1TW1dfUNJY1NQIHmlta29o7ozq7unt6+fgaGCRMnTZ4ydVrU9BkzZ5XOBiqYM3HuvPkL0tPTFy5avATkzqXLlq9YuWoJEKxeA/Ho2nUMyAAA9OtDOfv2TiUAAAAASUVORK5CYII=")}\n${b("leaf_method",16,"png","iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAKlBMVEUAAAAAgADzExMAgIAAAADAwMCAgADxGRnuFxLnHhHuIyPKJQ/rLi7////aW8ZOAAAAAXRSTlMAQObYZgAAAAFiS0dEDfa0YfUAAAAHdElNRQfgCxIPFR/msbP7AAAAaUlEQVQI12NggANBBiYFMMNQxAjCYA4UUoZIBRpBGMyiQorGIIaxWRCEwSYo3igiCNJlaLkwGSwkJn1QGMhgNDQ0TDU2dACqERYTDksGG5SkmGoApBnFhBRTBUAiaYJpDIJgs10cGBgdACxbDamu76Z5AAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE3LTAxLTE3VDA5OjMwOjM1KzAxOjAwyGHxKQAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNi0xMS0xOFQxNToyMTozMSswMTowMJgvuUkAAAAASUVORK5CYII=")}\n${b("globe",18,"gif","R0lGODlhEwASAPcAAPr7/AFyAQFCpwGD6jy3/wE9on7N0AE+pAFjyMLI0AE2mwF94wGP9QFpzgU3nISSopWgrmJsfTNLfgFHqAFuBilNiTp4sLnGzwWb/0xYb/P09mRygGl0hRlnMgR12V2Pr6e4xF9peS2Cyh5FpBdSfgF84YmisdPa30hjvw+foQFYvlWj4HWIlkWb5gk5n/b4+gw+kgFMscXb6ylmieDj5ju2pylTsniElgqd/u/x8wGW/O7v8SVMsUq+JSSJXQFiwfv+/AFqvB9ntobZeKbc/9vt+B+YmW2rvKruzQGPkm3PPrjmxQFIklrFLVbD4QGMYaXkoIPD13LC+nGw5AGFQHG66gF2eBaJxket9sLf84HI+wF7axBdbg2c0CR+1QFsEIfJ7yqoUIbH41tldgF+KzVTjn3QfitZgTJZkaDR8gKDsXeWrE+zogE3nCeKzQFtJ0tknjdnbQGB6EJgxQFqAcLJ0WC//yKm/wE+o7vI0ARozEOz/4/g/4KToyaX4/D09pCpuNHV24HA6gw7oAF/AXWKnEVSb5TI6VzDTrPprxBQts7e6FNdcBA9oySd9RRjPAhnD2NvgIydrF+6wdLo9v7//2K+twKSdDmKyeD56wGCyHq12VnF+ZXXsARdTjZWthShoo7gtilDlAFw1RCXvF+z6p/R8kqZzAF0Oj5jjFuJqgFoAkRgxtzr9YmcrJKsugFlylfBgxJGhjJIeFnFuhmi/+bo65ipt8Hn+UhVco7B5SZowAGBKoaZqAGGAVHBUwF8Qq7Y819qe4DEoVyYwrnb8QGN9GCy6QFTuHB9jgGY/gFRtuTu9ZOhr150iwFbwTFiwFus4h9mYt/y+kWZ35vM7hGfccz43Xy/6m3BuS1GiYveqDRfwnbUV4rdu////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAN8ALAAAAAATABIAAAj/AL8JHEiwVTVspar8ITiwiJhswyaBibJJUq9Trxh+S2OAVihvSzqRcoTpmy5ADIPFqrHtGpBETbrIuXJEBgiGbHoogTItExJOoAbw8rHmAkFTC8KYwTWkGx8COp4AozAjD8Epo4wQQfTLCQEcxqigoiONBUFqerRYspYCgzIGmgi98cRlA8EVLaR4UJPk0oASVgKs6kAiBMFDdrzAarDFF5kgCJA9ilNBGMFjWAQse/YjwBcVMfCcgTMr2UBKe0QIaHNgAiQmBRS4+CSKEYSBWe44E6JoEAxZDhrxmDPCEAcaA4vVinTCwi5uKFhBs6EtQ4QEOQYy8+NGUDRiqdCUJJGQa8yNQDsADHyxSNUHE4Vc3erzoFkdWxoAVNLIv7///98EBAA7")}\n${b("canvas",16,"gif","iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAADAFBMVEX/AAC1t7etsLCsrq6rrq6rrq2tr6+0tratsK/////p6enIysrl5OTn5uXo5+ajpaXo5+dhhKdliKlmialgg6elp6f6+/vIycnr7Ozw7u7x7u7x7u3t6+vLzMvp7vbs7/bz8PD17+3z7u2rrq/6xS76xy13zv9+z/+EwLF4zP/38/NfgqWAoL36uCj6vCmR2f+TxamSrBmNvoj++fz8+Pf69/WZ3f+g4P+n4/+Cnw2Dox16nQ3//f9hg6eBob6x5/+46f+77P+p2NKSZhOi1s////7//fusrq98sB6CsyWDtSmFuC9+dBl/tilfgqasr6+sr7DbAADcAABcgqWAoLyusLC4urqssLCssLGrsLCrr7Ctr67c3NzMzMwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABoAAAKAgJldmV0dU8GB3JvTnZDBWVyb2xsYwdjYWxhUBB0bmVrY2F1b3IICGRPYmFyZWQAAAXj1P/Hsf+rjv+Pa/9zSP9XJf9VAP9JANw9ALkxAJYlAHMZAFDU1P+xsf+Ojv9ra/9ISP8lJf8AAP4AANwAALkAAJYAAHMAAFDU4/+xx/+Oq/9rj/9Ic/8lV/8AVf8ASdwAPbkAMZYAJXMAGVDU8P+x4v+O1P9rxv9IuP8lqv8Aqv8AktwAerkAYpYASnMAMlDU//+x//+O//9r//9I//8l//8A/v4A3NwAubkAlpYAc3MAUFDU//Cx/+KO/9Rr/8ZI/7gl/6oA/6oA3JIAuXoAlmIAc0oAUDLU/+Ox/8eO/6tr/49I/3Ml/1cA/1UA3EkAuT0AljEAcyUAUBnU/9Sx/7GO/45r/2tI/0gl/yUA/gAA3AAAuQAAlgAAcwAAUADj/9TH/7Gr/46P/2tz/0hX/yVV/wBJ3AAQ+AFLAAAAAXRSTlMAQObYZgAAAAlwSFlzAAALEgAACxIB0t1+/AAAALpJREFUeNpjYGBkYmZhYWFlYWNngAAOTijg4oYIMHPy8PLx8nDycwpwQwUEhYSFRDhFxTi5xCECEpJS0jKcsqL8nGwgARZOOXkFRSWwMcwgAWVOFVU1dQ1NLW0dmICunr6BoZGxiSlEgJnTzNzC0sraxtYOJmDv4Ojk7MLp6gYRcOf08PTy9vHl9IOa4c+JAGCBAM7AoEDOwEDO4BCIABOSilCQQBhTeERkVGS4f3R0aBhIICYWAWIYGAClIBsa7hXG7gAAAABJRU5ErkJggg==")}\n${b("profile",16,"gif","iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAACXBIWXMAAAsSAAALEgHS3X78AAABZElEQVR42o1R22rCQBD1U/p//apCNtsHwRdfBaFIKbRoUVKMMTWBWIxVCq2b+07POrn4UKjDMpw9O2fm7G5vNBpJKe2/Qto4uEc2WMrBYEBEPaAky36UulwnlSRpUeZEBSGrpEiyHJVGAPVJqZvbO3ftv83Dle+vvPV4/LD0PGYAcKrSFJUsEOgHKoj3s9dFGH9uou3k8ekQKxyDQcYpBnYC7Hm9zBZmlL8BiIJDC0AWpa4FwhZJXoDCBgYAjgU5ToBt+k1tL14ssFNNvIEBAFwVljJlSDBfpwyg1ISnYoEsiHju5XLcd+T50q0tEQm7eaWKKNfUWgKApUsbPFY0lzY6DraEZm585Do/CLMzqLQWQnSC9k34lVa7PTsBs/zYOa4LB5ZlnQXCbif40Ra50jUwE6JtCcMlUiMQlugEQYisG8CWtGlRdQL+jmui/rjhcAhk/Reo6ff7RuB53vN1MZ1OIfgFQC1cuR3Y6lIAAAAASUVORK5CYII=")}\n${b("execute",16,"png","iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAABlBMVEXAwMAAxwCvbOAvAAAAAXRSTlMAQObYZgAAAAlwSFlzAAALEgAACxIB0t1+/AAAACBJREFUCFtjYIABHgYGfiA6wMD/gYH/B5g8ABLhYUAGAHniBNrUPuoHAAAAAElFTkSuQmCC")}\n${b("file",16,"png","iVBORw0KGgoAAAANSUhEUgAAABAAAAAQEAYAAABPYyMiAAAABmJLR0T///////8JWPfcAAAACXBIWXMAAABIAAAASABGyWs+AAAACXZwQWcAAAAQAAAAEABcxq3DAAAA2klEQVRIx61VURbDIAgTX+9ljg4n2z5sNouj1ml+LE9rQkSU5PA6kTZBToTznj5aqKqq+py4lFJKScnMzCwlAAB6IbnNuyXycd1g3oHrf32CmR9mZqpVOdDHs2DmI+c+AiJixu1RAN9xFUcdWCjVIr8xCX8Jubc8Ao9CJF8nRFgNJBxZSCEkjmrIxxSS0yIAoBU4OkpfU8sCPEbEvqaOXcR31zWORbYJ8EI8rsK+DWm7gMVb8F/GK7eg6818jNjJZjMn0agY7x6oxqL5sWbIbhLHoQN78PQ5F3kDgX8u9tphBfoAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTUtMDItMDZUMTA6Mjc6MzErMDE6MDChLu/mAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE0LTExLTEyVDA4OjM5OjIwKzAxOjAwIGvf8wAAAABJRU5ErkJggg==")}\n${b("text",16,"gif","R0lGODlhEgASALMAAP/////MzP+Zmf9mZv8zM/8AAMzM/8zMzJmZ/5mZmWZm/2ZmZjMz/zMzMwAA/////yH5BAUUAA8ALAAAAAASABIAAARo8MlJq73SKGSwdSDjUQoIjhNYOujDnGAnFXRBZKoBIpMw1ICHaaigBAq/AUK1CVEIhcfPNFlRbAEBEvWr0VDYQLYgkCQWh8XiAfgRymPyoTFRa2uPO009maP8ZmsjAHxnBygLDQ1zihEAOw==")}\n${b("task",18,"png","iVBORw0KGgoAAAANSUhEUgAAABUAAAAVCAAAAACMfPpKAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAJiS0dEAP+Hj8y/AAAACXBIWXMAAABIAAAASABGyWs+AAAATklEQVQY05XQUQoAIAgD0N3JY3fIChWttKR9xYvBCj0J0FsI3VVKQflwV22J0oyo3LOCc6pHW4dqi56v2CebbpMLtcmr+uTizz6UYpBnADSS8gvhaL5WAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE2LTA0LTA3VDA5OjQyOjQ4KzAyOjAwMgzRmQAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNC0xMS0xMlQwODozOToxOCswMTowMJ0LlncAAAAASUVORK5CYII=")}\n${b("pavetext",18,"png","iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAJ0Uk5TAAB2k804AAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAAAEgAAABIAEbJaz4AAAAsSURBVBjTY2CgCuBAAt1gASS5KKgARBpJACSEooIsARRbkABYoDsKCRDhEQBA2Am/6OrPewAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNi0wMS0wNFQxMDoxODoyNyswMTowMHsz6UQAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTQtMTEtMTJUMDg6Mzk6MjArMDE6MDAga9/zAAAAAElFTkSuQmCC")}\n${b("pavelabel",18,"png","iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAJ0Uk5TAAB2k804AAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAAAEgAAABIAEbJaz4AAAApSURBVBjTY2CgCuBAAt1gASS5KJgABzUEgABFANUWJAAWYIhCAkR4BAAHoAkEyi2U3wAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNi0wMS0wNFQxMDoxODoyNyswMTowMHsz6UQAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTQtMTEtMTJUMDg6Mzk6MjArMDE6MDAga9/zAAAAAElFTkSuQmCC")}\n${b("list",16,"png","iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4AEECTc01vBgywAAAE9JREFUOMu1k8ERwDAMwqRc9l/Z/eeRpKZlABkOLFD0JQGgAAah5kp8Y30F2HEwDhGTCG6tX5yqtAV/acEdwHQHl0Y8RbA7pLIxRPziGyM9xLEOKSpp/5AAAAAASUVORK5CYII=")}\n${b("color",16,"png","iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAM1BMVEUAAAAA4xcavGZGS1xZT79lW+9wdvFz/3N6fo3RISTZwXbyniXz80v/AAD/zAD/66v//6vGWiYeAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAADswAAA7MAbGhBn4AAAAHdElNRQfgAQQLLBhOmhPcAAAAIklEQVQY02NgRgEMDAzMnLzcfDwC7IxMbKwsQ10A3XMEAQA3JQVNowlkTAAAAABJRU5ErkJggg==")}\n${b("colz",16,"png","iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAMFBMVEV6fo0A4xcavGZGS1xZT79lW+9wdvFz/3PRISTZwXbyniXz80v/AAD/zAD/66v//6t1AkcGAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAADswAAA7MAbGhBn4AAAAHdElNRQfgAQQLNwdqpNWzAAAAT0lEQVQI12NgYGAwNjZmAAOLjmY0hs2ZwxCG1arFEIbt3csQhvXuzRCG/f/PEIZ5eTGEYSgoDGEYKSlDGGZpyRCGaWgwhGHi4gxhwG0HAwCr3BFWzqCkcAAAAABJRU5ErkJggg==")}\n${b("frame",16,"png","iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfgAQQLOwq4oOYCAAAAcUlEQVQoz7WQMQqAMAxFX0Uk4OLgIbp4oZ7BA/cOXR0KDnGpRbGayT+EQF74nw+GHIBo+5hdWdqAaFDoLIsegCSeWE0VcMxXYM6xvmiZSYDTooSR4WlxzzBZwGYBuwWs4mWUpVHJe1H9F1J7yC4ov+kAkTYXFCNzDrEAAAAASUVORK5CYII=")}\n${b("class",16,"png","iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QAvQC9AL1pQtWoAAAAjUlEQVR42p2T2wnAIAxFM0g/O6jDdBBHcAyHKKQYjfiI0UY4P8I9BG4CID8smB4+8SUsohpO3CFzKqmBFrhCO4kqQnCR6MJF4BEJTVQFhBAmASNIZkH6a0OMc8oUDAu8z7RhTTBVyIIEhxeCdYWjQApvK2TBrgGpwpP1livsBXC0ROMO/LqDKjKEzaf8AZWbJP6pTT9BAAAATHpUWHRTb2Z0d2FyZQAAeNpz0FDW9MxNTE/1TUzPTM5WMNEz0jNQsLTUNzDWNzBUSC7KLC6pdMitLC7JTNZLLdZLKS3IzyvRS87PBQDzvxJ8u4pLSgAAADN6VFh0U2lnbmF0dXJlAAB42ktKs0hLMkk2MzJKNEuzMLKwtEizSElMMbNITUw0NUtNAQCc7Qma0Goe1QAAAABJRU5ErkJggg==")}\n${b("member",16,"png","iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QAvQC9AL1pQtWoAAAAX0lEQVR42mNgAAIVBob/+DADPgBS8GCPBV6M1xCKDcDnBRcoZhgW4D8DBV75v2bLATAmxyC4ZmRMrCFYNfeU9BBvwJwpS8AYWTNZBoAwTDPFBpAciDCDyNFMtXSAFwAAUyq0GRPbbz4AAABMelRYdFNvZnR3YXJlAAB42nPQUNb0zE1MT/VNTM9MzlYw0TPSM1CwtNQ3MNY3MFRILsosLql0yK0sLslM1kst1kspLcjPK9FLzs8FAPO/Eny7iktKAAAAM3pUWHRTaWduYXR1cmUAAHjaS01JNrE0S00zSbU0NEsxMbMwM0xOSjYwNzY3NLRIMjUCAJcdCJ2BHe6SAAAAAElFTkSuQmCC")}\n${b("tf1",16,"png","iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAgMAAABinRfyAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX/////AP8/SMz///+Cf5VqAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAAHdElNRQfgCw4QHgSCla+2AAAAL0lEQVQI12MQYAACrAQXiFBoABINCgwMQgwcDAwSDEwMDKmhodMYJjAwaKDrAAEAoRAEjHDJ/uQAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTYtMTEtMTRUMTc6Mjk6MjErMDE6MDDxcSccAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE2LTExLTE0VDE3OjI5OjA1KzAxOjAwNka8zgAAAABJRU5ErkJggg==")}\n${b("tf2",16,"png","iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAgMAAABinRfyAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX/////AP8A/wD////pL6WoAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAAHdElNRQfgCw4PNgzGaW1jAAAARUlEQVQI12NgEGDQZAASKkBigQKQ6GhgYBDiYgASIiAigIGBS8iBgUFhEpCnoAEkUkNDQxkagUIMrUDMMAVETAARQI0MAD5GCJ7tAr1aAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE2LTExLTE0VDE2OjUxOjUzKzAxOjAwi1Gz3gAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNi0xMS0xNFQxNjo1MTozNiswMTowMG5bLUIAAAAASUVORK5CYII=")}\n`,V,"jsroot_hstyle")}(P.node());const T=b,z=[];let W=null;if(b.forEachItem(Me=>{delete Me._d3cont,"_fastcmd"in Me&&"Command"===Me._kind&&z.push(Me),"_status"in Me&&!W&&(W=Me)}),!b.h||P.empty())return b;if(z.length){const Me=P.append("div").attr("style","display: inline; vertical-align: middle; white-space: nowrap;");for(let je=0;jeb.toggleOpenState(!0)),fe.append("text").text(" | "),fe.append("a").attr("class","h_button").text("collapse all").attr("title","collapse all items in the browser").on("click",()=>b.toggleOpenState(!1)),(0,x.isFunc)(b.removeInspector)&&(fe.append("text").text(" | "),fe.append("a").attr("class","h_button").text("remove").attr("title","remove inspector").on("click",()=>b.removeInspector())),"_online"in b.h&&(fe.append("text").text(" | "),fe.append("a").attr("class","h_button").text("reload").attr("title","reload object list from the server").on("click",()=>b.reload())),"disp_kind"in b&&(fe.append("text").text(" | "),fe.append("a").attr("class","h_button").text("clear").attr("title","clear all drawn objects").on("click",()=>b.clearHierarchy(!1)));const we=P.append("div").attr("class","jsroot").style("font-size",b.with_icons?"12px":"15px").style("flex","1");if(b.show_overflow||we.style("overflow","auto"),b.background&&we.style("background-color",b.background).style("margin","2px").style("padding","2px"),b.textcolor&&we.style("color",b.textcolor),b.addItemHtml(b.h,we.append("div").attr("class","h_tree")),b.setTopPainter(),W&&!b.status_disabled&&!(0,x.decodeUrl)().has("nostatus")){const Me=(0,x.findFunction)(W._status);if((0,x.isFunc)(Me))return b.createStatusLine().then(je=>{je&&Me(je,b.itemFullName(W))})}return b})()}updateTreeNode(b,P){if(void 0===P||P.empty()){P=(0,L.Lt)(b._d3cont?b._d3cont:null);const T=this.itemFullName(b);if(P.empty()&&(P=this.selectDom().select(`[item='${T}']`)),P.empty()&&"_cycle"in b&&(P=this.selectDom().select(`[item='${T};${b._cycle}']`)),P.empty())return}this.addItemHtml(b,P,"update"),this.brlayout?.adjustBrowserSize(!0)}updateBackground(b,P){if(!b||!b._d3cont)return;const T=(0,L.Lt)(b._d3cont);if(T.empty())return;const z=T.select(".h_item");z.style("background",b._background?b._background:null),P&&b._background&&z.node().scrollIntoView(!1)}focusOnItem(b){var P=this;return(0,Te.A)(function*(){(0,x.isStr)(b)&&(b=P.findItem(b));const T=b?P.itemFullName(b):"";if(!T)return!1;let z=b,W=!1;for(;z;)void 0!==z._childs&&!z._isopen&&(z._isopen=!0,W=!0),z=z._parent;return(W?P.refreshHtml():Promise.resolve(!0)).then(()=>{const we=P.selectDom().select(`[item='${T}']`);return!we.empty()&&(we.node().scrollIntoView(),!0)})})()}tree_click(b,P,T){if(!P)return;const z=(0,L.Lt)(P.parentNode.parentNode),W=z.attr("item"),fe=W?this.findItem(W):null;if(!fe)return;if(fe._break_point){delete fe._break_point,this.addItemHtml(fe,z,"update");const bt=fe._parent,te=bt._childs.indexOf(fe),Je=(0,L.Lt)(z.node().parentNode);if(te<0)return console.error("internal error");bt._show_limit=2*(bt._show_limit||x.settings.HierarchyLimit);for(let tt=te+1;tt{this.fill_context(W,z),W.size()>0&&(W.tree_node=P.parentNode,W.show())})}fillSettingsMenu(b,P){b.addSettingsMenu(!0,P,T=>{"refresh"===T?(this.forEachRootFile(z=>B(z,z._file.fKeys,z._file,"")),this.refreshHtml()):"dark"===T?this.changeDarkMode():"width"===T&&this.brlayout?.adjustSeparators(x.settings.BrowserWidth,null)})}changeDarkMode(){this.textcolor&&(this.setBasicColors(),this.refreshHtml()),this.brlayout?.createStyle(),this.createButtons(),(0,x.isFunc)(this.disp?.changeDarkMode)&&this.disp.changeDarkMode(),this.disp?.forEachFrame(b=>{let P=(0,Ye.m6)(b);P||(P=(0,Ye.Nn)(b)),(0,x.isFunc)(P?.changeDarkMode)&&P!==this&&P.changeDarkMode()})}toggleDarkMode(){x.settings.DarkMode=!x.settings.DarkMode,this.changeDarkMode()}tree_contextmenu(b,P){b.preventDefault();const T=(0,L.Lt)(P.parentNode.parentNode).attr("item"),z=this.findItem(T);if(!z)return;const W=this.getOnlineProp(T),fe=this.getFileProp(T);return(0,Ze.ES)(b,this).then(Me=>{if(T&&z._parent||"_jsonfile"in z)if(W)this.fillOnlineMenu(Me,W,T);else{const je=(0,Re.iO)(z._kind,"nosame");if(z._can_draw&&(je.opts||(je.opts=[""]),je.opts.indexOf("")<0&&je.opts.unshift("")),je.opts){Me.addDrawMenu("Draw",je.opts,lt=>this.display(T,lt),"Draw item in the new frame");const Ge=this.disp?.getActiveFrame();!je.noappend&&Ge&&((0,Ye.m6)(Ge)||(0,Ye.Nn)(Ge))&&Me.addDrawMenu("Superimpose",je.opts,lt=>this.dropItem(T,Ge,lt),"Superimpose item with drawing on active frame")}if(fe&&je.opts&&!fe.localfile){let Ge=function we(Me){const Ge=document.createElement("div");return Ge.innerHTML=`x`,Ge.firstChild.href;var lt}(fe.fileurl);if(0===Ge.indexOf(x.source_dir)&&(Ge=Ge.slice(x.source_dir.length)),Ge=`${fe.kind}=${Ge}`,fe.itemname){let bt=fe.itemname;bt.search(/\+| |,/)>=0&&(bt=`'${bt}'`),Ge+=`&item=${bt}`}let lt="nobrowser";x.settings.WithCredentials&&(lt+="&with_credentials"),Me.addDrawMenu("Draw in new tab",je.opts,bt=>window.open(`${x.source_dir}?${lt}&${Ge}&opt=${bt}`),"Draw item in the new browser tab or window")}(je.expand||je.get_expand)&&(z._more||void 0===z._more)&&(void 0===z._childs?Me.add("Expand",()=>this.expandItem(T),"Exapnd content of object"):Me.add("Unexpand",()=>{z._more=!0,delete z._childs,delete z._isopen,z.expand_item&&delete z._expand,this.updateTreeNode(z)},"Remove all childs from hierarchy")),z._kind===x.prROOT+x.clTStyle&&Me.add("Apply",()=>this.applyStyle(T))}else{let je="",Ge=0;const lt=[],bt=()=>Ge++>0?"&":"?";this.forEachRootFile(tt=>lt.push(tt._file.fFullURL)),this.getTopOnlineItem()||(je=x.source_dir+"index.htm"),this.isMonitoring()&&(je+=bt()+"monitoring="+this.getMonitoringInterval()),1===lt.length?je+=`${bt()}file=${lt[0]}`:lt.length>1&&(je+=`${bt()}files=${JSON.stringify(lt)}`),this.disp_kind&&(je+=bt()+"layout="+this.disp_kind.replace(/ /g,""));const te=[],Je=[];this.disp?.forEachFrame(tt=>{const Fe=new Ye.JW(tt);let St,Ne=Fe.getTopPainter(),rt=Ne?Ne.getItemName():null;rt?St=Ne.getDrawOpt()||Ne.getItemDrawOpt():(Ne=null,Fe.forEachPainter(pt=>{const st=pt.getItemName();if(!st)return;let vt=pt.getDrawOpt()||pt.getItemDrawOpt()||"";Ne?Ne.getPadPainter()===pt.getPadPainter()&&(0===vt.indexOf("same ")&&(vt=vt.slice(5)),rt+="+"+st,St+="+"+vt):(Ne=pt,rt=st,St=vt)})),rt&&(te.push(rt),Je.push(St||""))}),1===te.length?je+=bt()+"item="+te[0]+bt()+"opt="+Je[0]:te.length>1&&(je+=bt()+"items="+JSON.stringify(te)+bt()+"opts="+JSON.stringify(Je)),Me.add("Direct link",()=>window.open(je)),Me.add("Only items",()=>window.open(je+"&nobrowser")),this.fillSettingsMenu(Me)}(0,x.isFunc)(z._menu)&&z._menu(Me,z,this),Me.size()>0&&(Me.tree_node=P.parentNode,Me.separ&&Me.add("separator"),Me.add("Close"),Me.show())}),!1}player(b,P){var T=this;return(0,Te.A)(function*(){const z=T.findItem(b);if(!z||!z._player||!(0,x.isStr)(z._player))return null;let W=null;if(z._module){const fe=yield T.importModule(z._module);W=fe?fe[z._player]:null}else(z._prereq||z._player.indexOf("JSROOT.")>=0)&&(yield T.loadScripts("",z._prereq)),W=(0,x.findFunction)(z._player);return(0,x.isFunc)(W)?(yield T.createDisplay(),W(T,b,P)):null})()}canDisplay(b,P){if(!b)return!1;if(b._player)return!0;if(void 0!==b._can_draw)return b._can_draw;if((0,x.isStr)(P)&&0===P.indexOf(x.kInspect))return!0;const T=(0,Re.hd)(b._kind,P);return(0,Re.Xv)(T)}isItemDisplayed(b){const P=this.getDisplay();return!!P&&null!==P.findFrame(b)}display(b,P,T){var z=this;return(0,Te.A)(function*(){const W=b;let we=null,Me=!1,je=null,Ge=b;const lt=P?.indexOf("::_display_on_frame_::")??-1;lt>=0&&(Ge=P.slice(lt+22),P=P.slice(0,lt));const bt=(te,Je)=>(Je&&console.log("When display ",b,"got",Je),Me&&je&&delete je._doing_update,Me||(0,Ve.Rh)(),(0,x.isFunc)(te?.setItemName)&&(te.setItemName(W,Me?null:P,z),je&&!je._painter&&(je._painter=te)),te||we);return z.createDisplay().then(te=>{if(!te)return bt();if(je=z.findItem(W),je&&"_player"in je)return z.player(W,P).then(Fe=>bt(Fe));if(Me=(0,x.isStr)(P)&&0===P.indexOf("update:"),Me){if(P=P.slice(7),!je||je._doing_update)return bt();je._doing_update=!0}if(je&&!z.canDisplay(je,P))return bt();let Je="",tt=!1;if((0,x.isStr)(P)&&P.indexOf("divid:")>=0){const Fe=P.indexOf("divid:");Je=P.slice(Fe+6),P=P.slice(0,Fe)}return"__default_draw_option__"===P&&(tt=!0,P=""),Me||(0,Ve.Rh)(`Loading ${W} ...`),z.getObject(W,P).then(Fe=>{Me||(0,Ve.Rh)(),je||(je=Fe.item);let Ne=Fe.obj;if(!Ne)return bt();Me||(0,Ve.Rh)(`Drawing ${W} ...`);let rt=Ne._typename?(0,Re.hd)(x.prROOT+Ne._typename):null;if(rt?.draw_field&&Ne[rt.draw_field]&&(Ne=Ne[rt.draw_field],P||(P=rt.draw_field_opt||""),rt=Ne._typename?(0,Re.hd)(x.prROOT+Ne._typename):null),tt&&!P&&rt?.dflt&&"expand"!==rt.dflt&&(P=rt.dflt),Je)return(Me?Re.AI:Re.$2)(Je,Ne,P).then(vt=>bt(vt)).catch(vt=>bt(null,vt));let St=!1;if(te.forEachPainter((st,vt)=>{if(st.getItemName()!==W)return;const Yt=st.getItemDrawOpt();tt&&T&&(P=Yt),(Me||!P||Yt===P)&&(T&&!St&&(St=!0,te.activateFrame(vt)),(0,x.isFunc)(st.redrawObject)&&st.redrawObject(Ne,P)&&(we=st))}),we)return bt();if(Me)return console.warn(`something went wrong - did not found painter when doing update of ${W}`),bt();const pt=te.findFrame(Ge,!0);return(0,Ye.tP)(pt),te.activateFrame(pt),(0,Re.$2)(pt,Ne,P).then(st=>bt(st)).catch(st=>bt(null,st))})})})()}enableDrag(b){b.attr("draggable","true").on("dragstart",function(P){const T=this.parentNode.parentNode.getAttribute("item");P.dataTransfer.setData("item",T)})}enableDrop(b){const P=this;(0,L.Lt)(b).on("dragover",function(T){const z=T.dataTransfer.getData("item"),W=P.findItem(z);(0,x.isStr)(W?._kind)&&0===W._kind.indexOf(x.prROOT)&&T.preventDefault()}).on("dragenter",function(){(0,L.Lt)(this).classed("jsroot_drag_area",!0)}).on("dragleave",function(){(0,L.Lt)(this).classed("jsroot_drag_area",!1)}).on("drop",function(T){(0,L.Lt)(this).classed("jsroot_drag_area",!1);const z=T.dataTransfer.getData("item");z&&P.dropItem(z,this)})}clearDrop(b){(0,L.Lt)(b).on("dragover",null).on("dragenter",null).on("dragleave",null).on("drop",null)}dropItem(b,P,T){var z=this;return(0,Te.A)(function*(){(!T||!(0,x.isStr)(T))&&(T="");const W=(fe,we)=>(!we&&(0,x.isFunc)(fe?.setItemName)&&fe.setItemName(b,null,z),fe);if("$legend"===b){const fe=(0,Ye.m6)(P);return(0,x.isFunc)(fe?.buildLegend)?fe.buildLegend(0,0,0,0,"",T).then(we=>W(we)):(console.error("Not possible to build legend"),W(null))}return z.getObject(b).then(fe=>{if(!fe.obj)return null;const we=(0,Ye.Nn)(P);return(0,x.isFunc)(we?.performDrop)?we.performDrop(fe.obj,b,fe.item,T).then(Me=>W(Me,we===Me)):we?.accept_drops?(0,Re.$2)(P,fe.obj,"same "+T).then(Me=>W(Me,we===Me)):(z.cleanupFrame(P),(0,Re.$2)(P,fe.obj,T).then(Me=>W(Me)))})})()}updateItems(b){var P=this;return(0,Te.A)(function*(){if(!P.disp)return!1;const T=[],z=[];let W=!1,fe=!1;return(0,x.isStr)(b)?b=[b]:(0,x.isObject)(b)||(void 0===b&&(b=!P.isMonitoring()),fe=!0,W=!!b),P.disp.forEachPainter(we=>{const Me=we.getItemName();if((0,x.isStr)(Me)&&!(T.indexOf(Me)>=0)){if(fe){const je=P.findItem(Me);if(!je||"_not_monitor"in je||"_player"in je)return;if(!("_always_monitor"in je)){const Ge=(0,Re.hd)(je._kind);let lt=!1;if(void 0!==Ge?.monitor){if(!1===Ge.monitor||"never"===Ge.monitor)return;"always"===Ge.monitor&&(lt=!0)}if(!lt&&W)return}}else if(b.indexOf(Me)<0)return;T.push(Me),z.push("update:"+we.getItemDrawOpt())}},!0),P.files_monitoring&&!W&&fe&&P.forEachRootFile(we=>{P.forEachItem(Me=>{delete Me._readobj},we),delete we._file}),P.displayItems(T,z)})()}displayItems(b,P){var T=this;return(0,Te.A)(function*(){if(!b||0===b.length)return!0;const z=T;for(P||(P=[]);P.lengthStart I/O test");const Ge=new Date;return T.getObject(b[0]).then(()=>{const lt=new Date;return(0,L.Lt)("#"+T.disp_frameid).append("h2").html("Item "+b[0]+" reading time = "+(lt.getTime()-Ge.getTime())+"ms"),!0})}const W=new Array(b.length),fe=new Array(b.length),we=new Array(b.length);for(let Ge=0;Ge1&&"'"===lt[0]&&"'"===lt[lt.length-1]&&(b[Ge]=lt.slice(1,lt.length-1),bt=!1);let te=z.findItem({name:b[Ge],check_keys:!0});if(te){b[Ge]=z.itemFullName(te);continue}if(bt&&"["===b[Ge][0]&&"]"===b[Ge][b[Ge].length-1]?(W[Ge]=v(b[Ge]),b[Ge]=W[Ge].shift()):bt&&b[Ge].indexOf("+")>0&&(W[Ge]=b[Ge].split("+"),b[Ge]=W[Ge].shift()),W[Ge]&&W[Ge].length>0){for(let tt=0;tt0&&null===z.findItem(W[Ge][tt])&&(W[Ge][tt]=W[Ge][tt].slice(0,Fe)+b[Ge].slice(Fe)),te=z.findItem({name:W[Ge][tt],check_keys:!0}),te&&(W[Ge][tt]=z.itemFullName(te))}for("["===P[Ge][0]&&"]"===P[Ge][P[Ge].length-1]?(fe[Ge]=v(P[Ge]),P[Ge]=fe[Ge].shift()):P[Ge].indexOf("+")>0?(fe[Ge]=P[Ge].split("+"),P[Ge]=fe[Ge].shift()):fe[Ge]=[];fe[Ge].length0&&!z.findItem(b[Ge])&&Ge>0&&(b[Ge]=b[Ge].slice(0,Je)+b[0].slice(Je)),te=z.findItem({name:b[Ge],check_keys:!0}),te&&(b[Ge]=z.itemFullName(te))}for(let Ge=b.length-1;Ge>=0;--Ge){if(we[Ge])continue;const lt=z.findItem(b[Ge]);!lt||z.canDisplay(lt,P[Ge])||(z.expandItem(b[Ge],null,!0),b.splice(Ge,1),P.splice(Ge,1),W.splice(Ge,1))}if(0===b.length)return!0;const Me=new Array(b.length),je=new Array(b.length);for(let Ge=0;Ge=0)lt=P[Ge].slice(te+8),P[Ge]=P[Ge].slice(0,te);else for(;Me.indexOf(lt)>=0;)lt=b[Ge]+"_"+bt++;Me[Ge]=lt}for(let Ge=0;Ge=0&&(lt=bt);for(let bt=0;bt{if(!Ge)return!1;for(let te=0;te0)return z.dropItem(W[te].shift(),Je.getDom(),fe[te].shift()).then(()=>lt(te,Je));W[te]=null,b[te]=null;for(let tt=0;ttlt(tt,Fe))}const bt=[];if(T._one_by_one){let te=function(Je){return Je>=b.length||(je[Je]?te(Je+1):z.display(b[Je],P[Je]).then(tt=>lt(Je,tt)).then(()=>te(Je+1)))};bt.push(te(0))}else for(let te=0;telt(te,Je)));return Promise.all(bt)})})()}reload(){var b=this;return(0,Te.A)(function*(){return"_online"in b.h&&b.openOnline(b.h._online).then(()=>b.refreshHtml())})()}activateItems(b,P){(0,x.isStr)(b)&&(b=[b]);const T=[],z=[];this.forEachItem(we=>{we._background&&(T.push(we),delete we._background)});const W=()=>{for(let we=z.length-1;we>=0;--we)this.updateTreeNode(z[we]);for(let we=0;we{if(void 0===we){if(0===b.length)return W();we=b.shift()}let je=this.findItem(we);if(!je){const Ge=this.findItem({name:we,last_exists:!0,check_keys:!0,allow_index:!0});if(!Ge||!Ge.last)return fe();if(Ge.now_found=this.itemFullName(Ge.last),P)return void 0!==Me&&Ge.now_found===Me?fe():this.expandItem(Ge.now_found).then(lt=>{if(!lt)return fe();let bt=this.itemFullName(Ge.last);bt&&(bt+="/"),fe(bt+Ge.rest,Ge.now_found)});je=Ge.last}if(je){let Ge=je._parent;for(;Ge;){if(!Ge._isopen){if(!P){je=Ge;break}Ge._isopen=!0,z.indexOf(Ge)<0&&z.push(Ge)}Ge=Ge._parent}je._background="LightSteelBlue",T.indexOf(je)<0&&T.push(je)}fe()};if(P&&this.brlayout){if(!this.brlayout.browser_kind)return this.createBrowser("float",!0).then(()=>fe());this.brlayout.browser_visible||this.brlayout.toggleBrowserVisisbility()}fe()}canExpandItem(b){if(!b)return!1;if(b._expand)return!0;const P=(0,Re.hd)(b._kind,"::expand");return P&&C(P)}expandItem(b,P,T){var z=this;return(0,Te.A)(function*(){const W=z.findItem(b),fe=z;if(!W&&P)return;function we(Ge,lt){return Me.apply(this,arguments)}function Me(){return(Me=(0,Te.A)(function*(Ge,lt){if((0,x.isStr)(Ge._expand)&&(Ge._expand=(0,x.findFunction)(Ge._expand)),!(0,x.isFunc)(Ge._expand)){let bt=(0,Re.hd)(Ge._kind,"::expand");if(bt?.expand_item&&!fe._inspector&&(lt=lt[bt.expand_item],Ge.expand_item=bt.expand_item,bt=lt?._typename?(0,Re.hd)(x.prROOT+lt._typename,"::expand"):null),bt?.expand||bt?.get_expand)if((0,x.isFunc)(bt.expand))Ge._expand=bt.expand;else if((0,x.isStr)(bt.expand)){if(!x.internals.ignore_v6){const te=yield(0,x._ensureJSROOT)();yield te.require(bt.prereq),yield te._complete_loading()}Ge._expand=bt.expand=(0,x.findFunction)(bt.expand)}else(0,x.isFunc)(bt.get_expand)&&(Ge._expand=bt.expand=yield bt.get_expand())}return lt&&(0,x.isFunc)(Ge._expand)&&Ge._expand(Ge,lt)||lt&&$(Ge,lt)?(Ge._isopen=!0,Ge._parent&&!Ge._parent._isopen?(Ge._parent._isopen=!0,T||fe.updateTreeNode(Ge._parent)):T||fe.updateTreeNode(Ge,P),Ge):-1})).apply(this,arguments)}let je=Promise.resolve(-1);if(W){if(!1===W._more||!W._parent&&W._childs)return;if(W._childs&&W._isopen)return W._isopen=!1,void(T||z.updateTreeNode(W,P));W._obj&&(je=we(W,W._obj))}return je.then(Ge=>-1!==Ge?Ge:((0,Ve.Rh)("Loading "+b),z.getObject(b,T?"hierarchy_expand":"hierarchy_expand_verbose").then(lt=>{if((0,Ve.Rh)(),lt.obj)return we(lt.item,lt.obj).then(bt=>-1!==bt?bt:void 0)})))})()}getTopOnlineItem(b){if(b){for(;b&&!("_online"in b);)b=b._parent;return b}return this.h?"_online"in this.h?this.h:this.h._childs&&"_online"in this.h._childs[0]?this.h._childs[0]:null:null}forEachJsonFile(b){if(this.h){if("_jsonfile"in this.h)return b(this.h);if(this.h._childs)for(let P=0;P{z._jsonfile===b&&(T=!0)}),!T)return(0,x.httpRequest)(b,"object").then(z=>{if(!z)return;const W={_jsonfile:b,_kind:x.prROOT+z._typename,_jsontmp:z,_name:b.split("/").pop()};if(z.fTitle&&(W._title=z.fTitle),W._get=function(fe){return fe._jsontmp?Promise.resolve(fe._jsontmp):(0,x.httpRequest)(fe._jsonfile,"object").then(we=>(fe._jsontmp=we,we))},P.h)if(P.h._kind===De)P.h._childs.push(W);else{const fe=P.h;P.h={_name:"_jsonfile"in fe?"Files":"Items",_kind:De,_childs:[fe,W]}}else P.h=W;return P.refreshHtml()})})()}forEachRootFile(b){if(this.h){if(this.h._kind===I&&this.h._file)return b(this.h);if(this.h._childs)for(let P=0;P{W._fullurl===b&&(T=!0)}),T)return;const z=(0,x.isStr)(b)?b:"file";return(0,Ve.Rh)(`Opening ${z} ...`),(0,ve.Tq)(b).then(W=>{const fe=P.fileHierarchy(W);if(fe._isopen=!0,P.h)if(P.h._kind===De)P.h._childs.push(fe);else{const we=P.h;P.h={_name:we._kind===I?"Files":"Items",_kind:De,_childs:[we,fe],_isopen:!0}}else P.h=fe,P._topname&&(fe._name=P._topname);return P.refreshHtml()}).catch(()=>((0,x.isBatchMode)()?console.error(`Fail to open ${z} - check CORS headers`):(0,L.Lt)("#gui_fileCORS").style("background","red").empty()||setTimeout(()=>(0,L.Lt)("#gui_fileCORS").style("background",""),5e3),!1)).finally(()=>(0,Ve.Rh)())})()}listServerDir(b){var P=this;return(0,Te.A)(function*(){return(0,x.httpRequest)(b,"text").then(T=>{if(!T)return!1;const z={_name:"Files",_kind:De,_childs:[],_isopen:!0};let W=0;for(;W5?z._childs.push({_name:we,_title:b+we,_url:b+we,_kind:I,_click_action:"expand",_more:!0,_obj:{},_expand:Me=>(0,ve.Tq)(Me._url).then(je=>{if(!je)return!1;delete Me._exapnd,delete Me._more,delete Me._click_action,delete Me._obj,Me._isopen=!0,P.fileHierarchy(je,Me),P.updateTreeNode(Me)})}):(we.lastIndexOf(".json.gz")===we.length-8&&we.length>8||we.lastIndexOf(".json")===we.length-5&&we.length>5)&&z._childs.push({_name:we,_title:b+we,_jsonfile:b+we,_can_draw:!0,_get:Me=>(0,x.httpRequest)(Me._jsonfile,"object").then(je=>(je&&(Me._kind=x.prROOT+je._typename,Me._jsontmp=je,P.updateTreeNode(Me)),je))})}return z._childs.length>0&&(P.h=z),!0})})()}applyStyle(b){var P=this;return(0,Te.A)(function*(){if(!b)return!0;let T=Promise.resolve(b);if((0,x.isStr)(b)){const z=P.findItem({name:b,allow_index:!0,check_keys:!0});null!==z?T=P.getObject(z).then(W=>W.obj):b.indexOf(".json")>0&&(T=(0,x.httpRequest)(b,"object"))}return T.then(z=>{z?._typename===x.clTStyle&&Object.assign(x.gStyle,z)})})()}getFileProp(b){let P=this.findItem(b);if(!P)return null;let T=P._name;for(;P._parent;){if(P=P._parent,"_file"in P)return{kind:"file",fileurl:P._file.fURL,itemname:T,localfile:!!P._file.fLocalFile};if("_jsonfile"in P)return{kind:"json",fileurl:P._jsonfile,itemname:T};T=P._name+"/"+T}return null}getOnlineItemUrl(b){(0,x.isStr)(b)&&(b=this.findItem(b));let P=b;for(;P&&void 0===P._online;)P=P._parent;return P?P._online+this.itemFullName(b,P):null}isOnlineItem(b){return null!==this.getOnlineItemUrl(b)}importModule(b){return(0,Te.A)(function*(){switch(b){case"core":return Promise.resolve().then(Se.bind(Se,8872));case"draw_tree":return Promise.all([Se.e(679),Se.e(76),Se.e(122)]).then(Se.bind(Se,1122));case"hierarchy":return{HierarchyPainter:U,markAsStreamerInfo:E}}return import(b)})()}getOnlineItem(b,P,T){var z=this;return(0,Te.A)(function*(){let W=P,fe=!1,we="",Me="object",je=null;if((0,x.isStr)(T)&&0===T.indexOf("hierarchy_expand")&&(fe=!0,T=void 0),b){W=z.getOnlineItemUrl(b);let Ge=null;if("_kind"in b&&(je=(0,Re.hd)(b._kind)),fe?(we="h.json?compact=3",b._expand=p):b._make_request?Ge=b._module?(yield z.importModule(b._module))[b._make_request]:(0,x.findFunction)(b._make_request):je?.make_request&&(Ge=je.make_request),(0,x.isFunc)(Ge)){const lt=Ge(z,b,W,T);lt&&((0,x.isStr)(lt)?we=lt:("req"in lt&&(we=lt.req),"kind"in lt&&(Me=lt.kind)))}!we&&0!==b._kind.indexOf(x.prROOT)&&(we="item.json.gz?compact=3")}if(!P&&b&&"_cached_draw_object"in z&&!we){const Ge=z._cached_draw_object;return delete z._cached_draw_object,Ge}return we||(we="root.json.gz?compact=23"),W&&(W+="/"),W+=we,new Promise(Ge=>{let lt=null;(0,x.createHttpRequest)(W,Me,bt=>{const te=Je=>{if((0,x.isFunc)(Je)){const tt=Je(z,b,bt,T,lt);(0,x.isObject)(tt)&&(bt=tt)}Ge(bt)};!fe&&b?._after_request?b._module?z.importModule(b._module).then(Je=>te(Je[b._after_request])):te((0,x.findFunction)(b._after_request)):te(je?.after_request)},void 0,!0).then(bt=>{lt=bt,bt.send(null)})})})()}openOnline(b){var P=this;return(0,Te.A)(function*(){const T=function(){var z=(0,Te.A)(function*(W){if(P.h=W,!W)return Promise.resolve(null);P.h?._title&&typeof document<"u"&&(document.title=P.h._title),W._isopen=!0,P.h._online=b,P.h._get=(Ge,lt,bt)=>P.getOnlineItem(Ge,lt,bt),P.h._expand=p;const fe=[],we=[],Me=[],je=[];return P.forEachItem(Ge=>{void 0!==Ge._childs&&(Ge._expand=p),Ge._autoload&&Ge._autoload.split(";").forEach(bt=>{bt.length>4&&bt.lastIndexOf(".mjs")===bt.length-4?je.push(P.importModule(bt)):bt.length>3&&bt.lastIndexOf(".js")===bt.length-3?we.find(te=>te===bt)||we.push(bt):bt.length>4&&bt.lastIndexOf(".css")===bt.length-4?fe.find(te=>te===bt)||fe.push(bt):bt&&!Me.find(te=>te===bt)&&Me.push(bt)})}),P.loadScripts(we,Me).then(()=>(0,x.loadScript)(fe)).then(()=>Promise.all(je)).then(()=>(P.forEachItem(Ge=>{if(!("_drawfunc"in Ge)||!("_kind"in Ge))return;let lt="kind:"+Ge._kind;0===Ge._kind.indexOf(x.prROOT)&&(lt=Ge._kind.slice(5));const bt=Ge._drawopt;(!(0,Re.Xv)(lt)||bt)&&(0,Re.uA)({name:lt,func:Ge._drawfunc,script:Ge._drawscript,opt:bt})}),P))});return function(fe){return z.apply(this,arguments)}}();if(b||(b=""),(0,x.isObject)(b)){const z=b;return b="",T(z)}return(0,x.httpRequest)(b+"h.json?compact=3","object").then(z=>T(z))})()}getOnlineProp(b){let P=this.findItem(b);if(!P)return null;let T=P._name;for(;P._parent;){if(P=P._parent,"_online"in P)return{server:P._online,itemname:T};T=P._name+"/"+T}return null}fillOnlineMenu(b,P,T){const z=this.findItem(T),W=(0,Re.iO)(z._kind,"nosame;noinspect"),fe=(0,Re.hd)(z._kind),we=!!(0,x.isStr)(z._kind)&&0===z._kind.indexOf(x.prROOT);W.opts&&!1!==z._can_draw&&(W.opts.push(x.kInspect),b.addDrawMenu("Draw",W.opts,Me=>this.display(T,Me))),!z._childs&&!1!==z._more&&(z._more||we||W.expand||W.get_expand)&&b.add("Expand",()=>this.expandItem(T)),fe?.execute&&b.add("Execute",()=>this.executeCommand(T,b.tree_node)),W.opts&&!1!==z._can_draw&&b.addDrawMenu("Draw in new window",W.opts,Me=>window.open(P.server+`?nobrowser&item=${P.itemname}`+(this.isMonitoring()?`&monitoring=${this.getMonitoringInterval()}`:"")+(Me?`&opt=${Me}`:""))),W.opts?.length&&we&&!1!==z._can_draw&&b.addDrawMenu("Draw as png",W.opts,Me=>window.open(P.server+P.itemname+"/root.png?w=600&h=400"+(Me?"&opt="+Me:"")),"Request PNG image from the server"),"_player"in z&&b.add("Player",()=>this.player(T))}setHierarchy(b){this.h=b,this.refreshHtml()}setMonitoring(b,P){this._runMonitoring("cleanup"),b&&(b=parseInt(b),Number.isInteger(b)&&b>0?(this._monitoring_interval=Math.max(100,b),P=!0):this._monitoring_interval=3e3),this._monitoring_on=P,this.isMonitoring()&&this._runMonitoring()}_runMonitoring(b){return"cleanup"!==b&&this.isMonitoring()?"frame"===b?(delete this._monitoring_handle,void(this._monitoring_frame=requestAnimationFrame(this._runMonitoring.bind(this,"draw")))):("draw"===b&&(delete this._monitoring_frame,this.updateItems()),void(this._monitoring_handle=setTimeout(this._runMonitoring.bind(this,"frame"),this.getMonitoringInterval()))):(this._monitoring_handle&&(clearTimeout(this._monitoring_handle),delete this._monitoring_handle),void(this._monitoring_frame&&(cancelAnimationFrame(this._monitoring_frame),delete this._monitoring_frame)))}getMonitoringInterval(){return this._monitoring_interval||3e3}isMonitoring(){return this._monitoring_on}setDisplay(b,P){!P&&(0,x.isObject)(b)?(this.disp=b,this.disp_kind="custom",this.disp_frameid=null):(this.disp_kind=b,this.disp_frameid=P),!this.register_resize&&"batch"!==this.disp_kind&&(this.register_resize=!0,(0,Ve.d7)(this))}getLayout(){return this.disp_kind}removePainter(b){this.forEachItem(P=>{P._painter===b&&(delete P._painter,(0,x.isFunc)(P.clear)&&P.clear())})}clearHierarchy(b){this.disp&&(this.disp.cleanup(),delete this.disp);const P=[];this.forEachItem(T=>{delete T._painter,!b&&(0,x.isFunc)(T.clear)&&T.clear(),b&&P.push(T)}),b&&(this.enableMonitoring(!1),this.selectDom().html(""),P.forEach(T=>{delete T._parent,delete T._childs,delete T._obj,delete T._d3cont}),delete this.h)}getDisplay(){return this.disp}cleanupFrame(b){(0,L.Lt)(b).attr("frame_title",null),this.clearDrop(b);const P=(0,Ye.tP)(b);P.length>0&&this.forEachItem(T=>{T._painter&&P.indexOf(T._painter)>=0&&delete T._painter})}createDisplay(){var b=this;return(0,Te.A)(function*(){if("disp"in b){if(b.disp.numDraw()>0||"custom"===b.disp_kind)return b.disp;b.disp.cleanup(),delete b.disp}return"batch"===b.disp_kind?((0,x.isNodeJs)()?(0,ot.lf)():Promise.resolve(null)).then(T=>(b.disp=new He.bG(1200,800,T?.body),b.disp)):document.getElementById(b.disp_frameid)?(b.disp=0===b.disp_kind.indexOf("flex")||0===b.disp_kind.indexOf("coll")?new He.o5(b.disp_frameid):"tabs"===b.disp_kind?new He.Hb(b.disp_frameid):new He.ho(b.disp_frameid,b.disp_kind),b.disp.cleanupFrame=b.cleanupFrame.bind(b),x.settings.DragAndDrop&&b.disp.setInitFrame(b.enableDrop.bind(b)),b.disp):null})()}createCustomDisplay(b,P){var T=this;return(0,Te.A)(function*(){if("simple"!==T.disp_kind)return T.createDisplay();if(T.disp_kind=P,T.disp){const z=T.disp.numDraw();if(z>1||1===z&&!T.disp.findFrame(b))return T.createDisplay();T.disp.cleanup(),delete T.disp}return T.createDisplay()})()}updateOnOtherFrames(b,P){const T=this.disp;if(!T)return!1;const z=P._typename?(0,Re.hd)(x.prROOT+P._typename):null;z?.draw_field&&P[z?.draw_field]&&(P=P[z?.draw_field]);let W=!1;return T.forEachPainter(fe=>{fe===b||fe.getItemName()!==b.getItemName()||(0,x.isFunc)(fe.redrawObject)&&fe.redrawObject(P)&&(W=!0)}),W}checkResize(b){this.disp&&this.disp.checkMDIResize(null,b)}loadScripts(b,P,T){return(0,Te.A)(function*(){return!b?.length&&!P?.length||(T&&!globalThis.JSROOT&&(globalThis.JSROOT={version:x.version,gStyle:x.gStyle,create:x.create,httpRequest:x.httpRequest,loadScript:x.loadScript,decodeUrl:x.decodeUrl,source_dir:x.source_dir,settings:x.settings,addUserStreamer:ve.Ub,addDrawFunc:Re.uA,draw:Re.$2,redraw:Re.AI}),x.internals.ignore_v6||T?(0,x.loadScript)(b):(0,x._ensureJSROOT)().then(z=>z.require(P).then(()=>(0,x.loadScript)(b)).then(()=>z._complete_loading())))})()}startGUI(b,P){var T=this;return(0,Te.A)(function*(){const z=(0,x.decodeUrl)(P),W=Dn=>{let $n=z.get(Dn,null);return null===$n&&b&&!b.empty()&&b.node().hasAttribute(Dn)&&($n=b.attr(Dn)),$n},we=Dn=>{let $n=(Dn=>{let $n=[];for(;Dn;){const Cn=Dn.indexOf(";");let yn=Cn>0?Dn.slice(0,Cn):Dn;Dn=Cn>0?Dn.slice(Cn+1):"";let Sn=!0;"#"===yn[0]&&(yn=yn.slice(1),Sn=!1);const ii=z.get(yn,null);Sn?$n=$n.concat(v(ii)):null!==ii&&$n.push(ii)}return $n})(Dn);if($n.length>0||!b||b.empty())return $n;for(;Dn;){const Cn=Dn.indexOf(";");let yn=Cn>0?Dn.slice(0,Cn):Dn;Dn=Cn>0?Dn.slice(Cn+1):"";let Sn=!0;if("#"===yn[0]&&(yn=yn.slice(1),Sn=!1),"files"===yn||!b.node().hasAttribute(yn))continue;const ii=b.attr(yn);Sn?$n=$n.concat(v(ii)):null!==ii&&$n.push(ii)}return $n},Me=z.get("path")||"",je=we("#json;jsons"),Ge=we("expand"),lt=W("focus"),bt=W("layout"),te=we("#style"),Je=W("title");T._one_by_one=x.settings.drop_items_one_by_one??null!==W("one_by_one");let tt=W("prereq")||"",Fe=W("load"),Ne=W("dir"),rt=W("inject"),St=we("#file;files"),pt=we("#item;items"),st=we("#opt;opts"),vt=W("monitoring"),Yt=0,qt=W("status"),Ot=W("browser"),Bn=!!Ot;if(vt=null===vt?0:""===vt?3e3:parseInt(vt),null!==W("float")?(Ot="float",Bn=!0):null!==W("fix")&&(Ot="fix",Bn=!0),!Bn&&x.browser.screenWidth<=640&&(Ot="float"),T.no_select=W("noselect"),null!==W("files_monitoring")&&(T.files_monitoring=!0),Je&&typeof document<"u"&&(document.title=Je),0===Ge.length&&""===W("expand")&&Ge.push(""),Me){for(let Dn=0;Dn{let Dn;if(Fe||tt)Dn=T.loadScripts(Fe,tt),Fe="",tt="";else if(rt)Dn=T.loadScripts(rt,"",!0),rt="";else if(Ot)Dn=T.createBrowser(Ot),Ot="";else if(null!==qt)Dn=T.createStatusLine(Yt,qt),qt=null;else if(je.length>0)Dn=T.openJsonFile(je.shift());else if(St.length>0)Dn=T.openRootFile(St.shift());else if(Ne)Dn=T.listServerDir(Ne),Ne="";else if(Ge.length>0)Dn=T.expandItem(Ge.shift());else{if(!(te.length>0))return T.refreshHtml().then(()=>T.displayItems(pt,st)).then(()=>lt?T.focusOnItem(lt):T).then(()=>(T.setMonitoring(vt),pt?T.refreshHtml():T));Dn=T.applyStyle(te.shift())}return Dn.then(Mn)};let bn=null;if(T.is_online){const Dn=x.internals.getCachedHierarchy||(0,x.findFunction)("GetCachedHierarchy");(0,x.isFunc)(Dn)&&(bn=Dn()),(0,x.isObject)(bn)||(bn=""),"draw"===T.is_online&&!pt.length&&pt.push("")}return null!==bn?T.openOnline(bn).then(()=>(!T.exclude_browser&&!Bn&&"_browser"in T.h&&(Ot=T.h._browser,"no"===Ot?Ot="":"off"===Ot&&(Ot="",qt=null,T.exclude_browser=!0)),"_monitoring"in T.h&&!vt&&(vt=T.h._monitoring),"_loadfile"in T.h&&0===St.length&&(St=v(T.h._loadfile)),"_drawitem"in T.h&&0===pt.length&&(pt=v(T.h._drawitem),st=v(T.h._drawopt)),"_layout"in T.h&&!bt&&("draw"!==T.is_online||pt.length>1)&&(T.disp_kind=T.h._layout),"_toptitle"in T.h&&T.exclude_browser&&typeof document<"u"&&(document.title=T.h._toptitle),b&&T.prepareGuiDiv(b.attr("id"),T.disp_kind),Mn())):(b&&T.prepareGuiDiv(b.attr("id"),T.disp_kind),Mn())})()}prepareGuiDiv(b,P){this.gui_div=(0,x.isStr)(b)?b:b.attr("id"),this.brlayout=new He.jX(this.gui_div,this),this.brlayout.create(!this.exclude_browser),this.createButtons(),this.setDisplay(P,this.brlayout.drawing_divid())}createButtons(){if(this.exclude_browser)return;const b=this.brlayout?.createBrowserBtns();b&&(Ve.IK.createSVG(b,Ve.IK.diamand,15,"toggle fix-pos browser","browser").style("margin","3px").on("click",()=>this.createBrowser("fix",!0)),this.float_browser_disabled||Ve.IK.createSVG(b,Ve.IK.circle,15,"toggle float browser","browser").style("margin","3px").on("click",()=>this.createBrowser("float",!0)),this.status_disabled||Ve.IK.createSVG(b,Ve.IK.three_circles,15,"toggle status line","browser").style("margin","3px").on("click",()=>this.createStatusLine(0,"toggle")))}hasStatusLine(){return!(this.status_disabled||!this.gui_div||!this.brlayout)&&this.brlayout.hasStatus()}createStatusLine(b,P){var T=this;return(0,Te.A)(function*(){return!T.status_disabled&&T.gui_div&&T.brlayout?T.brlayout.createStatusLine(b,P):""})()}redrawObject(b){return!(!this._inspector&&!this._streamer_info)&&(this.h=this._streamer_info?g(b):_(b),this.refreshHtml().then(()=>{this.setTopPainter()}))}createBrowser(b,P){var T=this;return(0,Te.A)(function*(){if(!T.gui_div||T.exclude_browser||!T.brlayout)return!1;const z=(0,L.Lt)(`#${T.gui_div} .jsroot_browser`);if(z.empty())return!1;if("float"===b&&T.float_browser_disabled&&(b="fix"),!z.select(".jsroot_browser_area").empty())return P&&T.brlayout.toggleKind(b),!0;let W=`

JSROOT version ${x.version}

`;if(T.is_online)W+='

Hierarchy in json and xml format

';else if(T.no_select)"file"===T.no_select&&(W+='
');else{const Me=(0,L.Lt)("#"+T.gui_div),je=Me.attr("files")||"../files/hsimple.root",Ge=(0,x.decodeUrl)().get("path")||Me.attr("path")||"",lt=je.split(";");W+='

Read docu how to open files from other servers.

'}(T.is_online||!T.no_select||"file"===T.no_select)&&(W+='
'),W+=`
`,T.brlayout.setBrowserContent(W),T.brlayout.setBrowserTitle(T.is_online?"ROOT online server":"Read a ROOT file")?.on("contextmenu",Me=>{Me.preventDefault(),(0,Ze.ES)(Me).then(je=>{T.fillSettingsMenu(je,!0),je.show()})}).on("dblclick",()=>{T.createBrowser("float"===T.brlayout?.browser_kind?"fix":"float",!0)}),!T.is_online&&!T.no_select&&(T.readSelectedFile=function(){const Me=z.select(".gui_urlToLoad").property("value").trim();Me&&(Me.toLowerCase().lastIndexOf(".json")===Me.length-5?this.openJsonFile(Me):this.openRootFile(Me))},z.select(".gui_selectFileName").property("value","").on("change",Me=>z.select(".gui_urlToLoad").property("value",Me.target.value)),z.select(".gui_fileBtn").on("click",()=>z.select(".gui_localFile").node().click()),z.select(".gui_ReadFileBtn").on("click",()=>T.readSelectedFile()),z.select(".gui_ResetUIBtn").on("click",()=>T.clearHierarchy(!0)),z.select(".gui_urlToLoad").on("keyup",Me=>{"Enter"===Me.code&&T.readSelectedFile()}),z.select(".gui_localFile").on("change",Me=>{const je=Me.target.files;for(let Ge=0;Gewe.append("option").attr("value",Me).html(Me)),we.on("change",Me=>{const je=Me.target.value||"flex";T.setDisplay(je,T.gui_div+"_drawing"),x.settings.DislpayKind=je})),T.setDom(T.gui_div+"_browser_hierarchy"),P&&(T.refreshHtml(),T.initializeBrowser()),T.brlayout.toggleBrowserKind(b||"fix")})()}initializeBrowser(){const b=(0,L.Lt)(`#${this.gui_div} .jsroot_browser`);if(b.empty()||!this.brlayout)return;this.brlayout.adjustBrowserSize();const P=b.select(".gui_layout").node();if(P){let T=!1;for(const z in P.options){const W=P.options[z].text;if((0,x.isStr)(W)&&(W===this.getLayout()||W.replace(/ /g,"")===this.getLayout())){P.selectedIndex=z,T=!0;break}}if(!T){const z=document.createElement("option");z.innerHTML=z.value=this.getLayout(),P.appendChild(z),P.selectedIndex=P.options.length-1}}if(this.is_online)this.h?._toptitle&&this.brlayout.setBrowserTitle(this.h._toptitle),b.select(".gui_monitoring").property("checked",this.isMonitoring()).on("click",T=>{this.enableMonitoring(T.target.checked),this.updateItems()});else if(!this.no_select){let T="";this.forEachRootFile(z=>{T||(T=z._fullurl)}),b.select(".gui_urlToLoad").property("value",T)}}enableMonitoring(b){this.setMonitoring(void 0,b);const P=(0,L.Lt)(`#${this.gui_div} .jsroot_browser .gui_monitoring`);!P.empty()&&P.property("checked")!==b&&P.property("checked",b)}}function k(V,b){return Z.apply(this,arguments)}function Z(){return(Z=(0,Te.A)(function*(V,b){const P=new U("sinfo",V,"__as_dark_mode__");return(0,x.isBatchMode)()?(P.selectDom().property("_json_object_",b),P):(P._streamer_info=!0,P.h=g(b),P.refreshHtml().then(()=>(P.setTopPainter(),P)))})).apply(this,arguments)}function ee(V,b,P){return he.apply(this,arguments)}function he(){return(he=(0,Te.A)(function*(V,b,P){(0,Ye.tP)(V);const T=new U("inspector",V,"__as_dark_mode__");if((0,x.isBatchMode)())return T.selectDom().property("_json_object_",b),T;T.default_by_click="expand",T.with_icons=!1,T._inspector=!0;let z=0;return(0,x.isStr)(P)&&0===P.indexOf(x.kInspect)&&(P=P.slice(x.kInspect.length)).length>0&&(z=Number.parseInt(P)),T.selectDom().classed("jsroot_inspector")&&(T.removeInspector=function(){this.selectDom().remove()}),T.fill_context=function(W,fe){const we=(0,Re.iO)(fe._kind,"nosame");we.opts&&W.addDrawMenu("nosub:Draw",we.opts,Me=>{if(!fe?._obj)return;const je=fe._obj;let Ge=this.selectDom().node();if((0,x.isFunc)(this.removeInspector)&&(Ge=Ge.parentNode,this.removeInspector(),0===Me.indexOf(x.kInspect)))return this.showInspector(Me,je);(0,Ye.tP)(Ge),(0,Re.$2)(Ge,je,Me)})},T.h=_(b),T.refreshHtml().then(()=>(T.setTopPainter(),T.exapndToLevel(z)))})).apply(this,arguments)}Ye.JW.prototype.showInspector=function(V,b){if("check"===V)return!0;const P=this.selectDom(),T=(0,ot.xh)(P),z=Math.round(.05*T.width)+"px",W=Math.round(.05*T.height)+"px",fe="root_inspector_"+x.internals.id_counter++;return P.append("div").attr("id",fe).attr("class","jsroot_inspector").style("position","absolute").style("top",W).style("bottom",W).style("left",z).style("right",z),b?._typename||(b=(0,x.isFunc)(this.getPrimaryObject)?this.getPrimaryObject():this.getObject()),ee(fe,b,V)},x.internals.drawInspector=ee},6157:(Yr,mt,Se)=>{"use strict";Se.d(mt,{Hb:()=>J,bG:()=>ue,gZ:()=>Re,ho:()=>F,jX:()=>Q,kV:()=>He,o5:()=>Y});var Te=Se(4882),x=Se(8362),L=Se(8872),ve=Se(2843),ke=Se(1922),ot=Se(7900),Ye=Se(5992);let Ze=null;function Re(){return Ze}function He(me){Ze=me}class Ve extends ve.b8{constructor(X){super(),this.frameid=X,"$batch$"!==X&&(this.setDom(X),this.selectDom().property("mdi",this)),this.cleanupFrame=ke.tP,this.active_frame_title=""}setInitFrame(X){this.initFrame=X,this.forEachFrame(B=>X(B))}beforeCreateFrame(X){this.active_frame_title=X}afterCreateFrame(X){return(0,L.isFunc)(this.initFrame)&&this.initFrame(X),X}forEachFrame(X,B){console.warn(`forEachFrame not implemented in MDIDisplay ${typeof X} ${B}`)}forEachPainter(X,B){this.forEachFrame($=>{new ke.JW($).forEachPainter(g=>X(g,$))},B)}numDraw(){let X=0;return this.forEachFrame(()=>++X),X}findFrame(X,B){let $=null;return this.forEachFrame(g=>{(0,x.Lt)(g).attr("frame_title")===X&&($=g)}),!$&&B&&($=this.createFrame(X)),$}activateFrame(X){this.active_frame_title=X?(0,x.Lt)(X).attr("frame_title"):""}getActiveFrame(){return this.findFrame(this.active_frame_title)}checkMDIResize(X,B){let $=null;this.forEachPainter((g,E)=>{if((!X||(0,x.Lt)(E).attr("id")===X)&&null!==g.getItemName()&&(0,L.isFunc)(g.checkResize)){if($===E)return;g.checkResize(B),$=E}})}cleanup(){this.active_frame_title="",this.forEachFrame(this.cleanupFrame),this.selectDom().html("").property("mdi",null)}}class F extends Ve{constructor(X,B,$){super(X),this.framecnt=0,this.getcnt=0,this.groups=[],this.vertical=B&&"v"===B[0],this.use_separarators=!B||B.indexOf("x")<0,this.simple_layout=!1;const g=this.selectDom();if(g.style("overflow","hidden"),"simple"===B)return this.simple_layout=!0,this.use_separarators=!1,void(this.framecnt=1);let _,v,p,E=2;if("projxy"===B)this.vertical=!1,this.use_separarators=!0,_=[2,2],v=[1,3],p=[[3,1],[3,1]],B="",this.match_sizes=!0;else if(0===B.indexOf("grid")||$){B=$?B+"x"+$:B.slice(4).trim(),this.use_separarators=!1,"i"===B[0]&&(this.use_separarators=!0,B=B.slice(1));const C=B.indexOf("x");let I,U;if(C>0?(U=parseInt(B.slice(C+1)),I=parseInt(B.slice(0,C))):I=U=parseInt(B),Number.isInteger(I)||(I=3),Number.isInteger(U)||(U=3),U>1)this.vertical=!0,E=U,I>1&&(_=new Array(E).fill(I));else{if(!(I>1))return this.simple_layout=!0,this.use_separarators=!1,void(this.framecnt=1);this.vertical=!1,E=I}B=""}if(B&&B.indexOf("_")>0){let C=parseInt(B.slice(B.indexOf("_")+1),10);if(Number.isInteger(C)&&C>10)for(B=B.slice(0,B.indexOf("_")),v=[];C>0;)v.unshift(Math.max(C%10,1)),C=Math.round((C-v[0])/10),0===v[0]&&(v[0]=1)}if(B=B?parseInt(B.replace(/^\D+/g,""),10):0,Number.isInteger(B)&&B>1)if(B<10)E=B;else{for(_=[];B>0;)_.unshift(B%10),B=Math.round((B-_[0])/10),0===_[0]&&(_[0]=1);E=_.length}v?.length!==E&&(v=void 0),p?.length!==E&&(p=void 0),this.simple_layout||this.createGroup(this,g,E,_,v,p)}createGroup(X,B,$,g,E,_){E||(E=new Array($));let v=0,p=0;for(let C=0;C<$;++C)v+=E[C]||1;for(let C=0;C<$;++C)E[C]=Math.round(100*(E[C]||1)/v),p+=E[C],C===$-1&&(E[C]+=100-p);for(let C=0;C<$;++C){const I={id:C,drawid:-1,position:0,size:E[C],parent:X};C>0&&(I.position=X.groups[C-1].position+X.groups[C-1].size),I.position0=I.position,(!g||!g[C]||g[C]<2)&&(I.drawid=this.framecnt++),X.groups.push(I);const U=B.append("div").attr("groupid",I.id);X.match_sizes&&(I.node=U.node()),X.vertical?U.style("float","bottom").style("height",I.size.toFixed(2)+"%").style("width","100%"):U.style("float","left").style("width",I.size.toFixed(2)+"%").style("height","100%"),I.drawid>=0?(U.classed("jsroot_newgrid",!0),(0,L.isStr)(this.frameid)&&U.attr("id",`${this.frameid}_${I.drawid}`)):U.style("display","flex").style("flex-direction",X.vertical?"row":"column"),g&&g[C]>1&&(I.vertical=!X.vertical,I.groups=[],U.style("overflow","hidden"),this.createGroup(I,U,g[C],null,_?_[C]:null))}if(this.use_separarators&&(0,L.isFunc)(this.createSeparator))for(let C=1;C<$;++C)this.createSeparator(X,B,X.groups[C])}handleSeparator(X,B){const $=(ee,he)=>{let V=ee?.firstChild;for(;V;){if(V.getAttribute("groupid")===he)return(0,x.Lt)(V);V=V.nextSibling}return(0,x.Lt)(ee).select(`[groupid='${he}']`)},g=(ee,he,V)=>{const b=ee.vertical?"height":"width",P=ee.groups[V].size.toFixed(2)+"%";$(he,V).style(b,P).selectAll(".jsroot_separator").style(b,P)},E=(ee,he)=>{let V=$(ee,he);V.classed("jsroot_newgrid")||(V=V.select(".jsroot_newgrid")),V.each(function(){(0,ke.XR)(this)})},_=(ee,he,V)=>{V.style(ee.vertical?"top":"left",`calc(${he.position.toFixed(2)}% - 2px)`)},v=(0,x.Lt)(X),p=X.parentNode,C=v.property("handle"),I=v.property("separator_id"),U=C.groups[I];let k=!1,Z=!1;if("start"===B)return U.startpos=U.position,void(U.acc_drag=0);if("end"===B){if(Math.abs(U.startpos-U.position)<.5)return;k=!0}else{let ee;"restore"===B?ee=U.position0:C.vertical?(U.acc_drag+=B.dy,ee=U.startpos+(U.acc_drag+2)/p.clientHeight*100):(U.acc_drag+=B.dx,ee=U.startpos+(U.acc_drag+2)/p.clientWidth*100);const he=U.position-ee;if(Math.abs(he)<.3||Math.min(C.groups[I-1].size-he,U.size+he)<3)return;C.groups[I-1].size-=he,U.size+=he,U.position=ee,_(C,U,v),Z=!0,k="restore"===B}if(Z&&(g(C,p,I-1),g(C,p,I)),k&&(E(p,I-1),E(p,I)),C.parent?.match_sizes)for(let ee=0;ee{})}forEachFrame(X){this.simple_layout?X(this.getGridFrame()):this.selectDom().selectAll(".jsroot_newgrid").each(function(){X(this)})}getActiveFrame(){if(this.simple_layout)return this.getGridFrame();let X=super.getActiveFrame();return X||(this.forEachFrame(B=>{X||(X=B)}),X)}numGridFrames(){return this.framecnt}getGridFrame(X){if(this.simple_layout)return this.selectDom("origin").node();let B=null;return this.selectDom().selectAll(".jsroot_newgrid").each(function(){0==X--&&(B=this)}),B}createFrame(X){this.beforeCreateFrame(X);let B=null,$=this.framecnt||2;for(;!B&&$--;)B=this.getGridFrame(this.getcnt),!this.simple_layout&&this.framecnt&&(this.getcnt=(this.getcnt+1)%this.framecnt),(0,x.Lt)(B).classed("jsroot_fixed_frame")&&(B=null);return B&&(this.cleanupFrame(B),(0,x.Lt)(B).attr("frame_title",X)),this.afterCreateFrame(B)}}class J extends Ve{constructor(X){super(X),this.cnt=0,this.selectDom().style("overflow","hidden")}cleanup(){this.selectDom().style("overflow",null),this.cnt=0,super.cleanup()}forEachFrame(X,B){if((0,L.isFunc)(X))if(B){const g=this.getActiveFrame();g&&X(g)}else this.selectDom().select(".jsroot_tabs_main").selectAll(".jsroot_tabs_draw").each(function(){X(this)})}modifyTabsFrame(X,B){const $=this.selectDom().select(".jsroot_tabs"),g=$.select(".jsroot_tabs_labels"),E=$.select(".jsroot_tabs_main");let _,v;if(g.selectAll(".jsroot_tabs_label").each(function(){const C=(0,x.Lt)(this).property("frame_id")===X,I=L.settings.DarkMode?"#333":"white";"activate"===B?(0,x.Lt)(this).style("background",C?I:L.settings.DarkMode?"black":"#ddd").style("color",L.settings.DarkMode?"#ddd":"inherit").style("border-color",I):"close"===B&&C&&this.parentNode.remove()}),E.selectAll(".jsroot_tabs_draw").each(function(){(0,x.Lt)(this).property("frame_id")===X?_=this:v=this,"activate"===B&&(0,x.Lt)(this).style("background",L.settings.DarkMode?"black":"white")}),_)if("activate"===B)_.parentNode.appendChild(_);else if("close"===B){const p=_===this.getActiveFrame();(0,ke.tP)(_),_.remove(),p&&this.activateFrame(v)}}activateFrame(X){X&&this.modifyTabsFrame((0,x.Lt)(X).property("frame_id"),"activate"),super.activateFrame(X)}createFrame(X){this.beforeCreateFrame(X);const B=this.selectDom();let g,E,$=B.select(".jsroot_tabs");$.empty()?($=B.append("div").attr("class","jsroot_tabs").attr("style","display: flex; flex-direction: column; position: absolute; overflow: hidden; left: 0px; top: 0px; bottom: 0px; right: 0px;"),g=$.append("div").attr("class","jsroot_tabs_labels").attr("style","white-space: nowrap; position: relative; overflow-x: auto"),E=$.append("div").attr("class","jsroot_tabs_main").attr("style","margin: 0; flex: 1 1 0%; position: relative")):(g=$.select(".jsroot_tabs_labels"),E=$.select(".jsroot_tabs_main"));const _=this.cnt++,v=this;let p=X;if((!p||!(0,L.isStr)(p))&&(p=`frame_${_}`),p.length>15){let I=p.lastIndexOf("/");I===p.length-1&&(I=p.lastIndexOf("/",I-1)),p=I>0&&p.length-I<20&&p.length-I>1?p.slice(I+1):"..."+p.slice(p.length-17)}g.append("span").attr("tabindex",0).append("label").attr("class","jsroot_tabs_label").attr("style","border: 1px solid; display: inline-block; font-size: 1rem; left: 1px;margin-left: 3px; padding: 0px 5px 1px 5px; position: relative; vertical-align: bottom;").property("frame_id",_).text(p).attr("title",X).on("click",function(I){I.preventDefault(),v.modifyTabsFrame((0,x.Lt)(this).property("frame_id"),"activate")}).append("button").attr("title","close").attr("style","margin-left: .5em; padding: 0; font-size: 0.5em; width: 1.8em; height: 1.8em; vertical-align: center;").html("✕").on("click",function(){v.modifyTabsFrame((0,x.Lt)(this.parentNode).property("frame_id"),"close")});const C=E.append("div").attr("frame_title",X).attr("class","jsroot_tabs_draw").attr("style","overflow: hidden; position: absolute; left: 0px; top: 0px; bottom: 0px; right: 0px;").property("frame_id",_);return this.modifyTabsFrame(_,"activate"),this.afterCreateFrame(C.node())}changeDarkMode(){const X=this.getActiveFrame();this.modifyTabsFrame((0,x.Lt)(X).property("frame_id"),"activate")}}class Y extends Ve{constructor(X){super(X),this.cnt=0,this.selectDom().on("contextmenu",B=>this.showContextMenu(B)).style("overflow","auto")}cleanup(){this.selectDom().style("overflow",null).on("contextmenu",null),this.cnt=0,super.cleanup()}forEachFrame(X,B){if(!(0,L.isFunc)(X))return;const $=this;this.selectDom().select(".jsroot_flex_top").selectAll(".jsroot_flex_draw").each(function(){B&&"min"===$.getFrameState(this)||X(this)})}getActiveFrame(){let X=super.getActiveFrame();return X&&"min"!==(0,x.Lt)(X.parentNode).property("state")||(X=null,this.forEachFrame(B=>{X=B},!0)),X}activateFrame(X){if("first"===X||"last"===X){let $=null;this.forEachFrame(g=>{("last"===X||!$)&&($=g)},!0),X=$}if(!X||"jsroot_flex_draw"!==X.getAttribute("class")||this.getActiveFrame()===X)return;super.activateFrame(X);const B=X.parentNode;B.parentNode.append(B),"min"!==this.getFrameState(X)&&((0,ke.QD)({pp:(0,ke.m6)(X),active:!0}),(0,ke.XR)(X))}getFrameState(X){return(0,x.Lt)(X.parentNode).property("state")}getFrameRect(X){if("max"===this.getFrameState(X)){const E=this.selectDom().select(".jsroot_flex_top");return{x:0,y:0,w:E.node().clientWidth,h:E.node().clientHeight}}const B=(0,x.Lt)(X.parentNode),$=B.style("left"),g=B.style("top");return{x:parseInt($.slice(0,$.length-2)),y:parseInt(g.slice(0,g.length-2)),w:B.node().clientWidth,h:B.node().clientHeight}}changeFrameState(X,B,$){const g=(0,x.Lt)(X.parentNode),E=g.property("state"),_=this.selectDom().select(".jsroot_flex_top");if(E===B)return!1;switch("normal"===E&&g.property("original_style",g.attr("style")),_.style("overflow",null),B){case"min":g.style("height","auto").style("width","auto"),g.select(".jsroot_flex_draw").style("display","none");break;case"max":g.style("height","100%").style("width","100%").style("left","").style("top",""),g.select(".jsroot_flex_draw").style("display",null),_.style("overflow","hidden");break;default:g.select(".jsroot_flex_draw").style("display",null),g.attr("style",g.property("original_style"))}if(g.select(".jsroot_flex_header").selectAll("button").each(function(v){const p=(0,x.Lt)(this);"minimize"===v.t&&"min"===B||"maximize"===v.t&&"max"===B?p.html("▞").attr("title","restore"):p.html(v.n).attr("title",v.t)}),g.property("state",B),g.select(".jsroot_flex_resize").style("display","normal"===B?null:"none"),"min"===B){const v=this.getFrameRect(X),p=this.selectDom().select(".jsroot_flex_top"),C=p.node().clientWidth,I=p.node().clientHeight,U=[],k=4,Z=(he,V)=>he.x<=V.x&&he.x+he.w>=V.x||V.x<=he.x&&V.x+V.w>=he.x,ee=(he,V)=>he.y<=V.y&&he.y+he.h>=V.y||V.y<=he.y&&V.y+V.h>=he.y;this.forEachFrame(he=>{he!==X&&"min"===this.getFrameState(he)&&U.push(this.getFrameRect(he))}),v.y=I;do{v.x=k,v.y-=v.h+k;let he=k,V=!1;U.forEach(b=>{ee(b,v)&&(he=Math.max(he,b.x+b.w+k),Z(b,v)&&(V=!0))}),V&&(v.x=he)}while(v.x+v.w>C-k&&v.y>0);v.y<0&&(v.x=k,v.y=I-v.h-k),g.style("left",v.x+"px").style("top",v.y+"px")}else $||(0,ke.XR)(X);return!0}_clickButton(X){const B=(0,x.Lt)(X).datum(),$=(0,x.Lt)(X.parentNode.parentNode),g=$.select(".jsroot_flex_draw").node();if("close"===B.t)return this.cleanupFrame(g),$.remove(),void this.activateFrame("last");const E=$.property("state");let _;_="maximize"===B.t?"max"===E?"normal":"max":"min"===E?"normal":"min",this.changeFrameState(g,_)&&this.activateFrame("min"!==_?g:"last")}createFrame(X){this.beforeCreateFrame(X);const B=this,$=this.selectDom();let g=$.select(".jsroot_flex_top");g.empty()&&(g=$.append("div").attr("class","jsroot_flex_top").attr("style","overflow: auto; position: relative; height: 100%; width: 100%"));const E=g.node().clientWidth,_=g.node().clientHeight,v=g.append("div");v.html(`

${X}

`),v.attr("class","jsroot_flex_frame").style("position","absolute").style("left",Math.round(E*(this.cnt%5)/10)+"px").style("top",Math.round(_*(this.cnt%5)/10)+"px").style("width",Math.round(.58*E)+"px").style("height",Math.round(.58*_)+"px").style("border","1px solid black").style("box-shadow","1px 1px 2px 2px #aaa").property("state","normal").select(".jsroot_flex_header").on("click",function(){B.activateFrame((0,x.Lt)(this.parentNode).select(".jsroot_flex_draw").node())}).selectAll("button").data([{n:"✕",t:"close"},{n:"▔",t:"maximize"},{n:"▁",t:"minimize"}]).enter().append("button").attr("type","button").attr("style","float: right; padding: 0; width: 1.4em; text-align: center; font-size: 10px; margin-top: 2px; margin-right: 4px").attr("title",ee=>ee.t).html(ee=>ee.n).on("click",function(){B._clickButton(this)});let p=null,C=null,I=!1,U=[];const k=(0,x.$E)().subject(Object);k.on("start",function(ee){if("button"===ee.sourceEvent.target.type)return B._clickButton(ee.sourceEvent.target);if((0,Ye.iE)(ee.sourceEvent))return;const he=(0,x.Lt)(this.parentNode);!he.classed("jsroot_flex_frame")||"max"===he.property("state")||(I=!(0,x.Lt)(this).classed("jsroot_flex_resize"),(I||"min"!==he.property("state"))&&(B.activateFrame(he.select(".jsroot_flex_draw").node()),C=g.append("div").attr("style",he.attr("style")).style("border","2px dotted #00F"),"min"===he.property("state")&&C.style("width",he.node().clientWidth+"px").style("height",he.node().clientHeight+"px"),ee.sourceEvent.preventDefault(),ee.sourceEvent.stopPropagation(),p=he,U=[]))}).on("drag",function(ee){if(!C)return;ee.sourceEvent.preventDefault(),ee.sourceEvent.stopPropagation();const he=(V,b,P)=>{if(V>=U.length){const T=C.style(b);U[V]=parseInt(T.slice(0,T.length-2))}U[V]+=P,C.style(b,Math.max(0,U[V])+"px")};I?(he(0,"left",ee.dx),he(1,"top",ee.dy)):(he(0,"width",ee.dx),he(1,"height",ee.dy))}).on("end",function(ee){C&&(ee.sourceEvent.preventDefault(),ee.sourceEvent.stopPropagation(),I?(p.style("left",C.style("left")),p.style("top",C.style("top"))):(p.style("width",C.style("width")),p.style("height",C.style("height"))),C.remove(),C=null,I||(0,ke.XR)(p.select(".jsroot_flex_draw").node()))}),v.select(".jsroot_flex_header").call(k),v.select(".jsroot_flex_resize").call(k);const Z=v.select(".jsroot_flex_draw").attr("frame_title",X).property("frame_cnt",this.cnt++).node();return this.afterCreateFrame(Z)}minimizeAll(){this.forEachFrame(X=>this.changeFrameState(X,"min"))}showAll(){this.forEachFrame(X=>{"min"===this.getFrameState(X)&&this.changeFrameState(X,"normal")})}closeAllFrames(){const X=[];this.forEachFrame(B=>X.push(B)),X.forEach(B=>{this.cleanupFrame(B),(0,x.Lt)(B.parentNode).remove()})}sortFrames(X){const B=[];if(this.forEachFrame(I=>{const U=this.getFrameState(I);"min"!==U&&("max"===U&&this.changeFrameState(I,"normal",!0),B.push(I))}),0===B.length)return;const $=this.selectDom(),g=$.node().clientWidth,E=$.node().clientHeight,_=Math.min(40,Math.round(.4*g/B.length)),v=Math.min(40,Math.round(.4*E/B.length));let p=Math.ceil(Math.sqrt(B.length)),C=p;p>1&&p*(p-1)>=B.length&&(g>E?C--:p--),B.forEach((I,U)=>{const k=(0,x.Lt)(I.parentNode);"cascade"===X?k.style("left",U*_+"px").style("top",U*v+"px").style("width",Math.round(.58*g)+"px").style("height",Math.round(.58*E)+"px"):k.style("left",Math.round(g/p*(U%p))+"px").style("top",Math.round(E/C*((U-U%p)/p))+"px").style("width",Math.round(g/p-4)+"px").style("height",Math.round(E/C-4)+"px"),(0,ke.XR)(I)})}showContextMenu(X){if("jsroot_flex_top"!==X.target.getAttribute("class")||0===this.numDraw())return;X.preventDefault();const B=[];let $=0;this.forEachFrame(E=>{B.push(E),"min"===this.getFrameState(E)&&$++});const g=this.getActiveFrame();B.sort((E,_)=>(0,x.Lt)(E).property("frame_cnt")<(0,x.Lt)(_).property("frame_cnt")?-1:1),(0,ot.ES)(X,this).then(E=>{E.add("header:Flex"),E.add("Cascade",()=>this.sortFrames("cascade"),"Cascade frames"),E.add("Tile",()=>this.sortFrames("tile"),"Tile all frames"),$this.minimizeAll(),"Minimize all frames"),$>0&&E.add("Show all",()=>this.showAll(),"Restore minimized frames"),E.add("Close all",()=>this.closeAllFrames()),E.add("separator"),B.forEach((_,v)=>E.addchk(_===g,("min"===this.getFrameState(_)?"[min] ":"")+(0,x.Lt)(_).attr("frame_title"),v,p=>{const C=B[p];"min"===this.getFrameState(C)&&this.changeFrameState(C,"normal"),this.activateFrame(C)})),E.show()})}}class ue extends Ve{constructor(X,B,$){super("$batch$"),this.frames=[],this.width=X||1200,this.height=B||800,this.jsdom_body=$||(0,x.Lt)("body")}forEachFrame(X){this.frames.forEach(X)}createFrame(X){this.beforeCreateFrame(X);const B=this.jsdom_body.append("div").style("visible","hidden").attr("width",this.width).attr("height",this.height).style("width",this.width+"px").style("height",this.height+"px").attr("id","jsroot_batch_"+this.frames.length).attr("frame_title",X);return this.frames.push(B.node()),this.afterCreateFrame(B.node())}numFrames(){return this.frames.length}makeJSON(X,B){const $=this.frames[X];if(!$)return;const g=(0,x.Lt)($).property("_json_object_");return g?((0,x.Lt)($).property("_json_object_",null),(0,ke.tP)($),(0,x.Lt)($).remove(),(0,L.toJSON)(g,B)):void 0}makeSVG(X){const B=this.frames[X];if(!B)return;const $=(0,x.Lt)(B);function g(){const _=(0,x.Lt)(this);"none"===_.style("display")&&_.remove()}$.select("svg").attr("xmlns","http://www.w3.org/2000/svg").attr("width",this.width).attr("height",this.height).attr("title",null).attr("style",null).attr("class",null).attr("x",null).attr("y",null),$.selectAll("g.root_frame").each(g),$.selectAll("svg").each(g);const E=(0,ve.NM)($.html());return(0,ke.tP)(B),$.remove(),E}}class Q{constructor(X,B,$){this.gui_div=X,this.hpainter=B,this.objpainter=$,this.browser_kind=null}main(){return(0,x.Lt)("#"+this.gui_div)}browser(){return this.main().select(".jsroot_browser")}drawing(){return(0,x.Lt)(`#${this.gui_div}_drawing`)}status(){return(0,x.Lt)(`#${this.gui_div}_status`)}drawing_divid(){return this.gui_div+"_drawing"}checkResize(){(0,L.isFunc)(this.hpainter?.checkResize)?this.hpainter.checkResize():(0,L.isFunc)(this.objpainter?.checkResize)&&this.objpainter.checkResize(!0)}createStyle(){const X=L.settings.DarkMode?"black":"#E6E6FA",$=L.settings.DarkMode?"#ddd":"inherit",g=L.settings.DarkMode?`background-color: #222; color: ${$}`:"";(0,Ye.fz)(`.jsroot_browser { pointer-events: none; position: absolute; left: 0px; top: 0px; bottom: 0px; right: 0px; margin: 0px; border: 0px; overflow: hidden; }.jsroot_draw_area { background-color: ${X}; overflow: hidden; margin: 0px; border: 0px; }.jsroot_browser_area { color: ${$}; background-color: ${X}; font-size: 12px; font-family: Verdana; pointer-events: all; box-sizing: initial; }.jsroot_browser_area input { ${g} }.jsroot_browser_area select { ${g} }.jsroot_browser_title { font-family: Verdana; font-size: 20px; color: ${L.settings.DarkMode?"#ccc":"inherit"}; }.jsroot_browser_btns { pointer-events: all; display: flex; flex-direction: column; }.jsroot_browser_area p { margin-top: 5px; margin-bottom: 5px; white-space: nowrap; }.jsroot_browser_hierarchy { flex: 1; margin-top: 2px; }.jsroot_status_area { background-color: ${X}; overflow: hidden; font-size: 12px; font-family: Verdana; pointer-events: all; }.jsroot_browser_resize { position: absolute; right: 3px; bottom: 3px; margin-bottom: 0px; margin-right: 0px; opacity: 0.5; cursor: se-resize; z-index: 1; }`,this.main().node(),"browser_layout_style")}create(X){const B=this.main();B.append("div").attr("id",this.drawing_divid()).classed("jsroot_draw_area",!0).style("position","absolute").style("left",0).style("top",0).style("bottom",0).style("right",0),X&&B.append("div").classed("jsroot_browser",!0),this.createStyle()}createBrowserBtns(){const X=this.browser();if(X.empty())return;let B=X.select(".jsroot_browser_btns");return B.empty()?B=X.append("div").attr("class","jsroot jsroot_browser_btns").attr("style","position: absolute; left: 7px; top: 7px"):B.html(""),B}removeBrowserBtns(){this.browser().select(".jsroot_browser_btns").remove()}setBrowserContent(X){const B=this.browser();B.empty()||B.insert("div",".jsroot_browser_btns").classed("jsroot_browser_area",!0).style("position","absolute").style("left","0px").style("top","0px").style("bottom","0px").style("width","250px").style("overflow","hidden").style("padding-left","5px").style("display","flex").style("flex-direction","column").html(`

title

${X}`)}hasContent(){const X=this.browser();return!X.empty()&&!X.select(".jsroot_browser_area").empty()}deleteContent(X){const B=this.browser();B.empty()||(X||this.createStatusLine(0,"delete"),this.toggleBrowserVisisbility(!0),X?(B.select(".jsroot_browser_area").remove(),B.select(".jsroot_browser_btns").remove(),B.select(".jsroot_v_separator").remove()):B.selectAll("*").remove(),delete this.browser_visible,delete this.browser_kind,this.checkResize())}hasStatus(){return!this.browser().empty()&&!this.status().empty()}setBrowserTitle(X){const B=this.browser(),$=B.empty()?null:B.select(".jsroot_browser_title");return $&&$.text(X).style("cursor","flex"===this.browser_kind?"move":null),$}toggleKind(X){"changing"!==this.browser_visible&&(X===this.browser_kind?this.toggleBrowserVisisbility():this.toggleBrowserKind(X))}createStatusLine(X,B){var $=this;return(0,Te.A)(function*(){const g=$.browser();if(g.empty())return"";const E=$.gui_div+"_status",_=(0,x.Lt)("#"+E),v=!_.empty();if("toggle"===B?B=!v:"delete"===B?(B=!1,X=0,delete $.status_layout):void 0===B&&(B=!0,$.status_layout="app"),v)return!0===B?E:(g.select(".jsroot_h_separator").remove(),_.remove(),"app"!==$.status_layout&&delete $.status_layout,$.status_handler&&L.internals.showStatus===$.status_handler&&(delete L.internals.showStatus,delete $.status_handler),$.adjustSeparators(null,0,!0),"");if(!1===B)return"";const p=$.drawing().style("left");g.insert("div",".jsroot_browser_area").attr("id",E).classed("jsroot_status_area",!0).style("position","absolute").style("left",p).style("height","20px").style("bottom","0px").style("right","0px").style("margin",0).style("border",0);const C=L.settings.DarkMode?"grey":"azure",I=g.insert("div",".jsroot_browser_area").classed("jsroot_h_separator",!0).attr("style",`pointer-events: all; border: 0; margin: 0; padding: 0; background-color: ${C}; position: absolute; left: ${p}; right: 0; bottom: 20px; height: 5px; cursor: ns-resize;`),U=(0,x.$E)().on("start",()=>{$._hsepar_move=$._hsepar_position,I.style("background-color","grey")}).on("drag",Z=>{$._hsepar_move-=Z.dy,$.adjustSeparators(null,Math.max(5,Math.round($._hsepar_move)))}).on("end",()=>{delete $._hsepar_move,I.style("background-color",null),$.checkResize()});if(I.call(U),L.browser.touches&&!g.on("touchmove")&&g.on("touchmove",()=>{}),(!X||(0,L.isStr)(X))&&(X=$.last_hsepar_height||20),$.adjustSeparators(null,X,!0),"app"===$.status_layout)return E;$.status_layout=new F(E,"horizx4_1213");const k=["object name","object title","mouse coordinates","object info"];for(let Z=0;Z<4;++Z)(0,x.Lt)($.status_layout.getGridFrame(Z)).attr("title",k[Z]).style("overflow","hidden").append("label").attr("style","margin: 3px; margin-left: 5px; font-size: 14px; vertical-align: middle; white-space: nowrap;");return L.internals.showStatus=$.status_handler=$.showStatus.bind($),E})()}adjustSeparators(X,B,$,g){if(!this.gui_div)return;const E=this.browser();if(null===B&&g&&!E.select(".jsroot_h_separator").empty()&&(B=E.select(".jsroot_h_separator").style("bottom"),B=(0,L.isStr)(B)&&B.length>2&&B.indexOf("px")===B.length-2?B.slice(0,B.length-2):null),null!==B){B=parseInt(B);const v=E.select(".jsroot_h_separator");let p=0;if(!v.empty()){B<5&&(B=5);const C=E.node().clientHeight-5;C>0&&(B<0&&(B+=C),B>C&&(B=C)),this.last_hsepar_height=B,v.style("bottom",B+"px").style("height","5px"),this.status().style("height",B+"px"),p=B+5}this._hsepar_position=B,this.drawing().style("bottom",`${p}px`)}null!==X&&(X=Math.max(50,Number.parseInt(X)),this._vsepar_position=X,E.select(".jsroot_browser_area").style("width",X-5+"px"),this.drawing().style("left",X+5+"px"),E.select(".jsroot_h_separator").style("left",X+5+"px"),this.status().style("left",X+5+"px"),E.select(".jsroot_v_separator").style("left",X+"px").style("width","5px")),$&&this.checkResize()}showStatus(...X){if(!(0,L.isObject)(this.status_layout)||!(0,L.isFunc)(this.status_layout.getGridFrame))return;let B=0;for(let $=0;$<4;++$){const g=this.status_layout.getGridFrame($).querySelector("label");B=Math.max(B,g.clientHeight),g.innerHTML=X[$]||""}this.status_layout.first_check||(this.status_layout.first_check=!0,B>5&&(B>this.last_hsepar_height||BU/2&&(_=U+10+"px"),v="-10px",p="0px"}else{if(X)return;$.property("last_left",null).property("last_vsepar",null).property("last_drawing",null)}const C=!this.browser_visible,I=X?0:700;this.browser_visible="changing",$.transition().style("left",_).duration(I).on("end",()=>{X||(this.browser_visible=C,C&&this.setButtonsPosition())}),C||B.select(".jsroot_browser_btns").transition().style("left","7px").style("top","7px").duration(I),g.empty()||(g.transition().style("left",v).duration(I),E.transition().style("left",p).duration(I).on("end",this.checkResize.bind(this))),this.status_layout&&"fix"===this.browser_kind&&(B.select(".jsroot_h_separator").transition().style("left",p).duration(I),B.select(".jsroot_status_area").transition().style("left",p).duration(I))}adjustBrowserSize(X){if(!this.gui_div||"float"!==this.browser_kind)return;const B=this.browser();if(B.empty())return;const $=B.select(".jsroot_browser_area"),g=B.select(".jsroot_browser_hierarchy"),E=(0,x.Lt)(g.node().firstChild);if(X)return void($.node().parentNode.clientHeight-10<$.node().clientHeight&&$.style("bottom","0px").style("top","0px"));if(E.empty())return;const _=g.node().clientHeight,v=E.node().clientHeight;void 0!==v&&v<.7*_&&$.style("bottom","")}setButtonsPosition(){if(!this.gui_div)return;const X=this.browser(),B=X.select(".jsroot_browser_btns");if(B.empty())return;let $=7,g=7;if(this.browser_visible){const E=X.select(".jsroot_browser_area");$=E.node().offsetTop+7,g=E.node().offsetLeft-X.node().offsetLeft+E.node().clientWidth-27}B.style("left",`${g}px`).style("top",`${$}px`)}toggleBrowserKind(X){var B=this;return(0,Te.A)(function*(){if(!B.gui_div)return null;if(!X){if(!B.browser_kind)return null;X="float"===B.browser_kind?"fix":"float"}const $=B.browser(),g=$.select(".jsroot_browser_area");if("float"===B.browser_kind?g.style("bottom","0px").style("top","0px").style("width","").style("height","").classed("jsroot_float_browser",!1).style("border",null):"fix"===B.browser_kind&&($.select(".jsroot_v_separator").remove(),g.style("left","0px"),B.drawing().style("left","0px"),$.select(".jsroot_h_separator").style("left","0px"),B.status().style("left","0px"),B.checkResize()),B.browser_kind=X,B.browser_visible=!0,$.select(".jsroot_browser_resize").style("display","float"===X?null:"none"),$.select(".jsroot_browser_title").style("cursor","float"===X?"move":null),"float"===X){g.style("bottom","40px").classed("jsroot_float_browser",!0).style("border","solid 3px white");const E=(0,x.$E)().on("start",()=>{const v=g.style("left"),p=g.style("top");B._float_left=parseInt(v.slice(0,v.length-2)),B._float_top=parseInt(p.slice(0,p.length-2)),B._max_left=Math.max(0,$.node().clientWidth-g.node().offsetWidth-1),B._max_top=Math.max(0,$.node().clientHeight-g.node().offsetHeight-1)}).filter(v=>$.select(".jsroot_browser_title").node()===v.target).on("drag",v=>{B._float_left+=v.dx,B._float_top+=v.dy,g.style("left",Math.min(Math.max(0,B._float_left),B._max_left)+"px").style("top",Math.min(Math.max(0,B._float_top),B._max_top)+"px"),B.setButtonsPosition()}),_=(0,x.$E)().on("start",()=>{const v=g.style("width");B._float_width=parseInt(v.slice(0,v.length-2)),B._float_height=g.node().clientHeight,B._max_width=$.node().clientWidth-g.node().offsetLeft-1,B._max_height=$.node().clientHeight-g.node().offsetTop-1}).on("drag",v=>{B._float_width+=v.dx,B._float_height+=v.dy,g.style("width",Math.min(Math.max(100,B._float_width),B._max_width)+"px").style("height",Math.min(Math.max(100,B._float_height),B._max_height)+"px"),B.setButtonsPosition()});$.call(E),$.select(".jsroot_browser_resize").call(_),B.adjustBrowserSize()}else{g.style("left","0px").style("top","0px").style("bottom","0px").style("height",null);const E=L.settings.DarkMode?"grey":"azure",_=$.append("div").classed("jsroot_v_separator",!0).attr("style",`pointer-events: all; border: 0; margin: 0; padding: 0; background-color: ${E}; position: absolute; top: 0; bottom: 0; cursor: ew-resize;`),v=(0,x.$E)().on("start",()=>{B._vsepar_move=B._vsepar_position,_.style("background-color","grey")}).on("drag",p=>{B._vsepar_move+=p.dx,B.setButtonsPosition(),L.settings.BrowserWidth=Math.max(50,Math.round(B._vsepar_move)),B.adjustSeparators(L.settings.BrowserWidth,null)}).on("end",()=>{delete B._vsepar_move,_.style("background-color",null),B.checkResize()});_.call(v),L.browser.touches&&!$.on("touchmove")&&$.on("touchmove",()=>{}),B.adjustSeparators(L.settings.BrowserWidth,null,!0,!0)}return B.setButtonsPosition(),B})()}}},7900:(Yr,mt,Se)=>{"use strict";Se.d(mt,{ES:()=>De,Ew:()=>Re,IV:()=>F,sj:()=>J,wh:()=>Y});var Te=Se(4882),x=Se(8872),L=Se(8362),ve=Se(5992),ke=Se(2985),ot=Se(2586),Ye=Se(4082),Ze=Se(4246);const Re="__front__";class He{constructor(Q,me,X){this.painter=Q,this.menuname=me,(0,x.isObject)(X)&&void 0!==X.clientX&&void 0!==X.clientY&&(this.show_evnt={clientX:X.clientX,clientY:X.clientY,skip_close:X.skip_close}),this.remove_handler=()=>this.remove(),this.element=null,this.cnt=0}native(){return!1}load(){var Q=this;return(0,Te.A)(function*(){return Q})()}getEventPosition(){return this.show_evnt}add(){throw Error("add() method has to be implemented in the menu")}size(){return this.cnt}remove(){if(this.element){if(this.show_evnt?.skip_close)return void(this.show_evnt.skip_close=0);if(this.element.remove(),this.element=null,(0,x.isFunc)(this.resolveFunc)){const Q=this.resolveFunc;delete this.resolveFunc,Q()}document.body.removeEventListener("click",this.remove_handler)}}show(){throw Error("show() method has to be implemented in the menu class")}addchk(Q,me,X,B,$){let g=B;(0,x.isFunc)(X)&&($=B,B=X,g=E=>B("1"===E),X=Q?"0":"1"),this.add((Q?"chk:":"unk:")+me,X,g,$)}addDrawMenu(Q,me,X,B){if(!me||!me.length)return;let $=!1;if(0===Q.indexOf("nosub:")&&($=!0,Q=Q.slice(6)),1===me.length)return me[0]===x.kInspect&&(Q=Q.replace("Draw","Inspect")),void this.add(Q,me[0],X);$||this.add("sub:"+Q,me[0],X,B);for(let g=1;g":"<dflt>"),_=g+1;if(me.length>5)for(;_=g+2){this.add("sub:"+E,me[g],X);for(let v=g+1;v<_;++v)this.add(me[v],me[v],X);this.add("endsub:"),g=_-1}else if(E===x.kInspect){this.add("sub:"+E,me[g],X,"Inspect object content");for(let v=0;v<10;++v)this.add(v.toString(),x.kInspect+v,X,`Inspect object and expand to level ${v}`);this.add("endsub:")}else this.add(E,me[g],X)}$||(this.add("",()=>{const g=(0,x.isFunc)(this.painter?.getDrawOpt)?this.painter.getDrawOpt():me[0];this.input("Provide draw option",g,"text").then(X)},"Enter draw option in dialog"),this.add("endsub:"))}addColorMenu(Q,me,X,B){if(void 0===me)return;const $=!(0,x.isStr)(me);this.add("sub:"+Q,()=>{this.input("Enter color "+($?"(only id number)":"(name or id)"),me,$?"int":"text",$?0:void 0,$?9999:void 0).then(g=>{const E=parseInt(g);if(Number.isInteger(E)&&(0,ke.oU)(E))g=(0,ke.oU)(E);else if($)return;X($?E:g)})});for(let g=0;g<5;++g){this.add("column:");for(let E=0;E<10;E++){let _=10*g+E;$||--_;let v=_<0?"none":(0,ke.oU)(_);0===_&&1===B&&(v="none"),this.add(`${me===($?_:v)?``:""}${_<=0||"#"!==v[0]?v:`col ${_}`}`,$?_:v,Z=>X($?parseInt(Z):Z),"Select color "+v)}if(this.add("endcolumn:"),!this.native())break}this.add("endsub:")}addSizeMenu(Q,me,X,B,$,g,E){if(void 0===$)return;let _=[],v=!1;if((0,x.isObject)(B))_=B,B=1;else for(let I=me;I<=X;I+=B)_.push(I);const p=I=>Math.abs(I-$)<1e-5*(X-me),C=(I,U)=>(I===$&&v&&(U=!0),I.toFixed(B>=1?0:B>=.1?U?2:1:U?4:2));_.findIndex(p)<0&&(v=!0,_.push($),_=_.sort((I,U)=>I>U)),this.add("sub:"+Q,()=>this.input("Enter value of "+Q,C($,!0),B>=1?"int":"float").then(g),E),_.forEach(I=>this.addchk(p(I),C(I),I,U=>g(B>=1?parseInt(U):parseFloat(U)))),this.add("endsub:")}addPaletteMenu(Q,me){const X=(B,$,g,E)=>{$?g||(g=$):$=`pal ${B}`,g&&(g+=`, code ${B}`),this.addchk(B===Q||E,"
"+$+"",B,me,g||$)};if(this.add("sub:Palette",()=>this.input("Enter palette code [1..113]",Q,"int",1,113).then(me)),this.add("column:"),X(57,"Bird","Default color palette",Q>113),X(55,"Rainbow"),X(51,"Deep Sea"),X(52,"Grayscale","New gray scale"),X(1,"","Old gray scale",Q>0&&Q<10),X(50,"ROOT 5","Default color palette in ROOT 5",Q>=10&&Q<51),X(53,"","Dark body radiator"),X(54,"","Two-color hue"),X(56,"","Inverted dark body radiator"),X(58,"Cubehelix"),X(59,"","Green Red Violet"),X(60,"","Blue Red Yellow"),X(61,"Ocean"),this.add("endcolumn:"),!this.native())return this.add("endsub:");this.add("column:"),X(62,"","Color Printable On Grey"),X(63,"Alpine"),X(64,"Aquamarine"),X(65,"Army"),X(66,"Atlantic"),X(67,"Aurora"),X(68,"Avocado"),X(69,"Beach"),X(70,"Black Body"),X(71,"","Blue Green Yellow"),X(72,"Brown Cyan"),X(73,"CMYK"),X(74,"Candy"),this.add("endcolumn:"),this.add("column:"),X(75,"Cherry"),X(76,"Coffee"),X(77,"","Dark Rain Bow"),X(78,"","Dark Terrain"),X(79,"Fall"),X(80,"Fruit Punch"),X(81,"Fuchsia"),X(82,"Grey Yellow"),X(83,"","Green Brown Terrain"),X(84,"Green Pink"),X(85,"Island"),X(86,"Lake"),X(87,"","Light Temperature"),this.add("endcolumn:"),this.add("column:"),X(88,"","Light Terrain"),X(89,"Mint"),X(90,"Neon"),X(91,"Pastel"),X(92,"Pearl"),X(93,"Pigeon"),X(94,"Plum"),X(95,"Red Blue"),X(96,"Rose"),X(97,"Rust"),X(98,"","Sandy Terrain"),X(99,"Sienna"),X(100,"Solar"),this.add("endcolumn:"),this.add("column:"),X(101,"","South West"),X(102,"","Starry Night"),X(103,"","Sunset"),X(104,"","Temperature Map"),X(105,"","Thermometer"),X(106,"Valentine"),X(107,"","Visible Spectrum"),X(108,"","Water Melon"),X(109,"Cool"),X(110,"Copper"),X(111,"","Gist Earth"),X(112,"Viridis"),X(113,"Cividis"),this.add("endcolumn:"),this.add("endsub:")}addRebinMenu(Q){this.add("sub:Rebin",()=>this.input("Enter rebin value",2,"int",2).then(Q));for(let me=2;me<=7;me++)this.add(me.toString(),me,X=>Q(parseInt(X)));this.add("endsub:")}addSelectMenu(Q,me,X,B){const $="number"==typeof X;this.add("sub:"+Q);for(let g=0;gB($?Number.parseInt(E):E));this.add("endsub:")}addRColorMenu(Q,me,X){const B=["default","black","white","red","green","blue","yellow","magenta","cyan"];this.add("sub:"+Q,()=>{this.input("Enter color name - empty string will reset color",me).then(X)});let $="black";for(let g=0;g0?(v="background-color:"+E,$="white"===E?"black":"white",(0,x.isStr)(me)&&me&&"auto"!==me&&"["!==me[0]&&(_=(0,L.Qh)(me).toString()===(0,L.Qh)(E).toString())):_=!me,this.addchk(_,`${E}`,E,C=>X("default"===C?null:C))}this.add("endsub:")}addRAttrTextItems(Q,me,X){me||(me={}),this.addRColorMenu("color",Q.color,B=>X({name:"color",value:B})),Q.scaled?this.addSizeMenu("size",.01,.1,.01,Q.size/Q.scale,B=>X({name:"size",value:B})):this.addSizeMenu("size",6,20,2,Q.size,B=>X({name:"size",value:B})),this.addSelectMenu("family",["Arial","Times New Roman","Courier New","Symbol"],Q.name,B=>X({name:"font_family",value:B})),this.addSelectMenu("style",["normal","italic","oblique"],Q.style||"normal",B=>X({name:"font_style",value:"normal"===B?null:B})),this.addSelectMenu("weight",["normal","lighter","bold","bolder"],Q.weight||"normal",B=>X({name:"font_weight",value:"normal"===B?null:B})),me.noalign||this.add("align"),me.noangle||this.add("angle")}addLineStyleMenu(Q,me,X){this.add("sub:"+Q,()=>this.input("Enter line style id (1-solid)",me,"int",1,11).then(B=>{(0,Ye.Ov)(B)&&X(B)}));for(let B=1;B<11;++B){const $=(0,Ye.Ov)(B);this.addchk(me===B,`${B}`,B,E=>X(parseInt(E)))}this.add("endsub:")}addFillStyleMenu(Q,me,X,B,$){this.add("sub:"+Q,()=>{this.input("Enter fill style id (1001-solid, 3000..3010)",me,"int",0,4e3).then(E=>{E>=0&&E<=4e3&&$(E)})});const g=[1,1001,3001,3002,3003,3004,3005,3006,3007,3010,3021,3022];for(let E=0;E${g[E].toString()}`}this.addchk(me===g[E],_,g[E],v=>$(parseInt(v)))}this.add("endsub:")}addFontMenu(Q,me,X){const B=me&&Number.isInteger(me)?me%10:2;this.add("sub:"+Q,()=>{this.input("Enter font id from [0..20]",Math.floor(me/10),"int",0,20).then(g=>{g>=0&&g<=20&&X(10*g+B)})}),this.add("column:");const $=(0,x.getDocument)();for(let g=1;g<20;++g){const E=10*g+B,_=new Ze.qg(E,14),v=(0,L.Lt)($.createElementNS("http://www.w3.org/2000/svg","text"));let p=_.getFontName(),C="";_.weight&&(C+="b",p+=" "+_.weight),_.style&&(C+=_.style[0],p+=" "+_.style),C&&(C=" "+C),v.attr("x",1).attr("y",15).text(p.split(" ")[0]+C),_.setFont(v);const I=me!==E?"":"",U=`${v.node().outerHTML}${I}`;this.add(U,E,k=>X(parseInt(k)),`${E}: ${p}`),10===g&&(this.add("endcolumn:"),this.add("column:"))}this.add("endcolumn:"),this.add("endsub:")}addAlignMenu(Q,me,X){this.add(`sub:${Q}`,()=>{this.input("Enter align like 12 or 31",me).then(g=>{const E=parseInt(g);if(E<11||E>33)return;const _=Math.floor(E/10),v=E%10;_>0&&_<4&&v>0&&v<4&&X(E)})});const B=["left","middle","right"],$=["bottom","centered","top"];for(let g=1;g<4;++g)for(let E=1;E<4;++E)this.addchk(10*g+E===me,`${10*g+E}: ${B[g-1]} ${$[g-1]}`,10*g+E,_=>X(parseInt(_)));this.add("endsub:")}addAttributesMenu(Q,me){if(me||(me=""),Q.lineatt?.used&&(this.add(`sub:${me}Line att`),this.addSizeMenu("width",1,10,1,Q.lineatt.width,X=>{Q.lineatt.change(void 0,X),Q.interactiveRedraw(!0,`exec:SetLineWidth(${X})`)}),this.addColorMenu("color",Q.lineatt.color,X=>{Q.lineatt.change(X),Q.interactiveRedraw(!0,(0,ve.pp)(X,"SetLineColor"))}),this.addLineStyleMenu("style",Q.lineatt.style,X=>{Q.lineatt.change(void 0,void 0,X),Q.interactiveRedraw(!0,`exec:SetLineStyle(${X})`)}),this.add("endsub:"),Q.lineatt?.excl_side)){this.add("sub:Exclusion"),this.add("sub:side");for(let X=-1;X<=1;++X)this.addchk(Q.lineatt.excl_side===X,X,X,B=>{Q.lineatt.changeExcl(parseInt(B)),Q.interactiveRedraw()});this.add("endsub:"),this.addSizeMenu("width",10,100,10,Q.lineatt.excl_width,X=>{Q.lineatt.changeExcl(void 0,X),Q.interactiveRedraw()}),this.add("endsub:")}if(Q.fillatt?.used&&(this.add(`sub:${me}Fill att`),this.addColorMenu("color",Q.fillatt.colorindx,X=>{Q.fillatt.change(X,void 0,Q.getCanvSvg()),Q.interactiveRedraw(!0,(0,ve.pp)(X,"SetFillColor"))},Q.fillatt.kind),this.addFillStyleMenu("style",Q.fillatt.pattern,Q.fillatt.colorindx,Q,X=>{Q.fillatt.change(void 0,X,Q.getCanvSvg()),Q.interactiveRedraw(!0,`exec:SetFillStyle(${X})`)}),this.add("endsub:")),Q.markeratt?.used){this.add(`sub:${me}Marker att`),this.addColorMenu("color",Q.markeratt.color,B=>{Q.markeratt.change(B),Q.interactiveRedraw(!0,(0,ve.pp)(B,"SetMarkerColor"))}),this.addSizeMenu("size",.5,6,.5,Q.markeratt.size,B=>{Q.markeratt.change(void 0,void 0,B),Q.interactiveRedraw(!0,`exec:SetMarkerSize(${B})`)}),this.add("sub:style");const X=[1,2,3,4,5,6,7,8,21,22,23,24,25,26,27,28,29,30,31,32,33,34];for(let B=0;B${X[B].toString()}`;this.addchk(Q.markeratt.style===X[B],g,X[B],E=>{Q.markeratt.change(void 0,parseInt(E)),Q.interactiveRedraw(!0,`exec:SetMarkerStyle(${E})`)})}this.add("endsub:"),this.add("endsub:")}if(Q.textatt?.used){this.add(`sub:${me}Text att`),this.addFontMenu("font",Q.textatt.font,B=>{Q.textatt.change(B),Q.interactiveRedraw(!0,`exec:SetTextFont(${B})`)});const X=Q.textatt.size<1;this.addSizeMenu("size",X?.03:6,X?.2:26,X?.01:2,Q.textatt.size,B=>{Q.textatt.change(void 0,parseFloat(B)),Q.interactiveRedraw(!0,`exec:SetTextSize(${B})`)}),this.addColorMenu("color",Q.textatt.color,B=>{Q.textatt.change(void 0,void 0,B),Q.interactiveRedraw(!0,(0,ve.pp)(B,"SetTextColor"))}),this.addAlignMenu("align",Q.textatt.align,B=>{Q.textatt.change(void 0,void 0,void 0,B),Q.interactiveRedraw(!0,`exec:SetTextAlign(${B})`)}),this.addSizeMenu("angle",-180,180,45,Q.textatt.angle,B=>{Q.textatt.change(void 0,void 0,void 0,void 0,parseFloat(B)),Q.interactiveRedraw(!0,`exec:SetTextAngle(${B})`)}),this.add("endsub:")}}addTAxisMenu(Q,me,X,B){const $=X._typename===x.clTGaxis;this.add("Divisions",()=>this.input("Set Ndivisions",X.fNdivisions,"int",0).then(E=>{X.fNdivisions=E,me.interactiveRedraw("pad",`exec:SetNdivisions(${E})`,B)})),this.add("sub:Labels"),this.addchk(X.TestBit(Q.kCenterLabels),"Center",E=>{X.InvertBit(Q.kCenterLabels),me.interactiveRedraw("pad",`exec:CenterLabels(${E})`,B)}),this.addchk(X.TestBit(Q.kLabelsVert),"Rotate",E=>{X.InvertBit(Q.kLabelsVert),me.interactiveRedraw("pad",`exec:SetBit(TAxis::kLabelsVert,${E})`,B)}),this.addColorMenu("Color",X.fLabelColor,E=>{X.fLabelColor=E,me.interactiveRedraw("pad",(0,ve.pp)(E,"SetLabelColor"),B)}),this.addSizeMenu("Offset",-.02,.1,.01,X.fLabelOffset,E=>{X.fLabelOffset=E,me.interactiveRedraw("pad",`exec:SetLabelOffset(${E})`,B)});let g=X.fLabelSize>=1;this.addSizeMenu("Size",g?2:.02,g?30:.11,g?2:.01,X.fLabelSize,E=>{X.fLabelSize=E,me.interactiveRedraw("pad",`exec:SetLabelSize(${E})`,B)}),this.add("endsub:"),this.add("sub:Title"),this.add("SetTitle",()=>{this.input("Enter axis title",X.fTitle).then(E=>{X.fTitle=E,me.interactiveRedraw("pad",`exec:SetTitle("${E}")`,B)})}),this.addchk(X.TestBit(Q.kCenterTitle),"Center",E=>{X.InvertBit(Q.kCenterTitle),me.interactiveRedraw("pad",`exec:CenterTitle(${E})`,B)}),this.addchk(X.TestBit(Q.kOppositeTitle),"Opposite",()=>{X.InvertBit(Q.kOppositeTitle),me.redrawPad()}),this.addchk(X.TestBit(Q.kRotateTitle),"Rotate",E=>{X.InvertBit(Q.kRotateTitle),me.interactiveRedraw("pad",$?`exec:SetBit(TAxis::kRotateTitle, ${E})`:`exec:RotateTitle(${E})`,B)}),$?this.addColorMenu("Color",X.fTextColor,E=>{X.fTextColor=E,me.interactiveRedraw("pad",(0,ve.pp)(E,"SetTitleColor"),B)}):this.addColorMenu("Color",X.fTitleColor,E=>{X.fTitleColor=E,me.interactiveRedraw("pad",(0,ve.pp)(E,"SetTitleColor"),B)}),this.addSizeMenu("Offset",0,3,.2,X.fTitleOffset,E=>{X.fTitleOffset=E,me.interactiveRedraw("pad",`exec:SetTitleOffset(${E})`,B)}),g=X.fTitleSize>=1,this.addSizeMenu("Size",g?2:.02,g?30:.11,g?2:.01,X.fTitleSize,E=>{X.fTitleSize=E,me.interactiveRedraw("pad",`exec:SetTitleSize(${E})`,B)}),this.add("endsub:"),this.add("sub:Ticks"),$?(this.addColorMenu("Color",X.fLineColor,E=>{X.fLineColor=E,me.interactiveRedraw("pad",(0,ve.pp)(E,"SetLineColor"),B)}),this.addSizeMenu("Size",-.05,.055,.01,X.fTickSize,E=>{X.fTickSize=E,me.interactiveRedraw("pad",`exec:SetTickLength(${E})`,B)})):(this.addColorMenu("Color",X.fAxisColor,E=>{X.fAxisColor=E,me.interactiveRedraw("pad",(0,ve.pp)(E,"SetAxisColor"),B)}),this.addSizeMenu("Size",-.05,.055,.01,X.fTickLength,E=>{X.fTickLength=E,me.interactiveRedraw("pad",`exec:SetTickLength(${E})`,B)})),this.add("endsub:"),$&&this.add("Options",()=>this.input("Enter TGaxis options like +L or -G",X.fChopt,"string").then(E=>{X.fChopt=E,me.interactiveRedraw("pad",`exec:SetOption("${E}")`,B)}))}addSettingsMenu(Q,me,X){this.add(me?"header:Settings":"sub:Settings"),this.add("sub:Files"),Q&&(this.addchk(x.settings.OnlyLastCycle,"Last cycle",g=>{x.settings.OnlyLastCycle=g,X&&X("refresh")}),this.addchk(!x.settings.SkipStreamerInfos,"Streamer infos",g=>{x.settings.SkipStreamerInfos=!g,X&&X("refresh")})),this.addchk(x.settings.UseStamp,"Use stamp arg",g=>{x.settings.UseStamp=g}),this.addSizeMenu("Max ranges",1,1e3,[1,10,20,50,200,1e3],x.settings.MaxRanges,g=>{x.settings.MaxRanges=g},"Maximal number of ranges in single http request"),this.addchk(x.settings.HandleWrongHttpResponse,"Handle wrong http response",g=>{x.settings.HandleWrongHttpResponse=g}),this.addchk(x.settings.WithCredentials,"With credentials",g=>{x.settings.WithCredentials=g},"Submit http request with user credentials"),this.add("endsub:"),this.add("sub:Toolbar"),this.addchk(!1===x.settings.ToolBar,"Off",g=>{x.settings.ToolBar=!g}),this.addchk(!0===x.settings.ToolBar,"On",g=>{x.settings.ToolBar=g}),this.addchk("popup"===x.settings.ToolBar,"Popup",g=>{x.settings.ToolBar=!!g&&"popup"}),this.add("separator"),this.addchk("left"===x.settings.ToolBarSide,"Left side",g=>{x.settings.ToolBarSide=g?"left":"right"}),this.addchk(x.settings.ToolBarVert,"Vertical",g=>{x.settings.ToolBarVert=g}),this.add("endsub:"),this.add("sub:Interactive"),this.addchk(x.settings.Tooltip,"Tooltip",g=>{x.settings.Tooltip=g}),this.addchk(x.settings.ContextMenu,"Context menus",g=>{x.settings.ContextMenu=g}),this.add("sub:Zooming"),this.addchk(x.settings.Zooming,"Global",g=>{x.settings.Zooming=g}),this.addchk(x.settings.ZoomMouse,"Mouse",g=>{x.settings.ZoomMouse=g}),this.addchk(x.settings.ZoomWheel,"Wheel",g=>{x.settings.ZoomWheel=g}),this.addchk(x.settings.ZoomTouch,"Touch",g=>{x.settings.ZoomTouch=g}),this.add("endsub:"),this.addchk(x.settings.HandleKeys,"Keypress handling",g=>{x.settings.HandleKeys=g}),this.addchk(x.settings.MoveResize,"Move and resize",g=>{x.settings.MoveResize=g}),this.addchk(x.settings.DragAndDrop,"Drag and drop",g=>{x.settings.DragAndDrop=g}),this.addchk(x.settings.DragGraphs,"Drag graph points",g=>{x.settings.DragGraphs=g}),this.addSelectMenu("Progress box",["off","on","modal"],(0,x.isStr)(x.settings.ProgressBox)?x.settings.ProgressBox:x.settings.ProgressBox?"on":"off",g=>{x.settings.ProgressBox="off"!==g&&(" on"===g||g)}),this.add("endsub:"),this.add("sub:Drawing"),this.addSelectMenu("Optimize",["None","Smart","Always"],x.settings.OptimizeDraw,g=>{x.settings.OptimizeDraw=g}),this.addPaletteMenu(x.settings.Palette,g=>{x.settings.Palette=g}),this.addchk(x.settings.AutoStat,"Auto stat box",g=>{x.settings.AutoStat=g}),this.addSelectMenu("Latex",["Off","Symbols","Normal","MathJax","Force MathJax"],x.settings.Latex,g=>{x.settings.Latex=g}),this.addSelectMenu("3D rendering",["Default","WebGL","Image"],x.settings.Render3D,g=>{x.settings.Render3D=g}),this.addSelectMenu("WebGL embeding",["Default","Overlay","Embed"],x.settings.Embed3D,g=>{x.settings.Embed3D=g}),this.add("endsub:"),this.add("sub:Geometry"),this.add("Grad per segment: "+x.settings.GeoGradPerSegm,()=>this.input("Grad per segment in geometry",x.settings.GeoGradPerSegm,"int",1,60).then(g=>{x.settings.GeoGradPerSegm=g})),this.addchk(x.settings.GeoCompressComp,"Compress composites",g=>{x.settings.GeoCompressComp=g}),this.add("endsub:"),Q&&(this.add("sub:Browser"),this.add("Hierarchy limit: "+x.settings.HierarchyLimit,()=>this.input("Max number of items in hierarchy",x.settings.HierarchyLimit,"int",10,1e5).then(g=>{x.settings.HierarchyLimit=g,X&&X("refresh")})),this.add("Browser width: "+x.settings.BrowserWidth,()=>this.input("Browser width in px",x.settings.BrowserWidth,"int",50,2e3).then(g=>{x.settings.BrowserWidth=g,X&&X("width")})),this.add("endsub:")),this.add("Dark mode: "+(x.settings.DarkMode?"On":"Off"),()=>{x.settings.DarkMode=!x.settings.DarkMode,X&&X("dark")});const B=g=>{x.gStyle[g.slice(1)]=parseInt(g[0])},$=(g,E,_)=>{this.add("sub:"+g);for(let v=0;v<_.length;++v)this.addchk(x.gStyle[E]===v,_[v],`${v}${E}`,B);this.add("endsub:")};this.add("sub:gStyle"),this.add("sub:Canvas"),this.addColorMenu("Color",x.gStyle.fCanvasColor,g=>{x.gStyle.fCanvasColor=g}),this.addchk(x.gStyle.fOptDate,"Draw date",g=>{x.gStyle.fOptDate=g?1:0}),this.addchk(x.gStyle.fOptFile,"Draw item",g=>{x.gStyle.fOptFile=g?1:0}),this.addSizeMenu("Date X",.01,.1,.01,x.gStyle.fDateX,g=>{x.gStyle.fDateX=g},"configure gStyle.fDateX for date/item name drawings"),this.addSizeMenu("Date Y",.01,.1,.01,x.gStyle.fDateY,g=>{x.gStyle.fDateY=g},"configure gStyle.fDateY for date/item name drawings"),this.add("endsub:"),this.add("sub:Pad"),this.addColorMenu("Color",x.gStyle.fPadColor,g=>{x.gStyle.fPadColor=g}),this.add("sub:Grid"),this.addchk(x.gStyle.fPadGridX,"X",g=>{x.gStyle.fPadGridX=g}),this.addchk(x.gStyle.fPadGridY,"Y",g=>{x.gStyle.fPadGridY=g}),this.addColorMenu("Color",x.gStyle.fGridColor,g=>{x.gStyle.fGridColor=g}),this.addSizeMenu("Width",1,10,1,x.gStyle.fGridWidth,g=>{x.gStyle.fGridWidth=g}),this.addLineStyleMenu("Style",x.gStyle.fGridStyle,g=>{x.gStyle.fGridStyle=g}),this.add("endsub:"),$("Ticks X","fPadTickX",["normal","ticks on both sides","labels on both sides"]),$("Ticks Y","fPadTickY",["normal","ticks on both sides","labels on both sides"]),$("Log X","fOptLogx",["off","on","log 2"]),$("Log Y","fOptLogy",["off","on","log 2"]),$("Log Z","fOptLogz",["off","on","log 2"]),this.add("endsub:"),this.add("sub:Frame"),this.addColorMenu("Fill color",x.gStyle.fFrameFillColor,g=>{x.gStyle.fFrameFillColor=g}),this.addFillStyleMenu("Fill style",x.gStyle.fFrameFillStyle,x.gStyle.fFrameFillColor,null,g=>{x.gStyle.fFrameFillStyle=g}),this.addColorMenu("Line color",x.gStyle.fFrameLineColor,g=>{x.gStyle.fFrameLineColor=g}),this.addSizeMenu("Line width",1,10,1,x.gStyle.fFrameLineWidth,g=>{x.gStyle.fFrameLineWidth=g}),this.addLineStyleMenu("Line style",x.gStyle.fFrameLineStyle,g=>{x.gStyle.fFrameLineStyle=g}),this.addSizeMenu("Border size",0,10,1,x.gStyle.fFrameBorderSize,g=>{x.gStyle.fFrameBorderSize=g}),this.add("sub:Margins"),this.addSizeMenu("Bottom",0,.5,.05,x.gStyle.fPadBottomMargin,g=>{x.gStyle.fPadBottomMargin=g}),this.addSizeMenu("Top",0,.5,.05,x.gStyle.fPadTopMargin,g=>{x.gStyle.fPadTopMargin=g}),this.addSizeMenu("Left",0,.5,.05,x.gStyle.fPadLeftMargin,g=>{x.gStyle.fPadLeftMargin=g}),this.addSizeMenu("Right",0,.5,.05,x.gStyle.fPadRightMargin,g=>{x.gStyle.fPadRightMargin=g}),this.add("endsub:"),this.add("endsub:"),this.add("sub:Title"),this.addColorMenu("Fill color",x.gStyle.fTitleColor,g=>{x.gStyle.fTitleColor=g}),this.addFillStyleMenu("Fill style",x.gStyle.fTitleStyle,x.gStyle.fTitleColor,null,g=>{x.gStyle.fTitleStyle=g}),this.addColorMenu("Text color",x.gStyle.fTitleTextColor,g=>{x.gStyle.fTitleTextColor=g}),this.addSizeMenu("Border size",0,10,1,x.gStyle.fTitleBorderSize,g=>{x.gStyle.fTitleBorderSize=g}),this.addSizeMenu("Font size",.01,.1,.01,x.gStyle.fTitleFontSize,g=>{x.gStyle.fTitleFontSize=g}),this.addFontMenu("Font",x.gStyle.fTitleFont,g=>{x.gStyle.fTitleFont=g}),this.addSizeMenu("X: "+x.gStyle.fTitleX.toFixed(2),0,1,.1,x.gStyle.fTitleX,g=>{x.gStyle.fTitleX=g}),this.addSizeMenu("Y: "+x.gStyle.fTitleY.toFixed(2),0,1,.1,x.gStyle.fTitleY,g=>{x.gStyle.fTitleY=g}),this.addSizeMenu("W: "+x.gStyle.fTitleW.toFixed(2),0,1,.1,x.gStyle.fTitleW,g=>{x.gStyle.fTitleW=g}),this.addSizeMenu("H: "+x.gStyle.fTitleH.toFixed(2),0,1,.1,x.gStyle.fTitleH,g=>{x.gStyle.fTitleH=g}),this.add("endsub:"),this.add("sub:Stat box"),this.addColorMenu("Fill color",x.gStyle.fStatColor,g=>{x.gStyle.fStatColor=g}),this.addFillStyleMenu("Fill style",x.gStyle.fStatStyle,x.gStyle.fStatColor,null,g=>{x.gStyle.fStatStyle=g}),this.addColorMenu("Text color",x.gStyle.fStatTextColor,g=>{x.gStyle.fStatTextColor=g}),this.addSizeMenu("Border size",0,10,1,x.gStyle.fStatBorderSize,g=>{x.gStyle.fStatBorderSize=g}),this.addSizeMenu("Font size",0,30,5,x.gStyle.fStatFontSize,g=>{x.gStyle.fStatFontSize=g}),this.addFontMenu("Font",x.gStyle.fStatFont,g=>{x.gStyle.fStatFont=g}),this.add("Stat format",()=>this.input("Stat format",x.gStyle.fStatFormat).then(g=>{x.gStyle.fStatFormat=g})),this.addSizeMenu("X: "+x.gStyle.fStatX.toFixed(2),.2,1,.1,x.gStyle.fStatX,g=>{x.gStyle.fStatX=g}),this.addSizeMenu("Y: "+x.gStyle.fStatY.toFixed(2),.2,1,.1,x.gStyle.fStatY,g=>{x.gStyle.fStatY=g}),this.addSizeMenu("Width: "+x.gStyle.fStatW.toFixed(2),.1,1,.1,x.gStyle.fStatW,g=>{x.gStyle.fStatW=g}),this.addSizeMenu("Height: "+x.gStyle.fStatH.toFixed(2),.1,1,.1,x.gStyle.fStatH,g=>{x.gStyle.fStatH=g}),this.add("endsub:"),this.add("sub:Legend"),this.addColorMenu("Fill color",x.gStyle.fLegendFillColor,g=>{x.gStyle.fLegendFillColor=g}),this.addSizeMenu("Border size",0,10,1,x.gStyle.fLegendBorderSize,g=>{x.gStyle.fLegendBorderSize=g}),this.addFontMenu("Font",x.gStyle.fLegendFont,g=>{x.gStyle.fLegendFont=g}),this.addSizeMenu("Text size",0,.1,.01,x.gStyle.fLegendTextSize,g=>{x.gStyle.fLegendTextSize=g},"legend text size, when 0 - auto adjustment is used"),this.add("endsub:"),this.add("sub:Histogram"),this.addchk(1===x.gStyle.fOptTitle,"Hist title",g=>{x.gStyle.fOptTitle=g?1:0}),this.addchk(x.gStyle.fOrthoCamera,"Orthographic camera",g=>{x.gStyle.fOrthoCamera=g}),this.addchk(x.gStyle.fHistMinimumZero,"Base0",g=>{x.gStyle.fHistMinimumZero=g},"when true, BAR and LEGO drawing using base = 0"),this.add("Text format",()=>this.input("Paint text format",x.gStyle.fPaintTextFormat).then(g=>{x.gStyle.fPaintTextFormat=g})),this.add("Time offset",()=>this.input("Time offset in seconds, default is 788918400 for 1/1/1995",x.gStyle.fTimeOffset,"int").then(g=>{x.gStyle.fTimeOffset=g})),this.addSizeMenu("ErrorX: "+x.gStyle.fErrorX.toFixed(2),0,1,.1,x.gStyle.fErrorX,g=>{x.gStyle.fErrorX=g}),this.addSizeMenu("End error",0,12,1,x.gStyle.fEndErrorSize,g=>{x.gStyle.fEndErrorSize=g},"size in pixels of end error for E1 draw options, gStyle.fEndErrorSize"),this.addSizeMenu("Top margin",0,.5,.05,x.gStyle.fHistTopMargin,g=>{x.gStyle.fHistTopMargin=g},"Margin between histogram top and frame top"),this.addColorMenu("Fill color",x.gStyle.fHistFillColor,g=>{x.gStyle.fHistFillColor=g}),this.addFillStyleMenu("Fill style",x.gStyle.fHistFillStyle,x.gStyle.fHistFillColor,null,g=>{x.gStyle.fHistFillStyle=g}),this.addColorMenu("Line color",x.gStyle.fHistLineColor,g=>{x.gStyle.fHistLineColor=g}),this.addSizeMenu("Line width",1,10,1,x.gStyle.fHistLineWidth,g=>{x.gStyle.fHistLineWidth=g}),this.addLineStyleMenu("Line style",x.gStyle.fHistLineStyle,g=>{x.gStyle.fHistLineStyle=g}),this.add("endsub:"),this.add("separator"),this.add("sub:Predefined"),["Modern","Plain","Bold"].forEach(g=>this.addchk(x.gStyle.fName===g,g,g,ve.Jb)),this.add("endsub:"),this.add("endsub:"),this.add("separator"),this.add("Save settings",()=>{((0,ve.sb)(!0)?Promise.resolve(!0):this.confirm("Save settings","Pressing OK one agreess that JSROOT will store settings as browser cookies")).then(E=>{E&&((0,ve.DZ)(),(0,ve.PL)())})},"Store settings and gStyle as cookies"),this.add("Delete settings",()=>{(0,ve.DZ)(-1),(0,ve.PL)(-1)},"Delete settings and gStyle from cookies"),me||this.add("endsub:")}runModal(){return(0,Te.A)(function*(){throw Error("runModal() must be reimplemented")})()}info(Q,me){return this.runModal(Q,`

${me}

`,{height:120,width:400,resizable:!0})}confirm(Q,me){var X=this;return(0,Te.A)(function*(){return X.runModal(Q,me,{btns:!0,height:120,width:400}).then(B=>!!B)})()}input(Q,me,X,B,$){var g=this;return(0,Te.A)(function*(){X||(X="text");let _="";null==me&&(me=""),"int"===X&&(void 0!==B&&(_+=` min="${B}"`),void 0!==$&&(_+=` max="${$}"`));const v=`
`;return new Promise(p=>{g.runModal(Q,v,{btns:!0,height:150,width:400}).then(C=>{if(!C)return;let I=C.querySelector(".jsroot_dlginp").value;"float"===X?(I=parseFloat(I),Number.isFinite(I)&&p(I)):"int"===X?(I=parseInt(I),Number.isInteger(I)&&p(I)):p(I)})})})()}showMethodArgsDialog(Q){var me=this;return(0,Te.A)(function*(){const X=me.menuname+"_dialog";let B='
';for(let $=0;$${g.fName}\n `}return B+="
",new Promise($=>{me.runModal(Q.fClassName+"::"+Q.fName,B,{btns:!0,height:100+60*Q.fArgs.length,width:400,resizable:!0}).then(g=>{if(!g)return;let E="";for(let _=0;_0?",":"")+p}$(E)})})})()}showCommandArgsDialog(Q,me){var X=this;return(0,Te.A)(function*(){const B=X.menuname+"_dialog";let $='
';for(let g=0;garg${g+1}`;return $+="
",new Promise(g=>{X.runModal("Arguments for command "+Q,$,{btns:!0,height:110+60*me.length,width:400,resizable:!0}).then(E=>{if(!E)return g(null);const _=[];for(let v=0;v0;)I[0].parentNode.removeChild(I[0]);g.className="jsroot_ctxt_container",g.style=E,g.style.position="fixed",g.style.left=me+"px",g.style.top=X+"px"}else me<0&&X===me?(g.className="jsroot_ctxt_column",g.style.float="left",g.style.width=(100/-me).toFixed(1)+"%"):(g.className="jsroot_ctxt_container",g.style=E,g.style.left=-B.offsetLeft+B.offsetWidth+"px");let _=!1,v=0;Q.forEach(I=>{I.checked&&(_=!0),I.column&&v++}),Q.forEach(I=>{if(v>0)return g.style.display="flex",void(I.column&&this._buildContextmenu(I.sub,-v,-v,g));if(I.divider){const he=$.createElement("hr");return he.style="width: 85%; margin: 3px auto; border: 1px solid rgb(0, 0, 0, 0.15)",void g.appendChild(he)}const U=$.createElement("div");if(U.style.position="relative",g.appendChild(U),I.header)return U.style="background-color: lightblue; padding: 3px 7px; font-weight: bold; border-bottom: 1px;",void(U.innerHTML=I.text);const k=$.createElement("div");k.style.width="100%",k.style.height="100%",k.style.display="flex",k.style.justifyContent="space-between",k.style.cursor="pointer",I.title&&k.setAttribute("title",I.title),U.appendChild(k),I.text||(I.text="item");const Z=$.createElement("div");if(Z.style="margin: 0; padding: 3px 7px; pointer-events: none; white-space: nowrap",I.text.indexOf("=0)if(_){Z.style.display="flex";const he=$.createElement("span");he.innerHTML=I.checked?"\u2713":"",he.style.display="inline-block",he.style.width="1em",Z.appendChild(he);const V=$.createElement("div");V.innerHTML=I.text,Z.appendChild(V)}else Z.innerHTML=I.text;else{if(_){const V=$.createElement("span");V.innerHTML=I.checked?"\u2713":"",V.style.display="inline-block",V.style.width="1em",Z.appendChild(V)}const he=$.createElement("span");he.textContent=0===I.text.indexOf("")?I.text.slice(6,I.text.length-7):I.text,Z.appendChild(he)}function ee(he,V){V?(he.classList.add("jsroot_ctxt_focus"),he.style["background-color"]="rgb(220, 220, 220)"):he.classList.contains("jsroot_ctxt_focus")&&(he.style["background-color"]=null,he.classList.remove("jsroot_ctxt_focus"),he.querySelector(".jsroot_ctxt_container")?.remove())}if(k.appendChild(Z),I.extraText||I.sub){const he=$.createElement("span");he.className="jsroot_ctxt_extraText",he.style="margin: 0; padding: 3px 7px; color: rgb(0, 0, 0, 0.6);",he.textContent=I.sub?"\u25b6":I.extraText,k.appendChild(he),I.sub&&x.browser.touches&&he.addEventListener("click",V=>{V.preventDefault(),V.stopPropagation();const b=U.parentNode.querySelector(".jsroot_ctxt_focus");b&&ee(b,!1),U!==b&&(ee(U,!0),this._buildContextmenu(I.sub,0,0,U))})}x.browser.touches||k.addEventListener("mouseenter",()=>{this.prevHovArea&&(this.prevHovArea.style["background-color"]=null),k.style["background-color"]="rgb(235, 235, 235)",this.prevHovArea=k,g.childNodes.forEach(he=>ee(he,!1)),I.sub&&(ee(U,!0),this._buildContextmenu(I.sub,0,0,U))}),I.func&&U.addEventListener("click",he=>{(this.painter?I.func.bind(this.painter):I.func)(I.arg),he.stopPropagation(),this.remove()})}),B.appendChild(g);const p=$.documentElement.clientWidth,C=$.documentElement.clientHeight;if(B===$.body)me+g.offsetWidth>p&&(g.style.left=p-g.offsetWidth+"px"),g.offsetHeight>C?(g.style.top=0,g.style.overflowY="scroll",g.style.overflowX="hidden",g.style.height=C+"px"):X+g.offsetHeight>C&&(g.style.top=C-g.offsetHeight+"px");else if("jsroot_ctxt_column"!==g.className){const I=B.getBoundingClientRect(),U=g.getBoundingClientRect();U.left+U.width>p&&(g.style.left=-B.offsetLeft-U.width+"px"),U.height>C?(g.style.top=-U.top+"px",g.style.overflowY="scroll",g.style.overflowX="hidden",g.style.height=C+"px"):U.heightC/2?g.style.top=U.top-C/2>=0?-U.top-U.height+C+"px":-U.top+"px":U.top+U.height>C&&(g.style.top=-U.height+I.height+"px")}return g}show(Q){var me=this;return(0,Te.A)(function*(){me.remove(),!Q&&me.show_evnt&&(Q=me.show_evnt);const X=(0,x.getDocument)(),B=typeof window>"u"?{x:0,y:0}:{x:window.scrollX,y:window.scrollY};X.body.addEventListener("click",me.remove_handler);const $=X.getElementById(me.menuname);return $&&$.remove(),me.element=me._buildContextmenu(me.code,(Q?.clientX||0)+B.x,(Q?.clientY||0)+B.y,X.body),me.element.setAttribute("id",me.menuname),me})()}createModal(Q,me,X){X||(X={}),X.Ok||(X.Ok="Ok");const B={args:X},$=(this?.menuname??"root_modal")+"_dialog";(0,L.Lt)(`#${$}`).remove(),(0,L.Lt)(`#${$}_block`).remove();const g=Math.min(X.width||450,Math.round(.9*x.browser.screenWidth));B.block=(0,L.Lt)("body").append("div").attr("id",`${$}_block`).attr("class","jsroot_dialog_block").attr("style","z-index: 100000; position: absolute; left: 0px; top: 0px; bottom: 0px; right: 0px; opacity: 0.2; background-color: white"),B.element=(0,L.Lt)("body").append("div").attr("id",$).attr("class","jsroot_dialog").style("position","absolute").style("width",`${g}px`).style("left","50%").style("top","50%").style("z-index",100001).attr("tabindex","0").html(`
${Q}
${me}
"),B.done=function(_){this._done||(this._done=!0,(0,x.isFunc)(this.call_back)&&this.call_back(_),this.element.remove(),this.block.remove())},B.setContent=function(_,v){this._done||(this.element.select(".jsroot_dialog_content").html(_),v&&(this.args.Ok=v,this.element.select(".jsroot_dialog_button").text(v)))},B.element.on("keyup",_=>{("Enter"===_.code||"Escape"===_.code)&&(_.preventDefault(),_.stopPropagation(),B.done("Enter"===_.code?B.element.node():null))}),B.element.on("keydown",_=>{("Enter"===_.code||"Escape"===_.code)&&(_.preventDefault(),_.stopPropagation())}),B.element.selectAll(".jsroot_dialog_button").on("click",_=>{B.done(X.btns&&(0,L.Lt)(_.target).text()===X.Ok?B.element.node():null)});let E=B.element.select(".jsroot_dialog_content").select("input");return E.empty()&&(E=B.element.select(".jsroot_dialog_footer").select("button")),E.empty()||E.node().focus(),B}runModal(Q,me,X){var B=this;return(0,Te.A)(function*(){const $=B.createModal(Q,me,X);return new Promise(g=>{$.call_back=g})})()}}function De(ue,Q,me){return new Ve(Q,me||"root_ctx_menu",ue).load()}function F(ue){const Q=(0,x.getDocument)().getElementById(ue||"root_ctx_menu");return Q?.remove(),!!Q}function J(ue,Q,me){(0,x.isFunc)(ue.stopPropagation)&&(ue.stopPropagation(),ue.preventDefault()),De(ue,Q).then(X=>(Q.fillContextMenu(X),me===Re&&(0,x.isFunc)(Q.bringToFront)&&(X.add("Bring to front",()=>Q.bringToFront(!0)),me=void 0),Q.fillObjectExecMenu(X,me))).then(X=>X.show())}function Y(ue,Q){!ue?.isBatchMode()&&ue?.draw_g&&ue.draw_g.on("contextmenu",x.settings.ContextMenu?me=>J(me,ue,Q):null)}x.internals._modalProgress=function(ue,Q){if(!ue||!(0,x.isStr)(ue))return x.internals.modal?.done(),void delete x.internals.modal;x.internals.modal||(x.internals.modal=Ve.prototype.createModal("Progress",ue)),x.internals.modal.setContent(ue,Q?"Abort":"Ok"),x.internals.modal.call_back=Q}},5992:(Yr,mt,Se)=>{"use strict";Se.d(mt,{DZ:()=>B,IK:()=>De,Jb:()=>Q,OJ:()=>p,PL:()=>g,Rh:()=>Ye,W4:()=>Ze,X2:()=>Y,cA:()=>He,d7:()=>F,fz:()=>ue,iE:()=>J,pp:()=>U,sb:()=>$});var Te=Se(4882),x=Se(8872),L=Se(8362),ve=Se(2843),ke=Se(1922),ot=Se(2985);function Ye(k,Z,ee){if((0,x.isBatchMode)()||typeof document>"u")return;const he="jsroot_progressbox",V="modal"===x.settings.ProgressBox&&(0,x.isFunc)(x.internals._modalProgress)?x.internals._modalProgress:null;let b=(0,L.Lt)("#"+he);if(!x.settings.ProgressBox)return V&&V(),b.remove();if(0===arguments.length||!k)return(-1!==Z||!b.empty()&&b.property("with_timeout"))&&b.remove(),void(V&&V());if(V)b.remove(),V(k,ee);else{b.empty()&&(b=(0,L.Lt)(document.body).append("div").attr("id",he).attr("style","position: fixed; min-width: 100px; height: auto; overflow: visible; z-index: 101; border: 1px solid #999; background: #F8F8F8; left: 10px; bottom: 10px;"),b.append("p")),b.property("with_timeout",!1);const P=b.select("p");(0,x.isStr)(k)&&P.html(k).on("click",(0,x.isFunc)(ee)?ee:null).attr("title",(0,x.isFunc)(ee)?"Click element to abort current operation":""),P.attr("style","font-size: 10px; margin-left: 10px; margin-right: 10px; margin-top: 3px; margin-bottom: 3px")}Number.isFinite(Z)&&Z>0&&(b.empty()||b.property("with_timeout",!0),setTimeout(()=>Ye("",-1),Z))}function Ze(){typeof window>"u"||(window.close(),window.open("","_self").close())}function Re(k,Z){if(!k||0===k.length)return void((0,x.isFunc)(Z.rejectFunc)&&(Z.rejectFunc(Error("openui5 was not possible to load")),Z.rejectFunc=null));let ee=k.shift();0===ee.indexOf("roothandler")&&ee.indexOf("://")<0&&(ee=ee.replace(/:\//g,"://"));const he=document.createElement("script");he.setAttribute("type","text/javascript"),he.setAttribute("id","sap-ui-bootstrap"),he.setAttribute("src",ee+(Z.ui5dbg?"resources/sap-ui-core-dbg.js":"resources/sap-ui-core.js")),he.setAttribute("data-sap-ui-libs",Z.openui5libs??"sap.m, sap.ui.layout, sap.ui.unified, sap.ui.commons"),he.setAttribute("data-sap-ui-theme",Z.openui5theme||"sap_belize"),he.setAttribute("data-sap-ui-compatVersion","edge"),he.setAttribute("data-sap-ui-async","true"),he.setAttribute("data-sap-ui-preload","async"),he.setAttribute("data-sap-ui-evt-oninit","completeUI5Loading()"),he.onerror=function(){he.parentNode.removeChild(he),Re(k,Z)},he.onload=function(){console.log(`Load openui5 from ${ee}`)},document.head.appendChild(he)}function He(k){return Ve.apply(this,arguments)}function Ve(){return(Ve=(0,Te.A)(function*(k){if("object"==typeof globalThis.sap)return globalThis.sap;k||(k={});let Z=x.source_dir.replace(/jsrootsys/g,"rootui5sys");Z===x.source_dir&&(Z=window.location.port&&window.location.pathname.indexOf("/win")>=0&&(!k.openui5src||"nojsroot"===k.openui5src||"jsroot"===k.openui5src)?window.location.origin+window.location.pathname+"../rootui5sys/":void 0);const ee=[];let he="https://openui5.hana.ondemand.com/1.98.0/",V=Z?Z+"distribution/":"";if((0,x.isStr)(k.openui5src))switch(k.openui5src){case"nodefault":he="";break;case"default":ee.push(he),he="";break;case"nojsroot":break;case"jsroot":ee.push(V),V="";break;default:ee.push(k.openui5src)}else k.ui5dbg&&(V="");return V&&ee.indexOf(V)<0&&ee.push(V),he&&ee.indexOf(he)<0&&ee.push(he),new Promise((b,P)=>{k.resolveFunc=b,k.rejectFunc=P,globalThis.completeUI5Loading=function(){globalThis.sap.ui.loader.config({paths:{jsroot:x.source_dir,rootui5:Z}}),k.resolveFunc&&(k.resolveFunc(globalThis.sap),k.resolveFunc=null)},Re(ee,k)})})).apply(this,arguments)}const De={camera:{path:"M 152.00,304.00c0.00,57.438, 46.562,104.00, 104.00,104.00s 104.00-46.562, 104.00-104.00s-46.562-104.00-104.00-104.00S 152.00,246.562, 152.00,304.00z M 480.00,128.00L 368.00,128.00 c-8.00-32.00-16.00-64.00-48.00-64.00L 192.00,64.00 c-32.00,0.00-40.00,32.00-48.00,64.00L 32.00,128.00 c-17.60,0.00-32.00,14.40-32.00,32.00l0.00,288.00 c0.00,17.60, 14.40,32.00, 32.00,32.00l 448.00,0.00 c 17.60,0.00, 32.00-14.40, 32.00-32.00L 512.00,160.00 C 512.00,142.40, 497.60,128.00, 480.00,128.00z M 256.00,446.00c-78.425,0.00-142.00-63.574-142.00-142.00c0.00-78.425, 63.575-142.00, 142.00-142.00c 78.426,0.00, 142.00,63.575, 142.00,142.00 C 398.00,382.426, 334.427,446.00, 256.00,446.00z M 480.00,224.00l-64.00,0.00 l0.00-32.00 l 64.00,0.00 L 480.00,224.00 z"},disk:{path:"M384,0H128H32C14.336,0,0,14.336,0,32v448c0,17.656,14.336,32,32,32h448c17.656,0,32-14.344,32-32V96L416,0H384z M352,160 V32h32v128c0,17.664-14.344,32-32,32H160c-17.664,0-32-14.336-32-32V32h128v128H352z M96,288c0-17.656,14.336-32,32-32h256 c17.656,0,32,14.344,32,32v192H96V288z"},question:{path:"M256,512c141.375,0,256-114.625,256-256S397.375,0,256,0S0,114.625,0,256S114.625,512,256,512z M256,64 c63.719,0,128,36.484,128,118.016c0,47.453-23.531,84.516-69.891,110.016C300.672,299.422,288,314.047,288,320 c0,17.656-14.344,32-32,32c-17.664,0-32-14.344-32-32c0-40.609,37.25-71.938,59.266-84.031 C315.625,218.109,320,198.656,320,182.016C320,135.008,279.906,128,256,128c-30.812,0-64,20.227-64,64.672 c0,17.664-14.336,32-32,32s-32-14.336-32-32C128,109.086,193.953,64,256,64z M256,449.406c-18.211,0-32.961-14.75-32.961-32.969 c0-18.188,14.75-32.953,32.961-32.953c18.219,0,32.969,14.766,32.969,32.953C288.969,434.656,274.219,449.406,256,449.406z"},undo:{path:"M450.159,48.042c8.791,9.032,16.983,18.898,24.59,29.604c7.594,10.706,14.146,22.207,19.668,34.489 c5.509,12.296,9.82,25.269,12.92,38.938c3.113,13.669,4.663,27.834,4.663,42.499c0,14.256-1.511,28.863-4.532,43.822 c-3.009,14.952-7.997,30.217-14.953,45.795c-6.955,15.577-16.202,31.52-27.755,47.826s-25.88,32.9-42.942,49.807 c-5.51,5.444-11.787,11.67-18.834,18.651c-7.033,6.98-14.496,14.366-22.39,22.168c-7.88,7.802-15.955,15.825-24.187,24.069 c-8.258,8.231-16.333,16.203-24.252,23.888c-18.3,18.13-37.354,37.016-57.191,56.65l-56.84-57.445 c19.596-19.472,38.54-38.279,56.84-56.41c7.75-7.685,15.772-15.604,24.108-23.757s16.438-16.163,24.33-24.057 c7.894-7.893,15.356-15.33,22.402-22.312c7.034-6.98,13.312-13.193,18.821-18.651c22.351-22.402,39.165-44.648,50.471-66.738 c11.279-22.09,16.932-43.567,16.932-64.446c0-15.785-3.217-31.005-9.638-45.671c-6.422-14.665-16.229-28.504-29.437-41.529 c-3.282-3.282-7.358-6.395-12.217-9.325c-4.871-2.938-10.381-5.503-16.516-7.697c-6.121-2.201-12.815-3.992-20.058-5.373 c-7.242-1.374-14.9-2.064-23.002-2.064c-8.218,0-16.802,0.834-25.788,2.507c-8.961,1.674-18.053,4.429-27.222,8.271 c-9.189,3.842-18.456,8.869-27.808,15.089c-9.358,6.219-18.521,13.819-27.502,22.793l-59.92,60.271l93.797,94.058H0V40.91 l93.27,91.597l60.181-60.532c13.376-15.018,27.222-27.248,41.536-36.697c14.308-9.443,28.608-16.776,42.89-21.992 c14.288-5.223,28.505-8.74,42.623-10.557C294.645,0.905,308.189,0,321.162,0c13.429,0,26.389,1.185,38.84,3.562 c12.478,2.377,24.2,5.718,35.192,10.029c11.006,4.311,21.126,9.404,30.374,15.265C434.79,34.724,442.995,41.119,450.159,48.042z"},arrow_right:{path:"M30.796,226.318h377.533L294.938,339.682c-11.899,11.906-11.899,31.184,0,43.084c11.887,11.899,31.19,11.893,43.077,0 l165.393-165.386c5.725-5.712,8.924-13.453,8.924-21.539c0-8.092-3.213-15.84-8.924-21.551L338.016,8.925 C332.065,2.975,324.278,0,316.478,0c-7.802,0-15.603,2.968-21.539,8.918c-11.899,11.906-11.899,31.184,0,43.084l113.391,113.384 H30.796c-16.822,0-30.463,13.645-30.463,30.463C0.333,212.674,13.974,226.318,30.796,226.318z"},arrow_up:{path:"M295.505,629.446V135.957l148.193,148.206c15.555,15.559,40.753,15.559,56.308,0c15.555-15.538,15.546-40.767,0-56.304 L283.83,11.662C276.372,4.204,266.236,0,255.68,0c-10.568,0-20.705,4.204-28.172,11.662L11.333,227.859 c-7.777,7.777-11.666,17.965-11.666,28.158c0,10.192,3.88,20.385,11.657,28.158c15.563,15.555,40.762,15.555,56.317,0 l148.201-148.219v493.489c0,21.993,17.837,39.82,39.82,39.82C277.669,669.267,295.505,651.439,295.505,629.446z"},arrow_diag:{path:"M279.875,511.994c-1.292,0-2.607-0.102-3.924-0.312c-10.944-1.771-19.333-10.676-20.457-21.71L233.97,278.348 L22.345,256.823c-11.029-1.119-19.928-9.51-21.698-20.461c-1.776-10.944,4.031-21.716,14.145-26.262L477.792,2.149 c9.282-4.163,20.167-2.165,27.355,5.024c7.201,7.189,9.199,18.086,5.024,27.356L302.22,497.527 C298.224,506.426,289.397,511.994,279.875,511.994z M118.277,217.332l140.534,14.294c11.567,1.178,20.718,10.335,21.878,21.896 l14.294,140.519l144.09-320.792L118.277,217.332z"},auto_zoom:{path:"M505.441,242.47l-78.303-78.291c-9.18-9.177-24.048-9.171-33.216,0c-9.169,9.172-9.169,24.045,0.006,33.217l38.193,38.188 H280.088V80.194l38.188,38.199c4.587,4.584,10.596,6.881,16.605,6.881c6.003,0,12.018-2.297,16.605-6.875 c9.174-9.172,9.174-24.039,0.011-33.217L273.219,6.881C268.803,2.471,262.834,0,256.596,0c-6.229,0-12.202,2.471-16.605,6.881 l-78.296,78.302c-9.178,9.172-9.178,24.045,0,33.217c9.177,9.171,24.051,9.171,33.21,0l38.205-38.205v155.4H80.521l38.2-38.188 c9.177-9.171,9.177-24.039,0.005-33.216c-9.171-9.172-24.039-9.178-33.216,0L7.208,242.464c-4.404,4.403-6.881,10.381-6.881,16.611 c0,6.227,2.477,12.207,6.881,16.61l78.302,78.291c4.587,4.581,10.599,6.875,16.605,6.875c6.006,0,12.023-2.294,16.61-6.881 c9.172-9.174,9.172-24.036-0.005-33.211l-38.205-38.199h152.593v152.063l-38.199-38.211c-9.171-9.18-24.039-9.18-33.216-0.022 c-9.178,9.18-9.178,24.059-0.006,33.222l78.284,78.302c4.41,4.404,10.382,6.881,16.611,6.881c6.233,0,12.208-2.477,16.611-6.881 l78.302-78.296c9.181-9.18,9.181-24.048,0-33.205c-9.174-9.174-24.054-9.174-33.21,0l-38.199,38.188v-152.04h152.051l-38.205,38.199 c-9.18,9.175-9.18,24.037-0.005,33.211c4.587,4.587,10.596,6.881,16.604,6.881c6.01,0,12.024-2.294,16.605-6.875l78.303-78.285 c4.403-4.403,6.887-10.378,6.887-16.611C512.328,252.851,509.845,246.873,505.441,242.47z"},statbox:{path:"M28.782,56.902H483.88c15.707,0,28.451-12.74,28.451-28.451C512.331,12.741,499.599,0,483.885,0H28.782 C13.074,0,0.331,12.741,0.331,28.451C0.331,44.162,13.074,56.902,28.782,56.902zM483.885,136.845H28.782c-15.708,0-28.451,12.741-28.451,28.451c0,15.711,12.744,28.451,28.451,28.451H483.88 c15.707,0,28.451-12.74,28.451-28.451C512.331,149.586,499.599,136.845,483.885,136.845zM483.885,273.275H28.782c-15.708,0-28.451,12.731-28.451,28.452c0,15.707,12.744,28.451,28.451,28.451H483.88 c15.707,0,28.451-12.744,28.451-28.451C512.337,286.007,499.599,273.275,483.885,273.275zM256.065,409.704H30.492c-15.708,0-28.451,12.731-28.451,28.451c0,15.707,12.744,28.451,28.451,28.451h225.585 c15.707,0,28.451-12.744,28.451-28.451C284.516,422.436,271.785,409.704,256.065,409.704z"},circle:{path:"M256,256 m-150,0 a150,150 0 1,0 300,0 a150,150 0 1,0 -300,0"},three_circles:{path:"M256,85 m-70,0 a70,70 0 1,0 140,0 a70,70 0 1,0 -140,0 M256,255 m-70,0 a70,70 0 1,0 140,0 a70,70 0 1,0 -140,0 M256,425 m-70,0 a70,70 0 1,0 140,0 a70,70 0 1,0 -140,0 "},diamand:{path:"M256,0L384,256L256,511L128,256z"},rect:{path:"M90,90h352v352h-352z"},cross:{path:"M80,40l176,176l176,-176l40,40l-176,176l176,176l-40,40l-176,-176l-176,176l-40,-40l176,-176l-176,-176z"},vrgoggles:{size:"245.82 141.73",path:"M175.56,111.37c-22.52,0-40.77-18.84-40.77-42.07S153,27.24,175.56,27.24s40.77,18.84,40.77,42.07S198.08,111.37,175.56,111.37ZM26.84,69.31c0-23.23,18.25-42.07,40.77-42.07s40.77,18.84,40.77,42.07-18.26,42.07-40.77,42.07S26.84,92.54,26.84,69.31ZM27.27,0C11.54,0,0,12.34,0,28.58V110.9c0,16.24,11.54,30.83,27.27,30.83H99.57c2.17,0,4.19-1.83,5.4-3.7L116.47,118a8,8,0,0,1,12.52-.18l11.51,20.34c1.2,1.86,3.22,3.61,5.39,3.61h72.29c15.74,0,27.63-14.6,27.63-30.83V28.58C245.82,12.34,233.93,0,218.19,0H27.27Z"},th2colorz:{recs:[{x:128,y:486,w:256,h:26,f:"rgb(38,62,168)"},{y:461,f:"rgb(22,82,205)"},{y:435,f:"rgb(16,100,220)"},{y:410,f:"rgb(18,114,217)"},{y:384,f:"rgb(20,129,214)"},{y:358,f:"rgb(14,143,209)"},{y:333,f:"rgb(9,157,204)"},{y:307,f:"rgb(13,167,195)"},{y:282,f:"rgb(30,175,179)"},{y:256,f:"rgb(46,183,164)"},{y:230,f:"rgb(82,186,146)"},{y:205,f:"rgb(116,189,129)"},{y:179,f:"rgb(149,190,113)"},{y:154,f:"rgb(179,189,101)"},{y:128,f:"rgb(209,187,89)"},{y:102,f:"rgb(226,192,75)"},{y:77,f:"rgb(244,198,59)"},{y:51,f:"rgb(253,210,43)"},{y:26,f:"rgb(251,230,29)"},{y:0,f:"rgb(249,249,15)"}]},th2color:{recs:[{x:0,y:256,w:13,h:39,f:"rgb(38,62,168)"},{x:13,y:371,w:39,h:39},{y:294,h:39},{y:256,h:39},{y:218,h:39},{x:51,y:410,w:39,h:39},{y:371,h:39},{y:333,h:39},{y:294},{y:256,h:39},{y:218,h:39},{y:179,h:39},{y:141,h:39},{y:102,h:39},{y:64},{x:90,y:448,w:39,h:39},{y:410},{y:371,h:39},{y:333,h:39,f:"rgb(22,82,205)"},{y:294},{y:256,h:39,f:"rgb(16,100,220)"},{y:218,h:39},{y:179,h:39,f:"rgb(22,82,205)"},{y:141,h:39},{y:102,h:39,f:"rgb(38,62,168)"},{y:64},{y:0,h:27},{x:128,y:448,w:39,h:39},{y:410},{y:371,h:39},{y:333,h:39,f:"rgb(22,82,205)"},{y:294,f:"rgb(20,129,214)"},{y:256,h:39,f:"rgb(9,157,204)"},{y:218,h:39,f:"rgb(14,143,209)"},{y:179,h:39,f:"rgb(20,129,214)"},{y:141,h:39,f:"rgb(16,100,220)"},{y:102,h:39,f:"rgb(22,82,205)"},{y:64,f:"rgb(38,62,168)"},{y:26,h:39},{y:0,h:27},{x:166,y:486,h:14},{y:448,h:39},{y:410},{y:371,h:39,f:"rgb(22,82,205)"},{y:333,h:39,f:"rgb(20,129,214)"},{y:294,f:"rgb(82,186,146)"},{y:256,h:39,f:"rgb(179,189,101)"},{y:218,h:39,f:"rgb(116,189,129)"},{y:179,h:39,f:"rgb(82,186,146)"},{y:141,h:39,f:"rgb(14,143,209)"},{y:102,h:39,f:"rgb(16,100,220)"},{y:64,f:"rgb(38,62,168)"},{y:26,h:39},{x:205,y:486,w:39,h:14},{y:448,h:39},{y:410},{y:371,h:39,f:"rgb(16,100,220)"},{y:333,h:39,f:"rgb(9,157,204)"},{y:294,f:"rgb(149,190,113)"},{y:256,h:39,f:"rgb(244,198,59)"},{y:218,h:39},{y:179,h:39,f:"rgb(226,192,75)"},{y:141,h:39,f:"rgb(13,167,195)"},{y:102,h:39,f:"rgb(18,114,217)"},{y:64,f:"rgb(22,82,205)"},{y:26,h:39,f:"rgb(38,62,168)"},{x:243,y:448,w:39,h:39},{y:410},{y:371,h:39,f:"rgb(18,114,217)"},{y:333,h:39,f:"rgb(30,175,179)"},{y:294,f:"rgb(209,187,89)"},{y:256,h:39,f:"rgb(251,230,29)"},{y:218,h:39,f:"rgb(249,249,15)"},{y:179,h:39,f:"rgb(226,192,75)"},{y:141,h:39,f:"rgb(30,175,179)"},{y:102,h:39,f:"rgb(18,114,217)"},{y:64,f:"rgb(38,62,168)"},{y:26,h:39},{x:282,y:448,h:39},{y:410},{y:371,h:39,f:"rgb(18,114,217)"},{y:333,h:39,f:"rgb(14,143,209)"},{y:294,f:"rgb(149,190,113)"},{y:256,h:39,f:"rgb(226,192,75)"},{y:218,h:39,f:"rgb(244,198,59)"},{y:179,h:39,f:"rgb(149,190,113)"},{y:141,h:39,f:"rgb(9,157,204)"},{y:102,h:39,f:"rgb(18,114,217)"},{y:64,f:"rgb(38,62,168)"},{y:26,h:39},{x:320,y:448,w:39,h:39},{y:410},{y:371,h:39,f:"rgb(22,82,205)"},{y:333,h:39,f:"rgb(20,129,214)"},{y:294,f:"rgb(46,183,164)"},{y:256,h:39},{y:218,h:39,f:"rgb(82,186,146)"},{y:179,h:39,f:"rgb(9,157,204)"},{y:141,h:39,f:"rgb(20,129,214)"},{y:102,h:39,f:"rgb(16,100,220)"},{y:64,f:"rgb(38,62,168)"},{y:26,h:39},{x:358,y:448,h:39},{y:410},{y:371,h:39,f:"rgb(22,82,205)"},{y:333,h:39},{y:294,f:"rgb(16,100,220)"},{y:256,h:39,f:"rgb(20,129,214)"},{y:218,h:39,f:"rgb(14,143,209)"},{y:179,h:39,f:"rgb(18,114,217)"},{y:141,h:39,f:"rgb(22,82,205)"},{y:102,h:39,f:"rgb(38,62,168)"},{y:64},{y:26,h:39},{x:397,y:448,w:39,h:39},{y:371,h:39},{y:333,h:39},{y:294,f:"rgb(22,82,205)"},{y:256,h:39},{y:218,h:39},{y:179,h:39,f:"rgb(38,62,168)"},{y:141,h:39},{y:102,h:39},{y:64},{y:26,h:39},{x:435,y:410,h:39},{y:371,h:39},{y:333,h:39},{y:294},{y:256,h:39},{y:218,h:39},{y:179,h:39},{y:141,h:39},{y:102,h:39},{y:64},{x:474,y:256,h:39},{y:179,h:39}]},th2draw3d:{path:"M172.768,0H51.726C23.202,0,0.002,23.194,0.002,51.712v89.918c0,28.512,23.2,51.718,51.724,51.718h121.042 c28.518,0,51.724-23.2,51.724-51.718V51.712C224.486,23.194,201.286,0,172.768,0z M177.512,141.63c0,2.611-2.124,4.745-4.75,4.745 H51.726c-2.626,0-4.751-2.134-4.751-4.745V51.712c0-2.614,2.125-4.739,4.751-4.739h121.042c2.62,0,4.75,2.125,4.75,4.739 L177.512,141.63L177.512,141.63z M460.293,0H339.237c-28.521,0-51.721,23.194-51.721,51.712v89.918c0,28.512,23.2,51.718,51.721,51.718h121.045 c28.521,0,51.721-23.2,51.721-51.718V51.712C512.002,23.194,488.802,0,460.293,0z M465.03,141.63c0,2.611-2.122,4.745-4.748,4.745 H339.237c-2.614,0-4.747-2.128-4.747-4.745V51.712c0-2.614,2.133-4.739,4.747-4.739h121.045c2.626,0,4.748,2.125,4.748,4.739 V141.63z M172.768,256.149H51.726c-28.524,0-51.724,23.205-51.724,51.726v89.915c0,28.504,23.2,51.715,51.724,51.715h121.042 c28.518,0,51.724-23.199,51.724-51.715v-89.915C224.486,279.354,201.286,256.149,172.768,256.149z M177.512,397.784 c0,2.615-2.124,4.736-4.75,4.736H51.726c-2.626-0.006-4.751-2.121-4.751-4.736v-89.909c0-2.626,2.125-4.753,4.751-4.753h121.042 c2.62,0,4.75,2.116,4.75,4.753L177.512,397.784L177.512,397.784z M460.293,256.149H339.237c-28.521,0-51.721,23.199-51.721,51.726v89.915c0,28.504,23.2,51.715,51.721,51.715h121.045 c28.521,0,51.721-23.199,51.721-51.715v-89.915C512.002,279.354,488.802,256.149,460.293,256.149z M465.03,397.784 c0,2.615-2.122,4.736-4.748,4.736H339.237c-2.614,0-4.747-2.121-4.747-4.736v-89.909c0-2.626,2.121-4.753,4.747-4.753h121.045 c2.615,0,4.748,2.116,4.748,4.753V397.784z"},createSVG(k,Z,ee,he,V){const b=!0===V||!1===V?V:x.settings.DarkMode,P="browser"===V?x.browser.touches?.2:0:b?.8:.2,T=k.append("svg:svg").attr("width",ee+"px").attr("height",ee+"px").attr("viewBox","0 0 512 512").style("overflow","hidden").style("cursor","pointer").style("fill",b?"rgba(255, 224, 160)":"steelblue").style("opacity",P).property("opacity0",P).property("opacity1",b?1:.8).on("mouseenter",function(){const z=(0,L.Lt)(this);z.style("opacity",z.property("opacity1"));const W=z.node()._mouseenter;(0,x.isFunc)(W)&&W()}).on("mouseleave",function(){const z=(0,L.Lt)(this);z.style("opacity",z.property("opacity0"));const W=z.node()._mouseleave;(0,x.isFunc)(W)&&W()});if("recs"in Z){const z={};for(let W=0;W"u"||typeof document>"u")return;let ee=null,he=Z||300;function V(){if(ee=null,document.body.style.cursor="wait",(0,x.isFunc)(k))k();else if((0,x.isFunc)(k?.checkResize))k.checkResize();else{const b=new ve.b8(k).selectDom();if(!b.empty()){const P=b.property("mdi");(0,x.isFunc)(P?.checkMDIResize)?P.checkMDIResize():(0,ke.XR)(b.node())}}document.body.style.cursor="auto"}he<20&&(he=20),window.addEventListener("resize",()=>{null!==ee&&clearTimeout(ee),ee=setTimeout(V,he)})}function J(k){return 2===k?.buttons||2===k?.button}function Y(k,Z=!0){if(!x.settings.MoveResize||k.isBatchMode()||!k.draw_g)return;if(!1===k.getPadPainter()?.isEditable()&&(Z=!1),!Z){if(k.draw_g.property("assigned_move")){const b=(0,L.$E)().subject(Object);b.on("start",null).on("drag",null).on("end",null),k.draw_g.style("cursor",null).property("assigned_move",null).call(b)}return}if(k.draw_g.property("assigned_move"))return;const ee=(0,L.$E)().subject(Object);let he=!0,V=!1;ee.on("start",function(b){if(V=!!this.moveEnabled&&!this.moveEnabled(),V||J(b.sourceEvent))return;b.sourceEvent.preventDefault(),b.sourceEvent.stopPropagation();const P=(0,L.Wn)(b,this.draw_g.node());he=!0,this.moveStart&&this.moveStart(P[0],P[1])}.bind(k)).on("drag",function(b){V||(b.sourceEvent.preventDefault(),b.sourceEvent.stopPropagation(),he=!1,this.moveDrag&&this.moveDrag(b.dx,b.dy))}.bind(k)).on("end",function(b){if(V)return;b.sourceEvent.preventDefault(),b.sourceEvent.stopPropagation(),this.moveEnd&&this.moveEnd(he);let P=null;if(he){const T=(0,L.Wn)(b,this.draw_g.node());P={x:T[0],y:T[1],dbl:!1}}this.getPadPainter()?.selectObjectPainter(this,P)}.bind(k)),k.draw_g.style("cursor","move").property("assigned_move",!0).call(ee)}function ue(k,Z,ee){if((0,x.isBatchMode)()||!k||typeof document>"u")return!0;const he=(Z||document).getElementsByTagName("style");for(let b=0;b"u")return null;const ee=decodeURIComponent(document.cookie).split(";");k+="=";for(let he=0;he0){const he=k.slice(ee+7);return(0,x.atob_func)(he)}}return k}function p(k,Z){return C.apply(this,arguments)}function C(){return(C=(0,Te.A)(function*(k,Z){if((0,x.isFunc)(_))return _(k,v(Z));if((0,x.isNodeJs)())return Se.e(756).then(Se.t.bind(Se,9756,19)).then(ee=>(ee.writeFileSync(k,v(Z)),!0));if(typeof document<"u"){const ee=document.createElement("a");return ee.download=k,ee.href=Z,document.body.appendChild(ee),new Promise(he=>{ee.addEventListener("click",()=>{ee.parentNode.removeChild(ee),he(!0)}),ee.click()})}return!1})).apply(this,arguments)}function U(k,Z){const ee=(0,ot.HG)();let he=-1;if((0,x.isStr)(k)){if(k&&"none"!==k){for(let V=1;V=50){const V=(0,L.yW)(k);he=`TColor::GetColor(${V.r},${V.g},${V.b})`}return`exec:${Z}(${he})`}},8868:(Yr,mt,Se)=>{"use strict";Se.r(mt),Se.d(mt,{TF1Painter:()=>De,getTF1Value:()=>He,produceTAxisLogScale:()=>Ve,proivdeEvalPar:()=>Ze});var Te=Se(4882),x=Se(8872),L=Se(2843),ve=Se(1922),ke=Se(4615),ot=Se(212),Ye=Se(6983);function Ze(F,J){F.$math=Ye;let Y=F.fTitle,ue=!1,Q="[";if("gaus"===Y&&(Y="gaus(0)"),(0,x.isStr)(F.fFormula?.fFormula)&&(0===F.fFormula.fFormula.indexOf("[](double*x,double*p)")?(ue=!0,Q="p[",Y=F.fFormula.fFormula.slice(21)):(Y=F.fFormula.fFormula,Q="[p"),F.fFormula.fClingParameters&&F.fFormula.fParams&&F.fFormula.fParams.forEach(me=>{const X=new RegExp(`(\\[${me.first}\\])`,"g"),B=F.fFormula.fClingParameters[me.second];Y=Y.replace(X,B<0?`(${B})`:B)})),!Y)return!J||F.fSave?.length>2;if(F.formulas?.forEach(me=>{Y=Y.replaceAll(me.fName,me.fTitle)}),Y=Y.replace(/\b(TMath::SinH)\b/g,"Math.sinh").replace(/\b(TMath::CosH)\b/g,"Math.cosh").replace(/\b(TMath::TanH)\b/g,"Math.tanh").replace(/\b(TMath::ASinH)\b/g,"Math.asinh").replace(/\b(TMath::ACosH)\b/g,"Math.acosh").replace(/\b(TMath::ATanH)\b/g,"Math.atanh").replace(/\b(TMath::ASin)\b/g,"Math.asin").replace(/\b(TMath::ACos)\b/g,"Math.acos").replace(/\b(TMath::Atan)\b/g,"Math.atan").replace(/\b(TMath::ATan2)\b/g,"Math.atan2").replace(/\b(sin|SIN|TMath::Sin)\b/g,"Math.sin").replace(/\b(cos|COS|TMath::Cos)\b/g,"Math.cos").replace(/\b(tan|TAN|TMath::Tan)\b/g,"Math.tan").replace(/\b(exp|EXP|TMath::Exp)\b/g,"Math.exp").replace(/\b(log|LOG|TMath::Log)\b/g,"Math.log").replace(/\b(log10|LOG10|TMath::Log10)\b/g,"Math.log10").replace(/\b(pow|POW|TMath::Power)\b/g,"Math.pow").replace(/\b(pi|PI)\b/g,"Math.PI").replace(/\b(abs|ABS|TMath::Abs)\b/g,"Math.abs").replace(/\bsqrt\(/g,"Math.sqrt(").replace(/\bxygaus\(/g,"this.$math.gausxy(this, x, y, ").replace(/\bgaus\(/g,"this.$math.gaus(this, x, ").replace(/\bgausn\(/g,"this.$math.gausn(this, x, ").replace(/\bexpo\(/g,"this.$math.expo(this, x, ").replace(/\blandau\(/g,"this.$math.landau(this, x, ").replace(/\blandaun\(/g,"this.$math.landaun(this, x, ").replace(/\b(TMath::|ROOT::Math::)/g,"this.$math."),Y.match(/^pol[0-9]$/)&&parseInt(Y[3])===F.fNpar-1){Y="[0]";for(let me=1;meQ)return F.fSave[Y];const X=Math.min(Y-1,Math.floor((J-ue)/me));let B=ue+X*me,$=B+me,g=F.fSave[X],E=F.fSave[X+1];return!Number.isFinite(g)&&X0&&($-=me,B-=me,E=g,g=F.fSave[X-1]),($*g-B*E+J*(E-g))/me}function He(F,J,Y=void 0){let ue=0,Q=!1;if(!F)return 0;if(!Y&&!F.evalPar)try{Ze(F)||(Q=!0)}catch{Q=!0}if(F.evalPar&&!Q)try{return ue=F.evalPar(J),ue}catch{ue=0}const me=F.fSave.length-3;return me<2||F.fSave[me+1]===F.fSave[me+2]?0:Re(F,J)}function Ve(F,J,Y,ue){let Q,me;ue>0?(me=Math.log(ue),Q=Y>0?Math.log(Y):me-5):(me=-10,Q=-15),F.fNbins=J,F.fXbins=new Array(J+1);for(let X=0;X<=J;++X)F.fXbins[X]=Math.exp(Q+X/J*(me-Q));F.fXmin=Math.exp(Q),F.fXmax=Math.exp(me)}class De extends ot.N{getObjectName(){return this.$func?.fName??"func"}getClassName(){return this.$func?._typename??x.clTF1}isTF1(){return!0}getPrimaryObject(){return this.$func}updateObject(J){if(!J||this.getClassName()!==J._typename)return!1;delete J.evalPar;const Y=this.getHisto();if(this.webcanv_hist){const ue=this.getPadPainter()?.findInPrimitives("Func",x.clTH1D);ue&&this.updateAxes(Y,ue,this.getFramePainter())}return this.$func=J,this.createTF1Histogram(J,Y),this.scanContent(),!0}redraw(J){return!this._use_saved_points&&("logx"===J||"zoom"===J)&&(this.createTF1Histogram(this.$func,this.getHisto()),this.scanContent()),super.redraw(J)}createTF1Histogram(J,Y){const ue=this.getFramePainter(),Q=this.getPadPainter()?.getRootPad(!0),me=Q?.fLogx,X=ue?.getGrFuncs(this.second_x,this.second_y);let B=J.fXmin,$=J.fXmax;X?.zoom_xmin!==X?.zoom_xmax&&(B=Math.min(B,X.zoom_xmin),$=Math.max($,X.zoom_xmax)),this._use_saved_points=J.fSave.length>3&&(x.settings.PreferSavedPoints||this.force_saved);const g=E=>{Y.fNcells!==E+2&&(Y.fNcells=E+2,Y.fArray=new Float32Array(Y.fNcells)),Y.fArray.fill(0),Y.fXaxis.fNbins=E,Y.fXaxis.fXbins=[]};if(delete this._fail_eval,!this._use_saved_points){const E=Math.max(J.fNpx,100);let _=!1;if(!J.evalPar)try{Ze(J)||(_=!0)}catch{_=!0}g(E),me?Ve(Y.fXaxis,E,B,$):(Y.fXaxis.fXmin=B,Y.fXaxis.fXmax=$);for(let v=0;v3&&(this._use_saved_points=!0)}if(this._use_saved_points){const E=J.fSave.length-3;let _=null;if(B=J.fSave[E+1],$=J.fSave[E+2],B===$){const v=this.getMainPainter();(0,x.isFunc)(v?.getHisto)&&(_=v?.getHisto()?.fXaxis)}if(_){g(Y.fXaxis.fNbins),Object.assign(Y.fXaxis,_);for(let v=0;v3&&this._use_saved_points&&(this.xmin=Math.min(this.xmin,Y.fSave[ue-2]),this.xmax=Math.max(this.xmax,Y.fSave[ue-1])),Y&&(this.xmin=Math.min(this.xmin,Y.fXmin),this.xmax=Math.max(this.xmax,Y.fXmax))}canZoomInside(J,Y,ue){if(this.$func?.fSave.length>0&&this._use_saved_points&&"x"===J){const Q=this.$func.fNpx;return Math.abs(this.$func.fSave[Q+2]-this.$func.fSave[Q+1])/Q":(0,L.lg)(me,x.gStyle.fStatFormat))),B||(this.$tmp_tooltip={y:me,gry:X}),Y}processTooltipEvent(J){if(this._use_saved_points)return super.processTooltipEvent(J);let Y=this.draw_g?.selectChild(".tooltip_bin");if(!this.draw_g||!J)return Y?.remove(),null;const ue={name:this.$func?.fName,title:this.$func?.fTitle,x:J.x,y:J.y,color1:this.lineatt?.color??"green",color2:this.fillatt?.getFillColorAlt("blue")??"blue",lines:this.getTF1Tooltips(J),exact:!0,menu:!0};return J.disabled?Y.remove():(Y.empty()&&(Y=this.draw_g.append("svg:circle").attr("class","tooltip_bin").style("pointer-events","none").style("fill","none").attr("r",(this.lineatt?.width??1)+4)),Y.attr("cx",J.x).attr("cy",this.$tmp_tooltip.gry??J.y).call(this.lineatt?.func)),ue}fillWebObjectOptions(J){J.fcust=this._fail_eval?"func_fail":""}static draw(J,Y,ue){return(0,Te.A)(function*(){(0,x.isStr)(ue)||(ue="");let B,Q=ue.indexOf(";webcanv_hist"),me=!1,X=!1;Q>=0&&(me=!0,ue=ue.slice(0,Q)),Q=ue.indexOf(";force_saved"),Q>=0&&(X=!0,ue=ue.slice(0,Q)),me&&(B=new ve.JW(J).getPadPainter()?.findInPrimitives("Func",x.clTH1D)),B||(B=(0,x.createHistogram)(x.clTH1D,100),B.fBits|=x.kNoStats),!ue&&(0,ve.Nn)(J)&&(ue="same");const $=new De(J,B);return $.$func=Y,$.webcanv_hist=me,$.force_saved=X,$.createTF1Histogram(Y,B),ke.mf._drawHist($,ue)})()}}},8142:(Yr,mt,Se)=>{"use strict";Se.r(mt),Se.d(mt,{TH1Painter:()=>Ye});var Te=Se(4882),x=Se(8872),L=Se(8537),ve=Se(2866),ke=Se(4615),ot=Se(212);class Ye extends ot.N{draw3D(Re){this.mode3d=!0;const He=this.getFramePainter(),Ve=this.isMainPainter(),De=this.getHisto(),F=1+2*x.gStyle.fHistTopMargin;let J=Promise.resolve(!0);return"resize"===Re?Ve&&He.resize3D()&&He.render3D():(this.createHistDrawAttributes(!0),this.scanContent(!0),Ve&&((0,L.wx)(He),J=He.create3DScene(this.options.Render3D,this.options.x3dscale,this.options.y3dscale,this.options.Ortho).then(()=>{He.setAxesRanges(De.fXaxis,this.xmin,this.xmax,De.fYaxis,this.ymin,this.ymax,De.fZaxis,0,0,this),He.set3DOptions(this.options),He.drawXYZ(He.toplevel,ve.TB,{use_y_for_z:!0,zmult:F,zoom:x.settings.Zooming,ndim:1,draw:-1!==this.options.Axis,drawany:this.options.isCartesian()})})),He.mode3d&&(J=J.then(()=>{(0,L.CS)(this),He.render3D(),this.updateStatWebCanvas(),He.addKeysHandler()}))),Ve&&(J=J.then(()=>this.drawColorPalette(this.options.Zscale&&(12===this.options.Lego||14===this.options.Lego))).then(()=>this.drawHistTitle())),J.then(()=>this.updateFunctions()).then(()=>this)}static draw(Re,He,Ve){return(0,Te.A)(function*(){return ke.mf._drawHist(new Ye(Re,He),Ve)})()}}},4355:(Yr,mt,Se)=>{"use strict";Se.r(mt),Se.d(mt,{TH2Painter:()=>He});var Te=Se(4882),x=Se(8872),L=Se(2923),ve=Se(3847),ke=Se(8537),ot=Se(2866),Ye=Se(4615),Ze=Se(9997);class He extends Ze.AJ{draw3D(De){var F=this;return(0,Te.A)(function*(){F.mode3d=!0;const J=F.getFramePainter(),Y=F.isMainPainter(),ue=F.getHisto();let Q=Promise.resolve(!0);if("resize"===De)Y&&J.resize3D()&&J.render3D();else{const me=F.getPadPainter().getRootPad(!0),X=me?.fLogv??me?.fLogz;let B=1;F.options.minimum!==x.kNoZoom&&F.options.maximum!==x.kNoZoom?(F.zmin=F.options.minimum,F.zmax=F.options.maximum):(F.draw_content||0!==F.gmaxbin)&&(F.zmin=X?.3*F.gminposbin:F.gminbin,F.zmax=F.gmaxbin,B=1+2*x.gStyle.fHistTopMargin),X&&F.zmin<=0&&(F.zmin=1e-5*F.zmax),F.createHistDrawAttributes(!0),Y&&((0,ke.wx)(J),Q=J.create3DScene(F.options.Render3D,F.options.x3dscale,F.options.y3dscale,F.options.Ortho).then(()=>{J.setAxesRanges(ue.fXaxis,F.xmin,F.xmax,ue.fYaxis,F.ymin,F.ymax,ue.fZaxis,F.zmin,F.zmax,F),J.set3DOptions(F.options),J.drawXYZ(J.toplevel,ot.TB,{zmult:B,zoom:x.settings.Zooming,ndim:2,draw:-1!==F.options.Axis,drawany:F.options.isCartesian(),reverse_x:F.options.RevX,reverse_y:F.options.RevY})})),J.mode3d&&(Q=Q.then(()=>{F.draw_content?F.isTH2Poly()?function Re(Ve){const De=Ve.getHisto(),F=Ve.getFramePainter(),J=F.z_handle.getScaleMin(),Y=F.z_handle.getScaleMax(),ue=De.fBins.arr.length,Q=F.grz(J);let me,X,B,$;Ve.maxbin=Ve.gmaxbin,Ve.minbin=Ve.gminbin,Ve.minposbin=Ve.gminposbin;const g=Ve.getContour(!0),E=Ve.getHistPalette();for(B=0;BF.scale_xmax||X.fXmaxF.scale_ymax||X.fYmaxY?Y:X.fContent);const _=[],v=[];let p=1,C=X.fPoly,I=0;C._typename===x.clTMultiGraph&&(p=X.fPoly.fGraphs.arr.length,C=null);for(let V=0;V0)&&(C=X.fPoly.fGraphs.arr[V]);const b=C.fX,P=C.fY;let z,W,T=C.fNpoints;for(;T>2&&b[0]===b[T-1]&&P[0]===P[T-1];)--T;for(let fe=0;fe<2;++fe){let we,Me,je,Ge,lt=F.size_x3d*F.size_z3d;const bt=fe>0?0:lt/1e6;z=[],W=null;for(let te=0;te0&&(lt=(je-we)*(je-we)+(Ge-Me)*(Ge-Me)),lt>bt&&(z.push(new L.I9Y(je,Ge)),we=je,Me=Ge);try{z.length>2&&(W=L.xJ6.triangulateShape(z,[]))}catch{W=null}if(W&&W.length>z.length-3)break}W&&W.length&&z&&(_.push(z),v.push(W),I+=2*W.length,$>Q&&(I+=2*z.length))}const U=new Float32Array(9*I);let k=0;for(let V=0;V<_.length;++V){const b=_[V],P=v[V];for(let T=0;T<2;++T)for(let z=0;zQ)for(let T=0;T0?T-1:b.length-1];U[k]=z.x,U[k+1]=z.y,U[k+2]=Q,k+=3,U[k]=W.x,U[k+1]=W.y,U[k+2]=Q,k+=3,U[k]=W.x,U[k+1]=W.y,U[k+2]=$,k+=3,U[k]=z.x,U[k+1]=z.y,U[k+2]=Q,k+=3,U[k]=W.x,U[k+1]=W.y,U[k+2]=$,k+=3,U[k]=z.x,U[k+1]=z.y,U[k+2]=$,k+=3}}const Z=new L.LoY;Z.setAttribute("position",new L.THS(U,3)),Z.computeVertexNormals();const ee=new L.V9B((0,ve.Bx)(Ve._color_palette?.getColor(me),{vertexColors:!1})),he=new L.eaF(Z,ee);F.add3DMesh(he),he.painter=Ve,he.bins_index=B,he.draw_z0=Q,he.draw_z1=$,he.tip_color=65280,he.tooltip=function(){const V=this.painter,b=V.getFramePainter(),P=V.getObject().fBins.arr[this.bins_index];return{use_itself:!0,x1:b.grx(P.fXmin),x2:b.grx(P.fXmax),y1:b.gry(P.fYmin),y2:b.gry(P.fYmax),z1:this.draw_z0,z2:this.draw_z1,bin:this.bins_index,value:P.fContent,color:this.tip_color,lines:V.getPolyBinTooltips(this.bins_index)}}}}(F):F.options.Contour?(0,ke.SF)(F,!0):F.options.Surf?(0,ke.u$)(F):F.options.Error?(0,ke.s6)(F):(0,ke.CS)(F):F.options.Axis&&F.options.Zscale&&(F.getContourLevels(!0),F.getHistPalette()),J.render3D(),F.updateStatWebCanvas(),J.addKeysHandler()}))}return Y&&(Q=Q.then(()=>F.drawColorPalette(F.options.Zscale&&(12===F.options.Lego||14===F.options.Lego||11===F.options.Surf||12===F.options.Surf))).then(()=>F.drawHistTitle())),Q.then(()=>F.updateFunctions()).then(()=>F)})()}static draw(De,F,J){return(0,Te.A)(function*(){return Ye.mf._drawHist(new He(De,F),J)})()}}},1828:(Yr,mt,Se)=>{"use strict";Se.r(mt),Se.d(mt,{TH3Painter:()=>Ve});var Te=Se(4882),x=Se(8872),L=Se(2923),ve=Se(2843),ke=Se(4483),ot=Se(2866),Ye=Se(3847),Ze=Se(4615),Re=Se(8537),He=Se(8868);class Ve extends Ze.mf{getDimension(){return 3}scanContent(F){if(F&&this.nbinsx&&this.nbinsy&&this.nbinsz)return;const J=this.getHisto();this.extractAxesProperties(3),this.gminbin=this.gmaxbin=J.getBinContent(1,1,1),this.gminposbin=null;for(let Y=0;Ythis.gmaxbin&&(this.gmaxbin=me),me>0&&(null===this.gminposbin||this.gminposbin>me)&&(this.gminposbin=me)}null===this.gminposbin&&this.gmaxbin>0&&(this.gminposbin=1e-4*this.gmaxbin),this.draw_content=0!==this.gmaxbin||0!==this.gminbin,this.transferFunc=this.findFunction(x.clTF1,"TransferFunction"),this.transferFunc&&!this.transferFunc.TestBit((0,x.BIT)(9))&&this.transferFunc.InvertBit((0,x.BIT)(9))}countStat(F,J){const Y=this.getHisto(),ue=Y.fXaxis,Q=Y.fYaxis,me=Y.fZaxis,X=this.getSelectIndex("x","left"),B=this.getSelectIndex("x","right"),$=this.getSelectIndex("y","left"),g=this.getSelectIndex("y","right"),E=this.getSelectIndex("z","left"),_=this.getSelectIndex("z","right"),v=this.getFramePainter(),p={name:Y.fName,entries:0,eff_entries:0,integral:0,meanx:0,meany:0,meanz:0,rmsx:0,rmsy:0,rmsz:0,skewx:0,skewy:0,skewz:0,skewd:0,kurtx:0,kurty:0,kurtz:0,kurtd:0},C=Math.abs(Y.fTsumw)>1e-300&&!v.isAxisZoomed("x")&&!v.isAxisZoomed("y")&&!v.isAxisZoomed("z");let I,U,k,Z,ee,he,V,b,P,T,z=0,W=0,fe=0,we=0,Me=0,je=0,Ge=0,lt=0;for((0,x.isFunc)(F)||(F=null),I=0;IB?2:1,U=0;Ug?2:1,k=0;k_?2:1,(!F||F(Z,he,b))&&(T=Y.getBinContent(I,U,k),p.entries+=T,!C&&1===ee&&1===V&&1===P&&(z+=T,W+=T*T,fe+=Z*T,we+=he*T,Me+=b*T,je+=Z**2*T,Ge+=he**2*T,lt+=b**2*T));if(C&&(z=Y.fTsumw,W=Y.fTsumw2,fe=Y.fTsumwx,je=Y.fTsumwx2,we=Y.fTsumwy,Ge=Y.fTsumwy2,Me=Y.fTsumwz,lt=Y.fTsumwz2),Math.abs(z)>1e-300&&(p.meanx=fe/z,p.meany=we/z,p.meanz=Me/z,p.rmsx=Math.sqrt(Math.abs(je/z-p.meanx*p.meanx)),p.rmsy=Math.sqrt(Math.abs(Ge/z-p.meany*p.meany)),p.rmsz=Math.sqrt(Math.abs(lt/z-p.meanz*p.meanz))),p.integral=z,Y.fEntries>1&&(p.entries=Y.fEntries),p.eff_entries=W?z*z/W:Math.abs(z),J&&!this.isTH2Poly()){let bt=0,te=0,Je=0,tt=0,Fe=0,Ne=0,rt=0,St=0;for(let Bn=X;Bn0?Math.sqrt(6/p.eff_entries):0,rt*Yt!=0&&(p.kurtx=tt/(rt*Yt)-3),rt*qt!=0&&(p.kurty=Fe/(rt*qt)-3),rt*Ot!=0&&(p.kurtz=Ne/(rt*Ot)-3),p.kurtd=p.eff_entries>0?Math.sqrt(24/p.eff_entries):0}return p}fillStatistic(F,J,Y){if(this.isIgnoreStatsFill())return!1;1===J&&(J=1111);const ue=J%10,Q=Math.floor(J/10)%10,me=Math.floor(J/100)%10,X=Math.floor(J/1e3)%10,B=Math.floor(J/1e6)%10,$=Math.floor(J/1e7)%10,g=Math.floor(J/1e8)%10,E=this.countStat(void 0,$>0||g>0);return F.clearPave(),ue>0&&F.addText(E.name),Q>0&&F.addText("Entries = "+F.format(E.entries,"entries")),me>0&&(F.addText("Mean x = "+F.format(E.meanx)),F.addText("Mean y = "+F.format(E.meany)),F.addText("Mean z = "+F.format(E.meanz))),X>0&&(F.addText("Std Dev x = "+F.format(E.rmsx)),F.addText("Std Dev y = "+F.format(E.rmsy)),F.addText("Std Dev z = "+F.format(E.rmsz))),B>0&&F.addText("Integral = "+F.format(E.integral,"entries")),2===$?(F.addText(`Skewness x = ${F.format(E.skewx)} #pm ${F.format(E.skewd)}`),F.addText(`Skewness y = ${F.format(E.skewy)} #pm ${F.format(E.skewd)}`),F.addText(`Skewness z = ${F.format(E.skewz)} #pm ${F.format(E.skewd)}`)):$>0&&(F.addText(`Skewness x = ${F.format(E.skewx)}`),F.addText(`Skewness y = ${F.format(E.skewy)}`),F.addText(`Skewness z = ${F.format(E.skewz)}`)),2===g?(F.addText(`Kurtosis x = ${F.format(E.kurtx)} #pm ${F.format(E.kurtd)}`),F.addText(`Kurtosis y = ${F.format(E.kurty)} #pm ${F.format(E.kurtd)}`),F.addText(`Kurtosis z = ${F.format(E.kurtz)} #pm ${F.format(E.kurtd)}`)):g>0&&(F.addText(`Kurtosis x = ${F.format(E.kurtx)}`),F.addText(`Kurtosis y = ${F.format(E.kurty)}`),F.addText(`Kurtosis z = ${F.format(E.kurtz)}`)),Y&&F.fillFunctionStat(this.findFunction(x.clTF3),Y,3),!0}getBinTooltips(F,J,Y){const ue=[],Q=this.getHisto();ue.push(this.getObjectHint(),`x = ${this.getAxisBinTip("x",Q.fXaxis,F)} xbin=${F+1}`,`y = ${this.getAxisBinTip("y",Q.fYaxis,J)} ybin=${J+1}`,`z = ${this.getAxisBinTip("z",Q.fZaxis,Y)} zbin=${Y+1}`);const me=Q.getBinContent(F+1,J+1,Y+1);if(me===Math.round(me)?ue.push(`entries = ${me}`):ue.push(`entries = ${(0,ve.lg)(me,x.gStyle.fStatFormat)}`),this.matchObjectType(x.clTProfile3D)){const X=Q.getBinError(Q.getBin(F+1,J+1,Y+1));ue.push("error = "+(X===Math.round(X)?X.toString():(0,ve.lg)(X,x.gStyle.fPaintTextFormat)))}return ue}draw3DScatter(){const F=this.getObject(),J=this.getFramePainter(),Y=this.getSelectIndex("x","left",.5),ue=this.getSelectIndex("x","right",0),Q=this.getSelectIndex("y","left",.5),me=this.getSelectIndex("y","right",0),X=this.getSelectIndex("z","left",.5),B=this.getSelectIndex("z","right",0);let $,g,E,_;if(ue<=Y||me<=Q||B<=X)return Promise.resolve(!0);const v=this.gmaxbin>1e3?1e3/this.gmaxbin:1,p=Math.max(0,this.gminbin);let C=0,I=0;for($=Y;$(J.webgl?1e5:3e4))return!1;const U=new Ye._l(C,J.webgl,J.size_x3d/200),k=new Int32Array(C),Z=new ve.YF(I);let ee=0;for($=Y;$(J.add3DMesh(he),he.bins=k,he.painter=this,he.tip_color=3===F.fMarkerColor?16711680:65280,he.tooltip=function(V){const b=Math.floor(V.index/this.nvertex);if(b<0||b>=this.bins.length)return null;const P=this.painter,T=P.getHisto(),z=P.getFramePainter(),W=P.get3DToolTip(this.bins[b]);return W.x1=z.grx(T.fXaxis.GetBinLowEdge(W.ix)),W.x2=z.grx(T.fXaxis.GetBinLowEdge(W.ix+1)),W.y1=z.gry(T.fYaxis.GetBinLowEdge(W.iy)),W.y2=z.gry(T.fYaxis.GetBinLowEdge(W.iy+1)),W.z1=z.grz(T.fZaxis.GetBinLowEdge(W.iz)),W.z2=z.grz(T.fZaxis.GetBinLowEdge(W.iz+1)),W.color=this.tip_color,W.opacity=.3,W},!0))}draw3DBins(){var F=this;return(0,Te.A)(function*(){if(!F.draw_content)return!1;let J=F.options.Box?F.options.BoxStyle:0;if(!J&&F.options.Scat){const yn=F.draw3DScatter();if(!1!==yn)return yn;J=12}else!J&&!F.options.GLBox&&!F.options.GLColor&&!F.options.Lego&&(J=12);const Y=F.getHisto(),ue=F.getFramePainter();let p,C,Q=0,me=!1,X=!1,B=!1,$=1,g=-1,E=F.getPadPainter()?.getRootPad()?.fLogv,_=!0,v=0,I=F.getColor(Y.fFillColor),U=.5;if(!J&&F.options.Lego&&(J=1===F.options.Lego?10:F.options.Lego),11===F.options.GLBox||12===F.options.GLBox){U=.4,me=!0,12===F.options.GLBox&&(B=!0);const yn=ue.webgl?new L.Gu$(.5,16,12):new L.Gu$(.5,8,6);yn.applyMatrix4((new L.kn4).makeRotationX(Math.PI/2)),yn.computeVertexNormals();const Sn=yn.getIndex().array,ii=yn.getAttribute("position").array,ai=yn.getAttribute("normal").array;Q=3*Sn.length,p=new Float32Array(Q),C=new Float32Array(Q);for(let zi=0;ziF.gminposbin?(v=Math.log(F.gminposbin)-.1,_=1/(Math.log(F.gmaxbin)-v)):(E=0,_=1):_&&(_=F.gminbin||F.gmaxbin?1/Math.max(Math.abs(F.gminbin),Math.abs(F.gmaxbin)):1);const k=yn=>{if(g>=0&&yn{const Sn=3*(0,He.getTF1Value)(Ne,tt,!1);return!Sn||Sn<0||Sn>=1?yn:yn+1e4*Math.round(200*Sn)};for(lt=Z;lt65520?2:1),pt[Sn]=new Float32Array(Ge*Q),st[Sn]=new Float32Array(Ge*Q),vt[Sn]=new Int32Array(Ge),1===Yt[Sn]&&(qt[Sn]=new Uint16Array(Ge*Ye.DJ.MeshSegments.length)),2===Yt[Sn]&&(Ot[Sn]=new Float32Array(Ge*Ye.DJ.Segments.length*3))}let Bn,Mn,bn,Dn,$n,Cn;for(lt=Z;lt1e4&&(ai=Math.floor(yn/1e4)/200));const zi=me?new L.G_z({color:I,opacity:ai,transparent:ai<1,vertexColors:!1}):new L.V9B({color:I,opacity:ai,transparent:ai<1,vertexColors:!1}),ti=new L.eaF(ii,zi);if(ti.bins=vt[Sn],ti.bins_faces=Q/9,ti.painter=F,ti.scalex=U*T,ti.scaley=U*z,ti.scalez=U*W,ti.tip_color=3===Y.fFillColor?16711680:65280,ti.get_weight=k,ti.tooltip=function(Lr){const ss=Math.floor(Lr.faceIndex/this.bins_faces);if(ss<0||ss>=this.bins.length)return null;const Bs=this.painter,yo=Bs.getHisto(),xt=Bs.getFramePainter(),K=Bs.get3DToolTip(this.bins[ss]),ge=xt.grx(yo.fXaxis.GetBinCoord(K.ix-.5)),ye=xt.gry(yo.fYaxis.GetBinCoord(K.iy-.5)),Pe=xt.grz(yo.fZaxis.GetBinCoord(K.iz-.5)),At=this.get_weight(K.value);return K.x1=ge-this.scalex*At,K.x2=ge+this.scalex*At,K.y1=ye-this.scaley*At,K.y2=ye+this.scaley*At,K.z1=Pe-this.scalez*At,K.z2=Pe+this.scalez*At,K.color=this.tip_color,K},ue.add3DMesh(ti),Yt[Sn]>0){const Lr=new L.mrM({color:F.getColor(Y.fLineColor)}),ss=1===Yt[Sn]?(0,Ye.Fc)(pt[Sn],Lr,qt[Sn]):(0,Ye.Fc)(Ot[Sn],Lr);ue.add3DMesh(ss)}}return!0})()}redraw(F){var J=this;return(0,Te.A)(function*(){const Y=J.getFramePainter(),ue=J.getHisto();let Q=Promise.resolve(!0);return"resize"===F?Y.resize3D()&&Y.render3D():((0,Re.wx)(Y),Q=Y.create3DScene(J.options.Render3D,J.options.x3dscale,J.options.y3dscale,J.options.Ortho).then(()=>(Y.setAxesRanges(ue.fXaxis,J.xmin,J.xmax,ue.fYaxis,J.ymin,J.ymax,ue.fZaxis,J.zmin,J.zmax,J),Y.set3DOptions(J.options),Y.drawXYZ(Y.toplevel,ot.TB,{zoom:x.settings.Zooming,ndim:3,draw:-1!==J.options.Axis,drawany:J.options.isCartesian()}),J.draw3DBins())).then(()=>{Y.render3D(),J.updateStatWebCanvas(),Y.addKeysHandler()})),J.isMainPainter()&&(Q=Q.then(()=>J.drawColorPalette(J.options.Zscale&&(12===J._box_option||13===J._box_option))).then(()=>J.drawHistTitle())),Q.then(()=>J.updateFunctions()).then(()=>J)})()}fillToolbar(){const F=this.getPadPainter();F&&(F.addPadButton("auto_zoom","Unzoom all axes","ToggleZoom","Ctrl *"),this.draw_content&&F.addPadButton("statbox","Toggle stat box","ToggleStatBox"),F.showPadButtons())}canZoomInside(F,J,Y){let ue=this.getHisto();return ue&&(ue=ue[`f${F.toUpperCase()}axis`]),!ue||ue.FindBin(Y,.5)-ue.FindBin(J,0)>1}autoZoom(){const F=this.getSelectIndex("x","left"),J=this.getSelectIndex("x","right"),Y=this.getSelectIndex("y","left"),ue=this.getSelectIndex("y","right"),Q=this.getSelectIndex("z","left"),me=this.getSelectIndex("z","right"),X=this.getObject();let B,$,g;if(F===J||Y===ue||Q===me)return;let E=X.getBinContent(F+1,Y+1,Q+1);for(B=F;B0)return;let _=J,v=F,p=ue,C=Y,I=me,U=Q;for(B=F;BE&&(B<_&&(_=B),B>=v&&(v=B+1),$=C&&(C=$+1),g=U&&(U=g+1));let k,Z,ee,he,V,b,P=!1;return _===v-1&&_>F+1&&vY+1&&CQ+1&&UF||vY||CQ||U{if(0===Y.indexOf(x.kInspect))return this.showInspector(Y);this.decodeOptions(Y),this.interactiveRedraw(!0,"drawopt")})}static draw(F,J,Y){return(0,Te.A)(function*(){const ue=new Ve(F,J);return ue.mode3d=!0,(0,ke.ensureTCanvas)(ue,"3d").then(()=>(ue.setAsMainPainter(),ue.decodeOptions(Y),ue.checkPadRange(),ue.scanContent(),ue.createStat(),ue.redraw())).then(()=>ue.drawFunctions()).then(()=>(ue.fillToolbar(),ue))})()}}},5891:(Yr,mt,Se)=>{"use strict";Se.r(mt),Se.d(mt,{TPavePainter:()=>F});var Te=Se(4882),x=Se(8872),L=Se(8362),ve=Se(6983),ke=Se(2843),ot=Se(1922),Ye=Se(7900),Ze=Se(2866),Re=Se(5638),He=Se(4483);const Ve=(0,x.BIT)(17);class F extends ot.JW{constructor(Y,ue){super(Y,ue),this.Enabled=!0,this.UseContextMenu=!0}autoPlaceLegend(Y,ue,Q){var me=this;return(0,Te.A)(function*(){let B=me.getFrameSvg().selectChild(".main_layer").node().outerHTML;B=(0,ke.NM)(B),B='{if(!v)return!1;let p=100,C=100;const U=v.getContext("2d").getImageData(0,0,v.width,v.height).data,k=Math.floor(v.width/p),Z=Math.floor(v.height/C),ee=new Array(p*C);U.length!==v.width*v.height*4&&(console.log(`Image size missmatch in TLegend autoplace ${U.length} expected ${v.width*v.height*4}`),p=C=0);for(let z=0;z{for(let fe=z;fe=0;--W)if(T(z,W))return Y.fX1NDC=$+z/p*(1-$-g),Y.fX2NDC=Y.fX1NDC+he*(1-$-g),Y.fY2NDC=1-E-W/C*(1-_-E),Y.fY1NDC=Y.fY2NDC-V*(1-_-E),!0}).then(v=>{if(v||Q)return v;Y.fX1NDC=Math.max($??0,Y.fX2NDC-.3),Y.fX2NDC=Math.min(Y.fX1NDC+.3,1-g);const p=Math.max(Y.fPrimitives?.05*Y.fPrimitives.arr.length:0,.2);return Y.fY2NDC=Math.min(1-E,Y.fY1NDC+p),Y.fY1NDC=Math.max(Y.fY2NDC-p,_),!0})})()}drawPave(Y){var ue=this;return(0,Te.A)(function*(){if(!ue.Enabled)return ue.removeG(),ue;const Q=ue.getObject(),me=Q.fOption.toUpperCase(),X=ue.getFramePainter(),B=ue.getPadPainter(),$=B.getRootPad(!0);let g,E,_;0===Q.fInit&&(ue.stored=Object.assign({},Q),Q.fInit=1,Q._typename!==x.clTPaletteAxis||Q.fX1||Q.fX2||Q.fY1||Q.fY2?me.indexOf("NDC")>=0?(Q.fX1NDC=Q.fX1,Q.fX2NDC=Q.fX2,Q.fY1NDC=Q.fY1,Q.fY2NDC=Q.fY2):$&&0===$.fX1&&1===$.fX2&&0===$.fY1&&1===$.fY2&&(0,x.isStr)(Y)&&Y.indexOf("postpone")>=0?(Q.fInit=0,Q.fX1NDC=Q.fY1NDC=.99,Q.fX2NDC=Q.fY2NDC=1):$?($.fLogx&&(Q.fX1>0&&(Q.fX1=Math.log10(Q.fX1)),Q.fX2>0&&(Q.fX2=Math.log10(Q.fX2))),$.fLogy&&(Q.fY1>0&&(Q.fY1=Math.log10(Q.fY1)),Q.fY2>0&&(Q.fY2=Math.log10(Q.fY2))),Q.fX1NDC=(Q.fX1-$.fX1)/($.fX2-$.fX1),Q.fY1NDC=(Q.fY1-$.fY1)/($.fY2-$.fY1),Q.fX2NDC=(Q.fX2-$.fX1)/($.fX2-$.fX1),Q.fY2NDC=(Q.fY2-$.fY1)/($.fY2-$.fY1)):(Q.fX1NDC=Q.fY1NDC=.1,Q.fX2NDC=Q.fY2NDC=.9):X?(Q.fX1NDC=X.fX2NDC+.01,Q.fX2NDC=Math.min(.96,X.fX2NDC+.06),Q.fY1NDC=X.fY1NDC,Q.fY2NDC=X.fY2NDC):(Q.fX2NDC=.8,Q.fX1NDC=.9,Q.fY1NDC=.1,Q.fY2NDC=.9));let v=Promise.resolve(!0);return Q._typename===x.clTLegend&&(ue.AutoPlace||Q.fX1NDC===Q.fX2NDC&&Q.fY1NDC===Q.fY2NDC)&&(v=ue.autoPlaceLegend(Q,$).then(p=>(delete ue.AutoPlace,p||(Q.fX1NDC=X.fX2NDC-.2,Q.fX2NDC=X.fX2NDC,Q.fY1NDC=X.fY2NDC-.1,Q.fY2NDC=X.fY2NDC),p))),v.then(()=>{if(ue.isStats()&&!ue.NoFillStats&&!B._fast_drawing){const Z=Q.$main_painter||ue.getMainPainter();if((0,x.isFunc)(Z?.fillStatistic)){let ee=parseInt(Q.fOptStat),he=parseInt(Q.fOptFit);if((!Number.isInteger(ee)||Q.TestBit(Ve))&&(ee=x.gStyle.fOptStat),(!Number.isInteger(he)||Q.TestBit(Ve))&&(he=x.gStyle.fOptFit),Z.fillStatistic(ue,ee,he)){let V=Q.fLines?.arr.length||0;if(V>0&&!ue.moved_interactive&&function De(J){const Y=(ue,Q)=>Math.abs(ue-Q)<.001;return Y(J.fX1NDC,x.gStyle.fStatX-x.gStyle.fStatW)&&Y(J.fY1NDC,x.gStyle.fStatY-x.gStyle.fStatH)&&Y(J.fX2NDC,x.gStyle.fStatX)&&Y(J.fY2NDC,x.gStyle.fStatY)}(Q)){const b=ue._has_fit&&ue._fit_dim>1?x.gStyle.fStatH:0;b&&(V-=ue._fit_cnt);let P=x.gStyle.fStatH,T=x.gStyle.fStatW;ue._has_fit&&(T=1.8*x.gStyle.fStatW),x.gStyle.fStatFontSize<=0||x.gStyle.fStatFont%10==3?P=.25*V*x.gStyle.fStatH:x.gStyle.fStatFontSize<1&&(P=V*x.gStyle.fStatFontSize),Q.fX1NDC=Math.max(.02,Q.fX2NDC-T),Q.fY1NDC=Math.max(.02,Q.fY2NDC-P-b)}}}}const p=B.getPadRect(),C=Q.fBorderSize,I=me.indexOf("NB")>=0,U=me.indexOf("L")>=0?-1:me.indexOf("R")>=0?1:0,k=me.indexOf("T")>=0?-1:me.indexOf("B")>=0?1:0;if(ue.createG(),ue._pave_x=Math.round(Q.fX1NDC*p.width),ue._pave_y=Math.round((1-Q.fY2NDC)*p.height),E=Math.round((Q.fX2NDC-Q.fX1NDC)*p.width),_=Math.round((Q.fY2NDC-Q.fY1NDC)*p.height),(0,ke.bk)(ue.draw_g,ue._pave_x,ue._pave_y),ue.createAttLine({attr:Q,width:C>0?Q.fLineWidth:0}),ue.createAttFill({attr:Q}),Q._typename===x.clTDiamond){const Z=Math.round(_/2),ee=Math.round(E/2),he=`l${ee},${-Z}l${ee},${Z}l${-ee},${Z}z`;C>1&&Q.fShadowColor>0&&(U||k)&&!ue.fillatt.empty()&&!I&&ue.draw_g.append("svg:path").attr("d","M0,"+(Z+C)+he).style("fill",ue.getColor(Q.fShadowColor)).style("stroke",ue.getColor(Q.fShadowColor)).style("stroke-width","1px"),g=ue.draw_g.append("svg:path").attr("d","M0,"+Z+he).call(ue.fillatt.func).call(ue.lineatt.func);const V=ue.draw_g.append("svg:g");return(0,ke.bk)(V,Math.round(E/4),Math.round(_/4)),ue.drawPaveText(ee,Z,Y,V)}if(C>1&&Q.fShadowColor>0&&!Q.fNpaves&&(U||k)&&!I){const Z=ue.getColor(Q.fShadowColor);let ee="";ee=U<0&&k<0?`M0,0v${_-C}h${-C}v${-_}h${E}v${C}z`:U<0&&k>0?`M0,${_}v${C-_}h${-C}v${_}h${E}v${-C}z`:U>0&&k<0?`M${C},0v${-C}h${E}v${_}h${-C}v${C-_}z`:`M${E},${C}h${C}v${_}h${-E}v${-C}h${E-C}z`,ue.draw_g.append("svg:path").attr("d",ee).style("fill",Z).style("stroke",Z).style("stroke-width","1px")}if(Q.fNpaves)for(let Z=Q.fNpaves-1;Z>0;--Z)ue.draw_g.append("svg:path").attr("d",`M${4*U*Z},${4*k*Z}h${E}v${_}h${-E}z`).call(ue.fillatt.func).call(ue.lineatt.func);return(!ue.isBatchMode()||!ue.fillatt.empty()||!ue.lineatt.empty()&&!I)&&(g=ue.draw_g.append("svg:path").attr("d",`M0,0H${E}V${_}H0Z`).call(ue.fillatt.func),I||g.call(ue.lineatt.func)),!(0,x.isFunc)(ue.paveDrawFunc)||ue.paveDrawFunc(E,_,Y)}).then(()=>(ue.isBatchMode()||Q._typename===x.clTPave||(g&&g.style("pointer-events","visibleFill").on("mouseenter",()=>ue.showObjectStatus()),(0,Re.WJ)(ue,{obj:Q,x:ue._pave_x,y:ue._pave_y,width:E,height:_,minwidth:10,minheight:20,canselect:!0,redraw:()=>{ue.moved_interactive=!0,ue.interactiveRedraw(!1,"pave_moved"),ue.drawPave()},ctxmenu:x.browser.touches&&x.settings.ContextMenu&&ue.UseContextMenu}),ue.UseContextMenu&&x.settings.ContextMenu&&ue.draw_g.on("contextmenu",p=>ue.paveContextMenu(p)),Q._typename===x.clTPaletteAxis&&ue.interactivePaletteAxis(E,_)),ue))})()}fillWebObjectOptions(Y){const ue=this.getObject();return ue?.fInit&&(Y.fcust="pave",Y.fopt=[ue.fX1NDC,ue.fY1NDC,ue.fX2NDC,ue.fY2NDC],"stats"===ue.fName&&this.isStats()&&ue.fLines.arr.forEach(Q=>{(Q._typename===x.clTText||Q._typename===x.clTLatex)&&(Y.fcust+=`;;${Q.fTitle}`)})),Y}drawPaveLabel(Y,ue){var Q=this;return(0,Te.A)(function*(){const me=Q.getObject();return me.fLabel&&me.fLabel.trim()?(Q.createAttText({attr:me}),Q.startTextDrawing(Q.textatt.font,ue/1.2),Q.drawText(Q.textatt.createArg({width:Y,height:ue,text:me.fLabel,norotate:!0})),Q.finishTextDrawing()):Q})()}drawPaveStats(Y,ue){const Q=this.getObject(),me=[],X=[];let B=0,$=0,g=0;for(let I=0;I0&&(g=Math.max(g,U.length)),0===I||U.indexOf("|")<0)continue;0===B&&(B=I);const k=U.split("|");k.length>$&&($=k.length)}const _=ue/E,v=Q.fMargin*Y;let p=!1;if(this.createAttText({attr:Q}),this.startTextDrawing(this.textatt.font,ue/(1.2*E)),1===E)this.drawText(this.textatt.createArg({width:Y,height:ue,text:me[0],latex:1,norotate:!0}));else for(let I=0;I1?this.getColor(X[I]):this.textatt.color;if(B&&I>=B){const Z=me[I].split("|");for(let ee=0;ee0&&p&&(C+=`M0,${Math.round(_)}h${Y}`),B>0&&$>1){for(let I=B;I1)}drawPaveText(Y,ue,Q,me){const X=this.getObject(),B=X.fLines?.arr||[],$=B.length,g=this.getPadPainter(),E=g.getPadHeight(),_=X.fLabel.length>0,v=[],p=X.fMargin*Y,C=ue/($||1);let I=0;this.createAttText({attr:X}),1===$&&this.textatt.size>0&&(I=Math.max(3,this.textatt.getSize(E))),me||(me=this.draw_g);const U=1===$&&g._fast_drawing;let k=0;for(let Z=0;Z<$;++Z){const ee=B[Z],he=Z*C;switch(ee._typename){case x.clTText:case x.clTLatex:{if(!ee.fTitle||!ee.fTitle.trim())continue;let V=ee.fTextColor?this.getColor(ee.fTextColor):"";if(V||(V=this.textatt.color),ee.fX||ee.fY||ee.fTextSize){const b=ee.fTextAlign||this.textatt.align,P=Math.floor(b/10),T=b%10,z=ee.fX?ee.fX*Y:1===P?p:2===P?Y/2:Y-p,W=ee.fY?(1-ee.fY)*ue:he+(2===T?C/2:3===T?C:0),fe=me.append("svg:g");this.startTextDrawing(this.textatt.font,this.textatt.getAltSize(ee.fTextSize,E),fe),this.drawText({align:b,x:z,y:W,text:ee.fTitle,color:V,latex:ee._typename===x.clTText?0:1,draw_g:fe,fast:U}),v.push(this.finishTextDrawing(fe))}else 0==k++&&this.startTextDrawing(this.textatt.font,.85*ue/$,me,I),this.drawText({x:p,y:he,width:Y-2*p,height:C,align:ee.fTextAlign||this.textatt.align,draw_g:me,latex:ee._typename===x.clTText?0:1,text:ee.fTitle,color:V,fast:U});break}case x.clTLine:{const V=ee.fX1?Math.round(ee.fX1*Y):0,b=ee.fX2?Math.round(ee.fX2*Y):Y,P=ee.fY1?Math.round((1-ee.fY1)*ue):Math.round(he+.5*C),T=ee.fY2?Math.round((1-ee.fY2)*ue):Math.round(he+.5*C),z=this.createAttLine(ee);me.append("svg:path").attr("d",`M${V},${P}L${b},${T}`).call(z.func);break}case x.clTBox:{const V=ee.fX1?Math.round(ee.fX1*Y):0,b=ee.fX2?Math.round(ee.fX2*Y):Y,P=ee.fY1?Math.round((1-ee.fY1)*ue):Math.round(he),T=ee.fY2?Math.round((1-ee.fY2)*ue):Math.round(he+C),z=this.createAttFill(ee);me.append("svg:path").attr("d",`M${V},${P}H${b}V${T}H${V}Z`).call(z.func);break}}}if(k>0&&v.push(this.finishTextDrawing(me,k>1)),_){const Z=Math.round(.25*Y),ee=Math.round(.02*-ue),he=Math.round(.5*Y),V=Math.round(.04*ue),b=me.append("svg:g");b.append("svg:path").attr("d",`M${Z},${ee}h${he}v${V}h${-he}z`).call(this.fillatt.func).call(this.lineatt.func),this.startTextDrawing(this.textatt.font,V/1.5,b),this.drawText({align:22,x:Z,y:ee,width:he,height:V,text:X.fLabel,color:this.textatt.color,draw_g:b}),v.push(this.finishTextDrawing(b))}return Promise.all(v).then(()=>this)}format(Y,ue){ue||(ue="stat");const Q=this.getObject();switch(ue){case"stat":ue=Q.fStatFormat||x.gStyle.fStatFormat;break;case"fit":ue=Q.fFitFormat||x.gStyle.fFitFormat;break;case"entries":if(Math.abs(Y)<1e9&&Math.round(Y)===Y)return Y.toFixed(0);ue="14.7g";break;case"last":ue=this.lastformat}const me=(0,ke.lg)(Y,ue||"6.4g",!0);return this.lastformat=me[1],me[0]}drawLegend(Y,ue){const Q=this.getObject(),me=Q.fPrimitives.arr.length;let X=Q.fNColumns,B=me,$=!1,g=!1;if(X<2)X=1;else for(;(B-1)*X>=me;)B--;const E=V=>!(V.fObject||V.fOption||V.fLabel&&" "!==V.fLabel);for(let V=0;V1){const V=new Array(X).fill(1);for(let P=0;P1&&(Ot=Math.max(Ot,8*bt.fMarkerSize*.66)));const Bn=3===qt?.03:0,Mn=Math.round(Ge+C*(.1+Bn)),bn=Math.round(Ge+C*(.9-Bn)),Dn=Math.round(.66*Ot);Ot=Math.round(Ot);let $n=`M${je},${Mn}V${bn}`;switch(qt){case 1:$n+=`M${je-Ot},${Mn}h${2*Ot}M${je-Ot},${bn}h${2*Ot}`;break;case 2:$n+=`M${je-Ot},${Mn+Dn}v${-Dn}h${2*Ot}v${Dn}M${je-Ot},${bn-Dn}v${Dn}h${2*Ot}v${-Dn}`;break;case 3:$n+=`M${je-Ot},${Mn}h${2*Ot}l${-Ot},${-Dn}zM${je-Ot},${bn}h${2*Ot}l${-Ot},${Dn}z`;break;case 4:$n+=`M${je-Ot},${Mn+Dn}l${Ot},${-Dn}l${Ot},${Dn}M${je-Ot},${bn-Dn}l${Ot},${Dn}l${Ot},${-Dn}`}this.draw_g.append("svg:path").attr("d",$n).call(Yt.func).style("fill",qt>1?"none":null)}}if(Fe){const Yt=pt?.markeratt?.used?pt.markeratt:this.createAttMarker(rt);Yt.empty()||(st=!0,this.draw_g.append("svg:path").attr("d",Yt.create((fe+Me)/2,lt)).call(Yt.func))}!st&&pt?.lineatt&&!pt.lineatt.empty()&&this.draw_g.append("svg:path").attr("d",`M${fe+v},${Math.round(Ge+.1*C)}v${Math.round(.8*C)}h${Me-2*v-fe}v${-Math.round(.8*C)}z`).style("fill","none").call(pt.lineatt.func);let vt=Me;if((0,x.isStr)(T)&&"h"!==T.toLowerCase()?ee=!0:ee||(vt=fe+v),P.fLabel){let Yt=this.draw_g;const qt=this.createAttText({attr:P,std:!1,attr_alt:Q});if(g){Yt=this.draw_g.append("svg:g");const Ot=qt.getSize(U.getPadHeight());this.startTextDrawing(qt.font,Ot,Yt,Z)}this.drawText({draw_g:Yt,align:qt.align,x:vt,y:Ge,scale:g&&!P.fTextSize||!Q.fTextSize,width:fe+we-vt-v,height:C,text:P.fLabel,color:qt.color}),g&&I.push(this.finishTextDrawing(Yt))}}return $&&!g&&I.push(this.finishTextDrawing()),Promise.all(I)}drawPaletteAxis(Y,ue,Q){const me=this.getObject(),X=me.fAxis,B=(0,x.isStr)(Q)&&Q.indexOf("can_move")>=0,$=(0,x.isStr)(Q)&&Q.indexOf("postpone")>=0,g=(0,x.isStr)(Q)&&Q.indexOf("cjust")>=0,E=this.getPadPainter(),_=E.getPadWidth(),v=E.getPadHeight(),p=E.getRootPad(!0),C=me.$main_painter||this.getMainPainter(),I=this.getFramePainter(),U=C.fContour,k=U?.getLevels(),Z=(0,x.isFunc)(C.getDimension)&&3===C.getDimension(),ee=(Z?p?.fLogv:p?.fLogz)??0,he=C._color_palette,V=C.getObject()?.fZaxis,b=p?.fTickz?.35:.7;let z,W,P=0,T=100,fe="",we=0;if(this._palette_vertical=me.fX2NDC-me.fX1NDC.5,this.z_handle.configureAxis("zaxis",z,W,P,T,!1,[0,Y],{log:ee,fixed_ticks:g?k:null,maxTickSize:Math.round(ue*b),swap_side:this._swap_side}),fe=this._swap_side?null:`translate(0,${ue})`,p?.fTickz&&(we=this._swap_side?ue:-ue)),U&&he&&!$)for(let Me=0;Me=ue||je<0)continue;je+=1,je>ue?(je=ue,lt=.001*k[Me]+.999*k[Me+1]):Ge<0&&(Ge=0,lt=.999*k[Me]+.001*k[Me+1]),bt=`M0,${Ge}H${Y}V${je}H0Z`}else{if(je>=Y||Ge<0)continue;Ge+=1,Ge>Y?(Ge=Y,lt=.999*k[Me]+.001*k[Me+1]):je<0&&(je=0,lt=.001*k[Me]+.999*k[Me+1]),bt=`M${je},0V${ue}H${Ge}V0Z`}const te=U.getPaletteColor(he,lt);if(!te)continue;const Je=this.draw_g.append("svg:path").attr("d",bt).style("fill",te).property("fill0",te).property("fill1",(0,L.Qh)(te).darker(.5).formatHex());this.isTooltipAllowed()&&Je.on("mouseover",function(){(0,L.Lt)(this).transition().duration(100).style("fill",(0,L.Lt)(this).property("fill1"))}).on("mouseout",function(){(0,L.Lt)(this).transition().duration(100).style("fill",(0,L.Lt)(this).property("fill0"))}).append("svg:title").text(k[Me].toFixed(2)+" - "+k[Me+1].toFixed(2)),x.settings.Zooming&&Je.on("dblclick",()=>this.getFramePainter().unzoom("z"))}else this.draw_g.append("svg:path").attr("d",`M0,0H${Y}V${ue}H0Z`).style("fill","white");return this.z_handle.drawAxis(this.draw_g,Y,ue,fe,we).then(()=>{if(B&&"getBoundingClientRect"in this.draw_g.node()){const Me=this.draw_g.node().getBoundingClientRect();if(this._palette_vertical){const je=this._pave_x+parseInt(Me.width)-Math.round(.995*_)+3;je>0&&(this._pave_x-=je,(0,ke.bk)(this.draw_g,this._pave_x,this._pave_y),me.fX1NDC-=je/_,me.fX2NDC-=je/_)}else{const je=Math.round((1.05-x.gStyle.fTitleY)*v)-Me.y;je>0&&(this._pave_y+=je,(0,ke.bk)(this.draw_g,this._pave_x,this._pave_y),me.fY1NDC-=je/v,me.fY2NDC-=je/v)}}return this})}interactivePaletteAxis(Y,ue){let Q=!1,me=0,X=0,B=null;const $=_=>{if(!Q)return;_.preventDefault();const v=(0,L.Wn)(_,this.draw_g.node());this._palette_vertical?(X=Math.min(Math.max(v[1],0),ue),B.attr("y",Math.min(me,X)).attr("height",Math.abs(X-me))):(X=Math.min(Math.max(v[0],0),Y),B.attr("x",Math.min(me,X)).attr("width",Math.abs(X-me)))},g=_=>{if(!Q)return;_.preventDefault(),(0,L.Lt)(window).on("mousemove.colzoomRect",null).on("mouseup.colzoomRect",null),B.remove(),B=null,Q=!1;const v=this.z_handle.gr,p=v.invert(me),C=v.invert(X);this.getFramePainter().zoom("z",Math.min(p,C),Math.max(p,C))};x.settings.Zooming&&this.draw_g.selectAll(".axis_zoom").on("mousedown",_=>{if(Q)return;Q=!0,_.preventDefault(),_.stopPropagation();const v=(0,L.Wn)(_,this.draw_g.node());B=this.draw_g.append("svg:rect").attr("id","colzoomRect").call(ke.Ru,!0),this._palette_vertical?(me=X=v[1],B.attr("x","0").attr("width",Y).attr("y",me).attr("height",1)):(me=X=v[0],B.attr("x",me).attr("width",1).attr("y",0).attr("height",ue)),(0,L.Lt)(window).on("mousemove.colzoomRect",$).on("mouseup.colzoomRect",g,!0)}).on("dblclick",()=>this.getFramePainter().unzoom("z")),x.settings.ZoomWheel&&this.draw_g.on("wheel",_=>{const v=(0,L.Wn)(_,this.draw_g.node()),C=this.z_handle.analyzeWheelEvent(_,this._palette_vertical?1-v[1]/ue:v[0]/Y);C?.changed&&this.getFramePainter().zoom("z",C.min,C.max)})}fillContextMenuItems(Y){const ue=this.getObject();if(this.isStats()){Y.add("Default position",()=>{ue.fX2NDC=x.gStyle.fStatX,ue.fX1NDC=ue.fX2NDC-x.gStyle.fStatW,ue.fY2NDC=x.gStyle.fStatY,ue.fY1NDC=ue.fY2NDC-x.gStyle.fStatH,ue.fInit=1,this.interactiveRedraw(!0,"pave_moved")}),Y.add("Save to gStyle",()=>{x.gStyle.fStatX=ue.fX2NDC,x.gStyle.fStatW=ue.fX2NDC-ue.fX1NDC,x.gStyle.fStatY=ue.fY2NDC,x.gStyle.fStatH=ue.fY2NDC-ue.fY1NDC,this.fillatt?.saveToStyle("fStatColor","fStatStyle"),x.gStyle.fStatTextColor=ue.fTextColor,x.gStyle.fStatFontSize=ue.fTextSize,x.gStyle.fStatFont=ue.fTextFont},"Store stats position and graphical attributes to gStyle"),Y.add("SetStatFormat",()=>{Y.input("Enter StatFormat",ue.fStatFormat).then(me=>{me&&(ue.fStatFormat=me,this.interactiveRedraw(!0,`exec:SetStatFormat("${me}")`))})}),Y.add("SetFitFormat",()=>{Y.input("Enter FitFormat",ue.fFitFormat).then(me=>{me&&(ue.fFitFormat=me,this.interactiveRedraw(!0,`exec:SetFitFormat("${me}")`))})}),Y.add("separator"),Y.add("sub:SetOptStat",()=>{Y.input("Enter OptStat",ue.fOptStat,"int").then(me=>{ue.fOptStat=me,this.interactiveRedraw(!0,`exec:SetOptStat(${me})`)})});const Q=(me,X)=>{let B=me<10?ue.fOptStat:ue.fOptFit;B=parseInt(parseInt(B)/parseInt(Math.pow(10,me%10)))%10,Y.addchk(B,X,100*B+me,$=>{const g=parseInt($/100);let E=$%100<10?ue.fOptStat:ue.fOptFit;E-=(g>0?g:-1)*parseInt(Math.pow(10,$%10)),$%100<10?(ue.fOptStat=E,this.interactiveRedraw(!0,`exec:SetOptStat(${E})`)):(ue.fOptFit=E,this.interactiveRedraw(!0,`exec:SetOptFit(${E})`))})};Q(0,"Histogram name"),Q(1,"Entries"),Q(2,"Mean"),Q(3,"Std Dev"),Q(4,"Underflow"),Q(5,"Overflow"),Q(6,"Integral"),Q(7,"Skewness"),Q(8,"Kurtosis"),Y.add("endsub:"),Y.add("sub:SetOptFit",()=>{Y.input("Enter OptStat",ue.fOptFit,"int").then(me=>{ue.fOptFit=me,this.interactiveRedraw(!0,`exec:SetOptFit(${me})`)})}),Q(10,"Fit parameters"),Q(11,"Par errors"),Q(12,"Chi square / NDF"),Q(13,"Probability"),Y.add("endsub:"),Y.add("separator")}else ue._typename===x.clTLegend?Y.add("Autoplace",()=>{this.autoPlaceLegend(ue,this.getPadPainter()?.getRootPad(!0),!0).then(Q=>{Q&&this.interactiveRedraw(!0,"pave_moved")})}):"title"===ue.fName&&(Y.add("Default position",()=>{ue.fX1NDC=x.gStyle.fTitleW>0?x.gStyle.fTitleX-x.gStyle.fTitleW/2:x.gStyle.fPadLeftMargin,ue.fY1NDC=x.gStyle.fTitleY-Math.min(1.1*x.gStyle.fTitleFontSize,.06),ue.fX2NDC=x.gStyle.fTitleW>0?x.gStyle.fTitleX+x.gStyle.fTitleW/2:1-x.gStyle.fPadRightMargin,ue.fY2NDC=x.gStyle.fTitleY,ue.fInit=1,this.interactiveRedraw(!0,"pave_moved")}),Y.add("Save to gStyle",()=>{x.gStyle.fTitleX=(ue.fX2NDC+ue.fX1NDC)/2,x.gStyle.fTitleY=ue.fY2NDC,this.fillatt?.saveToStyle("fTitleColor","fTitleStyle"),x.gStyle.fTitleTextColor=ue.fTextColor,x.gStyle.fTitleFontSize=ue.fTextSize,x.gStyle.fTitleFont=ue.fTextFont},"Store title position and graphical attributes to gStyle"));Y.add("Bring to front",()=>this.bringToFront(!this.isStats()&&!this.z_handle))}paveContextMenu(Y){if(this.z_handle){const ue=this.getFramePainter();(0,x.isFunc)(ue?.showContextMenu)&&ue.showContextMenu("pal",Y)}else(0,Ye.sj)(Y,this,this.isTitle()?"title":void 0)}isStats(){return this.matchObjectType(x.clTPaveStats)}isTitle(){return this.matchObjectType(x.clTPaveText)&&"title"===this.getObject()?.fName}clearPave(){this.getObject().Clear()}addText(Y){this.getObject().AddText(Y)}fillFunctionStat(Y,ue,Q=1){if(this._has_fit=!1,!ue||!Y)return!1;this._has_fit=!0,this._fit_dim=Q,this._fit_cnt=0;const me=1===Q?ue%10:1,X=1===Q?Math.floor(ue/10)%10:1,B=1===Q?Math.floor(ue/100)%10:1,$=1===Q?Math.floor(ue/1e3)%10:0;if(B&&(this.addText("#chi^{2} / ndf = "+this.format(Y.fChisquare,"fit")+" / "+Y.fNDF),this._fit_cnt++),$&&(this.addText("Prob = "+this.format((0,ve.Prob)(Y.fChisquare,Y.fNDF))),this._fit_cnt++),me)for(let g=0;g":this.format(Number(_),"fit"),void 0!==v&&(v=this.format(v,"last"),0===Number(v)&&0!==Y.GetParError(g)&&(v=this.format(Y.GetParError(g),"4.2g"))),this.addText(X&&v?`${E} = ${_} #pm ${v}`:`${E} = ${_}`),this._fit_cnt++}return!0}isDummyPos(Y){return!Y||!(Y.fInit||Y.fX1||Y.fX2||Y.fY1||Y.fY2||Y.fX1NDC||Y.fX2NDC||Y.fY1NDC||Y.fY2NDC)}updateObject(Y,ue){if(!this.matchObjectType(Y))return!1;const Q=this.getObject();switch(!Q.modified_NDC&&!this.isDummyPos(Y)&&(this.stored&&!Y.fInit&&this.stored.fX1===Y.fX1&&this.stored.fX2===Y.fX2&&this.stored.fY1===Y.fY1&&this.stored.fY2===Y.fY2?(this.stored.fX1NDC!==Y.fX1NDC&&(Q.fX1NDC=Y.fX1NDC),this.stored.fX2NDC!==Y.fX2NDC&&(Q.fX2NDC=Y.fX2NDC),this.stored.fY1NDC!==Y.fY1NDC&&(Q.fY1NDC=Y.fY1NDC),this.stored.fY2NDC!==Y.fY2NDC&&(Q.fY2NDC=Y.fY2NDC)):(Q.fInit=Y.fInit,Q.fX1=Y.fX1,Q.fX2=Y.fX2,Q.fY1=Y.fY1,Q.fY2=Y.fY2,Q.fX1NDC=Y.fX1NDC,Q.fX2NDC=Y.fX2NDC,Q.fY1NDC=Y.fY1NDC,Q.fY2NDC=Y.fY2NDC),this.stored=Object.assign({},Y)),Q.fOption=Y.fOption,Q.fBorderSize=Y.fBorderSize,void 0!==Q.fTextColor&&void 0!==Y.fTextColor&&(Q.fTextAngle=Y.fTextAngle,Q.fTextSize=Y.fTextSize,Q.fTextAlign=Y.fTextAlign,Q.fTextColor=Y.fTextColor,Q.fTextFont=Y.fTextFont),Y._typename){case x.clTDiamond:case x.clTPaveText:return Q.fLines=(0,x.clone)(Y.fLines),!0;case x.clTPavesText:return Q.fLines=(0,x.clone)(Y.fLines),Q.fNpaves=Y.fNpaves,!0;case x.clTPaveLabel:case x.clTPaveClass:return Q.fLabel=Y.fLabel,!0;case x.clTPaveStats:return Q.fOptStat=Y.fOptStat,Q.fOptFit=Y.fOptFit,!0;case x.clTLegend:{const me=Q.fPrimitives;if(Q.fPrimitives=Y.fPrimitives,Q.fNColumns=Y.fNColumns,this.AutoPlace="autoplace"===ue,me?.arr?.length&&me?.arr?.length===Q.fPrimitives?.arr?.length)for(let X=0;X{if("title"===ue.fName&&ue._typename===x.clTPaveText){const X=me.getPadPainter().findPainterFor(null,"title");if(X&&X!==me)X.removeFromPadPrimitives(),X.cleanup();else if("postitle"===Q||me.isDummyPos(ue)){const B=x.gStyle,$=me.getFramePainter();if(B&&$){const g=B.fTitleX,E=B.fTitleY;let _=B.fTitleW,v=B.fTitleH;v||(v=.7*(E-$.fY2NDC)),_||(_=$.fX2NDC-$.fX1NDC),(!Number.isFinite(v)||v<=0)&&(v=.06),(!Number.isFinite(_)||_<=0)&&(_=.44),ue.fX1NDC=g-_/2,ue.fY1NDC=E-v,ue.fX2NDC=g+_/2,ue.fY2NDC=E,ue.fInit=1}}}else ue._typename===x.clTPaletteAxis&&(ue.fBorderSize=1,ue.fShadowColor=0,ue.fAxis&&(ue.fAxis.fChopt||(ue.fAxis.fChopt="+"),ue.fAxis.fNdiv||(ue.fAxis.fNdiv=12),ue.fAxis.fLabelOffset||(ue.fAxis.fLabelOffset=.005)),me.z_handle=new Ze.TB(Y,ue.fAxis,!0),me.z_handle.setPadName(me.getPadName()),me.UseContextMenu=!0);switch(me.NoFillStats="nofillstats"===Q||"stats"!==ue.fName,ue._typename){case x.clTPaveLabel:case x.clTPaveClass:me.paveDrawFunc=me.drawPaveLabel;break;case x.clTPaveStats:me.paveDrawFunc=me.drawPaveStats;break;case x.clTPaveText:case x.clTPavesText:case x.clTDiamond:me.paveDrawFunc=me.drawPaveText;break;case x.clTLegend:me.AutoPlace="autoplace"===Q,me.paveDrawFunc=me.drawLegend;break;case x.clTPaletteAxis:me.paveDrawFunc=me.drawPaletteAxis}return me.drawPave(Q)})})()}}},8537:(Yr,mt,Se)=>{"use strict";Se.d(mt,{CS:()=>p,QK:()=>He,SF:()=>I,cD:()=>Ve,s6:()=>C,u$:()=>U,wx:()=>v});var Te=Se(8872),x=Se(8362),L=Se(2923),ve=Se(3847),ke=Se(3147),ot=Se(4615),Ye=Se(9997);function Ze(k,Z,ee){if((0,ke.KA)(Z))return new L._l5((0,ke.xV)(Z),{font:ve.Te,size:ee,height:0,curveSegments:5});const he=100*ee,V=[];let b=5;class P{constructor(lt,bt){this.kind=lt??"g",this.childs=[],this.x=0,this.y=0,this.font_size=bt?.font_size??he,bt?.childs.push(this)}append(lt){return"svg:g"===lt?new P("g",this):"svg:text"===lt?new P("text",this):"svg:path"===lt?new P("path",this):void console.log("should create",lt)}style(lt,bt){return"stroke-width"===lt&&bt&&(b=Number.parseInt(bt)),this}translate(){this.geom&&this.geom.translate(this.x,this.y,0),this.childs.forEach(lt=>{lt.x+=this.x,lt.y+=this.y,lt.translate()})}attr(lt,bt){const te=()=>{if(!bt)return"";const tt=bt[0];return bt=bt.slice(1),tt},Je=tt=>{let Fe=0;for(;bt[Fe]>="0"&&bt[Fe]<="9"||"-"===bt[Fe];)Fe++;const Ne=Number.parseInt(bt.slice(0,Fe));return bt=bt.slice(Fe),tt&&te(),Ne};if("font-size"===lt&&bt)this.font_size=Number.parseInt(bt);else if("transform"===lt&&(0,Te.isStr)(bt)&&0===bt.indexOf("translate")){const tt=bt.slice(bt.indexOf("(")+1,bt.lastIndexOf(")")).split(",");this.x+=tt[0]?.01*Number.parseInt(tt[0]):0,this.y-=tt[1]?.01*Number.parseInt(tt[1]):0}else if("x"===lt&&"text"===this.kind)this.x+=.01*Number.parseInt(bt);else if("y"===lt&&"text"===this.kind)this.y-=.01*Number.parseInt(bt);else if("d"===lt&&"path"===this.kind){if("M"!==te())return console.error("Not starts with M");const tt=[];let rt,Fe=Je(!0),Ne=Je();for(;rt=te();){let pt=Fe,st=Ne;switch(rt){case"L":pt=Je(!0),st=Je();break;case"l":pt+=Je(!0),st+=Je();break;case"H":pt=Je();break;case"h":pt+=Je();break;case"V":st=Je();break;case"v":st+=Je();break;default:console.log("not supported operator",rt)}const vt=Math.atan2(st-Ne,pt-Fe),Yt=.5*b*Math.sin(vt),qt=-.5*b*Math.cos(vt);tt.push(Fe-Yt,Ne-qt,0,pt-Yt,st-qt,0,pt+Yt,st+qt,0,Fe-Yt,Ne-qt,0,pt+Yt,st+qt,0,Fe+Yt,Ne+qt,0),Fe=pt,Ne=st}const St=new Float32Array(tt);this.geom=new L.LoY,this.geom.setAttribute("position",new L.THS(St,3)),this.geom.scale(.01,-.01,.01),this.geom.computeVertexNormals(),V.push(this.geom)}return this}text(lt){"text"===this.kind&&(this.geom=new L._l5(lt,{font:ve.Te,size:Math.round(.01*this.font_size),height:0,curveSegments:5}),V.push(this.geom))}}const T=new P;if((0,ke.Bm)(k,T,{font_size:he,latex:1,x:0,y:0,text:Z,align:["start","top"],fast:!0,font:{size:he,isMonospace:()=>!1,aver_width:.9}}),!V.length)return new L._l5((0,ke.xV)(Z),{font:ve.Te,size:ee,height:0,curveSegments:5});if(T.translate(),1===V.length)return V[0];let W=0;V.forEach(Ge=>{W+=Ge.getAttribute("position").array.length});const fe=new Float32Array(W),we=new Float32Array(W);let Me=0;V.forEach(Ge=>{const lt=Ge.getAttribute("position").array,bt=Ge.getAttribute("normal").array;for(let te=0;te=0&&(P=2),b.x>=0&&b.y>=0&&(P=3),b.x>=0&&b.y<0&&(P=4);const T=(W,fe)=>(W<=P&&(W+=4),W>P&&W{for(let fe=0;feb?k.camera.position.set(-2*V,-3.5*b,he*k.size_z3d):k.camera.position.set(-3.5*V,-2*b,he*k.size_z3d)),ee&&(Z||!k.zoomChangedInteractive())&&Number.isFinite(ee.fTheta)&&Number.isFinite(ee.fPhi)&&(ee.fTheta!==k.camera_Theta||ee.fPhi!==k.camera_Phi)){k.camera_Phi=ee.fPhi,k.camera_Theta=ee.fTheta,V=3*Math.max(k.size_x3d,k.size_z3d),b=3*Math.max(k.size_y3d,k.size_z3d);const P=(270-ee.fPhi)/180*Math.PI,T=(ee.fTheta-10)/180*Math.PI;k.camera.position.set(V*Math.cos(P)*Math.cos(T),b*Math.sin(P)*Math.cos(T),k.size_z3d+(he-.9)*(V+b)*Math.sin(T)),Z=!0}if(Z&&k.camera.lookAt(k.lookat),Z&&k.camera.isOrthographicCamera&&k.scene_width&&k.scene_height){const P=k.scene_width/k.scene_height,T=k.camera.right-k.camera.left,z=k.camera.top-k.camera.bottom;if(P>T/z){const W=(k.camera.right+k.camera.left)/2;k.camera.left=W-z*P/2,k.camera.right=W+z*P/2}else{const W=(k.camera.top+k.camera.bottom)/2;k.camera.top=W+T/P/2,k.camera.bottom=W-T/P/2}}k.camera.updateProjectionMatrix()}function J(k){k.control=(0,ve.Sc)(k,k.camera,k.scene,k.renderer,k.lookat);const Z=k,ee=k.getMainPainter();k.control.processMouseMove=function(he){let V=null,b=null,P=null;const T=Z.isTooltipAllowed();for(let z=0;zV.x2||V.y1>V.y2||V.z1>V.z2)&&console.warn("check 3D hints coordinates"),V.x1-=z,V.x2+=z,V.y1-=W,V.y2+=W,V.z1-=fe,V.z2+=fe}if(Z.highlightBin3D(V,b),!V&&P&&(0,Te.isFunc)(Z.get3dZoomCoord)){let z=P.zoom;const W=P.globalIntersect(this.raycaster),fe=Z.get3dZoomCoord(W,z);return"z"===z&&P.use_y_for_z&&(z="y"),{name:z,title:"axis object",line:z+" : "+Z.axisAsText(z,fe),only_status:!0}}return V?.lines?V:""},k.control.processMouseLeave=function(){Z.highlightBin3D(null)},k.control.contextMenu=function(he,V){let b="painter",P=ee;if(V)for(let z=0;z10&&V.width>10?Math.round(V.width/V.height*this.size_z3d):this.size_z3d,Z&&(this.size_x3d*=Z),ee&&(this.size_y3d*=ee),this.scene=new L.Z58,this.toplevel=new L.B69,this.scene.add(this.toplevel),this.scene_width=V.width,this.scene_height=V.height,this.scene_x=V.x??0,this.scene_y=V.y??0,this.camera_Phi=30,this.camera_Theta=30,De(this,he),F(this,!0),(0,ve.Yw)(this.scene_width,this.scene_height,k).then(b=>(this.renderer=b,this.webgl=k===Te.constants.Render3D.WebGL,this.add3dCanvas(V,this.renderer.jsroot_dom,this.webgl),this.first_render_tm=0,this.enable_highlight=!1,!this.isBatchMode()&&this.webgl&&J(this),this))}function ue(k){let Z=!1;this.control&&(this.control.cleanup(),delete this.control,Z=!0),De(this,k),F(this,!0),Z&&J(this),this.render3D()}function Q(k,Z,ee){if(k){if(!this.toplevel)return console.error("3D objects are not yet created in the frame");Z&&ee&&this.remove3DMeshes(Z),this.toplevel.add(k),k._painter=Z}}function me(k){if(!k||!this.toplevel)return;let Z=this.toplevel.children.length;for(;Z>0;){const ee=this.toplevel.children[--Z];ee._painter===k&&(this.toplevel.remove(ee),(0,ve.G1)(ee))}}function X(k){if(-1111===k){const V=(0,Te.getDocument)(),b=(0,ve.mZ)(!1,0,V);if(b.setSize(this.scene_width,this.scene_height),b.render(this.scene,this.camera),b.makeOuterHTML){const P=V.createElement("div");return P.innerHTML=b.makeOuterHTML(),P.childNodes[0]}return b.domElement}void 0===k&&(k=5);const Z=this.isBatchMode();if(k>0&&!this.usesvg&&!Z)return void(this.render_tmout||(this.render_tmout=setTimeout(()=>this.render3D(0),k)));if(this.render_tmout&&(clearTimeout(this.render_tmout),delete this.render_tmout),!this.renderer)return;(0,ve.rv)(this.renderer);const ee=new Date;Re(this.camera,this.toplevel,this.opt3d?.FrontBox,this.opt3d?.BackBox),this.renderer.render(this.scene,this.camera),(0,ve.oE)(this.renderer),0===this.first_render_tm&&(this.first_render_tm=(new Date).getTime()-ee.getTime(),this.enable_highlight=this.first_render_tm<1200&&this.isTooltipAllowed(),this.first_render_tm>500&&console.log(`three.js r${L.sPf}, first render tm = ${this.first_render_tm}`)),this.processRender3D&&this.getPadPainter()?.painters?.forEach(V=>{(0,Te.isFunc)(V.handleRender3D)&&V.handleRender3D()})}function B(){const k=this.getSizeFor3d(this.access3dKind());return this.apply3dSize(k),!(this.scene_width===k.width&&this.scene_height===k.height||k.width<10||k.height<10||(this.scene_width=k.width,this.scene_height=k.height,this.camera.aspect=this.scene_width/this.scene_height,this.camera.updateProjectionMatrix(),this.renderer.setSize(this.scene_width,this.scene_height),0))}function $(k,Z){const ee=!k||void 0===k.x1||!this.enable_highlight;let he=!1,V=null,b=!0,P=this.getMainPainter();if(P&&(!P.provideUserTooltip||!P.hasUserTooltip())&&(P=null),this.tooltip_selfmesh&&(b=this.tooltip_selfmesh!==Z,this.tooltip_selfmesh.material.color=this.tooltip_selfmesh.save_color,delete this.tooltip_selfmesh,he=!0),this.tooltip_mesh&&(V=this.tooltip_mesh,this.toplevel.remove(this.tooltip_mesh),delete this.tooltip_mesh,he=!0),ee)return he&&this.render3D(),void(he&&P&&P.provideUserTooltip(null));if(k.use_itself)Z.save_color=Z.material.color,Z.material.color=new L.Q1f(k.color),this.tooltip_selfmesh=Z,he=b;else{he=!0;const T=ve.DJ.Indexes,z=ve.DJ.Normals,W=ve.DJ.Vertices,fe=new L.Q1f(k.color?k.color:16711680),we=k.opacity||1;let Me,je;if(V)Me=V.geometry.attributes.position.array,V.geometry.attributes.position.needsUpdate=!0,V.material.color=fe,V.material.opacity=we;else{Me=new Float32Array(3*T.length),je=new Float32Array(3*T.length);const Ge=new L.LoY;Ge.setAttribute("position",new L.THS(Me,3)),Ge.setAttribute("normal",new L.THS(je,3));const lt=new L.V9B({color:fe,opacity:we,vertexColors:!1});V=new L.eaF(Ge,lt)}k.x1===k.x2&&console.warn(`same tip X ${k.x1} ${k.x2}`),k.y1===k.y2&&console.warn(`same tip Y ${k.y1} ${k.y2}`),k.z1===k.z2&&(k.z2=k.z1+1e-4);for(let Ge=0,lt=-3;Ge0&&Nt>0&&(pt=Math.min(pt,.9*Nt/At))),this.x_handle.isCenteredLabels()&&(Nt||(Nt=Math.min(xt-V,b-xt)),Pe.grx+=Nt/2)}qt.push(xt,0,0,xt,this.x_handle.ticksSize*(K?-1:-.6),0)}if(this.x_handle.fTitle&&ee.draw){const xt=Ze(this,this.x_handle.fTitle,this.x_handle.titleFont.size);xt.computeBoundingBox(),xt.center=this.x_handle.titleCenter,xt.opposite=this.x_handle.titleOpposite,xt.offsety=1.6*this.x_handle.titleOffset+.005*(T-P),xt.grx=(V+b)/2,xt.kind="title",Ot.push(xt)}this.get3dZoomCoord=function(xt,K){const ge=this[`scale_${K}min`],ye=this[`scale_${K}max`];let Pe=xt[K];switch(K){case"x":Pe=(Pe+this.size_x3d)/2/this.size_x3d;break;case"y":Pe=(Pe+this.size_y3d)/2/this.size_y3d;break;case"z":Pe=Pe/2/this.size_z3d}return Pe=this["log"+K]?Math.exp(Math.log(ge)+Pe*(Math.log(ye)-Math.log(ge))):ge+Pe*(ye-ge),Pe};const Mn=(xt,K,ge)=>{const ye=new L.LoY,Pe=Math.max(this[xt+"_handle"].ticksSize,.005*K);let At;At="z"===xt?new Float32Array([0,0,0,4*Pe,0,2*K,4*Pe,0,0,0,0,0,0,0,2*K,4*Pe,0,2*K]):new Float32Array([-K,0,0,K,4*-Pe,0,K,0,0,-K,0,0,-K,4*-Pe,0,K,4*-Pe,0]),ye.setAttribute("position",new L.THS(At,3)),ye.computeVertexNormals();const Ht=new L.V9B({transparent:!0,vertexColors:!1,side:L.$EB,opacity:0}),Nt=new L.eaF(ye,Ht);return Nt.zoom=xt,Nt.size_3d=K,Nt.tsz=Pe,Nt.use_y_for_z=ge,"y"===xt&&Nt.rotateZ(Math.PI/2).rotateX(Math.PI),Nt.v1=new L.Pq0(At[0],At[1],At[2]),Nt.v2=new L.Pq0(At[6],At[7],At[8]),Nt.v3=new L.Pq0(At[3],At[4],At[5]),Nt.globalIntersect=function(nn){if(!this.v1||!this.v2||!this.v3)return;const hn=new L.Zcv;hn.setFromCoplanarPoints(this.v1,this.v2,this.v3),hn.applyMatrix4(this.matrixWorld);const kn=nn.ray.origin.clone(),cn=kn.clone().addScaledVector(nn.ray.direction,1e10),In=hn.intersectLine(new L.cZY(kn,cn),new L.Pq0);if(!In)return;let ci=-this.size_3d,Pi=this.size_3d;return"z"===this.zoom&&(ci=0,Pi=2*this.size_3d),In[this.zoom]Pi&&(In[this.zoom]=Pi),In},Nt.showSelection=function(nn,hn){const kn=this.zoom;let In,cn=this.children?this.children[0]:null;if(!nn||!hn)return cn&&(this.remove(cn),(0,ve.G1)(cn)),cn;if(!this.geometry)return!1;if(cn)In=cn.geometry;else{In=this.geometry.clone();const Pi=In.getAttribute("position").array;"z"===kn?Pi[6]=Pi[3]=Pi[15]=this.tsz:Pi[4]=Pi[16]=Pi[13]=-this.tsz,cn=new L.eaF(In,new L.V9B({color:65280,side:L.$EB,vertexColors:!1})),this.add(cn)}const ci=In.getAttribute("position").array;return"z"===kn?(ci[2]=ci[11]=ci[8]=nn[kn],ci[5]=ci[17]=ci[14]=hn[kn]):(ci[0]=ci[9]=ci[12]=nn[kn],ci[6]=ci[3]=ci[15]=hn[kn]),In.getAttribute("position").needsUpdate=!0,!0},Nt};let Dn,bn=new L.B69;for(bn.position.set(0,P,z),bn.rotation.x=1/4*Math.PI,bn.xyid=2,ee.draw&&(Dn=(0,ve.Fc)(qt,st(this.x_handle,"ticks")),bn.add(Dn)),Ot.forEach(xt=>{const K=xt.boundingBox.max.x-xt.boundingBox.min.x,ge=xt.center?xt.grx-K/2:xt.opposite?V:b-K,ye=new L.kn4;ye.set(pt,0,0,ge,0,pt,0,-Bn*pt-this.x_handle.ticksSize-xt.offsety,0,0,1,0,0,0,0,1);const Pe=new L.eaF(xt,vt(this.x_handle,xt.kind,xt.color));Pe.applyMatrix4(ye),bn.add(Pe)}),ee.zoom&&ee.drawany&&bn.add(Mn("x",this.size_x3d)),Yt.add(bn),bn=new L.B69,bn.position.set(0,T,z),bn.rotation.x=3/4*Math.PI,ee.draw&&bn.add(new L.DXC(Dn.geometry,Dn.material)),Ot.forEach(xt=>{const K=xt.boundingBox.max.x-xt.boundingBox.min.x,ge=xt.center?xt.grx+K/2:xt.opposite?V+K:b,ye=new L.kn4;ye.set(-pt,0,0,ge,0,pt,0,-Bn*pt-this.x_handle.ticksSize-xt.offsety,0,0,-1,0,0,0,0,1);const Pe=new L.eaF(xt,vt(this.x_handle,xt.kind,xt.color));Pe.applyMatrix4(ye),bn.add(Pe)}),bn.xyid=4,ee.zoom&&ee.drawany&&bn.add(Mn("x",this.size_x3d)),Yt.add(bn),Ot=[],pt=1,Bn=0,qt=[];rt.next();){const xt=rt.grpos;let K=1===rt.kind,ge=this.y_handle.format(rt.tick,2);if(rt.last_major()?this.y_handle.fTitle||(ge="y"):null===ge&&(K=!1,ge=""),K&&ge&&ee.draw){const ye=rt.get_modifier();ye?.fLabText&&(ge=ye.fLabText);const Pe=Ze(this,ge,this.y_handle.labelsFont.size);Pe.computeBoundingBox();const At=Pe.boundingBox.max.x-Pe.boundingBox.min.x,Ht=Pe.boundingBox.max.y-Pe.boundingBox.min.y;Pe.center=!0,Bn=Math.max(Bn,Ht),ye?.fTextColor&&(Pe.color=this.getColor(ye.fTextColor)),Pe.gry=xt,Pe.offsetx=this.y_handle.labelsOffset+.005*(b-V),Ot.push(Pe);let Nt=0;rt.last_major()||(Nt=Math.abs(rt.next_major_grpos()-xt),At>0&&(pt=Math.min(pt,.9*Nt/At))),this.y_handle.isCenteredLabels()&&(Nt||(Nt=Math.min(xt-P,T-xt)),Pe.gry+=Nt/2)}qt.push(0,xt,0,this.y_handle.ticksSize*(K?-1:-.6),xt,0)}if(this.y_handle.fTitle&&ee.draw){const xt=Ze(this,this.y_handle.fTitle,this.y_handle.titleFont.size);xt.computeBoundingBox(),xt.center=this.y_handle.titleCenter,xt.opposite=this.y_handle.titleOpposite,xt.offsetx=1.6*this.y_handle.titleOffset+.005*(b-V),xt.gry=(P+T)/2,xt.kind="title",Ot.push(xt)}if(!ee.use_y_for_z){let xt,K=new L.B69;K.position.set(V,0,z),K.rotation.y=-1/4*Math.PI,ee.draw&&(xt=(0,ve.Fc)(qt,st(this.y_handle,"ticks")),K.add(xt)),Ot.forEach(ge=>{const ye=ge.boundingBox.max.x-ge.boundingBox.min.x,Pe=ge.center?ge.gry+ye/2:ge.opposite?P+ye:T,At=new L.kn4;At.set(0,pt,0,-Bn*pt-this.y_handle.ticksSize-ge.offsetx,-pt,0,0,Pe,0,0,1,0,0,0,0,1);const Ht=new L.eaF(ge,vt(this.y_handle,ge.kind,ge.color));Ht.applyMatrix4(At),K.add(Ht)}),K.xyid=3,ee.zoom&&ee.drawany&&K.add(Mn("y",this.size_y3d)),Yt.add(K),K=new L.B69,K.position.set(b,0,z),K.rotation.y=-3/4*Math.PI,ee.draw&&K.add(new L.DXC(xt.geometry,xt.material)),Ot.forEach(ge=>{const ye=ge.boundingBox.max.x-ge.boundingBox.min.x,Pe=ge.center?ge.gry-ye/2:ge.opposite?P:T-ye,At=new L.kn4;At.set(0,pt,0,-Bn*pt-this.y_handle.ticksSize-ge.offsetx,pt,0,0,Pe,0,0,-1,0,0,0,0,1);const Ht=new L.eaF(ge,vt(this.y_handle,ge.kind,ge.color));Ht.applyMatrix4(At),K.add(Ht)}),K.xyid=1,ee.zoom&&ee.drawany&&K.add(Mn("y",this.size_y3d)),Yt.add(K)}Ot=[],pt=1,qt=[];let $n=null,Cn=null,yn=null,Sn=0;for(this.size_z3d&&ee.drawany&&($n=[],Cn=[]);St.next();){const xt=St.grpos;let K=1===St.kind,ge=this.z_handle.format(St.tick,2);if(null===ge&&(K=!1,ge=""),K&&ge&&ee.draw){const ye=St.get_modifier();ye?.fLabText&&(ge=ye.fLabText);const Pe=Ze(this,ge,this.z_handle.labelsFont.size);Pe.computeBoundingBox();const At=Pe.boundingBox.max.x-Pe.boundingBox.min.x,Ht=Pe.boundingBox.max.y-Pe.boundingBox.min.y;Pe.translate(-At,-Ht/2,0),ye?.fTextColor&&(Pe.color=this.getColor(ye.fTextColor)),Pe.grz=xt,Ot.push(Pe),null!==yn&&Ht>0&&(pt=Math.min(pt,.9*(xt-yn)/Ht)),Sn=Math.max(Sn,At),yn=xt}$n&&K&&$n.push(V,0,xt,b,0,xt),Cn&&K&&Cn.push(0,P,xt,0,T,xt),qt.push(0,0,xt,this.z_handle.ticksSize*(K?1:.6),0,xt)}if($n&&$n.length>0){const xt=new L.Fvt({color:this.x_handle.ticksColor,dashSize:2,gapSize:2}),K=(0,ve.Fc)($n,xt);K.position.set(0,T,0),K.grid=2,K.visible=!1,Yt.add(K);const ge=new L.DXC(K.geometry,xt);ge.position.set(0,P,0),ge.grid=4,ge.visible=!1,Yt.add(ge)}if(Cn&&Cn.length>0){const xt=new L.Fvt({color:this.y_handle.ticksColor,dashSize:2,gapSize:2}),K=(0,ve.Fc)(Cn,xt);K.position.set(b,0,0),K.grid=3,K.visible=!1,Yt.add(K);const ge=new L.DXC(K.geometry,xt);ge.position.set(V,0,0),ge.grid=1,ge.visible=!1,Yt.add(ge)}const ii=[],ai=ee.draw?(0,ve.Fc)(qt,st(this.z_handle,"ticks")):null;for(let xt=0;xt<4;++xt){if(ii.push(new L.B69),Ot.forEach((K,ge)=>{const ye=new L.kn4;let Pe=K.grz;this.z_handle.isCenteredLabels()&&(ge0&&(Pe=Math.min(1.5*Pe-.5*Ot[ge-1].grz,W))),ye.set(-pt,0,0,this.z_handle.ticksSize+.005*(b-V)+this.z_handle.labelsOffset,0,0,1,0,0,pt,0,Pe);const At=new L.eaF(K,vt(this.z_handle));At.applyMatrix4(ye),ii[xt].add(At)}),this.z_handle.fTitle&&ee.draw){const K=Ze(this,this.z_handle.fTitle,this.z_handle.titleFont.size);K.computeBoundingBox();const ge=K.boundingBox.max.x-K.boundingBox.min.x,ye=this.z_handle.titleCenter?(W+z-ge)/2:this.z_handle.titleOpposite?z:W-ge;K.rotateZ(Math.PI/2);const Pe=new L.kn4;Pe.set(-pt,0,0,this.z_handle.ticksSize+.005*(b-V)+Sn+this.z_handle.titleOffset,0,0,1,0,0,pt,0,ye);const At=new L.eaF(K,vt(this.z_handle,"title"));At.applyMatrix4(Pe),ii[xt].add(At)}ee.draw&&ai&&ii[xt].add(0===xt?ai:new L.DXC(ai.geometry,ai.material)),ee.zoom&&ee.drawany&&ii[xt].add(Mn("z",this.size_z3d,ee.use_y_for_z)),ii[xt].zid=xt+2,Yt.add(ii[xt])}if(ii[0].position.set(V,T,0),ii[0].rotation.z=3/4*Math.PI,ii[1].position.set(b,T,0),ii[1].rotation.z=1/4*Math.PI,ii[2].position.set(b,P,0),ii[2].rotation.z=-1/4*Math.PI,ii[3].position.set(V,P,0),ii[3].rotation.z=-3/4*Math.PI,!ee.drawany)return;const zi=st(this.x_handle),ti=(0,ve.Fc)([V,0,0,b,0,0],zi,null,!0);for(let xt=0;xt<2;++xt){let K=new L.DXC(ti,zi);K.position.set(0,P,0===xt?z:W),K.xyboxid=2,K.bottom=0===xt,Yt.add(K),K=new L.DXC(ti,zi),K.position.set(0,T,0===xt?z:W),K.xyboxid=4,K.bottom=0===xt,Yt.add(K)}const Lr=st(this.y_handle),ss=(0,ve.Fc)([0,P,0,0,T,0],Lr,null,!0);for(let xt=0;xt<2;++xt){let K=new L.DXC(ss,Lr);K.position.set(V,0,0===xt?z:W),K.xyboxid=3,K.bottom=0===xt,Yt.add(K),K=new L.DXC(ss,Lr),K.position.set(b,0,0===xt?z:W),K.xyboxid=1,K.bottom=0===xt,Yt.add(K)}const Bs=st(this.z_handle),yo=(0,ve.Fc)([0,0,z,0,0,W],Bs,null,!0);for(let xt=0;xt<4;++xt){const K=new L.DXC(yo,Bs);K.zboxid=ii[xt].zid,K.position.copy(ii[xt].position),Yt.add(K)}}function _(k,Z,ee){k=this.x_handle.gr(k),Z=this.y_handle.gr(Z),ee=this.z_handle.gr(ee);const he=(new L.Pq0).set(k,Z,ee);he.project(this.camera),he.x=(he.x+1)/2,he.y=(he.y+1)/2;const V=this.getPadPainter(),b=V?.getPadWidth(),P=V?.getPadHeight();return b&&P&&(he.x=(this.scene_x+he.x*this.scene_width)/b,he.y=(this.scene_y+he.y*this.scene_height)/P),he}function v(k){Object.assign(k,{create3DScene:Y,add3DMesh:Q,remove3DMeshes:me,render3D:X,resize3D:B,change3DCamera:ue,highlightBin3D:$,set3DOptions:g,drawXYZ:E,convert3DtoPadNDC:_})}function p(k,Z=!1){if(!k.draw_content)return;const ee=ve.DJ.Vertices,he=ve.DJ.Indexes,V=ve.DJ.Normals,b=ve.DJ.Segments,P=[0,1,1,2,2,3,3,0],T=[new L.Pq0(0,0,0),new L.Pq0(0,1,0),new L.Pq0(1,1,0),new L.Pq0(1,0,0)],z=k.getFramePainter(),W=k.prepareDraw({rounding:!1,use3d:!0,extra:1}),fe=k.options.cutg,we=W.i1,Me=W.i2,je=W.j1,Ge=W.j2,lt=k.getHisto(),bt=lt.$baseh,te=11===k.options.Lego||13===k.options.Lego,Je=lt.getBin(Me,Ge)<65535;if(we>=Me||je>=Ge)return;let tt,Fe,Ne,rt,St,pt,st,vt,Yt,qt,Ot,Bn,Mn,bn,Dn,$n=z.z_handle.getScaleMin(),Cn=z.z_handle.getScaleMax();const yn=(Nt,nn,hn)=>(Bn=lt.getBinContent(Nt+1,nn+1),Ot=bt?bt.getBinContent(Nt+1,nn+1):!1!==k.options.BaseLine?k.options.BaseLine:k.options.Zero?$n:0,Bn=Fe||Bn=Bn,!Mn||hn>0||!bt&&(!!(k.options.Zero||$n>0)||k._show_empty_bins)));let Sn=[$n,Cn],ii=null;(12===k.options.Lego||14===k.options.Lego)&&(Z?(ii=z.getHistPalette(),k.createContour(z,ii,{full_z_range:!0}),Sn=ii.getContour(),$n=Sn[0],Cn=Sn[Sn.length-1]):(Sn=k.createContour(lt.fContour?lt.fContour.length:20,z.lego_zmin,z.lego_zmax).arr,ii=k.getHistPalette()));for(let Nt=0;Nt0,Dn=!Mn&&Bn>Fe&&Nt0,Dn=!Mn&&Bn>Fe&&NtFe?hn:z.grz(Bn),ie=0,O=0,Mn&&(ie+=12,O+=24);const _t=lt.getBin(Ne+1,rt+1);let sn=he.length;for(bn&&(sn-=6);O=this.face_to_bins_index.length)return null;const sn=this.painter,tn=this.handle,xn=sn.getFramePainter(),wn=sn.getHisto(),Ut=sn.get3DToolTip(this.face_to_bins_index[_t.faceIndex]),qe=Math.min(xn.size_x3d,Math.max(-xn.size_x3d,tn.grx[Ut.ix-1]+tn.xbar1*(tn.grx[Ut.ix]-tn.grx[Ut.ix-1]))),nt=Math.min(xn.size_x3d,Math.max(-xn.size_x3d,tn.grx[Ut.ix-1]+tn.xbar2*(tn.grx[Ut.ix]-tn.grx[Ut.ix-1]))),at=Math.min(xn.size_y3d,Math.max(-xn.size_y3d,tn.gry[Ut.iy-1]+tn.ybar1*(tn.gry[Ut.iy]-tn.gry[Ut.iy-1]))),ht=Math.min(xn.size_y3d,Math.max(-xn.size_y3d,tn.gry[Ut.iy-1]+tn.ybar2*(tn.gry[Ut.iy]-tn.gry[Ut.iy-1])));Ut.x1=Math.min(qe,nt),Ut.x2=Math.max(qe,nt),Ut.y1=Math.min(at,ht),Ut.y2=Math.max(at,ht);let Qt=this.baseline,vn=Ut.value;return wn.$baseh&&(Qt=wn.$baseh.getBinContent(Ut.ix,Ut.iy)),vn0){const _t=Ve(k,Jn,Wi),sn=new L.Q1f(Oe<2?16711680:(0,x.Qh)($e).darker(.5).toString()),tn=new L.V9B({color:sn,vertexColors:!1}),xn=new L.eaF(_t,tn);xn.face_to_bins_index=Ln,xn.painter=k,xn.handle=it.handle,xn.tooltip=it.tooltip,xn.zmin=it.zmin,xn.zmax=it.zmax,xn.baseline=it.baseline,xn.tip_color=it.tip_color,z.add3DMesh(xn)}}if(k.options.Lego>12)return;let ai=0,zi=0;for(Fe=Cn,tt=$n,Ne=we;NeCn?yo:z.grz(Bn);const Nt=Mn?P:b,nn=Mn?T:ee;if(ti){for(St=0;StP)&&(we!==b||k.options.Zero||b>0||k._show_empty_bins)&&(!T||T.IsInside(he.fXaxis.GetBinCoord(z+.5),he.fYaxis.GetBinCoord(W+.5)))){if(0===Yt){tt+=3;continue}fe=he.getBin(z+1,W+1),Me=he.getBinError(fe),Ne[rt/18]=fe,Ge=V.gry[W],bt=V.gry[W+1],te=ee.grz(we-MeP?P:we+Me),Fe[rt]=je,Fe[rt+3]=lt,Fe[rt+1]=Fe[rt+4]=(Ge+bt)/2,Fe[rt+2]=Fe[rt+5]=(te+Je)/2,rt+=6,Fe[rt]=Fe[rt+3]=(je+lt)/2,Fe[rt+1]=Ge,Fe[rt+4]=bt,Fe[rt+2]=Fe[rt+5]=(te+Je)/2,rt+=6,Fe[rt]=Fe[rt+3]=(je+lt)/2,Fe[rt+1]=Fe[rt+4]=(Ge+bt)/2,Fe[rt+2]=te,Fe[rt+5]=Je,rt+=6}if(0===Yt){if(0===tt)return;Fe=new Float32Array(6*tt),Ne=new Int32Array(tt/3)}}const pt=Z?k.v7EvalColor("line_color","lightblue"):k.getColor(he.fLineColor),st=new L.mrM((0,ve.Bx)(pt,{linewidth:Z?k.v7EvalAttr("line_width",1):he.fLineWidth})),vt=(0,ve.Fc)(Fe,st);vt.painter=k,vt.intersect_index=Ne,vt.zmin=b,vt.zmax=P,vt.tip_color=3===he.fLineColor?16711680:65280,vt.tooltip=function(Yt){const qt=Math.floor(Yt.index/6);if(qt<0||qt>=this.intersect_index.length)return null;const Ot=this.painter,Bn=Ot.getHisto(),Mn=Ot.getFramePainter(),bn=Ot.get3DToolTip(this.intersect_index[qt]),Dn=Math.min(Mn.size_x3d,Math.max(-Mn.size_x3d,Mn.grx(Bn.fXaxis.GetBinLowEdge(bn.ix)))),$n=Math.min(Mn.size_x3d,Math.max(-Mn.size_x3d,Mn.grx(Bn.fXaxis.GetBinLowEdge(bn.ix+1)))),Cn=Math.min(Mn.size_y3d,Math.max(-Mn.size_y3d,Mn.gry(Bn.fYaxis.GetBinLowEdge(bn.iy)))),yn=Math.min(Mn.size_y3d,Math.max(-Mn.size_y3d,Mn.gry(Bn.fYaxis.GetBinLowEdge(bn.iy+1))));return bn.x1=Math.min(Dn,$n),bn.x2=Math.max(Dn,$n),bn.y1=Math.min(Cn,yn),bn.y2=Math.max(Cn,yn),bn.z1=Mn.grz(bn.value-bn.errorthis.zmax?this.zmax:bn.value+bn.error),bn.color=this.tip_color,bn},ee.add3DMesh(vt)}function I(k,Z=!1,ee=!1){const he=k.getFramePainter(),V=k.prepareDraw({rounding:!1,use3d:!0,extra:100,middle:0}),b=k.getHisto(),P=k.getContourLevels(),T=k.getHistPalette(),z=[];let W=2*he.size_z3d;(0,Ye.Hn)(b,V,P,T,(we,Me,je,Ge,lt,bt)=>{if(!(lt-Ge<3||Z&&(W=he.grz(P[bt]),W<0||W>2*he.size_z3d)))for(let te=Ge;teMe0&&(we=he.getHistPalette(),2===Me&&k.createContour(he,we,{full_z_range:!0}),W=we.getContour())}else switch(k.options.Surf){case 11:W=k.getContourLevels(),we=k.getHistPalette();break;case 12:case 15:case 17:W=k.getContourLevels(),we=k.getHistPalette(),z.dolines=!1;break;case 14:z.dolines=!1,z.donormals=!0;break;case 16:W=k.getContourLevels(),z.dogrid=!0,z.dolines=!1;break;default:W=he.z_handle.createTicks(!0),z.dogrid=!0}if(W){fe=new Float32Array(W.length);for(let Me=0;Me{const lt=Ve(k,je,null,z.i2-z.i1,z.j2-z.j1),bt=lt.getAttribute("normal").array;if(z.donormals&&1===Me)for(let Fe=z.i1;Fe=0?rt:rt+9+Ge[rt],pt=rt+8;let st=0,vt=0,Yt=0;for(let qt=St;qt1?k.getColor(ee.fFillColor):"white",14===k.options.Surf&&ee.fFillColor<2&&(te=k.getColor(48))),te||(te="white"),Je=14===k.options.Surf?new L.G_z((0,ve.Bx)(te,{side:L.$EB,vertexColors:!1})):new L.V9B((0,ve.Bx)(te,{side:L.$EB,vertexColors:!1}));const tt=new L.eaF(lt,Je);he.add3DMesh(tt),tt.painter=k},(Me,je)=>{const Ge=k.getColor(ee.fLineColor)??"white";let lt;lt=Me?1===k.options.Surf?new L.Fvt({color:0,dashSize:2,gapSize:2}):new L.mrM((0,ve.Bx)(Ge)):new L.mrM((0,ve.Bx)(Ge,{linewidth:ee.fLineWidth}));const bt=(0,ve.Fc)(He(k,je,z.i2-z.i1,z.j2-z.j1),lt);bt.painter=k,he.add3DMesh(bt)}),17===k.options.Surf&&I(k,!1,Z),13===k.options.Surf){z=k.prepareDraw({rounding:!1,use3d:!0,extra:100,middle:0});const Me=k.getContourLevels(),je=k.getHistPalette();let Ge=-1,lt=T;(0,Ye.Hn)(ee,z,Me,je,(bt,te,Je,tt,Fe)=>{if(te[Fe]===te[tt]&&Je[Fe]===Je[tt]&&Fe--,Fe-tt<3)return;const Ne=[];for(let Ot=tt;Ot<=Fe;++Ot)(Ot===tt||te[Ot]!==te[Ot-1]||Je[Ot]!==Je[Ot-1])&&Ne.push(new L.I9Y(te[Ot],Je[Ot]));if(Ne.length<3)return;const rt=L.xJ6.triangulateShape(Ne,[]);if(!rt||0===rt.length)return;(Ge<0||Ge!==bt)&&(Ge=bt,lt+=5e-5*T);const St=new Float32Array(9*rt.length),pt=new Float32Array(9*rt.length);let st=0;for(let Ot=0;Ot{"use strict";Se.d(mt,{N:()=>Ye,c:()=>ot});var Te=Se(4882),x=Se(8872),L=Se(8362),ve=Se(2843),ke=Se(4615);const ot=["LOGXY","LOGX","LOGY","LOGZ","LOGV","LOG","LOG2X","LOG2Y","LOG2","LNX","LNY","LN","GRIDXY","GRIDX","GRIDY","TICKXY","TICKX","TICKY","TICKZ","FB","GRAYSCALE"];class Ye extends ke.mf{convertTH1K(){const Re=this.getObject();if(Re.fReady)return;const He=Re.fArray,Ve=Re.fEntries;Re.fNcells=Re.fXaxis.fNbins+2,Re.fArray=new Float64Array(Re.fNcells).fill(0);for(let De=0;De0),this.scan_xleft=Ve,this.scan_xright=De;const F=this.isTProfile();let X,B,J=0,Y=0,ue=0,Q=0,me=!0;for(let g=0;g=De)&&(X>0&&(0===Y||X1?He.fEntries:Q,this.hmin=J,this.hmax=ue,(0===this.nbinsx||Math.abs(J)<1e-300&&Math.abs(ue)<1e-300)&&(this.draw_content=!1);let $=!1;if(this.draw_content||this.isMainPainter()&&this.options.Axis>0&&!this.options.ohmin&&!this.options.ohmax&&He.fMinimum===x.kNoZoom&&He.fMaximum===x.kNoZoom)if(J>=ue)0===J?(this.ymin=0,this.ymax=1):J<0?(this.ymin=2*J,this.ymax=0):(this.ymin=0,this.ymax=2*J);else{const g=this.getPadPainter()?.getRootPad();(this.options.BarStyle>=20?g.fLogx:g?.fLogv??g?.fLogy)?(this.ymin=.5*(Y||J),this.ymax=2*ue*(.9/.95)):(this.ymin=J-(ue-J)*x.gStyle.fHistTopMargin,this.ymin<0&&J>=0&&(this.ymin=0),this.ymax=ue+(ue-this.ymin)*x.gStyle.fHistTopMargin)}J=this.options.minimum,ue=this.options.maximum,J===ue&&J!==x.kNoZoom&&(J<0?(J*=2,ue=0):(J=0,ue*=2,ue||(ue=1))),J!==x.kNoZoom&&ue!==x.kNoZoom&&!this.draw_content&&(this.ymin===this.ymax||this.ymin>J||this.ymaxthis.ymax&&(this.ymax=ue),$=!0)),Re||($?(this.zoom_ymin=J===x.kNoZoom?this.ymin:J,this.zoom_ymax=ue===x.kNoZoom?this.ymax:ue):(delete this.zoom_ymin,delete this.zoom_ymax)),this.wheel_zoomy=this.getDimension()>1||!this.draw_content}countStat(Re,He){const Ve=this.isTProfile(),De=this.getHisto(),F=De.fXaxis,J=this.getSelectIndex("x","left"),Y=this.getSelectIndex("x","right"),ue=this.getFramePainter(),Q={name:De.fName,meanx:0,meany:0,rmsx:0,rmsy:0,integral:0,entries:this.stat_entries,eff_entries:0,xmax:0,wmax:0,skewx:0,skewd:0,kurtx:0,kurtd:0},me=!ue.isAxisZoomed("x")&&Math.abs(De.fTsumw)>1e-300;let v,X=0,B=0,$=0,g=0,E=0,_=0,p=0,C=0,I=null,U=null;for((0,x.isFunc)(Re)||(Re=null),v=J;vU)&&(I=p,U=C),me||(X+=C,B+=C*C,$+=C*p,g+=C*p**2));if(me&&(X=De.fTsumw,B=De.fTsumw2,$=De.fTsumwx,g=De.fTsumwx2),Q.integral=X,Q.eff_entries=B?X*X/B:Math.abs(X),Math.abs(X)>1e-300&&(Q.meanx=$/X,Q.meany=E/X,Q.rmsx=Math.sqrt(Math.abs(g/X-Q.meanx**2)),Q.rmsy=Math.sqrt(Math.abs(_/X-Q.meany**2))),null!==I&&(Q.xmax=I,Q.wmax=U),He){let k=0,Z=0,ee=0;for(v=J;v0?Math.sqrt(6/Q.eff_entries):0,ee*V!=0&&(Q.kurtx=Z/(ee*V)-3),Q.kurtd=Q.eff_entries>0?Math.sqrt(24/Q.eff_entries):0}return Q}fillStatistic(Re,He,Ve){if(this.isIgnoreStatsFill())return!1;1===He&&(He=1111),1===Ve&&(Ve=111);const De=this.getHisto(),F=He%10,J=Math.floor(He/10)%10,Y=Math.floor(He/100)%10,ue=Math.floor(He/1e3)%10,Q=Math.floor(He/1e4)%10,me=Math.floor(He/1e5)%10,X=Math.floor(He/1e6)%10,B=Math.floor(He/1e7)%10,$=Math.floor(He/1e8)%10,g=this.countStat(void 0,B>0||$>0);return Re.clearPave(),F>0&&Re.addText(g.name),this.isTProfile()?(J>0&&Re.addText("Entries = "+Re.format(g.entries,"entries")),Y>0&&(Re.addText("Mean = "+Re.format(g.meanx)),Re.addText("Mean y = "+Re.format(g.meany))),ue>0&&(Re.addText("Std Dev = "+Re.format(g.rmsx)),Re.addText("Std Dev y = "+Re.format(g.rmsy)))):(J>0&&Re.addText("Entries = "+Re.format(g.entries,"entries")),Y>0&&Re.addText("Mean = "+Re.format(g.meanx)),ue>0&&Re.addText("Std Dev = "+Re.format(g.rmsx)),Q>0&&Re.addText("Underflow = "+Re.format(De.fArray.length>0?De.fArray[0]:0,"entries")),me>0&&Re.addText("Overflow = "+Re.format(De.fArray.length>0?De.fArray[De.fArray.length-1]:0,"entries")),X>0&&Re.addText("Integral = "+Re.format(g.integral,"entries")),2===B?Re.addText(`Skewness = ${Re.format(g.skewx)} #pm ${Re.format(g.skewd)}`):B>0&&Re.addText(`Skewness = ${Re.format(g.skewx)}`),2===$?Re.addText(`Kurtosis = ${Re.format(g.kurtx)} #pm ${Re.format(g.kurtd)}`):$>0&&Re.addText(`Kurtosis = ${Re.format(g.kurtx)}`)),Ve&&Re.fillFunctionStat(this.findFunction(x.clTF1),Ve,1),!0}drawBars(Re,He){var Ve=this;return(0,Te.A)(function*(){const De=Ve.getSelectIndex("x","left",-1),F=Ve.getSelectIndex("x","right",1),J=Ve.getHisto(),Y=J.fXaxis,ue=Ve.options.Text;let Q,me,X,B,$,g,E,_,v,p,C,I,U="",k="",Z="",ee=Ve.options.BarStyle>10?Ve.options.BarStyle%10:0;for(ee>4&&(ee=4),C=Re.swap_xy?0:He,Number.isFinite(Ve.options.BaseLine)&&Ve.options.BaseLine>=Re.scale_ymin&&(C=Math.round(Re.gry(Ve.options.BaseLine))),ue&&(Q=Ve.getColor(J.fMarkerColor),me=-1*Ve.options.TextAngle,X=20,1!==J.fMarkerSize&&me&&(X=.02*He*J.fMarkerSize),Ve.startTextDrawing(42,X,Ve.draw_g,X)),B=De;B0&&(_=E+I,I=Math.round(I*ee/10),Re.swap_xy?(k+=`M${C},${E}h${p-C}v${I}h${C-p}z`,Z+=`M${C},${_}h${p-C}v${-I}h${C-p}z`):(k+=`M${E},${p}h${I}v${C-p}h${-I}z`,Z+=`M${_},${p}h${-I}v${C-p}h${I}z`)),ue&&v))){const he=v===Math.round(v)?v.toString():(0,ve.lg)(v,x.gStyle.fPaintTextFormat);Ve.drawText(Re.swap_xy?{align:12,x:Math.round(p+X/2),y:Math.round(E+.1),height:Math.round(.8*I),text:he,color:Q,latex:0}:me?{align:12,x:E+I/2,y:Math.round(p-2-X/5),width:0,height:0,rotate:me,text:he,color:Q,latex:0}:{align:22,x:Math.round(E+.1*I),y:Math.round(p-2-X),width:Math.round(.8*I),height:X,text:he,color:Q,latex:0})}if(U&&Ve.draw_g.append("svg:path").attr("d",U).call(Ve.fillatt.func),k&&Ve.draw_g.append("svg:path").attr("d",k).call(Ve.fillatt.func).style("fill",(0,L.Qh)(Ve.fillatt.color).brighter(.5).formatHex()),Z&&Ve.draw_g.append("svg:path").attr("d",Z).call(Ve.fillatt.func).style("fill",(0,L.Qh)(Ve.fillatt.color).darker(.5).formatHex()),ue)return Ve.finishTextDrawing()})()}drawFilledErrors(Re){const He=this.getSelectIndex("x","left",-1),Ve=this.getSelectIndex("x","right",1),De=this.getHisto(),F=De.fXaxis,J=[],Y=[];let ue,Q,me,X,B;for(ue=He;ue1&&(v=!0),2===this.options.ErrorKind?this.fillatt.empty()?v=!0:Me="":me&&(p=!1,je="",bt=Y?"":null,Fe=!0),rt=this.lineatt.width+x.gStyle.fEndErrorSize,1===this.options.ErrorKind&&(Ne=Math.floor((this.lineatt.width-1)/2)),v){let ye=this.options.MarkStyle;!ye&&1===J.fMarkerStyle&&(ye=8),this.createAttMarker({attr:J,style:ye}),this.markeratt.size>0?(Ge="",tt=!0,this.markeratt.resetPos(),null===bt&&Y&&(!this.markeratt.fill||this.markeratt.getFullSize()<7)&&(te="",Je=Math.max(5,Math.round(.7*this.markeratt.getFullSize())))):v=!1}const ii=me||v,ai=ii||B||p||X,zi=this.options.Hist&&(!this.lineatt.empty()||!this.fillatt.empty());if(!zi&&!ai)return this.removeG();if(B){if(Cn=this.getColor(J.fMarkerColor),yn=-1*this.options.TextAngle,Sn=20,1!==J.fMarkerSize&&yn&&(Sn=.02*Ve*J.fMarkerSize),!yn&&!this.options.TextKind){const ye=He/(F-De+1);ye<3*Sn&&(yn=270,Sn=Math.round(.7*ye))}this.startTextDrawing(42,Sn,this.draw_g,Sn)}const ti=ai||F-De>3*He,Lr=ye=>(vt=J.getBinContent(ye+1),!(Q&&0===vt||(qt=Math.round(Re.grx(ue.GetBinLowEdge(ye+1))),Ot=Math.round(Re.grx(ue.GetBinLowEdge(ye+2))),Bn=Math.round((qt+Ot)/2),void 0===I&&(I=Bn),St=Math.round(Re.gry(vt)),me?(Yt=J.getBinError(ye+1),pt=Math.round(St-Re.gry(vt+Yt)),st=Math.round(Re.gry(vt-Yt)-St)):pt=st=20,0))),ss=()=>{let ye=5;if(this.options.errorX>0&&(ye=Math.round((Ot-qt)*this.options.errorX),Dn=Bn-ye,$n=Bn+ye,je+=1===this.options.ErrorKind?`M${Dn+Ne},${St-rt}v${2*rt}m0,-${rt}h${$n-Dn-2*Ne}m0,-${rt}v${2*rt}`:`M${Dn+Ne},${St}h${$n-Dn-2*Ne}`),je+=1===this.options.ErrorKind?`M${Bn-rt},${St-pt+Ne}h${2*rt}m${-rt},0v${pt+st-2*Ne}m${-rt},0h${2*rt}`:`M${Bn},${St-pt+Ne}v${pt+st-2*Ne}`,null!==bt){const Pe=Math.max(pt,5),At=Math.max(st,5);bt+=`M${Bn-ye},${St-Pe}h${2*ye}v${Pe+At}h${-2*ye}z`}},Bs=ye=>{if(Lr(ye)){if(B){const Pe=$?J.fBinEntries[ye+1]:vt;if(0!==Pe){const At=Pe===Math.round(Pe)?Pe.toString():(0,ve.lg)(Pe,x.gStyle.fPaintTextFormat);this.drawText(yn?{align:12,x:Bn,y:Math.round(St-2-Sn/5),width:0,height:0,rotate:yn,text:At,color:Cn,latex:0}:{align:22,x:Math.round(qt+.1*(Ot-qt)),y:Math.round(St-2-Sn),width:Math.round(.8*(Ot-qt)),height:Sn,text:At,color:Cn,latex:0})}}p?(0===lt.length?lt=`M${Bn},${St}`:lt+=Mn===Bn?"v"+(St-bn):bn===St?"h"+(Bn-Mn):`l${Bn-Mn},${St-bn}`,Mn=Bn,bn=St):X&&g.push({grx:(qt+Ot)/2,gry:Re.gry(vt)}),ii&&St>=-pt&&St<=Ve+st&&(null!==Me&&(Me+=`M${qt},${St-pt}h${Ot-qt}v${pt+st+1}h${qt-Ot}z`),null!==Ge&&tt&&(Ge+=this.markeratt.create(Bn,St),null!==te&&(te+=`M${Bn-Je},${St-Je}h${2*Je}v${2*Je}h${-2*Je}z`)),null!==je&&Fe&&ss())}};if((tt||Fe)&&(!x.settings.OptimizeDraw||F-De<5e4&&1===x.settings.OptimizeDraw)){for(W=De;WP&&(fe=W),b=Math.min(b,V),P=Math.max(P,V),k=V):(V!==k||_)&&(ee!==U&&(E+="h"+(ee-U)),V!==k&&(E+="v"+(V-k)),k=V,U=ee));const yo=Y&&this.fillatt.empty()&&zi&&!ii&&!p&&!X,xt=()=>{this.draw_g.append("svg:path").attr("d",E+(!this.fillatt.empty()||yo?ge:"")).style("stroke-linejoin","miter").call(this.lineatt.func).call(this.fillatt.func)};let K=Ve+3;if(!yo){const ye=Math.round(Re.gry(0));ye<=0?K=-3:ye{if(1===this.options.ErrorKind)return this.drawNormal(He,Ve,De)}):3===this.options.ErrorKind||4===this.options.ErrorKind?this.drawFilledErrors(He):this.drawNormal(He,Ve,De))}getBinTooltips(Re){const He=[],Ve=this.getObjectHint(),F=this.getFramePainter().getGrFuncs(this.options.second_x,this.options.second_y),J=this.getHisto(),Y=J.fXaxis.GetBinLowEdge(Re+1),ue=J.fXaxis.GetBinLowEdge(Re+2),Q=this.getAxisBinTip("x",J.fXaxis,Re);let me=J.getBinContent(Re+1);return Ve&&He.push(Ve),this.options.Error||this.options.Mark||this.isTF1()?(He.push("x = "+Q,"y = "+F.axisAsText("y",me)),this.options.Error&&("["===Q[0]&&He.push("error x = "+((ue-Y)/2).toPrecision(4)),He.push("error y = "+J.getBinError(Re+1).toPrecision(4)))):(He.push(`bin = ${Re+1}`,`x = ${Q}`),J.$baseh&&(me-=J.$baseh.getBinContent(Re+1)),me===Math.round(me)?He.push("entries = "+me):He.push("entries = "+(0,ve.lg)(me,x.gStyle.fStatFormat))),He}processTooltipEvent(Re){if(!Re||!this.draw_content||!this.draw_g||this.options.Mode3D)return this.draw_g?.selectChild(".tooltip_bin").remove(),null;const He=this.getFramePainter(),Ve=He.getGrFuncs(this.options.second_x,this.options.second_y),De=this.getHisto(),F=this.getSelectIndex("x","left",-1),J=this.getSelectIndex("x","right",2);let me,X,B,$,g,Y=He.getFrameWidth(),ue=He.getFrameHeight(),Q=null,E=2,_=F,v=J,p=Re.x,C=Re.y;const I=b=>{const P=De.fXaxis.GetBinLowEdge(b+1);return Ve.logx&&P<=0?null:Ve.grx(P)},U=b=>{const P=De.getBinContent(b+1);return Ve.logy&&Pp+.5?k?_=b:v=b:(_++,v--)}if(Q=v=_,X=I(Q),k){for(;_>F&&I(_-1)X-2;)++v}else{for(;_>F&&I(_-1)>X-2;)--_;for(;vue/10&&(Q=Math.round(_+(v-_)/ue*C)),X=I(Q)}if(X=Math.round(X),B=Math.round(I(Q+1)),this.options.Bar){const b=B-X;X+=Math.round(De.fBarOffset/1e3*b),B=X+Math.round(De.fBarWidth/1e3*b)}X>B&&([X,B]=[B,X]);const Z=Math.round((X+B)/2),ee=$=g=U(Q);if(this.options.Bar)me=!0,E=0,$=Math.round(Ve.gry(!1!==this.options.BaseLine&&this.options.BaseLine>Ve.scale_ymin?this.options.BaseLine:Ve.scale_ymin)),$>g&&([$,g]=[g,$]),!Re.touch&&1===Re.nproc&&(C<$||C>g)&&(Q=null);else if(this.options.Error&&!0!==this.options.Hist||this.options.Mark||this.options.Line||this.options.Curve){me=!this.isTF1();let b=3;if(this.markeratt&&(b=Math.max(b,this.markeratt.getFullSize())),this.options.Error){const P=De.getBinContent(Q+1),T=De.getBinError(Q+1);$=Math.round(Ve.gry(P+T)),g=Math.round(Ve.gry(P-T)),0===P&&this.isTProfile()&&(Q=null);const z=(B-X)*this.options.errorX;X=Math.round(Z-z),B=Math.round(Z+z)}B-X<2*b&&(X=Z-b,B=Z+b),$=Math.min($,ee-b),g=Math.max(g,ee+b),!Re.touch&&1===Re.nproc&&(C<$||C>g)&&(Q=null)}else me=1===Re.nproc&&J-Fg)&&!Re.touch&&(Q=null));null!==Q&&(Q===F&&X>p+E||Q===J-1&&BB+E||!this.options.Zero&&0===De.getBinContent(Q+1))&&(Q=null);let he=this.draw_g.selectChild(".tooltip_bin");if(null===Q||g<=0||$>=ue)return he.remove(),null;const V={name:this.getObjectName(),title:De.fTitle,x:Z,y:ee,exact:!0,color1:this.lineatt?.color??"green",color2:this.fillatt?.getFillColorAlt("blue")??"blue",lines:this.getBinTooltips(Q)};if(Re.disabled)he.remove(),V.changed=!0;else if(me)he.empty()&&(he=this.draw_g.append("svg:rect").attr("class","tooltip_bin").style("pointer-events","none").call(ve.Ru)),V.changed=he.property("current_bin")!==Q,V.changed&&he.attr("x",Ve.swap_xy?$:X).attr("width",Ve.swap_xy?g-$:B-X).attr("y",Ve.swap_xy?X:$).attr("height",Ve.swap_xy?B-X:g-$).style("opacity","0.3").property("current_bin",Q),V.exact=Math.abs(ee-C)<=5||C>=$&&C<=g,V.menu=V.exact,V.menu_dist=Math.sqrt((Z-p)**2+(ee-C)**2);else{const b=this.lineatt.width+3;he.empty()&&(he=this.draw_g.append("svg:circle").attr("class","tooltip_bin").style("pointer-events","none").attr("r",b).call(this.lineatt.func).call(this.fillatt.func)),V.exact=Math.abs(Z-Re.x)<=b&&Math.abs(ee-Re.y)<=b,V.menu=V.exact,V.menu_dist=Math.sqrt((Z-Re.x)**2+(ee-Re.y)**2),V.changed=he.property("current_bin")!==Q,V.changed&&he.attr("cx",Z).attr("cy",ee).property("current_bin",Q)}return V.changed&&(V.user_info={obj:De,name:De.fName,bin:Q,cont:De.getBinContent(Q+1),grx:Z,gry:ee}),V}fillHistContextMenu(Re){Re.add("Auto zoom-in",()=>this.autoZoom());const He=this.getSupportedDrawOptions();Re.addDrawMenu("Draw with",He,Ve=>{if(0===Ve.indexOf(x.kInspect))return this.showInspector(Ve);this.decodeOptions(Ve),this.options.need_fillcol&&this.fillatt?.empty()&&this.fillatt.change(5,1001),this.interactiveRedraw("pad","drawopt")}),!this.snapid&&!this.isTProfile()&&!this.isTF1()&&Re.addRebinMenu(Ve=>this.rebinHist(Ve))}rebinHist(Re){const He=this.getHisto(),Ve=He.fXaxis,De=Math.floor(Ve.fNbins/Re);if(De<2)return;const F=new Array(De+2),J=Ve.fXbins.length>0?new Array(De):null;F[0]=He.fArray[0];let Y=1;for(let Q=1;Q<=De;++Q){J&&(J[Q-1]=Ve.fXbins[Y-1]);let me=0;for(let X=0;X0)){for(;Re2&&He1||"y"===Re&&Math.abs(Ve-He)>1e-6*Math.abs(this.ymax-this.ymin))}callDrawFunc(Re){var He=this;return(0,Te.A)(function*(){const Ve=He.getMainPainter(),De=He.getFramePainter();return Ve!==He&&De&&De.mode3d!==He.options.Mode3D&&He.copyOptionsFrom(Ve),He.options.Mode3D?He.draw3D(Re):He.draw2D(Re)})()}draw2D(){var Re=this;return(0,Te.A)(function*(){return Re.clear3DScene(),Re.scanContent(!0),(Re.isMainPainter()?Re.drawColorPalette(!1):Promise.resolve(!0)).then(()=>Re.drawAxes()).then(()=>Re.draw1DBins()).then(()=>Re.drawHistTitle()).then(()=>Re.updateFunctions()).then(()=>(Re.updateStatWebCanvas(),Re.addInteractivity()))})()}draw3D(Re){var He=this;return(0,Te.A)(function*(){return console.log("3D drawing is disabled, load ./hist/TH1Painter.mjs"),He.draw2D(Re)})()}redraw(Re){return this.callDrawFunc(Re)}static draw(Re,He,Ve){return(0,Te.A)(function*(){return ke.mf._drawHist(new Ye(Re,He),Ve)})()}}},9997:(Yr,mt,Se)=>{"use strict";Se.d(mt,{AJ:()=>Ve,Hn:()=>Ze,N7:()=>Re,YB:()=>He});var Te=Se(4882),x=Se(8872),L=Se(8362),ve=Se(2985),ke=Se(2843),ot=Se(1922),Ye=Se(4615);function Ze(De,F,J,Y,ue){const X=new Float32Array(4008),B=new Float32Array(4008),$=new Int32Array(4008),g=J.length,E=J[0],_=J[g-1],v=[],p=[0,0,0,0],C=[0,0,0,0],I=[0,0,0,0],U=[0,0,0,0],k=F.grx,Z=F.gry;let he,V,b,T,z,W,fe,we,Me,je,Ge,lt,bt,te,Je,ee=0,P=0;const Ne=g<10?qt=>{if(qt>=_)return g-1;for(let Ot=0;Ot{if(qt=_)return g-1;let Mn,Ot=0,Bn=g-1;for(;Bn-Ot>1;)Mn=Math.round((Bn+Ot)/2),qt{const yn=Bn===$n,Sn=yn?Cn-Mn:$n-Bn,ii=bn-qt;let Lr,ss,Bs,yo,ai=Ot+1,zi=ee-1,ti=0;const xt=zi+1002-3;for(;ai<=Dn&&zi<=xt;)yo=J[ai],Bs=yo-qt,ss=Bs/ii,Lr=Sn*ss,yn?(X[zi]=Bn,B[zi]=Mn+Lr):(X[zi]=Bn+Lr,B[zi]=Mn),$[zi]=ai,ti++,zi+=2,ai++;return ti};for(z=F.j1;zI[we]&&(fe=we),fe++,ee=1,te=1;te<=4;te++)we=fe%4+1,Me=rt(I[fe-1],U[fe-1],p[fe-1],C[fe-1],I[we-1],U[we-1],p[we-1],C[we-1]),ee+=2*Me,fe=we;for(fe=I[0]<=I[1]?0:1,we=I[2]<=I[3]?2:3,I[fe]>I[we]&&(fe=we),fe++,ee=2,te=1;te<=4;te++)we=1===fe?4:fe-1,Me=rt(I[fe-1],U[fe-1],p[fe-1],C[fe-1],I[we-1],U[we-1],p[we-1],C[we-1]),ee+=2*Me,fe=we;for(je=0,te=1;te<=ee-5;te+=2)for(;$[te-1]!==$[te];){for(Ge=X[te],lt=B[te],bt=$[te],Je=te;Je<=ee-5;Je+=2)X[Je]=X[Je+2],B[Je]=B[Je+2],$[Je]=$[Je+2];if(X[ee-3]=Ge,B[ee-3]=lt,$[ee-3]=bt,je>2e3)break;je++}if(je>100)continue;for(te=1;te<=ee-2;te+=2)he=$[te-1],he>=0&&he=0){pt=he;break}for(W=0,he=pt-1;he>=0;he--)St[W]=he,W++;for(he=pt;he0&&Ot[T+1]===st[Cn]&&Bn[T+1]===vt[Cn]&&(Cn--,st[Cn]=Ot[T],vt[Cn]=Bn[T],Ot[T]=Ot[T+1]=bn,Bn[T]=Bn[T+1]=Dn,Sn++);if(0===Sn)break}for(Cn+1=0&&ue(qt,st,vt,Cn,yn,he),$n=0,T=2;TMe+je?1:0}function z(fe,we,Me,je,Ge,lt,bt,te){V>=_.length&&console.log("more than 6 points???");const Je=(bt-Me)/(lt-Me);let tt=3;0!==b&&Math.abs(Je)=0)return console.error("More than 8 vertexes for the bin");const lt=Ge+8+he[Ge];he[Ge]--,he[lt]=fe}this.createNormIndex=function(fe){fe.donormals&&(he=new Int32Array((fe.i2-fe.i1)*(fe.j2-fe.j1)*8).fill(-1))},this.createBuffers=function(){if(this.loop){for(let fe=1;fe0&&(I=new Float32Array(6*C)),this.dogrid&&k>0&&(Z=new Float32Array(6*k))}},this.addLineSegment=function(fe,we,Me,je,Ge,lt){if(!this.dolines)return;const bt=T(Me,this.grz_min,this.grz_max,0),te=T(lt,this.grz_min,this.grz_max,0);if(bt!==te||0===bt){if(!this.loop)return++C;if(0!==bt){const Je=lt-Me;fe=je-(je-fe)/Je*(lt-(Me=bt<0?this.grz_min:this.grz_max)),we=Ge-(Ge-we)/Je*(lt-Me)}if(0!==te){const Je=Me-lt;je=fe-(fe-je)/Je*(Me-(lt=te<0?this.grz_min:this.grz_max)),Ge=we-(we-Ge)/Je*(Me-lt)}I[U]=fe,I[U+1]=we,I[U+2]=Me,U+=3,I[U]=je,I[U+1]=Ge,I[U+2]=lt,U+=3}},this.addMainTriangle=function(fe,we,Me,je,Ge,lt,bt,te,Je,tt,Fe,Ne,rt){for(let St=1;St1&&St===B.length-1&&3===Yt&&Me<=this.grz_max&&(pt=st=vt=Yt=0),3===Yt)continue;if(-3===Yt)return;if(!this.loop){let Bn=Math.abs(st-pt)+Math.abs(vt-st)+Math.abs(pt-vt);0===pt&&++Bn,0===st&&++Bn,0===vt&&++Bn,(1===Bn||2===Bn)&&console.error(`FOUND npnts = ${Bn}`),Bn>2&&(void 0===$[St]&&($[St]=0),$[St]+=Bn-2),(pt>0||st>0||vt>0)&&(pt!==st||st!==vt||vt!==pt)&&++k;continue}if(P=0,V=0,0===pt&&(_[V]=fe,_[V+1]=we,_[V+2]=Me,V+=3),pt!==st&&(b=0,(pt<0||st<0)&&z(fe,we,Me,je,Ge,lt,B[St-1]),(pt>0||st>0)&&z(fe,we,Me,je,Ge,lt,B[St],!0)),0===st&&(_[V]=je,_[V+1]=Ge,_[V+2]=lt,V+=3),st!==vt&&(b=0,(st<0||vt<0)&&z(je,Ge,lt,bt,te,Je,B[St-1]),(st>0||vt>0)&&z(je,Ge,lt,bt,te,Je,B[St],!0)),0===vt&&(_[V]=bt,_[V+1]=te,_[V+2]=Je,V+=3),vt!==pt&&(b=0,(vt<0||pt<0)&&z(bt,te,Je,fe,we,Me,B[St-1]),(vt>0||pt>0)&&z(bt,te,Je,fe,we,Me,B[St],!0)),0===V)continue;if(V<9){console.log(`found ${V/3} points, must be at least 3`);continue}if(Z&&6===P){for(let Bn=0;Bn<6;++Bn)Z[ee+Bn]=v[Bn];ee+=6}const qt=g[St];let Ot=E[St];this.donormals&&9===V&&(W(Ot,Fe,Ne,rt),W(Ot+3,Fe,Ne+1,tt?rt+1:rt),W(Ot+6,Fe,tt?Ne:Ne+1,rt+1));for(let Bn=3;Bn2?F.slice(2):"";F="XY",Y=ue=parseInt(me)||1}else if((0,x.isStr)(F)&&F.length>1){const me=F.indexOf("_");me>0&&"X"===F[0]&&"Y"===F[me+1]?(Y=parseInt(F.slice(1,me))||1,ue=parseInt(F.slice(me+2))||1,F="XY"):me>0&&"Y"===F[0]&&"X"===F[me+1]?(ue=parseInt(F.slice(1,me))||1,Y=parseInt(F.slice(me+2))||1,F="XY"):(Y=ue=parseInt(F.slice(1))||1,F=F[0])}if(!Y&&!ue&&(Y=ue=1),F&&this.is_projection===F){if(this.projection_widthX!==Y||this.projection_widthY!==ue)return this.projection_widthX=Y,void(this.projection_widthY=ue);F=""}delete this.proj_hist;const Q=this.is_projection===F?"":F;this.projection_widthX=Y,this.projection_widthY=ue,this.is_projection="",this.provideSpecialDrawArea(Q).then(()=>(this.is_projection=Q,this.redrawProjection()))}redrawProjection(F,J,Y,ue){var Q=this;return(0,Te.A)(function*(){if(!Q.is_projection)return!1;if(void 0===ue){if(!Q.tt_handle)return;F=Math.round((Q.tt_handle.i1+Q.tt_handle.i2)/2),J=F+1,Y=Math.round((Q.tt_handle.j1+Q.tt_handle.j2)/2),ue=Y+1}const me=Q.getCanvPainter();if(me&&!me._readonly&&void 0!==Q.snapid)return("X"===Q.is_projection||"XY"===Q.is_projection)&&!me.websocketTimeout("projX")&&me.sendWebsocket(`EXECANDSEND:DXPROJ:${Q.snapid}:ProjectionX("_projx",${Y+1},${ue},"")`)&&me.websocketTimeout("projX",1e3),("Y"===Q.is_projection||"XY"===Q.is_projection)&&!me.websocketTimeout("projY")&&me.sendWebsocket(`EXECANDSEND:DYPROJ:${Q.snapid}:ProjectionY("_projy",${F+1},${J},"")`)&&me.websocketTimeout("projY",1e3),!0;if(Q.doing_projection)return!1;Q.doing_projection=!0;const X=Q.getHisto(),B=()=>{const E=(0,x.createHistogram)(x.clTH1D,Q.nbinsx);return Object.assign(E.fXaxis,X.fXaxis),E.fName="xproj",E.fTitle="X projection",E},$=()=>{const E=(0,x.createHistogram)(x.clTH1D,Q.nbinsy);return Object.assign(E.fXaxis,X.fYaxis),E.fName="yproj",E.fTitle="Y projection",E},g=(E,_)=>{let v=0,p=-1;if("X"===E){for(let C=0;CQ.drawInSpecialArea(Q.proj_hist2,"","Y")).then(E=>(delete Q.doing_projection,E))):(g(Q.is_projection,Q.proj_hist),Q.drawInSpecialArea(Q.proj_hist).then(E=>(delete Q.doing_projection,E)))})()}executeMenuCommand(F,J){return!!super.executeMenuCommand(F,J)||("SetShowProjectionX"===F.fName||"SetShowProjectionY"===F.fName?(this.toggleProjection(F.fName[17],J&&parseInt(J)?parseInt(J):1),!0):"SetShowProjectionXY"===F.fName&&(this.toggleProjection("X"+J.replaceAll(",","_Y")),!0))}fillHistContextMenu(F){if(!this.isTH2Poly()&&this.getPadPainter()?.iscan){let Y=this.is_projection||"";Y&&(Y+=this.projection_widthX),this.projection_widthX!==this.projection_widthY&&"XY"===this.is_projection&&(Y=`X${this.projection_widthX}_Y${this.projection_widthY}`);const ue=["X1","X2","X3","X5","X10","Y1","Y2","Y3","Y5","Y10","XY1","XY2","XY3","XY5","XY10"];Y&&ue.unshift("Off"),F.add("sub:Projections",()=>F.input("Input projection kind X1 or XY2 or X3_Y4",Y,"string").then(Q=>this.toggleProjection(Q)));for(let Q=0;Qthis.toggleProjection(me));F.add("endsub:")}this.isTH2Poly()||F.add("Auto zoom-in",()=>this.autoZoom());const J=this.getSupportedDrawOptions();F.addDrawMenu("Draw with",J,Y=>{if(0===Y.indexOf(x.kInspect))return this.showInspector(Y);this.decodeOptions(Y),this.interactiveRedraw("pad","drawopt")}),(this.options.Color||this.options.Contour||this.options.Surf||12===this.options.Lego||14===this.options.Lego)&&this.fillPaletteMenu(F,!0)}clickButton(F){const J=super.clickButton(F);if(J)return J;if(this.isMainPainter())switch(F){case"ToggleColor":return this.toggleColor();case"ToggleColorZ":return this.toggleColz();case"Toggle3D":return this.toggleMode3D()}return!1}fillToolbar(){super.fillToolbar(!0);const F=this.getPadPainter();F&&(!this.isTH2Poly()&&!this.options.Axis&&F.addPadButton("th2color","Toggle color","ToggleColor"),this.options.Axis||F.addPadButton("th2colorz","Toggle color palette","ToggleColorZ"),F.addPadButton("th2draw3d","Toggle 3D mode","Toggle3D"),F.showPadButtons())}toggleColor(){return this.options.Mode3D?(this.options.Mode3D=!1,this.options.Color=!0):(this.options.Color=!this.options.Color,this.options.Scat=!this.options.Color),this._can_move_colz=!0,this.copyOptionsToOthers(),this.interactiveRedraw("pad","drawopt")}autoZoom(){if(this.isTH2Poly())return;const F=this.getSelectIndex("x","left",-1),J=this.getSelectIndex("x","right",1),Y=this.getSelectIndex("y","left",-1),ue=this.getSelectIndex("y","right",1),Q=this.getObject();if(F===J||Y===ue)return;let me=Q.getBinContent(F+1,Y+1);for(let I=F;I0)return;let X=J,B=F,$=ue,g=Y;for(let I=F;Ime&&(I=B&&(B=I+1),U<$&&($=U),U>=g&&(g=U+1));let E,_,v,p,C=!1;return X===B-1&&X>F+1&&BY+1&&gF||BY||gthis.gmaxbin&&(this.gmaxbin=X),X>0&&(null===this.gminposbin||this.gminposbin>X)&&(this.gminposbin=X)}}else for(this.gminbin=this.gmaxbin=J.getBinContent(1,1),this.gminposbin=null,Y=0;Ythis.gmaxbin&&(this.gmaxbin=Q),Q>0&&(null===this.gminposbin||this.gminposbin>Q)&&(this.gminposbin=Q)}null===this.gminposbin&&this.gmaxbin>0&&(this.gminposbin=1e-4*this.gmaxbin),this.options.Axis>0?this.draw_content=!1:(this.draw_content=0!==this.gmaxbin||0!==this.gminbin,!this.draw_content&&this.options.Zero&&this.isTH2Poly()&&(this.draw_content=!0,this.options.Line=1))}countStat(F,J){(0,x.isFunc)(F)||(F=this.options.cutg?(T,z)=>this.options.cutg.IsInside(T,z):null);const Y=this.getHisto(),ue=Y.fXaxis,Q=Y.fYaxis,me=this.getFramePainter(),X=me.getGrFuncs(this.options.second_x,this.options.second_y),B={name:Y.fName,entries:0,eff_entries:0,integral:0,meanx:0,meany:0,rmsx:0,rmsy:0,matrix:[0,0,0,0,0,0,0,0,0],xmax:0,ymax:0,wmax:null,skewx:0,skewy:0,skewd:0,kurtx:0,kurty:0,kurtd:0},$=!me.isAxisZoomed("x")&&!me.isAxisZoomed("y")&&Math.abs(Y.fTsumw)>1e-300&&!F;let I,U,k,Z,ee,he,V,b,P,g=0,E=0,_=0,v=0,p=0,C=0;if(this.isTH2Poly()){const T=Y.fBins.arr.length;let z,W,fe,we,Me,je,Ge;for(z=0;zX.scale_xmax?2:W.fXmaxX.scale_ymax?2:W.fYmax0)&&(we=W.fPoly.fGraphs.arr[Me]),fe=0;fe1&&(k/=Ge,Z/=Ge),ee=W.fContent,B.entries+=ee,B.matrix[3*U+I]+=ee,1===I&&1===U&&(!F||F(k,Z))&&((null===B.wmax||ee>B.wmax)&&(B.wmax=ee,B.xmax=k,B.ymax=Z),$||(g+=ee,E+=ee*ee,_+=k*ee,v+=Z*ee,p+=k*k*ee,C+=Z*Z*ee))}}else{he=this.getSelectIndex("x","left"),V=this.getSelectIndex("x","right"),b=this.getSelectIndex("y","left"),P=this.getSelectIndex("y","right");for(let T=0;T<=this.nbinsx+1;++T){I=T<=he?0:T>V?2:1,k=ue.GetBinCoord(T-.5);for(let z=0;z<=this.nbinsy+1;++z)U=z<=b?0:z>P?2:1,Z=Q.GetBinCoord(z-.5),ee=Y.getBinContent(T,z),B.entries+=ee,B.matrix[3*U+I]+=ee,1===I&&1===U&&(!F||F(k,Z))&&((null===B.wmax||ee>B.wmax)&&(B.wmax=ee,B.xmax=k,B.ymax=Z),$||(g+=ee,E+=ee*ee,_+=k*ee,v+=Z*ee,p+=k**2*ee,C+=Z**2*ee))}}if($&&(g=Y.fTsumw,E=Y.fTsumw2,_=Y.fTsumwx,p=Y.fTsumwx2,v=Y.fTsumwy,C=Y.fTsumwy2),Math.abs(g)>1e-300&&(B.meanx=_/g,B.meany=v/g,B.rmsx=Math.sqrt(Math.abs(p/g-B.meanx**2)),B.rmsy=Math.sqrt(Math.abs(C/g-B.meany**2))),null===B.wmax&&(B.wmax=0),B.integral=g,Y.fEntries>1&&(B.entries=Y.fEntries),B.eff_entries=E?g*g/E:Math.abs(g),J&&!this.isTH2Poly()){let T=0,z=0,W=0,fe=0,we=0,Me=0;for(let te=he;te0?Math.sqrt(6/B.eff_entries):0,we*lt!=0&&(B.kurtx=W/(we*lt)-3),we*bt!=0&&(B.kurty=fe/(we*bt)-3),B.kurtd=B.eff_entries>0?Math.sqrt(24/B.eff_entries):0}return B}fillStatistic(F,J,Y){if(this.isIgnoreStatsFill())return!1;1===J&&(J=1111);const ue=Math.floor(J%10),Q=Math.floor(J/10)%10,me=Math.floor(J/100)%10,X=Math.floor(J/1e3)%10,B=Math.floor(J/1e4)%10,$=Math.floor(J/1e5)%10,g=Math.floor(J/1e6)%10,E=Math.floor(J/1e7)%10,_=Math.floor(J/1e8)%10,v=this.countStat(void 0,E>0||_>0);if(F.clearPave(),ue>0&&F.addText(v.name),Q>0&&F.addText("Entries = "+F.format(v.entries,"entries")),me>0&&(F.addText("Mean x = "+F.format(v.meanx)),F.addText("Mean y = "+F.format(v.meany))),X>0&&(F.addText("Std Dev x = "+F.format(v.rmsx)),F.addText("Std Dev y = "+F.format(v.rmsy))),g>0&&F.addText("Integral = "+F.format(v.matrix[4],"entries")),2===E?(F.addText(`Skewness x = ${F.format(v.skewx)} #pm ${F.format(v.skewd)}`),F.addText(`Skewness y = ${F.format(v.skewy)} #pm ${F.format(v.skewd)}`)):E>0&&(F.addText(`Skewness x = ${F.format(v.skewx)}`),F.addText(`Skewness y = ${F.format(v.skewy)}`)),2===_?(F.addText(`Kurtosis x = ${F.format(v.kurtx)} #pm ${F.format(v.kurtd)}`),F.addText(`Kurtosis y = ${F.format(v.kurty)} #pm ${F.format(v.kurtd)}`)):_>0&&(F.addText(`Kurtosis x = ${F.format(v.kurtx)}`),F.addText(`Kurtosis y = ${F.format(v.kurty)}`)),B>0||$>0){const p=C=>v.matrix[C].toFixed(0);F.addText(`${p(6)} | ${p(7)} | ${p(7)}`),F.addText(`${p(3)} | ${p(4)} | ${p(5)}`),F.addText(`${p(0)} | ${p(1)} | ${p(2)}`)}return Y&&F.fillFunctionStat(this.findFunction(x.clTF2),Y,2),!0}drawBinsColor(){const F=this.getHisto(),J=this.prepareDraw(),Y=this.getContour(),ue=this.getHistPalette(),Q=[],me=this._show_empty_bins,X=1===J.xbar2&&0===J.xbar1,B=1===J.ybar2&&0===J.ybar1;let $,g,E,_,v,p,C,I=null,U=!this.options.Zero;const k=this.options.cutg,Z=()=>{I.path+=`h${$}v${I.y1-I.y2}h${-$}z`,I=null};!U&&!me&&null===Y.getPaletteIndex(ue,0)&&(U=!0);for(let ee=J.i1;ee=J.j1;--he){if(v=F.getBinContent(ee+1,he+1),p=0===v,p&&U||k&&!k.IsInside(F.fXaxis.GetBinCoord(ee+.5),F.fYaxis.GetBinCoord(he+.5))){I&&Z();continue}if(C=Y.getPaletteIndex(ue,v),null===C){if(!p||!me){I&&Z();continue}C=0}g=J.gry[he]-J.gry[he+1]||1,B?_=J.gry[he+1]:(_=Math.round(J.gry[he]-g*J.ybar2),g=Math.round(g*(J.ybar2-J.ybar1))||1);const V=`M${E},${_}`;let b=Q[C];if(b){if(B&&b===I){b.y1=_+g;continue}{const P=E-b.x1,T=_-b.y2;if(P||T){const z=`m${P},${T}`;b.path+=z.length{ee&&this.draw_g.append("svg:path").attr("fill",ue.getColor(he)).attr("d",ee.path)}),J}drawBinsProjected(){const F=this.prepareDraw({rounding:!1,nozoom:!0,extra:100,original:!0}),J=this.getFramePainter(),Y=J.getGrFuncs(this.options.second_x,this.options.second_y),ue=this.getContourLevels(),Q=this.getHistPalette(),me=J.getProjectionFunc();return F.grz=X=>X,F.grz_min=ue[0],F.grz_max=ue[ue.length-1],He(this.getHisto(),F,ue,(X,B)=>{let g,E,$="";for(let _=0;_{const E=$.x2-$.x1,_=$.y2-$.y1,v=g.x2-g.x1,p=g.y2-g.y1,C=E*p-v*_;if(0===C)return 0;const I=C>0,U=$.x1-g.x1,k=$.y1-g.y1,Z=E*k-_*U;if(Z<0===I)return null;const ee=v*k-p*U;if(ee<0===I||Z>C===I||ee>C===I)return null;const he=ee/C;return{x:Math.round($.x1+he*E),y:Math.round($.y1+he*_)}},B=($,g,E,_,v,p)=>{let I,U,k,Z,he,V,b,C="",ee=!1;for(let Ge=E;Ge<=_;++Ge){if(V=Math.round($[Ge]),b=Math.round(g[Ge]),C)if(Ge===_&&E!==_&&V===k&&b===Z){if(!ee)return"";C+="z",v=!1,he=!0}else{const lt=V-I,bt=b-U;lt?(ee=!0,C+=bt?`l${lt},${bt}`:`h${lt}`):bt&&(ee=!0,C+=`v${bt}`)}else C=`M${V},${b}`,k=V,Z=b;I=V,U=b}if(!v||he||!p)return v?C+"z":C;const P=[{x:0,y:0},{x:Y,y:0},{x:Y,y:ue},{x:0,y:ue}],T=(Ge,lt)=>{const bt={x1:$[Ge],y1:g[Ge],x2:2*$[Ge]-$[Ge+lt],y2:2*g[Ge]-g[Ge+lt]};for(let te=0;te<4;++te){const Je=X(bt,{x1:P[te].x,y1:P[te].y,x2:P[(te+1)%4].x,y2:P[(te+1)%4].y});if(Je)return Je.indx=te+.5,Je}return null};let z,W;for(E--;E<_-1&&!z;)z=T(++E,1);if(!z)return"";for(_++;E<_-1&&!W;)W=T(--_,-1);if(!W)return"";let fe=B($,g,E,_),we=W.indx;for(fe+=`L${W.x},${W.y}`;Math.abs(we-z.indx)>.1;)we=Math.round(we+.5)%4,fe+=`L${P[we].x},${P[we].y}`,we+=.5;return fe+`L${z.x},${z.y}z`};return 14===this.options.Contour&&this.draw_g.append("svg:path").attr("d",`M0,0h${Y}v${ue}h${-Y}z`).style("fill",me.calcColor(0,Q.length)),Ze(this.getHisto(),F,Q,me,($,g,E,_,v,p)=>{const C=me.getColor($);let U,I=C;switch(this.options.Contour){case 1:case 14:break;case 11:I="none",U=this.createAttLine({color:C,std:!1});break;case 12:I="none",U=this.createAttLine({color:1,style:p%5+1,width:1,std:!1});break;case 13:I="none",U=this.lineatt}const k=B(g,E,_,v,"none"!==I,!0);if(!k)return;const Z=this.draw_g.append("svg:path").attr("d",k).style("fill",I);U&&Z.call(U.func)}),F.hide_only_zeros=!0,F}createPolyBin(F,J,Y){let B,ue="",Q="",me=0,X=0,$=1,g=null;J.fPoly._typename===x.clTMultiGraph?$=J.fPoly.fGraphs.arr.length:g=J.fPoly,Y&&(J._sumx=J._sumy=J._suml=0);const E=(v,p,C,I)=>{const U=Math.sqrt((v-C)**2+(p-I)**2);J._sumx+=(v+C)*U/2,J._sumy+=(p+I)*U/2,J._suml+=U},_=()=>{me&&(Q+="h"+me,me=0),X&&(Q+="v"+X,X=0)};for(B=0;B<$;++B){(!g||B>0)&&(g=J.fPoly.fGraphs.arr[B]);const v=g.fX,p=g.fY;let C,I,U,Z,ee,k=g.fNpoints,he=Math.round(F.grx(v[0])),V=Math.round(F.gry(p[0]));k>2&&v[0]===v[k-1]&&p[0]===p[k-1]&&k--;const b=`M${he},${V}`;for(Q="",C=1;C0?(J._midx=Math.round(J._sumx/J._suml),J._midy=Math.round(J._sumy/J._suml)):(J._midx=Math.round(F.grx((J.fXmin+J.fXmax)/2)),J._midy=Math.round(F.gry((J.fYmin+J.fYmax)/2)))),ue}drawPolyBinsColor(){var F=this;return(0,Te.A)(function*(){const J=F.getObject(),Y=F.getFramePainter(),ue=Y.getGrFuncs(F.options.second_x,F.options.second_y),Q=Y.getFrameHeight(),me=[],X=[],B=J.fBins.arr.length;let $,g,E,_,v;F.maxbin=F.gmaxbin,F.minbin=F.gminbin,F.minposbin=F.gminposbin;const p=F.getContour(!0),C=F.getHistPalette(),I=F.options.Line||F.options.Text;for(v=0;vue.scale_xmax||E.fXmaxue.scale_ymax||E.fYmax0){const k=F.getColor(J.fMarkerColor),Z=-1*F.options.TextAngle,ee=F.draw_g.append("svg:g").attr("class","th2poly_text"),he=1!==J.fMarkerSize&&Z?Math.round(.02*Q*J.fMarkerSize):12;for(F.startTextDrawing(42,he,ee,he),v=0;v({poly:!0}))})()}drawBinsText(F){var J=this;return(0,Te.A)(function*(){const Y=J.getObject(),ue=J.options.cutg,Q=J.getColor(Y.fMarkerColor),me=-1*J.options.TextAngle,X=J.draw_g.append("svg:g").attr("class","th2_text"),B=J.matchObjectType(x.clTProfile2D)&&(0,x.isFunc)(Y.getBinEntries),$="E"===J.options.TextKind,g=$&&!J.options.TextLine?1:0;let E,_,v,p,C=20,I=0;F||(F=J.prepareDraw({rounding:!1})),1!==Y.fMarkerSize&&me&&(C=Math.round(.02*Y.fMarkerSize*J.getFramePainter().getFrameHeight())),0!==Y.fBarOffset&&(I=.001*Y.fBarOffset),J.startTextDrawing(42,C,X,C);for(let U=F.i1;UF)})()}drawBinsArrow(){const F=this.getObject(),J=this.options.cutg,Y=this.prepareDraw({rounding:!1}),ue=(Y.grx[Y.i2]-Y.grx[Y.i1])/(Y.i2-Y.i1+1)/2,Q=(Y.gry[Y.j2]-Y.gry[Y.j1])/(Y.j2-Y.j1+1)/2,me=(P,T)=>P?T?`l${P},${T}`:`h${P}`:T?`v${T}`:"";let X,B,g,E,_,v,C,I,U,k,Z,ee,he,V,b,$=1e-30,p="";for(let P=0;P<2;++P)for(X=Y.i1;X5||Math.abs(E)>5)&&(he=Math.sqrt(9/(g**2+E**2)),V=Math.round(he*(g+E)),b=Math.round(he*(g-E)),(V||b)&&(p+=`m${-V},${b}${me(V,-b)}${me(-b,-V)}`)))));return this.draw_g.append("svg:path").attr("d",p).style("fill","none").call(this.lineatt.func),Y}drawBinsBox(){const F=this.getObject(),J=this.prepareDraw({rounding:!1}),Y=this.getMainPainter();Y===this&&(Y.maxbin===Y.minbin&&(Y.maxbin=Y.gmaxbin,Y.minbin=Y.gminbin,Y.minposbin=Y.gminposbin),Y.maxbin===Y.minbin&&(Y.minbin=Math.min(0,Y.maxbin-1)));const ue=Math.max(Math.abs(Y.maxbin),Math.abs(Y.minbin)),Q=Math.max(0,Y.minbin),me=this.getPadPainter().getRootPad(!0),X=this.options.cutg;let B,$,g,E,I,U,k,Z,ee,he,V,b,_="",v="",p="",C="",P=!1,T=0;if((me?.fLogv??me?.fLogz)&&ue>0){P=!0;const z=Math.log(ue);T=Q>0?Math.log(Q):Y.minposbin>=1&&Y.minposbin<100?Math.log(.7):Y.minposbin>0?Math.log(.7*Y.minposbin):z-10,T>=z&&(T=z-10),b=1/(z-T)}else b=1/(ue-Q);for(B=J.i1;B0?Math.log(E)-T:0:E-Q,I=.5*(I<0?1:1-Math.sqrt(I*b)),I<0&&(I=0),he=J.grx[B+1]-J.grx[B],V=J.gry[$]-J.gry[$+1],U=I*he,k=I*V,Z=Math.round(J.grx[B]+U),ee=Math.round(J.gry[$+1]+k),he=Math.max(Math.round(he-2*U),1),V=Math.max(Math.round(V-2*k),1),_+=`M${Z},${ee}v${V}h${he}v${-V}z`,g<0&&10===this.options.BoxStyle&&(v+=`M${Z},${ee}l${he},${V}m0,${-V}l${-he},${V}`),11===this.options.BoxStyle&&he>5&&V>5)){const z=Math.round(.1*he),W=Math.round(.1*V),fe=`M${Z},${ee}h${he}l${-z},${W}h${2*z-he}v${V-2*W}l${-z},${W}z`,we=`M${Z+he},${ee+V}v${-V}l${-z},${W}v${V-2*W}h${2*z-he}l${-z},${W}z`;p+=g<0?we:fe,C+=g<0?fe:we}if(_){const z=this.draw_g.append("svg:path").attr("d",_).call(this.fillatt.func);11!==this.options.BoxStyle&&this.fillatt.empty()&&z.call(this.lineatt.func)}if(p&&this.fillatt.hasColor()&&this.draw_g.append("svg:path").attr("d",p).call(this.fillatt.func).style("fill",(0,L.Qh)(this.fillatt.color).brighter(.5).formatHex()),C&&this.draw_g.append("svg:path").attr("d",C).call(this.fillatt.func).style("fill",this.fillatt.hasColor()?(0,L.Qh)(this.fillatt.color).darker(.5).formatHex():"red"),v){const z=this.draw_g.append("svg:path").attr("d",v).style("fill","none");this.lineatt.empty()?z.style("stroke","black"):z.call(this.lineatt.func)}return J}drawBinsCandle(){let he=0;const V=Cn=>{let yn=1;for(;Cn>=yn;)yn*=10;return yn/=10,Math.floor(he/yn)%10===Math.floor(Cn/yn)},b=(Cn,yn)=>{let Sn="",ii="",ai=0;const zi=Cn[0],ti=Cn[1];if(zi>="A"&&zi<="Z"&&(Sn=zi),zi>="1"&&zi<="9"&&(ii=zi),ti>="A"&&ti<="Z"&&ii&&(Sn=ti),ti>="1"&&ti<="9"&&Sn&&(ii=ti),yn)switch(ii){case"1":default:ai+=11311;break;case"2":ai+=112111;break;case"3":ai+=112311;break;case"4":ai+=112321;break;case"5":ai+=212111;break;case"6":ai+=312311}else switch(ii){case"1":default:ai+=13001300;break;case"2":ai+=13102300}const Lr=Cn.indexOf("("),ss=Cn.lastIndexOf(")");Lr>=0&&ss>Lr+1&&(ai=parseInt(Cn.slice(Lr+1,ss))),he=ai,("Y"===Sn||"H"===Sn)&&!V(1e8)&&(he+=1e8)};this.options.Candle?b(this.options.Candle,!0):this.options.Violin&&b(this.options.Violin,!1);const T=this.getHisto(),z=this.prepareDraw(),W=this.getFramePainter(),fe=this.getCanvPainter(),we=W.getGrFuncs(this.options.second_x,this.options.second_y),Me=V(1e8);let Ne,rt,je="",Ge="",lt="",bt="",te="",Je="",tt="",Fe=null,St=x.gStyle.fViolinScaled,pt=x.gStyle.fCandleScaled,st=0,vt=0;if(null!==this.options.Scaled?St=pt=this.options.Scaled:fe?.online_canvas||(T.fTitle.indexOf("unscaled")>=0?St=pt=!1:T.fTitle.indexOf("scaled")>=0&&(St=pt=!0)),St&&(V(2e6)||V(1e6)||V(3e6)))for(let Cn=0;Cn{"array"===Cn[1]&&(Cn=Cn[0]);const yn=Cn.length;let Sn=2,ii=Cn[0],ai=Cn[1],zi=Me?`M${ai},${ii}`:`M${ii},${ai}`;for(;Sn{Je||(this.createAttMarker({attr:T,style:V(3e5)?0:5}),this.markeratt.resetPos()),Je+=Me?this.markeratt.create(yn,Cn):this.markeratt.create(Cn,yn)},Ot=(Cn,yn)=>{Fe||(Fe=this.createAttMarker({attr:T,style:24,std:!1}),Fe.resetPos()),tt+=Me?Fe.create(yn,Cn):Fe.create(Cn,yn)};1===T.fMarkerColor&&(T.fMarkerColor=T.fLineColor),z.candle=[];const Bn=x.gStyle.fCandleWhiskerRange,Mn=x.gStyle.fCandleBoxRange,bn=[Bn>=1?1e-15:.5-Bn/2,Mn>=1?1e-14:.5-Mn/2,.5,Mn>=1?1-1e-14:.5+Mn/2,Bn>=1?1-1e-15:.5+Bn/2],Dn=(Cn,yn,Sn,ii,ai)=>{const zi=((Cn,yn,Sn)=>{let ii=0,ai=0,zi=0;const ti={max:0,first:-1,last:-1,entries:0};for(let Lr=0;Lr0&&(ti.max=Math.max(ti.max,yn[Lr]),ti.first<0&&(ti.first=Lr),ti.last=Lr),ii+=yn[Lr],zi+=yn[Lr]*(Cn[Lr]+Cn[Lr+1])/2;if(ii<=0)return null;ti.entries=ii,ti.mean=zi/ii,ti.quantiles=new Array(Sn.length),ti.indx=new Array(Sn.length);for(let Lr=0,ss=0,Bs=0;Lr=yo&&Sn[ai]cn&&In>0;)In--;for(;!rt[In];)In++;for(ss=Ne[In],cn=ti.fBoxUp+1.5*Lr,In=zi.indx[3];Ne[In]0&&1e3!==T.fBarWidth?ge=ye=K*T.fBarWidth/1e3:(ge=.66*K,ye=.8*K),St&&st>0&&(ye*=zi.max/st),pt&&vt>0&&(ge*=zi.entries/vt),ti.x1=Math.round(Pe-ge/2),ti.x2=Math.round(Pe+ge/2),Pe=Math.round(Pe);const At=Math.round(Pe-ge/3),Ht=Math.round(Pe+ge/3),Nt=Me?we.grx:we.gry;ti.yy1=Math.round(Nt(Bs)),ti.y1=Math.round(Nt(ti.fBoxUp)),ti.y0=Math.round(Nt(ti.fMedian)),ti.y2=Math.round(Nt(ti.fBoxDown)),ti.yy2=Math.round(Nt(ss));const nn=Math.round(Nt(yo)),hn=Math.round(Nt(ti.fMedian+xt)),kn=Math.round(Nt(ti.fMedian-xt));if(V(1e7)&&(te+=Yt(Pe,Math.round(Nt(Ne[ii])),"V",Math.round(Nt(Ne[ai])))),V(10)?Ge+=Yt(ti.x1,ti.y0,"H",ti.x2):V(20)?Ge+=Yt(At,ti.y0,"H",Ht):V(30)&&Ot(Pe,ti.y0),V(300)?Ot(Pe,nn):V(100)&&(lt+=Yt(ti.x1,nn,"H",ti.x2)),V(1)&&(V(20)?je+=Yt(ti.x1,ti.y1,"V",hn,At,ti.y0,ti.x1,kn,"V",ti.y2,"H",ti.x2,"V",kn,Ht,ti.y0,ti.x2,hn,"V",ti.y1,"Z"):je+=Yt(ti.x1,ti.y1,"V",ti.y2,"H",ti.x2,"V",ti.y1,"Z")),V(1e4)&&(Ge+=Yt(ti.x1,ti.yy1,"H",ti.x2)+Yt(ti.x1,ti.yy2,"H",ti.x2)),V(1e3)&&!V(1e7)?lt+=Yt(Pe,ti.y1,"V",ti.yy1)+Yt(Pe,ti.y2,"V",ti.yy2):(V(1e3)&&V(1e7)||V(2e3))&&(Ge+=Yt(Pe,ti.y1,"V",ti.yy1)+Yt(Pe,ti.y2,"V",ti.yy2)),V(1e5)||V(2e5)||V(3e5)){const cn=new ke.YF(7521*Cn+Math.round(zi.integral)),In=!V(1e5),ci=V(3e5);for(let Pi=0;Pi=ss&&bi<=Bs))for(let Ln=0;Ln0&&zi.first>=0){const cn=[],In=(Me?-.5:.5)*ye/zi.max;if(ii=Math.max(ii,zi.first),ai=Math.min(ai-1,zi.last),V(2e6)||V(3e6)){let ci=Pe,Pi=Math.round(Nt(Ne[ii]));cn.push(ci,Pi);for(let Si=ii;Si<=ai;Si++){const bi=Math.round(Pe+In*rt[Si]),Jn=Math.round(Nt(Ne[Si+1]));bi!==ci&&(Si!==ii&&cn.push("V",Pi),cn.push("H",bi)),ci=bi,Pi=Jn}cn.push("V",Pi)}if(V(1e6)||V(3e6)){let ci=Pe,Pi=Math.round(Nt(Ne[ai+1]));0===cn.length&&cn.push(ci,Pi);for(let Si=ai;Si>=ii;Si--){const bi=Math.round(Pe-In*rt[Si]),Jn=Math.round(Nt(Ne[Si]));bi!==ci&&(Si!==ai&&cn.push("V",Pi),cn.push("H",bi)),ci=bi,Pi=Jn}cn.push("V",Pi)}cn.push("H",Pe),bt+=Yt(cn,"array"),this.fillatt.empty()||(bt+="Z")}z.candle.push(ti)};if(Me){Ne=new Array(this.nbinsx+1),rt=new Array(this.nbinsx);for(let Cn=0;Cn0&&this.draw_g.append("svg:path").attr("d",te).style("stroke",this.getColor(T.fFillColor));const $n=V(1e7)&&0!==T.fFillStyle?this.fillatt.color:this.lineatt.color;if(bt&&(!this.fillatt.empty()||"none"!==$n)&&this.draw_g.append("svg:path").attr("d",bt).style("stroke","none"!==$n?$n:null).style("pointer-events",this.isBatchMode()?null:"visibleFill").call(this.fillatt.func),je&&this.draw_g.append("svg:path").attr("d",je).call(this.lineatt.func).call(this.fillatt.func),Ge&&this.draw_g.append("svg:path").attr("d",Ge).call(this.lineatt.func).style("fill","none"),lt){const Cn=this.createAttLine({attr:T,style:2,std:!1,color:ve.tA});this.draw_g.append("svg:path").attr("d",lt).call(Cn.func).style("fill","none")}return tt&&this.draw_g.append("svg:path").attr("d",tt).call(Fe.func),Je&&this.draw_g.append("svg:path").attr("d",Je).call(this.markeratt.func),z}drawBinsScatter(){const F=this.getObject(),J=this.prepareDraw({rounding:!0,pixel_density:!0}),Y=this.options.cutg,ue=[],Q=[],me=[],X=[],B=[],$=this.options.ScatCoef*(this.gmaxbin>2e3?2e3/this.gmaxbin:1),g=new ke.YF(J.sumz);let E,_,v,p,C,I,U,k,Z=1;if(J.ScatterPlot=!0,$*J.sumz<1e5){this.createAttMarker({attr:F}),this.markeratt.resetPos();let P="";for(p=J.i1;p.7&&(Z=.7/this.maxbin);const ee=Math.round(J.max-J.min),he=this.createContour(ee>50?50:ee,this.minposbin,this.maxbin,this.minposbin);for(p=J.i1;p0&&(b=V.insert("svg:defs",":first-child")),this.createAttMarker({attr:F}),E=0;E{this.tt_handle=Y})}drawBinsCircular(){this.getFrameSvg().style("display","none"),this._hide_frame=!0;const F=this.getPadPainter().getFrameRect(),J=this.getHisto(),Y=this.options.Circular>10?this.getHistPalette():null,me=J.fXaxis,X=v=>{if(me.fLabels)for(let p=0;p90)&&(ee+=180,he=32);const V=Math.round(10),b=2*V;this.draw_g.append("path").attr("d",`M${C-V},${I} a${V},${V},0,1,0,${b},0a${V},${V},0,1,0,${-b},0z`).style("stroke",Z).style("fill","none"),this.drawText({align:he,rotate:ee,x:U,y:k,text:X(v)})}let E=0,_=0;if(this.options.Circular>11)for(let v=0;v0&&(E=Math.max(E,C),(!_||C<_)&&(_=C))}for(let v=0;v11&&E>_){const b=Math.round((U-_)/(E-_)*7+1);this.draw_g.append("path").attr("d",C).style("stroke",p.color).style("stroke-width",b).style("fill","none"),C=""}}C&&this.draw_g.append("path").attr("d",C).style("stroke",p.color).style("fill","none")}return this.finishTextDrawing()}drawBinsChord(){var F=this;return(0,Te.A)(function*(){F.getFrameSvg().style("display","none"),F._hide_frame=!0;const J=[],Y=Math.min(F.nbinsx,F.nbinsy),ue=F.getHisto();let Q=0,me=!0;for(let z=0;z0&&(W+=we,me&&Math.round(we)!==we&&(me=!1))}W>0&&J.push(z),Q+=W}if(J.length<2)return!0;let X=0,B=1;const $=F.getPadPainter().getFrameRect(),g=F.getHistPalette(),E=Math.max(10,.5*Math.min($.width,$.height)-60),_=Math.max(2,E-10),v=[],p=[],C=z=>g.calcColor(z,J.length),I=z=>z.toString(),k=(z,W)=>Wz?1:W>=z?0:Number.NaN;if(!me&&Q<10){const z=Math.round(Math.log10(Q)-2.3);X=-z,B=Math.pow(10,z)}else if(Q>200){const z=Math.round(Math.log10(Q)-2.3);B=Math.pow(10,z)}250*BC(z.index)).attr("d",V),he.append("title").text(z=>`${p[z.index]} ${I(z.value)}`);const T=he.append("g").selectAll("g").data(function P({startAngle:z,endAngle:W,value:fe}){const we=(W-z)/fe,Me=[];for(let je=0;je<=fe;je+=B)Me.push({value:je,angle:je*we+z});return Me}).join("g").attr("transform",z=>`rotate(${Math.round(180*z.angle/Math.PI-90)}) translate(${E})`);return T.append("line").attr("stroke","currentColor").attr("x2",6),T.append("text").attr("x",8).attr("dy","0.35em").attr("transform",z=>z.angle>Math.PI?"rotate(180) translate(-16)":null).attr("text-anchor",z=>z.angle>Math.PI?"end":null).text(z=>(z=>X>3?z.toExponential(0):z.toFixed(X))(z.value)),he.select("text").attr("font-weight","bold").text(function(z){return"end"===this.getAttribute("text-anchor")?`\u2191 ${p[z.index]}`:`${p[z.index]} \u2193`}),F.draw_g.append("g").attr("fill-opacity",.8).selectAll("path").data(ee).join("path").style("mix-blend-mode","multiply").attr("fill",z=>C(z.source.index)).attr("d",b).append("title").text(z=>`${I(z.source.value)} ${p[z.target.index]} \u2192 ${p[z.source.index]}${z.source.index===z.target.index?"":`\n${I(z.target.value)} ${p[z.source.index]} \u2192 ${p[z.target.index]}`}`),!0})()}getBinTooltips(F,J){const Y=this.getHisto();let ue=Y.getBinContent(F+1,J+1);Y.$baseh&&(ue-=Y.$baseh.getBinContent(F+1,J+1));const Q=[this.getObjectHint(),"x = "+this.getAxisBinTip("x",Y.fXaxis,F),"y = "+this.getAxisBinTip("y",Y.fYaxis,J),`bin = ${Y.getBin(F+1,J+1)} x: ${F+1} y: ${J+1}`,"entries = "+(ue===Math.round(ue)?ue:(0,ke.lg)(ue,x.gStyle.fStatFormat))];if("E"===this.options.TextKind||this.matchObjectType(x.clTProfile2D)){const me=Y.getBinError(Y.getBin(F+1,J+1));Q.push("error = "+(me===Math.round(me)?me.toString():(0,ke.lg)(me,x.gStyle.fPaintTextFormat)))}return Q}getCandleTooltips(F){const Y=this.getFramePainter().getGrFuncs(this.options.second_x,this.options.second_y),ue=this.getHisto();return[this.getObjectHint(),F.swapXY?"y = "+Y.axisAsText("y",ue.fYaxis.GetBinLowEdge(F.bin+1)):"x = "+Y.axisAsText("x",ue.fXaxis.GetBinLowEdge(F.bin+1)),"m-25% = "+(0,ke.lg)(F.fBoxDown,x.gStyle.fStatFormat),"median = "+(0,ke.lg)(F.fMedian,x.gStyle.fStatFormat),"m+25% = "+(0,ke.lg)(F.fBoxUp,x.gStyle.fStatFormat)]}getPolyBinTooltips(F,J,Y){const Q=this.getHisto().fBins.arr[F],X=this.getFramePainter().getGrFuncs(this.options.second_x,this.options.second_y),B=[];let $=Q.fPoly.fName,g=0;if("Graph"===$&&($=""),0===$.length&&($=Q.fNumber),void 0===J&&void 0===Y){J=Y=0;let E=Q.fPoly,_=1;E._typename===x.clTMultiGraph&&(_=Q.fPoly.fGraphs.arr.length,E=null);for(let v=0;v<_;++v){(!E||v>0)&&(E=Q.fPoly.fGraphs.arr[v]);for(let p=0;p1&&(J/=g,Y/=g)}return B.push(this.getObjectHint(),"x = "+X.axisAsText("x",J),"y = "+X.axisAsText("y",Y)),g>0&&B.push("npnts = "+g),B.push(`bin = ${$}`),Q.fContent===Math.round(Q.fContent)?B.push("content = "+Q.fContent):B.push("content = "+(0,ke.lg)(Q.fContent,x.gStyle.fStatFormat)),B}processTooltipEvent(F){const J=this.getHisto(),Y=this.tt_handle;let ue=this.draw_g?.selectChild(".tooltip_bin");if(!F||!this.draw_content||!this.draw_g||!Y||this.options.Proj)return ue?.remove(),null;if(Y.poly){const ee=this.getFramePainter().getGrFuncs(this.options.second_x,this.options.second_y),he=ee.revertAxis("x",F.x),V=ee.revertAxis("y",F.y);let P,b=-1;if(void 0!==he&&void 0!==V){const z=J.fBins.arr.length;for(let W=0;WP.fXmax||VP.fYmax||0===P.fContent&&!this.options.Zero)continue;let fe=P.fPoly,we=1;fe._typename===x.clTMultiGraph&&(we=P.fPoly.fGraphs.arr.length,fe=null);for(let Me=0;Me0)&&(fe=P.fPoly.fGraphs.arr[Me]),fe.IsInside(he,V)){b=W;break}}}if(b<0)return ue.remove(),null;const T={name:J.fName,title:J.fTitle,x:F.x,y:F.y,color1:this.lineatt?.color??"green",color2:this.fillatt?.getFillColorAlt("blue")??"blue",exact:!0,menu:!0,lines:this.getPolyBinTooltips(b,he,V)};return F.disabled?(ue.remove(),T.changed=!0):(ue.empty()&&(ue=this.draw_g.append("svg:path").attr("class","tooltip_bin").style("pointer-events","none").call(ke.Ru)),T.changed=ue.property("current_bin")!==b,T.changed&&ue.attr("d",this.createPolyBin(ee,P)).style("opacity","0.7").property("current_bin",b)),T.changed&&(T.user_info={obj:J,name:J.fName,bin:b,cont:P.fContent,grx:F.x,gry:F.y}),T}if(Y.candle){let Z,ee,he;for(Z=0;Z=F.x&&F.x>=ee.yy2:ee.x1<=F.x&&F.x<=ee.x2&&ee.yy1<=F.y&&F.y<=ee.yy2,!he);++Z);if(!he)return ue.remove(),null;const V={name:J.fName,title:J.fTitle,x:F.x,y:F.y,color1:this.lineatt?.color??"green",color2:this.fillatt?.getFillColorAlt("blue")??"blue",lines:this.getCandleTooltips(ee),exact:!0,menu:!0};return F.disabled?(ue.remove(),V.changed=!0):(ue.empty()&&(ue=this.draw_g.append("svg:path").attr("class","tooltip_bin").style("pointer-events","none").call(ke.Ru).style("opacity","0.7")),V.changed=ue.property("current_bin")!==Z,V.changed&&ue.attr("d",ee.swapXY?`M${ee.yy1},${ee.x1}H${ee.yy2}V${ee.x2}H${ee.yy1}Z`:`M${ee.x1},${ee.yy1}H${ee.x2}V${ee.yy2}H${ee.x1}Z`).property("current_bin",Z)),V.changed&&(V.user_info={obj:J,name:J.fName,bin:Z+1,cont:ee.fMedian,binx:Z+1,biny:1,grx:F.x,gry:F.y}),V}const Q=this.getFramePainter();let me,X,g,E,_,v,p,C,I,U,B=0,$=null;if(Q.reverse_x)for(me=Y.i1;me=Y.grx[me+1]);++me);else for(me=Y.i1;me=Y.grx[me]&&F.x<=Y.grx[me+1]);++me);if(Q.reverse_y)for(X=Y.j1;X=Y.gry[X]);++X);else for(X=Y.j1;X=Y.gry[X+1]&&F.y<=Y.gry[X]);++X);if(mep||F.x<=C)&&(Z=!1):(F.x=C)&&(Z=!1),Q.reverse_y?(F.y>I||F.y<=U)&&(Z=!1):(F.y=U)&&(Z=!1)}B=J.getBinContent(me+1,X+1),this.is_projection?$=0:Z?Y.hide_only_zeros?$=0!==B||this._show_empty_bins?0:null:($=this.getContour().getPaletteIndex(this.getHistPalette(),B),null===$&&0===B&&this._show_empty_bins&&($=0)):$=null}if(null===$)return ue.remove(),null;const k={name:J.fName,title:J.fTitle,x:F.x,y:F.y,color1:this.lineatt?.color??"green",color2:this.fillatt?.getFillColorAlt("blue")??"blue",lines:this.getBinTooltips(me,X),exact:!0,menu:!0};if(this.options.Color&&(k.color2=this.getHistPalette().getColor($)),F.disabled&&!this.is_projection)ue.remove(),k.changed=!0;else{ue.empty()&&(ue=this.draw_g.append("svg:path").attr("class","tooltip_bin").style("pointer-events","none").call(ke.Ru));let ee,Z=1e4*me+X;if(this.is_projection){const he=this.projection_widthX||1,V=(he-1)/2;this.is_projection.indexOf("X")>=0&&he>1&&(v+V>=Y.j2?(v=Math.min(Math.round(v+V),Y.j2),_=Math.max(v-he,Y.j1)):(_=Math.max(Math.round(_-V),Y.j1),v=Math.min(_+he,Y.j2)));const b=this.projection_widthY||1,P=(b-1)/2;this.is_projection.indexOf("Y")>=0&&b>1&&(E+P>=Y.i2?(E=Math.min(Math.round(E+P),Y.i2),g=Math.max(E-b,Y.i1)):(g=Math.max(Math.round(g-P),Y.i1),E=Math.min(g+b,Y.i2)))}"X"===this.is_projection?(p=0,C=Q.getFrameWidth(),I=Y.gry[v],U=Y.gry[_],Z=777*_+333*v):"Y"===this.is_projection?(I=0,U=Q.getFrameHeight(),p=Y.grx[g],C=Y.grx[E],Z=777*g+333*E):"XY"===this.is_projection&&(I=Y.gry[v],U=Y.gry[_],p=Y.grx[g],C=Y.grx[E],Z=789*g+653*E+12345*_+654321*v,ee=`M${p},0H${C}V${I}H${Q.getFrameWidth()}V${U}H${C}V${Q.getFrameHeight()}H${p}V${U}H0V${I}H${p}Z`),k.changed=ue.property("current_bin")!==Z,k.changed&&ue.attr("d",ee||`M${p},${I}H${C}V${U}H${p}Z`).style("opacity","0.7").property("current_bin",Z),this.is_projection&&k.changed&&this.redrawProjection(g,E,_,v)}return k.changed&&(k.user_info={obj:J,name:J.fName,bin:J.getBin(me+1,X+1),cont:B,binx:me+1,biny:X+1,grx:F.x,gry:F.y}),k}canZoomInside(F,J,Y){if("z"===F||this.options.Proj)return!0;let ue=this.getHisto();return ue&&(ue="y"===F?ue.fYaxis:ue.fXaxis),!ue||ue.FindBin(Y,.5)-ue.FindBin(J,0)>1}completePalette(F){return!F||(F.$main_painter=this,this.options.Zvert=F._palette_vertical,F.drawPave(this.options.Cjust?"cjust":""))}draw2D(){var F=this;return(0,Te.A)(function*(){F.clear3DScene();const J=F.options.Zscale&&F.options.canHavePalette();return F.drawColorPalette(J,!0).then(function(){var Y=(0,Te.A)(function*(ue){let Q;return Q=F.options.Circular&&F.isMainPainter()?F.drawBinsCircular():F.options.Chord&&F.isMainPainter()?F.drawBinsChord():F.drawAxes().then(()=>F.draw2DBins()),Q.then(()=>F.completePalette(ue))});return function(ue){return Y.apply(this,arguments)}}()).then(()=>F.drawHistTitle()).then(()=>F.updateFunctions()).then(()=>(F.updateStatWebCanvas(),F.addInteractivity()))})()}draw3D(F){var J=this;return(0,Te.A)(function*(){return console.log("3D drawing is disabled, load ./hist/TH2Painter.mjs"),J.draw2D(F)})()}callDrawFunc(F){var J=this;return(0,Te.A)(function*(){const Y=J.getMainPainter(),ue=J.getFramePainter();return Y!==J&&ue&&ue.mode3d!==J.options.Mode3D&&J.copyOptionsFrom(Y),J.options.Mode3D?J.draw3D(F):J.draw2D(F)})()}redraw(F){var J=this;return(0,Te.A)(function*(){return J.callDrawFunc(F)})()}static draw(F,J,Y){return(0,Te.A)(function*(){return Ye.mf._drawHist(new Ve(F,J),Y)})()}}},4615:(Yr,mt,Se)=>{"use strict";Se.d(mt,{Ee:()=>Re,Z8:()=>J,ZE:()=>Ve,eP:()=>Y,ef:()=>He,kH:()=>De,m:()=>Ze,mf:()=>me});var Te=Se(4882),x=Se(8872),L=Se(2985),ve=Se(2843),ke=Se(1922),ot=Se(5891),Ye=Se(4483);const Ze=1,Re=2,He=3,Ve=4,De=5;class F{constructor(){this.reset()}reset(){Object.assign(this,{Axis:0,RevX:!1,RevY:!1,SymlogX:0,SymlogY:0,Bar:!1,BarStyle:0,Curve:!1,Hist:1,Line:!1,Fill:!1,Error:0,ErrorKind:-1,errorX:x.gStyle.fErrorX,Mark:!1,Same:!1,Scat:!1,ScatCoef:1,Func:!0,AllFunc:!1,Arrow:!1,Box:!1,BoxStyle:0,Text:!1,TextAngle:0,TextKind:"",Char:0,Color:!1,Contour:0,Cjust:!1,Lego:0,Surf:0,Off:0,Tri:0,Proj:0,AxisPos:0,Ortho:x.gStyle.fOrthoCamera,Spec:!1,Pie:!1,List:!1,Zscale:!1,Zvert:!0,PadPalette:!1,Candle:"",Violin:"",Scaled:null,Circular:0,GLBox:0,GLColor:!1,Project:"",System:Ze,AutoColor:!1,NoStat:!1,ForceStat:!1,PadStats:!1,PadTitle:!1,AutoZoom:!1,HighRes:0,Zero:1,Palette:0,BaseLine:!1,Optimize:x.settings.OptimizeDraw,adjustFrame:!1,Mode3D:!1,x3dscale:1,y3dscale:1,Render3D:x.constants.Render3D.Default,FrontBox:!0,BackBox:!0,need_fillcol:!1,minimum:x.kNoZoom,maximum:x.kNoZoom,ymin:0,ymax:0,cutg:null,IgnoreMainScale:!1})}isCartesian(){return this.System===Ze}decodeSumw2(B,$){const g=B.fSumw2?.length??0;let E=!1;for(let _=0;_0){E=!0;break}(Number.isInteger(this.Error)||$)&&(this.Error=E?1:0),(Number.isInteger(this.Hist)||$)&&(this.Hist=E?0:1),(Number.isInteger(this.Zero)||$)&&(this.Zero=E?0:1)}canHavePalette(){return 2===this.ndim&&(this.Mode3D?12===this.Lego||14===this.Lego||11===this.Surf||12===this.Surf:!!(this.Color||this.Contour||this.Axis)||!(this.Scat||this.Box||this.Arrow||this.Proj||this.Candle||this.Violin||this.Text))}decode(B,$,g,E,_,v){if(this.orginal=B,this.cutg_name="",(0,x.isStr)(B)&&2===$){const ee=B.lastIndexOf("["),he=B.lastIndexOf("]");ee>=0&&he>ee+1&&(this.cutg_name=B.slice(ee+1,he),B=B.slice(0,ee)+B.slice(he+1),this.cutg=E?.findInPrimitives(this.cutg_name,x.clTCutG),this.cutg&&(this.cutg.$redraw_pad=!0))}const p=new ve.nC(B);1===$&&this.decodeSumw2(g,!0),this.ndim=$||1,p.check("USE_PAD_TITLE"),p.check("USE_PAD_PALETTE"),p.check("USE_PAD_STATS"),p.check("PAL",!0)&&(this.Palette=p.partAsInt()),p.check("MINIMUM:",!0)?(this.ominimum=!0,this.minimum=parseFloat(p.part)):(this.ominimum=!1,this.minimum=g.fMinimum),p.check("MAXIMUM:",!0)?(this.omaximum=!0,this.maximum=parseFloat(p.part)):(this.omaximum=!1,this.maximum=g.fMaximum),p.check("HMIN:",!0)?(this.ohmin=!0,this.hmin=parseFloat(p.part)):(this.ohmin=!1,delete this.hmin),p.check("HMAX:",!0)?(this.ohmax=!0,this.hmax=parseFloat(p.part)):(this.ohmax=!1,delete this.hmax),p.check("HTITLE:",!0)&&(g.fTitle=decodeURIComponent(p.part.toLowerCase())),p.check("XTITLE:",!0)&&(g.fXaxis.fTitle=decodeURIComponent(p.part.toLowerCase())),p.check("YTITLE:",!0)&&(g.fYaxis.fTitle=decodeURIComponent(p.part.toLowerCase())),p.check("ZTITLE:",!0)&&(g.fZaxis.fTitle=decodeURIComponent(p.part.toLowerCase())),p.check("FORCE_TITLE")&&(this.ForceTitle=!0),p.check("_ADJUST_FRAME_")&&(this.adjustFrame=!0),p.check("NOOPTIMIZE")&&(this.Optimize=0),p.check("OPTIMIZE")&&(this.Optimize=2),p.check("AUTOCOL")&&(this.AutoColor=!0),p.check("AUTOZOOM")&&(this.AutoZoom=!0),p.check("OPTSTAT",!0)&&(this.optstat=p.partAsInt()),p.check("OPTFIT",!0)&&(this.optfit=p.partAsInt()),(this.optstat||this.optstat)&&g?.TestBit(x.kNoStats)&&g?.InvertBit(x.kNoStats),p.check("NOSTAT")&&(this.NoStat=!0),p.check("STAT")&&(this.ForceStat=!0),p.check("NOTOOLTIP")&&v&&v.setTooltipAllowed(!1),p.check("TOOLTIP")&&v&&v.setTooltipAllowed(!0),p.check("SYMLOGX",!0)&&(this.SymlogX=p.partAsInt(0,3)),p.check("SYMLOGY",!0)&&(this.SymlogY=p.partAsInt(0,3)),p.check("X3DSC",!0)&&(this.x3dscale=p.partAsInt(0,100)/100),p.check("Y3DSC",!0)&&(this.y3dscale=p.partAsInt(0,100)/100),(p.check("PERSPECTIVE")||p.check("PERSP"))&&(this.Ortho=!1),p.check("ORTHO")&&(this.Ortho=!0);let C=0,I=0,U="";p.check("LOG2XY")&&(C=I=2),p.check("LOGXY")&&(C=I=1),p.check("LOG2X")&&(C=2),p.check("LOGX")&&(C=1),p.check("LOG2Y")&&(I=2),p.check("LOGY")&&(I=1),C&&_&&(_.fLogx=C,_.fUxmin=0,_.fUxmax=1,_.fX1=0,_.fX2=1),I&&_&&(_.fLogy=I,_.fUymin=0,_.fUymax=1,_.fY1=0,_.fY2=1),p.check("LOG2Z")&&_&&(_.fLogz=2),p.check("LOGZ")&&_&&(_.fLogz=1),p.check("LOGV")&&_&&(_.fLogv=1),p.check("GRIDXY")&&_&&(_.fGridx=_.fGridy=1),p.check("GRIDX")&&_&&(_.fGridx=1),p.check("GRIDY")&&_&&(_.fGridy=1),p.check("TICKXY")&&_&&(_.fTickx=_.fTicky=1),p.check("TICKX")&&_&&(_.fTickx=1),p.check("TICKY")&&_&&(_.fTicky=1),p.check("TICKZ")&&_&&(_.fTickz=1),p.check("GRAYSCALE")&&E?.setGrayscale(!0),p.getColor=function(){if(this.color=this.partAsInt(1)-1,this.color>=0)return!0;for(let ee=0;ee<8;++ee)if((0,L.oU)(ee).toUpperCase()===this.part)return this.color=ee,!0;return!1},p.check("FILL_",!0)&&p.getColor()&&(this.histoFillColor=p.color,this.histoFillPattern=1001),p.check("LINE_",!0)&&p.getColor()&&(this.histoLineColor=(0,L.oU)(p.color)),p.check("XAXIS_",!0)&&p.getColor()&&(g.fXaxis.fAxisColor=g.fXaxis.fLabelColor=g.fXaxis.fTitleColor=p.color),p.check("YAXIS_",!0)&&p.getColor()&&(g.fYaxis.fAxisColor=g.fYaxis.fLabelColor=g.fYaxis.fTitleColor=p.color);const k=!!v&&!!v.getMainPainter();p.check("X+")&&(this.AxisPos=10,this.second_x=k),p.check("Y+")&&(this.AxisPos+=1,this.second_y=k),p.check("SAME0")&&(this.Same=!0,this.IgnoreMainScale=!0),p.check("SAMES")&&(this.Same=!0,this.ForceStat=!0),p.check("SAME")&&(this.Same=!0,this.Func=!0),p.check("SPEC")&&(this.Spec=!0),(p.check("BASE0")||p.check("MIN0")||x.gStyle.fHistMinimumZero)&&(this.BaseLine=0),p.check("PIE")&&(this.Pie=!0),p.check("CANDLE",!0)&&(this.Candle=p.part||"1"),p.check("VIOLIN",!0)&&(this.Violin=p.part||"1",delete this.Candle),p.check("NOSCALED")&&(this.Scaled=!1),p.check("SCALED")&&(this.Scaled=!0),p.check("GLBOX",!0)&&(this.GLBox=10+p.partAsInt()),p.check("GLCOL")&&(this.GLColor=!0),p.check("GL"),(p.check("CIRCULAR",!0)||p.check("CIRC",!0))&&(this.Circular=11,p.part.indexOf("0")>=0&&(this.Circular=10),p.part.indexOf("1")>=0&&(this.Circular=11),p.part.indexOf("2")>=0&&(this.Circular=12)),this.Chord=p.check("CHORD"),p.check("LEGO",!0)&&(this.Lego=1,p.part.indexOf("0")>=0&&(this.Zero=!1),p.part.indexOf("1")>=0&&(this.Lego=11),p.part.indexOf("2")>=0&&(this.Lego=12),p.part.indexOf("3")>=0&&(this.Lego=13),p.part.indexOf("4")>=0&&(this.Lego=14),U=p.part,p.part.indexOf("Z")>=0&&(this.Zscale=!0),p.part.indexOf("H")>=0&&(this.Zvert=!1)),p.check("R3D_",!0)&&(this.Render3D=x.constants.Render3D.fromString(p.part.toLowerCase())),p.check("POL")&&(this.System=Re),p.check("CYL")&&(this.System=He),p.check("SPH")&&(this.System=Ve),p.check("PSR")&&(this.System=De),p.check("SURF",!0)&&(this.Surf=p.partAsInt(10,1),U=p.part,p.part.indexOf("Z")>=0&&(this.Zscale=!0),p.part.indexOf("H")>=0&&(this.Zvert=!1)),p.check("TF3",!0)&&(U=p.part),p.check("ISO",!0)&&(U=p.part),p.check("LIST")&&(this.List=!0),p.check("CONT",!0)&&$>1&&(this.Contour=1,p.part.indexOf("Z")>=0&&(this.Zscale=!0),p.part.indexOf("H")>=0&&(this.Zvert=!1),p.part.indexOf("1")>=0?this.Contour=11:p.part.indexOf("2")>=0?this.Contour=12:p.part.indexOf("3")>=0?this.Contour=13:p.part.indexOf("4")>=0&&(this.Contour=14)),p.check("HBAR",!0)?this.BarStyle=20:p.check("BAR",!0)&&(this.BarStyle=10),this.BarStyle>0&&(this.Hist=!1,this.need_fillcol=!0,this.BarStyle+=p.partAsInt()),p.check("ARR")&&(this.Arrow=!0),p.check("BOX",!0)&&(this.BoxStyle=10,p.part.indexOf("1")>=0?this.BoxStyle=11:p.part.indexOf("2")>=0?this.BoxStyle=12:p.part.indexOf("3")>=0&&(this.BoxStyle=13),p.part.indexOf("Z")>=0&&(this.Zscale=!0),p.part.indexOf("H")>=0&&(this.Zvert=!1)),this.Box=this.BoxStyle>0,p.check("CJUST")&&(this.Cjust=!0),p.check("COL")&&(this.Color=!0),p.check("CHAR")&&(this.Char=1),p.check("ALLFUNC")&&(this.AllFunc=!0),p.check("FUNC")&&(this.Func=!0,this.Hist=!1),p.check("AXIS")&&(this.Axis=1),p.check("AXIG")&&(this.Axis=2),p.check("TEXT",!0)&&(this.Text=!0,this.Hist=!1,this.TextAngle=Math.min(p.partAsInt(),90),p.part.indexOf("N")>=0&&(this.TextKind="N"),p.part.indexOf("E0")>=0&&(this.TextLine=!0),p.part.indexOf("E")>=0&&(this.TextKind="E")),p.check("SCAT=",!0)&&(this.Scat=!0,this.ScatCoef=parseFloat(p.part),(!Number.isFinite(this.ScatCoef)||this.ScatCoef<=0)&&(this.ScatCoef=1)),p.check("SCAT")&&(this.Scat=!0),p.check("TRI",!0)&&(this.Color=!1,this.Tri=1,U=p.part,p.part.indexOf("ERR")>=0&&(this.Error=!0)),p.check("AITOFF")&&(this.Proj=1),p.check("MERCATOR")&&(this.Proj=2),p.check("SINUSOIDAL")&&(this.Proj=3),p.check("PARABOLIC")&&(this.Proj=4),p.check("MOLLWEIDE")&&(this.Proj=5),this.Proj>0&&(this.Contour=14),p.check("PROJXY",!0)&&(this.Project="XY"+p.partAsInt(0,1)),p.check("PROJX",!0)&&(this.Project="X"+p.part),p.check("PROJY",!0)&&(this.Project="Y"+p.part),p.check("PROJ")&&(this.Project="Y1"),U&&(U.indexOf("FB")>=0&&(this.FrontBox=!1),U.indexOf("BB")>=0&&(this.BackBox=!1)),3===$&&p.check("FB")&&(this.FrontBox=!1),3===$&&p.check("BB")&&(this.BackBox=!1),p.check("PFC")&&!this._pfc&&(this._pfc=2),(p.check("PLC")||this.AutoColor)&&!this._plc&&(this._plc=2),p.check("PMC")&&!this._pmc&&(this._pmc=2),p.check("L")&&(this.Line=!0,this.Hist=!1),p.check("F")&&(this.Fill=!0,this.need_fillcol=!0),p.check("A")&&(this.Axis=-1),(p.check("RX")||_?.$RX)&&(this.RevX=!0),(p.check("RY")||_?.$RY)&&(this.RevY=!0);const Z=(ee,he,V)=>{let b=p.check(ee);_&&_["$"+ee]&&(b=!0,_["$"+ee]=void 0),b&&g&&(g[he].TestBit(V)||g[he].InvertBit(V))};Z("OTX","fXaxis",ke.rb.kOppositeTitle),Z("OTY","fYaxis",ke.rb.kOppositeTitle),Z("CTX","fXaxis",ke.rb.kCenterTitle),Z("CTY","fYaxis",ke.rb.kCenterTitle),p.check("B1")&&(this.BarStyle=1,this.BaseLine=0,this.Hist=!1,this.need_fillcol=!0),p.check("B")&&(this.BarStyle=1,this.Hist=!1,this.need_fillcol=!0),p.check("C")&&(this.Curve=!0,this.Hist=!1),p.check("][")&&(this.Off=1,this.Hist=!0),p.check("HIST")&&(this.Hist=!0,this.Func=!0,this.Error=!1),this.Bar=this.BarStyle>0,delete this.MarkStyle,p.check("P0")&&(this.Mark=!0,this.Hist=!1,this.Zero=!0),p.check("P")&&(this.Mark=!0,this.Hist=!1,this.Zero=!1),p.check("HZ")&&(this.Zscale=!0,this.Zvert=!1),p.check("Z")&&(this.Zscale=!0),p.check("*")&&(this.Mark=!0,this.MarkStyle=3,this.Hist=!1),p.check("H")&&(this.Hist=!0),p.check("E",!0)&&(this.Error=!0,1===$&&(this.Zero=!1,1===this.Hist&&(this.Hist=!1),Number.isInteger(parseInt(p.part[0]))&&(this.ErrorKind=parseInt(p.part[0])),(3===this.ErrorKind||4===this.ErrorKind)&&(this.need_fillcol=!0),0===this.ErrorKind&&(this.Zero=!0),p.part.indexOf("X0")>=0&&(this.errorX=0))),p.check("9")&&(this.HighRes=1),p.check("0")&&(this.Zero=!1),this.Color&&p.check("1")&&(this.Zero=!1),(this.Lego>0||3===$||(this.Surf>0||this.Error)&&2===$)&&(this.Mode3D=!0),v?.isTF1()&&1===$&&1===this.Hist&&!this.Line&&!this.Fill&&!this.Curve&&!this.Mark&&(this.Hist=!1,this.Curve=x.settings.FuncAsCurve,this.Line=!this.Curve,this.Fill=!0),15===this.Surf&&(this.System===Re||this.System===Ze)&&(this.Surf=13)}asString(B,$){let g="",E="";return this.Zscale&&(E=this.Zvert?"Z":"HZ"),this.Mode3D?(this.Lego?(g="LEGO",this.Zero||(g+="0"),this.Lego>10&&(g+=this.Lego-10),g+=E):this.Surf&&(g="SURF"+(this.Surf-10),g+=E),this.FrontBox||(g+="FB"),this.BackBox||(g+="BB"),1!==this.x3dscale&&(g+=`_X3DSC${Math.round(100*this.x3dscale)}`),1!==this.y3dscale&&(g+=`_Y3DSC${Math.round(100*this.y3dscale)}`)):(this.Candle?g="CANDLE"+this.Candle:this.Violin?g="VIOLIN"+this.Violin:this.Scat?g="SCAT":this.Color?(g="COL",this.Zero||(g+="0"),g+=E,this.Axis<0&&(g+="A")):this.Contour?(g="CONT",this.Contour>10&&(g+=this.Contour-10),g+=E):this.Bar?g=!1===this.BaseLine?"B":"B1":this.Mark?g=this.Zero?"P0":"P":this.Error?(g="E",this.ErrorKind>=0&&(g+=this.ErrorKind)):this.Line&&(g+="L",this.Fill&&(g+="F")),this.Cjust&&(g+=" CJUST"),this.Text&&(g+="TEXT",this.TextAngle&&(g+=this.TextAngle),g+=this.TextKind)),B&&g&&(this.ForceStat||!0===this.StatEnabled?g+="_STAT":(this.NoStat||!1===this.StatEnabled)&&(g+="_NOSTAT")),B&&$&&g&&(2===$.fLogx?g+="_LOG2X":$.fLogx&&(g+="_LOGX"),2===$.fLogy?g+="_LOG2Y":$.fLogy&&(g+="_LOGY"),2===$.fLogz?g+="_LOG2Z":$.fLogz&&(g+="_LOGZ"),$.fGridx&&(g+="_GRIDX"),$.fGridy&&(g+="_GRIDY"),$.fTickx&&(g+="_TICKX"),$.fTicky&&(g+="_TICKY"),$.fTickz&&(g+="_TICKZ")),this.cutg_name&&(g+=` [${this.cutg_name}]`),g}}class J{constructor(B,$){this.arr=[],this.colzmin=B,this.colzmax=$,this.below_min_indx=-1,this.exact_min_indx=0}getLevels(){return this.arr}createNormal(B,$,g){if($){this.colzmax<=0&&(this.colzmax=1),this.colzmin<=0&&(this.colzmin=void 0===g||g<=0?1e-4*this.colzmax:g<3||g>100?.3*g:1),this.colzmin>=this.colzmax&&(this.colzmin=1e-4*this.colzmax);const E=Math.log(this.colzmin)/Math.log(10),v=(Math.log(this.colzmax)/Math.log(10)-E)/B;this.arr.push(this.colzmin);for(let p=1;pthis.arr[this.arr.length-1]&&this.arr.push(this.colzmax)}configIndicies(B,$){this.below_min_indx=B,this.exact_min_indx=$}getContourIndex(B){if(B=this.arr[g])return g;for(;$B?g=E:$=E}return $}getPaletteColor(B,$){const g=this.getContourIndex($);if(g<0)return null;const E=B.calcColorIndex(g,this.arr.length);return B.getColor(E)}getPaletteIndex(B,$){const g=this.getContourIndex($);return g<0?null:B.calcColorIndex(g,this.arr.length)}}class Y{constructor(B,$,g,E){this.painter=B,this.pp=$;const _=[],v=[],p=!0===E;this.newfuncs=[],this.newopts=[],p||$?.forEachPainterInPad(C=>{C.isSecondary(B)&&C._secondary_id?.match(/^func_|^indx_/)&&_.push(C)},"objects");for(let C=0;C=0&&(_.splice(Z,1),v.push(k))):(this.newfuncs[C]=I,this.newopts[C]=U)}if((0,x.isObject)(E)){const C=_.indexOf(E);C>=0&&_.splice(C,1)}_.length>0&&$?.cleanPrimitives(C=>_.indexOf(C)>=0),v.length>0&&(this._extraPainters=v)}drawNext(B){if(this._extraPainters){const v=this._extraPainters.shift();return 0===this._extraPainters.length&&delete this._extraPainters,(0,x.getPromise)(v.redraw()).then(()=>this.drawNext(0))}if(!this.newfuncs||B>=this.newfuncs.length)return delete this.newfuncs,delete this.newopts,Promise.resolve(this.painter);const $=this.newfuncs[B],g=this.newopts[B];if(!$||this.pp?.findPainterFor($))return this.drawNext(B+1);const E=$?.fName?`func_${$.fName}`:`indx_${B}`;return $.$main_painter=this.painter,(ot.TPavePainter.canDraw($)?ot.TPavePainter.draw(this.painter.getDom(),$,g):this.pp.drawObject(this.painter.getDom(),$,g)).then(v=>(v.setSecondaryId(this.painter,E),this.drawNext(B+1)))}}const ue=(0,x.BIT)(10),Q=(0,x.BIT)(17);class me extends ke.JW{constructor(B,$){super(B,$),this.draw_content=!0,this.nbinsx=this.nbinsy=0,this.accept_drops=!0,this.mode3d=!1}getHisto(){return this.getObject()}getAxis(B){const $=this.getObject();switch(B){case"x":return $?.fXaxis;case"y":return $?.fYaxis;case"z":return $?.fZaxis}return null}isTProfile(){return this.matchObjectType(x.clTProfile)}isTF1(){return!1}isTH1K(){return this.matchObjectType("TH1K")}isTH2Poly(){return this.matchObjectType(/^TH2Poly/)||this.matchObjectType(/^TProfile2Poly/)}clear3DScene(){const B=this.getFramePainter();(0,x.isFunc)(B?.create3DScene)&&B.create3DScene(-1),this.mode3d=!1}cleanup(){this.clear3DScene(),delete this._color_palette,delete this.fContour,delete this.options,super.cleanup()}getDimension(){const B=this.getHisto();return B?B._typename.match(/^TH2/)||B._typename===x.clTProfile2D?2:B._typename.match(/^TH3/)||B._typename===x.clTProfile3D?3:this.isTH2Poly()?2:1:0}decodeOptions(B){const $=this.getHisto(),g=this.getDimension(),E=this.getPadPainter(),_=E?.getRootPad(!0);this.options?this.options.reset():this.options=new F,this.lineatt?.setUsed(!1),this.fillatt?.setUsed(!1),this.markeratt?.setUsed(!1),this.options.decode(B||$.fOption,g,$,E,_,this),this.storeDrawOpt(B)}copyOptionsFrom(B){if(B===this)return;const $=this.options,g=B.options;$.Mode3D=g.Mode3D,$.Zero=g.Zero,g.Mode3D?($.Lego=g.Lego,$.Surf=g.Surf):($.Color=g.Color,$.Contour=g.Contour)}copyOptionsToOthers(){this.forEachPainter(B=>{B!==this&&(0,x.isFunc)(B.copyOptionsFrom)&&B.copyOptionsFrom(this)},"objects")}scanContent(){}checkPadRange(B){this.isMainPainter()&&(this.check_pad_range=!B||"pad_range")}createHistDrawAttributes(B){const $=this.getHisto(),g=this.options;if(g._pfc>1||g._plc>1||g._pmc>1){const E=this.getPadPainter();if((0,x.isFunc)(E?.getAutoColor)){const _=E.getAutoColor($.$num_histos);this._auto_exec="",g._pfc>1&&(g._pfc=1,$.fFillColor=_,this._auto_exec+=`SetFillColor(${_});;`,delete this.fillatt),g._plc>1&&(g._plc=1,$.fLineColor=_,this._auto_exec+=`SetLineColor(${_});;`,delete this.lineatt),g._pmc>1&&(g._pmc=1,$.fMarkerColor=_,this._auto_exec+=`SetMarkerColor(${_});;`,delete this.markeratt)}}B?this.deleteAttr():(this.createAttFill({attr:$,color:this.options.histoFillColor,pattern:this.options.histoFillPattern,kind:1}),this.createAttLine({attr:$,color0:this.options.histoLineColor}))}updateAxes(B,$,g){const E=(_,v,p)=>{_.fTitle=v.fTitle,_.fLabels=v.fLabels,_.fXmin=v.fXmin,_.fXmax=v.fXmax,_.fTimeDisplay=v.fTimeDisplay,_.fTimeFormat=v.fTimeFormat,_.fAxisColor=v.fAxisColor,_.fLabelColor=v.fLabelColor,_.fLabelFont=v.fLabelFont,_.fLabelOffset=v.fLabelOffset,_.fLabelSize=v.fLabelSize,_.fNdivisions=v.fNdivisions,_.fTickLength=v.fTickLength,_.fTitleColor=v.fTitleColor,_.fTitleFont=v.fTitleFont,_.fTitleOffset=v.fTitleOffset,_.fTitleSize=v.fTitleSize,p&&(_.fFirst=v.fFirst,_.fLast=v.fLast,_.fBits=v.fBits)};E(B.fXaxis,$.fXaxis,this.snapid&&!g?.zoomChangedInteractive("x")),E(B.fYaxis,$.fYaxis,this.snapid&&!g?.zoomChangedInteractive("y")),E(B.fZaxis,$.fZaxis,this.snapid&&!g?.zoomChangedInteractive("z"))}updateObject(B,$){const g=this.getHisto(),E=this.getFramePainter(),_=this.getPadPainter(),v=this.options;if(B!==g){if(!this.matchObjectType(B))return!1;const p=_?.findPainterFor(this.findStat());g.TestBit(x.kNoStats)!==B.TestBit(x.kNoStats)&&(g.fBits=B.fBits,p&&(p.Enabled=!g.TestBit(x.kNoStats))),void 0!==this.snapid&&(g.fName=B.fName,v._pfc=v._plc=v._pmc=0),v._pfc||(g.fFillColor=B.fFillColor),g.fFillStyle=B.fFillStyle,v._plc||(g.fLineColor=B.fLineColor),g.fLineStyle=B.fLineStyle,g.fLineWidth=B.fLineWidth,v._pmc||(g.fMarkerColor=B.fMarkerColor),g.fMarkerSize=B.fMarkerSize,g.fMarkerStyle=B.fMarkerStyle,g.fEntries=B.fEntries,g.fTsumw=B.fTsumw,g.fTsumwx=B.fTsumwx,g.fTsumwx2=B.fTsumwx2,g.fXaxis.fNbins=B.fXaxis.fNbins,this.getDimension()>1&&(g.fTsumwy=B.fTsumwy,g.fTsumwy2=B.fTsumwy2,g.fTsumwxy=B.fTsumwxy,g.fYaxis.fNbins=B.fYaxis.fNbins,this.getDimension()>2&&(g.fTsumwz=B.fTsumwz,g.fTsumwz2=B.fTsumwz2,g.fTsumwxz=B.fTsumwxz,g.fTsumwyz=B.fTsumwyz,g.fZaxis.fNbins=B.fZaxis.fNbins)),this.updateAxes(g,B,E),g.fArray=B.fArray,g.fNcells=B.fNcells,g.fTitle=B.fTitle,g.fMinimum=B.fMinimum,g.fMaximum=B.fMaximum,g.fSumw2=B.fSumw2,1===this.getDimension()&&v.decodeSumw2(g),this.isTProfile()?g.fBinEntries=B.fBinEntries:this.isTH1K()?(g.fNIn=B.fNIn,g.fReady=0):this.isTH2Poly()&&(g.fBins=B.fBins),this._funcHandler=new Y(this,_,B.fFunctions,p);const C=g.fOption!==B.fOption;g.fOption=B.fOption,(void 0!==$&&v.original!==$||C)&&this.decodeOptions($||g.fOption)}return v.ominimum||(v.minimum=g.fMinimum),v.omaximum||(v.maximum=g.fMaximum),(this.snapid||!E||!E.zoomChangedInteractive())&&this.checkPadRange(),this.scanContent(),this.histogram_updated=!0,!0}extractAxesProperties(B){const $=E=>{E.fXbins.length>=E.fNbins?(E.regular=!1,E.GetBinCoord=function(_){const v=Math.round(_);if(v<=0)return this.fXmin;if(v>this.fNbins)return this.fXmax;if(v===_)return this.fXbins[v];const p=_1&&(this.nbinsy=g.fYaxis.fNbins,$(g.fYaxis),this.zmin=g.fZaxis.fXmin,this.zmax=g.fZaxis.fXmax,2===B&&this.options.ohmin&&this.options.ohmax&&(this.zmin=this.options.hmin,this.zmax=this.options.hmax)),B>2&&(this.nbinsz=g.fZaxis.fNbins,$(g.fZaxis))}drawAxes(){var B=this;return(0,Te.A)(function*(){const $=B.getFramePainter();if(!$)return!1;const g=B.getHisto();if(B.ymin===B.ymax&&(B.ymax+=1),!B.isMainPainter()){const _={second_x:B.options.AxisPos>=10,second_y:B.options.AxisPos%10==1,hist_painter:B};return!(!_.second_x&&!_.second_y||$.hasDrawnAxes(_.second_x,_.second_y))&&($.setAxes2Ranges(_.second_x,g.fXaxis,B.xmin,B.xmax,_.second_y,g.fYaxis,B.ymin,B.ymax),$.createXY2(_),$.drawAxes2(_.second_x,_.second_y))}if(B.options.adjustFrame){const _=B.getPadPainter().getRootPad();_&&(_.fUxmin<_.fUxmax&&($.fX1NDC=(B.xmin-_.fUxmin)/(_.fUxmax-_.fUxmin),$.fX2NDC=(B.xmax-_.fUxmin)/(_.fUxmax-_.fUxmin)),_.fUymin<_.fUymax&&($.fY1NDC=(B.ymin-_.fUymin)/(_.fUymax-_.fUymin),$.fY2NDC=(B.ymax-_.fUymin)/(_.fUymax-_.fUymin)),_.fLeftMargin=$.fX1NDC,_.fRightMargin=1-$.fX2NDC,_.fBottomMargin=$.fY1NDC,_.fTopMargin=1-$.fY2NDC,_.fFrameLineColor=0,_.fFrameLineWidth=0,$.setRootPadRange(_),$.fillatt.setSolidColor("none"),$.redraw()),B.options.adjustFrame=!1}if($.setAxesRanges(g.fXaxis,B.xmin,B.xmax,g.fYaxis,B.ymin,B.ymax,g.fZaxis,0,0),$.createXY({ndim:B.getDimension(),check_pad_range:B.check_pad_range,zoom_ymin:B.zoom_ymin,zoom_ymax:B.zoom_ymax,ymin_nz:B.ymin_nz,swap_xy:B.options.BarStyle>=20,reverse_x:B.options.RevX,reverse_y:B.options.RevY,symlog_x:B.options.SymlogX,symlog_y:B.options.SymlogY,Proj:B.options.Proj,extra_y_space:B.options.Text&&B.options.BarStyle>0,hist_painter:B}),delete B.check_pad_range,B.options.Same)return!1;const E=B.options.Axis<0||2===B.options.Axis;return $.drawAxes(!1,E,E,B.options.AxisPos,B.options.Zscale&&B.options.Zvert,B.options.Zscale&&!B.options.Zvert)})()}processOnlineChange(B){const $=this.getCanvPainter();(0,x.isFunc)($?.processChanges)&&$.processChanges(B,this)}fillWebObjectOptions(B){this._auto_exec&&B&&(B.fcust="auto_exec:"+this._auto_exec,delete this._auto_exec)}toggleTitle(B){const $=this.getHisto();return!(!this.isMainPainter()||!$)&&("only-check"===B?!$.TestBit(Q):($.InvertBit(Q),void this.drawHistTitle().then(()=>this.processOnlineChange(`exec:SetBit(TH1::kNoTitle,${$.TestBit(Q)?1:0})`))))}drawHistTitle(){var B=this;return(0,Te.A)(function*(){if(!B.isMainPainter()||B.options.Same||B.options.Axis>0&&!B.options.ForceTitle)return B;const $=B.getHisto(),g=x.gStyle,E=B.getPadPainter(),_=E?.findPainterFor(null,"title"),v=!$.TestBit(Q)&&g.fOptTitle>0;let p=_?.getObject();if(!p&&(0,x.isFunc)(E?.findInPrimitives)&&(p=E.findInPrimitives("title",x.clTPaveText)),p){if(p.Clear(),v&&p.AddText($.fTitle),_)return _.redraw().then(()=>B)}else if(v&&!_&&$.fTitle)return p=(0,x.create)(x.clTPaveText),Object.assign(p,{fName:"title",fFillColor:g.fTitleColor,fFillStyle:g.fTitleStyle,fBorderSize:g.fTitleBorderSize,fTextFont:g.fTitleFont,fTextSize:g.fTitleFontSize,fTextColor:g.fTitleTextColor,fTextAlign:g.fTitleAlign}),p.AddText($.fTitle),ot.TPavePainter.draw(B.getDom(),p,"postitle").then(C=>(C?.setSecondaryId(B),B));return B})()}processTitleChange(B){const $=this.getHisto(),g=this.getPadPainter()?.findPainterFor(null,"title");return $&&g?"check"===B?!this.isMainPainter()||this.options.Same?null:$:(g.clearPave(),g.addText($.fTitle),g.redraw(),void this.submitCanvExec(`SetTitle("${$.fTitle}")`)):null}updateStatWebCanvas(){if(!this.snapid)return;const B=this.findStat(),$=this.getPadPainter()?.findPainterFor(B);$&&!$.snapid&&$.redraw()}findStat(){return this.findFunction(x.clTPaveStats,"stats")}toggleStat(B){let g,E,$=this.findStat();if(B||(B=""),$)g=this.getPadPainter()?.findPainterFor($);else{if(B.indexOf("-check")>0)return!1;$=this.createStat(!0)}if("only-check"===B)return g?.Enabled||!1;if("fitpar-check"===B)return $?.fOptFit||!1;if("fitpar-toggle"===B)return!!$&&($.fOptFit=$.fOptFit?0:1111,g?.redraw(),!0);if(g)g.Enabled=!g.Enabled,this.options.StatEnabled=g.Enabled,g.redraw(),E=g.Enabled;else{const _=this.selectCurrentPad(this.getPadName());E=ot.TPavePainter.draw(this.getDom(),$).then(()=>this.selectCurrentPad(_))}return this.processOnlineChange(`exec:SetBit(TH1::kNoStats,${E?0:1})`,this),E}isIgnoreStatsFill(){return!this.getObject()||!this.draw_content&&!this.create_stats&&!this.snapid}createStat(B){const $=this.getHisto();if(!$||!B&&!this.options.ForceStat&&(this.options.NoStat||$.TestBit(x.kNoStats)||!x.settings.AutoStat||!this.isMainPainter()))return null;const g=x.gStyle;let E=this.findStat(),_=this.options.optstat,v=this.options.optfit;return void 0!==_?(E&&(E.fOptStat=_),delete this.options.optstat):_=$.$custom_stat||g.fOptStat,void 0!==v?(E&&(E.fOptFit=v),delete this.options.optfit):v=g.fOptFit,E||_||v?(this.create_stats=!0,E||(E=(0,x.create)(x.clTPaveStats),Object.assign(E,{fName:"stats",fOptStat:_,fOptFit:v,fX1NDC:g.fStatX-g.fStatW,fY1NDC:g.fStatY-g.fStatH,fX2NDC:g.fStatX,fY2NDC:g.fStatY,fTextAlign:12}),E.AddText($.fName),this.addFunction(E),E)):null}findFunction(B,$){const g=this.getHisto()?.fFunctions?.arr;if(!g)return null;for(let E=0;Ev&&(E=v)):E="left"===$?0:v,_&&(_.fFirst===_.fLast||!_.TestBit(ke.rb.kAxisRange)||_.fFirst<=1&&_.fLast>=v)&&(_=void 0),"left"===$?(E<0&&(E=0),_&&_.fFirst>1&&E<_.fFirst&&(E=_.fFirst-1)):(E>v&&(E=v),_&&_.fLast<=v&&E>_.fLast&&(E=_.fLast)),E}unzoomUserRange(B,$,g){const E=this.getHisto();if(!E)return!1;let _=!1;const v=C=>!(!C||!C.TestBit(ke.rb.kAxisRange)||C.fFirst===C.fLast||C.fFirst<=1&&C.fLast>=C.fNbins||(C.InvertBit(ke.rb.kAxisRange),0)),p=C=>!(this.getDimension()!==C||this.options.minimum===x.kNoZoom&&this.options.maximum===x.kNoZoom||!this.draw_content||(this.options.minimum=this.options.maximum=x.kNoZoom,this.scanContent(!0),0));return B&&v(E.fXaxis)&&(_=!0),$&&(v(E.fYaxis)||p(1))&&(_=!0),g&&(v(E.fZaxis)||p(2))&&(_=!0),_}addInteractivity(){var B=this;return(0,Te.A)(function*(){const $=B.isMainPainter(),g=B.options.AxisPos>0;return($||g?B.getFramePainter():null)?.addInteractivity(!$&&g)??!1})()}changeUserRange(B,$){const g=this.getHisto(),E=g?g[`f${$}axis`]:null;if(!E)return;let _=`[1,${E.fNbins}]`;E.TestBit(ke.rb.kAxisRange)&&(_=`[${E.fFirst},${E.fLast}]`),B.input(`Enter user range for axis ${$} like [1,${E.fNbins}]`,_).then(v=>{if(!v||!(v=JSON.parse(v))||2!==v.length)return;const p=parseInt(v[0]),C=parseInt(v[1]);Number.isInteger(p)&&Number.isInteger(C)&&(E.fFirst=p,E.fLast=C,(E.fFirst=1&&E.fLast<=E.fNbins)!==E.TestBit(ke.rb.kAxisRange)&&E.InvertBit(ke.rb.kAxisRange),this.interactiveRedraw())})}changeValuesRange(B){let $;$=this.options.minimum!==x.kNoZoom&&this.options.maximum!==x.kNoZoom?`[${this.options.minimum},${this.options.maximum}]`:`[${this.gminbin},${this.gmaxbin}]`,B.input("Enter min/max hist values or empty string to reset",$).then(g=>{g=g?JSON.parse(g):[],(0,x.isObject)(g)&&2===g.length&&Number.isFinite(g[0])&&Number.isFinite(g[1])?(this.options.minimum=g[0],this.options.maximum=g[1]):this.options.minimum=this.options.maximum=x.kNoZoom,this.interactiveRedraw()})}executeMenuCommand(B,$){if(super.executeMenuCommand(B,$))return!0;if(B.fClassName===x.clTAxis){const g=(0,x.isStr)(B.$execid)?B.$execid.indexOf("#"):-1,E=g>0?B.$execid.slice(g+1):"x",_=this.getFramePainter();if("UnZoom"===B.fName)return _?.unzoom(E),!0;if("SetRange"===B.fName){const v=_?.getAxis(E),p=JSON.parse(`[${$}]`);v&&2===p?.length&&_?.zoom(E,v.GetBinLowEdge(p[0]),v.GetBinLowEdge(p[1]+1))}else if("SetRangeUser"===B.fName){const v=JSON.parse(`[${$}]`);2===v?.length&&_?.zoom(E,v[0],v[1])}}return!1}fillContextMenuItems(B){const $=this.getHisto(),g=this.getFramePainter();if($){if(this.options.Axis<=0&&!this.isTF1()&&B.addchk(this.toggleStat("only-check"),"Show statbox",()=>this.toggleStat()),$.fTitle&&this.isMainPainter()&&B.addchk(this.toggleTitle("only-check"),"Show title",()=>this.toggleTitle()),this.draw_content&&(1===this.getDimension()?B.add("User range X",()=>this.changeUserRange(B,"X")):(B.add("sub:User ranges"),B.add("X",()=>this.changeUserRange(B,"X")),B.add("Y",()=>this.changeUserRange(B,"Y")),this.getDimension()>2?B.add("Z",()=>this.changeUserRange(B,"Z")):B.add("Values",()=>this.changeValuesRange(B)),B.add("endsub:")),(0,x.isFunc)(this.fillHistContextMenu)&&this.fillHistContextMenu(B)),this.options.Mode3D){B.size()>0&&B.add("separator");const E=this.getMainPainter()||this;B.addchk(E.isTooltipAllowed(),"Show tooltips",()=>E.setTooltipAllowed("toggle")),B.addchk(g?.enable_highlight,"Highlight bins",()=>{g.enable_highlight=!g.enable_highlight,!g.enable_highlight&&g.mode3d&&(0,x.isFunc)(g.highlightBin3D)&&g.highlightBin3D(null)}),(0,x.isFunc)(g?.render3D)&&(B.addchk(E.options.FrontBox,"Front box",()=>{E.options.FrontBox=!E.options.FrontBox,g.render3D()}),B.addchk(E.options.BackBox,"Back box",()=>{E.options.BackBox=!E.options.BackBox,g.render3D()}),B.addchk(g.camera?.isOrthographicCamera,"Othographic camera",_=>g.change3DCamera(_))),this.draw_content&&(B.addchk(!this.options.Zero,"Suppress zeros",()=>{this.options.Zero=!this.options.Zero,this.interactiveRedraw("pad")}),(12===this.options.Lego||14===this.options.Lego)&&(B.addchk(this.options.Zscale,"Z scale",()=>this.toggleColz()),this.fillPaletteMenu(B,!0))),(0,x.isFunc)(E.control?.reset)&&B.add("Reset camera",()=>E.control.reset())}this.histogram_updated&&g.zoomChangedInteractive()&&B.add("Let update zoom",()=>g.zoomChangedInteractive("reset"))}}getSnapId(B){if(!this.snapid)return"";let $=this.snapid.toString();return B&&($+="#",this.isTF1()&&("x"===B||"y"===B||"z"===B)&&($+="hist#"),$+=B),$}autoZoom(){}clickButton(B){const $=this.getFramePainter();if(!this.isMainPainter()||!$)return!1;switch(B){case"ToggleZoom":if($.zoom_xmin!==$.zoom_xmax||$.zoom_ymin!==$.zoom_ymax||$.zoom_zmin!==$.zoom_zmax){const g=$.unzoom();return $.zoomChangedInteractive("reset"),g}if(this.draw_content)return this.autoZoom();break;case"ToggleLogX":return $.toggleAxisLog("x");case"ToggleLogY":return $.toggleAxisLog("y");case"ToggleLogZ":return $.toggleAxisLog("z");case"ToggleStatBox":return(0,x.getPromise)(this.toggleStat())}return!1}fillToolbar(B){const $=this.getPadPainter();$&&($.addPadButton("auto_zoom","Toggle between unzoom and autozoom-in","ToggleZoom","Ctrl *"),$.addPadButton("arrow_right","Toggle log x","ToggleLogX","PageDown"),$.addPadButton("arrow_up","Toggle log y","ToggleLogY","PageUp"),this.getDimension()>1&&$.addPadButton("arrow_diag","Toggle log z","ToggleLogZ"),$.addPadButton("statbox","Toggle stat box","ToggleStatBox"),B||$.showPadButtons())}get3DToolTip(B){const $=this.getHisto(),g={bin:B,name:$.fName,title:$.fTitle};switch(this.getDimension()){case 1:g.ix=B,g.iy=1,g.value=$.getBinContent(g.ix),g.error=$.getBinError(B),g.lines=this.getBinTooltips(B-1);break;case 2:g.ix=B%(this.nbinsx+2),g.iy=(B-g.ix)/(this.nbinsx+2),g.value=$.getBinContent(g.ix,g.iy),g.error=$.getBinError(B),g.lines=this.getBinTooltips(g.ix-1,g.iy-1);break;case 3:g.ix=B%(this.nbinsx+2),g.iy=(B-g.ix)/(this.nbinsx+2)%(this.nbinsy+2),g.iz=(B-g.ix-g.iy*(this.nbinsx+2))/(this.nbinsx+2)/(this.nbinsy+2),g.value=$.getBinContent(g.ix,g.iy,g.iz),g.error=$.getBinError(B),g.lines=this.getBinTooltips(g.ix-1,g.iy-1,g.iz-1)}return g}createContour(B,$,g,E,_){const v=new J($,g),p=this.getDimension();if(_)v.createCustom(_);else{B<2&&(B=x.gStyle.fNumberContours);const I=this.getPadPainter().getRootPad(!0);v.createNormal(B,I?.fLogv??(2===p&&I?.fLogz)??0,E)}v.configIndicies(this.options.Zero?-1:0,0!==v.colzmin||!this.options.Zero||this.isTH2Poly()?0:-1);const C=this.getFramePainter();return C&&p<3&&!C.mode3d&&(C.zmin=v.colzmin,C.zmax=v.colzmax),this.fContour=v,v}getContour(B){if(this.fContour&&!B)return this.fContour;const $=this.getMainPainter(),g=this.getFramePainter();if($?.fContour&&$!==this&&!this.options.IgnoreMainScale)return this.fContour=$.fContour,this.fContour;const E=this.getObject(),_=this===$||void 0===$?.minbin||this.options.IgnoreMainScale||$?.tt_handle?.ScatterPlot?this:$;let p,k,v=0,C=_.minbin,I=_.maxbin,U=_.minposbin;C===I&&(C=_.gminbin,I=_.gmaxbin,U=_.gminposbin);let Z=C,ee=I;this.options.minimum!==x.kNoZoom&&(C=this.options.minimum,Z=Math.min(Z,C),p=!0),this.options.maximum!==x.kNoZoom&&(I=this.options.maximum,ee=Math.max(ee,I),p=!1),C>=I&&(p?I=C+1:C=I-1),g&&g.zoom_zmin!==g.zoom_zmax&&(C=g.zoom_zmin,I=g.zoom_zmax),E.fContour?.length>1&&(E.TestBit(ue)?k=E.fContour:v=E.fContour.length);const he=this.createContour(v,C,I,U,k);return this.getDimension()<3&&g&&(g.zmin=Z,g.zmax=ee,Z!==he.colzmin||ee!==he.colzmax?(g.zoom_zmin=he.colzmin,g.zoom_zmax=he.colzmax):g.zoom_zmin=g.zoom_zmax=void 0),he}getContourLevels(B){return this.getContour(B).getLevels()}getHistPalette(B){B&&(this._color_palette=null);const $=this.getPadPainter();return!this._color_palette&&!this.options.Palette&&(0,x.isFunc)($?.getCustomPalette)&&(this._color_palette=$.getCustomPalette()),this._color_palette||(this._color_palette=(0,L.jh)(this.options.Palette,$?.isGrayscale())),this._color_palette}fillPaletteMenu(B,$){if(B.addPaletteMenu(this.options.Palette||x.settings.Palette,g=>{this.options.Palette=parseInt(g),this.getHistPalette(!0),this.redraw()}),!$){B.add("Default position",()=>{this.drawColorPalette(this.options.Zscale,!1,!0).then(()=>this.processOnlineChange("drawopt"))},"Set default position for palette");const g=this.findFunction(x.clTPaletteAxis);B.addchk(!g||g.fX2NDC-g.fX1NDC{this.options.Zvert=_,this.drawColorPalette(this.options.Zscale,!1,"toggle").then(()=>this.processOnlineChange("drawopt"))},"Toggle palette vertical/horizontal flag"),B.add("Bring to front",()=>this.getPadPainter()?.findPainterFor(g)?.bringToFront())}}drawColorPalette(B,$,g){var E=this;return(0,Te.A)(function*(){const _=E.getMainPainter(),v=E.getPadPainter();if(_!==E&&_&&!1!==_.draw_content&&_.options.Zscale)return null;let p=E.findFunction(x.clTPaletteAxis),C=v?.findPainterFor(p);const I=!!p;if(E._can_move_colz&&(delete E._can_move_colz,g||(g=!0)),!C&&!p&&!E.options.Axis&&(C=v?.findPainterFor(void 0,void 0,x.clTPaletteAxis),C&&(p=C.getObject(),E.addFunction(p,!0))),!B)return C&&(E.options.Zvert=C._palette_vertical,C.Enabled=!1,C.removeG()),null;if(p)void 0!==v?._palette_vertical&&(E.options.Zvert=v._palette_vertical);else{if(p=(0,x.create)(x.clTPaletteAxis),p.fInit=1,p.$can_move=!0,p.$generated=!0,Object.assign(p,E.options.Zvert?{fX1NDC:1.005-x.gStyle.fPadRightMargin,fX2NDC:1.045-x.gStyle.fPadRightMargin,fY1NDC:x.gStyle.fPadBottomMargin,fY2NDC:1-x.gStyle.fPadTopMargin}:{fX1NDC:x.gStyle.fPadLeftMargin,fX2NDC:1-x.gStyle.fPadRightMargin,fY1NDC:1.005-x.gStyle.fPadTopMargin,fY2NDC:1.045-x.gStyle.fPadTopMargin}),Object.assign(p.fAxis,{fChopt:"+",fLineSyle:1,fLineWidth:1,fTextAngle:0,fTextAlign:11}),2===E.getDimension()){const ee=E.getHisto().fZaxis;Object.assign(p.fAxis,{fTitle:ee.fTitle,fTitleSize:ee.fTitleSize,fTitleOffset:ee.fTitleOffset,fTitleColor:ee.fTitleColor,fLineColor:ee.fAxisColor,fTextSize:ee.fLabelSize,fTextColor:ee.fLabelColor,fTextFont:ee.fLabelFont,fLabelOffset:ee.fLabelOffset})}E.addFunction(p,!0),g=!0}const U=E.getFramePainter();if(g&&U&&p.$can_move)if(E.options.Zvert){if("toggle"===g){const ee=p.fY2NDC-p.fY1NDC;p.fX1NDC=U.fX2NDC+.005,p.fX2NDC=p.fX1NDC+ee}p.fX1NDC>.5*(U.fX1NDC+U.fX2NDC)?(p.fX2NDC=U.fX2NDC+.005+(p.fX2NDC-p.fX1NDC),p.fX1NDC=U.fX2NDC+.005):(p.fX1NDC=U.fX1NDC-.03-(p.fX2NDC-p.fX1NDC),p.fX2NDC=U.fX1NDC-.03),p.fY1NDC=U.fY1NDC,p.fY2NDC=U.fY2NDC}else{if("toggle"===g){const ee=p.fX2NDC-p.fX1NDC;p.fY1NDC=U.fY2NDC+.005,p.fY2NDC=p.fY1NDC+ee}p.fX1NDC=U.fX1NDC,p.fX2NDC=U.fX2NDC,p.fY2NDC>.5*(U.fY1NDC+U.fY2NDC)?(p.fY2NDC=U.fY2NDC+.005+(p.fY2NDC-p.fY1NDC),p.fY1NDC=U.fY2NDC+.005):(p.fY1NDC=U.fY1NDC-.05-(p.fY2NDC-p.fY1NDC),p.fY2NDC=U.fY1NDC-.05)}p.$main_painter=E;let Z,k="";if($&&(k+=";postpone"),g&&!E.do_redraw_palette&&(k+=";can_move"),E.options.Cjust&&(k+=";cjust"),C){if(C.Enabled=!0,$)return C;Z=C.drawPave(k)}else{const ee=E.selectCurrentPad(E.getPadName());Z=ot.TPavePainter.draw(E.getDom(),p,k).then(he=>{C=he,E.selectCurrentPad(ee),C.setSecondaryId(E,I&&!p.$generated?`func_${p.fName}`:void 0)})}return Z.then(()=>{E.options.Zvert=C._palette_vertical,C.redraw=()=>{};let ee=!1;if(g&&U&&!E.do_redraw_palette){const V=v?.getRootPad(!0);E.options.Zvert?(p.fX1NDC>.5&&U.fX2NDC>p.fX1NDC?(ee=!0,U.fX2NDC=p.fX1NDC-.01,U.fX1NDC>U.fX2NDC-.1&&(U.fX1NDC=Math.max(0,U.fX2NDC-.1))):p.fX2NDC<.5&&U.fX1NDC.5&&U.fY2NDC>p.fY1NDC?(ee=!0,U.fY2NDC=p.fY1NDC-.01,U.fY1NDC>U.fY2NDC-.1&&(U.fY1NDC=Math.max(0,U.fXYNDC-.1))):p.fY2NDC<.5&&U.fY1NDC(delete E.do_redraw_palette,C))):C})})()}toggleColz(){if(this.options.canHavePalette())return this.options.Zscale=!this.options.Zscale,this.drawColorPalette(this.options.Zscale,!1,!0).then(()=>this.processOnlineChange("drawopt"))}toggleMode3D(){return this.options.Mode3D=!this.options.Mode3D,this.options.Mode3D&&!this.options.Surf&&!this.options.Lego&&!this.options.Error&&(this.options.Lego=this.nbinsx>=50||this.nbinsy>=50?this.options.Scat?13:14:this.options.Scat?1:12,this.options.Zero=!1),this.copyOptionsToOthers(),this.interactiveRedraw("pad","drawopt")}prepareDraw(B){B||(B={rounding:!0,extra:0,middle:0}),void 0===B.extra&&(B.extra=0),void 0===B.middle&&(B.middle=0);const $=this.getHisto(),g=$.fXaxis,E=$.fYaxis,_=this.getFramePainter(),v=this.getDimension(),p={i1:B.nozoom?0:this.getSelectIndex("x","left",0-B.extra),i2:B.nozoom?this.nbinsx:this.getSelectIndex("x","right",1+B.extra),j1:1===v||B.nozoom?0:this.getSelectIndex("y","left",0-B.extra),j2:1===v?1:B.nozoom?this.nbinsy:this.getSelectIndex("y","right",1+B.extra),min:0,max:0,sumz:0,xbar1:0,xbar2:1,ybar1:0,ybar2:1};if(B.cutg){let V=p.i2,b=p.i1,P=p.j2,T=p.j1;for(let z=p.i1;z_.size_x3d&&(p.grx[C]=_.size_x3d,this.options.RevX?p.i1=C:p.i2=C)));if(1===v)p.gry[0]=he.gry(0),p.gry[1]=he.gry(1);else for(I=p.j1;I<=p.j2;++I)k=E.GetBinCoord(I+B.middle),he.logy&&k<=0?p.j1=I+1:(p.origy&&(p.origy[I]=k),p.gry[I]=he.gry(k),B.rounding&&(p.gry[I]=Math.round(p.gry[I])),B.use3d&&(p.gry[I]<-_.size_y3d&&(p.gry[I]=-_.size_y3d,this.options.RevY?p.j2=I:p.j1=I),p.gry[I]>_.size_y3d&&(p.gry[I]=_.size_y3d,this.options.RevY?p.j1=I:p.j2=I)));for(this.maxbin=this.minbin=this.minposbin=null,C=p.i1;C0&&(Z0&&(null===this.minposbin||Z(B.setAsMainPainter(),B.decodeOptions($),B.isTH2Poly()&&(B.options.Mode3D?B.options.Lego=12:B.options.Color||(B.options.Color=!0)),B.checkPadRange(14!==B.options.Contour),B.scanContent(),B.createStat(),B.callDrawFunc())).then(()=>B.drawFunctions()).then(()=>{if(!B.Mode3D&&B.options.AutoZoom)return B.autoZoom()}).then(()=>{if(B.options.Project&&!B.mode3d&&(0,x.isFunc)(B.toggleProjection))return B.toggleProjection(B.options.Project)}).then(()=>(B.fillToolbar(),B))})()}}},4369:(Yr,mt,Se)=>{"use strict";Se.d(mt,{$o:()=>lt,D1:()=>De,FF:()=>T,Fk:()=>Ye,Hg:()=>B,Mx:()=>Lr,N8:()=>bt,NE:()=>U,PI:()=>Z,Ph:()=>b,Pk:()=>V,Q_:()=>$,Ql:()=>je,Qu:()=>k,R0:()=>ot,Tq:()=>Rs,Ub:()=>Sn,V$:()=>W,_T:()=>zi,aM:()=>J,bP:()=>_,bm:()=>he,c4:()=>v,h0:()=>E,k:()=>X,k1:()=>Q,lW:()=>kn,lZ:()=>Ze,mU:()=>te,nc:()=>Y,ry:()=>nn,s4:()=>I,v5:()=>Ge,w1:()=>P,yd:()=>F,ym:()=>He});var Te=Se(4882),x=Se(8872);const L="TStreamerElement",ve="TStreamerObject",ke="TStreamerSTL",ot="TStreamerInfoList",Ye="TDirectory",Ze="TDirectoryFile",He="TBasket",Ve="TDatime",De="StreamerInfo",F=1,J=2,Y=3,ue=4,Q=5,me=6,X=7,B=8,$=9,g=10,E=11,_=12,v=13,p=14,C=15,I=16,U=17,k=18,Z=19,ee=0,he=20,V=40,b=61,P=62,T=63,z=64,W=65,fe=66,we=67,Me=68,je=69,Ge=71,lt=300,bt=500,te=501,tt=1073741824,Fe=4294967295,Ne=2147483648,rt=(0,x.BIT)(14),St=0,pt=1,st=2,vt=3,Yt=4,qt=5,Ot=6,Bn=7,Mn=8,bn=["BASE","char","short","int","long","float","int","const char*","double","Double32_t","char","unsigned char","unsigned short","unsigned","unsigned long","unsigned","Long64_t","ULong64_t","bool","Float16_t"],Dn=["","vector","list","deque","map","multimap","set","multiset","bitset"],$n=(0,x.BIT)(4),Cn=(0,x.BIT)(5),yn={TObject(oe,D){D.fUniqueID=oe.ntou4(),D.fBits=oe.ntou4(),D.fBits&$n&&oe.ntou2()},TNamed:[{basename:x.clTObject,base:1,func(oe,D){D._typename||(D._typename=x.clTNamed),oe.classStreamer(D,x.clTObject)}},{name:"fName",func(oe,D){D.fName=oe.readTString()}},{name:"fTitle",func(oe,D){D.fTitle=oe.readTString()}}],TObjString:[{basename:x.clTObject,base:1,func(oe,D){D._typename||(D._typename=x.clTObjString),oe.classStreamer(D,x.clTObject)}},{name:"fString",func(oe,D){D.fString=oe.readTString()}}],TClonesArray(oe,D){D._typename||(D._typename=x.clTClonesArray),D.$kind=x.clTClonesArray,D.name="";const O=oe.last_read_version;O>2&&oe.classStreamer(D,x.clTObject),O>1&&(D.name=oe.readTString());let ie=oe.readTString(),_e=0;const Oe=ie.lastIndexOf(";");Oe>0&&(_e=parseInt(ie.slice(Oe+1)),ie=ie.slice(0,Oe));let $e=oe.ntou4();$e<0&&($e=-$e),D.arr=new Array($e),D.fLast=$e-1,D.fLowerBound=oe.ntou4();let et=oe.fFile.getStreamer(ie,{val:_e});if(et=oe.fFile.getSplittedStreamer(et),et){for(let it=0;it<$e;++it)D.arr[it]={_typename:ie};for(let it=0;it2&&oe.classStreamer(D,x.clTObject),O>1&&(D.name=oe.readTString());const ie=oe.ntou4();for(let _e=0;_e1&&(D.fIndexValuesMinor=oe.readFastArray(D.fN,I)),D.fIndex=oe.readFastArray(D.fN,I)},TRefArray(oe,D){D._typename="TRefArray",oe.classStreamer(D,x.clTObject),D.name=oe.readTString();const O=oe.ntoi4();D.fLast=O-1,D.fLowerBound=oe.ntoi4(),oe.ntou2(),D.fUIDs=oe.readFastArray(O,v)},TCanvas(oe,D){D._typename=x.clTCanvas,oe.classStreamer(D,x.clTPad),D.fDISPLAY=oe.readTString(),D.fDoubleBuffer=oe.ntoi4(),D.fRetained=0!==oe.ntou1(),D.fXsizeUser=oe.ntoi4(),D.fYsizeUser=oe.ntoi4(),D.fXsizeReal=oe.ntoi4(),D.fYsizeReal=oe.ntoi4(),D.fWindowTopX=oe.ntoi4(),D.fWindowTopY=oe.ntoi4(),D.fWindowWidth=oe.ntoi4(),D.fWindowHeight=oe.ntoi4(),D.fCw=oe.ntou4(),D.fCh=oe.ntou4(),D.fCatt=oe.classStreamer({},x.clTAttCanvas),oe.ntou1(),oe.ntou1(),D.fHighLightColor=oe.ntoi2(),D.fBatch=0!==oe.ntou1(),oe.ntou1(),oe.ntou1(),oe.ntou1()},TObjArray(oe,D){D._typename||(D._typename=x.clTObjArray),D.$kind=x.clTObjArray,D.name="";const O=oe.last_read_version;O>2&&oe.classStreamer(D,x.clTObject),O>1&&(D.name=oe.readTString());const ie=oe.ntou4();let _e=0;for(D.arr=new Array(ie),D.fLast=ie-1,D.fLowerBound=oe.ntou4();_e1?oe.readTString():x.clTPolyMarker3D},TPolyLine3D(oe,D){oe.classStreamer(D,x.clTObject),oe.classStreamer(D,x.clTAttLine),D.fN=oe.ntoi4(),D.fP=oe.readFastArray(3*D.fN,Q),D.fOption=oe.readTString()},TStreamerInfo(oe,D){oe.classStreamer(D,x.clTNamed),D.fCheckSum=oe.ntou4(),D.fClassVersion=oe.ntou4(),D.fElements=oe.readObjectAny()},TStreamerElement(oe,D){const O=oe.last_read_version;if(oe.classStreamer(D,x.clTNamed),D.fType=oe.ntou4(),D.fSize=oe.ntou4(),D.fArrayLength=oe.ntou4(),D.fArrayDim=oe.ntou4(),D.fMaxIndex=oe.readFastArray(1===O?oe.ntou4():5,v),D.fTypeName=oe.readTString(),D.fType===E&&("Bool_t"===D.fTypeName||"bool"===D.fTypeName)&&(D.fType=k),D.fXmin=D.fXmax=D.fFactor=0,3===O)D.fXmin=oe.ntod(),D.fXmax=oe.ntod(),D.fFactor=oe.ntod();else if(O>3&&D.fBits&(0,x.BIT)(6)){let ie=D.fTitle.indexOf("[");ie>=0&&D.fType>V&&(ie=D.fTitle.indexOf("[",ie+1));const _e=D.fTitle.indexOf("]",ie+1);if(ie>=0&&_e>=ie+2){const Oe=D.fTitle.slice(ie+1,_e).split(",");let $e=32;if(!Oe||Oe.length<2)throw new Error(`Problem to decode range setting from streamer element title ${D.fTitle}`);3===Oe.length&&($e=parseInt(Oe[2])),(!Number.isInteger($e)||$e<2||$e>32)&&($e=32);const et=_t=>{if(!_t)return 0;if(_t.indexOf("pi")<0)return parseFloat(_t);let sn=1;switch("-"===(_t=_t.trim())[0]&&(sn=-1,_t=_t.slice(1)),_t){case"2pi":case"2*pi":case"twopi":return 2*sn*Math.PI;case"pi/2":return sn*Math.PI/2;case"pi/4":return sn*Math.PI/4}return sn*Math.PI};D.fXmin=et(Oe[0]),D.fXmax=et(Oe[1]);const it=$e>=0&&$e<32?Math.pow(2,$e):4294967295;D.fXmin2&&(D.fBaseVersion=oe.ntou4())},TStreamerSTL(oe,D){oe.classStreamer(D,L),D.fSTLtype=oe.ntou4(),D.fCtype=oe.ntou4(),D.fSTLtype===qt&&(0===D.fTypeName.indexOf("std::set")||0===D.fTypeName.indexOf("set"))&&(D.fSTLtype=Ot),D.fSTLtype===Ot&&(0===D.fTypeName.indexOf("std::multimap")||0===D.fTypeName.indexOf("multimap"))&&(D.fSTLtype=qt)},TStreamerSTLstring(oe,D){oe.last_read_version>0&&oe.classStreamer(D,ke)},TList(oe,D){if(D._typename||(D._typename=this.typename),D.$kind=x.clTList,oe.last_read_version>3){oe.classStreamer(D,x.clTObject),D.name=oe.readTString();const O=oe.ntou4();D.arr=new Array(O),D.opt=new Array(O);for(let ie=0;ie1&&(oe.classStreamer(D,L),D.fCountVersion=oe.ntou4(),D.fCountName=oe.readTString(),D.fCountClass=oe.readTString())},TStreamerBasicPointer:"TStreamerLoop",TStreamerObject(oe,D){oe.last_read_version>1&&oe.classStreamer(D,L)},TStreamerBasicType:ve,TStreamerObjectAny:ve,TStreamerString:ve,TStreamerObjectPointer:ve,TStreamerObjectAnyPointer(oe,D){oe.last_read_version>0&&oe.classStreamer(D,L)},TTree:{name:"$file",func(oe,D){D.$kind="TTree",D.$file=oe.fFile}},RooRealVar(oe,D){const O=oe.last_read_version;oe.classStreamer(D,"RooAbsRealLValue"),1===O&&(oe.ntod(),oe.ntod(),oe.ntoi4()),D._error=oe.ntod(),D._asymErrLo=oe.ntod(),D._asymErrHi=oe.ntod(),O>=2&&(D._binning=oe.readObjectAny()),3===O&&(D._sharedProp=oe.readObjectAny()),O>=4&&(D._sharedProp=oe.classStreamer({},"RooRealVarSharedProperties"))},RooAbsBinning(oe,D){oe.classStreamer(D,1===oe.last_read_version?x.clTObject:x.clTNamed),oe.classStreamer(D,"RooPrintable")},RooCategory(oe,D){const O=oe.last_read_version;oe.classStreamer(D,"RooAbsCategoryLValue"),D._sharedProp=1===O?oe.readObjectAny():oe.classStreamer({},"RooCategorySharedProperties")},"RooWorkspace::CodeRepo":oe=>{const D=2===oe.last_read_version?3:2;for(let O=0;O1&&(D._name=oe.readTString())},TImagePalette:[{basename:x.clTObject,base:1,func(oe,D){D._typename||(D._typename=x.clTImagePalette),oe.classStreamer(D,x.clTObject)}},{name:"fNumPoints",func(oe,D){D.fNumPoints=oe.ntou4()}},{name:"fPoints",func(oe,D){D.fPoints=oe.readFastArray(D.fNumPoints,B)}},{name:"fColorRed",func(oe,D){D.fColorRed=oe.readFastArray(D.fNumPoints,_)}},{name:"fColorGreen",func(oe,D){D.fColorGreen=oe.readFastArray(D.fNumPoints,_)}},{name:"fColorBlue",func(oe,D){D.fColorBlue=oe.readFastArray(D.fNumPoints,_)}},{name:"fColorAlpha",func(oe,D){D.fColorAlpha=oe.readFastArray(D.fNumPoints,_)}}],TAttImage:[{name:"fImageQuality",func(oe,D){D.fImageQuality=oe.ntoi4()}},{name:"fImageCompression",func(oe,D){D.fImageCompression=oe.ntou4()}},{name:"fConstRatio",func(oe,D){D.fConstRatio=0!==oe.ntou1()}},{name:"fPalette",func(oe,D){D.fPalette=oe.classStreamer({},x.clTImagePalette)}}],TASImage(oe,D){if(1===oe.last_read_version&&oe.fFile.fVersion>0&&oe.fFile.fVersion<5e4)return console.warn("old TASImage version - not yet supported");if(oe.classStreamer(D,x.clTNamed),0!==oe.ntou1()){const O=oe.ntoi4();D.fPngBuf=oe.readFastArray(O,E)}else oe.classStreamer(D,"TAttImage"),D.fWidth=oe.ntoi4(),D.fHeight=oe.ntoi4(),D.fImgBuf=oe.readFastArray(D.fWidth*D.fHeight,B)},TMaterial(oe,D){const O=oe.last_read_version;oe.classStreamer(D,x.clTNamed),D.fNumber=oe.ntoi4(),D.fA=oe.ntof(),D.fZ=oe.ntof(),D.fDensity=oe.ntof(),O>2?(oe.classStreamer(D,x.clTAttFill),D.fRadLength=oe.ntof(),D.fInterLength=oe.ntof()):D.fRadLength=D.fInterLength=0},TMixture(oe,D){oe.classStreamer(D,"TMaterial"),D.fNmixt=oe.ntoi4(),D.fAmixt=oe.readFastArray(oe.ntoi4(),Q),D.fZmixt=oe.readFastArray(oe.ntoi4(),Q),D.fWmixt=oe.readFastArray(oe.ntoi4(),Q)},TVirtualPerfStats:x.clTObject,TMethodCall:x.clTObject};function Sn(oe,D){yn[oe]=D}const ii={TQObject(){},TGraphStruct(){},TGraphNode(){},TGraphEdge(){},TDatime(oe,D){D.fDatime=oe.ntou4()},TKey(oe,D){D.fNbytes=oe.ntoi4(),D.fVersion=oe.ntoi2(),D.fObjlen=oe.ntou4(),D.fDatime=oe.classStreamer({},Ve),D.fKeylen=oe.ntou2(),D.fCycle=oe.ntou2(),D.fVersion>1e3?(D.fSeekKey=oe.ntou8(),oe.shift(8)):(D.fSeekKey=oe.ntou4(),oe.shift(4)),D.fClassName=oe.readTString(),D.fName=oe.readTString(),D.fTitle=oe.readTString()},TDirectory(oe,D){const O=oe.ntou2();D.fDatimeC=oe.classStreamer({},Ve),D.fDatimeM=oe.classStreamer({},Ve),D.fNbytesKeys=oe.ntou4(),D.fNbytesName=oe.ntou4(),D.fSeekDir=O>1e3?oe.ntou8():oe.ntou4(),D.fSeekParent=O>1e3?oe.ntou8():oe.ntou4(),D.fSeekKeys=O>1e3?oe.ntou8():oe.ntou4()},TBasket(oe,D){oe.classStreamer(D,x.clTKey);const O=oe.readVersion();D.fBufferSize=oe.ntoi4(),D.fNevBufSize=oe.ntoi4(),D.fNevBuf=oe.ntoi4(),D.fLast=oe.ntoi4(),D.fLast>D.fBufferSize&&(D.fBufferSize=D.fLast);const ie=oe.ntoi1();if(0!==ie){if(ie%10!=2){if(D.fNevBuf&&(D.fEntryOffset=oe.readFastArray(oe.ntoi4(),Y),ie>20&&ie<40))for(let _e=0,Oe=4278190080;_e40&&(D.fDisplacement=oe.readFastArray(oe.ntoi4(),Y))}if(1===ie||ie>10){const _e=O.val<=1?oe.ntoi4():D.fLast;if(_e>D.fKeylen){const Oe=oe.extract([oe.o+D.fKeylen,_e-D.fKeylen]);D.fBufferRef=new kn(Oe,0,oe.fFile,_e-D.fKeylen),D.fBufferRef.fTagOffset=D.fKeylen}oe.shift(_e)}}},TRef(oe,D){oe.classStreamer(D,x.clTObject),D.fBits&Cn?D.fUUID=oe.readTString():D.fPID=oe.ntou2()},"TMatrixTSym":(oe,D)=>{oe.classStreamer(D,"TMatrixTBase"),D.fElements=new Float32Array(D.fNelems);const O=oe.readFastArray(D.fNrows*(D.fNcols+1)/2,Q);for(let ie=0,_e=0;ie":(oe,D)=>{oe.classStreamer(D,"TMatrixTBase"),D.fElements=new Float64Array(D.fNelems);const O=oe.readFastArray(D.fNrows*(D.fNcols+1)/2,B);for(let ie=0,_e=0;ie0)return ie;const _e=D.indexOf("<");let Oe=St;if(_e>0&&D.indexOf(">")>_e+2)for(let et=1;et=0;){switch(D[it]){case"<":_t++;break;case",":0===_t&&_t--;break;case">":_t--}_t>=0&&(et+=D[it]),it++}return _e=it-1,et.trim()},_e=D.indexOf("<");const Oe=D.lastIndexOf(">");(oe={_typename:"TStreamerInfo",fVersion:1,fName:D,fElements:(0,x.create)(x.clTList)}).fElements.Add(zi("first",$e(),O)),oe.fElements.Add(zi("second",$e(),O))}}const ie=O.getStreamer(D,null,oe);if(!ie)return null;if(2!==ie.length)return console.error(`Streamer for pair class contains ${ie.length} elements`),null;for(let _e=0;_e<2;++_e)ie[_e].readelem&&!ie[_e].pair_name&&(ie[_e].pair_name=0===_e?"first":"second",ie[_e].func=function(Oe,$e){$e[this.pair_name]=this.readelem(Oe)});return ie}function Lr(oe,D){const O={name:oe.fName,type:oe.fType,fArrayLength:oe.fArrayLength,fArrayDim:oe.fArrayDim,fMaxIndex:oe.fMaxIndex};switch("BASE"===oe.fTypeName&&(ss(O.name)>0?(O.name="fArray",O.type=P):O.type=ee),O.type){case ee:O.base=oe.fBaseVersion,O.basename=oe.fName,O.func=function(ie,_e){ie.classStreamer(_e,this.basename)};break;case J:O.func=function(ie,_e){_e[this.name]=ie.ntoi2()};break;case Y:case me:O.func=function(ie,_e){_e[this.name]=ie.ntoi4()};break;case ue:case I:O.func=function(ie,_e){_e[this.name]=ie.ntoi8()};break;case B:O.func=function(ie,_e){_e[this.name]=ie.ntod()};break;case Q:O.func=function(ie,_e){_e[this.name]=ie.ntof()};break;case g:case E:O.func=function(ie,_e){_e[this.name]=ie.ntou1()};break;case _:O.func=function(ie,_e){_e[this.name]=ie.ntou2()};break;case C:case v:O.func=function(ie,_e){_e[this.name]=ie.ntou4()};break;case U:case p:O.func=function(ie,_e){_e[this.name]=ie.ntou8()};break;case k:O.func=function(ie,_e){_e[this.name]=0!==ie.ntou1()};break;case he+k:case he+Y:case he+me:case he+B:case he+E:case he+J:case he+_:case he+C:case he+v:case he+p:case he+U:case he+ue:case he+I:case he+Q:oe.fArrayDim<2?(O.arrlength=oe.fArrayLength,O.func=function(ie,_e){_e[this.name]=ie.readFastArray(this.arrlength,this.type-he)}):(O.arrlength=oe.fMaxIndex[oe.fArrayDim-1],O.minus1=!0,O.func=function(ie,_e){_e[this.name]=ie.readNdimArray(this,(Oe,$e)=>Oe.readFastArray($e.arrlength,$e.type-he))});break;case he+F:oe.fArrayDim<2?(O.arrlength=oe.fArrayLength,O.func=function(ie,_e){_e[this.name]=ie.readFastString(this.arrlength)}):(O.minus1=!0,O.arrlength=oe.fMaxIndex[oe.fArrayDim-1],O.func=function(ie,_e){_e[this.name]=ie.readNdimArray(this,(Oe,$e)=>Oe.readFastString($e.arrlength))});break;case V+k:case V+Y:case V+B:case V+E:case V+J:case V+_:case V+C:case V+v:case V+p:case V+U:case V+ue:case V+I:case V+Q:O.cntname=oe.fCountName,O.func=function(ie,_e){_e[this.name]=1===ie.ntou1()?ie.readFastArray(_e[this.cntname],this.type-V):[]};break;case V+F:O.cntname=oe.fCountName,O.func=function(ie,_e){_e[this.name]=1===ie.ntou1()?ie.readFastString(_e[this.cntname]):null};break;case $:case he+$:case V+$:O.double32=!0;case Z:case he+Z:case V+Z:0!==oe.fFactor?(O.factor=1/oe.fFactor,O.min=oe.fXmin,O.read=function(ie){return ie.ntou4()*this.factor+this.min}):0===oe.fXmin&&O.double32?O.read=function(ie){return ie.ntof()}:(O.nbits=Math.round(oe.fXmin),0===O.nbits&&(O.nbits=12),O.dv=new DataView(new ArrayBuffer(8),0),O.read=function(ie){const _e=ie.ntou1(),Oe=ie.ntou2();return this.dv.setUint32(0,_e<<23|(Oe&(1<V?(O.cntname=oe.fCountName,O.func=function(ie,_e){_e[this.name]=1===ie.ntou1()?this.readarr(ie,_e[this.cntname]):null}):oe.fArrayDim<2?(O.arrlength=oe.fArrayLength,O.func=function(ie,_e){_e[this.name]=this.readarr(ie,this.arrlength)}):(O.arrlength=oe.fMaxIndex[oe.fArrayDim-1],O.minus1=!0,O.func=function(ie,_e){_e[this.name]=ie.readNdimArray(this,(Oe,$e)=>$e.readarr(Oe,$e.arrlength))});break;case je:case z:O.func=function(ie,_e){_e[this.name]=ie.readNdimArray(this,Oe=>Oe.readObjectAny())};break;case P:case Me:case T:case b:{let ie="BASE"===oe.fTypeName?oe.fName:oe.fTypeName;"*"===ie[ie.length-1]&&(ie=ie.slice(0,ie.length-1));const _e=ss(ie);_e>0?(O.arrkind=_e,O.func=function(Oe,$e){$e[this.name]=Oe.readFastArray(Oe.ntou4(),this.arrkind)}):0===_e?O.func=function(Oe,$e){$e[this.name]=Oe.readTString()}:(O.classname=ie,O.func=oe.fArrayLength>1?function(Oe,$e){$e[this.name]=Oe.readNdimArray(this,(et,it)=>et.classStreamer({},it.classname))}:function(Oe,$e){$e[this.name]=Oe.classStreamer({},this.classname)});break}case he+b:case he+P:case he+Me:case he+T:{let ie=oe.fTypeName;"*"===ie[ie.length-1]&&(ie=ie.slice(0,ie.length-1)),O.arrkind=ss(ie),O.arrkind<0&&(O.classname=ie),O.func=function(_e,Oe){Oe[this.name]=_e.readNdimArray(this,($e,et)=>et.arrkind>0?$e.readFastArray($e.ntou4(),et.arrkind):0===et.arrkind?$e.readTString():$e.classStreamer({},et.classname))};break}case F:O.func=function(ie,_e){_e[this.name]=ie.ntoi1()};break;case X:O.func=function(ie,_e){const Oe=ie.ntoi4();_e[this.name]=ie.substring(ie.o,ie.o+Oe),ie.o+=Oe};break;case W:O.func=function(ie,_e){_e[this.name]=ie.readTString()};break;case fe:case we:O.typename=oe.fTypeName,O.func=function(ie,_e){_e[this.name]=ie.classStreamer({},this.typename)};break;case he+W:case he+fe:case he+we:O.typename=oe.fTypeName,O.func=function(ie,_e){const Oe=ie.readVersion();_e[this.name]=ie.readNdimArray(this,($e,et)=>et.typename===x.clTString?$e.readTString():$e.classStreamer({},et.typename)),ie.checkByteCount(Oe,this.typename+"[]")};break;case te:case he+te:O.typename=oe.fTypeName,O.cntname=oe.fCountName,O.typename.lastIndexOf("**")>0?(O.typename=O.typename.slice(0,O.typename.lastIndexOf("**")),O.isptrptr=!0):(O.typename=O.typename.slice(0,O.typename.lastIndexOf("*")),O.isptrptr=!1),O.isptrptr?O.readitem=function(ie){return ie.readObjectAny()}:(O.arrkind=ss(O.typename),O.readitem=O.arrkind>0?function(ie){return ie.readFastArray(ie.ntou4(),this.arrkind)}:0===O.arrkind?function(ie){return ie.readTString()}:function(ie){return ie.classStreamer({},this.typename)}),void 0!==O.readitem?(O.read_loop=function(ie,_e){return ie.readNdimArray(this,(Oe,$e)=>{const et=new Array(_e);for(let it=0;it<_e;++it)et[it]=$e.readitem(Oe);return et})},O.func=function(ie,_e){const Oe=ie.readVersion(),$e=this.read_loop(ie,_e[this.cntname]);_e[this.name]=ie.checkByteCount(Oe,this.typename)?$e:null},O.branch_func=function(ie,_e){const Oe=ie.readVersion(),$e=_e[this.stl_size],et=new Array($e);for(let it=0;it<$e;++it)et[it]=this.read_loop(ie,_e[this.cntname][it]);_e[this.name]=ie.checkByteCount(Oe,this.typename)?et:null},O.objs_branch_func=function(ie,_e){const Oe=ie.readVersion(),$e=_e[this.name0];for(let et=0;et<$e.length;++et){const it=this.get($e,et);it[this.name]=this.read_loop(ie,it[this.cntname])}ie.checkByteCount(Oe,this.typename)}):(console.error(`fail to provide function for ${oe.fName} (${oe.fTypeName}) typ = ${oe.fType}`),O.func=function(ie,_e){const Oe=ie.readVersion();ie.checkByteCount(Oe),_e[this.name]=null});break;case bt:{O.typename=oe.fTypeName;const ie=(oe.fSTLtype||0)%40;if("TStreamerSTLstring"===oe._typename||"string"===O.typename||"string*"===O.typename)O.readelem=_e=>_e.readTString();else if(ie===pt||ie===st||ie===vt||ie===Ot||ie===Bn){const _e=O.typename.indexOf("<"),Oe=O.typename.lastIndexOf(">");if(O.conttype=O.typename.slice(_e+1,Oe).trim(),O.typeid=ai(O.conttype),O.typeid<0&&D.fBasicTypes[O.conttype]&&(O.typeid=D.fBasicTypes[O.conttype],console.log(`!!! Reuse basic type ${O.conttype} from file streamer infos`)),oe.fCtype&&oe.fCtype<20&&oe.fCtype!==O.typeid&&(console.warn(`Contained type ${O.conttype} not recognized as basic type ${oe.fCtype} FORCE`),O.typeid=oe.fCtype),O.typeid>0)O.readelem=function($e){return $e.readFastArray($e.ntoi4(),this.typeid)};else if(O.isptr=!1,O.conttype.lastIndexOf("*")===O.conttype.length-1&&(O.isptr=!0,O.conttype=O.conttype.slice(0,O.conttype.length-1)),oe.fCtype===T&&(O.isptr=!0),O.arrkind=ss(O.conttype),O.readelem=Pi,!O.isptr&&O.arrkind<0){const $e=zi("temp",O.conttype);$e.fType===bt&&($e.$fictional=!0,O.submember=Lr($e,D))}}else if(ie===Yt||ie===qt){const _e=O.typename.indexOf("<"),Oe=O.typename.lastIndexOf(">");O.pairtype="pair<"+O.typename.slice(_e+1,Oe)+">",O.si=D.findStreamerInfo(O.pairtype),O.streamer=ti(O.si,O.pairtype,D),(!O.streamer||2!==O.streamer.length)&&(console.error(`Fail to build streamer for pair ${O.pairtype}`),delete O.streamer),O.streamer&&(O.readelem=Si)}else ie===Mn&&(O.readelem=_e=>_e.readFastArray(_e.ntou4(),k));O.readelem?oe.$fictional||(O.read_version=function(_e,Oe){if(0===Oe)return null;const $e=_e.readVersion();return this.member_wise=!!($e.val&rt),this.stl_version=void 0,this.member_wise&&($e.val=$e.val&~rt,this.stl_version={val:_e.ntoi2()},this.stl_version.val<=0&&(this.stl_version.checksum=_e.ntou4())),$e},O.func=function(_e,Oe){const $e=this.read_version(_e);let et=_e.readNdimArray(this,(it,_t)=>_t.readelem(it));_e.checkByteCount($e,this.typename)||(et=null),Oe[this.name]=et},O.branch_func=function(_e,Oe){const $e=Oe[this.stl_size],et=this.read_version(_e,$e),it=new Array($e);for(let _t=0;_t<$e;++_t)it[_t]=_e.readNdimArray(this,(sn,tn)=>tn.readelem(sn));et&&_e.checkByteCount(et,`branch ${this.typename}`),Oe[this.name]=it},O.split_func=function(_e,Oe,$e){const et=this.read_version(_e);for(let it=0;it<$e;++it)Oe[it][this.name]=_e.readNdimArray(this,(_t,sn)=>sn.readelem(_t));_e.checkByteCount(et,this.typename)},O.objs_branch_func=function(_e,Oe){const $e=Oe[this.name0],et=this.read_version(_e,$e.length);for(let it=0;it<$e.length;++it)this.get($e,it)[this.name]=_e.readNdimArray(this,(sn,tn)=>tn.readelem(sn));et&&_e.checkByteCount(et,`branch ${this.typename}`)}):(console.error(`failed to create streamer for element ${O.typename} ${O.name} element ${oe._typename} STL type ${oe.fSTLtype}`),O.func=function(_e,Oe){const $e=_e.readVersion();_e.checkByteCount($e),Oe[this.name]=null});break}default:console.error(`fail to provide function for ${oe.fName} (${oe.fTypeName}) typ = ${oe.fType}`),O.func=function(){}}return O}function ss(oe){if(oe===x.clTString||"string"===oe||yn[oe]===x.clTString)return 0;if(oe.length<7||0!==oe.indexOf("TArray"))return-1;if(7===oe.length)switch(oe[6]){case"I":return Y;case"D":return B;case"F":return Q;case"S":return J;case"C":return F;case"L":return ue;default:return-1}return"TArrayL64"===oe?I:-1}function Bs(oe,D){if(null===D)return D;const O=(0,x.getMethods)(oe);if(O)for(const ie in O)((0,x.isFunc)(O[ie])||0===ie.indexOf("_"))&&D.push({name:ie,method:O[ie],func(_e,Oe){Oe[this.name]=this.method}});return D}const yo=32768,xt=[0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535],K=[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],ge=[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,99,99],ye=[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],Pe=[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],At=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];function Ht(oe,D){const O=new Array(2*yo),ie=oe,_e=oe.byteLength;let et,it,_t,at,ht,Qt,Oe=0,$e=null,sn=0,tn=0,xn=-1,wn=!1,Ut=0,qe=0,nt=null,vn=0;function en(Vs){for(;tn>=Vs,tn-=Vs}function Hn(Vs,un,di,Rt,ui,Pn){const Fn={status:0,root:null,m:0},gs=Array(17).fill(0),Qr=Array(17).fill(0),ro=Array(16).fill(null),Zs=Array(288).fill(0),Gi=Array(17).fill(0),Uo={e:0,b:0,n:0,t:null},ra=un>256?Vs[256]:16;let $h,rc,mu,Io,$l,Td,Bi,mc,ll,sc,Zu,ic=null,hd=Vs,fd=0,Ju=null,tl=un;do{gs[hd[fd++]]++}while(--tl>0);if(gs[0]===un)return Fn;for(Io=1;Io<=16&&0===gs[Io];++Io);for($l=Io,Pntl&&(Pn=tl),ll=1<0;)Gi[mc++]=Io+=hd[fd++];hd=Vs,fd=0,tl=0;do{0!==(Io=hd[fd++])&&(Zs[Gi[Io]++]=tl)}while(++tl0;){for(;$l>Bi+Qr[1+mu];){if(Bi+=Qr[1+mu++],sc=(sc=$o-Bi)>Pn?Pn:sc,(rc=1<<(Io=$l-Bi))>$h+1)for(rc-=$h+1,mc=$l;++Iora&&Bi0&&(Gi[mu]=tl,Uo.b=Qr[mu],Uo.e=16+Io,Uo.t=Td,Io=(tl&(1<>Bi-Qr[mu],ic=ro[mu-1][Io],ic.e=Uo.e,ic.b=Uo.b,ic.n=Uo.n,ic.t=Uo.t)}for(Uo.b=$l-Bi,fd>=un?Uo.e=99:hd[fd]>Bi;Io>=1)tl^=Io;for(tl^=Io;(tl&(1<16;){if(99===Rt)return-1;fn(ui.b),Rt-=16,en(Rt),ui=ui.t[jt(Rt)],Rt=ui.e}if(fn(ui.b),16!==Rt){if(15===Rt)break;for(en(Rt),Ut=ui.n+jt(Rt),fn(Rt),en(Qt),ui=at.list[jt(Qt)],Rt=ui.e;Rt>16;){if(99===Rt)return-1;fn(ui.b),Rt-=16,en(Rt),ui=ui.t[jt(Rt)],Rt=ui.e}for(fn(ui.b),en(Rt),qe=Oe-ui.n-jt(Rt),fn(Rt);Ut>0&&Pn0&&Rt1)throw $e=null,new Error("HufBuild error: "+ui.status);et=ui.root,_t=ui.m}return nt=$e,at=et,ht=it,Qt=_t,Vn(Vs,un,di)}function Li(Vs,un,di){let Rt,ui,Pn,Fn,_i;const Dr=new Array(316).fill(0);en(5);const gs=257+jt(5);fn(5),en(5);const Qr=1+jt(5);fn(5),en(4);const ro=4+jt(4);if(fn(4),gs>286||Qr>30)return-1;for(ui=0;uiZs)return-1;for(;ui-- >0;)Dr[Rt++]=Pn}else if(17===ui){if(en(3),ui=3+jt(3),fn(3),Rt+ui>Zs)return-1;for(;ui-- >0;)Dr[Rt++]=0;Pn=0}else{if(en(7),ui=11+jt(7),fn(7),Rt+ui>Zs)return-1;for(;ui-- >0;)Dr[Rt++]=0;Pn=0}if(ht=9,_i=Hn(Dr,gs,257,K,ge,ht),0===ht&&(_i.status=1),0!==_i.status)return-1;for(nt=_i.root,ht=_i.m,Rt=0;Rt257||0!==_i.status?-1:Vn(Vs,un,di)}function Kr(Vs,un,di){let ui,Rt=0;for(;Rt0){if(0!==xn)for(;Ut>0&&Rt0&&Rt0;)ia+=os;return ia}function Nt(oe,D,O,ie){let _e=0;for(let Oe=O=O||0,$e=ie=ie||oe.length-O;Oe<$e;){const et=oe[Oe++];let it=et>>4;if(it>0){let Ut=it+240;for(;255===Ut;)Ut=oe[Oe++],it+=Ut;const qe=Oe+it;for(;Oe_e)return-(Oe-2);let sn=15&et,tn=sn+240;for(;255===tn;)tn=oe[Oe++],sn+=tn;let xn=_e-_t;const wn=_e+sn+4;for(;_eString.fromCharCode(oe.getUint8(xn))===wn,et=xn=>oe.getUint8(xn);let it=ie||0,_t=0,sn=null;const tn=()=>{for(;_t=Oe)return O||console.error("Error R__unzip: header size exceeds buffer size"),Promise.resolve(null);if($e(it,"Z")&&$e(it+1,"L")&&8===et(it+2)?(xn="new",wn=2):$e(it,"C")&&$e(it+1,"S")&&8===et(it+2)?(xn="old",wn=0):$e(it,"X")&&$e(it+1,"Z")&&0===et(it+2)?(xn="LZMA",wn=0):$e(it,"Z")&&$e(it+1,"S")&&1===et(it+2)?xn="ZSTD":$e(it,"L")&&$e(it+1,"4")&&(xn="LZ4",wn=0,Ut=8),"new"!==xn&&"old"!==xn&&"LZ4"!==xn&&"ZSTD"!==xn&&"LZMA"!==xn)return O||console.error(`R__unzip: ${xn} format is not supported!`),Promise.resolve(null);const qe=9+(255&et(it+3)|(255&et(it+4))<<8|(255&et(it+5))<<16),nt=new Uint8Array(oe.buffer,oe.byteOffset+it+9+wn+Ut,Math.min(oe.byteLength-it-9-wn-Ut,qe-9-Ut));sn||(sn=new ArrayBuffer(D));const at=new Uint8Array(sn,_t);if("ZSTD"===xn)return(x.internals._ZstdStream?Promise.resolve(x.internals._ZstdStream):((0,x.isNodeJs)()?Se.e(817).then(Se.t.bind(Se,9817,19)):import("./base/zstd.mjs")).then(({ZstdInit:vn})=>vn()).then(({ZstdStream:vn})=>(x.internals._ZstdStream=vn,vn))).then(vn=>{const en=vn.decompress(nt),jt=en.length;for(let fn=0;fn{const vn=255&et(it+6)|(255&et(it+7))<<8|(255&et(it+8))<<16,en=Qt.decompress(nt,at,vn);return _t+=en,it+=qe,tn()});const ht="LZ4"===xn?Nt(nt,at):Ht(nt,at);if(ht<=0)break;_t+=ht,it+=qe}return _t!==D?(O||console.error(`R__unzip: fail to unzip data expects ${D}, got ${_t}`),Promise.resolve(null)):Promise.resolve(new DataView(sn))};return tn()})).apply(this,arguments)}class kn{constructor(D,O,ie,_e){this._typename="TBuffer",this.arr=D,this.o=O||0,this.fFile=ie,this.length=_e||(D?D.byteLength:0),this.clearObjectMap(),this.fTagOffset=0,this.last_read_version=0}locate(D){this.o=D}shift(D){this.o+=D}remain(){return this.length-this.o}getMappedObject(D){return this.fObjectMap[D]}mapObject(D,O){null!==O&&(this.fObjectMap[D]=O)}mapClass(D,O){this.fClassMap[D]=O}getMappedClass(D){return D in this.fClassMap?this.fClassMap[D]:-1}clearObjectMap(){this.fObjectMap={},this.fClassMap={},this.fObjectMap[0]=null,this.fDisplacement=0}readVersion(){const D={},O=this.ntou4();return O&tt?D.bytecnt=O-tt-2:this.o-=4,this.last_read_version=D.val=this.ntoi2(),this.last_read_checksum=0,D.off=this.o,D.val<=0&&D.bytecnt&&D.bytecnt>=4&&(D.checksum=this.ntou4(),this.fFile.findStreamerInfo(void 0,void 0,D.checksum)?this.last_read_checksum=D.checksum:(this.o-=4,delete D.checksum)),D}checkByteCount(D,O){return void 0===D.bytecnt||D.off+D.bytecnt===this.o||(O&&console.log(`Missmatch in ${O} bytecount expected = ${D.bytecnt} got = ${this.o-D.off}`),this.o=D.off+D.bytecnt,!1)}readTString(){let D=this.ntou1();if(255===D&&(D=this.ntou4()),0===D)return"";const O=this.o;return this.o+=D,0===this.codeAt(O)?"":this.substring(O,O+D)}readFastString(D){let ie,O="",_e=!1;for(let Oe=0;(D<0||Oethis.length)return!1;return!0}extract(D){if(!this.arr||!this.arr.buffer||!this.canExtract(D))return null;if(2===D.length)return new DataView(this.arr.buffer,this.arr.byteOffset+D[0],D[1]);const O=new Array(D.length/2);for(let ie=0;ie0&&(ie=1,_e=[D.fArrayLength]),D.minus1&&--ie,ie<1)return O(this,D);if(1===ie){Oe=new Array(_e[0]);for(let $e=0;$e<_e[0];++$e)Oe[$e]=O(this,D)}else if(2===ie){Oe=new Array(_e[0]);for(let $e=0;$e<_e[0];++$e){const et=new Array(_e[1]);for(let it=0;it<_e[1];++it)et[it]=O(this,D);Oe[$e]=et}}else{const $e=new Array(ie).fill(0),et=new Array(ie);for(let it=0;it0;)$e[it]=0,et[it-1].push(et[it]),et[it]=[],++$e[--it]}}return Oe}readTKey(D){D||(D={}),this.classStreamer(D,x.clTKey);const O=D.fName.replace(/['"]/g,"");return O!==D.fName&&(D.fRealName=D.fName,D.fName=O),D}readBasketEntryOffset(D,O){if(this.locate(D.fLast-O),this.remain()<=0)return!D.fEntryOffset&&D.fNevBuf<=1&&(D.fEntryOffset=[D.fKeylen]),void(D.fEntryOffset||console.warn(`No fEntryOffset when expected for basket with ${D.fNevBuf} entries`));const ie=this.ntoi4();if(ie<0||ie>4*this.remain())return console.error(`Error when reading entries offset from basket fNevBuf ${D.fNevBuf} remains ${this.remain()} want to read ${ie}`),void(D.fNevBuf<=1&&(D.fEntryOffset=[D.fKeylen]));D.fEntryOffset=this.readFastArray(ie,Y),D.fEntryOffset||(D.fEntryOffset=[D.fKeylen]),D.fDisplacement=this.remain()>0?this.readFastArray(this.ntoi4(),Y):void 0}readClass(){const D={name:-1},O=this.ntou4(),ie=this.o;let _e;if(_e=O&tt&&O!==Fe?this.ntou4():O,!(_e&Ne))return D.objtag=_e+this.fDisplacement,D;if(_e===Fe)D.name=this.readFastString(-1),-1===this.getMappedClass(this.fTagOffset+ie+2)&&this.mapClass(this.fTagOffset+ie+2,D.name);else{const Oe=(_e&~Ne)+this.fDisplacement;D.name=this.getMappedClass(Oe),-1===D.name&&console.error(`Did not found class with tag ${Oe}`)}return D}readObjectAny(){const D=this.fTagOffset+this.o+2,O=this.readClass();if("objtag"in O)return this.getMappedObject(O.objtag);if(-1===O.name)return null;const ie=ss(O.name);let _e;return 0===ie?_e=this.readTString():ie>0?(_e=this.readFastArray(this.ntou4(),ie),this.mapObject(D,_e)):(_e={},this.mapObject(D,_e),this.classStreamer(_e,O.name)),_e}classStreamer(D,O){void 0===D._typename&&(D._typename=O);const ie=ii[O];if(ie)return ie(this,D),D;const _e=this.readVersion(),Oe=this.fFile.getStreamer(O,_e);if(null!==Oe){const $e=Oe.length;for(let et=0;et<$e;++et)Oe[et].func(this,D)}else(0,x.addMethods)(D);return this.checkByteCount(_e,O),D}}class cn{constructor(D,O,ie){this.fFile=D,this._typename=Ye,this.dir_name=O,this.dir_cycle=ie,this.fKeys=[]}getKey(D,O,ie){"number"!=typeof O&&(O=-1);let _e=null;for(let $e=0;$e_e.fCycle)&&(_e=et)}}if(_e)return ie?_e:Promise.resolve(_e);let Oe=D.lastIndexOf("/");for(;Oe>0;){const $e=D.slice(0,Oe),et=D.slice(Oe+1),it=this.getKey($e,void 0,!0);if(it&&!ie&&0===it.fClassName.indexOf(Ye))return this.fFile.readObject(this.dir_name+"/"+$e,1).then(_t=>_t.getKey(et,O));Oe=D.lastIndexOf("/",Oe-1)}return ie?null:Promise.reject(Error(`Key not found ${D}`))}readObject(D,O){return this.fFile.readObject(this.dir_name+"/"+D,O)}readKeys(D){var O=this;return(0,Te.A)(function*(){return D.classStreamer(O,Ye),O.fSeekKeys<=0||O.fNbytesKeys<=0?O:O.fFile.readBuffer([O.fSeekKeys,O.fNbytesKeys]).then(ie=>{const _e=new kn(ie,0,O.fFile);_e.readTKey();const Oe=_e.ntoi4();for(let $e=0;$e=0?this.fURL.slice(O+1):this.fURL}assignFileContent(D){this.fFileContent=new kn(new DataView(D)),this.fAcceptRanges=!1,this.fUseStampPar=!1,this.fEND=this.fFileContent.length}_open(){var D=this;return(0,Te.A)(function*(){return D.readKeys()})()}readBuffer(D,O,ie){var _e=this;return(0,Te.A)(function*(){if(null!==_e.fFileContent&&!O&&(!_e.fAcceptRanges||_e.fFileContent.canExtract(D)))return _e.fFileContent.extract(D);let Oe,$e;const et=_e,it=0===D[0]&&2===D.length,_t=[],sn=new Promise((ht,Qt)=>{Oe=ht,$e=Qt});let Ut,qe,tn=et.fURL,xn=0,wn=0,nt=!1;if((0,x.isStr)(O)&&O){const ht=tn.lastIndexOf("/");tn=ht<0?O:tn.slice(0,ht+1)+O}function at(ht){if(ht&&(xn=wn,wn=Math.min(xn+2*et.fMaxRanges,D.length),xn>=D.length))return Oe(_t);let Qt=tn,vn="bytes",en=0;et.fUseStampPar&&(Qt+=(Qt.indexOf("?")<0?"?":"&")+et.fUseStampPar);for(let jt=xn;jtxn?",":"=")+`${D[jt]}-${D[jt]+D[jt+1]-1}`,en+=D[jt+1];return wn-xn>2&&(en+=60*(wn-xn)),et.fAcceptRanges&&it&&(en=Math.max(en,1e7)),(0,x.createHttpRequest)(Qt,"buf",Ut,void 0,!0).then(jt=>{if(et.fAcceptRanges&&(jt.setRequestHeader("Range",vn),jt.expected_size=Math.max(Math.round(1.1*en),en+200)),(0,x.isFunc)(ie)&&(0,x.isFunc)(jt.addEventListener)){let fn=0,Hn=0,Vn=0;for(let Li=1;Li{Li.lengthComputable&&"break"===ie(Hi+_r*Li.loaded/Li.total)&&jt.abort()})}else nt&&(0,x.isFunc)(jt.addEventListener)&&jt.addEventListener("progress",fn=>{fn.total?fn.total>5e7&&(console.error(`Try to load very large file ${fn.total} at once - abort`),jt.abort()):console.warn("Fail to get file size information")});qe=it?jt:null,jt.send(null)})}return Ut=function(ht){if(!ht&&it){if(et.fUseStampPar)return et.fUseStampPar=!1,at();if(et.fAcceptRanges)return et.fAcceptRanges=!1,nt=!0,at()}if(ht&&qe){if(et.fAcceptRanges&&!qe.getResponseHeader("Accept-Ranges")&&(et.fAcceptRanges=!1,ht?.byteLength===D[1]))return console.warn(`First block is ${D[1]} bytes but browser does not provides access to header - try to read full file`),nt=!0,at();const Hi=x.browser.isFirefox?qe.getResponseHeader("Server"):"";(0,x.isStr)(Hi)&&0===Hi.indexOf("SimpleHTTP")&&(et.fMaxRanges=1,et.fUseStampPar=!1)}if(ht&&it&&!et.fFileContent)return et.fFileContent=new kn((0,x.isStr)(ht)?ht:new DataView(ht)),et.fAcceptRanges||(et.fEND=et.fFileContent.length),Oe(et.fFileContent.extract(D));if(!ht)return 0===xn&&wn>2&&et.fMaxRanges>1?(et.fMaxRanges=wn/2>200?200:wn/2>50?50:wn/2>20?20:wn/2>5?5:1,wn=Math.min(wn,2*et.fMaxRanges),at()):$e(Error("Fail to read with several ranges"));if(wn-xn==2){const Hi=new DataView(ht);return 2===D.length?Oe(Hi):(_t.push(Hi),at(!0))}const Qt=this.getResponseHeader("Content-Type"),vn=(0,x.isStr)(Qt)&&Qt.indexOf("multipart")>=0,en=new DataView(ht);if(!vn){const Hi=this.getResponseHeader("Content-Range");let _r=0,Li=-1;if((0,x.isStr)(Hi)&&Hi.indexOf("bytes")>=0){const os=Hi.slice(Hi.indexOf("bytes")+6).split(/[\s-/]+/);3===os.length&&(_r=parseInt(os[0]),Li=parseInt(os[1]),(!Number.isInteger(_r)||!Number.isInteger(Li)||_r>Li)&&(_r=0,Li=-1))}let Kr=_r<=Li;for(let os=xn;osLi)&&(Kr=!1);if(Kr){for(let os=xn;os0?(fn=Qt.slice(jt+9),'"'===fn[0]&&'"'===fn[fn.length-1]&&(fn=fn.slice(1,fn.length-1)),fn="--"+fn):console.error("Did not found boundary id in the response header");Hn2&&"--"===Kr.slice(0,2)&&Kr!==fn)return $e(Error(`Decode multipart message, expect boundary ${fn} got ${Kr}`));if(Kr=Kr.toLowerCase(),Kr.indexOf("content-range")>=0&&Kr.indexOf("bytes")>0){const un=Kr.slice(Kr.indexOf("bytes")+6).split(/[\s-/]+/);3===un.length?(ia=parseInt(un[0]),Vs=parseInt(un[1]),(!Number.isInteger(ia)||!Number.isInteger(Vs)||ia>Vs)&&(ia=0,Vs=-1)):console.error(`Fail to decode content-range ${Kr} ${un}`)}Li>1&&0===Kr.length&&(os=!0),Li++,Kr="",10!==Hi&&(Vn++,_r=en.getUint8(Vn+1))}else Kr+=String.fromCharCode(Hi);Vn++}if(!os)return $e(Error("Cannot decode header in multipart message"));if(ia>Vs)_t.push(new DataView(ht,Vn,D[Hn+1])),Vn+=D[Hn+1],Hn+=2;else{for(;Hn=ia&&D[Hn]+D[Hn+1]-1<=Vs;)_t.push(new DataView(ht,Vn+D[Hn]-ia,D[Hn+1])),Hn+=2;Vn+=Vs-ia+1}}at(!0)},at(!0).then(()=>sn)})()}getFileName(){return this.fFileName}getDir(D,O){if(void 0===O&&(0,x.isStr)(D)){const ie=D.lastIndexOf(";");ie>0&&(O=parseInt(D.slice(ie+1)),D=D.slice(0,ie))}for(let ie=0;ie_e.fCycle)&&(_e=et)}}if(_e)return ie?_e:Promise.resolve(_e);let Oe=D.lastIndexOf("/");for(;Oe>0;){const $e=D.slice(0,Oe),et=D.slice(Oe+1),it=this.getDir($e);if(it)return it.getKey(et,O,ie);const _t=this.getKey($e,void 0,!0);if(_t&&!ie&&0===_t.fClassName.indexOf(Ye))return this.readObject($e).then(sn=>sn.getKey(et,O));Oe=D.lastIndexOf("/",Oe-1)}return ie?null:Promise.reject(Error(`Key not found ${D}`))}readObjBuffer(D){var O=this;return(0,Te.A)(function*(){return O.readBuffer([D.fSeekKey+D.fKeylen,D.fNbytes-D.fKeylen]).then(ie=>{if(D.fObjlen<=D.fNbytes-D.fKeylen){const _e=new kn(ie,0,O);return _e.fTagOffset=D.fKeylen,_e}return nn(ie,D.fObjlen).then(_e=>{if(!_e)return Promise.reject(Error(`Fail to UNZIP buffer for ${D.fName}`));const Oe=new kn(_e,0,O);return Oe.fTagOffset=D.fKeylen,Oe})})})()}readObject(D,O,ie){var _e=this;return(0,Te.A)(function*(){const Oe=D.lastIndexOf(";");for(Oe>0&&(O=parseInt(D.slice(Oe+1)),D=D.slice(0,Oe)),"number"!=typeof O&&(O=-1);D.length&&"/"===D[0];)D=D.slice(1);return _e.getKey(D,O).then($e=>{if(D===De&&$e.fClassName===x.clTList)return _e.fStreamerInfos;let et=!1;if($e.fClassName===Ye||$e.fClassName===Ze){const it=_e.getDir(D,O);if(it)return it;et=!0}return!et&&ie?Promise.reject(Error(`Key ${D} is not directory}`)):_e.readObjBuffer($e).then(it=>{if(et){const sn=new cn(_e,D,O);return sn.fTitle=$e.fTitle,sn.readKeys(it)}const _t={};return it.mapObject(1,_t),it.classStreamer(_t,$e.fClassName),$e.fClassName===x.clTF1||$e.fClassName===x.clTF2?_e._readFormulas(_t):_t})})})()}_readFormulas(D){var O=this;return(0,Te.A)(function*(){const ie=[];for(let _e=0;_e(_e.forEach(Oe=>D.addFormula(Oe)),D))})()}extractStreamerInfos(D){if(!D)return;const O={};D.mapObject(1,O);try{D.classStreamer(O,x.clTList)}catch(ie){return void console.error("Fail extract streamer infos",ie)}O._typename=ot,this.fStreamerInfos=O,(0,x.isFunc)(x.internals.addStreamerInfosForPainter)&&x.internals.addStreamerInfosForPainter(O);for(let ie=0;ie=60){if(et===bt&&$e._typename===ke&&$e.fSTLtype&&$e.fCtype&&$e.fCtype<20){const sn=(Dn[$e.fSTLtype]||"undef")+"<";if(0===it.indexOf(sn)&&">"===it[it.length-1]&&(et=$e.fCtype,it=it.slice(sn.length,it.length-1).trim(),$e.fSTLtype===Yt||$e.fSTLtype===qt)){if(!(it.indexOf(",")>0))continue;it=it.slice(0,it.indexOf(",")).trim()}}if(et>=60)continue}else et>20&&"*"===it[it.length-1]&&(it=it.slice(0,it.length-1)),et%=20;const _t=ai(it);_t!==et&&(et===C&&_t===v||et===me&&_t===Y||it&&et&&this.fBasicTypes[it]!==et&&(this.fBasicTypes[it]=et))}}}readKeys(){var D=this;return(0,Te.A)(function*(){return D.readBuffer([0,1024]).then(O=>{const ie=new kn(O,0,D);if("root"!==ie.substring(0,4))return Promise.reject(Error(`Not a ROOT file ${D.fURL}`));if(ie.shift(4),D.fVersion=ie.ntou4(),D.fBEGIN=ie.ntou4(),D.fVersion<1e6?(D.fEND=ie.ntou4(),D.fSeekFree=ie.ntou4(),D.fNbytesFree=ie.ntou4(),ie.shift(4),D.fNbytesName=ie.ntou4(),D.fUnits=ie.ntou1(),D.fCompress=ie.ntou4(),D.fSeekInfo=ie.ntou4(),D.fNbytesInfo=ie.ntou4()):(D.fEND=ie.ntou8(),D.fSeekFree=ie.ntou8(),D.fNbytesFree=ie.ntou4(),ie.shift(4),D.fNbytesName=ie.ntou4(),D.fUnits=ie.ntou1(),D.fCompress=ie.ntou4(),D.fSeekInfo=ie.ntou8(),D.fNbytesInfo=ie.ntou4()),!D.fSeekInfo||!D.fNbytesInfo)return Promise.reject(Error(`File ${D.fURL} does not provide streamer infos`));if(!D.fNbytesName||D.fNbytesName>1e5)return Promise.reject(Error(`Cannot read directory info of the file ${D.fURL}`));let _e=D.fNbytesName+22;return _e+=4,_e+=4,_e+=18,D.fVersion>=4e4&&(_e+=12),D.readBuffer([D.fBEGIN,Math.max(300,_e)])}).then(O=>{const ie=new kn(O,0,D);return D.fTitle=ie.readTKey().fTitle,ie.locate(D.fNbytesName),ie.classStreamer(D,Ye),D.fSeekKeys?D.readBuffer([D.fSeekKeys,D.fNbytesKeys,D.fSeekInfo,D.fNbytesInfo]):Promise.reject(Error(`Empty keys list in ${D.fURL}`))}).then(O=>{const ie=new kn(O[0],0,D);ie.readTKey();const _e=ie.ntoi4();for(let et=0;et<_e;++et)D.fKeys.push(ie.readTKey());const $e=new kn(O[1],0,D).readTKey();return $e?(D.fKeys.push($e),D.readObjBuffer($e)):Promise.reject(Error(`Fail to read StreamerInfo data in ${D.fURL}`))}).then(O=>(D.extractStreamerInfos(O),D))})()}readDirectory(D,O){var ie=this;return(0,Te.A)(function*(){return ie.readObject(D,O,!0)})()}findStreamerInfo(D,O,ie){if(!this.fStreamerInfos)return null;const _e=this.fStreamerInfos.arr,Oe=_e.length;if(void 0!==ie){let $e=this.fStreamerInfos.cache;$e||($e=this.fStreamerInfos.cache={});let et=$e[ie];if(void 0!==et)return et;for(let it=0;it{"fLineStyle"===et.fName&&(et.fName="fLineStyles")}),ie.fElements)for(let et=0;et1e6)throw new Error(`member-wise streaming of ${this.conttype} num ${_e} member ${this.name}`);Oe.val===this.member_ver&&Oe.checksum===this.member_checksum?$e=this.member_streamer:($e=oe.fFile.getStreamer(this.conttype,Oe),this.member_streamer=$e=oe.fFile.getSplittedStreamer($e),this.member_ver=Oe.val,this.member_checksum=Oe.checksum);const et=new Array(_e);let it,_t,sn;for(it=0;it<_e;++it)et[it]={_typename:this.conttype};if($e)for(_t=0;_t<$e.length;++_t)if(sn=$e[_t],sn.split_func)sn.split_func(oe,et,_e);else for(it=0;it<_e;++it)sn.func(oe,et[it]);else console.error(`Fail to create split streamer for ${this.conttype} need to read ${_e} objects version ${Oe}`);return et}const D=oe.ntou4(),O=new Array(D);let ie=0;if(D>2e5)return console.error(`vector streaming for ${this.conttype} at ${D}`),O;if(this.arrkind>0)for(;ie=6&&(oe.ntoi2()===rt?oe.shift(4):oe.shift(-2));for(let _e=0;_e=6&&(oe.ntoi2()===rt?oe.shift(4):oe.shift(-2));for(let _e=0;_e{if(O)return $e(Error(`Cannot access other local file ${O}`));const et=new FileReader,it=[];let _t=0;et.onload=function(sn){const tn=new DataView(sn.target.result);return 2===D.length?Oe(tn):(it.push(tn),_t+=2,_t>=D.length?Oe(it):void et.readAsArrayBuffer(_e.slice(D[_t],D[_t]+D[_t+1])))},et.readAsArrayBuffer(_e.slice(D[0],D[0]+D[1]))})})()}}class Jn extends In{constructor(D){super(null),this.fUseStampPar=!1,this.fEND=0,this.fFullURL=D,this.fURL=D,this.fFileName=D}_open(){var D=this;return(0,Te.A)(function*(){return Se.e(424).then(Se.t.bind(Se,9424,19)).then(O=>(D.fs=O,new Promise((ie,_e)=>D.fs.open(D.fFileName,"r",(Oe,$e)=>{if(Oe)return console.log(Oe.message),_e(Error(`Not possible to open ${D.fFileName} inside node.js`));const et=D.fs.fstatSync($e);D.fEND=et.size,D.fd=$e,D.readKeys().then(ie).catch(_e)}))))})()}readBuffer(D,O){var ie=this;return(0,Te.A)(function*(){return new Promise((_e,Oe)=>{if(O)return Oe(Error(`Cannot access other local file ${O}`));if(!ie.fs||!ie.fd)return Oe(Error(`File is not opened ${ie.fFileName}`));const $e=[];let et=0;const it=(_t,sn,tn)=>{const xn=new DataView(tn.buffer,tn.byteOffset,D[et+1]);return 2===D.length?_e(xn):($e.push(xn),et+=2,et>=D.length?_e($e):void ie.fs.read(ie.fd,Buffer.alloc(D[et+1]),0,D[et+1],D[et],it))};ie.fs.read(ie.fd,Buffer.alloc(D[1]),0,D[1],D[0],it)})})()}}class Wi{openFile(){return(0,Te.A)(function*(){return!1})()}getFileName(){return""}getFileSize(){return 0}readBuffer(){return(0,Te.A)(function*(){return null})()}}class Ln extends In{constructor(D){super(null),this.fUseStampPar=!1,this.proxy=D}_open(){var D=this;return(0,Te.A)(function*(){return D.proxy.openFile().then(O=>{if(!O)return!1;if(D.fEND=D.proxy.getFileSize(),D.fFullURL=D.fURL=D.fFileName=D.proxy.getFileName(),(0,x.isStr)(D.fFileName)){const ie=D.fFileName.lastIndexOf("/");ie>0&&ie{"use strict";Se.d(mt,{$EB:()=>Y,$p8:()=>YT,AHc:()=>yP,B69:()=>Rl,BH$:()=>XC,CSG:()=>em,Cgj:()=>ab,DXC:()=>hT,Df:()=>uM,FNr:()=>LT,Fvt:()=>hM,GOR:()=>Qx,G_z:()=>OT,Gu$:()=>Hv,I9Y:()=>Ui,JeP:()=>BB,KQV:()=>fP,LoY:()=>Cs,NRn:()=>rl,NUf:()=>vy,O9p:()=>Gr,ONl:()=>pT,PPD:()=>ef,PTz:()=>Ou,Pq0:()=>Ft,Q1f:()=>Os,THS:()=>sa,Tap:()=>UT,V9B:()=>Xc,YJl:()=>nd,Z58:()=>QC,ZLX:()=>WC,ZM4:()=>r3,Zcv:()=>nh,ZyN:()=>XT,_4j:()=>Gv,_l5:()=>s3,c9P:()=>NM,cZY:()=>eb,dth:()=>$T,eaF:()=>Jc,hB5:()=>F,iNn:()=>Ch,jUj:()=>Gx,kn4:()=>bo,mrM:()=>$1,nWS:()=>Fu,qBx:()=>FT,qUd:()=>kd,qtW:()=>Bo,s0G:()=>ZA,sPf:()=>x,tBo:()=>dP,tXL:()=>kT,tcD:()=>eM,uSd:()=>qv,ubm:()=>Vl,w4A:()=>bP,xJ6:()=>Ym});var Te=Se(4882);const x="158",He=1,Ve=2,De=3,F=0,Y=2,E=100,Ne=0,rt=1,St=2,pt=0,st=1,vt=2,Yt=3,qt=4,Ot=5,Dn=301,$n=302,Sn=306,ai=1001,ti=1003,xt=1006,ye=1008,At=1009,kn=1014,cn=1015,In=1016,Si=1020,Jn=1023,Rs=1026,oe=1027,$l=3001,ll="srgb",sc="srgb-linear",Zu="display-p3",Ju="display-p3-linear",tl="linear",$o="srgb",U0="rec709",Uf="p3",zf=7680,V0="300 es",Dd=2e3;class bh{addEventListener(a,c){void 0===this._listeners&&(this._listeners={});const h=this._listeners;void 0===h[a]&&(h[a]=[]),-1===h[a].indexOf(c)&&h[a].push(c)}hasEventListener(a,c){if(void 0===this._listeners)return!1;const h=this._listeners;return void 0!==h[a]&&-1!==h[a].indexOf(c)}removeEventListener(a,c){if(void 0===this._listeners)return;const m=this._listeners[a];if(void 0!==m){const M=m.indexOf(c);-1!==M&&m.splice(M,1)}}dispatchEvent(a){if(void 0===this._listeners)return;const h=this._listeners[a.type];if(void 0!==h){a.target=this;const m=h.slice(0);for(let M=0,N=m.length;M>8&255]+Ac[w>>16&255]+Ac[w>>24&255]+"-"+Ac[255&a]+Ac[a>>8&255]+"-"+Ac[a>>16&15|64]+Ac[a>>24&255]+"-"+Ac[63&c|128]+Ac[c>>8&255]+"-"+Ac[c>>16&255]+Ac[c>>24&255]+Ac[255&h]+Ac[h>>8&255]+Ac[h>>16&255]+Ac[h>>24&255]).toLowerCase()}function nl(w,a,c){return Math.max(a,Math.min(c,w))}function Gf(w,a,c){return(1-c)*w+c*a}function gu(w){return!(w&w-1)&&0!==w}function Xd(w){return Math.pow(2,Math.floor(Math.log(w)/Math.LN2))}function Kl(w,a){switch(a.constructor){case Float32Array:return w;case Uint32Array:return w/4294967295;case Uint16Array:return w/65535;case Uint8Array:return w/255;case Int32Array:return Math.max(w/2147483647,-1);case Int16Array:return Math.max(w/32767,-1);case Int8Array:return Math.max(w/127,-1);default:throw new Error("Invalid component type.")}}function ko(w,a){switch(a.constructor){case Float32Array:return w;case Uint32Array:return Math.round(4294967295*w);case Uint16Array:return Math.round(65535*w);case Uint8Array:return Math.round(255*w);case Int32Array:return Math.round(2147483647*w);case Int16Array:return Math.round(32767*w);case Int8Array:return Math.round(127*w);default:throw new Error("Invalid component type.")}}class Ui{constructor(a=0,c=0){Ui.prototype.isVector2=!0,this.x=a,this.y=c}get width(){return this.x}set width(a){this.x=a}get height(){return this.y}set height(a){this.y=a}set(a,c){return this.x=a,this.y=c,this}setScalar(a){return this.x=a,this.y=a,this}setX(a){return this.x=a,this}setY(a){return this.y=a,this}setComponent(a,c){switch(a){case 0:this.x=c;break;case 1:this.y=c;break;default:throw new Error("index is out of range: "+a)}return this}getComponent(a){switch(a){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+a)}}clone(){return new this.constructor(this.x,this.y)}copy(a){return this.x=a.x,this.y=a.y,this}add(a){return this.x+=a.x,this.y+=a.y,this}addScalar(a){return this.x+=a,this.y+=a,this}addVectors(a,c){return this.x=a.x+c.x,this.y=a.y+c.y,this}addScaledVector(a,c){return this.x+=a.x*c,this.y+=a.y*c,this}sub(a){return this.x-=a.x,this.y-=a.y,this}subScalar(a){return this.x-=a,this.y-=a,this}subVectors(a,c){return this.x=a.x-c.x,this.y=a.y-c.y,this}multiply(a){return this.x*=a.x,this.y*=a.y,this}multiplyScalar(a){return this.x*=a,this.y*=a,this}divide(a){return this.x/=a.x,this.y/=a.y,this}divideScalar(a){return this.multiplyScalar(1/a)}applyMatrix3(a){const c=this.x,h=this.y,m=a.elements;return this.x=m[0]*c+m[3]*h+m[6],this.y=m[1]*c+m[4]*h+m[7],this}min(a){return this.x=Math.min(this.x,a.x),this.y=Math.min(this.y,a.y),this}max(a){return this.x=Math.max(this.x,a.x),this.y=Math.max(this.y,a.y),this}clamp(a,c){return this.x=Math.max(a.x,Math.min(c.x,this.x)),this.y=Math.max(a.y,Math.min(c.y,this.y)),this}clampScalar(a,c){return this.x=Math.max(a,Math.min(c,this.x)),this.y=Math.max(a,Math.min(c,this.y)),this}clampLength(a,c){const h=this.length();return this.divideScalar(h||1).multiplyScalar(Math.max(a,Math.min(c,h)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(a){return this.x*a.x+this.y*a.y}cross(a){return this.x*a.y-this.y*a.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){return Math.atan2(-this.y,-this.x)+Math.PI}angleTo(a){const c=Math.sqrt(this.lengthSq()*a.lengthSq());if(0===c)return Math.PI/2;const h=this.dot(a)/c;return Math.acos(nl(h,-1,1))}distanceTo(a){return Math.sqrt(this.distanceToSquared(a))}distanceToSquared(a){const c=this.x-a.x,h=this.y-a.y;return c*c+h*h}manhattanDistanceTo(a){return Math.abs(this.x-a.x)+Math.abs(this.y-a.y)}setLength(a){return this.normalize().multiplyScalar(a)}lerp(a,c){return this.x+=(a.x-this.x)*c,this.y+=(a.y-this.y)*c,this}lerpVectors(a,c,h){return this.x=a.x+(c.x-a.x)*h,this.y=a.y+(c.y-a.y)*h,this}equals(a){return a.x===this.x&&a.y===this.y}fromArray(a,c=0){return this.x=a[c],this.y=a[c+1],this}toArray(a=[],c=0){return a[c]=this.x,a[c+1]=this.y,a}fromBufferAttribute(a,c){return this.x=a.getX(c),this.y=a.getY(c),this}rotateAround(a,c){const h=Math.cos(c),m=Math.sin(c),M=this.x-a.x,N=this.y-a.y;return this.x=M*h-N*m+a.x,this.y=M*m+N*h+a.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}}class zo{constructor(a,c,h,m,M,N,q,de,pe){zo.prototype.isMatrix3=!0,this.elements=[1,0,0,0,1,0,0,0,1],void 0!==a&&this.set(a,c,h,m,M,N,q,de,pe)}set(a,c,h,m,M,N,q,de,pe){const xe=this.elements;return xe[0]=a,xe[1]=m,xe[2]=q,xe[3]=c,xe[4]=M,xe[5]=de,xe[6]=h,xe[7]=N,xe[8]=pe,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(a){const c=this.elements,h=a.elements;return c[0]=h[0],c[1]=h[1],c[2]=h[2],c[3]=h[3],c[4]=h[4],c[5]=h[5],c[6]=h[6],c[7]=h[7],c[8]=h[8],this}extractBasis(a,c,h){return a.setFromMatrix3Column(this,0),c.setFromMatrix3Column(this,1),h.setFromMatrix3Column(this,2),this}setFromMatrix4(a){const c=a.elements;return this.set(c[0],c[4],c[8],c[1],c[5],c[9],c[2],c[6],c[10]),this}multiply(a){return this.multiplyMatrices(this,a)}premultiply(a){return this.multiplyMatrices(a,this)}multiplyMatrices(a,c){const h=a.elements,m=c.elements,M=this.elements,N=h[0],q=h[3],de=h[6],pe=h[1],xe=h[4],Ie=h[7],Be=h[2],Le=h[5],Ke=h[8],ft=m[0],Qe=m[3],ze=m[6],Ct=m[1],ct=m[4],Dt=m[7],Jt=m[2],ln=m[5],rn=m[8];return M[0]=N*ft+q*Ct+de*Jt,M[3]=N*Qe+q*ct+de*ln,M[6]=N*ze+q*Dt+de*rn,M[1]=pe*ft+xe*Ct+Ie*Jt,M[4]=pe*Qe+xe*ct+Ie*ln,M[7]=pe*ze+xe*Dt+Ie*rn,M[2]=Be*ft+Le*Ct+Ke*Jt,M[5]=Be*Qe+Le*ct+Ke*ln,M[8]=Be*ze+Le*Dt+Ke*rn,this}multiplyScalar(a){const c=this.elements;return c[0]*=a,c[3]*=a,c[6]*=a,c[1]*=a,c[4]*=a,c[7]*=a,c[2]*=a,c[5]*=a,c[8]*=a,this}determinant(){const a=this.elements,c=a[0],h=a[1],m=a[2],M=a[3],N=a[4],q=a[5],de=a[6],pe=a[7],xe=a[8];return c*N*xe-c*q*pe-h*M*xe+h*q*de+m*M*pe-m*N*de}invert(){const a=this.elements,c=a[0],h=a[1],m=a[2],M=a[3],N=a[4],q=a[5],de=a[6],pe=a[7],xe=a[8],Ie=xe*N-q*pe,Be=q*de-xe*M,Le=pe*M-N*de,Ke=c*Ie+h*Be+m*Le;if(0===Ke)return this.set(0,0,0,0,0,0,0,0,0);const ft=1/Ke;return a[0]=Ie*ft,a[1]=(m*pe-xe*h)*ft,a[2]=(q*h-m*N)*ft,a[3]=Be*ft,a[4]=(xe*c-m*de)*ft,a[5]=(m*M-q*c)*ft,a[6]=Le*ft,a[7]=(h*de-pe*c)*ft,a[8]=(N*c-h*M)*ft,this}transpose(){let a;const c=this.elements;return a=c[1],c[1]=c[3],c[3]=a,a=c[2],c[2]=c[6],c[6]=a,a=c[5],c[5]=c[7],c[7]=a,this}getNormalMatrix(a){return this.setFromMatrix4(a).invert().transpose()}transposeIntoArray(a){const c=this.elements;return a[0]=c[0],a[1]=c[3],a[2]=c[6],a[3]=c[1],a[4]=c[4],a[5]=c[7],a[6]=c[2],a[7]=c[5],a[8]=c[8],this}setUvTransform(a,c,h,m,M,N,q){const de=Math.cos(M),pe=Math.sin(M);return this.set(h*de,h*pe,-h*(de*N+pe*q)+N+a,-m*pe,m*de,-m*(-pe*N+de*q)+q+c,0,0,1),this}scale(a,c){return this.premultiply(eh.makeScale(a,c)),this}rotate(a){return this.premultiply(eh.makeRotation(-a)),this}translate(a,c){return this.premultiply(eh.makeTranslation(a,c)),this}makeTranslation(a,c){return a.isVector2?this.set(1,0,a.x,0,1,a.y,0,0,1):this.set(1,0,a,0,1,c,0,0,1),this}makeRotation(a){const c=Math.cos(a),h=Math.sin(a);return this.set(c,-h,0,h,c,0,0,0,1),this}makeScale(a,c){return this.set(a,0,0,0,c,0,0,0,1),this}equals(a){const c=this.elements,h=a.elements;for(let m=0;m<9;m++)if(c[m]!==h[m])return!1;return!0}fromArray(a,c=0){for(let h=0;h<9;h++)this.elements[h]=a[h+c];return this}toArray(a=[],c=0){const h=this.elements;return a[c]=h[0],a[c+1]=h[1],a[c+2]=h[2],a[c+3]=h[3],a[c+4]=h[4],a[c+5]=h[5],a[c+6]=h[6],a[c+7]=h[7],a[c+8]=h[8],a}clone(){return(new this.constructor).fromArray(this.elements)}}const eh=new zo;function Wc(w){for(let a=w.length-1;a>=0;--a)if(w[a]>=65535)return!0;return!1}function mi(w){return document.createElementNS("http://www.w3.org/1999/xhtml",w)}function Dg(){const w=mi("canvas");return w.style.display="block",w}Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array;const Ig={};function Cm(w){w in Ig||(Ig[w]=!0,console.warn(w))}const _u=(new zo).set(.8224621,.177538,0,.0331941,.9668058,0,.0170827,.0723974,.9105199),Mp=(new zo).set(1.2249401,-.2249404,0,-.0420569,1.0420571,0,-.0196376,-.0786361,1.0982735),yA={[sc]:{transfer:tl,primaries:U0,toReference:w=>w,fromReference:w=>w},[ll]:{transfer:$o,primaries:U0,toReference:w=>w.convertSRGBToLinear(),fromReference:w=>w.convertLinearToSRGB()},[Ju]:{transfer:tl,primaries:Uf,toReference:w=>w.applyMatrix3(Mp),fromReference:w=>w.applyMatrix3(_u)},[Zu]:{transfer:$o,primaries:Uf,toReference:w=>w.convertSRGBToLinear().applyMatrix3(Mp),fromReference:w=>w.applyMatrix3(_u).convertLinearToSRGB()}},Kh=new Set([sc,Ju]),Ya={enabled:!0,_workingColorSpace:sc,get legacyMode(){return console.warn("THREE.ColorManagement: .legacyMode=false renamed to .enabled=true in r150."),!this.enabled},set legacyMode(w){console.warn("THREE.ColorManagement: .legacyMode=false renamed to .enabled=true in r150."),this.enabled=!w},get workingColorSpace(){return this._workingColorSpace},set workingColorSpace(w){if(!Kh.has(w))throw new Error(`Unsupported working color space, "${w}".`);this._workingColorSpace=w},convert:function(w,a,c){return!1!==this.enabled&&a!==c&&a&&c?(0,yA[c].fromReference)((0,yA[a].toReference)(w)):w},fromWorkingColorSpace:function(w,a){return this.convert(w,this._workingColorSpace,a)},toWorkingColorSpace:function(w,a){return this.convert(w,a,this._workingColorSpace)},getPrimaries:function(w){return yA[w].primaries},getTransfer:function(w){return""===w?tl:yA[w].transfer}};function wh(w){return w<.04045?.0773993808*w:Math.pow(.9478672986*w+.0521327014,2.4)}function Bg(w){return w<.0031308?12.92*w:1.055*Math.pow(w,.41666)-.055}let Wf;class yu{static getDataURL(a){if(/^data:/i.test(a.src)||typeof HTMLCanvasElement>"u")return a.src;let c;if(a instanceof HTMLCanvasElement)c=a;else{void 0===Wf&&(Wf=mi("canvas")),Wf.width=a.width,Wf.height=a.height;const h=Wf.getContext("2d");a instanceof ImageData?h.putImageData(a,0,0):h.drawImage(a,0,0,a.width,a.height),c=Wf}return c.width>2048||c.height>2048?(console.warn("THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons",a),c.toDataURL("image/jpeg",.6)):c.toDataURL("image/png")}static sRGBToLinear(a){if(typeof HTMLImageElement<"u"&&a instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&a instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&a instanceof ImageBitmap){const c=mi("canvas");c.width=a.width,c.height=a.height;const h=c.getContext("2d");h.drawImage(a,0,0,a.width,a.height);const m=h.getImageData(0,0,a.width,a.height),M=m.data;for(let N=0;N{class w extends bh{constructor(c=w.DEFAULT_IMAGE,h=w.DEFAULT_MAPPING,m=ai,M=ai,N=xt,q=ye,de=Jn,pe=At,xe=w.DEFAULT_ANISOTROPY,Ie=""){super(),this.isTexture=!0,Object.defineProperty(this,"id",{value:q0++}),this.uuid=Au(),this.name="",this.source=new jf(c),this.mipmaps=[],this.mapping=h,this.channel=0,this.wrapS=m,this.wrapT=M,this.magFilter=N,this.minFilter=q,this.anisotropy=xe,this.format=de,this.internalFormat=null,this.type=pe,this.offset=new Ui(0,0),this.repeat=new Ui(1,1),this.center=new Ui(0,0),this.rotation=0,this.matrixAutoUpdate=!0,this.matrix=new zo,this.generateMipmaps=!0,this.premultiplyAlpha=!1,this.flipY=!0,this.unpackAlignment=4,"string"==typeof Ie?this.colorSpace=Ie:(Cm("THREE.Texture: Property .encoding has been replaced by .colorSpace."),this.colorSpace=Ie===$l?ll:""),this.userData={},this.version=0,this.onUpdate=null,this.isRenderTargetTexture=!1,this.needsPMREMUpdate=!1}get image(){return this.source.data}set image(c=null){this.source.data=c}updateMatrix(){this.matrix.setUvTransform(this.offset.x,this.offset.y,this.repeat.x,this.repeat.y,this.rotation,this.center.x,this.center.y)}clone(){return(new this.constructor).copy(this)}copy(c){return this.name=c.name,this.source=c.source,this.mipmaps=c.mipmaps.slice(0),this.mapping=c.mapping,this.channel=c.channel,this.wrapS=c.wrapS,this.wrapT=c.wrapT,this.magFilter=c.magFilter,this.minFilter=c.minFilter,this.anisotropy=c.anisotropy,this.format=c.format,this.internalFormat=c.internalFormat,this.type=c.type,this.offset.copy(c.offset),this.repeat.copy(c.repeat),this.center.copy(c.center),this.rotation=c.rotation,this.matrixAutoUpdate=c.matrixAutoUpdate,this.matrix.copy(c.matrix),this.generateMipmaps=c.generateMipmaps,this.premultiplyAlpha=c.premultiplyAlpha,this.flipY=c.flipY,this.unpackAlignment=c.unpackAlignment,this.colorSpace=c.colorSpace,this.userData=JSON.parse(JSON.stringify(c.userData)),this.needsUpdate=!0,this}toJSON(c){const h=void 0===c||"string"==typeof c;if(!h&&void 0!==c.textures[this.uuid])return c.textures[this.uuid];const m={metadata:{version:4.6,type:"Texture",generator:"Texture.toJSON"},uuid:this.uuid,name:this.name,image:this.source.toJSON(c).uuid,mapping:this.mapping,channel:this.channel,repeat:[this.repeat.x,this.repeat.y],offset:[this.offset.x,this.offset.y],center:[this.center.x,this.center.y],rotation:this.rotation,wrap:[this.wrapS,this.wrapT],format:this.format,internalFormat:this.internalFormat,type:this.type,colorSpace:this.colorSpace,minFilter:this.minFilter,magFilter:this.magFilter,anisotropy:this.anisotropy,flipY:this.flipY,generateMipmaps:this.generateMipmaps,premultiplyAlpha:this.premultiplyAlpha,unpackAlignment:this.unpackAlignment};return Object.keys(this.userData).length>0&&(m.userData=this.userData),h||(c.textures[this.uuid]=m),m}dispose(){this.dispatchEvent({type:"dispose"})}transformUv(c){if(300!==this.mapping)return c;if(c.applyMatrix3(this.matrix),c.x<0||c.x>1)switch(this.wrapS){case 1e3:c.x=c.x-Math.floor(c.x);break;case ai:c.x=c.x<0?0:1;break;case 1002:c.x=1===Math.abs(Math.floor(c.x)%2)?Math.ceil(c.x)-c.x:c.x-Math.floor(c.x)}if(c.y<0||c.y>1)switch(this.wrapT){case 1e3:c.y=c.y-Math.floor(c.y);break;case ai:c.y=c.y<0?0:1;break;case 1002:c.y=1===Math.abs(Math.floor(c.y)%2)?Math.ceil(c.y)-c.y:c.y-Math.floor(c.y)}return this.flipY&&(c.y=1-c.y),c}set needsUpdate(c){!0===c&&(this.version++,this.source.needsUpdate=!0)}get encoding(){return Cm("THREE.Texture: Property .encoding has been replaced by .colorSpace."),this.colorSpace===ll?$l:3e3}set encoding(c){Cm("THREE.Texture: Property .encoding has been replaced by .colorSpace."),this.colorSpace=c===$l?ll:""}}return w.DEFAULT_IMAGE=null,w.DEFAULT_MAPPING=300,w.DEFAULT_ANISOTROPY=1,w})();class il{constructor(a=0,c=0,h=0,m=1){il.prototype.isVector4=!0,this.x=a,this.y=c,this.z=h,this.w=m}get width(){return this.z}set width(a){this.z=a}get height(){return this.w}set height(a){this.w=a}set(a,c,h,m){return this.x=a,this.y=c,this.z=h,this.w=m,this}setScalar(a){return this.x=a,this.y=a,this.z=a,this.w=a,this}setX(a){return this.x=a,this}setY(a){return this.y=a,this}setZ(a){return this.z=a,this}setW(a){return this.w=a,this}setComponent(a,c){switch(a){case 0:this.x=c;break;case 1:this.y=c;break;case 2:this.z=c;break;case 3:this.w=c;break;default:throw new Error("index is out of range: "+a)}return this}getComponent(a){switch(a){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error("index is out of range: "+a)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(a){return this.x=a.x,this.y=a.y,this.z=a.z,this.w=void 0!==a.w?a.w:1,this}add(a){return this.x+=a.x,this.y+=a.y,this.z+=a.z,this.w+=a.w,this}addScalar(a){return this.x+=a,this.y+=a,this.z+=a,this.w+=a,this}addVectors(a,c){return this.x=a.x+c.x,this.y=a.y+c.y,this.z=a.z+c.z,this.w=a.w+c.w,this}addScaledVector(a,c){return this.x+=a.x*c,this.y+=a.y*c,this.z+=a.z*c,this.w+=a.w*c,this}sub(a){return this.x-=a.x,this.y-=a.y,this.z-=a.z,this.w-=a.w,this}subScalar(a){return this.x-=a,this.y-=a,this.z-=a,this.w-=a,this}subVectors(a,c){return this.x=a.x-c.x,this.y=a.y-c.y,this.z=a.z-c.z,this.w=a.w-c.w,this}multiply(a){return this.x*=a.x,this.y*=a.y,this.z*=a.z,this.w*=a.w,this}multiplyScalar(a){return this.x*=a,this.y*=a,this.z*=a,this.w*=a,this}applyMatrix4(a){const c=this.x,h=this.y,m=this.z,M=this.w,N=a.elements;return this.x=N[0]*c+N[4]*h+N[8]*m+N[12]*M,this.y=N[1]*c+N[5]*h+N[9]*m+N[13]*M,this.z=N[2]*c+N[6]*h+N[10]*m+N[14]*M,this.w=N[3]*c+N[7]*h+N[11]*m+N[15]*M,this}divideScalar(a){return this.multiplyScalar(1/a)}setAxisAngleFromQuaternion(a){this.w=2*Math.acos(a.w);const c=Math.sqrt(1-a.w*a.w);return c<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=a.x/c,this.y=a.y/c,this.z=a.z/c),this}setAxisAngleFromRotationMatrix(a){let c,h,m,M;const de=a.elements,pe=de[0],xe=de[4],Ie=de[8],Be=de[1],Le=de[5],Ke=de[9],ft=de[2],Qe=de[6],ze=de[10];if(Math.abs(xe-Be)<.01&&Math.abs(Ie-ft)<.01&&Math.abs(Ke-Qe)<.01){if(Math.abs(xe+Be)<.1&&Math.abs(Ie+ft)<.1&&Math.abs(Ke+Qe)<.1&&Math.abs(pe+Le+ze-3)<.1)return this.set(1,0,0,0),this;c=Math.PI;const ct=(pe+1)/2,Dt=(Le+1)/2,Jt=(ze+1)/2,ln=(xe+Be)/4,rn=(Ie+ft)/4,Rn=(Ke+Qe)/4;return ct>Dt&&ct>Jt?ct<.01?(h=0,m=.707106781,M=.707106781):(h=Math.sqrt(ct),m=ln/h,M=rn/h):Dt>Jt?Dt<.01?(h=.707106781,m=0,M=.707106781):(m=Math.sqrt(Dt),h=ln/m,M=Rn/m):Jt<.01?(h=.707106781,m=.707106781,M=0):(M=Math.sqrt(Jt),h=rn/M,m=Rn/M),this.set(h,m,M,c),this}let Ct=Math.sqrt((Qe-Ke)*(Qe-Ke)+(Ie-ft)*(Ie-ft)+(Be-xe)*(Be-xe));return Math.abs(Ct)<.001&&(Ct=1),this.x=(Qe-Ke)/Ct,this.y=(Ie-ft)/Ct,this.z=(Be-xe)/Ct,this.w=Math.acos((pe+Le+ze-1)/2),this}min(a){return this.x=Math.min(this.x,a.x),this.y=Math.min(this.y,a.y),this.z=Math.min(this.z,a.z),this.w=Math.min(this.w,a.w),this}max(a){return this.x=Math.max(this.x,a.x),this.y=Math.max(this.y,a.y),this.z=Math.max(this.z,a.z),this.w=Math.max(this.w,a.w),this}clamp(a,c){return this.x=Math.max(a.x,Math.min(c.x,this.x)),this.y=Math.max(a.y,Math.min(c.y,this.y)),this.z=Math.max(a.z,Math.min(c.z,this.z)),this.w=Math.max(a.w,Math.min(c.w,this.w)),this}clampScalar(a,c){return this.x=Math.max(a,Math.min(c,this.x)),this.y=Math.max(a,Math.min(c,this.y)),this.z=Math.max(a,Math.min(c,this.z)),this.w=Math.max(a,Math.min(c,this.w)),this}clampLength(a,c){const h=this.length();return this.divideScalar(h||1).multiplyScalar(Math.max(a,Math.min(c,h)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this.w=Math.trunc(this.w),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this}dot(a){return this.x*a.x+this.y*a.y+this.z*a.z+this.w*a.w}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)}normalize(){return this.divideScalar(this.length()||1)}setLength(a){return this.normalize().multiplyScalar(a)}lerp(a,c){return this.x+=(a.x-this.x)*c,this.y+=(a.y-this.y)*c,this.z+=(a.z-this.z)*c,this.w+=(a.w-this.w)*c,this}lerpVectors(a,c,h){return this.x=a.x+(c.x-a.x)*h,this.y=a.y+(c.y-a.y)*h,this.z=a.z+(c.z-a.z)*h,this.w=a.w+(c.w-a.w)*h,this}equals(a){return a.x===this.x&&a.y===this.y&&a.z===this.z&&a.w===this.w}fromArray(a,c=0){return this.x=a[c],this.y=a[c+1],this.z=a[c+2],this.w=a[c+3],this}toArray(a=[],c=0){return a[c]=this.x,a[c+1]=this.y,a[c+2]=this.z,a[c+3]=this.w,a}fromBufferAttribute(a,c){return this.x=a.getX(c),this.y=a.getY(c),this.z=a.getZ(c),this.w=a.getW(c),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this.w=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z,yield this.w}}class vA extends bh{constructor(a=1,c=1,h={}){super(),this.isRenderTarget=!0,this.width=a,this.height=c,this.depth=1,this.scissor=new il(0,0,a,c),this.scissorTest=!1,this.viewport=new il(0,0,a,c);const m={width:a,height:c,depth:1};void 0!==h.encoding&&(Cm("THREE.WebGLRenderTarget: option.encoding has been replaced by option.colorSpace."),h.colorSpace=h.encoding===$l?ll:""),h=Object.assign({generateMipmaps:!1,internalFormat:null,minFilter:xt,depthBuffer:!0,stencilBuffer:!1,depthTexture:null,samples:0},h),this.texture=new vu(m,h.mapping,h.wrapS,h.wrapT,h.magFilter,h.minFilter,h.format,h.type,h.anisotropy,h.colorSpace),this.texture.isRenderTargetTexture=!0,this.texture.flipY=!1,this.texture.generateMipmaps=h.generateMipmaps,this.texture.internalFormat=h.internalFormat,this.depthBuffer=h.depthBuffer,this.stencilBuffer=h.stencilBuffer,this.depthTexture=h.depthTexture,this.samples=h.samples}setSize(a,c,h=1){(this.width!==a||this.height!==c||this.depth!==h)&&(this.width=a,this.height=c,this.depth=h,this.texture.image.width=a,this.texture.image.height=c,this.texture.image.depth=h,this.dispose()),this.viewport.set(0,0,a,c),this.scissor.set(0,0,a,c)}clone(){return(new this.constructor).copy(this)}copy(a){this.width=a.width,this.height=a.height,this.depth=a.depth,this.scissor.copy(a.scissor),this.scissorTest=a.scissorTest,this.viewport.copy(a.viewport),this.texture=a.texture.clone(),this.texture.isRenderTargetTexture=!0;const c=Object.assign({},a.texture.image);return this.texture.source=new jf(c),this.depthBuffer=a.depthBuffer,this.stencilBuffer=a.stencilBuffer,null!==a.depthTexture&&(this.depthTexture=a.depthTexture.clone()),this.samples=a.samples,this}dispose(){this.dispatchEvent({type:"dispose"})}}class Fu extends vA{constructor(a=1,c=1,h={}){super(a,c,h),this.isWebGLRenderTarget=!0}}const A1={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},th={h:0,s:0,l:0},rs={h:0,s:0,l:0};function Pg(w,a,c){return c<0&&(c+=1),c>1&&(c-=1),c<1/6?w+6*(a-w)*c:c<.5?a:c<2/3?w+6*(a-w)*(2/3-c):w}class Os{constructor(a,c,h){return this.isColor=!0,this.r=1,this.g=1,this.b=1,this.set(a,c,h)}set(a,c,h){if(void 0===c&&void 0===h){const m=a;m&&m.isColor?this.copy(m):"number"==typeof m?this.setHex(m):"string"==typeof m&&this.setStyle(m)}else this.setRGB(a,c,h);return this}setScalar(a){return this.r=a,this.g=a,this.b=a,this}setHex(a,c=ll){return a=Math.floor(a),this.r=(a>>16&255)/255,this.g=(a>>8&255)/255,this.b=(255&a)/255,Ya.toWorkingColorSpace(this,c),this}setRGB(a,c,h,m=Ya.workingColorSpace){return this.r=a,this.g=c,this.b=h,Ya.toWorkingColorSpace(this,m),this}setHSL(a,c,h,m=Ya.workingColorSpace){if(a=function cl(w,a){return(w%a+a)%a}(a,1),c=nl(c,0,1),h=nl(h,0,1),0===c)this.r=this.g=this.b=h;else{const M=h<=.5?h*(1+c):h+c-h*c,N=2*h-M;this.r=Pg(N,M,a+1/3),this.g=Pg(N,M,a),this.b=Pg(N,M,a-1/3)}return Ya.toWorkingColorSpace(this,m),this}setStyle(a,c=ll){function h(M){void 0!==M&&parseFloat(M)<1&&console.warn("THREE.Color: Alpha component of "+a+" will be ignored.")}let m;if(m=/^(\w+)\(([^\)]*)\)/.exec(a)){let M;const q=m[2];switch(m[1]){case"rgb":case"rgba":if(M=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(q))return h(M[4]),this.setRGB(Math.min(255,parseInt(M[1],10))/255,Math.min(255,parseInt(M[2],10))/255,Math.min(255,parseInt(M[3],10))/255,c);if(M=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(q))return h(M[4]),this.setRGB(Math.min(100,parseInt(M[1],10))/100,Math.min(100,parseInt(M[2],10))/100,Math.min(100,parseInt(M[3],10))/100,c);break;case"hsl":case"hsla":if(M=/^\s*(\d*\.?\d+)\s*,\s*(\d*\.?\d+)\%\s*,\s*(\d*\.?\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(q))return h(M[4]),this.setHSL(parseFloat(M[1])/360,parseFloat(M[2])/100,parseFloat(M[3])/100,c);break;default:console.warn("THREE.Color: Unknown color model "+a)}}else if(m=/^\#([A-Fa-f\d]+)$/.exec(a)){const M=m[1],N=M.length;if(3===N)return this.setRGB(parseInt(M.charAt(0),16)/15,parseInt(M.charAt(1),16)/15,parseInt(M.charAt(2),16)/15,c);if(6===N)return this.setHex(parseInt(M,16),c);console.warn("THREE.Color: Invalid hex color "+a)}else if(a&&a.length>0)return this.setColorName(a,c);return this}setColorName(a,c=ll){const h=A1[a.toLowerCase()];return void 0!==h?this.setHex(h,c):console.warn("THREE.Color: Unknown color "+a),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(a){return this.r=a.r,this.g=a.g,this.b=a.b,this}copySRGBToLinear(a){return this.r=wh(a.r),this.g=wh(a.g),this.b=wh(a.b),this}copyLinearToSRGB(a){return this.r=Bg(a.r),this.g=Bg(a.g),this.b=Bg(a.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(a=ll){return Ya.fromWorkingColorSpace(vo.copy(this),a),65536*Math.round(nl(255*vo.r,0,255))+256*Math.round(nl(255*vo.g,0,255))+Math.round(nl(255*vo.b,0,255))}getHexString(a=ll){return("000000"+this.getHex(a).toString(16)).slice(-6)}getHSL(a,c=Ya.workingColorSpace){Ya.fromWorkingColorSpace(vo.copy(this),c);const h=vo.r,m=vo.g,M=vo.b,N=Math.max(h,m,M),q=Math.min(h,m,M);let de,pe;const xe=(q+N)/2;if(q===N)de=0,pe=0;else{const Ie=N-q;switch(pe=xe<=.5?Ie/(N+q):Ie/(2-N-q),N){case h:de=(m-M)/Ie+(m=0?1:-1,ct=1-ze*ze;if(ct>Number.EPSILON){const Jt=Math.sqrt(ct),ln=Math.atan2(Jt,ze*Ct);Qe=Math.sin(Qe*ln)/Jt,q=Math.sin(q*ln)/Jt}const Dt=q*Ct;if(de=de*Qe+Be*Dt,pe=pe*Qe+Le*Dt,xe=xe*Qe+Ke*Dt,Ie=Ie*Qe+ft*Dt,Qe===1-q){const Jt=1/Math.sqrt(de*de+pe*pe+xe*xe+Ie*Ie);de*=Jt,pe*=Jt,xe*=Jt,Ie*=Jt}}a[c]=de,a[c+1]=pe,a[c+2]=xe,a[c+3]=Ie}static multiplyQuaternionsFlat(a,c,h,m,M,N){const q=h[m],de=h[m+1],pe=h[m+2],xe=h[m+3],Ie=M[N],Be=M[N+1],Le=M[N+2],Ke=M[N+3];return a[c]=q*Ke+xe*Ie+de*Le-pe*Be,a[c+1]=de*Ke+xe*Be+pe*Ie-q*Le,a[c+2]=pe*Ke+xe*Le+q*Be-de*Ie,a[c+3]=xe*Ke-q*Ie-de*Be-pe*Le,a}get x(){return this._x}set x(a){this._x=a,this._onChangeCallback()}get y(){return this._y}set y(a){this._y=a,this._onChangeCallback()}get z(){return this._z}set z(a){this._z=a,this._onChangeCallback()}get w(){return this._w}set w(a){this._w=a,this._onChangeCallback()}set(a,c,h,m){return this._x=a,this._y=c,this._z=h,this._w=m,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(a){return this._x=a.x,this._y=a.y,this._z=a.z,this._w=a.w,this._onChangeCallback(),this}setFromEuler(a,c){const h=a._x,m=a._y,M=a._z,N=a._order,q=Math.cos,de=Math.sin,pe=q(h/2),xe=q(m/2),Ie=q(M/2),Be=de(h/2),Le=de(m/2),Ke=de(M/2);switch(N){case"XYZ":this._x=Be*xe*Ie+pe*Le*Ke,this._y=pe*Le*Ie-Be*xe*Ke,this._z=pe*xe*Ke+Be*Le*Ie,this._w=pe*xe*Ie-Be*Le*Ke;break;case"YXZ":this._x=Be*xe*Ie+pe*Le*Ke,this._y=pe*Le*Ie-Be*xe*Ke,this._z=pe*xe*Ke-Be*Le*Ie,this._w=pe*xe*Ie+Be*Le*Ke;break;case"ZXY":this._x=Be*xe*Ie-pe*Le*Ke,this._y=pe*Le*Ie+Be*xe*Ke,this._z=pe*xe*Ke+Be*Le*Ie,this._w=pe*xe*Ie-Be*Le*Ke;break;case"ZYX":this._x=Be*xe*Ie-pe*Le*Ke,this._y=pe*Le*Ie+Be*xe*Ke,this._z=pe*xe*Ke-Be*Le*Ie,this._w=pe*xe*Ie+Be*Le*Ke;break;case"YZX":this._x=Be*xe*Ie+pe*Le*Ke,this._y=pe*Le*Ie+Be*xe*Ke,this._z=pe*xe*Ke-Be*Le*Ie,this._w=pe*xe*Ie-Be*Le*Ke;break;case"XZY":this._x=Be*xe*Ie-pe*Le*Ke,this._y=pe*Le*Ie-Be*xe*Ke,this._z=pe*xe*Ke+Be*Le*Ie,this._w=pe*xe*Ie+Be*Le*Ke;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+N)}return!1!==c&&this._onChangeCallback(),this}setFromAxisAngle(a,c){const h=c/2,m=Math.sin(h);return this._x=a.x*m,this._y=a.y*m,this._z=a.z*m,this._w=Math.cos(h),this._onChangeCallback(),this}setFromRotationMatrix(a){const c=a.elements,h=c[0],m=c[4],M=c[8],N=c[1],q=c[5],de=c[9],pe=c[2],xe=c[6],Ie=c[10],Be=h+q+Ie;if(Be>0){const Le=.5/Math.sqrt(Be+1);this._w=.25/Le,this._x=(xe-de)*Le,this._y=(M-pe)*Le,this._z=(N-m)*Le}else if(h>q&&h>Ie){const Le=2*Math.sqrt(1+h-q-Ie);this._w=(xe-de)/Le,this._x=.25*Le,this._y=(m+N)/Le,this._z=(M+pe)/Le}else if(q>Ie){const Le=2*Math.sqrt(1+q-h-Ie);this._w=(M-pe)/Le,this._x=(m+N)/Le,this._y=.25*Le,this._z=(de+xe)/Le}else{const Le=2*Math.sqrt(1+Ie-h-q);this._w=(N-m)/Le,this._x=(M+pe)/Le,this._y=(de+xe)/Le,this._z=.25*Le}return this._onChangeCallback(),this}setFromUnitVectors(a,c){let h=a.dot(c)+1;return hMath.abs(a.z)?(this._x=-a.y,this._y=a.x,this._z=0,this._w=h):(this._x=0,this._y=-a.z,this._z=a.y,this._w=h)):(this._x=a.y*c.z-a.z*c.y,this._y=a.z*c.x-a.x*c.z,this._z=a.x*c.y-a.y*c.x,this._w=h),this.normalize()}angleTo(a){return 2*Math.acos(Math.abs(nl(this.dot(a),-1,1)))}rotateTowards(a,c){const h=this.angleTo(a);if(0===h)return this;const m=Math.min(1,c/h);return this.slerp(a,m),this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(a){return this._x*a._x+this._y*a._y+this._z*a._z+this._w*a._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let a=this.length();return 0===a?(this._x=0,this._y=0,this._z=0,this._w=1):(a=1/a,this._x=this._x*a,this._y=this._y*a,this._z=this._z*a,this._w=this._w*a),this._onChangeCallback(),this}multiply(a){return this.multiplyQuaternions(this,a)}premultiply(a){return this.multiplyQuaternions(a,this)}multiplyQuaternions(a,c){const h=a._x,m=a._y,M=a._z,N=a._w,q=c._x,de=c._y,pe=c._z,xe=c._w;return this._x=h*xe+N*q+m*pe-M*de,this._y=m*xe+N*de+M*q-h*pe,this._z=M*xe+N*pe+h*de-m*q,this._w=N*xe-h*q-m*de-M*pe,this._onChangeCallback(),this}slerp(a,c){if(0===c)return this;if(1===c)return this.copy(a);const h=this._x,m=this._y,M=this._z,N=this._w;let q=N*a._w+h*a._x+m*a._y+M*a._z;if(q<0?(this._w=-a._w,this._x=-a._x,this._y=-a._y,this._z=-a._z,q=-q):this.copy(a),q>=1)return this._w=N,this._x=h,this._y=m,this._z=M,this;const de=1-q*q;if(de<=Number.EPSILON){const Le=1-c;return this._w=Le*N+c*this._w,this._x=Le*h+c*this._x,this._y=Le*m+c*this._y,this._z=Le*M+c*this._z,this.normalize(),this._onChangeCallback(),this}const pe=Math.sqrt(de),xe=Math.atan2(pe,q),Ie=Math.sin((1-c)*xe)/pe,Be=Math.sin(c*xe)/pe;return this._w=N*Ie+this._w*Be,this._x=h*Ie+this._x*Be,this._y=m*Ie+this._y*Be,this._z=M*Ie+this._z*Be,this._onChangeCallback(),this}slerpQuaternions(a,c,h){return this.copy(a).slerp(c,h)}random(){const a=Math.random(),c=Math.sqrt(1-a),h=Math.sqrt(a),m=2*Math.PI*Math.random(),M=2*Math.PI*Math.random();return this.set(c*Math.cos(m),h*Math.sin(M),h*Math.cos(M),c*Math.sin(m))}equals(a){return a._x===this._x&&a._y===this._y&&a._z===this._z&&a._w===this._w}fromArray(a,c=0){return this._x=a[c],this._y=a[c+1],this._z=a[c+2],this._w=a[c+3],this._onChangeCallback(),this}toArray(a=[],c=0){return a[c]=this._x,a[c+1]=this._y,a[c+2]=this._z,a[c+3]=this._w,a}fromBufferAttribute(a,c){return this._x=a.getX(c),this._y=a.getY(c),this._z=a.getZ(c),this._w=a.getW(c),this}toJSON(){return this.toArray()}_onChange(a){return this._onChangeCallback=a,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._w}}class Ft{constructor(a=0,c=0,h=0){Ft.prototype.isVector3=!0,this.x=a,this.y=c,this.z=h}set(a,c,h){return void 0===h&&(h=this.z),this.x=a,this.y=c,this.z=h,this}setScalar(a){return this.x=a,this.y=a,this.z=a,this}setX(a){return this.x=a,this}setY(a){return this.y=a,this}setZ(a){return this.z=a,this}setComponent(a,c){switch(a){case 0:this.x=c;break;case 1:this.y=c;break;case 2:this.z=c;break;default:throw new Error("index is out of range: "+a)}return this}getComponent(a){switch(a){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+a)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(a){return this.x=a.x,this.y=a.y,this.z=a.z,this}add(a){return this.x+=a.x,this.y+=a.y,this.z+=a.z,this}addScalar(a){return this.x+=a,this.y+=a,this.z+=a,this}addVectors(a,c){return this.x=a.x+c.x,this.y=a.y+c.y,this.z=a.z+c.z,this}addScaledVector(a,c){return this.x+=a.x*c,this.y+=a.y*c,this.z+=a.z*c,this}sub(a){return this.x-=a.x,this.y-=a.y,this.z-=a.z,this}subScalar(a){return this.x-=a,this.y-=a,this.z-=a,this}subVectors(a,c){return this.x=a.x-c.x,this.y=a.y-c.y,this.z=a.z-c.z,this}multiply(a){return this.x*=a.x,this.y*=a.y,this.z*=a.z,this}multiplyScalar(a){return this.x*=a,this.y*=a,this.z*=a,this}multiplyVectors(a,c){return this.x=a.x*c.x,this.y=a.y*c.y,this.z=a.z*c.z,this}applyEuler(a){return this.applyQuaternion(Wo.setFromEuler(a))}applyAxisAngle(a,c){return this.applyQuaternion(Wo.setFromAxisAngle(a,c))}applyMatrix3(a){const c=this.x,h=this.y,m=this.z,M=a.elements;return this.x=M[0]*c+M[3]*h+M[6]*m,this.y=M[1]*c+M[4]*h+M[7]*m,this.z=M[2]*c+M[5]*h+M[8]*m,this}applyNormalMatrix(a){return this.applyMatrix3(a).normalize()}applyMatrix4(a){const c=this.x,h=this.y,m=this.z,M=a.elements,N=1/(M[3]*c+M[7]*h+M[11]*m+M[15]);return this.x=(M[0]*c+M[4]*h+M[8]*m+M[12])*N,this.y=(M[1]*c+M[5]*h+M[9]*m+M[13])*N,this.z=(M[2]*c+M[6]*h+M[10]*m+M[14])*N,this}applyQuaternion(a){const c=this.x,h=this.y,m=this.z,M=a.x,N=a.y,q=a.z,de=a.w,pe=2*(N*m-q*h),xe=2*(q*c-M*m),Ie=2*(M*h-N*c);return this.x=c+de*pe+N*Ie-q*xe,this.y=h+de*xe+q*pe-M*Ie,this.z=m+de*Ie+M*xe-N*pe,this}project(a){return this.applyMatrix4(a.matrixWorldInverse).applyMatrix4(a.projectionMatrix)}unproject(a){return this.applyMatrix4(a.projectionMatrixInverse).applyMatrix4(a.matrixWorld)}transformDirection(a){const c=this.x,h=this.y,m=this.z,M=a.elements;return this.x=M[0]*c+M[4]*h+M[8]*m,this.y=M[1]*c+M[5]*h+M[9]*m,this.z=M[2]*c+M[6]*h+M[10]*m,this.normalize()}divide(a){return this.x/=a.x,this.y/=a.y,this.z/=a.z,this}divideScalar(a){return this.multiplyScalar(1/a)}min(a){return this.x=Math.min(this.x,a.x),this.y=Math.min(this.y,a.y),this.z=Math.min(this.z,a.z),this}max(a){return this.x=Math.max(this.x,a.x),this.y=Math.max(this.y,a.y),this.z=Math.max(this.z,a.z),this}clamp(a,c){return this.x=Math.max(a.x,Math.min(c.x,this.x)),this.y=Math.max(a.y,Math.min(c.y,this.y)),this.z=Math.max(a.z,Math.min(c.z,this.z)),this}clampScalar(a,c){return this.x=Math.max(a,Math.min(c,this.x)),this.y=Math.max(a,Math.min(c,this.y)),this.z=Math.max(a,Math.min(c,this.z)),this}clampLength(a,c){const h=this.length();return this.divideScalar(h||1).multiplyScalar(Math.max(a,Math.min(c,h)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(a){return this.x*a.x+this.y*a.y+this.z*a.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(a){return this.normalize().multiplyScalar(a)}lerp(a,c){return this.x+=(a.x-this.x)*c,this.y+=(a.y-this.y)*c,this.z+=(a.z-this.z)*c,this}lerpVectors(a,c,h){return this.x=a.x+(c.x-a.x)*h,this.y=a.y+(c.y-a.y)*h,this.z=a.z+(c.z-a.z)*h,this}cross(a){return this.crossVectors(this,a)}crossVectors(a,c){const h=a.x,m=a.y,M=a.z,N=c.x,q=c.y,de=c.z;return this.x=m*de-M*q,this.y=M*N-h*de,this.z=h*q-m*N,this}projectOnVector(a){const c=a.lengthSq();if(0===c)return this.set(0,0,0);const h=a.dot(this)/c;return this.copy(a).multiplyScalar(h)}projectOnPlane(a){return Ic.copy(this).projectOnVector(a),this.sub(Ic)}reflect(a){return this.sub(Ic.copy(a).multiplyScalar(2*this.dot(a)))}angleTo(a){const c=Math.sqrt(this.lengthSq()*a.lengthSq());if(0===c)return Math.PI/2;const h=this.dot(a)/c;return Math.acos(nl(h,-1,1))}distanceTo(a){return Math.sqrt(this.distanceToSquared(a))}distanceToSquared(a){const c=this.x-a.x,h=this.y-a.y,m=this.z-a.z;return c*c+h*h+m*m}manhattanDistanceTo(a){return Math.abs(this.x-a.x)+Math.abs(this.y-a.y)+Math.abs(this.z-a.z)}setFromSpherical(a){return this.setFromSphericalCoords(a.radius,a.phi,a.theta)}setFromSphericalCoords(a,c,h){const m=Math.sin(c)*a;return this.x=m*Math.sin(h),this.y=Math.cos(c)*a,this.z=m*Math.cos(h),this}setFromCylindrical(a){return this.setFromCylindricalCoords(a.radius,a.theta,a.y)}setFromCylindricalCoords(a,c,h){return this.x=a*Math.sin(c),this.y=h,this.z=a*Math.cos(c),this}setFromMatrixPosition(a){const c=a.elements;return this.x=c[12],this.y=c[13],this.z=c[14],this}setFromMatrixScale(a){const c=this.setFromMatrixColumn(a,0).length(),h=this.setFromMatrixColumn(a,1).length(),m=this.setFromMatrixColumn(a,2).length();return this.x=c,this.y=h,this.z=m,this}setFromMatrixColumn(a,c){return this.fromArray(a.elements,4*c)}setFromMatrix3Column(a,c){return this.fromArray(a.elements,3*c)}setFromEuler(a){return this.x=a._x,this.y=a._y,this.z=a._z,this}setFromColor(a){return this.x=a.r,this.y=a.g,this.z=a.b,this}equals(a){return a.x===this.x&&a.y===this.y&&a.z===this.z}fromArray(a,c=0){return this.x=a[c],this.y=a[c+1],this.z=a[c+2],this}toArray(a=[],c=0){return a[c]=this.x,a[c+1]=this.y,a[c+2]=this.z,a}fromBufferAttribute(a,c){return this.x=a.getX(c),this.y=a.getY(c),this.z=a.getZ(c),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){const a=2*(Math.random()-.5),c=Math.random()*Math.PI*2,h=Math.sqrt(1-a**2);return this.x=h*Math.cos(c),this.y=h*Math.sin(c),this.z=a,this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}}const Ic=new Ft,Wo=new Ou;class rl{constructor(a=new Ft(1/0,1/0,1/0),c=new Ft(-1/0,-1/0,-1/0)){this.isBox3=!0,this.min=a,this.max=c}set(a,c){return this.min.copy(a),this.max.copy(c),this}setFromArray(a){this.makeEmpty();for(let c=0,h=a.length;cthis.max.x||a.ythis.max.y||a.zthis.max.z)}containsBox(a){return this.min.x<=a.min.x&&a.max.x<=this.max.x&&this.min.y<=a.min.y&&a.max.y<=this.max.y&&this.min.z<=a.min.z&&a.max.z<=this.max.z}getParameter(a,c){return c.set((a.x-this.min.x)/(this.max.x-this.min.x),(a.y-this.min.y)/(this.max.y-this.min.y),(a.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(a){return!(a.max.xthis.max.x||a.max.ythis.max.y||a.max.zthis.max.z)}intersectsSphere(a){return this.clampPoint(a.center,Sl),Sl.distanceToSquared(a.center)<=a.radius*a.radius}intersectsPlane(a){let c,h;return a.normal.x>0?(c=a.normal.x*this.min.x,h=a.normal.x*this.max.x):(c=a.normal.x*this.max.x,h=a.normal.x*this.min.x),a.normal.y>0?(c+=a.normal.y*this.min.y,h+=a.normal.y*this.max.y):(c+=a.normal.y*this.max.y,h+=a.normal.y*this.min.y),a.normal.z>0?(c+=a.normal.z*this.min.z,h+=a.normal.z*this.max.z):(c+=a.normal.z*this.max.z,h+=a.normal.z*this.min.z),c<=-a.constant&&h>=-a.constant}intersectsTriangle(a){if(this.isEmpty())return!1;this.getCenter(Mm),Tp.subVectors(this.max,Mm),Sp.subVectors(a.a,Mm),Ep.subVectors(a.b,Mm),_c.subVectors(a.c,Mm),Pc.subVectors(Ep,Sp),Zh.subVectors(_c,Ep),Lu.subVectors(Sp,_c);let c=[0,-Pc.z,Pc.y,0,-Zh.z,Zh.y,0,-Lu.z,Lu.y,Pc.z,0,-Pc.x,Zh.z,0,-Zh.x,Lu.z,0,-Lu.x,-Pc.y,Pc.x,0,-Zh.y,Zh.x,0,-Lu.y,Lu.x,0];return!(!g1(c,Sp,Ep,_c,Tp)||(c=[1,0,0,0,1,0,0,0,1],!g1(c,Sp,Ep,_c,Tp)))&&(Dp.crossVectors(Pc,Zh),c=[Dp.x,Dp.y,Dp.z],g1(c,Sp,Ep,_c,Tp))}clampPoint(a,c){return c.copy(a).clamp(this.min,this.max)}distanceToPoint(a){return this.clampPoint(a,Sl).distanceTo(a)}getBoundingSphere(a){return this.isEmpty()?a.makeEmpty():(this.getCenter(a.center),a.radius=.5*this.getSize(Sl).length()),a}intersect(a){return this.min.max(a.min),this.max.min(a.max),this.isEmpty()&&this.makeEmpty(),this}union(a){return this.min.min(a.min),this.max.max(a.max),this}applyMatrix4(a){return this.isEmpty()||(bl[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(a),bl[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(a),bl[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(a),bl[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(a),bl[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(a),bl[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(a),bl[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(a),bl[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(a),this.setFromPoints(bl)),this}translate(a){return this.min.add(a),this.max.add(a),this}equals(a){return a.min.equals(this.min)&&a.max.equals(this.max)}}const bl=[new Ft,new Ft,new Ft,new Ft,new Ft,new Ft,new Ft,new Ft],Sl=new Ft,Bc=new rl,Sp=new Ft,Ep=new Ft,_c=new Ft,Pc=new Ft,Zh=new Ft,Lu=new Ft,Mm=new Ft,Tp=new Ft,Dp=new Ft,Nu=new Ft;function g1(w,a,c,h,m){for(let M=0,N=w.length-3;M<=N;M+=3){Nu.fromArray(w,M);const q=m.x*Math.abs(Nu.x)+m.y*Math.abs(Nu.y)+m.z*Math.abs(Nu.z),de=a.dot(Nu),pe=c.dot(Nu),xe=h.dot(Nu);if(Math.max(-Math.max(de,pe,xe),Math.min(de,pe,xe))>q)return!1}return!0}const Q0=new rl,bA=new Ft,Jh=new Ft;class Yd{constructor(a=new Ft,c=-1){this.center=a,this.radius=c}set(a,c){return this.center.copy(a),this.radius=c,this}setFromPoints(a,c){const h=this.center;void 0!==c?h.copy(c):Q0.setFromPoints(a).getCenter(h);let m=0;for(let M=0,N=a.length;Mthis.radius*this.radius&&(c.sub(this.center).normalize(),c.multiplyScalar(this.radius).add(this.center)),c}getBoundingBox(a){return this.isEmpty()?(a.makeEmpty(),a):(a.set(this.center,this.center),a.expandByScalar(this.radius),a)}applyMatrix4(a){return this.center.applyMatrix4(a),this.radius=this.radius*a.getMaxScaleOnAxis(),this}translate(a){return this.center.add(a),this}expandByPoint(a){if(this.isEmpty())return this.center.copy(a),this.radius=0,this;bA.subVectors(a,this.center);const c=bA.lengthSq();if(c>this.radius*this.radius){const h=Math.sqrt(c),m=.5*(h-this.radius);this.center.addScaledVector(bA,m/h),this.radius+=m}return this}union(a){return a.isEmpty()?this:this.isEmpty()?(this.copy(a),this):(!0===this.center.equals(a.center)?this.radius=Math.max(this.radius,a.radius):(Jh.subVectors(a.center,this.center).setLength(a.radius),this.expandByPoint(bA.copy(a.center).add(Jh)),this.expandByPoint(bA.copy(a.center).sub(Jh))),this)}equals(a){return a.center.equals(this.center)&&a.radius===this.radius}clone(){return(new this.constructor).copy(this)}}const Rg=new Ft,Ip=new Ft,cv=new zo;class nh{constructor(a=new Ft(1,0,0),c=0){this.isPlane=!0,this.normal=a,this.constant=c}set(a,c){return this.normal.copy(a),this.constant=c,this}setComponents(a,c,h,m){return this.normal.set(a,c,h),this.constant=m,this}setFromNormalAndCoplanarPoint(a,c){return this.normal.copy(a),this.constant=-c.dot(this.normal),this}setFromCoplanarPoints(a,c,h){const m=Rg.subVectors(h,c).cross(Ip.subVectors(a,c)).normalize();return this.setFromNormalAndCoplanarPoint(m,a),this}copy(a){return this.normal.copy(a.normal),this.constant=a.constant,this}normalize(){const a=1/this.normal.length();return this.normal.multiplyScalar(a),this.constant*=a,this}negate(){return this.constant*=-1,this.normal.negate(),this}distanceToPoint(a){return this.normal.dot(a)+this.constant}distanceToSphere(a){return this.distanceToPoint(a.center)-a.radius}projectPoint(a,c){return c.copy(a).addScaledVector(this.normal,-this.distanceToPoint(a))}intersectLine(a,c){const h=a.delta(Rg),m=this.normal.dot(h);if(0===m)return 0===this.distanceToPoint(a.start)?c.copy(a.start):null;const M=-(a.start.dot(this.normal)+this.constant)/m;return M<0||M>1?null:c.copy(a.start).addScaledVector(h,M)}intersectsLine(a){const c=this.distanceToPoint(a.start),h=this.distanceToPoint(a.end);return c<0&&h>0||h<0&&c>0}intersectsBox(a){return a.intersectsPlane(this)}intersectsSphere(a){return a.intersectsPlane(this)}coplanarPoint(a){return a.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(a,c){const h=c||cv.getNormalMatrix(a),m=this.coplanarPoint(Rg).applyMatrix4(a),M=this.normal.applyMatrix3(h).normalize();return this.constant=-m.dot(M),this}translate(a){return this.constant-=a.dot(this.normal),this}equals(a){return a.normal.equals(this.normal)&&a.constant===this.constant}clone(){return(new this.constructor).copy(this)}}const yc=new Yd,kg=new Ft;class ef{constructor(a=new nh,c=new nh,h=new nh,m=new nh,M=new nh,N=new nh){this.planes=[a,c,h,m,M,N]}set(a,c,h,m,M,N){const q=this.planes;return q[0].copy(a),q[1].copy(c),q[2].copy(h),q[3].copy(m),q[4].copy(M),q[5].copy(N),this}copy(a){const c=this.planes;for(let h=0;h<6;h++)c[h].copy(a.planes[h]);return this}setFromProjectionMatrix(a,c=Dd){const h=this.planes,m=a.elements,M=m[0],N=m[1],q=m[2],de=m[3],pe=m[4],xe=m[5],Ie=m[6],Be=m[7],Le=m[8],Ke=m[9],ft=m[10],Qe=m[11],ze=m[12],Ct=m[13],ct=m[14],Dt=m[15];if(h[0].setComponents(de-M,Be-pe,Qe-Le,Dt-ze).normalize(),h[1].setComponents(de+M,Be+pe,Qe+Le,Dt+ze).normalize(),h[2].setComponents(de+N,Be+xe,Qe+Ke,Dt+Ct).normalize(),h[3].setComponents(de-N,Be-xe,Qe-Ke,Dt-Ct).normalize(),h[4].setComponents(de-q,Be-Ie,Qe-ft,Dt-ct).normalize(),c===Dd)h[5].setComponents(de+q,Be+Ie,Qe+ft,Dt+ct).normalize();else{if(2001!==c)throw new Error("THREE.Frustum.setFromProjectionMatrix(): Invalid coordinate system: "+c);h[5].setComponents(q,Ie,ft,ct).normalize()}return this}intersectsObject(a){if(void 0!==a.boundingSphere)null===a.boundingSphere&&a.computeBoundingSphere(),yc.copy(a.boundingSphere).applyMatrix4(a.matrixWorld);else{const c=a.geometry;null===c.boundingSphere&&c.computeBoundingSphere(),yc.copy(c.boundingSphere).applyMatrix4(a.matrixWorld)}return this.intersectsSphere(yc)}intersectsSprite(a){return yc.center.set(0,0,0),yc.radius=.7071067811865476,yc.applyMatrix4(a.matrixWorld),this.intersectsSphere(yc)}intersectsSphere(a){const c=this.planes,h=a.center,m=-a.radius;for(let M=0;M<6;M++)if(c[M].distanceToPoint(h)0?a.max.x:a.min.x,kg.y=m.normal.y>0?a.max.y:a.min.y,kg.z=m.normal.z>0?a.max.z:a.min.z,m.distanceToPoint(kg)<0)return!1}return!0}containsPoint(a){const c=this.planes;for(let h=0;h<6;h++)if(c[h].distanceToPoint(a)<0)return!1;return!0}clone(){return(new this.constructor).copy(this)}}class bo{constructor(a,c,h,m,M,N,q,de,pe,xe,Ie,Be,Le,Ke,ft,Qe){bo.prototype.isMatrix4=!0,this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],void 0!==a&&this.set(a,c,h,m,M,N,q,de,pe,xe,Ie,Be,Le,Ke,ft,Qe)}set(a,c,h,m,M,N,q,de,pe,xe,Ie,Be,Le,Ke,ft,Qe){const ze=this.elements;return ze[0]=a,ze[4]=c,ze[8]=h,ze[12]=m,ze[1]=M,ze[5]=N,ze[9]=q,ze[13]=de,ze[2]=pe,ze[6]=xe,ze[10]=Ie,ze[14]=Be,ze[3]=Le,ze[7]=Ke,ze[11]=ft,ze[15]=Qe,this}identity(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this}clone(){return(new bo).fromArray(this.elements)}copy(a){const c=this.elements,h=a.elements;return c[0]=h[0],c[1]=h[1],c[2]=h[2],c[3]=h[3],c[4]=h[4],c[5]=h[5],c[6]=h[6],c[7]=h[7],c[8]=h[8],c[9]=h[9],c[10]=h[10],c[11]=h[11],c[12]=h[12],c[13]=h[13],c[14]=h[14],c[15]=h[15],this}copyPosition(a){const c=this.elements,h=a.elements;return c[12]=h[12],c[13]=h[13],c[14]=h[14],this}setFromMatrix3(a){const c=a.elements;return this.set(c[0],c[3],c[6],0,c[1],c[4],c[7],0,c[2],c[5],c[8],0,0,0,0,1),this}extractBasis(a,c,h){return a.setFromMatrixColumn(this,0),c.setFromMatrixColumn(this,1),h.setFromMatrixColumn(this,2),this}makeBasis(a,c,h){return this.set(a.x,c.x,h.x,0,a.y,c.y,h.y,0,a.z,c.z,h.z,0,0,0,0,1),this}extractRotation(a){const c=this.elements,h=a.elements,m=1/Rc.setFromMatrixColumn(a,0).length(),M=1/Rc.setFromMatrixColumn(a,1).length(),N=1/Rc.setFromMatrixColumn(a,2).length();return c[0]=h[0]*m,c[1]=h[1]*m,c[2]=h[2]*m,c[3]=0,c[4]=h[4]*M,c[5]=h[5]*M,c[6]=h[6]*M,c[7]=0,c[8]=h[8]*N,c[9]=h[9]*N,c[10]=h[10]*N,c[11]=0,c[12]=0,c[13]=0,c[14]=0,c[15]=1,this}makeRotationFromEuler(a){const c=this.elements,h=a.x,m=a.y,M=a.z,N=Math.cos(h),q=Math.sin(h),de=Math.cos(m),pe=Math.sin(m),xe=Math.cos(M),Ie=Math.sin(M);if("XYZ"===a.order){const Be=N*xe,Le=N*Ie,Ke=q*xe,ft=q*Ie;c[0]=de*xe,c[4]=-de*Ie,c[8]=pe,c[1]=Le+Ke*pe,c[5]=Be-ft*pe,c[9]=-q*de,c[2]=ft-Be*pe,c[6]=Ke+Le*pe,c[10]=N*de}else if("YXZ"===a.order){const Be=de*xe,Le=de*Ie,Ke=pe*xe,ft=pe*Ie;c[0]=Be+ft*q,c[4]=Ke*q-Le,c[8]=N*pe,c[1]=N*Ie,c[5]=N*xe,c[9]=-q,c[2]=Le*q-Ke,c[6]=ft+Be*q,c[10]=N*de}else if("ZXY"===a.order){const Be=de*xe,Le=de*Ie,Ke=pe*xe,ft=pe*Ie;c[0]=Be-ft*q,c[4]=-N*Ie,c[8]=Ke+Le*q,c[1]=Le+Ke*q,c[5]=N*xe,c[9]=ft-Be*q,c[2]=-N*pe,c[6]=q,c[10]=N*de}else if("ZYX"===a.order){const Be=N*xe,Le=N*Ie,Ke=q*xe,ft=q*Ie;c[0]=de*xe,c[4]=Ke*pe-Le,c[8]=Be*pe+ft,c[1]=de*Ie,c[5]=ft*pe+Be,c[9]=Le*pe-Ke,c[2]=-pe,c[6]=q*de,c[10]=N*de}else if("YZX"===a.order){const Be=N*de,Le=N*pe,Ke=q*de,ft=q*pe;c[0]=de*xe,c[4]=ft-Be*Ie,c[8]=Ke*Ie+Le,c[1]=Ie,c[5]=N*xe,c[9]=-q*xe,c[2]=-pe*xe,c[6]=Le*Ie+Ke,c[10]=Be-ft*Ie}else if("XZY"===a.order){const Be=N*de,Le=N*pe,Ke=q*de,ft=q*pe;c[0]=de*xe,c[4]=-Ie,c[8]=pe*xe,c[1]=Be*Ie+ft,c[5]=N*xe,c[9]=Le*Ie-Ke,c[2]=Ke*Ie-Le,c[6]=q*xe,c[10]=ft*Ie+Be}return c[3]=0,c[7]=0,c[11]=0,c[12]=0,c[13]=0,c[14]=0,c[15]=1,this}makeRotationFromQuaternion(a){return this.compose(Fg,a,Sm)}lookAt(a,c,h){const m=this.elements;return vc.subVectors(a,c),0===vc.lengthSq()&&(vc.z=1),vc.normalize(),ih.crossVectors(h,vc),0===ih.lengthSq()&&(1===Math.abs(h.z)?vc.x+=1e-4:vc.z+=1e-4,vc.normalize(),ih.crossVectors(h,vc)),ih.normalize(),Em.crossVectors(vc,ih),m[0]=ih.x,m[4]=Em.x,m[8]=vc.x,m[1]=ih.y,m[5]=Em.y,m[9]=vc.y,m[2]=ih.z,m[6]=Em.z,m[10]=vc.z,this}multiply(a){return this.multiplyMatrices(this,a)}premultiply(a){return this.multiplyMatrices(a,this)}multiplyMatrices(a,c){const h=a.elements,m=c.elements,M=this.elements,N=h[0],q=h[4],de=h[8],pe=h[12],xe=h[1],Ie=h[5],Be=h[9],Le=h[13],Ke=h[2],ft=h[6],Qe=h[10],ze=h[14],Ct=h[3],ct=h[7],Dt=h[11],Jt=h[15],ln=m[0],rn=m[4],Rn=m[8],kt=m[12],Zt=m[1],li=m[5],Ti=m[9],ur=m[13],Yn=m[2],Di=m[6],rr=m[10],Oi=m[14],br=m[3],Ji=m[7],lr=m[11],ei=m[15];return M[0]=N*ln+q*Zt+de*Yn+pe*br,M[4]=N*rn+q*li+de*Di+pe*Ji,M[8]=N*Rn+q*Ti+de*rr+pe*lr,M[12]=N*kt+q*ur+de*Oi+pe*ei,M[1]=xe*ln+Ie*Zt+Be*Yn+Le*br,M[5]=xe*rn+Ie*li+Be*Di+Le*Ji,M[9]=xe*Rn+Ie*Ti+Be*rr+Le*lr,M[13]=xe*kt+Ie*ur+Be*Oi+Le*ei,M[2]=Ke*ln+ft*Zt+Qe*Yn+ze*br,M[6]=Ke*rn+ft*li+Qe*Di+ze*Ji,M[10]=Ke*Rn+ft*Ti+Qe*rr+ze*lr,M[14]=Ke*kt+ft*ur+Qe*Oi+ze*ei,M[3]=Ct*ln+ct*Zt+Dt*Yn+Jt*br,M[7]=Ct*rn+ct*li+Dt*Di+Jt*Ji,M[11]=Ct*Rn+ct*Ti+Dt*rr+Jt*lr,M[15]=Ct*kt+ct*ur+Dt*Oi+Jt*ei,this}multiplyScalar(a){const c=this.elements;return c[0]*=a,c[4]*=a,c[8]*=a,c[12]*=a,c[1]*=a,c[5]*=a,c[9]*=a,c[13]*=a,c[2]*=a,c[6]*=a,c[10]*=a,c[14]*=a,c[3]*=a,c[7]*=a,c[11]*=a,c[15]*=a,this}determinant(){const a=this.elements,c=a[0],h=a[4],m=a[8],M=a[12],N=a[1],q=a[5],de=a[9],pe=a[13],xe=a[2],Ie=a[6],Be=a[10],Le=a[14];return a[3]*(+M*de*Ie-m*pe*Ie-M*q*Be+h*pe*Be+m*q*Le-h*de*Le)+a[7]*(+c*de*Le-c*pe*Be+M*N*Be-m*N*Le+m*pe*xe-M*de*xe)+a[11]*(+c*pe*Ie-c*q*Le-M*N*Ie+h*N*Le+M*q*xe-h*pe*xe)+a[15]*(-m*q*xe-c*de*Ie+c*q*Be+m*N*Ie-h*N*Be+h*de*xe)}transpose(){const a=this.elements;let c;return c=a[1],a[1]=a[4],a[4]=c,c=a[2],a[2]=a[8],a[8]=c,c=a[6],a[6]=a[9],a[9]=c,c=a[3],a[3]=a[12],a[12]=c,c=a[7],a[7]=a[13],a[13]=c,c=a[11],a[11]=a[14],a[14]=c,this}setPosition(a,c,h){const m=this.elements;return a.isVector3?(m[12]=a.x,m[13]=a.y,m[14]=a.z):(m[12]=a,m[13]=c,m[14]=h),this}invert(){const a=this.elements,c=a[0],h=a[1],m=a[2],M=a[3],N=a[4],q=a[5],de=a[6],pe=a[7],xe=a[8],Ie=a[9],Be=a[10],Le=a[11],Ke=a[12],ft=a[13],Qe=a[14],ze=a[15],Ct=Ie*Qe*pe-ft*Be*pe+ft*de*Le-q*Qe*Le-Ie*de*ze+q*Be*ze,ct=Ke*Be*pe-xe*Qe*pe-Ke*de*Le+N*Qe*Le+xe*de*ze-N*Be*ze,Dt=xe*ft*pe-Ke*Ie*pe+Ke*q*Le-N*ft*Le-xe*q*ze+N*Ie*ze,Jt=Ke*Ie*de-xe*ft*de-Ke*q*Be+N*ft*Be+xe*q*Qe-N*Ie*Qe,ln=c*Ct+h*ct+m*Dt+M*Jt;if(0===ln)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);const rn=1/ln;return a[0]=Ct*rn,a[1]=(ft*Be*M-Ie*Qe*M-ft*m*Le+h*Qe*Le+Ie*m*ze-h*Be*ze)*rn,a[2]=(q*Qe*M-ft*de*M+ft*m*pe-h*Qe*pe-q*m*ze+h*de*ze)*rn,a[3]=(Ie*de*M-q*Be*M-Ie*m*pe+h*Be*pe+q*m*Le-h*de*Le)*rn,a[4]=ct*rn,a[5]=(xe*Qe*M-Ke*Be*M+Ke*m*Le-c*Qe*Le-xe*m*ze+c*Be*ze)*rn,a[6]=(Ke*de*M-N*Qe*M-Ke*m*pe+c*Qe*pe+N*m*ze-c*de*ze)*rn,a[7]=(N*Be*M-xe*de*M+xe*m*pe-c*Be*pe-N*m*Le+c*de*Le)*rn,a[8]=Dt*rn,a[9]=(Ke*Ie*M-xe*ft*M-Ke*h*Le+c*ft*Le+xe*h*ze-c*Ie*ze)*rn,a[10]=(N*ft*M-Ke*q*M+Ke*h*pe-c*ft*pe-N*h*ze+c*q*ze)*rn,a[11]=(xe*q*M-N*Ie*M-xe*h*pe+c*Ie*pe+N*h*Le-c*q*Le)*rn,a[12]=Jt*rn,a[13]=(xe*ft*m-Ke*Ie*m+Ke*h*Be-c*ft*Be-xe*h*Qe+c*Ie*Qe)*rn,a[14]=(Ke*q*m-N*ft*m-Ke*h*de+c*ft*de+N*h*Qe-c*q*Qe)*rn,a[15]=(N*Ie*m-xe*q*m+xe*h*de-c*Ie*de-N*h*Be+c*q*Be)*rn,this}scale(a){const c=this.elements,h=a.x,m=a.y,M=a.z;return c[0]*=h,c[4]*=m,c[8]*=M,c[1]*=h,c[5]*=m,c[9]*=M,c[2]*=h,c[6]*=m,c[10]*=M,c[3]*=h,c[7]*=m,c[11]*=M,this}getMaxScaleOnAxis(){const a=this.elements;return Math.sqrt(Math.max(a[0]*a[0]+a[1]*a[1]+a[2]*a[2],a[4]*a[4]+a[5]*a[5]+a[6]*a[6],a[8]*a[8]+a[9]*a[9]+a[10]*a[10]))}makeTranslation(a,c,h){return a.isVector3?this.set(1,0,0,a.x,0,1,0,a.y,0,0,1,a.z,0,0,0,1):this.set(1,0,0,a,0,1,0,c,0,0,1,h,0,0,0,1),this}makeRotationX(a){const c=Math.cos(a),h=Math.sin(a);return this.set(1,0,0,0,0,c,-h,0,0,h,c,0,0,0,0,1),this}makeRotationY(a){const c=Math.cos(a),h=Math.sin(a);return this.set(c,0,h,0,0,1,0,0,-h,0,c,0,0,0,0,1),this}makeRotationZ(a){const c=Math.cos(a),h=Math.sin(a);return this.set(c,-h,0,0,h,c,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(a,c){const h=Math.cos(c),m=Math.sin(c),M=1-h,N=a.x,q=a.y,de=a.z,pe=M*N,xe=M*q;return this.set(pe*N+h,pe*q-m*de,pe*de+m*q,0,pe*q+m*de,xe*q+h,xe*de-m*N,0,pe*de-m*q,xe*de+m*N,M*de*de+h,0,0,0,0,1),this}makeScale(a,c,h){return this.set(a,0,0,0,0,c,0,0,0,0,h,0,0,0,0,1),this}makeShear(a,c,h,m,M,N){return this.set(1,h,M,0,a,1,N,0,c,m,1,0,0,0,0,1),this}compose(a,c,h){const m=this.elements,M=c._x,N=c._y,q=c._z,de=c._w,pe=M+M,xe=N+N,Ie=q+q,Be=M*pe,Le=M*xe,Ke=M*Ie,ft=N*xe,Qe=N*Ie,ze=q*Ie,Ct=de*pe,ct=de*xe,Dt=de*Ie,Jt=h.x,ln=h.y,rn=h.z;return m[0]=(1-(ft+ze))*Jt,m[1]=(Le+Dt)*Jt,m[2]=(Ke-ct)*Jt,m[3]=0,m[4]=(Le-Dt)*ln,m[5]=(1-(Be+ze))*ln,m[6]=(Qe+Ct)*ln,m[7]=0,m[8]=(Ke+ct)*rn,m[9]=(Qe-Ct)*rn,m[10]=(1-(Be+ft))*rn,m[11]=0,m[12]=a.x,m[13]=a.y,m[14]=a.z,m[15]=1,this}decompose(a,c,h){const m=this.elements;let M=Rc.set(m[0],m[1],m[2]).length();const N=Rc.set(m[4],m[5],m[6]).length(),q=Rc.set(m[8],m[9],m[10]).length();this.determinant()<0&&(M=-M),a.x=m[12],a.y=m[13],a.z=m[14],jc.copy(this);const pe=1/M,xe=1/N,Ie=1/q;return jc.elements[0]*=pe,jc.elements[1]*=pe,jc.elements[2]*=pe,jc.elements[4]*=xe,jc.elements[5]*=xe,jc.elements[6]*=xe,jc.elements[8]*=Ie,jc.elements[9]*=Ie,jc.elements[10]*=Ie,c.setFromRotationMatrix(jc),h.x=M,h.y=N,h.z=q,this}makePerspective(a,c,h,m,M,N,q=Dd){const de=this.elements,pe=2*M/(c-a),xe=2*M/(h-m),Ie=(c+a)/(c-a),Be=(h+m)/(h-m);let Le,Ke;if(q===Dd)Le=-(N+M)/(N-M),Ke=-2*N*M/(N-M);else{if(2001!==q)throw new Error("THREE.Matrix4.makePerspective(): Invalid coordinate system: "+q);Le=-N/(N-M),Ke=-N*M/(N-M)}return de[0]=pe,de[4]=0,de[8]=Ie,de[12]=0,de[1]=0,de[5]=xe,de[9]=Be,de[13]=0,de[2]=0,de[6]=0,de[10]=Le,de[14]=Ke,de[3]=0,de[7]=0,de[11]=-1,de[15]=0,this}makeOrthographic(a,c,h,m,M,N,q=Dd){const de=this.elements,pe=1/(c-a),xe=1/(h-m),Ie=1/(N-M),Be=(c+a)*pe,Le=(h+m)*xe;let Ke,ft;if(q===Dd)Ke=(N+M)*Ie,ft=-2*Ie;else{if(2001!==q)throw new Error("THREE.Matrix4.makeOrthographic(): Invalid coordinate system: "+q);Ke=M*Ie,ft=-1*Ie}return de[0]=2*pe,de[4]=0,de[8]=0,de[12]=-Be,de[1]=0,de[5]=2*xe,de[9]=0,de[13]=-Le,de[2]=0,de[6]=0,de[10]=ft,de[14]=-Ke,de[3]=0,de[7]=0,de[11]=0,de[15]=1,this}equals(a){const c=this.elements,h=a.elements;for(let m=0;m<16;m++)if(c[m]!==h[m])return!1;return!0}fromArray(a,c=0){for(let h=0;h<16;h++)this.elements[h]=a[h+c];return this}toArray(a=[],c=0){const h=this.elements;return a[c]=h[0],a[c+1]=h[1],a[c+2]=h[2],a[c+3]=h[3],a[c+4]=h[4],a[c+5]=h[5],a[c+6]=h[6],a[c+7]=h[7],a[c+8]=h[8],a[c+9]=h[9],a[c+10]=h[10],a[c+11]=h[11],a[c+12]=h[12],a[c+13]=h[13],a[c+14]=h[14],a[c+15]=h[15],a}}const Rc=new Ft,jc=new bo,Fg=new Ft(0,0,0),Sm=new Ft(1,1,1),ih=new Ft,Em=new Ft,vc=new Ft;function xA(){let w=null,a=!1,c=null,h=null;function m(M,N){c(M,N),h=w.requestAnimationFrame(m)}return{start:function(){!0!==a&&null!==c&&(h=w.requestAnimationFrame(m),a=!0)},stop:function(){w.cancelAnimationFrame(h),a=!1},setAnimationLoop:function(M){c=M},setContext:function(M){w=M}}}function Bp(w,a){const c=a.isWebGL2,h=new WeakMap;return{get:function N(pe){return pe.isInterleavedBufferAttribute&&(pe=pe.data),h.get(pe)},remove:function q(pe){pe.isInterleavedBufferAttribute&&(pe=pe.data);const xe=h.get(pe);xe&&(w.deleteBuffer(xe.buffer),h.delete(pe))},update:function de(pe,xe){if(pe.isGLBufferAttribute){const Be=h.get(pe);return void((!Be||Be.version{class w{constructor(c=0,h=0,m=0,M=w.DEFAULT_ORDER){this.isEuler=!0,this._x=c,this._y=h,this._z=m,this._order=M}get x(){return this._x}set x(c){this._x=c,this._onChangeCallback()}get y(){return this._y}set y(c){this._y=c,this._onChangeCallback()}get z(){return this._z}set z(c){this._z=c,this._onChangeCallback()}get order(){return this._order}set order(c){this._order=c,this._onChangeCallback()}set(c,h,m,M=this._order){return this._x=c,this._y=h,this._z=m,this._order=M,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(c){return this._x=c._x,this._y=c._y,this._z=c._z,this._order=c._order,this._onChangeCallback(),this}setFromRotationMatrix(c,h=this._order,m=!0){const M=c.elements,N=M[0],q=M[4],de=M[8],pe=M[1],xe=M[5],Ie=M[9],Be=M[2],Le=M[6],Ke=M[10];switch(h){case"XYZ":this._y=Math.asin(nl(de,-1,1)),Math.abs(de)<.9999999?(this._x=Math.atan2(-Ie,Ke),this._z=Math.atan2(-q,N)):(this._x=Math.atan2(Le,xe),this._z=0);break;case"YXZ":this._x=Math.asin(-nl(Ie,-1,1)),Math.abs(Ie)<.9999999?(this._y=Math.atan2(de,Ke),this._z=Math.atan2(pe,xe)):(this._y=Math.atan2(-Be,N),this._z=0);break;case"ZXY":this._x=Math.asin(nl(Le,-1,1)),Math.abs(Le)<.9999999?(this._y=Math.atan2(-Be,Ke),this._z=Math.atan2(-q,xe)):(this._y=0,this._z=Math.atan2(pe,N));break;case"ZYX":this._y=Math.asin(-nl(Be,-1,1)),Math.abs(Be)<.9999999?(this._x=Math.atan2(Le,Ke),this._z=Math.atan2(pe,N)):(this._x=0,this._z=Math.atan2(-q,xe));break;case"YZX":this._z=Math.asin(nl(pe,-1,1)),Math.abs(pe)<.9999999?(this._x=Math.atan2(-Ie,xe),this._y=Math.atan2(-Be,N)):(this._x=0,this._y=Math.atan2(de,Ke));break;case"XZY":this._z=Math.asin(-nl(q,-1,1)),Math.abs(q)<.9999999?(this._x=Math.atan2(Le,xe),this._y=Math.atan2(de,N)):(this._x=Math.atan2(-Ie,Ke),this._y=0);break;default:console.warn("THREE.Euler: .setFromRotationMatrix() encountered an unknown order: "+h)}return this._order=h,!0===m&&this._onChangeCallback(),this}setFromQuaternion(c,h,m){return rh.makeRotationFromQuaternion(c),this.setFromRotationMatrix(rh,h,m)}setFromVector3(c,h=this._order){return this.set(c.x,c.y,c.z,h)}reorder(c){return Tl.setFromEuler(this),this.setFromQuaternion(Tl,c)}equals(c){return c._x===this._x&&c._y===this._y&&c._z===this._z&&c._order===this._order}fromArray(c){return this._x=c[0],this._y=c[1],this._z=c[2],void 0!==c[3]&&(this._order=c[3]),this._onChangeCallback(),this}toArray(c=[],h=0){return c[h]=this._x,c[h+1]=this._y,c[h+2]=this._z,c[h+3]=this._order,c}_onChange(c){return this._onChangeCallback=c,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._order}}return w.DEFAULT_ORDER="XYZ",w})();class so{constructor(){this.mask=1}set(a){this.mask=1<>>0}enable(a){this.mask|=1<{class w extends bh{constructor(){super(),this.isObject3D=!0,Object.defineProperty(this,"id",{value:pl++}),this.uuid=Au(),this.name="",this.type="Object3D",this.parent=null,this.children=[],this.up=w.DEFAULT_UP.clone();const c=new Ft,h=new Gr,m=new Ou,M=new Ft(1,1,1);h._onChange(function N(){m.setFromEuler(h,!1)}),m._onChange(function q(){h.setFromQuaternion(m,void 0,!1)}),Object.defineProperties(this,{position:{configurable:!0,enumerable:!0,value:c},rotation:{configurable:!0,enumerable:!0,value:h},quaternion:{configurable:!0,enumerable:!0,value:m},scale:{configurable:!0,enumerable:!0,value:M},modelViewMatrix:{value:new bo},normalMatrix:{value:new zo}}),this.matrix=new bo,this.matrixWorld=new bo,this.matrixAutoUpdate=w.DEFAULT_MATRIX_AUTO_UPDATE,this.matrixWorldNeedsUpdate=!1,this.matrixWorldAutoUpdate=w.DEFAULT_MATRIX_WORLD_AUTO_UPDATE,this.layers=new so,this.visible=!0,this.castShadow=!1,this.receiveShadow=!1,this.frustumCulled=!0,this.renderOrder=0,this.animations=[],this.userData={}}onBeforeRender(){}onAfterRender(){}applyMatrix4(c){this.matrixAutoUpdate&&this.updateMatrix(),this.matrix.premultiply(c),this.matrix.decompose(this.position,this.quaternion,this.scale)}applyQuaternion(c){return this.quaternion.premultiply(c),this}setRotationFromAxisAngle(c,h){this.quaternion.setFromAxisAngle(c,h)}setRotationFromEuler(c){this.quaternion.setFromEuler(c,!0)}setRotationFromMatrix(c){this.quaternion.setFromRotationMatrix(c)}setRotationFromQuaternion(c){this.quaternion.copy(c)}rotateOnAxis(c,h){return oc.setFromAxisAngle(c,h),this.quaternion.multiply(oc),this}rotateOnWorldAxis(c,h){return oc.setFromAxisAngle(c,h),this.quaternion.premultiply(oc),this}rotateX(c){return this.rotateOnAxis(Mo,c)}rotateY(c){return this.rotateOnAxis(kp,c)}rotateZ(c){return this.rotateOnAxis($0,c)}translateOnAxis(c,h){return Kd.copy(c).applyQuaternion(this.quaternion),this.position.add(Kd.multiplyScalar(h)),this}translateX(c){return this.translateOnAxis(Mo,c)}translateY(c){return this.translateOnAxis(kp,c)}translateZ(c){return this.translateOnAxis($0,c)}localToWorld(c){return this.updateWorldMatrix(!0,!1),c.applyMatrix4(this.matrixWorld)}worldToLocal(c){return this.updateWorldMatrix(!0,!1),c.applyMatrix4(Ul.copy(this.matrixWorld).invert())}lookAt(c,h,m){c.isVector3?nf.copy(c):nf.set(c,h,m);const M=this.parent;this.updateWorldMatrix(!0,!1),Ka.setFromMatrixPosition(this.matrixWorld),this.isCamera||this.isLight?Ul.lookAt(Ka,nf,this.up):Ul.lookAt(nf,Ka,this.up),this.quaternion.setFromRotationMatrix(Ul),M&&(Ul.extractRotation(M.matrixWorld),oc.setFromRotationMatrix(Ul),this.quaternion.premultiply(oc.invert()))}add(c){if(arguments.length>1){for(let h=0;h1){for(let m=0;m0&&(m=m.concat(q))}return m}getWorldPosition(c){return this.updateWorldMatrix(!0,!1),c.setFromMatrixPosition(this.matrixWorld)}getWorldQuaternion(c){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(Ka,c,$c),c}getWorldScale(c){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(Ka,Uu,c),c}getWorldDirection(c){this.updateWorldMatrix(!0,!1);const h=this.matrixWorld.elements;return c.set(h[8],h[9],h[10]).normalize()}raycast(){}traverse(c){c(this);const h=this.children;for(let m=0,M=h.length;m0&&(M.userData=this.userData),M.layers=this.layers.mask,M.matrix=this.matrix.toArray(),M.up=this.up.toArray(),!1===this.matrixAutoUpdate&&(M.matrixAutoUpdate=!1),this.isInstancedMesh&&(M.type="InstancedMesh",M.count=this.count,M.instanceMatrix=this.instanceMatrix.toJSON(),null!==this.instanceColor&&(M.instanceColor=this.instanceColor.toJSON())),this.isScene)this.background&&(this.background.isColor?M.background=this.background.toJSON():this.background.isTexture&&(M.background=this.background.toJSON(c).uuid)),this.environment&&this.environment.isTexture&&!0!==this.environment.isRenderTargetTexture&&(M.environment=this.environment.toJSON(c).uuid);else if(this.isMesh||this.isLine||this.isPoints){M.geometry=N(c.geometries,this.geometry);const de=this.geometry.parameters;if(void 0!==de&&void 0!==de.shapes){const pe=de.shapes;if(Array.isArray(pe))for(let xe=0,Ie=pe.length;xe0){M.children=[];for(let de=0;de0){M.animations=[];for(let de=0;de0&&(m.geometries=de),pe.length>0&&(m.materials=pe),xe.length>0&&(m.textures=xe),Ie.length>0&&(m.images=Ie),Be.length>0&&(m.shapes=Be),Le.length>0&&(m.skeletons=Le),Ke.length>0&&(m.animations=Ke),ft.length>0&&(m.nodes=ft)}return m.object=M,m;function q(de){const pe=[];for(const xe in de){const Ie=de[xe];delete Ie.metadata,pe.push(Ie)}return pe}}clone(c){return(new this.constructor).copy(this,c)}copy(c,h=!0){if(this.name=c.name,this.up.copy(c.up),this.position.copy(c.position),this.rotation.order=c.rotation.order,this.quaternion.copy(c.quaternion),this.scale.copy(c.scale),this.matrix.copy(c.matrix),this.matrixWorld.copy(c.matrixWorld),this.matrixAutoUpdate=c.matrixAutoUpdate,this.matrixWorldNeedsUpdate=c.matrixWorldNeedsUpdate,this.matrixWorldAutoUpdate=c.matrixWorldAutoUpdate,this.layers.mask=c.layers.mask,this.visible=c.visible,this.castShadow=c.castShadow,this.receiveShadow=c.receiveShadow,this.frustumCulled=c.frustumCulled,this.renderOrder=c.renderOrder,this.animations=c.animations.slice(),this.userData=JSON.parse(JSON.stringify(c.userData)),!0===h)for(let m=0;m0&&(a.userData=this.userData),void 0!==this.parameters){const de=this.parameters;for(const pe in de)void 0!==de[pe]&&(a[pe]=de[pe]);return a}a.data={attributes:{}};const c=this.index;null!==c&&(a.data.index={type:c.array.constructor.name,array:Array.prototype.slice.call(c.array)});const h=this.attributes;for(const de in h)a.data.attributes[de]=h[de].toJSON(a.data);const m={};let M=!1;for(const de in this.morphAttributes){const pe=this.morphAttributes[de],xe=[];for(let Ie=0,Be=pe.length;Ie0&&(m[de]=xe,M=!0)}M&&(a.data.morphAttributes=m,a.data.morphTargetsRelative=this.morphTargetsRelative);const N=this.groups;N.length>0&&(a.data.groups=JSON.parse(JSON.stringify(N)));const q=this.boundingSphere;return null!==q&&(a.data.boundingSphere={center:q.center.toArray(),radius:q.radius}),a}clone(){return(new this.constructor).copy(this)}copy(a){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;const c={};this.name=a.name;const h=a.index;null!==h&&this.setIndex(h.clone(c));const m=a.attributes;for(const pe in m)this.setAttribute(pe,m[pe].clone(c));const M=a.morphAttributes;for(const pe in M){const xe=[],Ie=M[pe];for(let Be=0,Le=Ie.length;Be0?1:-1,xe.push(Ji.x,Ji.y,Ji.z),Ie.push(sr/rn),Ie.push(1-lr/Rn),Oi+=1}for(let lr=0;lr0!=a>0&&this.version++,this._alphaTest=a}onBuild(){}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(a){if(void 0!==a)for(const c in a){const h=a[c];if(void 0===h){console.warn(`THREE.Material: parameter '${c}' has value of undefined.`);continue}const m=this[c];void 0!==m?m&&m.isColor?m.set(h):m&&m.isVector3&&h&&h.isVector3?m.copy(h):this[c]=h:console.warn(`THREE.Material: '${c}' is not a property of THREE.${this.type}.`)}}toJSON(a){const c=void 0===a||"string"==typeof a;c&&(a={textures:{},images:{}});const h={metadata:{version:4.6,type:"Material",generator:"Material.toJSON"}};function m(M){const N=[];for(const q in M){const de=M[q];delete de.metadata,N.push(de)}return N}if(h.uuid=this.uuid,h.type=this.type,""!==this.name&&(h.name=this.name),this.color&&this.color.isColor&&(h.color=this.color.getHex()),void 0!==this.roughness&&(h.roughness=this.roughness),void 0!==this.metalness&&(h.metalness=this.metalness),void 0!==this.sheen&&(h.sheen=this.sheen),this.sheenColor&&this.sheenColor.isColor&&(h.sheenColor=this.sheenColor.getHex()),void 0!==this.sheenRoughness&&(h.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(h.emissive=this.emissive.getHex()),this.emissiveIntensity&&1!==this.emissiveIntensity&&(h.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(h.specular=this.specular.getHex()),void 0!==this.specularIntensity&&(h.specularIntensity=this.specularIntensity),this.specularColor&&this.specularColor.isColor&&(h.specularColor=this.specularColor.getHex()),void 0!==this.shininess&&(h.shininess=this.shininess),void 0!==this.clearcoat&&(h.clearcoat=this.clearcoat),void 0!==this.clearcoatRoughness&&(h.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(h.clearcoatMap=this.clearcoatMap.toJSON(a).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(h.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(a).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(h.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(a).uuid,h.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),void 0!==this.iridescence&&(h.iridescence=this.iridescence),void 0!==this.iridescenceIOR&&(h.iridescenceIOR=this.iridescenceIOR),void 0!==this.iridescenceThicknessRange&&(h.iridescenceThicknessRange=this.iridescenceThicknessRange),this.iridescenceMap&&this.iridescenceMap.isTexture&&(h.iridescenceMap=this.iridescenceMap.toJSON(a).uuid),this.iridescenceThicknessMap&&this.iridescenceThicknessMap.isTexture&&(h.iridescenceThicknessMap=this.iridescenceThicknessMap.toJSON(a).uuid),void 0!==this.anisotropy&&(h.anisotropy=this.anisotropy),void 0!==this.anisotropyRotation&&(h.anisotropyRotation=this.anisotropyRotation),this.anisotropyMap&&this.anisotropyMap.isTexture&&(h.anisotropyMap=this.anisotropyMap.toJSON(a).uuid),this.map&&this.map.isTexture&&(h.map=this.map.toJSON(a).uuid),this.matcap&&this.matcap.isTexture&&(h.matcap=this.matcap.toJSON(a).uuid),this.alphaMap&&this.alphaMap.isTexture&&(h.alphaMap=this.alphaMap.toJSON(a).uuid),this.lightMap&&this.lightMap.isTexture&&(h.lightMap=this.lightMap.toJSON(a).uuid,h.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(h.aoMap=this.aoMap.toJSON(a).uuid,h.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(h.bumpMap=this.bumpMap.toJSON(a).uuid,h.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(h.normalMap=this.normalMap.toJSON(a).uuid,h.normalMapType=this.normalMapType,h.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(h.displacementMap=this.displacementMap.toJSON(a).uuid,h.displacementScale=this.displacementScale,h.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(h.roughnessMap=this.roughnessMap.toJSON(a).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(h.metalnessMap=this.metalnessMap.toJSON(a).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(h.emissiveMap=this.emissiveMap.toJSON(a).uuid),this.specularMap&&this.specularMap.isTexture&&(h.specularMap=this.specularMap.toJSON(a).uuid),this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(h.specularIntensityMap=this.specularIntensityMap.toJSON(a).uuid),this.specularColorMap&&this.specularColorMap.isTexture&&(h.specularColorMap=this.specularColorMap.toJSON(a).uuid),this.envMap&&this.envMap.isTexture&&(h.envMap=this.envMap.toJSON(a).uuid,void 0!==this.combine&&(h.combine=this.combine)),void 0!==this.envMapIntensity&&(h.envMapIntensity=this.envMapIntensity),void 0!==this.reflectivity&&(h.reflectivity=this.reflectivity),void 0!==this.refractionRatio&&(h.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(h.gradientMap=this.gradientMap.toJSON(a).uuid),void 0!==this.transmission&&(h.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(h.transmissionMap=this.transmissionMap.toJSON(a).uuid),void 0!==this.thickness&&(h.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(h.thicknessMap=this.thicknessMap.toJSON(a).uuid),void 0!==this.attenuationDistance&&this.attenuationDistance!==1/0&&(h.attenuationDistance=this.attenuationDistance),void 0!==this.attenuationColor&&(h.attenuationColor=this.attenuationColor.getHex()),void 0!==this.size&&(h.size=this.size),null!==this.shadowSide&&(h.shadowSide=this.shadowSide),void 0!==this.sizeAttenuation&&(h.sizeAttenuation=this.sizeAttenuation),1!==this.blending&&(h.blending=this.blending),this.side!==F&&(h.side=this.side),!0===this.vertexColors&&(h.vertexColors=!0),this.opacity<1&&(h.opacity=this.opacity),!0===this.transparent&&(h.transparent=!0),204!==this.blendSrc&&(h.blendSrc=this.blendSrc),205!==this.blendDst&&(h.blendDst=this.blendDst),this.blendEquation!==E&&(h.blendEquation=this.blendEquation),null!==this.blendSrcAlpha&&(h.blendSrcAlpha=this.blendSrcAlpha),null!==this.blendDstAlpha&&(h.blendDstAlpha=this.blendDstAlpha),null!==this.blendEquationAlpha&&(h.blendEquationAlpha=this.blendEquationAlpha),this.blendColor&&this.blendColor.isColor&&(h.blendColor=this.blendColor.getHex()),0!==this.blendAlpha&&(h.blendAlpha=this.blendAlpha),3!==this.depthFunc&&(h.depthFunc=this.depthFunc),!1===this.depthTest&&(h.depthTest=this.depthTest),!1===this.depthWrite&&(h.depthWrite=this.depthWrite),!1===this.colorWrite&&(h.colorWrite=this.colorWrite),255!==this.stencilWriteMask&&(h.stencilWriteMask=this.stencilWriteMask),519!==this.stencilFunc&&(h.stencilFunc=this.stencilFunc),0!==this.stencilRef&&(h.stencilRef=this.stencilRef),255!==this.stencilFuncMask&&(h.stencilFuncMask=this.stencilFuncMask),this.stencilFail!==zf&&(h.stencilFail=this.stencilFail),this.stencilZFail!==zf&&(h.stencilZFail=this.stencilZFail),this.stencilZPass!==zf&&(h.stencilZPass=this.stencilZPass),!0===this.stencilWrite&&(h.stencilWrite=this.stencilWrite),void 0!==this.rotation&&0!==this.rotation&&(h.rotation=this.rotation),!0===this.polygonOffset&&(h.polygonOffset=!0),0!==this.polygonOffsetFactor&&(h.polygonOffsetFactor=this.polygonOffsetFactor),0!==this.polygonOffsetUnits&&(h.polygonOffsetUnits=this.polygonOffsetUnits),void 0!==this.linewidth&&1!==this.linewidth&&(h.linewidth=this.linewidth),void 0!==this.dashSize&&(h.dashSize=this.dashSize),void 0!==this.gapSize&&(h.gapSize=this.gapSize),void 0!==this.scale&&(h.scale=this.scale),!0===this.dithering&&(h.dithering=!0),this.alphaTest>0&&(h.alphaTest=this.alphaTest),!0===this.alphaHash&&(h.alphaHash=!0),!0===this.alphaToCoverage&&(h.alphaToCoverage=!0),!0===this.premultipliedAlpha&&(h.premultipliedAlpha=!0),!0===this.forceSinglePass&&(h.forceSinglePass=!0),!0===this.wireframe&&(h.wireframe=!0),this.wireframeLinewidth>1&&(h.wireframeLinewidth=this.wireframeLinewidth),"round"!==this.wireframeLinecap&&(h.wireframeLinecap=this.wireframeLinecap),"round"!==this.wireframeLinejoin&&(h.wireframeLinejoin=this.wireframeLinejoin),!0===this.flatShading&&(h.flatShading=!0),!1===this.visible&&(h.visible=!1),!1===this.toneMapped&&(h.toneMapped=!1),!1===this.fog&&(h.fog=!1),Object.keys(this.userData).length>0&&(h.userData=this.userData),c){const M=m(a.textures),N=m(a.images);M.length>0&&(h.textures=M),N.length>0&&(h.images=N)}return h}clone(){return(new this.constructor).copy(this)}copy(a){this.name=a.name,this.blending=a.blending,this.side=a.side,this.vertexColors=a.vertexColors,this.opacity=a.opacity,this.transparent=a.transparent,this.blendSrc=a.blendSrc,this.blendDst=a.blendDst,this.blendEquation=a.blendEquation,this.blendSrcAlpha=a.blendSrcAlpha,this.blendDstAlpha=a.blendDstAlpha,this.blendEquationAlpha=a.blendEquationAlpha,this.blendColor.copy(a.blendColor),this.blendAlpha=a.blendAlpha,this.depthFunc=a.depthFunc,this.depthTest=a.depthTest,this.depthWrite=a.depthWrite,this.stencilWriteMask=a.stencilWriteMask,this.stencilFunc=a.stencilFunc,this.stencilRef=a.stencilRef,this.stencilFuncMask=a.stencilFuncMask,this.stencilFail=a.stencilFail,this.stencilZFail=a.stencilZFail,this.stencilZPass=a.stencilZPass,this.stencilWrite=a.stencilWrite;const c=a.clippingPlanes;let h=null;if(null!==c){const m=c.length;h=new Array(m);for(let M=0;M!==m;++M)h[M]=c[M].clone()}return this.clippingPlanes=h,this.clipIntersection=a.clipIntersection,this.clipShadows=a.clipShadows,this.shadowSide=a.shadowSide,this.colorWrite=a.colorWrite,this.precision=a.precision,this.polygonOffset=a.polygonOffset,this.polygonOffsetFactor=a.polygonOffsetFactor,this.polygonOffsetUnits=a.polygonOffsetUnits,this.dithering=a.dithering,this.alphaTest=a.alphaTest,this.alphaHash=a.alphaHash,this.alphaToCoverage=a.alphaToCoverage,this.premultipliedAlpha=a.premultipliedAlpha,this.forceSinglePass=a.forceSinglePass,this.visible=a.visible,this.toneMapped=a.toneMapped,this.userData=JSON.parse(JSON.stringify(a.userData)),this}dispose(){this.dispatchEvent({type:"dispose"})}set needsUpdate(a){!0===a&&this.version++}}function cs(w){const a={};for(const c in w){a[c]={};for(const h in w[c]){const m=w[c][h];m&&(m.isColor||m.isMatrix3||m.isMatrix4||m.isVector2||m.isVector3||m.isVector4||m.isTexture||m.isQuaternion)?m.isRenderTargetTexture?(console.warn("UniformsUtils: Textures of render targets cannot be cloned via cloneUniforms() or mergeUniforms()."),a[c][h]=null):a[c][h]=m.clone():a[c][h]=Array.isArray(m)?m.slice():m}}return a}function Ia(w){const a={};for(let c=0;c0&&(c.defines=this.defines),c.vertexShader=this.vertexShader,c.fragmentShader=this.fragmentShader,c.lights=this.lights,c.clipping=this.clipping;const h={};for(const m in this.extensions)!0===this.extensions[m]&&(h[m]=!0);return Object.keys(h).length>0&&(c.extensions=h),c}}const Hl=new Ft,Lp=new Ft,EA=new Ft,lf=new Ft,oh=new Ft,Np=new Ft,Up=new Ft;class cf{constructor(a=new Ft,c=new Ft(0,0,-1)){this.origin=a,this.direction=c}set(a,c){return this.origin.copy(a),this.direction.copy(c),this}copy(a){return this.origin.copy(a.origin),this.direction.copy(a.direction),this}at(a,c){return c.copy(this.origin).addScaledVector(this.direction,a)}lookAt(a){return this.direction.copy(a).sub(this.origin).normalize(),this}recast(a){return this.origin.copy(this.at(a,Hl)),this}closestPointToPoint(a,c){c.subVectors(a,this.origin);const h=c.dot(this.direction);return h<0?c.copy(this.origin):c.copy(this.origin).addScaledVector(this.direction,h)}distanceToPoint(a){return Math.sqrt(this.distanceSqToPoint(a))}distanceSqToPoint(a){const c=Hl.subVectors(a,this.origin).dot(this.direction);return c<0?this.origin.distanceToSquared(a):(Hl.copy(this.origin).addScaledVector(this.direction,c),Hl.distanceToSquared(a))}distanceSqToSegment(a,c,h,m){Lp.copy(a).add(c).multiplyScalar(.5),EA.copy(c).sub(a).normalize(),lf.copy(this.origin).sub(Lp);const M=.5*a.distanceTo(c),N=-this.direction.dot(EA),q=lf.dot(this.direction),de=-lf.dot(EA),pe=lf.lengthSq(),xe=Math.abs(1-N*N);let Ie,Be,Le,Ke;if(xe>0)if(Ie=N*de-q,Be=N*q-de,Ke=M*xe,Ie>=0)if(Be>=-Ke)if(Be<=Ke){const ft=1/xe;Ie*=ft,Be*=ft,Le=Ie*(Ie+N*Be+2*q)+Be*(N*Ie+Be+2*de)+pe}else Be=M,Ie=Math.max(0,-(N*Be+q)),Le=-Ie*Ie+Be*(Be+2*de)+pe;else Be=-M,Ie=Math.max(0,-(N*Be+q)),Le=-Ie*Ie+Be*(Be+2*de)+pe;else Be<=-Ke?(Ie=Math.max(0,-(-N*M+q)),Be=Ie>0?-M:Math.min(Math.max(-M,-de),M),Le=-Ie*Ie+Be*(Be+2*de)+pe):Be<=Ke?(Ie=0,Be=Math.min(Math.max(-M,-de),M),Le=Be*(Be+2*de)+pe):(Ie=Math.max(0,-(N*M+q)),Be=Ie>0?M:Math.min(Math.max(-M,-de),M),Le=-Ie*Ie+Be*(Be+2*de)+pe);else Be=N>0?-M:M,Ie=Math.max(0,-(N*Be+q)),Le=-Ie*Ie+Be*(Be+2*de)+pe;return h&&h.copy(this.origin).addScaledVector(this.direction,Ie),m&&m.copy(Lp).addScaledVector(EA,Be),Le}intersectSphere(a,c){Hl.subVectors(a.center,this.origin);const h=Hl.dot(this.direction),m=Hl.dot(Hl)-h*h,M=a.radius*a.radius;if(m>M)return null;const N=Math.sqrt(M-m),q=h-N,de=h+N;return de<0?null:this.at(q<0?de:q,c)}intersectsSphere(a){return this.distanceSqToPoint(a.center)<=a.radius*a.radius}distanceToPlane(a){const c=a.normal.dot(this.direction);if(0===c)return 0===a.distanceToPoint(this.origin)?0:null;const h=-(this.origin.dot(a.normal)+a.constant)/c;return h>=0?h:null}intersectPlane(a,c){const h=this.distanceToPlane(a);return null===h?null:this.at(h,c)}intersectsPlane(a){const c=a.distanceToPoint(this.origin);return 0===c||a.normal.dot(this.direction)*c<0}intersectBox(a,c){let h,m,M,N,q,de;const pe=1/this.direction.x,xe=1/this.direction.y,Ie=1/this.direction.z,Be=this.origin;return pe>=0?(h=(a.min.x-Be.x)*pe,m=(a.max.x-Be.x)*pe):(h=(a.max.x-Be.x)*pe,m=(a.min.x-Be.x)*pe),xe>=0?(M=(a.min.y-Be.y)*xe,N=(a.max.y-Be.y)*xe):(M=(a.max.y-Be.y)*xe,N=(a.min.y-Be.y)*xe),h>N||M>m||((M>h||isNaN(h))&&(h=M),(N=0?(q=(a.min.z-Be.z)*Ie,de=(a.max.z-Be.z)*Ie):(q=(a.max.z-Be.z)*Ie,de=(a.min.z-Be.z)*Ie),h>de||q>m)||((q>h||h!=h)&&(h=q),(de=0?h:m,c)}intersectsBox(a){return null!==this.intersectBox(a,Hl)}intersectTriangle(a,c,h,m,M){oh.subVectors(c,a),Np.subVectors(h,a),Up.crossVectors(oh,Np);let q,N=this.direction.dot(Up);if(N>0){if(m)return null;q=1}else{if(!(N<0))return null;q=-1,N=-N}lf.subVectors(this.origin,a);const de=q*this.direction.dot(Np.crossVectors(lf,Np));if(de<0)return null;const pe=q*this.direction.dot(oh.cross(lf));if(pe<0||de+pe>N)return null;const xe=-q*lf.dot(Up);return xe<0?null:this.at(xe/N,M)}applyMatrix4(a){return this.origin.applyMatrix4(a),this.direction.transformDirection(a),this}equals(a){return a.origin.equals(this.origin)&&a.direction.equals(this.direction)}clone(){return(new this.constructor).copy(this)}}const Mh=new Ft,df=new Ft,Ng=new Ft,Xf=new Ft,TA=new Ft,DA=new Ft,dv=new Ft,Ug=new Ft,zg=new Ft,xc=new Ft;let Dm=!1;class lc{constructor(a=new Ft,c=new Ft,h=new Ft){this.a=a,this.b=c,this.c=h}static getNormal(a,c,h,m){m.subVectors(h,c),Mh.subVectors(a,c),m.cross(Mh);const M=m.lengthSq();return M>0?m.multiplyScalar(1/Math.sqrt(M)):m.set(0,0,0)}static getBarycoord(a,c,h,m,M){Mh.subVectors(m,c),df.subVectors(h,c),Ng.subVectors(a,c);const N=Mh.dot(Mh),q=Mh.dot(df),de=Mh.dot(Ng),pe=df.dot(df),xe=df.dot(Ng),Ie=N*pe-q*q;if(0===Ie)return M.set(-2,-1,-1);const Be=1/Ie,Le=(pe*de-q*xe)*Be,Ke=(N*xe-q*de)*Be;return M.set(1-Le-Ke,Ke,Le)}static containsPoint(a,c,h,m){return this.getBarycoord(a,c,h,m,Xf),Xf.x>=0&&Xf.y>=0&&Xf.x+Xf.y<=1}static getUV(a,c,h,m,M,N,q,de){return!1===Dm&&(console.warn("THREE.Triangle.getUV() has been renamed to THREE.Triangle.getInterpolation()."),Dm=!0),this.getInterpolation(a,c,h,m,M,N,q,de)}static getInterpolation(a,c,h,m,M,N,q,de){return this.getBarycoord(a,c,h,m,Xf),de.setScalar(0),de.addScaledVector(M,Xf.x),de.addScaledVector(N,Xf.y),de.addScaledVector(q,Xf.z),de}static isFrontFacing(a,c,h,m){return Mh.subVectors(h,c),df.subVectors(a,c),Mh.cross(df).dot(m)<0}set(a,c,h){return this.a.copy(a),this.b.copy(c),this.c.copy(h),this}setFromPointsAndIndices(a,c,h,m){return this.a.copy(a[c]),this.b.copy(a[h]),this.c.copy(a[m]),this}setFromAttributeAndIndices(a,c,h,m){return this.a.fromBufferAttribute(a,c),this.b.fromBufferAttribute(a,h),this.c.fromBufferAttribute(a,m),this}clone(){return(new this.constructor).copy(this)}copy(a){return this.a.copy(a.a),this.b.copy(a.b),this.c.copy(a.c),this}getArea(){return Mh.subVectors(this.c,this.b),df.subVectors(this.a,this.b),.5*Mh.cross(df).length()}getMidpoint(a){return a.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(a){return lc.getNormal(this.a,this.b,this.c,a)}getPlane(a){return a.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(a,c){return lc.getBarycoord(a,this.a,this.b,this.c,c)}getUV(a,c,h,m,M){return!1===Dm&&(console.warn("THREE.Triangle.getUV() has been renamed to THREE.Triangle.getInterpolation()."),Dm=!0),lc.getInterpolation(a,this.a,this.b,this.c,c,h,m,M)}getInterpolation(a,c,h,m,M){return lc.getInterpolation(a,this.a,this.b,this.c,c,h,m,M)}containsPoint(a){return lc.containsPoint(a,this.a,this.b,this.c)}isFrontFacing(a){return lc.isFrontFacing(this.a,this.b,this.c,a)}intersectsBox(a){return a.intersectsTriangle(this)}closestPointToPoint(a,c){const h=this.a,m=this.b,M=this.c;let N,q;TA.subVectors(m,h),DA.subVectors(M,h),Ug.subVectors(a,h);const de=TA.dot(Ug),pe=DA.dot(Ug);if(de<=0&&pe<=0)return c.copy(h);zg.subVectors(a,m);const xe=TA.dot(zg),Ie=DA.dot(zg);if(xe>=0&&Ie<=xe)return c.copy(m);const Be=de*Ie-xe*pe;if(Be<=0&&de>=0&&xe<=0)return N=de/(de-xe),c.copy(h).addScaledVector(TA,N);xc.subVectors(a,M);const Le=TA.dot(xc),Ke=DA.dot(xc);if(Ke>=0&&Le<=Ke)return c.copy(M);const ft=Le*pe-de*Ke;if(ft<=0&&pe>=0&&Ke<=0)return q=pe/(pe-Ke),c.copy(h).addScaledVector(DA,q);const Qe=xe*Ke-Le*Ie;if(Qe<=0&&Ie-xe>=0&&Le-Ke>=0)return dv.subVectors(M,m),q=(Ie-xe)/(Ie-xe+(Le-Ke)),c.copy(m).addScaledVector(dv,q);const ze=1/(Qe+ft+Be);return N=ft*ze,q=Be*ze,c.copy(h).addScaledVector(TA,N).addScaledVector(DA,q)}equals(a){return a.a.equals(this.a)&&a.b.equals(this.b)&&a.c.equals(this.c)}}class Xc extends kc{constructor(a){super(),this.isMeshBasicMaterial=!0,this.type="MeshBasicMaterial",this.color=new Os(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=Ne,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(a)}copy(a){return super.copy(a),this.color.copy(a.color),this.map=a.map,this.lightMap=a.lightMap,this.lightMapIntensity=a.lightMapIntensity,this.aoMap=a.aoMap,this.aoMapIntensity=a.aoMapIntensity,this.specularMap=a.specularMap,this.alphaMap=a.alphaMap,this.envMap=a.envMap,this.combine=a.combine,this.reflectivity=a.reflectivity,this.refractionRatio=a.refractionRatio,this.wireframe=a.wireframe,this.wireframeLinewidth=a.wireframeLinewidth,this.wireframeLinecap=a.wireframeLinecap,this.wireframeLinejoin=a.wireframeLinejoin,this.fog=a.fog,this}}const ah=new bo,Zd=new cf,Im=new Yd,b1=new Ft,Sh=new Ft,zu=new Ft,lh=new Ft,kl=new Ft,Yf=new Ft,zp=new Ui,Kf=new Ui,uf=new Ui,Bm=new Ft,Eh=new Ft,Zf=new Ft,Jf=new Ft,Jd=new Ft;class Jc extends Rl{constructor(a=new Cs,c=new Xc){super(),this.isMesh=!0,this.type="Mesh",this.geometry=a,this.material=c,this.updateMorphTargets()}copy(a,c){return super.copy(a,c),void 0!==a.morphTargetInfluences&&(this.morphTargetInfluences=a.morphTargetInfluences.slice()),void 0!==a.morphTargetDictionary&&(this.morphTargetDictionary=Object.assign({},a.morphTargetDictionary)),this.material=Array.isArray(a.material)?a.material.slice():a.material,this.geometry=a.geometry,this}updateMorphTargets(){const c=this.geometry.morphAttributes,h=Object.keys(c);if(h.length>0){const m=c[h[0]];if(void 0!==m){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let M=0,N=m.length;M(a.far-a.near)**2))&&(ah.copy(M).invert(),Zd.copy(a.ray).applyMatrix4(ah),(null===h.boundingBox||!1!==Zd.intersectsBox(h.boundingBox))&&this._computeIntersections(a,c,Zd)))}_computeIntersections(a,c,h){let m;const M=this.geometry,N=this.material,q=M.index,de=M.attributes.position,pe=M.attributes.uv,xe=M.attributes.uv1,Ie=M.attributes.normal,Be=M.groups,Le=M.drawRange;if(null!==q)if(Array.isArray(N))for(let Ke=0,ft=Be.length;Kec.far?null:{distance:pe,point:Jd.clone(),object:w}}(w,a,c,h,Sh,zu,lh,Jf);if(xe){m&&(zp.fromBufferAttribute(m,q),Kf.fromBufferAttribute(m,de),uf.fromBufferAttribute(m,pe),xe.uv=lc.getInterpolation(Jf,Sh,zu,lh,zp,Kf,uf,new Ui)),M&&(zp.fromBufferAttribute(M,q),Kf.fromBufferAttribute(M,de),uf.fromBufferAttribute(M,pe),xe.uv1=lc.getInterpolation(Jf,Sh,zu,lh,zp,Kf,uf,new Ui),xe.uv2=xe.uv1),N&&(Bm.fromBufferAttribute(N,q),Eh.fromBufferAttribute(N,de),Zf.fromBufferAttribute(N,pe),xe.normal=lc.getInterpolation(Jf,Sh,zu,lh,Bm,Eh,Zf,new Ft),xe.normal.dot(h.direction)>0&&xe.normal.multiplyScalar(-1));const Ie={a:q,b:de,c:pe,normal:new Ft,materialIndex:0};lc.getNormal(Sh,zu,lh,Ie.normal),xe.face=Ie}return xe}const Ko={alphahash_fragment:"#ifdef USE_ALPHAHASH\n\tif ( diffuseColor.a < getAlphaHashThreshold( vPosition ) ) discard;\n#endif",alphahash_pars_fragment:"#ifdef USE_ALPHAHASH\n\tconst float ALPHA_HASH_SCALE = 0.05;\n\tfloat hash2D( vec2 value ) {\n\t\treturn fract( 1.0e4 * sin( 17.0 * value.x + 0.1 * value.y ) * ( 0.1 + abs( sin( 13.0 * value.y + value.x ) ) ) );\n\t}\n\tfloat hash3D( vec3 value ) {\n\t\treturn hash2D( vec2( hash2D( value.xy ), value.z ) );\n\t}\n\tfloat getAlphaHashThreshold( vec3 position ) {\n\t\tfloat maxDeriv = max(\n\t\t\tlength( dFdx( position.xyz ) ),\n\t\t\tlength( dFdy( position.xyz ) )\n\t\t);\n\t\tfloat pixScale = 1.0 / ( ALPHA_HASH_SCALE * maxDeriv );\n\t\tvec2 pixScales = vec2(\n\t\t\texp2( floor( log2( pixScale ) ) ),\n\t\t\texp2( ceil( log2( pixScale ) ) )\n\t\t);\n\t\tvec2 alpha = vec2(\n\t\t\thash3D( floor( pixScales.x * position.xyz ) ),\n\t\t\thash3D( floor( pixScales.y * position.xyz ) )\n\t\t);\n\t\tfloat lerpFactor = fract( log2( pixScale ) );\n\t\tfloat x = ( 1.0 - lerpFactor ) * alpha.x + lerpFactor * alpha.y;\n\t\tfloat a = min( lerpFactor, 1.0 - lerpFactor );\n\t\tvec3 cases = vec3(\n\t\t\tx * x / ( 2.0 * a * ( 1.0 - a ) ),\n\t\t\t( x - 0.5 * a ) / ( 1.0 - a ),\n\t\t\t1.0 - ( ( 1.0 - x ) * ( 1.0 - x ) / ( 2.0 * a * ( 1.0 - a ) ) )\n\t\t);\n\t\tfloat threshold = ( x < ( 1.0 - a ) )\n\t\t\t? ( ( x < a ) ? cases.x : cases.y )\n\t\t\t: cases.z;\n\t\treturn clamp( threshold , 1.0e-6, 1.0 );\n\t}\n#endif",alphamap_fragment:"#ifdef USE_ALPHAMAP\n\tdiffuseColor.a *= texture2D( alphaMap, vAlphaMapUv ).g;\n#endif",alphamap_pars_fragment:"#ifdef USE_ALPHAMAP\n\tuniform sampler2D alphaMap;\n#endif",alphatest_fragment:"#ifdef USE_ALPHATEST\n\tif ( diffuseColor.a < alphaTest ) discard;\n#endif",alphatest_pars_fragment:"#ifdef USE_ALPHATEST\n\tuniform float alphaTest;\n#endif",aomap_fragment:"#ifdef USE_AOMAP\n\tfloat ambientOcclusion = ( texture2D( aoMap, vAoMapUv ).r - 1.0 ) * aoMapIntensity + 1.0;\n\treflectedLight.indirectDiffuse *= ambientOcclusion;\n\t#if defined( USE_CLEARCOAT ) \n\t\tclearcoatSpecularIndirect *= ambientOcclusion;\n\t#endif\n\t#if defined( USE_SHEEN ) \n\t\tsheenSpecularIndirect *= ambientOcclusion;\n\t#endif\n\t#if defined( USE_ENVMAP ) && defined( STANDARD )\n\t\tfloat dotNV = saturate( dot( geometryNormal, geometryViewDir ) );\n\t\treflectedLight.indirectSpecular *= computeSpecularOcclusion( dotNV, ambientOcclusion, material.roughness );\n\t#endif\n#endif",aomap_pars_fragment:"#ifdef USE_AOMAP\n\tuniform sampler2D aoMap;\n\tuniform float aoMapIntensity;\n#endif",begin_vertex:"vec3 transformed = vec3( position );\n#ifdef USE_ALPHAHASH\n\tvPosition = vec3( position );\n#endif",beginnormal_vertex:"vec3 objectNormal = vec3( normal );\n#ifdef USE_TANGENT\n\tvec3 objectTangent = vec3( tangent.xyz );\n#endif",bsdfs:"float G_BlinnPhong_Implicit( ) {\n\treturn 0.25;\n}\nfloat D_BlinnPhong( const in float shininess, const in float dotNH ) {\n\treturn RECIPROCAL_PI * ( shininess * 0.5 + 1.0 ) * pow( dotNH, shininess );\n}\nvec3 BRDF_BlinnPhong( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float shininess ) {\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\tvec3 F = F_Schlick( specularColor, 1.0, dotVH );\n\tfloat G = G_BlinnPhong_Implicit( );\n\tfloat D = D_BlinnPhong( shininess, dotNH );\n\treturn F * ( G * D );\n} // validated",iridescence_fragment:"#ifdef USE_IRIDESCENCE\n\tconst mat3 XYZ_TO_REC709 = mat3(\n\t\t 3.2404542, -0.9692660, 0.0556434,\n\t\t-1.5371385, 1.8760108, -0.2040259,\n\t\t-0.4985314, 0.0415560, 1.0572252\n\t);\n\tvec3 Fresnel0ToIor( vec3 fresnel0 ) {\n\t\tvec3 sqrtF0 = sqrt( fresnel0 );\n\t\treturn ( vec3( 1.0 ) + sqrtF0 ) / ( vec3( 1.0 ) - sqrtF0 );\n\t}\n\tvec3 IorToFresnel0( vec3 transmittedIor, float incidentIor ) {\n\t\treturn pow2( ( transmittedIor - vec3( incidentIor ) ) / ( transmittedIor + vec3( incidentIor ) ) );\n\t}\n\tfloat IorToFresnel0( float transmittedIor, float incidentIor ) {\n\t\treturn pow2( ( transmittedIor - incidentIor ) / ( transmittedIor + incidentIor ));\n\t}\n\tvec3 evalSensitivity( float OPD, vec3 shift ) {\n\t\tfloat phase = 2.0 * PI * OPD * 1.0e-9;\n\t\tvec3 val = vec3( 5.4856e-13, 4.4201e-13, 5.2481e-13 );\n\t\tvec3 pos = vec3( 1.6810e+06, 1.7953e+06, 2.2084e+06 );\n\t\tvec3 var = vec3( 4.3278e+09, 9.3046e+09, 6.6121e+09 );\n\t\tvec3 xyz = val * sqrt( 2.0 * PI * var ) * cos( pos * phase + shift ) * exp( - pow2( phase ) * var );\n\t\txyz.x += 9.7470e-14 * sqrt( 2.0 * PI * 4.5282e+09 ) * cos( 2.2399e+06 * phase + shift[ 0 ] ) * exp( - 4.5282e+09 * pow2( phase ) );\n\t\txyz /= 1.0685e-7;\n\t\tvec3 rgb = XYZ_TO_REC709 * xyz;\n\t\treturn rgb;\n\t}\n\tvec3 evalIridescence( float outsideIOR, float eta2, float cosTheta1, float thinFilmThickness, vec3 baseF0 ) {\n\t\tvec3 I;\n\t\tfloat iridescenceIOR = mix( outsideIOR, eta2, smoothstep( 0.0, 0.03, thinFilmThickness ) );\n\t\tfloat sinTheta2Sq = pow2( outsideIOR / iridescenceIOR ) * ( 1.0 - pow2( cosTheta1 ) );\n\t\tfloat cosTheta2Sq = 1.0 - sinTheta2Sq;\n\t\tif ( cosTheta2Sq < 0.0 ) {\n\t\t\treturn vec3( 1.0 );\n\t\t}\n\t\tfloat cosTheta2 = sqrt( cosTheta2Sq );\n\t\tfloat R0 = IorToFresnel0( iridescenceIOR, outsideIOR );\n\t\tfloat R12 = F_Schlick( R0, 1.0, cosTheta1 );\n\t\tfloat T121 = 1.0 - R12;\n\t\tfloat phi12 = 0.0;\n\t\tif ( iridescenceIOR < outsideIOR ) phi12 = PI;\n\t\tfloat phi21 = PI - phi12;\n\t\tvec3 baseIOR = Fresnel0ToIor( clamp( baseF0, 0.0, 0.9999 ) );\t\tvec3 R1 = IorToFresnel0( baseIOR, iridescenceIOR );\n\t\tvec3 R23 = F_Schlick( R1, 1.0, cosTheta2 );\n\t\tvec3 phi23 = vec3( 0.0 );\n\t\tif ( baseIOR[ 0 ] < iridescenceIOR ) phi23[ 0 ] = PI;\n\t\tif ( baseIOR[ 1 ] < iridescenceIOR ) phi23[ 1 ] = PI;\n\t\tif ( baseIOR[ 2 ] < iridescenceIOR ) phi23[ 2 ] = PI;\n\t\tfloat OPD = 2.0 * iridescenceIOR * thinFilmThickness * cosTheta2;\n\t\tvec3 phi = vec3( phi21 ) + phi23;\n\t\tvec3 R123 = clamp( R12 * R23, 1e-5, 0.9999 );\n\t\tvec3 r123 = sqrt( R123 );\n\t\tvec3 Rs = pow2( T121 ) * R23 / ( vec3( 1.0 ) - R123 );\n\t\tvec3 C0 = R12 + Rs;\n\t\tI = C0;\n\t\tvec3 Cm = Rs - T121;\n\t\tfor ( int m = 1; m <= 2; ++ m ) {\n\t\t\tCm *= r123;\n\t\t\tvec3 Sm = 2.0 * evalSensitivity( float( m ) * OPD, float( m ) * phi );\n\t\t\tI += Cm * Sm;\n\t\t}\n\t\treturn max( I, vec3( 0.0 ) );\n\t}\n#endif",bumpmap_pars_fragment:"#ifdef USE_BUMPMAP\n\tuniform sampler2D bumpMap;\n\tuniform float bumpScale;\n\tvec2 dHdxy_fwd() {\n\t\tvec2 dSTdx = dFdx( vBumpMapUv );\n\t\tvec2 dSTdy = dFdy( vBumpMapUv );\n\t\tfloat Hll = bumpScale * texture2D( bumpMap, vBumpMapUv ).x;\n\t\tfloat dBx = bumpScale * texture2D( bumpMap, vBumpMapUv + dSTdx ).x - Hll;\n\t\tfloat dBy = bumpScale * texture2D( bumpMap, vBumpMapUv + dSTdy ).x - Hll;\n\t\treturn vec2( dBx, dBy );\n\t}\n\tvec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy, float faceDirection ) {\n\t\tvec3 vSigmaX = normalize( dFdx( surf_pos.xyz ) );\n\t\tvec3 vSigmaY = normalize( dFdy( surf_pos.xyz ) );\n\t\tvec3 vN = surf_norm;\n\t\tvec3 R1 = cross( vSigmaY, vN );\n\t\tvec3 R2 = cross( vN, vSigmaX );\n\t\tfloat fDet = dot( vSigmaX, R1 ) * faceDirection;\n\t\tvec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 );\n\t\treturn normalize( abs( fDet ) * surf_norm - vGrad );\n\t}\n#endif",clipping_planes_fragment:"#if NUM_CLIPPING_PLANES > 0\n\tvec4 plane;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\n\t\tplane = clippingPlanes[ i ];\n\t\tif ( dot( vClipPosition, plane.xyz ) > plane.w ) discard;\n\t}\n\t#pragma unroll_loop_end\n\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\n\t\tbool clipped = true;\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\n\t\t\tplane = clippingPlanes[ i ];\n\t\t\tclipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t\tif ( clipped ) discard;\n\t#endif\n#endif",clipping_planes_pars_fragment:"#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n\tuniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];\n#endif",clipping_planes_pars_vertex:"#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n#endif",clipping_planes_vertex:"#if NUM_CLIPPING_PLANES > 0\n\tvClipPosition = - mvPosition.xyz;\n#endif",color_fragment:"#if defined( USE_COLOR_ALPHA )\n\tdiffuseColor *= vColor;\n#elif defined( USE_COLOR )\n\tdiffuseColor.rgb *= vColor;\n#endif",color_pars_fragment:"#if defined( USE_COLOR_ALPHA )\n\tvarying vec4 vColor;\n#elif defined( USE_COLOR )\n\tvarying vec3 vColor;\n#endif",color_pars_vertex:"#if defined( USE_COLOR_ALPHA )\n\tvarying vec4 vColor;\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\n\tvarying vec3 vColor;\n#endif",color_vertex:"#if defined( USE_COLOR_ALPHA )\n\tvColor = vec4( 1.0 );\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\n\tvColor = vec3( 1.0 );\n#endif\n#ifdef USE_COLOR\n\tvColor *= color;\n#endif\n#ifdef USE_INSTANCING_COLOR\n\tvColor.xyz *= instanceColor.xyz;\n#endif",common:"#define PI 3.141592653589793\n#define PI2 6.283185307179586\n#define PI_HALF 1.5707963267948966\n#define RECIPROCAL_PI 0.3183098861837907\n#define RECIPROCAL_PI2 0.15915494309189535\n#define EPSILON 1e-6\n#ifndef saturate\n#define saturate( a ) clamp( a, 0.0, 1.0 )\n#endif\n#define whiteComplement( a ) ( 1.0 - saturate( a ) )\nfloat pow2( const in float x ) { return x*x; }\nvec3 pow2( const in vec3 x ) { return x*x; }\nfloat pow3( const in float x ) { return x*x*x; }\nfloat pow4( const in float x ) { float x2 = x*x; return x2*x2; }\nfloat max3( const in vec3 v ) { return max( max( v.x, v.y ), v.z ); }\nfloat average( const in vec3 v ) { return dot( v, vec3( 0.3333333 ) ); }\nhighp float rand( const in vec2 uv ) {\n\tconst highp float a = 12.9898, b = 78.233, c = 43758.5453;\n\thighp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );\n\treturn fract( sin( sn ) * c );\n}\n#ifdef HIGH_PRECISION\n\tfloat precisionSafeLength( vec3 v ) { return length( v ); }\n#else\n\tfloat precisionSafeLength( vec3 v ) {\n\t\tfloat maxComponent = max3( abs( v ) );\n\t\treturn length( v / maxComponent ) * maxComponent;\n\t}\n#endif\nstruct IncidentLight {\n\tvec3 color;\n\tvec3 direction;\n\tbool visible;\n};\nstruct ReflectedLight {\n\tvec3 directDiffuse;\n\tvec3 directSpecular;\n\tvec3 indirectDiffuse;\n\tvec3 indirectSpecular;\n};\n#ifdef USE_ALPHAHASH\n\tvarying vec3 vPosition;\n#endif\nvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n}\nvec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );\n}\nmat3 transposeMat3( const in mat3 m ) {\n\tmat3 tmp;\n\ttmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x );\n\ttmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y );\n\ttmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z );\n\treturn tmp;\n}\nfloat luminance( const in vec3 rgb ) {\n\tconst vec3 weights = vec3( 0.2126729, 0.7151522, 0.0721750 );\n\treturn dot( weights, rgb );\n}\nbool isPerspectiveMatrix( mat4 m ) {\n\treturn m[ 2 ][ 3 ] == - 1.0;\n}\nvec2 equirectUv( in vec3 dir ) {\n\tfloat u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5;\n\tfloat v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\n\treturn vec2( u, v );\n}\nvec3 BRDF_Lambert( const in vec3 diffuseColor ) {\n\treturn RECIPROCAL_PI * diffuseColor;\n}\nvec3 F_Schlick( const in vec3 f0, const in float f90, const in float dotVH ) {\n\tfloat fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\n\treturn f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\n}\nfloat F_Schlick( const in float f0, const in float f90, const in float dotVH ) {\n\tfloat fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\n\treturn f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\n} // validated",cube_uv_reflection_fragment:"#ifdef ENVMAP_TYPE_CUBE_UV\n\t#define cubeUV_minMipLevel 4.0\n\t#define cubeUV_minTileSize 16.0\n\tfloat getFace( vec3 direction ) {\n\t\tvec3 absDirection = abs( direction );\n\t\tfloat face = - 1.0;\n\t\tif ( absDirection.x > absDirection.z ) {\n\t\t\tif ( absDirection.x > absDirection.y )\n\t\t\t\tface = direction.x > 0.0 ? 0.0 : 3.0;\n\t\t\telse\n\t\t\t\tface = direction.y > 0.0 ? 1.0 : 4.0;\n\t\t} else {\n\t\t\tif ( absDirection.z > absDirection.y )\n\t\t\t\tface = direction.z > 0.0 ? 2.0 : 5.0;\n\t\t\telse\n\t\t\t\tface = direction.y > 0.0 ? 1.0 : 4.0;\n\t\t}\n\t\treturn face;\n\t}\n\tvec2 getUV( vec3 direction, float face ) {\n\t\tvec2 uv;\n\t\tif ( face == 0.0 ) {\n\t\t\tuv = vec2( direction.z, direction.y ) / abs( direction.x );\n\t\t} else if ( face == 1.0 ) {\n\t\t\tuv = vec2( - direction.x, - direction.z ) / abs( direction.y );\n\t\t} else if ( face == 2.0 ) {\n\t\t\tuv = vec2( - direction.x, direction.y ) / abs( direction.z );\n\t\t} else if ( face == 3.0 ) {\n\t\t\tuv = vec2( - direction.z, direction.y ) / abs( direction.x );\n\t\t} else if ( face == 4.0 ) {\n\t\t\tuv = vec2( - direction.x, direction.z ) / abs( direction.y );\n\t\t} else {\n\t\t\tuv = vec2( direction.x, direction.y ) / abs( direction.z );\n\t\t}\n\t\treturn 0.5 * ( uv + 1.0 );\n\t}\n\tvec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) {\n\t\tfloat face = getFace( direction );\n\t\tfloat filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 );\n\t\tmipInt = max( mipInt, cubeUV_minMipLevel );\n\t\tfloat faceSize = exp2( mipInt );\n\t\thighp vec2 uv = getUV( direction, face ) * ( faceSize - 2.0 ) + 1.0;\n\t\tif ( face > 2.0 ) {\n\t\t\tuv.y += faceSize;\n\t\t\tface -= 3.0;\n\t\t}\n\t\tuv.x += face * faceSize;\n\t\tuv.x += filterInt * 3.0 * cubeUV_minTileSize;\n\t\tuv.y += 4.0 * ( exp2( CUBEUV_MAX_MIP ) - faceSize );\n\t\tuv.x *= CUBEUV_TEXEL_WIDTH;\n\t\tuv.y *= CUBEUV_TEXEL_HEIGHT;\n\t\t#ifdef texture2DGradEXT\n\t\t\treturn texture2DGradEXT( envMap, uv, vec2( 0.0 ), vec2( 0.0 ) ).rgb;\n\t\t#else\n\t\t\treturn texture2D( envMap, uv ).rgb;\n\t\t#endif\n\t}\n\t#define cubeUV_r0 1.0\n\t#define cubeUV_v0 0.339\n\t#define cubeUV_m0 - 2.0\n\t#define cubeUV_r1 0.8\n\t#define cubeUV_v1 0.276\n\t#define cubeUV_m1 - 1.0\n\t#define cubeUV_r4 0.4\n\t#define cubeUV_v4 0.046\n\t#define cubeUV_m4 2.0\n\t#define cubeUV_r5 0.305\n\t#define cubeUV_v5 0.016\n\t#define cubeUV_m5 3.0\n\t#define cubeUV_r6 0.21\n\t#define cubeUV_v6 0.0038\n\t#define cubeUV_m6 4.0\n\tfloat roughnessToMip( float roughness ) {\n\t\tfloat mip = 0.0;\n\t\tif ( roughness >= cubeUV_r1 ) {\n\t\t\tmip = ( cubeUV_r0 - roughness ) * ( cubeUV_m1 - cubeUV_m0 ) / ( cubeUV_r0 - cubeUV_r1 ) + cubeUV_m0;\n\t\t} else if ( roughness >= cubeUV_r4 ) {\n\t\t\tmip = ( cubeUV_r1 - roughness ) * ( cubeUV_m4 - cubeUV_m1 ) / ( cubeUV_r1 - cubeUV_r4 ) + cubeUV_m1;\n\t\t} else if ( roughness >= cubeUV_r5 ) {\n\t\t\tmip = ( cubeUV_r4 - roughness ) * ( cubeUV_m5 - cubeUV_m4 ) / ( cubeUV_r4 - cubeUV_r5 ) + cubeUV_m4;\n\t\t} else if ( roughness >= cubeUV_r6 ) {\n\t\t\tmip = ( cubeUV_r5 - roughness ) * ( cubeUV_m6 - cubeUV_m5 ) / ( cubeUV_r5 - cubeUV_r6 ) + cubeUV_m5;\n\t\t} else {\n\t\t\tmip = - 2.0 * log2( 1.16 * roughness );\t\t}\n\t\treturn mip;\n\t}\n\tvec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) {\n\t\tfloat mip = clamp( roughnessToMip( roughness ), cubeUV_m0, CUBEUV_MAX_MIP );\n\t\tfloat mipF = fract( mip );\n\t\tfloat mipInt = floor( mip );\n\t\tvec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt );\n\t\tif ( mipF == 0.0 ) {\n\t\t\treturn vec4( color0, 1.0 );\n\t\t} else {\n\t\t\tvec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 );\n\t\t\treturn vec4( mix( color0, color1, mipF ), 1.0 );\n\t\t}\n\t}\n#endif",defaultnormal_vertex:"vec3 transformedNormal = objectNormal;\n#ifdef USE_INSTANCING\n\tmat3 m = mat3( instanceMatrix );\n\ttransformedNormal /= vec3( dot( m[ 0 ], m[ 0 ] ), dot( m[ 1 ], m[ 1 ] ), dot( m[ 2 ], m[ 2 ] ) );\n\ttransformedNormal = m * transformedNormal;\n#endif\ntransformedNormal = normalMatrix * transformedNormal;\n#ifdef FLIP_SIDED\n\ttransformedNormal = - transformedNormal;\n#endif\n#ifdef USE_TANGENT\n\tvec3 transformedTangent = ( modelViewMatrix * vec4( objectTangent, 0.0 ) ).xyz;\n\t#ifdef FLIP_SIDED\n\t\ttransformedTangent = - transformedTangent;\n\t#endif\n#endif",displacementmap_pars_vertex:"#ifdef USE_DISPLACEMENTMAP\n\tuniform sampler2D displacementMap;\n\tuniform float displacementScale;\n\tuniform float displacementBias;\n#endif",displacementmap_vertex:"#ifdef USE_DISPLACEMENTMAP\n\ttransformed += normalize( objectNormal ) * ( texture2D( displacementMap, vDisplacementMapUv ).x * displacementScale + displacementBias );\n#endif",emissivemap_fragment:"#ifdef USE_EMISSIVEMAP\n\tvec4 emissiveColor = texture2D( emissiveMap, vEmissiveMapUv );\n\ttotalEmissiveRadiance *= emissiveColor.rgb;\n#endif",emissivemap_pars_fragment:"#ifdef USE_EMISSIVEMAP\n\tuniform sampler2D emissiveMap;\n#endif",colorspace_fragment:"gl_FragColor = linearToOutputTexel( gl_FragColor );",colorspace_pars_fragment:"\nconst mat3 LINEAR_SRGB_TO_LINEAR_DISPLAY_P3 = mat3(\n\tvec3( 0.8224621, 0.177538, 0.0 ),\n\tvec3( 0.0331941, 0.9668058, 0.0 ),\n\tvec3( 0.0170827, 0.0723974, 0.9105199 )\n);\nconst mat3 LINEAR_DISPLAY_P3_TO_LINEAR_SRGB = mat3(\n\tvec3( 1.2249401, - 0.2249404, 0.0 ),\n\tvec3( - 0.0420569, 1.0420571, 0.0 ),\n\tvec3( - 0.0196376, - 0.0786361, 1.0982735 )\n);\nvec4 LinearSRGBToLinearDisplayP3( in vec4 value ) {\n\treturn vec4( value.rgb * LINEAR_SRGB_TO_LINEAR_DISPLAY_P3, value.a );\n}\nvec4 LinearDisplayP3ToLinearSRGB( in vec4 value ) {\n\treturn vec4( value.rgb * LINEAR_DISPLAY_P3_TO_LINEAR_SRGB, value.a );\n}\nvec4 LinearTransferOETF( in vec4 value ) {\n\treturn value;\n}\nvec4 sRGBTransferOETF( in vec4 value ) {\n\treturn vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a );\n}\nvec4 LinearToLinear( in vec4 value ) {\n\treturn value;\n}\nvec4 LinearTosRGB( in vec4 value ) {\n\treturn sRGBTransferOETF( value );\n}",envmap_fragment:"#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvec3 cameraToFrag;\n\t\tif ( isOrthographic ) {\n\t\t\tcameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n\t\t} else {\n\t\t\tcameraToFrag = normalize( vWorldPosition - cameraPosition );\n\t\t}\n\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvec3 reflectVec = reflect( cameraToFrag, worldNormal );\n\t\t#else\n\t\t\tvec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio );\n\t\t#endif\n\t#else\n\t\tvec3 reflectVec = vReflect;\n\t#endif\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tvec4 envColor = textureCube( envMap, vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\n\t#else\n\t\tvec4 envColor = vec4( 0.0 );\n\t#endif\n\t#ifdef ENVMAP_BLENDING_MULTIPLY\n\t\toutgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_MIX )\n\t\toutgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_ADD )\n\t\toutgoingLight += envColor.xyz * specularStrength * reflectivity;\n\t#endif\n#endif",envmap_common_pars_fragment:"#ifdef USE_ENVMAP\n\tuniform float envMapIntensity;\n\tuniform float flipEnvMap;\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tuniform samplerCube envMap;\n\t#else\n\t\tuniform sampler2D envMap;\n\t#endif\n\t\n#endif",envmap_pars_fragment:"#ifdef USE_ENVMAP\n\tuniform float reflectivity;\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\tvarying vec3 vWorldPosition;\n\t\tuniform float refractionRatio;\n\t#else\n\t\tvarying vec3 vReflect;\n\t#endif\n#endif",envmap_pars_vertex:"#ifdef USE_ENVMAP\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\t\n\t\tvarying vec3 vWorldPosition;\n\t#else\n\t\tvarying vec3 vReflect;\n\t\tuniform float refractionRatio;\n\t#endif\n#endif",envmap_physical_pars_fragment:"#ifdef USE_ENVMAP\n\tvec3 getIBLIrradiance( const in vec3 normal ) {\n\t\t#ifdef ENVMAP_TYPE_CUBE_UV\n\t\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, worldNormal, 1.0 );\n\t\t\treturn PI * envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n\tvec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) {\n\t\t#ifdef ENVMAP_TYPE_CUBE_UV\n\t\t\tvec3 reflectVec = reflect( - viewDir, normal );\n\t\t\treflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );\n\t\t\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, reflectVec, roughness );\n\t\t\treturn envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n\t#ifdef USE_ANISOTROPY\n\t\tvec3 getIBLAnisotropyRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in vec3 bitangent, const in float anisotropy ) {\n\t\t\t#ifdef ENVMAP_TYPE_CUBE_UV\n\t\t\t\tvec3 bentNormal = cross( bitangent, viewDir );\n\t\t\t\tbentNormal = normalize( cross( bentNormal, bitangent ) );\n\t\t\t\tbentNormal = normalize( mix( bentNormal, normal, pow2( pow2( 1.0 - anisotropy * ( 1.0 - roughness ) ) ) ) );\n\t\t\t\treturn getIBLRadiance( viewDir, bentNormal, roughness );\n\t\t\t#else\n\t\t\t\treturn vec3( 0.0 );\n\t\t\t#endif\n\t\t}\n\t#endif\n#endif",envmap_vertex:"#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvWorldPosition = worldPosition.xyz;\n\t#else\n\t\tvec3 cameraToVertex;\n\t\tif ( isOrthographic ) {\n\t\t\tcameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n\t\t} else {\n\t\t\tcameraToVertex = normalize( worldPosition.xyz - cameraPosition );\n\t\t}\n\t\tvec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvReflect = reflect( cameraToVertex, worldNormal );\n\t\t#else\n\t\t\tvReflect = refract( cameraToVertex, worldNormal, refractionRatio );\n\t\t#endif\n\t#endif\n#endif",fog_vertex:"#ifdef USE_FOG\n\tvFogDepth = - mvPosition.z;\n#endif",fog_pars_vertex:"#ifdef USE_FOG\n\tvarying float vFogDepth;\n#endif",fog_fragment:"#ifdef USE_FOG\n\t#ifdef FOG_EXP2\n\t\tfloat fogFactor = 1.0 - exp( - fogDensity * fogDensity * vFogDepth * vFogDepth );\n\t#else\n\t\tfloat fogFactor = smoothstep( fogNear, fogFar, vFogDepth );\n\t#endif\n\tgl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\n#endif",fog_pars_fragment:"#ifdef USE_FOG\n\tuniform vec3 fogColor;\n\tvarying float vFogDepth;\n\t#ifdef FOG_EXP2\n\t\tuniform float fogDensity;\n\t#else\n\t\tuniform float fogNear;\n\t\tuniform float fogFar;\n\t#endif\n#endif",gradientmap_pars_fragment:"#ifdef USE_GRADIENTMAP\n\tuniform sampler2D gradientMap;\n#endif\nvec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {\n\tfloat dotNL = dot( normal, lightDirection );\n\tvec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 );\n\t#ifdef USE_GRADIENTMAP\n\t\treturn vec3( texture2D( gradientMap, coord ).r );\n\t#else\n\t\tvec2 fw = fwidth( coord ) * 0.5;\n\t\treturn mix( vec3( 0.7 ), vec3( 1.0 ), smoothstep( 0.7 - fw.x, 0.7 + fw.x, coord.x ) );\n\t#endif\n}",lightmap_fragment:"#ifdef USE_LIGHTMAP\n\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\n\treflectedLight.indirectDiffuse += lightMapIrradiance;\n#endif",lightmap_pars_fragment:"#ifdef USE_LIGHTMAP\n\tuniform sampler2D lightMap;\n\tuniform float lightMapIntensity;\n#endif",lights_lambert_fragment:"LambertMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularStrength = specularStrength;",lights_lambert_pars_fragment:"varying vec3 vViewPosition;\nstruct LambertMaterial {\n\tvec3 diffuseColor;\n\tfloat specularStrength;\n};\nvoid RE_Direct_Lambert( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometryNormal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Lambert( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_Lambert\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Lambert",lights_pars_begin:"uniform bool receiveShadow;\nuniform vec3 ambientLightColor;\n#if defined( USE_LIGHT_PROBES )\n\tuniform vec3 lightProbe[ 9 ];\n#endif\nvec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {\n\tfloat x = normal.x, y = normal.y, z = normal.z;\n\tvec3 result = shCoefficients[ 0 ] * 0.886227;\n\tresult += shCoefficients[ 1 ] * 2.0 * 0.511664 * y;\n\tresult += shCoefficients[ 2 ] * 2.0 * 0.511664 * z;\n\tresult += shCoefficients[ 3 ] * 2.0 * 0.511664 * x;\n\tresult += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y;\n\tresult += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z;\n\tresult += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 );\n\tresult += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z;\n\tresult += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y );\n\treturn result;\n}\nvec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) {\n\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\tvec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe );\n\treturn irradiance;\n}\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\n\tvec3 irradiance = ambientLightColor;\n\treturn irradiance;\n}\nfloat getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {\n\t#if defined ( LEGACY_LIGHTS )\n\t\tif ( cutoffDistance > 0.0 && decayExponent > 0.0 ) {\n\t\t\treturn pow( saturate( - lightDistance / cutoffDistance + 1.0 ), decayExponent );\n\t\t}\n\t\treturn 1.0;\n\t#else\n\t\tfloat distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\n\t\tif ( cutoffDistance > 0.0 ) {\n\t\t\tdistanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\n\t\t}\n\t\treturn distanceFalloff;\n\t#endif\n}\nfloat getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) {\n\treturn smoothstep( coneCosine, penumbraCosine, angleCosine );\n}\n#if NUM_DIR_LIGHTS > 0\n\tstruct DirectionalLight {\n\t\tvec3 direction;\n\t\tvec3 color;\n\t};\n\tuniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];\n\tvoid getDirectionalLightInfo( const in DirectionalLight directionalLight, out IncidentLight light ) {\n\t\tlight.color = directionalLight.color;\n\t\tlight.direction = directionalLight.direction;\n\t\tlight.visible = true;\n\t}\n#endif\n#if NUM_POINT_LIGHTS > 0\n\tstruct PointLight {\n\t\tvec3 position;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t};\n\tuniform PointLight pointLights[ NUM_POINT_LIGHTS ];\n\tvoid getPointLightInfo( const in PointLight pointLight, const in vec3 geometryPosition, out IncidentLight light ) {\n\t\tvec3 lVector = pointLight.position - geometryPosition;\n\t\tlight.direction = normalize( lVector );\n\t\tfloat lightDistance = length( lVector );\n\t\tlight.color = pointLight.color;\n\t\tlight.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay );\n\t\tlight.visible = ( light.color != vec3( 0.0 ) );\n\t}\n#endif\n#if NUM_SPOT_LIGHTS > 0\n\tstruct SpotLight {\n\t\tvec3 position;\n\t\tvec3 direction;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t\tfloat coneCos;\n\t\tfloat penumbraCos;\n\t};\n\tuniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];\n\tvoid getSpotLightInfo( const in SpotLight spotLight, const in vec3 geometryPosition, out IncidentLight light ) {\n\t\tvec3 lVector = spotLight.position - geometryPosition;\n\t\tlight.direction = normalize( lVector );\n\t\tfloat angleCos = dot( light.direction, spotLight.direction );\n\t\tfloat spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos );\n\t\tif ( spotAttenuation > 0.0 ) {\n\t\t\tfloat lightDistance = length( lVector );\n\t\t\tlight.color = spotLight.color * spotAttenuation;\n\t\t\tlight.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay );\n\t\t\tlight.visible = ( light.color != vec3( 0.0 ) );\n\t\t} else {\n\t\t\tlight.color = vec3( 0.0 );\n\t\t\tlight.visible = false;\n\t\t}\n\t}\n#endif\n#if NUM_RECT_AREA_LIGHTS > 0\n\tstruct RectAreaLight {\n\t\tvec3 color;\n\t\tvec3 position;\n\t\tvec3 halfWidth;\n\t\tvec3 halfHeight;\n\t};\n\tuniform sampler2D ltc_1;\tuniform sampler2D ltc_2;\n\tuniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];\n#endif\n#if NUM_HEMI_LIGHTS > 0\n\tstruct HemisphereLight {\n\t\tvec3 direction;\n\t\tvec3 skyColor;\n\t\tvec3 groundColor;\n\t};\n\tuniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];\n\tvec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) {\n\t\tfloat dotNL = dot( normal, hemiLight.direction );\n\t\tfloat hemiDiffuseWeight = 0.5 * dotNL + 0.5;\n\t\tvec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\n\t\treturn irradiance;\n\t}\n#endif",lights_toon_fragment:"ToonMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;",lights_toon_pars_fragment:"varying vec3 vViewPosition;\nstruct ToonMaterial {\n\tvec3 diffuseColor;\n};\nvoid RE_Direct_Toon( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n\tvec3 irradiance = getGradientIrradiance( geometryNormal, directLight.direction ) * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_Toon\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Toon",lights_phong_fragment:"BlinnPhongMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularColor = specular;\nmaterial.specularShininess = shininess;\nmaterial.specularStrength = specularStrength;",lights_phong_pars_fragment:"varying vec3 vViewPosition;\nstruct BlinnPhongMaterial {\n\tvec3 diffuseColor;\n\tvec3 specularColor;\n\tfloat specularShininess;\n\tfloat specularStrength;\n};\nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometryNormal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n\treflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometryViewDir, geometryNormal, material.specularColor, material.specularShininess ) * material.specularStrength;\n}\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_BlinnPhong\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_BlinnPhong",lights_physical_fragment:"PhysicalMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\nvec3 dxy = max( abs( dFdx( nonPerturbedNormal ) ), abs( dFdy( nonPerturbedNormal ) ) );\nfloat geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );\nmaterial.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness;\nmaterial.roughness = min( material.roughness, 1.0 );\n#ifdef IOR\n\tmaterial.ior = ior;\n\t#ifdef USE_SPECULAR\n\t\tfloat specularIntensityFactor = specularIntensity;\n\t\tvec3 specularColorFactor = specularColor;\n\t\t#ifdef USE_SPECULAR_COLORMAP\n\t\t\tspecularColorFactor *= texture2D( specularColorMap, vSpecularColorMapUv ).rgb;\n\t\t#endif\n\t\t#ifdef USE_SPECULAR_INTENSITYMAP\n\t\t\tspecularIntensityFactor *= texture2D( specularIntensityMap, vSpecularIntensityMapUv ).a;\n\t\t#endif\n\t\tmaterial.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor );\n\t#else\n\t\tfloat specularIntensityFactor = 1.0;\n\t\tvec3 specularColorFactor = vec3( 1.0 );\n\t\tmaterial.specularF90 = 1.0;\n\t#endif\n\tmaterial.specularColor = mix( min( pow2( ( material.ior - 1.0 ) / ( material.ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor );\n#else\n\tmaterial.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor );\n\tmaterial.specularF90 = 1.0;\n#endif\n#ifdef USE_CLEARCOAT\n\tmaterial.clearcoat = clearcoat;\n\tmaterial.clearcoatRoughness = clearcoatRoughness;\n\tmaterial.clearcoatF0 = vec3( 0.04 );\n\tmaterial.clearcoatF90 = 1.0;\n\t#ifdef USE_CLEARCOATMAP\n\t\tmaterial.clearcoat *= texture2D( clearcoatMap, vClearcoatMapUv ).x;\n\t#endif\n\t#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\t\tmaterial.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vClearcoatRoughnessMapUv ).y;\n\t#endif\n\tmaterial.clearcoat = saturate( material.clearcoat );\tmaterial.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 );\n\tmaterial.clearcoatRoughness += geometryRoughness;\n\tmaterial.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 );\n#endif\n#ifdef USE_IRIDESCENCE\n\tmaterial.iridescence = iridescence;\n\tmaterial.iridescenceIOR = iridescenceIOR;\n\t#ifdef USE_IRIDESCENCEMAP\n\t\tmaterial.iridescence *= texture2D( iridescenceMap, vIridescenceMapUv ).r;\n\t#endif\n\t#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\t\tmaterial.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vIridescenceThicknessMapUv ).g + iridescenceThicknessMinimum;\n\t#else\n\t\tmaterial.iridescenceThickness = iridescenceThicknessMaximum;\n\t#endif\n#endif\n#ifdef USE_SHEEN\n\tmaterial.sheenColor = sheenColor;\n\t#ifdef USE_SHEEN_COLORMAP\n\t\tmaterial.sheenColor *= texture2D( sheenColorMap, vSheenColorMapUv ).rgb;\n\t#endif\n\tmaterial.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 );\n\t#ifdef USE_SHEEN_ROUGHNESSMAP\n\t\tmaterial.sheenRoughness *= texture2D( sheenRoughnessMap, vSheenRoughnessMapUv ).a;\n\t#endif\n#endif\n#ifdef USE_ANISOTROPY\n\t#ifdef USE_ANISOTROPYMAP\n\t\tmat2 anisotropyMat = mat2( anisotropyVector.x, anisotropyVector.y, - anisotropyVector.y, anisotropyVector.x );\n\t\tvec3 anisotropyPolar = texture2D( anisotropyMap, vAnisotropyMapUv ).rgb;\n\t\tvec2 anisotropyV = anisotropyMat * normalize( 2.0 * anisotropyPolar.rg - vec2( 1.0 ) ) * anisotropyPolar.b;\n\t#else\n\t\tvec2 anisotropyV = anisotropyVector;\n\t#endif\n\tmaterial.anisotropy = length( anisotropyV );\n\tanisotropyV /= material.anisotropy;\n\tmaterial.anisotropy = saturate( material.anisotropy );\n\tmaterial.alphaT = mix( pow2( material.roughness ), 1.0, pow2( material.anisotropy ) );\n\tmaterial.anisotropyT = tbn[ 0 ] * anisotropyV.x - tbn[ 1 ] * anisotropyV.y;\n\tmaterial.anisotropyB = tbn[ 1 ] * anisotropyV.x + tbn[ 0 ] * anisotropyV.y;\n#endif",lights_physical_pars_fragment:"struct PhysicalMaterial {\n\tvec3 diffuseColor;\n\tfloat roughness;\n\tvec3 specularColor;\n\tfloat specularF90;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat clearcoat;\n\t\tfloat clearcoatRoughness;\n\t\tvec3 clearcoatF0;\n\t\tfloat clearcoatF90;\n\t#endif\n\t#ifdef USE_IRIDESCENCE\n\t\tfloat iridescence;\n\t\tfloat iridescenceIOR;\n\t\tfloat iridescenceThickness;\n\t\tvec3 iridescenceFresnel;\n\t\tvec3 iridescenceF0;\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tvec3 sheenColor;\n\t\tfloat sheenRoughness;\n\t#endif\n\t#ifdef IOR\n\t\tfloat ior;\n\t#endif\n\t#ifdef USE_TRANSMISSION\n\t\tfloat transmission;\n\t\tfloat transmissionAlpha;\n\t\tfloat thickness;\n\t\tfloat attenuationDistance;\n\t\tvec3 attenuationColor;\n\t#endif\n\t#ifdef USE_ANISOTROPY\n\t\tfloat anisotropy;\n\t\tfloat alphaT;\n\t\tvec3 anisotropyT;\n\t\tvec3 anisotropyB;\n\t#endif\n};\nvec3 clearcoatSpecularDirect = vec3( 0.0 );\nvec3 clearcoatSpecularIndirect = vec3( 0.0 );\nvec3 sheenSpecularDirect = vec3( 0.0 );\nvec3 sheenSpecularIndirect = vec3(0.0 );\nvec3 Schlick_to_F0( const in vec3 f, const in float f90, const in float dotVH ) {\n float x = clamp( 1.0 - dotVH, 0.0, 1.0 );\n float x2 = x * x;\n float x5 = clamp( x * x2 * x2, 0.0, 0.9999 );\n return ( f - vec3( f90 ) * x5 ) / ( 1.0 - x5 );\n}\nfloat V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {\n\tfloat a2 = pow2( alpha );\n\tfloat gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\n\tfloat gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\n\treturn 0.5 / max( gv + gl, EPSILON );\n}\nfloat D_GGX( const in float alpha, const in float dotNH ) {\n\tfloat a2 = pow2( alpha );\n\tfloat denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;\n\treturn RECIPROCAL_PI * a2 / pow2( denom );\n}\n#ifdef USE_ANISOTROPY\n\tfloat V_GGX_SmithCorrelated_Anisotropic( const in float alphaT, const in float alphaB, const in float dotTV, const in float dotBV, const in float dotTL, const in float dotBL, const in float dotNV, const in float dotNL ) {\n\t\tfloat gv = dotNL * length( vec3( alphaT * dotTV, alphaB * dotBV, dotNV ) );\n\t\tfloat gl = dotNV * length( vec3( alphaT * dotTL, alphaB * dotBL, dotNL ) );\n\t\tfloat v = 0.5 / ( gv + gl );\n\t\treturn saturate(v);\n\t}\n\tfloat D_GGX_Anisotropic( const in float alphaT, const in float alphaB, const in float dotNH, const in float dotTH, const in float dotBH ) {\n\t\tfloat a2 = alphaT * alphaB;\n\t\thighp vec3 v = vec3( alphaB * dotTH, alphaT * dotBH, a2 * dotNH );\n\t\thighp float v2 = dot( v, v );\n\t\tfloat w2 = a2 / v2;\n\t\treturn RECIPROCAL_PI * a2 * pow2 ( w2 );\n\t}\n#endif\n#ifdef USE_CLEARCOAT\n\tvec3 BRDF_GGX_Clearcoat( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material) {\n\t\tvec3 f0 = material.clearcoatF0;\n\t\tfloat f90 = material.clearcoatF90;\n\t\tfloat roughness = material.clearcoatRoughness;\n\t\tfloat alpha = pow2( roughness );\n\t\tvec3 halfDir = normalize( lightDir + viewDir );\n\t\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\t\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\t\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\t\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\t\tvec3 F = F_Schlick( f0, f90, dotVH );\n\t\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\t\tfloat D = D_GGX( alpha, dotNH );\n\t\treturn F * ( V * D );\n\t}\n#endif\nvec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material ) {\n\tvec3 f0 = material.specularColor;\n\tfloat f90 = material.specularF90;\n\tfloat roughness = material.roughness;\n\tfloat alpha = pow2( roughness );\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\tvec3 F = F_Schlick( f0, f90, dotVH );\n\t#ifdef USE_IRIDESCENCE\n\t\tF = mix( F, material.iridescenceFresnel, material.iridescence );\n\t#endif\n\t#ifdef USE_ANISOTROPY\n\t\tfloat dotTL = dot( material.anisotropyT, lightDir );\n\t\tfloat dotTV = dot( material.anisotropyT, viewDir );\n\t\tfloat dotTH = dot( material.anisotropyT, halfDir );\n\t\tfloat dotBL = dot( material.anisotropyB, lightDir );\n\t\tfloat dotBV = dot( material.anisotropyB, viewDir );\n\t\tfloat dotBH = dot( material.anisotropyB, halfDir );\n\t\tfloat V = V_GGX_SmithCorrelated_Anisotropic( material.alphaT, alpha, dotTV, dotBV, dotTL, dotBL, dotNV, dotNL );\n\t\tfloat D = D_GGX_Anisotropic( material.alphaT, alpha, dotNH, dotTH, dotBH );\n\t#else\n\t\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\t\tfloat D = D_GGX( alpha, dotNH );\n\t#endif\n\treturn F * ( V * D );\n}\nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {\n\tconst float LUT_SIZE = 64.0;\n\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\n\tconst float LUT_BIAS = 0.5 / LUT_SIZE;\n\tfloat dotNV = saturate( dot( N, V ) );\n\tvec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );\n\tuv = uv * LUT_SCALE + LUT_BIAS;\n\treturn uv;\n}\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\n\tfloat l = length( f );\n\treturn max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\n}\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\n\tfloat x = dot( v1, v2 );\n\tfloat y = abs( x );\n\tfloat a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;\n\tfloat b = 3.4175940 + ( 4.1616724 + y ) * y;\n\tfloat v = a / b;\n\tfloat theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\n\treturn cross( v1, v2 ) * theta_sintheta;\n}\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {\n\tvec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];\n\tvec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];\n\tvec3 lightNormal = cross( v1, v2 );\n\tif( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );\n\tvec3 T1, T2;\n\tT1 = normalize( V - N * dot( V, N ) );\n\tT2 = - cross( N, T1 );\n\tmat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\n\tvec3 coords[ 4 ];\n\tcoords[ 0 ] = mat * ( rectCoords[ 0 ] - P );\n\tcoords[ 1 ] = mat * ( rectCoords[ 1 ] - P );\n\tcoords[ 2 ] = mat * ( rectCoords[ 2 ] - P );\n\tcoords[ 3 ] = mat * ( rectCoords[ 3 ] - P );\n\tcoords[ 0 ] = normalize( coords[ 0 ] );\n\tcoords[ 1 ] = normalize( coords[ 1 ] );\n\tcoords[ 2 ] = normalize( coords[ 2 ] );\n\tcoords[ 3 ] = normalize( coords[ 3 ] );\n\tvec3 vectorFormFactor = vec3( 0.0 );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\n\tfloat result = LTC_ClippedSphereFormFactor( vectorFormFactor );\n\treturn vec3( result );\n}\n#if defined( USE_SHEEN )\nfloat D_Charlie( float roughness, float dotNH ) {\n\tfloat alpha = pow2( roughness );\n\tfloat invAlpha = 1.0 / alpha;\n\tfloat cos2h = dotNH * dotNH;\n\tfloat sin2h = max( 1.0 - cos2h, 0.0078125 );\n\treturn ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI );\n}\nfloat V_Neubelt( float dotNV, float dotNL ) {\n\treturn saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) );\n}\nvec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) {\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat D = D_Charlie( sheenRoughness, dotNH );\n\tfloat V = V_Neubelt( dotNV, dotNL );\n\treturn sheenColor * ( D * V );\n}\n#endif\nfloat IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat r2 = roughness * roughness;\n\tfloat a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95;\n\tfloat b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72;\n\tfloat DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) );\n\treturn saturate( DG * RECIPROCAL_PI );\n}\nvec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tconst vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\n\tconst vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\n\tvec4 r = roughness * c0 + c1;\n\tfloat a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\n\tvec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw;\n\treturn fab;\n}\nvec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) {\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\treturn specularColor * fab.x + specularF90 * fab.y;\n}\n#ifdef USE_IRIDESCENCE\nvoid computeMultiscatteringIridescence( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float iridescence, const in vec3 iridescenceF0, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#else\nvoid computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#endif\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\t#ifdef USE_IRIDESCENCE\n\t\tvec3 Fr = mix( specularColor, iridescenceF0, iridescence );\n\t#else\n\t\tvec3 Fr = specularColor;\n\t#endif\n\tvec3 FssEss = Fr * fab.x + specularF90 * fab.y;\n\tfloat Ess = fab.x + fab.y;\n\tfloat Ems = 1.0 - Ess;\n\tvec3 Favg = Fr + ( 1.0 - Fr ) * 0.047619;\tvec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg );\n\tsingleScatter += FssEss;\n\tmultiScatter += Fms * Ems;\n}\n#if NUM_RECT_AREA_LIGHTS > 0\n\tvoid RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\t\tvec3 normal = geometryNormal;\n\t\tvec3 viewDir = geometryViewDir;\n\t\tvec3 position = geometryPosition;\n\t\tvec3 lightPos = rectAreaLight.position;\n\t\tvec3 halfWidth = rectAreaLight.halfWidth;\n\t\tvec3 halfHeight = rectAreaLight.halfHeight;\n\t\tvec3 lightColor = rectAreaLight.color;\n\t\tfloat roughness = material.roughness;\n\t\tvec3 rectCoords[ 4 ];\n\t\trectCoords[ 0 ] = lightPos + halfWidth - halfHeight;\t\trectCoords[ 1 ] = lightPos - halfWidth - halfHeight;\n\t\trectCoords[ 2 ] = lightPos - halfWidth + halfHeight;\n\t\trectCoords[ 3 ] = lightPos + halfWidth + halfHeight;\n\t\tvec2 uv = LTC_Uv( normal, viewDir, roughness );\n\t\tvec4 t1 = texture2D( ltc_1, uv );\n\t\tvec4 t2 = texture2D( ltc_2, uv );\n\t\tmat3 mInv = mat3(\n\t\t\tvec3( t1.x, 0, t1.y ),\n\t\t\tvec3( 0, 1, 0 ),\n\t\t\tvec3( t1.z, 0, t1.w )\n\t\t);\n\t\tvec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );\n\t\treflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\n\t\treflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );\n\t}\n#endif\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometryNormal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNLcc = saturate( dot( geometryClearcoatNormal, directLight.direction ) );\n\t\tvec3 ccIrradiance = dotNLcc * directLight.color;\n\t\tclearcoatSpecularDirect += ccIrradiance * BRDF_GGX_Clearcoat( directLight.direction, geometryViewDir, geometryClearcoatNormal, material );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecularDirect += irradiance * BRDF_Sheen( directLight.direction, geometryViewDir, geometryNormal, material.sheenColor, material.sheenRoughness );\n\t#endif\n\treflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometryViewDir, geometryNormal, material );\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatSpecularIndirect += clearcoatRadiance * EnvironmentBRDF( geometryClearcoatNormal, geometryViewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecularIndirect += irradiance * material.sheenColor * IBLSheenBRDF( geometryNormal, geometryViewDir, material.sheenRoughness );\n\t#endif\n\tvec3 singleScattering = vec3( 0.0 );\n\tvec3 multiScattering = vec3( 0.0 );\n\tvec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;\n\t#ifdef USE_IRIDESCENCE\n\t\tcomputeMultiscatteringIridescence( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness, singleScattering, multiScattering );\n\t#else\n\t\tcomputeMultiscattering( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering );\n\t#endif\n\tvec3 totalScattering = singleScattering + multiScattering;\n\tvec3 diffuse = material.diffuseColor * ( 1.0 - max( max( totalScattering.r, totalScattering.g ), totalScattering.b ) );\n\treflectedLight.indirectSpecular += radiance * singleScattering;\n\treflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;\n\treflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;\n}\n#define RE_Direct\t\t\t\tRE_Direct_Physical\n#define RE_Direct_RectArea\t\tRE_Direct_RectArea_Physical\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Physical\n#define RE_IndirectSpecular\t\tRE_IndirectSpecular_Physical\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\n\treturn saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\n}",lights_fragment_begin:"\nvec3 geometryPosition = - vViewPosition;\nvec3 geometryNormal = normal;\nvec3 geometryViewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );\nvec3 geometryClearcoatNormal = vec3( 0.0 );\n#ifdef USE_CLEARCOAT\n\tgeometryClearcoatNormal = clearcoatNormal;\n#endif\n#ifdef USE_IRIDESCENCE\n\tfloat dotNVi = saturate( dot( normal, geometryViewDir ) );\n\tif ( material.iridescenceThickness == 0.0 ) {\n\t\tmaterial.iridescence = 0.0;\n\t} else {\n\t\tmaterial.iridescence = saturate( material.iridescence );\n\t}\n\tif ( material.iridescence > 0.0 ) {\n\t\tmaterial.iridescenceFresnel = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.specularColor );\n\t\tmaterial.iridescenceF0 = Schlick_to_F0( material.iridescenceFresnel, 1.0, dotNVi );\n\t}\n#endif\nIncidentLight directLight;\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\n\tPointLight pointLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tpointLight = pointLights[ i ];\n\t\tgetPointLightInfo( pointLight, geometryPosition, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS )\n\t\tpointLightShadow = pointLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\n\tSpotLight spotLight;\n\tvec4 spotColor;\n\tvec3 spotLightCoord;\n\tbool inSpotLightMap;\n\t#if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tspotLight = spotLights[ i ];\n\t\tgetSpotLightInfo( spotLight, geometryPosition, directLight );\n\t\t#if ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\n\t\t#define SPOT_LIGHT_MAP_INDEX UNROLLED_LOOP_INDEX\n\t\t#elif ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\t#define SPOT_LIGHT_MAP_INDEX NUM_SPOT_LIGHT_MAPS\n\t\t#else\n\t\t#define SPOT_LIGHT_MAP_INDEX ( UNROLLED_LOOP_INDEX - NUM_SPOT_LIGHT_SHADOWS + NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\n\t\t#endif\n\t\t#if ( SPOT_LIGHT_MAP_INDEX < NUM_SPOT_LIGHT_MAPS )\n\t\t\tspotLightCoord = vSpotLightCoord[ i ].xyz / vSpotLightCoord[ i ].w;\n\t\t\tinSpotLightMap = all( lessThan( abs( spotLightCoord * 2. - 1. ), vec3( 1.0 ) ) );\n\t\t\tspotColor = texture2D( spotLightMap[ SPOT_LIGHT_MAP_INDEX ], spotLightCoord.xy );\n\t\t\tdirectLight.color = inSpotLightMap ? directLight.color * spotColor.rgb : directLight.color;\n\t\t#endif\n\t\t#undef SPOT_LIGHT_MAP_INDEX\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\tspotLightShadow = spotLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )\n\tDirectionalLight directionalLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tdirectionalLight = directionalLights[ i ];\n\t\tgetDirectionalLightInfo( directionalLight, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )\n\t\tdirectionalLightShadow = directionalLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )\n\tRectAreaLight rectAreaLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {\n\t\trectAreaLight = rectAreaLights[ i ];\n\t\tRE_Direct_RectArea( rectAreaLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if defined( RE_IndirectDiffuse )\n\tvec3 iblIrradiance = vec3( 0.0 );\n\tvec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\n\t#if defined( USE_LIGHT_PROBES )\n\t\tirradiance += getLightProbeIrradiance( lightProbe, geometryNormal );\n\t#endif\n\t#if ( NUM_HEMI_LIGHTS > 0 )\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\n\t\t\tirradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometryNormal );\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n#endif\n#if defined( RE_IndirectSpecular )\n\tvec3 radiance = vec3( 0.0 );\n\tvec3 clearcoatRadiance = vec3( 0.0 );\n#endif",lights_fragment_maps:"#if defined( RE_IndirectDiffuse )\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n\t\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\n\t\tirradiance += lightMapIrradiance;\n\t#endif\n\t#if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV )\n\t\tiblIrradiance += getIBLIrradiance( geometryNormal );\n\t#endif\n#endif\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\n\t#ifdef USE_ANISOTROPY\n\t\tradiance += getIBLAnisotropyRadiance( geometryViewDir, geometryNormal, material.roughness, material.anisotropyB, material.anisotropy );\n\t#else\n\t\tradiance += getIBLRadiance( geometryViewDir, geometryNormal, material.roughness );\n\t#endif\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatRadiance += getIBLRadiance( geometryViewDir, geometryClearcoatNormal, material.clearcoatRoughness );\n\t#endif\n#endif",lights_fragment_end:"#if defined( RE_IndirectDiffuse )\n\tRE_IndirectDiffuse( irradiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n#endif\n#if defined( RE_IndirectSpecular )\n\tRE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n#endif",logdepthbuf_fragment:"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tgl_FragDepthEXT = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;\n#endif",logdepthbuf_pars_fragment:"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tuniform float logDepthBufFC;\n\tvarying float vFragDepth;\n\tvarying float vIsPerspective;\n#endif",logdepthbuf_pars_vertex:"#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvarying float vFragDepth;\n\t\tvarying float vIsPerspective;\n\t#else\n\t\tuniform float logDepthBufFC;\n\t#endif\n#endif",logdepthbuf_vertex:"#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvFragDepth = 1.0 + gl_Position.w;\n\t\tvIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) );\n\t#else\n\t\tif ( isPerspectiveMatrix( projectionMatrix ) ) {\n\t\t\tgl_Position.z = log2( max( EPSILON, gl_Position.w + 1.0 ) ) * logDepthBufFC - 1.0;\n\t\t\tgl_Position.z *= gl_Position.w;\n\t\t}\n\t#endif\n#endif",map_fragment:"#ifdef USE_MAP\n\tvec4 sampledDiffuseColor = texture2D( map, vMapUv );\n\t#ifdef DECODE_VIDEO_TEXTURE\n\t\tsampledDiffuseColor = vec4( mix( pow( sampledDiffuseColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), sampledDiffuseColor.rgb * 0.0773993808, vec3( lessThanEqual( sampledDiffuseColor.rgb, vec3( 0.04045 ) ) ) ), sampledDiffuseColor.w );\n\t\n\t#endif\n\tdiffuseColor *= sampledDiffuseColor;\n#endif",map_pars_fragment:"#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif",map_particle_fragment:"#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\t#if defined( USE_POINTS_UV )\n\t\tvec2 uv = vUv;\n\t#else\n\t\tvec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;\n\t#endif\n#endif\n#ifdef USE_MAP\n\tdiffuseColor *= texture2D( map, uv );\n#endif\n#ifdef USE_ALPHAMAP\n\tdiffuseColor.a *= texture2D( alphaMap, uv ).g;\n#endif",map_particle_pars_fragment:"#if defined( USE_POINTS_UV )\n\tvarying vec2 vUv;\n#else\n\t#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\t\tuniform mat3 uvTransform;\n\t#endif\n#endif\n#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif\n#ifdef USE_ALPHAMAP\n\tuniform sampler2D alphaMap;\n#endif",metalnessmap_fragment:"float metalnessFactor = metalness;\n#ifdef USE_METALNESSMAP\n\tvec4 texelMetalness = texture2D( metalnessMap, vMetalnessMapUv );\n\tmetalnessFactor *= texelMetalness.b;\n#endif",metalnessmap_pars_fragment:"#ifdef USE_METALNESSMAP\n\tuniform sampler2D metalnessMap;\n#endif",morphcolor_vertex:"#if defined( USE_MORPHCOLORS ) && defined( MORPHTARGETS_TEXTURE )\n\tvColor *= morphTargetBaseInfluence;\n\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t#if defined( USE_COLOR_ALPHA )\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ) * morphTargetInfluences[ i ];\n\t\t#elif defined( USE_COLOR )\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ).rgb * morphTargetInfluences[ i ];\n\t\t#endif\n\t}\n#endif",morphnormal_vertex:"#ifdef USE_MORPHNORMALS\n\tobjectNormal *= morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1 ).xyz * morphTargetInfluences[ i ];\n\t\t}\n\t#else\n\t\tobjectNormal += morphNormal0 * morphTargetInfluences[ 0 ];\n\t\tobjectNormal += morphNormal1 * morphTargetInfluences[ 1 ];\n\t\tobjectNormal += morphNormal2 * morphTargetInfluences[ 2 ];\n\t\tobjectNormal += morphNormal3 * morphTargetInfluences[ 3 ];\n\t#endif\n#endif",morphtarget_pars_vertex:"#ifdef USE_MORPHTARGETS\n\tuniform float morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tuniform float morphTargetInfluences[ MORPHTARGETS_COUNT ];\n\t\tuniform sampler2DArray morphTargetsTexture;\n\t\tuniform ivec2 morphTargetsTextureSize;\n\t\tvec4 getMorph( const in int vertexIndex, const in int morphTargetIndex, const in int offset ) {\n\t\t\tint texelIndex = vertexIndex * MORPHTARGETS_TEXTURE_STRIDE + offset;\n\t\t\tint y = texelIndex / morphTargetsTextureSize.x;\n\t\t\tint x = texelIndex - y * morphTargetsTextureSize.x;\n\t\t\tivec3 morphUV = ivec3( x, y, morphTargetIndex );\n\t\t\treturn texelFetch( morphTargetsTexture, morphUV, 0 );\n\t\t}\n\t#else\n\t\t#ifndef USE_MORPHNORMALS\n\t\t\tuniform float morphTargetInfluences[ 8 ];\n\t\t#else\n\t\t\tuniform float morphTargetInfluences[ 4 ];\n\t\t#endif\n\t#endif\n#endif",morphtarget_vertex:"#ifdef USE_MORPHTARGETS\n\ttransformed *= morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0 ).xyz * morphTargetInfluences[ i ];\n\t\t}\n\t#else\n\t\ttransformed += morphTarget0 * morphTargetInfluences[ 0 ];\n\t\ttransformed += morphTarget1 * morphTargetInfluences[ 1 ];\n\t\ttransformed += morphTarget2 * morphTargetInfluences[ 2 ];\n\t\ttransformed += morphTarget3 * morphTargetInfluences[ 3 ];\n\t\t#ifndef USE_MORPHNORMALS\n\t\t\ttransformed += morphTarget4 * morphTargetInfluences[ 4 ];\n\t\t\ttransformed += morphTarget5 * morphTargetInfluences[ 5 ];\n\t\t\ttransformed += morphTarget6 * morphTargetInfluences[ 6 ];\n\t\t\ttransformed += morphTarget7 * morphTargetInfluences[ 7 ];\n\t\t#endif\n\t#endif\n#endif",normal_fragment_begin:"float faceDirection = gl_FrontFacing ? 1.0 : - 1.0;\n#ifdef FLAT_SHADED\n\tvec3 fdx = dFdx( vViewPosition );\n\tvec3 fdy = dFdy( vViewPosition );\n\tvec3 normal = normalize( cross( fdx, fdy ) );\n#else\n\tvec3 normal = normalize( vNormal );\n\t#ifdef DOUBLE_SIDED\n\t\tnormal *= faceDirection;\n\t#endif\n#endif\n#if defined( USE_NORMALMAP_TANGENTSPACE ) || defined( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY )\n\t#ifdef USE_TANGENT\n\t\tmat3 tbn = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\n\t#else\n\t\tmat3 tbn = getTangentFrame( - vViewPosition, normal,\n\t\t#if defined( USE_NORMALMAP )\n\t\t\tvNormalMapUv\n\t\t#elif defined( USE_CLEARCOAT_NORMALMAP )\n\t\t\tvClearcoatNormalMapUv\n\t\t#else\n\t\t\tvUv\n\t\t#endif\n\t\t);\n\t#endif\n\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\n\t\ttbn[0] *= faceDirection;\n\t\ttbn[1] *= faceDirection;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\t#ifdef USE_TANGENT\n\t\tmat3 tbn2 = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\n\t#else\n\t\tmat3 tbn2 = getTangentFrame( - vViewPosition, normal, vClearcoatNormalMapUv );\n\t#endif\n\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\n\t\ttbn2[0] *= faceDirection;\n\t\ttbn2[1] *= faceDirection;\n\t#endif\n#endif\nvec3 nonPerturbedNormal = normal;",normal_fragment_maps:"#ifdef USE_NORMALMAP_OBJECTSPACE\n\tnormal = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\n\t#ifdef FLIP_SIDED\n\t\tnormal = - normal;\n\t#endif\n\t#ifdef DOUBLE_SIDED\n\t\tnormal = normal * faceDirection;\n\t#endif\n\tnormal = normalize( normalMatrix * normal );\n#elif defined( USE_NORMALMAP_TANGENTSPACE )\n\tvec3 mapN = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\n\tmapN.xy *= normalScale;\n\tnormal = normalize( tbn * mapN );\n#elif defined( USE_BUMPMAP )\n\tnormal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection );\n#endif",normal_pars_fragment:"#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif",normal_pars_vertex:"#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif",normal_vertex:"#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n\t#ifdef USE_TANGENT\n\t\tvTangent = normalize( transformedTangent );\n\t\tvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\n\t#endif\n#endif",normalmap_pars_fragment:"#ifdef USE_NORMALMAP\n\tuniform sampler2D normalMap;\n\tuniform vec2 normalScale;\n#endif\n#ifdef USE_NORMALMAP_OBJECTSPACE\n\tuniform mat3 normalMatrix;\n#endif\n#if ! defined ( USE_TANGENT ) && ( defined ( USE_NORMALMAP_TANGENTSPACE ) || defined ( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) )\n\tmat3 getTangentFrame( vec3 eye_pos, vec3 surf_norm, vec2 uv ) {\n\t\tvec3 q0 = dFdx( eye_pos.xyz );\n\t\tvec3 q1 = dFdy( eye_pos.xyz );\n\t\tvec2 st0 = dFdx( uv.st );\n\t\tvec2 st1 = dFdy( uv.st );\n\t\tvec3 N = surf_norm;\n\t\tvec3 q1perp = cross( q1, N );\n\t\tvec3 q0perp = cross( N, q0 );\n\t\tvec3 T = q1perp * st0.x + q0perp * st1.x;\n\t\tvec3 B = q1perp * st0.y + q0perp * st1.y;\n\t\tfloat det = max( dot( T, T ), dot( B, B ) );\n\t\tfloat scale = ( det == 0.0 ) ? 0.0 : inversesqrt( det );\n\t\treturn mat3( T * scale, B * scale, N );\n\t}\n#endif",clearcoat_normal_fragment_begin:"#ifdef USE_CLEARCOAT\n\tvec3 clearcoatNormal = nonPerturbedNormal;\n#endif",clearcoat_normal_fragment_maps:"#ifdef USE_CLEARCOAT_NORMALMAP\n\tvec3 clearcoatMapN = texture2D( clearcoatNormalMap, vClearcoatNormalMapUv ).xyz * 2.0 - 1.0;\n\tclearcoatMapN.xy *= clearcoatNormalScale;\n\tclearcoatNormal = normalize( tbn2 * clearcoatMapN );\n#endif",clearcoat_pars_fragment:"#ifdef USE_CLEARCOATMAP\n\tuniform sampler2D clearcoatMap;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tuniform sampler2D clearcoatNormalMap;\n\tuniform vec2 clearcoatNormalScale;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tuniform sampler2D clearcoatRoughnessMap;\n#endif",iridescence_pars_fragment:"#ifdef USE_IRIDESCENCEMAP\n\tuniform sampler2D iridescenceMap;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tuniform sampler2D iridescenceThicknessMap;\n#endif",opaque_fragment:"#ifdef OPAQUE\ndiffuseColor.a = 1.0;\n#endif\n#ifdef USE_TRANSMISSION\ndiffuseColor.a *= material.transmissionAlpha;\n#endif\ngl_FragColor = vec4( outgoingLight, diffuseColor.a );",packing:"vec3 packNormalToRGB( const in vec3 normal ) {\n\treturn normalize( normal ) * 0.5 + 0.5;\n}\nvec3 unpackRGBToNormal( const in vec3 rgb ) {\n\treturn 2.0 * rgb.xyz - 1.0;\n}\nconst float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;\nconst vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );\nconst vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. );\nconst float ShiftRight8 = 1. / 256.;\nvec4 packDepthToRGBA( const in float v ) {\n\tvec4 r = vec4( fract( v * PackFactors ), v );\n\tr.yzw -= r.xyz * ShiftRight8;\treturn r * PackUpscale;\n}\nfloat unpackRGBAToDepth( const in vec4 v ) {\n\treturn dot( v, UnpackFactors );\n}\nvec2 packDepthToRG( in highp float v ) {\n\treturn packDepthToRGBA( v ).yx;\n}\nfloat unpackRGToDepth( const in highp vec2 v ) {\n\treturn unpackRGBAToDepth( vec4( v.xy, 0.0, 0.0 ) );\n}\nvec4 pack2HalfToRGBA( vec2 v ) {\n\tvec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ) );\n\treturn vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w );\n}\nvec2 unpackRGBATo2Half( vec4 v ) {\n\treturn vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) );\n}\nfloat viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn ( viewZ + near ) / ( near - far );\n}\nfloat orthographicDepthToViewZ( const in float depth, const in float near, const in float far ) {\n\treturn depth * ( near - far ) - near;\n}\nfloat viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn ( ( near + viewZ ) * far ) / ( ( far - near ) * viewZ );\n}\nfloat perspectiveDepthToViewZ( const in float depth, const in float near, const in float far ) {\n\treturn ( near * far ) / ( ( far - near ) * depth - far );\n}",premultiplied_alpha_fragment:"#ifdef PREMULTIPLIED_ALPHA\n\tgl_FragColor.rgb *= gl_FragColor.a;\n#endif",project_vertex:"vec4 mvPosition = vec4( transformed, 1.0 );\n#ifdef USE_INSTANCING\n\tmvPosition = instanceMatrix * mvPosition;\n#endif\nmvPosition = modelViewMatrix * mvPosition;\ngl_Position = projectionMatrix * mvPosition;",dithering_fragment:"#ifdef DITHERING\n\tgl_FragColor.rgb = dithering( gl_FragColor.rgb );\n#endif",dithering_pars_fragment:"#ifdef DITHERING\n\tvec3 dithering( vec3 color ) {\n\t\tfloat grid_position = rand( gl_FragCoord.xy );\n\t\tvec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 );\n\t\tdither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position );\n\t\treturn color + dither_shift_RGB;\n\t}\n#endif",roughnessmap_fragment:"float roughnessFactor = roughness;\n#ifdef USE_ROUGHNESSMAP\n\tvec4 texelRoughness = texture2D( roughnessMap, vRoughnessMapUv );\n\troughnessFactor *= texelRoughness.g;\n#endif",roughnessmap_pars_fragment:"#ifdef USE_ROUGHNESSMAP\n\tuniform sampler2D roughnessMap;\n#endif",shadowmap_pars_fragment:"#if NUM_SPOT_LIGHT_COORDS > 0\n\tvarying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\n#endif\n#if NUM_SPOT_LIGHT_MAPS > 0\n\tuniform sampler2D spotLightMap[ NUM_SPOT_LIGHT_MAPS ];\n#endif\n#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tstruct DirectionalLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ];\n\t\tstruct SpotLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tstruct PointLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t\tfloat shadowCameraNear;\n\t\t\tfloat shadowCameraFar;\n\t\t};\n\t\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n\t#endif\n\tfloat texture2DCompare( sampler2D depths, vec2 uv, float compare ) {\n\t\treturn step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) );\n\t}\n\tvec2 texture2DDistribution( sampler2D shadow, vec2 uv ) {\n\t\treturn unpackRGBATo2Half( texture2D( shadow, uv ) );\n\t}\n\tfloat VSMShadow (sampler2D shadow, vec2 uv, float compare ){\n\t\tfloat occlusion = 1.0;\n\t\tvec2 distribution = texture2DDistribution( shadow, uv );\n\t\tfloat hard_shadow = step( compare , distribution.x );\n\t\tif (hard_shadow != 1.0 ) {\n\t\t\tfloat distance = compare - distribution.x ;\n\t\t\tfloat variance = max( 0.00000, distribution.y * distribution.y );\n\t\t\tfloat softness_probability = variance / (variance + distance * distance );\t\t\tsoftness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 );\t\t\tocclusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 );\n\t\t}\n\t\treturn occlusion;\n\t}\n\tfloat getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) {\n\t\tfloat shadow = 1.0;\n\t\tshadowCoord.xyz /= shadowCoord.w;\n\t\tshadowCoord.z += shadowBias;\n\t\tbool inFrustum = shadowCoord.x >= 0.0 && shadowCoord.x <= 1.0 && shadowCoord.y >= 0.0 && shadowCoord.y <= 1.0;\n\t\tbool frustumTest = inFrustum && shadowCoord.z <= 1.0;\n\t\tif ( frustumTest ) {\n\t\t#if defined( SHADOWMAP_TYPE_PCF )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx0 = - texelSize.x * shadowRadius;\n\t\t\tfloat dy0 = - texelSize.y * shadowRadius;\n\t\t\tfloat dx1 = + texelSize.x * shadowRadius;\n\t\t\tfloat dy1 = + texelSize.y * shadowRadius;\n\t\t\tfloat dx2 = dx0 / 2.0;\n\t\t\tfloat dy2 = dy0 / 2.0;\n\t\t\tfloat dx3 = dx1 / 2.0;\n\t\t\tfloat dy3 = dy1 / 2.0;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\n\t\t\t) * ( 1.0 / 17.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_PCF_SOFT )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx = texelSize.x;\n\t\t\tfloat dy = texelSize.y;\n\t\t\tvec2 uv = shadowCoord.xy;\n\t\t\tvec2 f = fract( uv * shadowMapSize + 0.5 );\n\t\t\tuv -= f * texelSize;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, uv, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ),\n\t\t\t\t\t f.x ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ),\n\t\t\t\t\t f.x ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t f.y ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t f.y ) +\n\t\t\t\tmix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t\t f.x ),\n\t\t\t\t\t mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t\t f.x ),\n\t\t\t\t\t f.y )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_VSM )\n\t\t\tshadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#else\n\t\t\tshadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#endif\n\t\t}\n\t\treturn shadow;\n\t}\n\tvec2 cubeToUV( vec3 v, float texelSizeY ) {\n\t\tvec3 absV = abs( v );\n\t\tfloat scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) );\n\t\tabsV *= scaleToCube;\n\t\tv *= scaleToCube * ( 1.0 - 2.0 * texelSizeY );\n\t\tvec2 planar = v.xy;\n\t\tfloat almostATexel = 1.5 * texelSizeY;\n\t\tfloat almostOne = 1.0 - almostATexel;\n\t\tif ( absV.z >= almostOne ) {\n\t\t\tif ( v.z > 0.0 )\n\t\t\t\tplanar.x = 4.0 - v.x;\n\t\t} else if ( absV.x >= almostOne ) {\n\t\t\tfloat signX = sign( v.x );\n\t\t\tplanar.x = v.z * signX + 2.0 * signX;\n\t\t} else if ( absV.y >= almostOne ) {\n\t\t\tfloat signY = sign( v.y );\n\t\t\tplanar.x = v.x + 2.0 * signY + 2.0;\n\t\t\tplanar.y = v.z * signY - 2.0;\n\t\t}\n\t\treturn vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 );\n\t}\n\tfloat getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) {\n\t\tvec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );\n\t\tvec3 lightToPosition = shadowCoord.xyz;\n\t\tfloat dp = ( length( lightToPosition ) - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear );\t\tdp += shadowBias;\n\t\tvec3 bd3D = normalize( lightToPosition );\n\t\t#if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM )\n\t\t\tvec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;\n\t\t\treturn (\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#else\n\t\t\treturn texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );\n\t\t#endif\n\t}\n#endif",shadowmap_pars_vertex:"#if NUM_SPOT_LIGHT_COORDS > 0\n\tuniform mat4 spotLightMatrix[ NUM_SPOT_LIGHT_COORDS ];\n\tvarying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\n#endif\n#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\tuniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tstruct DirectionalLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tstruct SpotLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\tuniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tstruct PointLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t\tfloat shadowCameraNear;\n\t\t\tfloat shadowCameraFar;\n\t\t};\n\t\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n\t#endif\n#endif",shadowmap_vertex:"#if ( defined( USE_SHADOWMAP ) && ( NUM_DIR_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0 ) ) || ( NUM_SPOT_LIGHT_COORDS > 0 )\n\tvec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\tvec4 shadowWorldPosition;\n#endif\n#if defined( USE_SHADOWMAP )\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 );\n\t\t\tvDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 );\n\t\t\tvPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n#endif\n#if NUM_SPOT_LIGHT_COORDS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_COORDS; i ++ ) {\n\t\tshadowWorldPosition = worldPosition;\n\t\t#if ( defined( USE_SHADOWMAP ) && UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\t\tshadowWorldPosition.xyz += shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias;\n\t\t#endif\n\t\tvSpotLightCoord[ i ] = spotLightMatrix[ i ] * shadowWorldPosition;\n\t}\n\t#pragma unroll_loop_end\n#endif",shadowmask_pars_fragment:"float getShadowMask() {\n\tfloat shadow = 1.0;\n\t#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\tdirectionalLight = directionalLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\n\t\tspotLight = spotLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\tpointLight = pointLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#endif\n\treturn shadow;\n}",skinbase_vertex:"#ifdef USE_SKINNING\n\tmat4 boneMatX = getBoneMatrix( skinIndex.x );\n\tmat4 boneMatY = getBoneMatrix( skinIndex.y );\n\tmat4 boneMatZ = getBoneMatrix( skinIndex.z );\n\tmat4 boneMatW = getBoneMatrix( skinIndex.w );\n#endif",skinning_pars_vertex:"#ifdef USE_SKINNING\n\tuniform mat4 bindMatrix;\n\tuniform mat4 bindMatrixInverse;\n\tuniform highp sampler2D boneTexture;\n\tuniform int boneTextureSize;\n\tmat4 getBoneMatrix( const in float i ) {\n\t\tfloat j = i * 4.0;\n\t\tfloat x = mod( j, float( boneTextureSize ) );\n\t\tfloat y = floor( j / float( boneTextureSize ) );\n\t\tfloat dx = 1.0 / float( boneTextureSize );\n\t\tfloat dy = 1.0 / float( boneTextureSize );\n\t\ty = dy * ( y + 0.5 );\n\t\tvec4 v1 = texture2D( boneTexture, vec2( dx * ( x + 0.5 ), y ) );\n\t\tvec4 v2 = texture2D( boneTexture, vec2( dx * ( x + 1.5 ), y ) );\n\t\tvec4 v3 = texture2D( boneTexture, vec2( dx * ( x + 2.5 ), y ) );\n\t\tvec4 v4 = texture2D( boneTexture, vec2( dx * ( x + 3.5 ), y ) );\n\t\tmat4 bone = mat4( v1, v2, v3, v4 );\n\t\treturn bone;\n\t}\n#endif",skinning_vertex:"#ifdef USE_SKINNING\n\tvec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );\n\tvec4 skinned = vec4( 0.0 );\n\tskinned += boneMatX * skinVertex * skinWeight.x;\n\tskinned += boneMatY * skinVertex * skinWeight.y;\n\tskinned += boneMatZ * skinVertex * skinWeight.z;\n\tskinned += boneMatW * skinVertex * skinWeight.w;\n\ttransformed = ( bindMatrixInverse * skinned ).xyz;\n#endif",skinnormal_vertex:"#ifdef USE_SKINNING\n\tmat4 skinMatrix = mat4( 0.0 );\n\tskinMatrix += skinWeight.x * boneMatX;\n\tskinMatrix += skinWeight.y * boneMatY;\n\tskinMatrix += skinWeight.z * boneMatZ;\n\tskinMatrix += skinWeight.w * boneMatW;\n\tskinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;\n\tobjectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;\n\t#ifdef USE_TANGENT\n\t\tobjectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz;\n\t#endif\n#endif",specularmap_fragment:"float specularStrength;\n#ifdef USE_SPECULARMAP\n\tvec4 texelSpecular = texture2D( specularMap, vSpecularMapUv );\n\tspecularStrength = texelSpecular.r;\n#else\n\tspecularStrength = 1.0;\n#endif",specularmap_pars_fragment:"#ifdef USE_SPECULARMAP\n\tuniform sampler2D specularMap;\n#endif",tonemapping_fragment:"#if defined( TONE_MAPPING )\n\tgl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\n#endif",tonemapping_pars_fragment:"#ifndef saturate\n#define saturate( a ) clamp( a, 0.0, 1.0 )\n#endif\nuniform float toneMappingExposure;\nvec3 LinearToneMapping( vec3 color ) {\n\treturn saturate( toneMappingExposure * color );\n}\nvec3 ReinhardToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\treturn saturate( color / ( vec3( 1.0 ) + color ) );\n}\nvec3 OptimizedCineonToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\tcolor = max( vec3( 0.0 ), color - 0.004 );\n\treturn pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );\n}\nvec3 RRTAndODTFit( vec3 v ) {\n\tvec3 a = v * ( v + 0.0245786 ) - 0.000090537;\n\tvec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081;\n\treturn a / b;\n}\nvec3 ACESFilmicToneMapping( vec3 color ) {\n\tconst mat3 ACESInputMat = mat3(\n\t\tvec3( 0.59719, 0.07600, 0.02840 ),\t\tvec3( 0.35458, 0.90834, 0.13383 ),\n\t\tvec3( 0.04823, 0.01566, 0.83777 )\n\t);\n\tconst mat3 ACESOutputMat = mat3(\n\t\tvec3( 1.60475, -0.10208, -0.00327 ),\t\tvec3( -0.53108, 1.10813, -0.07276 ),\n\t\tvec3( -0.07367, -0.00605, 1.07602 )\n\t);\n\tcolor *= toneMappingExposure / 0.6;\n\tcolor = ACESInputMat * color;\n\tcolor = RRTAndODTFit( color );\n\tcolor = ACESOutputMat * color;\n\treturn saturate( color );\n}\nvec3 CustomToneMapping( vec3 color ) { return color; }",transmission_fragment:"#ifdef USE_TRANSMISSION\n\tmaterial.transmission = transmission;\n\tmaterial.transmissionAlpha = 1.0;\n\tmaterial.thickness = thickness;\n\tmaterial.attenuationDistance = attenuationDistance;\n\tmaterial.attenuationColor = attenuationColor;\n\t#ifdef USE_TRANSMISSIONMAP\n\t\tmaterial.transmission *= texture2D( transmissionMap, vTransmissionMapUv ).r;\n\t#endif\n\t#ifdef USE_THICKNESSMAP\n\t\tmaterial.thickness *= texture2D( thicknessMap, vThicknessMapUv ).g;\n\t#endif\n\tvec3 pos = vWorldPosition;\n\tvec3 v = normalize( cameraPosition - pos );\n\tvec3 n = inverseTransformDirection( normal, viewMatrix );\n\tvec4 transmitted = getIBLVolumeRefraction(\n\t\tn, v, material.roughness, material.diffuseColor, material.specularColor, material.specularF90,\n\t\tpos, modelMatrix, viewMatrix, projectionMatrix, material.ior, material.thickness,\n\t\tmaterial.attenuationColor, material.attenuationDistance );\n\tmaterial.transmissionAlpha = mix( material.transmissionAlpha, transmitted.a, material.transmission );\n\ttotalDiffuse = mix( totalDiffuse, transmitted.rgb, material.transmission );\n#endif",transmission_pars_fragment:"#ifdef USE_TRANSMISSION\n\tuniform float transmission;\n\tuniform float thickness;\n\tuniform float attenuationDistance;\n\tuniform vec3 attenuationColor;\n\t#ifdef USE_TRANSMISSIONMAP\n\t\tuniform sampler2D transmissionMap;\n\t#endif\n\t#ifdef USE_THICKNESSMAP\n\t\tuniform sampler2D thicknessMap;\n\t#endif\n\tuniform vec2 transmissionSamplerSize;\n\tuniform sampler2D transmissionSamplerMap;\n\tuniform mat4 modelMatrix;\n\tuniform mat4 projectionMatrix;\n\tvarying vec3 vWorldPosition;\n\tfloat w0( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * ( a * ( - a + 3.0 ) - 3.0 ) + 1.0 );\n\t}\n\tfloat w1( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * a * ( 3.0 * a - 6.0 ) + 4.0 );\n\t}\n\tfloat w2( float a ){\n\t\treturn ( 1.0 / 6.0 ) * ( a * ( a * ( - 3.0 * a + 3.0 ) + 3.0 ) + 1.0 );\n\t}\n\tfloat w3( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * a * a );\n\t}\n\tfloat g0( float a ) {\n\t\treturn w0( a ) + w1( a );\n\t}\n\tfloat g1( float a ) {\n\t\treturn w2( a ) + w3( a );\n\t}\n\tfloat h0( float a ) {\n\t\treturn - 1.0 + w1( a ) / ( w0( a ) + w1( a ) );\n\t}\n\tfloat h1( float a ) {\n\t\treturn 1.0 + w3( a ) / ( w2( a ) + w3( a ) );\n\t}\n\tvec4 bicubic( sampler2D tex, vec2 uv, vec4 texelSize, float lod ) {\n\t\tuv = uv * texelSize.zw + 0.5;\n\t\tvec2 iuv = floor( uv );\n\t\tvec2 fuv = fract( uv );\n\t\tfloat g0x = g0( fuv.x );\n\t\tfloat g1x = g1( fuv.x );\n\t\tfloat h0x = h0( fuv.x );\n\t\tfloat h1x = h1( fuv.x );\n\t\tfloat h0y = h0( fuv.y );\n\t\tfloat h1y = h1( fuv.y );\n\t\tvec2 p0 = ( vec2( iuv.x + h0x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p1 = ( vec2( iuv.x + h1x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p2 = ( vec2( iuv.x + h0x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p3 = ( vec2( iuv.x + h1x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\n\t\treturn g0( fuv.y ) * ( g0x * textureLod( tex, p0, lod ) + g1x * textureLod( tex, p1, lod ) ) +\n\t\t\tg1( fuv.y ) * ( g0x * textureLod( tex, p2, lod ) + g1x * textureLod( tex, p3, lod ) );\n\t}\n\tvec4 textureBicubic( sampler2D sampler, vec2 uv, float lod ) {\n\t\tvec2 fLodSize = vec2( textureSize( sampler, int( lod ) ) );\n\t\tvec2 cLodSize = vec2( textureSize( sampler, int( lod + 1.0 ) ) );\n\t\tvec2 fLodSizeInv = 1.0 / fLodSize;\n\t\tvec2 cLodSizeInv = 1.0 / cLodSize;\n\t\tvec4 fSample = bicubic( sampler, uv, vec4( fLodSizeInv, fLodSize ), floor( lod ) );\n\t\tvec4 cSample = bicubic( sampler, uv, vec4( cLodSizeInv, cLodSize ), ceil( lod ) );\n\t\treturn mix( fSample, cSample, fract( lod ) );\n\t}\n\tvec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) {\n\t\tvec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior );\n\t\tvec3 modelScale;\n\t\tmodelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) );\n\t\tmodelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) );\n\t\tmodelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) );\n\t\treturn normalize( refractionVector ) * thickness * modelScale;\n\t}\n\tfloat applyIorToRoughness( const in float roughness, const in float ior ) {\n\t\treturn roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 );\n\t}\n\tvec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) {\n\t\tfloat lod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior );\n\t\treturn textureBicubic( transmissionSamplerMap, fragCoord.xy, lod );\n\t}\n\tvec3 volumeAttenuation( const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) {\n\t\tif ( isinf( attenuationDistance ) ) {\n\t\t\treturn vec3( 1.0 );\n\t\t} else {\n\t\t\tvec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance;\n\t\t\tvec3 transmittance = exp( - attenuationCoefficient * transmissionDistance );\t\t\treturn transmittance;\n\t\t}\n\t}\n\tvec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor,\n\t\tconst in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix,\n\t\tconst in mat4 viewMatrix, const in mat4 projMatrix, const in float ior, const in float thickness,\n\t\tconst in vec3 attenuationColor, const in float attenuationDistance ) {\n\t\tvec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix );\n\t\tvec3 refractedRayExit = position + transmissionRay;\n\t\tvec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );\n\t\tvec2 refractionCoords = ndcPos.xy / ndcPos.w;\n\t\trefractionCoords += 1.0;\n\t\trefractionCoords /= 2.0;\n\t\tvec4 transmittedLight = getTransmissionSample( refractionCoords, roughness, ior );\n\t\tvec3 transmittance = diffuseColor * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance );\n\t\tvec3 attenuatedColor = transmittance * transmittedLight.rgb;\n\t\tvec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness );\n\t\tfloat transmittanceFactor = ( transmittance.r + transmittance.g + transmittance.b ) / 3.0;\n\t\treturn vec4( ( 1.0 - F ) * attenuatedColor, 1.0 - ( 1.0 - transmittedLight.a ) * transmittanceFactor );\n\t}\n#endif",uv_pars_fragment:"#if defined( USE_UV ) || defined( USE_ANISOTROPY )\n\tvarying vec2 vUv;\n#endif\n#ifdef USE_MAP\n\tvarying vec2 vMapUv;\n#endif\n#ifdef USE_ALPHAMAP\n\tvarying vec2 vAlphaMapUv;\n#endif\n#ifdef USE_LIGHTMAP\n\tvarying vec2 vLightMapUv;\n#endif\n#ifdef USE_AOMAP\n\tvarying vec2 vAoMapUv;\n#endif\n#ifdef USE_BUMPMAP\n\tvarying vec2 vBumpMapUv;\n#endif\n#ifdef USE_NORMALMAP\n\tvarying vec2 vNormalMapUv;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tvarying vec2 vEmissiveMapUv;\n#endif\n#ifdef USE_METALNESSMAP\n\tvarying vec2 vMetalnessMapUv;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tvarying vec2 vRoughnessMapUv;\n#endif\n#ifdef USE_ANISOTROPYMAP\n\tvarying vec2 vAnisotropyMapUv;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tvarying vec2 vClearcoatMapUv;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tvarying vec2 vClearcoatNormalMapUv;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tvarying vec2 vClearcoatRoughnessMapUv;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tvarying vec2 vIridescenceMapUv;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tvarying vec2 vIridescenceThicknessMapUv;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tvarying vec2 vSheenColorMapUv;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tvarying vec2 vSheenRoughnessMapUv;\n#endif\n#ifdef USE_SPECULARMAP\n\tvarying vec2 vSpecularMapUv;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tvarying vec2 vSpecularColorMapUv;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tvarying vec2 vSpecularIntensityMapUv;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tuniform mat3 transmissionMapTransform;\n\tvarying vec2 vTransmissionMapUv;\n#endif\n#ifdef USE_THICKNESSMAP\n\tuniform mat3 thicknessMapTransform;\n\tvarying vec2 vThicknessMapUv;\n#endif",uv_pars_vertex:"#if defined( USE_UV ) || defined( USE_ANISOTROPY )\n\tvarying vec2 vUv;\n#endif\n#ifdef USE_MAP\n\tuniform mat3 mapTransform;\n\tvarying vec2 vMapUv;\n#endif\n#ifdef USE_ALPHAMAP\n\tuniform mat3 alphaMapTransform;\n\tvarying vec2 vAlphaMapUv;\n#endif\n#ifdef USE_LIGHTMAP\n\tuniform mat3 lightMapTransform;\n\tvarying vec2 vLightMapUv;\n#endif\n#ifdef USE_AOMAP\n\tuniform mat3 aoMapTransform;\n\tvarying vec2 vAoMapUv;\n#endif\n#ifdef USE_BUMPMAP\n\tuniform mat3 bumpMapTransform;\n\tvarying vec2 vBumpMapUv;\n#endif\n#ifdef USE_NORMALMAP\n\tuniform mat3 normalMapTransform;\n\tvarying vec2 vNormalMapUv;\n#endif\n#ifdef USE_DISPLACEMENTMAP\n\tuniform mat3 displacementMapTransform;\n\tvarying vec2 vDisplacementMapUv;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tuniform mat3 emissiveMapTransform;\n\tvarying vec2 vEmissiveMapUv;\n#endif\n#ifdef USE_METALNESSMAP\n\tuniform mat3 metalnessMapTransform;\n\tvarying vec2 vMetalnessMapUv;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tuniform mat3 roughnessMapTransform;\n\tvarying vec2 vRoughnessMapUv;\n#endif\n#ifdef USE_ANISOTROPYMAP\n\tuniform mat3 anisotropyMapTransform;\n\tvarying vec2 vAnisotropyMapUv;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tuniform mat3 clearcoatMapTransform;\n\tvarying vec2 vClearcoatMapUv;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tuniform mat3 clearcoatNormalMapTransform;\n\tvarying vec2 vClearcoatNormalMapUv;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tuniform mat3 clearcoatRoughnessMapTransform;\n\tvarying vec2 vClearcoatRoughnessMapUv;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tuniform mat3 sheenColorMapTransform;\n\tvarying vec2 vSheenColorMapUv;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tuniform mat3 sheenRoughnessMapTransform;\n\tvarying vec2 vSheenRoughnessMapUv;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tuniform mat3 iridescenceMapTransform;\n\tvarying vec2 vIridescenceMapUv;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tuniform mat3 iridescenceThicknessMapTransform;\n\tvarying vec2 vIridescenceThicknessMapUv;\n#endif\n#ifdef USE_SPECULARMAP\n\tuniform mat3 specularMapTransform;\n\tvarying vec2 vSpecularMapUv;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tuniform mat3 specularColorMapTransform;\n\tvarying vec2 vSpecularColorMapUv;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tuniform mat3 specularIntensityMapTransform;\n\tvarying vec2 vSpecularIntensityMapUv;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tuniform mat3 transmissionMapTransform;\n\tvarying vec2 vTransmissionMapUv;\n#endif\n#ifdef USE_THICKNESSMAP\n\tuniform mat3 thicknessMapTransform;\n\tvarying vec2 vThicknessMapUv;\n#endif",uv_vertex:"#if defined( USE_UV ) || defined( USE_ANISOTROPY )\n\tvUv = vec3( uv, 1 ).xy;\n#endif\n#ifdef USE_MAP\n\tvMapUv = ( mapTransform * vec3( MAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ALPHAMAP\n\tvAlphaMapUv = ( alphaMapTransform * vec3( ALPHAMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_LIGHTMAP\n\tvLightMapUv = ( lightMapTransform * vec3( LIGHTMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_AOMAP\n\tvAoMapUv = ( aoMapTransform * vec3( AOMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_BUMPMAP\n\tvBumpMapUv = ( bumpMapTransform * vec3( BUMPMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_NORMALMAP\n\tvNormalMapUv = ( normalMapTransform * vec3( NORMALMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_DISPLACEMENTMAP\n\tvDisplacementMapUv = ( displacementMapTransform * vec3( DISPLACEMENTMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tvEmissiveMapUv = ( emissiveMapTransform * vec3( EMISSIVEMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_METALNESSMAP\n\tvMetalnessMapUv = ( metalnessMapTransform * vec3( METALNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tvRoughnessMapUv = ( roughnessMapTransform * vec3( ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ANISOTROPYMAP\n\tvAnisotropyMapUv = ( anisotropyMapTransform * vec3( ANISOTROPYMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tvClearcoatMapUv = ( clearcoatMapTransform * vec3( CLEARCOATMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tvClearcoatNormalMapUv = ( clearcoatNormalMapTransform * vec3( CLEARCOAT_NORMALMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tvClearcoatRoughnessMapUv = ( clearcoatRoughnessMapTransform * vec3( CLEARCOAT_ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tvIridescenceMapUv = ( iridescenceMapTransform * vec3( IRIDESCENCEMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tvIridescenceThicknessMapUv = ( iridescenceThicknessMapTransform * vec3( IRIDESCENCE_THICKNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tvSheenColorMapUv = ( sheenColorMapTransform * vec3( SHEEN_COLORMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tvSheenRoughnessMapUv = ( sheenRoughnessMapTransform * vec3( SHEEN_ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULARMAP\n\tvSpecularMapUv = ( specularMapTransform * vec3( SPECULARMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tvSpecularColorMapUv = ( specularColorMapTransform * vec3( SPECULAR_COLORMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tvSpecularIntensityMapUv = ( specularIntensityMapTransform * vec3( SPECULAR_INTENSITYMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tvTransmissionMapUv = ( transmissionMapTransform * vec3( TRANSMISSIONMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_THICKNESSMAP\n\tvThicknessMapUv = ( thicknessMapTransform * vec3( THICKNESSMAP_UV, 1 ) ).xy;\n#endif",worldpos_vertex:"#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION ) || NUM_SPOT_LIGHT_COORDS > 0\n\tvec4 worldPosition = vec4( transformed, 1.0 );\n\t#ifdef USE_INSTANCING\n\t\tworldPosition = instanceMatrix * worldPosition;\n\t#endif\n\tworldPosition = modelMatrix * worldPosition;\n#endif",background_vert:"varying vec2 vUv;\nuniform mat3 uvTransform;\nvoid main() {\n\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n\tgl_Position = vec4( position.xy, 1.0, 1.0 );\n}",background_frag:"uniform sampler2D t2D;\nuniform float backgroundIntensity;\nvarying vec2 vUv;\nvoid main() {\n\tvec4 texColor = texture2D( t2D, vUv );\n\t#ifdef DECODE_VIDEO_TEXTURE\n\t\ttexColor = vec4( mix( pow( texColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), texColor.rgb * 0.0773993808, vec3( lessThanEqual( texColor.rgb, vec3( 0.04045 ) ) ) ), texColor.w );\n\t#endif\n\ttexColor.rgb *= backgroundIntensity;\n\tgl_FragColor = texColor;\n\t#include \n\t#include \n}",backgroundCube_vert:"varying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n\tgl_Position.z = gl_Position.w;\n}",backgroundCube_frag:"#ifdef ENVMAP_TYPE_CUBE\n\tuniform samplerCube envMap;\n#elif defined( ENVMAP_TYPE_CUBE_UV )\n\tuniform sampler2D envMap;\n#endif\nuniform float flipEnvMap;\nuniform float backgroundBlurriness;\nuniform float backgroundIntensity;\nvarying vec3 vWorldDirection;\n#include \nvoid main() {\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tvec4 texColor = textureCube( envMap, vec3( flipEnvMap * vWorldDirection.x, vWorldDirection.yz ) );\n\t#elif defined( ENVMAP_TYPE_CUBE_UV )\n\t\tvec4 texColor = textureCubeUV( envMap, vWorldDirection, backgroundBlurriness );\n\t#else\n\t\tvec4 texColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\t#endif\n\ttexColor.rgb *= backgroundIntensity;\n\tgl_FragColor = texColor;\n\t#include \n\t#include \n}",cube_vert:"varying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n\tgl_Position.z = gl_Position.w;\n}",cube_frag:"uniform samplerCube tCube;\nuniform float tFlip;\nuniform float opacity;\nvarying vec3 vWorldDirection;\nvoid main() {\n\tvec4 texColor = textureCube( tCube, vec3( tFlip * vWorldDirection.x, vWorldDirection.yz ) );\n\tgl_FragColor = texColor;\n\tgl_FragColor.a *= opacity;\n\t#include \n\t#include \n}",depth_vert:"#include \n#include \n#include \n#include \n#include \n#include \n#include \nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include \n\t#include \n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvHighPrecisionZW = gl_Position.zw;\n}",depth_frag:"#if DEPTH_PACKING == 3200\n\tuniform float opacity;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( 1.0 );\n\t#if DEPTH_PACKING == 3200\n\t\tdiffuseColor.a = opacity;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tfloat fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;\n\t#if DEPTH_PACKING == 3200\n\t\tgl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );\n\t#elif DEPTH_PACKING == 3201\n\t\tgl_FragColor = packDepthToRGBA( fragCoordZ );\n\t#endif\n}",distanceRGBA_vert:"#define DISTANCE\nvarying vec3 vWorldPosition;\n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvWorldPosition = worldPosition.xyz;\n}",distanceRGBA_frag:"#define DISTANCE\nuniform vec3 referencePosition;\nuniform float nearDistance;\nuniform float farDistance;\nvarying vec3 vWorldPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main () {\n\t#include \n\tvec4 diffuseColor = vec4( 1.0 );\n\t#include \n\t#include \n\t#include \n\t#include \n\tfloat dist = length( vWorldPosition - referencePosition );\n\tdist = ( dist - nearDistance ) / ( farDistance - nearDistance );\n\tdist = saturate( dist );\n\tgl_FragColor = packDepthToRGBA( dist );\n}",equirect_vert:"varying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n}",equirect_frag:"uniform sampler2D tEquirect;\nvarying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvec3 direction = normalize( vWorldDirection );\n\tvec2 sampleUV = equirectUv( direction );\n\tgl_FragColor = texture2D( tEquirect, sampleUV );\n\t#include \n\t#include \n}",linedashed_vert:"uniform float scale;\nattribute float lineDistance;\nvarying float vLineDistance;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\tvLineDistance = scale * lineDistance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",linedashed_frag:"uniform vec3 diffuse;\nuniform float opacity;\nuniform float dashSize;\nuniform float totalSize;\nvarying float vLineDistance;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tif ( mod( vLineDistance, totalSize ) > dashSize ) {\n\t\tdiscard;\n\t}\n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshbasic_vert:"#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#if defined ( USE_ENVMAP ) || defined ( USE_SKINNING )\n\t\t#include \n\t\t#include \n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshbasic_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n\t\treflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity * RECIPROCAL_PI;\n\t#else\n\t\treflectedLight.indirectDiffuse += vec3( 1.0 );\n\t#endif\n\t#include \n\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\n\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshlambert_vert:"#define LAMBERT\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n\t#include \n}",meshlambert_frag:"#define LAMBERT\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshmatcap_vert:"#define MATCAP\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n}",meshmatcap_frag:"#define MATCAP\nuniform vec3 diffuse;\nuniform float opacity;\nuniform sampler2D matcap;\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 viewDir = normalize( vViewPosition );\n\tvec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) );\n\tvec3 y = cross( viewDir, x );\n\tvec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5;\n\t#ifdef USE_MATCAP\n\t\tvec4 matcapColor = texture2D( matcap, uv );\n\t#else\n\t\tvec4 matcapColor = vec4( vec3( mix( 0.2, 0.8, uv.y ) ), 1.0 );\n\t#endif\n\tvec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshnormal_vert:"#define NORMAL\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\n\tvarying vec3 vViewPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\n\tvViewPosition = - mvPosition.xyz;\n#endif\n}",meshnormal_frag:"#define NORMAL\nuniform float opacity;\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\n\tvarying vec3 vViewPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\tgl_FragColor = vec4( packNormalToRGB( normal ), opacity );\n\t#ifdef OPAQUE\n\t\tgl_FragColor.a = 1.0;\n\t#endif\n}",meshphong_vert:"#define PHONG\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n\t#include \n}",meshphong_frag:"#define PHONG\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform vec3 specular;\nuniform float shininess;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshphysical_vert:"#define STANDARD\nvarying vec3 vViewPosition;\n#ifdef USE_TRANSMISSION\n\tvarying vec3 vWorldPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n#ifdef USE_TRANSMISSION\n\tvWorldPosition = worldPosition.xyz;\n#endif\n}",meshphysical_frag:"#define STANDARD\n#ifdef PHYSICAL\n\t#define IOR\n\t#define USE_SPECULAR\n#endif\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float roughness;\nuniform float metalness;\nuniform float opacity;\n#ifdef IOR\n\tuniform float ior;\n#endif\n#ifdef USE_SPECULAR\n\tuniform float specularIntensity;\n\tuniform vec3 specularColor;\n\t#ifdef USE_SPECULAR_COLORMAP\n\t\tuniform sampler2D specularColorMap;\n\t#endif\n\t#ifdef USE_SPECULAR_INTENSITYMAP\n\t\tuniform sampler2D specularIntensityMap;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT\n\tuniform float clearcoat;\n\tuniform float clearcoatRoughness;\n#endif\n#ifdef USE_IRIDESCENCE\n\tuniform float iridescence;\n\tuniform float iridescenceIOR;\n\tuniform float iridescenceThicknessMinimum;\n\tuniform float iridescenceThicknessMaximum;\n#endif\n#ifdef USE_SHEEN\n\tuniform vec3 sheenColor;\n\tuniform float sheenRoughness;\n\t#ifdef USE_SHEEN_COLORMAP\n\t\tuniform sampler2D sheenColorMap;\n\t#endif\n\t#ifdef USE_SHEEN_ROUGHNESSMAP\n\t\tuniform sampler2D sheenRoughnessMap;\n\t#endif\n#endif\n#ifdef USE_ANISOTROPY\n\tuniform vec2 anisotropyVector;\n\t#ifdef USE_ANISOTROPYMAP\n\t\tuniform sampler2D anisotropyMap;\n\t#endif\n#endif\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;\n\tvec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;\n\t#include \n\tvec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;\n\t#ifdef USE_SHEEN\n\t\tfloat sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor );\n\t\toutgoingLight = outgoingLight * sheenEnergyComp + sheenSpecularDirect + sheenSpecularIndirect;\n\t#endif\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNVcc = saturate( dot( geometryClearcoatNormal, geometryViewDir ) );\n\t\tvec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );\n\t\toutgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + ( clearcoatSpecularDirect + clearcoatSpecularIndirect ) * material.clearcoat;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshtoon_vert:"#define TOON\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n}",meshtoon_frag:"#define TOON\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",points_vert:"uniform float size;\nuniform float scale;\n#include \n#include \n#include \n#include \n#include \n#include \n#ifdef USE_POINTS_UV\n\tvarying vec2 vUv;\n\tuniform mat3 uvTransform;\n#endif\nvoid main() {\n\t#ifdef USE_POINTS_UV\n\t\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tgl_PointSize = size;\n\t#ifdef USE_SIZEATTENUATION\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\n\t\tif ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z );\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n}",points_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",shadow_vert:"#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",shadow_frag:"uniform vec3 color;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tgl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) );\n\t#include \n\t#include \n\t#include \n}",sprite_vert:"uniform float rotation;\nuniform vec2 center;\n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );\n\tvec2 scale;\n\tscale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) );\n\tscale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) );\n\t#ifndef USE_SIZEATTENUATION\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\n\t\tif ( isPerspective ) scale *= - mvPosition.z;\n\t#endif\n\tvec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale;\n\tvec2 rotatedPosition;\n\trotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;\n\trotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;\n\tmvPosition.xy += rotatedPosition;\n\tgl_Position = projectionMatrix * mvPosition;\n\t#include \n\t#include \n\t#include \n}",sprite_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n}"},ds={common:{diffuse:{value:new Os(16777215)},opacity:{value:1},map:{value:null},mapTransform:{value:new zo},alphaMap:{value:null},alphaMapTransform:{value:new zo},alphaTest:{value:0}},specularmap:{specularMap:{value:null},specularMapTransform:{value:new zo}},envmap:{envMap:{value:null},flipEnvMap:{value:-1},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1},aoMapTransform:{value:new zo}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1},lightMapTransform:{value:new zo}},bumpmap:{bumpMap:{value:null},bumpMapTransform:{value:new zo},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalMapTransform:{value:new zo},normalScale:{value:new Ui(1,1)}},displacementmap:{displacementMap:{value:null},displacementMapTransform:{value:new zo},displacementScale:{value:1},displacementBias:{value:0}},emissivemap:{emissiveMap:{value:null},emissiveMapTransform:{value:new zo}},metalnessmap:{metalnessMap:{value:null},metalnessMapTransform:{value:new zo}},roughnessmap:{roughnessMap:{value:null},roughnessMapTransform:{value:new zo}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new Os(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotLightMap:{value:[]},spotShadowMap:{value:[]},spotLightMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null}},points:{diffuse:{value:new Os(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaMapTransform:{value:new zo},alphaTest:{value:0},uvTransform:{value:new zo}},sprite:{diffuse:{value:new Os(16777215)},opacity:{value:1},center:{value:new Ui(.5,.5)},rotation:{value:0},map:{value:null},mapTransform:{value:new zo},alphaMap:{value:null},alphaMapTransform:{value:new zo},alphaTest:{value:0}}},mh={basic:{uniforms:Ia([ds.common,ds.specularmap,ds.envmap,ds.aomap,ds.lightmap,ds.fog]),vertexShader:Ko.meshbasic_vert,fragmentShader:Ko.meshbasic_frag},lambert:{uniforms:Ia([ds.common,ds.specularmap,ds.envmap,ds.aomap,ds.lightmap,ds.emissivemap,ds.bumpmap,ds.normalmap,ds.displacementmap,ds.fog,ds.lights,{emissive:{value:new Os(0)}}]),vertexShader:Ko.meshlambert_vert,fragmentShader:Ko.meshlambert_frag},phong:{uniforms:Ia([ds.common,ds.specularmap,ds.envmap,ds.aomap,ds.lightmap,ds.emissivemap,ds.bumpmap,ds.normalmap,ds.displacementmap,ds.fog,ds.lights,{emissive:{value:new Os(0)},specular:{value:new Os(1118481)},shininess:{value:30}}]),vertexShader:Ko.meshphong_vert,fragmentShader:Ko.meshphong_frag},standard:{uniforms:Ia([ds.common,ds.envmap,ds.aomap,ds.lightmap,ds.emissivemap,ds.bumpmap,ds.normalmap,ds.displacementmap,ds.roughnessmap,ds.metalnessmap,ds.fog,ds.lights,{emissive:{value:new Os(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:Ko.meshphysical_vert,fragmentShader:Ko.meshphysical_frag},toon:{uniforms:Ia([ds.common,ds.aomap,ds.lightmap,ds.emissivemap,ds.bumpmap,ds.normalmap,ds.displacementmap,ds.gradientmap,ds.fog,ds.lights,{emissive:{value:new Os(0)}}]),vertexShader:Ko.meshtoon_vert,fragmentShader:Ko.meshtoon_frag},matcap:{uniforms:Ia([ds.common,ds.bumpmap,ds.normalmap,ds.displacementmap,ds.fog,{matcap:{value:null}}]),vertexShader:Ko.meshmatcap_vert,fragmentShader:Ko.meshmatcap_frag},points:{uniforms:Ia([ds.points,ds.fog]),vertexShader:Ko.points_vert,fragmentShader:Ko.points_frag},dashed:{uniforms:Ia([ds.common,ds.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:Ko.linedashed_vert,fragmentShader:Ko.linedashed_frag},depth:{uniforms:Ia([ds.common,ds.displacementmap]),vertexShader:Ko.depth_vert,fragmentShader:Ko.depth_frag},normal:{uniforms:Ia([ds.common,ds.bumpmap,ds.normalmap,ds.displacementmap,{opacity:{value:1}}]),vertexShader:Ko.meshnormal_vert,fragmentShader:Ko.meshnormal_frag},sprite:{uniforms:Ia([ds.sprite,ds.fog]),vertexShader:Ko.sprite_vert,fragmentShader:Ko.sprite_frag},background:{uniforms:{uvTransform:{value:new zo},t2D:{value:null},backgroundIntensity:{value:1}},vertexShader:Ko.background_vert,fragmentShader:Ko.background_frag},backgroundCube:{uniforms:{envMap:{value:null},flipEnvMap:{value:-1},backgroundBlurriness:{value:0},backgroundIntensity:{value:1}},vertexShader:Ko.backgroundCube_vert,fragmentShader:Ko.backgroundCube_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:Ko.cube_vert,fragmentShader:Ko.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:Ko.equirect_vert,fragmentShader:Ko.equirect_frag},distanceRGBA:{uniforms:Ia([ds.common,ds.displacementmap,{referencePosition:{value:new Ft},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:Ko.distanceRGBA_vert,fragmentShader:Ko.distanceRGBA_frag},shadow:{uniforms:Ia([ds.lights,ds.fog,{color:{value:new Os(0)},opacity:{value:1}}]),vertexShader:Ko.shadow_vert,fragmentShader:Ko.shadow_frag}};mh.physical={uniforms:Ia([mh.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatMapTransform:{value:new zo},clearcoatNormalMap:{value:null},clearcoatNormalMapTransform:{value:new zo},clearcoatNormalScale:{value:new Ui(1,1)},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatRoughnessMapTransform:{value:new zo},iridescence:{value:0},iridescenceMap:{value:null},iridescenceMapTransform:{value:new zo},iridescenceIOR:{value:1.3},iridescenceThicknessMinimum:{value:100},iridescenceThicknessMaximum:{value:400},iridescenceThicknessMap:{value:null},iridescenceThicknessMapTransform:{value:new zo},sheen:{value:0},sheenColor:{value:new Os(0)},sheenColorMap:{value:null},sheenColorMapTransform:{value:new zo},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},sheenRoughnessMapTransform:{value:new zo},transmission:{value:0},transmissionMap:{value:null},transmissionMapTransform:{value:new zo},transmissionSamplerSize:{value:new Ui},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},thicknessMapTransform:{value:new zo},attenuationDistance:{value:0},attenuationColor:{value:new Os(0)},specularColor:{value:new Os(1,1,1)},specularColorMap:{value:null},specularColorMapTransform:{value:new zo},specularIntensity:{value:1},specularIntensityMap:{value:null},specularIntensityMapTransform:{value:new zo},anisotropyVector:{value:new Ui},anisotropyMap:{value:null},anisotropyMapTransform:{value:new zo}}]),vertexShader:Ko.meshphysical_vert,fragmentShader:Ko.meshphysical_frag};const Hm={r:0,b:0,g:0};function U1(w,a,c,h,m,M,N){const q=new Os(0);let pe,xe,de=!0===M?0:1,Ie=null,Be=0,Le=null;function ft(Qe,ze){Qe.getRGB(Hm,Fc(w)),h.buffers.color.setClear(Hm.r,Hm.g,Hm.b,ze,N)}return{getClearColor:function(){return q},setClearColor:function(Qe,ze=1){q.set(Qe),de=ze,ft(q,de)},getClearAlpha:function(){return de},setClearAlpha:function(Qe){de=Qe,ft(q,de)},render:function Ke(Qe,ze){let Ct=!1,ct=!0===ze.isScene?ze.background:null;ct&&ct.isTexture&&(ct=(ze.backgroundBlurriness>0?c:a).get(ct)),null===ct?ft(q,de):ct&&ct.isColor&&(ft(ct,1),Ct=!0);const Dt=w.xr.getEnvironmentBlendMode();"additive"===Dt?h.buffers.color.setClear(0,0,0,1,N):"alpha-blend"===Dt&&h.buffers.color.setClear(0,0,0,0,N),(w.autoClear||Ct)&&w.clear(w.autoClearColor,w.autoClearDepth,w.autoClearStencil),ct&&(ct.isCubeTexture||ct.mapping===Sn)?(void 0===xe&&(xe=new Jc(new Ch(1,1,1),new zl({name:"BackgroundCubeMaterial",uniforms:cs(mh.backgroundCube.uniforms),vertexShader:mh.backgroundCube.vertexShader,fragmentShader:mh.backgroundCube.fragmentShader,side:1,depthTest:!1,depthWrite:!1,fog:!1})),xe.geometry.deleteAttribute("normal"),xe.geometry.deleteAttribute("uv"),xe.onBeforeRender=function(Jt,ln,rn){this.matrixWorld.copyPosition(rn.matrixWorld)},Object.defineProperty(xe.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),m.update(xe)),xe.material.uniforms.envMap.value=ct,xe.material.uniforms.flipEnvMap.value=ct.isCubeTexture&&!1===ct.isRenderTargetTexture?-1:1,xe.material.uniforms.backgroundBlurriness.value=ze.backgroundBlurriness,xe.material.uniforms.backgroundIntensity.value=ze.backgroundIntensity,xe.material.toneMapped=Ya.getTransfer(ct.colorSpace)!==$o,(Ie!==ct||Be!==ct.version||Le!==w.toneMapping)&&(xe.material.needsUpdate=!0,Ie=ct,Be=ct.version,Le=w.toneMapping),xe.layers.enableAll(),Qe.unshift(xe,xe.geometry,xe.material,0,0,null)):ct&&ct.isTexture&&(void 0===pe&&(pe=new Jc(new sf(2,2),new zl({name:"BackgroundMaterial",uniforms:cs(mh.background.uniforms),vertexShader:mh.background.vertexShader,fragmentShader:mh.background.fragmentShader,side:F,depthTest:!1,depthWrite:!1,fog:!1})),pe.geometry.deleteAttribute("normal"),Object.defineProperty(pe.material,"map",{get:function(){return this.uniforms.t2D.value}}),m.update(pe)),pe.material.uniforms.t2D.value=ct,pe.material.uniforms.backgroundIntensity.value=ze.backgroundIntensity,pe.material.toneMapped=Ya.getTransfer(ct.colorSpace)!==$o,!0===ct.matrixAutoUpdate&&ct.updateMatrix(),pe.material.uniforms.uvTransform.value.copy(ct.matrix),(Ie!==ct||Be!==ct.version||Le!==w.toneMapping)&&(pe.material.needsUpdate=!0,Ie=ct,Be=ct.version,Le=w.toneMapping),pe.layers.enableAll(),Qe.unshift(pe,pe.geometry,pe.material,0,0,null))}}}function z1(w,a,c,h){const m=w.getParameter(w.MAX_VERTEX_ATTRIBS),M=h.isWebGL2?null:a.get("OES_vertex_array_object"),N=h.isWebGL2||null!==M,q={},de=Qe(null);let pe=de,xe=!1;function Le(Yn){return h.isWebGL2?w.bindVertexArray(Yn):M.bindVertexArrayOES(Yn)}function Ke(Yn){return h.isWebGL2?w.deleteVertexArray(Yn):M.deleteVertexArrayOES(Yn)}function Qe(Yn){const Di=[],rr=[],Oi=[];for(let br=0;br=0){const xs=br[sr];let Ds=Ji[sr];if(void 0===Ds&&("instanceMatrix"===sr&&Yn.instanceMatrix&&(Ds=Yn.instanceMatrix),"instanceColor"===sr&&Yn.instanceColor&&(Ds=Yn.instanceColor)),void 0===xs||xs.attribute!==Ds||Ds&&xs.data!==Ds.data)return!0;lr++}return pe.attributesNum!==lr||pe.index!==Oi}(Yn,Oi,rr,br),Ji&&function Ct(Yn,Di,rr,Oi){const br={},Ji=Di.attributes;let lr=0;const ei=rr.getAttributes();for(const sr in ei)if(ei[sr].location>=0){let xs=Ji[sr];void 0===xs&&("instanceMatrix"===sr&&Yn.instanceMatrix&&(xs=Yn.instanceMatrix),"instanceColor"===sr&&Yn.instanceColor&&(xs=Yn.instanceColor));const Ds={};Ds.attribute=xs,xs&&xs.data&&(Ds.data=xs.data),br[sr]=Ds,lr++}pe.attributes=br,pe.attributesNum=lr,pe.index=Oi}(Yn,Oi,rr,br)}else{const lr=!0===Di.wireframe;(pe.geometry!==Oi.id||pe.program!==rr.id||pe.wireframe!==lr)&&(pe.geometry=Oi.id,pe.program=rr.id,pe.wireframe=lr,Ji=!0)}null!==br&&c.update(br,w.ELEMENT_ARRAY_BUFFER),(Ji||xe)&&(xe=!1,function Rn(Yn,Di,rr,Oi){if(!1===h.isWebGL2&&(Yn.isInstancedMesh||Oi.isInstancedBufferGeometry)&&null===a.get("ANGLE_instanced_arrays"))return;ct();const br=Oi.attributes,Ji=rr.getAttributes(),lr=Di.defaultAttributeValues;for(const ei in Ji){const sr=Ji[ei];if(sr.location>=0){let as=br[ei];if(void 0===as&&("instanceMatrix"===ei&&Yn.instanceMatrix&&(as=Yn.instanceMatrix),"instanceColor"===ei&&Yn.instanceColor&&(as=Yn.instanceColor)),void 0!==as){const xs=as.normalized,Ds=as.itemSize,fs=c.get(as);if(void 0===fs)continue;const eo=fs.buffer,er=fs.type,Or=fs.bytesPerElement,yr=!0===h.isWebGL2&&(er===w.INT||er===w.UNSIGNED_INT||1013===as.gpuType);if(as.isInterleavedBufferAttribute){const vr=as.data,_n=vr.stride,Ki=as.offset;if(vr.isInstancedInterleavedBuffer){for(let si=0;si0&&w.getShaderPrecisionFormat(w.FRAGMENT_SHADER,w.HIGH_FLOAT).precision>0)return"highp";rn="mediump"}return"mediump"===rn&&w.getShaderPrecisionFormat(w.VERTEX_SHADER,w.MEDIUM_FLOAT).precision>0&&w.getShaderPrecisionFormat(w.FRAGMENT_SHADER,w.MEDIUM_FLOAT).precision>0?"mediump":"lowp"}const N=typeof WebGL2RenderingContext<"u"&&"WebGL2RenderingContext"===w.constructor.name;let q=void 0!==c.precision?c.precision:"highp";const de=M(q);de!==q&&(console.warn("THREE.WebGLRenderer:",q,"not supported, using",de,"instead."),q=de);const pe=N||a.has("WEBGL_draw_buffers"),xe=!0===c.logarithmicDepthBuffer,Ie=w.getParameter(w.MAX_TEXTURE_IMAGE_UNITS),Be=w.getParameter(w.MAX_VERTEX_TEXTURE_IMAGE_UNITS),Le=w.getParameter(w.MAX_TEXTURE_SIZE),Ke=w.getParameter(w.MAX_CUBE_MAP_TEXTURE_SIZE),ft=w.getParameter(w.MAX_VERTEX_ATTRIBS),Qe=w.getParameter(w.MAX_VERTEX_UNIFORM_VECTORS),ze=w.getParameter(w.MAX_VARYING_VECTORS),Ct=w.getParameter(w.MAX_FRAGMENT_UNIFORM_VECTORS),ct=Be>0,Dt=N||a.has("OES_texture_float");return{isWebGL2:N,drawBuffers:pe,getMaxAnisotropy:function m(){if(void 0!==h)return h;if(!0===a.has("EXT_texture_filter_anisotropic")){const rn=a.get("EXT_texture_filter_anisotropic");h=w.getParameter(rn.MAX_TEXTURE_MAX_ANISOTROPY_EXT)}else h=0;return h},getMaxPrecision:M,precision:q,logarithmicDepthBuffer:xe,maxTextures:Ie,maxVertexTextures:Be,maxTextureSize:Le,maxCubemapSize:Ke,maxAttributes:ft,maxVertexUniforms:Qe,maxVaryings:ze,maxFragmentUniforms:Ct,vertexTextures:ct,floatFragmentTextures:Dt,floatVertexTextures:ct&&Dt,maxSamples:N?w.getParameter(w.MAX_SAMPLES):0}}function bv(w){const a=this;let c=null,h=0,m=!1,M=!1;const N=new nh,q=new zo,de={value:null,needsUpdate:!1};function xe(Ie,Be,Le,Ke){const ft=null!==Ie?Ie.length:0;let Qe=null;if(0!==ft){if(Qe=de.value,!0!==Ke||null===Qe){const ze=Le+4*ft,Ct=Be.matrixWorldInverse;q.getNormalMatrix(Ct),(null===Qe||Qe.length0),a.numPlanes=h,a.numIntersection=0}();else{const Ct=M?0:h,ct=4*Ct;let Dt=ze.clippingState||null;de.value=Dt,Dt=xe(Ke,Be,ct,Le);for(let Jt=0;Jt!==ct;++Jt)Dt[Jt]=c[Jt];ze.clippingState=Dt,this.numIntersection=ft?this.numPlanes:0,this.numPlanes+=Ct}}}class sp extends Rl{constructor(){super(),this.isCamera=!0,this.type="Camera",this.matrixWorldInverse=new bo,this.projectionMatrix=new bo,this.projectionMatrixInverse=new bo,this.coordinateSystem=Dd}copy(a,c){return super.copy(a,c),this.matrixWorldInverse.copy(a.matrixWorldInverse),this.projectionMatrix.copy(a.projectionMatrix),this.projectionMatrixInverse.copy(a.projectionMatrixInverse),this.coordinateSystem=a.coordinateSystem,this}getWorldDirection(a){return super.getWorldDirection(a).negate()}updateMatrixWorld(a){super.updateMatrixWorld(a),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(a,c){super.updateWorldMatrix(a,c),this.matrixWorldInverse.copy(this.matrixWorld).invert()}clone(){return(new this.constructor).copy(this)}}class Vl extends sp{constructor(a=50,c=1,h=.1,m=2e3){super(),this.isPerspectiveCamera=!0,this.type="PerspectiveCamera",this.fov=a,this.zoom=1,this.near=h,this.far=m,this.focus=10,this.aspect=c,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}copy(a,c){return super.copy(a,c),this.fov=a.fov,this.zoom=a.zoom,this.near=a.near,this.far=a.far,this.focus=a.focus,this.aspect=a.aspect,this.view=null===a.view?null:Object.assign({},a.view),this.filmGauge=a.filmGauge,this.filmOffset=a.filmOffset,this}setFocalLength(a){const c=.5*this.getFilmHeight()/a;this.fov=2*pd*Math.atan(c),this.updateProjectionMatrix()}getFocalLength(){const a=Math.tan(.5*$d*this.fov);return.5*this.getFilmHeight()/a}getEffectiveFOV(){return 2*pd*Math.atan(Math.tan(.5*$d*this.fov)/this.zoom)}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1)}getFilmHeight(){return this.filmGauge/Math.max(this.aspect,1)}setViewOffset(a,c,h,m,M,N){this.aspect=a/c,null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=a,this.view.fullHeight=c,this.view.offsetX=h,this.view.offsetY=m,this.view.width=M,this.view.height=N,this.updateProjectionMatrix()}clearViewOffset(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const a=this.near;let c=a*Math.tan(.5*$d*this.fov)/this.zoom,h=2*c,m=this.aspect*h,M=-.5*m;const N=this.view;if(null!==this.view&&this.view.enabled){const de=N.fullWidth,pe=N.fullHeight;M+=N.offsetX*m/de,c-=N.offsetY*h/pe,m*=N.width/de,h*=N.height/pe}const q=this.filmOffset;0!==q&&(M+=a*q/this.getFilmWidth()),this.projectionMatrix.makePerspective(M,M+m,c,c-h,a,this.far,this.coordinateSystem),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(a){const c=super.toJSON(a);return c.object.fov=this.fov,c.object.zoom=this.zoom,c.object.near=this.near,c.object.far=this.far,c.object.focus=this.focus,c.object.aspect=this.aspect,null!==this.view&&(c.object.view=Object.assign({},this.view)),c.object.filmGauge=this.filmGauge,c.object.filmOffset=this.filmOffset,c}}class ml extends Rl{constructor(a,c,h){super(),this.type="CubeCamera",this.renderTarget=h,this.coordinateSystem=null,this.activeMipmapLevel=0;const m=new Vl(-90,1,a,c);m.layers=this.layers,this.add(m);const M=new Vl(-90,1,a,c);M.layers=this.layers,this.add(M);const N=new Vl(-90,1,a,c);N.layers=this.layers,this.add(N);const q=new Vl(-90,1,a,c);q.layers=this.layers,this.add(q);const de=new Vl(-90,1,a,c);de.layers=this.layers,this.add(de);const pe=new Vl(-90,1,a,c);pe.layers=this.layers,this.add(pe)}updateCoordinateSystem(){const a=this.coordinateSystem,c=this.children.concat(),[h,m,M,N,q,de]=c;for(const pe of c)this.remove(pe);if(a===Dd)h.up.set(0,1,0),h.lookAt(1,0,0),m.up.set(0,1,0),m.lookAt(-1,0,0),M.up.set(0,0,-1),M.lookAt(0,1,0),N.up.set(0,0,1),N.lookAt(0,-1,0),q.up.set(0,1,0),q.lookAt(0,0,1),de.up.set(0,1,0),de.lookAt(0,0,-1);else{if(2001!==a)throw new Error("THREE.CubeCamera.updateCoordinateSystem(): Invalid coordinate system: "+a);h.up.set(0,-1,0),h.lookAt(-1,0,0),m.up.set(0,-1,0),m.lookAt(1,0,0),M.up.set(0,0,1),M.lookAt(0,1,0),N.up.set(0,0,-1),N.lookAt(0,-1,0),q.up.set(0,-1,0),q.lookAt(0,0,1),de.up.set(0,-1,0),de.lookAt(0,0,-1)}for(const pe of c)this.add(pe),pe.updateMatrixWorld()}update(a,c){null===this.parent&&this.updateMatrixWorld();const{renderTarget:h,activeMipmapLevel:m}=this;this.coordinateSystem!==a.coordinateSystem&&(this.coordinateSystem=a.coordinateSystem,this.updateCoordinateSystem());const[M,N,q,de,pe,xe]=this.children,Ie=a.getRenderTarget(),Be=a.getActiveCubeFace(),Le=a.getActiveMipmapLevel(),Ke=a.xr.enabled;a.xr.enabled=!1;const ft=h.texture.generateMipmaps;h.texture.generateMipmaps=!1,a.setRenderTarget(h,0,m),a.render(c,M),a.setRenderTarget(h,1,m),a.render(c,N),a.setRenderTarget(h,2,m),a.render(c,q),a.setRenderTarget(h,3,m),a.render(c,de),a.setRenderTarget(h,4,m),a.render(c,pe),h.texture.generateMipmaps=ft,a.setRenderTarget(h,5,m),a.render(c,xe),a.setRenderTarget(Ie,Be,Le),a.xr.enabled=Ke,h.texture.needsPMREMUpdate=!0}}class jp extends vu{constructor(a,c,h,m,M,N,q,de,pe,xe){super(a=void 0!==a?a:[],c=void 0!==c?c:Dn,h,m,M,N,q,de,pe,xe),this.isCubeTexture=!0,this.flipY=!1}get images(){return this.image}set images(a){this.image=a}}class HA extends Fu{constructor(a=1,c={}){super(a,a,c),this.isWebGLCubeRenderTarget=!0;const h={width:a,height:a,depth:1},m=[h,h,h,h,h,h];void 0!==c.encoding&&(Cm("THREE.WebGLCubeRenderTarget: option.encoding has been replaced by option.colorSpace."),c.colorSpace=c.encoding===$l?ll:""),this.texture=new jp(m,c.mapping,c.wrapS,c.wrapT,c.magFilter,c.minFilter,c.format,c.type,c.anisotropy,c.colorSpace),this.texture.isRenderTargetTexture=!0,this.texture.generateMipmaps=void 0!==c.generateMipmaps&&c.generateMipmaps,this.texture.minFilter=void 0!==c.minFilter?c.minFilter:xt}fromEquirectangularTexture(a,c){this.texture.type=c.type,this.texture.colorSpace=c.colorSpace,this.texture.generateMipmaps=c.generateMipmaps,this.texture.minFilter=c.minFilter,this.texture.magFilter=c.magFilter;const h_uniforms={tEquirect:{value:null}},h_vertexShader="\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\tvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\n\t\t\t\t\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n\n\t\t\t\t}\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvWorldDirection = transformDirection( position, modelMatrix );\n\n\t\t\t\t\t#include \n\t\t\t\t\t#include \n\n\t\t\t\t}\n\t\t\t",h_fragmentShader="\n\n\t\t\t\tuniform sampler2D tEquirect;\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\t#include \n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvec3 direction = normalize( vWorldDirection );\n\n\t\t\t\t\tvec2 sampleUV = equirectUv( direction );\n\n\t\t\t\t\tgl_FragColor = texture2D( tEquirect, sampleUV );\n\n\t\t\t\t}\n\t\t\t",m=new Ch(5,5,5),M=new zl({name:"CubemapFromEquirect",uniforms:cs(h_uniforms),vertexShader:h_vertexShader,fragmentShader:h_fragmentShader,side:1,blending:0});M.uniforms.tEquirect.value=c;const N=new Jc(m,M),q=c.minFilter;return c.minFilter===ye&&(c.minFilter=xt),new ml(1,10,this).update(a,N),c.minFilter=q,N.geometry.dispose(),N.material.dispose(),this}clear(a,c,h,m){const M=a.getRenderTarget();for(let N=0;N<6;N++)a.setRenderTarget(this,N),a.clear(c,h,m);a.setRenderTarget(M)}}function op(w){let a=new WeakMap;function c(N,q){return 303===q?N.mapping=Dn:304===q&&(N.mapping=$n),N}function m(N){const q=N.target;q.removeEventListener("dispose",m);const de=a.get(q);void 0!==de&&(a.delete(q),de.dispose())}return{get:function h(N){if(N&&N.isTexture&&!1===N.isRenderTargetTexture){const q=N.mapping;if(303===q||304===q){if(a.has(N))return c(a.get(N).texture,N.mapping);{const de=N.image;if(de&&de.height>0){const pe=new HA(de.height/2);return pe.fromEquirectangularTexture(w,N),a.set(N,pe),N.addEventListener("dispose",m),c(pe.texture,N.mapping)}return null}}}return N},dispose:function M(){a=new WeakMap}}}class kd extends sp{constructor(a=-1,c=1,h=1,m=-1,M=.1,N=2e3){super(),this.isOrthographicCamera=!0,this.type="OrthographicCamera",this.zoom=1,this.view=null,this.left=a,this.right=c,this.top=h,this.bottom=m,this.near=M,this.far=N,this.updateProjectionMatrix()}copy(a,c){return super.copy(a,c),this.left=a.left,this.right=a.right,this.top=a.top,this.bottom=a.bottom,this.near=a.near,this.far=a.far,this.zoom=a.zoom,this.view=null===a.view?null:Object.assign({},a.view),this}setViewOffset(a,c,h,m,M,N){null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=a,this.view.fullHeight=c,this.view.offsetX=h,this.view.offsetY=m,this.view.width=M,this.view.height=N,this.updateProjectionMatrix()}clearViewOffset(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const a=(this.right-this.left)/(2*this.zoom),c=(this.top-this.bottom)/(2*this.zoom),h=(this.right+this.left)/2,m=(this.top+this.bottom)/2;let M=h-a,N=h+a,q=m+c,de=m-c;if(null!==this.view&&this.view.enabled){const pe=(this.right-this.left)/this.view.fullWidth/this.zoom,xe=(this.top-this.bottom)/this.view.fullHeight/this.zoom;M+=pe*this.view.offsetX,N=M+pe*this.view.width,q-=xe*this.view.offsetY,de=q-xe*this.view.height}this.projectionMatrix.makeOrthographic(M,N,q,de,this.near,this.far,this.coordinateSystem),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(a){const c=super.toJSON(a);return c.object.zoom=this.zoom,c.object.left=this.left,c.object.right=this.right,c.object.top=this.top,c.object.bottom=this.bottom,c.object.near=this.near,c.object.far=this.far,null!==this.view&&(c.object.view=Object.assign({},this.view)),c}}const n0=[.125,.215,.35,.446,.526,.582],A_=new kd,VA=new Os;let Vm=null,V1=0,r0=0;const Gm=(1+Math.sqrt(5))/2,GA=1/Gm,g_=[new Ft(1,1,1),new Ft(-1,1,1),new Ft(1,1,-1),new Ft(-1,1,-1),new Ft(0,Gm,GA),new Ft(0,Gm,-GA),new Ft(GA,0,Gm),new Ft(-GA,0,Gm),new Ft(Gm,GA,0),new Ft(-Gm,GA,0)];class __{constructor(a){this._renderer=a,this._pingPongRenderTarget=null,this._lodMax=0,this._cubeSize=0,this._lodPlanes=[],this._sizeLods=[],this._sigmas=[],this._blurMaterial=null,this._cubemapMaterial=null,this._equirectMaterial=null,this._compileMaterial(this._blurMaterial)}fromScene(a,c=0,h=.1,m=100){Vm=this._renderer.getRenderTarget(),V1=this._renderer.getActiveCubeFace(),r0=this._renderer.getActiveMipmapLevel(),this._setSize(256);const M=this._allocateTargets();return M.depthBuffer=!0,this._sceneToCubeUV(a,h,m,M),c>0&&this._blur(M,0,0,c),this._applyPMREM(M),this._cleanup(M),M}fromEquirectangular(a,c=null){return this._fromTexture(a,c)}fromCubemap(a,c=null){return this._fromTexture(a,c)}compileCubemapShader(){null===this._cubemapMaterial&&(this._cubemapMaterial=Ls(),this._compileMaterial(this._cubemapMaterial))}compileEquirectangularShader(){null===this._equirectMaterial&&(this._equirectMaterial=Wm(),this._compileMaterial(this._equirectMaterial))}dispose(){this._dispose(),null!==this._cubemapMaterial&&this._cubemapMaterial.dispose(),null!==this._equirectMaterial&&this._equirectMaterial.dispose()}_setSize(a){this._lodMax=Math.floor(Math.log2(a)),this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){null!==this._blurMaterial&&this._blurMaterial.dispose(),null!==this._pingPongRenderTarget&&this._pingPongRenderTarget.dispose();for(let a=0;aw-4?de=n0[N-w+4-1]:0===N&&(de=0),h.push(de);const pe=1/(q-2),xe=-pe,Ie=1+pe,Be=[xe,xe,Ie,xe,Ie,Ie,xe,xe,Ie,Ie,xe,Ie],Le=6,Ke=6,ft=3,Qe=2,ze=1,Ct=new Float32Array(ft*Ke*Le),ct=new Float32Array(Qe*Ke*Le),Dt=new Float32Array(ze*Ke*Le);for(let ln=0;ln2?0:-1;Ct.set([rn,Rn,0,rn+2/3,Rn,0,rn+2/3,Rn+1,0,rn,Rn,0,rn+2/3,Rn+1,0,rn,Rn+1,0],ft*Ke*ln),ct.set(Be,Qe*Ke*ln),Dt.set([ln,ln,ln,ln,ln,ln],ze*Ke*ln)}const Jt=new Cs;Jt.setAttribute("position",new sa(Ct,ft)),Jt.setAttribute("uv",new sa(ct,Qe)),Jt.setAttribute("faceIndex",new sa(Dt,ze)),a.push(Jt),m>4&&m--}return{lodPlanes:a,sizeLods:c,sigmas:h}}(M)),this._blurMaterial=function y_(w,a,c){const h=new Float32Array(20),m=new Ft(0,1,0);return new zl({name:"SphericalGaussianBlur",defines:{n:20,CUBEUV_TEXEL_WIDTH:1/a,CUBEUV_TEXEL_HEIGHT:1/c,CUBEUV_MAX_MIP:`${w}.0`},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:h},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:m}},vertexShader:"\n\n\t\tprecision mediump float;\n\t\tprecision mediump int;\n\n\t\tattribute float faceIndex;\n\n\t\tvarying vec3 vOutputDirection;\n\n\t\t// RH coordinate system; PMREM face-indexing convention\n\t\tvec3 getDirection( vec2 uv, float face ) {\n\n\t\t\tuv = 2.0 * uv - 1.0;\n\n\t\t\tvec3 direction = vec3( uv, 1.0 );\n\n\t\t\tif ( face == 0.0 ) {\n\n\t\t\t\tdirection = direction.zyx; // ( 1, v, u ) pos x\n\n\t\t\t} else if ( face == 1.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xz *= -1.0; // ( -u, 1, -v ) pos y\n\n\t\t\t} else if ( face == 2.0 ) {\n\n\t\t\t\tdirection.x *= -1.0; // ( -u, v, 1 ) pos z\n\n\t\t\t} else if ( face == 3.0 ) {\n\n\t\t\t\tdirection = direction.zyx;\n\t\t\t\tdirection.xz *= -1.0; // ( -1, v, -u ) neg x\n\n\t\t\t} else if ( face == 4.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xy *= -1.0; // ( -u, -1, v ) neg y\n\n\t\t\t} else if ( face == 5.0 ) {\n\n\t\t\t\tdirection.z *= -1.0; // ( u, v, -1 ) neg z\n\n\t\t\t}\n\n\t\t\treturn direction;\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\tvOutputDirection = getDirection( uv, faceIndex );\n\t\t\tgl_Position = vec4( position, 1.0 );\n\n\t\t}\n\t",fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\t\t\tuniform int samples;\n\t\t\tuniform float weights[ n ];\n\t\t\tuniform bool latitudinal;\n\t\t\tuniform float dTheta;\n\t\t\tuniform float mipInt;\n\t\t\tuniform vec3 poleAxis;\n\n\t\t\t#define ENVMAP_TYPE_CUBE_UV\n\t\t\t#include \n\n\t\t\tvec3 getSample( float theta, vec3 axis ) {\n\n\t\t\t\tfloat cosTheta = cos( theta );\n\t\t\t\t// Rodrigues' axis-angle rotation\n\t\t\t\tvec3 sampleDirection = vOutputDirection * cosTheta\n\t\t\t\t\t+ cross( axis, vOutputDirection ) * sin( theta )\n\t\t\t\t\t+ axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta );\n\n\t\t\t\treturn bilinearCubeUV( envMap, sampleDirection, mipInt );\n\n\t\t\t}\n\n\t\t\tvoid main() {\n\n\t\t\t\tvec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection );\n\n\t\t\t\tif ( all( equal( axis, vec3( 0.0 ) ) ) ) {\n\n\t\t\t\t\taxis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x );\n\n\t\t\t\t}\n\n\t\t\t\taxis = normalize( axis );\n\n\t\t\t\tgl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\t\t\t\tgl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis );\n\n\t\t\t\tfor ( int i = 1; i < n; i++ ) {\n\n\t\t\t\t\tif ( i >= samples ) {\n\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tfloat theta = dTheta * float( i );\n\t\t\t\t\tgl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis );\n\t\t\t\t\tgl_FragColor.rgb += weights[ i ] * getSample( theta, axis );\n\n\t\t\t\t}\n\n\t\t\t}\n\t\t",blending:0,depthTest:!1,depthWrite:!1})}(M,a,c)}return m}_compileMaterial(a){const c=new Jc(this._lodPlanes[0],a);this._renderer.compile(c,A_)}_sceneToCubeUV(a,c,h,m){const q=new Vl(90,1,c,h),de=[1,-1,1,1,1,1],pe=[1,1,1,-1,-1,-1],xe=this._renderer,Ie=xe.autoClear,Be=xe.toneMapping;xe.getClearColor(VA),xe.toneMapping=pt,xe.autoClear=!1;const Le=new Xc({name:"PMREM.Background",side:1,depthWrite:!1,depthTest:!1}),Ke=new Jc(new Ch,Le);let ft=!1;const Qe=a.background;Qe?Qe.isColor&&(Le.color.copy(Qe),a.background=null,ft=!0):(Le.color.copy(VA),ft=!0);for(let ze=0;ze<6;ze++){const Ct=ze%3;0===Ct?(q.up.set(0,de[ze],0),q.lookAt(pe[ze],0,0)):1===Ct?(q.up.set(0,0,de[ze]),q.lookAt(0,pe[ze],0)):(q.up.set(0,de[ze],0),q.lookAt(0,0,pe[ze]));const ct=this._cubeSize;Qm(m,Ct*ct,ze>2?ct:0,ct,ct),xe.setRenderTarget(m),ft&&xe.render(Ke,q),xe.render(a,q)}Ke.geometry.dispose(),Ke.material.dispose(),xe.toneMapping=Be,xe.autoClear=Ie,a.background=Qe}_textureToCubeUV(a,c){const h=this._renderer,m=a.mapping===Dn||a.mapping===$n;m?(null===this._cubemapMaterial&&(this._cubemapMaterial=Ls()),this._cubemapMaterial.uniforms.flipEnvMap.value=!1===a.isRenderTargetTexture?-1:1):null===this._equirectMaterial&&(this._equirectMaterial=Wm());const M=m?this._cubemapMaterial:this._equirectMaterial,N=new Jc(this._lodPlanes[0],M);M.uniforms.envMap.value=a;const de=this._cubeSize;Qm(c,0,0,3*de,2*de),h.setRenderTarget(c),h.render(N,A_)}_applyPMREM(a){const c=this._renderer,h=c.autoClear;c.autoClear=!1;for(let m=1;m20&&console.warn(`sigmaRadians, ${M}, is too large and will clip, as it requested ${Qe} samples when the maximum is set to 20`);const ze=[];let Ct=0;for(let rn=0;rn<20;++rn){const Rn=rn/ft,kt=Math.exp(-Rn*Rn/2);ze.push(kt),0===rn?Ct+=kt:rnct-4?m-ct+4:0),4*(this._cubeSize-Dt),3*Dt,2*Dt),de.setRenderTarget(c),de.render(Ie,A_)}}function oo(w,a,c){const h=new Fu(w,a,c);return h.texture.mapping=Sn,h.texture.name="PMREM.cubeUv",h.scissorTest=!0,h}function Qm(w,a,c,h,m){w.viewport.set(a,c,h,m),w.scissor.set(a,c,h,m)}function Wm(){return new zl({name:"EquirectangularToCubeUV",uniforms:{envMap:{value:null}},vertexShader:"\n\n\t\tprecision mediump float;\n\t\tprecision mediump int;\n\n\t\tattribute float faceIndex;\n\n\t\tvarying vec3 vOutputDirection;\n\n\t\t// RH coordinate system; PMREM face-indexing convention\n\t\tvec3 getDirection( vec2 uv, float face ) {\n\n\t\t\tuv = 2.0 * uv - 1.0;\n\n\t\t\tvec3 direction = vec3( uv, 1.0 );\n\n\t\t\tif ( face == 0.0 ) {\n\n\t\t\t\tdirection = direction.zyx; // ( 1, v, u ) pos x\n\n\t\t\t} else if ( face == 1.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xz *= -1.0; // ( -u, 1, -v ) pos y\n\n\t\t\t} else if ( face == 2.0 ) {\n\n\t\t\t\tdirection.x *= -1.0; // ( -u, v, 1 ) pos z\n\n\t\t\t} else if ( face == 3.0 ) {\n\n\t\t\t\tdirection = direction.zyx;\n\t\t\t\tdirection.xz *= -1.0; // ( -1, v, -u ) neg x\n\n\t\t\t} else if ( face == 4.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xy *= -1.0; // ( -u, -1, v ) neg y\n\n\t\t\t} else if ( face == 5.0 ) {\n\n\t\t\t\tdirection.z *= -1.0; // ( u, v, -1 ) neg z\n\n\t\t\t}\n\n\t\t\treturn direction;\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\tvOutputDirection = getDirection( uv, faceIndex );\n\t\t\tgl_Position = vec4( position, 1.0 );\n\n\t\t}\n\t",fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\n\t\t\t#include \n\n\t\t\tvoid main() {\n\n\t\t\t\tvec3 outputDirection = normalize( vOutputDirection );\n\t\t\t\tvec2 uv = equirectUv( outputDirection );\n\n\t\t\t\tgl_FragColor = vec4( texture2D ( envMap, uv ).rgb, 1.0 );\n\n\t\t\t}\n\t\t",blending:0,depthTest:!1,depthWrite:!1})}function Ls(){return new zl({name:"CubemapToCubeUV",uniforms:{envMap:{value:null},flipEnvMap:{value:-1}},vertexShader:"\n\n\t\tprecision mediump float;\n\t\tprecision mediump int;\n\n\t\tattribute float faceIndex;\n\n\t\tvarying vec3 vOutputDirection;\n\n\t\t// RH coordinate system; PMREM face-indexing convention\n\t\tvec3 getDirection( vec2 uv, float face ) {\n\n\t\t\tuv = 2.0 * uv - 1.0;\n\n\t\t\tvec3 direction = vec3( uv, 1.0 );\n\n\t\t\tif ( face == 0.0 ) {\n\n\t\t\t\tdirection = direction.zyx; // ( 1, v, u ) pos x\n\n\t\t\t} else if ( face == 1.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xz *= -1.0; // ( -u, 1, -v ) pos y\n\n\t\t\t} else if ( face == 2.0 ) {\n\n\t\t\t\tdirection.x *= -1.0; // ( -u, v, 1 ) pos z\n\n\t\t\t} else if ( face == 3.0 ) {\n\n\t\t\t\tdirection = direction.zyx;\n\t\t\t\tdirection.xz *= -1.0; // ( -1, v, -u ) neg x\n\n\t\t\t} else if ( face == 4.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xy *= -1.0; // ( -u, -1, v ) neg y\n\n\t\t\t} else if ( face == 5.0 ) {\n\n\t\t\t\tdirection.z *= -1.0; // ( u, v, -1 ) neg z\n\n\t\t\t}\n\n\t\t\treturn direction;\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\tvOutputDirection = getDirection( uv, faceIndex );\n\t\t\tgl_Position = vec4( position, 1.0 );\n\n\t\t}\n\t",fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tuniform float flipEnvMap;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform samplerCube envMap;\n\n\t\t\tvoid main() {\n\n\t\t\t\tgl_FragColor = textureCube( envMap, vec3( flipEnvMap * vOutputDirection.x, vOutputDirection.yz ) );\n\n\t\t\t}\n\t\t",blending:0,depthTest:!1,depthWrite:!1})}function yf(w){let a=new WeakMap,c=null;function M(q){const de=q.target;de.removeEventListener("dispose",M);const pe=a.get(de);void 0!==pe&&(a.delete(de),pe.dispose())}return{get:function h(q){if(q&&q.isTexture){const de=q.mapping,pe=303===de||304===de,xe=de===Dn||de===$n;if(pe||xe){if(q.isRenderTargetTexture&&!0===q.needsPMREMUpdate){q.needsPMREMUpdate=!1;let Ie=a.get(q);return null===c&&(c=new __(w)),Ie=pe?c.fromEquirectangular(q,Ie):c.fromCubemap(q,Ie),a.set(q,Ie),Ie.texture}if(a.has(q))return a.get(q).texture;{const Ie=q.image;if(pe&&Ie&&Ie.height>0||xe&&Ie&&function m(q){let de=0;for(let xe=0;xe<6;xe++)void 0!==q[xe]&&de++;return 6===de}(Ie)){null===c&&(c=new __(w));const Be=pe?c.fromEquirectangular(q):c.fromCubemap(q);return a.set(q,Be),q.addEventListener("dispose",M),Be.texture}return null}}}return q},dispose:function N(){a=new WeakMap,null!==c&&(c.dispose(),c=null)}}}function ap(w){const a={};function c(h){if(void 0!==a[h])return a[h];let m;switch(h){case"WEBGL_depth_texture":m=w.getExtension("WEBGL_depth_texture")||w.getExtension("MOZ_WEBGL_depth_texture")||w.getExtension("WEBKIT_WEBGL_depth_texture");break;case"EXT_texture_filter_anisotropic":m=w.getExtension("EXT_texture_filter_anisotropic")||w.getExtension("MOZ_EXT_texture_filter_anisotropic")||w.getExtension("WEBKIT_EXT_texture_filter_anisotropic");break;case"WEBGL_compressed_texture_s3tc":m=w.getExtension("WEBGL_compressed_texture_s3tc")||w.getExtension("MOZ_WEBGL_compressed_texture_s3tc")||w.getExtension("WEBKIT_WEBGL_compressed_texture_s3tc");break;case"WEBGL_compressed_texture_pvrtc":m=w.getExtension("WEBGL_compressed_texture_pvrtc")||w.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc");break;default:m=w.getExtension(h)}return a[h]=m,m}return{has:function(h){return null!==c(h)},init:function(h){h.isWebGL2?c("EXT_color_buffer_float"):(c("WEBGL_depth_texture"),c("OES_texture_float"),c("OES_texture_half_float"),c("OES_texture_half_float_linear"),c("OES_standard_derivatives"),c("OES_element_index_uint"),c("OES_vertex_array_object"),c("ANGLE_instanced_arrays")),c("OES_texture_float_linear"),c("EXT_color_buffer_half_float"),c("WEBGL_multisampled_render_to_texture")},get:function(h){const m=c(h);return null===m&&console.warn("THREE.WebGLRenderer: "+h+" extension not supported."),m}}}function o0(w,a,c,h){const m={},M=new WeakMap;function N(Ie){const Be=Ie.target;null!==Be.index&&a.remove(Be.index);for(const Ke in Be.attributes)a.remove(Be.attributes[Ke]);for(const Ke in Be.morphAttributes){const ft=Be.morphAttributes[Ke];for(let Qe=0,ze=ft.length;Qea.maxTextureSize&&(Zt=Math.ceil(kt/a.maxTextureSize),kt=a.maxTextureSize);const li=new Float32Array(kt*Zt*4*Ke),Ti=new ce(li,kt,Zt,Ke);Ti.type=cn,Ti.needsUpdate=!0;const ur=4*Rn;for(let Di=0;Di0)return w;const m=a*c;let M=Xi[m];if(void 0===M&&(M=new Float32Array(m),Xi[m]=M),0!==a){h.toArray(M,0);for(let N=1,q=0;N!==a;++N)q+=c,w[N].toArray(M,q)}return M}function Zr(w,a){if(w.length!==a.length)return!1;for(let c=0,h=w.length;c":" "} ${q}: ${c[N]}`)}return h.join("\n")}(w.getShaderSource(a),N)}return m}function Ae(w,a){const c=function y(w){const a=Ya.getPrimaries(Ya.workingColorSpace),c=Ya.getPrimaries(w);let h;switch(a===c?h="":a===Uf&&c===U0?h="LinearDisplayP3ToLinearSRGB":a===U0&&c===Uf&&(h="LinearSRGBToLinearDisplayP3"),w){case sc:case Ju:return[h,"LinearTransferOETF"];case ll:case Zu:return[h,"sRGBTransferOETF"];default:return console.warn("THREE.WebGLProgram: Unsupported color space:",w),[h,"LinearTransferOETF"]}}(a);return`vec4 ${w}( vec4 value ) { return ${c[0]}( ${c[1]}( value ) ); }`}function be(w,a){let c;switch(a){case st:c="Linear";break;case vt:c="Reinhard";break;case Yt:c="OptimizedCineon";break;case qt:c="ACESFilmic";break;case Ot:c="Custom";break;default:console.warn("THREE.WebGLProgram: Unsupported toneMapping:",a),c="Linear"}return"vec3 "+w+"( vec3 color ) { return "+c+"ToneMapping( color ); }"}function Tt(w){return""!==w}function Vt(w,a){const c=a.numSpotLightShadows+a.numSpotLightMaps-a.numSpotLightShadowsWithMaps;return w.replace(/NUM_DIR_LIGHTS/g,a.numDirLights).replace(/NUM_SPOT_LIGHTS/g,a.numSpotLights).replace(/NUM_SPOT_LIGHT_MAPS/g,a.numSpotLightMaps).replace(/NUM_SPOT_LIGHT_COORDS/g,c).replace(/NUM_RECT_AREA_LIGHTS/g,a.numRectAreaLights).replace(/NUM_POINT_LIGHTS/g,a.numPointLights).replace(/NUM_HEMI_LIGHTS/g,a.numHemiLights).replace(/NUM_DIR_LIGHT_SHADOWS/g,a.numDirLightShadows).replace(/NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS/g,a.numSpotLightShadowsWithMaps).replace(/NUM_SPOT_LIGHT_SHADOWS/g,a.numSpotLightShadows).replace(/NUM_POINT_LIGHT_SHADOWS/g,a.numPointLightShadows)}function Wt(w,a){return w.replace(/NUM_CLIPPING_PLANES/g,a.numClippingPlanes).replace(/UNION_CLIPPING_PLANES/g,a.numClippingPlanes-a.numClipIntersection)}const pn=/^[ \t]*#include +<([\w\d./]+)>/gm;function Gn(w){return w.replace(pn,Ei)}const qn=new Map([["encodings_fragment","colorspace_fragment"],["encodings_pars_fragment","colorspace_pars_fragment"],["output_fragment","opaque_fragment"]]);function Ei(w,a){let c=Ko[a];if(void 0===c){const h=qn.get(a);if(void 0===h)throw new Error("Can not resolve #include <"+a+">");c=Ko[h],console.warn('THREE.WebGLRenderer: Shader chunk "%s" has been deprecated. Use "%s" instead.',a,h)}return Gn(c)}const kr=/#pragma unroll_loop_start\s+for\s*\(\s*int\s+i\s*=\s*(\d+)\s*;\s*i\s*<\s*(\d+)\s*;\s*i\s*\+\+\s*\)\s*{([\s\S]+?)}\s+#pragma unroll_loop_end/g;function pr(w){return w.replace(kr,wr)}function wr(w,a,c,h){let m="";for(let M=parseInt(a);M0&&(Qe+="\n"),ze=[Le,"#define SHADER_TYPE "+c.shaderType,"#define SHADER_NAME "+c.shaderName,Ke].filter(Tt).join("\n"),ze.length>0&&(ze+="\n")):(Qe=[Ts(c),"#define SHADER_TYPE "+c.shaderType,"#define SHADER_NAME "+c.shaderName,Ke,c.instancing?"#define USE_INSTANCING":"",c.instancingColor?"#define USE_INSTANCING_COLOR":"",c.useFog&&c.fog?"#define USE_FOG":"",c.useFog&&c.fogExp2?"#define FOG_EXP2":"",c.map?"#define USE_MAP":"",c.envMap?"#define USE_ENVMAP":"",c.envMap?"#define "+xe:"",c.lightMap?"#define USE_LIGHTMAP":"",c.aoMap?"#define USE_AOMAP":"",c.bumpMap?"#define USE_BUMPMAP":"",c.normalMap?"#define USE_NORMALMAP":"",c.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",c.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",c.displacementMap?"#define USE_DISPLACEMENTMAP":"",c.emissiveMap?"#define USE_EMISSIVEMAP":"",c.anisotropy?"#define USE_ANISOTROPY":"",c.anisotropyMap?"#define USE_ANISOTROPYMAP":"",c.clearcoatMap?"#define USE_CLEARCOATMAP":"",c.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",c.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",c.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",c.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",c.specularMap?"#define USE_SPECULARMAP":"",c.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",c.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",c.roughnessMap?"#define USE_ROUGHNESSMAP":"",c.metalnessMap?"#define USE_METALNESSMAP":"",c.alphaMap?"#define USE_ALPHAMAP":"",c.alphaHash?"#define USE_ALPHAHASH":"",c.transmission?"#define USE_TRANSMISSION":"",c.transmissionMap?"#define USE_TRANSMISSIONMAP":"",c.thicknessMap?"#define USE_THICKNESSMAP":"",c.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",c.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",c.mapUv?"#define MAP_UV "+c.mapUv:"",c.alphaMapUv?"#define ALPHAMAP_UV "+c.alphaMapUv:"",c.lightMapUv?"#define LIGHTMAP_UV "+c.lightMapUv:"",c.aoMapUv?"#define AOMAP_UV "+c.aoMapUv:"",c.emissiveMapUv?"#define EMISSIVEMAP_UV "+c.emissiveMapUv:"",c.bumpMapUv?"#define BUMPMAP_UV "+c.bumpMapUv:"",c.normalMapUv?"#define NORMALMAP_UV "+c.normalMapUv:"",c.displacementMapUv?"#define DISPLACEMENTMAP_UV "+c.displacementMapUv:"",c.metalnessMapUv?"#define METALNESSMAP_UV "+c.metalnessMapUv:"",c.roughnessMapUv?"#define ROUGHNESSMAP_UV "+c.roughnessMapUv:"",c.anisotropyMapUv?"#define ANISOTROPYMAP_UV "+c.anisotropyMapUv:"",c.clearcoatMapUv?"#define CLEARCOATMAP_UV "+c.clearcoatMapUv:"",c.clearcoatNormalMapUv?"#define CLEARCOAT_NORMALMAP_UV "+c.clearcoatNormalMapUv:"",c.clearcoatRoughnessMapUv?"#define CLEARCOAT_ROUGHNESSMAP_UV "+c.clearcoatRoughnessMapUv:"",c.iridescenceMapUv?"#define IRIDESCENCEMAP_UV "+c.iridescenceMapUv:"",c.iridescenceThicknessMapUv?"#define IRIDESCENCE_THICKNESSMAP_UV "+c.iridescenceThicknessMapUv:"",c.sheenColorMapUv?"#define SHEEN_COLORMAP_UV "+c.sheenColorMapUv:"",c.sheenRoughnessMapUv?"#define SHEEN_ROUGHNESSMAP_UV "+c.sheenRoughnessMapUv:"",c.specularMapUv?"#define SPECULARMAP_UV "+c.specularMapUv:"",c.specularColorMapUv?"#define SPECULAR_COLORMAP_UV "+c.specularColorMapUv:"",c.specularIntensityMapUv?"#define SPECULAR_INTENSITYMAP_UV "+c.specularIntensityMapUv:"",c.transmissionMapUv?"#define TRANSMISSIONMAP_UV "+c.transmissionMapUv:"",c.thicknessMapUv?"#define THICKNESSMAP_UV "+c.thicknessMapUv:"",c.vertexTangents&&!1===c.flatShading?"#define USE_TANGENT":"",c.vertexColors?"#define USE_COLOR":"",c.vertexAlphas?"#define USE_COLOR_ALPHA":"",c.vertexUv1s?"#define USE_UV1":"",c.vertexUv2s?"#define USE_UV2":"",c.vertexUv3s?"#define USE_UV3":"",c.pointsUvs?"#define USE_POINTS_UV":"",c.flatShading?"#define FLAT_SHADED":"",c.skinning?"#define USE_SKINNING":"",c.morphTargets?"#define USE_MORPHTARGETS":"",c.morphNormals&&!1===c.flatShading?"#define USE_MORPHNORMALS":"",c.morphColors&&c.isWebGL2?"#define USE_MORPHCOLORS":"",c.morphTargetsCount>0&&c.isWebGL2?"#define MORPHTARGETS_TEXTURE":"",c.morphTargetsCount>0&&c.isWebGL2?"#define MORPHTARGETS_TEXTURE_STRIDE "+c.morphTextureStride:"",c.morphTargetsCount>0&&c.isWebGL2?"#define MORPHTARGETS_COUNT "+c.morphTargetsCount:"",c.doubleSided?"#define DOUBLE_SIDED":"",c.flipSided?"#define FLIP_SIDED":"",c.shadowMapEnabled?"#define USE_SHADOWMAP":"",c.shadowMapEnabled?"#define "+de:"",c.sizeAttenuation?"#define USE_SIZEATTENUATION":"",c.numLightProbes>0?"#define USE_LIGHT_PROBES":"",c.useLegacyLights?"#define LEGACY_LIGHTS":"",c.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",c.logarithmicDepthBuffer&&c.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 modelMatrix;","uniform mat4 modelViewMatrix;","uniform mat4 projectionMatrix;","uniform mat4 viewMatrix;","uniform mat3 normalMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;","#ifdef USE_INSTANCING","\tattribute mat4 instanceMatrix;","#endif","#ifdef USE_INSTANCING_COLOR","\tattribute vec3 instanceColor;","#endif","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_UV1","\tattribute vec2 uv1;","#endif","#ifdef USE_UV2","\tattribute vec2 uv2;","#endif","#ifdef USE_UV3","\tattribute vec2 uv3;","#endif","#ifdef USE_TANGENT","\tattribute vec4 tangent;","#endif","#if defined( USE_COLOR_ALPHA )","\tattribute vec4 color;","#elif defined( USE_COLOR )","\tattribute vec3 color;","#endif","#if ( defined( USE_MORPHTARGETS ) && ! defined( MORPHTARGETS_TEXTURE ) )","\tattribute vec3 morphTarget0;","\tattribute vec3 morphTarget1;","\tattribute vec3 morphTarget2;","\tattribute vec3 morphTarget3;","\t#ifdef USE_MORPHNORMALS","\t\tattribute vec3 morphNormal0;","\t\tattribute vec3 morphNormal1;","\t\tattribute vec3 morphNormal2;","\t\tattribute vec3 morphNormal3;","\t#else","\t\tattribute vec3 morphTarget4;","\t\tattribute vec3 morphTarget5;","\t\tattribute vec3 morphTarget6;","\t\tattribute vec3 morphTarget7;","\t#endif","#endif","#ifdef USE_SKINNING","\tattribute vec4 skinIndex;","\tattribute vec4 skinWeight;","#endif","\n"].filter(Tt).join("\n"),ze=[Le,Ts(c),"#define SHADER_TYPE "+c.shaderType,"#define SHADER_NAME "+c.shaderName,Ke,c.useFog&&c.fog?"#define USE_FOG":"",c.useFog&&c.fogExp2?"#define FOG_EXP2":"",c.map?"#define USE_MAP":"",c.matcap?"#define USE_MATCAP":"",c.envMap?"#define USE_ENVMAP":"",c.envMap?"#define "+pe:"",c.envMap?"#define "+xe:"",c.envMap?"#define "+Ie:"",Be?"#define CUBEUV_TEXEL_WIDTH "+Be.texelWidth:"",Be?"#define CUBEUV_TEXEL_HEIGHT "+Be.texelHeight:"",Be?"#define CUBEUV_MAX_MIP "+Be.maxMip+".0":"",c.lightMap?"#define USE_LIGHTMAP":"",c.aoMap?"#define USE_AOMAP":"",c.bumpMap?"#define USE_BUMPMAP":"",c.normalMap?"#define USE_NORMALMAP":"",c.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",c.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",c.emissiveMap?"#define USE_EMISSIVEMAP":"",c.anisotropy?"#define USE_ANISOTROPY":"",c.anisotropyMap?"#define USE_ANISOTROPYMAP":"",c.clearcoat?"#define USE_CLEARCOAT":"",c.clearcoatMap?"#define USE_CLEARCOATMAP":"",c.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",c.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",c.iridescence?"#define USE_IRIDESCENCE":"",c.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",c.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",c.specularMap?"#define USE_SPECULARMAP":"",c.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",c.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",c.roughnessMap?"#define USE_ROUGHNESSMAP":"",c.metalnessMap?"#define USE_METALNESSMAP":"",c.alphaMap?"#define USE_ALPHAMAP":"",c.alphaTest?"#define USE_ALPHATEST":"",c.alphaHash?"#define USE_ALPHAHASH":"",c.sheen?"#define USE_SHEEN":"",c.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",c.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",c.transmission?"#define USE_TRANSMISSION":"",c.transmissionMap?"#define USE_TRANSMISSIONMAP":"",c.thicknessMap?"#define USE_THICKNESSMAP":"",c.vertexTangents&&!1===c.flatShading?"#define USE_TANGENT":"",c.vertexColors||c.instancingColor?"#define USE_COLOR":"",c.vertexAlphas?"#define USE_COLOR_ALPHA":"",c.vertexUv1s?"#define USE_UV1":"",c.vertexUv2s?"#define USE_UV2":"",c.vertexUv3s?"#define USE_UV3":"",c.pointsUvs?"#define USE_POINTS_UV":"",c.gradientMap?"#define USE_GRADIENTMAP":"",c.flatShading?"#define FLAT_SHADED":"",c.doubleSided?"#define DOUBLE_SIDED":"",c.flipSided?"#define FLIP_SIDED":"",c.shadowMapEnabled?"#define USE_SHADOWMAP":"",c.shadowMapEnabled?"#define "+de:"",c.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",c.numLightProbes>0?"#define USE_LIGHT_PROBES":"",c.useLegacyLights?"#define LEGACY_LIGHTS":"",c.decodeVideoTexture?"#define DECODE_VIDEO_TEXTURE":"",c.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",c.logarithmicDepthBuffer&&c.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",c.toneMapping!==pt?"#define TONE_MAPPING":"",c.toneMapping!==pt?Ko.tonemapping_pars_fragment:"",c.toneMapping!==pt?be("toneMapping",c.toneMapping):"",c.dithering?"#define DITHERING":"",c.opaque?"#define OPAQUE":"",Ko.colorspace_pars_fragment,Ae("linearToOutputTexel",c.outputColorSpace),c.useDepthPacking?"#define DEPTH_PACKING "+c.depthPacking:"","\n"].filter(Tt).join("\n")),N=Gn(N),N=Vt(N,c),N=Wt(N,c),q=Gn(q),q=Vt(q,c),q=Wt(q,c),N=pr(N),q=pr(q),c.isWebGL2&&!0!==c.isRawShaderMaterial&&(Ct="#version 300 es\n",Qe=["precision mediump sampler2DArray;","#define attribute in","#define varying out","#define texture2D texture"].join("\n")+"\n"+Qe,ze=["precision mediump sampler2DArray;","#define varying in",c.glslVersion===V0?"":"layout(location = 0) out highp vec4 pc_fragColor;",c.glslVersion===V0?"":"#define gl_FragColor pc_fragColor","#define gl_FragDepthEXT gl_FragDepth","#define texture2D texture","#define textureCube texture","#define texture2DProj textureProj","#define texture2DLodEXT textureLod","#define texture2DProjLodEXT textureProjLod","#define textureCubeLodEXT textureLod","#define texture2DGradEXT textureGrad","#define texture2DProjGradEXT textureProjGrad","#define textureCubeGradEXT textureGrad"].join("\n")+"\n"+ze);const Dt=Ct+ze+q,Jt=Q1(m,m.VERTEX_SHADER,Ct+Qe+N),ln=Q1(m,m.FRAGMENT_SHADER,Dt);function rn(li){if(w.debug.checkShaderErrors){const Ti=m.getProgramInfoLog(ft).trim(),ur=m.getShaderInfoLog(Jt).trim(),Yn=m.getShaderInfoLog(ln).trim();let Di=!0,rr=!0;if(!1===m.getProgramParameter(ft,m.LINK_STATUS))if(Di=!1,"function"==typeof w.debug.onShaderError)w.debug.onShaderError(m,ft,Jt,ln);else{const Oi=H(m,Jt,"vertex"),br=H(m,ln,"fragment");console.error("THREE.WebGLProgram: Shader Error "+m.getError()+" - VALIDATE_STATUS "+m.getProgramParameter(ft,m.VALIDATE_STATUS)+"\n\nProgram Info Log: "+Ti+"\n"+Oi+"\n"+br)}else""!==Ti?console.warn("THREE.WebGLProgram: Program Info Log:",Ti):(""===ur||""===Yn)&&(rr=!1);rr&&(li.diagnostics={runnable:Di,programLog:Ti,vertexShader:{log:ur,prefix:Qe},fragmentShader:{log:Yn,prefix:ze}})}m.deleteShader(Jt),m.deleteShader(ln),Rn=new Jp(m,ft),kt=function gt(w,a){const c={},h=w.getProgramParameter(a,w.ACTIVE_ATTRIBUTES);for(let m=0;m0,co=kt.clearcoat>0,_s=kt.iridescence>0,$t=kt.sheen>0,Pt=kt.transmission>0,ni=us&&!!kt.anisotropyMap,cr=co&&!!kt.clearcoatMap,Ar=co&&!!kt.clearcoatNormalMap,Br=co&&!!kt.clearcoatRoughnessMap,ks=_s&&!!kt.iridescenceMap,Ir=_s&&!!kt.iridescenceThicknessMap,es=$t&&!!kt.sheenColorMap,Nn=$t&&!!kt.sheenRoughnessMap,Hr=!!kt.specularMap,xr=!!kt.specularColorMap,Oo=!!kt.specularIntensityMap,Ao=Pt&&!!kt.transmissionMap,fo=Pt&&!!kt.thicknessMap,Ps=!!kt.alphaMap,ys=!!kt.extensions,jr=!!Di.attributes.uv1,dr=!!Di.attributes.uv2,ts=!!Di.attributes.uv3;let xo=pt;return kt.toneMapped&&(null===eo||!0===eo.isXRRenderTarget)&&(xo=w.toneMapping),{isWebGL2:xe,shaderID:Ji,shaderType:kt.type,shaderName:kt.name,vertexShader:as,fragmentShader:xs,defines:kt.defines,customVertexShaderID:Ds,customFragmentShaderID:fs,isRawShaderMaterial:!0===kt.isRawShaderMaterial,glslVersion:kt.glslVersion,precision:Le,instancing:er,instancingColor:er&&null!==ur.instanceColor,supportsVertexTextures:Be,outputColorSpace:null===eo?w.outputColorSpace:!0===eo.isXRRenderTarget?eo.texture.colorSpace:sc,map:Or,matcap:!!kt.matcap,envMap:vr,envMapMode:vr&&Oi.mapping,envMapCubeUVHeight:br,aoMap:_n,lightMap:Ki,bumpMap:si,normalMap:Ri,displacementMap:Be&&Ii,emissiveMap:Jr,normalMapObjectSpace:Ri&&1===kt.normalMapType,normalMapTangentSpace:Ri&&0===kt.normalMapType,metalnessMap:Nr,roughnessMap:fr,anisotropy:us,anisotropyMap:ni,clearcoat:co,clearcoatMap:cr,clearcoatNormalMap:Ar,clearcoatRoughnessMap:Br,iridescence:_s,iridescenceMap:ks,iridescenceThicknessMap:Ir,sheen:$t,sheenColorMap:es,sheenRoughnessMap:Nn,specularMap:Hr,specularColorMap:xr,specularIntensityMap:Oo,transmission:Pt,transmissionMap:Ao,thicknessMap:fo,gradientMap:!!kt.gradientMap,opaque:!1===kt.transparent&&1===kt.blending,alphaMap:Ps,alphaTest:kt.alphaTest>0,alphaHash:!!kt.alphaHash,combine:kt.combine,mapUv:Or&&ft(kt.map.channel),aoMapUv:_n&&ft(kt.aoMap.channel),lightMapUv:Ki&&ft(kt.lightMap.channel),bumpMapUv:si&&ft(kt.bumpMap.channel),normalMapUv:Ri&&ft(kt.normalMap.channel),displacementMapUv:Ii&&ft(kt.displacementMap.channel),emissiveMapUv:Jr&&ft(kt.emissiveMap.channel),metalnessMapUv:Nr&&ft(kt.metalnessMap.channel),roughnessMapUv:fr&&ft(kt.roughnessMap.channel),anisotropyMapUv:ni&&ft(kt.anisotropyMap.channel),clearcoatMapUv:cr&&ft(kt.clearcoatMap.channel),clearcoatNormalMapUv:Ar&&ft(kt.clearcoatNormalMap.channel),clearcoatRoughnessMapUv:Br&&ft(kt.clearcoatRoughnessMap.channel),iridescenceMapUv:ks&&ft(kt.iridescenceMap.channel),iridescenceThicknessMapUv:Ir&&ft(kt.iridescenceThicknessMap.channel),sheenColorMapUv:es&&ft(kt.sheenColorMap.channel),sheenRoughnessMapUv:Nn&&ft(kt.sheenRoughnessMap.channel),specularMapUv:Hr&&ft(kt.specularMap.channel),specularColorMapUv:xr&&ft(kt.specularColorMap.channel),specularIntensityMapUv:Oo&&ft(kt.specularIntensityMap.channel),transmissionMapUv:Ao&&ft(kt.transmissionMap.channel),thicknessMapUv:fo&&ft(kt.thicknessMap.channel),alphaMapUv:Ps&&ft(kt.alphaMap.channel),vertexTangents:!!Di.attributes.tangent&&(Ri||us),vertexColors:kt.vertexColors,vertexAlphas:!0===kt.vertexColors&&!!Di.attributes.color&&4===Di.attributes.color.itemSize,vertexUv1s:jr,vertexUv2s:dr,vertexUv3s:ts,pointsUvs:!0===ur.isPoints&&!!Di.attributes.uv&&(Or||Ps),fog:!!Yn,useFog:!0===kt.fog,fogExp2:Yn&&Yn.isFogExp2,flatShading:!0===kt.flatShading,sizeAttenuation:!0===kt.sizeAttenuation,logarithmicDepthBuffer:Ie,skinning:!0===ur.isSkinnedMesh,morphTargets:void 0!==Di.morphAttributes.position,morphNormals:void 0!==Di.morphAttributes.normal,morphColors:void 0!==Di.morphAttributes.color,morphTargetsCount:ei,morphTextureStride:sr,numDirLights:Zt.directional.length,numPointLights:Zt.point.length,numSpotLights:Zt.spot.length,numSpotLightMaps:Zt.spotLightMap.length,numRectAreaLights:Zt.rectArea.length,numHemiLights:Zt.hemi.length,numDirLightShadows:Zt.directionalShadowMap.length,numPointLightShadows:Zt.pointShadowMap.length,numSpotLightShadows:Zt.spotShadowMap.length,numSpotLightShadowsWithMaps:Zt.numSpotLightShadowsWithMaps,numLightProbes:Zt.numLightProbes,numClippingPlanes:N.numPlanes,numClipIntersection:N.numIntersection,dithering:kt.dithering,shadowMapEnabled:w.shadowMap.enabled&&li.length>0,shadowMapType:w.shadowMap.type,toneMapping:xo,useLegacyLights:w._useLegacyLights,decodeVideoTexture:Or&&!0===kt.map.isVideoTexture&&Ya.getTransfer(kt.map.colorSpace)===$o,premultipliedAlpha:kt.premultipliedAlpha,doubleSided:kt.side===Y,flipSided:1===kt.side,useDepthPacking:kt.depthPacking>=0,depthPacking:kt.depthPacking||0,index0AttributeName:kt.index0AttributeName,extensionDerivatives:ys&&!0===kt.extensions.derivatives,extensionFragDepth:ys&&!0===kt.extensions.fragDepth,extensionDrawBuffers:ys&&!0===kt.extensions.drawBuffers,extensionShaderTextureLOD:ys&&!0===kt.extensions.shaderTextureLOD,rendererExtensionFragDepth:xe||h.has("EXT_frag_depth"),rendererExtensionDrawBuffers:xe||h.has("WEBGL_draw_buffers"),rendererExtensionShaderTextureLod:xe||h.has("EXT_shader_texture_lod"),rendererExtensionParallelShaderCompile:h.has("KHR_parallel_shader_compile"),customProgramCacheKey:kt.customProgramCacheKey()}},getProgramCacheKey:function ze(kt){const Zt=[];if(kt.shaderID?Zt.push(kt.shaderID):(Zt.push(kt.customVertexShaderID),Zt.push(kt.customFragmentShaderID)),void 0!==kt.defines)for(const li in kt.defines)Zt.push(li),Zt.push(kt.defines[li]);return!1===kt.isRawShaderMaterial&&(function Ct(kt,Zt){kt.push(Zt.precision),kt.push(Zt.outputColorSpace),kt.push(Zt.envMapMode),kt.push(Zt.envMapCubeUVHeight),kt.push(Zt.mapUv),kt.push(Zt.alphaMapUv),kt.push(Zt.lightMapUv),kt.push(Zt.aoMapUv),kt.push(Zt.bumpMapUv),kt.push(Zt.normalMapUv),kt.push(Zt.displacementMapUv),kt.push(Zt.emissiveMapUv),kt.push(Zt.metalnessMapUv),kt.push(Zt.roughnessMapUv),kt.push(Zt.anisotropyMapUv),kt.push(Zt.clearcoatMapUv),kt.push(Zt.clearcoatNormalMapUv),kt.push(Zt.clearcoatRoughnessMapUv),kt.push(Zt.iridescenceMapUv),kt.push(Zt.iridescenceThicknessMapUv),kt.push(Zt.sheenColorMapUv),kt.push(Zt.sheenRoughnessMapUv),kt.push(Zt.specularMapUv),kt.push(Zt.specularColorMapUv),kt.push(Zt.specularIntensityMapUv),kt.push(Zt.transmissionMapUv),kt.push(Zt.thicknessMapUv),kt.push(Zt.combine),kt.push(Zt.fogExp2),kt.push(Zt.sizeAttenuation),kt.push(Zt.morphTargetsCount),kt.push(Zt.morphAttributeCount),kt.push(Zt.numDirLights),kt.push(Zt.numPointLights),kt.push(Zt.numSpotLights),kt.push(Zt.numSpotLightMaps),kt.push(Zt.numHemiLights),kt.push(Zt.numRectAreaLights),kt.push(Zt.numDirLightShadows),kt.push(Zt.numPointLightShadows),kt.push(Zt.numSpotLightShadows),kt.push(Zt.numSpotLightShadowsWithMaps),kt.push(Zt.numLightProbes),kt.push(Zt.shadowMapType),kt.push(Zt.toneMapping),kt.push(Zt.numClippingPlanes),kt.push(Zt.numClipIntersection),kt.push(Zt.depthPacking)}(Zt,kt),function ct(kt,Zt){q.disableAll(),Zt.isWebGL2&&q.enable(0),Zt.supportsVertexTextures&&q.enable(1),Zt.instancing&&q.enable(2),Zt.instancingColor&&q.enable(3),Zt.matcap&&q.enable(4),Zt.envMap&&q.enable(5),Zt.normalMapObjectSpace&&q.enable(6),Zt.normalMapTangentSpace&&q.enable(7),Zt.clearcoat&&q.enable(8),Zt.iridescence&&q.enable(9),Zt.alphaTest&&q.enable(10),Zt.vertexColors&&q.enable(11),Zt.vertexAlphas&&q.enable(12),Zt.vertexUv1s&&q.enable(13),Zt.vertexUv2s&&q.enable(14),Zt.vertexUv3s&&q.enable(15),Zt.vertexTangents&&q.enable(16),Zt.anisotropy&&q.enable(17),Zt.alphaHash&&q.enable(18),kt.push(q.mask),q.disableAll(),Zt.fog&&q.enable(0),Zt.useFog&&q.enable(1),Zt.flatShading&&q.enable(2),Zt.logarithmicDepthBuffer&&q.enable(3),Zt.skinning&&q.enable(4),Zt.morphTargets&&q.enable(5),Zt.morphNormals&&q.enable(6),Zt.morphColors&&q.enable(7),Zt.premultipliedAlpha&&q.enable(8),Zt.shadowMapEnabled&&q.enable(9),Zt.useLegacyLights&&q.enable(10),Zt.doubleSided&&q.enable(11),Zt.flipSided&&q.enable(12),Zt.useDepthPacking&&q.enable(13),Zt.dithering&&q.enable(14),Zt.transmission&&q.enable(15),Zt.sheen&&q.enable(16),Zt.opaque&&q.enable(17),Zt.pointsUvs&&q.enable(18),Zt.decodeVideoTexture&&q.enable(19),kt.push(q.mask)}(Zt,kt),Zt.push(w.outputColorSpace)),Zt.push(kt.customProgramCacheKey),Zt.join()},getUniforms:function Dt(kt){const Zt=Ke[kt.type];let li;return li=Zt?dl.clone(mh[Zt].uniforms):kt.uniforms,li},acquireProgram:function Jt(kt,Zt){let li;for(let Ti=0,ur=pe.length;Ti0?h.push(ze):!0===Le.transparent?m.push(ze):c.push(ze)},unshift:function de(Ie,Be,Le,Ke,ft,Qe){const ze=N(Ie,Be,Le,Ke,ft,Qe);Le.transmission>0?h.unshift(ze):!0===Le.transparent?m.unshift(ze):c.unshift(ze)},finish:function xe(){for(let Ie=a,Be=w.length;Ie1&&c.sort(Ie||Js),h.length>1&&h.sort(Be||Zo),m.length>1&&m.sort(Be||Zo)}}}function nu(){let w=new WeakMap;return{get:function a(h,m){const M=w.get(h);let N;return void 0===M?(N=new tu,w.set(h,[N])):m>=M.length?(N=new tu,M.push(N)):N=M[m],N},dispose:function c(){w=new WeakMap}}}function td(){const w={};return{get:function(a){if(void 0!==w[a.id])return w[a.id];let c;switch(a.type){case"DirectionalLight":c={direction:new Ft,color:new Os};break;case"SpotLight":c={position:new Ft,direction:new Ft,color:new Os,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":c={position:new Ft,color:new Os,distance:0,decay:0};break;case"HemisphereLight":c={direction:new Ft,skyColor:new Os,groundColor:new Os};break;case"RectAreaLight":c={color:new Os,position:new Ft,halfWidth:new Ft,halfHeight:new Ft}}return w[a.id]=c,c}}}let Jl=0;function cp(w,a){return(a.castShadow?2:0)-(w.castShadow?2:0)+(a.map?1:0)-(w.map?1:0)}function a0(w,a){const c=new td,h=function Ld(){const w={};return{get:function(a){if(void 0!==w[a.id])return w[a.id];let c;switch(a.type){case"DirectionalLight":case"SpotLight":c={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Ui};break;case"PointLight":c={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Ui,shadowCameraNear:1,shadowCameraFar:1e3}}return w[a.id]=c,c}}}(),m={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1,numSpotMaps:-1,numLightProbes:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotLightMap:[],spotShadow:[],spotShadowMap:[],spotLightMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[],numSpotLightShadowsWithMaps:0,numLightProbes:0};for(let xe=0;xe<9;xe++)m.probe.push(new Ft);const M=new Ft,N=new bo,q=new bo;return{setup:function de(xe,Ie){let Be=0,Le=0,Ke=0;for(let Ti=0;Ti<9;Ti++)m.probe[Ti].set(0,0,0);let ft=0,Qe=0,ze=0,Ct=0,ct=0,Dt=0,Jt=0,ln=0,rn=0,Rn=0,kt=0;xe.sort(cp);const Zt=!0===Ie?Math.PI:1;for(let Ti=0,ur=xe.length;Ti0&&(a.isWebGL2||!0===w.has("OES_texture_float_linear")?(m.rectAreaLTC1=ds.LTC_FLOAT_1,m.rectAreaLTC2=ds.LTC_FLOAT_2):!0===w.has("OES_texture_half_float_linear")?(m.rectAreaLTC1=ds.LTC_HALF_1,m.rectAreaLTC2=ds.LTC_HALF_2):console.error("THREE.WebGLRenderer: Unable to use RectAreaLight. Missing WebGL extensions.")),m.ambient[0]=Be,m.ambient[1]=Le,m.ambient[2]=Ke;const li=m.hash;(li.directionalLength!==ft||li.pointLength!==Qe||li.spotLength!==ze||li.rectAreaLength!==Ct||li.hemiLength!==ct||li.numDirectionalShadows!==Dt||li.numPointShadows!==Jt||li.numSpotShadows!==ln||li.numSpotMaps!==rn||li.numLightProbes!==kt)&&(m.directional.length=ft,m.spot.length=ze,m.rectArea.length=Ct,m.point.length=Qe,m.hemi.length=ct,m.directionalShadow.length=Dt,m.directionalShadowMap.length=Dt,m.pointShadow.length=Jt,m.pointShadowMap.length=Jt,m.spotShadow.length=ln,m.spotShadowMap.length=ln,m.directionalShadowMatrix.length=Dt,m.pointShadowMatrix.length=Jt,m.spotLightMatrix.length=ln+rn-Rn,m.spotLightMap.length=rn,m.numSpotLightShadowsWithMaps=Rn,m.numLightProbes=kt,li.directionalLength=ft,li.pointLength=Qe,li.spotLength=ze,li.rectAreaLength=Ct,li.hemiLength=ct,li.numDirectionalShadows=Dt,li.numPointShadows=Jt,li.numSpotShadows=ln,li.numSpotMaps=rn,li.numLightProbes=kt,m.version=Jl++)},setupView:function pe(xe,Ie){let Be=0,Le=0,Ke=0,ft=0,Qe=0;const ze=Ie.matrixWorldInverse;for(let Ct=0,ct=xe.length;Ct=q.length?(de=new l0(w,a),q.push(de)):de=q[N],de},dispose:function m(){c=new WeakMap}}}class em extends kc{constructor(a){super(),this.isMeshDepthMaterial=!0,this.type="MeshDepthMaterial",this.depthPacking=3200,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.setValues(a)}copy(a){return super.copy(a),this.depthPacking=a.depthPacking,this.map=a.map,this.alphaMap=a.alphaMap,this.displacementMap=a.displacementMap,this.displacementScale=a.displacementScale,this.displacementBias=a.displacementBias,this.wireframe=a.wireframe,this.wireframeLinewidth=a.wireframeLinewidth,this}}class gh extends kc{constructor(a){super(),this.isMeshDistanceMaterial=!0,this.type="MeshDistanceMaterial",this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.setValues(a)}copy(a){return super.copy(a),this.map=a.map,this.alphaMap=a.alphaMap,this.displacementMap=a.displacementMap,this.displacementScale=a.displacementScale,this.displacementBias=a.displacementBias,this}}function wf(w,a,c){let h=new ef;const m=new Ui,M=new Ui,N=new il,q=new em({depthPacking:3201}),de=new gh,pe={},xe=c.maxTextureSize,Ie={[F]:1,1:F,[Y]:Y},Be=new zl({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new Ui},radius:{value:4}},vertexShader:"void main() {\n\tgl_Position = vec4( position, 1.0 );\n}",fragmentShader:"uniform sampler2D shadow_pass;\nuniform vec2 resolution;\nuniform float radius;\n#include \nvoid main() {\n\tconst float samples = float( VSM_SAMPLES );\n\tfloat mean = 0.0;\n\tfloat squared_mean = 0.0;\n\tfloat uvStride = samples <= 1.0 ? 0.0 : 2.0 / ( samples - 1.0 );\n\tfloat uvStart = samples <= 1.0 ? 0.0 : - 1.0;\n\tfor ( float i = 0.0; i < samples; i ++ ) {\n\t\tfloat uvOffset = uvStart + i * uvStride;\n\t\t#ifdef HORIZONTAL_PASS\n\t\t\tvec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ) );\n\t\t\tmean += distribution.x;\n\t\t\tsquared_mean += distribution.y * distribution.y + distribution.x * distribution.x;\n\t\t#else\n\t\t\tfloat depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ) );\n\t\t\tmean += depth;\n\t\t\tsquared_mean += depth * depth;\n\t\t#endif\n\t}\n\tmean = mean / samples;\n\tsquared_mean = squared_mean / samples;\n\tfloat std_dev = sqrt( squared_mean - mean * mean );\n\tgl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) );\n}"}),Le=Be.clone();Le.defines.HORIZONTAL_PASS=1;const Ke=new Cs;Ke.setAttribute("position",new sa(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));const ft=new Jc(Ke,Be),Qe=this;this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=He;let ze=this.type;function Ct(Jt,ln){const rn=a.update(ft);Be.defines.VSM_SAMPLES!==Jt.blurSamples&&(Be.defines.VSM_SAMPLES=Jt.blurSamples,Le.defines.VSM_SAMPLES=Jt.blurSamples,Be.needsUpdate=!0,Le.needsUpdate=!0),null===Jt.mapPass&&(Jt.mapPass=new Fu(m.x,m.y)),Be.uniforms.shadow_pass.value=Jt.map.texture,Be.uniforms.resolution.value=Jt.mapSize,Be.uniforms.radius.value=Jt.radius,w.setRenderTarget(Jt.mapPass),w.clear(),w.renderBufferDirect(ln,null,rn,Be,ft,null),Le.uniforms.shadow_pass.value=Jt.mapPass.texture,Le.uniforms.resolution.value=Jt.mapSize,Le.uniforms.radius.value=Jt.radius,w.setRenderTarget(Jt.map),w.clear(),w.renderBufferDirect(ln,null,rn,Le,ft,null)}function ct(Jt,ln,rn,Rn){let kt=null;const Zt=!0===rn.isPointLight?Jt.customDistanceMaterial:Jt.customDepthMaterial;if(void 0!==Zt)kt=Zt;else if(kt=!0===rn.isPointLight?de:q,w.localClippingEnabled&&!0===ln.clipShadows&&Array.isArray(ln.clippingPlanes)&&0!==ln.clippingPlanes.length||ln.displacementMap&&0!==ln.displacementScale||ln.alphaMap&&ln.alphaTest>0||ln.map&&ln.alphaTest>0){const li=kt.uuid,Ti=ln.uuid;let ur=pe[li];void 0===ur&&(ur={},pe[li]=ur);let Yn=ur[Ti];void 0===Yn&&(Yn=kt.clone(),ur[Ti]=Yn),kt=Yn}return kt.visible=ln.visible,kt.wireframe=ln.wireframe,kt.side=Rn===De?null!==ln.shadowSide?ln.shadowSide:ln.side:null!==ln.shadowSide?ln.shadowSide:Ie[ln.side],kt.alphaMap=ln.alphaMap,kt.alphaTest=ln.alphaTest,kt.map=ln.map,kt.clipShadows=ln.clipShadows,kt.clippingPlanes=ln.clippingPlanes,kt.clipIntersection=ln.clipIntersection,kt.displacementMap=ln.displacementMap,kt.displacementScale=ln.displacementScale,kt.displacementBias=ln.displacementBias,kt.wireframeLinewidth=ln.wireframeLinewidth,kt.linewidth=ln.linewidth,!0===rn.isPointLight&&!0===kt.isMeshDistanceMaterial&&(w.properties.get(kt).light=rn),kt}function Dt(Jt,ln,rn,Rn,kt){if(!1===Jt.visible)return;if(Jt.layers.test(ln.layers)&&(Jt.isMesh||Jt.isLine||Jt.isPoints)&&(Jt.castShadow||Jt.receiveShadow&&kt===De)&&(!Jt.frustumCulled||h.intersectsObject(Jt))){Jt.modelViewMatrix.multiplyMatrices(rn.matrixWorldInverse,Jt.matrixWorld);const Ti=a.update(Jt),ur=Jt.material;if(Array.isArray(ur)){const Yn=Ti.groups;for(let Di=0,rr=Yn.length;Dixe||m.y>xe)&&(m.x>xe&&(M.x=Math.floor(xe/br.x),m.x=M.x*br.x,Oi.mapSize.x=M.x),m.y>xe&&(M.y=Math.floor(xe/br.y),m.y=M.y*br.y,Oi.mapSize.y=M.y)),null===Oi.map||!0===Ti||!0===ur){const lr=this.type!==De?{minFilter:ti,magFilter:ti}:{};null!==Oi.map&&Oi.map.dispose(),Oi.map=new Fu(m.x,m.y,lr),Oi.map.texture.name=rr.name+".shadowMap",Oi.camera.updateProjectionMatrix()}w.setRenderTarget(Oi.map),w.clear();const Ji=Oi.getViewportCount();for(let lr=0;lr=1):-1!==lr.indexOf("OpenGL ES")&&(Ji=parseFloat(/^OpenGL ES (\d)/.exec(lr)[1]),br=Ji>=2);let ei=null,sr={};const as=w.getParameter(w.SCISSOR_BOX),xs=w.getParameter(w.VIEWPORT),Ds=(new il).fromArray(as),fs=(new il).fromArray(xs);function eo(Kn,ys,jr,dr){const ts=new Uint8Array(4),xo=w.createTexture();w.bindTexture(Kn,xo),w.texParameteri(Kn,w.TEXTURE_MIN_FILTER,w.NEAREST),w.texParameteri(Kn,w.TEXTURE_MAG_FILTER,w.NEAREST);for(let Na=0;Na"u")&&/OculusBrowser/g.test(navigator.userAgent),Ke=new WeakMap;let ft;const Qe=new WeakMap;let ze=!1;try{ze=typeof OffscreenCanvas<"u"&&null!==new OffscreenCanvas(1,1).getContext("2d")}catch{}function Ct($t,Pt){return ze?new OffscreenCanvas($t,Pt):mi("canvas")}function ct($t,Pt,ni,cr){let Ar=1;if(($t.width>cr||$t.height>cr)&&(Ar=cr/Math.max($t.width,$t.height)),Ar<1||!0===Pt){if(typeof HTMLImageElement<"u"&&$t instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&$t instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&$t instanceof ImageBitmap){const Br=Pt?Xd:Math.floor,ks=Br(Ar*$t.width),Ir=Br(Ar*$t.height);void 0===ft&&(ft=Ct(ks,Ir));const es=ni?Ct(ks,Ir):ft;return es.width=ks,es.height=Ir,es.getContext("2d").drawImage($t,0,0,ks,Ir),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+$t.width+"x"+$t.height+") to ("+ks+"x"+Ir+")."),es}return"data"in $t&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+$t.width+"x"+$t.height+")."),$t}return $t}function Dt($t){return gu($t.width)&&gu($t.height)}function ln($t,Pt){return $t.generateMipmaps&&Pt&&$t.minFilter!==ti&&$t.minFilter!==xt}function rn($t){w.generateMipmap($t)}function Rn($t,Pt,ni,cr,Ar=!1){if(!1===q)return Pt;if(null!==$t){if(void 0!==w[$t])return w[$t];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+$t+"'")}let Br=Pt;if(Pt===w.RED&&(ni===w.FLOAT&&(Br=w.R32F),ni===w.HALF_FLOAT&&(Br=w.R16F),ni===w.UNSIGNED_BYTE&&(Br=w.R8)),Pt===w.RED_INTEGER&&(ni===w.UNSIGNED_BYTE&&(Br=w.R8UI),ni===w.UNSIGNED_SHORT&&(Br=w.R16UI),ni===w.UNSIGNED_INT&&(Br=w.R32UI),ni===w.BYTE&&(Br=w.R8I),ni===w.SHORT&&(Br=w.R16I),ni===w.INT&&(Br=w.R32I)),Pt===w.RG&&(ni===w.FLOAT&&(Br=w.RG32F),ni===w.HALF_FLOAT&&(Br=w.RG16F),ni===w.UNSIGNED_BYTE&&(Br=w.RG8)),Pt===w.RGBA){const ks=Ar?tl:Ya.getTransfer(cr);ni===w.FLOAT&&(Br=w.RGBA32F),ni===w.HALF_FLOAT&&(Br=w.RGBA16F),ni===w.UNSIGNED_BYTE&&(Br=ks===$o?w.SRGB8_ALPHA8:w.RGBA8),ni===w.UNSIGNED_SHORT_4_4_4_4&&(Br=w.RGBA4),ni===w.UNSIGNED_SHORT_5_5_5_1&&(Br=w.RGB5_A1)}return(Br===w.R16F||Br===w.R32F||Br===w.RG16F||Br===w.RG32F||Br===w.RGBA16F||Br===w.RGBA32F)&&a.get("EXT_color_buffer_float"),Br}function kt($t,Pt,ni){return!0===ln($t,ni)||$t.isFramebufferTexture&&$t.minFilter!==ti&&$t.minFilter!==xt?Math.log2(Math.max(Pt.width,Pt.height))+1:void 0!==$t.mipmaps&&$t.mipmaps.length>0?$t.mipmaps.length:$t.isCompressedTexture&&Array.isArray($t.image)?Pt.mipmaps.length:1}function Zt($t){return $t===ti||1004===$t||1005===$t?w.NEAREST:w.LINEAR}function li($t){const Pt=$t.target;Pt.removeEventListener("dispose",li),function ur($t){const Pt=h.get($t);if(void 0===Pt.__webglInit)return;const ni=$t.source,cr=Qe.get(ni);if(cr){const Ar=cr[Pt.__cacheKey];Ar.usedTimes--,0===Ar.usedTimes&&Yn($t),0===Object.keys(cr).length&&Qe.delete(ni)}h.remove($t)}(Pt),Pt.isVideoTexture&&Ke.delete(Pt)}function Ti($t){const Pt=$t.target;Pt.removeEventListener("dispose",Ti),function Di($t){const Pt=$t.texture,ni=h.get($t),cr=h.get(Pt);if(void 0!==cr.__webglTexture&&(w.deleteTexture(cr.__webglTexture),N.memory.textures--),$t.depthTexture&&$t.depthTexture.dispose(),$t.isWebGLCubeRenderTarget)for(let Ar=0;Ar<6;Ar++){if(Array.isArray(ni.__webglFramebuffer[Ar]))for(let Br=0;Br0&&ni.__version!==$t.version){const cr=$t.image;if(null===cr)console.warn("THREE.WebGLRenderer: Texture marked for update but no image data found.");else{if(!1!==cr.complete)return void Or(ni,$t,Pt);console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete")}}c.bindTexture(w.TEXTURE_2D,ni.__webglTexture,w.TEXTURE0+Pt)}const xs={1e3:w.REPEAT,[ai]:w.CLAMP_TO_EDGE,1002:w.MIRRORED_REPEAT},Ds={[ti]:w.NEAREST,1004:w.NEAREST_MIPMAP_NEAREST,1005:w.NEAREST_MIPMAP_LINEAR,[xt]:w.LINEAR,1007:w.LINEAR_MIPMAP_NEAREST,[ye]:w.LINEAR_MIPMAP_LINEAR},fs={512:w.NEVER,519:w.ALWAYS,513:w.LESS,515:w.LEQUAL,514:w.EQUAL,518:w.GEQUAL,516:w.GREATER,517:w.NOTEQUAL};function eo($t,Pt,ni){if(ni?(w.texParameteri($t,w.TEXTURE_WRAP_S,xs[Pt.wrapS]),w.texParameteri($t,w.TEXTURE_WRAP_T,xs[Pt.wrapT]),($t===w.TEXTURE_3D||$t===w.TEXTURE_2D_ARRAY)&&w.texParameteri($t,w.TEXTURE_WRAP_R,xs[Pt.wrapR]),w.texParameteri($t,w.TEXTURE_MAG_FILTER,Ds[Pt.magFilter]),w.texParameteri($t,w.TEXTURE_MIN_FILTER,Ds[Pt.minFilter])):(w.texParameteri($t,w.TEXTURE_WRAP_S,w.CLAMP_TO_EDGE),w.texParameteri($t,w.TEXTURE_WRAP_T,w.CLAMP_TO_EDGE),($t===w.TEXTURE_3D||$t===w.TEXTURE_2D_ARRAY)&&w.texParameteri($t,w.TEXTURE_WRAP_R,w.CLAMP_TO_EDGE),(Pt.wrapS!==ai||Pt.wrapT!==ai)&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping."),w.texParameteri($t,w.TEXTURE_MAG_FILTER,Zt(Pt.magFilter)),w.texParameteri($t,w.TEXTURE_MIN_FILTER,Zt(Pt.minFilter)),Pt.minFilter!==ti&&Pt.minFilter!==xt&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.")),Pt.compareFunction&&(w.texParameteri($t,w.TEXTURE_COMPARE_MODE,w.COMPARE_REF_TO_TEXTURE),w.texParameteri($t,w.TEXTURE_COMPARE_FUNC,fs[Pt.compareFunction])),!0===a.has("EXT_texture_filter_anisotropic")){const cr=a.get("EXT_texture_filter_anisotropic");if(Pt.magFilter===ti||1005!==Pt.minFilter&&Pt.minFilter!==ye||Pt.type===cn&&!1===a.has("OES_texture_float_linear")||!1===q&&Pt.type===In&&!1===a.has("OES_texture_half_float_linear"))return;(Pt.anisotropy>1||h.get(Pt).__currentAnisotropy)&&(w.texParameterf($t,cr.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(Pt.anisotropy,m.getMaxAnisotropy())),h.get(Pt).__currentAnisotropy=Pt.anisotropy)}}function er($t,Pt){let ni=!1;void 0===$t.__webglInit&&($t.__webglInit=!0,Pt.addEventListener("dispose",li));const cr=Pt.source;let Ar=Qe.get(cr);void 0===Ar&&(Ar={},Qe.set(cr,Ar));const Br=function Ji($t){const Pt=[];return Pt.push($t.wrapS),Pt.push($t.wrapT),Pt.push($t.wrapR||0),Pt.push($t.magFilter),Pt.push($t.minFilter),Pt.push($t.anisotropy),Pt.push($t.internalFormat),Pt.push($t.format),Pt.push($t.type),Pt.push($t.generateMipmaps),Pt.push($t.premultiplyAlpha),Pt.push($t.flipY),Pt.push($t.unpackAlignment),Pt.push($t.colorSpace),Pt.join()}(Pt);if(Br!==$t.__cacheKey){void 0===Ar[Br]&&(Ar[Br]={texture:w.createTexture(),usedTimes:0},N.memory.textures++,ni=!0),Ar[Br].usedTimes++;const ks=Ar[$t.__cacheKey];void 0!==ks&&(Ar[$t.__cacheKey].usedTimes--,0===ks.usedTimes&&Yn(Pt)),$t.__cacheKey=Br,$t.__webglTexture=Ar[Br].texture}return ni}function Or($t,Pt,ni){let cr=w.TEXTURE_2D;(Pt.isDataArrayTexture||Pt.isCompressedArrayTexture)&&(cr=w.TEXTURE_2D_ARRAY),Pt.isData3DTexture&&(cr=w.TEXTURE_3D);const Ar=er($t,Pt),Br=Pt.source;c.bindTexture(cr,$t.__webglTexture,w.TEXTURE0+ni);const ks=h.get(Br);if(Br.version!==ks.__version||!0===Ar){c.activeTexture(w.TEXTURE0+ni);const Ir=Ya.getPrimaries(Ya.workingColorSpace),es=""===Pt.colorSpace?null:Ya.getPrimaries(Pt.colorSpace),Nn=""===Pt.colorSpace||Ir===es?w.NONE:w.BROWSER_DEFAULT_WEBGL;w.pixelStorei(w.UNPACK_FLIP_Y_WEBGL,Pt.flipY),w.pixelStorei(w.UNPACK_PREMULTIPLY_ALPHA_WEBGL,Pt.premultiplyAlpha),w.pixelStorei(w.UNPACK_ALIGNMENT,Pt.unpackAlignment),w.pixelStorei(w.UNPACK_COLORSPACE_CONVERSION_WEBGL,Nn);const Hr=function Jt($t){return!q&&($t.wrapS!==ai||$t.wrapT!==ai||$t.minFilter!==ti&&$t.minFilter!==xt)}(Pt)&&!1===Dt(Pt.image);let xr=ct(Pt.image,Hr,!1,xe);xr=_s(Pt,xr);const Oo=Dt(xr)||q,Ao=M.convert(Pt.format,Pt.colorSpace);let Ps,fo=M.convert(Pt.type),to=Rn(Pt.internalFormat,Ao,fo,Pt.colorSpace,Pt.isVideoTexture);eo(cr,Pt,Oo);const _a=Pt.mipmaps,Kn=q&&!0!==Pt.isVideoTexture,ys=void 0===ks.__version||!0===Ar,jr=kt(Pt,xr,Oo);if(Pt.isDepthTexture)to=w.DEPTH_COMPONENT,q?to=Pt.type===cn?w.DEPTH_COMPONENT32F:Pt.type===kn?w.DEPTH_COMPONENT24:Pt.type===Si?w.DEPTH24_STENCIL8:w.DEPTH_COMPONENT16:Pt.type===cn&&console.error("WebGLRenderer: Floating point depth texture requires WebGL2."),Pt.format===Rs&&to===w.DEPTH_COMPONENT&&1012!==Pt.type&&Pt.type!==kn&&(console.warn("THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture."),Pt.type=kn,fo=M.convert(Pt.type)),Pt.format===oe&&to===w.DEPTH_COMPONENT&&(to=w.DEPTH_STENCIL,Pt.type!==Si&&(console.warn("THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture."),Pt.type=Si,fo=M.convert(Pt.type))),ys&&(Kn?c.texStorage2D(w.TEXTURE_2D,1,to,xr.width,xr.height):c.texImage2D(w.TEXTURE_2D,0,to,xr.width,xr.height,0,Ao,fo,null));else if(Pt.isDataTexture)if(_a.length>0&&Oo){Kn&&ys&&c.texStorage2D(w.TEXTURE_2D,jr,to,_a[0].width,_a[0].height);for(let dr=0,ts=_a.length;dr>=1,ts>>=1}}else if(_a.length>0&&Oo){Kn&&ys&&c.texStorage2D(w.TEXTURE_2D,jr,to,_a[0].width,_a[0].height);for(let dr=0,ts=_a.length;dr>Br),xr=Math.max(1,Pt.height>>Br);Ar===w.TEXTURE_3D||Ar===w.TEXTURE_2D_ARRAY?c.texImage3D(Ar,Br,es,Hr,xr,Pt.depth,0,ks,Ir,null):c.texImage2D(Ar,Br,es,Hr,xr,0,ks,Ir,null)}c.bindFramebuffer(w.FRAMEBUFFER,$t),us(Pt)?Be.framebufferTexture2DMultisampleEXT(w.FRAMEBUFFER,cr,Ar,h.get(ni).__webglTexture,0,fr(Pt)):(Ar===w.TEXTURE_2D||Ar>=w.TEXTURE_CUBE_MAP_POSITIVE_X&&Ar<=w.TEXTURE_CUBE_MAP_NEGATIVE_Z)&&w.framebufferTexture2D(w.FRAMEBUFFER,cr,Ar,h.get(ni).__webglTexture,Br),c.bindFramebuffer(w.FRAMEBUFFER,null)}function _n($t,Pt,ni){if(w.bindRenderbuffer(w.RENDERBUFFER,$t),Pt.depthBuffer&&!Pt.stencilBuffer){let cr=!0===q?w.DEPTH_COMPONENT24:w.DEPTH_COMPONENT16;if(ni||us(Pt)){const Ar=Pt.depthTexture;Ar&&Ar.isDepthTexture&&(Ar.type===cn?cr=w.DEPTH_COMPONENT32F:Ar.type===kn&&(cr=w.DEPTH_COMPONENT24));const Br=fr(Pt);us(Pt)?Be.renderbufferStorageMultisampleEXT(w.RENDERBUFFER,Br,cr,Pt.width,Pt.height):w.renderbufferStorageMultisample(w.RENDERBUFFER,Br,cr,Pt.width,Pt.height)}else w.renderbufferStorage(w.RENDERBUFFER,cr,Pt.width,Pt.height);w.framebufferRenderbuffer(w.FRAMEBUFFER,w.DEPTH_ATTACHMENT,w.RENDERBUFFER,$t)}else if(Pt.depthBuffer&&Pt.stencilBuffer){const cr=fr(Pt);ni&&!1===us(Pt)?w.renderbufferStorageMultisample(w.RENDERBUFFER,cr,w.DEPTH24_STENCIL8,Pt.width,Pt.height):us(Pt)?Be.renderbufferStorageMultisampleEXT(w.RENDERBUFFER,cr,w.DEPTH24_STENCIL8,Pt.width,Pt.height):w.renderbufferStorage(w.RENDERBUFFER,w.DEPTH_STENCIL,Pt.width,Pt.height),w.framebufferRenderbuffer(w.FRAMEBUFFER,w.DEPTH_STENCIL_ATTACHMENT,w.RENDERBUFFER,$t)}else{const cr=!0===Pt.isWebGLMultipleRenderTargets?Pt.texture:[Pt.texture];for(let Ar=0;Ar0&&!0===a.has("WEBGL_multisampled_render_to_texture")&&!1!==Pt.__useRenderToTexture}function _s($t,Pt){const ni=$t.colorSpace,cr=$t.format,Ar=$t.type;return!0===$t.isCompressedTexture||!0===$t.isVideoTexture||1035===$t.format||ni!==sc&&""!==ni&&(Ya.getTransfer(ni)===$o?!1===q?!0===a.has("EXT_sRGB")&&cr===Jn?($t.format=1035,$t.minFilter=xt,$t.generateMipmaps=!1):Pt=yu.sRGBToLinear(Pt):(cr!==Jn||Ar!==At)&&console.warn("THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):console.error("THREE.WebGLTextures: Unsupported texture color space:",ni)),Pt}this.allocateTextureUnit=function br(){const $t=rr;return $t>=de&&console.warn("THREE.WebGLTextures: Trying to use "+$t+" texture units while this GPU supports only "+de),rr+=1,$t},this.resetTextureUnits=function Oi(){rr=0},this.setTexture2D=lr,this.setTexture2DArray=function ei($t,Pt){const ni=h.get($t);$t.version>0&&ni.__version!==$t.version?Or(ni,$t,Pt):c.bindTexture(w.TEXTURE_2D_ARRAY,ni.__webglTexture,w.TEXTURE0+Pt)},this.setTexture3D=function sr($t,Pt){const ni=h.get($t);$t.version>0&&ni.__version!==$t.version?Or(ni,$t,Pt):c.bindTexture(w.TEXTURE_3D,ni.__webglTexture,w.TEXTURE0+Pt)},this.setTextureCube=function as($t,Pt){const ni=h.get($t);$t.version>0&&ni.__version!==$t.version?function yr($t,Pt,ni){if(6!==Pt.image.length)return;const cr=er($t,Pt),Ar=Pt.source;c.bindTexture(w.TEXTURE_CUBE_MAP,$t.__webglTexture,w.TEXTURE0+ni);const Br=h.get(Ar);if(Ar.version!==Br.__version||!0===cr){c.activeTexture(w.TEXTURE0+ni);const ks=Ya.getPrimaries(Ya.workingColorSpace),Ir=""===Pt.colorSpace?null:Ya.getPrimaries(Pt.colorSpace),es=""===Pt.colorSpace||ks===Ir?w.NONE:w.BROWSER_DEFAULT_WEBGL;w.pixelStorei(w.UNPACK_FLIP_Y_WEBGL,Pt.flipY),w.pixelStorei(w.UNPACK_PREMULTIPLY_ALPHA_WEBGL,Pt.premultiplyAlpha),w.pixelStorei(w.UNPACK_ALIGNMENT,Pt.unpackAlignment),w.pixelStorei(w.UNPACK_COLORSPACE_CONVERSION_WEBGL,es);const Nn=Pt.isCompressedTexture||Pt.image[0].isCompressedTexture,Hr=Pt.image[0]&&Pt.image[0].isDataTexture,xr=[];for(let dr=0;dr<6;dr++)xr[dr]=Nn||Hr?Hr?Pt.image[dr].image:Pt.image[dr]:ct(Pt.image[dr],!1,!0,pe),xr[dr]=_s(Pt,xr[dr]);const Oo=xr[0],Ao=Dt(Oo)||q,fo=M.convert(Pt.format,Pt.colorSpace),to=M.convert(Pt.type),Ps=Rn(Pt.internalFormat,fo,to,Pt.colorSpace),_a=q&&!0!==Pt.isVideoTexture,Kn=void 0===Br.__version||!0===cr;let jr,ys=kt(Pt,Oo,Ao);if(eo(w.TEXTURE_CUBE_MAP,Pt,Ao),Nn){_a&&Kn&&c.texStorage2D(w.TEXTURE_CUBE_MAP,ys,Ps,Oo.width,Oo.height);for(let dr=0;dr<6;dr++){jr=xr[dr].mipmaps;for(let ts=0;ts0&&ys++,c.texStorage2D(w.TEXTURE_CUBE_MAP,ys,Ps,xr[0].width,xr[0].height));for(let dr=0;dr<6;dr++)if(Hr){_a?c.texSubImage2D(w.TEXTURE_CUBE_MAP_POSITIVE_X+dr,0,0,0,xr[dr].width,xr[dr].height,fo,to,xr[dr].data):c.texImage2D(w.TEXTURE_CUBE_MAP_POSITIVE_X+dr,0,Ps,xr[dr].width,xr[dr].height,0,fo,to,xr[dr].data);for(let ts=0;ts0){ni.__webglFramebuffer[Ir]=[];for(let es=0;es0){ni.__webglFramebuffer=[];for(let Ir=0;Ir0&&!1===us($t)){const Ir=Br?Pt:[Pt];ni.__webglMultisampledFramebuffer=w.createFramebuffer(),ni.__webglColorRenderbuffer=[],c.bindFramebuffer(w.FRAMEBUFFER,ni.__webglMultisampledFramebuffer);for(let es=0;es0)for(let es=0;es0)for(let es=0;es0&&!1===us($t)){const Pt=$t.isWebGLMultipleRenderTargets?$t.texture:[$t.texture],ni=$t.width,cr=$t.height;let Ar=w.COLOR_BUFFER_BIT;const Br=[],ks=$t.stencilBuffer?w.DEPTH_STENCIL_ATTACHMENT:w.DEPTH_ATTACHMENT,Ir=h.get($t),es=!0===$t.isWebGLMultipleRenderTargets;if(es)for(let Nn=0;NnLe+Ke?(pe.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:a.handedness,target:this})):!pe.inputState.pinching&&Be<=Le-Ke&&(pe.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:a.handedness,target:this}))}else null!==de&&a.gripSpace&&(M=c.getPose(a.gripSpace,h),null!==M&&(de.matrix.fromArray(M.transform.matrix),de.matrix.decompose(de.position,de.rotation,de.scale),de.matrixWorldNeedsUpdate=!0,M.linearVelocity?(de.hasLinearVelocity=!0,de.linearVelocity.copy(M.linearVelocity)):de.hasLinearVelocity=!1,M.angularVelocity?(de.hasAngularVelocity=!0,de.angularVelocity.copy(M.angularVelocity)):de.hasAngularVelocity=!1));null!==q&&(m=c.getPose(a.targetRaySpace,h),null===m&&null!==M&&(m=M),null!==m&&(q.matrix.fromArray(m.transform.matrix),q.matrix.decompose(q.position,q.rotation,q.scale),q.matrixWorldNeedsUpdate=!0,m.linearVelocity?(q.hasLinearVelocity=!0,q.linearVelocity.copy(m.linearVelocity)):q.hasLinearVelocity=!1,m.angularVelocity?(q.hasAngularVelocity=!0,q.angularVelocity.copy(m.angularVelocity)):q.hasAngularVelocity=!1,this.dispatchEvent(Sa)))}return null!==q&&(q.visible=null!==m),null!==de&&(de.visible=null!==M),null!==pe&&(pe.visible=null!==N),this}_getHandJoint(a,c){if(void 0===a.joints[c.jointName]){const h=new nd;h.matrixAutoUpdate=!1,h.visible=!1,a.joints[c.jointName]=h,a.add(h)}return a.joints[c.jointName]}}class _h extends vu{constructor(a,c,h,m,M,N,q,de,pe,xe){if((xe=void 0!==xe?xe:Rs)!==Rs&&xe!==oe)throw new Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");void 0===h&&xe===Rs&&(h=kn),void 0===h&&xe===oe&&(h=Si),super(null,m,M,N,q,de,xe,h,pe),this.isDepthTexture=!0,this.image={width:a,height:c},this.magFilter=void 0!==q?q:ti,this.minFilter=void 0!==de?de:ti,this.flipY=!1,this.generateMipmaps=!1,this.compareFunction=null}copy(a){return super.copy(a),this.compareFunction=a.compareFunction,this}toJSON(a){const c=super.toJSON(a);return null!==this.compareFunction&&(c.compareFunction=this.compareFunction),c}}class QA extends bh{constructor(a,c){super();const h=this;let m=null,M=1,N=null,q="local-floor",de=1,pe=null,xe=null,Ie=null,Be=null,Le=null,Ke=null;const ft=c.getContextAttributes();let Qe=null,ze=null;const Ct=[],ct=[],Dt=new Vl;Dt.layers.enable(1),Dt.viewport=new il;const Jt=new Vl;Jt.layers.enable(2),Jt.viewport=new il;const ln=[Dt,Jt],rn=new Wr;rn.layers.enable(1),rn.layers.enable(2);let Rn=null,kt=null;function Zt(ei){const sr=ct.indexOf(ei.inputSource);if(-1===sr)return;const as=Ct[sr];void 0!==as&&(as.update(ei.inputSource,ei.frame,pe||N),as.dispatchEvent({type:ei.type,data:ei.inputSource}))}function li(){m.removeEventListener("select",Zt),m.removeEventListener("selectstart",Zt),m.removeEventListener("selectend",Zt),m.removeEventListener("squeeze",Zt),m.removeEventListener("squeezestart",Zt),m.removeEventListener("squeezeend",Zt),m.removeEventListener("end",li),m.removeEventListener("inputsourceschange",Ti);for(let ei=0;ei=0&&(ct[xs]=null,Ct[xs].disconnect(as))}for(let sr=0;sr=ct.length){ct.push(as),xs=fs;break}if(null===ct[fs]){ct[fs]=as,xs=fs;break}}if(-1===xs)break}const Ds=Ct[xs];Ds&&Ds.connect(as)}}this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(ei){let sr=Ct[ei];return void 0===sr&&(sr=new ec,Ct[ei]=sr),sr.getTargetRaySpace()},this.getControllerGrip=function(ei){let sr=Ct[ei];return void 0===sr&&(sr=new ec,Ct[ei]=sr),sr.getGripSpace()},this.getHand=function(ei){let sr=Ct[ei];return void 0===sr&&(sr=new ec,Ct[ei]=sr),sr.getHandSpace()},this.setFramebufferScaleFactor=function(ei){M=ei,!0===h.isPresenting&&console.warn("THREE.WebXRManager: Cannot change framebuffer scale while presenting.")},this.setReferenceSpaceType=function(ei){q=ei,!0===h.isPresenting&&console.warn("THREE.WebXRManager: Cannot change reference space type while presenting.")},this.getReferenceSpace=function(){return pe||N},this.setReferenceSpace=function(ei){pe=ei},this.getBaseLayer=function(){return null!==Be?Be:Le},this.getBinding=function(){return Ie},this.getFrame=function(){return Ke},this.getSession=function(){return m},this.setSession=function(){var ei=(0,Te.A)(function*(sr){if(m=sr,null!==m){if(Qe=a.getRenderTarget(),m.addEventListener("select",Zt),m.addEventListener("selectstart",Zt),m.addEventListener("selectend",Zt),m.addEventListener("squeeze",Zt),m.addEventListener("squeezestart",Zt),m.addEventListener("squeezeend",Zt),m.addEventListener("end",li),m.addEventListener("inputsourceschange",Ti),!0!==ft.xrCompatible&&(yield c.makeXRCompatible()),void 0===m.renderState.layers||!1===a.capabilities.isWebGL2)Le=new XRWebGLLayer(m,c,{antialias:void 0!==m.renderState.layers||ft.antialias,alpha:!0,depth:ft.depth,stencil:ft.stencil,framebufferScaleFactor:M}),m.updateRenderState({baseLayer:Le}),ze=new Fu(Le.framebufferWidth,Le.framebufferHeight,{format:Jn,type:At,colorSpace:a.outputColorSpace,stencilBuffer:ft.stencil});else{let as=null,xs=null,Ds=null;ft.depth&&(Ds=ft.stencil?c.DEPTH24_STENCIL8:c.DEPTH_COMPONENT24,as=ft.stencil?oe:Rs,xs=ft.stencil?Si:kn);const fs={colorFormat:c.RGBA8,depthFormat:Ds,scaleFactor:M};Ie=new XRWebGLBinding(m,c),Be=Ie.createProjectionLayer(fs),m.updateRenderState({layers:[Be]}),ze=new Fu(Be.textureWidth,Be.textureHeight,{format:Jn,type:At,depthTexture:new _h(Be.textureWidth,Be.textureHeight,xs,void 0,void 0,void 0,void 0,void 0,void 0,as),stencilBuffer:ft.stencil,colorSpace:a.outputColorSpace,samples:ft.antialias?4:0}),a.properties.get(ze).__ignoreDepthValues=Be.ignoreDepthValues}ze.isXRRenderTarget=!0,this.setFoveation(de),pe=null,N=yield m.requestReferenceSpace(q),lr.setContext(m),lr.start(),h.isPresenting=!0,h.dispatchEvent({type:"sessionstart"})}});return function(sr){return ei.apply(this,arguments)}}(),this.getEnvironmentBlendMode=function(){if(null!==m)return m.environmentBlendMode};const ur=new Ft,Yn=new Ft;function rr(ei,sr){null===sr?ei.matrixWorld.copy(ei.matrix):ei.matrixWorld.multiplyMatrices(sr.matrixWorld,ei.matrix),ei.matrixWorldInverse.copy(ei.matrixWorld).invert()}this.updateCamera=function(ei){if(null===m)return;rn.near=Jt.near=Dt.near=ei.near,rn.far=Jt.far=Dt.far=ei.far,(Rn!==rn.near||kt!==rn.far)&&(m.updateRenderState({depthNear:rn.near,depthFar:rn.far}),Rn=rn.near,kt=rn.far);const sr=ei.parent,as=rn.cameras;rr(rn,sr);for(let xs=0;xs0&&(Qe.alphaTest.value=ze.alphaTest);const Ct=a.get(ze).envMap;if(Ct&&(Qe.envMap.value=Ct,Qe.flipEnvMap.value=Ct.isCubeTexture&&!1===Ct.isRenderTargetTexture?-1:1,Qe.reflectivity.value=ze.reflectivity,Qe.ior.value=ze.ior,Qe.refractionRatio.value=ze.refractionRatio),ze.lightMap){Qe.lightMap.value=ze.lightMap;const ct=!0===w._useLegacyLights?Math.PI:1;Qe.lightMapIntensity.value=ze.lightMapIntensity*ct,c(ze.lightMap,Qe.lightMapTransform)}ze.aoMap&&(Qe.aoMap.value=ze.aoMap,Qe.aoMapIntensity.value=ze.aoMapIntensity,c(ze.aoMap,Qe.aoMapTransform))}return{refreshFogUniforms:function h(Qe,ze){ze.color.getRGB(Qe.fogColor.value,Fc(w)),ze.isFog?(Qe.fogNear.value=ze.near,Qe.fogFar.value=ze.far):ze.isFogExp2&&(Qe.fogDensity.value=ze.density)},refreshMaterialUniforms:function m(Qe,ze,Ct,ct,Dt){ze.isMeshBasicMaterial||ze.isMeshLambertMaterial?M(Qe,ze):ze.isMeshToonMaterial?(M(Qe,ze),function Ie(Qe,ze){ze.gradientMap&&(Qe.gradientMap.value=ze.gradientMap)}(Qe,ze)):ze.isMeshPhongMaterial?(M(Qe,ze),function xe(Qe,ze){Qe.specular.value.copy(ze.specular),Qe.shininess.value=Math.max(ze.shininess,1e-4)}(Qe,ze)):ze.isMeshStandardMaterial?(M(Qe,ze),function Be(Qe,ze){Qe.metalness.value=ze.metalness,ze.metalnessMap&&(Qe.metalnessMap.value=ze.metalnessMap,c(ze.metalnessMap,Qe.metalnessMapTransform)),Qe.roughness.value=ze.roughness,ze.roughnessMap&&(Qe.roughnessMap.value=ze.roughnessMap,c(ze.roughnessMap,Qe.roughnessMapTransform)),a.get(ze).envMap&&(Qe.envMapIntensity.value=ze.envMapIntensity)}(Qe,ze),ze.isMeshPhysicalMaterial&&function Le(Qe,ze,Ct){Qe.ior.value=ze.ior,ze.sheen>0&&(Qe.sheenColor.value.copy(ze.sheenColor).multiplyScalar(ze.sheen),Qe.sheenRoughness.value=ze.sheenRoughness,ze.sheenColorMap&&(Qe.sheenColorMap.value=ze.sheenColorMap,c(ze.sheenColorMap,Qe.sheenColorMapTransform)),ze.sheenRoughnessMap&&(Qe.sheenRoughnessMap.value=ze.sheenRoughnessMap,c(ze.sheenRoughnessMap,Qe.sheenRoughnessMapTransform))),ze.clearcoat>0&&(Qe.clearcoat.value=ze.clearcoat,Qe.clearcoatRoughness.value=ze.clearcoatRoughness,ze.clearcoatMap&&(Qe.clearcoatMap.value=ze.clearcoatMap,c(ze.clearcoatMap,Qe.clearcoatMapTransform)),ze.clearcoatRoughnessMap&&(Qe.clearcoatRoughnessMap.value=ze.clearcoatRoughnessMap,c(ze.clearcoatRoughnessMap,Qe.clearcoatRoughnessMapTransform)),ze.clearcoatNormalMap&&(Qe.clearcoatNormalMap.value=ze.clearcoatNormalMap,c(ze.clearcoatNormalMap,Qe.clearcoatNormalMapTransform),Qe.clearcoatNormalScale.value.copy(ze.clearcoatNormalScale),1===ze.side&&Qe.clearcoatNormalScale.value.negate())),ze.iridescence>0&&(Qe.iridescence.value=ze.iridescence,Qe.iridescenceIOR.value=ze.iridescenceIOR,Qe.iridescenceThicknessMinimum.value=ze.iridescenceThicknessRange[0],Qe.iridescenceThicknessMaximum.value=ze.iridescenceThicknessRange[1],ze.iridescenceMap&&(Qe.iridescenceMap.value=ze.iridescenceMap,c(ze.iridescenceMap,Qe.iridescenceMapTransform)),ze.iridescenceThicknessMap&&(Qe.iridescenceThicknessMap.value=ze.iridescenceThicknessMap,c(ze.iridescenceThicknessMap,Qe.iridescenceThicknessMapTransform))),ze.transmission>0&&(Qe.transmission.value=ze.transmission,Qe.transmissionSamplerMap.value=Ct.texture,Qe.transmissionSamplerSize.value.set(Ct.width,Ct.height),ze.transmissionMap&&(Qe.transmissionMap.value=ze.transmissionMap,c(ze.transmissionMap,Qe.transmissionMapTransform)),Qe.thickness.value=ze.thickness,ze.thicknessMap&&(Qe.thicknessMap.value=ze.thicknessMap,c(ze.thicknessMap,Qe.thicknessMapTransform)),Qe.attenuationDistance.value=ze.attenuationDistance,Qe.attenuationColor.value.copy(ze.attenuationColor)),ze.anisotropy>0&&(Qe.anisotropyVector.value.set(ze.anisotropy*Math.cos(ze.anisotropyRotation),ze.anisotropy*Math.sin(ze.anisotropyRotation)),ze.anisotropyMap&&(Qe.anisotropyMap.value=ze.anisotropyMap,c(ze.anisotropyMap,Qe.anisotropyMapTransform))),Qe.specularIntensity.value=ze.specularIntensity,Qe.specularColor.value.copy(ze.specularColor),ze.specularColorMap&&(Qe.specularColorMap.value=ze.specularColorMap,c(ze.specularColorMap,Qe.specularColorMapTransform)),ze.specularIntensityMap&&(Qe.specularIntensityMap.value=ze.specularIntensityMap,c(ze.specularIntensityMap,Qe.specularIntensityMapTransform))}(Qe,ze,Dt)):ze.isMeshMatcapMaterial?(M(Qe,ze),function Ke(Qe,ze){ze.matcap&&(Qe.matcap.value=ze.matcap)}(Qe,ze)):ze.isMeshDepthMaterial?M(Qe,ze):ze.isMeshDistanceMaterial?(M(Qe,ze),function ft(Qe,ze){const Ct=a.get(ze).light;Qe.referencePosition.value.setFromMatrixPosition(Ct.matrixWorld),Qe.nearDistance.value=Ct.shadow.camera.near,Qe.farDistance.value=Ct.shadow.camera.far}(Qe,ze)):ze.isMeshNormalMaterial?M(Qe,ze):ze.isLineBasicMaterial?(function N(Qe,ze){Qe.diffuse.value.copy(ze.color),Qe.opacity.value=ze.opacity,ze.map&&(Qe.map.value=ze.map,c(ze.map,Qe.mapTransform))}(Qe,ze),ze.isLineDashedMaterial&&function q(Qe,ze){Qe.dashSize.value=ze.dashSize,Qe.totalSize.value=ze.dashSize+ze.gapSize,Qe.scale.value=ze.scale}(Qe,ze)):ze.isPointsMaterial?function de(Qe,ze,Ct,ct){Qe.diffuse.value.copy(ze.color),Qe.opacity.value=ze.opacity,Qe.size.value=ze.size*Ct,Qe.scale.value=.5*ct,ze.map&&(Qe.map.value=ze.map,c(ze.map,Qe.uvTransform)),ze.alphaMap&&(Qe.alphaMap.value=ze.alphaMap,c(ze.alphaMap,Qe.alphaMapTransform)),ze.alphaTest>0&&(Qe.alphaTest.value=ze.alphaTest)}(Qe,ze,Ct,ct):ze.isSpriteMaterial?function pe(Qe,ze){Qe.diffuse.value.copy(ze.color),Qe.opacity.value=ze.opacity,Qe.rotation.value=ze.rotation,ze.map&&(Qe.map.value=ze.map,c(ze.map,Qe.mapTransform)),ze.alphaMap&&(Qe.alphaMap.value=ze.alphaMap,c(ze.alphaMap,Qe.alphaMapTransform)),ze.alphaTest>0&&(Qe.alphaTest.value=ze.alphaTest)}(Qe,ze):ze.isShadowMaterial?(Qe.color.value.copy(ze.color),Qe.opacity.value=ze.opacity):ze.isShaderMaterial&&(ze.uniformsNeedUpdate=!1)}}}function IB(w,a,c,h){let m={},M={},N=[];const q=c.isWebGL2?w.getParameter(w.MAX_UNIFORM_BUFFER_BINDINGS):0;function Le(Ct,ct,Dt){const Jt=Ct.value;if(void 0===Dt[ct]){if("number"==typeof Jt)Dt[ct]=Jt;else{const ln=Array.isArray(Jt)?Jt:[Jt],rn=[];for(let Rn=0;Rn0&&(ln=Dt%16,0!==ln&&16-ln-Zt.boundary<0&&(Dt+=16-ln,kt.__offset=Dt)),Dt+=Zt.storage}ln=Dt%16,ln>0&&(Dt+=16-ln),Ct.__size=Dt,Ct.__cache={}}(Ct),Dt=function xe(Ct){const ct=function Ie(){for(let Ct=0;Ct0),da=!!ji.morphAttributes.position,rd=!!ji.morphAttributes.normal,fp=!!ji.morphAttributes.color;let zd=pt;ir.toneMapped&&(null===rn||!0===rn.isXRRenderTarget)&&(zd=ct.toneMapping);const JA=ji.morphAttributes.position||ji.morphAttributes.normal||ji.morphAttributes.color,sd=void 0!==JA?JA.length:0,$a=Nr.get(ir),HM=Qe.state.lights;!0!==xs||!0!==Ds&&An===kt||ks.setState(ir,An,An===kt&&ir.id===Rn);let _d=!1;ir.version===$a.__version?($a.needsLights&&$a.lightsStateVersion!==HM.state.version||$a.outputColorSpace!==Jo||or.isInstancedMesh&&!1===$a.instancing||!or.isInstancedMesh&&!0===$a.instancing||or.isSkinnedMesh&&!1===$a.skinning||!or.isSkinnedMesh&&!0===$a.skinning||or.isInstancedMesh&&!0===$a.instancingColor&&null===or.instanceColor||or.isInstancedMesh&&!1===$a.instancingColor&&null!==or.instanceColor||$a.envMap!==fa||!0===ir.fog&&$a.fog!==js||void 0!==$a.numClippingPlanes&&($a.numClippingPlanes!==ks.numPlanes||$a.numIntersection!==ks.numIntersection)||$a.vertexAlphas!==Pa||$a.vertexTangents!==ea||$a.morphTargets!==da||$a.morphNormals!==rd||$a.morphColors!==fp||$a.toneMapping!==zd||!0===Ri.isWebGL2&&$a.morphTargetsCount!==sd)&&(_d=!0):(_d=!0,$a.__version=ir.version);let Jm=$a.currentProgram;!0===_d&&(Jm=zM(ir,yi,or));let VM=!1,lb=!1,vw=!1;const Fh=Jm.getUniforms(),A0=$a.uniforms;if(Ii.useProgram(Jm.program)&&(VM=!0,lb=!0,vw=!0),ir.id!==Rn&&(Rn=ir.id,lb=!0),VM||kt!==An){Fh.setValue(_n,"projectionMatrix",An.projectionMatrix),Fh.setValue(_n,"viewMatrix",An.matrixWorldInverse);const Mf=Fh.map.cameraPosition;void 0!==Mf&&Mf.setValue(_n,Or.setFromMatrixPosition(An.matrixWorld)),Ri.logarithmicDepthBuffer&&Fh.setValue(_n,"logDepthBufFC",2/(Math.log(An.far+1)/Math.LN2)),(ir.isMeshPhongMaterial||ir.isMeshToonMaterial||ir.isMeshLambertMaterial||ir.isMeshBasicMaterial||ir.isMeshStandardMaterial||ir.isShaderMaterial)&&Fh.setValue(_n,"isOrthographic",!0===An.isOrthographicCamera),kt!==An&&(kt=An,lb=!0,vw=!0)}if(or.isSkinnedMesh){Fh.setOptional(_n,or,"bindMatrix"),Fh.setOptional(_n,or,"bindMatrixInverse");const Mf=or.skeleton;Mf&&(Ri.floatVertexTextures?(null===Mf.boneTexture&&Mf.computeBoneTexture(),Fh.setValue(_n,"boneTexture",Mf.boneTexture,fr),Fh.setValue(_n,"boneTextureSize",Mf.boneTextureSize)):console.warn("THREE.WebGLRenderer: SkinnedMesh can only be used with WebGL 2. With WebGL 1 OES_texture_float and vertex textures support is required."))}const b3=ji.morphAttributes;if((void 0!==b3.position||void 0!==b3.normal||void 0!==b3.color&&!0===Ri.isWebGL2)&&Nn.update(or,ji,Jm),(lb||$a.receiveShadow!==or.receiveShadow)&&($a.receiveShadow=or.receiveShadow,Fh.setValue(_n,"receiveShadow",or.receiveShadow)),ir.isMeshGouraudMaterial&&null!==ir.envMap&&(A0.envMap.value=fa,A0.flipEnvMap.value=fa.isCubeTexture&&!1===fa.isRenderTargetTexture?-1:1),lb&&(Fh.setValue(_n,"toneMappingExposure",ct.toneMappingExposure),$a.needsLights&&function y3(An,yi){An.ambientLightColor.needsUpdate=yi,An.lightProbe.needsUpdate=yi,An.directionalLights.needsUpdate=yi,An.directionalLightShadows.needsUpdate=yi,An.pointLights.needsUpdate=yi,An.pointLightShadows.needsUpdate=yi,An.spotLights.needsUpdate=yi,An.spotLightShadows.needsUpdate=yi,An.rectAreaLights.needsUpdate=yi,An.hemisphereLights.needsUpdate=yi}(A0,vw),js&&!0===ir.fog&&cr.refreshFogUniforms(A0,js),cr.refreshMaterialUniforms(A0,ir,Oi,rr,fs),Jp.upload(_n,CP($a),A0,fr)),ir.isShaderMaterial&&!0===ir.uniformsNeedUpdate&&(Jp.upload(_n,CP($a),A0,fr),ir.uniformsNeedUpdate=!1),ir.isSpriteMaterial&&Fh.setValue(_n,"center",or.center),Fh.setValue(_n,"modelViewMatrix",or.modelViewMatrix),Fh.setValue(_n,"normalMatrix",or.normalMatrix),Fh.setValue(_n,"modelMatrix",or.matrixWorld),ir.isShaderMaterial||ir.isRawShaderMaterial){const Mf=ir.uniformsGroups;for(let bw=0,Lo=Mf.length;bw{function js(){ir.forEach(function(Eo){Nr.get(Eo).currentProgram.isReady()&&ir.delete(Eo)}),0!==ir.size?setTimeout(js,10):or(An)}null!==si.get("KHR_parallel_shader_compile")?js():setTimeout(js,10)})};let Na=null;function Cf(){Gu.stop()}function Gl(){Gu.start()}const Gu=new xA;function Zm(An,yi,ji,ir){if(!1===An.visible)return;if(An.layers.test(yi.layers))if(An.isGroup)ji=An.renderOrder;else if(An.isLOD)!0===An.autoUpdate&&An.update(yi);else if(An.isLight)Qe.pushLight(An),An.castShadow&&Qe.pushShadow(An);else if(An.isSprite){if(!An.frustumCulled||as.intersectsSprite(An)){ir&&Or.setFromMatrixPosition(An.matrixWorld).applyMatrix4(eo);const Eo=Pt.update(An),Jo=An.material;Jo.visible&&ft.push(An,Eo,Jo,ji,Or.z,null)}}else if((An.isMesh||An.isLine||An.isPoints)&&(!An.frustumCulled||as.intersectsObject(An))){const Eo=Pt.update(An),Jo=An.material;if(ir&&(void 0!==An.boundingSphere?(null===An.boundingSphere&&An.computeBoundingSphere(),Or.copy(An.boundingSphere.center)):(null===Eo.boundingSphere&&Eo.computeBoundingSphere(),Or.copy(Eo.boundingSphere.center)),Or.applyMatrix4(An.matrixWorld).applyMatrix4(eo)),Array.isArray(Jo)){const fa=Eo.groups;for(let Pa=0,ea=fa.length;Pa0&&function IN(An,yi,ji,ir){if(null!==(!0===ji.isScene?ji.overrideMaterial:null))return;const js=Ri.isWebGL2;null===fs&&(fs=new Fu(1,1,{generateMipmaps:!0,type:si.has("EXT_color_buffer_half_float")?In:At,minFilter:ye,samples:js?4:0})),ct.getDrawingBufferSize(er),js?fs.setSize(er.x,er.y):fs.setSize(Xd(er.x),Xd(er.y));const Eo=ct.getRenderTarget();ct.setRenderTarget(fs),ct.getClearColor(ur),Yn=ct.getClearAlpha(),Yn<1&&ct.setClearColor(16777215,.5),ct.clear();const Jo=ct.toneMapping;ct.toneMapping=pt,UM(An,ji,ir),fr.updateMultisampleRenderTarget(fs),fr.updateRenderTargetMipmap(fs);let fa=!1;for(let Pa=0,ea=yi.length;Pa0&&UM(or,yi,ji),js.length>0&&UM(js,yi,ji),Eo.length>0&&UM(Eo,yi,ji),Ii.buffers.depth.setTest(!0),Ii.buffers.depth.setMask(!0),Ii.buffers.color.setMask(!0),Ii.setPolygonOffset(!1)}function UM(An,yi,ji){const ir=!0===yi.isScene?yi.overrideMaterial:null;for(let or=0,js=An.length;or0?Ct[Ct.length-1]:null,ze.pop(),ft=ze.length>0?ze[ze.length-1]:null}}else console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.")},this.getActiveCubeFace=function(){return Jt},this.getActiveMipmapLevel=function(){return ln},this.getRenderTarget=function(){return rn},this.setRenderTargetTextures=function(An,yi,ji){Nr.get(An.texture).__webglTexture=yi,Nr.get(An.depthTexture).__webglTexture=ji;const ir=Nr.get(An);ir.__hasExternalTextures=!0,ir.__hasExternalTextures&&(ir.__autoAllocateDepthBuffer=void 0===ji,ir.__autoAllocateDepthBuffer||!0===si.has("WEBGL_multisampled_render_to_texture")&&(console.warn("THREE.WebGLRenderer: Render-to-texture extension was disabled because an external texture was provided"),ir.__useRenderToTexture=!1))},this.setRenderTargetFramebuffer=function(An,yi){const ji=Nr.get(An);ji.__webglFramebuffer=yi,ji.__useDefaultFramebuffer=void 0===yi},this.setRenderTarget=function(An,yi=0,ji=0){rn=An,Jt=yi,ln=ji;let ir=!0,or=null,js=!1,Eo=!1;if(An){const fa=Nr.get(An);void 0!==fa.__useDefaultFramebuffer?(Ii.bindFramebuffer(_n.FRAMEBUFFER,null),ir=!1):void 0===fa.__webglFramebuffer?fr.setupRenderTarget(An):fa.__hasExternalTextures&&fr.rebindTextures(An,Nr.get(An.texture).__webglTexture,Nr.get(An.depthTexture).__webglTexture);const Pa=An.texture;(Pa.isData3DTexture||Pa.isDataArrayTexture||Pa.isCompressedArrayTexture)&&(Eo=!0);const ea=Nr.get(An).__webglFramebuffer;An.isWebGLCubeRenderTarget?(or=Array.isArray(ea[yi])?ea[yi][ji]:ea[yi],js=!0):or=Ri.isWebGL2&&An.samples>0&&!1===fr.useMultisampledRTT(An)?Nr.get(An).__webglMultisampledFramebuffer:Array.isArray(ea)?ea[ji]:ea,Zt.copy(An.viewport),li.copy(An.scissor),Ti=An.scissorTest}else Zt.copy(lr).multiplyScalar(Oi).floor(),li.copy(ei).multiplyScalar(Oi).floor(),Ti=sr;if(Ii.bindFramebuffer(_n.FRAMEBUFFER,or)&&Ri.drawBuffers&&ir&&Ii.drawBuffers(An,or),Ii.viewport(Zt),Ii.scissor(li),Ii.setScissorTest(Ti),js){const fa=Nr.get(An.texture);_n.framebufferTexture2D(_n.FRAMEBUFFER,_n.COLOR_ATTACHMENT0,_n.TEXTURE_CUBE_MAP_POSITIVE_X+yi,fa.__webglTexture,ji)}else if(Eo){const fa=Nr.get(An.texture);_n.framebufferTextureLayer(_n.FRAMEBUFFER,_n.COLOR_ATTACHMENT0,fa.__webglTexture,ji||0,yi||0)}Rn=-1},this.readRenderTargetPixels=function(An,yi,ji,ir,or,js,Eo){if(!An||!An.isWebGLRenderTarget)return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");let Jo=Nr.get(An).__webglFramebuffer;if(An.isWebGLCubeRenderTarget&&void 0!==Eo&&(Jo=Jo[Eo]),Jo){Ii.bindFramebuffer(_n.FRAMEBUFFER,Jo);try{const fa=An.texture,Pa=fa.format,ea=fa.type;if(Pa!==Jn&&Oo.convert(Pa)!==_n.getParameter(_n.IMPLEMENTATION_COLOR_READ_FORMAT))return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");const da=ea===In&&(si.has("EXT_color_buffer_half_float")||Ri.isWebGL2&&si.has("EXT_color_buffer_float"));if(!(ea===At||Oo.convert(ea)===_n.getParameter(_n.IMPLEMENTATION_COLOR_READ_TYPE)||ea===cn&&(Ri.isWebGL2||si.has("OES_texture_float")||si.has("WEBGL_color_buffer_float"))||da))return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");yi>=0&&yi<=An.width-ir&&ji>=0&&ji<=An.height-or&&_n.readPixels(yi,ji,ir,or,Oo.convert(Pa),Oo.convert(ea),js)}finally{const fa=null!==rn?Nr.get(rn).__webglFramebuffer:null;Ii.bindFramebuffer(_n.FRAMEBUFFER,fa)}}},this.copyFramebufferToTexture=function(An,yi,ji=0){const ir=Math.pow(2,-ji),or=Math.floor(yi.image.width*ir),js=Math.floor(yi.image.height*ir);fr.setTexture2D(yi,0),_n.copyTexSubImage2D(_n.TEXTURE_2D,ji,0,0,An.x,An.y,or,js),Ii.unbindTexture()},this.copyTextureToTexture=function(An,yi,ji,ir=0){const or=yi.image.width,js=yi.image.height,Eo=Oo.convert(ji.format),Jo=Oo.convert(ji.type);fr.setTexture2D(ji,0),_n.pixelStorei(_n.UNPACK_FLIP_Y_WEBGL,ji.flipY),_n.pixelStorei(_n.UNPACK_PREMULTIPLY_ALPHA_WEBGL,ji.premultiplyAlpha),_n.pixelStorei(_n.UNPACK_ALIGNMENT,ji.unpackAlignment),yi.isDataTexture?_n.texSubImage2D(_n.TEXTURE_2D,ir,An.x,An.y,or,js,Eo,Jo,yi.image.data):yi.isCompressedTexture?_n.compressedTexSubImage2D(_n.TEXTURE_2D,ir,An.x,An.y,yi.mipmaps[0].width,yi.mipmaps[0].height,Eo,yi.mipmaps[0].data):_n.texSubImage2D(_n.TEXTURE_2D,ir,An.x,An.y,Eo,Jo,yi.image),0===ir&&ji.generateMipmaps&&_n.generateMipmap(_n.TEXTURE_2D),Ii.unbindTexture()},this.copyTextureToTexture3D=function(An,yi,ji,ir,or=0){if(ct.isWebGL1Renderer)return void console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: can only be used with WebGL2.");const js=An.max.x-An.min.x+1,Eo=An.max.y-An.min.y+1,Jo=An.max.z-An.min.z+1,fa=Oo.convert(ir.format),Pa=Oo.convert(ir.type);let ea;if(ir.isData3DTexture)fr.setTexture3D(ir,0),ea=_n.TEXTURE_3D;else{if(!ir.isDataArrayTexture)return void console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.");fr.setTexture2DArray(ir,0),ea=_n.TEXTURE_2D_ARRAY}_n.pixelStorei(_n.UNPACK_FLIP_Y_WEBGL,ir.flipY),_n.pixelStorei(_n.UNPACK_PREMULTIPLY_ALPHA_WEBGL,ir.premultiplyAlpha),_n.pixelStorei(_n.UNPACK_ALIGNMENT,ir.unpackAlignment);const da=_n.getParameter(_n.UNPACK_ROW_LENGTH),rd=_n.getParameter(_n.UNPACK_IMAGE_HEIGHT),fp=_n.getParameter(_n.UNPACK_SKIP_PIXELS),zd=_n.getParameter(_n.UNPACK_SKIP_ROWS),JA=_n.getParameter(_n.UNPACK_SKIP_IMAGES),sd=ji.isCompressedTexture?ji.mipmaps[0]:ji.image;_n.pixelStorei(_n.UNPACK_ROW_LENGTH,sd.width),_n.pixelStorei(_n.UNPACK_IMAGE_HEIGHT,sd.height),_n.pixelStorei(_n.UNPACK_SKIP_PIXELS,An.min.x),_n.pixelStorei(_n.UNPACK_SKIP_ROWS,An.min.y),_n.pixelStorei(_n.UNPACK_SKIP_IMAGES,An.min.z),ji.isDataTexture||ji.isData3DTexture?_n.texSubImage3D(ea,or,yi.x,yi.y,yi.z,js,Eo,Jo,fa,Pa,sd.data):ji.isCompressedArrayTexture?(console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: untested support for compressed srcTexture."),_n.compressedTexSubImage3D(ea,or,yi.x,yi.y,yi.z,js,Eo,Jo,fa,sd.data)):_n.texSubImage3D(ea,or,yi.x,yi.y,yi.z,js,Eo,Jo,fa,Pa,sd),_n.pixelStorei(_n.UNPACK_ROW_LENGTH,da),_n.pixelStorei(_n.UNPACK_IMAGE_HEIGHT,rd),_n.pixelStorei(_n.UNPACK_SKIP_PIXELS,fp),_n.pixelStorei(_n.UNPACK_SKIP_ROWS,zd),_n.pixelStorei(_n.UNPACK_SKIP_IMAGES,JA),0===or&&ir.generateMipmaps&&_n.generateMipmap(ea),Ii.unbindTexture()},this.initTexture=function(An){An.isCubeTexture?fr.setTextureCube(An,0):An.isData3DTexture?fr.setTexture3D(An,0):An.isDataArrayTexture||An.isCompressedArrayTexture?fr.setTexture2DArray(An,0):fr.setTexture2D(An,0),Ii.unbindTexture()},this.resetState=function(){Jt=0,ln=0,rn=null,Ii.reset(),Ao.reset()},typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}get coordinateSystem(){return Dd}get outputColorSpace(){return this._outputColorSpace}set outputColorSpace(a){this._outputColorSpace=a;const c=this.getContext();c.drawingBufferColorSpace=a===Zu?"display-p3":"srgb",c.unpackColorSpace=Ya.workingColorSpace===Ju?"display-p3":"srgb"}get physicallyCorrectLights(){return console.warn("THREE.WebGLRenderer: The property .physicallyCorrectLights has been removed. Set renderer.useLegacyLights instead."),!this.useLegacyLights}set physicallyCorrectLights(a){console.warn("THREE.WebGLRenderer: The property .physicallyCorrectLights has been removed. Set renderer.useLegacyLights instead."),this.useLegacyLights=!a}get outputEncoding(){return console.warn("THREE.WebGLRenderer: Property .outputEncoding has been removed. Use .outputColorSpace instead."),this.outputColorSpace===ll?$l:3e3}set outputEncoding(a){console.warn("THREE.WebGLRenderer: Property .outputEncoding has been removed. Use .outputColorSpace instead."),this.outputColorSpace=a===$l?ll:sc}get useLegacyLights(){return console.warn("THREE.WebGLRenderer: The property .useLegacyLights has been deprecated. Migrate your lighting according to the following guide: https://discourse.threejs.org/t/updates-to-lighting-in-three-js-r155/53733."),this._useLegacyLights}set useLegacyLights(a){console.warn("THREE.WebGLRenderer: The property .useLegacyLights has been deprecated. Migrate your lighting according to the following guide: https://discourse.threejs.org/t/updates-to-lighting-in-three-js-r155/53733."),this._useLegacyLights=a}}class Gx{constructor(a,c=1,h=1e3){this.isFog=!0,this.name="",this.color=new Os(a),this.near=c,this.far=h}clone(){return new Gx(this.color,this.near,this.far)}toJSON(){return{type:"Fog",name:this.name,color:this.color.getHex(),near:this.near,far:this.far}}}class QC extends Rl{constructor(){super(),this.isScene=!0,this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.backgroundBlurriness=0,this.backgroundIntensity=1,this.overrideMaterial=null,typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}copy(a,c){return super.copy(a,c),null!==a.background&&(this.background=a.background.clone()),null!==a.environment&&(this.environment=a.environment.clone()),null!==a.fog&&(this.fog=a.fog.clone()),this.backgroundBlurriness=a.backgroundBlurriness,this.backgroundIntensity=a.backgroundIntensity,null!==a.overrideMaterial&&(this.overrideMaterial=a.overrideMaterial.clone()),this.matrixAutoUpdate=a.matrixAutoUpdate,this}toJSON(a){const c=super.toJSON(a);return null!==this.fog&&(c.object.fog=this.fog.toJSON()),this.backgroundBlurriness>0&&(c.object.backgroundBlurriness=this.backgroundBlurriness),1!==this.backgroundIntensity&&(c.object.backgroundIntensity=this.backgroundIntensity),c}}class Ev extends sa{constructor(a,c,h,m=1){super(a,c,h),this.isInstancedBufferAttribute=!0,this.meshPerAttribute=m}copy(a){return super.copy(a),this.meshPerAttribute=a.meshPerAttribute,this}toJSON(){const a=super.toJSON();return a.meshPerAttribute=this.meshPerAttribute,a.isInstancedBufferAttribute=!0,a}}const W1=new bo,uT=new bo,qx=[],Tv=new rl,WA=new bo,jA=new Jc,j1=new Yd;class WC extends Jc{constructor(a,c,h){super(a,c),this.isInstancedMesh=!0,this.instanceMatrix=new Ev(new Float32Array(16*h),16),this.instanceColor=null,this.count=h,this.boundingBox=null,this.boundingSphere=null;for(let m=0;mde)continue;Be.applyMatrix4(this.matrixWorld);const Rn=a.ray.origin.distanceTo(Be);Rna.far||c.push({distance:Rn,point:Ie.clone().applyMatrix4(this.matrixWorld),index:ct,face:null,faceIndex:null,object:this})}else for(let ct=Math.max(0,N.start),Dt=Math.min(Qe.count,N.start+N.count)-1;ctde)continue;Be.applyMatrix4(this.matrixWorld);const ln=a.ray.origin.distanceTo(Be);lna.far||c.push({distance:ln,point:Ie.clone().applyMatrix4(this.matrixWorld),index:ct,face:null,faceIndex:null,object:this})}}updateMorphTargets(){const c=this.geometry.morphAttributes,h=Object.keys(c);if(h.length>0){const m=c[h[0]];if(void 0!==m){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let M=0,N=m.length;M0){const m=c[h[0]];if(void 0!==m){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let M=0,N=m.length;Mm.far)return;M.push({distance:pe,distanceToRay:Math.sqrt(q),point:de,index:a,face:null,object:N})}}class Qx extends vu{constructor(a,c,h,m,M,N,q,de,pe){super(a,c,h,m,M,N,q,de,pe),this.isCanvasTexture=!0,this.needsUpdate=!0}}class tm{constructor(){this.type="Curve",this.arcLengthDivisions=200}getPoint(){return console.warn("THREE.Curve: .getPoint() not implemented."),null}getPointAt(a,c){const h=this.getUtoTmapping(a);return this.getPoint(h,c)}getPoints(a=5){const c=[];for(let h=0;h<=a;h++)c.push(this.getPoint(h/a));return c}getSpacedPoints(a=5){const c=[];for(let h=0;h<=a;h++)c.push(this.getPointAt(h/a));return c}getLength(){const a=this.getLengths();return a[a.length-1]}getLengths(a=this.arcLengthDivisions){if(this.cacheArcLengths&&this.cacheArcLengths.length===a+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;const c=[];let h,m=this.getPoint(0),M=0;c.push(0);for(let N=1;N<=a;N++)h=this.getPoint(N/a),M+=h.distanceTo(m),c.push(M),m=h;return this.cacheArcLengths=c,c}updateArcLengths(){this.needsUpdate=!0,this.getLengths()}getUtoTmapping(a,c){const h=this.getLengths();let m=0;const M=h.length;let N;N=c||a*h[M-1];let pe,q=0,de=M-1;for(;q<=de;)if(m=Math.floor(q+(de-q)/2),pe=h[m]-N,pe<0)q=m+1;else{if(!(pe>0)){de=m;break}de=m-1}if(m=de,h[m]===N)return m/(M-1);const xe=h[m];return(m+(N-xe)/(h[m+1]-xe))/(M-1)}getTangent(a,c){let m=a-1e-4,M=a+1e-4;m<0&&(m=0),M>1&&(M=1);const N=this.getPoint(m),q=this.getPoint(M),de=c||(N.isVector2?new Ui:new Ft);return de.copy(q).sub(N).normalize(),de}getTangentAt(a,c){const h=this.getUtoTmapping(a);return this.getTangent(h,c)}computeFrenetFrames(a,c){const h=new Ft,m=[],M=[],N=[],q=new Ft,de=new bo;for(let Le=0;Le<=a;Le++)m[Le]=this.getTangentAt(Le/a,new Ft);M[0]=new Ft,N[0]=new Ft;let pe=Number.MAX_VALUE;const xe=Math.abs(m[0].x),Ie=Math.abs(m[0].y),Be=Math.abs(m[0].z);xe<=pe&&(pe=xe,h.set(1,0,0)),Ie<=pe&&(pe=Ie,h.set(0,1,0)),Be<=pe&&h.set(0,0,1),q.crossVectors(m[0],h).normalize(),M[0].crossVectors(m[0],q),N[0].crossVectors(m[0],M[0]);for(let Le=1;Le<=a;Le++){if(M[Le]=M[Le-1].clone(),N[Le]=N[Le-1].clone(),q.crossVectors(m[Le-1],m[Le]),q.length()>Number.EPSILON){q.normalize();const Ke=Math.acos(nl(m[Le-1].dot(m[Le]),-1,1));M[Le].applyMatrix4(de.makeRotationAxis(q,Ke))}N[Le].crossVectors(m[Le],M[Le])}if(!0===c){let Le=Math.acos(nl(M[0].dot(M[a]),-1,1));Le/=a,m[0].dot(q.crossVectors(M[0],M[a]))>0&&(Le=-Le);for(let Ke=1;Ke<=a;Ke++)M[Ke].applyMatrix4(de.makeRotationAxis(m[Ke],Le*Ke)),N[Ke].crossVectors(m[Ke],M[Ke])}return{tangents:m,normals:M,binormals:N}}clone(){return(new this.constructor).copy(this)}copy(a){return this.arcLengthDivisions=a.arcLengthDivisions,this}toJSON(){const a={metadata:{version:4.6,type:"Curve",generator:"Curve.toJSON"}};return a.arcLengthDivisions=this.arcLengthDivisions,a.type=this.type,a}fromJSON(a){return this.arcLengthDivisions=a.arcLengthDivisions,this}}class Pv extends tm{constructor(a=0,c=0,h=1,m=1,M=0,N=2*Math.PI,q=!1,de=0){super(),this.isEllipseCurve=!0,this.type="EllipseCurve",this.aX=a,this.aY=c,this.xRadius=h,this.yRadius=m,this.aStartAngle=M,this.aEndAngle=N,this.aClockwise=q,this.aRotation=de}getPoint(a,c){const h=c||new Ui,m=2*Math.PI;let M=this.aEndAngle-this.aStartAngle;const N=Math.abs(M)m;)M-=m;Mm.length-2?m.length-1:N+1],Ie=m[N>m.length-3?m.length-1:N+2];return h.set(AT(q,de.x,pe.x,xe.x,Ie.x),AT(q,de.y,pe.y,xe.y,Ie.y)),h}copy(a){super.copy(a),this.points=[];for(let c=0,h=a.points.length;c0?0:(Math.floor(Math.abs(q)/M)+1)*M:0===de&&q===M-1&&(q=M-2,de=1),this.closed||q>0?pe=m[(q-1)%M]:(Wx.subVectors(m[0],m[1]).add(m[0]),pe=Wx);const Ie=m[q%M],Be=m[(q+1)%M];if(this.closed||q+2=h){const N=m[M]-h,q=this.curves[M],de=q.getLength();return q.getPointAt(0===de?0:1-N/de,c)}M++}return null}getLength(){const a=this.getCurveLengths();return a[a.length-1]}updateArcLengths(){this.needsUpdate=!0,this.cacheLengths=null,this.getCurveLengths()}getCurveLengths(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;const a=[];let c=0;for(let h=0,m=this.curves.length;h1&&!c[c.length-1].equals(c[0])&&c.push(c[0]),c}copy(a){super.copy(a),this.curves=[];for(let c=0,h=a.curves.length;c0){const Ie=pe.getPoint(0);Ie.equals(this.currentPoint)||this.lineTo(Ie.x,Ie.y)}this.curves.push(pe);const xe=pe.getPoint(1);return this.currentPoint.copy(xe),this}copy(a){return super.copy(a),this.currentPoint.copy(a.currentPoint),this}toJSON(){const a=super.toJSON();return a.currentPoint=this.currentPoint.toArray(),a}fromJSON(a){return super.fromJSON(a),this.currentPoint.fromArray(a.currentPoint),this}}class eM extends Cs{constructor(a=1,c=32,h=0,m=2*Math.PI){super(),this.type="CircleGeometry",this.parameters={radius:a,segments:c,thetaStart:h,thetaLength:m},c=Math.max(3,c);const M=[],N=[],q=[],de=[],pe=new Ft,xe=new Ui;N.push(0,0,0),q.push(0,0,1),de.push(.5,.5);for(let Ie=0,Be=3;Ie<=c;Ie++,Be+=3){const Le=h+Ie/c*m;pe.x=a*Math.cos(Le),pe.y=a*Math.sin(Le),N.push(pe.x,pe.y,pe.z),q.push(0,0,1),xe.x=(N[Be]/a+1)/2,xe.y=(N[Be+1]/a+1)/2,de.push(xe.x,xe.y)}for(let Ie=1;Ie<=c;Ie++)M.push(Ie,Ie+1,0);this.setIndex(M),this.setAttribute("position",new Bo(N,3)),this.setAttribute("normal",new Bo(q,3)),this.setAttribute("uv",new Bo(de,2))}copy(a){return super.copy(a),this.parameters=Object.assign({},a.parameters),this}static fromJSON(a){return new eM(a.radius,a.segments,a.thetaStart,a.thetaLength)}}class ty extends JC{constructor(a){super(a),this.uuid=Au(),this.type="Shape",this.holes=[]}getPointsHoles(a){const c=[];for(let h=0,m=this.holes.length;h0)for(M=a;M=a;M-=h)N=oM(M,w[M],w[M+1],N);return N&&ny(N,N.next)&&($A(N),N=N.next),N}function dp(w,a){if(!w)return w;a||(a=w);let h,c=w;do{if(h=!1,c.steiner||!ny(c,c.next)&&0!==Cc(c.prev,c,c.next))c=c.next;else{if($A(c),c=a=c.prev,c===c.next)break;h=!0}}while(h||c!==a);return a}function wu(w,a,c,h,m,M,N){if(!w)return;!N&&M&&function h0(w,a,c,h){let m=w;do{0===m.z&&(m.z=Lv(m.x,m.y,a,c,h)),m.prevZ=m.prev,m.nextZ=m.next,m=m.next}while(m!==w);m.prevZ.nextZ=null,m.prevZ=null,function rM(w){let a,c,h,m,M,N,q,de,pe=1;do{for(c=w,w=null,M=null,N=0;c;){for(N++,h=c,q=0,a=0;a0||de>0&&h;)0!==q&&(0===de||!h||c.z<=h.z)?(m=c,c=c.nextZ,q--):(m=h,h=h.nextZ,de--),M?M.nextZ=m:w=m,m.prevZ=M,M=m;c=h}M.nextZ=null,pe*=2}while(N>1)}(m)}(w,h,m,M);let de,pe,q=w;for(;w.prev!==w.next;)if(de=w.prev,pe=w.next,M?MT(w,h,m,M):u0(w))a.push(de.i/c|0),a.push(w.i/c|0),a.push(pe.i/c|0),$A(w),w=pe.next,q=pe.next;else if((w=pe)===q){N?1===N?wu(w=_N(dp(w),a,c),a,c,h,m,M,2):2===N&&WB(w,a,c,h,m,M):wu(dp(w),a,c,h,m,M,1);break}}function u0(w){const a=w.prev,c=w,h=w.next;if(Cc(a,c,h)>=0)return!1;const m=a.x,M=c.x,N=h.x,q=a.y,de=c.y,pe=h.y,xe=mM?m>N?m:N:M>N?M:N,Le=q>de?q>pe?q:pe:de>pe?de:pe;let Ke=h.next;for(;Ke!==a;){if(Ke.x>=xe&&Ke.x<=Be&&Ke.y>=Ie&&Ke.y<=Le&&nm(m,q,M,de,N,pe,Ke.x,Ke.y)&&Cc(Ke.prev,Ke,Ke.next)>=0)return!1;Ke=Ke.next}return!0}function MT(w,a,c,h){const m=w.prev,M=w,N=w.next;if(Cc(m,M,N)>=0)return!1;const q=m.x,de=M.x,pe=N.x,xe=m.y,Ie=M.y,Be=N.y,Le=qde?q>pe?q:pe:de>pe?de:pe,Qe=xe>Ie?xe>Be?xe:Be:Ie>Be?Ie:Be,ze=Lv(Le,Ke,a,c,h),Ct=Lv(ft,Qe,a,c,h);let ct=w.prevZ,Dt=w.nextZ;for(;ct&&ct.z>=ze&&Dt&&Dt.z<=Ct;){if(ct.x>=Le&&ct.x<=ft&&ct.y>=Ke&&ct.y<=Qe&&ct!==m&&ct!==N&&nm(q,xe,de,Ie,pe,Be,ct.x,ct.y)&&Cc(ct.prev,ct,ct.next)>=0||(ct=ct.prevZ,Dt.x>=Le&&Dt.x<=ft&&Dt.y>=Ke&&Dt.y<=Qe&&Dt!==m&&Dt!==N&&nm(q,xe,de,Ie,pe,Be,Dt.x,Dt.y)&&Cc(Dt.prev,Dt,Dt.next)>=0))return!1;Dt=Dt.nextZ}for(;ct&&ct.z>=ze;){if(ct.x>=Le&&ct.x<=ft&&ct.y>=Ke&&ct.y<=Qe&&ct!==m&&ct!==N&&nm(q,xe,de,Ie,pe,Be,ct.x,ct.y)&&Cc(ct.prev,ct,ct.next)>=0)return!1;ct=ct.prevZ}for(;Dt&&Dt.z<=Ct;){if(Dt.x>=Le&&Dt.x<=ft&&Dt.y>=Ke&&Dt.y<=Qe&&Dt!==m&&Dt!==N&&nm(q,xe,de,Ie,pe,Be,Dt.x,Dt.y)&&Cc(Dt.prev,Dt,Dt.next)>=0)return!1;Dt=Dt.nextZ}return!0}function _N(w,a,c){let h=w;do{const m=h.prev,M=h.next.next;!ny(m,M)&&Nv(m,h,h.next,M)&&Uv(m,M)&&Uv(M,m)&&(a.push(m.i/c|0),a.push(h.i/c|0),a.push(M.i/c|0),$A(h),$A(h.next),h=w=M),h=h.next}while(h!==w);return dp(h)}function WB(w,a,c,h,m,M){let N=w;do{let q=N.next.next;for(;q!==N.prev;){if(N.i!==q.i&&sM(N,q)){let de=DT(N,q);return N=dp(N,N.next),de=dp(de,de.next),wu(N,a,c,h,m,M,0),void wu(de,a,c,h,m,M,0)}q=q.next}N=N.next}while(N!==w)}function vN(w,a){return w.x-a.x}function ST(w,a){const c=function ET(w,a){let m,c=a,h=-1/0;const M=w.x,N=w.y;do{if(N<=c.y&&N>=c.next.y&&c.next.y!==c.y){const Be=c.x+(N-c.y)*(c.next.x-c.x)/(c.next.y-c.y);if(Be<=M&&Be>h&&(h=Be,m=c.x=c.x&&c.x>=de&&M!==c.x&&nm(Nm.x||c.x===m.x&&bN(m,c)))&&(m=c,xe=Ie)),c=c.next}while(c!==q);return m}(w,a);if(!c)return a;const h=DT(c,w);return dp(h,h.next),dp(c,c.next)}function bN(w,a){return Cc(w.prev,w,a.prev)<0&&Cc(a.next,w,w.next)<0}function Lv(w,a,c,h,m){return(w=1431655765&((w=858993459&((w=252645135&((w=16711935&((w=(w-c)*m|0)|w<<8))|w<<4))|w<<2))|w<<1))|(a=1431655765&((a=858993459&((a=252645135&((a=16711935&((a=(a-h)*m|0)|a<<8))|a<<4))|a<<2))|a<<1))<<1}function jB(w){let a=w,c=w;do{(a.x=(w-N)*(M-q)&&(w-N)*(h-q)>=(c-N)*(a-q)&&(c-N)*(M-q)>=(m-N)*(h-q)}function sM(w,a){return w.next.i!==a.i&&w.prev.i!==a.i&&!function TT(w,a){let c=w;do{if(c.i!==w.i&&c.next.i!==w.i&&c.i!==a.i&&c.next.i!==a.i&&Nv(c,c.next,w,a))return!0;c=c.next}while(c!==w);return!1}(w,a)&&(Uv(w,a)&&Uv(a,w)&&function $B(w,a){let c=w,h=!1;const m=(w.x+a.x)/2,M=(w.y+a.y)/2;do{c.y>M!=c.next.y>M&&c.next.y!==c.y&&m<(c.next.x-c.x)*(M-c.y)/(c.next.y-c.y)+c.x&&(h=!h),c=c.next}while(c!==w);return h}(w,a)&&(Cc(w.prev,w,a.prev)||Cc(w,a.prev,a))||ny(w,a)&&Cc(w.prev,w,w.next)>0&&Cc(a.prev,a,a.next)>0)}function Cc(w,a,c){return(a.y-w.y)*(c.x-a.x)-(a.x-w.x)*(c.y-a.y)}function ny(w,a){return w.x===a.x&&w.y===a.y}function Nv(w,a,c,h){const m=Yx(Cc(w,a,c)),M=Yx(Cc(w,a,h)),N=Yx(Cc(c,h,w)),q=Yx(Cc(c,h,a));return!!(m!==M&&N!==q||0===m&&Xx(w,c,a)||0===M&&Xx(w,h,a)||0===N&&Xx(c,w,h)||0===q&&Xx(c,a,h))}function Xx(w,a,c){return a.x<=Math.max(w.x,c.x)&&a.x>=Math.min(w.x,c.x)&&a.y<=Math.max(w.y,c.y)&&a.y>=Math.min(w.y,c.y)}function Yx(w){return w>0?1:w<0?-1:0}function Uv(w,a){return Cc(w.prev,w,w.next)<0?Cc(w,a,w.next)>=0&&Cc(w,w.prev,a)>=0:Cc(w,a,w.prev)<0||Cc(w,w.next,a)<0}function DT(w,a){const c=new iy(w.i,w.x,w.y),h=new iy(a.i,a.x,a.y),m=w.next,M=a.prev;return w.next=a,a.prev=w,c.next=m,m.prev=c,h.next=c,c.prev=h,M.next=h,h.prev=M,h}function oM(w,a,c,h){const m=new iy(w,a,c);return h?(m.next=h.next,m.prev=h,h.next.prev=m,h.next=m):(m.prev=m,m.next=m),m}function $A(w){w.next.prev=w.prev,w.prev.next=w.next,w.prevZ&&(w.prevZ.nextZ=w.nextZ),w.nextZ&&(w.nextZ.prevZ=w.prevZ)}function iy(w,a,c){this.i=w,this.x=a,this.y=c,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}class Ym{static area(a){const c=a.length;let h=0;for(let m=c-1,M=0;M80*c){q=pe=w[0],de=xe=w[1];for(let Ke=c;Kepe&&(pe=Ie),Be>xe&&(xe=Be);Le=Math.max(pe-q,xe-de),Le=0!==Le?32767/Le:0}return wu(M,N,c,q,de,Le,0),N}(h,m);for(let de=0;de2&&w[a-1].equals(w[0])&&w.pop()}function Kx(w,a){for(let c=0;cNumber.EPSILON){const Pt=Math.sqrt(_s),ni=Math.sqrt(us*us+co*co),cr=Ki.x-fr/Pt,Ar=Ki.y+Nr/Pt,Ir=((si.x-co/ni-cr)*co-(si.y+us/ni-Ar)*us)/(Nr*co-fr*us);Ri=cr+Nr*Ir-_n.x,Ii=Ar+fr*Ir-_n.y;const es=Ri*Ri+Ii*Ii;if(es<=2)return new Ui(Ri,Ii);Jr=Math.sqrt(es/2)}else{let Pt=!1;Nr>Number.EPSILON?us>Number.EPSILON&&(Pt=!0):Nr<-Number.EPSILON?us<-Number.EPSILON&&(Pt=!0):Math.sign(fr)===Math.sign(co)&&(Pt=!0),Pt?(Ri=-fr,Ii=Nr,Jr=Math.sqrt(_s)):(Ri=Nr,Ii=fr,Jr=Math.sqrt(_s/2))}return new Ui(Ri/Jr,Ii/Jr)}const Ji=[];for(let _n=0,Ki=Yn.length,si=Ki-1,Ri=_n+1;_n=0;_n--){const Ki=_n/Qe,si=Le*Math.cos(Ki*Math.PI/2),Ri=Ke*Math.sin(Ki*Math.PI/2)+ft;for(let Ii=0,Jr=Yn.length;Ii=0;){const Ri=si;let Ii=si-1;Ii<0&&(Ii=_n.length-1);for(let Jr=0,Nr=xe+2*Qe;Jr0)&&Le.push(xe[ze][Ct+1],Dt,ln),(ze!==h-1||de0!=a>0&&this.version++,this._anisotropy=a}get clearcoat(){return this._clearcoat}set clearcoat(a){this._clearcoat>0!=a>0&&this.version++,this._clearcoat=a}get iridescence(){return this._iridescence}set iridescence(a){this._iridescence>0!=a>0&&this.version++,this._iridescence=a}get sheen(){return this._sheen}set sheen(a){this._sheen>0!=a>0&&this.version++,this._sheen=a}get transmission(){return this._transmission}set transmission(a){this._transmission>0!=a>0&&this.version++,this._transmission=a}copy(a){return super.copy(a),this.defines={STANDARD:"",PHYSICAL:""},this.anisotropy=a.anisotropy,this.anisotropyRotation=a.anisotropyRotation,this.anisotropyMap=a.anisotropyMap,this.clearcoat=a.clearcoat,this.clearcoatMap=a.clearcoatMap,this.clearcoatRoughness=a.clearcoatRoughness,this.clearcoatRoughnessMap=a.clearcoatRoughnessMap,this.clearcoatNormalMap=a.clearcoatNormalMap,this.clearcoatNormalScale.copy(a.clearcoatNormalScale),this.ior=a.ior,this.iridescence=a.iridescence,this.iridescenceMap=a.iridescenceMap,this.iridescenceIOR=a.iridescenceIOR,this.iridescenceThicknessRange=[...a.iridescenceThicknessRange],this.iridescenceThicknessMap=a.iridescenceThicknessMap,this.sheen=a.sheen,this.sheenColor.copy(a.sheenColor),this.sheenColorMap=a.sheenColorMap,this.sheenRoughness=a.sheenRoughness,this.sheenRoughnessMap=a.sheenRoughnessMap,this.transmission=a.transmission,this.transmissionMap=a.transmissionMap,this.thickness=a.thickness,this.thicknessMap=a.thicknessMap,this.attenuationDistance=a.attenuationDistance,this.attenuationColor.copy(a.attenuationColor),this.specularIntensity=a.specularIntensity,this.specularIntensityMap=a.specularIntensityMap,this.specularColor.copy(a.specularColor),this.specularColorMap=a.specularColorMap,this}}class kT extends kc{constructor(a){super(),this.isMeshPhongMaterial=!0,this.type="MeshPhongMaterial",this.color=new Os(16777215),this.specular=new Os(1118481),this.shininess=30,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Os(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new Ui(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=Ne,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(a)}copy(a){return super.copy(a),this.color.copy(a.color),this.specular.copy(a.specular),this.shininess=a.shininess,this.map=a.map,this.lightMap=a.lightMap,this.lightMapIntensity=a.lightMapIntensity,this.aoMap=a.aoMap,this.aoMapIntensity=a.aoMapIntensity,this.emissive.copy(a.emissive),this.emissiveMap=a.emissiveMap,this.emissiveIntensity=a.emissiveIntensity,this.bumpMap=a.bumpMap,this.bumpScale=a.bumpScale,this.normalMap=a.normalMap,this.normalMapType=a.normalMapType,this.normalScale.copy(a.normalScale),this.displacementMap=a.displacementMap,this.displacementScale=a.displacementScale,this.displacementBias=a.displacementBias,this.specularMap=a.specularMap,this.alphaMap=a.alphaMap,this.envMap=a.envMap,this.combine=a.combine,this.reflectivity=a.reflectivity,this.refractionRatio=a.refractionRatio,this.wireframe=a.wireframe,this.wireframeLinewidth=a.wireframeLinewidth,this.wireframeLinecap=a.wireframeLinecap,this.wireframeLinejoin=a.wireframeLinejoin,this.flatShading=a.flatShading,this.fog=a.fog,this}}class uM extends kc{constructor(a){super(),this.isMeshToonMaterial=!0,this.defines={TOON:""},this.type="MeshToonMaterial",this.color=new Os(16777215),this.map=null,this.gradientMap=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Os(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new Ui(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(a)}copy(a){return super.copy(a),this.color.copy(a.color),this.map=a.map,this.gradientMap=a.gradientMap,this.lightMap=a.lightMap,this.lightMapIntensity=a.lightMapIntensity,this.aoMap=a.aoMap,this.aoMapIntensity=a.aoMapIntensity,this.emissive.copy(a.emissive),this.emissiveMap=a.emissiveMap,this.emissiveIntensity=a.emissiveIntensity,this.bumpMap=a.bumpMap,this.bumpScale=a.bumpScale,this.normalMap=a.normalMap,this.normalMapType=a.normalMapType,this.normalScale.copy(a.normalScale),this.displacementMap=a.displacementMap,this.displacementScale=a.displacementScale,this.displacementBias=a.displacementBias,this.alphaMap=a.alphaMap,this.wireframe=a.wireframe,this.wireframeLinewidth=a.wireframeLinewidth,this.wireframeLinecap=a.wireframeLinecap,this.wireframeLinejoin=a.wireframeLinejoin,this.fog=a.fog,this}}class FT extends kc{constructor(a){super(),this.isMeshNormalMaterial=!0,this.type="MeshNormalMaterial",this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new Ui(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.flatShading=!1,this.setValues(a)}copy(a){return super.copy(a),this.bumpMap=a.bumpMap,this.bumpScale=a.bumpScale,this.normalMap=a.normalMap,this.normalMapType=a.normalMapType,this.normalScale.copy(a.normalScale),this.displacementMap=a.displacementMap,this.displacementScale=a.displacementScale,this.displacementBias=a.displacementBias,this.wireframe=a.wireframe,this.wireframeLinewidth=a.wireframeLinewidth,this.flatShading=a.flatShading,this}}class OT extends kc{constructor(a){super(),this.isMeshLambertMaterial=!0,this.type="MeshLambertMaterial",this.color=new Os(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Os(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new Ui(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=Ne,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(a)}copy(a){return super.copy(a),this.color.copy(a.color),this.map=a.map,this.lightMap=a.lightMap,this.lightMapIntensity=a.lightMapIntensity,this.aoMap=a.aoMap,this.aoMapIntensity=a.aoMapIntensity,this.emissive.copy(a.emissive),this.emissiveMap=a.emissiveMap,this.emissiveIntensity=a.emissiveIntensity,this.bumpMap=a.bumpMap,this.bumpScale=a.bumpScale,this.normalMap=a.normalMap,this.normalMapType=a.normalMapType,this.normalScale.copy(a.normalScale),this.displacementMap=a.displacementMap,this.displacementScale=a.displacementScale,this.displacementBias=a.displacementBias,this.specularMap=a.specularMap,this.alphaMap=a.alphaMap,this.envMap=a.envMap,this.combine=a.combine,this.reflectivity=a.reflectivity,this.refractionRatio=a.refractionRatio,this.wireframe=a.wireframe,this.wireframeLinewidth=a.wireframeLinewidth,this.wireframeLinecap=a.wireframeLinecap,this.wireframeLinejoin=a.wireframeLinejoin,this.flatShading=a.flatShading,this.fog=a.fog,this}}class LT extends kc{constructor(a){super(),this.isMeshMatcapMaterial=!0,this.defines={MATCAP:""},this.type="MeshMatcapMaterial",this.color=new Os(16777215),this.matcap=null,this.map=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new Ui(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.flatShading=!1,this.fog=!0,this.setValues(a)}copy(a){return super.copy(a),this.defines={MATCAP:""},this.color.copy(a.color),this.matcap=a.matcap,this.map=a.map,this.bumpMap=a.bumpMap,this.bumpScale=a.bumpScale,this.normalMap=a.normalMap,this.normalMapType=a.normalMapType,this.normalScale.copy(a.normalScale),this.displacementMap=a.displacementMap,this.displacementScale=a.displacementScale,this.displacementBias=a.displacementBias,this.alphaMap=a.alphaMap,this.flatShading=a.flatShading,this.fog=a.fog,this}}class hM extends $1{constructor(a){super(),this.isLineDashedMaterial=!0,this.type="LineDashedMaterial",this.scale=1,this.dashSize=3,this.gapSize=1,this.setValues(a)}copy(a){return super.copy(a),this.scale=a.scale,this.dashSize=a.dashSize,this.gapSize=a.gapSize,this}}const M_={enabled:!1,files:{},add:function(w,a){!1!==this.enabled&&(this.files[w]=a)},get:function(w){if(!1!==this.enabled)return this.files[w]},remove:function(w){delete this.files[w]},clear:function(){this.files={}}};class ca{constructor(a,c,h){const m=this;let de,M=!1,N=0,q=0;const pe=[];this.onStart=void 0,this.onLoad=a,this.onProgress=c,this.onError=h,this.itemStart=function(xe){q++,!1===M&&void 0!==m.onStart&&m.onStart(xe,N,q),M=!0},this.itemEnd=function(xe){N++,void 0!==m.onProgress&&m.onProgress(xe,N,q),N===q&&(M=!1,void 0!==m.onLoad&&m.onLoad())},this.itemError=function(xe){void 0!==m.onError&&m.onError(xe)},this.resolveURL=function(xe){return de?de(xe):xe},this.setURLModifier=function(xe){return de=xe,this},this.addHandler=function(xe,Ie){return pe.push(xe,Ie),this},this.removeHandler=function(xe){const Ie=pe.indexOf(xe);return-1!==Ie&&pe.splice(Ie,2),this},this.getHandler=function(xe){for(let Ie=0,Be=pe.length;Ie{class w{constructor(c){this.manager=void 0!==c?c:jn,this.crossOrigin="anonymous",this.withCredentials=!1,this.path="",this.resourcePath="",this.requestHeader={}}load(){}loadAsync(c,h){const m=this;return new Promise(function(M,N){m.load(c,M,h,N)})}parse(){}setCrossOrigin(c){return this.crossOrigin=c,this}setWithCredentials(c){return this.withCredentials=c,this}setPath(c){return this.path=c,this}setResourcePath(c){return this.resourcePath=c,this}setRequestHeader(c){return this.requestHeader=c,this}}return w.DEFAULT_MATERIAL_NAME="__DEFAULT",w})();Error;class XA extends up{constructor(a){super(a)}load(a,c,h,m){void 0!==this.path&&(a=this.path+a),a=this.manager.resolveURL(a);const M=this,N=M_.get(a);if(void 0!==N)return M.manager.itemStart(a),setTimeout(function(){c&&c(N),M.manager.itemEnd(a)},0),N;const q=mi("img");function de(){xe(),M_.add(a,this),c&&c(this),M.manager.itemEnd(a)}function pe(Ie){xe(),m&&m(Ie),M.manager.itemError(a),M.manager.itemEnd(a)}function xe(){q.removeEventListener("load",de,!1),q.removeEventListener("error",pe,!1)}return q.addEventListener("load",de,!1),q.addEventListener("error",pe,!1),"data:"!==a.slice(0,5)&&void 0!==this.crossOrigin&&(q.crossOrigin=this.crossOrigin),M.manager.itemStart(a),q.src=a,q}}class UT extends up{constructor(a){super(a)}load(a,c,h,m){const M=new vu,N=new XA(this.manager);return N.setCrossOrigin(this.crossOrigin),N.setPath(this.path),N.load(a,function(q){M.image=q,M.needsUpdate=!0,void 0!==c&&c(M)},h,m),M}}class YA extends Rl{constructor(a,c=1){super(),this.isLight=!0,this.type="Light",this.color=new Os(a),this.intensity=c}dispose(){}copy(a,c){return super.copy(a,c),this.color.copy(a.color),this.intensity=a.intensity,this}toJSON(a){const c=super.toJSON(a);return c.object.color=this.color.getHex(),c.object.intensity=this.intensity,void 0!==this.groundColor&&(c.object.groundColor=this.groundColor.getHex()),void 0!==this.distance&&(c.object.distance=this.distance),void 0!==this.angle&&(c.object.angle=this.angle),void 0!==this.decay&&(c.object.decay=this.decay),void 0!==this.penumbra&&(c.object.penumbra=this.penumbra),void 0!==this.shadow&&(c.object.shadow=this.shadow.toJSON()),c}}class $T extends YA{constructor(a,c,h){super(a,h),this.isHemisphereLight=!0,this.type="HemisphereLight",this.position.copy(Rl.DEFAULT_UP),this.updateMatrix(),this.groundColor=new Os(c)}copy(a,c){return super.copy(a,c),this.groundColor.copy(a.groundColor),this}}const yM=new bo,vM=new Ft,bM=new Ft;class uy{constructor(a){this.camera=a,this.bias=0,this.normalBias=0,this.radius=1,this.blurSamples=8,this.mapSize=new Ui(512,512),this.map=null,this.mapPass=null,this.matrix=new bo,this.autoUpdate=!0,this.needsUpdate=!1,this._frustum=new ef,this._frameExtents=new Ui(1,1),this._viewportCount=1,this._viewports=[new il(0,0,1,1)]}getViewportCount(){return this._viewportCount}getFrustum(){return this._frustum}updateMatrices(a){const c=this.camera,h=this.matrix;vM.setFromMatrixPosition(a.matrixWorld),c.position.copy(vM),bM.setFromMatrixPosition(a.target.matrixWorld),c.lookAt(bM),c.updateMatrixWorld(),yM.multiplyMatrices(c.projectionMatrix,c.matrixWorldInverse),this._frustum.setFromProjectionMatrix(yM),h.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),h.multiply(yM)}getViewport(a){return this._viewports[a]}getFrameExtents(){return this._frameExtents}dispose(){this.map&&this.map.dispose(),this.mapPass&&this.mapPass.dispose()}copy(a){return this.camera=a.camera.clone(),this.bias=a.bias,this.radius=a.radius,this.mapSize.copy(a.mapSize),this}clone(){return(new this.constructor).copy(this)}toJSON(){const a={};return 0!==this.bias&&(a.bias=this.bias),0!==this.normalBias&&(a.normalBias=this.normalBias),1!==this.radius&&(a.radius=this.radius),(512!==this.mapSize.x||512!==this.mapSize.y)&&(a.mapSize=this.mapSize.toArray()),a.camera=this.camera.toJSON(!1).object,delete a.camera.matrix,a}}class KA extends uy{constructor(){super(new kd(-5,5,5,-5,.5,500)),this.isDirectionalLightShadow=!0}}class XT extends YA{constructor(a,c){super(a,c),this.isDirectionalLight=!0,this.type="DirectionalLight",this.position.copy(Rl.DEFAULT_UP),this.updateMatrix(),this.target=new Rl,this.shadow=new KA}dispose(){this.shadow.dispose()}copy(a){return super.copy(a),this.target=a.target.clone(),this.shadow=a.shadow.clone(),this}}class YT extends YA{constructor(a,c){super(a,c),this.isAmbientLight=!0,this.type="AmbientLight"}}function Yv(w,a,c){return!w||!c&&w.constructor===a?w:"number"==typeof a.BYTES_PER_ELEMENT?new a(w):Array.prototype.slice.call(w)}class Zv{constructor(a,c,h,m){this.parameterPositions=a,this._cachedIndex=0,this.resultBuffer=void 0!==m?m:new c.constructor(h),this.sampleValues=c,this.valueSize=h,this.settings=null,this.DefaultSettings_={}}evaluate(a){const c=this.parameterPositions;let h=this._cachedIndex,m=c[h],M=c[h-1];e:{t:{let N;n:{i:if(!(a=M)break e;{const q=c[1];a=M)break t}N=h,h=0}}for(;h>>1;ac;)--N;if(++N,0!==M||N!==m){M>=N&&(N=Math.max(N,1),M=N-1);const q=this.getValueSize();this.times=h.slice(M,N),this.values=this.values.slice(M*q,N*q)}return this}validate(){let a=!0;const c=this.getValueSize();c-Math.floor(c)!=0&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),a=!1);const h=this.times,m=this.values,M=h.length;0===M&&(console.error("THREE.KeyframeTrack: Track is empty.",this),a=!1);let N=null;for(let q=0;q!==M;q++){const de=h[q];if("number"==typeof de&&isNaN(de)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,q,de),a=!1;break}if(null!==N&&N>de){console.error("THREE.KeyframeTrack: Out of order keys.",this,q,de,N),a=!1;break}N=de}if(void 0!==m&&function fy(w){return ArrayBuffer.isView(w)&&!(w instanceof DataView)}(m))for(let q=0,de=m.length;q!==de;++q){const pe=m[q];if(isNaN(pe)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,q,pe),a=!1;break}}return a}optimize(){const a=this.times.slice(),c=this.values.slice(),h=this.getValueSize(),m=2302===this.getInterpolation(),M=a.length-1;let N=1;for(let q=1;q0){a[N]=a[M];for(let q=M*h,de=N*h,pe=0;pe!==h;++pe)c[de+pe]=c[q+pe];++N}return N!==a.length?(this.times=a.slice(0,N),this.values=c.slice(0,N*h)):(this.times=a,this.values=c),this}clone(){const a=this.times.slice(),c=this.values.slice(),m=new(0,this.constructor)(this.name,a,c);return m.createInterpolant=this.createInterpolant,m}}Km.prototype.TimeBufferType=Float32Array,Km.prototype.ValueBufferType=Float32Array,Km.prototype.DefaultInterpolation=2301;class my extends Km{}my.prototype.ValueTypeName="bool",my.prototype.ValueBufferType=Array,my.prototype.DefaultInterpolation=2300,my.prototype.InterpolantFactoryMethodLinear=void 0,my.prototype.InterpolantFactoryMethodSmooth=void 0;(class SM extends Km{}).prototype.ValueTypeName="color";(class T_ extends Km{}).prototype.ValueTypeName="number";class rP extends Zv{constructor(a,c,h,m){super(a,c,h,m)}interpolate_(a,c,h,m){const M=this.resultBuffer,N=this.sampleValues,q=this.valueSize,de=(h-c)/(m-c);let pe=a*q;for(let xe=pe+q;pe!==xe;pe+=4)Ou.slerpFlat(M,0,N,pe-q,N,pe,de);return M}}class hw extends Km{InterpolantFactoryMethodLinear(a){return new rP(this.times,this.values,this.getValueSize(),a)}}hw.prototype.ValueTypeName="quaternion",hw.prototype.DefaultInterpolation=2301,hw.prototype.InterpolantFactoryMethodSmooth=void 0;class Ay extends Km{}Ay.prototype.ValueTypeName="string",Ay.prototype.ValueBufferType=Array,Ay.prototype.DefaultInterpolation=2300,Ay.prototype.InterpolantFactoryMethodLinear=void 0,Ay.prototype.InterpolantFactoryMethodSmooth=void 0;(class fw extends Km{}).prototype.ValueTypeName="vector";class dP{constructor(a,c,h=0,m=1/0){this.ray=new cf(a,c),this.near=h,this.far=m,this.camera=null,this.layers=new so,this.params={Mesh:{},Line:{threshold:1},LOD:{},Points:{threshold:1},Sprite:{}}}set(a,c){this.ray.set(a,c)}setFromCamera(a,c){c.isPerspectiveCamera?(this.ray.origin.setFromMatrixPosition(c.matrixWorld),this.ray.direction.set(a.x,a.y,.5).unproject(c).sub(this.ray.origin).normalize(),this.camera=c):c.isOrthographicCamera?(this.ray.origin.set(a.x,a.y,(c.near+c.far)/(c.near-c.far)).unproject(c),this.ray.direction.set(0,0,-1).transformDirection(c.matrixWorld),this.camera=c):console.error("THREE.Raycaster: Unsupported camera type: "+c.type)}intersectObject(a,c=!0,h=[]){return TM(a,this,h,c),h.sort(n3),h}intersectObjects(a,c=!0,h=[]){for(let m=0,M=a.length;m"u"?Date:performance).now()}class gw{constructor(a=1,c=0,h=0){return this.radius=a,this.phi=c,this.theta=h,this}set(a,c,h){return this.radius=a,this.phi=c,this.theta=h,this}copy(a){return this.radius=a.radius,this.phi=a.phi,this.theta=a.theta,this}makeSafe(){return this.phi=Math.max(1e-6,Math.min(Math.PI-1e-6,this.phi)),this}setFromVector3(a){return this.setFromCartesianCoords(a.x,a.y,a.z)}setFromCartesianCoords(a,c,h){return this.radius=Math.sqrt(a*a+c*c+h*h),0===this.radius?(this.theta=0,this.phi=0):(this.theta=Math.atan2(a,h),this.phi=Math.acos(nl(c/this.radius,-1,1))),this}clone(){return(new this.constructor).copy(this)}}const BM=new Ui;class _y{constructor(a=new Ui(1/0,1/0),c=new Ui(-1/0,-1/0)){this.isBox2=!0,this.min=a,this.max=c}set(a,c){return this.min.copy(a),this.max.copy(c),this}setFromPoints(a){this.makeEmpty();for(let c=0,h=a.length;cthis.max.x||a.ythis.max.y)}containsBox(a){return this.min.x<=a.min.x&&a.max.x<=this.max.x&&this.min.y<=a.min.y&&a.max.y<=this.max.y}getParameter(a,c){return c.set((a.x-this.min.x)/(this.max.x-this.min.x),(a.y-this.min.y)/(this.max.y-this.min.y))}intersectsBox(a){return!(a.max.xthis.max.x||a.max.ythis.max.y)}clampPoint(a,c){return c.copy(a).clamp(this.min,this.max)}distanceToPoint(a){return this.clampPoint(a,BM).distanceTo(a)}intersect(a){return this.min.max(a.min),this.max.min(a.max),this.isEmpty()&&this.makeEmpty(),this}union(a){return this.min.min(a.min),this.max.max(a.max),this}translate(a){return this.min.add(a),this.max.add(a),this}equals(a){return a.min.equals(this.min)&&a.max.equals(this.max)}}const PM=new Ft,_w=new Ft;class eb{constructor(a=new Ft,c=new Ft){this.start=a,this.end=c}set(a,c){return this.start.copy(a),this.end.copy(c),this}copy(a){return this.start.copy(a.start),this.end.copy(a.end),this}getCenter(a){return a.addVectors(this.start,this.end).multiplyScalar(.5)}delta(a){return a.subVectors(this.end,this.start)}distanceSq(){return this.start.distanceToSquared(this.end)}distance(){return this.start.distanceTo(this.end)}at(a,c){return this.delta(c).multiplyScalar(a).add(this.start)}closestPointToPointParameter(a,c){PM.subVectors(a,this.start),_w.subVectors(this.end,this.start);const h=_w.dot(_w);let M=_w.dot(PM)/h;return c&&(M=nl(M,0,1)),M}closestPointToPoint(a,c,h){const m=this.closestPointToPointParameter(a,c);return this.delta(h).multiplyScalar(m).add(this.start)}applyMatrix4(a){return this.start.applyMatrix4(a),this.end.applyMatrix4(a),this}equals(a){return a.start.equals(this.start)&&a.end.equals(this.end)}clone(){return(new this.constructor).copy(this)}}class r3 extends jC{constructor(a,c=1,h=16776960){const m=h,N=new Cs;N.setAttribute("position",new Bo([1,-1,0,-1,1,0,-1,-1,0,1,1,0,-1,1,0,-1,-1,0,1,-1,0,1,1,0],3)),N.computeBoundingSphere(),super(N,new $1({color:m,toneMapped:!1})),this.type="PlaneHelper",this.plane=a,this.size=c;const de=new Cs;de.setAttribute("position",new Bo([1,1,0,-1,1,0,-1,-1,0,1,1,0,-1,-1,0,1,-1,0],3)),de.computeBoundingSphere(),this.add(new Jc(de,new Xc({color:m,opacity:.2,transparent:!0,depthWrite:!1,toneMapped:!1})))}updateMatrixWorld(a){this.position.set(0,0,0),this.scale.set(.5*this.size,.5*this.size,1),this.lookAt(this.plane.normal),this.translateZ(-this.plane.constant),super.updateMatrixWorld(a)}dispose(){this.geometry.dispose(),this.material.dispose(),this.children[0].geometry.dispose(),this.children[0].material.dispose()}}class uP{constructor(){this.type="ShapePath",this.color=new Os,this.subPaths=[],this.currentPath=null}moveTo(a,c){return this.currentPath=new JC,this.subPaths.push(this.currentPath),this.currentPath.moveTo(a,c),this}lineTo(a,c){return this.currentPath.lineTo(a,c),this}quadraticCurveTo(a,c,h,m){return this.currentPath.quadraticCurveTo(a,c,h,m),this}bezierCurveTo(a,c,h,m,M,N){return this.currentPath.bezierCurveTo(a,c,h,m,M,N),this}splineThru(a){return this.currentPath.splineThru(a),this}toShapes(a){function h(ze,Ct){const ct=Ct.length;let Dt=!1;for(let Jt=ct-1,ln=0;lnNumber.EPSILON){if(Zt<0&&(rn=Ct[ln],kt=-kt,Rn=Ct[Jt],Zt=-Zt),ze.yRn.y)continue;if(ze.y===rn.y){if(ze.x===rn.x)return!0}else{const li=Zt*(ze.x-rn.x)-kt*(ze.y-rn.y);if(0===li)return!0;if(li<0)continue;Dt=!Dt}}else{if(ze.y!==rn.y)continue;if(Rn.x<=ze.x&&ze.x<=rn.x||rn.x<=ze.x&&ze.x<=Rn.x)return!0}}return Dt}const m=Ym.isClockWise,M=this.subPaths;if(0===M.length)return[];let N,q,de;const pe=[];if(1===M.length)return q=M[0],de=new ty,de.curves=q.curves,pe.push(de),pe;let xe=!m(M[0].getPoints());xe=a?!xe:xe;const Ie=[],Be=[];let ft,Qe,Le=[],Ke=0;Be[Ke]=void 0,Le[Ke]=[];for(let ze=0,Ct=M.length;ze1){let ze=!1,Ct=0;for(let ct=0,Dt=Be.length;ct0&&!1===ze&&(Le=Ie)}for(let ze=0,Ct=Be.length;ze":{x_min:18.0625,x_max:774,ha:792,o:"m 774 376 l 18 40 l 18 149 l 631 421 l 18 692 l 18 799 l 774 465 l 774 376 "},v:{x_min:0,x_max:675.15625,ha:761,o:"m 675 738 l 404 0 l 272 0 l 0 738 l 133 737 l 340 147 l 541 737 l 675 738 "},\u03c4:{x_min:.28125,x_max:644.5,ha:703,o:"m 644 628 l 382 628 l 382 179 q 388 120 382 137 q 436 91 401 91 q 474 94 447 91 q 504 97 501 97 l 504 0 q 454 -9 482 -5 q 401 -14 426 -14 q 278 67 308 -14 q 260 233 260 118 l 260 628 l 0 628 l 0 739 l 644 739 l 644 628 "},\u03be:{x_min:0,x_max:624.9375,ha:699,o:"m 624 -37 q 608 -153 624 -96 q 563 -278 593 -211 l 454 -278 q 491 -183 486 -200 q 511 -83 511 -126 q 484 -23 511 -44 q 370 1 452 1 q 323 0 354 1 q 283 -1 293 -1 q 84 76 169 -1 q 0 266 0 154 q 56 431 0 358 q 197 538 108 498 q 94 613 134 562 q 54 730 54 665 q 77 823 54 780 q 143 901 101 867 l 27 901 l 27 1012 l 576 1012 l 576 901 l 380 901 q 244 863 303 901 q 178 745 178 820 q 312 600 178 636 q 532 582 380 582 l 532 479 q 276 455 361 479 q 118 281 118 410 q 165 173 118 217 q 274 120 208 133 q 494 101 384 110 q 624 -37 624 76 "},"&":{x_min:-3,x_max:894.25,ha:992,o:"m 894 0 l 725 0 l 624 123 q 471 0 553 40 q 306 -41 390 -41 q 168 -7 231 -41 q 62 92 105 26 q 14 187 31 139 q -3 276 -3 235 q 55 433 -3 358 q 248 581 114 508 q 170 689 196 640 q 137 817 137 751 q 214 985 137 922 q 384 1041 284 1041 q 548 988 483 1041 q 622 824 622 928 q 563 666 622 739 q 431 556 516 608 l 621 326 q 649 407 639 361 q 663 493 653 426 l 781 493 q 703 229 781 352 l 894 0 m 504 818 q 468 908 504 877 q 384 940 433 940 q 293 907 331 940 q 255 818 255 875 q 289 714 255 767 q 363 628 313 678 q 477 729 446 682 q 504 818 504 771 m 556 209 l 314 499 q 179 395 223 449 q 135 283 135 341 q 146 222 135 253 q 183 158 158 192 q 333 80 241 80 q 556 209 448 80 "},\u039b:{x_min:0,x_max:862.5,ha:942,o:"m 862 0 l 719 0 l 426 847 l 143 0 l 0 0 l 356 1013 l 501 1013 l 862 0 "},I:{x_min:41,x_max:180,ha:293,o:"m 180 0 l 41 0 l 41 1013 l 180 1013 l 180 0 "},G:{x_min:0,x_max:921,ha:1011,o:"m 921 0 l 832 0 l 801 136 q 655 15 741 58 q 470 -28 568 -28 q 126 133 259 -28 q 0 499 0 284 q 125 881 0 731 q 486 1043 259 1043 q 763 957 647 1043 q 905 709 890 864 l 772 709 q 668 866 747 807 q 486 926 589 926 q 228 795 322 926 q 142 507 142 677 q 228 224 142 342 q 483 94 323 94 q 712 195 625 94 q 796 435 796 291 l 477 435 l 477 549 l 921 549 l 921 0 "},\u03b0:{x_min:0,x_max:617,ha:725,o:"m 524 800 l 414 800 l 414 925 l 524 925 l 524 800 m 183 800 l 73 800 l 73 925 l 183 925 l 183 800 m 617 352 q 540 93 617 199 q 308 -24 455 -24 q 76 93 161 -24 q 0 352 0 199 l 0 738 l 126 738 l 126 354 q 169 185 126 257 q 312 98 220 98 q 451 185 402 98 q 492 354 492 257 l 492 738 l 617 738 l 617 352 m 489 1040 l 300 819 l 216 819 l 351 1040 l 489 1040 "},"`":{x_min:0,x_max:138.890625,ha:236,o:"m 138 699 l 0 699 l 0 861 q 36 974 0 929 q 138 1041 72 1020 l 138 977 q 82 931 95 969 q 69 839 69 893 l 138 839 l 138 699 "},"\xb7":{x_min:0,x_max:142,ha:239,o:"m 142 585 l 0 585 l 0 738 l 142 738 l 142 585 "},\u03a5:{x_min:.328125,x_max:819.515625,ha:889,o:"m 819 1013 l 482 416 l 482 0 l 342 0 l 342 416 l 0 1013 l 140 1013 l 411 533 l 679 1013 l 819 1013 "},r:{x_min:0,x_max:355.5625,ha:432,o:"m 355 621 l 343 621 q 179 569 236 621 q 122 411 122 518 l 122 0 l 0 0 l 0 737 l 117 737 l 117 604 q 204 719 146 686 q 355 753 262 753 l 355 621 "},x:{x_min:0,x_max:675,ha:764,o:"m 675 0 l 525 0 l 331 286 l 144 0 l 0 0 l 256 379 l 12 738 l 157 737 l 336 473 l 516 738 l 661 738 l 412 380 l 675 0 "},\u03bc:{x_min:0,x_max:696.609375,ha:747,o:"m 696 -4 q 628 -14 657 -14 q 498 97 513 -14 q 422 8 470 41 q 313 -24 374 -24 q 207 3 258 -24 q 120 80 157 31 l 120 -278 l 0 -278 l 0 738 l 124 738 l 124 343 q 165 172 124 246 q 308 82 216 82 q 451 177 402 82 q 492 358 492 254 l 492 738 l 616 738 l 616 214 q 623 136 616 160 q 673 92 636 92 q 696 95 684 92 l 696 -4 "},h:{x_min:0,x_max:615,ha:724,o:"m 615 472 l 615 0 l 490 0 l 490 454 q 456 590 490 535 q 338 654 416 654 q 186 588 251 654 q 122 436 122 522 l 122 0 l 0 0 l 0 1013 l 122 1013 l 122 633 q 218 727 149 694 q 362 760 287 760 q 552 676 484 760 q 615 472 615 600 "},".":{x_min:0,x_max:142,ha:239,o:"m 142 0 l 0 0 l 0 151 l 142 151 l 142 0 "},\u03c6:{x_min:-2,x_max:878,ha:974,o:"m 496 -279 l 378 -279 l 378 -17 q 101 88 204 -17 q -2 367 -2 194 q 68 626 -2 510 q 283 758 151 758 l 283 646 q 167 537 209 626 q 133 373 133 462 q 192 177 133 254 q 378 93 259 93 l 378 758 q 445 764 426 763 q 476 765 464 765 q 765 659 653 765 q 878 377 878 553 q 771 96 878 209 q 496 -17 665 -17 l 496 -279 m 496 93 l 514 93 q 687 183 623 93 q 746 380 746 265 q 691 569 746 491 q 522 658 629 658 l 496 656 l 496 93 "},";":{x_min:0,x_max:142,ha:239,o:"m 142 585 l 0 585 l 0 738 l 142 738 l 142 585 m 142 -12 q 105 -132 142 -82 q 0 -206 68 -182 l 0 -138 q 58 -82 43 -123 q 68 0 68 -56 l 0 0 l 0 151 l 142 151 l 142 -12 "},f:{x_min:0,x_max:378,ha:472,o:"m 378 638 l 246 638 l 246 0 l 121 0 l 121 638 l 0 638 l 0 738 l 121 738 q 137 935 121 887 q 290 1028 171 1028 q 320 1027 305 1028 q 378 1021 334 1026 l 378 908 q 323 918 346 918 q 257 870 273 918 q 246 780 246 840 l 246 738 l 378 738 l 378 638 "},"\u201c":{x_min:1,x_max:348.21875,ha:454,o:"m 140 670 l 1 670 l 1 830 q 37 943 1 897 q 140 1011 74 990 l 140 947 q 82 900 97 940 q 68 810 68 861 l 140 810 l 140 670 m 348 670 l 209 670 l 209 830 q 245 943 209 897 q 348 1011 282 990 l 348 947 q 290 900 305 940 q 276 810 276 861 l 348 810 l 348 670 "},A:{x_min:.03125,x_max:906.953125,ha:1008,o:"m 906 0 l 756 0 l 648 303 l 251 303 l 142 0 l 0 0 l 376 1013 l 529 1013 l 906 0 m 610 421 l 452 867 l 293 421 l 610 421 "},"\u2018":{x_min:1,x_max:139.890625,ha:236,o:"m 139 670 l 1 670 l 1 830 q 37 943 1 897 q 139 1011 74 990 l 139 947 q 82 900 97 940 q 68 810 68 861 l 139 810 l 139 670 "},\u03ca:{x_min:-70,x_max:283,ha:361,o:"m 283 800 l 173 800 l 173 925 l 283 925 l 283 800 m 40 800 l -70 800 l -70 925 l 40 925 l 40 800 m 283 3 q 232 -10 257 -5 q 181 -15 206 -15 q 84 26 118 -15 q 41 200 41 79 l 41 737 l 166 737 l 167 215 q 171 141 167 157 q 225 101 182 101 q 247 103 238 101 q 283 112 256 104 l 283 3 "},\u03c0:{x_min:-.21875,x_max:773.21875,ha:857,o:"m 773 -7 l 707 -11 q 575 40 607 -11 q 552 174 552 77 l 552 226 l 552 626 l 222 626 l 222 0 l 97 0 l 97 626 l 0 626 l 0 737 l 773 737 l 773 626 l 676 626 l 676 171 q 695 103 676 117 q 773 90 714 90 l 773 -7 "},\u03ac:{x_min:0,x_max:765.5625,ha:809,o:"m 765 -4 q 698 -14 726 -14 q 564 97 586 -14 q 466 7 525 40 q 337 -26 407 -26 q 88 98 186 -26 q 0 369 0 212 q 88 637 0 525 q 337 760 184 760 q 465 727 407 760 q 563 637 524 695 l 563 738 l 685 738 l 685 222 q 693 141 685 168 q 748 94 708 94 q 765 95 760 94 l 765 -4 m 584 371 q 531 562 584 485 q 360 653 470 653 q 192 566 254 653 q 135 379 135 489 q 186 181 135 261 q 358 84 247 84 q 528 176 465 84 q 584 371 584 260 m 604 1040 l 415 819 l 332 819 l 466 1040 l 604 1040 "},O:{x_min:0,x_max:958,ha:1057,o:"m 485 1041 q 834 882 702 1041 q 958 512 958 734 q 834 136 958 287 q 481 -26 702 -26 q 126 130 261 -26 q 0 504 0 279 q 127 880 0 728 q 485 1041 263 1041 m 480 98 q 731 225 638 98 q 815 504 815 340 q 733 783 815 669 q 480 912 640 912 q 226 784 321 912 q 142 504 142 670 q 226 224 142 339 q 480 98 319 98 "},n:{x_min:0,x_max:615,ha:724,o:"m 615 463 l 615 0 l 490 0 l 490 454 q 453 592 490 537 q 331 656 410 656 q 178 585 240 656 q 117 421 117 514 l 117 0 l 0 0 l 0 738 l 117 738 l 117 630 q 218 728 150 693 q 359 764 286 764 q 552 675 484 764 q 615 463 615 593 "},l:{x_min:41,x_max:166,ha:279,o:"m 166 0 l 41 0 l 41 1013 l 166 1013 l 166 0 "},"\xa4":{x_min:40.09375,x_max:728.796875,ha:825,o:"m 728 304 l 649 224 l 512 363 q 383 331 458 331 q 256 363 310 331 l 119 224 l 40 304 l 177 441 q 150 553 150 493 q 184 673 150 621 l 40 818 l 119 898 l 267 749 q 321 766 291 759 q 384 773 351 773 q 447 766 417 773 q 501 749 477 759 l 649 898 l 728 818 l 585 675 q 612 618 604 648 q 621 553 621 587 q 591 441 621 491 l 728 304 m 384 682 q 280 643 318 682 q 243 551 243 604 q 279 461 243 499 q 383 423 316 423 q 487 461 449 423 q 525 553 525 500 q 490 641 525 605 q 384 682 451 682 "},\u03ba:{x_min:0,x_max:632.328125,ha:679,o:"m 632 0 l 482 0 l 225 384 l 124 288 l 124 0 l 0 0 l 0 738 l 124 738 l 124 446 l 433 738 l 596 738 l 312 466 l 632 0 "},p:{x_min:0,x_max:685,ha:786,o:"m 685 364 q 598 96 685 205 q 350 -23 504 -23 q 121 89 205 -23 l 121 -278 l 0 -278 l 0 738 l 121 738 l 121 633 q 220 726 159 691 q 351 761 280 761 q 598 636 504 761 q 685 364 685 522 m 557 371 q 501 560 557 481 q 330 651 437 651 q 162 559 223 651 q 108 366 108 479 q 162 177 108 254 q 333 87 224 87 q 502 178 441 87 q 557 371 557 258 "},"\u2021":{x_min:0,x_max:777,ha:835,o:"m 458 238 l 458 0 l 319 0 l 319 238 l 0 238 l 0 360 l 319 360 l 319 681 l 0 683 l 0 804 l 319 804 l 319 1015 l 458 1013 l 458 804 l 777 804 l 777 683 l 458 683 l 458 360 l 777 360 l 777 238 l 458 238 "},\u03c8:{x_min:0,x_max:808,ha:907,o:"m 465 -278 l 341 -278 l 341 -15 q 87 102 180 -15 q 0 378 0 210 l 0 739 l 133 739 l 133 379 q 182 195 133 275 q 341 98 242 98 l 341 922 l 465 922 l 465 98 q 623 195 563 98 q 675 382 675 278 l 675 742 l 808 742 l 808 381 q 720 104 808 213 q 466 -13 627 -13 l 465 -278 "},\u03b7:{x_min:.78125,x_max:697,ha:810,o:"m 697 -278 l 572 -278 l 572 454 q 540 587 572 536 q 425 650 501 650 q 271 579 337 650 q 206 420 206 509 l 206 0 l 81 0 l 81 489 q 73 588 81 562 q 0 644 56 644 l 0 741 q 68 755 38 755 q 158 720 124 755 q 200 630 193 686 q 297 726 234 692 q 434 761 359 761 q 620 692 544 761 q 697 516 697 624 l 697 -278 "}},d3={yMin:-334,xMin:-111,yMax:1189,xMax:1672},yw={postscript_name:"Helvetiker-Regular",version_string:"Version 1.00 2004 initial release",vendor_url:"http://www.magenta.gr/",full_font_name:"Helvetiker",font_family_name:"Helvetiker",copyright:"Copyright (c) \u039cagenta ltd, 2004",description:"",trademark:"",designer:"",designer_url:"",unique_font_identifier:"\u039cagenta ltd:Helvetiker:22-10-104",license_url:"http://www.ellak.gr/fonts/MgOpen/license.html",license_description:'Copyright (c) 2004 by MAGENTA Ltd. All Rights Reserved.\r\n\r\nPermission is hereby granted, free of charge, to any person obtaining a copy of the fonts accompanying this license ("Fonts") and associated documentation files (the "Font Software"), to reproduce and distribute the Font Software, including without limitation the rights to use, copy, merge, publish, distribute, and/or sell copies of the Font Software, and to permit persons to whom the Font Software is furnished to do so, subject to the following conditions: \r\n\r\nThe above copyright and this permission notice shall be included in all copies of one or more of the Font Software typefaces.\r\n\r\nThe Font Software may be modified, altered, or added to, and in particular the designs of glyphs or characters in the Fonts may be modified and additional glyphs or characters may be added to the Fonts, only if the fonts are renamed to names not containing the word "MgOpen", or if the modifications are accepted for inclusion in the Font Software itself by the each appointed Administrator.\r\n\r\nThis License becomes null and void to the extent applicable to Fonts or Font Software that has been modified and is distributed under the "MgOpen" name.\r\n\r\nThe Font Software may be sold as part of a larger software package but no copy of one or more of the Font Software typefaces may be sold by itself. \r\n\r\nTHE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL MAGENTA OR PERSONS OR BODIES IN CHARGE OF ADMINISTRATION AND MAINTENANCE OF THE FONT SOFTWARE BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.',manufacturer_name:"\u039cagenta ltd",font_sub_family_name:"Regular"},h3="Helvetiker",hP=Object.freeze({__proto__:null,ascender:1189,boundingBox:d3,cssFontStyle:"normal",cssFontWeight:"normal",default:{glyphs:o3,cssFontWeight:"normal",ascender:1189,underlinePosition:-100,cssFontStyle:"normal",boundingBox:d3,resolution:1e3,original_font_information:yw,descender:-334,familyName:h3,lineHeight:1522,underlineThickness:50},descender:-334,familyName:h3,glyphs:o3,lineHeight:1522,original_font_information:yw,resolution:1e3,underlinePosition:-100,underlineThickness:50});class fP{constructor(a){this.isFont=!0,this.type="Font",this.data=a}generateShapes(a,c=100){const h=[],m=function RM(w,a,c){const h=Array.from(w),m=a/c.resolution,M=(c.boundingBox.yMax-c.boundingBox.yMin+c.underlineThickness)*m,N=[];let q=0,de=0;for(let pe=0;peMath.PI&&(ys-=to),jr<-Math.PI?jr+=to:jr>Math.PI&&(jr-=to),q.theta=ys<=jr?Math.max(ys,Math.min(jr,q.theta)):q.theta>(ys+jr)/2?Math.max(ys,q.theta):Math.min(jr,q.theta)),q.phi=Math.max(h.minPolarAngle,Math.min(h.maxPolarAngle,q.phi)),q.makeSafe(),!0===h.enableDamping?h.target.addScaledVector(xe,h.dampingFactor):h.target.add(xe),h.target.sub(h.cursor),h.target.clampLength(h.minTargetRadius,h.maxTargetRadius),h.target.add(h.cursor),q.radius=Ji(h.zoomToCursor&&ln||h.object.isOrthographicCamera?q.radius:q.radius*pe),Nn.setFromSpherical(q),Nn.applyQuaternion(xr),Kn.copy(h.target).add(Nn),h.object.lookAt(h.target),!0===h.enableDamping?(de.theta*=1-h.dampingFactor,de.phi*=1-h.dampingFactor,xe.multiplyScalar(1-h.dampingFactor)):(de.set(0,0,0),xe.set(0,0,0));let dr=!1;if(h.zoomToCursor&&ln){let ts=null;if(h.object.isPerspectiveCamera){const xo=Nn.length();ts=Ji(xo*pe),h.object.position.addScaledVector(Dt,xo-ts),h.object.updateMatrixWorld()}else if(h.object.isOrthographicCamera){const xo=new Ft(Jt.x,Jt.y,0);xo.unproject(h.object),h.object.zoom=Math.max(h.minZoom,Math.min(h.maxZoom,h.object.zoom/pe)),h.object.updateProjectionMatrix(),dr=!0;const Na=new Ft(Jt.x,Jt.y,0);Na.unproject(h.object),h.object.position.sub(Na).add(xo),h.object.updateMatrixWorld(),ts=Nn.length()}else console.warn("WARNING: OrbitControls.js encountered an unknown camera type - zoom to cursor disabled."),h.zoomToCursor=!1;null!==ts&&(this.screenSpacePanning?h.target.set(0,0,-1).transformDirection(h.object.matrix).multiplyScalar(ts).add(h.object.position):(rb.origin.copy(h.object.position),rb.direction.set(0,0,-1).transformDirection(h.object.matrix),Math.abs(h.object.up.dot(rb.direction))N||8*(1-Ao.dot(h.object.quaternion))>N||fo.distanceToSquared(h.target)>0)&&(h.dispatchEvent(kM),Oo.copy(h.object.position),Ao.copy(h.object.quaternion),fo.copy(h.target),dr=!1,!0)}}(),this.dispose=function(){h.domElement.removeEventListener("contextmenu",Ar),h.domElement.removeEventListener("pointerdown",Nr),h.domElement.removeEventListener("pointercancel",us),h.domElement.removeEventListener("wheel",$t),h.domElement.removeEventListener("pointermove",fr),h.domElement.removeEventListener("pointerup",us),null!==h._domElementKeyEvents&&(h._domElementKeyEvents.removeEventListener("keydown",Pt),h._domElementKeyEvents=null)};const h=this,m={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_PAN:4,TOUCH_DOLLY_PAN:5,TOUCH_DOLLY_ROTATE:6};let M=m.NONE;const N=1e-6,q=new gw,de=new gw;let pe=1;const xe=new Ft,Ie=new Ui,Be=new Ui,Le=new Ui,Ke=new Ui,ft=new Ui,Qe=new Ui,ze=new Ui,Ct=new Ui,ct=new Ui,Dt=new Ft,Jt=new Ui;let ln=!1;const rn=[],Rn={};function Zt(){return Math.pow(.95,h.zoomSpeed)}function li(Nn){de.theta-=Nn}function Ti(Nn){de.phi-=Nn}const ur=function(){const Nn=new Ft;return function(xr,Oo){Nn.setFromMatrixColumn(Oo,0),Nn.multiplyScalar(-xr),xe.add(Nn)}}(),Yn=function(){const Nn=new Ft;return function(xr,Oo){!0===h.screenSpacePanning?Nn.setFromMatrixColumn(Oo,1):(Nn.setFromMatrixColumn(Oo,0),Nn.crossVectors(h.object.up,Nn)),Nn.multiplyScalar(xr),xe.add(Nn)}}(),Di=function(){const Nn=new Ft;return function(xr,Oo){const Ao=h.domElement;if(h.object.isPerspectiveCamera){Nn.copy(h.object.position).sub(h.target);let to=Nn.length();to*=Math.tan(h.object.fov/2*Math.PI/180),ur(2*xr*to/Ao.clientHeight,h.object.matrix),Yn(2*Oo*to/Ao.clientHeight,h.object.matrix)}else h.object.isOrthographicCamera?(ur(xr*(h.object.right-h.object.left)/h.object.zoom/Ao.clientWidth,h.object.matrix),Yn(Oo*(h.object.top-h.object.bottom)/h.object.zoom/Ao.clientHeight,h.object.matrix)):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - pan disabled."),h.enablePan=!1)}}();function rr(Nn){h.object.isPerspectiveCamera||h.object.isOrthographicCamera?pe/=Nn:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),h.enableZoom=!1)}function Oi(Nn){h.object.isPerspectiveCamera||h.object.isOrthographicCamera?pe*=Nn:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),h.enableZoom=!1)}function br(Nn){if(!h.zoomToCursor)return;ln=!0;const Hr=h.domElement.getBoundingClientRect(),Oo=Nn.clientY-Hr.top,fo=Hr.height;Jt.x=(Nn.clientX-Hr.left)/Hr.width*2-1,Jt.y=-Oo/fo*2+1,Dt.set(Jt.x,Jt.y,1).unproject(h.object).sub(h.object.position).normalize()}function Ji(Nn){return Math.max(h.minDistance,Math.min(h.maxDistance,Nn))}function lr(Nn){Ie.set(Nn.clientX,Nn.clientY)}function sr(Nn){Ke.set(Nn.clientX,Nn.clientY)}function er(){1===rn.length?Ie.set(rn[0].pageX,rn[0].pageY):Ie.set(.5*(rn[0].pageX+rn[1].pageX),.5*(rn[0].pageY+rn[1].pageY))}function Or(){1===rn.length?Ke.set(rn[0].pageX,rn[0].pageY):Ke.set(.5*(rn[0].pageX+rn[1].pageX),.5*(rn[0].pageY+rn[1].pageY))}function yr(){const Nn=rn[0].pageX-rn[1].pageX,Hr=rn[0].pageY-rn[1].pageY,xr=Math.sqrt(Nn*Nn+Hr*Hr);ze.set(0,xr)}function Ki(Nn){if(1==rn.length)Be.set(Nn.pageX,Nn.pageY);else{const xr=es(Nn);Be.set(.5*(Nn.pageX+xr.x),.5*(Nn.pageY+xr.y))}Le.subVectors(Be,Ie).multiplyScalar(h.rotateSpeed);const Hr=h.domElement;li(2*Math.PI*Le.x/Hr.clientHeight),Ti(2*Math.PI*Le.y/Hr.clientHeight),Ie.copy(Be)}function si(Nn){if(1===rn.length)ft.set(Nn.pageX,Nn.pageY);else{const Hr=es(Nn);ft.set(.5*(Nn.pageX+Hr.x),.5*(Nn.pageY+Hr.y))}Qe.subVectors(ft,Ke).multiplyScalar(h.panSpeed),Di(Qe.x,Qe.y),Ke.copy(ft)}function Ri(Nn){const Hr=es(Nn),xr=Nn.pageX-Hr.x,Oo=Nn.pageY-Hr.y,Ao=Math.sqrt(xr*xr+Oo*Oo);Ct.set(0,Ao),ct.set(0,Math.pow(Ct.y/ze.y,h.zoomSpeed)),rr(ct.y),ze.copy(Ct)}function Nr(Nn){!1!==h.enabled&&(0===rn.length&&(h.domElement.setPointerCapture(Nn.pointerId),h.domElement.addEventListener("pointermove",fr),h.domElement.addEventListener("pointerup",us)),function Br(Nn){rn.push(Nn)}(Nn),"touch"===Nn.pointerType?function ni(Nn){switch(Ir(Nn),rn.length){case 1:switch(h.touches.ONE){case 0:if(!1===h.enableRotate)return;er(),M=m.TOUCH_ROTATE;break;case 1:if(!1===h.enablePan)return;Or(),M=m.TOUCH_PAN;break;default:M=m.NONE}break;case 2:switch(h.touches.TWO){case 2:if(!1===h.enableZoom&&!1===h.enablePan)return;(function vr(){h.enableZoom&&yr(),h.enablePan&&Or()})(),M=m.TOUCH_DOLLY_PAN;break;case 3:if(!1===h.enableZoom&&!1===h.enableRotate)return;(function _n(){h.enableZoom&&yr(),h.enableRotate&&er()})(),M=m.TOUCH_DOLLY_ROTATE;break;default:M=m.NONE}break;default:M=m.NONE}M!==m.NONE&&h.dispatchEvent(FM)}(Nn):function co(Nn){let Hr;switch(Nn.button){case 0:Hr=h.mouseButtons.LEFT;break;case 1:Hr=h.mouseButtons.MIDDLE;break;case 2:Hr=h.mouseButtons.RIGHT;break;default:Hr=-1}switch(Hr){case 1:if(!1===h.enableZoom)return;(function ei(Nn){br(Nn),ze.set(Nn.clientX,Nn.clientY)})(Nn),M=m.DOLLY;break;case 0:if(Nn.ctrlKey||Nn.metaKey||Nn.shiftKey){if(!1===h.enablePan)return;sr(Nn),M=m.PAN}else{if(!1===h.enableRotate)return;lr(Nn),M=m.ROTATE}break;case 2:if(Nn.ctrlKey||Nn.metaKey||Nn.shiftKey){if(!1===h.enableRotate)return;lr(Nn),M=m.ROTATE}else{if(!1===h.enablePan)return;sr(Nn),M=m.PAN}break;default:M=m.NONE}M!==m.NONE&&h.dispatchEvent(FM)}(Nn))}function fr(Nn){!1!==h.enabled&&("touch"===Nn.pointerType?function cr(Nn){switch(Ir(Nn),M){case m.TOUCH_ROTATE:if(!1===h.enableRotate)return;Ki(Nn),h.update();break;case m.TOUCH_PAN:if(!1===h.enablePan)return;si(Nn),h.update();break;case m.TOUCH_DOLLY_PAN:if(!1===h.enableZoom&&!1===h.enablePan)return;(function Ii(Nn){h.enableZoom&&Ri(Nn),h.enablePan&&si(Nn)})(Nn),h.update();break;case m.TOUCH_DOLLY_ROTATE:if(!1===h.enableZoom&&!1===h.enableRotate)return;(function Jr(Nn){h.enableZoom&&Ri(Nn),h.enableRotate&&Ki(Nn)})(Nn),h.update();break;default:M=m.NONE}}(Nn):function _s(Nn){switch(M){case m.ROTATE:if(!1===h.enableRotate)return;!function as(Nn){Be.set(Nn.clientX,Nn.clientY),Le.subVectors(Be,Ie).multiplyScalar(h.rotateSpeed);const Hr=h.domElement;li(2*Math.PI*Le.x/Hr.clientHeight),Ti(2*Math.PI*Le.y/Hr.clientHeight),Ie.copy(Be),h.update()}(Nn);break;case m.DOLLY:if(!1===h.enableZoom)return;!function xs(Nn){Ct.set(Nn.clientX,Nn.clientY),ct.subVectors(Ct,ze),ct.y>0?rr(Zt()):ct.y<0&&Oi(Zt()),ze.copy(Ct),h.update()}(Nn);break;case m.PAN:if(!1===h.enablePan)return;!function Ds(Nn){ft.set(Nn.clientX,Nn.clientY),Qe.subVectors(ft,Ke).multiplyScalar(h.panSpeed),Di(Qe.x,Qe.y),Ke.copy(ft),h.update()}(Nn)}}(Nn))}function us(Nn){(function ks(Nn){delete Rn[Nn.pointerId];for(let Hr=0;Hr0&&rr(Zt()),h.update()}(Nn),h.dispatchEvent(f3))}function Pt(Nn){!1===h.enabled||!1===h.enablePan||function eo(Nn){let Hr=!1;switch(Nn.code){case h.keys.UP:Nn.ctrlKey||Nn.metaKey||Nn.shiftKey?Ti(2*Math.PI*h.rotateSpeed/h.domElement.clientHeight):Di(0,h.keyPanSpeed),Hr=!0;break;case h.keys.BOTTOM:Nn.ctrlKey||Nn.metaKey||Nn.shiftKey?Ti(-2*Math.PI*h.rotateSpeed/h.domElement.clientHeight):Di(0,-h.keyPanSpeed),Hr=!0;break;case h.keys.LEFT:Nn.ctrlKey||Nn.metaKey||Nn.shiftKey?li(2*Math.PI*h.rotateSpeed/h.domElement.clientHeight):Di(h.keyPanSpeed,0),Hr=!0;break;case h.keys.RIGHT:Nn.ctrlKey||Nn.metaKey||Nn.shiftKey?li(-2*Math.PI*h.rotateSpeed/h.domElement.clientHeight):Di(-h.keyPanSpeed,0),Hr=!0}Hr&&(Nn.preventDefault(),h.update())}(Nn)}function Ar(Nn){!1!==h.enabled&&Nn.preventDefault()}function Ir(Nn){let Hr=Rn[Nn.pointerId];void 0===Hr&&(Hr=new Ui,Rn[Nn.pointerId]=Hr),Hr.set(Nn.pageX,Nn.pageY)}function es(Nn){return Rn[(Nn.pointerId===rn[0].pointerId?rn[1]:rn[0]).pointerId]}h.domElement.addEventListener("contextmenu",Ar),h.domElement.addEventListener("pointerdown",Nr),h.domElement.addEventListener("pointercancel",us),h.domElement.addEventListener("wheel",$t,{passive:!1}),this.update()}}const sb={name:"CopyShader",uniforms:{tDiffuse:{value:null},opacity:{value:1}},vertexShader:"\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvUv = uv;\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n\t\t}",fragmentShader:"\n\n\t\tuniform float opacity;\n\n\t\tuniform sampler2D tDiffuse;\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvec4 texel = texture2D( tDiffuse, vUv );\n\t\t\tgl_FragColor = opacity * texel;\n\n\n\t\t}"};class ob{constructor(){this.isPass=!0,this.enabled=!0,this.needsSwap=!0,this.clear=!1,this.renderToScreen=!1}setSize(){}render(){console.error("THREE.Pass: .render() must be implemented in derived pass.")}dispose(){}}const m3=new kd(-1,1,1,-1,0,1),A3=new class AP extends Cs{constructor(){super(),this.setAttribute("position",new Bo([-1,3,0,-1,-1,0,3,-1,0],3)),this.setAttribute("uv",new Bo([0,2,0,0,2,0],2))}};class gP{constructor(a){this._mesh=new Jc(A3,a)}dispose(){this._mesh.geometry.dispose()}render(a){a.render(this._mesh,m3)}get material(){return this._mesh.material}set material(a){this._mesh.material=a}}class _P extends ob{constructor(a,c){super(),this.textureID=void 0!==c?c:"tDiffuse",a instanceof zl?(this.uniforms=a.uniforms,this.material=a):a&&(this.uniforms=dl.clone(a.uniforms),this.material=new zl({name:void 0!==a.name?a.name:"unspecified",defines:Object.assign({},a.defines),uniforms:this.uniforms,vertexShader:a.vertexShader,fragmentShader:a.fragmentShader})),this.fsQuad=new gP(this.material)}render(a,c,h){this.uniforms[this.textureID]&&(this.uniforms[this.textureID].value=h.texture),this.fsQuad.material=this.material,this.renderToScreen?(a.setRenderTarget(null),this.fsQuad.render(a)):(a.setRenderTarget(c),this.clear&&a.clear(a.autoClearColor,a.autoClearDepth,a.autoClearStencil),this.fsQuad.render(a))}dispose(){this.material.dispose(),this.fsQuad.dispose()}}class m0 extends ob{constructor(a,c){super(),this.scene=a,this.camera=c,this.clear=!0,this.needsSwap=!1,this.inverse=!1}render(a,c,h){const m=a.getContext(),M=a.state;let N,q;M.buffers.color.setMask(!1),M.buffers.depth.setMask(!1),M.buffers.color.setLocked(!0),M.buffers.depth.setLocked(!0),this.inverse?(N=0,q=1):(N=1,q=0),M.buffers.stencil.setTest(!0),M.buffers.stencil.setOp(m.REPLACE,m.REPLACE,m.REPLACE),M.buffers.stencil.setFunc(m.ALWAYS,N,4294967295),M.buffers.stencil.setClear(q),M.buffers.stencil.setLocked(!0),a.setRenderTarget(h),this.clear&&a.clear(),a.render(this.scene,this.camera),a.setRenderTarget(c),this.clear&&a.clear(),a.render(this.scene,this.camera),M.buffers.color.setLocked(!1),M.buffers.depth.setLocked(!1),M.buffers.color.setMask(!0),M.buffers.depth.setMask(!0),M.buffers.stencil.setLocked(!1),M.buffers.stencil.setFunc(m.EQUAL,1,4294967295),M.buffers.stencil.setOp(m.KEEP,m.KEEP,m.KEEP),M.buffers.stencil.setLocked(!0)}}class OM extends ob{constructor(){super(),this.needsSwap=!1}render(a){a.state.buffers.stencil.setLocked(!1),a.state.buffers.stencil.setTest(!1)}}class ZA{constructor(a,c){if(this.renderer=a,this._pixelRatio=a.getPixelRatio(),void 0===c){const h=a.getSize(new Ui);this._width=h.width,this._height=h.height,(c=new Fu(this._width*this._pixelRatio,this._height*this._pixelRatio,{type:In})).texture.name="EffectComposer.rt1"}else this._width=c.width,this._height=c.height;this.renderTarget1=c,this.renderTarget2=c.clone(),this.renderTarget2.texture.name="EffectComposer.rt2",this.writeBuffer=this.renderTarget1,this.readBuffer=this.renderTarget2,this.renderToScreen=!0,this.passes=[],this.copyPass=new _P(sb),this.copyPass.material.blending=0,this.clock=new DM}swapBuffers(){const a=this.readBuffer;this.readBuffer=this.writeBuffer,this.writeBuffer=a}addPass(a){this.passes.push(a),a.setSize(this._width*this._pixelRatio,this._height*this._pixelRatio)}insertPass(a,c){this.passes.splice(c,0,a),a.setSize(this._width*this._pixelRatio,this._height*this._pixelRatio)}removePass(a){const c=this.passes.indexOf(a);-1!==c&&this.passes.splice(c,1)}isLastEnabledPass(a){for(let c=a+1;c\n\t\t\t\tvarying vec2 vUv;\n\t\t\t\tuniform sampler2D colorTexture;\n\t\t\t\tuniform vec2 invSize;\n\t\t\t\tuniform vec2 direction;\n\t\t\t\tuniform float gaussianCoefficients[KERNEL_RADIUS];\n\n\t\t\t\tvoid main() {\n\t\t\t\t\tfloat weightSum = gaussianCoefficients[0];\n\t\t\t\t\tvec3 diffuseSum = texture2D( colorTexture, vUv ).rgb * weightSum;\n\t\t\t\t\tfor( int i = 1; i < KERNEL_RADIUS; i ++ ) {\n\t\t\t\t\t\tfloat x = float(i);\n\t\t\t\t\t\tfloat w = gaussianCoefficients[i];\n\t\t\t\t\t\tvec2 uvOffset = direction * invSize * x;\n\t\t\t\t\t\tvec3 sample1 = texture2D( colorTexture, vUv + uvOffset ).rgb;\n\t\t\t\t\t\tvec3 sample2 = texture2D( colorTexture, vUv - uvOffset ).rgb;\n\t\t\t\t\t\tdiffuseSum += (sample1 + sample2) * w;\n\t\t\t\t\t\tweightSum += 2.0 * w;\n\t\t\t\t\t}\n\t\t\t\t\tgl_FragColor = vec4(diffuseSum/weightSum, 1.0);\n\t\t\t\t}"})}getCompositeMaterial(a){return new zl({defines:{NUM_MIPS:a},uniforms:{blurTexture1:{value:null},blurTexture2:{value:null},blurTexture3:{value:null},blurTexture4:{value:null},blurTexture5:{value:null},bloomStrength:{value:1},bloomFactors:{value:null},bloomTintColors:{value:null},bloomRadius:{value:0}},vertexShader:"varying vec2 vUv;\n\t\t\t\tvoid main() {\n\t\t\t\t\tvUv = uv;\n\t\t\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\t\t\t\t}",fragmentShader:"varying vec2 vUv;\n\t\t\t\tuniform sampler2D blurTexture1;\n\t\t\t\tuniform sampler2D blurTexture2;\n\t\t\t\tuniform sampler2D blurTexture3;\n\t\t\t\tuniform sampler2D blurTexture4;\n\t\t\t\tuniform sampler2D blurTexture5;\n\t\t\t\tuniform float bloomStrength;\n\t\t\t\tuniform float bloomRadius;\n\t\t\t\tuniform float bloomFactors[NUM_MIPS];\n\t\t\t\tuniform vec3 bloomTintColors[NUM_MIPS];\n\n\t\t\t\tfloat lerpBloomFactor(const in float factor) {\n\t\t\t\t\tfloat mirrorFactor = 1.2 - factor;\n\t\t\t\t\treturn mix(factor, mirrorFactor, bloomRadius);\n\t\t\t\t}\n\n\t\t\t\tvoid main() {\n\t\t\t\t\tgl_FragColor = bloomStrength * ( lerpBloomFactor(bloomFactors[0]) * vec4(bloomTintColors[0], 1.0) * texture2D(blurTexture1, vUv) +\n\t\t\t\t\t\tlerpBloomFactor(bloomFactors[1]) * vec4(bloomTintColors[1], 1.0) * texture2D(blurTexture2, vUv) +\n\t\t\t\t\t\tlerpBloomFactor(bloomFactors[2]) * vec4(bloomTintColors[2], 1.0) * texture2D(blurTexture3, vUv) +\n\t\t\t\t\t\tlerpBloomFactor(bloomFactors[3]) * vec4(bloomTintColors[3], 1.0) * texture2D(blurTexture4, vUv) +\n\t\t\t\t\t\tlerpBloomFactor(bloomFactors[4]) * vec4(bloomTintColors[4], 1.0) * texture2D(blurTexture5, vUv) );\n\t\t\t\t}"})}}ab.BlurDirectionX=new Ui(1,0),ab.BlurDirectionY=new Ui(0,1);class g3{constructor(){this.id=0,this.object=null,this.z=0,this.renderOrder=0}}class im{constructor(){this.id=0,this.v1=new B_,this.v2=new B_,this.v3=new B_,this.normalModel=new Ft,this.vertexNormalsModel=[new Ft,new Ft,new Ft],this.vertexNormalsLength=0,this.color=new Os,this.material=null,this.uvs=[new Ui,new Ui,new Ui],this.z=0,this.renderOrder=0}}class B_{constructor(){this.position=new Ft,this.positionWorld=new Ft,this.positionScreen=new il,this.visible=!0}copy(a){this.positionWorld.copy(a.positionWorld),this.positionScreen.copy(a.positionScreen)}}class _3{constructor(){this.id=0,this.v1=new B_,this.v2=new B_,this.vertexColors=[new Os,new Os],this.material=null,this.z=0,this.renderOrder=0}}class vP{constructor(){this.id=0,this.object=null,this.x=0,this.y=0,this.z=0,this.rotation=0,this.scale=new Ui,this.material=null,this.renderOrder=0}}class io{constructor(){let a,c,m,M,q,de,xe,Ie,Le,Ke,Qe,h=0,N=0,pe=0,Be=0,ft=0;const ze={objects:[],lights:[],elements:[]},Ct=new Ft,ct=new il,Dt=new rl(new Ft(-1,-1,-1),new Ft(1,1,1)),Jt=new rl,ln=new Array(3),rn=new bo,Rn=new bo,kt=new bo,Zt=new ef,li=[],Ti=[],ur=[],Yn=[],Di=[],Oi=new function rr(){const er=[],Or=[],yr=[];let vr=null;const _n=new zo;function si($t){const ni=$t.positionWorld,cr=$t.positionScreen;ni.copy($t.position).applyMatrix4(Qe),cr.copy(ni).applyMatrix4(Rn);const Ar=1/cr.w;cr.x*=Ar,cr.y*=Ar,cr.z*=Ar,$t.visible=cr.x>=-1&&cr.x<=1&&cr.y>=-1&&cr.y<=1&&cr.z>=-1&&cr.z<=1}function fr($t,Pt,ni){return!0===$t.visible||!0===Pt.visible||!0===ni.visible||(ln[0]=$t.positionScreen,ln[1]=Pt.positionScreen,ln[2]=ni.positionScreen,Dt.intersectsBox(Jt.setFromPoints(ln)))}function us($t,Pt,ni){return(ni.positionScreen.x-$t.positionScreen.x)*(Pt.positionScreen.y-$t.positionScreen.y)-(ni.positionScreen.y-$t.positionScreen.y)*(Pt.positionScreen.x-$t.positionScreen.x)<0}return{setObject:function Ki($t){vr=$t,_n.getNormalMatrix(vr.matrixWorld),er.length=0,Or.length=0,yr.length=0},projectVertex:si,checkTriangleVisibility:fr,checkBackfaceCulling:us,pushVertex:function Ri($t,Pt,ni){m=function sr(){if(M===N){const er=new B_;return Ti.push(er),N++,M++,er}return Ti[M++]}(),m.position.set($t,Pt,ni),si(m)},pushNormal:function Ii($t,Pt,ni){er.push($t,Pt,ni)},pushColor:function Jr($t,Pt,ni){Or.push($t,Pt,ni)},pushUv:function Nr($t,Pt){yr.push($t,Pt)},pushLine:function co($t,Pt){const ni=Ti[$t],cr=Ti[Pt];ni.positionScreen.copy(ni.position).applyMatrix4(kt),cr.positionScreen.copy(cr.position).applyMatrix4(kt),!0===function eo(er,Or){let yr=0,vr=1;const _n=er.z+er.w,Ki=Or.z+Or.w,si=-er.z+er.w,Ri=-Or.z+Or.w;return _n>=0&&Ki>=0&&si>=0&&Ri>=0||!(_n<0&&Ki<0||si<0&&Ri<0)&&(_n<0?yr=Math.max(yr,_n/(_n-Ki)):Ki<0&&(vr=Math.min(vr,_n/(_n-Ki))),si<0?yr=Math.max(yr,si/(si-Ri)):Ri<0&&(vr=Math.min(vr,si/(si-Ri))),!(vr=-1&&er.z<=1&&(Le=function Ds(){if(Ke===ft){const er=new vP;return Di.push(er),ft++,Ke++,er}return Di[Ke++]}(),Le.id=Or.id,Le.x=er.x*vr,Le.y=er.y*vr,Le.z=er.z,Le.renderOrder=Or.renderOrder,Le.object=Or,Le.rotation=Or.rotation,Le.scale.x=Or.scale.x*Math.abs(Le.x-(er.x+yr.projectionMatrix.elements[0])/(er.w+yr.projectionMatrix.elements[12])),Le.scale.y=Or.scale.y*Math.abs(Le.y-(er.y+yr.projectionMatrix.elements[5])/(er.w+yr.projectionMatrix.elements[13])),Le.material=Or.material,ze.elements.push(Le))}function fs(er,Or){return er.renderOrder!==Or.renderOrder?er.renderOrder-Or.renderOrder:er.z!==Or.z?Or.z-er.z:er.id!==Or.id?er.id-Or.id:0}this.projectScene=function(er,Or,yr,vr){de=0,Ie=0,Ke=0,ze.elements.length=0,!0===er.matrixWorldAutoUpdate&&er.updateMatrixWorld(),null===Or.parent&&!0===Or.matrixWorldAutoUpdate&&Or.updateMatrixWorld(),rn.copy(Or.matrixWorldInverse),Rn.multiplyMatrices(Or.projectionMatrix,rn),Zt.setFromProjectionMatrix(Rn),c=0,ze.objects.length=0,ze.lights.length=0,br(er),!0===yr&&ze.objects.sort(fs);const _n=ze.objects;for(let Ki=0,si=_n.length;Ki0)for(let $t=0;$t0)for(let _s=0;_s0;)br.removeChild(br.childNodes[0])}function lr(yr){return null!==Le?yr.toFixed(Le):yr}function as(yr,vr,_n){let Ki=vr.scale.x*N,si=vr.scale.y*q;_n.isPointsMaterial&&(Ki*=_n.size,si*=_n.size);const Ri="M"+lr(yr.x-.5*Ki)+","+lr(yr.y-.5*si)+"h"+lr(Ki)+"v"+lr(si)+"h"+lr(-Ki)+"z";let Ii="";(_n.isSpriteMaterial||_n.isPointsMaterial)&&(Ii="fill:"+_n.color.getStyle(ze.outputColorSpace)+";fill-opacity:"+_n.opacity),eo(Ii,Ri)}function xs(yr,vr,_n){const Ki="M"+lr(yr.positionScreen.x)+","+lr(yr.positionScreen.y)+"L"+lr(vr.positionScreen.x)+","+lr(vr.positionScreen.y);if(_n.isLineBasicMaterial){let si="fill:none;stroke:"+_n.color.getStyle(ze.outputColorSpace)+";stroke-opacity:"+_n.opacity+";stroke-width:"+_n.linewidth+";stroke-linecap:"+_n.linecap;_n.isLineDashedMaterial&&(si=si+";stroke-dasharray:"+_n.dashSize+","+_n.gapSize),eo(si,Ki)}}function Ds(yr,vr,_n,Ki,si){ze.info.render.vertices+=3,ze.info.render.faces++;const Ri="M"+lr(yr.positionScreen.x)+","+lr(yr.positionScreen.y)+"L"+lr(vr.positionScreen.x)+","+lr(vr.positionScreen.y)+"L"+lr(_n.positionScreen.x)+","+lr(_n.positionScreen.y)+"z";let Ii="";si.isMeshBasicMaterial?(Dt.copy(si.color),si.vertexColors&&Dt.multiply(Ki.color)):si.isMeshLambertMaterial||si.isMeshPhongMaterial||si.isMeshStandardMaterial?(Jt.copy(si.color),si.vertexColors&&Jt.multiply(Ki.color),Dt.copy(ln),li.copy(yr.positionWorld).add(vr.positionWorld).add(_n.positionWorld).divideScalar(3),function sr(yr,vr,_n,Ki){for(let si=0,Ri=yr.length;si1||pe.positionScreen.z<-1||pe.positionScreen.z>1||xe.positionScreen.z<-1||xe.positionScreen.z>1)continue;de.positionScreen.x*=N,de.positionScreen.y*=-q,pe.positionScreen.x*=N,pe.positionScreen.y*=-q,xe.positionScreen.x*=N,xe.positionScreen.y*=-q,this.overdraw>0&&(fs(de.positionScreen,pe.positionScreen,this.overdraw),fs(pe.positionScreen,xe.positionScreen,this.overdraw),fs(xe.positionScreen,de.positionScreen,this.overdraw)),ct.setFromPoints([de.positionScreen,pe.positionScreen,xe.positionScreen]),!0===Ct.intersectsBox(ct)&&Ds(de,pe,xe,Ri,Ii)}}er(),yr.traverseVisible(function(Ki){if(Ki.isSVGObject){if(Zt.setFromMatrixPosition(Ki.matrixWorld),Zt.applyMatrix4(Di),Zt.z<-1||Zt.z>1)return;const Ii=Ki.node;Ii.setAttribute("transform","translate("+Zt.x*N+","+-Zt.y*q+")"),br.appendChild(Ii)}})}}}let NM=hP;typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("register",{detail:{revision:x}})),typeof window<"u"&&(window.__THREE__?console.warn("WARNING: Multiple instances of Three.js being imported."):window.__THREE__=x)},1949:(Yr,mt,Se)=>{"use strict";Se.r(mt),Se.d(mt,{TDrawSelector:()=>E,TDrawVariable:()=>g,TSelector:()=>Y,clTBranchFunc:()=>J,kClonesNode:()=>Ze,kSTLNode:()=>Re,treeDraw:()=>k,treeHierarchy:()=>he,treeIOTest:()=>ee,treeProcess:()=>I});var Te=Se(4882),x=Se(8872),L=Se(4369),ve=Se(6983);const ke=0,ot=1,Ye=2,Ze=3,Re=4,He=31,Ve=41,De=(0,x.BIT)(22),F="TBranchElement",J="TBranchFunc";class Y{constructor(){this._branches=[],this._names=[],this._directs=[],this._break=0,this.tgtobj={}}addBranch(b,P,T){return P||(P=(0,x.isStr)(b)?b:`br${this._branches.length}`),this._branches.push(b),this._names.push(P),this._directs.push(T),this._branches.length-1}numBranches(){return this._branches.length}getBranch(b){return this._branches[b]}indexOfBranch(b){return this._branches.indexOf(b)}nameOfBranch(b){return this._names[b]}ShowProgress(){}Abort(){this._break=-1111}Begin(){}Process(){}Terminate(){}}function ue(V,b){if(!(0,x.isObject)(V))return 0;const P=(0,x.isArrayProto)(Object.prototype.toString.apply(V));if(!b||1!==P)return P;let T,z=!0;for(let W=0;W=0){if(++this.fastindx=0&&!(void 0===this.select[T]&&++this.indx[T]0?"array":"any"),"$self$"===this.select[T+1])return this.value=b,this.fastindx=this.fastlimit=0,this.cnt=T+1,!0;if("any"===P&&(0,x.isStr)(this.select[T+1]))this.arr[++T]=b,this.indx[T]=this.select[T];else{if("array"!==P||!(b.length>0||"$size$"===this.select[T+1]))return!(T<0||(this.value=b,void 0===this.select[T]?(this.fastarr=this.arr[T],this.fastindx=this.indx[T],this.fastlimit=this.fastarr.length):this.fastindx=this.fastlimit=0,this.cnt=T,0));switch(this.arr[++T]=b,this.select[T]){case void 0:this.indx[T]=0;break;case"$last$":this.indx[T]=b.length-1;break;case"$size$":return this.value=b.length,this.fastindx=this.fastlimit=0,this.cnt=T,!0;default:Number.isInteger(this.select[T])?(this.indx[T]=this.select[T],this.indx[T]<0&&(this.indx[T]=b.length-1)):(this.select[T].produce(this.tgtobj),this.indx[T]=Math.round(this.select[T].get(0)))}}}}reset(){this.arr=[],this.indx=[],delete this.fastarr,this.cnt=-1,this.value=0}}function me(V,b,P=!1,T=!1){if(!V||V._typename!==F)return"";if(V.fType===ke&&-2===V.fID&&-1===V.fStreamerType)return V.fClassName;if(P&&V.fClonesName&&(V.fType===Ze||V.fType===Re))return V.fClonesName;const z=_(V,b.$file);if(V.fType===ot&&z&&"BASE"===z.fTypeName)return z.fName;if(V.fType===Ye)return!z||z.fType!==L.Ph&&z.fType!==L.w1?x.clTObject:z.fTypeName;if(V.fType===ke&&z&&T){if(z.fType===L.Ph||z.fType===L.w1)return z.fTypeName;if(z.fType===L.FF)return z.fTypeName.slice(0,z.fTypeName.length-1)}return""}function B(V,b,P=void 0,T=!1){let z=!1,W=b,fe=null;if(!P){z=!0,P=V.fBranches;const we=W.indexOf("[");we>0&&(W=W.slice(0,we))}if(!P||0===P.arr.length)return null;for(let we=0;we0){const Ge=Me.indexOf("<"),lt=Me.lastIndexOf(">");Me=Me.slice(0,Ge)+Me.slice(lt+1)}if(Me===W){fe={branch:P.arr[we],rest:""};break}if(0!==W.indexOf(Me))continue;let je=Me.length;if("."===Me[je-1]&&je--,"."===W[je]){fe=B(V,W,P.arr[we].fBranches),fe||(fe=B(V,W.slice(je+1),P.arr[we].fBranches)),fe||(fe={branch:P.arr[we],rest:W.slice(je)});break}}if(z&&!T&&!fe&&0===W.indexOf("br_")){let we=3;for(;we="0"&&W[we]<="9";)++we;const Me=we>3?function X(V,b){if(!Number.isInteger(b))return;let P,T=0;return function z(W){W?.fBranches?.arr.forEach(fe=>{T++===b&&(P=fe),P||z(fe)})}(V),P}(V,parseInt(W.slice(3,we))):null;Me&&(fe={branch:Me,rest:W.slice(we)})}return!z||!fe||b.length>W.length&&(fe.rest+=b.slice(W.length)),fe}function $(V,b){const P=B(V,b,V.fBranches,!0);return!P||P.rest?null:P.branch}class g{constructor(b){this.globals=b,this.code="",this.brindex=[],this.branches=[],this.brarray=[],this.func=null,this.kind=void 0,this.buf=[]}parse(b,P,T,z,W){const fe=lt=>lt>="A"&<<="Z"||lt>="a"&<<="z"||"_"===lt,we=lt=>!!(fe(lt)||lt>="0"&<<="9");T||(T=""),this.code=(z?.fName??"")+T;let Me=0,je=0,Ge=null;for(;Me=T.length-1&&"."===T[T.length-1]&&(lt.push("$self$"),je=T.length)}for(;je0);)"["===T[je]?tt++:"]"===T[je]&&tt--,je++;const Fe=T.slice(Je+1,je);switch(Fe){case"":case"$all$":lt.push(void 0);break;case"$last$":lt.push("$last$");break;case"$size$":lt.push("$size$");break;case"$first$":lt.push(0);break;default:if(Number.isInteger(parseInt(Fe)))lt.push(parseInt(Fe));else{const Ne=new g(this.globals);if(!Ne.parse(b,P,Fe))return!1;lt.push(Ne)}}je++}0===lt.length?lt=void 0:1===lt.length&&void 0===lt[0]&&(lt=!0);let bt=P.indexOfBranch(Ge);if(bt<0&&(bt=P.addBranch(Ge,void 0,W)),W=void 0,this.brindex.push(bt),this.branches.push(P.nameOfBranch(bt)),this.brarray.push(lt),0===Me&&je===T.length&&1===this.branches.length)return this.direct_branch=!0,!0;const te="arg.var"+(this.branches.length-1);T=T.slice(0,Me)+te+T.slice(je),Me+=te.length}return T=T.replace(/TMath::Exp\(/g,"Math.exp(").replace(/TMath::Abs\(/g,"Math.abs(").replace(/TMath::Prob\(/g,"arg.$math.Prob(").replace(/TMath::Gaus\(/g,"arg.$math.Gaus("),this.func=new Function("arg",`return (${T})`),!0}is_dummy(){return 0===this.branches.length&&!this.func}produce(b){if(this.length=1,this.isarray=!1,this.is_dummy())return this.value=1,void(this.kind="number");const P={$globals:this.globals,$math:ve},T=[];let z=-1;for(let W=0;W0||(0,x.isRootCollection)(P[fe])),!1!==this.brarray[W]){if(!0===this.brarray[W]&&2===ue(P[fe],!0))T[W]=P[fe];else{const we=new Q(P[fe],this.brarray[W],b);for(T[W]=[];we.next();)T[W].push(we.value)}(z<0||z=0;){let fe,W=T.slice(z+1);z=(T=T.slice(0,z)).lastIndexOf(";");const we=W.indexOf(":");we>0&&(fe=W.slice(we+1),W=W.slice(0,we));let Me=parseInt(fe);switch((!fe||!Number.isInteger(Me))&&(Me=void 0),W){case"num":case"entries":case"numentries":"all"===fe?P.numentries=b.fEntries:"half"===fe?P.numentries=Math.round(b.fEntries/2):void 0!==Me&&(P.numentries=Me);break;case"first":void 0!==Me&&(P.firstentry=Me);break;case"mon":case"monitor":P.monitoring=void 0!==Me?Me:5e3;break;case"player":P.player=!0;break;case"dump":P.dump=!0;break;case"maxseg":case"maxrange":Me&&(b.$file.fMaxRanges=Me);break;case"accum":Me&&(this.arr_limit=Me);break;case"htype":fe&&1===fe.length&&(this.htype=fe.toUpperCase(),["C","S","I","F","L","D"].indexOf(this.htype)<0&&(this.htype="F"));break;case"hbins":this.hist_nbins=parseInt(fe),!Number.isInteger(this.hist_nbins)||this.hist_nbins<=3?delete this.hist_nbins:this.want_hist=!0;break;case"drawopt":P.drawopt=fe;break;case"graph":P.graph=Me||!0}}if(z=T.lastIndexOf(">>"),z>=0){let W=T.slice(z+2).trim();if(T=T.slice(0,z).trim(),z=W.indexOf("("),z>0&&(this.hist_name=W.slice(0,z),W=W.slice(z)),"dump"===W)P.dump=!0;else if(0===W.indexOf("Graph"))P.graph=!0;else if(z<0)this.want_hist=!0,this.hist_name=W;else if("("===W[0]&&")"===W[W.length-1]){this.want_hist=!0,W=W.slice(1,W.length-1).split(",");let fe=!0;for(let we=0;we0&&(z=T.slice(W+2).trim(),T=T.slice(0,W).trim())),P.parse_expr=T,P.parse_cut=z;const fe=[];let we=0,Me=0,je=0;for(W=0;Wje&&fe.push(T.slice(je,W)),je=W+1}if(!we&&!Me&&W>je&&fe.push(T.slice(je,W)),fe.length<1||fe.length>3)return!1;this.ndim=fe.length;let Ge=!z;for(let lt=0;lt1||z.branch.fBranches&&z.branch.fBranches.arr.length>0)&&!z.leaf,this.addBranch(P,"br0",z.direct_branch),this.Process=this.ProcessDump,!0):(this.vars[0]=new g(this.globals),!!this.vars[0].parse(b,this,T,P,z.direct_branch)&&(this.hist_title=`drawing branch ${P.fName} ${T?" expr:"+T:""} from ${b.fName}`,this.cut=new g(this.globals),this.vars[0].direct_branch&&(this.ProcessArrays=this.ProcessArraysFunc),!0))}Begin(b){this.globals.entries=b.fEntries,this.monitoring&&(this.lasttm=(new Date).getTime())}ShowProgress(){}getBitsBins(b,P){P.nbins=P.max=b,P.fLabels=(0,x.create)(x.clTHashList);for(let T=0;T=this.ndim)return T;const z=this.vars[b].buf;if(T.title=this.vars[b].code||"","object"===this.vars[b].kind){let W,fe=!0,we=8;for(let Me=0;Me"),T.fLabels.Add(fe)}}else{if(0===b&&"bits"===this.hist_name&&this.hist_args.length<=1)return this.fill1DHistogram=this.FillBitsHistogram,this.getBitsBins(this.hist_args[0]||32,T);if(3*b+2=T.max?(T.max=T.min,Math.abs(T.min)<100?(T.min-=1,T.max+=1):T.min>0?(T.min*=.9,T.max*=1.1):(T.min*=1.1,T.max*=.9)):T.max+=(T.max-T.min)/T.nbins}}return T.k=T.nbins/(T.max-T.min),T.GetBin=function(W){const fe=this.lbls?.indexOf(W)??Number.isFinite(W)?Math.floor((W-this.min)*this.k):this.nbins+1;return fe<0?0:fe>this.nbins?this.nbins+1:fe+1},T}createHistogram(b,P=!1){b||(b=20);const T=this.getMinMaxBins(0,b),z=this.getMinMaxBins(1,b),W=this.getMinMaxBins(2,b);let fe=null;switch(this.ndim){case 1:fe=(0,x.createHistogram)(x.clTH1+this.htype,T.nbins);break;case 2:fe=(0,x.createHistogram)(x.clTH2+this.htype,T.nbins,z.nbins);break;case 3:fe=(0,x.createHistogram)(x.clTH3+this.htype,T.nbins,z.nbins,W.nbins)}return fe.fXaxis.fTitle=T.title,fe.fXaxis.fXmin=T.min,fe.fXaxis.fXmax=T.max,fe.fXaxis.fLabels=T.fLabels,this.ndim>1&&(fe.fYaxis.fTitle=z.title),fe.fYaxis.fXmin=z.min,fe.fYaxis.fXmax=z.max,fe.fYaxis.fLabels=z.fLabels,this.ndim>2&&(fe.fZaxis.fTitle=W.title),fe.fZaxis.fXmin=W.min,fe.fZaxis.fXmax=W.max,fe.fZaxis.fLabels=W.fLabels,fe.fName=this.hist_name,fe.fTitle=this.hist_title,fe.fOption=this.histo_drawopt,fe.$custom_stat="$htemp"===this.hist_name?111110:111111,P?(this.hist=fe,this.x=T,this.y=z,this.z=W):fe.fBits=fe.fBits|x.kNoStats,fe}createOutputObject(){if(this.hist||!this.vars[0].buf)return;if(this.dump_values)this.hist=[],this.fill1DHistogram=this.fill2DHistogram=this.fill3DHistogram=this.dumpValues;else if(this.graph){const z=this.vars[0].buf.length;let W=null;if(1===this.ndim)W=(0,x.createTGraph)(z,Array.from(Array(z).keys()),this.vars[0].buf),W.fName="Graph",W.fTitle=this.hist_title;else if(2===this.ndim)W=(0,x.createTGraph)(z,this.vars[0].buf,this.vars[1].buf),W.fName="Graph",W.fTitle=this.hist_title,delete this.vars[1].buf;else if(3===this.ndim){W=(0,x.create)(x.clTPolyMarker3D),W.fN=z,W.fLastPoint=z-1;const fe=new Array(3*z);for(let we=0;we=256&&(W=1,++fe)}FillBitsHistogram(b,P){if(P)for(let T=0,z=1;T=this.arr_limit&&!this.graph)b.buf=this.tgtarr.br0,P&&(P.buf=this.tgtarr.br1),T&&(T.buf=this.tgtarr.br2);else for(let W=0;W=this.arr_limit&&(this.createOutputObject(),this.arr_limit=0)}else{const b=this.tgtarr.br0,P=b.length;switch(this.ndim){case 1:for(let T=0;T=this.arr_limit&&(this.createOutputObject(),this.arr_limit=0)}else if(this.hist)switch(this.ndim){case 1:for(let fe=0;fethis.monitoring&&(this.lasttm=fe,(0,x.isFunc)(this.progress_callback)&&this.progress_callback(this.hist))}}Terminate(b){b&&!this.hist&&this.createOutputObject(),this.ShowProgress(),(0,x.isFunc)(this.result_callback)&&this.result_callback(this.hist)}}function _(V,b){if(!V||!b||V._typename!==F||V.fID<0||V.fStreamerType<0)return null;const P=b.findStreamerInfo(V.fClassName,V.fClassVersion,V.fCheckSum),T=P&&P.fElements?P.fElements.arr:null;if(!T)return null;let z=V.fName,W=z.indexOf("[");function fe(we){return!(!we||we.fName!==z||we.fType!==V.fStreamerType&&(we.fType!==L.Qu||V.fStreamerType!==L.h0)&&(V.fStreamerType!==L.$o&&V.fStreamerType!==L.$o+L.bm&&V.fStreamerType!==L.v5&&V.fStreamerType!==L.v5+L.bm||we.fType!==L.N8)&&(console.warn(`Should match element ${we.fType} with branch ${V.fStreamerType}`),1))}if(W>0&&(z=z.slice(0,W)),W=z.lastIndexOf("."),W>0&&(z=z.slice(W+1)),fe(T[V.fID]))return T[V.fID];for(let we=0;we{let tt=0;switch(te._typename){case"TLeafF":tt=L.k1;break;case"TLeafD":tt=L.Hg;break;case"TLeafO":tt=L.Qu;break;case"TLeafB":tt=te.fIsUnsigned?L.h0:L.yd;break;case"TLeafS":tt=te.fIsUnsigned?L.bP:L.aM;break;case"TLeafI":tt=te.fIsUnsigned?L.c4:L.nc;break;case"TLeafL":tt=te.fIsUnsigned?L.NE:L.s4;break;case"TLeafC":tt=L.V$;break;default:return null}const Fe=(0,L._T)(Je||te.fName,tt);return te.fLen>1&&(Fe.fType+=L.bm,Fe.fArrayLength=te.fLen),Fe},W=te=>{for(let Je=0;Jethis.branch.fMaxBaskets)return 0;const Dn=bn0?this.branch.fBaskets.arr[bn-1]:null;return $n?this.branch.fBasketEntry[bn-1]+$n.fNevBuf:0},getTarget(bn){if(!this.tgt)return bn;for(let Dn=0;Dn0?te.fLeaves.arr[0]:null,pt=te._typename===F;let st=null,vt=null,Yt=0,qt=null,Ot=null,Bn="";if(te.fBranchCount){if(qt=W(te.fBranchCount),qt||(qt=we(te.fBranchCount,Je,"$counter"+fe++,!0)),!qt)return console.error(`Cannot add counter branch ${te.fBranchCount.fName}`),null;let bn=te.fBranchCount2;if(!bn&&te.fBranchCount.fStreamerType===L.$o&&(te.fStreamerType===L.mU||te.fStreamerType===L.bm+L.mU)){const Dn=_(te,T.file),$n=te.fBranchCount.fBranches.arr;if(Dn?.fCountName&&$n)for(let Cn=0;Cn<$n.length;++Cn)if($n[Cn].fName===te.fBranchCount.fName+"."+Dn.fCountName){bn=$n[Cn];break}bn||console.error("Did not found branch for second counter of kStreamLoop element")}if(bn&&(Ot=W(bn),Ot||(Ot=we(bn,Je,"$counter"+fe++,!0)),!Ot))return console.error(`Cannot add counter branch2 ${bn.fName}`),null}else if(1===rt&&St&&St.fLeafCount){const bn=$(T.tree,St.fLeafCount.fName);if(bn&&(qt=W(bn),qt||(qt=we(bn,Je,"$counter"+fe++,!0)),!qt))return console.error(`Cannot add counter branch ${bn.fName}`),null}function Mn(bn,Dn,$n){if(!bn||!bn.arr.length)return!0;let Cn=te.fName;"."===Cn[Cn.length-1]&&(Cn=Cn.slice(0,Cn.length-1)),(0,x.isStr)(Fe)&&"."===Fe[0]&&(Cn+=Fe),Cn+=".";for(let yn=0;yn0&&Sn.fType!==$n)continue;if(Sn.fType===ot){if(!Mn(Sn.fBranches,Dn,$n))return!1;continue}if("BASE"===_(Sn,T.file)?.fTypeName){if(Sn.fTotBytes&&!we(Sn,Je,tt,Fe)||!Mn(Sn.fBranches,Dn,$n))return!1;continue}let ai=Sn.fName,zi=1;if(0===Sn.fName.indexOf(Cn))ai=ai.slice(Cn.length);else if($n>0)continue;let ti=ai.indexOf("[");if(ti>0&&(ai=ai.slice(0,ti)),ti=ai.indexOf("<"),ti>0&&(ai=ai.slice(0,ti)),$n>0){zi="$child$";const Lr=ai.indexOf(".");Lr>0&&(zi=C(bn,te.fName+"."+ai.slice(0,Lr+1),yn)||x.clTObject)}if(!we(Sn,Dn,ai,zi))return!1}return!0}if("TBranchObject"===te._typename)vt={name:tt,typename:te.fClassName,virtual:St.fVirtual,func(bn,Dn){let $n=this.typename;this.virtual&&($n=bn.readFastString(bn.ntou1()+1)),Dn[this.name]=bn.classStreamer({},$n)}};else if(te.fType===Ze||te.fType===Re){if(st=(0,L._T)(tt,L.nc),!Fe||(0,x.isStr)(Fe)&&"."===Fe[0]||1===Fe){if(T.process_arrays=!1,vt={name:tt,conttype:te.fClonesName||x.clTObject,reallocate:P.reallocate_objects,func(bn,Dn){const $n=bn.ntoi4();let Cn=0,yn=Dn[this.name];for(!yn||this.reallocate?yn=Dn[this.name]=new Array($n):(Cn=yn.length,yn.length=$n);Cn<$n;)yn[Cn++]=this.methods.Create()}},(0,x.isStr)(Fe)&&"."===Fe[0]&&(vt.conttype=C(te.fBranches,te.fName+Fe),!vt.conttype))return console.error(`Cannot select object ${Fe} in the branch ${te.fName}`),null;vt.methods=p(vt.conttype),Yt=te.fType===Ze?He:Ve}}else{if(Bn=me(te,T.tree)){if(!0===Fe)return console.warn(`Object branch ${Bn} can not have data to be read directly`),null;T.process_arrays=!1;const bn=new Array(Je?Je.length+1:1);for(let Dn=0;Dn1){const bn=new Array(rt);let Dn=!0;for(let $n=0;$nDn[$n];else{if("$child$"===Fe)return console.error(`target name ${tt} contains point, but suppose to be direct child`),null;if(2===bn.length)tt=vt.name=bn[1],vt.name1=bn[0],vt.subtype1=Fe,vt.methods1=p(vt.subtype1),vt.get=function(Dn,$n){let Cn=Dn[$n][this.name1];return Cn||(Cn=Dn[$n][this.name1]=this.methods1.Create()),Cn};else{if(!te.fParentName)return console.error(`Not possible to provide more than 2 parts in the target name ${tt}`),null;tt=vt.name=bn.pop(),vt.snames=bn,vt.smethods=[];let Dn=te.fParentName;for(let $n=0;$n0&&st.fTypeL.Pk&&st.fTypeL.Pk&&st.fType=T.lastentry)return b.Terminate(!1),Promise.reject(Error("No any common events for selected branches"));if(T.process_min=T.firstentry,T.process_max=T.lastentry,Number.isInteger(P.firstentry)&&P.firstentry>T.firstentry&&P.firstentry0){const te=T.process_min+P.numentries;te=L.bm||Je.type===L.k)&&(T.process_arrays=!1)}if(T.process_arrays){b.tgtarr={};for(let te=0;te0?{places:rt,filename:St}:null}function tt(rt){if(T.staged_prev===T.staged_now||T.process_max<=T.process_min)return;const St=(new Date).getTime();return St-T.progress_showtm<500?void 0:(T.progress_showtm=St,T.selector.ShowProgress((T.staged_prev+rt*(T.staged_now-T.staged_prev))/(T.process_max-T.process_min)))}function Fe(rt,St){return!rt||St.length>2&&2*rt.length!==St.length?Promise.resolve(null):(2===St.length&&(rt=[rt]),function pt(st){for(;st{if(!Bn)throw new Error("FAIL TO UNPACK");return qt=new L.lW(Bn,0,T.file),qt.raw_shift=Ot.fKeylen,qt.fTagOffset=Ot.fKeylen,te[st].raw=qt,te[st].branch.fEntryOffsetLen>0&&qt.readBasketEntryOffset(Ot,qt.raw_shift),pt(st+1)});qt.raw_shift=0,te[st].raw=qt,te[st].branch.fEntryOffsetLen>0&&qt.readBasketEntryOffset(Ot,qt.raw_shift)}const vt=Je();return vt?T.file.readBuffer(vt.places,vt.filename,tt).then(Yt=>Fe(Yt)).catch(()=>null):Promise.resolve(te)}(0))}const Ne=Je();return Ne?T.file.readBuffer(Ne.places,Ne.filename,tt).then(rt=>Fe(rt,Ne.places)).catch(()=>null):Promise.resolve(null)}function lt(){const te=[];let Je=0,tt=!0,Fe=!1,Ne=T.process_max;for(;Je<1e6&&tt;){tt=!1;for(let St=T.arr.length-1;St>=0;--St){const pt=T.arr[St];for(;pt.staged_basket=T.process_max)break;if(pt.first_readentry<0){if(pt.getBasketEntry(st+1)<=T.process_min)continue;pt.curr_basket=st,pt.first_readentry=pt.getBasketEntry(st)}const vt={id:St,branch:pt.branch,basket:st,raw:null},Yt=pt.branch.fBaskets.arr[st];Yt?(vt.raw=Yt.fBufferRef,vt.raw?vt.raw.locate(0):vt.raw=new L.lW(null,0,T.file),vt.raw.raw_shift=Yt.fKeylen,Yt.fBufferRef&&pt.branch.fEntryOffsetLen>0&&vt.raw.readBasketEntryOffset(Yt,vt.raw.raw_shift),vt.bskt_obj=Yt,Fe=!0,pt.baskets[st]=vt):(te.push(vt),Je+=pt.branch.fBasketBytes[st],tt=!0),pt.staged_entry=pt.getBasketEntry(st+1),Ne=Math.min(Ne,pt.staged_entry);break}}}if(0===Je&&!Fe)return T.selector.Terminate(!0),Me(T.selector);T.staged_prev=T.staged_now,T.staged_now=Ne;let rt=0;if(T.process_max>T.process_min&&(rt=(T.staged_prev-T.process_min)/(T.process_max-T.process_min)),"break"===T.selector.ShowProgress(rt))return T.selector.Terminate(!0),Me(T.selector);if(T.progress_showtm=(new Date).getTime(),Je>0)return Ge(te).then(bt);if(Fe)return bt([]);throw new Error("No any data is requested - never come here")}function bt(te){if(0!==T.selector._break||null===te)return T.selector.Terminate(!1),Me(T.selector);for(let tt=0;tt=Ne.numbaskets){if(0===Fe)return T.selector.Terminate(!0),Me(T.selector);continue}const rt=Ne.baskets[Ne.curr_basket];if(!rt)return Je?lt():(T.selector.Terminate(!1),je(Error(`no data for ${Ne.branch.fName} basket ${Ne.curr_basket}`)));Ne.raw=rt.raw,Ne.basket=rt.bskt_obj,Ne.first_entry=Ne.getBasketEntry(rt.basket),rt.raw=null,rt.branch=null,rt.bskt_obj=null,Ne.baskets[Ne.curr_basket++]=void 0}tt=Math.min(tt,Ne.first_entry+Ne.basket.fNevBuf-T.current_entry)}if(T.current_entry+tt>T.process_max&&(tt=T.process_max-T.current_entry),T.process_arrays&&tt>1){for(Fe=0;Fe=T.process_max)return T.selector.Terminate(!0),Me(T.selector)}}return new Promise((te,Je)=>{Me=te,je=Je,T.selector.Begin(V),lt()})})).apply(this,arguments)}function k(V,b){return Z.apply(this,arguments)}function Z(){return(Z=(0,Te.A)(function*(V,b){(0,x.isStr)(b)&&(b={expr:b}),(0,x.isStr)(b.expr)||(b.expr="");const P=new E;if(b.branch){if(!P.drawOnlyBranch(V,b.branch,b.expr,b))return Promise.reject(Error(`Fail to create draw expression ${b.expr} for branch ${b.branch.fName}`))}else if(!P.parseDrawExpression(V,b))return Promise.reject(Error(`Fail to create draw expression ${b.expr}`));return P.setCallback(null,b.progress),I(V,P,b).then(()=>P.hist)})).apply(this,arguments)}function ee(V,b){const P=[],T=[],z=[],fe=function W(je,Ge=""){if(!je?.fBranches)return 0;let lt=0;for(let bt=0;bt=P.length||we?._break||b._break)return Promise.resolve(!0);we=new Y,we.addBranch(P[je],"br0"),we.Process=function(){void 0===this.tgtobj.br0&&(this.fail=!0)},we.Terminate=function(Ne){(0,x.isStr)(Ne)||(Ne=!Ne||this.fails?"FAIL":"ok"),T[je]=Ne+" "+T[je]};const Ge=P[je],lt=me(Ge,V),bt=Ge.fEntries;if((lt?z[je]>100:!Ge.fLeaves?.arr?.length)||bt<=0)return Me(je+1);const Je={numentries:10},tt=Ge.fFirstEntry||0,Fe=Ge.fEntryNumber||tt+bt;return btMe(je+1))}(0).then(()=>((0,x.isFunc)(b.showProgress)&&b.showProgress(),T))}function he(V,b){function P(T,z,W,fe){if(!T||!z)return!1;const we=z.fBranches?.arr?.length??0,Me=z.fLeaves?.arr?.length??0;function je(lt){const bt=lt.indexOf("[");return bt>0&&(lt=lt.slice(0,bt)),fe&&0===lt.indexOf(fe.fName)&&"."===(lt=lt.slice(fe.fName.length))[0]&&(lt=lt.slice(1)),lt}z.$tree=W;const Ge={_name:je(z.fName),_kind:x.prROOT+z._typename,_title:z.fTitle,_obj:z};if(T._childs||(T._childs=[]),T._childs.push(Ge),z._typename===F&&(Ge._title+=` from ${z.fClassName};${z.fClassVersion}`),we>0)return Ge._more=!0,Ge._expand=function(lt,bt){if(!bt)return!1;lt._childs||(lt._childs=[]),1===bt.fLeaves?.arr?.length&&(bt.fType===Ze||bt.fType===Re)&&(bt.fLeaves.arr[0].$branch=bt,lt._childs.push({_name:"@size",_title:"container size",_kind:x.prROOT+"TLeafElement",_icon:"img_leaf",_obj:bt.fLeaves.arr[0],_more:!1}));for(let tt=0;tt0)for(const tt in Je){if(!(0,x.isFunc)(Je[tt]))continue;const Fe=Je[tt].toString();Fe.indexOf("return")>0&&0===Fe.indexOf("function ()")&<._childs.push({_name:tt+"()",_title:`function ${tt} of class ${te}`,_kind:x.prROOT+J,_obj:{_typename:J,branch:bt,func:tt},_more:!1})}return!0},!0;if(1===Me)Ge._icon="img_leaf",Ge._more=!1;else if(Me>1){Ge._childs=[];for(let lt=0;lt{Yr(Yr.s=1228)}]); +//# sourceMappingURL=main.07f314ac81a60b93.js.map \ No newline at end of file diff --git a/docs/main.3f372d509105d165.js.map b/docs/main.07f314ac81a60b93.js.map similarity index 65% rename from docs/main.3f372d509105d165.js.map rename to docs/main.07f314ac81a60b93.js.map index 404a66c6..d45e233b 100644 --- a/docs/main.3f372d509105d165.js.map +++ b/docs/main.07f314ac81a60b93.js.map @@ -1 +1 @@ -{"version":3,"file":"main.3f372d509105d165.js","mappings":"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,eAEzDjlP,YAAa,CAAC,IAAM,EAAG,IAAM,EAAG,EAAG,GAEnCywO,gBAAiBluT,KAAKkuT,gBAGtBqrC,iBAAkBgwF,GAIpBvpb,KAAKwuT,aAAa3lT,KAAKkxT,GAKvB/5T,KAAKwuT,aAAatY,iBAChB,2CACA,gBACA,UACA,KAEFl2S,KAAKwuT,aAAatY,iBAChB,4CACA,SACA,UACA,KAEFl2S,KAAKwuT,aAAatY,iBAChB,kCACA,OACA,UACA,KAEFl2S,KAAKwuT,aAAatY,iBAChB,4CACA,iBACA,UACA,KAIFl2S,KAAKwuT,aAAatY,iBAChB,wCACA,aACA,eACA,KAEFl2S,KAAKwuT,aAAatY,iBAChB,sCACA,UACA,eACA,KAEFl2S,KAAKwuT,aAAatY,iBAChB,sCACA,WACA,eACA,KAEFl2S,KAAKwuT,aAAatY,iBAChB,qCACA,UACA,eACA,KAIFl2S,KAAKwuT,aAAatY,iBAChB,yCACA,WACA,eACA,KAEFl2S,KAAKwuT,aAAatY,iBAChB,0CACA,cACA,eACA,KAIFl2S,KAAKwuT,aAAatY,iBAChB,kCACA,OACA,iBACA,KAEFl2S,KAAKwuT,aAAatY,iBAChB,mCACA,QACA,iBACA,KACA,GAEFl2S,KAAKwuT,aAAatY,iBAChB,qCACA,MACA,iBACA,KAEFl2S,KAAKwuT,aAAatY,iBAChB,oCACA,cACA,iBACA,KAEFl2S,KAAKwuT,aAAatY,iBAChB,qCACA,MACA,iBACA,KAEFl2S,KAAKwuT,aAAatY,iBAChB,oCACA,cACA,iBACA,KAIFl2S,KAAKwuT,aAAatY,iBAChB,yCACA,cACA,8BACA,KAEFl2S,KAAKwuT,aAAatY,iBAChB,uCACA,YACA,8BACA,KAEFl2S,KAAKwuT,aAAatY,iBAChB,yCACA,cACA,8BACA,KAEFl2S,KAAKwuT,aAAatY,iBAChB,+CACA,oBACA,6BACA,KAEFl2S,KAAKwuT,aAAatY,iBAChB,gDACA,qBACA,6BACA,KAEFl2S,KAAKwuT,aAAatY,iBAChB,+CACA,oBACA,6BACA,KAEFl2S,KAAKwuT,aAAatY,iBAChB,gDACA,iBAC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K,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAG7aC,GAAsB,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,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AAI,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,KAAK,KAAK,EAAE,KAAK,KAAK,KAAK,EAAE,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,KAAK,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,KAAK,KAAK,KAAK,EAAE,MAIjvBC,EAAe,CAAC,OAAO,KAAK,KAAK,OAAO,OAAO,OAAO,OAAO,OAAO,KAAK,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,KAAK,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,KAAK,KAAK,OAAO,KAAK,OAAO,OAAO,OAAO,KAAK,KAAK,KAAK,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,OAAO,KAAK,KAAK,OAAO,MAAM,OAAO,MAAM,OAAO,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,OAAO,OAAO,KAAK,OAAO,KAAK,KAAK,OAAO,MAAM,MAA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KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,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","names":["activeConsumer","epoch","SIGNAL","Symbol","setActiveConsumer","consumer","prev","producerUpdateValueVersion","node","consumerIsLive","dirty","lastCleanEpoch","producerMustRecompute","consumerPollProducersForChange","producerRecomputeValue","assertConsumerNode","i","producerNode","length","producer","seenVersion","producerLastReadVersion","version","producerRemoveLiveConsumerAtIndex","idx","assertProducerNode","liveConsumerNode","liveConsumerIndexOfThis","producerIndexOfThis","lastIdx","idxProducer","consumerIsAlwaysLive","throwInvalidWriteToSignalErrorFn","isFunction","value","createErrorClass","createImpl","ctorFunc","instance","Error","call","stack","prototype","Object","create","constructor","UnsubscriptionError","_super","errors","this","message","map","err","toString","join","name","arrRemove","arr","item","index","indexOf","splice","Subscription","initialTeardown","closed","_parentage","_finalizers","unsubscribe","Array","isArray","parent","remove","initialFinalizer","e","finalizer","execFinalizer","push","add","teardown","_a","_hasParent","_addParent","includes","_removeParent","EMPTY","empty","EMPTY_SUBSCRIPTION","isSubscription","config","onUnhandledError","onStoppedNotification","Promise","undefined","useDeprecatedSynchronousErrorHandling","useDeprecatedNextContext","timeoutProvider","setTimeout","handler","timeout","args","delegate","clearTimeout","handle","reportUnhandledError","noop","COMPLETE_NOTIFICATION","createNotification","kind","error","context","errorContext","cb","isRoot","errorThrown","Subscriber","destination","super","isStopped","EMPTY_OBSERVER","next","complete","SafeSubscriber","handleStoppedNotification","nextNotification","_next","errorNotification","_error","_complete","_bind","Function","bind","fn","thisArg","ConsumerObserver","partialObserver","handleUnhandledError","observerOrNext","captureError","notification","subscriber","defaultErrorHandler","observable","identity","x","pipeFromArray","fns","input","reduce","Observable","subscribe","_subscribe","lift","operator","source","isSubscriber","isObserver","_trySubscribe","sink","forEach","promiseCtor","getPromiseCtor","resolve","reject","Symbol_observable","pipe","operations","toPromise","ObjectUnsubscribedError","Subject","currentObservers","observers","hasError","thrownError","subject","AnonymousSubject","_throwIfClosed","from","observer","shift","observed","_checkFinalizedStatuses","_innerSubscribe","asObservable","_b","BehaviorSubject","_value","getValue","subscription","hasLift","operate","init","liftedSource","TypeError","createOperatorSubscriber","onNext","onComplete","onError","onFinalize","OperatorSubscriber","shouldUnsubscribe","project","XSS_SECURITY_URL","RuntimeError","code","formatRuntimeError","Math","abs","noSideEffects","PARAMETERS","makeParamDecorator","props","parentClass","metaCtor","makeMetadataCtor","values","propName","ParamDecoratorFactory","apply","annotationInstance","ParamDecorator","annotation","cls","unusedKey","parameters","hasOwnProperty","defineProperty","ngMetadataName","annotationCls","_global","globalThis","getClosureSafeProperty","objWithPropertyToExtract","key","fillProperties","target","stringify","token","overriddenName","res","newLineIndex","substring","concatStringsWithSpace","before","after","__forward_ref__","forwardRef","forwardRefFn","resolveForwardRef","type","isForwardRef","ɵɵdefineInjectable","opts","providedIn","factory","ɵɵdefineInjector","options","providers","imports","getInjectableDef","getOwnDefinition","NG_PROV_DEF","NG_INJECTABLE_DEF","field","getInjectorDef","NG_INJ_DEF","NG_INJECTOR_DEF","ɵprov","ɵinj","ngInjectableDef","ngInjectorDef","InjectionToken","_desc","__NG_ELEMENT_ID__","multi","isEnvironmentProviders","ɵproviders","NG_COMP_DEF","ɵcmp","NG_DIR_DEF","ɵdir","NG_PIPE_DEF","ɵpipe","NG_MOD_DEF","ɵmod","NG_FACTORY_DEF","ɵfac","NG_ELEMENT_ID","NG_ENV_ID","__NG_ENV_ID__","renderStringify","String","throwProviderNotFoundError","injectorName","errorMessage","InjectFlags","Default","Host","Self","SkipSelf","Optional","_injectImplementation","getInjectImplementation","setInjectImplementation","impl","previous","injectRootLimpMode","notFoundValue","flags","injectableDef","THROW_IF_NOT_FOUND","DI_DECORATOR_FLAG","NG_TEMP_TOKEN_PATH","NEW_LINE","SOURCE","_currentInjector","setCurrentInjector","injector","former","injectInjectorOnly","ngDevMode","get","ɵɵinject","inject","convertToBitFlags","optional","host","self","skipSelf","injectArgs","types","arg","j","meta","flag","getInjectFlag","attachInjectFlag","decorator","getFactoryDef","throwNotFound","deepForEach","addToArray","removeFromArray","pop","keyValueArraySet","keyValueArray","keyValueArrayIndexOf","arrayInsert2","array","value1","value2","end","keyValueArrayGet","_arrayIndexOfSorted","start","middle","current","EMPTY_OBJ","EMPTY_ARRAY","ENVIRONMENT_INITIALIZER","INJECTOR$1","INJECTOR_DEF_TYPES","NullInjector","ChangeDetectionStrategy","OnPush","ViewEncapsulation$1","ViewEncapsulation","Emulated","None","ShadowDom","InputFlags","SignalBased","HasDecoratorInputTransform","classIndexOf","className","classToSearch","startingIndex","foundIndex","charCodeAt","setUpAttributes","renderer","native","attrs","namespaceURI","attrName","attrVal","setAttribute","isAnimationProp","setProperty","isNameOnlyAttributeMarker","marker","mergeHostAttrs","dst","src","slice","srcMarker","mergeHostAttribute","key1","key2","markerInsertPosition","dstValue","NG_TEMPLATE_SELECTOR","isCssClassMatching","tNode","cssClassToMatch","isProjectionMode","toLowerCase","isInlineTemplate","hasTagAndTypeMatch","currentSelector","isNodeMatchingSelector","selector","mode","nodeAttrs","nameOnlyMarkerIdx","getNameOnlyMarkerIndex","skipToNextSelector","isPositive","selectorAttrValue","attrIndexInNode","findAttrIndexInNode","nodeAttrValue","bindingsMode","maybeAttrName","matchTemplateAttribute","attr","isNodeMatchingSelectorList","isSelectorInSelectorList","list","selectorListLoop","currentSelectorInList","maybeWrapInNotSelector","isNegativeMode","chunk","trim","stringifyCSSSelector","result","currentChunk","valueOrMarker","attrValue","ɵɵdefineComponent","componentDefinition","baseDef","getNgDirectiveDef","def","decls","vars","template","consts","ngContentSelectors","onPush","changeDetection","directiveDefs","pipeDefs","dependencies","standalone","getStandaloneInjector","signals","data","encapsulation","styles","_","schemas","tView","id","initFeatures","extractDefListOrFactory","getComponentId","componentDef","hash","hashSelectors","selectors","hostVars","hostAttrs","exportAs","JSON","inputs","outputs","getOwnPropertyNames","contentQueries","viewQuery","char","imul","extractDirectiveDef","getComponentDef","getDirectiveDef","nonNull","ɵɵdefineNgModule","bootstrap","declarations","exports","transitiveCompileScopes","parseAndConvertBindingsForDefinition","obj","declaredInputs","newLookup","minifiedKey","publicName","declaredName","inputFlags","ɵɵdefineDirective","directiveDefinition","ɵɵdefinePipe","pipeDef","pure","onDestroy","ngOnDestroy","getPipeDef$1","getNgModuleDef","ngModuleDef","providersResolver","hostBindings","inputTransforms","inputConfig","features","setInput","findHostDirectiveDefs","hostDirectives","debugInfo","definition","defExtractor","dep","filter","importProvidersFrom","sources","internalImportProvidersFrom","ɵfromNgModule","checkForStandaloneCmp","providersOut","dedup","Set","injectorTypesWithProviders","collectProviders","provider","internalSource","walkProviderTree","processInjectorTypesWithProviders","typesWithProviders","visitor","ngModule","deepForEachProvider","container","parents","defType","injDef","cmpDef","isDuplicate","has","deps","importTypesWithProviders","imported","provide","useFactory","useValue","defProviders","injectorType","USE_VALUE$1","isValueProvider","isTypeProvider","INJECTOR_SCOPE","NOT_YET","CIRCULAR","NULL_INJECTOR","getNullInjector","EnvironmentInjector","R3Injector","destroyed","_destroyed","scopes","records","Map","_ngOnDestroyHooks","_onDestroyHooks","forEachSingleProvider","processProvider","set","makeRecord","record","injectorDefTypes","destroy","assertNotDestroyed","prevConsumer","setActiveConsumer$1","service","onDestroyHooks","hook","clear","callback","removeOnDestroy","runInContext","previousInjector","previousInjectImplementation","couldBeInjectableType","injectableDefInScope","injectableDefOrInjectorDefFactory","hydrate","unshift","catchInjectorError","injectorErrorName","tokenPath","formatError","text","charAt","parts","replace","resolveInjectorInitializers","initializers","initializer","tokens","keys","providerToRecord","providerToFactory","multiRecord","hasOnDestroy","destroyCBIdx","getUndecoratedInjectableFactory","inheritedInjectableDef","getInheritedInjectableDef","ngModuleType","unwrappedProvider","isFactoryProvider","isExistingProvider","useExisting","classRef","useClass","hasDeps","runInInjectionContext","prevInjector","isInInjectionContext","getCurrentInjector","HOST","TVIEW","FLAGS","PARENT","NEXT","T_HOST","HYDRATION","CLEANUP","CONTEXT","INJECTOR","ENVIRONMENT","RENDERER","CHILD_HEAD","CHILD_TAIL","DECLARATION_VIEW","DECLARATION_COMPONENT_VIEW","DECLARATION_LCONTAINER","PREORDER_HOOK_FLAGS","QUERIES","ID","EMBEDDED_VIEW_INJECTOR","ON_DESTROY_HOOKS","EFFECTS_TO_SCHEDULE","REACTIVE_TEMPLATE_CONSUMER","HEADER_OFFSET","TYPE","NATIVE","MOVED_VIEWS","CONTAINER_HEADER_OFFSET","LContainerFlags","HasTransplantedViews","isLView","isLContainer","isContentQueryHost","isComponentHost","componentOffset","isDirectiveHost","isComponentDef","isRootView","SimpleChange","previousValue","currentValue","firstChange","isFirstChange","applyValueToInputField","inputSignalNode","privateName","applyValueToInputSignal","ɵɵNgOnChangesFeature","NgOnChangesFeatureImpl","ngOnChanges","ngOnChangesSetInput","rememberChangeHistoryAndInvokeOnChangesHook","simpleChangesStore","getSimpleChangesStore","setSimpleChangesStore","store","SIMPLE_CHANGES_STORE","previousChange","ngInherit","profiler","event","hookOrListener","SVG_NAMESPACE","_ensureDirtyViewsAreAlwaysReachable","unwrapRNode","getNativeByIndex","lView","getNativeByTNode","getTNode","load","view","getComponentLViewByIndex","nodeIndex","hostView","slotValue","viewAttachedToChangeDetector","getConstant","resetPreOrderHookFlags","markViewForRefresh","markAncestorsForTraversal","requiresRefreshOrTraversal","updateAncestorTraversalFlagsOnAttach","changeDetectionScheduler","notify","getEnsureDirtyViewsAreAlwaysReachable","getLViewParent","storeLViewOnDestroy","onDestroyCallback","instructionState","lFrame","createLFrame","bindingsEnabled","skipHydrationRootTNode","getBindingsEnabled","isInSkipHydrationBlock$1","getLView","getTView","ɵɵrestoreView","viewToRestore","contextLView","ɵɵresetView","getCurrentTNode","currentTNode","getCurrentTNodePlaceholderOk","setCurrentTNode","isParent","isCurrentTNodeParent","setCurrentTNodeAsNotParent","getBindingRoot","bindingRootIndex","bindingStartIndex","nextBindingIndex","bindingIndex","incrementBindingIndex","count","setBindingRootForHostBindings","currentDirectiveIndex","setCurrentDirectiveIndex","getCurrentQueryIndex","currentQueryIndex","setCurrentQueryIndex","getDeclarationTNode","declTNode","enterDI","parentTNode","parentLView","allocLFrame","enterView","newView","newLFrame","firstChild","inI18n","currentLFrame","childLFrame","child","selectedIndex","elementDepthCount","currentNamespace","leaveViewLight","oldLFrame","leaveDI","leaveView","getSelectedIndex","setSelectedIndex","getSelectedTNode","ɵɵnamespaceSVG","ɵɵnamespaceHTML","namespaceHTMLInternal","_wasLastNodeCreated","wasLastNodeCreated","lastNodeWasCreated","registerPostOrderHooks","directiveStart","directiveEnd","lifecycleHooks","ngAfterContentInit","ngAfterContentChecked","ngAfterViewInit","ngAfterViewChecked","contentHooks","contentCheckHooks","viewHooks","viewCheckHooks","destroyHooks","executeCheckHooks","hooks","callHooks","executeInitAndCheckHooks","initPhase","incrementInitPhaseFlags","currentView","currentNodeIndex","nodeIndexLimit","max","lastNodeIndexFound","callHook","callHookInternal","directive","isInitHook","NO_PARENT_INJECTOR","NodeInjectorFactory","isViewProvider","injectImplementation","resolving","canSeeViewProviders","injectImpl","hasParentInjector","parentLocation","getParentInjectorIndex","getParentInjectorView","location","startView","viewOffset","getParentInjectorViewOffset","parentView","includeViewProviders","setIncludeViewProviders","v","oldValue","BLOOM_MASK","BLOOM_BUCKET_BITS","nextNgElementId","NOT_FOUND","getOrCreateNodeInjectorForNode","existingInjectorIndex","getInjectorIndex","firstCreatePass","injectorIndex","insertBloom","blueprint","parentLoc","getParentInjectorLocation","parentIndex","parentData","footer","declarationViewOffset","lViewCursor","getTNodeFromLView","diPublicInInjector","bloomAdd","bloomHash","notFoundValueOrThrow","lookupTokenUsingModuleInjector","moduleInjector","getOrCreateInjectable","embeddedInjectorValue","lookupTokenUsingEmbeddedInjector","currentLView","nodeInjectorValue","lookupTokenUsingNodeInjector","embeddedViewInjector","embeddedViewInjectorValue","bloomHashBitOrFactory","tokenId","createNodeInjector","previousTView","hostTElementNode","shouldSearchParent","bloomHasToken","searchTokensOnInjector","currentTView","injectableIdx","locateDirectiveOrProvider","getNodeInjectable","canAccessViewProviders","isHostSpecialCase","nodeProviderIndexes","providerIndexes","tInjectables","injectablesStart","directivesStart","cptViewProvidersCount","endIndex","providerTokenOrDef","dirDef","tData","isFactory","throwCyclicDependencyError","path","stringifyForError","previousIncludeViewProviders","registerPreOrderHooks","directiveIndex","directiveDef","ngOnInit","ngDoCheck","wrappedOnChanges","preOrderHooks","preOrderCheckHooks","injectorView","isFirstHostTNode","NodeInjector","_tNode","_lView","ɵɵgetInheritedFactory","ownConstructor","ownFactory","getFactoryOf","objectPrototype","getPrototypeOf","t","tViewType","ɵɵinjectAttribute","attrNameToInject","injectAttributeImpl","classes","attrsLength","createInjector","additionalProviders","createInjectorWithoutInjectorInstances","Injector","static","NULL","getOriginalError","ErrorHandler","_console","console","handleError","originalError","_findOriginalError","INTERNAL_APPLICATION_ERROR_HANDLER","DestroyRef","injectDestroyRef","NodeInjectorDestroyRef","removeLViewOnDestroy","injectElementRef","createElementRef","ElementRef","nativeElement","unwrapElementRef","_wrapInTimeout","EventEmitter","EventEmitter_","isAsync","destroyRef","__isAsync","emit","nextFn","errorFn","completeFn","symbolIterator","_results","iterator","QueryList","changes","_changes","_emitDistinctChangesOnly","_onDirty","_changesDetected","first","last","proto","find","some","toArray","reset","resultsTree","identityAccessor","newResultFlat","flatten","flat","Number","POSITIVE_INFINITY","arrayEquals","a","b","valueA","valueB","notifyOnChanges","onDirty","setDirty","hasInSkipHydrationBlockFlag","TRACKED_LVIEWS","uniqueIdCounter","MONKEY_PATCH_KEY_NAME","attachPatchData","registerLView","getFirstLContainer","getNearestLContainer","getNextLContainer","viewOrContainer","DOCUMENT","APP_ID","DEFAULT_APP_ID","PLATFORM_INITIALIZER","PLATFORM_ID","ANIMATION_MODULE_TYPE","CSP_NONCE","getDocument","document","body","querySelector","getAttribute","_retrieveHydrationInfoImpl","retrieveHydrationInfo","rNode","PRESERVE_HOST_CONTENT","policy","trustedScriptURLFromStringBypass","url","getPolicy","trustedTypes","createPolicy","createHTML","s","createScript","createScriptURL","SafeValueImpl","changingThisBreaksApplicationSecurity","unwrapSafeValue","allowSanitizationBypassAndThrow","actualType","getSanitizationBypassType","getTypeName","SAFE_URL_PATTERN","SecurityContext","NONE","HTML","STYLE","SCRIPT","URL","RESOURCE_URL","ɵɵsanitizeUrl","unsafeUrl","sanitizer","getSanitizer","sanitize","_sanitizeUrl","match","ɵɵsanitizeResourceUrl","unsafeResourceUrl","COMMENT_DISALLOWED","COMMENT_DELIMITER","COMMENT_DELIMITER_ESCAPED","maybeUnwrapFn","RendererStyleFlags2","Important","DashCase","_icuContainerIterate","icuContainerIterate","tIcuContainerNode","applyToElementOrContainer","action","lNodeToHandle","beforeNode","lContainer","isComponent","nativeAppendChild","nativeInsertBefore","nativeRemoveNode","isHostElement","nativeParent","nativeParentNode","nativeRemoveChild","removeChild","destroyNode","applyContainer","parentRElement","anchor","applyView","createCommentNode","createComment","escapeCommentText","createElementNode","namespace","createElement","detachViewFromDOM","detachMovedView","declarationContainer","movedViews","declarationViewIndex","detachView","removeIndex","indexInContainer","viewToDetach","declarationLContainer","removedLView","removeViewFromDOM","lQueries","destroyLView","destroyViewTree","rootView","lViewOrLContainer","cleanUpView","firstView","consumerDestroy","consumerDestroy$1","executeOnDestroys","toCall","callContext","processCleanups","tCleanup","cleanup","lCleanup","targetIdx","destroyHooksFn","unregisterLView","delete","getParentRElement","getClosestRElement","isMove","insertBefore","appendChild","nativeAppendOrInsertBefore","parentNode","getInsertInFrontOfRNode","_getInsertInFrontOfRNodeWithI18n","_processI18nInsertBefore","getInsertInFrontOfRNodeWithNoI18n","childRNode","childTNode","parentRNode","anchorNode","getFirstNativeNode","tNodeType","getBeforeNodeForView","elIcuContainerChild","rNodeOrLContainer","projectionNodes","getProjectionNodes","projection","viewIndexInContainer","nextViewIndex","firstTNodeOfView","applyNodes","isProjection","rawSlotValue","nextRNode","applyProjectionRecursive","projectionNext","tProjectionNode","componentLView","nodeToProjectOrRNodes","nodeToProject","projectedComponentLView","writeDirectClass","element","newValue","removeAttribute","setupStaticAttributes","mergedAttrs","writeDirectStyle","NO_CHANGE","ɵɵadvance","delta","selectIndexInternal","checkNoChangesMode","ɵɵdirectiveInject","ɵɵinvalidFactory","writeToDirectiveInput","SIGNAL$1","transformFn","createLView","tHostNode","environment","hydrationInfo","getUniqueLViewId","getOrCreateTNode","createTNodeAtIndex","createTNode","tParent","insertBeforeIndex","directiveStylingLast","propertyBindings","localNames","initialInputs","stylesWithoutHost","residualStyles","classesWithoutHost","residualClasses","classBindings","styleBindings","isInI18nBlock","getCurrentParentTNode","allocExpando","numSlotsToAlloc","initialValue","allocIdx","executeTemplate","templateFn","rf","prevSelectedIndex","isUpdatePhase","executeContentQueries","createDirectivesInstances","instantiateAllDirectives","addComponentLogic","hostTNode","getOrCreateComponentTView","lViewFlags","componentView","addToViewTree","rendererFactory","createRenderer","setInputsFromAttrs","invokeDirectivesHostBindings","saveResolvedLocalsInData","viewData","localRefExtractor","localIndex","incompleteFirstPass","createTView","directives","pipes","constsOrFactory","ssrId","initialViewLength","createViewBlueprint","queries","fill","expandoStartIndex","hostBindingOpCodes","firstUpdatePass","staticViewQueries","staticContentQueries","components","directiveRegistry","pipeRegistry","_applyRootElementTransformImpl","captureNodeBindings","aliasMap","bindingsResult","hostDirectiveAliasMap","internalName","finalPublicName","addPropertyBinding","bindings","elementPropertyInternal","nativeOnly","dataValue","inputData","setInputsForProperty","markDirtyIfOnPush","viewIndex","childComponentLView","mapPropName","resolveDirectives","localRefs","exportsMap","matchResult","findDirectiveDefMatches","registry","matches","hostDirectiveDefs","hostDirectiveMatches","markAsComponentHost","initializeDirectives","cacheMatchingLocalNames","initTNodeFlags","numberOfDirectives","preOrderHooksFound","preOrderCheckHooksFound","directiveIdx","configureViewWithDirective","saveNameToExportMap","lifeCycleHooks","initializeInputAndOutputAliases","hostDirectiveDefinitionMap","tViewData","tNodeAttrs","inputsFromAttrs","inputsStore","outputsStore","aliasData","aliasedOutputs","generateInitialInputs","elementIndex","getCurrentDirectiveIndex","dirIndex","invokeHostBindingsInCreationMode","directiveFactory","nodeInjectorFactory","registerHostBindingOpCodes","directiveVarsIdx","elementIndx","lastSelectedElementIdx","elementAttributeInternal","setElementAttribute","tagName","strValue","initialInputData","inputsToStore","createLContainer","hostNative","refreshContentQueries","directiveDefIdx","executeViewQueryFn","viewQueryFn","component","getOrCreateLViewCleanup","getOrCreateTViewCleanup","errorHandler","renderComponent","hostLView","componentHostIdx","componentTView","syncViewWithBlueprint","hostRNode","renderView","finishViewCreation","renderChildComponents","createAndRenderEmbeddedLView","declarationLView","templateTNode","embeddedTView","embeddedLView","dehydratedView","declarationViewLQueries","createEmbeddedView","getLViewFromLContainer","adjustedIndex","shouldAddViewToDom","addLViewToLContainer","addToDOM","insertView","containerLength","trackMovedView","addViewToDOM","parentNativeNode","removeLViewFromLContainer","collectNativeNodes","lNode","collectNativeNodesInLContainer","nodesInSlot","lViewInAContainer","lViewFirstChildTNode","freeConsumers","REACTIVE_LVIEW_CONSUMER_NODE","nextProducerIndex","consumerAllowSignalWrites","consumerMarkedDirty","consumerOnSignalRead","MAXIMUM_REFRESH_RERUNS","detectChangesInternal","notifyErrorHandler","begin","detectChangesInViewWhileDirty","detectChangesInView$1","retries","inlineEffectRunner","flush","refreshView","currentConsumer","viewShouldHaveReactiveConsumer","getOrBorrowReactiveLViewConsumer","borrowReactiveLViewConsumer","consumerBeforeComputation","consumerBeforeComputation$1","setBindingIndex","hooksInitPhaseCompleted","markTransplantedViewsForRefresh","detectChangesInEmbeddedViews","processHostBindingOpCodes","opCode","bindingRootIndx","hostBindingFn","detectChangesInChildComponents","notifyEffect","consumerAfterComputation","consumerAfterComputation$1","maybeReturnReactiveLViewConsumer","detectChangesInViewIfAttached","detectChangesInComponent","shouldRefreshView","consumerPollProducersForChange$1","markViewDirty","ViewRef$1","rootNodes","_cdRefInjectingView","_appRef","_attachedToViewContainer","viewRefs","markForCheck","detach","reattach","detectChanges","checkNoChanges","attachToViewContainerRef","detachFromAppRef","attachToAppRef","appRef","TemplateRef","injectTemplateRef","ViewEngineTemplateRef","R3TemplateRef","_declarationLView","_declarationTContainer","elementRef","createEmbeddedViewImpl","createTemplateRef","_findMatchingDehydratedViewImpl","findMatchingDehydratedView","ChangeDetectionScheduler","ComponentRef$1","ComponentFactory$1","_NullComponentFactoryResolver","resolveComponentFactory","noComponentFactoryError","ComponentFactoryResolver$1","RendererFactory2","Renderer2","injectRenderer2","nodeAtIndex","Sanitizer","NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR","markedFeatures","performanceMarkFeature","feature","performance","mark","detail","NgZone","enableLongStackTrace","shouldCoalesceEventChangeDetection","shouldCoalesceRunChangeDetection","hasPendingMacrotasks","hasPendingMicrotasks","isStable","onUnstable","onMicrotaskEmpty","onStable","Zone","assertZonePatched","_nesting","_outer","_inner","TaskTrackingZoneSpec","fork","longStackTraceZoneSpec","lastRequestAnimationFrameId","nativeRequestAnimationFrame","getNativeRequestAnimationFrame","isBrowser","requestAnimationFrame","nativeCancelAnimationFrame","unpatchedRequestAnimationFrame","__symbol__","unpatchedCancelAnimationFrame","forkInnerZoneWithAngularBehavior","zone","delayChangeDetectionForEventsDelegate","delayChangeDetectionForEvents","isCheckStableRunning","fakeTopEventTask","root","scheduleEventTask","updateMicroTaskStatus","checkStable","invoke","properties","isAngularZone","onInvokeTask","task","applyThis","applyArgs","shouldBeIgnoredByZone","__ignore_ng_zone__","invokeTask","onEnter","onLeave","onInvoke","onHasTask","hasTaskState","hasTask","change","_hasPendingMicrotasks","microTask","macroTask","onHandleError","runOutsideAngular","isInAngularZone","assertInAngularZone","assertNotInAngularZone","run","runTask","EMPTY_PAYLOAD","cancelTask","runGuarded","NoopNgZone","AfterRenderPhase","EarlyRead","Write","MixedReadWrite","Read","NOOP_AFTER_RENDER_REF","afterNextRender","assertInInjectionContext","debugFn","isPlatformBrowser","afterRenderEventManager","AfterRenderEventManager","callbackHandler","AfterRenderCallbackHandlerImpl","phase","unregister","unregisterFn","AfterRenderCallback","register","callbackFn","executingCallbacks","buckets","deferredCallbacks","execute","bucket","internalCallbacks","executeInternalCallbacks","callbacks","computeStaticStyling","writeToHost","ComponentFactoryResolver","ComponentFactory","toRefArray","templateName","ChainedInjector","parentInjector","refArray","transform","componentType","stringifyCSSSelectorList","selectorList","isBoundToModule","projectableNodes","rootSelectorOrNode","environmentInjector","realEnvironmentInjector","rootViewInjector","hostRenderer","elementName","locateHostElement","elementOrSelector","preserveContent","rootElement","selectRootElement","applyRootElementTransform","getNamespace","rootFlags","rootTView","rootLView","tElementNode","rootComponentDef","rootDirectives","createRootComponentTNode","createRootComponentView","applyRootComponentStyling","viewRenderer","setRootNodeAttributes","extractAttrsAndClassesFromSelector","projectNodes","nodesforSlot","createRootComponent","hostFeatures","rootTNode","LifecycleHooksFeature","ComponentRef","_rootLView","previousInputValues","changeDetectorRef","is","ViewContainerRef","injectViewContainerRef","createContainerRef","VE_ViewContainerRef","R3ViewContainerRef","_lContainer","_hostTNode","_hostLView","getViewRefs","templateRef","indexOrOptions","viewRef","insertImpl","createComponent","componentFactoryOrType","isComponentFactory","isType","ngModuleRef","componentFactory","contextInjector","componentRef","insert","viewAttachedToContainer","prevIdx","prevLContainer","prevVCRef","adjustedIdx","_adjustIndex","getOrCreateViewRefs","move","newIndex","viewRefsArr","detachedView","_locateOrCreateAnchorNode","createAnchorNode","commentNode","insertAnchorNode","nativeNextSibling","nextSibling","_populateDehydratedViewsInLContainer","LQuery_","queryList","clone","LQueries_","tQueries","noOfInheritedQueries","viewLQueries","tQuery","getByIndex","indexInDeclarationView","dirtyQueriesWithMatches","getTQuery","TQueryMetadata_","predicate","read","splitQueryMultiSelectors","locator","split","TQueries_","elementStart","elementEnd","queriesForTemplateRef","childQueryIndex","tqueryClone","track","tquery","TQuery_","metadata","crossesNgTemplate","_appliesToNextNode","_declarationNodeIndex","isApplyingToNode","matchTNode","addMatch","declarationNodeIdx","matchTNodeWithReadOption","getIdxOfMatchingSelector","nodeMatchIdx","directiveOrProviderIdx","tNodeIdx","matchIdx","createResultForNode","matchingIdx","createResultByTNodeType","createSpecialToken","materializeViewResults","queryIndex","lQuery","tQueryMatches","matchedNodeIdx","collectQueryResults","lViewResults","embeddedLViews","createLQuery","storeCleanupWithContext","cleanupFn","createTQuery","getQueryResults","isWritableSignal","isSignal","ɵɵInheritDefinitionFeature","superType","getSuperType","shouldInheritFields","inheritanceChain","superDef","writeableDef","maybeUnwrapEmpty","superHostBindings","inheritHostBindings","superViewQuery","superContentQueries","inheritViewQuery","inheritContentQueries","mergeInputsWithTransforms","animation","defData","concat","mergeHostAttrsAcrossInheritance","minifiedName","prevViewQuery","ctx","prevContentQueries","prevHostBindings","ɵɵInputTransformsFeature","NgModuleRef$1","NgModuleFactory$1","NgModuleRef","_parent","_bootstrapComponents","destroyCbs","componentFactoryResolver","_r3Injector","NgModuleFactory","moduleType","EnvironmentNgModuleRefAdapter","debugName","runEnvironmentInitializers","createEnvironmentInjector","PendingTasks","taskId","pendingTasks","hasPendingTasks","_hasPendingTasks","size","isListLikeIterable","isJsObject","o","updateBinding","bindingUpdated","bindingUpdated2","exp1","exp2","different","ɵɵtemplate","attrsIndex","localRefsIndex","templateFirstCreatePass","tViewConsts","comment","_locateOrCreateContainerAnchor","populateDehydratedViewsInLContainer","createContainerAnchorImpl","ɵɵattribute","interpolation2","prefix","v0","i0","v1","suffix","getBindingIndex","ɵɵattributeInterpolate2","interpolatedValue","toTStylingRange","getTStylingRangePrev","tStylingRange","setTStylingRangePrevDuplicate","getTStylingRangeNext","setTStylingRangeNext","setTStylingRangeNextDuplicate","markDuplicates","tStylingKey","isPrevDir","tStylingAtIndex","isMap","cursor","foundDuplicate","tStyleRangeAtCursor","isStylingMatch","tStylingKeyCursor","parserState","textEnd","keyEnd","valueEnd","getLastParsedKey","getLastParsedValue","parseClassNameNext","consumeClassToken","startIndex","consumeWhitespace","parseStyleNext","consumeStyleKey","ch","consumeSeparator","consumeStyleValue","ch1","ch2","ch3","lastChIndex","consumeQuotedText","resetParserState","separator","quoteCharCode","ɵɵproperty","setDirectiveInputsWhichShadowsStyling","isClassBased","property","ɵɵstyleProp","prop","checkStylingProperty","ɵɵclassProp","styleStringParser","parseStyle","styleKeyValueArraySet","ɵɵclassMap","checkStylingMap","classKeyValueArraySet","classStringParser","parseClassName","stylingFirstUpdatePass","updateStyling","normalizeSuffix","stringParser","hasStylingInputShadow","isInHostBindings","staticPrefix","updateStylingMap","oldKeyValueArray","newKeyValueArray","oldIndex","oldKey","newKey","setValue","setKey","toStylingKeyValueArray","styleKeyValueArray","unwrappedValue","isHostBindings","wrapInStaticStylingKey","stylingKey","hostDirectiveDef","getCurrentDirectiveDef","residual","collectStylingFromTAttrs","collectStylingFromDirectives","templateStylingKey","getTemplateHeadTStylingKey","setTemplateHeadTStylingKey","collectResidual","insertTStylingBinding","tStylingKeyWithStatic","isHostBinding","isClassBinding","tBindings","tmplHead","tmplTail","isKeyDuplicateOfStatic","previousNode","setTStylingRangePrev","markDuplicateOfResidualStyling","currentDirective","desiredMarker","currentMarker","stringKey","tRange","higherPriorityValue","getTStylingRangeNextDuplicate","findStylingValue","isStylingValuePresent","getTStylingRangePrevDuplicate","applyStyling","addClass","removeClass","removeStyle","endsWith","setStyle","isPrevDirection","rawKey","containsStatics","isStylingMap","valueAtLViewIndex","LiveCollection","updateValue","swap","index1","index2","startIdx","min","endIdx","endItem","startItem","attach","prevIndex","newIdx","valuesMatching","liveIdx","liveValue","trackBy","attachPreviouslyDetached","prevCollection","detachedItems","createOrAttach","liveCollection","trackByFn","newItem","initLiveItemsInTheFuture","at","UniqueValueMultiKeyMap","kvMap","_vMap","prevValue","vMap","ɵɵconditional","containerIndex","matchingTemplateIndex","getLContainer","getExistingTNode","RepeaterContext","$implicit","$index","$count","ɵɵrepeaterTrackByIdentity","RepeaterMetadata","hasEmptyBlock","LiveCollectionLContainerImpl","needsIndexUpdate","detachExistingView","updateIndexes","getExistingLViewFromLContainer","ɵɵelementStart","elementStartFirstCreatePass","_locateOrCreateElementNode","hasDirectives","isDetachedByI18n","getElementDepthCount","increaseElementDepthCount","ɵɵelementEnd","isSkipHydrationRootTNode","leaveSkipHydrationBlock","decreaseElementDepthCount","hasClassInput","hasStyleInput","ɵɵelement","getNamespace$1","ɵɵelementContainerStart","elementContainerStartFirstCreatePass","_locateOrCreateElementContainerNode","ɵɵelementContainerEnd","ɵɵelementContainer","ɵɵgetCurrentView","ɵɵhostProperty","u","localeEn","plural","val","floor","LOCALE_DATA","findLocaleData","locale","normalizedLocale","normalizeLocale","getLocaleData","parentLocale","ng","common","locales","LocaleDataIndex","LocaleId","DayPeriodsFormat","DayPeriodsStandalone","DaysFormat","DaysStandalone","MonthsFormat","MonthsStandalone","Eras","FirstDayOfWeek","WeekendRange","DateFormat","TimeFormat","DateTimeFormat","NumberSymbols","NumberFormats","CurrencyCode","CurrencySymbol","CurrencyName","Currencies","Directionality","PluralCase","ExtraData","DEFAULT_LOCALE_ID","LOCALE_ID$1","ɵɵlistener","eventName","listenerFn","useCapture","eventTargetResolver","listenerInternal","isTNodeDirectiveHost","processOutputs","lCleanupIndex","idxOrTargetGetter","existingListener","findExistingListener","cleanupEventName","listenerIdxInLCleanup","__ngLastListenerFn__","__ngNextListenerFn__","wrapListener","listen","propsLength","executeListenerWithErrorHandling","wrapWithPreventDefault","wrapListenerIn_markDirtyAndPreventDefault","nextListenerFn","preventDefault","ɵɵnextContext","level","nextContextImpl","walkUpViews","nestingLevel","matchingProjectionSlotIndex","projectionSlots","wildcardNgContentIndex","ngProjectAsAttrVal","getProjectAsAttrValue","ngProjectAsAttrIdx","ɵɵprojectionDef","componentNode","projectionHeads","newArray","tails","componentChild","slotIndex","ɵɵprojection","selectorIndex","applyProjection","ɵɵcontentQuery","createContentQuery","saveContentQueryAndDirectiveIndex","tViewContentQueries","ɵɵviewQuery","createViewQuery","ɵɵqueryRefresh","isCreationMode","ɵɵloadQuery","loadQueryInternal","ɵɵreference","getContextLView","ɵɵtext","textNative","_locateOrCreateTextNode","createTextNode","createText","ɵɵtextInterpolate","ɵɵtextInterpolate1","interpolated","interpolation1","textBindingInternal","updateTextNode","ɵɵtwoWayProperty","ɵɵtwoWayBindingSet","canWrite","ɵɵtwoWayListener","resolveProvider","lInjectablesBlueprint","providerFactory","beginIndex","existingFactoryIndex","registerDestroyHooksIfSupported","existingProvidersFactoryIndex","existingViewProvidersFactoryIndex","doesViewProvidersFactoryExist","multiFactory","factoryFn","f","componentProviders","multiFactoryAdd","multiViewProvidersFactoryResolver","multiProvidersFactoryResolver","contextIndex","indexInFactory","providerIsTypeProvider","providerIsClassProvider","isClassProvider","existingCallbacksIndex","isComponentProvider","lData","multiResolve","factories","componentCount","multiProviders","ɵɵProvidersFeature","viewProviders","processProvidersFn","StandaloneService","_injector","cachedInjectors","getOrCreateStandaloneInjector","standaloneInjector","ɵɵStandaloneFeature","ɵɵpureFunction1","slotOffset","pureFn","exp","pureFunction1Internal","ɵɵpureFunction3","exp3","pureFunction3Internal","bindingRoot","bindingUpdated3","getPureFunctionReturnValue","returnValueIndex","lastReturnValue","pureFunction2Internal","ɵɵpipe","pipeName","getPipeDef","pipeFactory","pipeInstance","ɵɵpipeBind2","v2","isPure","ɵɵtemplateRefExtractor","Console","log","warn","TESTABILITY","TESTABILITY_GETTER","_testabilityGetter","Testability","_ngZone","testabilityGetter","_pendingCount","_isZoneStable","_callbacks","taskTrackingZone","setTestabilityGetter","getter","addToWindow","_watchAngularEvents","queueMicrotask","_runCallbacksIfReady","increasePendingRequestCount","decreasePendingRequestCount","timeoutId","doneCb","pending","getPendingTasks","updateCb","macroTasks","creationLocation","addCallback","whenStable","getPendingRequestCount","registerApplication","unregisterApplication","findProviders","using","exactMatch","TestabilityRegistry","_applications","testability","unregisterAllApplications","getTestability","elem","getAllTestabilities","getAllRootElements","findTestabilityInTree","findInAncestors","isPromise","then","isSubscribable","APP_INITIALIZER","ApplicationInitStatus","initialized","done","donePromise","rej","appInits","runInitializers","asyncInitPromises","initResult","observableAsPromise","all","catch","APP_BOOTSTRAP_LISTENER","optionsReducer","objs","ApplicationRef","_bootstrapListeners","_runningTick","_destroyListeners","_views","internalErrorHandler","afterRenderEffectManager","externalTestViews","beforeRender","afterTick","componentTypes","componentOrFactory","isStandalone","cf","compRef","_loadComponent","tick","_tick","refreshViews","detectChangesInAttachedViews","runs","isFirstPass","detectChangesInViewIfRequired","shouldRecheckView","attachView","listeners","listener","viewCount","warnIfDestroyed","el","detectChangesInView","ModuleWithComponentFactories","ngModuleFactory","componentFactories","Compiler","compileModuleSync","compileModuleAsync","compileModuleAndAllComponentsSync","declaration","compileModuleAndAllComponentsAsync","clearCache","clearCacheFor","getModuleId","NgZoneChangeDetectionScheduler","applicationRef","initialize","_onMicrotaskEmptySubscription","ngZoneApplicationErrorHandlerFactory","userErrorHandler","ZoneStablePendingTask","LOCALE_ID","getGlobalLocale","$localize","PLATFORM_DESTROY_LISTENERS","PlatformRef","_modules","bootstrapModuleFactory","moduleFactory","ngZone","getNgZone","ngZoneToUse","getNgZoneOptions","eventCoalescing","runCoalescing","ngZoneEventCoalescing","ngZoneRunCoalescing","moduleRef","createNgModuleRefWithProviders","internalProvideZoneChangeDetection","ngZoneFactory","ngZoneChangeDetectionScheduler","exceptionHandler","_callAndReportToErrorHandler","initStatus","setLocaleId","localeId","_moduleDoBootstrap","bootstrapModule","compilerOptions","compileNgModuleFactory","ngDoBootstrap","module","destroyListeners","_platformInjector","ALLOW_MULTIPLE_PLATFORMS","createPlatformFactory","parentPlatformFactory","desc","extraProviders","platform","getPlatform","platformProviders","createPlatform","publishSignalConfiguration","setThrowInvalidWriteToSignalError","setThrowInvalidWriteToSignalError$1","runPlatformInitializers","createPlatformInjector","assertPlatform","requiredToken","ChangeDetectorRef","injectChangeDetectorRef","createViewRef","isPipe","DefaultIterableDifferFactory","supports","DefaultIterableDiffer","trackByIdentity","_linkedRecords","_unlinkedRecords","_previousItHead","_itHead","_itTail","_additionsHead","_additionsTail","_movesHead","_movesTail","_removalsHead","_removalsTail","_identityChangesHead","_identityChangesTail","_trackByFn","forEachItem","forEachOperation","nextIt","nextRemove","addRemoveOffset","moveOffsets","currentIndex","getPreviousIndex","adjPreviousIndex","_nextRemoved","previousIndex","localMovePreviousIndex","localCurrentIndex","offset","forEachPreviousItem","_nextPrevious","forEachAddedItem","_nextAdded","forEachMovedItem","_nextMoved","forEachRemovedItem","forEachIdentityChange","_nextIdentityChange","diff","collection","check","_reset","itemTrackBy","mayBeDirty","trackById","_verifyReinsertion","_addIdentityChange","_mismatch","iterateListLike","_truncate","isDirty","previousRecord","_prev","_remove","_reinsertAfter","_moveAfter","_addAfter","IterableChangeRecord_","reinsertRecord","_addToMoves","nextRecord","_addToRemovals","_unlink","prevRecord","_prevRemoved","_insertAfter","_DuplicateMap","put","toIndex","_prevDup","_nextDup","_DuplicateItemRecordList","_head","_tail","atOrAfterIndex","duplicates","recordList","isEmpty","moveOffset","DefaultKeyValueDifferFactory","DefaultKeyValueDiffer","_records","_mapHead","_appendAfter","_previousMapHead","_changesHead","_changesTail","forEachChangedItem","_nextChanged","_forEach","_maybeAddToChanges","_getOrCreateRecordForKey","_insertBeforeOrAppend","KeyValueChangeRecord_","_addToAdditions","_addToChanges","k","defaultIterableDiffersFactory","IterableDiffers","copied","extend","iterable","defaultKeyValueDiffersFactory","KeyValueDiffers","kv","platformCore","ApplicationModule","booleanAttribute","numberAttribute","fallbackValue","NaN","isNaN","parseFloat","_DOM","getDOM","DomAdapter","PlatformLocation","historyGo","relativePosition","BrowserPlatformLocation","LOCATION_INITIALIZED","_doc","_location","window","_history","history","getBaseHrefFromDOM","getBaseHref","onPopState","getGlobalEventTarget","addEventListener","removeEventListener","onHashChange","href","protocol","hostname","port","pathname","search","newPath","pushState","state","title","replaceState","forward","back","go","getState","joinWithSlash","slashes","startsWith","stripTrailingSlash","pathEndIdx","normalizeQueryParams","params","LocationStrategy","PathLocationStrategy","APP_BASE_HREF","_platformLocation","_removeListenerFns","_baseHref","origin","prepareExternalUrl","internal","includeHash","queryParams","externalUrl","HashLocationStrategy","Location","locationStrategy","_subject","_urlChangeListeners","_urlChangeSubscription","_locationStrategy","baseHref","_basePath","_stripOrigin","RegExp","test","_stripIndexHtml","ev","normalize","isCurrentPathEqualTo","query","_stripBasePath","basePath","strippedUrl","_notifyUrlChangeListeners","onUrlChange","fnIndex","onThrow","onReturn","createLocation","NumberFormatStyle","Decimal","Percent","Currency","Scientific","NumberSymbol","Group","List","PercentSign","PlusSign","MinusSign","Exponential","SuperscriptingExponent","PerMille","Infinity","TimeSeparator","CurrencyDecimal","CurrencyGroup","getLocaleNumberSymbol","symbol","ɵfindLocaleData","ɵLocaleDataIndex","NUMBER_FORMAT_REGEXP","parseIntAutoRadix","parseInt","parseCookieValue","cookieStr","encodeURIComponent","cookie","eqIndex","cookieName","cookieValue","decodeURIComponent","WS_REGEXP","NgClass","_ngEl","_renderer","initialClasses","stateMap","klass","ngClass","rawClass","_updateState","_applyStateDiff","nextEnabled","enabled","changed","touched","stateEntry","_toggleClass","NgForOfContext","ngForOf","even","odd","NgForOf","_ngForOf","_ngForOfDirty","ngForTrackBy","_viewContainer","_template","_differs","_differ","ngForTemplate","_applyChanges","viewContainer","adjustedPreviousIndex","applyViewChange","ilen","ngTemplateContextGuard","dir","NgIf","_context","NgIfContext","_thenTemplateRef","_elseTemplateRef","_thenViewRef","_elseViewRef","ngIf","condition","_updateView","ngIfThen","assertTemplate","ngIfElse","ɵstringify","SwitchView","_viewContainerRef","_templateRef","_created","enforceState","created","NgSwitch","_defaultViews","_defaultUsed","_caseCount","_lastCaseCheckIndex","_lastCasesMatched","ngSwitch","_ngSwitch","_updateDefaultCases","_addCase","_addDefault","_matchCase","matched","useDefault","defaultView","NgSwitchCase","_view","ngSwitchCase","NgStyle","_ngStyle","ngStyle","_setStyle","nameAndUnit","unit","NgTemplateOutlet","_viewRef","ngTemplateOutletContext","ngTemplateOutlet","ngTemplateOutletInjector","_shouldRecreateView","viewContainerRef","viewContext","_createContextForwardProxy","Proxy","_target","Reflect","receiver","DecimalPipe","_locale","digitsInfo","isValue","formatNumber","formatNumberToLocaleString","pattern","groupSymbol","decimalSymbol","isPercent","formattedText","isZero","isFinite","parsedNumber","parseNumber","num","digits","integerLen","zeros","numStr","exponent","MAX_DIGITS","toPercent","fractionLen","minInt","minFraction","minFrac","maxFraction","maxFrac","minIntPart","minFractionPart","maxFractionPart","roundNumber","fractionSize","roundAt","digit","dropTrailingZeros","minLen","carry","reduceRight","d","decimals","every","groups","lgSize","gSize","negPre","negSuf","posPre","posSuf","parseNumberFormat","format","minusSign","p","patternParts","positive","negative","positiveParts","lastIndexOf","integer","fraction","trunkLen","pos","getLocaleNumberFormat","strToNumber","invalidPipeArgumentError","ɵRuntimeError","CommonModule","PLATFORM_BROWSER_ID","platformId","isPlatformServer","ViewportScroller","BrowserViewportScroller","NullViewportScroller","setOffset","getScrollPosition","scrollX","scrollY","scrollToPosition","position","scrollTo","scrollToAnchor","elSelected","findAnchorFromDocument","documentResult","getElementById","getElementsByName","createTreeWalker","attachShadow","treeWalker","NodeFilter","SHOW_ELEMENT","currentNode","shadowRoot","nextNode","scrollToElement","focus","setHistoryScrollRestoration","scrollRestoration","rect","getBoundingClientRect","left","pageXOffset","top","pageYOffset","XhrFactory","GenericBrowserDomAdapter","ɵDomAdapter","arguments","supportsDOMEvents","BrowserDomAdapter","makeCurrent","setRootDomAdapter","adapter","ɵsetRootDomAdapter","onAndCancel","evt","dispatchEvent","doc","getDefaultDocument","createHtmlDocument","implementation","createHTMLDocument","isElementNode","nodeType","Node","ELEMENT_NODE","isShadowRoot","DocumentFragment","getBaseElementHref","baseElement","relativePath","baseURI","resetBaseElement","getUserAgent","navigator","userAgent","getCookie","ɵparseCookieValue","BrowserXhr","build","XMLHttpRequest","EVENT_MANAGER_PLUGINS","EventManager","plugins","_zone","_eventNameToPlugin","plugin","manager","_plugins","reverse","_findPluginFor","getZone","EventManagerPlugin","APP_ID_ATTRIBUTE_NAME","SharedStylesHost","appId","nonce","styleRef","hostNodes","styleNodesInDOM","collectServerRenderedStyles","platformIsServer","resetHostNodes","addStyles","style","changeUsageCount","onStyleAdded","removeStyles","onStyleRemoved","getAllStyles","addHost","hostNode","addStyleToHost","removeHost","elements","head","querySelectorAll","styleMap","textContent","styleRefValue","usage","getStyleElement","styleEl","styleElRef","NAMESPACE_URIS","svg","xhtml","xlink","xml","xmlns","math","COMPONENT_REGEX","REMOVE_STYLES_ON_COMPONENT_DESTROY","shimStylesContent","compId","DomRendererFactory2","eventManager","sharedStylesHost","removeStylesOnCompDestroy","rendererByCompId","defaultRenderer","DefaultDomRenderer2","getOrCreateRenderer","EmulatedEncapsulationDomRenderer2","applyToHost","NoneEncapsulationDomRenderer","applyStyles","ShadowDomRenderer","throwOnSyntheticProps","createElementNS","newChild","isTemplateNode","content","refChild","oldChild","selectorOrNode","namespaceUri","setAttributeNS","removeAttributeNS","classList","removeProperty","nodeValue","ɵgetDOM","decoratePreventDefault","eventHandler","hostEl","nodeOrShadowRoot","contentAttr","shimContentAttribute","componentShortId","hostAttr","shimHostAttribute","DomEventsPlugin","MODIFIER_KEYS","_keyMap","Del","Esc","Left","Right","Up","Down","Menu","Scroll","Win","MODIFIER_KEY_GETTERS","alt","altKey","control","ctrlKey","metaKey","shiftKey","KeyEventsPlugin","parseEventName","parsedEvent","outsideHandler","eventCallback","fullKey","domEventName","_normalizeKey","codeIX","modifierName","matchEventFullKeyCode","fullKeyCode","keycode","modifierGetter","keyName","platformBrowser","ɵPLATFORM_BROWSER_ID","initDomAdapter","_document","ɵsetDocument","setDocument","BROWSER_MODULE_PROVIDERS_MARKER","TESTABILITY_PROVIDERS","ɵTESTABILITY_GETTER","BrowserGetTestability","ɵglobal","getAngularTestability","getAllAngularTestabilities","getAllAngularRootElements","frameworkStabilizers","testabilities","decrement","parentElement","ɵTESTABILITY","BROWSER_MODULE_PROVIDERS","ɵINJECTOR_SCOPE","BrowserModule","providersAlreadyPresent","withServerTransition","Title","getTitle","setTitle","newTitle","isScheduler","schedule","popResultSelector","popScheduler","__await","__asyncValues","asyncIterator","m","__values","verb","n","settle","SuppressedError","isArrayLike","isInteropObservable","isAsyncIterable","createInvalidObservableTypeError","getSymbolIterator","isIterable","Symbol_iterator","readableStreamLikeToAsyncGenerator","readableStream","__asyncGenerator","_arguments","generator","g","q","resume","step","r","fulfill","reader","getReader","releaseLock","isReadableStreamLike","innerFrom","fromInteropObservable","obs","fromArrayLike","fromPromise","promise","fromAsyncIterable","fromIterable","fromReadableStreamLike","asyncIterable","process","asyncIterable_1","asyncIterable_1_1","e_1","__awaiter","P","fulfilled","rejected","throw","adopt","e_1_1","return","executeSchedule","parentSubscription","scheduler","work","delay","repeat","scheduleSubscription","observeOn","subscribeOn","scheduleAsyncIterable","scheduled","scheduleObservable","scheduleArray","schedulePromise","scheduleIterable","scheduleReadableStreamLike","of","mergeMap","resultSelector","concurrent","ii","mergeInternals","onBeforeNext","expand","innerSubScheduler","additionalFinalizer","buffer","active","isComplete","checkComplete","outerNext","doInnerSub","innerComplete","innerValue","bufferedValue","concatMap","finalize","switchMap","innerSubscriber","innerIndex","outerIndex","HttpHandler","HttpBackend","HttpHeaders","headers","normalizedNames","lazyUpdate","lazyInit","line","maybeSetNormalizedName","Headers","setHeaderEntries","entries","getAll","append","op","lcName","copyFrom","update","applyUpdate","other","base","toDelete","existing","headerValues","HttpUrlEncodingCodec","encodeKey","standardEncoding","encodeValue","decodeKey","decodeValue","STANDARD_ENCODING_REGEX","STANDARD_ENCODING_REPLACEMENTS","valueToString","HttpParams","updates","cloneFrom","encoder","fromString","fromObject","paramParser","rawParams","codec","param","eqIdx","appendAll","eKey","HttpContext","defaultValue","isArrayBuffer","ArrayBuffer","isBlob","Blob","isFormData","FormData","HttpRequest","method","third","fourth","reportProgress","withCredentials","responseType","toUpperCase","mightHaveBody","transferCache","urlWithParams","qIdx","serializeBody","isUrlSearchParams","URLSearchParams","detectContentTypeHeader","setHeaders","setParams","HttpEventType","Sent","UploadProgress","ResponseHeader","DownloadProgress","Response","User","HttpResponseBase","defaultStatus","HttpStatusCode","Ok","defaultStatusText","status","statusText","ok","HttpHeaderResponse","HttpResponse","HttpErrorResponse","Continue","SwitchingProtocols","Processing","EarlyHints","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlreadyReported","ImUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","Unused","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthorized","PaymentRequired","Forbidden","NotFound","MethodNotAllowed","NotAcceptable","ProxyAuthenticationRequired","RequestTimeout","Conflict","Gone","LengthRequired","PreconditionFailed","PayloadTooLarge","UriTooLong","UnsupportedMediaType","RangeNotSatisfiable","ExpectationFailed","ImATeapot","MisdirectedRequest","UnprocessableEntity","Locked","FailedDependency","TooEarly","UpgradeRequired","PreconditionRequired","TooManyRequests","RequestHeaderFieldsTooLarge","UnavailableForLegalReasons","InternalServerError","NotImplemented","BadGateway","ServiceUnavailable","GatewayTimeout","HttpVersionNotSupported","VariantAlsoNegotiates","InsufficientStorage","LoopDetected","NotExtended","NetworkAuthenticationRequired","addBody","observe","HttpClient","request","req","events$","res$","jsonp","callbackParam","patch","post","interceptorChainEndFn","finalHandlerFn","adaptLegacyInterceptorToChain","chainTailFn","interceptor","initialRequest","intercept","downstreamRequest","HTTP_INTERCEPTORS","HTTP_INTERCEPTOR_FNS","HTTP_ROOT_INTERCEPTOR_FNS","PRIMARY_HTTP_BACKEND","legacyInterceptorFnFactory","chain","ɵPendingTasks","HttpInterceptorHandler","backend","primaryHttpBackend","dedupedInterceptorFns","nextSequencedFn","interceptorFn","chainedInterceptorFn","XSSI_PREFIX","HttpXhrBackend","xhrFactory","ɵloadImpl","xhr","open","setRequestHeader","detectedType","reqBody","headerResponse","partialFromXhr","getAllResponseHeaders","getResponseUrl","responseURL","getResponseHeader","onLoad","response","responseText","originalBody","parse","sentHeaders","onDownProgress","progressEvent","loaded","lengthComputable","total","partialText","onUpProgress","progress","upload","send","readyState","DONE","abort","i1","XSRF_ENABLED","XSRF_COOKIE_NAME","XSRF_HEADER_NAME","HttpXsrfTokenExtractor","HttpXsrfCookieExtractor","lastCookieString","lastToken","parseCount","getToken","cookieString","xsrfInterceptorFn","lcUrl","headerName","HttpFeatureKind","Interceptors","LegacyInterceptors","CustomXsrfConfiguration","NoXsrfProtection","JsonpSupport","RequestsMadeViaParent","Fetch","provideHttpClient","makeEnvironmentProviders","LEGACY_INTERCEPTOR_FN","withInterceptorsFromDi","makeHttpFeature","ɵkind","HttpClientModule","objectProto","getKeys","argsArgArrayOrObject","isPOJO","mapOneOrManyArgs","callOrApply","createObject","combineLatest","observables","combineLatestInit","valueTransform","maybeSchedule","remainingFirstValues","hasFirstValue","EmptyError","mergeAll","concatAll","defer","observableFactory","throwError","errorOrErrorFactory","errorFactory","refCount","connection","_refCount","refCounter","sharedConnection","_connection","conn","connect","ConnectableObservable","subjectFactory","getSubject","_teardown","higherOrderRefCount","take","seen","startWith","defaultIfEmpty","hasValue","throwIfEmpty","defaultErrorFactory","hasDefaultValue","tap","tapObserver","isUnsub","catchError","handledResult","innerSub","syncUnsub","takeLast","mapTo","takeUntil","notifier","PRIMARY_OUTLET","RouteTitleKey","ParamsAsMap","convertToParamMap","defaultUrlMatcher","segments","segmentGroup","route","pathMatch","hasChildren","posParams","part","segment","consumed","shallowEqual","k1","getDataKeys","k2","equalArraysOrString","getOwnPropertySymbols","aSorted","sort","bSorted","wrapIntoObservable","isObservable","ɵisPromise","pathCompareMap","exact","equalSegmentGroups","containee","matrixParams","equalPath","matrixParamsMatch","numberOfChildren","c","children","subset","containsSegmentGroup","paramCompareMap","equalParams","containsParams","ignored","containsTree","paths","fragment","containsSegmentGroupHelper","containeePaths","containerPaths","containeeSegment","UrlTree","UrlSegmentGroup","queryParamMap","_queryParamMap","DEFAULT_SERIALIZER","serialize","serializePaths","UrlSegment","parameterMap","_parameterMap","serializePath","as","bs","UrlSerializer","DefaultUrlSerializer","UrlParser","parseRootSegment","parseQueryParams","parseFragment","tree","serializeSegment","serializeQueryParams","strParams","encodeUriQuery","encodeUriFragment","encodeURI","primary","mapChildrenIntoArray","childOutlet","encodeUriString","encodeUriSegment","decode","decodeQuery","serializeMatrixParams","SEGMENT_RE","matchSegments","str","MATRIX_PARAM_SEGMENT_RE","QUERY_PARAM_RE","QUERY_PARAM_VALUE_RE","remaining","consumeOptional","peekStartsWith","parseChildren","parseQueryParam","parseSegment","capture","parseParens","parseMatrixParams","parseParam","matchMatrixKeySegments","valueMatch","matchQueryParams","matchUrlQueryParamValue","decodedKey","decodedVal","currentVal","allowPrimary","outletName","createRoot","rootCandidate","Ra","squashSegmentGroup","newChildren","childCandidate","grandChildOutlet","grandChild","mergeTrivialChildren","isUrlTree","createSegmentGroupFromRoute","targetGroup","rootSegmentGroup","createSegmentGroupFromRouteRecursive","currentRoute","childOutlets","childSnapshot","outlet","createUrlTreeFromSegmentGroup","relativeTo","commands","nav","computeNavigation","Navigation","numberOfDoubleDots","isAbsolute","cmd","cmdIdx","outlets","segmentPath","urlPart","partIndex","toRoot","findStartingPositionForTargetGroup","Position","modifier","isMatrixParams","createPositionApplyingDoubleDots","group","ci","dd","newSegmentGroup","processChildren","updateSegmentGroupChildren","updateSegmentGroup","command","isCommandWithOutlets","oldRoot","oldSegmentGroup","qp","replaceSegment","newRoot","oldSegment","newSegment","cmdWithOutlet","prefixedWith","currentCommandIndex","currentPathIndex","noMatch","pathIndex","commandIndex","curr","compare","slicedCommands","createNewSegmentGroup","getOutlets","childrenOfEmptyChild","createNewSegmentChildren","IMPERATIVE_NAVIGATION","EventType","NavigationStart","NavigationEnd","NavigationCancel","NavigationError","RoutesRecognized","ResolveStart","ResolveEnd","GuardsCheckStart","GuardsCheckEnd","RouteConfigLoadStart","RouteConfigLoadEnd","ChildActivationStart","ChildActivationEnd","ActivationStart","ActivationEnd","NavigationSkipped","RouterEvent","navigationTrigger","restoredState","urlAfterRedirects","NavigationCancellationCode","Redirect","SupersededByNewNavigation","NoDataFromResolver","GuardRejected","NavigationSkippedCode","IgnoredSameUrlNavigation","IgnoredByUrlHandlingStrategy","reason","shouldActivate","snapshot","routeConfig","routerEvent","BeforeActivateRoutes","RedirectRequest","OutletContext","ChildrenOutletContexts","attachRef","contexts","onChildOutletCreated","childName","getOrCreateContext","onChildOutletDestroyed","getContext","onOutletDeactivated","onOutletReAttached","Tree","_root","pathFromRoot","findNode","siblings","findPath","cc","TreeNode","nodeChildrenAsMap","RouterState","setRouterState","createEmptyState","rootComponent","createEmptyStateSnapshot","activated","ActivatedRouteSnapshot","RouterStateSnapshot","emptyUrl","emptyParams","emptyData","emptyQueryParams","ActivatedRoute","urlSubject","paramsSubject","queryParamsSubject","fragmentSubject","dataSubject","futureSnapshot","_futureSnapshot","_routerState","paramMap","_paramMap","getInherited","paramsInheritanceStrategy","inherited","loadComponent","_resolvedData","hasStaticTitle","_resolve","serializeNode","advanceActivatedRoute","currentSnapshot","nextSnapshot","shallowEqualArrays","equalParamsAndUrlSegments","equalUrlParams","equalSegments","RouterOutlet","_activatedRoute","activateEvents","deactivateEvents","attachEvents","detachEvents","parentContexts","changeDetector","inputBinder","INPUT_BINDER","supportsBindingToComponentInputs","activatedComponentRef","isTrackedInParentContexts","deactivate","initializeOutletWithName","unsubscribeFromRouteData","activateWith","isActivated","activatedRoute","activatedRouteData","cmp","ref","bindActivatedRouteToOutletComponent","childContexts","OutletInjector","RoutedComponentInputBinder","outletDataSubscriptions","subscribeToRouteData","dataSubscription","mirror","reflectComponentType","createNode","routeReuseStrategy","prevState","shouldReuseRoute","createOrReuseChildren","shouldAttach","detachedRouteHandle","retrieve","createActivatedRoute","NAVIGATION_CANCELING_ERROR","redirectingNavigationError","urlSerializer","redirect","redirectTo","navigationBehaviorOptions","navigationCancelingError","cancellationCode","isNavigationCancelingError","ɵEmptyOutletComponent","standardizeConfig","loadChildren","getOutlet","getClosestRouteInjector","_loadedInjector","ActivateRoutes","futureState","currState","forwardEvent","inputBindingEnabled","activate","futureRoot","currRoot","deactivateChildRoutes","activateChildRoutes","futureNode","currNode","futureChild","childOutletName","deactivateRoutes","deactivateRouteAndItsChildren","parentContext","future","shouldDetach","detachAndStoreRouteSubtree","deactivateRouteAndOutlet","treeNode","activateRoutes","stored","CanActivate","CanDeactivate","getAllRouteGuards","getChildRouteGuards","getTokenOrFunctionIdentity","tokenOrFunction","isInjectable","ɵisInjectable","futurePath","checks","canDeactivateChecks","canActivateChecks","prevChildren","getRouteGuards","shouldRun","shouldRunGuardsAndResolvers","runGuardsAndResolvers","isEmptyError","INITIAL_VALUE","prioritizedGuardValue","results","redirectIfUrlTree","NoMatch","AbsoluteRedirect","urlTree","noMatch$1","ApplyRedirects","lineralizeSegments","applyRedirectCommands","newTree","applyRedirectCreateUrlTree","createSegmentGroup","createQueryParams","redirectToParams","actualParams","sourceName","updatedSegments","createSegments","redirectToSegments","actualSegments","findPosParam","findOrReturn","redirectToUrlSegment","consumedSegments","remainingSegments","positionalParamSegments","matchWithChecks","getOrCreateRouteInjectorIfNeeded","currentInjector","runCanMatchGuards","canMatch","injectionToken","guard","isCanMatch","createWildcardMatchResult","matcher","slicedSegments","containsEmptyPathMatchesWithNamedOutlets","routes","emptyPathMatch","createChildrenForEmptyPaths","containsEmptyPathMatches","addEmptyPathsToChildrenIfNeeded","primarySegment","NoLeftoversInUrl","Recognizer","configLoader","rootComponentType","applyRedirects","absoluteRedirectCount","allowRedirects","noMatchError","recognize","freeze","rootNode","routeState","createUrlTreeFromSnapshot","inheritParamsAndData","processSegmentGroup","routeNode","processSegment","sortedConfig","sortByMatchingOutlets","scan","accumulator","seed","scanInternals","hasSeed","emitOnNext","emitBeforeComplete","hasState","outletChildren","last$1","mergedChildren","mergeEmptyPathMatches","sortActivatedRouteSnapshots","nodes","localeCompare","processSegmentAgainstRoute","noLeftoversInUrl","rawSegment","isImmediateMatch","matchSegmentAgainstRoute","expandSegmentAgainstRouteUsingRedirect","newSegments","getChildConfig","childConfig","childInjector","getData","_loadedComponent","getResolve","matchedOnOutlet","_loadedRoutes","runCanLoadGuards","canLoad","isCanLoad","shouldLoadResult","cfg","canLoadFails","hasEmptyPathConfig","mergedNodes","duplicateEmptyPathNode","resultNode","mergedNode","flattenRouteTree","descendants","switchTap","nextResult","TitleStrategy","buildTitle","pageTitle","getResolvedTitleForRoute","DefaultTitleStrategy","updateTitle","ROUTER_CONFIGURATION","ROUTES","RouterConfigLoader","componentLoaders","WeakMap","childrenLoaders","compiler","onLoadStartListener","loadRunner","maybeUnwrapDefaultExport","onLoadEndListener","loader","factoryOrRoutes","rawRoutes","requireStandaloneComponents","isWrappedDefaultExport","default","UrlHandlingStrategy","DefaultUrlHandlingStrategy","shouldProcessUrl","extract","merge","newUrlPart","wholeUrl","CREATE_VIEW_TRANSITION","VIEW_TRANSITION_OPTIONS","createViewTransition","to","transitionOptions","startViewTransition","skipNextTransition","resolveViewTransitionStarted","viewTransitionStarted","transition","createRenderPromise","onViewTransitionCreated","NavigationTransitions","hasRequestedNavigation","navigationId","currentNavigation","currentTransition","lastSuccessfulNavigation","events","transitionAbortSubject","rootContexts","titleStrategy","urlHandlingStrategy","afterPreactivation","transitions","handleNavigationRequest","setupNavigations","router","initialUrlTree","initialRouterState","currentUrlTree","currentRawUrl","extractedUrl","rawUrl","extras","targetSnapshot","currentRouterState","targetRouterState","guards","guardsResult","overallTransitionState","completed","errored","cancelNavigationTransition","initialUrl","trigger","previousNavigation","urlTransition","navigated","isUpdatingInternalState","isUpdatedBrowserUrl","onSameUrlNavigation","serializer","recognize$1","finalUrl","routesRecognized","navStart","skipLocationChange","replaceUrl","guardsStart","checkGuards","runCanDeactivateChecks","futureRSS","currRSS","runCanDeactivate","currARS","canDeactivate","closestInjector","isCanDeactivate","isBoolean","runCanActivateChecks","fireChildActivationStart","fireActivationStart","runCanActivateChild","futureARS","canActivateChildGuardsMapped","getCanActivateChild","canActivateChild","isCanActivateChild","runCanActivate","canActivate","canActivateObservables","isCanActivate","guardsEnd","resolveStart","dataResolved","resolveData","routesWithResolversToRun","routesNeedingDataUpdates","newRoute","routesProcessed","runResolve","resolveNode","getResolver","resolver","resolvedData","resolveEnd","loadComponents","loaders","loadedComponent","createRouterState","isRedirectingNavigationCancelingError","ee","resolveNavigationPromiseOnError","navCancel","isBrowserTriggeredNavigation","RouteReuseStrategy","DefaultRouteReuseStrategy","BaseRouteReuseStrategy","detachedTree","ɵDefaultRouteReuseStrategy_BaseFactory","StateManager","HistoryStateManager","canceledNavigationResolution","urlUpdateStrategy","rawUrlTree","currentPageId","lastSuccessfulId","routerState","stateMemento","createStateMemento","getCurrentUrlTree","getRawUrlTree","browserPageId","ɵrouterPageId","getRouterState","registerNonRouterCurrentEntryChangeListener","handleRouterEvent","setBrowserUrl","restoreHistory","generateNgRouterState","navigation","restoringFromCaughtError","targetPagePosition","resetState","resetUrlToCurrentUrlTree","routerPageId","ɵHistoryStateManager_BaseFactory","NavigationResult","COMPLETE","FAILED","REDIRECTING","afterNextNavigation","exactMatchOptions","subsetMatchOptions","Router","stateManager","_events","disposed","isNgZoneEnabled","ɵConsole","navigationTransitions","componentInputBindingEnabled","eventsSubscription","resetConfig","subscribeToNavigationEvents","mergedTree","info","scheduleNavigation","isPublicRouterEvent","resetRootComponentType","initialNavigation","setUpLocationChangeListener","navigateToSyncWithBrowser","nonRouterCurrentEntryChangeSubscription","stateCopy","parseUrl","serializeUrl","getCurrentNavigation","dispose","createUrlTree","navigationExtras","queryParamsHandling","preserveFragment","relativeToUrlSegmentGroup","removeEmptyProps","navigateByUrl","navigate","validateCommands","isActive","matchOptions","priorPromise","RouterLink","tabIndexAttribute","onChanges","isAnchorElement","updateHref","setTabIndexIfNotOnNativeEl","newTabIndex","applyAttributeValue","routerLink","onClick","button","sanitizedValue","ɵɵsanitizeUrlOrResourceUrl","tag","getUrlSanitizer","i3","$event","PreloadingStrategy","RouterPreloader","preloadingStrategy","setUpPreloading","preload","processRoutes","injectorForCurrentRoute","injectorForChildren","preloadConfig","loadedChildren$","recursiveLoadChildren$","ROUTER_SCROLLER","RouterScroller","viewportScroller","lastId","lastSource","restoredId","scrollPositionRestoration","anchorScrolling","routerEventsSubscription","createScrollEvents","scrollEventsSubscription","consumeScrollEvents","scheduleScrollEvent","routerFeature","getBootstrapListener","bootstrappedComponentRef","bootstrapDone","BOOTSTRAP_DONE","INITIAL_NAVIGATION","ROUTER_PRELOADER","withPreloading","withViewTransitions","skipInitialTransition","ROUTER_FORROOT_GUARD","ROUTER_PROVIDERS","rootRoute","RouterModule","forRoot","provideForRootGuard","useHash","scrollOffset","provideInitialNavigation","bindToComponentInputs","enableViewTransitions","ROUTER_INITIALIZER","forChild","locationInitialized","AppComponent","Easing","Linear","amount","In","Out","InOut","Quadratic","Cubic","Quartic","Quintic","Sinusoidal","sin","PI","pow","Circular","sqrt","Elastic","Back","Bounce","generatePow","power","EPSILON","now","_tweens","_tweensAddedDuringUpdate","_this","tweenId","removeAll","tween","getId","time","preserve","tweenIds","Interpolation","Utils","Bezier","pw","bn","Bernstein","CatmullRom","p0","p1","fc","Factorial","p2","p3","t2","Sequence","nextId","_nextId","mainGroup","Tween","_object","_group","_isPaused","_pauseStart","_valuesStart","_valuesEnd","_valuesStartRepeat","_duration","_isDynamic","_initialRepeat","_repeat","_yoyo","_isPlaying","_reversed","_delayTime","_startTime","_easingFunction","_interpolationFunction","_chainedTweens","_onStartCallbackFired","_onEveryStartCallbackFired","_id","_isChainStopped","_propertiesAreSetUp","_goToEnd","isPlaying","isPaused","getDuration","duration","dynamic","overrideStartingValues","_swapEndStartRepeatValues","tmp","_setupProperties","startFromCurrentValues","startValue","startValueIsArray","propType","isInterpolationList","endValues","temp","l","_handleRelativeValue","nestedObject","stop","stopChainedTweens","_onStopCallback","pause","numChainedTweens","times","repeatDelay","_repeatDelayTime","yoyo","easing","easingFunction","interpolation","interpolationFunction","tweens","_i","onStart","_onStartCallback","onEveryStart","_onEveryStartCallback","onUpdate","_onUpdateCallback","onRepeat","_onRepeatCallback","_onCompleteCallback","onStop","autoStart","elapsedTime","durationAndDelay","totalTime","elapsed","timesRepeated","trunc","portion","calculateElapsedPortion","_updateProperties","completeCount","startIsArray","endIsArray","endValue","TWEEN","REVISION","PCFShadowMap","PCFSoftShadowMap","VSMShadowMap","MultiplyOperation","MixOperation","AddOperation","NoToneMapping","LinearToneMapping","ReinhardToneMapping","CineonToneMapping","ACESFilmicToneMapping","CustomToneMapping","AgXToneMapping","NeutralToneMapping","AttachedBindMode","CubeReflectionMapping","CubeRefractionMapping","CubeUVReflectionMapping","RepeatWrapping","ClampToEdgeWrapping","MirroredRepeatWrapping","NearestFilter","NearestMipmapLinearFilter","LinearFilter","LinearMipmapNearestFilter","LinearMipmapLinearFilter","UnsignedByteType","UnsignedIntType","FloatType","HalfFloatType","UnsignedInt248Type","RGBAFormat","DepthFormat","DepthStencilFormat","InterpolateDiscrete","InterpolateLinear","SRGBColorSpace","LinearSRGBColorSpace","DisplayP3ColorSpace","LinearDisplayP3ColorSpace","LinearTransfer","SRGBTransfer","Rec709Primaries","P3Primaries","KeepStencilOp","GLSL3","WebGLCoordinateSystem","EventDispatcher","_listeners","hasEventListener","listenerArray","_lut","_seed","DEG2RAD","RAD2DEG","generateUUID","d0","random","d1","d2","d3","clamp","euclideanModulo","lerp","y","isPowerOfTwo","floorPowerOfTwo","LN2","denormalize","Float32Array","Uint32Array","Uint16Array","Uint8Array","Int32Array","Int16Array","Int8Array","round","MathUtils","mapLinear","a1","a2","b1","b2","inverseLerp","damp","lambda","dt","pingpong","smoothstep","smootherstep","randInt","low","high","randFloat","randFloatSpread","range","seededRandom","degToRad","degrees","radToDeg","radians","ceilPowerOfTwo","ceil","setQuaternionFromProperEuler","order","cos","c2","s2","c13","s13","c1_3","s1_3","c3_1","s3_1","Vector2","isVector2","width","height","setScalar","scalar","setX","setY","setComponent","getComponent","copy","addScalar","addVectors","addScaledVector","sub","subScalar","subVectors","multiply","multiplyScalar","divide","divideScalar","applyMatrix3","clampScalar","minVal","maxVal","clampLength","roundToZero","negate","dot","cross","lengthSq","manhattanLength","angle","atan2","angleTo","denominator","theta","acos","distanceTo","distanceToSquared","dx","dy","manhattanDistanceTo","setLength","alpha","lerpVectors","equals","fromArray","fromBufferAttribute","attribute","getX","getY","rotateAround","center","Matrix3","n11","n12","n13","n21","n22","n23","n31","n32","n33","isMatrix3","te","me","extractBasis","xAxis","yAxis","zAxis","setFromMatrix3Column","setFromMatrix4","multiplyMatrices","premultiply","ae","be","a11","a12","a13","a21","a22","a23","a31","a32","a33","b11","b12","b13","b21","b22","b23","b31","b32","b33","determinant","h","invert","t11","t12","t13","det","detInv","transpose","getNormalMatrix","matrix4","transposeIntoArray","setUvTransform","tx","ty","sx","sy","rotation","cx","cy","scale","_m3","makeScale","rotate","makeRotation","translate","makeTranslation","matrix","arrayNeedsUint32","TYPED_ARRAYS","Uint8ClampedArray","Float64Array","getTypedArray","createCanvasElement","canvas","display","_cache","warnOnce","LINEAR_SRGB_TO_LINEAR_DISPLAY_P3","LINEAR_DISPLAY_P3_TO_LINEAR_SRGB","COLOR_SPACES","Qh","transfer","primaries","toReference","color","fromReference","convertSRGBToLinear","convertLinearToSRGB","QD","Kk","SUPPORTED_WORKING_COLOR_SPACES","ColorManagement","_workingColorSpace","workingColorSpace","colorSpace","convert","sourceColorSpace","targetColorSpace","targetFromReference","sourceToReference","fromWorkingColorSpace","toWorkingColorSpace","getPrimaries","getTransfer","SRGBToLinear","LinearToSRGB","_canvas","ImageUtils","getDataURL","image","HTMLCanvasElement","ImageData","putImageData","drawImage","toDataURL","sRGBToLinear","HTMLImageElement","ImageBitmap","imageData","getImageData","_sourceId","Source","isSource","uuid","dataReady","needsUpdate","toJSON","isRootObject","images","output","serializeImage","isDataTexture","_textureId","Texture","DEFAULT_IMAGE","mapping","DEFAULT_MAPPING","wrapS","wrapT","magFilter","minFilter","anisotropy","DEFAULT_ANISOTROPY","isTexture","mipmaps","channel","internalFormat","matrixAutoUpdate","generateMipmaps","premultiplyAlpha","flipY","unpackAlignment","userData","isRenderTargetTexture","needsPMREMUpdate","updateMatrix","textures","wrap","transformUv","uv","Vector4","z","w","isVector4","setZ","setW","applyMatrix4","setAxisAngleFromQuaternion","setAxisAngleFromRotationMatrix","m11","m12","m13","m21","m22","m23","m31","m32","m33","epsilon","epsilon2","xx","yy","zz","xy","xz","yz","getZ","getW","RenderTarget","isRenderTarget","depth","scissor","scissorTest","viewport","assign","depthBuffer","stencilBuffer","depthTexture","samples","texture","setSize","il","WebGLRenderTarget","isWebGLRenderTarget","DataArrayTexture","isDataArrayTexture","wrapR","Data3DTexture","isData3DTexture","Quaternion","isQuaternion","_x","_y","_z","_w","slerpFlat","dstOffset","src0","srcOffset0","src1","srcOffset1","x0","y0","z0","w0","x1","y1","z1","w1","sqrSin","len","tDir","multiplyQuaternionsFlat","_onChangeCallback","quaternion","setFromEuler","euler","_order","c1","c3","s1","s3","setFromAxisAngle","axis","halfAngle","setFromRotationMatrix","trace","setFromUnitVectors","vFrom","vTo","rotateTowards","slerp","conjugate","multiplyQuaternions","qax","qay","qaz","qaw","qbx","qby","qbz","qbw","qb","cosHalfTheta","sqrSinHalfTheta","sinHalfTheta","halfTheta","ratioA","ratioB","slerpQuaternions","qa","theta1","theta2","r1","r2","_onChange","Vector3","isVector3","multiplyVectors","applyEuler","applyQuaternion","_quaternion$4","applyAxisAngle","applyNormalMatrix","vx","vy","vz","qx","qy","qz","qw","tz","camera","matrixWorldInverse","projectionMatrix","unproject","projectionMatrixInverse","matrixWorld","transformDirection","crossVectors","ax","ay","az","bx","by","bz","projectOnVector","projectOnPlane","planeNormal","_vector$c","reflect","normal","dz","setFromSpherical","setFromSphericalCoords","radius","phi","sinPhiRadius","setFromCylindrical","setFromCylindricalCoords","setFromMatrixPosition","setFromMatrixScale","setFromMatrixColumn","sz","setFromColor","randomDirection","Box3","isBox3","setFromArray","makeEmpty","expandByPoint","_vector$b","setFromBufferAttribute","setFromPoints","points","setFromCenterAndSize","halfSize","setFromObject","object","precise","expandByObject","box","getCenter","getSize","point","expandByVector","vector","expandByScalar","updateWorldMatrix","geometry","positionAttribute","isInstancedMesh","isMesh","getVertexPosition","boundingBox","computeBoundingBox","_box$4","union","containsPoint","containsBox","getParameter","intersectsBox","intersectsSphere","sphere","clampPoint","intersectsPlane","plane","constant","intersectsTriangle","triangle","_center","_extents","_v0$2","_v1$7","_v2$4","_f0","_f1","_f2","axes","satForAxes","_triangleNormal","distanceToPoint","getBoundingSphere","intersect","_points","_testAxis","extents","_box$3","_v1$6","_v2$3","Sphere","isSphere","optionalCenter","maxRadiusSq","radiusSum","deltaLengthSq","getBoundingBox","getMaxScaleOnAxis","_vector$a","_segCenter","_segDir","_diff","_edge1","_edge2","_normal$1","Ray","direction","ray","lookAt","recast","closestPointToPoint","directionDistance","distanceSqToPoint","distanceSqToSegment","optionalPointOnRay","optionalPointOnSegment","segExtent","a01","b0","s0","sqrDist","extDet","invDet","intersectSphere","tca","radius2","thc","t0","t1","distanceToPlane","intersectPlane","distToPoint","intersectBox","tmin","tmax","tymin","tymax","tzmin","tzmax","invdirx","invdiry","invdirz","intersectTriangle","backfaceCulling","sign","DdN","DdQxE2","DdE1xQ","QdN","Matrix4","n14","n24","n34","n41","n42","n43","n44","isMatrix4","copyPosition","setFromMatrix3","makeBasis","extractRotation","scaleX","_v1$5","scaleY","scaleZ","makeRotationFromEuler","af","bf","ce","de","df","ac","ad","bc","bd","makeRotationFromQuaternion","compose","_zero","_one","eye","up","a14","a24","a34","a41","a42","a43","a44","b14","b24","b34","b41","b42","b43","b44","setPosition","t14","makeRotationX","makeRotationY","makeRotationZ","makeRotationAxis","makeShear","yx","zx","zy","x2","y2","z2","wx","wy","wz","decompose","_m1$4","invSX","invSY","invSZ","makePerspective","right","bottom","near","far","coordinateSystem","makeOrthographic","zInv","_matrix$2","_quaternion$3","Euler","DEFAULT_ORDER","isEuler","asin","setFromQuaternion","setFromVector3","reorder","newOrder","Layers","mask","enable","enableAll","toggle","disable","disableAll","layers","isEnabled","_object3DId","_v1$4","_q1","_m1$3","_position$3","_scale$2","_quaternion$2","_xAxis","_yAxis","_zAxis","_addedEvent","_removedEvent","_childaddedEvent","_childremovedEvent","Object3D","isObject3D","DEFAULT_UP","onRotationChange","onQuaternionChange","defineProperties","configurable","enumerable","modelViewMatrix","normalMatrix","DEFAULT_MATRIX_AUTO_UPDATE","matrixWorldAutoUpdate","DEFAULT_MATRIX_WORLD_AUTO_UPDATE","matrixWorldNeedsUpdate","visible","castShadow","receiveShadow","frustumCulled","renderOrder","animations","onBeforeShadow","onAfterShadow","onBeforeRender","onAfterRender","setRotationFromAxisAngle","setRotationFromEuler","setRotationFromMatrix","setRotationFromQuaternion","rotateOnAxis","rotateOnWorldAxis","rotateX","rotateY","rotateZ","translateOnAxis","distance","translateX","translateY","translateZ","localToWorld","worldToLocal","isCamera","isLight","removeFromParent","getObjectById","getObjectByProperty","getObjectByName","getObjectsByProperty","getWorldPosition","getWorldQuaternion","getWorldScale","getWorldDirection","raycast","traverse","traverseVisible","traverseAncestors","updateMatrixWorld","force","updateParents","updateChildren","geometries","materials","shapes","skeletons","library","instanceMatrix","instanceColor","isBatchedMesh","perObjectFrustumCulled","sortObjects","drawRanges","_drawRanges","reservedRanges","_reservedRanges","visibility","_visibility","_active","bounds","_bounds","bound","boxInitialized","boxMin","boxMax","sphereInitialized","sphereRadius","sphereCenter","maxGeometryCount","_maxGeometryCount","maxVertexCount","_maxVertexCount","maxIndexCount","_maxIndexCount","geometryInitialized","_geometryInitialized","geometryCount","_geometryCount","matricesTexture","_matricesTexture","boundingSphere","isScene","background","isColor","isLine","isPoints","isSkinnedMesh","bindMode","bindMatrix","skeleton","material","uuids","extractFromCache","cache","recursive","_v0$1","_v1$3","_v2$2","_v3$2","_vab","_vac","_vbc","_vap","_vbp","_vcp","Triangle","getNormal","targetLengthSq","getBarycoord","dot00","dot01","dot02","dot11","dot12","denom","invDenom","getInterpolation","v3","isFrontFacing","setFromPointsAndIndices","i2","setFromAttributeAndIndices","getArea","getMidpoint","getPlane","setFromCoplanarPoints","d4","vc","d5","d6","vb","va","_colorKeywords","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","_hslA","_hslB","hue2rgb","Color","setHex","setRGB","hex","setHSL","handleAlpha","string","exec","setColorName","copySRGBToLinear","copyLinearToSRGB","getHex","_color","getHexString","getHSL","hue","saturation","lightness","getRGB","getStyle","toFixed","offsetHSL","addColors","color1","color2","lerpColors","lerpHSL","NAMES","_materialId","Material","isMaterial","blending","side","vertexColors","opacity","transparent","alphaHash","blendSrc","blendDst","blendEquation","blendSrcAlpha","blendDstAlpha","blendEquationAlpha","blendColor","blendAlpha","depthFunc","depthTest","depthWrite","stencilWriteMask","stencilFunc","stencilRef","stencilFuncMask","stencilFail","stencilZFail","stencilZPass","stencilWrite","clippingPlanes","clipIntersection","clipShadows","shadowSide","colorWrite","precision","polygonOffset","polygonOffsetFactor","polygonOffsetUnits","dithering","alphaToCoverage","premultipliedAlpha","forceSinglePass","toneMapped","_alphaTest","alphaTest","onBuild","onBeforeCompile","customProgramCacheKey","setValues","roughness","metalness","sheen","sheenColor","sheenRoughness","emissive","emissiveIntensity","specular","specularIntensity","specularColor","shininess","clearcoat","clearcoatRoughness","clearcoatMap","clearcoatRoughnessMap","clearcoatNormalMap","clearcoatNormalScale","iridescence","iridescenceIOR","iridescenceThicknessRange","iridescenceMap","iridescenceThicknessMap","anisotropyRotation","anisotropyMap","matcap","alphaMap","lightMap","lightMapIntensity","aoMap","aoMapIntensity","bumpMap","bumpScale","normalMap","normalMapType","normalScale","displacementMap","displacementScale","displacementBias","roughnessMap","metalnessMap","emissiveMap","specularMap","specularIntensityMap","specularColorMap","envMap","combine","envMapRotation","envMapIntensity","reflectivity","refractionRatio","gradientMap","transmission","transmissionMap","thickness","thicknessMap","attenuationDistance","attenuationColor","sizeAttenuation","linewidth","dashSize","gapSize","wireframe","wireframeLinewidth","wireframeLinecap","wireframeLinejoin","flatShading","fog","srcPlanes","dstPlanes","MeshBasicMaterial","isMeshBasicMaterial","_vector$9","_vector2$1","BufferAttribute","itemSize","normalized","isBufferAttribute","_updateRange","updateRanges","gpuType","onUploadCallback","updateRange","setUsage","addUpdateRange","clearUpdateRanges","copyAt","copyArray","setXY","setXYZ","setXYZW","onUpload","Uint16BufferAttribute","Uint32BufferAttribute","Float32BufferAttribute","_id$2","_m1$2","_obj","_offset","_box$2","_boxMorphTargets","_vector$8","BufferGeometry","isBufferGeometry","attributes","morphAttributes","morphTargetsRelative","drawRange","getIndex","setIndex","deleteAttribute","hasAttribute","addGroup","materialIndex","clearGroups","setDrawRange","tangent","computeBoundingSphere","morphAttributesPosition","isGLBufferAttribute","morphAttribute","jl","computeTangents","normalAttribute","uvAttribute","tangentAttribute","tan1","tan2","vA","vB","vC","uvA","uvB","uvC","sdir","tdir","handleTriangle","tmp2","n2","handleVertex","computeVertexNormals","pA","pB","pC","nA","nB","nC","ab","normalizeNormals","normals","toNonIndexed","convertBufferAttribute","indices","array2","isInterleavedBufferAttribute","stride","geometry2","newAttribute","morphArray","hasMorphAttributes","attributeArray","_inverseMatrix$3","_ray$3","_sphere$6","_sphereHitAt","_vA$1","_vB$1","_vC$1","_tempA","_morphA","_uvA$1","_uvB$1","_uvC$1","_normalA","_normalB","_normalC","_intersectionPoint","_intersectionPointWorld","Mesh","updateMorphTargets","morphTargetInfluences","morphTargetDictionary","ml","morphPosition","morphInfluences","influence","raycaster","intersects","_computeIntersections","rayLocalSpace","intersection","uv1","groupMaterial","checkGeometryIntersection","faceIndex","face","checkIntersection","BoxGeometry","widthSegments","heightSegments","depthSegments","scope","vertices","uvs","numberOfVertices","groupStart","buildPlane","udir","vdir","gridX","gridY","segmentWidth","segmentHeight","widthHalf","heightHalf","depthHalf","gridX1","gridY1","vertexCounter","groupCount","iy","ix","fromJSON","cloneUniforms","mergeUniforms","uniforms","merged","getUnlitUniformColorSpace","getRenderTarget","outputColorSpace","UniformsUtils","ShaderMaterial","isShaderMaterial","defines","uniformsGroups","vertexShader","fragmentShader","lights","clipping","extensions","derivatives","fragDepth","drawBuffers","shaderTextureLOD","clipCullDistance","multiDraw","defaultAttributeValues","index0AttributeName","uniformsNeedUpdate","glslVersion","cloneUniformsGroups","Camera","_v3$1","_minTarget","_maxTarget","PerspectiveCamera","fov","aspect","isPerspectiveCamera","zoom","filmGauge","filmOffset","updateProjectionMatrix","setFocalLength","focalLength","vExtentSlope","getFilmHeight","atan","getFocalLength","getEffectiveFOV","getFilmWidth","getViewBounds","minTarget","maxTarget","getViewSize","setViewOffset","fullWidth","fullHeight","offsetX","offsetY","clearViewOffset","skew","CubeCamera","renderTarget","activeMipmapLevel","cameraPX","cameraNX","cameraPY","cameraNY","cameraPZ","cameraNZ","updateCoordinateSystem","cameras","scene","currentRenderTarget","currentActiveCubeFace","getActiveCubeFace","currentActiveMipmapLevel","getActiveMipmapLevel","currentXrEnabled","xr","setRenderTarget","render","CubeTexture","isCubeTexture","WebGLCubeRenderTarget","isWebGLCubeRenderTarget","fromEquirectangularTexture","shader","tEquirect","mesh","currentMinFilter","stencil","_vector1","_vector2","_normalMatrix","Plane","isPlane","setComponents","setFromNormalAndCoplanarPoint","inverseNormalLength","distanceToSphere","projectPoint","intersectLine","intersectsLine","startSign","endSign","coplanarPoint","optionalNormalMatrix","referencePoint","_sphere$5","_vector$7","Frustum","p4","p5","planes","frustum","setFromProjectionMatrix","me0","me1","me2","me3","me4","me5","me6","me7","me8","me9","me10","me11","me12","me13","me14","me15","intersectsObject","intersectsSprite","sprite","negRadius","WebGLAnimation","isAnimating","animationLoop","requestId","onAnimationFrame","frame","cancelAnimationFrame","setAnimationLoop","setContext","WebGLAttributes","gl","capabilities","isWebGL2","buffers","deleteBuffer","bufferType","cached","bytesPerElement","elementSize","createBuffer","byteLength","bindBuffer","bufferData","FLOAT","isFloat16BufferAttribute","HALF_FLOAT","UNSIGNED_SHORT","SHORT","UNSIGNED_INT","INT","BYTE","UNSIGNED_BYTE","BYTES_PER_ELEMENT","updateBuffer","bufferSubData","subarray","PlaneGeometry","width_half","height_half","segment_width","segment_height","ShaderChunk","alphahash_fragment","alphahash_pars_fragment","alphamap_fragment","alphamap_pars_fragment","alphatest_fragment","alphatest_pars_fragment","aomap_fragment","aomap_pars_fragment","batching_pars_vertex","batching_vertex","begin_vertex","beginnormal_vertex","bsdfs","iridescence_fragment","bumpmap_pars_fragment","clipping_planes_fragment","clipping_planes_pars_fragment","clipping_planes_pars_vertex","clipping_planes_vertex","color_fragment","color_pars_fragment","color_pars_vertex","color_vertex","cube_uv_reflection_fragment","defaultnormal_vertex","displacementmap_pars_vertex","displacementmap_vertex","emissivemap_fragment","emissivemap_pars_fragment","colorspace_fragment","colorspace_pars_fragment","envmap_fragment","envmap_common_pars_fragment","envmap_pars_fragment","envmap_pars_vertex","envmap_physical_pars_fragment","envmap_vertex","fog_vertex","fog_pars_vertex","fog_fragment","fog_pars_fragment","gradientmap_pars_fragment","lightmap_fragment","lightmap_pars_fragment","lights_lambert_fragment","lights_lambert_pars_fragment","lights_pars_begin","lights_toon_fragment","lights_toon_pars_fragment","lights_phong_fragment","lights_phong_pars_fragment","lights_physical_fragment","lights_physical_pars_fragment","lights_fragment_begin","lights_fragment_maps","lights_fragment_end","logdepthbuf_fragment","logdepthbuf_pars_fragment","logdepthbuf_pars_vertex","logdepthbuf_vertex","map_fragment","map_pars_fragment","map_particle_fragment","map_particle_pars_fragment","metalnessmap_fragment","metalnessmap_pars_fragment","morphinstance_vertex","morphcolor_vertex","morphnormal_vertex","morphtarget_pars_vertex","morphtarget_vertex","normal_fragment_begin","normal_fragment_maps","normal_pars_fragment","normal_pars_vertex","normal_vertex","normalmap_pars_fragment","clearcoat_normal_fragment_begin","clearcoat_normal_fragment_maps","clearcoat_pars_fragment","iridescence_pars_fragment","opaque_fragment","packing","premultiplied_alpha_fragment","project_vertex","dithering_fragment","dithering_pars_fragment","roughnessmap_fragment","roughnessmap_pars_fragment","shadowmap_pars_fragment","shadowmap_pars_vertex","shadowmap_vertex","shadowmask_pars_fragment","skinbase_vertex","skinning_pars_vertex","skinning_vertex","skinnormal_vertex","specularmap_fragment","specularmap_pars_fragment","tonemapping_fragment","tonemapping_pars_fragment","transmission_fragment","transmission_pars_fragment","uv_pars_fragment","uv_pars_vertex","uv_vertex","worldpos_vertex","background_vert","background_frag","backgroundCube_vert","backgroundCube_frag","cube_vert","cube_frag","depth_vert","depth_frag","distanceRGBA_vert","distanceRGBA_frag","equirect_vert","equirect_frag","linedashed_vert","linedashed_frag","meshbasic_vert","meshbasic_frag","meshlambert_vert","meshlambert_frag","meshmatcap_vert","meshmatcap_frag","meshnormal_vert","meshnormal_frag","meshphong_vert","meshphong_frag","meshphysical_vert","meshphysical_frag","meshtoon_vert","meshtoon_frag","points_vert","points_frag","shadow_vert","shadow_frag","sprite_vert","sprite_frag","UniformsLib","diffuse","mapTransform","alphaMapTransform","specularmap","specularMapTransform","envmap","flipEnvMap","ior","aomap","aoMapTransform","lightmap","lightMapTransform","bumpmap","bumpMapTransform","normalmap","normalMapTransform","displacementmap","displacementMapTransform","emissivemap","emissiveMapTransform","metalnessmap","metalnessMapTransform","roughnessmap","roughnessMapTransform","gradientmap","fogDensity","fogNear","fogFar","fogColor","ambientLightColor","lightProbe","directionalLights","directionalLightShadows","shadowBias","shadowNormalBias","shadowRadius","shadowMapSize","directionalShadowMap","directionalShadowMatrix","spotLights","coneCos","penumbraCos","decay","spotLightShadows","spotLightMap","spotShadowMap","spotLightMatrix","pointLights","pointLightShadows","shadowCameraNear","shadowCameraFar","pointShadowMap","pointShadowMatrix","hemisphereLights","skyColor","groundColor","rectAreaLights","ltc_1","ltc_2","uvTransform","ShaderLib","basic","lambert","phong","standard","toon","dashed","totalSize","t2D","backgroundIntensity","backgroundCube","backgroundBlurriness","backgroundRotation","cube","tCube","tFlip","equirect","distanceRGBA","referencePosition","nearDistance","farDistance","shadow","physical","clearcoatMapTransform","clearcoatNormalMapTransform","clearcoatRoughnessMapTransform","iridescenceMapTransform","iridescenceThicknessMinimum","iridescenceThicknessMaximum","iridescenceThicknessMapTransform","sheenColorMap","sheenColorMapTransform","sheenRoughnessMap","sheenRoughnessMapTransform","transmissionMapTransform","transmissionSamplerSize","transmissionSamplerMap","thicknessMapTransform","specularColorMapTransform","specularIntensityMapTransform","anisotropyVector","anisotropyMapTransform","_rgb","_e1$1","_m1$1","WebGLBackground","cubemaps","cubeuvmaps","objects","clearColor","planeMesh","boxMesh","clearAlpha","currentBackground","currentBackgroundVersion","currentTonemapping","setClear","getClearColor","setClearColor","getClearAlpha","setClearAlpha","renderList","forceClear","environmentBlendMode","getEnvironmentBlendMode","autoClear","autoClearColor","autoClearDepth","autoClearStencil","toneMapping","WebGLBindingStates","maxVertexAttributes","MAX_VERTEX_ATTRIBS","extension","vaoAvailable","bindingStates","defaultState","createBindingState","currentState","forceUpdate","bindVertexArrayObject","vao","bindVertexArray","bindVertexArrayOES","deleteVertexArrayObject","deleteVertexArray","deleteVertexArrayOES","newAttributes","enabledAttributes","attributeDivisors","program","initAttributes","enableAttribute","enableAttributeAndDivisor","meshPerAttribute","enableVertexAttribArray","disableUnusedAttributes","disableVertexAttribArray","vertexAttribPointer","vertexAttribIPointer","resetDefaultState","setup","updateBuffers","getBindingState","programMap","createVertexArrayObject","createVertexArray","createVertexArrayOES","cachedAttributes","geometryAttributes","attributesNum","programAttributes","getAttributes","cachedAttribute","geometryAttribute","saveCache","ELEMENT_ARRAY_BUFFER","setupVertexAttributes","isInstancedBufferGeometry","materialDefaultAttributeValues","programAttribute","isInstancedInterleavedBuffer","locationSize","_maxInstanceCount","ARRAY_BUFFER","isInstancedBufferAttribute","vertexAttrib2fv","vertexAttrib3fv","vertexAttrib4fv","vertexAttrib1fv","geometryId","programId","releaseStatesOfGeometry","releaseStatesOfProgram","WebGLBufferRenderer","setMode","drawArrays","renderInstances","primcount","methodName","renderMultiDraw","starts","counts","drawCount","multiDrawArraysWEBGL","elementCount","WebGLCapabilities","maxAnisotropy","getMaxPrecision","getShaderPrecisionFormat","VERTEX_SHADER","HIGH_FLOAT","FRAGMENT_SHADER","MEDIUM_FLOAT","WebGL2RenderingContext","maxPrecision","logarithmicDepthBuffer","maxTextures","MAX_TEXTURE_IMAGE_UNITS","maxVertexTextures","MAX_VERTEX_TEXTURE_IMAGE_UNITS","maxTextureSize","MAX_TEXTURE_SIZE","maxCubemapSize","MAX_CUBE_MAP_TEXTURE_SIZE","maxAttributes","maxVertexUniforms","MAX_VERTEX_UNIFORM_VECTORS","maxVaryings","MAX_VARYING_VECTORS","maxFragmentUniforms","MAX_FRAGMENT_UNIFORM_VECTORS","vertexTextures","floatFragmentTextures","getMaxAnisotropy","MAX_TEXTURE_MAX_ANISOTROPY_EXT","floatVertexTextures","maxSamples","MAX_SAMPLES","WebGLClipping","globalState","numGlobalPlanes","localClippingEnabled","renderingShadows","viewNormalMatrix","uniform","projectPlanes","skipTransform","nPlanes","dstArray","flatSize","viewMatrix","i4","numPlanes","numIntersection","enableLocalClipping","beginShadows","endShadows","setGlobalState","setState","useCache","materialProperties","resetGlobalState","nGlobal","lGlobal","clippingState","WebGLCubeMaps","mapTextureMapping","onTextureDispose","cubemap","OrthographicCamera","isOrthographicCamera","scaleW","scaleH","EXTRA_LOD_SIGMA","_flatCamera","_clearColor","_oldTarget","_oldActiveCubeFace","_oldActiveMipmapLevel","PHI","INV_PHI","_axisDirections","PMREMGenerator","_pingPongRenderTarget","_lodMax","_cubeSize","_lodPlanes","_sizeLods","_sigmas","_blurMaterial","_cubemapMaterial","_equirectMaterial","_compileMaterial","fromScene","sigma","_setSize","cubeUVRenderTarget","_allocateTargets","_sceneToCubeUV","_blur","_applyPMREM","_cleanup","fromEquirectangular","equirectangular","_fromTexture","fromCubemap","compileCubemapShader","_getCubemapMaterial","compileEquirectangularShader","_getEquirectMaterial","_dispose","cubeSize","log2","outputTarget","_setViewport","_textureToCubeUV","_createRenderTarget","sizeLods","lodPlanes","sigmas","_createPlanes","lodMax","lod","totalLods","sizeLod","texelSize","cubeFaces","positionSize","uvSize","faceIndexSize","_getBlurShader","weights","poleAxis","CUBEUV_TEXEL_WIDTH","CUBEUV_TEXEL_HEIGHT","CUBEUV_MAX_MIP","latitudinal","dTheta","mipInt","tmpMesh","compile","cubeCamera","upSign","forwardSign","originalAutoClear","backgroundMaterial","backgroundBox","useSolidColor","col","lodIn","lodOut","pingPongRenderTarget","_halfBlur","targetIn","targetOut","sigmaRadians","blurMaterial","blurMesh","blurUniforms","pixels","radiansPerPixel","sigmaPixels","sum","weight","outputSize","WebGLCubeUVMaps","cubeUVmaps","pmremGenerator","cubemapUV","isEquirectMap","isCubeMap","isCubeTextureComplete","WebGLExtensions","getExtension","WebGLGeometries","wireframeAttributes","onGeometryDispose","memory","updateWireframeAttribute","geometryIndex","geometryPosition","previousAttribute","getWireframeAttribute","currentAttribute","WebGLIndexedBufferRenderer","drawElements","multiDrawElementsWEBGL","WebGLInfo","calls","triangles","lines","programs","autoReset","instanceCount","TRIANGLES","LINES","LINE_STRIP","LINE_LOOP","POINTS","numericalSort","absNumericalSort","WebGLMorphtargets","influencesList","morphTextures","morph","workInfluences","objectInfluences","morphTargetsCount","entry","disposeTexture","hasMorphPosition","hasMorphNormals","hasMorphColors","morphTargets","morphNormals","morphColors","vertexDataCount","vertexDataStride","morphTarget","morphNormal","morphColor","morphTexture","getUniforms","morphInfluencesSum","morphBaseInfluence","influences","MAX_SAFE_INTEGER","WebGLObjects","updateMap","onInstancedMeshDispose","instancedMesh","buffergeometry","DepthTexture","isDepthTexture","compareFunction","emptyTexture","emptyShadowTexture","emptyArrayTexture","empty3dTexture","emptyCubeTexture","arrayCacheF32","arrayCacheI32","mat4array","mat3array","mat2array","nBlocks","blockSize","firstElem","arraysEqual","allocTexUnits","allocateTextureUnit","setValueV1f","uniform1f","addr","setValueV2f","uniform2f","uniform2fv","setValueV3f","uniform3f","uniform3fv","setValueV4f","uniform4f","uniform4fv","setValueM2","uniformMatrix2fv","setValueM3","uniformMatrix3fv","setValueM4","uniformMatrix4fv","setValueV1i","uniform1i","setValueV2i","uniform2i","uniform2iv","setValueV3i","uniform3i","uniform3iv","setValueV4i","uniform4i","uniform4iv","setValueV1ui","uniform1ui","setValueV2ui","uniform2ui","uniform2uiv","setValueV3ui","uniform3ui","uniform3uiv","setValueV4ui","uniform4ui","uniform4uiv","setValueT1","setTexture2D","SAMPLER_2D_SHADOW","setValueT3D1","setTexture3D","setValueT6","setTextureCube","setValueT2DArray1","setTexture2DArray","setValueV1fArray","uniform1fv","setValueV2fArray","setValueV3fArray","setValueV4fArray","setValueM2Array","setValueM3Array","setValueM4Array","setValueV1iArray","uniform1iv","setValueV2iArray","setValueV3iArray","setValueV4iArray","setValueV1uiArray","uniform1uiv","setValueV2uiArray","setValueV3uiArray","setValueV4uiArray","setValueT1Array","units","setValueT3DArray","setValueT6Array","setValueT2DArrayArray","SingleUniform","activeInfo","getSingularSetter","PureArrayUniform","getPureArraySetter","StructuredUniform","seq","RePathPart","addUniform","uniformObject","parseUniform","pathLength","lastIndex","subscript","WebGLUniforms","getProgramParameter","ACTIVE_UNIFORMS","getActiveUniform","getUniformLocation","setOptional","seqWithValue","WebGLShader","createShader","shaderSource","compileShader","COMPLETION_STATUS_KHR","programIdCount","getShaderErrors","getShaderParameter","COMPILE_STATUS","getShaderInfoLog","errorMatches","errorLine","handleSource","lines2","getShaderSource","getTexelEncodingFunction","functionName","getEncodingComponents","workingPrimaries","encodingPrimaries","gamutMapping","getToneMappingFunction","toneMappingName","filterEmptyLine","replaceLightNums","numSpotLightCoords","numSpotLightShadows","numSpotLightMaps","numSpotLightShadowsWithMaps","numDirLights","numSpotLights","numRectAreaLights","numPointLights","numHemiLights","numDirLightShadows","numPointLightShadows","replaceClippingPlaneNums","numClippingPlanes","numClipIntersection","includePattern","resolveIncludes","includeReplacer","shaderChunkMap","include","newInclude","unrollLoopPattern","unrollLoops","loopReplacer","snippet","generatePrecision","precisionstring","WebGLProgram","cacheKey","shadowMapTypeDefine","generateShadowMapTypeDefine","shadowMapType","envMapTypeDefine","generateEnvMapTypeDefine","envMapMode","envMapModeDefine","generateEnvMapModeDefine","envMapBlendingDefine","generateEnvMapBlendingDefine","envMapCubeUVSize","generateCubeUVSize","imageHeight","envMapCubeUVHeight","maxMip","texelHeight","texelWidth","customExtensions","generateExtensions","extensionDerivatives","normalMapTangentSpace","shaderID","extensionFragDepth","rendererExtensionFragDepth","extensionDrawBuffers","rendererExtensionDrawBuffers","extensionShaderTextureLOD","rendererExtensionShaderTextureLod","customVertexExtensions","generateVertexExtensions","extensionClipCullDistance","extensionMultiDraw","customDefines","generateDefines","chunks","createProgram","prefixVertex","prefixFragment","versionString","isRawShaderMaterial","shaderType","shaderName","batching","instancing","instancingColor","instancingMorph","useFog","fogExp2","normalMapObjectSpace","mapUv","alphaMapUv","lightMapUv","aoMapUv","emissiveMapUv","bumpMapUv","normalMapUv","displacementMapUv","metalnessMapUv","roughnessMapUv","anisotropyMapUv","clearcoatMapUv","clearcoatNormalMapUv","clearcoatRoughnessMapUv","iridescenceMapUv","iridescenceThicknessMapUv","sheenColorMapUv","sheenRoughnessMapUv","specularMapUv","specularColorMapUv","specularIntensityMapUv","transmissionMapUv","thicknessMapUv","vertexTangents","vertexAlphas","vertexUv1s","vertexUv2s","vertexUv3s","pointsUvs","skinning","morphTextureStride","doubleSided","flipSided","shadowMapEnabled","numLightProbes","useLegacyLights","decodeVideoTexture","opaque","useDepthPacking","depthPacking","fragmentGlsl","glVertexShader","glFragmentShader","onFirstUse","debug","checkShaderErrors","programLog","getProgramInfoLog","vertexLog","fragmentLog","runnable","haveDiagnostics","LINK_STATUS","onShaderError","vertexErrors","fragmentErrors","getError","VALIDATE_STATUS","diagnostics","deleteShader","cachedUniforms","fetchAttributeLocations","ACTIVE_ATTRIBUTES","getActiveAttrib","FLOAT_MAT2","FLOAT_MAT3","FLOAT_MAT4","getAttribLocation","attachShader","bindAttribLocation","linkProgram","programReady","rendererExtensionParallelShaderCompile","isReady","deleteProgram","usedTimes","_id$1","WebGLShaderCache","shaderCache","materialCache","vertexShaderStage","_getShaderStage","fragmentShaderStage","materialShaders","_getShaderCacheForMaterial","shaderStage","getVertexShaderID","getFragmentShaderID","stage","WebGLShaderStage","WebGLPrograms","_programLayers","_customShaders","_activeChannels","IS_WEBGL2","SUPPORTS_VERTEX_TEXTURES","shaderIDs","MeshDepthMaterial","MeshDistanceMaterial","MeshNormalMaterial","MeshLambertMaterial","MeshPhongMaterial","MeshToonMaterial","MeshStandardMaterial","MeshPhysicalMaterial","MeshMatcapMaterial","LineBasicMaterial","LineDashedMaterial","PointsMaterial","ShadowMaterial","SpriteMaterial","getChannel","getParameters","shadows","isMeshStandardMaterial","customVertexShaderID","customFragmentShaderID","IS_INSTANCEDMESH","HAS_MAP","HAS_ENVMAP","HAS_AOMAP","HAS_LIGHTMAP","HAS_BUMPMAP","HAS_NORMALMAP","HAS_DISPLACEMENTMAP","HAS_EMISSIVEMAP","HAS_METALNESSMAP","HAS_ROUGHNESSMAP","HAS_ANISOTROPY","HAS_CLEARCOAT","HAS_IRIDESCENCE","HAS_SHEEN","HAS_TRANSMISSION","HAS_ANISOTROPYMAP","HAS_CLEARCOATMAP","HAS_CLEARCOAT_NORMALMAP","HAS_CLEARCOAT_ROUGHNESSMAP","HAS_IRIDESCENCEMAP","HAS_IRIDESCENCE_THICKNESSMAP","HAS_SHEEN_COLORMAP","HAS_SHEEN_ROUGHNESSMAP","HAS_SPECULARMAP","HAS_SPECULAR_COLORMAP","HAS_SPECULAR_INTENSITYMAP","HAS_TRANSMISSIONMAP","HAS_THICKNESSMAP","HAS_ALPHAMAP","HAS_EXTENSIONS","isXRRenderTarget","supportsVertexTextures","isFogExp2","directional","spot","rectArea","hemi","shadowMap","_useLegacyLights","isVideoTexture","getProgramCacheKey","getProgramCacheKeyParameters","morphAttributeCount","getProgramCacheKeyBooleans","acquireProgram","pl","preexistingProgram","releaseProgram","releaseShaderCache","WebGLProperties","painterSortStable","groupOrder","reversePainterSortStable","WebGLRenderList","renderItems","renderItemsIndex","transmissive","getNextRenderItem","renderItem","finish","customOpaqueSort","customTransparentSort","WebGLRenderLists","lists","renderCallDepth","listArray","UniformsCache","light","halfWidth","halfHeight","nextVersion","shadowCastingAndTexturingLightsFirst","lightA","lightB","WebGLLights","shadowCache","ShadowUniformsCache","directionalLength","pointLength","spotLength","rectAreaLength","hemiLength","numDirectionalShadows","numPointShadows","numSpotShadows","numSpotMaps","ambient","probe","directionalShadow","spotShadow","rectAreaLTC1","rectAreaLTC2","pointShadow","vector3","matrix42","numSpotShadowsWithMaps","scaleFactor","intensity","isAmbientLight","isLightProbe","sh","coefficients","isDirectionalLight","shadowUniforms","bias","normalBias","mapSize","isSpotLight","penumbra","updateMatrices","isRectAreaLight","isPointLight","isHemisphereLight","LTC_FLOAT_1","LTC_FLOAT_2","LTC_HALF_1","LTC_HALF_2","setupView","WebGLRenderState","lightsArray","shadowsArray","setupLights","setupLightsView","pushLight","pushShadow","shadowLight","WebGLRenderStates","renderStates","renderStateArray","renderState","isMeshDepthMaterial","isMeshDistanceMaterial","WebGLShadowMap","_objects","_capabilities","_frustum","_shadowMapSize","_viewportSize","_viewport","_depthMaterial","_distanceMaterial","_materialCache","_maxTextureSize","shadowMaterialVertical","VSM_SAMPLES","shadow_pass","resolution","shadowMaterialHorizontal","HORIZONTAL_PASS","fullScreenTri","fullScreenMesh","autoUpdate","_previousType","VSMPass","blurSamples","mapPass","renderBufferDirect","getDepthMaterial","customMaterial","customDistanceMaterial","customDepthMaterial","keyA","keyB","materialsForVariant","cachedMaterial","onMaterialDispose","renderObject","shadowCamera","kl","depthMaterial","activeCubeFace","_state","setBlending","setTest","setScissorTest","toVSM","fromVSM","shadowFrameExtents","getFrameExtents","pars","viewportCount","getViewportCount","vp","getViewport","getFrustum","isPointLightShadow","WebGLState","colorBuffer","ColorBuffer","locked","currentColorMask","currentColorClear","setMask","colorMask","setLocked","lock","DepthBuffer","currentDepthMask","currentDepthFunc","currentDepthClear","DEPTH_TEST","depthMask","setFunc","NEVER","ALWAYS","LESS","LEQUAL","EQUAL","GEQUAL","GREATER","NOTEQUAL","clearDepth","StencilBuffer","currentStencilMask","currentStencilFunc","currentStencilRef","currentStencilFuncMask","currentStencilFail","currentStencilZFail","currentStencilZPass","currentStencilClear","stencilTest","STENCIL_TEST","stencilMask","setOp","stencilOp","clearStencil","uboBindings","uboProgramMap","enabledCapabilities","currentBoundFramebuffers","currentDrawbuffers","defaultDrawbuffers","currentProgram","currentBlendingEnabled","currentBlending","currentBlendEquation","currentBlendSrc","currentBlendDst","currentBlendEquationAlpha","currentBlendSrcAlpha","currentBlendDstAlpha","currentBlendColor","currentBlendAlpha","currentPremultipledAlpha","currentFlipSided","currentCullFace","currentLineWidth","currentPolygonOffsetFactor","currentPolygonOffsetUnits","MAX_COMBINED_TEXTURE_IMAGE_UNITS","lineWidthAvailable","glVersion","VERSION","currentTextureSlot","currentBoundTextures","scissorParam","SCISSOR_BOX","viewportParam","VIEWPORT","currentScissor","currentViewport","createTexture","dimensions","bindTexture","texParameteri","TEXTURE_MIN_FILTER","NEAREST","TEXTURE_MAG_FILTER","TEXTURE_3D","TEXTURE_2D_ARRAY","texImage2D","RGBA","texImage3D","emptyTextures","TEXTURE_2D","TEXTURE_CUBE_MAP","TEXTURE_CUBE_MAP_POSITIVE_X","setFlipSided","setCullFace","CULL_FACE","equationToGL","FUNC_ADD","FUNC_SUBTRACT","FUNC_REVERSE_SUBTRACT","MIN","MAX","MIN_EXT","MAX_EXT","factorToGL","ZERO","ONE","SRC_COLOR","SRC_ALPHA","SRC_ALPHA_SATURATE","DST_COLOR","DST_ALPHA","ONE_MINUS_SRC_COLOR","ONE_MINUS_SRC_ALPHA","ONE_MINUS_DST_COLOR","ONE_MINUS_DST_ALPHA","CONSTANT_COLOR","ONE_MINUS_CONSTANT_COLOR","CONSTANT_ALPHA","ONE_MINUS_CONSTANT_ALPHA","BLEND","blendEquationSeparate","blendFuncSeparate","blendFunc","frontFace","CW","CCW","cullFace","BACK","FRONT","FRONT_AND_BACK","setPolygonOffset","factor","POLYGON_OFFSET_FILL","bindFramebuffer","framebuffer","DRAW_FRAMEBUFFER","FRAMEBUFFER","COLOR_ATTACHMENT0","drawBuffersWEBGL","useProgram","setMaterial","frontFaceCW","SAMPLE_ALPHA_TO_COVERAGE","setLineWidth","lineWidth","SCISSOR_TEST","activeTexture","webglSlot","TEXTURE0","webglType","webglTexture","boundTexture","unbindTexture","compressedTexImage2D","compressedTexImage3D","updateUBOMapping","uniformsGroup","blockIndex","getUniformBlockIndex","uniformBlockBinding","__bindingPointIndex","texStorage2D","texStorage3D","texSubImage2D","texSubImage3D","compressedTexSubImage2D","compressedTexSubImage3D","KEEP","READ_FRAMEBUFFER","WebGLTextures","_gl","utils","multisampledRTTExt","supportsInvalidateFramebuffer","_imageDimensions","_videoTextures","_sources","useOffscreenCanvas","OffscreenCanvas","createCanvas","resizeImage","needsPowerOfTwo","needsNewCanvas","maxSize","getDimensions","VideoFrame","isPowerOfTwo$1","textureNeedsGenerateMipmaps","supportsMips","generateMipmap","getInternalFormat","internalFormatName","glFormat","glType","forceLinearTransfer","RED","R32F","R16F","R8","RED_INTEGER","R8UI","R16UI","R32UI","R8I","R16I","R32I","RG","RG32F","RG16F","RG8","RG_INTEGER","RG8UI","RG16UI","RG32UI","RG8I","RG16I","RG32I","RGBA32F","RGBA16F","SRGB8_ALPHA8","RGBA8","UNSIGNED_SHORT_4_4_4_4","RGBA4","UNSIGNED_SHORT_5_5_5_1","RGB5_A1","getMipLevels","isFramebufferTexture","isCompressedTexture","filterFallback","LINEAR","deallocateTexture","textureProperties","__webglInit","webglTextures","__cacheKey","deleteTexture","onRenderTargetDispose","deallocateRenderTarget","renderTargetProperties","__webglFramebuffer","deleteFramebuffer","__webglDepthbuffer","deleteRenderbuffer","__webglMultisampledFramebuffer","__webglColorRenderbuffer","__webglDepthRenderbuffer","attachmentProperties","__webglTexture","textureUnits","slot","updateVideoTexture","__version","uploadTexture","wrappingToGL","Ry","REPEAT","vu","CLAMP_TO_EDGE","_2","MIRRORED_REPEAT","filterToGL","vd","NEAREST_MIPMAP_NEAREST","ky","NEAREST_MIPMAP_LINEAR","Hc","LINEAR_MIPMAP_NEAREST","oA","LINEAR_MIPMAP_LINEAR","compareToGL","setTextureParameters","textureType","TEXTURE_WRAP_S","TEXTURE_WRAP_T","TEXTURE_WRAP_R","TEXTURE_COMPARE_MODE","COMPARE_REF_TO_TEXTURE","TEXTURE_COMPARE_FUNC","__currentAnisotropy","texParameterf","TEXTURE_MAX_ANISOTROPY_EXT","initTexture","forceUpload","textureCacheKey","getTextureCacheKey","isCompressedArrayTexture","sourceProperties","texturePrimaries","unpackConversion","BROWSER_DEFAULT_WEBGL","pixelStorei","UNPACK_FLIP_Y_WEBGL","UNPACK_PREMULTIPLY_ALPHA_WEBGL","UNPACK_ALIGNMENT","UNPACK_COLORSPACE_CONVERSION_WEBGL","textureNeedsPowerOfTwo","verifyColorSpace","mipmap","glInternalFormat","useTexStorage","allocateMemory","levels","DEPTH_COMPONENT","DEPTH_COMPONENT32F","DEPTH_COMPONENT24","DEPTH24_STENCIL8","DEPTH_COMPONENT16","DEPTH_STENCIL","setupFrameBufferTexture","attachment","textureTarget","__hasExternalTextures","useMultisampledRTT","framebufferTexture2DMultisampleEXT","getRenderTargetSamples","TEXTURE_CUBE_MAP_NEGATIVE_Z","framebufferTexture2D","setupRenderBufferStorage","renderbuffer","isMultisample","bindRenderbuffer","RENDERBUFFER","renderbufferStorageMultisampleEXT","renderbufferStorageMultisample","renderbufferStorage","framebufferRenderbuffer","DEPTH_ATTACHMENT","DEPTH_STENCIL_ATTACHMENT","setupDepthRenderbuffer","isCube","__autoAllocateDepthBuffer","setupDepthTexture","webglDepthTexture","createRenderbuffer","__useRenderToTexture","naturalWidth","naturalHeight","displayWidth","displayHeight","textureUnit","resetTextureUnits","uploadCubeTexture","isCompressed","cubeImage","mipmapImage","rebindTextures","colorTexture","setupRenderTarget","isMultipleRenderTargets","createFramebuffer","glTextureType","isWebGL3DRenderTarget","isWebGLArrayRenderTarget","updateRenderTargetMipmap","updateMultisampleRenderTarget","COLOR_BUFFER_BIT","invalidationArray","depthStyle","ignoreDepthValues","__ignoreDepthValues","DEPTH_BUFFER_BIT","STENCIL_BUFFER_BIT","invalidateFramebuffer","blitFramebuffer","WebGLUtils","HALF_FLOAT_OES","ALPHA","LUMINANCE","LUMINANCE_ALPHA","SRGB_ALPHA_EXT","RGBA_INTEGER","COMPRESSED_SRGB_S3TC_DXT1_EXT","COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT","COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT","COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT","COMPRESSED_RGB_S3TC_DXT1_EXT","COMPRESSED_RGBA_S3TC_DXT1_EXT","COMPRESSED_RGBA_S3TC_DXT3_EXT","COMPRESSED_RGBA_S3TC_DXT5_EXT","COMPRESSED_RGB_PVRTC_4BPPV1_IMG","COMPRESSED_RGB_PVRTC_2BPPV1_IMG","COMPRESSED_RGBA_PVRTC_4BPPV1_IMG","COMPRESSED_RGBA_PVRTC_2BPPV1_IMG","COMPRESSED_RGB_ETC1_WEBGL","COMPRESSED_SRGB8_ETC2","COMPRESSED_RGB8_ETC2","COMPRESSED_SRGB8_ALPHA8_ETC2_EAC","COMPRESSED_RGBA8_ETC2_EAC","COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR","COMPRESSED_RGBA_ASTC_4x4_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR","COMPRESSED_RGBA_ASTC_5x4_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR","COMPRESSED_RGBA_ASTC_5x5_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR","COMPRESSED_RGBA_ASTC_6x5_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR","COMPRESSED_RGBA_ASTC_6x6_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR","COMPRESSED_RGBA_ASTC_8x5_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR","COMPRESSED_RGBA_ASTC_8x6_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR","COMPRESSED_RGBA_ASTC_8x8_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR","COMPRESSED_RGBA_ASTC_10x5_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR","COMPRESSED_RGBA_ASTC_10x6_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR","COMPRESSED_RGBA_ASTC_10x8_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR","COMPRESSED_RGBA_ASTC_10x10_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR","COMPRESSED_RGBA_ASTC_12x10_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR","COMPRESSED_RGBA_ASTC_12x12_KHR","COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT","COMPRESSED_RGBA_BPTC_UNORM_EXT","COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT","COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT","COMPRESSED_RED_RGTC1_EXT","COMPRESSED_SIGNED_RED_RGTC1_EXT","COMPRESSED_RED_GREEN_RGTC2_EXT","COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT","UNSIGNED_INT_24_8","UNSIGNED_INT_24_8_WEBGL","ArrayCamera","isArrayCamera","isGroup","_moveEvent","WebXRController","_targetRay","_grip","_hand","getHandSpace","joints","inputState","pinching","getTargetRaySpace","hasLinearVelocity","linearVelocity","hasAngularVelocity","angularVelocity","getGripSpace","inputSource","hand","inputjoint","_getHandJoint","disconnect","referenceSpace","inputPose","gripPose","handPose","targetRay","grip","session","visibilityState","jointPose","getJointPose","joint","jointRadius","distanceToPinch","threshold","handedness","gripSpace","getPose","targetRaySpace","jointName","WebXRDepthSensing","depthNear","depthFar","depthData","cameraXR","depthColor","depthWidth","depthHeight","WebXRManager","framebufferScaleFactor","referenceSpaceType","foveation","customReferenceSpace","pose","glBinding","glProjLayer","glBaseLayer","xrFrame","depthSensing","getContextAttributes","initialRenderTarget","newRenderTarget","controllers","controllerInputSources","currentSize","currentPixelRatio","cameraL","cameraR","_currentDepthNear","_currentDepthFar","onSessionEvent","controllerIndex","controller","onSessionEnd","onInputSourcesChange","isPresenting","setPixelRatio","removed","added","cameraAutoUpdate","getController","getControllerGrip","getHand","setFramebufferScaleFactor","setReferenceSpaceType","getReferenceSpace","setReferenceSpace","space","getBaseLayer","getBinding","getFrame","getSession","setSession","_ref","_asyncToGenerator","xrCompatible","makeXRCompatible","getPixelRatio","XRWebGLLayer","antialias","updateRenderState","baseLayer","framebufferWidth","framebufferHeight","depthFormat","depthType","glDepthFormat","projectionlayerInit","colorFormat","XRWebGLBinding","createProjectionLayer","textureWidth","textureHeight","setFoveation","requestReferenceSpace","_x2","cameraLPos","cameraRPos","updateCamera","setProjectionFromUnion","ipd","projL","projR","topFov","bottomFov","leftFov","rightFov","zOffset","xOffset","near2","far2","updateUserCamera","getCamera","getFoveation","fixedFoveation","hasDepthSensing","onAnimationFrameCallback","getViewerPose","views","setRenderTargetFramebuffer","cameraXRNeedsUpdate","glSubImage","getViewSubImage","setRenderTargetTextures","depthStencilTexture","enabledFeatures","getDepthInformation","isValid","detectedPlanes","_e1","_m1","WebGLMaterials","refreshTransformUniform","refreshUniformsCommon","refreshFogUniforms","isFog","density","refreshMaterialUniforms","pixelRatio","transmissionRenderTarget","isMeshLambertMaterial","isMeshToonMaterial","refreshUniformsToon","isMeshPhongMaterial","refreshUniformsPhong","refreshUniformsStandard","isMeshPhysicalMaterial","refreshUniformsPhysical","isMeshMatcapMaterial","refreshUniformsMatcap","refreshUniformsDistance","isMeshNormalMaterial","isLineBasicMaterial","refreshUniformsLine","isLineDashedMaterial","refreshUniformsDash","isPointsMaterial","refreshUniformsPoints","isSpriteMaterial","refreshUniformsSprites","isShadowMaterial","WebGLUniformsGroups","updateList","allocatedBindingPoints","maxBindingPoints","MAX_UNIFORM_BUFFER_BINDINGS","hasUniformChanged","indexArray","indexString","cachedObject","getUniformSize","boundary","storage","onUniformsGroupsDispose","prepareUniformsGroup","uniformArray","chunkOffsetUniform","__data","__offset","chunkOffset","__size","__cache","bindingPointIndex","allocateBindingPointIndex","UNIFORM_BUFFER","bindBufferBase","updateBufferData","arrayOffset","WebGLRenderer","preserveDrawingBuffer","powerPreference","failIfMajorPerformanceCaveat","_alpha","isWebGLRenderer","uintClearColor","intClearColor","currentRenderList","currentRenderState","renderListStack","renderStateStack","domElement","_outputColorSpace","toneMappingExposure","_isContextLost","_currentActiveCubeFace","_currentActiveMipmapLevel","_currentRenderTarget","_currentMaterialId","_currentCamera","_currentViewport","_currentScissor","_currentScissorTest","_currentClearColor","_currentClearAlpha","_width","_height","_pixelRatio","_opaqueSort","_transparentSort","_scissor","_scissorTest","_clippingEnabled","_localClippingEnabled","_transmissionRenderTarget","_projScreenMatrix","_vector3","_emptyScene","overrideMaterial","getTargetPixelRatio","programCache","renderLists","morphtargets","bufferRenderer","indexedBufferRenderer","contextNames","contextAttributes","onContextLost","onContextRestore","onContextCreationError","isWebGL1Renderer","WebGLRenderingContext","rangeMin","rangeMax","initGLContext","infoAutoReset","shadowMapAutoUpdate","shadowMapNeedsUpdate","statusMessage","deallocateMaterial","releaseMaterialProgramReferences","prepareMaterial","getProgram","forceContextLoss","loseContext","forceContextRestore","restoreContext","updateStyle","setViewport","getDrawingBufferSize","setDrawingBufferSize","getCurrentViewport","getScissor","setScissor","getScissorTest","boolean","setOpaqueSort","setTransparentSort","bits","isIntegerFormat","targetFormat","targetType","isUnsignedType","clearBufferuiv","COLOR","clearBufferiv","onXRSessionStart","onXRSessionEnd","setProgram","needsProgramChange","needsLights","lightsStateVersion","refreshProgram","refreshMaterial","refreshLights","p_uniforms","m_uniforms","uCamPos","cameraPosition","boneTexture","computeBoneTexture","isMeshGouraudMaterial","markUniformsLightsNeedsUpdate","getUniformList","rangeFactor","drawStart","drawEnd","isLineSegments","isLineLoop","isSprite","_multiDrawStarts","_multiDrawCounts","_multiDrawCount","targetScene","material2","compileAsync","checkMaterialsReady","projectObject","isLOD","renderScene","opaqueObjects","transmissiveObjects","transparentObjects","renderTransmissionPass","currentToneMapping","renderObjects","renderTargetNeedsUpdate","currentSide","programCacheKey","environmentRotation","updateCommonMaterialProperties","materialNeedsLights","uniformsList","progUniforms","camera2","defaultFramebuffer","__useDefaultFramebuffer","useDefaultFramebuffer","isRenderTarget3D","framebufferTextureLayer","readRenderTargetPixels","activeCubeFaceIndex","textureFormat","IMPLEMENTATION_COLOR_READ_FORMAT","halfFloatSupportedByExt","IMPLEMENTATION_COLOR_READ_TYPE","readPixels","copyFramebufferToTexture","levelScale","copyTexSubImage2D","copyTextureToTexture","srcTexture","dstTexture","copyTextureToTexture3D","sourceBox","glTarget","unpackRowLen","UNPACK_ROW_LENGTH","unpackImageHeight","UNPACK_IMAGE_HEIGHT","unpackSkipPixels","UNPACK_SKIP_PIXELS","unpackSkipRows","UNPACK_SKIP_ROWS","unpackSkipImages","UNPACK_SKIP_IMAGES","__THREE_DEVTOOLS__","CustomEvent","drawingBufferColorSpace","unpackColorSpace","WebGL1Renderer","FogExp2","Fog","Scene","InterleavedBuffer","isInterleavedBuffer","arrayBuffers","_uuid","ib","_vector$6","InterleavedBufferAttribute","interleavedBuffer","interleavedBuffers","_geometry","_intersectPoint","_worldScale","_mvPosition","_alignedPosition","_rotatedPosition","_viewWorldMatrix","_vA","_vB","_vC","_uvA","_uvB","_uvC","Sprite","float32Array","transformVertex","vertexPosition","mvPosition","_v1$2","_v2$1","LOD","_currentLevel","addLevel","hysteresis","getCurrentLevel","getObjectForDistance","levelDistance","_basePosition","_skinIndex","_skinWeight","_matrix4","_vertex","_sphere$4","_inverseMatrix$2","_ray$2","SkinnedMesh","bindMatrixInverse","applyBoneTransform","calculateInverses","normalizeSkinWeights","skinWeight","skinIndex","boneIndex","bones","boneInverses","Bone","isBone","DataTexture","_offsetMatrix","_identityMatrix$1","Skeleton","boneMatrices","inverse","bone","getBoneByName","json","InstancedBufferAttribute","_instanceLocalMatrix","_instanceWorldMatrix","_instanceIntersects","_box3","_identity","_mesh$1","_sphere$3","InstancedMesh","setMatrixAt","getMatrixAt","getColorAt","getMorphAt","dataIndex","raycastTimes","instanceId","setColorAt","setMorphAt","sortOpaque","sortTransparent","MultiDrawRenderList","pool","ID_ATTR_NAME","_matrix$1","_invMatrixWorld","_identityMatrix","_projScreenMatrix$2","_box$1","_sphere$2","_vector$5","_renderList","_mesh","_batchIntersects","copyAttributeData","targetOffset","vertexCount","BatchedMesh","customSort","_visibilityChanged","_initMatricesTexture","matricesArray","_initializeGeometry","reference","attributeName","srcAttribute","dstAttribute","idArray","_validateGeometry","batchGeometry","setCustomSort","func","getBoundingBoxAt","getBoundingSphereAt","addGeometry","indexCount","reservedRange","vertexStart","indexStart","lastRange","hasIndex","idAttribute","setGeometryAt","dstIndex","srcIndex","posAttr","deleteGeometry","iv","setVisibleAt","getVisibleAt","batchId","multiDrawStarts","multiDrawCounts","culled","linecap","linejoin","_start$1","_end$1","_inverseMatrix$1","_ray$1","_sphere$1","Line","computeLineDistances","lineDistances","localThreshold","localThresholdSq","vStart","vEnd","interSegment","interRay","_start","_end","LineSegments","LineLoop","_inverseMatrix","_ray","_sphere","_position$2","Points","testPoint","rayPointDistanceSq","intersectPoint","distanceToRay","CompressedTexture","CanvasTexture","isCanvasTexture","Curve","arcLengthDivisions","getPoint","getPointAt","optionalTarget","getUtoTmapping","getPoints","divisions","getSpacedPoints","getLength","lengths","getLengths","cacheArcLengths","updateArcLengths","arcLengths","targetArcLength","comparison","lengthBefore","getTangent","pt1","pt2","getTangentAt","computeFrenetFrames","tangents","binormals","vec","mat","MAX_VALUE","EllipseCurve","aX","aY","xRadius","yRadius","aStartAngle","aEndAngle","aClockwise","aRotation","isEllipseCurve","twoPi","deltaAngle","samePoints","CubicPoly","c0","initCatmullRom","x3","tension","initNonuniformCatmullRom","dt0","dt1","dt2","calc","px","py","pz","CatmullRomCurve3","curveType","isCatmullRomCurve3","intPoint","QuadraticBezier","QuadraticBezierP0","QuadraticBezierP1","QuadraticBezierP2","CubicBezier","CubicBezierP0","CubicBezierP1","CubicBezierP2","CubicBezierP3","CubicBezierCurve","isCubicBezierCurve","LineCurve","isLineCurve","QuadraticBezierCurve","isQuadraticBezierCurve","QuadraticBezierCurve3","isQuadraticBezierCurve3","SplineCurve","isSplineCurve","Curves","__proto__","ArcCurve","aRadius","isArcCurve","CubicBezierCurve3","isCubicBezierCurve3","LineCurve3","isLineCurve3","CurvePath","curves","autoClose","curve","closePath","startPoint","endPoint","curveLengths","getCurveLengths","segmentLength","lens","cacheLengths","sums","pts","Path","currentPoint","moveTo","lineTo","quadraticCurveTo","aCPx","aCPy","bezierCurveTo","aCP1x","aCP1y","aCP2x","aCP2y","splineThru","npts","arc","absarc","absellipse","ellipse","firstPoint","lastPoint","LatheGeometry","phiStart","phiLength","initNormals","inverseSegments","vertex","curNormal","prevNormal","CapsuleGeometry","capSegments","radialSegments","CircleGeometry","thetaStart","thetaLength","CylinderGeometry","radiusTop","radiusBottom","openEnded","generateCap","centerIndexStart","centerIndexEnd","cosTheta","sinTheta","generateTorso","slope","indexRow","ConeGeometry","PolyhedronGeometry","vertexBuffer","uvBuffer","subdivideFace","cols","aj","bj","rows","pushVertex","getVertexByIndex","correctUV","azimuth","inclination","subdivide","applyRadius","generateUVs","correctUVs","centroid","azi","correctSeam","details","DodecahedronGeometry","_v0","_v1$1","_normal","_triangle","EdgesGeometry","thresholdAngle","precisionPoints","thresholdDot","indexAttr","positionAttr","indexArr","vertKeys","hashes","edgeData","jNext","vecHash0","vecHash1","reverseHash","index0","Shape","holes","getPointsHoles","holesPts","extractPoints","shape","hole","linkedList","dim","clockwise","signedArea","insertNode","removeNode","filterPoints","again","steiner","area","earcutLinked","ear","minX","minY","invSize","pass","indexCurve","zOrder","prevZ","nextZ","sortLinked","tail","numMerges","pSize","qSize","inSize","isEarHashed","isEar","cureLocalIntersections","splitEarcut","pointInTriangle","minZ","maxZ","locallyInside","isValidDiagonal","splitPolygon","compareX","eliminateHole","outerNode","bridge","findHoleBridge","hx","hy","mx","my","tanMin","sectorContainsSector","bridgeReverse","getLeftmost","leftmost","intersectsPolygon","middleInside","inside","q1","q2","o1","o2","o3","o4","onSegment","an","bp","ShapeUtils","contour","isClockWise","triangulateShape","holeIndices","faces","removeDupEndPts","addContour","holeIndex","hasHoles","outerLen","maxX","maxY","eliminateHoles","queue","Earcut","ExtrudeGeometry","verticesArray","uvArray","addShape","placeholder","curveSegments","steps","bevelEnabled","bevelThickness","bevelSize","bevelOffset","bevelSegments","extrudePath","uvgen","UVGenerator","WorldUVGenerator","extrudePts","splineTube","binormal","position2","extrudeByPath","shapePoints","hl","ahole","scalePt2","pt","vlen","flen","getBevelVec","inPt","inPrev","inNext","v_trans_x","v_trans_y","shrink_by","v_prev_x","v_prev_y","v_next_x","v_next_y","v_prev_lensq","v_prev_len","v_next_len","ptPrevShift_x","ptPrevShift_y","sf","v_trans_lensq","direction_eq","contourMovements","holesMovements","oneHoleMovements","verticesMovements","vert","sidewalls","layeroffset","sl","slen1","slen2","f4","f3","addVertex","nextIndex","generateTopUV","addUV","generateSideWallUV","vector2","buildLidFaces","layer","buildSideFaces","toJSON$1","geometryShapes","indexA","indexB","indexC","b_x","b_y","c_x","c_y","indexD","a_x","a_y","a_z","b_z","c_z","d_x","d_y","d_z","IcosahedronGeometry","OctahedronGeometry","RingGeometry","innerRadius","outerRadius","thetaSegments","phiSegments","radiusStep","thetaSegmentLevel","ShapeGeometry","indexOffset","shapeVertices","shapeHoles","shapeHole","SphereGeometry","thetaEnd","grid","verticesRow","uOffset","TetrahedronGeometry","TorusGeometry","tube","tubularSegments","TorusKnotGeometry","P1","P2","B","T","N","calculatePositionOnCurve","cu","su","quOverP","cs","TubeGeometry","frames","generateSegment","generateBufferData","generateIndices","isUniqueEdge","edges","hash1","hash2","Geometries","WireframeGeometry","ol","RawShaderMaterial","STANDARD","PHYSICAL","_anisotropy","_clearcoat","_iridescence","_sheen","_transmission","TOON","MATCAP","convertArray","forceClone","getKeyframeOrder","compareTime","sortedArray","nValues","srcOffset","flattenJSON","jsonKeys","valuePropertyName","Interpolant","parameterPositions","sampleValues","sampleSize","resultBuffer","_cachedIndex","valueSize","settings","DefaultSettings_","evaluate","pp","validate_interval","seek","linear_scan","forward_scan","giveUpAt","copySampleValue_","t1global","mid","intervalChanged_","interpolate_","getSettings_","CubicInterpolant","_weightPrev","_offsetPrev","_weightNext","_offsetNext","endingStart","endingEnd","iPrev","iNext","tPrev","tNext","halfDt","o0","oP","oN","wP","wN","ppp","sP","sN","LinearInterpolant","offset1","offset0","weight1","weight0","DiscreteInterpolant","KeyframeTrack","TimeBufferType","ValueBufferType","setInterpolation","DefaultInterpolation","trackType","ValueTypeName","InterpolantFactoryMethodDiscrete","getValueSize","InterpolantFactoryMethodLinear","InterpolantFactoryMethodSmooth","factoryMethod","createInterpolant","timeOffset","timeScale","startTime","endTime","nKeys","validate","valid","prevTime","currTime","isTypedArray","isView","DataView","optimize","smoothInterpolation","writeIndex","keep","offsetP","offsetN","readOffset","writeOffset","TypedKeyframeTrack","BooleanKeyframeTrack","ColorKeyframeTrack","NumberKeyframeTrack","QuaternionLinearInterpolant","QuaternionKeyframeTrack","StringKeyframeTrack","VectorKeyframeTrack","AnimationClip","tracks","blendMode","resetDuration","jsonTracks","frameTime","fps","parseKeyframeTrack","clip","clipTracks","CreateFromMorphTargetSequence","morphTargetSequence","noLoop","numMorphTargets","findByName","objectOrClipArray","clipArray","CreateClipsFromMorphTargetSequences","animationToMorphTargets","animationMorphTargets","clips","parseAnimation","addNonemptyTrack","trackName","animationKeys","propertyName","destTracks","clipName","hierarchyTracks","hierarchy","morphTargetNames","morphTargetName","animationKey","boneName","getTrackTypeForValueTypeName","typeName","Cache","files","file","LoadingManager","onProgress","urlModifier","isLoading","itemsLoaded","itemsTotal","handlers","itemStart","itemEnd","itemError","resolveURL","setURLModifier","addHandler","regex","removeHandler","getHandler","global","DefaultLoadingManager","Loader","crossOrigin","resourcePath","requestHeader","loadAsync","setCrossOrigin","setWithCredentials","setPath","setResourcePath","DEFAULT_MATERIAL_NAME","loading","HttpError","FileLoader","Request","credentials","mimeType","fetch","ReadableStream","contentLength","stream","readData","close","ProgressEvent","enqueue","arrayBuffer","blob","DOMParser","parseFromString","label","decoder","TextDecoder","finally","setResponseType","setMimeType","ImageLoader","onImageLoad","removeEventListeners","onImageError","TextureLoader","Light","HemisphereLight","_projScreenMatrix$1","_lightPositionWorld$1","_lookTarget$1","LightShadow","_frameExtents","_viewportCount","_viewports","shadowMatrix","viewportIndex","SpotLightShadow","isSpotLightShadow","SpotLight","_lightPositionWorld","_lookTarget","PointLightShadow","_cubeDirections","_cubeUps","PointLight","DirectionalLightShadow","isDirectionalLightShadow","DirectionalLight","AmbientLight","RectAreaLight","SphericalHarmonics3","isSphericalHarmonics3","zero","getAt","coeff","getIrradianceAt","addScaledSH","getBasisAt","shBasis","LightProbe","MaterialLoader","getTexture","createMaterialFromType","setTextures","LoaderUtils","decodeText","fromCharCode","escape","extractUrlBase","InstancedBufferGeometry","BufferGeometryLoader","interleavedBufferMap","arrayBufferMap","getInterleavedBuffer","getArrayBuffer","typedArray","bufferAttribute","drawcalls","offsets","ObjectLoader","_this2","parseAsync","parseAnimations","parseShapes","parseGeometries","parseImages","parseTextures","parseMaterials","parseObject","parseSkeletons","bindSkeletons","hasImages","_this3","parseImagesAsync","bufferGeometryLoader","deserializeImage","loadImage","imageArray","deserializedImage","_this4","_x3","_deserializeImage","currentUrl","parseConstant","TEXTURE_MAPPING","TEXTURE_WRAPPING","TEXTURE_FILTER","getGeometry","getMaterial","isInteger","objectAnimations","UVMapping","EquirectangularReflectionMapping","EquirectangularRefractionMapping","NearestMipmapNearestFilter","ImageBitmapLoader","isImageBitmapLoader","createImageBitmap","setOptions","imageBitmap","fetchOptions","colorSpaceConversion","Clock","oldTime","running","getElapsedTime","getDelta","newTime","Date","_RESERVED_CHARS_RE","_reservedRe","_wordChar","_wordCharOrDot","_trackRe","_supportedObjectNames","Composite","optionalParsedPath","parsedPath","PropertyBinding","parseTrackName","_targetGroup","_bindings","subscribe_","binding","nCachedObjects_","unbind","nodeName","_getValue_unbound","_setValue_unbound","isAnimationObjectGroup","sanitizeNodeName","objectName","objectIndex","propertyIndex","lastDot","searchNodeSubtree","childNode","subTreeNode","_getValue_unavailable","_setValue_unavailable","_getValue_direct","targetObject","_getValue_array","resolvedProperty","_getValue_arrayElement","_getValue_toArray","_setValue_direct","_setValue_direct_setNeedsUpdate","_setValue_direct_setMatrixWorldNeedsUpdate","_setValue_array","dest","_setValue_array_setNeedsUpdate","_setValue_array_setMatrixWorldNeedsUpdate","_setValue_arrayElement","_setValue_arrayElement_setNeedsUpdate","_setValue_arrayElement_setMatrixWorldNeedsUpdate","_setValue_fromArray","_setValue_fromArray_setNeedsUpdate","_setValue_fromArray_setMatrixWorldNeedsUpdate","targetArray","sourceArray","nodeProperty","versioning","Versioning","NeedsUpdate","MatrixWorldNeedsUpdate","bindingType","BindingType","Direct","ArrayElement","HasFromToArray","EntireArray","GetterByBindingType","SetterByBindingTypeAndVersioning","Uniform","_matrix","Raycaster","setFromCamera","coords","setFromXRController","intersectObject","ascSort","intersectObjects","Spherical","makeSafe","EPS","setFromCartesianCoords","_startP","_startEnd","AxesHelper","setColors","xAxisColor","yAxisColor","zAxisColor","ShapePath","subPaths","currentPath","toShapes","isCCW","isPointInsidePolygon","inPolygon","polyLen","edgeLowPt","edgeHighPt","edgeDx","edgeDy","perpEdge","solid","tmpPath","tmpShape","holesFirst","betterShapeHoles","newShapes","tmpPoints","tmpHoles","newShapeHoles","mainIdx","toShapesNoHoles","inSubpaths","ambiguous","toChange","sIdx","sLen","sho","hIdx","ho","hole_unassigned","s2Idx","revision","__THREE__","_changeEvent","_startEvent","_endEvent","_plane","TILT_LIMIT","OrbitControls","touchAction","minDistance","maxDistance","minZoom","maxZoom","minTargetRadius","maxTargetRadius","minPolarAngle","maxPolarAngle","minAzimuthAngle","maxAzimuthAngle","enableDamping","dampingFactor","enableZoom","zoomSpeed","enableRotate","rotateSpeed","enablePan","panSpeed","screenSpacePanning","keyPanSpeed","zoomToCursor","autoRotate","autoRotateSpeed","LEFT","UP","RIGHT","BOTTOM","mouseButtons","MIDDLE","touches","TWO","target0","position0","zoom0","_domElementKeyEvents","getPolarAngle","spherical","getAzimuthalAngle","getDistance","listenToKeyEvents","onKeyDown","stopListenToKeyEvents","saveState","STATE","quat","quatInverse","lastPosition","lastQuaternion","lastTargetPosition","twoPI","deltaTime","rotateLeft","getAutoRotationAngle","sphericalDelta","panOffset","zoomChanged","performCursorZoom","clampDistance","prevRadius","newRadius","radiusDelta","dollyDirection","mouseBefore","mouse","prevZoom","mouseAfter","onContextMenu","onPointerDown","onPointerUp","onMouseWheel","onPointerMove","getRootNode","interceptControlDown","ROTATE","DOLLY","PAN","TOUCH_ROTATE","TOUCH_PAN","TOUCH_DOLLY_PAN","TOUCH_DOLLY_ROTATE","rotateStart","rotateEnd","rotateDelta","panStart","panEnd","panDelta","dollyStart","dollyEnd","dollyDelta","pointers","pointerPositions","controlActive","getZoomScale","normalizedDelta","rotateUp","panLeft","objectMatrix","panUp","pan","deltaX","deltaY","targetDistance","clientHeight","clientWidth","dollyOut","dollyScale","dollyIn","updateZoomParameters","dist","handleMouseDownRotate","clientX","clientY","handleMouseDownPan","handleTouchStartRotate","pageX","pageY","getSecondPointerPosition","handleTouchStartPan","handleTouchStartDolly","handleTouchMoveRotate","handleTouchMovePan","handleTouchMoveDolly","setPointerCapture","pointerId","isTrackingPointer","addPointer","pointerType","onTouchStart","onMouseDown","mouseAction","handleMouseDownDolly","onTouchMove","trackPointer","handleTouchMoveDollyPan","handleTouchMoveDollyRotate","onMouseMove","handleMouseMoveRotate","handleMouseMoveDolly","handleMouseMovePan","removePointer","releasePointerCapture","handleMouseWheel","customWheelEvent","newEvent","deltaMode","interceptControlUp","passive","handleKeyDown","handleTouchStartDollyPan","handleTouchStartDollyRotate","ControlsManager","rendererManager","controls","mainControls","overlayControls","rendererElement","getMainRenderer","perspectiveCamera","offsetWidth","offsetHeight","orthographicCamera","perspectiveControls","setOrbitControls","orthographicControls","addControls","setActiveControls","setMainControls","setOverlayControls","getActiveControls","transformSync","updateSync","initializeZoomControls","setupResize","activeControls","getMainControls","getOverlayControls","getActiveCamera","getMainCamera","getOverlayCamera","getAllCameras","containsObject","removeControls","swapControls","positionSync","rotationSync","zoomTo","zoomFactor","zoomTime","zoomCameraAnimPair","zoomCameraAnimPairs","anim","lookAtObject","objectsGroup","objectPosition","getObjectPosition","childObject","hideTubeTracksOnZoom","minRadius","tracksHidden","isCameraClose","_c","_d","allCameras","mainCamera","RendererManager","mainRenderer","overlayRenderer","renderers","addRenderer","setMainRenderer","elementId","initRenderer","getOverlayRenderer","hidden","sceneColor","isFixedOverlay","canvasWrapper","rendererWidth","innerWidth","rendererHeight","innerHeight","devicePixelRatio","setOverlayRenderer","overlayCanvas","setRenderers","getRenderers","swapRenderers","rendererA","rendererB","setLocalClippingEnabled","getLocalClipping","fixedOverlay","setFixOverlay","OBJExporter","indexVertex","indexVertexUvs","indexNormals","parseMesh","nbVertex","nbNormals","nbVertexUvs","normalMatrixWorld","parseLine","parsePoints","colors","fullscreenQuadGeometry","fullscreenQuadMaterial","fullscreenQuad","decompress","blitTexture","IS_SRGB","frustrumCulled","_camera","_scene","readableTexture","KHR_mesh_quantization_ExtraAttrTypes","POSITION","NORMAL","TANGENT","TEXCOORD","GLTFExporter","pluginCallbacks","writer","GLTFLightExtension","GLTFMaterialsUnlitExtension","GLTFMaterialsTransmissionExtension","GLTFMaterialsVolumeExtension","GLTFMaterialsIorExtension","GLTFMaterialsSpecularExtension","GLTFMaterialsClearcoatExtension","GLTFMaterialsIridescenceExtension","GLTFMaterialsSheenExtension","GLTFMaterialsAnisotropyExtension","GLTFMaterialsEmissiveStrengthExtension","GLTFMaterialsBumpExtension","GLTFMeshGpuInstancing","onDone","GLTFWriter","setPlugins","write","KHR_MESH_QUANTIZATION","THREE_TO_WEBGL","PATH_PROPERTIES","DEFAULT_SPECULAR_COLOR","equalArray","array1","getPaddedBufferSize","bufferSize","getPaddedArrayBuffer","paddingByte","paddedLength","getCanvas","getToBlobPromise","toBlob","quality","convertToBlob","byteOffset","nodeMap","skins","extensionsUsed","extensionsRequired","uids","uid","asset","meshes","attributesNormalized","binary","trs","onlyVisible","includeCustomExtensions","processInput","extensionsUsedList","extensionsRequiredList","FileReader","readAsArrayBuffer","onloadend","binaryChunk","binaryChunkPrefix","setUint32","jsonChunk","stringToArrayBuffer","TextEncoder","encode","jsonChunkPrefix","header","headerView","glbBlob","glbReader","readAsDataURL","uri","serializeUserData","objectDef","gltfExtensions","extensionName","getUID","isRelativeCopy","isNormalizedNormalAttribute","createNormalizedNormalAttribute","applyTextureTransform","mapDef","didTransform","transformDef","KHR_texture_transform","buildMetalRoughTexture","getEncodingConversion","fillStyle","fillRect","composite","processBuffer","processBufferView","componentSize","bufferViews","dataView","setFloat32","setInt32","setInt16","setUint16","setInt8","setUint8","bufferViewDef","byteStride","processBufferViewImage","processAccessor","minMax","getMinMax","NEGATIVE_INFINITY","bufferViewTarget","bufferView","accessorDef","accessors","processImage","cachedImages","imageDef","bufferViewIndex","dataURL","processSampler","samplers","processTexture","textureDef","sampler","_invokeAll","ext","writeTexture","processMaterial","materialDef","pbrMetallicRoughness","baseColorFactor","metallicFactor","roughnessFactor","metalRoughTexture","metalRoughMapDef","metallicRoughnessTexture","baseColorMapDef","texCoord","baseColorTexture","emissiveFactor","emissiveMapDef","emissiveTexture","normalMapDef","normalTexture","occlusionMapDef","strength","occlusionTexture","alphaMode","alphaCutoff","writeMaterial","processMesh","meshCacheKeyParts","meshCacheKey","meshDef","primitives","targets","nameConversion","uv2","uv3","originalNormal","modifiedAttribute","accessor","detectMeshQuantization","targetNames","reverseDictionary","warned","gltfAttributeName","baseAttribute","relativeAttribute","isMultiMaterial","didForceIndices","primitive","writeMesh","attrType","attrNamePrefix","processCamera","isOrtho","cameraDef","orthographic","xmag","ymag","zfar","znear","perspective","aspectRatio","yfov","processAnimation","mergeMorphTargetTracks","channels","trackBinding","trackNode","trackProperty","inputItemSize","outputItemSize","isInterpolantFactoryMethodGLTFCubicSpline","processSkin","rootJoint","inverseBindMatrices","temporaryBoneInverse","skin","processNode","nodeDef","translation","isIdentityMatrix","meshIndex","writeNode","processScene","scenes","sceneDef","processObjects","beforeParse","objectsWithoutScene","afterParse","lightDef","innerConeAngle","outerConeAngle","extensionDef","clearcoatFactor","clearcoatMapDef","clearcoatTexture","clearcoatRoughnessFactor","clearcoatRoughnessMapDef","clearcoatRoughnessTexture","clearcoatNormalMapDef","clearcoatNormalTexture","iridescenceFactor","iridescenceMapDef","iridescenceTexture","iridescenceIor","iridescenceThicknessMapDef","iridescenceThicknessTexture","transmissionFactor","transmissionMapDef","transmissionTexture","thicknessFactor","thicknessMapDef","thicknessTexture","specularIntensityMapDef","specularTexture","specularColorMapDef","specularColorTexture","specularFactor","specularColorFactor","sheenRoughnessMapDef","sheenRoughnessTexture","sheenColorMapDef","sheenColorTexture","sheenRoughnessFactor","sheenColorFactor","anisotropyMapDef","anisotropyTexture","anisotropyStrength","emissiveStrength","bumpMapDef","bumpTexture","bumpFactor","translationAttr","rotationAttr","scaleAttr","TRANSLATION","ROTATION","SCALE","_COLOR_0","insertKeyframe","interpolant","tolerance","mergedTracks","sourceTracks","sourceTrack","sourceTrackBinding","sourceTrackNode","targetCount","targetIndex","mergedTrack","sourceInterpolant","keyframeIndex","saveFile","fileName","contentType","tempAnchor","createObjectURL","download","click","loadFile","onFileRead","inputFile","accept","onchange","configFile","onload","readAsText","ExportManager","exportSceneToOBJ","exportPhoenixScene","eventData","exporter","sceneConfig","saveSceneConfig","sceneConfiguration","saveEventDataConfiguration","saveGeometriesConfiguration","eventDataConfig","objectType","geometriesConfig","_object_pattern","_material_library_pattern","_material_use_pattern","_map_use_pattern","_face_vertex_data_separator_pattern","_ab","_cb","ParserState","materialLibraries","startObject","fromDeclaration","previousMaterial","currentMaterial","_finalize","hasUVIndices","smooth","startMaterial","libraries","mtllib","groupEnd","cloned","lastMultiMaterial","mi","declared","parseVertexIndex","parseNormalIndex","parseUVIndex","addVertexPoint","addVertexLine","addNormal","addFaceNormal","addColor","addDefaultUV","addUVLine","addFace","ua","ub","uc","na","nb","nc","vLen","ia","ic","nLen","uvLen","addPointGeometry","vi","addLineGeometry","uvi","OBJLoader","setMaterials","trimStart","lineFirstChar","vertexData","faceVertices","vertexParts","lineParts","lineVertices","lineUVs","li","llen","pointData","hasVertexColors","createdMaterials","miLen","sourceMaterial","materialHash","materialPoints","materialLine","mergeGeometries","useGroups","isIndexed","attributesUsed","morphAttributesUsed","mergedGeometry","attributesCount","mergedIndex","mergedAttribute","mergeAttributes","morphAttributesToMerge","mergedMorphAttribute","TypedArray","arrayLength","tupleOffset","toTrianglesDrawMode","drawMode","numberOfTriangles","newIndices","newGeometry","GLTFLoader","dracoLoader","ktx2Loader","meshoptDecoder","parser","GLTFTextureBasisUExtension","GLTFTextureWebPExtension","GLTFTextureAVIFExtension","GLTFLightsExtension","GLTFMeshoptCompression","relativeUrl","_onError","gltf","setDRACOLoader","setDDSLoader","setKTX2Loader","setMeshoptDecoder","textDecoder","BINARY_EXTENSION_HEADER_MAGIC","EXTENSIONS","KHR_BINARY_GLTF","GLTFBinaryExtension","GLTFParser","fileLoader","KHR_MATERIALS_UNLIT","KHR_DRACO_MESH_COMPRESSION","GLTFDracoMeshCompressionExtension","KHR_TEXTURE_TRANSFORM","GLTFTextureTransformExtension","GLTFMeshQuantizationExtension","setExtensions","GLTFRegistry","KHR_LIGHTS_PUNCTUAL","KHR_MATERIALS_CLEARCOAT","KHR_MATERIALS_IOR","KHR_MATERIALS_SHEEN","KHR_MATERIALS_SPECULAR","KHR_MATERIALS_TRANSMISSION","KHR_MATERIALS_IRIDESCENCE","KHR_MATERIALS_ANISOTROPY","KHR_MATERIALS_VOLUME","KHR_TEXTURE_BASISU","KHR_MATERIALS_EMISSIVE_STRENGTH","EXT_MATERIALS_BUMP","EXT_TEXTURE_WEBP","EXT_TEXTURE_AVIF","EXT_MESHOPT_COMPRESSION","EXT_MESH_GPU_INSTANCING","refs","uses","_markDefs","nodeDefs","nodeLength","_addNodeRef","_loadLight","lightIndex","dependency","lightNode","assignExtrasToUserData","createUniqueName","getDependency","createNodeAttachment","_getNodeRef","getMaterialType","extendParams","materialParams","metallicRoughness","assignTexture","extendMaterialParams","colorFactor","colorArray","loadTexture","textureIndex","loadTextureImage","isSupported","textureLoader","detectSupport","Image","onerror","loadBufferView","supported","decodeGltfBufferAsync","ready","decodeGltfBuffer","createNodeMesh","WEBGL_CONSTANTS","TRIANGLE_STRIP","TRIANGLE_FAN","attributesDef","nodeObject","instancedMeshes","assignFinalMaterial","magic","getUint32","chunkContentsLength","chunkView","chunkIndex","chunkLength","chunkType","contentArray","decodePrimitive","gltfAttributeMap","threeAttributeMap","attributeNormalizedMap","attributeTypeMap","threeAttributeName","ATTRIBUTES","WEBGL_COMPONENT_TYPES","decodeDracoFile","extendTexture","GLTFCubicSplineInterpolant","stride2","stride3","td","_q","GLTFCubicSplineQuaternionInterpolant","FLOAT_VEC2","FLOAT_VEC3","FLOAT_VEC4","SAMPLER_2D","WEBGL_FILTERS","WEBGL_WRAPPINGS","WEBGL_TYPE_SIZES","SCALAR","VEC2","VEC3","VEC4","MAT2","MAT3","MAT4","TEXCOORD_0","TEXCOORD_1","TEXCOORD_2","TEXCOORD_3","COLOR_0","WEIGHTS_0","JOINTS_0","INTERPOLATION","CUBICSPLINE","STEP","addUnknownExtensionsToUserData","knownExtensions","gltfDef","createPrimitiveKey","primitiveDef","geometryKey","dracoExtension","createAttributesKey","attributesKey","getNormalizedComponentScale","associations","primitiveCache","nodeCache","meshCache","cameraCache","lightCache","sourceCache","textureCache","nodeNamesUsed","isSafari","isFirefox","firefoxVersion","beforeRoot","getDependencies","afterRoot","skinDefs","meshDefs","skinLength","updateMappings","original","mappings","_invokeOne","loadScene","loadNode","loadMesh","loadAccessor","loadBuffer","loadMaterial","loadSkin","loadAnimation","loadCamera","bufferIndex","bufferDef","accessorIndex","sparse","pendingBufferViews","elementBytes","ibSlice","ibCacheKey","byteOffsetValues","sparseIndices","TypedArrayIndices","sparseValues","sourceIndex","sourceDef","loadImageSource","webkitURL","sourceURI","isObjectURL","revokeObjectURL","getImageURIMimeType","mapName","gltfReference","useDerivativeTangents","useVertexColors","useFlatShading","pointsMaterial","lineMaterial","materialType","kmuExtension","originalName","sanitizedName","loadGeometries","createDracoPrimitive","addPrimitiveAttributes","geometryPromise","DefaultMaterial","cameraIndex","skinDef","_loadNodeShallow","jointNodes","jointNode","animationIndex","animationDef","animationName","pendingNodes","pendingInputAccessors","pendingOutputAccessors","pendingSamplers","pendingTargets","inputAccessors","outputAccessors","inputAccessor","outputAccessor","createdTracks","_createAnimationTracks","nodePending","childPending","childrenDef","skeletonPending","meshPromise","sceneIndex","nodeIds","reducedAssociations","reduceAssociations","targetName","outputArray","_getArrayFromAccessor","_createCubicSplineTrackInterpolant","scaled","assignAttributeAccessor","computeBounds","boxScale","maxDisplacement","addMorphTargets","hasMorphNormal","hasMorphColor","pendingPositionAccessors","pendingNormalAccessors","pendingColorAccessors","pendingAccessor","_taskCache","DRACOLoader","decoderPath","decoderConfig","decoderBinary","decoderPending","workerLimit","workerPool","workerNextTaskID","workerSourceURL","defaultAttributeIDs","defaultAttributeTypes","setDecoderPath","setDecoderConfig","setWorkerLimit","attributeIDs","attributeTypes","vertexColorSpace","decodeGeometry","useUniqueIDs","taskConfig","taskKey","cachedTask","worker","taskID","geometryPending","_getWorker","_worker","postMessage","_createGeometry","_releaseTask","geometryData","_assignVertexColorSpace","inputColorSpace","_loadLibrary","_initDecoder","useJS","WebAssembly","librariesPending","jsContent","wasmBinary","DRACOWorker","taskCost","Worker","_taskCosts","_taskLoad","onmessage","terminate","decodeAttribute","draco","dracoGeometry","attributeType","numComponents","num_components","numValues","num_points","dataType","getDracoDataType","DT_FLOAT32","DT_INT8","DT_INT16","DT_INT32","DT_UINT8","DT_UINT16","DT_UINT32","ptr","_malloc","GetAttributeDataArrayForAllPoints","HEAPF32","_free","onModuleLoaded","DracoDecoderModule","Decoder","decodingStatus","geometryType","GetEncodedGeometryType","TRIANGULAR_MESH","DecodeArrayToMesh","POINT_CLOUD","PointCloud","DecodeArrayToPointCloud","error_msg","attributeID","GetAttributeByUniqueId","GetAttributeId","GetAttribute","attributeResult","decodeIndex","numIndices","num_faces","GetTrianglesUInt32Array","ImportManager","clipPlanes","EVENT_DATA_ID","GEOMETRIES_ID","loadOBJGeometry","filename","setFlat","objLoader","processedObject","processOBJ","parseOBJGeometry","setObjFlat","object3d","getObjectSize","parsePhnxScene","sceneString","loadGLTFGeometry","sceneUrl","menuNodeName","initiallyVisible","allGeometries","sceneName","processGLTFSceneName","findMeshes","parentMatrix","geoms","BufferGeometryUtils","processGeometry","parseGLTFGeometry","allGeometriesUIParameters","fullNodeName","loadJSONGeometry","isTransparent","PrettySymbols","getPrettySymbol","symbols","getPrettyParams","paramsCopy","paramKey","dparams","prettyDParams","θ","ϕ","pT","η","NDOF","DOF","Energy","ET","ActiveVariable","updatedValue","SelectionManager","activeObject","intersectedObject","ignoreList","outlinePass","selectedObjects","onDocumentMouseDown","selectedObject","prettyParams","attributeValue","infoLogger","onTouchDown","targetTouches","isInit","effectsManager","addOutlinePassForSelection","setSelectedObject","getActiveObjectId","setSelecting","enableSelecting","disableSelecting","preSelectionAntialias","antialiasing","setAntialiasing","composer","enableHighlighting","highlightObject","disableHighlighting","TextGeometry","font","generateShapes","Font","isFont","createPaths","chars","line_height","yMax","yMin","underlineThickness","ret","createPath","glyph","glyphs","familyName","cpx","cpy","cpx1","cpy1","cpx2","cpy2","outline","_cachedOutline","ha","CoordinateHelper","anglesAreSane","tmp1","etaToTheta","eta","E","thetaToEta","sphericalToCartesian","atlasQuaternion","etaPhiToCartesian","quaternion2","SceneManager","useCameraLight","cartesianGridConfig","showXY","showYZ","showZX","xDistance","yDistance","zDistance","sparsity","textFont","HelvetikerFont","labelTextLookCallbacks","axesNumbers","getScene","setLights","ambientLight","cameraLight","directionalLight","updateLights","getCleanScene","clearScene","removeList","setGeometryOpacity","changeObjectColor","objectVisibility","removeGeometry","getGeometries","removeLabel","getObjectsGroup","LABELS_ID","scaleObject","addEventDataTypeGroup","getEventData","typeGroup","collectionFilter","collectionName","filters","cutPassed","groupVisibility","parentName","identifier","clearEventData","getText","colour","textGeometry","setAxis","labels","xColor","yColor","zColor","xMaterial","yMaterial","zMaterial","axisLabels","colours","colourIndex","createCartesianGrid","cartesianGrid","xyPlane","yzPlane","zxPlane","setCartesianGrid","childPoints","distances","visiblePlanes","getCartesianGridConfig","eventDataDepthTest","objectChild","wireframeGeometries","wireframeObjects","scaleJets","previousScale","scaleChildObjects","groupName","addLabelToObject","labelId","cameraControls","labelsGroup","labelObject","textMesh","translateCartesianGrid","unitVector","translateCartesianLabels","createCartesianLabels","cartesianLabels","xTicks","yTicks","zTicks","alignText","showLabels","setEtaPhiGrid","etaPhiGrid","etaColour","etaVec","toPrecision","etaGeometry","etaMaterial","etaLines","phiLabels","labelIndex","phiColor","phiradius","phiVec","phiGeometry","phiMaterial","phiLines","TracksMesh","positions","counter","track_id","indices_array","next_track_id","addTrack","_attributes","tracks_vert","tracks_frag","TracksMaterial","isTracksMaterial","AnimationsManager","activeCamera","animateEvent","animateEventWithClipping","getCameraTween","animateThroughEvent","startPos","tweenDuration","onAnimationEnd","startXAxis","rotationPositions","singleRotationTime","startClone","onEnd","onAnimationStart","extraAnimationSphereDuration","animationSphere","objectsToAnimateWithSphere","allTweens","eventObject","geometryPosCount","eventObjectTween","oldDrawRangeCount","scaleTween","updatedScale","animationSphereTween","onAnimationSphereUpdate","updateAnimationSphere","reachedHits","getHitsPositions","hitPosition","animationSphereTweenClone","clippingConstant","allEventData","animationClipPlanes","prevLocalClipping","animationClipPlane","collideParticles","particleSize","distanceFromOrigin","particleColor","particleGeometry","particleMaterial","particle1","particle2","particles","particleTweens","particle","particleToOrigin","animateWithCollision","animationFunction","trackColor","animateEventWithCollision","animateClippingWithCollision","hitsPositions","animatePreset","animationPreset","animateEventAfterInterval","collisionDuration","firstTween","previousTween","CopyShader","tDiffuse","Pass","isPass","needsSwap","renderToScreen","FullscreenTriangleGeometry","FullScreenQuad","ShaderPass","textureID","fsQuad","writeBuffer","readBuffer","MaskPass","writeValue","clearValue","REPLACE","ClearMaskPass","EffectComposer","renderTarget1","renderTarget2","passes","copyPass","clock","swapBuffers","addPass","insertPass","removePass","isLastEnabledPass","passIndex","maskActive","effectiveWidth","effectiveHeight","RenderPass","_oldClearColor","oldAutoClear","oldClearAlpha","oldOverrideMaterial","OutlinePass","renderCamera","visibleEdgeColor","hiddenEdgeColor","edgeGlow","usePatternTexture","edgeThickness","edgeStrength","downSampleRatio","pulsePeriod","_visibilityCache","resx","resy","renderTargetMaskBuffer","prepareMaskMaterial","getPrepareMaskMaterial","replaceDepthToViewZ","renderTargetDepthBuffer","renderTargetMaskDownSampleBuffer","renderTargetBlurBuffer1","renderTargetBlurBuffer2","edgeDetectionMaterial","getEdgeDetectionMaterial","renderTargetEdgeBuffer1","renderTargetEdgeBuffer2","separableBlurMaterial1","getSeperableBlurMaterial","texSize","kernelRadius","separableBlurMaterial2","overlayMaterial","getOverlayMaterial","copyShader","copyUniforms","materialCopy","tempPulseColor1","tempPulseColor2","textureMatrix","changeVisibilityOfSelectedObjects","bVisible","gatherSelectedMeshesCallBack","changeVisibilityOfNonSelectedObjects","selectedMeshes","VisibilityChangeCallBack","bFound","updateTextureMatrix","cameraNearFar","maskTexture","BlurDirectionX","BlurDirectionY","edgeTexture1","edgeTexture2","patternTexture","maxRadius","MAX_RADIUS","EffectsManager","defaultRenderPass","antialiasRender","effectsRender","clippingEnabled","startClippingAngle","openingClippingAngle","eventMetadata","runNumber","eventNumber","getInstance","setPhoenixMenuRoot","phoenixMenuRoot","addConfig","saveStateAsJSON","loadStateFromJSON","phoenixMenu","getNodeState","eventDisplay","jsonData","configActive","startAngle","openingAngle","setClippingEnabled","getUIManager","setClipping","rotateStartAngleClipping","rotateOpeningAngleClipping","setStartClippingAngle","getStartClippingAngle","setOpeningClippingAngle","getOpeningClippingAngle","setCamera","setEventDisplay","toLoad","onLoadCallbacks","onProgressCallbacks","progressItems","addLoadableItem","itemLoaded","averageProgress","acc","addLoadListener","addLoadListenerWithCheck","addProgressListener","ColorManager","sceneManager","colorObjectsByProperty","customCheck","collectionColor","collectionColorRandom","colorTracksByVertex","linkedTrackCollection","linkedTracks","colorForTracksVertex","trackCollection","trackIndex","trackObject","XRSessionType","VR","AR","XRManager","sessionType","xrActive","currentXRSession","setXRSession","onSessionStarted","onSessionEnded","webXR","xrType","requestSession","sessionInit","onXRSessionStarted","onXRSessionEnded","cameraGroup","endXRSession","getCameraGroup","xrCamera","getXRCamera","Constants","Handedness","ComponentState","DEFAULT","TOUCHED","PRESSED","ComponentProperty","BUTTON","X_AXIS","Y_AXIS","ComponentType","TRIGGER","SQUEEZE","TOUCHPAD","THUMBSTICK","ButtonTouchThreshold","AxisTouchThreshold","VisualResponseProperty","TRANSFORM","VISIBILITY","fetchJsonFile","_fetchJsonFile","_fetchProfilesList","_fetchProfile","xrInputSource","defaultProfile","getAssetPath","supportedProfilesList","fetchProfilesList","profiles","profileId","supportedProfile","profilePath","deprecated","profile","assetPath","layout","layouts","defaultComponentValues","VisualResponse","visualResponseDescription","componentProperty","states","valueNodeName","valueNodeProperty","minNodeName","maxNodeName","updateFromComponent","normalizedXAxis","normalizedYAxis","normalizeAxes","Component","componentId","componentDescription","visualResponses","gamepadIndices","rootNodeName","touchPointNodeName","responseName","visualResponse","updateFromGamepad","gamepad","buttons","gamepadButton","pressed","MotionController","assetUrl","layoutDescription","XRControllerModel","motionController","setEnvironmentMap","valueNode","minNode","maxNode","MotionControllerConstants","addAssetSceneToControllerModel","controllerModel","findNodes","touchPointNode","sphereGeometry","XRControllerModelFactory","gltfLoader","_assetCache","createControllerModel","targetRayMode","fetchProfile","_x4","cachedAsset","VRManager","optionalFeatures","setupVRControls","controller1","onControllerSelectStart","onControllerSelectEnd","controller2","controllerModelFactory","controllerGrip1","controllerGrip2","intervalId","setInterval","moveInDirection","clearInterval","stepDistance","SESSION_TYPE","ARManager","previousValues","sceneScale","cameraNear","enableDomOverlay","domOverlay","scaleScene","_updateMatrixWorld","ThreeManager","prev3DCoord","prevIntersectName","distanceCanvas","displayColor","originChanged","shiftGrid","stopShifting","saveBlob","loadingManager","configuration","exportManager","importManager","controlsManager","animationsManager","vrManager","arManager","colorManager","getSelectionManager","setDarkColor","dark","updateControls","tweenUpdate","uiLoop","stopAnimationLoop","xrRender","xrManager","getSceneManager","filterRayIntersect","isEventData","elem2","isVisible","originChangedEmit","getMainIntersect","mousePosition","mainIntersect","show3DMousePoints","show","show3DPointsCallback","initialCoord","finalCoord","app","getElementsByTagName","innerHTML","whiteSpace","div","border","borderRadius","show3DDistance","prev2DCoord","show3DDistanceCallback","mousemoveCallback","drawLine","strokeStyle","beginPath","stroke","x_center","y_center","delta_x","y3","measureText","fillText","clearRect","finalPoint","shiftCartesianGrid","shiftCartesianGridCallback","rightClickCallback","_event","setClippingAngle","startingAngle","startingAngleQuaternion","openingAngleQuaternion","animateCameraTransform","cameraTarget","animateCameraPosition","animateCameraTarget","swapCameras","useOrthographic","cameraType","filename_1","name_1","color_1","doubleSided_1","geometryUIParameters","json_1","scale_1","fixOverlayView","fixed","setSelectedObjectDisplay","selectionManager","posAnimation","rotAnimation","detector","enableKeyboardControls","isOrthographicView","croppedSize","screenWidth","screenHeight","croppedHeight","croppedWidth","checkScreenShotCanvasSize","fitting","originalSize","scaledSize","MAX_RENDERBUFFER_SIZE","makeScreenShot","heightShift","widthShift","bkgColor","getComputedStyle","getPropertyValue","outputCanvas","infoPanel","infoHeight","infoWidth","html2canvas","backgroundColor","ignoreElements","initXRSession","xrSessionType","addGeometryFromParameters","numPhiEl","NumPhiEl","numZEl","NumZEl","Radius","MinZ","MaxZ","tiltAngle","TiltAngle","ztiltAngle","ZTiltAngle","phiOffset","PhiOffset","Colour","Xdim","Ydim","Zdim","zstep","phistep","halfPi","modulecentre","elZ","elPhi","getColorManager","ClippingSetting","NotForced","On","Off","PresetView","cameraPos","icon","clippingStartAngle","clippingOpeningAngle","getIconURL","colorToString","forceCSSHex","__state","conversionName","ARR_EACH","ARR_SLICE","Common","BREAK","each","isObject","isUndefined","defaults","itr","_key","fnc","debounce","callImmediately","callNow","delayed","isNull","_isNaN","isNumber","isString","INTERPRETATIONS","litmus","conversions","THREE_CHAR_HEX","SIX_CHAR_HEX","CSS_RGB","CSS_RGBA","HEX","RGB_ARRAY","RGBA_ARRAY","RGBA_OBJ","RGB_OBJ","HSVA_OBJ","HSV_OBJ","toReturn","interpret","family","conversion","tmpComponent","ColorMath","hsv_to_rgb","hi","rgb_to_hsv","rgb_to_hex","hex_with_component","component_from_hex","componentIndex","_typeof","classCallCheck","Constructor","createClass","descriptor","writable","protoProps","staticProps","getOwnPropertyDescriptor","inherits","subClass","superClass","setPrototypeOf","possibleConstructorReturn","ReferenceError","defineRGBComponent","componentHexIndex","recalculateRGB","defineHSVComponent","recalculateHSV","COMPONENTS","Controller","__onChange","__onFinishChange","updateDisplay","EVENT_MAP_INV","HTMLEvents","MouseEvents","KeyboardEvents","CSS_VALUE_PIXELS","cssValueToPixels","dom","makeSelectable","selectable","onselectstart","MozUserSelect","KhtmlUserSelect","unselectable","makeFullscreen","hor","vertical","horizontal","fakeEvent","eventType","aux","createEvent","initMouseEvent","bubbles","cancelable","clickCount","initKeyboardEvent","initKeyEvent","keyCode","charCode","initEvent","newBool","attachEvent","detachEvent","hasClass","getWidth","getHeight","getOffset","offsetParent","offsetLeft","offsetTop","activeElement","BooleanController","_Controller","__prev","__checkbox","onChange","checked","OptionController","__select","opt","StringController","__input","onBlur","blur","numDecimals","NumberController","_params","__min","__max","__step","__impliedStep","LN10","__precision","_v","minValue","maxValue","stepValue","NumberControllerBox","_NumberController","__truncationSuspended","prevY","onFinish","onMouseDrag","onMouseUp","attempted","roundToDecimal","tenTo","NumberControllerSlider","bgRect","__background","onTouchEnd","__foreground","pct","FunctionController","__button","fire","ColorController","__color","__temp","__selector","__saturation_field","__field_knob","__field_knob_border","__hue_knob","__hue_field","__input_textShadow","valueField","fieldDown","setSV","fieldUpSV","fieldDownH","setH","fieldUpH","toOriginal","fieldRect","padding","boxShadow","zIndex","borderRight","marginRight","linearGradient","hueGradient","cssText","textAlign","fontWeight","textShadow","mismatch","flip","_flip","marginLeft","marginTop","toHexString","vendors","vendor","ControllerFactory","requestAnimationFrame$1","webkitRequestAnimationFrame","mozRequestAnimationFrame","oRequestAnimationFrame","msRequestAnimationFrame","CenteredDiv","backgroundElement","WebkitTransition","hide","webkitTransform","cssContent","indoc","injected","css","___$insertStyle","DEFAULT_DEFAULT_PRESET_NAME","SUPPORTS_LOCAL_STORAGE","localStorage","SAVE_DIALOGUE","autoPlaceVirgin","autoPlaceContainer","hideableGuis","GUI","__ul","__folders","__controllers","__rememberedObjects","__rememberedObjectIndecesToControllers","__listening","closeOnTop","autoPlace","DEFAULT_WIDTH","resizable","hideable","preset","scrollable","useLocalStorage","getItem","getLocalStorageHash","saveToLocalStorage","titleRow","getRoot","setPresetSelectIndex","gui","__preset_select","revert","setWidth","CLASS_CLOSED","onResize","__closeButton","TEXT_OPEN","TEXT_CLOSED","bool","setItem","CLASS_MAIN","savedGui","CLASS_CLOSE_BUTTON","CLASS_CLOSE_TOP","childNodes","CLASS_CLOSE_BOTTOM","titleRowName","addRow","CLASS_AUTO_PLACE_CONTAINER","CLASS_AUTO_PLACE","__resizeHandler","onResizeDebounced","addResizeHandle","pmouseX","drag","dragStop","CLASS_DRAG","dragStart","__resize_handle","firstElementChild","saveToLocalStorageIfPossible","getSaveObject","resetWidth","newDom","liBefore","removeListeners","markPresetModified","modified","recallSavedValue","matchedIndex","controllerMap","remembered","presetMap","_add","factoryArgs","__li","CLASS_CONTROLLER_ROW","augmentController","__gui","_options","nextElementSibling","_nextSibling","_name","pc","pb","returned","oldName","wasListening","newController","stopPropagation","borderLeftColor","isModified","addPresetOption","setSelected","showHideExplain","explain","__save_row","getCurrentPreset","useInitialValues","savedValues","updateDisplays","controllerArray","toggleHide","CLASS_TOO_TALL","_keydownHandler","which","subfolder","removeFolder","addFolder","newGuiParams","folders","folder","remember","addSaveMenu","gears","button2","button3","select","localStorageCheckBox","newConstructorTextArea","save","presetName","prompt","saveAs","GUI$1","DatGUIMenuUI","three","guiParameters","lowRes","maxPositionX","maxPositionY","maxPositionZ","geomFolder","eventFolder","labelsFolder","addGeometryFolder","_menuSubfolder","detectorOpacity","removeOBJ","objFolder","onFinishChange","addEventDataFolder","addEventDataTypeFolder","typeFolder","addCollection","eventDataType","cuts","randomColor","resetCut","collFolder","collectionObject","colorMenu","cutsFolder","cut","addLabelsFolder","configFunctions","onToggle","onSizeChange","onColorChange","onSaveLabels","onLoadLabels","saveLabels","loadLabels","addLabel","onRemoveLabel","labelItem","labelItemFolder","getEventDataTypeFolder","ColorByOptionKeys","CHARGE","MOM","VERTEX","ColorOptions","collectionFolder","colorByOptionsToInclude","allColorByOptions","initChargeColorOptions","applyChargeColorOptions","initMomColorOptions","applyMomColorOptions","applyVertexColorOptions","chargeColors","momColors","colorOptionsFolder","addChild","colorByOptions","colorByOption","initColorByOptions","onlySelectedColorByOption","selectedColorByOption","updatedColorByOption","newColorByOption","chargeValue","objectUserData","shouldColorByCharge","objectParams","charge","momValue","allowCustomValue","sliderValue","colorByMomentum","minOrMax","mom","getMomentum","configs","groupNotSelected","PhoenixMenuUI","truncate","isChecked","menuSubfolder","findInTreeOrCreate","nameStart","toggleState","eventFolderState","eventDataTypeNode","collectionNode","addDrawOptions","addCutOptions","cutsOptionsNode","highValue","enableMin","minCutActive","enableMax","maxCutActive","setEnableMin","enableMinCut","setEnableMax","enableMaxCut","drawOptionsNode","eventDataObject","labelNode","phoenixMenuNode","singleLabelNode","loadEventFolderState","getFromLocalStorage","exception","defaultAnimationPresets","UIManager","uiMenus","geomFolderAdded","labelsFolderAdded","clearUI","showStats","enableDatGUIMenu","forceColourTheme","setDarkTheme","toLocaleLowerCase","detectColorScheme","stats","Stats","showPanel","updateUI","menu","addGeomFolder","toggleValue","labelsObject","eventDataLoader","getLabelsObject","loadLabelsFile","removeFolders","objectKeys","geometryVisibility","matchMedia","darkTheme","theme","setToLocalStorage","documentElement","getDarkTheme","setAutoRotate","setShowAxis","setShowCartesianGrid","setShowEtaPhiGrid","shiftCartesianGridByPointer","getPresetViews","presetViews","getPresetAnimations","presetAnimations","displayView","toggleOrthographicView","getCollection","objectUuid","addLabelToEventObject","loadEventFolderPhoenixMenuState","phoenixMenuUI","uiMenu","getUIMenus","InfoLogger","infoLoggerList","maxEntries","getInfoLoggerList","Cut","defaultMinValue","defaultMaxValue","defaultApplyMinValue","defaultApplyMaxValue","_v1","_line3","Line3","distanceSq","closestPointToPointParameter","clampToLine","startEnd2","_closestPoint","ConvexHull","newFaces","assigned","VertexList","unassigned","VertexNode","compute","intersectRay","tNear","tFar","vN","vD","intersectsRay","addVertexToFace","outside","removeVertexFromFace","removeAllVerticesFromFace","removeSubList","deleteFaceVertices","absorbingFace","appendChain","nextVertex","resolveUnassignedPoints","maxFace","computeExtremes","minVertices","maxVertices","computeInitialHull","extremes","Face","getEdge","setTwin","reindexFaces","activeFaces","nextVertexToAdd","eyeVertex","eyeFace","computeHorizon","eyePoint","crossEdge","horizon","edge","twinEdge","twin","oppositeFace","addAdjoiningFace","horizonEdge","addNewFaces","firstSideEdge","previousSideEdge","sideEdge","addVertexToHull","midpoint","e0","HalfEdge","e1","e2","lengthSquared","insertAfter","ConvexGeometry","EVENT_DATA_TYPE_COLORS","Hits","Tracks","Jets","CaloClusters","MuonChambers","Vertices","MissingEnergy","PlanarCaloCells","RungeKutta","qop","unitC","h2","half_h","B_middle","B_last","k3","k4","B_first","Field","tryRungeKuttaStep","pos1","pos2","returnVec","error_estimate","stepSize","fh","fh2","propagate","startDir","mss","plength","inbounds","rkState","State","maxStepSize","copiedState","RKHelper","extrapolationLimit","getTracksWithRungeKutta","tracksCollectionsEvent","tracksCollections","tracksCollection","extrapolateTrackPositions","globalMomentum","extrapolatedPos","PhoenixObjects","getTracks","tracksMesh","tracksMaterial","extended","tid","tracksObject","getTrack","trackParams","objectColor","tubeObject","lineGeometry","lineObject","getJet","jetParams","energy","et","sphi","cphi","stheta","ctheta","coneR","getHits","hitsParams","hitsParamsClone","coordlength","isSimpleArray","hitLength","pointPos","hit","hitsToPoints","hitsToCircularPoints","hitsToLines","hitsToBoxes","_hitParamsClone","pointsObj","linesObj","boxGeometry","getCluster","clusterParams","defaultRadius","defaultZ","energyScaling","clusterWidth","getCaloCube","getCaloPosition","cylindrical","cylRadius2","maxR2","defaultCellWidth","defaultCellLength","cellWidth","cellLength","_e","getCaloCell","caloCellParams","defaultSide","defaultLength","getPlanarCaloCells","caloCells","caloCell","cellSize","qrot","outerBox","getPlanarCaloCell","boxPosition","getVertex","vertexParams","getMissingEnergy","metParams","etx","ety","getIrregularCaloCell","irrCells","verticesOfCube","vtx","cell_color","cell","getLabelTitle","PhoenixLoader","buildEventData","graphicsLibrary","ui","loadObjectTypes","getEventsList","eventsData","eventsList","getCollections","collections","pi","addObjectType","addJetsSizeOption","addScaleOptions","addCaloClusterOptions","CaloCells","addCaloCellOptions","addPlanarCaloCellsOptions","cells","IrregularCaloCells","addIrregularCaloCellOptions","Muons","getCompoundTrack","Photons","getCompoundCluster","Electrons","addVerticesOptions","addMETSizeOption","typeFolderPM","scaleMET","jetsScale","getObject","concatonateObjs","extendEventDataTypeUI","objectGroup","collectionsList","getObjectTypeCollections","objectCollection","eventDataTypeFolderDatGUI","eventDataTypeFolderPhoenixMenu","collscene","getCompound","objectIsTrack","objectIsCluster","LinkedClusters","clusterID","clusterColl","clusterIndex","cluster","LinkedTracks","trackID","trackColl","pdgId","getEventMetadata","eventDataPropGroups","eventDataKeys","eventDataPropGroup","combinedProps","eventDataProp","eventDataPropKey","indexInCollection","configKey","configLabel","scaleFunction","JiveXMLLoader","firstEvent","lumiBlock","getPixelClusters","getSCTClusters","getTRT_DriftCircles","getMuonPRD","getRPC","getJets","getCaloClusters","getCaloCells","getVertices","getElectrons","getMuons","getPhotons","getNumberArrayFromHTML","getStringArrayFromHTML","getPositionOfHit","hitIdentifier","hitcollection","tracksHTML","trackCollections","badTracks","trackCollectionName","numOfTracks","jsontracks","polylineX","polylineY","polylineZ","numPolyline","polyLineXHTML","chi2","numDoF","phi0","cotTheta","trackAuthor","polylineCounter","storeTrack","debugTrack","dof","hits","author","badtrack","momentum","maxR","pixClustersHTML","numOfClusters","eloss","Pixel","pixel","energyLoss","sctClustersHTML","numOfSCTClusters","phiModule","SCT","sct","dcHTML","numOfDC","driftR","noise","rhoz","timeOverThreshold","TRT","trt","muonHit","getMuonLinePositions","rpcHit","scaling","jetsHTML","jetCollections","jetColl","numOfJets","clustersHTML","clusterCollections","getFCALCaloCells","oldZ","cellz","verticesHTML","vertexCollections","vertexColl","numOfObjects","primVxCand","vertexType","numTracks","sgkeyOfTracks","trackIndices","maxIndex","thisTrackIndices","objHTML","objCollections","readZipFile","archive","JSZip","filesWithData","filePath","fileData","async","phoenixURLOptions","hideWidgets","embed","URLOptionsManager","urlOptions","substr","applyOptions","applyEventOptions","defaultEventFile","eventFile","applyHideWidgetsOptions","applyEmbedOption","defaultEventPath","defaultEventType","loadConfig","getLoadingManager","jsonState","fileURL","handleJiveXMLEvent","handleZipFileEvents","handleJSONEvent","processEventFile","getInfoLogger","buildEventDataFromJSON","parsePhoenixEvents","fileBuffer","allEventsObject","jiveloader","hideIdsWithURLOption","urlOptionWithIds","urlOption","idsToHide","singleId","getURLOptions","EventDisplay","onEventsChange","onDisplayedEventChange","getStateManager","urlOptionsManager","allowUrlOptions","enableEventDisplayConsole","initXR","endXR","eventKeys","loadEvent","resetLabels","eventKey","getThreeManager","getURLOptionsManager","menuNodeName_1","exportToOBJ","parsePhoenixDisplay","phoenixScene","loadSceneConfiguration","exportPhoenixDisplay","url_1","loadRootJSONGeometry","httpRequest","dflt_colors","loadRootGeometry","objectName_1","jsrootSettings","UseStamp","openFile","readObject","buildGeometryFromParameters","geom","listenToDisplayedEventChange","listenToLoadedEventsChange","allowSelection","PhoenixMenuNode","nodeLevel","childrenToggleState","childrenActive","childIndex","configsLength","applyConfigState","toggleSelfAndDescendants","_f","phoenixNodeJSON","jsonObject","configState","nodeConfig","childState","nodeChild","findInTree","nodeFound","prevNode","CMSObjects","getMuonChamber","muonChamberParams","allFacePositions","addFace3","boxBuffer","boxObject","boxEdges","lineBoxObject","muonChamber","CMSLoader","geometryScale","readIgArchive","eventPathName","igArchive","eventsDataInIg","readArchive","allFilesPath","filePathInIg","singleEvent","eventJSON","eventPath","File","loadEventDataFromIg","onEventRead","allEvents","eventInfo","Collections","Event_V2","ls","getTrackingClusters","getMuonChambers","getAllEventsData","allEventsDataFromIg","allEventsData","newHits","getObjectCollections","jetsCollections","energyAttribute","muonChamberParam","processObject","ObjectType","objectAttributes","Types","physicsObject","attributeIndex","maxPass","minPass","assocs","min_pt","Associations","trackTypes","ti","ei","cp1","cp2","Edm4hepJsonLoader","setRawEventData","rawEventData","processEventData","oneEventData","getEventNumber","getRunNumber","colorTracks","getCells","getNumEvents","eventHeader","EventHeader","recoParticles","mcParticles","mcRecoAssocs","ReconstructedParticles","Particle","MCRecoAssociations","EFlowTrack","mcRecoAssoc","pdgid","sim","PDG","rec","trackRef","pid","allVertices","collName","collDict","collType","rawVertices","vertexColor","rawVertex","allTracks","electrons","photons","pions","protons","kaons","rawTrack","trackerHits","trackerHitRef","trackerHit","getCollByID","collectionID","trackStates","trackState","allHits","rawHits","hitColor","rawHit","allCells","rawCells","drmin","dx2","dy2","dz2","dr","cellSide","cellsHue","rawCell","rho","asinh","cellLightness","valToLightness","cellOpacity","valToOpacity","convHSLtoHEX","allClusters","clusters","rawCluster","allJets","jets","rawJet","allMETs","METs","rawMET","padStart","collID","TrackmlLoader","hitData","particleData","truthData","processHits","processParticles","particle_id","vertex_pos","processTruth","truth","eventNum","Reconstructed","mod","Particles","hitId","particleId","EventDisplayService","HomeComponent","year","getFullYear","NavComponent","ErrorMessageService","subscribeToError","setError","ɵɵstyleMap","_c1","ctx_r0","LoaderComponent_ng_container_1_div_7_Template","LoaderComponent","errorMessageService","LoaderComponent_ng_container_1_Template","LoaderComponent_ng_template_2_Template","_c0","errorContainer_r2","GeometryComponent","loadingProgress","ModuleName","EdgeColour","copyCode","inputElement","execCommand","EventDataFormat","EDM4HEPJSON","JIVEXML","IG","ZIP","ImportOption","fileType","hasV8BreakIterator","Intl","v8BreakIterator","supportsPassiveEvents","scrollBehaviorSupported","shadowDomIsSupported","Platform","_platformId","EDGE","TRIDENT","BLINK","chrome","CSS","WEBKIT","IOS","FIREFOX","ANDROID","SAFARI","normalizePassiveListenerOptions","supportsPassiveEventListeners","supportsScrollBehavior","Element","scrollToFunction","_getShadowRoot","_supportsShadowDom","createShadowRoot","ShadowRoot","_getFocusedElementPierceShadowDom","newActiveElement","_getEventTarget","composedPath","_isTestEnvironment","__karma__","jasmine","jest","Mocha","hasModifierKey","modifiers","Action","intervalProvider","AsyncAction","recycleAsyncId","requestAsyncId","_scheduler","_execute","_delay","errorValue","actions","dateTimestampProvider","Scheduler","schedulerActionCtor","AsyncScheduler","SchedulerAction","asyncScheduler","debounceTime","dueTime","activeTask","lastValue","lastTime","emitWhenIdle","targetTime","skip","defaultCompare","coerceBooleanProperty","coerceNumberProperty","_isNumberValue","coerceArray","coerceCssPixelValue","coerceElement","elementOrRef","MutationObserverFactory","MutationObserver","ObserversModule","mediaQueriesForWebkitCompatibility","mediaQueryStyleNode","MediaMatcher","_platform","_nonce","_matchMedia","noopMatchMedia","createEmptyStyleRule","sheet","insertRule","media","addListener","removeListener","BreakpointObserver","_mediaMatcher","_queries","_destroySubject","isMatched","splitQueries","mediaQuery","_registerQuery","mql","stateObservable","breakpointStates","breakpoints","getAriaReferenceIds","CDK_DESCRIBEDBY_ID_PREFIX","CDK_DESCRIBEDBY_HOST_ATTRIBUTE","AriaDescriber","_messageRegistry","_messagesContainer","describe","hostElement","role","_canBeDescribed","getKey","setMessageId","messageElement","referenceCount","_createMessageElement","_isElementDescribedByMessage","_addMessageReference","removeDescription","_isElementNode","_removeMessageReference","registeredMessage","_deleteMessageElement","describedElements","_removeCdkDescribedByReferenceIds","_createMessagesContainer","containerClassName","serverContainers","messagesContainer","originalReferenceIds","addAriaReferencedId","ids","existingId","removeAriaReferencedId","filteredIds","referenceIds","messageId","trimmedMessage","ariaLabel","serviceId","ListKeyManager","_items","_activeItemIndex","_activeItem","_wrap","_letterKeyStream","_typeaheadSubscription","_vertical","_allowedModifierKeys","_homeAndEnd","_pageUpAndDown","_skipPredicateFn","disabled","_pressedLetters","tabOut","_itemChangesSubscription","newItems","skipPredicate","withWrap","shouldWrap","withVerticalOrientation","withHorizontalOrientation","_horizontal","withAllowedModifierKeys","withTypeAhead","debounceInterval","letter","inputString","items","_getItemsArray","getLabel","setActiveItem","cancelTypeahead","withHomeAndEnd","withPageUpDown","previousActiveItem","updateActiveItem","onKeydown","isModifierAllowed","setNextItemActive","setPreviousItemActive","setFirstItemActive","setLastItemActive","_setActiveItemByIndex","itemsLength","toLocaleUpperCase","activeItemIndex","activeItem","isTyping","_setActiveItemByDelta","itemArray","_setActiveInWrapMode","_setActiveInDefaultMode","fallbackDelta","FocusKeyManager","_origin","setFocusOrigin","InteractivityChecker","isDisabled","hasGeometry","getClientRects","isTabbable","frameElement","getFrameElement","getWindow","ownerDocument","getTabIndexValue","tabIndexValue","isPotentiallyTabbableIOS","inputType","tabIndex","isFocusable","isPotentiallyFocusable","isHiddenInput","isInputElement","isNativeFormElement","isAnchorWithHref","hasValidTabIndex","ignoreVisibility","FocusTrap","_enabled","_startAnchor","_endAnchor","_toggleAnchorTabIndex","_element","_checker","deferAnchors","_hasAttached","startAnchorListener","focusLastTabbableElement","endAnchorListener","focusFirstTabbableElement","attachAnchors","startAnchor","endAnchor","_createAnchor","focusInitialElementWhenReady","_executeOnStable","focusInitialElement","focusFirstTabbableElementWhenReady","focusLastTabbableElementWhenReady","_getRegionBoundary","markers","_getFirstTabbableElement","_getLastTabbableElement","redirectToElement","focusableChild","hasAttached","tabbableChild","toggleAnchors","FocusTrapFactory","deferCaptureElements","isFakeMousedownFromScreenReader","isFakeTouchstartFromScreenReader","touch","changedTouches","radiusX","radiusY","INPUT_MODALITY_DETECTOR_OPTIONS","INPUT_MODALITY_DETECTOR_DEFAULT_OPTIONS","ignoreKeys","modalityEventListenerOptions","InputModalityDetector","mostRecentModality","_modality","_mostRecentTarget","_lastTouchMs","_onKeydown","_onMousedown","_onTouchstart","modalityDetected","modalityChanged","distinctUntilChanged","comparator","keySelector","previousKey","currentKey","FocusMonitorDetectionMode","IMMEDIATE","EVENTUAL","FOCUS_MONITOR_DEFAULT_OPTIONS","captureEventListenerOptions","FocusMonitor","_inputModalityDetector","_windowFocused","_originFromTouchInteraction","_elementInfo","_monitoredElementCount","_rootNodeFocusListenerCount","_windowFocusListener","_windowFocusTimeoutId","_stopInputModalityDetector","_rootNodeFocusAndBlurListener","_onFocus","_onBlur","_detectionMode","detectionMode","monitor","checkChildren","_getDocument","cachedInfo","_registerGlobalListeners","stopMonitoring","elementInfo","_setClasses","_removeGlobalListeners","focusVia","_getClosestElementsInfo","currentElement","_originChanged","_setOrigin","_info","_getWindow","_getFocusOrigin","focusEventTarget","_shouldBeAttributedToTouch","_lastFocusOrigin","_isLastInteractionFromInputLabel","contains","isFromInteraction","_originTimeoutId","relatedTarget","_emitOrigin","rootNodeFocusListeners","modality","mostRecentTarget","HighContrastMode","BLACK_ON_WHITE","WHITE_ON_BLACK","BLACK_ON_WHITE_CSS_CLASS","WHITE_ON_BLACK_CSS_CLASS","HIGH_CONTRAST_MODE_ACTIVE_CSS_CLASS","HighContrastModeDetector","_breakpointSubscription","_hasCheckedHighContrastMode","_applyBodyHighContrastModeCssClasses","getHighContrastMode","testElement","documentWindow","computedStyle","computedColor","bodyClasses","A11yModule","highContrastModeDetector","popNumber","resolved","nextHandle","activeHandles","findAndClearHandle","Immediate","setImmediate","clearImmediate","immediateProvider","asapScheduler","AsapScheduler","flushId","_scheduled","AsapAction","delayWhen","delayDurationSelector","subscriptionDelay","timer","intervalOrScheduler","intervalDuration","due","isValidDate","DIR_DOCUMENT","DIR_DOCUMENT_FACTORY","RTL_LOCALE_PATTERN","_resolveDirectionality","rawValue","language","BidiModule","_c5","_c6","MATERIAL_SANITY_CHECKS","MATERIAL_SANITY_CHECKS_FACTORY","MatCommonModule","_sanityChecks","_hasDoneGlobalChecks","_checkIsEnabled","RippleState","FADING_IN","VISIBLE","FADING_OUT","HIDDEN","RippleRef","_animationForciblyDisabledThroughCss","fadeOut","fadeOutRipple","passiveCapturingEventOptions$1","RippleEventManager","_delegateEventHandler","handleEvent","handlersForEvent","handlersForElement","defaultRippleAnimationConfig","enterDuration","exitDuration","passiveCapturingEventOptions","pointerDownEvents","pointerUpEvents","RippleRenderer","_eventManager","elementOrElementRef","_isPointerDown","_activeRipples","_pointerUpEventsRegistered","_containerElement","fadeInRipple","containerRect","_containerRect","animationConfig","centered","distanceToFurthestCorner","distX","distY","ripple","transitionDuration","computedStyles","userTransitionDuration","animationForciblyDisabledThroughCss","transitionProperty","rippleRef","persistent","_mostRecentTransientRipple","eventListeners","onTransitionEnd","_finishRippleTransition","onTransitionCancel","_destroyRipple","rippleEl","fadeOutAll","_getActiveRipples","fadeOutAllNonPersistent","setupTriggerEvents","_triggerElement","_removeTriggerEvents","_onTouchStart","_onPointerUp","_startFadeOutTransition","isMostRecentTransientRipple","isFakeMousedown","isSyntheticEvent","_lastTouchStartEvent","rippleDisabled","rippleConfig","terminateOnPointerUp","MAT_RIPPLE_GLOBAL_OPTIONS","MatRipple","_disabled","_setupTriggerEventsIfEnabled","_trigger","_elementRef","globalOptions","_animationMode","_isInitialized","_globalOptions","_rippleRenderer","launch","configOrX","i1$1","unbounded","MatRippleModule","eventListenerOptions","rippleInteractionEvents","matRippleUninitialized","matRippleClassName","matRippleCentered","matRippleDisabled","MatRippleLoader","_globalRippleOptions","_hosts","_onInteraction","HTMLElement","closest","_createRipple","hosts","destroyRipple","configureRipple","getRipple","setDisabled","existingRipple","attachRipple","_MatInternalFormField","labelPosition","Portal","_attachedHost","isAttached","setAttachedHost","ComponentPortal","TemplatePortal","DomPortal","BasePortalOutlet","_isDisposed","attachDomPortal","_attachedPortal","portal","attachComponentPortal","attachTemplatePortal","_invokeDisposeFn","setDisposeFn","_disposeFn","DomPortalOutlet","outletElement","_componentFactoryResolver","_defaultInjector","replaceChild","_getComponentRootNode","CdkPortalOutlet","attached","_getRootNode","attachedRef","_attachedRef","PortalModule","AnimationMetadataType","Transition","Animate","Keyframes","Style","Trigger","Reference","AnimateChild","AnimateRef","Query","Stagger","AUTO_STYLE","definitions","animate","timings","stateChangeExpr","expr","NoopAnimationPlayer","_onDoneFns","_onStartFns","_onDestroyFns","_originalOnDoneFns","_originalOnStartFns","_started","_finished","_position","parentPlayer","_onFinish","hasStarted","play","_onStart","triggerMicrotask","restart","getPosition","triggerCallback","phaseName","methods","AnimationGroupPlayer","_players","players","doneCount","destroyCount","startCount","player","_onDestroy","timeAtPosition","longestPlayer","longestSoFar","beforeDestroy","nodeEventEmitterMethods","eventTargetMethods","jqueryMethods","fromEvent","isEventTarget","isNodeStyleEventEmitter","toCommonHandlerRegistry","isJQueryStyleEventEmitter","on","off","subTarget","animationFrameProvider","cancel","timestamp","animationFrameScheduler","AnimationFrameScheduler","AnimationFrameAction","auditTime","audit","durationSelector","durationSubscriber","endDuration","cleanupDuration","ScrollDispatcher","_scrolled","_globalSubscription","_scrolledCount","scrollContainers","elementScrolled","deregister","scrollableReference","scrolled","auditTimeInMs","_addGlobalListener","_removeGlobalListener","ancestorScrolled","ancestors","getAncestorScrollContainers","scrollingContainers","_subscription","_scrollableContainsElement","scrollableElement","getElementRef","ViewportRuler","_change","_changeListener","getViewportSize","_updateViewportSize","getViewportRect","scrollPosition","getViewportScrollPosition","documentRect","scrollTop","scrollLeft","throttleTime","CdkScrollableModule","ScrollingModule","BlockScrollStrategy","_viewportRuler","_previousHTMLStyles","_isEnabled","_canBeEnabled","_previousScrollPosition","html","htmlStyle","bodyStyle","previousHtmlScrollBehavior","scrollBehavior","previousBodyScrollBehavior","scroll","scrollHeight","scrollWidth","CloseScrollStrategy","_scrollDispatcher","_config","_scrollSubscription","_detach","_overlayRef","overlayRef","overlayElement","_initialScrollPosition","updatePosition","NoopScrollStrategy","isElementScrolledOutsideView","containerBounds","isElementClippedByScrolling","scrollContainerRect","RepositionScrollStrategy","scrollThrottle","overlayRect","ScrollStrategyOptions","block","reposition","OverlayConfig","scrollStrategy","panelClass","hasBackdrop","backdropClass","disposeOnNavigation","configKeys","ConnectedOverlayPositionChange","connectionPair","scrollableViewProperties","BaseOverlayDispatcher","_attachedOverlays","OverlayKeyboardDispatcher","_keydownListener","overlays","_keydownEvents","keydownEvents","_isAttached","OverlayOutsideClickDispatcher","_cursorStyleIsSet","_pointerDownListener","_pointerDownEventTarget","_clickListener","_outsidePointerEvents","outsidePointerEvents","_addEventListeners","_cursorOriginalValue","OverlayContainer","getContainerElement","_createContainer","containerClass","oppositePlatformContainers","OverlayRef","_portalOutlet","_host","_pane","_keyboardDispatcher","_outsideClickDispatcher","_animationsDisabled","_backdropElement","_backdropClick","_attachments","_detachments","_locationChanges","_backdropClickHandler","_backdropTransitionendHandler","_disposeBackdrop","_scrollStrategy","_positionStrategy","positionStrategy","backdropElement","_previousHostParent","attachResult","_updateStackingOrder","_updateElementSize","_updateElementDirection","_togglePointerEvents","_attachBackdrop","_toggleClasses","detachBackdrop","detachmentResult","_detachContentWhenStable","_disposeScrollStrategy","backdropClick","attachments","detachments","getConfig","updatePositionStrategy","strategy","updateSize","sizeConfig","setDirection","addPanelClass","removePanelClass","getDirection","updateScrollStrategy","minWidth","minHeight","maxWidth","maxHeight","enablePointer","pointerEvents","showingClass","backdropToDetach","_backdropTimeout","cssClasses","isAdd","backdrop","boundingBoxClass","cssUnitPattern","FlexibleConnectedPositionStrategy","_preferredPositions","connectedTo","_overlayContainer","_lastBoundingBoxSize","_isPushed","_canPush","_growAfterOpen","_hasFlexibleDimensions","_positionLocked","_viewportMargin","_scrollables","_positionChanges","_resizeSubscription","_offsetX","_offsetY","_appliedPanelClasses","positionChanges","setOrigin","_validatePositions","_boundingBox","_isInitialRender","_lastPosition","reapplyLastPosition","_clearPanelClasses","_resetOverlayElementStyles","_resetBoundingBoxStyles","_viewportRect","_getNarrowedViewportRect","_originRect","_getOriginRect","_overlayRect","originRect","viewportRect","flexibleFits","fallback","originPoint","_getOriginPoint","overlayPoint","_getOverlayPoint","overlayFit","_getOverlayFit","isCompletelyWithinViewport","_applyPosition","_canFitWithFlexibleDimensions","boundingBoxRect","_calculateBoundingBoxRect","visibleArea","bestFit","bestScore","fit","score","_previousPushAmount","extendStyles","alignItems","justifyContent","withScrollableContainers","scrollables","withPositions","withViewportMargin","margin","withFlexibleDimensions","flexibleDimensions","withGrowAfterOpen","growAfterOpen","withPush","canPush","withLockedPosition","isLocked","withDefaultOffsetX","withDefaultOffsetY","withTransformOriginOn","_transformOriginSelector","originX","startX","_isRtl","endX","originY","overlayStartX","overlayStartY","overlayX","overlayY","rawOverlayRect","overlay","getRoundedBoundingClientRect","_getOffset","topOverflow","bottomOverflow","visibleWidth","_subtractOverflows","visibleHeight","fitsInViewportVertically","fitsInViewportHorizontally","availableHeight","availableWidth","getPixelValue","_pushOverlayOnScreen","overflowRight","overflowBottom","overflowTop","overflowLeft","pushX","pushY","_setTransformOrigin","_setOverlayElementStyles","_setBoundingBoxStyles","_addPanelClasses","scrollVisibility","_getScrollVisibility","_lastScrollVisibility","compareScrollVisibility","isOriginClipped","isOriginOutsideView","isOverlayClipped","isOverlayOutsideView","changeEvent","xOrigin","yOrigin","transformOrigin","isRtl","smallestDistanceToViewportEdge","previousHeight","previousWidth","_hasExactPosition","hasExactPosition","hasFlexibleDimensions","_getExactOverlayY","_getExactOverlayX","transformString","horizontalStyleProperty","originBounds","overlayBounds","scrollContainerBounds","overflows","currentOverflow","cssClass","clientRect","wrapperClass","GlobalPositionStrategy","_cssPosition","_topOffset","_bottomOffset","_alignItems","_xPosition","_xOffset","centerHorizontally","centerVertically","parentStyles","shouldBeFlushHorizontally","shouldBeFlushVertically","xPosition","marginBottom","OverlayPositionBuilder","flexibleConnectedTo","nextUniqueId","Overlay","scrollStrategies","_positionBuilder","_directionality","_animationsModuleType","_createHostElement","pane","_createPaneElement","portalOutlet","_createPortalOutlet","overlayConfig","i5","i6","CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER","CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER_FACTORY","OverlayModule","_c2","MatMenuItem_Conditional_4_Template","_c3","MatMenu_ng_template_0_Template","_r1","_handleKeydown","_onAnimationStart","_onAnimationDone","ctx_r1","panelId","_classList","_panelAnimationState","ariaLabelledby","ariaDescribedby","MAT_MENU_PANEL","MatMenuItem","_focusMonitor","_parentMenu","_changeDetectorRef","disableRipple","_hovered","_focused","_highlighted","_triggersSubmenu","addItem","_getHostElement","removeItem","_getTabIndex","_checkDisabled","_handleMouseEnter","cloneNode","icons","_setHighlighted","isHighlighted","_setTriggersSubmenu","triggersSubmenu","_hasFocus","MAT_MENU_CONTENT","matMenuAnimations","transformMenu","fadeInItems","menuPanelUid","MAT_MENU_DEFAULT_OPTIONS","MAT_MENU_DEFAULT_OPTIONS_FACTORY","overlapTrigger","yPosition","MatMenu","setPositionClasses","_yPosition","previousPanelClass","_previousPanelClass","defaultOptions","_elevationPrefix","_baseElevation","_directDescendantItems","_animationDone","overlayPanelClass","_updateDirectDescendants","_keyManager","focusedItem","itemsList","_firstItemFocusSubscription","_item","parentMenu","focusFirstItem","menuPanel","resetActiveItem","setElevation","elevation","newElevation","customElevation","_previousElevation","posX","posY","_startAnimation","_resetAnimation","_isAnimating","toState","_allItems","_t","lazyContent","MAT_MENU_SCROLL_STRATEGY","MAT_MENU_SCROLL_STRATEGY_FACTORY_PROVIDER","MAT_MENU_SCROLL_STRATEGY_FACTORY","passiveEventListenerOptions","MatMenuTrigger","_deprecatedMatMenuTriggerFor","_menu","_menuCloseSubscription","_destroyMenu","_parentMaterialMenu","_menuItemInstance","_overlay","_dir","_menuOpen","_closingActionsSubscription","_hoverSubscription","_handleTouchStart","_openedBy","restoreFocus","menuOpened","onMenuOpen","menuClosed","onMenuClose","_handleHover","menuOpen","toggleMenu","closeMenu","openMenu","_createOverlay","_setPosition","_getPortal","menuData","_menuClosingActions","_initMenu","_attached","_setIsMenuOpen","_setMenuElevation","isOpen","_getOverlayConfig","_subscribeToPositions","originFallbackX","overlayFallbackY","originFallbackY","overlayFallbackX","_parentInnerPadding","firstItem","_handleMousedown","_handleClick","_portal","MatMenuModule","MAT_TOOLTIP_SCROLL_STRATEGY","MAT_TOOLTIP_SCROLL_STRATEGY_FACTORY_PROVIDER","MAT_TOOLTIP_SCROLL_STRATEGY_FACTORY","MAT_TOOLTIP_DEFAULT_OPTIONS","MAT_TOOLTIP_DEFAULT_OPTIONS_FACTORY","showDelay","hideDelay","touchendHideDelay","PANEL_CLASS","passiveListenerOptions","MatTooltip","_updatePosition","_tooltipInstance","positionAtOrigin","_positionAtOrigin","_setupPointerEnterEventsIfNeeded","_showDelay","_hideDelay","_mouseLeaveHideDelay","_message","_ariaDescriber","_isTooltipVisible","_updateTooltipMessage","tooltipClass","_tooltipClass","_setTooltipClass","_defaultOptions","_viewInitialized","_pointerExitEventsInitialized","_tooltipComponent","TooltipComponent","_cssClassPrefix","touchGestures","_passiveListeners","_touchstartTimeout","_cancelPendingAnimations","afterHidden","existingStrategy","scrollableAncestors","_updateCurrentPositionClass","_handleBodyInteraction","disableTooltipInteractivity","_getOrigin","_getOverlayPosition","_addOffset","main","isLtr","originPosition","_invertPosition","overlayPosition","_markForCheck","newPosition","_currentPosition","classPrefix","_platformSupportsMouseEvents","_setupPointerExitEventsIfNeeded","_disableNativeGesturesIfNecessary","touchLongPressShowDelay","_addListeners","exitListeners","newTarget","_wheelListener","touchendListener","elementUnderPointer","elementFromPoint","gestures","userSelect","msUserSelect","webkitUserSelect","draggable","webkitUserDrag","webkitTapHighlightColor","animationMode","_isMultiline","_closeOnInteraction","_isVisible","_onHide","_showAnimation","_hideAnimation","_hideTimeoutId","_showTimeoutId","_toggleVisibility","_handleMouseLeave","_finalizeAnimation","_onShow","_isTooltipMultiline","_handleAnimationEnd","toVisible","tooltip","_tooltip","showClass","hideClass","MatTooltipModule","MenuToggleComponent","preset_r3","_r2","AnimateCameraComponent","animationPresets","animationPresetsKeys","setDetectorOpacity","animateCamera","geometriesGroup","AnimateCameraComponent_button_2_Template","animationPresets_r5","UiMenuWrapperComponent","hideUIMenu","BaseControlValueAccessor","onTouched","registerOnTouched","registerOnChange","setDisabledState","BuiltInControlValueAccessor","ɵBuiltInControlValueAccessor_BaseFactory","NG_VALUE_ACCESSOR","DEFAULT_VALUE_ACCESSOR","DefaultValueAccessor","COMPOSITION_BUFFER_MODE","_compositionMode","_composing","_isAndroid","_handleInput","_compositionStart","_compositionEnd","NG_VALIDATORS","NG_ASYNC_VALIDATORS","isPresent","toObservable","mergeErrors","arrayOfErrors","executeValidators","validators","validator","normalizeValidators","isValidatorFn","composeValidators","presentValidators","composeAsync","forkJoin","remainingCompletions","remainingEmissions","composeAsyncValidators","mergeValidators","controlValidators","dirValidator","makeValidatorsArray","hasValidator","addValidators","currentValidators","validatorsToAdd","removeValidators","AbstractControlDirective","_rawValidators","_rawAsyncValidators","_onDestroyCallbacks","invalid","pristine","untouched","statusChanges","valueChanges","_setValidators","_composedValidatorFn","_setAsyncValidators","_composedAsyncValidatorFn","asyncValidator","_registerOnDestroy","_invokeOnDestroyCallbacks","errorCode","ControlContainer","formDirective","NgControl","valueAccessor","AbstractControlStatus","cd","_cd","isTouched","isUntouched","isPristine","isInvalid","isPending","isSubmitted","submitted","NgControlStatus","VALID","INVALID","PENDING","DISABLED","isOptionsObj","validatorOrOpts","AbstractControl","asyncValidators","_pendingDirty","_hasOwnPendingAsyncValidator","_pendingTouched","_onCollectionChange","_onDisabledChange","_assignValidators","_assignAsyncValidators","validatorFn","asyncValidatorFn","updateOn","_updateOn","setValidators","setAsyncValidators","addAsyncValidators","removeAsyncValidators","hasAsyncValidator","clearValidators","clearAsyncValidators","markAsTouched","onlySelf","markAllAsTouched","_forEachChild","markAsUntouched","_updateTouched","markAsDirty","markAsPristine","_updatePristine","markAsPending","emitEvent","skipPristineCheck","_parentMarkedDirty","_updateValue","_updateAncestors","changeFn","updateValueAndValidity","setParent","getRawValue","_setInitialStatus","_cancelExistingSubscription","_runValidator","_calculateStatus","_runAsyncValidator","_updateTreeValidity","ctrl","_allControlsDisabled","_asyncValidationSubscription","setErrors","_updateControlsErrors","currPath","_find","_initObservables","_anyControlsHaveStatus","_anyControls","_anyControlsDirty","_anyControlsTouched","_registerOnCollectionChange","_setUpdateStrategy","coerceToValidator","coerceToAsyncValidator","CALL_SET_DISABLED_STATE","setDisabledStateDefault","setUpControl","callSetDisabledState","setUpValidators","getControlValidators","getControlAsyncValidators","onValidatorChange","registerOnValidatorChange","setUpViewChangePipeline","_pendingValue","_pendingChange","updateControl","setUpModelChangePipeline","emitModelEvent","viewToModelUpdate","_unregisterOnChange","setUpBlurPipeline","setUpDisabledChangeHandler","onDisabledChange","registerOnDisabledChange","_unregisterOnDisabledChange","emitModelToViewChange","removeListItem","isFormControlState","formState","FormControl","pickValidators","pickAsyncValidators","_applyFormState","nonNullable","initialValueIsDefault","emitViewToModelChange","patchValue","_syncPendingControls","formControlBinding$1","NgModel","resolvedPromise","valueAccessors","_registered","selectValueAccessor","defaultAccessor","builtinAccessor","customAccessor","isBuiltInAccessor","_checkForErrors","_checkName","removeControl","_getPath","_setUpControl","_updateDisabled","isPropertyUpdated","viewModel","model","_isStandalone","_setUpStandalone","addControl","_checkParentType","disabledValue","controlName","controlPath","SELECT_VALUE_ACCESSOR","SelectControlValueAccessor","_buildValueString$1","_optionMap","_idCounter","_compareWith","compareWith","valueString","_getOptionId","_getOptionValue","_registerOption","_extractId$1","ɵSelectControlValueAccessor_BaseFactory","NgSelectOption","_select","ngValue","_setElementValue","SELECT_MULTIPLE_VALUE_ACCESSOR","SelectMultipleControlValueAccessor","_buildValueString","optionSelectedStateSetter","_setSelected","selected","selectedOptions","_extractId","ɵSelectMultipleControlValueAccessor_BaseFactory","ɵNgSelectMultipleOption","ɵInternalFormsSharedModule","FormsModule","withConfig","MAT_CHECKBOX_DEFAULT_OPTIONS","MAT_CHECKBOX_DEFAULT_OPTIONS_FACTORY","clickAction","TransitionCheckState","Init","Checked","Unchecked","Indeterminate","MAT_CHECKBOX_CONTROL_VALUE_ACCESSOR","MatCheckbox","MatCheckboxChange","_inputElement","_createChangeEvent","_getAnimationTargetElement","inputId","_uniqueId","_animationClasses","uncheckedToChecked","uncheckedToIndeterminate","checkedToUnchecked","checkedToIndeterminate","indeterminateToChecked","indeterminateToUnchecked","indeterminateChange","_onTouched","_currentAnimationClass","_currentCheckState","_controlValueAccessorChangeFn","_validatorChangeFn","_checked","_indeterminate","required","_syncIndeterminate","indeterminate","_transitionCheckState","_isRippleDisabled","_onLabelTextChange","newState","oldState","_getAnimationClassForCheckStateTransition","animationClass","_emitChangeEvent","_handleInputClick","_onInteractionEvent","nativeCheckbox","_onInputClick","_onTouchTargetClick","_preventBubblingFromLabel","_labelElement","checkbox_r2","MatCheckboxModule","importantProperties","toggleNativeDragInteractions","toggleVisibility","combineTransforms","initialTransform","parseCssTimeUnitsToMs","multiplier","parseCssPropertyValue","getMutableClientRect","isInsideClientRect","adjustDomRect","domRect","isPointerNearDomRect","pointerX","pointerY","xThreshold","yThreshold","ParentPositionTracker","handleScroll","cachedPosition","newTop","newLeft","viewportScrollPosition","topDifference","leftDifference","deepCloneNode","descendantsWithId","transferCanvasData","transferInputData","transferData","descendantElements","cloneElements","cloneUniqueId","activeEventListenerOptions","dragImportantProperties","DragRef","_dropContainer","_toggleNativeDragInteractions","_handles","_dragDropRegistry","_passiveTransform","_activeTransform","_hasStartedDragging","_moveEvents","_pointerMoveSubscription","_pointerUpSubscription","_boundaryElement","_nativeInteractionsEnabled","_disabledHandles","_direction","dragStartDelay","beforeStarted","started","released","ended","entered","exited","dropped","moved","_pointerDown","targetHandle","_getTargetHandle","_initializeDragSequence","_rootElement","_pointerMove","pointerPosition","_getPointerPositionOnPage","_pickupPositionOnPage","dragStartThreshold","isDelayElapsed","_dragStartTime","_getDragStartDelay","_endDragSequence","isDragging","isReceiving","_startDragSequence","constrainedPointerPosition","_getConstrainedPointerPosition","_hasMoved","_lastKnownPointerPosition","_updatePointerDirectionDelta","_updateActiveDropContainer","constrainPosition","_initialDomRect","activeTransform","_applyRootElementTransform","_getDragDistance","_pointerDirectionDelta","_pointerUp","_nativeDragStart","withRootElement","withParent","parentDragRef","_parentPositions","registerDragItem","getPlaceholderElement","_placeholder","getRootElement","getVisibleElement","withHandles","handles","disabledHandles","withPreviewTemplate","_previewTemplate","withPlaceholderTemplate","_placeholderTemplate","_removeRootElementListeners","_initialTransform","SVGElement","_ownerSVGElement","ownerSVGElement","withBoundaryElement","boundaryElement","_containInsideBoundaryOnResize","_parentDragRef","_anchor","_destroyPreview","_destroyPlaceholder","removeDragItem","_removeSubscriptions","disableHandle","enableHandle","withDirection","_withDropContainer","getFreeDragPosition","setFreeDragPosition","withPreviewContainer","_previewContainer","_sortFromLastPointerPosition","_preview","_previewRef","_placeholderRef","stopDragging","_rootElementTapHighlight","_stopScrolling","_animatePreviewToPlaceholder","_cleanupDragArtifacts","_cleanupCachedDimensions","dropPoint","isTouchEvent","_lastTouchEventTime","dropContainer","_createPlaceholderElement","_createPreviewElement","_getPreviewInsertionPoint","_initialContainer","_initialIndex","getItemIndex","getScrollableParents","referenceElement","isTouchSequence","isAuxiliaryMouseButton","isFakeEvent","rootStyles","pointerMove","pointerUp","scrollEvent","_updateOnScroll","_boundaryRect","previewTemplate","_pickupPositionInElement","matchSize","_getPointerPositionInElement","_pointerPositionAtLastDirectionChange","startDragging","_previewRect","isPointerOverContainer","_isOverContainer","previousContainer","drop","rawX","rawY","newContainer","_getSiblingContainerFromPosition","exit","enter","sortingDisabled","_startScrollingIfNecessary","_sortItem","_applyPreviewTransform","previewConfig","previewClass","preview","rootRect","matchElementSize","getTransform","placeholderRect","getTransformTransitionDurationInMs","transitionedProperties","rawDurations","rawDelays","placeholderConfig","placeholderTemplate","elementRect","handleElement","referenceRect","_getViewportScrollPosition","svgMatrix","getScreenCTM","svgPoint","createSVGPoint","matrixTransform","dropContainerLock","lockAxis","pickupX","pickupY","boundaryRect","previewWidth","previewHeight","_getPreviewRect","clamp$1","pointerPositionOnPage","positionSinceLastChange","changeX","changeY","pointerDirectionChangeThreshold","shouldEnable","currentPosition","pickupPosition","leftOverflow","rightOverflow","scrollDifference","_cachedShadowRoot","initialParent","previewContainer","documentRef","fullscreenElement","webkitFullscreenElement","mozFullScreenElement","msFullscreenElement","wrapper","sourceRect","SingleAxisSortStrategy","_itemPositions","orientation","_previousSwap","overlaps","withItems","pointerDelta","_getItemIndexFromPointerPosition","isHorizontal","findIndex","currentItem","siblingAtNewPosition","itemOffset","_getItemOffsetPx","siblingOffset","_getSiblingOffsetPx","oldOrder","moveItemInArray","fromIndex","sibling","isDraggedItem","elementToOffset","activeDraggables","_activeDraggables","newPositionReference","_shouldEnterAsFirstChild","_cacheItemPositions","withSortPredicate","_sortPredicate","getActiveItemsSnapshot","updateOnScroll","elementToMeasure","immediateSibling","itemPositions","lastItemRect","firstItemRect","AutoScrollVerticalDirection","DOWN","AutoScrollHorizontalDirection","DropListRef","autoScrollDisabled","autoScrollStep","enterPredicate","sortPredicate","sorted","receivingStarted","receivingStopped","_isDragging","_draggables","_siblings","_activeSiblings","_viewportScrollSubscription","_verticalScrollDirection","_horizontalScrollDirection","_stopScrollTimers","_startScrollInterval","interval","period","_scrollNode","scrollStep","scrollBy","withScrollableParents","registerDropContainer","_sortStrategy","removeDropContainer","_draggingStarted","_notifyReceivingSiblings","_cacheParentPositions","previousItems","withOrientation","_scrollableElements","_domRect","scrollNode","verticalScrollDirection","horizontalScrollDirection","getElementScrollDirections","computedVertical","getVerticalScrollDirection","computedHorizontal","getHorizontalScrollDirection","_initialScrollSnap","msScrollSnapType","scrollSnapType","_listenToScrollEvents","_stopReceiving","_canReceive","_startReceiving","activeSiblings","initiator","draggedItems","activeCapturingEventOptions","DragDropRegistry","_dropInstances","_dragInstances","_activeDragInstances","_globalListeners","_draggingPredicate","_preventDefaultWhileDragging","_persistentTouchmoveListener","_clearGlobalListeners","streams","eventOptions","DEFAULT_CONFIG","DragDrop","createDrag","createDropList","CDK_DRAG_PARENT","CDK_DRAG_HANDLE","CdkDragHandle","_stateChanges","_parentDrag","_addHandle","_removeHandle","CDK_DRAG_CONFIG","CDK_DROP_LIST","CdkDrag","_dragRef","dragDrop","_selfHandle","movedEvent","_assignDefaults","_dropListRef","_syncInputs","_handleEvents","_updateRootElement","_setupHandlesListener","freeDragPosition","rootSelectorChange","rootElementSelector","positionChange","_setPreviewTemplate","_resetPreviewTemplate","_setPlaceholderTemplate","_resetPlaceholderTemplate","_getBoundaryElement","startEvent","releaseEvent","endEvent","enterEvent","exitEvent","dropEvent","draggingDisabled","handleElements","handleInstance","dragRef","DragDropModule","OverlayComponent_div_2_div_1_Template","showBody","overlayTitle","_c4","transparentBody","_r3","OverlayComponent","keepAspectRatioFixed","overlayCard","resizeHandleCorner","MIN_RES_WIDTH","MIN_RES_HEIGHT","resizeHandleElement","ResizeSensor","resetHandlePosition","overlayCardElement","dragRect","setHandleTransform","OverlayComponent_div_2_Template","OverlayComponent_div_3_Template","OverlayComponent_span_4_Template","collection_r3","_r4","toggleInvisible","changeCollection","CollectionsInfoOverlayComponent_div_1_div_1_option_10_Template","CollectionsInfoOverlayComponent_div_1_div_1_mat_checkbox_11_Template","showingCollection","column_r6","_r5","_r8","object_r9","column_r12","CollectionsInfoOverlayComponent_div_1_table_3_tr_11_div_4_Template","ctx_r9","_r7","i_r11","CollectionsInfoOverlayComponent_div_1_table_3_tr_11_td_13_Template","isCut","hideInvisible","collectionColumns","CollectionsInfoOverlayComponent_div_1_table_3_th_9_Template","CollectionsInfoOverlayComponent_div_1_table_3_tr_11_Template","CollectionsInfoOverlayComponent_div_1_div_1_Template","CollectionsInfoOverlayComponent_div_1_table_3_Template","CollectionsInfoOverlayComponent_div_1_p_4_Template","CollectionsInfoOverlayComponent","showObjectsInfo","selectedCollection","scrollIntoView","eventDataGroup","getEventDataGroup","column","labelValue","CollectionsInfoOverlayComponent_div_1_Template","CollectionsInfoComponent","overlayWindow","overlayPortal","toggleOverlay","child_r3","GeometryBrowserOverlayComponent_div_1_div_1_option_8_Template","object_r5","GeometryBrowserOverlayComponent_div_1_table_3_tr_8_div_4_Template","i_r6","GeometryBrowserOverlayComponent_div_1_table_3_tr_8_Template","GeometryBrowserOverlayComponent_div_1_div_1_Template","GeometryBrowserOverlayComponent_div_1_table_3_Template","GeometryBrowserOverlayComponent_div_1_p_4_Template","GeometryBrowserOverlayComponent","browseDetectorParts","GeometryBrowserOverlayComponent_div_1_Template","GeometryBrowserComponent","CdkDialogContainer_ng_template_0_Template","DialogConfig","disableClose","ariaDescribedBy","ariaLabelledBy","ariaModal","autoFocus","closeOnNavigation","closeOnDestroy","closeOnOverlayDetachments","CdkDialogContainer","_focusTrapFactory","_interactivityChecker","_focusTrap","_elementFocusedBeforeDialogWasOpened","_closeInteractionType","_ariaLabelledByQueue","_contentAttached","_addAriaLabelledBy","_removeAriaLabelledBy","_initializeFocusTrap","_handleBackdropClicks","_captureInitialFocus","_trapFocus","_restoreFocus","_recaptureFocus","_containsFocus","_forceFocus","_focusByCssSelector","elementToFocus","focusedSuccessfully","_focusDialogContainer","focusConfig","focusTargetElement","DialogRef","focusOrigin","_detachSubscription","containerInstance","closedSubject","componentInstance","DIALOG_SCROLL_STRATEGY","DIALOG_DATA","DEFAULT_DIALOG_CONFIG","uniqueId","Dialog","openDialogs","_parentDialog","_openDialogsAtThisLevel","afterOpened","_afterOpenedAtThisLevel","_afterAllClosedAtThisLevel","_ariaHiddenElements","afterAllClosed","_getAfterAllClosed","componentOrTemplateRef","getDialogById","dialogRef","dialogContainer","_attachContainer","_attachDialogContent","_hideNonDialogContentFromAssistiveTechnology","_removeOpenDialog","closeAll","reverseForEach","dialog","userInjector","containerType","containerPortal","_createInjector","templateContext","contentRef","fallbackInjector","overlayContainer","DialogModule","MatDialogContainer_ng_template_2_Template","MatDialogConfig","delayFocusTrap","OPEN_CLASS","OPENING_CLASS","CLOSING_CLASS","MatDialogContainer","focusTrapFactory","dialogConfig","interactivityChecker","focusMonitor","_animationStateChanged","_animationsEnabled","_actionSectionCount","_hostElement","_enterAnimationDuration","parseCssTime","enterAnimationDuration","_exitAnimationDuration","exitAnimationDuration","_animationTimer","_finishDialogOpen","_clearAnimationClasses","_openAnimationDone","_finishDialogClose","_startOpenAnimation","TRANSITION_DURATION_PROPERTY","_requestAnimationFrame","_waitForAnimationToComplete","_startExitAnimation","_updateActionSectionCount","MatDialogState","OPEN","CLOSING","CLOSED","MatDialogRef","_containerInstance","_afterOpened","_beforeClosed","_closeFallbackTimeout","_result","_closeDialogVia","interactionType","dialogResult","afterClosed","beforeClosed","MAT_DIALOG_DATA","MAT_DIALOG_DEFAULT_OPTIONS","MAT_DIALOG_SCROLL_STRATEGY","MatDialog","dialogConfigClass","_dialog","_dialogRefConstructor","_dialogContainerType","_dialogDataToken","cdkRef","cdkConfig","_closeDialogs","dialogs","dialogElementUid","MatDialogLayoutSection","_dialogRef","getClosestDialog","_onAdd","_onRemove","MatDialogTitle","ɵMatDialogTitle_BaseFactory","MatDialogContent","MatDialogActions","ɵMatDialogActions_BaseFactory","align","MatDialogModule","MAT_BUTTON_CONFIG","HOST_SELECTOR_MDC_CLASS_PAIR","mdcClasses","MatButtonBase","_rippleLoader","_disableRipple","_updateRippleDisabled","_isFab","disabledInteractive","_getAriaDisabled","ariaDisabled","_getDisabledAttribute","MatButton","MatButtonModule","eventDataImportOption_r3","IOOptionsDialogComponent_div_4_ng_container_5_Template","ctx_r4","eventDataOptionsWithHandler","IOOptionsDialogComponent","eventDataImportOptions","supportedEventDataFormats","handleJSONEventDataInput","handleEDM4HEPJSONEventDataInput","handleJiveXMLDataInput","handleZipEventDataInput","handleIgEventDataInput","eventDataFormat","eventDataImportOption","importHandler","onClose","getSupportedEventDataFormats","handleFileInput","edm4hepJsonLoader","handleOBJInput","handleSceneInput","handleGLTFInput","handlePhoenixInput","handleROOTInput","rootObjectName","handleRootJSONInput","isFileOfExtension","cmsLoader","saveScene","exportOBJ","IOOptionsDialogComponent_div_4_Template","IoOptionsComponent","openIODialog","OverlayViewWindowComponent","showOverlay","orthographicView","overlayViewFixed","initializeCanvas","switchOverlayView","toggleBgTransparency","OverlayViewComponent","AttributePipe","transformedValue","attribute_r1","ɵɵpipeBind1","ObjectSelectionOverlayComponent_div_1_div_1_Template","ObjectSelectionOverlayComponent","hiddenSelectedInfo","ObjectSelectionOverlayComponent_div_1_Template","ObjectSelectionComponent","event_r3","EventSelectorComponent_div_0_option_2_Template","EventSelectorComponent","EventSelectorComponent_div_0_Template","MatSliderVisualThumb_Conditional_0_Template","valueIndicatorText","MatSlider_Conditional_6_Conditional_2_For_1_Template","tickMark_r1","i_r2","ctx_r2","_calcTickMarkTransform","MatSlider_Conditional_6_Conditional_2_Template","ɵɵrepeaterCreate","trackByUsesComponentInstance","emptyTemplateFn","emptyDecls","emptyVars","emptyTagName","emptyAttrsIndex","boundTrackBy","ɵɵrepeater","metadataSlotIdx","hostTView","itemTemplateTNode","reconcile","newCollection","liveKeysInTheFuture","liveStartIdx","liveEndIdx","newEndIdx","liveStartValue","newStartValue","isStartMatching","liveEndValue","newEndValue","isEndMatching","liveStartKey","liveEndKey","newStartKey","newEndKey","newCollectionIterator","newIterationResult","liveKey","isCollectionEmpty","emptyTemplateIndex","lContainerForEmpty","emptyTemplateTNode","_tickMarks","MatSlider_Conditional_6_Template","_cachedWidth","MatSlider_Conditional_7_Template","discrete","startValueIndicatorText","_MatThumb","START","END","_MatTickMark","ACTIVE","INACTIVE","MAT_SLIDER","MAT_SLIDER_THUMB","MAT_SLIDER_RANGE_THUMB","MAT_SLIDER_VISUAL_THUMB","MatSliderVisualThumb","_cdr","_slider","_isHovered","_isActive","_isValueIndicatorVisible","_onPointerMove","_sliderInput","_isFocused","isHovered","_isCursorOnSliderThumb","_showHoverRipple","_hideRipple","_hoverRippleRef","_onMouseLeave","_showFocusRipple","_focusRippleRef","_onDragStart","_showActiveRipple","_onDragEnd","_activeRippleRef","_ripple","_getInput","thumbPosition","_sliderInputEl","_isShowingRipple","_showRipple","ignoreGlobalRippleConfig","_showValueIndicator","_isRange","_getThumb","_noopAnimations","_isShowingAnyRipple","_hideValueIndicator","_getSibling","_getValueIndicatorContainer","_valueIndicatorContainer","_getKnob","_knob","MatSlider","endInput","startInput","_discrete","_updateValueIndicatorUIs","_min","_updateMin","prevMin","_updateMinRange","old","new","_updateMinNonRange","_onMinMaxOrStepChange","oldEndValue","oldStartValue","_updateWidthInactive","_onTranslateXChangeBySideEffect","_onValueChange","_updateThumbUIByValue","_updateTrackUI","_max","_updateMax","prevMax","_updateMaxRange","_updateMaxNonRange","_step","_updateStep","_updateStepRange","_updateStepNonRange","prevStartValue","showTickMarks","displayWith","_rippleRadius","endValueIndicatorText","_hasViewInitialized","_tickMarkTrackWidth","_hasAnimation","_resizeTimer","_knobRadius","_thumbsOverlap","_dirChangeSubscription","_onDirChange","_updateDimensions","eInput","sInput","thumb","_inputPadding","_initUIRange","_initUINonRange","_updateTickMarkUI","_updateTickMarkTrackUI","_observeHostResize","initProps","initUI","_updateValueIndicatorUI","_updateMinMax","_updateStaticStyles","_resizeObserver","_onDirChangeRange","_onDirChangeNonRange","_setIsLeftThumb","_calcTranslateXByValue","ResizeObserver","_onResize","_getValue","_skipUpdate","_skipUIUpdate","_cachedLeft","_setTrackActiveStyles","trackStyle","_trackActive","_onTranslateXChange","_updateThumbUI","_updateOverlappingThumbUI","input1","input2","_areThumbsOverlapping","_updateOverlappingThumbClassNames","getSibling","sourceThumb","valuetext","_valuetext","visualThumb","percentage","_updateTrackUIRange","_updateTrackUINonRange","activePercentage","_isLeftThumb","fillPercentage","_updateTickMarkUIRange","_updateTickMarkUINonRange","numActive","numInactive","numInactiveBeforeStartThumb","numInactiveAfterEndThumb","_input","_inputs","_thumbs","_setTransition","withAnimation","MAT_SLIDER_THUMB_VALUE_ACCESSOR","MatSliderThumb","stringValue","_hasSetInitialValue","_setValue","_initialValue","_translateX","_tickMarkOffset","_setIsFocused","valueChange","dragEnd","_onTouchedFn","_isControlInitialized","_onPointerDown","_initValue","_getDefaultValue","_onInput","_onChangeFn","_onNgControlValueChange","_formControl","isCursorOnSliderThumb","_updateWidthActive","_updateThumbUIByPointerEvent","_handleValueCorrection","_fixValue","xPos","numSteps","impreciseValue","_clamp","_calcTranslateXByPointerEvent","MatSliderModule","ObjectClippingComponent","clippingValue","changeStartClippingAngle","changeOpeningClippingAngle","toggleClipping","clippingCheckbox_r2","menu_r5","DarkThemeComponent","AutoRotateComponent","toggleAutoRotate","CartesianGridConfigComponent","cartesianPos","originChangedSub","stopShiftingSub","showCartesianGrid","gridConfig","gridVisible","onSave","shiftCartesianGridByValues","translateGrid","finalPos","initialPos","difference","addXYPlanes","callSetShowCartesianGrid","addYZPlanes","addZXPlanes","changeSparsity","showXYPlanes","showYZPlanes","showZXPlanes","calcPlanes","dis","xPos_r2","yPos_r3","zPos_r4","view_r8","ViewOptionsComponent_button_29__svg_svg_1_Template","ViewOptionsComponent","show3DPoints","openCartesianGridConfigDialog","toggleShowDistance","showEtaPhiGridCheckbox_r2","showAxisCheckbox_r3","showMouse3DPointsCheckbox_r5","show3DDistanceCheckbox_r6","ViewOptionsComponent_button_29_Template","viewOptions_r10","action_r1","InfoPanelOverlayComponent","showInfoPanel","actionsList","InfoPanelOverlayComponent_li_4_Template","InfoPanelOverlayComponent_li_5_Template","InfoPanelComponent","MainViewToggleComponent","switchMainView","ZoomControlsComponent","zoomTimeout","zoomIn","leftClick","zoomOut","clearZoom","AnimateEventComponent","toggleAnimateEvent","VrToggleComponent","vrSupported","vrActive","isSessionSupported","toggleVr","toggleAr","ArToggleComponent","arSupported","arActive","ArToggleComponent_ng_container_2_Template","ArToggleComponent_button_3_Template","arToggleOptions_r4","SSModeComponent","ssMode","onfullscreenchange","toggleSSMode","onDocumentClick","requestFullscreen","exitFullscreen","UniqueSelectionDispatcher","registered","MatRadioChange","MAT_RADIO_GROUP_CONTROL_VALUE_ACCESSOR","MatRadioGroup","MAT_RADIO_GROUP","MAT_RADIO_DEFAULT_OPTIONS","MAT_RADIO_DEFAULT_OPTIONS_FACTORY","_updateRadioButtonNames","_labelPosition","_markRadiosForCheck","_updateSelectedRadioFromValue","_checkSelectedRadioButton","_selected","_required","_changeDetector","_buttonChanges","_radios","radio","_touch","MatRadioButton","radioGroup","_radioDispatcher","_setDisabled","_providerOverride","_removeUniqueSelectionListener","_updateTabIndex","_onInputInteraction","groupValueChanged","_previousTabIndex","_rippleTrigger","MatRadioModule","fitting_r4","MakePictureComponent","fittings","checkSize","setHeight","buttonText","makePicture","width_r2","height_r3","MakePictureComponent_mat_radio_button_14_Template","PerformanceToggleComponent","performanceMode","togglePerformance","ShareLinkDialogComponent","baseLink","shareLink","embedLink","qrcodeCanvas","locationHref","getEmbedLink","updateQRCode","urlParametersString","setOptionValue","option","onOptionsChange","filteredOptions","copyText","innerText","link","QRCode","ShareLinkComponent","openShareLinkDialog","UiMenuComponent","logo","tagline","infoField_r2","ExperimentInfoComponent_p_4_ng_container_1_Template","ExperimentInfoComponent_p_4_ng_container_2_Template","ExperimentInfoComponent","experimentInfo","ExperimentInfoComponent_a_1_Template","ExperimentInfoComponent_p_3_Template","ExperimentInfoComponent_p_4_Template","MatSlideToggle_Conditional_10_Template","MAT_SLIDE_TOGGLE_DEFAULT_OPTIONS","disableToggleValue","hideIcon","MAT_SLIDE_TOGGLE_VALUE_ACCESSOR","MatSlideToggle","MatSlideToggleChange","buttonId","_switchElement","_validatorOnChange","toggleChange","_labelId","_getAriaLabelledBy","switch_r2","MatSlideToggleModule","onValueChange","ConfigSliderComponent","oldMin","oldMax","toggleMinCut","MIN_SAFE_INTEGER","toggleMaxCut","ConfigSliderComponent_input_3_Template","PhoenixMenuItemComponent_ng_container_3_ng_container_2_Template","nodeName_r3","PhoenixMenuItemComponent_ng_template_4_span_1_Template","config_r6","_r9","_r10","_r11","singleOption_r13","_r12","PhoenixMenuItemComponent_div_7_ng_container_6_div_1_div_2_select_6_option_1_Template","PhoenixMenuItemComponent_div_7_ng_container_6_div_1_div_2_mat_checkbox_1_Template","PhoenixMenuItemComponent_div_7_ng_container_6_div_1_div_2_app_config_slider_2_Template","PhoenixMenuItemComponent_div_7_ng_container_6_div_1_div_2_button_3_Template","PhoenixMenuItemComponent_div_7_ng_container_6_div_1_div_2_input_4_Template","PhoenixMenuItemComponent_div_7_ng_container_6_div_1_div_2_div_5_Template","PhoenixMenuItemComponent_div_7_ng_container_6_div_1_div_2_select_6_Template","PhoenixMenuItemComponent_div_7_ng_container_6_div_1_label_1_Template","PhoenixMenuItemComponent_div_7_ng_container_6_div_1_div_2_Template","PhoenixMenuItemComponent_div_7_ng_container_6_div_1_Template","calculateConfigTop","PhoenixMenuItemComponent_div_7_div_4_Template","PhoenixMenuItemComponent_div_7_ng_container_6_Template","configTop","castConfigsToAny","_r14","PhoenixMenuItemComponent_div_9_app_phoenix_menu_item_1_Template","PhoenixMenuItemComponent","cdr","phoenixMenuItem","PhoenixMenuItemComponent_ng_container_3_Template","PhoenixMenuItemComponent_ng_template_4_Template","PhoenixMenuItemComponent_div_7_Template","PhoenixMenuItemComponent_button_8_Template","PhoenixMenuItemComponent_div_9_Template","PhoenixMenuComponent","ExperimentLinkComponent","experimentLink","searchParams","goToExperiment","EmbedMenuComponent","AtlasComponent","defaultEvent","phoenixMenuConfig","FileLoaderService","lastEventsURL","lastEventsOptions","unzip","multiFile","makeRequest","urlPath","onData","buf","loadJSONEvent","loadJiveXMLEvent","jiveXMLLoader","processedEventData","isZip","rawfile","reloadLastEvents","CycleEventsComponent","reloading","startCycleInterval","toggleCycle","ɵɵpureFunction2","VPToggleComponent","moveVP","toggleVP","LHCbComponent","CMSComponent","TrackmlComponent","http","hitsFile","particlesFile","truthFile","filesProcessed","numFiles","trackMLLoader","httpOptions","loadTrackMLData","resHits","loadHits","resParticles","loadParticles","resTruth","loadTruth","finishConversion","MatIconModule","CdkTreeModule","MatTabsModule","GlobalErrorHandler","PhoenixUIModule","PlaygroundComponent","invalidTimingValue","optimizeGroupPlayer","ɵAnimationGroupPlayer","normalizeKeyframes$1","normalizer","keyframes","preStyles","postStyles","normalizedKeyframes","previousOffset","previousKeyframe","kf","isSameOffset","normalizedKeyframe","normalizedProp","normalizedValue","normalizePropertyName","normalizeStyleValue","animationFailed","listenOnPlayer","copyAnimationEvent","makeAnimationEvent","triggerName","fromState","_data","getOrSetDefaultValue","parseTimelineCommand","separatorPos","getParentElement","_CACHED_BODY","_IS_WEBKIT","containsElement","elm1","elm2","invokeQuery","NoopAnimationDriver","validateStyleProperty","getBodyNode","containsVendorPrefix","matchesElement","_selector","computeStyle","previousPlayers","scrubberAccessRequested","AnimationDriver","NOOP","AnimationStyleNormalizer","ONE_SECOND","ENTER_CLASSNAME","LEAVE_CLASSNAME","NG_TRIGGER_CLASSNAME","NG_TRIGGER_SELECTOR","NG_ANIMATING_CLASSNAME","NG_ANIMATING_SELECTOR","resolveTimingValue","_convertTimeValueToMS","resolveTiming","allowNegativeValues","parseTimeExpression","delayMatch","easingVal","containsErrors","negativeStepValue","negativeDelayValue","setStyles","formerStyles","camelProp","dashCaseToCamelCase","eraseStyles","normalizeAnimationEntry","sequence","PARAM_REGEX","extractStyleParams","interpolateParams","varName","localVal","invalidParamValue","DASH_CASE_REGEXP","visitDslNode","visitTrigger","visitState","visitTransition","visitSequence","visitGroup","visitAnimate","visitKeyframes","visitStyle","visitReference","visitAnimateChild","visitAnimateRef","visitQuery","visitStagger","invalidNodeType","DIMENSIONAL_PROP_SET","WebAnimationsStyleNormalizer","userProvidedProperty","normalizedProperty","strVal","valAndSuffixMatch","invalidCssUnitValue","ANY_STATE","TRUE_BOOLEAN_VALUES","FALSE_BOOLEAN_VALUES","makeLambdaFromStates","lhs","rhs","LHS_MATCH_BOOLEAN","RHS_MATCH_BOOLEAN","lhsMatch","rhsMatch","SELF_TOKEN_REGEX","buildAnimationAst","driver","warnings","AnimationAstBuilderVisitor","_driver","AnimationAstBuilderContext","_resetContextStyleTimingState","currentQuerySelector","collectedStyles","currentTime","queryCount","depCount","invalidTrigger","stateDef","invalidDefinition","styleAst","astParams","containsDynamicStyles","missingSubs","invalidState","metadataName","matchers","parseTransitionExpr","transitionValue","expressions","parseInnerTransitionStr","eventStr","parseAnimationAlias","alias","invalidTransitionAlias","invalidExpression","normalizeAnimationOptions","furthestTime","innerAst","timingAst","constructTimingAst","makeTimingAst","ast","currentAnimateTimings","styleMetadata","newStyleData","_styleAst","isEmptyStep","_makeStyleAst","_validateStyleAst","metadataStyles","styleTuple","collectedEasing","styleData","tuple","collectedEntry","updateCollectedStyle","invalidParallelAnimation","firstStart","firstEnd","secondStart","secondEnd","validateStyleParams","invalidStyleParams","invalidKeyframes","totalKeyframesWithOffsets","offsetsOutOfOrder","keyframesOutOfRange","offsetVal","consumeOffset","invalidOffset","keyframeOffsetsOutOfOrder","generatedOffset","keyframesMissingOffsets","limit","animateDuration","durationUpToThisFrame","parentSelector","currentQuery","includeSelf","normalizeSelector","hasAmpersand","originalSelector","invalidStagger","unsupportedCSSPropertiesFound","normalizeParams","createTimelineInstruction","preStyleProps","postStyleProps","subTimeline","ElementInstructionMap","_map","instructions","existingInstructions","ENTER_TOKEN_REGEX","LEAVE_TOKEN_REGEX","buildAnimationTimelines","enterClassName","leaveClassName","startingStyles","finalStyles","subInstructions","AnimationTimelineBuilderVisitor","buildKeyframes","AnimationTimelineContext","currentTimeline","delayNextStep","timelines","timeline","containsAnimation","lastRootTimeline","allowOnlyTimelineStyles","elementInstructions","innerContext","createSubContext","_visitSubInstructions","transformIntoNewTimeline","_applyAnimationRefDelays","animationsRefsOptions","animationRefOptions","animationDelay","animationDelayValue","instruction","instructionTimings","appendInstructionToTimeline","updateOptions","subContextCount","snapshotCurrentStyles","DEFAULT_NOOP_PREVIOUS_NODE","applyStylesToKeyframe","innerTimelines","mergeTimelineCollectedStyles","_visitTiming","incrementTime","hasCurrentStyleProperties","forwardFrame","applyEmptyStep","innerTimeline","forwardTime","elms","currentQueryTotal","sameElementTimeline","tl","maxTime","currentStaggerTime","startingTime","_enterClassName","_leaveClassName","initialTimeline","TimelineBuilder","skipIfExists","newOptions","optionsToUpdate","newParams","paramsToUpdate","_copyOptions","oldParams","updatedTimings","builder","SubTimelineBuilder","stretchStartingKeyframe","invalidQuery","_elementTimelineStylesLookup","_previousKeyframe","_currentKeyframe","_keyframes","_styleSummary","_localTimelineStyles","_pendingStyles","_backFill","_currentEmptyStepKeyframe","_globalTimelineStyles","_loadKeyframe","hasPreStyleStep","_updateStyle","flattenStyles","allStyles","allProperties","getFinalKeyframe","details1","details0","finalKeyframes","keyframe","finalKeyframe","preProps","postProps","kf0","kf1","_stretchStartingKeyframe","newKeyframes","startingGap","newFirstKeyframe","oldFirstKeyframe","roundOffset","oldOffset","decimalPoints","mult","createTransitionInstruction","isRemovalTransition","fromStyles","toStyles","queriedElements","EMPTY_OBJECT","AnimationTransitionFactory","_triggerName","_stateStyles","nextState","oneOrMoreTransitionsMatch","matchFns","buildStyles","stateName","styler","currentOptions","nextOptions","skipAstBuild","transitionAnimationParams","currentStateStyles","nextAnimationParams","nextStateStyles","preStyleMap","postStyleMap","isRemoval","animationOptions","applyParamDefaults","elm","userParams","AnimationStateStyles","defaultParams","combinedParams","AnimationTrigger","_normalizer","transitionFactories","balanceProperties","fallbackTransition","createFallbackTransition","containsQueries","matchTransition","matchStyles","EMPTY_INSTRUCTION_MAP","TimelineAnimationEngine","bodyNode","_animations","_playersById","registerFailed","_buildPlayer","autoStylesMap","inst","missingOrDestroyedAnimation","createAnimationFailed","_getPlayer","missingPlayer","baseEvent","QUEUED_CLASSNAME","DISABLED_CLASSNAME","EMPTY_PLAYER_ARRAY","NULL_REMOVAL_STATE","namespaceId","setForRemoval","setForMove","hasAnimation","removedBeforeQueried","NULL_REMOVED_QUERIED_STATE","REMOVAL_FLAG","StateValue","isObj","normalizeTriggerValue","absorbOptions","VOID_VALUE","DEFAULT_STATE_VALUE","AnimationTransitionNamespace","_engine","_triggers","_queue","_elementListeners","_hostClassName","missingTrigger","missingEvent","isTriggerEventValid","unsupportedTriggerEvent","triggersWithStates","statesByElement","afterFlush","_getTrigger","unregisteredTrigger","defaultToFallback","TransitionAnimationPlayer","objEquals","reportError","playersOnElement","playersByElement","queued","isFallbackTransition","totalQueuedPlayers","clearElementCache","elementPlayers","_signalRemovalForInnerTriggers","namespaces","fetchNamespacesByElement","ns","triggerLeaveAnimation","afterFlushAnimationsDone","destroyAfterComplete","triggerStates","previousTriggersValues","markElementAsRemoved","processLeaveNode","prepareLeaveAnimationListeners","elementStates","visitedTriggers","engine","childElementCount","containsPotentialParentTransition","totalAnimations","currentPlayers","playersByQueriedElement","removalFlag","destroyInnerAnimations","_onRemovalComplete","drainQueuedTransitions","microtaskId","markedForDestroy","TransitionAnimationEngine","onRemovalComplete","newHostElements","disabledNodes","_namespaceLookup","_namespaceList","_flushFns","_whenQuietFns","namespacesByHostElement","collectedEnterElements","collectedLeaveElements","queuedPlayers","createNamespace","_balanceNamespaceList","collectEnterElement","namespaceList","found","ancestor","ancestorNs","registerTrigger","_fetchNamespace","stateValue","markElementAsDisabled","hostNS","_buildInstruction","subTimelines","skipBuildAst","containerElement","destroyActiveAnimationsForElement","finishActiveQueriedAnimationOnElement","whenRenderingDone","cleanupFns","_flushAnimations","quietFns","triggerTransitionsFailed","skippedPlayers","skippedPlayersMap","queuedInstructions","allPreStyleElements","allPostStyleElements","disabledElementsSet","nodesThatAreDisabled","allTriggerElements","enterNodeMap","buildRootMap","enterNodeMapIds","allLeaveNodes","mergedLeaveNodes","leaveNodesWithoutAnimations","leaveNodeMapIds","leaveNodeMap","allPlayers","erroneousTransitions","nodeIsOrphaned","stringMap","setVal","transitionFailed","allPreviousPlayersMap","animationElementMap","_beforeAnimationBuild","_getPreviousPlayers","prevPlayer","replaceNodes","replacePostStylesAsPre","postStylesMap","cloakAndComputeStyles","preStylesMap","pre","rootPlayers","subPlayers","NO_PARENT_ANIMATION_ELEMENT_DETECTED","overrideTotalTime","parentWithAnimation","parentsToAdd","detectedParent","innerPlayer","_buildAnimation","setRealPlayer","parentPlayers","playersForElement","syncPlayerEvents","queriedPlayerResults","queriedInnerElements","queriedPlayers","activePlayers","removeNodesAfterAnimationDone","isQueriedElement","toStateValue","queriedElementPlayers","isRemovalAnimation","targetNameSpaceId","targetTriggerName","timelineInstruction","realPlayer","getRealPlayer","allQueriedPlayers","allConsumedElements","allSubElements","allNewPlayers","flattenGroupPlayers","finalPlayers","_flattenGroupPlayersRecur","wrappedPlayer","deleteOrUnsetInMap","currentValues","_player","_containsRealPlayer","_queuedCallbacks","_queueEvent","cloakElement","valuesMap","elementPropsMap","defaultStyle","cloakVals","failedElements","roots","rootMap","nodeSet","localRootMap","postEntry","preEntry","AnimationEngine","_triggerCache","_transitionEngine","_timelineEngine","triggerBuildFailed","buildTrigger","onInsert","onRemove","disableAnimations","eventPhase","SpecialCasedStyles","initialStylesByElement","_startStyles","_endStyles","initialStyles","_initialStyles","filterNonAnimatableStyles","isNonAnimatableStyle","WebAnimationsPlayer","_specialStyles","_initialized","_preparePlayerBeforeStart","domPlayer","_triggerWebAnimation","_finalKeyframe","_resetDomPlayerState","_convertKeyframesToObject","kfs","fromEntries","WebAnimationsDriver","validateAnimatableStyleProperty","playerOptions","previousStyles","previousWebAnimationPlayers","allowPreviousPlayerStylesMerge","normalizeKeyframes","balancePreviousStylesIntoKeyframes","startingKeyframe","missingStyleProps","specialStyles","packageNonAnimatableStyles","startStyles","endStyles","DISABLE_ANIMATIONS_FLAG","BaseAnimationRenderer","ɵtype","AnimationRenderer","resolveElementFromTarget","parseTriggerCallbackName","dotIndex","scheduleListenerCallback","AnimationRendererFactory","_currentId","_microtaskId","_animationCallbacksBuffer","_rendererCache","_cdRecurDepth","onRendererDestroy","animationTriggers","_scheduleCountTask","animationCallbacksBuffer","SHARED_ANIMATION_PROVIDERS","ɵAnimationStyleNormalizer","instantiateDefaultStyleNormalizer","ɵWebAnimationsStyleNormalizer","ɵAnimationEngine","InjectableAnimationEngine","ɵChangeDetectionScheduler","instantiateRendererFactory","ɵAnimationRendererFactory","ɵDomRendererFactory2","BROWSER_ANIMATIONS_PROVIDERS","ɵWebAnimationsDriver","BROWSER_NOOP_ANIMATIONS_PROVIDERS","BrowserAnimationsModule","AppModule","__NgCli_bootstrap_1","require","ElementQueries","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","define","__webpack_require__","cssStyleElement","allQueries","idToSelectorMapping","getEmSize","fontSize","convertToPx","numbers","vw","vh","chooser","SetupInformation","actualValue","attrValues","getElementSize","setupElement","elementQueriesSetupInformation","elementQueriesSensor","queueQuery","getQuery","$$","jQuery","attachResponsiveImage","rules","defaultImageId","lastActiveImage","loadedImages","imageToDisplay","resizeSensorInstance","attrRegex","extractQuery","smatch","attrMatch","readRules","selectorText","cssRules","styleSheet","defaultCssInjected","animationStart","webkitAnimationName","MozAnimationName","OAnimationName","resizeSensor","styleSheets","findResponsiveImages","findElementQueriesElements","DOMLoadTimer","domLoaded","globalWindow","mozCancelAnimationFrame","webkitCancelAnimationFrame","forEachElement","elementsType","isCollectionTyped","Elements","lastAnimationFrameForInvisibleCheck","EventQueue","sizeInfo","newQueue","attachResizeEvent","resized","resizedAttached","overflow","styleChild","expandChild","shrink","shrinkChild","rafId","lastWidth","lastHeight","initialHiddenCheck","resetSensor","onResized","onScroll","addEvent","mutations","addedNodes","childList","subtree","dijkstra","single_source_shortest_paths","graph","predecessors","costs","cost_of_s_to_u","adjacent_nodes","cost_of_s_to_u_plus_cost_of_e","PriorityQueue","make","cost","msg","extract_shortest_path_from_predecessor_list","find_path","sorter","default_sorter","second","extendStatics","__extends","__","__assign","__generator","sent","trys","ops","__spreadArray","pack","ar","Bounds","fromClientRect","windowBounds","fromDOMRectList","domRectList","parseBounds","toCodePoints$1","codePoints","extra","fromCodePoint$1","fromCodePoint","codeUnits","codePoint","chars$2","lookup$2","i$2","chars$1$1","lookup$1$1","i$1$1","slice16$1","Trie$1","Trie","highStart","highValueIndex","UTRIE2_DATA_BLOCK_LENGTH$1","UTRIE2_INDEX_1_OFFSET$1","UTRIE2_INDEX_2_BLOCK_LENGTH$1","chars$3","lookup$3","i$3","view32","view16","SP","BA","HY","CL","CP","EX","IN","NS","OP","IS","NU","PO","PR","SY","AL","EB","EM","H2","H3","JL","JV","JT","SA","ea_OP","BREAK_NOT_ALLOWED$1","UnicodeTrie$1","base64","encoded1","encoded2","encoded3","encoded4","bufferLength","bytes","decode$1","polyUint32Array$1","polyUint16Array$1","headerLength","slice32$1","ALPHABETICS","HARD_LINE_BREAKS","SPACE$1","PREFIX_POSTFIX","LINE_BREAKS","KOREAN_SYLLABLE_BLOCK","HYPHEN","isAdjacentWithSpaceIgnored","classTypes","previousNonSpaceClassType","_lineBreakAtIndex","indicies","forbiddenBreaks","beforeIndex","afterIndex","cssFormattedClasses","lineBreak","wordBreak","categories","classType","codePointsToCharacterClasses","isLetterNumber","letterNumber","Break","isDigit","isHex","isWhiteSpace","isNameStartCodePoint","isLowerCaseLetter","isUpperCaseLetter","isLetter","isNonASCIICodePoint","isNameCodePoint","isNonPrintableCodePoint","isValidEscape","isIdentifierStart","isNumberStart","stringToNumber","integers","int","fracd","frac","expsign","LEFT_PARENTHESIS_TOKEN","RIGHT_PARENTHESIS_TOKEN","COMMA_TOKEN","SUFFIX_MATCH_TOKEN","PREFIX_MATCH_TOKEN","COLUMN_TOKEN","DASH_MATCH_TOKEN","INCLUDE_MATCH_TOKEN","LEFT_CURLY_BRACKET_TOKEN","RIGHT_CURLY_BRACKET_TOKEN","SUBSTRING_MATCH_TOKEN","BAD_URL_TOKEN","BAD_STRING_TOKEN","CDO_TOKEN","CDC_TOKEN","COLON_TOKEN","SEMICOLON_TOKEN","LEFT_SQUARE_BRACKET_TOKEN","RIGHT_SQUARE_BRACKET_TOKEN","WHITESPACE_TOKEN","EOF_TOKEN","Tokenizer","consumeToken","consumeCodePoint","consumeStringToken","peekCodePoint","consumeName","reconsumeCodePoint","consumeNumericToken","e3","consumeIdentLikeToken","a3","u1","u2","consumeUnicodeRangeToken","consumeWhiteSpace","questionMarks","endDigits","consumeUrlToken","stringToken","consumeBadUrlRemnants","consumeEscapedCodePoint","consumeStringSlice","endingCodePoint","consumeNumber","repr","number","hexCodePoint","isSurrogateCodePoint","Parser","_tokens","tokenizer","parseValue","parseComponentValue","parseValues","parseComponentValues","SyntaxError","reconsumeToken","consumeComponentValue","consumeSimpleBlock","consumeFunction","isEndingTokenFor","functionToken","cssFunction","isDimensionToken","isNumberToken","isIdentToken","isStringToken","isIdentWithValue","nonWhiteSpace","nonFunctionArgSeparator","parseFunctionArgs","isLength","isLengthPercentage","parseLengthPercentageTuple","ZERO_LENGTH","FIFTY_PERCENT","HUNDRED_PERCENT","getAbsoluteValueForTuple","getAbsoluteValue","isAngle","parseNamedSide","ident","deg","color$1","colorFunction","SUPPORTED_COLOR_FUNCTIONS","namedColor","COLORS","TRANSPARENT","asString","getTokenColorValue","rgb","hsl","hsla","rgba","parseColor","ALICEBLUE","ANTIQUEWHITE","AQUA","AQUAMARINE","AZURE","BEIGE","BISQUE","BLACK","BLANCHEDALMOND","BLUE","BLUEVIOLET","BROWN","BURLYWOOD","CADETBLUE","CHARTREUSE","CHOCOLATE","CORAL","CORNFLOWERBLUE","CORNSILK","CRIMSON","CYAN","DARKBLUE","DARKCYAN","DARKGOLDENROD","DARKGRAY","DARKGREEN","DARKGREY","DARKKHAKI","DARKMAGENTA","DARKOLIVEGREEN","DARKORANGE","DARKORCHID","DARKRED","DARKSALMON","DARKSEAGREEN","DARKSLATEBLUE","DARKSLATEGRAY","DARKSLATEGREY","DARKTURQUOISE","DARKVIOLET","DEEPPINK","DEEPSKYBLUE","DIMGRAY","DIMGREY","DODGERBLUE","FIREBRICK","FLORALWHITE","FORESTGREEN","FUCHSIA","GAINSBORO","GHOSTWHITE","GOLD","GOLDENROD","GRAY","GREEN","GREENYELLOW","GREY","HONEYDEW","HOTPINK","INDIANRED","INDIGO","IVORY","KHAKI","LAVENDER","LAVENDERBLUSH","LAWNGREEN","LEMONCHIFFON","LIGHTBLUE","LIGHTCORAL","LIGHTCYAN","LIGHTGOLDENRODYELLOW","LIGHTGRAY","LIGHTGREEN","LIGHTGREY","LIGHTPINK","LIGHTSALMON","LIGHTSEAGREEN","LIGHTSKYBLUE","LIGHTSLATEGRAY","LIGHTSLATEGREY","LIGHTSTEELBLUE","LIGHTYELLOW","LIME","LIMEGREEN","LINEN","MAGENTA","MAROON","MEDIUMAQUAMARINE","MEDIUMBLUE","MEDIUMORCHID","MEDIUMPURPLE","MEDIUMSEAGREEN","MEDIUMSLATEBLUE","MEDIUMSPRINGGREEN","MEDIUMTURQUOISE","MEDIUMVIOLETRED","MIDNIGHTBLUE","MINTCREAM","MISTYROSE","MOCCASIN","NAVAJOWHITE","NAVY","OLDLACE","OLIVE","OLIVEDRAB","ORANGE","ORANGERED","ORCHID","PALEGOLDENROD","PALEGREEN","PALETURQUOISE","PALEVIOLETRED","PAPAYAWHIP","PEACHPUFF","PERU","PINK","PLUM","POWDERBLUE","PURPLE","REBECCAPURPLE","ROSYBROWN","ROYALBLUE","SADDLEBROWN","SALMON","SANDYBROWN","SEAGREEN","SEASHELL","SIENNA","SILVER","SKYBLUE","SLATEBLUE","SLATEGRAY","SLATEGREY","SNOW","SPRINGGREEN","STEELBLUE","TAN","TEAL","THISTLE","TOMATO","TURQUOISE","VIOLET","WHEAT","WHITE","WHITESMOKE","YELLOW","YELLOWGREEN","backgroundClip","parseColorStop","processColorStops","stops","lineLength","processStops","stop_1","absoluteValue","gapBegin","stop_2","gapLength","gapValue","calculateGradientDirection","radian","corner","centerX","centerY","getAngleFromCorner","halfLineLength","yDiff","xDiff","findCorner","stat","optimumDistance","optimumCorner","prefixLinearGradient","angle$1","firstToken","colorStop","CLOSEST_SIDE","FARTHEST_SIDE","CLOSEST_CORNER","FARTHEST_CORNER","ELLIPSE","CONTAIN","prefixRadialGradient","isColorStop","image_1","addImage","imageFunction","SUPPORTED_IMAGE_FUNCTIONS","isAtPosition_1","backgroundImage","isSupportedImage","backgroundOrigin","backgroundPosition","backgroundRepeat","parseBackgroundRepeat","BACKGROUND_SIZE","AUTO","COVER","backgroundSize","isBackgroundSizeInfoToken","borderColorForSide","borderTopColor","borderRightColor","borderBottomColor","borderRadiusForSide","borderTopLeftRadius","borderTopRightRadius","borderBottomRightRadius","borderBottomLeftRadius","borderStyleForSide","borderTopStyle","borderRightStyle","borderBottomStyle","borderLeftStyle","borderWidthForSide","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","bit","parseDisplayValue","float","letterSpacing","LINE_BREAK","STRICT","lineHeight","computeLineHeight","listStyleImage","listStylePosition","listStyleType","marginForSide","overflowWrap","paddingForSide","paddingTop","paddingRight","paddingBottom","paddingLeft","textTransform","transform$1","transformFunction","SUPPORTED_TRANSFORM_FUNCTIONS","matrix3d","DEFAULT_VALUE","origins","WORD_BREAK","BREAK_ALL","KEEP_ALL","auto","textDecorationColor","textDecorationLine","fontFamily","fontVariant","fontStyle","counterIncrement","increments","filtered","increment","counterReset","resets","quotes","getQuote","quote","spread","inset","paintOrder","webkitTextStrokeColor","webkitTextStrokeWidth","CSSParsedDeclaration","animationDuration","cssFloat","overflowTuple","overflowX","overflowY","textDecoration","isTransformed","isPositioned","isPositionedWithZIndex","isFloating","isInlineLevel","CSSParsedPseudoDeclaration","CSSParsedCounterDeclaration","length_1","value_1","isDebugging","elementType","getElementDebugType","ElementContainer","textNodes","isHTMLElementNode","chars$1","lookup$1","i$1","slice16","UTRIE2_DATA_BLOCK_LENGTH","UTRIE2_INDEX_1_OFFSET","UTRIE2_INDEX_2_BLOCK_LENGTH","lookup","L","V","LV","LVT","UnicodeTrie","_byteLength","polyUint32Array","polyUint16Array","slice32","createTrieFromBase64","codePointToClass","_graphemeBreakAtIndex","_codePoints","countRI","GraphemeBreaker","toCodePoints","lastEnd","graphemeBreak","isGreenPixel","createForeignObjectSVG","foreignObject","loadSerializedSVG$1","img","XMLSerializer","serializeToString","FEATURES","SUPPORT_RANGE_BOUNDS","createRange","TEST_HEIGHT","selectNode","rangeBounds","rangeHeight","testRangeBounds","SUPPORT_WORD_BREAKING","wordSpacing","textList","setStart","setEnd","boundAhead","testIOSLineBreak","SUPPORT_SVG_DRAWING","testSVG","SUPPORT_FOREIGNOBJECT_DRAWING","greenImageSrc","testForeignObject","SUPPORT_CORS_IMAGES","SUPPORT_RESPONSE_TYPE","SUPPORT_CORS_XHR","SUPPORT_NATIVE_TEXT_SEGMENTATION","Segmenter","TextBounds","getWrapperBounds","segmentGraphemes","segmenter","granularity","bk","breaker","graphemes","splitGraphemes","breakText","breakWords","segmentWords","wordSeparators","forbiddenBreakpoints","LineBreaker","words","_loop_1","word_1","TextContainer","textBounds","clientRects","subSegments","subOffset_1","subSegment","replacementNode","splitText","parseTextBounds","CAPITALIZE","capitalize","ImageElementContainer","currentSrc","intrinsicWidth","intrinsicHeight","CanvasElementContainer","SVGElementContainer","baseVal","LIElementContainer","OLElementContainer","reversed","CHECKBOX_BORDER_RADIUS","RADIO_BORDER_RADIUS","CHECKBOX","RADIO","PASSWORD","INPUT_COLOR","InputElementContainer","getInputValue","reformatInputBounds","SelectElementContainer","TextareaElementContainer","IFrameElementContainer","iframe","contentWindow","parseTree","documentBackgroundColor","bodyBackgroundColor","LIST_OWNERS","parseNodeTree","isTextNode","isSlotElement","assignedNodes","createContainer","createsRealStackingContext","createsStackingContext","isTextareaElement","isSVGElement","isSelectElement","isImageElement","isCanvasElement","isLIElement","isOLElement","isIFrameElement","isBodyElement","TEXT_NODE","isSVGElementNode","isVideoElement","isStyleElement","isCustomElement","CounterState","counters","getCounterValue","getCounterValues","canReset","counterNames","ROMAN_UPPER","ARMENIAN","HEBREW","GEORGIAN","createAdditiveCounter","createCounterText","createCounterStyleWithSymbolResolver","codePointRangeLength","isNumeric","createCounterStyleFromRange","codePointRangeStart","codePointRangeEnd","createCounterStyleFromSymbols","createCJKCounter","multipliers","negativeSign","coefficient","KOREAN_NEGATIVE","appendSuffix","defaultSuffix","cjkSuffix","koreanSuffix","spaceSuffix","CJK_TEN_COEFFICIENTS","CJK_ZEROS","IGNORE_ATTRIBUTE","DocumentCloner","scrolledElements","quoteDepth","toIFrame","windowSize","createIFrameContainer","cloneWindow","documentClone","iframeLoad","iframeLoader","onclone","restoreNodeScroll","logger","clonedReferenceElement","fonts","imagesReady","serializeDoctype","doctype","restoreOwnerScroll","adoptNode","createElementClone","createCanvasClone","createVideoClone","createStyleClone","srcset","createCustomElementClone","copyCSSStyles","rule","inlineImages","clonedCanvas","clonedCtx","allowTaint","attribs","video","blankCanvas","appendChildNode","copyStyles","isScriptElement","cloneChildNodes","assignedNode","styleBefore","styleAfter","createPseudoHideStyles","resolvePseudoContent","PseudoElementType","BEFORE","AFTER","pseudoElt","anonymousReplacedElement","counterStyle","counterState","counterType","delim","counterStates","counterType_1","PSEUDO_HIDE_ELEMENT_CLASS_BEFORE","PSEUDO_HIDE_ELEMENT_CLASS_AFTER","newClassName","baseValue","cloneIframeContainer","scrolling","imageReady","ignoredStyleProperties","internalSubset","publicId","systemId","PSEUDO_HIDE_ELEMENT_STYLE","createStyles","CacheStorage","getOrigin","_link","isSameOrigin","isBlobImage","isRenderable","useCORS","useProxy","isInlineImage","proxy","isInlineBase64Image","imageTimeout","reader_1","queryString","timeout_1","ontimeout","INLINE_SVG","INLINE_BASE64","INLINE_IMG","isSVG","Vector","BezierCurve","startControl","endControl","firstHalf","abbc","bccd","isBezierCurve","BoundCurves","tlh","tlv","trh","trv","brh","brv","blh","blv","factors","maxFactor","topWidth","rightHeight","bottomWidth","leftHeight","topLeftBorderDoubleOuterBox","getCurvePoints","CORNER","TOP_LEFT","topRightBorderDoubleOuterBox","TOP_RIGHT","bottomRightBorderDoubleOuterBox","BOTTOM_RIGHT","bottomLeftBorderDoubleOuterBox","BOTTOM_LEFT","topLeftBorderDoubleInnerBox","topRightBorderDoubleInnerBox","bottomRightBorderDoubleInnerBox","bottomLeftBorderDoubleInnerBox","topLeftBorderStroke","topRightBorderStroke","bottomRightBorderStroke","bottomLeftBorderStroke","topLeftBorderBox","topRightBorderBox","bottomRightBorderBox","bottomLeftBorderBox","topLeftPaddingBox","topRightPaddingBox","bottomRightPaddingBox","bottomLeftPaddingBox","topLeftContentBox","topRightContentBox","bottomRightContentBox","bottomLeftContentBox","kappa","ox","oy","xm","ym","calculateBorderBoxPath","calculatePaddingBoxPath","TransformEffect","ClipEffect","OpacityEffect","isClipEffect","effect","StackingContext","inlineLevel","nonInlineLevel","negativeZIndex","zeroOrAutoZIndexOrTransformedOrOpacity","positiveZIndex","nonPositionedFloats","nonPositionedInlineLevel","ElementPaint","effects","borderBox","paddingBox","getEffects","inFlow","croplessEffects","parseStackTree","stackingContext","realStackingContext","listItems","treatAsRealStackingContext","paintContainer","listOwnerItems","parentStack","order_1","index_1","index_2","processListItems","owner","numbering","listValue","parsePathForBorder","borderSide","createPathFromCurves","createStrokePathFromCurves","outer1","outer2","inner1","inner2","contentBox","calculateBackgroundRendering","intrinsicSize","backgroundPositioningArea","calculateBackgroundPositioningArea","getBackgroundValueForIndex","backgroundPaintingArea","calculateBackgroundPaintingArea","backgroundImageSize","calculateBackgroundSize","sizeWidth","sizeHeight","calculateBackgroundRepeatPath","isAuto","hasIntrinsicValue","intrinsicProportion","hasIntrinsicProportion","hasIntrinsicWidth","hasIntrinsicHeight","hasIntrinsicDimensions","width_3","height_3","SAMPLE_TEXT","FontMetrics","parseMetrics","span","verticalAlign","baseline","getMetrics","Renderer","CanvasRenderer","_activeEffects","fontMetrics","textBaseline","applyEffects","popEffect","applyEffect","isOpacityEffect","globalAlpha","isTransformEffect","restore","renderStack","renderStackContent","renderNode","paint","renderNodeBackgroundAndBorders","renderNodeContent","renderTextWithLetterSpacing","createFontStyle","variant","fixIOSSystemFonts","renderTextNode","paintOrderLayer","textShadows","shadowColor","shadowOffsetX","shadowOffsetY","shadowBlur","lineJoin","strokeText","renderReplacedElement","isTextInputElement","canvasTextAlign","_g","_h","_j","_k","_l","_m","_o","_p","formatPath","renderRepeat","renderBackgroundImage","this_1","gradient_1","top_1","rx","ry","radialGradient_1","midX","midY","invF","createPattern","isLinearGradient","isRadialGradient","gradient","calculateRadius","createRadialGradient","addColorStop","createLinearGradient","renderSolidBorder","curvePoints","renderDoubleBorder","outerPaths","innerPaths","parsePathForBorderDoubleOuter","parsePathForBorderDoubleInner","hasBackground","borders","borders_1","calculateBackgroundCurvedPaintingArea","borderBoxArea","maskOffset","shadowPaintingArea","deltaW","deltaH","transformPath","renderDashedDottedBorder","strokePaths","boxPaths","startY","endY","dashLength","spaceLength","useLineDash","numberOfDashes","minSpace","maxSpace","path1","path2","parsePathForBorderStroke","setLineDash","lineCap","parseStackingContexts","calculateContentBoxPath","iOSBrokenFonts","fontFamilies","ForeignObjectRenderer","loadSerializedSVG","Logger","getTime","instances","Context","instanceName","logging","renderElement","resourceOptions","contextOptions","windowOptions","foreignObjectRendering","cloneOptions","documentCloner","clonedElement","renderOptions","_r","_s","_u","windowWidth","windowHeight","isHTMLElement","parseDocumentSize","parseBackgroundColor","removeContainer","backgroundColorOverride","defaultBackgroundColor","getTypeOf","uint8array","compressedSize","uncompressedSize","crc32","compression","compressedContent","getContentWorker","uncompressWorker","streamInfo","data_length","getCompressedWorker","withStreamInfo","createWorkerFrom","compressWorker","STORE","DEFLATE","createFolders","date","compressionOptions","unixPermissions","dosPermissions","lie","_pako","_pakoAction","_pakoOptions","processChunk","_createPako","transformTo","cleanUp","raw","pako","A","O","utf8encode","I","S","C","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCFullYear","getUTCMonth","getUTCDate","fileRecord","R","LOCAL_FILE_HEADER","dirRecord","CENTRAL_FILE_HEADER","bytesWritten","zipComment","zipPlatform","encodeFileName","streamFiles","accumulate","contentBuffer","dirRecords","currentSourceOffset","entriesCount","currentFile","percent","openedSource","closedSource","DATA_DESCRIPTOR","CENTRAL_DIRECTORY_END","prepareNextSource","registerPrevious","generatedError","generateWorker","_compressWorker","support","external","decompressed","checkCRC32","optimizedBinaryString","decodeFileName","utf8decode","isNode","isStream","prepareContent","fileNameStr","fileCommentStr","unsafeOriginalName","_upstreamEnded","_bindStream","_stream","Readable","_helper","_read","Buffer","newBufferFrom","allocBuffer","alloc","isBuffer","generate","generateInternalStream","checkSupport","generateAsync","generateNodeStream","toNodejsStream","byteAt","lastIndexOfSignature","readAndCheckSignature","checkOffset","checkIndex","readInt","readString","readDate","UTC","ZIP64_CENTRAL_DIRECTORY_LOCATOR","ZIP64_CENTRAL_DIRECTORY_END","destType","dataIsReady","_tickScheduled","_tickAndRepeat","isFinished","extraStreamInfo","mergeStreamInfo","nodestream","_internalType","_outputType","_mimeType","newBlob","objectMode","arraybuffer","nodebuffer","BlobBuilder","WebKitBlobBuilder","MozBlobBuilder","MSBlobBuilder","getBlob","leftOver","applyFromCharCode","Utf8DecodeWorker","Utf8EncodeWorker","stringifyByChunk","stringifyByChar","applyCanBeUsed","MAX_VALUE_16BITS","MAX_VALUE_32BITS","pretty","setimmediate","loadOptions","checkSignature","isSignature","readBlockEndOfCentral","diskNumber","diskWithCentralDirStart","centralDirRecordsOnThisDisk","centralDirRecords","centralDirSize","centralDirOffset","zipCommentLength","readBlockZip64EndOfCentral","zip64EndOfCentralSize","zip64ExtensibleData","readBlockZip64EndOfCentralLocator","diskWithZip64CentralDirStart","relativeOffsetEndOfZip64CentralDir","disksCount","readLocalFiles","localHeaderOffset","readLocalPart","handleUTF8","processAttributes","readCentralDir","zip64","readCentralPart","readEndOfCentral","prepareReader","isEncrypted","bitFlag","useUTF8","fileNameLength","compressionMethod","versionMadeBy","extraFieldsLength","fileCommentLength","diskNumberStart","internalFileAttributes","externalFileAttributes","readExtraFields","parseZIP64ExtraField","fileComment","extraFields","findExtraFieldUnicodePath","findExtraFieldUnicodeComment","_dataBinary","internalStream","_decompressWorker","nodeStream","WebKitMutationObserver","characterData","MessageChannel","onreadystatechange","port1","port2","outcome","onFulfilled","callFulfilled","otherCallFulfilled","onRejected","callRejected","otherCallRejected","race","immediate","chunkSize","windowBits","memLevel","gzip","strm","avail_out","deflateInit2","deflateSetHeader","dictionary","string2buf","deflateSetDictionary","_dict_set","next_in","avail_in","Buf8","next_out","deflate","buf2binstring","shrinkBuf","deflateEnd","flattenChunks","Deflate","deflateRaw","inflateInit2","Z_OK","inflateGetHeader","Z_FINISH","Z_NO_FLUSH","binstring2buf","inflate","Z_NEED_DICT","inflateSetDictionary","Z_BUF_ERROR","Z_STREAM_END","Z_SYNC_FLUSH","utf8border","buf2string","arraySet","inflateEnd","Inflate","inflateRaw","ungzip","setTyped","Buf16","Buf32","Z_PARTIAL_FLUSH","Z_FULL_FLUSH","Z_BLOCK","Z_TREES","Z_ERRNO","Z_STREAM_ERROR","Z_DATA_ERROR","Z_NO_COMPRESSION","Z_BEST_SPEED","Z_BEST_COMPRESSION","Z_DEFAULT_COMPRESSION","Z_FILTERED","Z_HUFFMAN_ONLY","Z_RLE","Z_FIXED","Z_DEFAULT_STRATEGY","Z_BINARY","Z_TEXT","Z_UNKNOWN","Z_DEFLATED","D","F","pending_buf","pending_out","total_out","_tr_flush_block","block_start","strstart","U","max_chain_length","prev_length","nice_match","w_size","w_mask","good_match","lookahead","match_start","window_size","hash_size","adler","total_in","ins_h","hash_shift","hash_mask","Z","match_length","_tr_tally","max_lazy_match","last_lit","W","prev_match","match_available","M","good_length","max_lazy","nice_length","max_chain","H","pending_buf_size","gzhead","gzindex","last_flush","w_bits","hash_bits","dyn_ltree","dyn_dtree","bl_tree","l_desc","d_desc","bl_desc","bl_count","heap","heap_len","heap_max","l_buf","lit_bufsize","d_buf","opt_len","static_len","bi_buf","bi_valid","G","data_type","_tr_init","K","Y","deflateInit","deflateReset","deflateResetKeep","hcrc","os","_tr_align","_tr_stored_block","deflateInfo","xflags","extra_len","dmax","wsize","whave","wnext","hold","lencode","distcode","lenbits","distbits","sane","havedict","wbits","ncode","nlen","ndist","have","lendyn","distdyn","was","inflateReset","inflateReset2","inflateResetKeep","inflateInit","inflateInfo","static_tree","extra_bits","extra_base","elems","max_length","has_stree","dyn_tree","max_code","stat_desc","X","J","nextTick","importScripts","canPromise","SvgRenderer","renderCanvas","renderFunc","argsNum","isLastArgCb","renderToDataURL","getSymbolSize","posCount","intervals","getRowColCoords","posLength","Mode","ALPHA_NUM_CHARS","AlphanumericData","ALPHANUMERIC","getBitsLength","bitBuffer","BitBuffer","bufIndex","putBit","getLengthInBits","BitMatrix","reservedBit","row","reserved","xor","isReserved","encodeUtf8","ByteData","ECLevel","EC_BLOCKS_TABLE","EC_CODEWORDS_TABLE","errorCorrectionLevel","Q","G15_BCH","getBCHDigit","EXP_TABLE","LOG_TABLE","KanjiData","KANJI","toSJIS","PATTERN000","PATTERN001","PATTERN010","PATTERN011","PATTERN100","PATTERN101","PATTERN110","PATTERN111","getMaskAt","maskPattern","Patterns","sameCountCol","sameCountRow","lastCol","lastRow","bitsCol","bitsRow","darkCount","modulesCount","setupFormatFunc","numPatterns","bestPattern","lowerPenalty","applyMask","penalty","getPenaltyN1","getPenaltyN2","getPenaltyN3","getPenaltyN4","VersionCheck","Regex","ccBits","dataStr","testNumeric","NUMERIC","testAlphanumeric","testKanji","NumericData","remainingNum","GF","mul","divident","divisor","degree","poly","AlignmentPattern","FinderPattern","MaskPattern","ECCode","ReedSolomonEncoder","Version","FormatInfo","Segments","setupFormatInfo","getEncodedBits","createSymbol","estimatedVersion","rawSegments","rawSplit","getBestVersionForData","bestVersion","dataBits","createData","getCharCountIndicator","dataTotalCodewordsBits","getSymbolTotalCodewords","getTotalCodewordsCount","remainingByte","createCodewords","totalCodewords","dataTotalCodewords","ecTotalBlocks","getBlocksCount","blocksInGroup1","totalCodewordsInGroup1","dataCodewordsInGroup1","dataCodewordsInGroup2","ecCount","rs","dcData","ecData","maxDataSize","dataSize","moduleCount","modules","setupFinderPattern","getPositions","setupTimingPattern","setupAlignmentPattern","setupVersionInfo","setupData","inc","bitIndex","byteIndex","getBestMask","toSJISFunc","setToSJISFunction","Polynomial","genPoly","generateECPolynomial","paddedData","remainder","buff","kanji","byte","TEST_KANJI","TEST_NUMERIC","TEST_ALPHANUMERIC","getStringByteLength","unescape","getSegments","getSegmentsFromString","numSegs","alphaNumSegs","byteSegs","kanjiSegs","isKanjiModeEnabled","BYTE_KANJI","getSegmentBitsLength","buildSingleSegment","modesHint","bestMode","getBestModeForData","seg","buildNodes","segs","buildGraph","table","prevNodeIds","nodeGroup","currentNodeIds","lastCount","prevNodeId","optimizedSegs","mergeSegments","prevSeg","toSJISFunction","CODEWORDS_COUNT","G18_BCH","getReservedBitsCount","getTotalBitsFromDataArray","totalBits","reservedBits","MIXED","usableBits","ecl","getBestVersionForMixedData","currentVersion","getCapacity","getBestVersionForDataLength","qrData","canvasEl","getCanvasElement","getOptions","getImageWidth","createImageData","qrToImageData","clearCanvas","rendererOpts","getColorAttrib","attrib","svgCmd","qrcodesize","bg","qrToPath","moveBy","newRow","svgTag","hex2rgba","hexCode","hexValue","qrSize","getScale","imgData","qr","symbolSize","scaledMargin","palette","posDst","pxColor","Panel","addPanel","usedJSHeapSize","jsHeapSizeLimit","asyncGeneratorStep","gen","_throw","getElementRect","sizearg","isNodeJs","styleValue","isStr","getBBox","getAbsPosInCanvas","sel","classed","cl","d3_select","floatToString","fmt","ret_fmt","isexp","prec","significance","se","sg","toExponential","DrawOptions","remain","postpart","partAsInt","dflt","partAsFloat","TRandom","m_w","m_z","buildSvgCurve","ndig","npnts","maxy","gry","mindiff","grx","end_point","pnt1","pnt2","dgry","dgrx","conv","acc_x","acc_y","currx","curry","bin","cminy","cmaxy","prevy","lastx","lasty","qubic","compressSVG","BasePainter","divid","setDom","_selected_main","getDom","selectDom","is_direct","use_enlarge","layout_selector","_accessTopPainter","chld","painter","setTopPainter","getTopPainter","clearTopPainter","keep_origin","isFunc","_hpainter","removePainter","_hitemname","_hdrawopt","checkResize","testMainResize","check_level","new_size","height_factor","enlarge","enlargeMain","rect_origin","can_resize","do_resize","old_h","old_w","skip_warning","CanEnlarge","rect1","rect2","setItemName","hpainter","getItemName","getItemDrawOpt","_loadJSDOM","_loadJSDOM2","internals","nodejs_window","JSDOM","nodejs_document","nodejs_body","makeTranslate","addHighlightStyle","_svgToPDF","as_buffer","nodejs","_jspdf","_svg2pdf","need_symbols","pr","loadScript","source_dir","jspdf","svg2pdf","restore_fonts","restore_dominant","restore_text","node_transform","custom_fonts","reset_tranform","selectAll","can_modify","replaceSymbolsInTextNode","oldFunc","CSSStyleSheet","CSSStyleRule","detectFont","approximateLabelWidth","jsPDF","$fonthandler","addFileToVFS","addFont","pr2","getCustomFont","fs","readFileSync","addCustomFont","btoa_func","FontHandler","addCustomFontToSvg","$originalHTML","svgToImage","_x5","_svgToImage","image_format","svgToPDF","img_src","toBuffer","_x6","resolveFunc","kArial","kTimes","kCourier","kVerdana","kSymbol","kWingdings","root_fonts","aw","fontIndex","setFont","indx","setNameStyleWeight","aver_width","isSymbol","setPainter","clname","defs","selectChild","selection","getCanvSvg","setColor","setAlign","setAngle","roundAngle","clearFont","isMonospace","getFontHtml","getFontName","sz_pixels","fontIndx","TAttFillHandler","colorindx","used","setArgs","fFillStyle","fFillColor","was_changed","color_as_svg","getFillColor","pattern_url","getFillColorAlt","altern","setUsed","hasColor","setSolidColor","setOpacity","isSolid","solid_color","verifyDirectChange","d3_color","getColor","_typename","clTLinearGradient","clTRadialGradient","lfill","fills","fills2","fNumber","use_new","getPadPainter","scale_size","getPadWidth","getPadHeight","spacing_original","gStyle","fHatchesSpacing","hatches_spacing","produce_new","_aa","_bb","swapx","nsteps","dyreal","hside","produce_old","horiz","is_linear","grad","fStart","fX","fY","fEnd","fR1","fColorPositions","toHex","fColors","patt","d3_rgb","fHatchesLineWidth","createSample","plain","sample","saveToStyle","name_color","name_pattern","findColor","TAttTextHandler","fTextFont","attr_alt","fTextSize","color_index","fTextColor","fTextAlign","fTextAngle","angle_used","align_used","createArg","noalign","norotate","fact","zero_size","getAltSize","sz1","getGedFont","setGedFont","ObjectPainter","pad_name","selectCurrentPad","assignObject","draw_object","setPadName","getPadName","isBatchMode","getCanvPainter","assignSnapId","snapid","removeG","isMainPainter","normal_canvas","_main_painter","fillatt","lineatt","markeratt","bins","root_colors","options_store","rstyle","csstype","getObjectName","fName","getClassName","matchObjectType","no_default_title","can","cp","drawItemNameOnCanvas","storeDrawOpt","getDrawOpt","ignore_pad","_interactively_changed","getRootPad","getSupportedDrawOptions","getObjectDrawSettings","prROOT","redrawObject","updateObject","redrawPad","getObjectHint","iname","getRootColors","isTooltipAllowed","tooltip_allowed","setTooltipAllowed","checkCanvasResize","draw_g","getG","createG","frame_layer","getFrameSvg","getLayerSvg","selectChildren","raise","objname","bringToFront","check_online","sendWebsocket","getPadSvg","pads_cache","getUniqueId","only_read","_unique_painter_id","id_counter","setSecondaryId","_main_painter_id","_secondary_id","isSecondary","getSnapId","subelem","new_name","getAxisToSvgFunc","isndc","nornd","use_frame","getFramePainter","pad","padw","fLogx","log10","fUxmin","fX1","fX2","padh","fLogy","fUymin","fY1","fY2","axisToSvg","ndc","noround","svgToAxis","coord","revertAxis","getMainPainter","not_store","setAsMainPainter","setMainPainter","addToPadPrimitives","painters","next_rstyle","removeFromPadPrimitives","createAttMarker","fMarkerColor","fMarkerStyle","fMarkerSize","std","TAttMarkerHandler","createAttLine","fLineColor","fLineStyle","fLineWidth","TAttLineHandler","createAttText","textatt","createAttFill","forEachPainter","userfunc","forEachPainterInPad","interactiveRedraw","redraw","getPromise","canp","producePadEvent","processChanges","executeMenuCommand","showInspector","submitCanvExec","submitExec","deleteAttr","fillContextMenu","size0","fillContextMenuItems","addAttributesMenu","showObjectStatus","info2","showCanvasStatus","showStatus","fTitle","startTextDrawing","font_face","font_size","max_font_size","_fast_drawing","scaleTextDrawing","_checkAllTextDrawing","try_optimize","all_args","missing","textResolveFunc","max_sz","any_text","only_text","mj_node","applyAttributesToMathJax","txt_g","optimize_arr","txt","is_txt","txt_node","fast","top_shift","mid_shift","text_rect","trans","dtrans","_postprocessDrawText","ApproxTextSize","result_width","result_height","post_process","drawText","latex","use_mathjax","constants","Latex","AlwaysMathJax","MathJax","nomathjax","Symbols","simple_latex","isPlainText","producePlainText","produceLatex","produceMathjax","finishTextDrawing","configureUserContextMenu","fillmenu_func","_userContextMenuFunc","fillObjectExecMenu","canvp","_readonly","_websocket","DoExecMenu","execp","exec_painter","exec_items","fExec","activateGed","executeObjectMethod","$execid","fClassName","clTAxis","fArgs","v7canvas","showMethodArgsDialog","DoFillMenu","_reqid","_resolveFunc","reply","_got_menu","fId","fItems","lastclname","$menu","shortname","fChecked","addchk","reqid","did_resolve","handleResolve","submitMenuRequest","lst","configureUserTooltipHandler","tmout","_user_tooltip_handler","_user_tooltip_timeout","configureUserClickHandler","fp","configureUserDblclickHandler","hasUserTooltip","provideUserTooltip","_user_tooltip_handle","provideSpecialDrawArea","_this5","_special_draw_area","toggleProjection","drawInSpecialArea","_this6","drawProjection","getToolTip","evnt","d3_pointer","pnt","extractToolTip","processTooltipEvent","user_info","drawRawText","clTObjString","fString","mathjax","typesetMathjax","getElementCanvPainter","getElementMainPainter","$active_pp","selectActivePad","setFrameActive","getActivePad","resize","dummy","EAxisBits","kDecimals","BIT","kTickPlus","kTickMinus","kAxisRange","kCenterTitle","kCenterLabels","kRotateTitle","kPalette","kNoExponent","kLabelsHori","kLabelsVert","kLabelsDown","kLabelsUp","kIsInteger","kMoreLogLabels","kOppositeTitle","root_line_styles","color0","can_excl","excl_side","excl_width","changeExcl","setBorder","applyBorder","name_width","name_style","getSvgLineStyle","root_markers","refsize","_configure","resetPos","optimized","mv","m2","getFullSize","getMarkerLength","marker_kind","s4","s8","s38","s56","s58","getStrokeColor","getMaterialArgs","HelveticerRegularFont","HelveticerRegularJson","createSVGRenderer","as_is","docuemnt","rndr","SVGRenderer","setPrecision","doc_wrapper","svg_attr","svg_style","path_attr","accPath","_wrapper","excl_style1","excl_style2","_node","originalDocument","originalRender","clearHTML","makeOuterHTML","viewBox","fillTargetSVG","getRender3DKind","render3d","is_batch","Render3DBatch","Render3D","rc","WebGLImage","WebGL","Handling3DDrawings","access3dKind","new_value","getSizeFor3d","can3d","Embed3D","EmbedSVG","browser","chromeVersion","Embed","mode3d","getFrameRect","getPadRect","clear3dCanvas","$jsroot","apply3dSize","add3dCanvas","canv","webgl","onlyget","prnt","pos0","offx","offy","assign3DHandler","createRender3D","_createRender3D","SVG","jsroot_dom","node_canvas","node_gl","jsroot_output","jsroot_custom_dom","jsroot_render3d","jsroot_image_format","originalSetSize","cleanupRender3D","ctxt","isChrome","beforeRender3D","afterRender3D","indx1","indx2","dataUrl","TooltipFor3D","tt","cont","lastlbl","abspos","checkParent","extract_pos","abs_parent","rect0","only_status","createOrbitControl","lookat","enable_zoom","Zooming","ZoomMouse","enable_select","processMouseClick","control_mousedown","mouse_zoom_mesh","stopImmediatePropagation","detectZoomMesh","mouse_select_pnt","getMousePos","control_mouseup","point2","get3dZoomCoord","use_y_for_z","removeZoomMesh","same_pnt","getMouseIntersects","control_mousewheel","render3DFired","render_tmout","analyzeMouseWheelEvent","ignore","size_x3d","size_y3d","size_z3d","ZoomWheel","enableKeys","HandleKeys","block_ctxt","block_mousemove","cursor_changed","control_changed","control_active","mouse_ctxt","lstn_click","lstn_dblclick","lstn_contextmenu","lstn_mousemove","lstn_mouseleave","HideTooltip","layerX","layerY","getOriginDirectionIntersects","filterIntersects","zoom_disabled","getInfoAtMousePosition","mouse_pos","tip","binx","biny","binz","iz","grz","processDblClick","zoom_intersect","unzoom","_dblclick_handler","render3D","contextMenu","mainProcessContextMenu","setTooltipEnabled","showSelection","mainProcessMouseMove","processMouseMove","zoom2","globalIntersect","enable_highlight","tmout_mouse","tmout_ttpos","tmout_handle","mouse_tmout","delayedProcessMouseMove","mainProcessMouseLeave","processMouseLeave","mainProcessDblClick","single_click_tm","processClick","_click_handler","processSingleClick","mouse_click","disposeThreejsObject","only_childs","bins_index","drawn_highlight","createLineSegments","only_geometry","Box3D","Indexes","Normals","MeshSegments","InteractiveControl","extractIndex","setHighlight","checkHighlightIndex","PointsCreator","iswebgl","addPoint","createPoints","makePoints","material_args","pnts","nvertex","noPromise","imgdata","rejectFunc","create3DLineMaterial","is_v7","lstyle","lwidth","v7EvalColor","v7EvalAttr","dash","kWhite","kBlack","gbl_colors_list","getRGBfromTColor","clTColor","fRed","fGreen","fBlue","fAlpha","getGrayColors","rgb_array","gray_colors","extendRootColors","jsarr","objarr","grayscale","adoptRootColors","ColorPalette","calcColorIndex","plen","theColor","calcColor","createDefaultPalette","HLStoRGB","maxPretty","maxHue","getColorPalette","Palette","createGrayPalette","Red","Green","Blue","nColorsGradient","decodeWebCanvasColors","oper","formatHex","formatHex8","colindx","fType","cnt","fCoordinateMode","fR2","createRootColors","colorMap","symbols_map","symbolsRegexCache","translateLaTeX","base_symbols_width","extra_symbols_width","fsize","symbol_width","latex_features","deco","low_up","accent","hasw","twolines","special","braces","symbolsMap","wingdingsMap","symbolsPdfMap","remapSymbolTtfCode","opSpec","new_html","lasti","newcode","replaceSymbols","parseLatex","nelements","currG","shiftX","extendPosition","last_y1","addSpaces","nspaces","positionGNode","inside_gg","createGG","gg","extractSubLabel","check_first","lbrace","rbrace","extra_braces","br","sublabel","dofill","createSubPos","fscale","lvl","best","alone","nbeginspaces","nendspaces","ufont","bold","italic","fisze","xgap","subpos","minw","xpos","w5","w3","w2","w8","line1","line2","subpos1","subpos2","dw","extractLowUp","subs","ylow","pos_up","pos_low","yup","x_up","x_low","r_y1","r_width","foundarg","subpos0","h1","midy","f2","r_y2","shiftx","shifty","_mj_loading","loadMathjax","_loadMathjax","minScale","mtextInheritFont","merrorInheritFont","mathmlSpacing","skipAttributes","exFactor","displayAlign","displayIndent","fontCache","localID","internalSpeechTitles","titleID","enableMenu","tex","packages","startup","defaultReady","mj_dir","webwindow","mj","typeset","registerConstructor","adaptors","HTMLAdaptor","useAdaptor","math_symbols_map","mathjax_remap","upDelta","upGamma","upLambda","upOmega","upPhi","upPi","upPsi","upSigma","upTheta","upUpsilon","upXi","notcong","notgeq","notgr","notless","notleq","notsucc","notprec","notsubseteq","notsupseteq","openclubsuit","openspadesuit","dasharrow","comp","iiintop","iintop","ointop","mathjax_unicode","Digamma","upDigamma","digamma","updigamma","Koppa","koppa","upkoppa","upKoppa","VarKoppa","upVarKoppa","varkoppa","upvarkoppa","varkappa","upvarkappa","varbeta","upvarbeta","Sampi","upSampi","sampi","upsampi","Stigma","upStigma","stigma","upstigma","San","upSan","san","upsan","Sho","upSho","upsho","aa","bulletdashcirc","circdashbullet","downuparrows","updownarrows","dashdownarrow","dashuparrow","complement","dbar","ddddot","dddot","ddots","defineequal","defineeq","downdownharpoons","downupharpoons","updownharpoons","upupharpoons","hateq","ldbrack","rdbrack","leadsfrom","leftsquigarrow","lightning","napprox","nasymp","nequiv","nsimeq","nsubseteq","nsubset","notapprox","notasymp","notequiv","notni","notsimeq","notsubset","notsupset","nsupset","setdif","simarrow","undercurvearrowright","updbar","wwbar","awointop","awoint","barintop","barint","cwintop","cwint","cwointop","cwoint","oiiintop","oiiint","oiintop","oiint","slashintop","slashint","mathjax_asis","svg_factor","mw","mh","valign","nx","ny","_produceMathjax","mtext","translateMath","clean","em","ex","containerWidth","tex2svgPromise","repairMathJaxSvgSize","_typesetMathjax","typesetPromise","kMACHEP","kMINLOG","kMAXLOG","kMAXSTIR","kBig","kBiginv","kSqrt2","M_PI","Polynomialeval","pom","Polynomial1eval","lgam","stirf","SQTPI","erfc","erf","lognormal_cdf_c","lognormal_cdf","normal_cdf_c","normal_cdf","lognormal_pdf","normal_pdf","gamma","sgngam","small","ndtri","normal_quantile","normal_quantile_c","igamc","igam","yc","pk","qk","pkm2","qkm2","pkm1","qkm1","ans","igami","kMAXNUM","dithresh","lgm","yl","yh","landau_pdf","xi","ue","us","denlan","q3","q4","q5","p6","q6","Landau","mpv","norm","den","inc_gamma_c","inc_gamma","lgamma","beta_pdf","log1p","beta","chisquared_cdf_c","pseries","ai","incbet","bb","xc","incbcf","xk","k5","k6","k7","k8","thresh","incbd","incbi","yy0","yp","di","xt","rflg","nflg","ihalve","process_done","mainloop","inc_beta","BetaIncomplete","beta_quantile","beta_cdf_c","chisquared_cdf","gamma_quantile_c","gamma_quantile","breitwigner_cdf_c","breitwigner_cdf","cauchy_cdf_c","cauchy_cdf","cauchy_pdf","gaussian_pdf","gamma_pdf","tdistribution_cdf_c","tdistribution_cdf","tdistribution_pdf","exponential_cdf_c","exponential_cdf","expm1","chisquared_pdf","fdistribution_pdf","fdistribution_cdf_c","fdistribution_cdf","Prob","ndf","Gaus","mean","BreitWigner","Beta","GammaDist","mu","LaplaceDist","LaplaceDistI","Student","rh","rh1","StudentI","LogNormal","BetaDist","BetaDistI","gaus","GetParValue","gausn","gausxy","expo","landau","landaun","crystalball_function","abs_alpha","nDivAlpha","crystalball_pdf","crystalball_integral","useLog","intgaus","intpow","sqrtpiover2","sqrt2pi","oneoversqrt2","crystalball_cdf","totIntegral","integral","crystalball_cdf_c","ChebyshevN","Chebyshev0","Chebyshev1","Chebyshev2","Chebyshev3","Chebyshev4","Chebyshev5","Chebyshev6","Chebyshev7","Chebyshev8","Chebyshev9","Chebyshev10","eff_ClopperPearson","passed","bUpper","eff_Normal","average","eff_Wilson","eff_AgrestiCoull","eff_MidPInterval","alpha_min","pmin","pmax","eff_Bayesian","getTEfficiencyBoundaryFunc","isbayessian","kFCP","kFNormal","kFWilson","kFAC","kFFC","kMidP","Sq","Pi","TwoPi","PiOver2","PiOver4","InvPi","version_id","version_date","versions","v8","_src","import","ignore_v6","batch_mode","setBatchMode","atob_func","atob","btoa","isWin","isArrayProto","userAgentData","brands","brand","isChromeHeadless","screen","NoEmbed","Normal","Tooltip","TooltipAnimation","ContextMenu","ZoomTouch","MoveResize","DragAndDrop","DragGraphs","ProgressBox","ToolBar","ToolBarSide","ToolBarVert","CanAdjustFrame","OptimizeDraw","AutoStat","FrameNDC","SmallPad","GeoGradPerSegm","GeoCompressComp","IgnoreUrlOptions","HierarchyLimit","DislpayKind","BrowserWidth","XValuesFormat","YValuesFormat","ZValuesFormat","HandleWrongHttpResponse","MaxRanges","WithCredentials","SkipStreamerInfos","OnlyLastCycle","DarkMode","PreferSavedPoints","AxisTiltAngle","StripAxisLabels","FuncAsCurve","fOptLogx","fOptLogy","fOptLogz","fOptDate","fOptFile","fDateX","fDateY","fOptTitle","fCanvasColor","fPadColor","fPadBottomMargin","fPadTopMargin","fPadLeftMargin","fPadRightMargin","fPadGridX","fPadGridY","fPadTickX","fPadTickY","fPadBorderSize","fPadBorderMode","fCanvasBorderSize","fCanvasBorderMode","fStatColor","fStatStyle","fStatTextColor","fStatFontSize","fStatFont","fStatBorderSize","fStatFormat","fStatX","fStatY","fStatW","fStatH","fTitleAlign","fTitleColor","fTitleTextColor","fTitleBorderSize","fTitleFont","fTitleFontSize","fTitleStyle","fTitleX","fTitleY","fTitleW","fTitleH","fFitFormat","fOptStat","fOptFit","fNumberContours","fGridColor","fGridStyle","fGridWidth","fFrameFillColor","fFrameFillStyle","fFrameLineColor","fFrameLineWidth","fFrameLineStyle","fFrameBorderSize","fFrameBorderMode","fEndErrorSize","fErrorX","fHistMinimumZero","fHistTopMargin","fHistFillColor","fHistFillStyle","fHistLineColor","fHistLineStyle","fHistLineWidth","fPaintTextFormat","fTimeOffset","fLegendBorderSize","fLegendFont","fLegendTextSize","fLegendFillColor","fCandleWhiskerRange","fCandleBoxRange","fCandleScaled","fViolinScaled","fOrthoCamera","fXAxisExpXOffset","fXAxisExpYOffset","fYAxisExpXOffset","fYAxisExpYOffset","fAxisMaxDigits","fStripDecimals","fBarWidth","injectCode","_injectCode","tmpNameSync","_fs","writeFileSync","unlinkSync","scripts","_ensureJSROOT","postponePromise","_loadScript","loadNext","isstyle","match_url","rel","nofunc","clones","arr_kind","tgt","addMethods","typename","getMethods","newfmt","unref_value","ks","$ref","$arr","dv","nkey","f1","$pair","parseMulti","spacing","copy_value","refid","decodeUrl","decodeURI","nq","eq","firstq","findFunction","names","createHttpRequest","user_accept_callback","user_reject_callback","use_promise","configureXhr","http_callback","error_callback","is_async","oEvent","expected_size","did_abort","qt5","nodejs_checkzip","unzipSync","responseXML","u8Arr","filecontent","_httpRequest","post_data","clTObject","clTNamed","clTString","clTKey","clTFile","clTList","clTHashList","clTMap","clTObjArray","clTClonesArray","clTAttLine","clTAttFill","clTAttMarker","clTAttText","clTHStack","clTGraph","clTMultiGraph","clTCutG","clTGraph2DErrors","clTGraph2DAsymmErrors","clTGraphPolar","clTGraphPolargram","clTGraphTime","clTPave","clTPaveText","clTPaveStats","clTPavesText","clTPaveLabel","clTPaveClass","clTDiamond","clTLegend","clTLegendEntry","clTPaletteAxis","clTImagePalette","clTText","clTLatex","clTMathText","clTAnnotation","clTLine","clTBox","clTPolyLine","clTPolyLine3D","clTPolyMarker3D","clTAttPad","clTPad","clTCanvas","clTAttCanvas","clTGaxis","clTAttAxis","clTStyle","clTH1","clTH1I","clTH1D","clTH2","clTH2I","clTH2F","clTH3","clTF1","clTF2","clTF3","clTProfile","clTProfile2D","clTProfile3D","clTGeoVolume","clTGeoNode","clTGeoNodeMatrix","nsREX","kNoZoom","kNoStats","kInspect","fUniqueID","fBits","fNdivisions","fAxisColor","fLabelColor","fLabelFont","fLabelOffset","fLabelSize","fTickLength","fTitleOffset","fTitleSize","fNbins","fXmin","fXmax","fXbins","fFirst","fLast","fBits2","fTimeDisplay","fTimeFormat","fLabels","fModLabs","fX1NDC","fY1NDC","fX2NDC","fY2NDC","fBorderSize","fInit","fShadowColor","fCornerRadius","fOption","fLabel","fLongest","fMargin","fLines","fParent","fColumnSeparation","fEntrySeparation","fNColumns","fPrimitives","fAxis","fH","fObject","fLimitFactorSize","fOriginSize","fNcells","fXaxis","fYaxis","fZaxis","fBarOffset","fEntries","fTsumw","fTsumw2","fTsumwx","fTsumwx2","fMaximum","fMinimum","fNormFactor","fContour","fSumw2","fFunctions","fBufferSize","fBuffer","fBinStatErrOpt","fStatOverflows","fArray","fScalefactor","fTsumwy","fTsumwy2","fTsumwxy","fTsumwz","fTsumwz2","fTsumwxz","fTsumwyz","fHists","fHistogram","fMaxSize","fNpoints","fEXlow","fEXhigh","fEYlow","fEYhigh","fGraphs","fRadian","fDegree","fGrad","fPolarLabelColor","fRadialLabelColor","fAxisAngle","fPolarOffset","fPolarTextSize","fRadialOffset","fRadialTextSize","fRwrmin","fRwrmax","fRwtmin","fRwtmax","fTickpolarSize","fPolarLabelFont","fRadialLabelFont","fCutRadial","fNdivRad","fNdivPol","fLastPoint","fN","fChopt","fFunctionName","fGridLength","fNdiv","fTickSize","fWmax","fWmin","fLeftMargin","fRightMargin","fBottomMargin","fTopMargin","fXfile","fYfile","fAfile","fXstat","fYstat","fAstat","fXtoAbsPixelk","fXtoPixelk","fXtoPixel","fYtoAbsPixelk","fYtoPixelk","fYtoPixel","fUtoAbsPixelk","fUtoPixelk","fUtoPixel","fVtoAbsPixelk","fVtoPixelk","fVtoPixel","fAbsPixeltoXk","fPixeltoXk","fPixeltoX","fAbsPixeltoYk","fPixeltoYk","fPixeltoY","fXlowNDC","fYlowNDC","fXUpNDC","fYUpNDC","fWNDC","fHNDC","fAbsXlowNDC","fAbsYlowNDC","fAbsWNDC","fAbsHNDC","fUxmax","fUymax","fTheta","fPhi","fAspectRatio","fLogz","fTickx","fTicky","fPadPaint","fCrosshair","fCrosshairPos","fBorderMode","fModified","fGridx","fGridy","fAbsCoord","fEditable","fFixedAspectRatio","fExecs","fXBetween","fYBetween","fTitleFromTop","fXdate","fYdate","fAdate","fNumPaletteColor","fNextPaletteColor","fDISPLAY","fDoubleBuffer","fRetained","fXsizeUser","fYsizeUser","fXsizeReal","fYsizeReal","fWindowTopX","fWindowTopY","fWindowWidth","fWindowHeight","fCw","fCh","fCatt","kMoveOpaque","kResizeOpaque","fHighLightColor","fBatch","kShowEventStatus","kAutoExec","kMenuBar","fGeoAtt","fFinder","fMedium","fNodes","fNtotal","fRefCount","fShape","fVoxels","fMother","fNovlp","fOverlaps","fVolume","fMatrix","fPoints","fP","createHistogram","nbinsx","nbinsy","nbinsz","histo","setHistogramTitle","createTPolyLine","npoints","use_int32","createTGraph","xpts","ypts","usex","usey","createTHStack","Add","createTMultiGraph","mgraph","methodsCache","has_methods","TestBit","InvertBit","Clear","AddFirst","RemoveAt","AddText","addFormula","formulas","GetParName","fParams","fParNames","fFormula","fNames","fParameters","fClingParameters","GetParError","fParErrors","GetNumPars","fNpar","IsInside","xp","oddNodes","getBinError","setBinContent","getBin","getBinContent","Fill","bin1","bin2","bin3","Divide","xmargin","ymargin","ndiv","GetPad","fBinEntries","getBinEntries","getBinEffectiveEntries","sumOfWeights","fBinSumw2","sumOfWeightsSquare","err2","neff","fErrorMode","eprim","GetBinLowEdge","GetBinCenter","Px","fCoordinates","Py","Pz","M2","Pt","Phi","Eta","atanh","fZ","fT","Mag2","Mag","Perp2","Pt2","registerMethods","isRootCollection","$kind","_ensureJSROOT2","JSROOT","_complete_loading","brighter","reI","reN","reP","reHex","reRgbInteger","reRgbPercent","reRgbaInteger","reRgbaPercent","reHslPercent","reHslaPercent","named","color_formatHex","color_formatRgb","formatRgb","rgbn","Rgb","rgbConvert","rgb_formatHex","rgb_formatRgb","clampa","clampi","Hsl","hslConvert","clamph","clampt","hsl2rgb","m1","displayable","color_formatHex8","formatHsl","color_formatHsl","darker","rgb_formatHex8","degrees$1","Xn","Yn","Zn","t0$1","t1$1","t3","labConvert","Lab","Hcl","hcl2lab","rgb2lrgb","xyz2lab","lab2xyz","lrgb2rgb","lab","hcl","hclConvert","ED","BC_DA","Cubehelix","cubehelix","cubehelixConvert","bl","cosh","sinh","abs$1","cos$1","sin$1","pi$2","halfPi$1","tau$2","max$2","epsilon$2","range$1","chord","chord$1","directed","padAngle","sortGroups","sortSubgroups","sortChords","groupSums","groupIndex","chords","subgroupIndex","endAngle","compareValue","pi$1","tau$1","epsilon$1","tauEpsilon","strings","_x0","_y0","_x1","_y1","_append","appendRound","arcTo","x21","y21","x01","y01","l01_2","x20","y20","l21_2","l20_2","l21","l01","t01","t21","a0","ccw","cw","da","constant$4","defaultSource","defaultTarget","defaultStartAngle","defaultEndAngle","defaultPadAngle","ribbon$1","ribbon","headRadius","sourceRadius","targetRadius","ap","argv","sr","sa0","sa1","tr","ta0","ta1","tr2","ta2","dispatch","Dispatch","get$1","set$1","parseTypenames$1","typenames","that","local","creatorInherit","creatorFixed","fullname","creator","none","selectorAll","childMatcher","childFirst","EnterNode","datum","__data__","bindIndex","groupLength","dataLength","bindKey","keyValue","nodeByKeyValue","keyValues","arraylike","ascending$1","attrRemove$1","attrRemoveNS$1","attrConstant$1","attrConstantNS$1","attrFunction$1","attrFunctionNS$1","styleRemove$1","styleConstant$1","priority","styleFunction$1","propertyRemove","propertyConstant","propertyFunction","classArray","ClassList","_names","classedAdd","classedRemove","classedTrue","classedFalse","classedFunction","textRemove","textConstant$1","textFunction$1","htmlRemove","htmlConstant","htmlFunction","lower","previousSibling","constantNull","selection_cloneShallow","selection_cloneDeep","__on","onAdd","contextListener","dispatchConstant","dispatchFunction","root$1","Selection$1","_groups","_parents","selection_select","subgroups","subnode","subgroup","selection_selectAll","arrayAll","selection_selectChild","childFind","selection_selectChildren","childrenFilter","selection_filter","selection_data","constant$3","enterGroup","updateGroup","_enter","_exit","selection_enter","selection_exit","selection_join","onenter","onupdate","onexit","selection_merge","groups0","groups1","m0","merges","group0","group1","selection_selection","selection_order","compareDocumentPosition","selection_sort","compareNode","sortgroups","sortgroup","selection_call","selection_nodes","selection_node","selection_size","selection_empty","selection_each","selection_attr","getAttributeNS","selection_style","selection_property","selection_classed","selection_text","selection_html","selection_raise","selection_lower","selection_append","selection_insert","selection_remove","selection_clone","deep","selection_datum","selection_on","parseTypenames","selection_dispatch","selection_iterator","Local","sourceEvent","pointer","currentTarget","clientLeft","clientTop","nonpassive","nonpassivecapture","nopropagation","noevent","constant$2","DragEvent","defaultFilter","defaultContainer","defaultSubject","defaultTouchable","maxTouchPoints","mousedownx","mousedowny","mousemoving","touchending","touchable","clickDistance2","mousedowned","touchstarted","touchmoved","touchended","gesture","beforestart","mousemoved","mouseupped","nodrag","__noselect","yesdrag","noclick","clickDistance","ascending","descending","bisector","compare1","compare2","lo","zero$1","bisectRight","number$2","bisect","e10","e5","tickSpec","ticks","tickIncrement","tickStep","initRange","domain","constant$1","nogamma","linear$1","interpolateRgb","rgbGamma","exponential","rgb$1","numberArray","genericArray","interpolate$1","date$1","setTime","interpolateNumber","reA","reB","interpolateString","am","bm","bi","one","isNumberArray","valueOf","interpolateRound","svgNode","identity$3","skewX","interpolateTransform","pxComma","pxParen","degParen","xa","ya","xb","yb","interpolateTransformCss","parseCss","DOMMatrix","WebKitCSSMatrix","isIdentity","interpolateTransformSvg","parseSvg","consolidate","number$1","identity$2","bimap","interpolate","r0","polymap","copy$1","unknown","transformer$2","untransform","piecewise","rescale","clamper","rangeRound","continuous","formatDecimalParts","prefixExponent","re","formatSpecifier","specifier","FormatSpecifier","comma","formatRounded","formatTypes","%","formatDecimal","toLocaleString","formatPrefixAuto","identity$1","locale$1","formatPrefix","prefixes","linearish","tickFormat","precisionPrefix","precisionRound","precisionFixed","nice","prestep","maxIter","linear","transformLog","transformExp","transformLogn","transformExpn","pow10","loggish","logs","pows","logp","powp","transformSymlog","transformSymexp","symlog","symlogish","defaultLocale$1","formatLocale$1","grouping","thousands","formatGroup","currencyPrefix","currency","currencySuffix","decimal","numerals","formatNumerals","minus","nan","newFormat","formatType","maybeSuffix","valuePrefix","valueSuffix","valueNegative","formatTrim","out","timeInterval","floori","offseti","millisecond","durationSecond","durationMinute","durationHour","durationDay","durationWeek","durationMonth","durationYear","getMilliseconds","timeMinute","getSeconds","getMinutes","utcMinute","setUTCSeconds","timeHour","getHours","utcHour","setUTCMinutes","timeDay","setHours","setDate","getDate","getTimezoneOffset","utcDay","setUTCHours","setUTCDate","unixDay","timeWeekday","getDay","timeSunday","timeMonday","timeThursday","utcWeekday","getUTCDay","utcSunday","utcMonday","utcThursday","timeMonth","setMonth","getMonth","utcMonth","setUTCMonth","timeYear","setFullYear","utcYear","setUTCFullYear","ticker","month","week","day","hour","minute","tickIntervals","tickInterval","utcTicks","utcTickInterval","timeTicks","timeTickInterval","localDate","utcDate","newDate","timeFormat","utcFormat","utcParse","pads","numberRe","percentRe","requoteRe","requote","formatRe","formatLookup","parseWeekdayNumberSunday","parseWeekdayNumberMonday","parseWeekNumberSunday","parseWeekNumberISO","parseWeekNumberMonday","parseFullYear","parseYear","parseZone","parseQuarter","parseMonthNumber","parseDayOfMonth","parseDayOfYear","parseHour24","parseMinutes","parseSeconds","parseMilliseconds","parseMicroseconds","parseLiteralPercent","parseUnixTimestamp","parseUnixTimestampSeconds","formatDayOfMonth","formatHour24","formatHour12","formatDayOfYear","formatMilliseconds","formatMicroseconds","formatMonthNumber","formatMinutes","formatSeconds","formatWeekdayNumberMonday","formatWeekNumberSunday","dISO","formatWeekNumberISO","formatWeekdayNumberSunday","formatWeekNumberMonday","formatYear","formatYearISO","formatFullYear","formatFullYearISO","formatZone","formatUTCDayOfMonth","formatUTCHour24","formatUTCHour12","formatUTCDayOfYear","formatUTCMilliseconds","getUTCMilliseconds","formatUTCMicroseconds","formatUTCMonthNumber","formatUTCMinutes","formatUTCSeconds","formatUTCWeekdayNumberMonday","dow","formatUTCWeekNumberSunday","UTCdISO","formatUTCWeekNumberISO","formatUTCWeekdayNumberSunday","formatUTCWeekNumberMonday","formatUTCYear","formatUTCYearISO","formatUTCFullYear","formatUTCFullYearISO","formatUTCZone","formatLiteralPercent","formatUnixTimestamp","formatUnixTimestampSeconds","defaultLocale","formatLocale","locale_dateTime","dateTime","locale_date","locale_time","locale_periods","periods","locale_weekdays","days","locale_shortWeekdays","shortDays","locale_months","months","locale_shortMonths","shortMonths","periodRe","periodLookup","weekdayRe","weekdayLookup","shortWeekdayRe","shortWeekdayLookup","monthRe","monthLookup","shortMonthRe","shortMonthLookup","formats","formatShortWeekday","formatWeekday","formatShortMonth","formatMonth","formatPeriod","formatQuarter","utcFormats","formatUTCShortWeekday","formatUTCWeekday","formatUTCShortMonth","formatUTCMonth","formatUTCPeriod","formatUTCQuarter","parses","parseShortWeekday","parseWeekday","parseShortMonth","parseMonth","parseLocaleDateTime","parseSpecifier","parsePeriod","parseLocaleDate","parseLocaleTime","newParse","isoSpecifier","calendar","formatMillisecond","formatSecond","formatMinute","formatHour","formatDay","formatWeek","toISOString","tau","arcInnerRadius","arcOuterRadius","arcStartAngle","arcEndAngle","arcPadAngle","cornerTangents","x11","y11","x10","y10","x00","y00","cx0","cy0","cx1","cy1","dx0","dy0","dx1","dy1","cornerRadius","padRadius","withPath","RangeError","a00","a10","da0","da1","rp","rc0","rc1","oc","x32","y32","kc","lc","taskHead","taskTail","timeout$1","pokeDelay","clockLast","clockNow","clockSkew","setFrame","clearNow","Timer","_call","_time","wake","timerFlush","nap","sleep","poke","emptyOn","emptyTween","CREATED","STARTED","timing","schedules","__transition","ease","tweenRemove","tween0","tween1","tweenFunction","tweenValue","attrRemove","attrRemoveNS","attrConstant","string00","interpolate0","string1","string0","attrConstantNS","attrFunction","string10","attrFunctionNS","attrTweenNS","attrInterpolateNS","attrTween","attrInterpolate","delayFunction","delayConstant","durationFunction","durationConstant","Selection","styleRemove","newId","selection_prototype","transition_select","transition_selectAll","inherit","transition_filter","transition_merge","transition_selection","transition_transition","id0","id1","transition_on","onFunction","on0","on1","sit","transition_attr","transition_attrTween","transition_style","styleTween","styleNull","styleFunction","styleMaybeRemove","listener0","styleConstant","transition_styleTween","styleInterpolate","transition_text","textFunction","textConstant","textTween","transition_textTween","textInterpolate","transition_remove","removeFunction","transition_tween","transition_delay","transition_duration","transition_ease","easeConstant","easeVarying","transition_easeVarying","transition_end","interrupt","defaultTiming","cubicInOut","selection_interrupt","selection_transition","import_more","_import_more","import_canvas","_import_canvas","import_tree","_import_tree","import_h","_import_h","import_geo","_import_geo","geo","getDrawHandle","clTGraph2D","clTH2Poly","clTEllipse","clTSpline3","clTTree","clTCanvasWebSnapshot","drawFuncs","class","TCanvasPainter","expand_item","noappend","TPadPainter","draw","clTButton","drawTFrame","TPavePainter","sameas","direct","TH1Painter","for_derived","TH2Painter","theonly","draw_field","draw_field_opt","TH3Painter","THStackPainter","drawPolyMarker3D","drawPolyLine3D","TGraphTimePainter","TGraph2DPainter","TGraphPolargramPainter","TGraphPolarPainter","TGraphPainter","TEfficiencyPainter","TScatterPainter","drawRooPlot","_x10","_x11","_drawRooPlot","TRatioPlotPainter","TMultiGraphPainter","clTStreamerInfoList","drawStreamerInfo","TWebPaintingPainter","drawTPadSnapshot","TF1Painter","TF2Painter","TF3Painter","TSplinePainter","drawEllipse","drawPie","TLinePainter","TArrowPainter","drawPolyLine","TGaxisPainter","drawBox","drawMarker","drawPolyMarker","TASImagePainter","drawJSImage","TGeoPainter","get_expand","expandGeoObject","exapnd_after_draw","drawAxis3D","icon2","noinspect","folderHierarchy","taskHierarchy","treeHierarchy","drawTree","clTBranchFunc","ignore_online","always_draw","noexpand","drawList","listHierarchy","init_v7","RCanvasPainter","drawRPadSnapshot","RH1Painter","RH2Painter","RH3Painter","drawHistDisplayItem","drawRFrameTitle","RPalettePainter","RHistStatsPainter","RPavePainter","RLegendPainter","RPaveTextPainter","drawRFrame","drawRFont","drawRAxis","addDrawFunc","hs","canDrawHandle","getDrawSettings","inspect","isany","canexpand","can_expand","has_same","_draw","drawInspector","type_info","_kind","main_painter","performDrop","performDraw","v7h","RObjectPainter","ensureRCanvas","v6h","ensureTCanvas","prereq","script","v6","_redraw","can_painter","redraw_res","res_painter","assignPadPainterDraw","PadPainterClass","drawObject","_x9","_init_v","RPadPainter","plot","_hist","hp","_x13","addStreamerInfosForPainter","basics","checkBaseClasses","si","fElements","fTypeName","newhandle","widgetTag","_hidden","$name","nextNameID","$widget","$disable","$children","_listenCallback","_callOnChange","_changed","_onFinishChange","_callOnFinishChange","toggleAttribute","_listening","_listenCallbackID","curValue","_listenPrevValue","$input","normalizeColorString","isPrimitive","fromHexString","FORMATS","rgbScale","$text","$display","_format","getColorFormat","_rgbScale","_initialValueHexString","_textFocused","_setValueFromHexString","tryParse","$button","_initInput","stepExplicit","_getImplicitStep","_decimals","_onUpdateMinMax","explicit","_stepExplicit","_hasSlider","$fill","_inputFocused","_snapClampSetValue","initClientX","initClientY","prevClientY","initValue","dragDelta","testingForVerticalDrag","_setDraggingStyle","_arrowKeyMultiplier","onInput","_snap","_normalizeMouseWheel","onFocus","_initSlider","$slider","setValueFromX","mouseMove","mouseUp","prevClientX","testingForScroll","beginTouchDrag","callOnFinishChange","wheelFinishChangeTimeout","_hasScrollBar","_hasMin","_hasMax","wheelDelta","$select","_values","$option","stylesInjected","closeFolders","injectStyles","touchStyles","_closed","$title","openAnimated","_injectStyles","_closeFolders","$1","_title","_setClosed","_callOnOpenClose","targetHeight","controllersRecursive","onOpenClose","_onOpenClose","changedGUI","foldersRecursive","clTGeoManager","clTEveGeoShapeExtract","clTGeoOverlap","clTGeoVolumeAssembly","clTEveTrack","clTEvePointSet","clREveGeoShapeExtract","$comp_col_cnt","buildCompositeVolume","maxlvl","vol","setGeoBit","geoBITS","kVisThis","kVisDaughters","clTGeoCompositeShape","$geoh","node1","fNode","fLeftMat","fLeft","node2","fRightMat","fRight","getHistPainter3DCfg","create3DScene","scale_x","scale_y","scale_z","offset_x","offset_y","offset_z","scale_xmax","scale_xmin","scale_ymax","scale_ymin","scale_zmax","scale_zmin","scene_width","scene_height","toplevel","createList","list_item","_more","_geoobj","_get","_expand","_childs","checkDuplicates","createItem","injectGeoStyle","isnode","isvolume","ismanager","iseve","isoverlap","fMaterials","fMedia","fTracks","fMasterVolume","fVolume1","fVolume2","fMarker","volume","subnodes","findItemWithPainter","hitem","funcname","_painter","provideVisStyle","fRnrSelf","vis","testGeoBit","kVisNone","updateBrowserIcons","_volume","_icon","updateTreeNode","getIntersectStack","stacks","Toolbar","bright","createButtons","buttonsNames","buttonConfig","buttonName","ToolbarIcons","createSVG","changeBrightness","GeoDrawingControl","bloom","drawSpecial","_highlight_mesh","jsroot_special","hightlightWidthScale","highlightScale","gm","_proxy","superimpose","geo_manager","drawing_stage","drawing_log","clipIntersect","clipVisualize","_highlight","highlight","highlight_bloom","highlight_scene","highlight_color","bloom_strength","more","maxfaces","vislevel","maxnodes","num_meshes","num_shapes","depthMethod","select_in_view","update_browser","use_fog","front","lightKindItems","trans_radial","trans_z","rotatey","rotatez","depthMethodItems","cameraKindItems","cameraOverlayItems","camera_kind","camera_overlay","can_rotate","_axis","_count","transparency","material_kind","materialKinds","getMaterialCfg","changeDarkMode","changedBackground","changeStage","isStage","createToolbar","_toolbar","_webgl","notoolbar","buttonList","createSnapshot","showControlGui","toggleEnlarge","getVRDisplays","toggleVRMode","initVRMode","createMenu","bkgr","_dolly","_standingMatrix","_raycasterEnd","_raycasterOrigin","displays","vrDisplay","vr","setDevice","_vrDisplay","stageParameters","sittingToStandingTransform","initVRControllersGeometry","rayMaterial","rayGeometry","ray1Mesh","ray2Mesh","sphere1","sphere2","_controllersMeshes","updateVRControllersList","gamepads","getGamepads","vrControllers","_vrControllers","processVRControllerIntersections","_controls","updateVRControllers","controllerMesh","exitVRMode","_previousCameraPosition","_previousCameraRotation","requestPresent","_previousCameraNear","exitPresent","modifyVisisbility","getNodeKind","regexp","findNodeWithVolume","setInvisibleAll","decodeOptions","macro","separ","script_name","pm","is_main","showtop","no_screen","getCamPart","neg","camx","camy","camz","camlx","camly","camlz","bckgr","show_controls","projectPos","use_worker","_yup","activateInBrowser","activateItems","testMatrixes","errcnt","totalcnt","totalmax","domatrix","getmatrix","copyStack","_clones","createObject3D","_toplevel","resolveStack","tm1","scanVisible","tm2","setAxesDraw","setShowTop","toggleWireFrame","changedHighlight","focusCamera","_geom_viewer","canRotateCamera","changeCanRotate","produceCameraUrl","isOrthoCamera","changeCamera","startDrawGeometry","changedGlobalTransparency","inherentOpacity","changedMaterial","inherentArgs","createMaterial","changeMaterialProperty","resetTransformation","changedTransformation","vect2","matrix0","vect0","vect1","minvert","box3","_flippedMesh","mm","drawAxesAndOverlay","changedAutoRotate","autorotate","changedAxes","_gui","_scene_width","makeLil","lil","getMaxVisNodes","getVisLevel","startRedraw","getGeomBoundingBox","getProjectionSource","clipFolder","naxis","axisC","changedClipping","light_pnts","changedLight","_pnts","changedUseFog","appearance","hcolor","material_props","addMaterialProp","ensureBloom","changedWireFrame","advanced","changedDepthTest","changedDepthMethod","showMaterialDocu","highlightMesh","_slave_painters","_fog","createCamera","createSpecialEffects","adjustCameraPosition","addOrbitControls","_bloomComposer","UnrealBloomPass","_scene_height","orbitContext","numitems","numnodes","geo_name","many","itemname","hdr","getStackName","getStackFullName","hidePhysicalNode","geo_object","$hidden_via_menu","accessObjectWireFrame","_last_manifest","_last_hidden","kindGeo","kindEve","testGeomChanges","setPhysNodeVisibility","geo_highlight","unique","clippedIntersects","clipped","_clipPlanes","testCameraPositionChange","_draw_all_nodes","createProjectionMatrix","createFrustum","CheckBox","mainitemname","addHighlightHandler","_highlight_handlers","active_mesh","geo_index","geo_stack","no_recursive","getExtrasContainer","obj3d","isSameStack","curr_mesh","_selected_mesh","get_ctrl","same","click_indx","setMouseTmout","setDepthMethod","_lookat","provideObjectInfo","nextDrawAction","startWorker","_worker_ready","numvis","_first_drawing","countVisibles","markVisibles","_current_face_limit","need_worker","collectVisibles","_new_draw_nodes","job","collect","getVisibleFlags","maxvisnodes","submitToWorker","_new_append_nodes","_draw_nodes","del","mergeVisibles","collectShapes","_build_shapes","mergeShapesLists","canSubmitToWorker","nfaces","countGeometryFaces","refcnt","buildShapes","tm0","_full_geom","build_instanced","createInstancedMeshes","createEntryMesh","server_shape","shapeid","_drawing_ready","doProjection","_splitColors","custom_color","appendMoreNodes","from_drawing","_provided_more_nodes","_more_nodes","cleanupShape","real_nodes","_clones_owner","extendCustomBoundingBox","_customBoundingBox","_adjust_camera_with_render","topitem","check_any","main_track","geom2","projectGeometry","absMatrix","mesh2","need_render","sizex","sizey","sizez","plights","_lights","ll","createOutline","_effectComposer","createScene","_overall_size","batch_format","_fit_main_area","_animating","doubleside","setDefaultColors","_startm","_last_render_tm","_last_render_meshes","_draw_nodes_again","continueDraw","resetAdvanced","getOverallSize","_camera0pos","roty","rotz","calculateZoom","keep_zoom","first_time","only_set","midx","midz","_scene_size","max_all","prev_zoom","orthoSign","orthoZ","orthoIndicies","orthoRotation","screen_ratio","szx","szy","setCameraPosition","preserve_zoom","setCameraPositionAndLook","lookx","looky","lookz","focusOnItem","findStackByName","autoClip","halfDelta","fDX","fDY","fDZ","oldTarget","posIncrement","targetIncrement","updateClipping","smoothFactor","speed","rotSpeed","completeScene","unqievis","clonetm","makeTime","tm","nshapes","countNumShapes","getNodeShape","last_str","drawExtras","is_any","mouseOverHierarchy","clearExtras","_extraObjects","addExtra","extraObjectVisible","itemFullName","add_objects","not_wait_render","do_render","parr","sname","ress","addToExtrasContainer","drawGeoTrack","drawEveTrack","drawHit","drawExtraShape","_extras","projv","projx","projy","projz","defaultOrder","line3d","nhits","hit_scale","_dummy","volumes","first_level","_searched","loadMacro","mgr","GetVolume","currnode","InvisibleAll","Draw","SetTransparency","fMaterial","SetLineColor","DefaultColors","SetMaxVisNodes","SetVisLevel","showProgress","assignClones","extractRawShapes","draw_msg","recreate","old_gradpersegm","ClonedNodes","formatServerElement","updateNode","name_prefix","getNodeName","setConfig","maxdepth","nsegm","geoCfg","visibles","rd","ri","createServerGeometry","prepareObjectDraw","draw_obj","_this7","did_cleanup","_start_drawing_time","fVisLevel","fMaxVisNodes","setVisLevel","setMaxVisNodes","hide_top_volume","uniquevis","produceIdShifts","spent","_on_pad","showDrawInfo","completeDraw","_num_meshes","take_time","_full_redrawing","testCameraPosition","drawOverlay","_last_camera_position","vect","_axis_flip","produceRenderOrder","measure","ret_promise","_render_resolveFuncs","last_render_tm","first_render_tm","_worker_jobs","tm3","processWorkerReply","core","sortmap","new_nodes","buf_pos","buf_norm","tm4","norender","res1","drawAxes","res2","xmin","xmax","ymin","ymax","tick_size","text_size","grid_gap","x_handle","TAxisPainter","configureAxis","y_handle","midZ","gridZ","lbl","text3d","createTextMesh","createTicks","major","textMaterial","show_grid","gridMaterial1","gridMaterial2","xticks","yticks","ortho","ckind","setSideRotation","_other_side","_axis_norm","other_side","setTopRotation","first_angle","_last_angle","_axis_name","lg","_no_clip","textbox","zox","setWireFrame","without_render","force_traverse","clip_constants","panels","clip_cfg","helper","PlaneHelper","_clipCfg","any_clipping","material_side","DoubleSide","FrontSide","setCompleteHandler","_complete_handler","close_progress","_this8","full_redraw","check_extras","isDrawingReady","removeDrawnNode","nodeid","isIdInStack","_context_menu","$geo_painter","slave","performResize","_did_update","clearDrawings","_redraw_timer","extras_path","is_eve","buildOverlapVolume","overlap","fMatrix1","fMatrix2","fTrans","fRGBA","createGeoPainter","add_settings","icon_get","getBrowserIcon","icon_click","browserIconClick","injectStyle","provideMenu","ScanEveVisible","skip_this","ToggleEveVisibility","ToggleMenuBit","toggleGeoBit","newname","drawitem","phys_vis","getPhysNodeVisibility","is_visible","changePhysVis","fShapeBits","fShapeId","_shape","getShapeIcon","_icon_click","drawDummy3DGeom","_drawDummy3DGeom","clTGeoBBox","fOrigin","geop","numfaces","res_mesh","res_faces","hide_top","Vertex","nz","setnormal","subtract","cross3","len2","Polygon","nsign","copyProperties","calculateProperties","vertice_count","classifyVertex","side_value","classifySide","polygon","num_positive","num_negative","classification","coplanar_front","coplanar_back","nnx","nny","nnz","tj","vj","polygons","divider","polygon_count","maxnodeid","collectPolygons","numPolygons","clipPolygons","clipTo","createBufferGeometry","buf_size","positions_buf","normals_buf","iii","CopyVertex","Geometry","transfer_matrix","flippedMesh","pos_buf","norm_buf","vert1","vert2","vert3","maxid","new_vertices","useVertexNormals","vertexNormals","other_tree","tryToCompress","foundpair","nreduce","direct_subtract","direct_union","direct_intersect","cut_from_plane","toPolygons","toBufferGeometry","toMesh","GradPerSegm","CompressComp","kVisOverride","kVisOneLevel","kVisStreamed","kVisTouched","kVisOnScreen","kVisContainers","kVisOnly","kVisBranch","kVisRaytrace","clTGeoArb8","clTGeoCone","clTGeoConeSeg","clTGeoTube","clTGeoTubeSeg","clTGeoCtub","clTGeoTrd1","clTGeoTrd2","clTGeoPara","clTGeoParaboloid","clTGeoPcon","clTGeoPgon","clTGeoShapeAssembly","clTGeoSphere","clTGeoTorus","clTGeoXtru","clTGeoTrap","clTGeoGtra","clTGeoEltu","clTGeoHype","clTGeoHalfSpace","clTGeoScaledShape","att","_warn_msgs","geoWarn","$geo_suffix","chlds","$geo_checked","cnts","produceNormal","z3","GeometryCreator","last4","startPolygon","stopPolygon","addFace4","x4","y4","z4","setNormal4","nx1","ny1","nz1","nx2","ny2","nz2","nx3","ny3","nz3","nx4","ny4","nz4","recalcZ","calcNormal","setNormal","setNormal_12_34","nx12","ny12","nz12","nx34","ny34","nz34","PolygonsCreator","mnormal","CsgVertex","v4","CsgPolygon","create8edgesBuffer","faces_limit","createTubeBuffer","outerR","innerR","fRmax2","fRmax1","fRmin2","fRmin1","fRmax","fRmin","hasrmin","fPhi1","fPhi2","radiusSegments","dphi","_sin","_cos","calcZ","fNlow","fNhigh","fDz","nxy","createMatrix","fTranslation","fRotationMatrix","fScale","fRotation","getNodeMatrix","kPatternReflected","_shift","fIndex","fStep","fTxz","fTyz","numGeometryFaces","CsgGeometry","createHalfSpace","geomBoundingBox","nvert","bsp1","bsp2","createNormal","axis_name","createGeometry","createCubeBuffer","createParaBuffer","txy","fTxy","txz","tyz","createTrapezoidBuffer","fDy1","fDy2","fDx1","fDx2","createArb8Buffer","fXY","n1","id2","id3","norm1","norm2","createSphereBuffer","fTheta1","fTheta2","noInside","fNseg","fNz","numoutside","numtop","numbottom","numcut","_sinp","_cosp","_sint","_cost","ss","createEltuBuffer","createTorusBuffer","fR","fDphi","_sinr","_cosr","n3","n4","center1","center2","tube1","tube2","createPolygonBuffer","fNedges","numusedlayers","rside","layerz","rad","cut_faces","rmin","rmax","normalz","createXtruBuffer","fNvert","scale1","scale2","fX0","x02","fY0","y02","pnt3","createParaboloidBuffer","fRlo","fRhi","zmin","zmax","fA","fB","ttmin","ttmax","lastz","lastr","lastnxy","lastnz","createHypeBuffer","fTin","fTout","tsq","fTinsq","fToutsq","createTessellatedBuffer","fFacets","fVertices","fIvert","fVec","createComposite","geom1","return_bsp","matrix1","matrix2","_exceed_limit","place","makeEveGeometry","vtxBuff","prefixBuf","idxBuff","makeViewerGeometry","useexp","fStIn","fStOut","cameraProjectionMatrix","corners","CheckShape","args0","opactity","compare_stacks","stack1","stack2","len1","createClones","_cfg","drawnodes","drawshapes","sublevel","createClonesForShape","_refid","sortarr","issimple","abs_matrix","$nfaces","sortid","plain_shape","on_screen","copy_bits","nochlds","idshift","scan_func","setVisibleFlags","do_clear","fVisibility","vislvl","seqid","matrices","mpool","vindx","varray","vstack","testPhysVis","node_vis","node_nochlds","withmatrix","subname","buildStackByIds","chindx","buildIdsByStack","getNodeIdByStack","currid","chldid","use_dflt_colors","dflt_table","kGray","kRed","kGreen","kBlue","kYellow","kMagenta","kCyan","kOrange","kSpring","kTeal","kAzure","kViolet","kPink","nmax","getDrawEntryProperties","nname","fillcolor","fillstyle","matZ","fDensity","three_prnt","draw_depth","nchld","$jsroot_drawable","$jsroot_depth","createFlippedMesh","geomZ","createFlippedGeom","$jsroot_order","draw_nodes","build_shapes","used_shapes","max_entries","entry0","arr1","arr2","stacks1","stacks2","mesh1","getVolumeBoundary","viscnt","facelimit","nodeslimit","sortidcut","facecnt","maxnumfaces","maxnumnodes","actual_level","minVol","maxVol","camVol","camFact","totalcam","oldlst","newlst","_geom","_geomZ","timelimit","notusedshapes","matr","nm","dpos","dnorm","newpos","newnorm","local_coordinates","setdefaults","minorder","maxorder","did_sort","tmp_vect","$jsroot_box3","$jsroot_distance","resort","$jsroot_index","ntry","chooseTimeFormat","awidth","AxisPainterMethods","initAxisPainter","full_min","full_max","scale_min","scale_max","cleanupAxisPainter","tfunc1","tfunc2","gr","assignFrameMembers","convertDate","timeoffset","revertPoint","formatTime","asticks","formatLog","rnd","vlog","logbase","moreloglabels","noexp","formatExp","formatNormal","superscript_symbols","axisAsText","poduceLogTicks","linearArray","sum1","sum2","dev","produceTicks","ndiv2","noticksopt","analyzeWheelEvent","dmin","test_ignore","delta_left","delta_right","dleft","dright","lmin","lmax","gmin","gmax","rx_left","rx_right","embedded","is_gaxis","invert_side","lbls_both_sides","getAxisType","smin","smax","noexp_changed","swap_side","fixed_ticks","maxTickSize","time_scale","getTimeOffset","dflt_time_offset","idF","sof","sec","msec","timegmt","getTimeGMT","axis_func","d3_scaleTime","logcheckmin","log_min_nz","logminfactor","createFuncHandle","d3_scaleLog","d3_scaleSymlog","d3_scaleLinear","nticks","nticks2","nticks3","gr_range","scale_range","tf2","tf1","d3_utcFormat","d3_timeFormat","regular_labels","formatLabels","getScaleMin","getScaleMax","tstr","only_major_as_array","optionNoexp","optionNoopt","optionInt","nminor","nmiddle","nmajor","minor","lbl_pos","doround","grpos","last_major","next_major_grpos","get_modifier","findLabelModifier","exclorder3","maxtick","mintick","ord1","ord2","bestorder","bestndig","bestlen","lbls","totallen","isCenteredLabels","addTitleDrag","title_g","offset_k","axis_length","new_x","new_y","sign_0","alt_pos","curr_indx","drag_rect","drag_move","d3_drag","title_length","title_align","titleCenter","titleOpposite","set_x","set_y","besti","axis2","source_axis","setBit","titleOffset","offsetScaling","titleSize","submitAxisExec","setHistPainter","hist_painter","hist_axis","only_gaxis","produceTicksPath","tickSize","ticksPlusMinus","secondShift","real_draw","nlabel","fLabValue","fLabNum","eps","drawLabels","axis_g","labelsFont","labeloffset","max_text_width","frame_ygap","center_lbls","rotate_lbls","label_g","tilt_angle","textscale","maxtextlen","applied_scale","lbl_tilt","any_modified","max_textwidth","max_tiltsize","process_drawtext_ready","textwidth","maxwidth","gap_before","gap_after","normal_side","lcnt","lastpos","fix_coord","fLabText","gap","axis_step","xoff","yoff","has_obstacle","extractDrawAttributes","scalingSize","pad_w","pad_h","titleColor","titleFontId","tickScalingSize","optionSize","optionUnlab","optionMinus","optionPlus","optionText","ticksSize","ticksColor","ticksWidth","labelSize","labelsOffset","titleFont","drawAxis","disable_axis_drawing","calculate_position","draw_lines","not_standard","axis_lines","disable_ticks","title_shift_x","title_shift_y","labelsMaxWidth","maxw","disable_zooming","rw","title_offest_k","xor_reverse","kShowToolBar","kShowEditor","kShowToolTips","directDrawTFrame","TFramePainter","_changed_layout","setLayoutKind","getLayoutKind","main_selector","changeLayout","layout_kind","mainid","sidebar2","sidebar","GridDisplay","getGridFrame","proj_painter","showUI5ProjectionArea","hist","hopt","drawopt","logx","logy","drawInUI5ProjectionArea","drawInSidePanel","testUI5","use_openui","showMessage","saveCanvasAsFile","fname","createImage","sendSaveCommand","_getmenu_callback","canSend","closeWebsocket","useWebsocket","setReceiver","websocketTimeout","_tmouts","onWebsocketOpened","onWebsocketClosed","embed_canvas","closeCurrentWindow","onWebsocketMsg","snap","syncDraw","resizeBrowser","fSnapshot","setFixedCanvasSize","_online_fixed_size","fFixedSize","redrawPadSnap","completeCanvasSnapDrawing","ranges","getWebPadOptions","confirmDraw","cmdid","showSection","edit","obj_painter","findSnap","winstate","sendResized","screenLeft","screenTop","ww","outerWidth","wh","outerHeight","clickPadButton","activateStatusBar","hasEventStatus","brlayout","hasStatus","getHPainter","hasStatusLine","canStatusBar","createStatusLine","msgs","hasGed","hasContent","removeGed","registerForPadEvents","ged_view","cleanupGed","deleteContent","getUi5PanelData","jsroot","_core_mjs__WEBPACK_IMPORTED_MODULE_0__","_base_ObjectPainter_mjs__WEBPACK_IMPORTED_MODULE_4__","rb","getColorExec","objpainter","selectObjectPainter","btns","createBrowserBtns","diamand","toggleKind","circle","setBrowserContent","setBrowserTitle","toggleBrowserKind","loadOpenui5","sap","JSONModel","XMLView","oModel","viewName","oGed","setModel","placeAt","padEventsReceiver","_all_sections_showed","_highlight_connect","processHighlightConnect","hints","doingDraw","hint","_last_highlight_msg","getStatusBits","createWebObjectOptions","fcust","fopt","pad_painter","click_pos","ischanged","is_button","padid","objid","dbl","is_active_pad","drawActiveBorder","produceJSON","fill0","subobj","fullW","fullH","resizeWindow","nocanvas","checkSpecialsInPrimitives","_fixed_size","createCanvasSvg","addPadButtons","drawPrimitives","showPadButtons","_ensureTCanvas","frame_kind","noframe","_drawTPadSnapshot","_x7","_drawTFrame","logminfactorY","setPainterTooltipEnabled","processFrameTooltipEvent","get_touch_pointers","$touch_arr","d3_pointers","getEarthProjectionFunc","DegToRad","alpha2","cdec","theta0","unzoomHistogramYRange","getDimension","draw_content","hmin","hmax","zoom_ymin","zoom_ymax","drag_kind","drag_painter","is_dragging","addDragHandler","makeResizeElements","addElement","no_change_x","no_change_y","isEditable","getDrawG","complete_drag","newx","newy","newwidth","newheight","oldx","oldy","minwidth","minheight","change_size","change_pos","no_transform","pad_rect","modified_NDC","move_resize","drag_move_off","detectRightButton","is_disabled","acc_x1","acc_y1","drag_tm","evnt_x","evnt_y","ctxmenu","showPainterMenu","skip_close","canselect","drag_resize","acc_x2","acc_y2","only_resize","only_move","TooltipHandler","hints_layer","isTooltipShown","tooltip_enabled","hintsg","nhints","nexact","maxlen","lastcolor1","usecolor1","textheight","frame_rect","pad_width","disable_tootlips","processPadTooltipEvent","_deliver_webcanvas_events","deliverWebCanvasEvent","hprev","path_name","same_path","show_only_best","coordinates","best_dist2","best_hint","dist2","frame_shift","iscan","viewmode","actualw","posx","hint_delta_x","bleft","gapy","gapminx","gapmaxx","minhinty","maxhinty","translateFn","was_empty","hint_delta_y","svgs","FrameInteractive","addBasicInteractivity","_frame_rotate","_frame_fixpos","_frame_x","_frame_y","getFrameWidth","getFrameHeight","sizeChanged","top_rect","main_svg","handlers_set","close_handler","mouse_handler","touch_handler","addFrameInteractivity","for_second_axes","svg_x2","svg_y2","showContextMenu","showAxisStatus","svg_x","svg_y","can_zoom_x","can_zoom_y","NoZoomX","NoZoomY","addFrameKeysHandler","zoom_kind","zoom_rect","zoom_origin","zoom_curr","startRectSel","mouseDoubleClick","mouseWheel","startTouchZoom","startSingleTouchHandling","keys_handler","processKeyPress","enabledKeys","enlargePad","zoomChangedInteractive","findPadButton","processFrameClick","dblckick","shiftMoveHanlder","_shifting_buttons","scales_ndim","_shifting_dx","_shifting_dy","shiftUpHanlder","performScalesShift","getGrFuncs","zoomSingle","clearInteractiveElements","$emul","zoom_lastpos","zoom_second","y2_handle","x2_handle","moveRectSel","endRectSel","startLabelsMove","processLabelsMove","zoom_labels","swap_xy","idy","namex","namey","fw","valid_x","valid_y","tmdiff","last_touch_time","last_touch_pos","endSingleTouchHandling","moveTouchZoom","endTouchZoom","xid","yid","second_side","handle2","isAllowedDefaultYZooming","self_drawaxes","subpainter","wheel_zoomy","itemx","reverse_x","itemy","reverse_y","cur","menu_painter","frame_corner","svg_node","ms","tch","v7_frame","bestdist","menu_dist","setLastEventPos","domenu","moveTouchHandling","tframe","$dummy","shrink_frame_left","ranges_set","axes_drawn","is_root6","xaxis","yaxis","shrinkFrame","shrink_left","shrink_right","fLastEventPnt","getLastEventPos","getProjectionFunc","recalculateRange","Proj","change_x","change_y","original_xmin","original_xmax","original_ymin","original_ymax","setAxesRanges","zaxis","check_pad_range","ndim","applyAxisZoom","_checked_zooming","minimum","zoom_zmin","zoom_zmax","maximum","setAxes2Ranges","second_x","second_y","x2axis","x2min","x2max","y2axis","y2min","y2max","getAxis","applyPadUserRange","umin","umax","aname","createXY","cleanXY","pad_logx","pad_logy","fLogv","extra_y_space","online_canvas","orig_x","orig_y","zoom_xmin","zoom_xmax","x_noexp_changed","symlog_y","symlog_x","y_noexp_changed","ymin_nz","setRootPadRange","createXY2","reverse_x2","reverse_y2","logx2","logy2","scale_x2min","scale_x2max","scale_y2min","scale_y2max","zoom_x2min","zoom_x2max","zoom_y2min","zoom_y2max","x2_noexp_changed","y2_noexp_changed","use_x2","grx2","use_y2","gry2","is3d","drawGrids","grid_style","colid","gridx","gridy","hasDrawnAxes","shrink_forbidden","disable_x_draw","disable_y_draw","AxisPos","has_x_obstacle","has_y_obstacle","cleanAxesDrawings","draw_horiz","draw_vertical","can_adjust_frame","pr1","getFrameY","ypos","drawAxes2","updateAttributes","z_handle","cleanFrameDrawings","frame_painter_ref","lm","fixpos","RotateFrame","FixFrame","_frame_width","_frame_height","changeAxisLog","toggleAxisLog","is_pal","faxis","member","fillPaletteMenu","addTAxisMenu","fillWebObjectOptions","getFrameX","zoom_x","zoom_y","zoom_z","unzoom_x","unzoom_y","unzoom_z","canZoomInside","unzoomUserRange","vmin","vmax","zoom_v","unzoom_v","isAxisZoomed","dox","doy","doz","zoom_changed_x","zoom_changed_y","zoom_changed_z","fld","taxis","hint_name","hint_title","axis_value","addKeysHandler","addInteractivity","kIsGrayscale","getButtonSize","has_canvas","toggleButtonsVisibility","this_pad_name","btn","btns_active_flag","PadButtonsHandler","alignButtons","sz0","nextx","btns_x","btns_y","keyname","found_func","removePadButtons","_buttons","_mouseenter","_mouseleave","isRoot6","svg_this_pad","main_painter_ref","_doing_draw","svg_p","custom_palette","_pad_x","_pad_y","_pad_width","_pad_height","_snap_primitives","_last_grayscale","_custom_colors","_custom_palette_indexes","_custom_palette_colors","cleanPrimitives","removePrimitive","prim","resindx","getCustomPalette","getNumPainters","getAutoColor","numprimitives","_num_primitives","_auto_color","indexes","_auto_palette","isGrayscale","palindx","colvalue","pad_events_receiver","what","padpainter","istoppad","svg_rect","is_active","highlight_gpad","setFastDrawing","was_fast","setGrayscale","_color_palette","check_resize","frect","render_to","padContextMenu","$dark","posy","item_name","isPadEnlarged","is_dblclick","is_escape","svg_can","pad_enlarged","hasObjectsToDraw","createPadSvg","pad_visible","pad_draw_disabled","svg_pad","svg_border","addPadInteractive","svg_border1","svg_border2","ph","side1","side2","_disable_dragging","scale_w","scale_h","shift_x","shift_y","disablePadDrawing","checkSpecial","CreatePalette","GlobalColors","LocalColors","IgnorePalette","findInPrimitives","objtype","fKind","findPainterFor","selobj","selname","seltype","pobj","_start_tm","spenttm","_primitive","drawNext","getSubPadPainter","nproc","SetPadField","buildLegend","fGridX","addSettingsMenu","hasMenuBar","actiavteMenuBar","sync_promise","showsubitems","redrawNext","needRedrawByResize","objp","_ignore_resize","_resize_tmout","lp","leg","prev_name","addObjectPainter","fObjectID","setSubSnaps","processSnapStyle","processSnapColors","ListOfColors","fOper","greyscale","fBuf","processSnapFont","processSpecialSnaps","drawNextSnap","_snaps_map","subpad","fActive","fReadOnly","_has_execs","fHasExecs","BrowserLayout","drawing_divid","registerForResize","fHighlightConnect","fScripts","matchPrimitive","class_name","obj_name","fWithoutPrimitives","isanyfound","isanyremove","$checked","old_painters","selobj_snapid","produceImage","is_top","scan_subpads","logz","tickx","ticky","mleft","mright","mtop","mbottom","xlow","xup","zx1","zx2","zy1","zy2","zz1","zz2","getPadRanges","ux1","px1","uy1","py1","ux2","px2","uy2","py2","uz1","uz2","itemContextMenu","rrr","selkind","selp","full_canvas","findActivePad","active_pp","file_format","_this9","btns_node","btns_prnt","btns_next","sz2","foreign","svg_frame","frame_node","frame_next","shown","prs","clickButton","addPadButton","is_online","fTickz","$OTX","$OTY","$CTX","$CTY","$RX","$RY","kTopFolder","getSizeStr","_drawList","draw_next","fFolders","fTasks","objectHierarchy","exclude","do_context","_do_context","ismap","cycle","_direct_context","_cycle","_keyname","keysHierarchy","dirname","fCycle","fObjlen","_readobj","fRealName","_realname","clTDirectory","clTDirectoryFile","getDir","fKeys","nameStreamerInfo","fStreamerInfos","_vclass","namelen","getUint8","nosimple","_nosimple","isarray","compress","lastitem","lastkey","lastfield","arrcompress","typ","alert","nextk","allsame","prevk","simple","inparent","createStreamerInfoContent","fClassVersion","fCheckSum","fArrayDim","fArrayLength","fMaxIndex","fBaseVersion","markAsStreamerInfo","createInspectorContent","_click_action","parseAsArray","nbr","nquotes","ndouble","onlineHierarchy","canExpandHandle","kindTFile","HierarchyPainter","frameid","backgr","with_icons","setBasicColors","files_monitoring","nobrowser","setHPainter","textcolor","clearHierarchy","fileHierarchy","fFileName","fFullURL","fEND","_file","_fullurl","_localfile","fLocalFile","_had_direct_read","readFileObject","findItem","last_exists","check_keys","each_item","find_in_hierarchy","process_child","ignore_prnt","localname","_online","newest","allow_index","rest","uptoparent","compact","executeCommand","getOnlineItemUrl","d3node","cmdargs","_numargs","showCommandArgsDialog","urlargs","reload","updateItems","_update_item","parentname","expandItem","newparentname","isLastSibling","addItemHtml","d3prnt","isroot","has_childs","d3cont","img1","img2","can_click","break_list","_icon2","_can_draw","can_menu","_show_limit","_d3cont","d3line","icon_class","plusminus","_isopen","d3icon","tree_click","icon_name","d3img","d3a","_break_point","enableDrag","tree_contextmenu","tree_mouseover","direct_contextmenu","element_name","element_title","_fullname","_background","d3p","d3chlds","show_overflow","toggleOpenState","isopen","promises","canExpandItem","change_child","refreshHtml","exapndToLevel","d3elem","injectHStyle","factcmds","status_item","fastbtns","d3btns","removeInspector","maindiv","status_disabled","_status","sdiv","adjustBrowserSize","updateBackground","scroll_into_view","itm","need_refresh","sett","aslink","isOnlineItem","dflt_expand","default_by_click","can_draw","pitem","isItemDisplayed","fill_context","tree_node","fillSettingsMenu","forEachRootFile","adjustSeparators","createStyle","disp","forEachFrame","toggleDarkMode","onlineprop","getOnlineProp","fileprop","getFileProp","fillOnlineMenu","addDrawMenu","active_frame","getActiveFrame","dropItem","localfile","filepath","qualifyURL","fileurl","arg0","applyStyle","getTopOnlineItem","isMonitoring","getMonitoringInterval","disp_kind","_opt","player_func","_module","hh","importModule","_prereq","loadScripts","createDisplay","canDisplay","mdi","getDisplay","findFrame","interactive","display_itemname","updating","frame_name","respainter","_doing_update","use_dflt_opt","did_actiavte","itemopt","activateFrame","dataTransfer","setData","enableDrop","ditem","clearDrop","drop_complete","drop_painter","is_main_painter","accept_drops","cleanupFrame","allitems","only_auto_items","want_update_all","forced","fitem","displayItems","_this10","disp_frameid","dropitems","dropopts","can_split","frame_names","items_wait","found_main","createFrame","dropNextItem","_one_by_one","processNext","_this11","openOnline","mark_active","find_next","prev_found","now_found","browser_kind","createBrowser","browser_visible","toggleBrowserVisisbility","silent","_this12","doExpandItem","_doExpandItem","_inspector","forEachJsonFile","openJsonFile","_this13","isfileopened","_jsonfile","_jsontmp","h0","openRootFile","_this14","_topname","listServerDir","_this15","_url","_exapnd","_this16","st","fURL","getOnlineItem","_this17","h_get","req_kind","draw_handle","_make_request","make_request","dreq","_cached_draw_object","itemreq","handleAfterRequest","_after_request","after_request","server_address","_this18","adoptHierarchy","v6_modules","v7_imports","_autoload","_drawopt","_drawfunc","_drawscript","server","root_type","setHierarchy","setMonitoring","monitor_on","_runMonitoring","_monitoring_interval","_monitoring_on","_monitoring_handle","_monitoring_frame","setDisplay","register_resize","getLayout","withbrowser","plainarr","enableMonitoring","_this19","numDraw","BatchDisplay","FlexibleDisplay","TabsDisplay","setInitFrame","createCustomDisplay","custom_kind","_this20","updateOnOtherFrames","checkMDIResize","use_inject","addUserStreamer","_io_mjs__WEBPACK_IMPORTED_MODULE_2__","Ub","_draw_mjs__WEBPACK_IMPORTED_MODULE_7__","uA","$2","startGUI","gui_div","_this21","getOption","getOptionAsArray","canarray","getUrlOptionAsArray","filesdir","jsonarr","expanditems","focusitem","drop_items_one_by_one","filesarr","itemsarr","optionsarr","statush","browser_configured","no_select","exclude_browser","float_browser_disabled","start_without_browser","openAllFiles","getCachedHierarchy","_browser","_monitoring","_loadfile","_drawitem","_layout","_toptitle","prepareGuiDiv","myDiv","three_circles","_this22","_streamer_info","update_html","_this23","guiCode","arrFiles","readSelectedFile","initializeBrowser","selects","chkbox","_x8","_drawStreamerInfo","_drawInspector","expand_level","ddom","getPrimaryObject","first_hpainter","MDIDisplay","active_frame_title","initFrame","beforeCreateFrame","afterCreateFrame","only_visible","searchtitle","found_frame","only_frame_id","resized_frame","kind2","framecnt","getcnt","use_separarators","simple_layout","sizes","chld_sizes","match_sizes","createGroup","childs","childs_sizes","drawid","createSeparator","handleSeparator","findGroup","setGroupSize","resizeGroup","posSepar","needResize","needSetSize","startpos","acc_drag","pthis","numGridFrames","maxloop","modifyTabsFrame","frame_id","selected_frame","other_frame","is_same","active_color","was_active","draw_frame","getFrameState","changeFrameState","newstate","no_redraw","crossX","crossY","maxx","iscrossed","_clickButton","moving_frame","moving_div","doing_move","drag_object","changeProp","minimizeAll","showAll","closeAllFrames","sortFrames","nummin","jsdom_body","numFrames","makeJSON","makeSVG","clear_element","drawing","bkgr_color","text_color","input_style","with_browser","removeBrowserBtns","keep_status","status_layout","status_handler","left_pos","separ_color","hsepar","_hsepar_move","_hsepar_position","last_hsepar_height","frame_titles","vsepar","hlimit","maxh","_vsepar_position","first_check","fast_close","tgt_separ","tgt_drawing","mainw","visible_at_the_end","setButtonsPosition","onlycheckmax","_float_left","_float_top","_max_left","_max_top","sw","_float_width","_float_height","_max_width","_max_height","_vsepar_move","kToFront","JSRootMenu","menuname","show_event","show_evnt","remove_handler","getEventPosition","top_name","call_back","without_sub","_use_plain_text","addColorMenu","set_func","fill_kind","useid","ncolumn","nrow","addSizeMenu","size_value","miss_current","addPaletteMenu","addRebinMenu","rebin_func","addSelectMenu","use_number","addRColorMenu","fillcol","coltxt","addRAttrTextItems","fontHandler","noangle","addLineStyleMenu","addFillStyleMenu","addFontMenu","qual","outerHTML","addAlignMenu","hnames","vnames","preffix","with_hierarchy","handle_func","pal","setStyleField","addStyleIntField","fnt","ofset","selectgStyle","readSettings","confirm","saveSettings","saveStyle","runModal","main_content","dlg_id","fValue","fDefault","cmdname","resargs","StandaloneMenu","_buildContextmenu","loc","outer","container_style","deleteElems","getElementsByClassName","need_check_area","ncols","hr","hovArea","chk","changeFocus","extraText","prevHovArea","docWidth","docHeight","dimensionsLoc","dimensionsOuter","woffset","oldmenu","createModal","modal","_done","setContent","btn_text","assignContextMenu","_modalProgress","click_handle","tryOpenOpenUI","ui5dbg","openui5libs","openui5theme","_loadOpenui","rootui5sys","openui5src","openui5_sources","openui5_dflt","openui5_root","completeUI5Loading","rootui5","disk","question","undo","arrow_right","arrow_up","arrow_diag","auto_zoom","statbox","vrgoggles","th2colorz","recs","th2color","th2draw3d","use_dark","opacity0","myInterval","myDelay","ResizeTimer","addMoveHandler","not_changed","move_disabled","moveEnabled","moveStart","moveDrag","moveEnd","saveCookie","expires","toUTCString","only_check","readCookie","ca","_saveFileFunc","getBinFileContent","svg_prefix","_saveFile","proivdeEvalPar","check_save","$math","jsroot_math","_func","isformula","pprefix","pair","parvalue","fSave","replaceAll","evalPar","_getTF1Save","np","getTF1Value","skip_eval","iserr","produceTAxisLogScale","$func","isTF1","getHisto","webcanv_hist","updateAxes","createTF1Histogram","scanContent","_use_saved_points","force_saved","ensureBins","_fail_eval","fNpx","iserror","custom_xaxis","mp","extractAxesProperties","nsave","nb_points","getTF1Tooltips","$tmp_tooltip","funcs","ttrect","THistPainter","_drawHist","TH1Painter2D","draw3D","zmult","resize3D","createHistDrawAttributes","assignFrame3DMethods","x3dscale","y3dscale","Ortho","set3DOptions","drawXYZ","Axis","drawany","isCartesian","drawBinsLego","updateStatWebCanvas","drawColorPalette","Zscale","Lego","drawHistTitle","updateFunctions","TH2Painter2D","gmaxbin","gminposbin","gminbin","RevX","RevY","isTH2Poly","drawTH2PolyLego","pmain","axis_zmin","axis_zmax","fBins","maxbin","minbin","minposbin","cntr","getContour","getHistPalette","fContent","getPaletteIndex","fYmin","fYmax","all_pnts","all_faces","ngraphs","fPoly","ngr","dist2limit","add3DMesh","draw_z0","draw_z1","tip_color","use_itself","getPolyBinTooltips","Contour","drawBinsContour3D","Surf","drawBinsSurf3D","drawBinsError3D","getContourLevels","when_axis_changed","bin_content","transferFunc","countStat","cond","count_skew","getSelectIndex","j1","j2","eff_entries","meanx","meany","meanz","rmsx","rmsy","rmsz","skewx","skewy","skewz","skewd","kurtx","kurty","kurtz","kurtd","has_counted_stat","yi","zi","xside","yside","zside","stat_sum0","stat_sumw2","stat_sumx1","stat_sumy1","stat_sumz1","stat_sumx2","stat_sumy2","stat_sumz2","GetBinCoord","sumx3","sumy3","sumz3","sumx4","sumy4","sumz4","stddev3x","stddev3y","stddev3z","stddev4x","stddev4y","stddev4z","fillStatistic","dostat","dofit","isIgnoreStatsFill","print_name","print_entries","print_mean","print_rms","print_integral","print_skew","print_kurt","clearPave","addText","fillFunctionStat","getBinTooltips","getAxisBinTip","errz","draw3DScatter","coef","content_lmt","numpixels","sumz","nbin","get3DToolTip","draw3DBins","box_option","Box","BoxStyle","Scat","GLBox","GLColor","single_bin_verts","single_bin_norms","buffer_size","use_lambert","use_helper","use_colors","use_opacity","exclude_content","logv","use_scale","scale_offset","tipscale","nn","_box_option","get_bin_weight","scalex","scaley","scalez","cols_size","cols_sequence","wei","nbins","num_colors","getOpacityIndex","bin_opactity","cols_nbins","bin_verts","bin_norms","bin_tooltips","helper_kind","helper_indexes","helper_positions","nseq","bin_v","bin_n","vvv","helper_segments","helper_i","helper_p","all_bins_buffgeom","combined_bins","bins_faces","get_weight","helper_material","fillToolbar","FindBin","autoZoom","ileft","iright","jleft","jright","kleft","kright","fillHistContextMenu","checkPadRange","createStat","drawFunctions","kTakeStyle","pave","Enabled","UseContextMenu","autoPlaceLegend","svg_code","rm","nX","nY","boxW","boxH","raster","filled","legWidth","legHeight","needW","needH","drawPave","interactive_element","AutoPlace","isStats","NoFillStats","$main_painter","nlines","moved_interactive","isDefaultStatPosition","extrah","_has_fit","_fit_dim","_fit_cnt","stath","statw","brd","noborder","_pave_x","_pave_y","dpath","text_g","drawPaveText","fNpaves","scol","spath","paveDrawFunc","paveContextMenu","interactivePaletteAxis","drawPaveLabel","drawPaveStats","first_stat","num_cols","stepy","margin_x","has_head","max_hlen","_expected_width","_args","lpath","ncol","_dummy_arg","pad_height","draw_header","num_default","nline","texty","halign","sub_g","lx1","lx2","ly1","ly2","bx1","bx2","by1","by2","lbl_g","lastformat","drawLegend","legend","nrows","custom_textg","column_pos","column_weight","icol","sum_weight","padding_x","padding_y","step_y","text_promises","any_opt","tsz","lopt","irow","column_width","tpos_x","mid_x","pos_y","mid_y","mo","draw_fill","draw_line","draw_error","draw_marker","o_fill","o_marker","o_line","endcaps","edx","ErrorKind","getGraph","Ends","eoff","ey1","ey2","edy","pos_x","entry_font_size","drawPaletteAxis","s_width","s_height","can_move","postpone_draw","cjust","framep","getLevels","is_th3","draw_palette","sizek","gzmin","gzmax","axis_transform","axis_second","_palette_vertical","_swap_side","getPaletteColor","doing_zoom","sel1","sel2","addStatOpt","oldopt","newopt","isTitle","print_fval","print_ferrors","print_fchi2","print_fprob","fChisquare","fNDF","parname","parerr","isDummyPos","oldprim","oldobj","newobj","canDraw","tpainter","createTextGeometry","stroke_width","TextParseWrapper","getN","total_size","fullgeom","testAxisVisibility","fb","axis_draw","qudrant","testVisible","handleZoomMesh","zid","xyid","xyboxid","zboxid","convertLegoBuf","binsx","binsy","System","kCARTESIAN","kx","kPOLAR","kCYLINDRICAL","kSPHERICAL","kRAPIDITY","createLegoGeom","create3DCamera","pointLight","kz","max3dx","max3dy","camera_Theta","camera_Phi","create3DControl","frame_painter","zoom_mesh","handle_tooltip","delta_y","delta_z","highlightBin3D","tooltip_mesh","newtop","scene_x","scene_y","change3DCamera","has_control","the_only","remove3DMeshes","usesvg","opt3d","FrontBox","BackBox","processRender3D","handleRender3D","selfmesh","want_remove","changed_self","mainp","tooltip_selfmesh","save_color","$painter","$projection","redrawProjection","AxisPainter","v7","grminx","grmaxx","grminy","grmaxy","grminz","grmaxz","y_zoomed","z_zoomed","lego_zmin","lego_zmax","reverse_z","textMaterials","lineMaterials","zticks","text_scale","getLineMaterial","getTextMaterial","maxtextheight","is_major","draw_width","draw_height","offsety","opposite","createZoomMesh","size_3d","tgtmesh","xtickslines","xcont","offsetx","yticksline","ycont","zgridx","zgridy","lastmajorz","maxzlblwidth","lines1","zcont","zticksline","posz","linex_material","linex_geom","liney_material","liney_geom","linez_material","linez_geom","convert3DtoPadNDC","fpainter","vnormals","rsegments","rvertices","prepareDraw","rounding","use3d","test_cutg","cutg","basehisto","$baseh","split_faces","use16indx","binz1","binz2","reduced","nobottom","notop","jj","BaseLine","Zero","_show_empty_bins","createContour","full_z_range","nlevel","grzmin","grzmax","numvertices","num2vertices","face_to_bins_index","face_to_bins_indx2","xbar1","xbar2","ybar1","ybar2","bin_index","rootcolor","fcolor","is_projection","numlinevertices","numsegments","uselineindx","lpositions","lindicies","lcolor","binerr","nsegments","lpos","binindx","lindx","loop","intersect_index","realz","buildHist2dContour","iminus","iplus","ilevel","main_grz","main_grz_max","ilevels","dolines","need_palette","donormals","dogrid","grz_min","grz_max","buildSurf3D","normindx","beg","sumx","sumy","kk","isgrid","lastcolindx","PadDrawOptions","convertTH1K","fReady","fNIn","isTH1K","scan_xleft","scan_xright","isTProfile","hmin_nz","hsum","stat_entries","set_zoom","ohmin","ohmax","BarStyle","wmax","stat_sumw","stat_sumwx","stat_sumwx2","stat_sumwy","stat_sumwy2","sum3","sum4","stddev3","stddev4","print_under","print_over","drawBars","show_text","Text","text_col","text_angle","grx1","gry1","bars","barsl","barsr","TextAngle","drawFilledErrors","bins1","bins2","yerr","drawNormal","want_tooltip","exclude_zero","show_errors","show_curve","text_profile","TextKind","grpnts","startx","startmidx","curry_min","curry_max","prevx","bestimin","bestimax","yerr1","yerr2","bincont","mx1","mx2","lx","ly","mmx1","mmx2","lastbin","show_markers","Mark","show_line","path_fill","path_err","path_marker","path_line","hints_err","hints_marker","hsz","do_marker","do_err","dend","dlw","MarkStyle","draw_markers","draw_any_but_hist","draw_hist","Hist","use_minmax","extract_bin","draw_errbin","errorX","he1","he2","draw_bin","fill_for_interactive","add_hist","close_path","gry0","draw1DBins","Bar","tips","xlbl","Mode3D","show_rect","findbin","gapx","pnt_x","pnt_y","GetBinGrX","GetBinGrY","descent_order","msize","need_fillcol","rebinHist","xbins","callDrawFunc","copyOptionsFrom","draw2D","clear3DScene","contour_func","xarr","yarr","itarr","nlevels","last_level","polys","zc","ir","arrx","arry","ipoly","ljfill","xsave","ysave","itars","jx","lj","npmax","LevelSearch","PaintContourLine","elev1","icont1","elev2","icont2","tlen","tdif","xlen","pdif","elev","icount","maxii","kMAXCONTOUR","kMAXCOUNT","polysort","has_func","nadd","istart","Triangles3DHandler","posbuf","posbufindx","pntbuf","gridpnts","levels_eps","ngridsegments","gindx","pntindx","lastpart","gridcnt","checkSide","level1","level2","addCrossingPoint","xx1","yy1","xx2","yy2","crossz","with_grid","rememberVertex","createNormIndex","createBuffers","addLineSegment","addMainTriangle","is_first","side3","side_sum","callFuncs","meshFunc","linesFunc","origx","origy","z11","z12","z21","z22","tt_handle","widthX","widthY","ws","ps","projection_widthX","projection_widthY","proj_hist","new_proj","ii1","ii2","jj1","jj2","doing_projection","createXProject","createYProject","fillProjectHist","proj_hist2","kinds","toggleColor","toggleColz","toggleMode3D","_can_move_colz","copyOptionsToOthers","xleft","xright","yleft","yright","numgraphs","numpoints","drawBinsColor","show_empty","can_merge_x","can_merge_y","is_zero","last_entry","skip_zero","flush_last_entry","cmd1","ddx","ddy","cmd2","drawBinsProjected","nozoom","drawBinsContour","frame_w","frame_h","get_segm_intersection","segm1","segm2","s10_x","s10_y","s32_x","s32_y","denomPositive","s02_x","s02_y","s_numer","t_numer","buildPath","do_close","check_rapair","get_intersect","segm","hide_only_zeros","createPolyBin","text_pos","grcmd","_sumx","_sumy","_suml","nexty","poscmd","_midx","_midy","drawPolyBinsColor","colPaths","textbins","drawBinsText","profile2d","show_err","TextLine","text_offset","binw","binh","lble","drawBinsArrow","makeLine","dxn","dyn","anr","co","dn","drawBinsBox","absmax","absmin","absz","zdiff","xyfactor","btn1","btn2","uselogz","logmin","logmax","pww","phh","drawBinsCandle","kNoOption","isOption","parseOption","is_candle","fallbackCandle","kBox","fallbackViolin","kMeanCircle","kHorizontal","Candle","Violin","swapXY","proj","dashed_lines","hists","hlines","cmarkers","attrcmarkers","scaledViolin","scaledCandle","maxContent","maxIntegral","Scaled","kHistoRight","kHistoLeft","kHistoViolin","make_path","make_marker","kPointsAllScat","make_cmarker","candle","wRange","bRange","prob","produceCandlePoint","bin_indx","grx_left","grx_right","xindx1","xindx2","extractQuantiles","quantiles","nextv","fBoxDown","fMedian","fBoxUp","iqr","fWhiskerDown","fWhiskerUp","kWhisker15","fMean","fMedianErr","candleWidth","histoWidth","x1d","x2d","ff","y0m","kHistoZeroIndicator","kMedianLine","kMedianNotched","kMedianCircle","kMeanLine","kAnchor","kWhiskerAll","kPointsOutliers","kPointsAll","show_all","show_scat","marker_x","marker_y","prev_x","prev_y","curr_x","curr_y","hline_color","drawBinsScatter","pixel_density","cell_w","cell_h","ScatCoef","ScatterPlot","npix","getContourIndex","pattern_id","draw2DBins","_hide_frame","Arrow","drawBinsCircular","getBinLabel","max_value","min_value","pj","drawBinsChord","fullsum","isint","formatValue","d3_descending","lstep","d3_chord","d3_arc","d3_ribbon","groupTick","formatTicks","getCandleTooltips","realx","realy","binname","foundindx","binid","pwx","pwy","completePalette","Zvert","Cjust","canHavePalette","Chord","THistDrawOptions","SymlogX","SymlogY","Same","Func","AllFunc","Char","Tri","Spec","Pie","PadPalette","Project","AutoColor","NoStat","ForceStat","PadStats","PadTitle","AutoZoom","HighRes","Optimize","adjustFrame","IgnoreMainScale","decodeSumw2","hdim","orginal","cutg_name","$redraw_pad","ominimum","omaximum","ForceTitle","optstat","optfit","check3dbox","histoFillColor","histoFillPattern","histoLineColor","has_main","_pfc","_plc","_pmc","check_axis_bit","is_main_hist","zopt","StatEnabled","HistContour","colzmin","colzmax","below_min_indx","exact_min_indx","log_scale","zminpositive","custom","createCustom","configIndicies","below_min","exact_min","zindx","pindx","FunctionsHandler","statpainter","update_painters","only_draw","newfuncs","newopts","needDrawFunc","funcpainter","func_indx","_extraPainters","func_secondary_id","kUserContour","kNoTitle","use_pad","only_check_auto","icolor","$num_histos","_auto_exec","tgt_histo","src_histo","copyTAxisMembers","copy_zoom","findStat","_funcHandler","changed_opt","histogram_updated","assignTAxisFuncs","regular","binwidth","disable_axis_draw","processOnlineChange","toggleTitle","draw_title","tp","processTitleChange","toggleStat","has_stats","create_stats","$custom_stat","addFunction","type_name","asfirst","unzoomTAxis","uzoomMinMax","ismain","second_axis","changeUserRange","changeValuesRange","not_shown","custom_levels","force_recreate","apply_min","zminpos","only_palette","pal_painter","found_in_func","$can_move","$generated","fLineSyle","do_redraw_palette","_palp","need_redraw","fXYNDC","binarea","clTStreamerElement","clTStreamerObject","clTStreamerSTL","clTBasket","clTDatime","kChar","kShort","kInt","kLong","kFloat","kCounter","kCharStar","kDouble","kDouble32","kLegacyChar","kUChar","kUShort","kUInt","kULong","kBits","kLong64","kULong64","kBool","kFloat16","kBase","kOffsetL","kOffsetP","kObject","kAny","kObjectp","kObjectP","kTString","kTObject","kTNamed","kAnyp","kAnyP","kSTLp","kSTL","kStreamer","kStreamLoop","kByteCountMask","kNewClassTag","kClassMask","kStreamedMemberWise","kNotSTL","kSTLvector","kSTLlist","kSTLdeque","kSTLmap","kSTLmultimap","kSTLset","kSTLmultiset","kSTLbitset","BasicTypeNames","StlNames","kIsReferenced","kHasUUID","CustomStreamers","TObject","ntou4","ntou2","TNamed","basename","classStreamer","readTString","TObjString","TClonesArray","ver","last_read_version","classv","clv","nobjects","fLowerBound","streamer","fFile","getStreamer","getSplittedStreamer","TMap","readObjectAny","TTreeIndex","fMajorName","fMinorName","ntoi8","fIndexValues","readFastArray","fIndexValuesMinor","TRefArray","nobj","ntoi4","fUIDs","TCanvas","ntou1","ntoi2","TObjArray","TPolyMarker3D","TPolyLine3D","TStreamerInfo","TStreamerElement","fSize","fFactor","ntod","nbits","parse_range","bigint","TStreamerBase","TStreamerSTL","fSTLtype","fCtype","TStreamerSTLstring","TList","THashList","TStreamerLoop","fCountVersion","fCountName","fCountClass","TStreamerBasicPointer","TStreamerObject","TStreamerBasicType","TStreamerObjectAny","TStreamerString","TStreamerObjectPointer","TStreamerObjectAnyPointer","TTree","$file","RooRealVar","_asymErrLo","_asymErrHi","_binning","_sharedProp","RooAbsBinning","RooCategory","RooLinkedList","TImagePalette","fNumPoints","fColorRed","fColorGreen","fColorBlue","fColorAlpha","TAttImage","fImageQuality","fImageCompression","fConstRatio","fPalette","TASImage","fVersion","fPngBuf","fWidth","fHeight","fImgBuf","TMaterial","ntof","fRadLength","fInterLength","TMixture","fNmixt","fAmixt","fZmixt","fWmixt","TVirtualPerfStats","TMethodCall","user_streamer","DirectStreamers","TQObject","TGraphStruct","TGraphNode","TGraphEdge","TDatime","fDatime","TKey","fNbytes","fKeylen","fSeekKey","ntou8","TDirectory","fDatimeC","fDatimeM","fNbytesKeys","fNbytesName","fSeekDir","fSeekParent","fSeekKeys","TBasket","readVersion","fNevBufSize","fNevBuf","ntoi1","fEntryOffset","kDisplacementMask","fDisplacement","fBufferRef","TBuffer","fTagOffset","TRef","fUUID","fPID","TMatrixTSym","fNelems","fNrows","fNcols","TMatrixTSym","getTypeId","typname","norecursion","createStreamerElement","fBasicTypes","stltype","stl","isptr","getArrayKind","getPairStreamer","findStreamerInfo","GetNextName","readelem","pair_name","createMemberStreamer","arrlength","minus1","readNdimArray","readFastString","cntname","double32","theExp","theMan","getFloat32","readarr","classname","arrkind","checkByteCount","isptrptr","readitem","read_loop","buf2","member2","itemarr","branch_func","stl_size","loop0","objs_branch_func","name0","obj1","conttype","typeid","readVectorElement","$fictional","submember","pairtype","readMapElement","read_version","member_wise","stl_version","checksum","split_func","addClassMethods","_buf","zip_WSIZE","zip_MASK_BITS","zip_cplens","zip_cplext","zip_cpdist","zip_cpdext","zip_border","ZIP_inflate","zip_slide","zip_inflate_data","zip_inflate_datalen","zip_fixed_td","zip_fixed_bl","zip_fixed_bd","zip_td","zip_bl","zip_bd","zip_wp","zip_fixed_tl","zip_bit_buf","zip_bit_len","zip_method","zip_eof","zip_copy_leng","zip_copy_dist","zip_tl","zip_inflate_pos","zip_NEEDBITS","zip_GETBITS","zip_DUMPBITS","zip_HuftBuild","BMAX","rr","pidx","zip_inflate_codes","zip_inflate_stored","zip_inflate_fixed","zip_inflate_dynamic","nl","nd","zip_inflate_internal","LZ4_uncompress","eIdx","literals_length","R__unzip","_R__unzip","tgtsize","noalert","src_shift","checkChar","symb","getCode","fullres","tgtbuf","nextPortion","CHKSUM","HDRSIZE","srcsize","uint8arr","tgt8arr","_ZstdStream","ZstdInit","ZstdStream","data2","reslen","lzma","expected_len","clearObjectMap","locate","getMappedObject","fObjectMap","mapObject","mapClass","fClassMap","getMappedClass","bytecnt","last_read_checksum","where","codeAt","getUint16","BigInt","getInt8","getInt16","getInt32","getFloat64","array_type","canExtract","maxindx","readTKey","readBasketEntryOffset","basket","nentries","readClass","classInfo","bcnt","objtag","clTag","clRef","dir_name","dir_cycle","only_direct","bestkey","dirkey","newdir","readKeys","objbuf","nkeys","fDirectories","TFile","fAcceptRanges","fUseStampPar","fFileContent","fMaxRanges","fSeekInfo","fNbytesInfo","fStreamers","fSkipHeadRequest","assignFileContent","bufArray","_open","progress_callback","first_block","blobs","read_callback","first_req","first_block_retry","send_new_request","fullurl","totalsz","sum_total","progress_offest","progress_this","ismulti","hdr_range","segm_start","segm_last","canbe_single_segment","code1","code2","finish_header","getFileName","readObjBuffer","blob1","only_dir","isdir","_readFormulas","extractStreamerInfos","fBEGIN","fSeekFree","fNbytesFree","fUnits","fCompress","nbytes","blob3","buf3","buf4","si_key","blob6","readDirectory","clversion","s_i","nowarning","member_ver","member_checksum","member_streamer","TLocalFile","TNodejsFile","fd","fstatSync","readfunc","_err","_bytesRead","FileProxy","getFileSize","TProxyFile","AddEquation","sRGBEncoding","sc","Jh","Zh","legacyMode","encoding","sqrt1u1","sqrtu1","u3","_vector$4","_quaternion$1","_position$1","_scale","_quaternion","childResult","_box","_vector$3","nVertices","_vector$2","_v3","warnedGetUV","getUV","_ray$4","HAS_ATTRIBUTE_UV1","HAS_ATTRIBUTE_UV2","HAS_ATTRIBUTE_UV3","isWebGLMultipleRenderTargets","ye","tempValues","cachedObjects","infos","boneTextureSize","physicallyCorrectLights","outputEncoding","_vector","Box2","isBox2","x_min","x_max","$","xMin","xMax","original_font_information","postscript_name","version_string","vendor_url","full_font_name","font_family_name","copyright","description","trademark","designer","designer_url","unique_font_identifier","license_url","license_description","manufacturer_name","font_sub_family_name","json1","ascender","cssFontStyle","cssFontWeight","underlinePosition","descender","resetOrthoPanZoom","updateMouseParameters","LuminosityHighPassShader","luminosityThreshold","smoothWidth","defaultColor","defaultOpacity","renderTargetsHorizontal","renderTargetsVertical","nMips","renderTargetBright","renderTargetHorizonal","renderTargetVertical","highPassShader","highPassUniforms","materialHighPassFilter","separableBlurMaterials","kernelSizeArray","compositeMaterial","getCompositeMaterial","blurTexture1","blurTexture2","blurTexture3","blurTexture4","blurTexture5","bloomStrength","bloomRadius","bloomFactors","bloomTintColors","blendMaterial","inputRenderTarget","KERNEL_RADIUS","gaussianCoefficients","NUM_MIPS","RenderableObject","RenderableFace","RenderableVertex","normalModel","vertexNormalsModel","vertexNormalsLength","positionWorld","positionScreen","RenderableLine","RenderableSprite","Projector","_objectCount","_vertexCount","_face","_faceCount","_line","_lineCount","_sprite","_spriteCount","_modelMatrix","_objectPoolLength","_vertexPoolLength","_facePoolLength","_linePoolLength","_spritePoolLength","_renderData","_vector4","_clipBox","_points3","_viewMatrix","_viewProjectionMatrix","_modelViewProjectionMatrix","_objectPool","_vertexPool","_facePool","_linePool","_spritePool","RenderList","projectVertex","invW","checkTriangleVisibility","checkBackfaceCulling","setObject","getNextVertexInPool","pushNormal","pushColor","pushUv","pushLine","clipLine","alpha1","bc1near","bc2near","bc1far","bc2far","getNextLineInPool","pushTriangle","getNextFaceInPool","addObject","getNextObjectInPool","pushPoint","getNextSpriteInPool","painterSort","projectScene","sortElements","_elements","_svgWidth","_svgHeight","_svgWidthHalf","_svgHeightHalf","_v2","_svgNode","_currentPath","_currentStyle","_pathCount","_precision","_quality","_elemBox","_diffuseColor","_ambientLight","_directionalLights","_pointLights","_centroid","_normalViewMatrix","_svgPathPool","_projector","_svg","removeChildNodes","renderSprite","addPath","renderLine","renderFace3","calculateLight","lightColor","lightPosition","idet","flushPath","getPathNode","overdraw","setQuality","calculateLights","isSVGObject","kLeafNode","kBaseClassNode","kObjectNode","kClonesNode","kSTLNode","kClonesMemberNode","kSTLMemberNode","kDoNotUseBufferMap","clTBranchElement","TSelector","_branches","_directs","_break","tgtobj","addBranch","branch","numBranches","getBranch","indexOfBranch","nameOfBranch","ShowProgress","Abort","Begin","Process","Terminate","checkArrayPrototype","check_content","ArrayIterator","fastindx","fastlimit","fastarr","produce","getBranchObjectClass","with_clones","with_leafs","fID","fStreamerType","fClonesName","s_elem","findBrachStreamerElement","findBranchComplex","only_search","top_search","fBranches","brname","getTreeBranch","findBranch","TDrawVariable","globals","brindex","branches","brarray","only_branch","branch_mode","is_start_symbol","is_next_symbol","arriter","repl","objclass","subvar","direct_branch","is_dummy","$globals","arrs","usearrlen","iter","var0","appendArray","tgtarr","TDrawSelector","histo_drawopt","hist_name","hist_title","hist_args","arr_limit","htype","monitoring","last_progress","aver_diff","setCallback","result_callback","parseParameters","intvalue","numentries","firstentry","dump","hist_nbins","want_hist","harg","isok","dump_values","reallocate_objects","parseDrawExpression","parse_expr","parse_cut","nbr1","nbr2","ProcessArrays","ProcessArraysFunc","drawOnlyBranch","leaf","copy_fields","fLeaves","ProcessDump","lasttm","getBitsBins","getMinMaxBins","axisid","similar","maxbits","fNbits","fill1DHistogram","fillTBitsHistogram","FillBitsHistogram","isinteger","GetBin","set_hist","createOutputObject","fill2DHistogram","fill3DHistogram","dumpValues","$hist","var1","var2","xvalue","fAllBits","yvalue","xbin","ybin","zvalue","zbin","br0","br1","br2","n0","match_name","match_elem","defineMemberTypeName","parent_class","member_name","makeMethodsList","Create","detectBranchMemberClass","brlst","treeProcess","_treeProcess","current_entry","simple_read","process_arrays","createLeafElem","datakind","fIsUnsigned","fLen","findInHandle","namecnt","AddBranchForReading","target_object","target_name","read_mode","curr_entry","curr_basket","read_entry","staged_entry","first_readentry","staged_basket","numbaskets","fWriteBasket","ascounter","baskets","staged_prev","staged_now","progress_showtm","getBasketEntry","fMaxBaskets","fBasketEntry","bskt","fBaskets","getTarget","getEntry","first_entry","raw_shift","nb_leaves","is_brelem","child_scan","item_cnt","item_cnt2","object_class","fBranchCount","BranchCount2","fBranchCount2","elemd","arrd","fLeafCount","br_cnt","ScanBranches","master_target","chld_kind","match_prefix","fTotBytes","chld_direct","virtual","fVirtual","reallocate","newtgt","leaves","snames","name1","subtype1","methods1","fParentName","smethods","chld_class","obj2","func0","arr_size","loop_size_name","loop_size","member0","$loop_size","$stl_member","item0","lastentry","fFirstEntry","fBasketBytes","process_min","process_max","arrmember","ReadBaskets","bitems","ExtractPlaces","places","fBasketSeek","ReadProgress","ProcessBlobs","DoProcessing","bskt_obj","objblob","fEntryOffsetLen","ReadNextBaskets","min_staged","bitem","ProcessBaskets","isanyprocessed","loopentries","treeDraw","_treeDraw","treeIOTest","nchilds","numleaves","collectBranches","prntname","testBranch","fail","fails","drawargs","fEntryNumber","createBranchItem","parent_branch","nb_branches","ClearName","$tree","subitem","bnode","bobj","$branch","leafitem","_tree"],"ignoreList":[],"sourceRoot":"webpack:///","sources":["../node_modules/@angular/core/fesm2022/primitives/signals.mjs","../node_modules/rxjs/dist/esm/internal/util/isFunction.js","../node_modules/rxjs/dist/esm/internal/util/createErrorClass.js","../node_modules/rxjs/dist/esm/internal/util/UnsubscriptionError.js","../node_modules/rxjs/dist/esm/internal/util/arrRemove.js","../node_modules/rxjs/dist/esm/internal/Subscription.js","../node_modules/rxjs/dist/esm/internal/config.js","../node_modules/rxjs/dist/esm/internal/scheduler/timeoutProvider.js","../node_modules/rxjs/dist/esm/internal/util/reportUnhandledError.js","../node_modules/rxjs/dist/esm/internal/util/noop.js","../node_modules/rxjs/dist/esm/internal/NotificationFactories.js","../node_modules/rxjs/dist/esm/internal/util/errorContext.js","../node_modules/rxjs/dist/esm/internal/Subscriber.js","../node_modules/rxjs/dist/esm/internal/symbol/observable.js","../node_modules/rxjs/dist/esm/internal/util/identity.js","../node_modules/rxjs/dist/esm/internal/util/pipe.js","../node_modules/rxjs/dist/esm/internal/Observable.js","../node_modules/rxjs/dist/esm/internal/util/ObjectUnsubscribedError.js","../node_modules/rxjs/dist/esm/internal/Subject.js","../node_modules/rxjs/dist/esm/internal/BehaviorSubject.js","../node_modules/rxjs/dist/esm/internal/util/lift.js","../node_modules/rxjs/dist/esm/internal/operators/OperatorSubscriber.js","../node_modules/rxjs/dist/esm/internal/operators/map.js","../node_modules/@angular/core/fesm2022/core.mjs","../node_modules/@angular/common/fesm2022/common.mjs","../node_modules/@angular/platform-browser/fesm2022/platform-browser.mjs","../node_modules/rxjs/dist/esm/internal/util/isScheduler.js","../node_modules/rxjs/dist/esm/internal/util/args.js","../../node_modules/tslib/tslib.es6.mjs","../node_modules/rxjs/dist/esm/internal/util/isArrayLike.js","../node_modules/rxjs/dist/esm/internal/util/isPromise.js","../node_modules/rxjs/dist/esm/internal/util/isInteropObservable.js","../node_modules/rxjs/dist/esm/internal/util/isAsyncIterable.js","../node_modules/rxjs/dist/esm/internal/util/throwUnobservableError.js","../node_modules/rxjs/dist/esm/internal/symbol/iterator.js","../node_modules/rxjs/dist/esm/internal/util/isIterable.js","../node_modules/rxjs/dist/esm/internal/util/isReadableStreamLike.js","../node_modules/rxjs/dist/esm/internal/observable/innerFrom.js","../node_modules/rxjs/dist/esm/internal/util/executeSchedule.js","../node_modules/rxjs/dist/esm/internal/operators/observeOn.js","../node_modules/rxjs/dist/esm/internal/operators/subscribeOn.js","../node_modules/rxjs/dist/esm/internal/scheduled/scheduleAsyncIterable.js","../node_modules/rxjs/dist/esm/internal/observable/from.js","../node_modules/rxjs/dist/esm/internal/scheduled/scheduled.js","../node_modules/rxjs/dist/esm/internal/scheduled/scheduleObservable.js","../node_modules/rxjs/dist/esm/internal/scheduled/scheduleArray.js","../node_modules/rxjs/dist/esm/internal/scheduled/schedulePromise.js","../node_modules/rxjs/dist/esm/internal/scheduled/scheduleIterable.js","../node_modules/rxjs/dist/esm/internal/scheduled/scheduleReadableStreamLike.js","../node_modules/rxjs/dist/esm/internal/observable/of.js","../node_modules/rxjs/dist/esm/internal/operators/mergeMap.js","../node_modules/rxjs/dist/esm/internal/operators/mergeInternals.js","../node_modules/rxjs/dist/esm/internal/operators/concatMap.js","../node_modules/rxjs/dist/esm/internal/operators/filter.js","../node_modules/rxjs/dist/esm/internal/operators/finalize.js","../node_modules/rxjs/dist/esm/internal/operators/switchMap.js","../node_modules/@angular/common/fesm2022/http.mjs","../node_modules/rxjs/dist/esm/internal/util/argsArgArrayOrObject.js","../node_modules/rxjs/dist/esm/internal/util/mapOneOrManyArgs.js","../node_modules/rxjs/dist/esm/internal/util/createObject.js","../node_modules/rxjs/dist/esm/internal/observable/combineLatest.js","../node_modules/rxjs/dist/esm/internal/util/EmptyError.js","../node_modules/rxjs/dist/esm/internal/operators/mergeAll.js","../node_modules/rxjs/dist/esm/internal/observable/concat.js","../node_modules/rxjs/dist/esm/internal/operators/concatAll.js","../node_modules/rxjs/dist/esm/internal/observable/defer.js","../node_modules/rxjs/dist/esm/internal/observable/throwError.js","../node_modules/rxjs/dist/esm/internal/observable/empty.js","../node_modules/rxjs/dist/esm/internal/operators/refCount.js","../node_modules/rxjs/dist/esm/internal/observable/ConnectableObservable.js","../node_modules/rxjs/dist/esm/internal/operators/take.js","../node_modules/rxjs/dist/esm/internal/operators/startWith.js","../node_modules/rxjs/dist/esm/internal/operators/defaultIfEmpty.js","../node_modules/rxjs/dist/esm/internal/operators/throwIfEmpty.js","../node_modules/rxjs/dist/esm/internal/operators/first.js","../node_modules/rxjs/dist/esm/internal/operators/tap.js","../node_modules/rxjs/dist/esm/internal/operators/catchError.js","../node_modules/rxjs/dist/esm/internal/operators/takeLast.js","../node_modules/rxjs/dist/esm/internal/operators/mapTo.js","../node_modules/rxjs/dist/esm/internal/operators/takeUntil.js","../node_modules/@angular/router/fesm2022/router.mjs","../node_modules/rxjs/dist/esm/internal/util/isObservable.js","../node_modules/rxjs/dist/esm/internal/operators/scan.js","../node_modules/rxjs/dist/esm/internal/operators/scanInternals.js","../node_modules/rxjs/dist/esm/internal/operators/last.js","./projects/phoenix-app/src/app/app.component.ts","./projects/phoenix-app/src/app/app.component.html","../node_modules/@tweenjs/tween.js/dist/tween.esm.js","../node_modules/three/build/three.module.js","../node_modules/three/examples/jsm/controls/OrbitControls.js","../phoenix-event-display/src/managers/three-manager/controls-manager.ts","../phoenix-event-display/src/managers/three-manager/renderer-manager.ts","../node_modules/three/examples/jsm/exporters/OBJExporter.js","../node_modules/three/examples/jsm/utils/TextureUtils.js","../node_modules/three/examples/jsm/exporters/GLTFExporter.js","../phoenix-event-display/src/helpers/file.ts","../phoenix-event-display/src/managers/three-manager/export-manager.ts","../node_modules/three/examples/jsm/loaders/OBJLoader.js","../node_modules/three/examples/jsm/utils/BufferGeometryUtils.js","../node_modules/three/examples/jsm/loaders/GLTFLoader.js","../node_modules/three/examples/jsm/loaders/DRACOLoader.js","../phoenix-event-display/src/managers/three-manager/import-manager.ts","../phoenix-event-display/src/helpers/pretty-symbols.ts","../phoenix-event-display/src/helpers/active-variable.ts","../phoenix-event-display/src/managers/three-manager/selection-manager.ts","../node_modules/three/examples/jsm/geometries/TextGeometry.js","../node_modules/three/examples/jsm/loaders/FontLoader.js","../phoenix-event-display/src/helpers/coordinate-helper.ts","../phoenix-event-display/src/managers/three-manager/scene-manager.ts","../phoenix-event-display/src/loaders/objects/tracks.ts","../phoenix-event-display/src/managers/three-manager/animations-manager.ts","../node_modules/three/examples/jsm/shaders/CopyShader.js","../node_modules/three/examples/jsm/postprocessing/Pass.js","../node_modules/three/examples/jsm/postprocessing/ShaderPass.js","../node_modules/three/examples/jsm/postprocessing/MaskPass.js","../node_modules/three/examples/jsm/postprocessing/EffectComposer.js","../node_modules/three/examples/jsm/postprocessing/RenderPass.js","../node_modules/three/examples/jsm/postprocessing/OutlinePass.js","../phoenix-event-display/src/managers/three-manager/effects-manager.ts","../phoenix-event-display/src/managers/state-manager.ts","../phoenix-event-display/src/managers/loading-manager.ts","../phoenix-event-display/src/managers/three-manager/color-manager.ts","../phoenix-event-display/src/managers/three-manager/xr/xr-manager.ts","../node_modules/three/examples/jsm/libs/motion-controllers.module.js","../node_modules/three/examples/jsm/webxr/XRControllerModelFactory.js","../phoenix-event-display/src/managers/three-manager/xr/vr-manager.ts","../phoenix-event-display/src/managers/three-manager/xr/ar-manager.ts","../phoenix-event-display/src/managers/three-manager/index.ts","../phoenix-event-display/src/lib/models/preset-view.model.ts","../node_modules/dat.gui/build/dat.gui.module.js","../phoenix-event-display/src/managers/ui-manager/dat-gui-ui.ts","../phoenix-event-display/src/managers/ui-manager/color-options.ts","../phoenix-event-display/src/managers/ui-manager/phoenix-menu/phoenix-menu-ui.ts","../phoenix-event-display/src/helpers/browser-storage.ts","../phoenix-event-display/src/managers/ui-manager/index.ts","../phoenix-event-display/src/helpers/info-logger.ts","../phoenix-event-display/src/lib/models/cut.model.ts","../node_modules/three/examples/jsm/math/ConvexHull.js","../node_modules/three/examples/jsm/geometries/ConvexGeometry.js","../phoenix-event-display/src/helpers/constants.ts","../phoenix-event-display/src/helpers/runge-kutta.ts","../phoenix-event-display/src/helpers/rk-helper.ts","../phoenix-event-display/src/loaders/objects/phoenix-objects.ts","../phoenix-event-display/src/helpers/labels.ts","../phoenix-event-display/src/loaders/phoenix-loader.ts","../phoenix-event-display/src/loaders/jivexml-loader.ts","../phoenix-event-display/src/helpers/zip.ts","../phoenix-event-display/src/managers/url-options-manager.ts","../phoenix-event-display/src/event-display.ts","../phoenix-event-display/src/managers/ui-manager/phoenix-menu/phoenix-menu-node.ts","../phoenix-event-display/src/loaders/objects/cms-objects.ts","../phoenix-event-display/src/loaders/cms-loader.ts","../phoenix-event-display/src/loaders/edm4hep-json-loader.ts","../phoenix-event-display/src/loaders/trackml-loader.ts","./projects/phoenix-ui-components/lib/services/event-display.service.ts","./projects/phoenix-app/src/app/home/home.component.ts","./projects/phoenix-app/src/app/home/home.component.html","./projects/phoenix-ui-components/lib/components/nav/nav.component.ts","./projects/phoenix-ui-components/lib/components/nav/nav.component.html","./projects/phoenix-ui-components/lib/services/error-message-service.ts","./projects/phoenix-ui-components/lib/components/loader/loader.component.html","./projects/phoenix-ui-components/lib/components/loader/loader.component.ts","./projects/phoenix-app/src/app/sections/geometry/geometry.component.ts","./projects/phoenix-app/src/app/sections/geometry/geometry.component.html","./projects/phoenix-ui-components/lib/services/extras/event-data-import.ts","./projects/phoenix-app/src/environments/environment.prod.ts","../node_modules/@angular/cdk/fesm2022/platform.mjs","../node_modules/@angular/cdk/fesm2022/keycodes.mjs","../node_modules/rxjs/dist/esm/internal/scheduler/Action.js","../node_modules/rxjs/dist/esm/internal/scheduler/intervalProvider.js","../node_modules/rxjs/dist/esm/internal/scheduler/AsyncAction.js","../node_modules/rxjs/dist/esm/internal/scheduler/dateTimestampProvider.js","../node_modules/rxjs/dist/esm/internal/Scheduler.js","../node_modules/rxjs/dist/esm/internal/scheduler/AsyncScheduler.js","../node_modules/rxjs/dist/esm/internal/scheduler/async.js","../node_modules/rxjs/dist/esm/internal/operators/debounceTime.js","../node_modules/rxjs/dist/esm/internal/operators/skip.js","../node_modules/rxjs/dist/esm/internal/operators/distinctUntilChanged.js","../node_modules/@angular/cdk/fesm2022/coercion.mjs","../node_modules/@angular/cdk/fesm2022/observers.mjs","../node_modules/@angular/cdk/fesm2022/layout.mjs","../node_modules/@angular/cdk/fesm2022/a11y.mjs","../node_modules/rxjs/dist/esm/internal/observable/merge.js","../node_modules/rxjs/dist/esm/internal/util/Immediate.js","../node_modules/rxjs/dist/esm/internal/scheduler/immediateProvider.js","../node_modules/rxjs/dist/esm/internal/scheduler/asap.js","../node_modules/rxjs/dist/esm/internal/scheduler/AsapScheduler.js","../node_modules/rxjs/dist/esm/internal/scheduler/AsapAction.js","../node_modules/rxjs/dist/esm/internal/operators/delayWhen.js","../node_modules/rxjs/dist/esm/internal/operators/ignoreElements.js","../node_modules/rxjs/dist/esm/internal/observable/timer.js","../node_modules/rxjs/dist/esm/internal/util/isDate.js","../node_modules/rxjs/dist/esm/internal/operators/delay.js","../node_modules/@angular/cdk/fesm2022/bidi.mjs","../node_modules/@angular/material/fesm2022/core.mjs","../node_modules/@angular/cdk/fesm2022/portal.mjs","../node_modules/@angular/animations/fesm2022/animations.mjs","../node_modules/rxjs/dist/esm/internal/observable/fromEvent.js","../node_modules/rxjs/dist/esm/internal/scheduler/animationFrameProvider.js","../node_modules/rxjs/dist/esm/internal/scheduler/animationFrame.js","../node_modules/rxjs/dist/esm/internal/scheduler/AnimationFrameScheduler.js","../node_modules/rxjs/dist/esm/internal/scheduler/AnimationFrameAction.js","../node_modules/rxjs/dist/esm/internal/operators/auditTime.js","../node_modules/rxjs/dist/esm/internal/operators/audit.js","../node_modules/@angular/cdk/fesm2022/scrolling.mjs","../node_modules/@angular/cdk/fesm2022/overlay.mjs","../node_modules/@angular/material/fesm2022/menu.mjs","../node_modules/@angular/material/fesm2022/tooltip.mjs","./projects/phoenix-ui-components/lib/components/ui-menu/menu-toggle/menu-toggle.component.ts","./projects/phoenix-ui-components/lib/components/ui-menu/menu-toggle/menu-toggle.component.html","./projects/phoenix-ui-components/lib/components/ui-menu/animate-camera/animate-camera.component.html","./projects/phoenix-ui-components/lib/components/ui-menu/animate-camera/animate-camera.component.ts","./projects/phoenix-ui-components/lib/components/ui-menu/ui-menu-wrapper/ui-menu-wrapper.component.ts","./projects/phoenix-ui-components/lib/components/ui-menu/ui-menu-wrapper/ui-menu-wrapper.component.html","../node_modules/@angular/forms/fesm2022/forms.mjs","../node_modules/rxjs/dist/esm/internal/observable/forkJoin.js","../node_modules/@angular/material/fesm2022/checkbox.mjs","../node_modules/@angular/cdk/fesm2022/drag-drop.mjs","../node_modules/rxjs/dist/esm/internal/observable/interval.js","./projects/phoenix-ui-components/lib/components/ui-menu/overlay/overlay.component.html","./projects/phoenix-ui-components/lib/components/ui-menu/overlay/overlay.component.ts","./projects/phoenix-ui-components/lib/components/ui-menu/collections-info/collections-info-overlay/collections-info-overlay.component.html","./projects/phoenix-ui-components/lib/components/ui-menu/collections-info/collections-info-overlay/collections-info-overlay.component.ts","./projects/phoenix-ui-components/lib/components/ui-menu/collections-info/collections-info.component.ts","./projects/phoenix-ui-components/lib/components/ui-menu/collections-info/collections-info.component.html","./projects/phoenix-ui-components/lib/components/ui-menu/geometry-browser/geometry-browser-overlay/geometry-browser-overlay.component.html","./projects/phoenix-ui-components/lib/components/ui-menu/geometry-browser/geometry-browser-overlay/geometry-browser-overlay.component.ts","./projects/phoenix-ui-components/lib/components/ui-menu/geometry-browser/geometry-browser.component.ts","./projects/phoenix-ui-components/lib/components/ui-menu/geometry-browser/geometry-browser.component.html","../node_modules/@angular/cdk/fesm2022/dialog.mjs","../node_modules/@angular/material/fesm2022/dialog.mjs","../node_modules/@angular/material/fesm2022/button.mjs","./projects/phoenix-ui-components/lib/components/ui-menu/io-options/io-options-dialog/io-options-dialog.component.html","./projects/phoenix-ui-components/lib/components/ui-menu/io-options/io-options-dialog/io-options-dialog.component.ts","./projects/phoenix-ui-components/lib/components/ui-menu/io-options/io-options.component.ts","./projects/phoenix-ui-components/lib/components/ui-menu/io-options/io-options.component.html","./projects/phoenix-ui-components/lib/components/ui-menu/overlay-view/overlay-view-window/overlay-view-window.component.ts","./projects/phoenix-ui-components/lib/components/ui-menu/overlay-view/overlay-view-window/overlay-view-window.component.html","./projects/phoenix-ui-components/lib/components/ui-menu/overlay-view/overlay-view.component.ts","./projects/phoenix-ui-components/lib/components/ui-menu/overlay-view/overlay-view.component.html","./projects/phoenix-ui-components/lib/services/extras/attribute.pipe.ts","./projects/phoenix-ui-components/lib/components/ui-menu/object-selection/object-selection-overlay/object-selection-overlay.component.html","./projects/phoenix-ui-components/lib/components/ui-menu/object-selection/object-selection-overlay/object-selection-overlay.component.ts","./projects/phoenix-ui-components/lib/components/ui-menu/object-selection/object-selection.component.ts","./projects/phoenix-ui-components/lib/components/ui-menu/object-selection/object-selection.component.html","./projects/phoenix-ui-components/lib/components/ui-menu/event-selector/event-selector.component.html","./projects/phoenix-ui-components/lib/components/ui-menu/event-selector/event-selector.component.ts","../node_modules/@angular/material/fesm2022/slider.mjs","./projects/phoenix-ui-components/lib/components/ui-menu/object-clipping/object-clipping.component.ts","./projects/phoenix-ui-components/lib/components/ui-menu/object-clipping/object-clipping.component.html","./projects/phoenix-ui-components/lib/components/ui-menu/dark-theme/dark-theme.component.ts","./projects/phoenix-ui-components/lib/components/ui-menu/dark-theme/dark-theme.component.html","./projects/phoenix-ui-components/lib/components/ui-menu/auto-rotate/auto-rotate.component.ts","./projects/phoenix-ui-components/lib/components/ui-menu/auto-rotate/auto-rotate.component.html","./projects/phoenix-ui-components/lib/components/ui-menu/view-options/cartesian-grid-config/cartesian-grid-config.component.ts","./projects/phoenix-ui-components/lib/components/ui-menu/view-options/cartesian-grid-config/cartesian-grid-config.component.html","./projects/phoenix-ui-components/lib/components/ui-menu/view-options/view-options.component.html","./projects/phoenix-ui-components/lib/components/ui-menu/view-options/view-options.component.ts","./projects/phoenix-ui-components/lib/components/ui-menu/info-panel/info-panel-overlay/info-panel-overlay.component.html","./projects/phoenix-ui-components/lib/components/ui-menu/info-panel/info-panel-overlay/info-panel-overlay.component.ts","./projects/phoenix-ui-components/lib/components/ui-menu/info-panel/info-panel.component.ts","./projects/phoenix-ui-components/lib/components/ui-menu/info-panel/info-panel.component.html","./projects/phoenix-ui-components/lib/components/ui-menu/main-view-toggle/main-view-toggle.component.ts","./projects/phoenix-ui-components/lib/components/ui-menu/main-view-toggle/main-view-toggle.component.html","./projects/phoenix-ui-components/lib/components/ui-menu/zoom-controls/zoom-controls.component.ts","./projects/phoenix-ui-components/lib/components/ui-menu/zoom-controls/zoom-controls.component.html","./projects/phoenix-ui-components/lib/components/ui-menu/animate-event/animate-event.component.ts","./projects/phoenix-ui-components/lib/components/ui-menu/animate-event/animate-event.component.html","./projects/phoenix-ui-components/lib/components/ui-menu/vr-toggle/vr-toggle.component.ts","./projects/phoenix-ui-components/lib/components/ui-menu/vr-toggle/vr-toggle.component.html","./projects/phoenix-ui-components/lib/components/ui-menu/ar-toggle/ar-toggle.component.html","./projects/phoenix-ui-components/lib/components/ui-menu/ar-toggle/ar-toggle.component.ts","./projects/phoenix-ui-components/lib/components/ui-menu/ss-mode/ss-mode.component.ts","./projects/phoenix-ui-components/lib/components/ui-menu/ss-mode/ss-mode.component.html","../node_modules/@angular/cdk/fesm2022/collections.mjs","../node_modules/@angular/material/fesm2022/radio.mjs","./projects/phoenix-ui-components/lib/components/ui-menu/make-picture/make-picture.component.html","./projects/phoenix-ui-components/lib/components/ui-menu/make-picture/make-picture.component.ts","./projects/phoenix-ui-components/lib/components/ui-menu/performance-toggle/performance-toggle.component.ts","./projects/phoenix-ui-components/lib/components/ui-menu/performance-toggle/performance-toggle.component.html","./projects/phoenix-ui-components/lib/components/ui-menu/share-link/share-link-dialog/share-link-dialog.component.ts","./projects/phoenix-ui-components/lib/components/ui-menu/share-link/share-link-dialog/share-link-dialog.component.html","./projects/phoenix-ui-components/lib/components/ui-menu/share-link/share-link.component.ts","./projects/phoenix-ui-components/lib/components/ui-menu/share-link/share-link.component.html","./projects/phoenix-ui-components/lib/components/ui-menu/ui-menu.component.ts","./projects/phoenix-ui-components/lib/components/ui-menu/ui-menu.component.html","./projects/phoenix-ui-components/lib/components/ui-menu/experiment-info/experiment-info.component.html","./projects/phoenix-ui-components/lib/components/ui-menu/experiment-info/experiment-info.component.ts","../node_modules/@angular/material/fesm2022/slide-toggle.mjs","./projects/phoenix-ui-components/lib/components/phoenix-menu/config/config-slider/config-slider.component.html","./projects/phoenix-ui-components/lib/components/phoenix-menu/config/config-slider/config-slider.component.ts","./projects/phoenix-ui-components/lib/components/phoenix-menu/phoenix-menu-item/phoenix-menu-item.component.html","./projects/phoenix-ui-components/lib/components/phoenix-menu/phoenix-menu-item/phoenix-menu-item.component.ts","./projects/phoenix-ui-components/lib/components/phoenix-menu/phoenix-menu.component.ts","./projects/phoenix-ui-components/lib/components/phoenix-menu/phoenix-menu.component.html","./projects/phoenix-ui-components/lib/components/embed-menu/experiment-link/experiment-link.component.ts","./projects/phoenix-ui-components/lib/components/embed-menu/experiment-link/experiment-link.component.html","./projects/phoenix-ui-components/lib/components/embed-menu/embed-menu.component.ts","./projects/phoenix-ui-components/lib/components/embed-menu/embed-menu.component.html","./projects/phoenix-app/src/app/sections/atlas/atlas.component.ts","./projects/phoenix-app/src/app/sections/atlas/atlas.component.html","./projects/phoenix-ui-components/lib/services/file-loader.service.ts","./projects/phoenix-ui-components/lib/components/ui-menu/cycle-events/cycle-events.component.ts","./projects/phoenix-ui-components/lib/components/ui-menu/cycle-events/cycle-events.component.html","./projects/phoenix-app/src/app/sections/lhcb/vp-toggle/vp-toggle.component.ts","./projects/phoenix-app/src/app/sections/lhcb/vp-toggle/vp-toggle.component.html","./projects/phoenix-app/src/app/sections/lhcb/lhcb.component.ts","./projects/phoenix-app/src/app/sections/lhcb/lhcb.component.html","./projects/phoenix-app/src/app/sections/cms/cms.component.ts","./projects/phoenix-app/src/app/sections/cms/cms.component.html","./projects/phoenix-app/src/app/sections/trackml/trackml.component.ts","./projects/phoenix-app/src/app/sections/trackml/trackml.component.html","../node_modules/@angular/material/fesm2022/icon.mjs","../node_modules/@angular/cdk/fesm2022/tree.mjs","../node_modules/@angular/material/fesm2022/tabs.mjs","./projects/phoenix-ui-components/lib/services/global-error-handler.ts","./projects/phoenix-ui-components/lib/components/phoenix-ui.module.ts","./projects/phoenix-app/src/app/sections/playground/playground.component.ts","./projects/phoenix-app/src/app/sections/playground/playground.component.html","../node_modules/@angular/animations/fesm2022/browser.mjs","../node_modules/@angular/platform-browser/fesm2022/animations.mjs","./projects/phoenix-app/src/app/app.module.ts","./projects/phoenix-app/src/main.ts","../node_modules/css-element-queries/index.js","../node_modules/css-element-queries/src/ElementQueries.js","../node_modules/css-element-queries/src/ResizeSensor.js","../node_modules/dijkstrajs/dijkstra.js","../node_modules/encode-utf8/index.js","../node_modules/html2canvas/dist/html2canvas.js","../node_modules/jszip/dist/jszip.min.js","../node_modules/qrcode/lib/browser.js","../node_modules/qrcode/lib/can-promise.js","../node_modules/qrcode/lib/core/alignment-pattern.js","../node_modules/qrcode/lib/core/alphanumeric-data.js","../node_modules/qrcode/lib/core/bit-buffer.js","../node_modules/qrcode/lib/core/bit-matrix.js","../node_modules/qrcode/lib/core/byte-data.js","../node_modules/qrcode/lib/core/error-correction-code.js","../node_modules/qrcode/lib/core/error-correction-level.js","../node_modules/qrcode/lib/core/finder-pattern.js","../node_modules/qrcode/lib/core/format-info.js","../node_modules/qrcode/lib/core/galois-field.js","../node_modules/qrcode/lib/core/kanji-data.js","../node_modules/qrcode/lib/core/mask-pattern.js","../node_modules/qrcode/lib/core/mode.js","../node_modules/qrcode/lib/core/numeric-data.js","../node_modules/qrcode/lib/core/polynomial.js","../node_modules/qrcode/lib/core/qrcode.js","../node_modules/qrcode/lib/core/reed-solomon-encoder.js","../node_modules/qrcode/lib/core/regex.js","../node_modules/qrcode/lib/core/segments.js","../node_modules/qrcode/lib/core/utils.js","../node_modules/qrcode/lib/core/version-check.js","../node_modules/qrcode/lib/core/version.js","../node_modules/qrcode/lib/renderer/canvas.js","../node_modules/qrcode/lib/renderer/svg-tag.js","../node_modules/qrcode/lib/renderer/utils.js","../node_modules/stats-js/build/stats.min.js","../../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/jsroot/modules/base/BasePainter.mjs","../node_modules/jsroot/modules/base/FontHandler.mjs","../node_modules/jsroot/modules/base/TAttFillHandler.mjs","../node_modules/jsroot/modules/base/TAttTextHandler.mjs","../node_modules/jsroot/modules/base/ObjectPainter.mjs","../node_modules/jsroot/modules/base/TAttLineHandler.mjs","../node_modules/jsroot/modules/base/TAttMarkerHandler.mjs","../node_modules/jsroot/modules/base/base3d.mjs","../node_modules/jsroot/modules/base/colors.mjs","../node_modules/jsroot/modules/base/latex.mjs","../node_modules/jsroot/modules/base/math.mjs","../node_modules/jsroot/modules/core.mjs","../node_modules/jsroot/modules/d3.mjs","../node_modules/jsroot/modules/draw.mjs","../node_modules/jsroot/modules/gui/lil-gui.mjs","../node_modules/jsroot/modules/geom/TGeoPainter.mjs","../node_modules/jsroot/modules/geom/csg.mjs","../node_modules/jsroot/modules/geom/geobase.mjs","../node_modules/jsroot/modules/gpad/TAxisPainter.mjs","../node_modules/jsroot/modules/gpad/TCanvasPainter.mjs","../node_modules/jsroot/modules/gpad/TFramePainter.mjs","../node_modules/jsroot/modules/gpad/TPadPainter.mjs","../node_modules/jsroot/modules/gui/HierarchyPainter.mjs","../node_modules/jsroot/modules/gui/display.mjs","../node_modules/jsroot/modules/gui/menu.mjs","../node_modules/jsroot/modules/gui/utils.mjs","../node_modules/jsroot/modules/hist/TF1Painter.mjs","../node_modules/jsroot/modules/hist/TH1Painter.mjs","../node_modules/jsroot/modules/hist/TH2Painter.mjs","../node_modules/jsroot/modules/hist/TH3Painter.mjs","../node_modules/jsroot/modules/hist/TPavePainter.mjs","../node_modules/jsroot/modules/hist/hist3d.mjs","../node_modules/jsroot/modules/hist2d/TH1Painter.mjs","../node_modules/jsroot/modules/hist2d/TH2Painter.mjs","../node_modules/jsroot/modules/hist2d/THistPainter.mjs","../node_modules/jsroot/modules/io.mjs","../node_modules/jsroot/modules/three.mjs","../node_modules/jsroot/modules/tree.mjs"],"sourcesContent":["/**\n * @license Angular v17.3.1\n * (c) 2010-2022 Google LLC. https://angular.io/\n * License: MIT\n */\n\n/**\n * The default equality function used for `signal` and `computed`, which uses referential equality.\n */\nfunction defaultEquals(a, b) {\n return Object.is(a, b);\n}\n\n/**\n * The currently active consumer `ReactiveNode`, if running code in a reactive context.\n *\n * Change this via `setActiveConsumer`.\n */\nlet activeConsumer = null;\nlet inNotificationPhase = false;\n/**\n * Global epoch counter. Incremented whenever a source signal is set.\n */\nlet epoch = 1;\n/**\n * Symbol used to tell `Signal`s apart from other functions.\n *\n * This can be used to auto-unwrap signals in various cases, or to auto-wrap non-signal values.\n */\nconst SIGNAL = /* @__PURE__ */ Symbol('SIGNAL');\nfunction setActiveConsumer(consumer) {\n const prev = activeConsumer;\n activeConsumer = consumer;\n return prev;\n}\nfunction getActiveConsumer() {\n return activeConsumer;\n}\nfunction isInNotificationPhase() {\n return inNotificationPhase;\n}\nfunction isReactive(value) {\n return value[SIGNAL] !== undefined;\n}\nconst REACTIVE_NODE = {\n version: 0,\n lastCleanEpoch: 0,\n dirty: false,\n producerNode: undefined,\n producerLastReadVersion: undefined,\n producerIndexOfThis: undefined,\n nextProducerIndex: 0,\n liveConsumerNode: undefined,\n liveConsumerIndexOfThis: undefined,\n consumerAllowSignalWrites: false,\n consumerIsAlwaysLive: false,\n producerMustRecompute: () => false,\n producerRecomputeValue: () => { },\n consumerMarkedDirty: () => { },\n consumerOnSignalRead: () => { },\n};\n/**\n * Called by implementations when a producer's signal is read.\n */\nfunction producerAccessed(node) {\n if (inNotificationPhase) {\n throw new Error(typeof ngDevMode !== 'undefined' && ngDevMode ?\n `Assertion error: signal read during notification phase` :\n '');\n }\n if (activeConsumer === null) {\n // Accessed outside of a reactive context, so nothing to record.\n return;\n }\n activeConsumer.consumerOnSignalRead(node);\n // This producer is the `idx`th dependency of `activeConsumer`.\n const idx = activeConsumer.nextProducerIndex++;\n assertConsumerNode(activeConsumer);\n if (idx < activeConsumer.producerNode.length && activeConsumer.producerNode[idx] !== node) {\n // There's been a change in producers since the last execution of `activeConsumer`.\n // `activeConsumer.producerNode[idx]` holds a stale dependency which will be be removed and\n // replaced with `this`.\n //\n // If `activeConsumer` isn't live, then this is a no-op, since we can replace the producer in\n // `activeConsumer.producerNode` directly. However, if `activeConsumer` is live, then we need\n // to remove it from the stale producer's `liveConsumer`s.\n if (consumerIsLive(activeConsumer)) {\n const staleProducer = activeConsumer.producerNode[idx];\n producerRemoveLiveConsumerAtIndex(staleProducer, activeConsumer.producerIndexOfThis[idx]);\n // At this point, the only record of `staleProducer` is the reference at\n // `activeConsumer.producerNode[idx]` which will be overwritten below.\n }\n }\n if (activeConsumer.producerNode[idx] !== node) {\n // We're a new dependency of the consumer (at `idx`).\n activeConsumer.producerNode[idx] = node;\n // If the active consumer is live, then add it as a live consumer. If not, then use 0 as a\n // placeholder value.\n activeConsumer.producerIndexOfThis[idx] =\n consumerIsLive(activeConsumer) ? producerAddLiveConsumer(node, activeConsumer, idx) : 0;\n }\n activeConsumer.producerLastReadVersion[idx] = node.version;\n}\n/**\n * Increment the global epoch counter.\n *\n * Called by source producers (that is, not computeds) whenever their values change.\n */\nfunction producerIncrementEpoch() {\n epoch++;\n}\n/**\n * Ensure this producer's `version` is up-to-date.\n */\nfunction producerUpdateValueVersion(node) {\n if (consumerIsLive(node) && !node.dirty) {\n // A live consumer will be marked dirty by producers, so a clean state means that its version\n // is guaranteed to be up-to-date.\n return;\n }\n if (!node.dirty && node.lastCleanEpoch === epoch) {\n // Even non-live consumers can skip polling if they previously found themselves to be clean at\n // the current epoch, since their dependencies could not possibly have changed (such a change\n // would've increased the epoch).\n return;\n }\n if (!node.producerMustRecompute(node) && !consumerPollProducersForChange(node)) {\n // None of our producers report a change since the last time they were read, so no\n // recomputation of our value is necessary, and we can consider ourselves clean.\n node.dirty = false;\n node.lastCleanEpoch = epoch;\n return;\n }\n node.producerRecomputeValue(node);\n // After recomputing the value, we're no longer dirty.\n node.dirty = false;\n node.lastCleanEpoch = epoch;\n}\n/**\n * Propagate a dirty notification to live consumers of this producer.\n */\nfunction producerNotifyConsumers(node) {\n if (node.liveConsumerNode === undefined) {\n return;\n }\n // Prevent signal reads when we're updating the graph\n const prev = inNotificationPhase;\n inNotificationPhase = true;\n try {\n for (const consumer of node.liveConsumerNode) {\n if (!consumer.dirty) {\n consumerMarkDirty(consumer);\n }\n }\n }\n finally {\n inNotificationPhase = prev;\n }\n}\n/**\n * Whether this `ReactiveNode` in its producer capacity is currently allowed to initiate updates,\n * based on the current consumer context.\n */\nfunction producerUpdatesAllowed() {\n return activeConsumer?.consumerAllowSignalWrites !== false;\n}\nfunction consumerMarkDirty(node) {\n node.dirty = true;\n producerNotifyConsumers(node);\n node.consumerMarkedDirty?.(node);\n}\n/**\n * Prepare this consumer to run a computation in its reactive context.\n *\n * Must be called by subclasses which represent reactive computations, before those computations\n * begin.\n */\nfunction consumerBeforeComputation(node) {\n node && (node.nextProducerIndex = 0);\n return setActiveConsumer(node);\n}\n/**\n * Finalize this consumer's state after a reactive computation has run.\n *\n * Must be called by subclasses which represent reactive computations, after those computations\n * have finished.\n */\nfunction consumerAfterComputation(node, prevConsumer) {\n setActiveConsumer(prevConsumer);\n if (!node || node.producerNode === undefined || node.producerIndexOfThis === undefined ||\n node.producerLastReadVersion === undefined) {\n return;\n }\n if (consumerIsLive(node)) {\n // For live consumers, we need to remove the producer -> consumer edge for any stale producers\n // which weren't dependencies after the recomputation.\n for (let i = node.nextProducerIndex; i < node.producerNode.length; i++) {\n producerRemoveLiveConsumerAtIndex(node.producerNode[i], node.producerIndexOfThis[i]);\n }\n }\n // Truncate the producer tracking arrays.\n // Perf note: this is essentially truncating the length to `node.nextProducerIndex`, but\n // benchmarking has shown that individual pop operations are faster.\n while (node.producerNode.length > node.nextProducerIndex) {\n node.producerNode.pop();\n node.producerLastReadVersion.pop();\n node.producerIndexOfThis.pop();\n }\n}\n/**\n * Determine whether this consumer has any dependencies which have changed since the last time\n * they were read.\n */\nfunction consumerPollProducersForChange(node) {\n assertConsumerNode(node);\n // Poll producers for change.\n for (let i = 0; i < node.producerNode.length; i++) {\n const producer = node.producerNode[i];\n const seenVersion = node.producerLastReadVersion[i];\n // First check the versions. A mismatch means that the producer's value is known to have\n // changed since the last time we read it.\n if (seenVersion !== producer.version) {\n return true;\n }\n // The producer's version is the same as the last time we read it, but it might itself be\n // stale. Force the producer to recompute its version (calculating a new value if necessary).\n producerUpdateValueVersion(producer);\n // Now when we do this check, `producer.version` is guaranteed to be up to date, so if the\n // versions still match then it has not changed since the last time we read it.\n if (seenVersion !== producer.version) {\n return true;\n }\n }\n return false;\n}\n/**\n * Disconnect this consumer from the graph.\n */\nfunction consumerDestroy(node) {\n assertConsumerNode(node);\n if (consumerIsLive(node)) {\n // Drop all connections from the graph to this node.\n for (let i = 0; i < node.producerNode.length; i++) {\n producerRemoveLiveConsumerAtIndex(node.producerNode[i], node.producerIndexOfThis[i]);\n }\n }\n // Truncate all the arrays to drop all connection from this node to the graph.\n node.producerNode.length = node.producerLastReadVersion.length = node.producerIndexOfThis.length =\n 0;\n if (node.liveConsumerNode) {\n node.liveConsumerNode.length = node.liveConsumerIndexOfThis.length = 0;\n }\n}\n/**\n * Add `consumer` as a live consumer of this node.\n *\n * Note that this operation is potentially transitive. If this node becomes live, then it becomes\n * a live consumer of all of its current producers.\n */\nfunction producerAddLiveConsumer(node, consumer, indexOfThis) {\n assertProducerNode(node);\n assertConsumerNode(node);\n if (node.liveConsumerNode.length === 0) {\n // When going from 0 to 1 live consumers, we become a live consumer to our producers.\n for (let i = 0; i < node.producerNode.length; i++) {\n node.producerIndexOfThis[i] = producerAddLiveConsumer(node.producerNode[i], node, i);\n }\n }\n node.liveConsumerIndexOfThis.push(indexOfThis);\n return node.liveConsumerNode.push(consumer) - 1;\n}\n/**\n * Remove the live consumer at `idx`.\n */\nfunction producerRemoveLiveConsumerAtIndex(node, idx) {\n assertProducerNode(node);\n assertConsumerNode(node);\n if (typeof ngDevMode !== 'undefined' && ngDevMode && idx >= node.liveConsumerNode.length) {\n throw new Error(`Assertion error: active consumer index ${idx} is out of bounds of ${node.liveConsumerNode.length} consumers)`);\n }\n if (node.liveConsumerNode.length === 1) {\n // When removing the last live consumer, we will no longer be live. We need to remove\n // ourselves from our producers' tracking (which may cause consumer-producers to lose\n // liveness as well).\n for (let i = 0; i < node.producerNode.length; i++) {\n producerRemoveLiveConsumerAtIndex(node.producerNode[i], node.producerIndexOfThis[i]);\n }\n }\n // Move the last value of `liveConsumers` into `idx`. Note that if there's only a single\n // live consumer, this is a no-op.\n const lastIdx = node.liveConsumerNode.length - 1;\n node.liveConsumerNode[idx] = node.liveConsumerNode[lastIdx];\n node.liveConsumerIndexOfThis[idx] = node.liveConsumerIndexOfThis[lastIdx];\n // Truncate the array.\n node.liveConsumerNode.length--;\n node.liveConsumerIndexOfThis.length--;\n // If the index is still valid, then we need to fix the index pointer from the producer to this\n // consumer, and update it from `lastIdx` to `idx` (accounting for the move above).\n if (idx < node.liveConsumerNode.length) {\n const idxProducer = node.liveConsumerIndexOfThis[idx];\n const consumer = node.liveConsumerNode[idx];\n assertConsumerNode(consumer);\n consumer.producerIndexOfThis[idxProducer] = idx;\n }\n}\nfunction consumerIsLive(node) {\n return node.consumerIsAlwaysLive || (node?.liveConsumerNode?.length ?? 0) > 0;\n}\nfunction assertConsumerNode(node) {\n node.producerNode ??= [];\n node.producerIndexOfThis ??= [];\n node.producerLastReadVersion ??= [];\n}\nfunction assertProducerNode(node) {\n node.liveConsumerNode ??= [];\n node.liveConsumerIndexOfThis ??= [];\n}\n\n/**\n * Create a computed signal which derives a reactive value from an expression.\n */\nfunction createComputed(computation) {\n const node = Object.create(COMPUTED_NODE);\n node.computation = computation;\n const computed = () => {\n // Check if the value needs updating before returning it.\n producerUpdateValueVersion(node);\n // Record that someone looked at this signal.\n producerAccessed(node);\n if (node.value === ERRORED) {\n throw node.error;\n }\n return node.value;\n };\n computed[SIGNAL] = node;\n return computed;\n}\n/**\n * A dedicated symbol used before a computed value has been calculated for the first time.\n * Explicitly typed as `any` so we can use it as signal's value.\n */\nconst UNSET = /* @__PURE__ */ Symbol('UNSET');\n/**\n * A dedicated symbol used in place of a computed signal value to indicate that a given computation\n * is in progress. Used to detect cycles in computation chains.\n * Explicitly typed as `any` so we can use it as signal's value.\n */\nconst COMPUTING = /* @__PURE__ */ Symbol('COMPUTING');\n/**\n * A dedicated symbol used in place of a computed signal value to indicate that a given computation\n * failed. The thrown error is cached until the computation gets dirty again.\n * Explicitly typed as `any` so we can use it as signal's value.\n */\nconst ERRORED = /* @__PURE__ */ Symbol('ERRORED');\n// Note: Using an IIFE here to ensure that the spread assignment is not considered\n// a side-effect, ending up preserving `COMPUTED_NODE` and `REACTIVE_NODE`.\n// TODO: remove when https://github.com/evanw/esbuild/issues/3392 is resolved.\nconst COMPUTED_NODE = /* @__PURE__ */ (() => {\n return {\n ...REACTIVE_NODE,\n value: UNSET,\n dirty: true,\n error: null,\n equal: defaultEquals,\n producerMustRecompute(node) {\n // Force a recomputation if there's no current value, or if the current value is in the\n // process of being calculated (which should throw an error).\n return node.value === UNSET || node.value === COMPUTING;\n },\n producerRecomputeValue(node) {\n if (node.value === COMPUTING) {\n // Our computation somehow led to a cyclic read of itself.\n throw new Error('Detected cycle in computations.');\n }\n const oldValue = node.value;\n node.value = COMPUTING;\n const prevConsumer = consumerBeforeComputation(node);\n let newValue;\n try {\n newValue = node.computation();\n }\n catch (err) {\n newValue = ERRORED;\n node.error = err;\n }\n finally {\n consumerAfterComputation(node, prevConsumer);\n }\n if (oldValue !== UNSET && oldValue !== ERRORED && newValue !== ERRORED &&\n node.equal(oldValue, newValue)) {\n // No change to `valueVersion` - old and new values are\n // semantically equivalent.\n node.value = oldValue;\n return;\n }\n node.value = newValue;\n node.version++;\n },\n };\n})();\n\nfunction defaultThrowError() {\n throw new Error();\n}\nlet throwInvalidWriteToSignalErrorFn = defaultThrowError;\nfunction throwInvalidWriteToSignalError() {\n throwInvalidWriteToSignalErrorFn();\n}\nfunction setThrowInvalidWriteToSignalError(fn) {\n throwInvalidWriteToSignalErrorFn = fn;\n}\n\n/**\n * If set, called after `WritableSignal`s are updated.\n *\n * This hook can be used to achieve various effects, such as running effects synchronously as part\n * of setting a signal.\n */\nlet postSignalSetFn = null;\n/**\n * Create a `Signal` that can be set or updated directly.\n */\nfunction createSignal(initialValue) {\n const node = Object.create(SIGNAL_NODE);\n node.value = initialValue;\n const getter = (() => {\n producerAccessed(node);\n return node.value;\n });\n getter[SIGNAL] = node;\n return getter;\n}\nfunction setPostSignalSetFn(fn) {\n const prev = postSignalSetFn;\n postSignalSetFn = fn;\n return prev;\n}\nfunction signalGetFn() {\n producerAccessed(this);\n return this.value;\n}\nfunction signalSetFn(node, newValue) {\n if (!producerUpdatesAllowed()) {\n throwInvalidWriteToSignalError();\n }\n if (!node.equal(node.value, newValue)) {\n node.value = newValue;\n signalValueChanged(node);\n }\n}\nfunction signalUpdateFn(node, updater) {\n if (!producerUpdatesAllowed()) {\n throwInvalidWriteToSignalError();\n }\n signalSetFn(node, updater(node.value));\n}\n// Note: Using an IIFE here to ensure that the spread assignment is not considered\n// a side-effect, ending up preserving `COMPUTED_NODE` and `REACTIVE_NODE`.\n// TODO: remove when https://github.com/evanw/esbuild/issues/3392 is resolved.\nconst SIGNAL_NODE = /* @__PURE__ */ (() => {\n return {\n ...REACTIVE_NODE,\n equal: defaultEquals,\n value: undefined,\n };\n})();\nfunction signalValueChanged(node) {\n node.version++;\n producerIncrementEpoch();\n producerNotifyConsumers(node);\n postSignalSetFn?.();\n}\n\nfunction createWatch(fn, schedule, allowSignalWrites) {\n const node = Object.create(WATCH_NODE);\n if (allowSignalWrites) {\n node.consumerAllowSignalWrites = true;\n }\n node.fn = fn;\n node.schedule = schedule;\n const registerOnCleanup = (cleanupFn) => {\n node.cleanupFn = cleanupFn;\n };\n function isWatchNodeDestroyed(node) {\n return node.fn === null && node.schedule === null;\n }\n function destroyWatchNode(node) {\n if (!isWatchNodeDestroyed(node)) {\n consumerDestroy(node); // disconnect watcher from the reactive graph\n node.cleanupFn();\n // nullify references to the integration functions to mark node as destroyed\n node.fn = null;\n node.schedule = null;\n node.cleanupFn = NOOP_CLEANUP_FN;\n }\n }\n const run = () => {\n if (node.fn === null) {\n // trying to run a destroyed watch is noop\n return;\n }\n if (isInNotificationPhase()) {\n throw new Error(`Schedulers cannot synchronously execute watches while scheduling.`);\n }\n node.dirty = false;\n if (node.hasRun && !consumerPollProducersForChange(node)) {\n return;\n }\n node.hasRun = true;\n const prevConsumer = consumerBeforeComputation(node);\n try {\n node.cleanupFn();\n node.cleanupFn = NOOP_CLEANUP_FN;\n node.fn(registerOnCleanup);\n }\n finally {\n consumerAfterComputation(node, prevConsumer);\n }\n };\n node.ref = {\n notify: () => consumerMarkDirty(node),\n run,\n cleanup: () => node.cleanupFn(),\n destroy: () => destroyWatchNode(node),\n [SIGNAL]: node,\n };\n return node.ref;\n}\nconst NOOP_CLEANUP_FN = () => { };\n// Note: Using an IIFE here to ensure that the spread assignment is not considered\n// a side-effect, ending up preserving `COMPUTED_NODE` and `REACTIVE_NODE`.\n// TODO: remove when https://github.com/evanw/esbuild/issues/3392 is resolved.\nconst WATCH_NODE = /* @__PURE__ */ (() => {\n return {\n ...REACTIVE_NODE,\n consumerIsAlwaysLive: true,\n consumerAllowSignalWrites: false,\n consumerMarkedDirty: (node) => {\n if (node.schedule !== null) {\n node.schedule(node.ref);\n }\n },\n hasRun: false,\n cleanupFn: NOOP_CLEANUP_FN,\n };\n})();\n\nfunction setAlternateWeakRefImpl(impl) {\n // TODO: remove this function\n}\n\nexport { REACTIVE_NODE, SIGNAL, SIGNAL_NODE, consumerAfterComputation, consumerBeforeComputation, consumerDestroy, consumerMarkDirty, consumerPollProducersForChange, createComputed, createSignal, createWatch, defaultEquals, getActiveConsumer, isInNotificationPhase, isReactive, producerAccessed, producerNotifyConsumers, producerUpdateValueVersion, producerUpdatesAllowed, setActiveConsumer, setAlternateWeakRefImpl, setPostSignalSetFn, setThrowInvalidWriteToSignalError, signalSetFn, signalUpdateFn };\n","export function isFunction(value) {\n return typeof value === 'function';\n}\n","export function createErrorClass(createImpl) {\n const _super = (instance) => {\n Error.call(instance);\n instance.stack = new Error().stack;\n };\n const ctorFunc = createImpl(_super);\n ctorFunc.prototype = Object.create(Error.prototype);\n ctorFunc.prototype.constructor = ctorFunc;\n return ctorFunc;\n}\n","import { createErrorClass } from './createErrorClass';\nexport const UnsubscriptionError = createErrorClass((_super) => function UnsubscriptionErrorImpl(errors) {\n _super(this);\n this.message = errors\n ? `${errors.length} errors occurred during unsubscription:\n${errors.map((err, i) => `${i + 1}) ${err.toString()}`).join('\\n ')}`\n : '';\n this.name = 'UnsubscriptionError';\n this.errors = errors;\n});\n","export function arrRemove(arr, item) {\n if (arr) {\n const index = arr.indexOf(item);\n 0 <= index && arr.splice(index, 1);\n }\n}\n","import { isFunction } from './util/isFunction';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\nimport { arrRemove } from './util/arrRemove';\nexport class Subscription {\n constructor(initialTeardown) {\n this.initialTeardown = initialTeardown;\n this.closed = false;\n this._parentage = null;\n this._finalizers = null;\n }\n unsubscribe() {\n let errors;\n if (!this.closed) {\n this.closed = true;\n const { _parentage } = this;\n if (_parentage) {\n this._parentage = null;\n if (Array.isArray(_parentage)) {\n for (const parent of _parentage) {\n parent.remove(this);\n }\n }\n else {\n _parentage.remove(this);\n }\n }\n const { initialTeardown: initialFinalizer } = this;\n if (isFunction(initialFinalizer)) {\n try {\n initialFinalizer();\n }\n catch (e) {\n errors = e instanceof UnsubscriptionError ? e.errors : [e];\n }\n }\n const { _finalizers } = this;\n if (_finalizers) {\n this._finalizers = null;\n for (const finalizer of _finalizers) {\n try {\n execFinalizer(finalizer);\n }\n catch (err) {\n errors = errors !== null && errors !== void 0 ? errors : [];\n if (err instanceof UnsubscriptionError) {\n errors = [...errors, ...err.errors];\n }\n else {\n errors.push(err);\n }\n }\n }\n }\n if (errors) {\n throw new UnsubscriptionError(errors);\n }\n }\n }\n add(teardown) {\n var _a;\n if (teardown && teardown !== this) {\n if (this.closed) {\n execFinalizer(teardown);\n }\n else {\n if (teardown instanceof Subscription) {\n if (teardown.closed || teardown._hasParent(this)) {\n return;\n }\n teardown._addParent(this);\n }\n (this._finalizers = (_a = this._finalizers) !== null && _a !== void 0 ? _a : []).push(teardown);\n }\n }\n }\n _hasParent(parent) {\n const { _parentage } = this;\n return _parentage === parent || (Array.isArray(_parentage) && _parentage.includes(parent));\n }\n _addParent(parent) {\n const { _parentage } = this;\n this._parentage = Array.isArray(_parentage) ? (_parentage.push(parent), _parentage) : _parentage ? [_parentage, parent] : parent;\n }\n _removeParent(parent) {\n const { _parentage } = this;\n if (_parentage === parent) {\n this._parentage = null;\n }\n else if (Array.isArray(_parentage)) {\n arrRemove(_parentage, parent);\n }\n }\n remove(teardown) {\n const { _finalizers } = this;\n _finalizers && arrRemove(_finalizers, teardown);\n if (teardown instanceof Subscription) {\n teardown._removeParent(this);\n }\n }\n}\nSubscription.EMPTY = (() => {\n const empty = new Subscription();\n empty.closed = true;\n return empty;\n})();\nexport const EMPTY_SUBSCRIPTION = Subscription.EMPTY;\nexport function isSubscription(value) {\n return (value instanceof Subscription ||\n (value && 'closed' in value && isFunction(value.remove) && isFunction(value.add) && isFunction(value.unsubscribe)));\n}\nfunction execFinalizer(finalizer) {\n if (isFunction(finalizer)) {\n finalizer();\n }\n else {\n finalizer.unsubscribe();\n }\n}\n","export const config = {\n onUnhandledError: null,\n onStoppedNotification: null,\n Promise: undefined,\n useDeprecatedSynchronousErrorHandling: false,\n useDeprecatedNextContext: false,\n};\n","export const timeoutProvider = {\n setTimeout(handler, timeout, ...args) {\n const { delegate } = timeoutProvider;\n if (delegate === null || delegate === void 0 ? void 0 : delegate.setTimeout) {\n return delegate.setTimeout(handler, timeout, ...args);\n }\n return setTimeout(handler, timeout, ...args);\n },\n clearTimeout(handle) {\n const { delegate } = timeoutProvider;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearTimeout) || clearTimeout)(handle);\n },\n delegate: undefined,\n};\n","import { config } from '../config';\nimport { timeoutProvider } from '../scheduler/timeoutProvider';\nexport function reportUnhandledError(err) {\n timeoutProvider.setTimeout(() => {\n const { onUnhandledError } = config;\n if (onUnhandledError) {\n onUnhandledError(err);\n }\n else {\n throw err;\n }\n });\n}\n","export function noop() { }\n","export const COMPLETE_NOTIFICATION = (() => createNotification('C', undefined, undefined))();\nexport function errorNotification(error) {\n return createNotification('E', undefined, error);\n}\nexport function nextNotification(value) {\n return createNotification('N', value, undefined);\n}\nexport function createNotification(kind, value, error) {\n return {\n kind,\n value,\n error,\n };\n}\n","import { config } from '../config';\nlet context = null;\nexport function errorContext(cb) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n const isRoot = !context;\n if (isRoot) {\n context = { errorThrown: false, error: null };\n }\n cb();\n if (isRoot) {\n const { errorThrown, error } = context;\n context = null;\n if (errorThrown) {\n throw error;\n }\n }\n }\n else {\n cb();\n }\n}\nexport function captureError(err) {\n if (config.useDeprecatedSynchronousErrorHandling && context) {\n context.errorThrown = true;\n context.error = err;\n }\n}\n","import { isFunction } from './util/isFunction';\nimport { isSubscription, Subscription } from './Subscription';\nimport { config } from './config';\nimport { reportUnhandledError } from './util/reportUnhandledError';\nimport { noop } from './util/noop';\nimport { nextNotification, errorNotification, COMPLETE_NOTIFICATION } from './NotificationFactories';\nimport { timeoutProvider } from './scheduler/timeoutProvider';\nimport { captureError } from './util/errorContext';\nexport class Subscriber extends Subscription {\n constructor(destination) {\n super();\n this.isStopped = false;\n if (destination) {\n this.destination = destination;\n if (isSubscription(destination)) {\n destination.add(this);\n }\n }\n else {\n this.destination = EMPTY_OBSERVER;\n }\n }\n static create(next, error, complete) {\n return new SafeSubscriber(next, error, complete);\n }\n next(value) {\n if (this.isStopped) {\n handleStoppedNotification(nextNotification(value), this);\n }\n else {\n this._next(value);\n }\n }\n error(err) {\n if (this.isStopped) {\n handleStoppedNotification(errorNotification(err), this);\n }\n else {\n this.isStopped = true;\n this._error(err);\n }\n }\n complete() {\n if (this.isStopped) {\n handleStoppedNotification(COMPLETE_NOTIFICATION, this);\n }\n else {\n this.isStopped = true;\n this._complete();\n }\n }\n unsubscribe() {\n if (!this.closed) {\n this.isStopped = true;\n super.unsubscribe();\n this.destination = null;\n }\n }\n _next(value) {\n this.destination.next(value);\n }\n _error(err) {\n try {\n this.destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n }\n _complete() {\n try {\n this.destination.complete();\n }\n finally {\n this.unsubscribe();\n }\n }\n}\nconst _bind = Function.prototype.bind;\nfunction bind(fn, thisArg) {\n return _bind.call(fn, thisArg);\n}\nclass ConsumerObserver {\n constructor(partialObserver) {\n this.partialObserver = partialObserver;\n }\n next(value) {\n const { partialObserver } = this;\n if (partialObserver.next) {\n try {\n partialObserver.next(value);\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n }\n error(err) {\n const { partialObserver } = this;\n if (partialObserver.error) {\n try {\n partialObserver.error(err);\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n else {\n handleUnhandledError(err);\n }\n }\n complete() {\n const { partialObserver } = this;\n if (partialObserver.complete) {\n try {\n partialObserver.complete();\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n }\n}\nexport class SafeSubscriber extends Subscriber {\n constructor(observerOrNext, error, complete) {\n super();\n let partialObserver;\n if (isFunction(observerOrNext) || !observerOrNext) {\n partialObserver = {\n next: (observerOrNext !== null && observerOrNext !== void 0 ? observerOrNext : undefined),\n error: error !== null && error !== void 0 ? error : undefined,\n complete: complete !== null && complete !== void 0 ? complete : undefined,\n };\n }\n else {\n let context;\n if (this && config.useDeprecatedNextContext) {\n context = Object.create(observerOrNext);\n context.unsubscribe = () => this.unsubscribe();\n partialObserver = {\n next: observerOrNext.next && bind(observerOrNext.next, context),\n error: observerOrNext.error && bind(observerOrNext.error, context),\n complete: observerOrNext.complete && bind(observerOrNext.complete, context),\n };\n }\n else {\n partialObserver = observerOrNext;\n }\n }\n this.destination = new ConsumerObserver(partialObserver);\n }\n}\nfunction handleUnhandledError(error) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n captureError(error);\n }\n else {\n reportUnhandledError(error);\n }\n}\nfunction defaultErrorHandler(err) {\n throw err;\n}\nfunction handleStoppedNotification(notification, subscriber) {\n const { onStoppedNotification } = config;\n onStoppedNotification && timeoutProvider.setTimeout(() => onStoppedNotification(notification, subscriber));\n}\nexport const EMPTY_OBSERVER = {\n closed: true,\n next: noop,\n error: defaultErrorHandler,\n complete: noop,\n};\n","export const observable = (() => (typeof Symbol === 'function' && Symbol.observable) || '@@observable')();\n","export function identity(x) {\n return x;\n}\n","import { identity } from './identity';\nexport function pipe(...fns) {\n return pipeFromArray(fns);\n}\nexport function pipeFromArray(fns) {\n if (fns.length === 0) {\n return identity;\n }\n if (fns.length === 1) {\n return fns[0];\n }\n return function piped(input) {\n return fns.reduce((prev, fn) => fn(prev), input);\n };\n}\n","import { SafeSubscriber, Subscriber } from './Subscriber';\nimport { isSubscription } from './Subscription';\nimport { observable as Symbol_observable } from './symbol/observable';\nimport { pipeFromArray } from './util/pipe';\nimport { config } from './config';\nimport { isFunction } from './util/isFunction';\nimport { errorContext } from './util/errorContext';\nexport class Observable {\n constructor(subscribe) {\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n lift(operator) {\n const observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n }\n subscribe(observerOrNext, error, complete) {\n const subscriber = isSubscriber(observerOrNext) ? observerOrNext : new SafeSubscriber(observerOrNext, error, complete);\n errorContext(() => {\n const { operator, source } = this;\n subscriber.add(operator\n ?\n operator.call(subscriber, source)\n : source\n ?\n this._subscribe(subscriber)\n :\n this._trySubscribe(subscriber));\n });\n return subscriber;\n }\n _trySubscribe(sink) {\n try {\n return this._subscribe(sink);\n }\n catch (err) {\n sink.error(err);\n }\n }\n forEach(next, promiseCtor) {\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor((resolve, reject) => {\n const subscriber = new SafeSubscriber({\n next: (value) => {\n try {\n next(value);\n }\n catch (err) {\n reject(err);\n subscriber.unsubscribe();\n }\n },\n error: reject,\n complete: resolve,\n });\n this.subscribe(subscriber);\n });\n }\n _subscribe(subscriber) {\n var _a;\n return (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber);\n }\n [Symbol_observable]() {\n return this;\n }\n pipe(...operations) {\n return pipeFromArray(operations)(this);\n }\n toPromise(promiseCtor) {\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor((resolve, reject) => {\n let value;\n this.subscribe((x) => (value = x), (err) => reject(err), () => resolve(value));\n });\n }\n}\nObservable.create = (subscribe) => {\n return new Observable(subscribe);\n};\nfunction getPromiseCtor(promiseCtor) {\n var _a;\n return (_a = promiseCtor !== null && promiseCtor !== void 0 ? promiseCtor : config.Promise) !== null && _a !== void 0 ? _a : Promise;\n}\nfunction isObserver(value) {\n return value && isFunction(value.next) && isFunction(value.error) && isFunction(value.complete);\n}\nfunction isSubscriber(value) {\n return (value && value instanceof Subscriber) || (isObserver(value) && isSubscription(value));\n}\n","import { createErrorClass } from './createErrorClass';\nexport const ObjectUnsubscribedError = createErrorClass((_super) => function ObjectUnsubscribedErrorImpl() {\n _super(this);\n this.name = 'ObjectUnsubscribedError';\n this.message = 'object unsubscribed';\n});\n","import { Observable } from './Observable';\nimport { Subscription, EMPTY_SUBSCRIPTION } from './Subscription';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { arrRemove } from './util/arrRemove';\nimport { errorContext } from './util/errorContext';\nexport class Subject extends Observable {\n constructor() {\n super();\n this.closed = false;\n this.currentObservers = null;\n this.observers = [];\n this.isStopped = false;\n this.hasError = false;\n this.thrownError = null;\n }\n lift(operator) {\n const subject = new AnonymousSubject(this, this);\n subject.operator = operator;\n return subject;\n }\n _throwIfClosed() {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n }\n next(value) {\n errorContext(() => {\n this._throwIfClosed();\n if (!this.isStopped) {\n if (!this.currentObservers) {\n this.currentObservers = Array.from(this.observers);\n }\n for (const observer of this.currentObservers) {\n observer.next(value);\n }\n }\n });\n }\n error(err) {\n errorContext(() => {\n this._throwIfClosed();\n if (!this.isStopped) {\n this.hasError = this.isStopped = true;\n this.thrownError = err;\n const { observers } = this;\n while (observers.length) {\n observers.shift().error(err);\n }\n }\n });\n }\n complete() {\n errorContext(() => {\n this._throwIfClosed();\n if (!this.isStopped) {\n this.isStopped = true;\n const { observers } = this;\n while (observers.length) {\n observers.shift().complete();\n }\n }\n });\n }\n unsubscribe() {\n this.isStopped = this.closed = true;\n this.observers = this.currentObservers = null;\n }\n get observed() {\n var _a;\n return ((_a = this.observers) === null || _a === void 0 ? void 0 : _a.length) > 0;\n }\n _trySubscribe(subscriber) {\n this._throwIfClosed();\n return super._trySubscribe(subscriber);\n }\n _subscribe(subscriber) {\n this._throwIfClosed();\n this._checkFinalizedStatuses(subscriber);\n return this._innerSubscribe(subscriber);\n }\n _innerSubscribe(subscriber) {\n const { hasError, isStopped, observers } = this;\n if (hasError || isStopped) {\n return EMPTY_SUBSCRIPTION;\n }\n this.currentObservers = null;\n observers.push(subscriber);\n return new Subscription(() => {\n this.currentObservers = null;\n arrRemove(observers, subscriber);\n });\n }\n _checkFinalizedStatuses(subscriber) {\n const { hasError, thrownError, isStopped } = this;\n if (hasError) {\n subscriber.error(thrownError);\n }\n else if (isStopped) {\n subscriber.complete();\n }\n }\n asObservable() {\n const observable = new Observable();\n observable.source = this;\n return observable;\n }\n}\nSubject.create = (destination, source) => {\n return new AnonymousSubject(destination, source);\n};\nexport class AnonymousSubject extends Subject {\n constructor(destination, source) {\n super();\n this.destination = destination;\n this.source = source;\n }\n next(value) {\n var _a, _b;\n (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.next) === null || _b === void 0 ? void 0 : _b.call(_a, value);\n }\n error(err) {\n var _a, _b;\n (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.error) === null || _b === void 0 ? void 0 : _b.call(_a, err);\n }\n complete() {\n var _a, _b;\n (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.complete) === null || _b === void 0 ? void 0 : _b.call(_a);\n }\n _subscribe(subscriber) {\n var _a, _b;\n return (_b = (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber)) !== null && _b !== void 0 ? _b : EMPTY_SUBSCRIPTION;\n }\n}\n","import { Subject } from './Subject';\nexport class BehaviorSubject extends Subject {\n constructor(_value) {\n super();\n this._value = _value;\n }\n get value() {\n return this.getValue();\n }\n _subscribe(subscriber) {\n const subscription = super._subscribe(subscriber);\n !subscription.closed && subscriber.next(this._value);\n return subscription;\n }\n getValue() {\n const { hasError, thrownError, _value } = this;\n if (hasError) {\n throw thrownError;\n }\n this._throwIfClosed();\n return _value;\n }\n next(value) {\n super.next((this._value = value));\n }\n}\n","import { isFunction } from './isFunction';\nexport function hasLift(source) {\n return isFunction(source === null || source === void 0 ? void 0 : source.lift);\n}\nexport function operate(init) {\n return (source) => {\n if (hasLift(source)) {\n return source.lift(function (liftedSource) {\n try {\n return init(liftedSource, this);\n }\n catch (err) {\n this.error(err);\n }\n });\n }\n throw new TypeError('Unable to lift unknown Observable type');\n };\n}\n","import { Subscriber } from '../Subscriber';\nexport function createOperatorSubscriber(destination, onNext, onComplete, onError, onFinalize) {\n return new OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize);\n}\nexport class OperatorSubscriber extends Subscriber {\n constructor(destination, onNext, onComplete, onError, onFinalize, shouldUnsubscribe) {\n super(destination);\n this.onFinalize = onFinalize;\n this.shouldUnsubscribe = shouldUnsubscribe;\n this._next = onNext\n ? function (value) {\n try {\n onNext(value);\n }\n catch (err) {\n destination.error(err);\n }\n }\n : super._next;\n this._error = onError\n ? function (err) {\n try {\n onError(err);\n }\n catch (err) {\n destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n }\n : super._error;\n this._complete = onComplete\n ? function () {\n try {\n onComplete();\n }\n catch (err) {\n destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n }\n : super._complete;\n }\n unsubscribe() {\n var _a;\n if (!this.shouldUnsubscribe || this.shouldUnsubscribe()) {\n const { closed } = this;\n super.unsubscribe();\n !closed && ((_a = this.onFinalize) === null || _a === void 0 ? void 0 : _a.call(this));\n }\n }\n}\n","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function map(project, thisArg) {\n return operate((source, subscriber) => {\n let index = 0;\n source.subscribe(createOperatorSubscriber(subscriber, (value) => {\n subscriber.next(project.call(thisArg, value, index++));\n }));\n });\n}\n","/**\n * @license Angular v17.3.1\n * (c) 2010-2022 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport { SIGNAL_NODE as SIGNAL_NODE$1, signalSetFn as signalSetFn$1, producerAccessed as producerAccessed$1, SIGNAL as SIGNAL$1, getActiveConsumer as getActiveConsumer$1, setActiveConsumer as setActiveConsumer$1, consumerDestroy as consumerDestroy$1, REACTIVE_NODE as REACTIVE_NODE$1, consumerBeforeComputation as consumerBeforeComputation$1, consumerAfterComputation as consumerAfterComputation$1, consumerPollProducersForChange as consumerPollProducersForChange$1, createSignal as createSignal$1, signalUpdateFn as signalUpdateFn$1, createComputed as createComputed$1, setThrowInvalidWriteToSignalError as setThrowInvalidWriteToSignalError$1, createWatch as createWatch$1 } from '@angular/core/primitives/signals';\nimport { Subject, Subscription, BehaviorSubject } from 'rxjs';\nimport { map, first } from 'rxjs/operators';\n\n/**\n * Base URL for the error details page.\n *\n * Keep this constant in sync across:\n * - packages/compiler-cli/src/ngtsc/diagnostics/src/error_details_base_url.ts\n * - packages/core/src/error_details_base_url.ts\n */\nconst ERROR_DETAILS_PAGE_BASE_URL = 'https://angular.io/errors';\n/**\n * URL for the XSS security documentation.\n */\nconst XSS_SECURITY_URL = 'https://g.co/ng/security#xss';\n\n/**\n * Class that represents a runtime error.\n * Formats and outputs the error message in a consistent way.\n *\n * Example:\n * ```\n * throw new RuntimeError(\n * RuntimeErrorCode.INJECTOR_ALREADY_DESTROYED,\n * ngDevMode && 'Injector has already been destroyed.');\n * ```\n *\n * Note: the `message` argument contains a descriptive error message as a string in development\n * mode (when the `ngDevMode` is defined). In production mode (after tree-shaking pass), the\n * `message` argument becomes `false`, thus we account for it in the typings and the runtime\n * logic.\n */\nclass RuntimeError extends Error {\n constructor(code, message) {\n super(formatRuntimeError(code, message));\n this.code = code;\n }\n}\n/**\n * Called to format a runtime error.\n * See additional info on the `message` argument type in the `RuntimeError` class description.\n */\nfunction formatRuntimeError(code, message) {\n // Error code might be a negative number, which is a special marker that instructs the logic to\n // generate a link to the error details page on angular.io.\n // We also prepend `0` to non-compile-time errors.\n const fullCode = `NG0${Math.abs(code)}`;\n let errorMessage = `${fullCode}${message ? ': ' + message : ''}`;\n if (ngDevMode && code < 0) {\n const addPeriodSeparator = !errorMessage.match(/[.,;!?\\n]$/);\n const separator = addPeriodSeparator ? '.' : '';\n errorMessage =\n `${errorMessage}${separator} Find more at ${ERROR_DETAILS_PAGE_BASE_URL}/${fullCode}`;\n }\n return errorMessage;\n}\n\nconst REQUIRED_UNSET_VALUE = /* @__PURE__ */ Symbol('InputSignalNode#UNSET');\n// Note: Using an IIFE here to ensure that the spread assignment is not considered\n// a side-effect, ending up preserving `COMPUTED_NODE` and `REACTIVE_NODE`.\n// TODO: remove when https://github.com/evanw/esbuild/issues/3392 is resolved.\nconst INPUT_SIGNAL_NODE = /* @__PURE__ */ (() => {\n return {\n ...SIGNAL_NODE$1,\n transformFn: undefined,\n applyValueToInputSignal(node, value) {\n signalSetFn$1(node, value);\n }\n };\n})();\n\nconst ɵINPUT_SIGNAL_BRAND_READ_TYPE = /* @__PURE__ */ Symbol();\nconst ɵINPUT_SIGNAL_BRAND_WRITE_TYPE = /* @__PURE__ */ Symbol();\n/**\n * Creates an input signal.\n *\n * @param initialValue The initial value.\n * Can be set to {@link REQUIRED_UNSET_VALUE} for required inputs.\n * @param options Additional options for the input. e.g. a transform, or an alias.\n */\nfunction createInputSignal(initialValue, options) {\n const node = Object.create(INPUT_SIGNAL_NODE);\n node.value = initialValue;\n // Perf note: Always set `transformFn` here to ensure that `node` always\n // has the same v8 class shape, allowing monomorphic reads on input signals.\n node.transformFn = options?.transform;\n function inputValueFn() {\n // Record that someone looked at this signal.\n producerAccessed$1(node);\n if (node.value === REQUIRED_UNSET_VALUE) {\n throw new RuntimeError(-950 /* RuntimeErrorCode.REQUIRED_INPUT_NO_VALUE */, ngDevMode && 'Input is required but no value is available yet.');\n }\n return node.value;\n }\n inputValueFn[SIGNAL$1] = node;\n if (ngDevMode) {\n inputValueFn.toString = () => `[Input Signal: ${inputValueFn()}]`;\n }\n return inputValueFn;\n}\n\n/**\n * Convince closure compiler that the wrapped function has no side-effects.\n *\n * Closure compiler always assumes that `toString` has no side-effects. We use this quirk to\n * allow us to execute a function but have closure compiler mark the call as no-side-effects.\n * It is important that the return value for the `noSideEffects` function be assigned\n * to something which is retained otherwise the call to `noSideEffects` will be removed by closure\n * compiler.\n */\nfunction noSideEffects(fn) {\n return { toString: fn }.toString();\n}\n\nconst ANNOTATIONS = '__annotations__';\nconst PARAMETERS = '__parameters__';\nconst PROP_METADATA = '__prop__metadata__';\n/**\n * @suppress {globalThis}\n */\nfunction makeDecorator(name, props, parentClass, additionalProcessing, typeFn) {\n return noSideEffects(() => {\n const metaCtor = makeMetadataCtor(props);\n function DecoratorFactory(...args) {\n if (this instanceof DecoratorFactory) {\n metaCtor.call(this, ...args);\n return this;\n }\n const annotationInstance = new DecoratorFactory(...args);\n return function TypeDecorator(cls) {\n if (typeFn)\n typeFn(cls, ...args);\n // Use of Object.defineProperty is important since it creates non-enumerable property which\n // prevents the property is copied during subclassing.\n const annotations = cls.hasOwnProperty(ANNOTATIONS) ?\n cls[ANNOTATIONS] :\n Object.defineProperty(cls, ANNOTATIONS, { value: [] })[ANNOTATIONS];\n annotations.push(annotationInstance);\n if (additionalProcessing)\n additionalProcessing(cls);\n return cls;\n };\n }\n if (parentClass) {\n DecoratorFactory.prototype = Object.create(parentClass.prototype);\n }\n DecoratorFactory.prototype.ngMetadataName = name;\n DecoratorFactory.annotationCls = DecoratorFactory;\n return DecoratorFactory;\n });\n}\nfunction makeMetadataCtor(props) {\n return function ctor(...args) {\n if (props) {\n const values = props(...args);\n for (const propName in values) {\n this[propName] = values[propName];\n }\n }\n };\n}\nfunction makeParamDecorator(name, props, parentClass) {\n return noSideEffects(() => {\n const metaCtor = makeMetadataCtor(props);\n function ParamDecoratorFactory(...args) {\n if (this instanceof ParamDecoratorFactory) {\n metaCtor.apply(this, args);\n return this;\n }\n const annotationInstance = new ParamDecoratorFactory(...args);\n ParamDecorator.annotation = annotationInstance;\n return ParamDecorator;\n function ParamDecorator(cls, unusedKey, index) {\n // Use of Object.defineProperty is important since it creates non-enumerable property which\n // prevents the property is copied during subclassing.\n const parameters = cls.hasOwnProperty(PARAMETERS) ?\n cls[PARAMETERS] :\n Object.defineProperty(cls, PARAMETERS, { value: [] })[PARAMETERS];\n // there might be gaps if some in between parameters do not have annotations.\n // we pad with nulls.\n while (parameters.length <= index) {\n parameters.push(null);\n }\n (parameters[index] = parameters[index] || []).push(annotationInstance);\n return cls;\n }\n }\n if (parentClass) {\n ParamDecoratorFactory.prototype = Object.create(parentClass.prototype);\n }\n ParamDecoratorFactory.prototype.ngMetadataName = name;\n ParamDecoratorFactory.annotationCls = ParamDecoratorFactory;\n return ParamDecoratorFactory;\n });\n}\nfunction makePropDecorator(name, props, parentClass, additionalProcessing) {\n return noSideEffects(() => {\n const metaCtor = makeMetadataCtor(props);\n function PropDecoratorFactory(...args) {\n if (this instanceof PropDecoratorFactory) {\n metaCtor.apply(this, args);\n return this;\n }\n const decoratorInstance = new PropDecoratorFactory(...args);\n function PropDecorator(target, name) {\n // target is undefined with standard decorators. This case is not supported and will throw\n // if this decorator is used in JIT mode with standard decorators.\n if (target === undefined) {\n throw new Error('Standard Angular field decorators are not supported in JIT mode.');\n }\n const constructor = target.constructor;\n // Use of Object.defineProperty is important because it creates a non-enumerable property\n // which prevents the property from being copied during subclassing.\n const meta = constructor.hasOwnProperty(PROP_METADATA) ?\n constructor[PROP_METADATA] :\n Object.defineProperty(constructor, PROP_METADATA, { value: {} })[PROP_METADATA];\n meta[name] = meta.hasOwnProperty(name) && meta[name] || [];\n meta[name].unshift(decoratorInstance);\n if (additionalProcessing)\n additionalProcessing(target, name, ...args);\n }\n return PropDecorator;\n }\n if (parentClass) {\n PropDecoratorFactory.prototype = Object.create(parentClass.prototype);\n }\n PropDecoratorFactory.prototype.ngMetadataName = name;\n PropDecoratorFactory.annotationCls = PropDecoratorFactory;\n return PropDecoratorFactory;\n });\n}\n\nconst _global = globalThis;\n\nfunction ngDevModeResetPerfCounters() {\n const locationString = typeof location !== 'undefined' ? location.toString() : '';\n const newCounters = {\n namedConstructors: locationString.indexOf('ngDevMode=namedConstructors') != -1,\n firstCreatePass: 0,\n tNode: 0,\n tView: 0,\n rendererCreateTextNode: 0,\n rendererSetText: 0,\n rendererCreateElement: 0,\n rendererAddEventListener: 0,\n rendererSetAttribute: 0,\n rendererRemoveAttribute: 0,\n rendererSetProperty: 0,\n rendererSetClassName: 0,\n rendererAddClass: 0,\n rendererRemoveClass: 0,\n rendererSetStyle: 0,\n rendererRemoveStyle: 0,\n rendererDestroy: 0,\n rendererDestroyNode: 0,\n rendererMoveNode: 0,\n rendererRemoveNode: 0,\n rendererAppendChild: 0,\n rendererInsertBefore: 0,\n rendererCreateComment: 0,\n hydratedNodes: 0,\n hydratedComponents: 0,\n dehydratedViewsRemoved: 0,\n dehydratedViewsCleanupRuns: 0,\n componentsSkippedHydration: 0,\n };\n // Make sure to refer to ngDevMode as ['ngDevMode'] for closure.\n const allowNgDevModeTrue = locationString.indexOf('ngDevMode=false') === -1;\n if (!allowNgDevModeTrue) {\n _global['ngDevMode'] = false;\n }\n else {\n if (typeof _global['ngDevMode'] !== 'object') {\n _global['ngDevMode'] = {};\n }\n Object.assign(_global['ngDevMode'], newCounters);\n }\n return newCounters;\n}\n/**\n * This function checks to see if the `ngDevMode` has been set. If yes,\n * then we honor it, otherwise we default to dev mode with additional checks.\n *\n * The idea is that unless we are doing production build where we explicitly\n * set `ngDevMode == false` we should be helping the developer by providing\n * as much early warning and errors as possible.\n *\n * `ɵɵdefineComponent` is guaranteed to have been called before any component template functions\n * (and thus Ivy instructions), so a single initialization there is sufficient to ensure ngDevMode\n * is defined for the entire instruction set.\n *\n * When checking `ngDevMode` on toplevel, always init it before referencing it\n * (e.g. `((typeof ngDevMode === 'undefined' || ngDevMode) && initNgDevMode())`), otherwise you can\n * get a `ReferenceError` like in https://github.com/angular/angular/issues/31595.\n *\n * Details on possible values for `ngDevMode` can be found on its docstring.\n *\n * NOTE:\n * - changes to the `ngDevMode` name must be synced with `compiler-cli/src/tooling.ts`.\n */\nfunction initNgDevMode() {\n // The below checks are to ensure that calling `initNgDevMode` multiple times does not\n // reset the counters.\n // If the `ngDevMode` is not an object, then it means we have not created the perf counters\n // yet.\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (typeof ngDevMode !== 'object' || Object.keys(ngDevMode).length === 0) {\n ngDevModeResetPerfCounters();\n }\n return typeof ngDevMode !== 'undefined' && !!ngDevMode;\n }\n return false;\n}\n\nfunction getClosureSafeProperty(objWithPropertyToExtract) {\n for (let key in objWithPropertyToExtract) {\n if (objWithPropertyToExtract[key] === getClosureSafeProperty) {\n return key;\n }\n }\n throw Error('Could not find renamed property on target object.');\n}\n/**\n * Sets properties on a target object from a source object, but only if\n * the property doesn't already exist on the target object.\n * @param target The target to set properties on\n * @param source The source of the property keys and values to set\n */\nfunction fillProperties(target, source) {\n for (const key in source) {\n if (source.hasOwnProperty(key) && !target.hasOwnProperty(key)) {\n target[key] = source[key];\n }\n }\n}\n\nfunction stringify(token) {\n if (typeof token === 'string') {\n return token;\n }\n if (Array.isArray(token)) {\n return '[' + token.map(stringify).join(', ') + ']';\n }\n if (token == null) {\n return '' + token;\n }\n if (token.overriddenName) {\n return `${token.overriddenName}`;\n }\n if (token.name) {\n return `${token.name}`;\n }\n const res = token.toString();\n if (res == null) {\n return '' + res;\n }\n const newLineIndex = res.indexOf('\\n');\n return newLineIndex === -1 ? res : res.substring(0, newLineIndex);\n}\n/**\n * Concatenates two strings with separator, allocating new strings only when necessary.\n *\n * @param before before string.\n * @param separator separator string.\n * @param after after string.\n * @returns concatenated string.\n */\nfunction concatStringsWithSpace(before, after) {\n return (before == null || before === '') ?\n (after === null ? '' : after) :\n ((after == null || after === '') ? before : before + ' ' + after);\n}\n/**\n * Ellipses the string in the middle when longer than the max length\n *\n * @param string\n * @param maxLength of the output string\n * @returns ellipsed string with ... in the middle\n */\nfunction truncateMiddle(str, maxLength = 100) {\n if (!str || maxLength < 1 || str.length <= maxLength)\n return str;\n if (maxLength == 1)\n return str.substring(0, 1) + '...';\n const halfLimit = Math.round(maxLength / 2);\n return str.substring(0, halfLimit) + '...' + str.substring(str.length - halfLimit);\n}\n\nconst __forward_ref__ = getClosureSafeProperty({ __forward_ref__: getClosureSafeProperty });\n/**\n * Allows to refer to references which are not yet defined.\n *\n * For instance, `forwardRef` is used when the `token` which we need to refer to for the purposes of\n * DI is declared, but not yet defined. It is also used when the `token` which we use when creating\n * a query is not yet defined.\n *\n * `forwardRef` is also used to break circularities in standalone components imports.\n *\n * @usageNotes\n * ### Circular dependency example\n * {@example core/di/ts/forward_ref/forward_ref_spec.ts region='forward_ref'}\n *\n * ### Circular standalone reference import example\n * ```ts\n * @Component({\n * standalone: true,\n * imports: [ChildComponent],\n * selector: 'app-parent',\n * template: ``,\n * })\n * export class ParentComponent {\n * @Input() hideParent: boolean;\n * }\n *\n *\n * @Component({\n * standalone: true,\n * imports: [CommonModule, forwardRef(() => ParentComponent)],\n * selector: 'app-child',\n * template: ``,\n * })\n * export class ChildComponent {\n * @Input() hideParent: boolean;\n * }\n * ```\n *\n * @publicApi\n */\nfunction forwardRef(forwardRefFn) {\n forwardRefFn.__forward_ref__ = forwardRef;\n forwardRefFn.toString = function () {\n return stringify(this());\n };\n return forwardRefFn;\n}\n/**\n * Lazily retrieves the reference value from a forwardRef.\n *\n * Acts as the identity function when given a non-forward-ref value.\n *\n * @usageNotes\n * ### Example\n *\n * {@example core/di/ts/forward_ref/forward_ref_spec.ts region='resolve_forward_ref'}\n *\n * @see {@link forwardRef}\n * @publicApi\n */\nfunction resolveForwardRef(type) {\n return isForwardRef(type) ? type() : type;\n}\n/** Checks whether a function is wrapped by a `forwardRef`. */\nfunction isForwardRef(fn) {\n return typeof fn === 'function' && fn.hasOwnProperty(__forward_ref__) &&\n fn.__forward_ref__ === forwardRef;\n}\n\n// The functions in this file verify that the assumptions we are making\nfunction assertNumber(actual, msg) {\n if (!(typeof actual === 'number')) {\n throwError(msg, typeof actual, 'number', '===');\n }\n}\nfunction assertNumberInRange(actual, minInclusive, maxInclusive) {\n assertNumber(actual, 'Expected a number');\n assertLessThanOrEqual(actual, maxInclusive, 'Expected number to be less than or equal to');\n assertGreaterThanOrEqual(actual, minInclusive, 'Expected number to be greater than or equal to');\n}\nfunction assertString(actual, msg) {\n if (!(typeof actual === 'string')) {\n throwError(msg, actual === null ? 'null' : typeof actual, 'string', '===');\n }\n}\nfunction assertFunction(actual, msg) {\n if (!(typeof actual === 'function')) {\n throwError(msg, actual === null ? 'null' : typeof actual, 'function', '===');\n }\n}\nfunction assertEqual(actual, expected, msg) {\n if (!(actual == expected)) {\n throwError(msg, actual, expected, '==');\n }\n}\nfunction assertNotEqual(actual, expected, msg) {\n if (!(actual != expected)) {\n throwError(msg, actual, expected, '!=');\n }\n}\nfunction assertSame(actual, expected, msg) {\n if (!(actual === expected)) {\n throwError(msg, actual, expected, '===');\n }\n}\nfunction assertNotSame(actual, expected, msg) {\n if (!(actual !== expected)) {\n throwError(msg, actual, expected, '!==');\n }\n}\nfunction assertLessThan(actual, expected, msg) {\n if (!(actual < expected)) {\n throwError(msg, actual, expected, '<');\n }\n}\nfunction assertLessThanOrEqual(actual, expected, msg) {\n if (!(actual <= expected)) {\n throwError(msg, actual, expected, '<=');\n }\n}\nfunction assertGreaterThan(actual, expected, msg) {\n if (!(actual > expected)) {\n throwError(msg, actual, expected, '>');\n }\n}\nfunction assertGreaterThanOrEqual(actual, expected, msg) {\n if (!(actual >= expected)) {\n throwError(msg, actual, expected, '>=');\n }\n}\nfunction assertNotDefined(actual, msg) {\n if (actual != null) {\n throwError(msg, actual, null, '==');\n }\n}\nfunction assertDefined(actual, msg) {\n if (actual == null) {\n throwError(msg, actual, null, '!=');\n }\n}\nfunction throwError(msg, actual, expected, comparison) {\n throw new Error(`ASSERTION ERROR: ${msg}` +\n (comparison == null ? '' : ` [Expected=> ${expected} ${comparison} ${actual} <=Actual]`));\n}\nfunction assertDomNode(node) {\n if (!(node instanceof Node)) {\n throwError(`The provided value must be an instance of a DOM Node but got ${stringify(node)}`);\n }\n}\nfunction assertElement(node) {\n if (!(node instanceof Element)) {\n throwError(`The provided value must be an element but got ${stringify(node)}`);\n }\n}\nfunction assertIndexInRange(arr, index) {\n assertDefined(arr, 'Array must be defined.');\n const maxLen = arr.length;\n if (index < 0 || index >= maxLen) {\n throwError(`Index expected to be less than ${maxLen} but got ${index}`);\n }\n}\nfunction assertOneOf(value, ...validValues) {\n if (validValues.indexOf(value) !== -1)\n return true;\n throwError(`Expected value to be one of ${JSON.stringify(validValues)} but was ${JSON.stringify(value)}.`);\n}\nfunction assertNotReactive(fn) {\n if (getActiveConsumer$1() !== null) {\n throwError(`${fn}() should never be called in a reactive context.`);\n }\n}\n\n/**\n * Construct an injectable definition which defines how a token will be constructed by the DI\n * system, and in which injectors (if any) it will be available.\n *\n * This should be assigned to a static `ɵprov` field on a type, which will then be an\n * `InjectableType`.\n *\n * Options:\n * * `providedIn` determines which injectors will include the injectable, by either associating it\n * with an `@NgModule` or other `InjectorType`, or by specifying that this injectable should be\n * provided in the `'root'` injector, which will be the application-level injector in most apps.\n * * `factory` gives the zero argument function which will create an instance of the injectable.\n * The factory can call [`inject`](api/core/inject) to access the `Injector` and request injection\n * of dependencies.\n *\n * @codeGenApi\n * @publicApi This instruction has been emitted by ViewEngine for some time and is deployed to npm.\n */\nfunction ɵɵdefineInjectable(opts) {\n return {\n token: opts.token,\n providedIn: opts.providedIn || null,\n factory: opts.factory,\n value: undefined,\n };\n}\n/**\n * @deprecated in v8, delete after v10. This API should be used only by generated code, and that\n * code should now use ɵɵdefineInjectable instead.\n * @publicApi\n */\nconst defineInjectable = ɵɵdefineInjectable;\n/**\n * Construct an `InjectorDef` which configures an injector.\n *\n * This should be assigned to a static injector def (`ɵinj`) field on a type, which will then be an\n * `InjectorType`.\n *\n * Options:\n *\n * * `providers`: an optional array of providers to add to the injector. Each provider must\n * either have a factory or point to a type which has a `ɵprov` static property (the\n * type must be an `InjectableType`).\n * * `imports`: an optional array of imports of other `InjectorType`s or `InjectorTypeWithModule`s\n * whose providers will also be added to the injector. Locally provided types will override\n * providers from imports.\n *\n * @codeGenApi\n */\nfunction ɵɵdefineInjector(options) {\n return { providers: options.providers || [], imports: options.imports || [] };\n}\n/**\n * Read the injectable def (`ɵprov`) for `type` in a way which is immune to accidentally reading\n * inherited value.\n *\n * @param type A type which may have its own (non-inherited) `ɵprov`.\n */\nfunction getInjectableDef(type) {\n return getOwnDefinition(type, NG_PROV_DEF) || getOwnDefinition(type, NG_INJECTABLE_DEF);\n}\nfunction isInjectable(type) {\n return getInjectableDef(type) !== null;\n}\n/**\n * Return definition only if it is defined directly on `type` and is not inherited from a base\n * class of `type`.\n */\nfunction getOwnDefinition(type, field) {\n return type.hasOwnProperty(field) ? type[field] : null;\n}\n/**\n * Read the injectable def (`ɵprov`) for `type` or read the `ɵprov` from one of its ancestors.\n *\n * @param type A type which may have `ɵprov`, via inheritance.\n *\n * @deprecated Will be removed in a future version of Angular, where an error will occur in the\n * scenario if we find the `ɵprov` on an ancestor only.\n */\nfunction getInheritedInjectableDef(type) {\n const def = type && (type[NG_PROV_DEF] || type[NG_INJECTABLE_DEF]);\n if (def) {\n ngDevMode &&\n console.warn(`DEPRECATED: DI is instantiating a token \"${type.name}\" that inherits its @Injectable decorator but does not provide one itself.\\n` +\n `This will become an error in a future version of Angular. Please add @Injectable() to the \"${type.name}\" class.`);\n return def;\n }\n else {\n return null;\n }\n}\n/**\n * Read the injector def type in a way which is immune to accidentally reading inherited value.\n *\n * @param type type which may have an injector def (`ɵinj`)\n */\nfunction getInjectorDef(type) {\n return type && (type.hasOwnProperty(NG_INJ_DEF) || type.hasOwnProperty(NG_INJECTOR_DEF)) ?\n type[NG_INJ_DEF] :\n null;\n}\nconst NG_PROV_DEF = getClosureSafeProperty({ ɵprov: getClosureSafeProperty });\nconst NG_INJ_DEF = getClosureSafeProperty({ ɵinj: getClosureSafeProperty });\n// We need to keep these around so we can read off old defs if new defs are unavailable\nconst NG_INJECTABLE_DEF = getClosureSafeProperty({ ngInjectableDef: getClosureSafeProperty });\nconst NG_INJECTOR_DEF = getClosureSafeProperty({ ngInjectorDef: getClosureSafeProperty });\n\n/**\n * Creates a token that can be used in a DI Provider.\n *\n * Use an `InjectionToken` whenever the type you are injecting is not reified (does not have a\n * runtime representation) such as when injecting an interface, callable type, array or\n * parameterized type.\n *\n * `InjectionToken` is parameterized on `T` which is the type of object which will be returned by\n * the `Injector`. This provides an additional level of type safety.\n *\n *
\n *\n * **Important Note**: Ensure that you use the same instance of the `InjectionToken` in both the\n * provider and the injection call. Creating a new instance of `InjectionToken` in different places,\n * even with the same description, will be treated as different tokens by Angular's DI system,\n * leading to a `NullInjectorError`.\n *\n *
\n *\n * \n *\n * When creating an `InjectionToken`, you can optionally specify a factory function which returns\n * (possibly by creating) a default value of the parameterized type `T`. This sets up the\n * `InjectionToken` using this factory as a provider as if it was defined explicitly in the\n * application's root injector. If the factory function, which takes zero arguments, needs to inject\n * dependencies, it can do so using the [`inject`](api/core/inject) function.\n * As you can see in the Tree-shakable InjectionToken example below.\n *\n * Additionally, if a `factory` is specified you can also specify the `providedIn` option, which\n * overrides the above behavior and marks the token as belonging to a particular `@NgModule` (note:\n * this option is now deprecated). As mentioned above, `'root'` is the default value for\n * `providedIn`.\n *\n * The `providedIn: NgModule` and `providedIn: 'any'` options are deprecated.\n *\n * @usageNotes\n * ### Basic Examples\n *\n * ### Plain InjectionToken\n *\n * {@example core/di/ts/injector_spec.ts region='InjectionToken'}\n *\n * ### Tree-shakable InjectionToken\n *\n * {@example core/di/ts/injector_spec.ts region='ShakableInjectionToken'}\n *\n * @publicApi\n */\nclass InjectionToken {\n /**\n * @param _desc Description for the token,\n * used only for debugging purposes,\n * it should but does not need to be unique\n * @param options Options for the token's usage, as described above\n */\n constructor(_desc, options) {\n this._desc = _desc;\n /** @internal */\n this.ngMetadataName = 'InjectionToken';\n this.ɵprov = undefined;\n if (typeof options == 'number') {\n (typeof ngDevMode === 'undefined' || ngDevMode) &&\n assertLessThan(options, 0, 'Only negative numbers are supported here');\n // This is a special hack to assign __NG_ELEMENT_ID__ to this instance.\n // See `InjectorMarkers`\n this.__NG_ELEMENT_ID__ = options;\n }\n else if (options !== undefined) {\n this.ɵprov = ɵɵdefineInjectable({\n token: this,\n providedIn: options.providedIn || 'root',\n factory: options.factory,\n });\n }\n }\n /**\n * @internal\n */\n get multi() {\n return this;\n }\n toString() {\n return `InjectionToken ${this._desc}`;\n }\n}\n\nlet _injectorProfilerContext;\nfunction getInjectorProfilerContext() {\n !ngDevMode && throwError('getInjectorProfilerContext should never be called in production mode');\n return _injectorProfilerContext;\n}\nfunction setInjectorProfilerContext(context) {\n !ngDevMode && throwError('setInjectorProfilerContext should never be called in production mode');\n const previous = _injectorProfilerContext;\n _injectorProfilerContext = context;\n return previous;\n}\nlet injectorProfilerCallback = null;\n/**\n * Sets the callback function which will be invoked during certain DI events within the\n * runtime (for example: injecting services, creating injectable instances, configuring providers)\n *\n * Warning: this function is *INTERNAL* and should not be relied upon in application's code.\n * The contract of the function might be changed in any release and/or the function can be removed\n * completely.\n *\n * @param profiler function provided by the caller or null value to disable profiling.\n */\nconst setInjectorProfiler = (injectorProfiler) => {\n !ngDevMode && throwError('setInjectorProfiler should never be called in production mode');\n injectorProfilerCallback = injectorProfiler;\n};\n/**\n * Injector profiler function which emits on DI events executed by the runtime.\n *\n * @param event InjectorProfilerEvent corresponding to the DI event being emitted\n */\nfunction injectorProfiler(event) {\n !ngDevMode && throwError('Injector profiler should never be called in production mode');\n if (injectorProfilerCallback != null /* both `null` and `undefined` */) {\n injectorProfilerCallback(event);\n }\n}\n/**\n * Emits an InjectorProfilerEventType.ProviderConfigured to the injector profiler. The data in the\n * emitted event includes the raw provider, as well as the token that provider is providing.\n *\n * @param eventProvider A provider object\n */\nfunction emitProviderConfiguredEvent(eventProvider, isViewProvider = false) {\n !ngDevMode && throwError('Injector profiler should never be called in production mode');\n let token;\n // if the provider is a TypeProvider (typeof provider is function) then the token is the\n // provider itself\n if (typeof eventProvider === 'function') {\n token = eventProvider;\n }\n // if the provider is an injection token, then the token is the injection token.\n else if (eventProvider instanceof InjectionToken) {\n token = eventProvider;\n }\n // in all other cases we can access the token via the `provide` property of the provider\n else {\n token = resolveForwardRef(eventProvider.provide);\n }\n let provider = eventProvider;\n // Injection tokens may define their own default provider which gets attached to the token itself\n // as `ɵprov`. In this case, we want to emit the provider that is attached to the token, not the\n // token itself.\n if (eventProvider instanceof InjectionToken) {\n provider = eventProvider.ɵprov || eventProvider;\n }\n injectorProfiler({\n type: 2 /* InjectorProfilerEventType.ProviderConfigured */,\n context: getInjectorProfilerContext(),\n providerRecord: { token, provider, isViewProvider }\n });\n}\n/**\n * Emits an event to the injector profiler with the instance that was created. Note that\n * the injector associated with this emission can be accessed by using getDebugInjectContext()\n *\n * @param instance an object created by an injector\n */\nfunction emitInstanceCreatedByInjectorEvent(instance) {\n !ngDevMode && throwError('Injector profiler should never be called in production mode');\n injectorProfiler({\n type: 1 /* InjectorProfilerEventType.InstanceCreatedByInjector */,\n context: getInjectorProfilerContext(),\n instance: { value: instance }\n });\n}\n/**\n * @param token DI token associated with injected service\n * @param value the instance of the injected service (i.e the result of `inject(token)`)\n * @param flags the flags that the token was injected with\n */\nfunction emitInjectEvent(token, value, flags) {\n !ngDevMode && throwError('Injector profiler should never be called in production mode');\n injectorProfiler({\n type: 0 /* InjectorProfilerEventType.Inject */,\n context: getInjectorProfilerContext(),\n service: { token, value, flags }\n });\n}\nfunction runInInjectorProfilerContext(injector, token, callback) {\n !ngDevMode &&\n throwError('runInInjectorProfilerContext should never be called in production mode');\n const prevInjectContext = setInjectorProfilerContext({ injector, token });\n try {\n callback();\n }\n finally {\n setInjectorProfilerContext(prevInjectContext);\n }\n}\n\nfunction isEnvironmentProviders(value) {\n return value && !!value.ɵproviders;\n}\n\nconst NG_COMP_DEF = getClosureSafeProperty({ ɵcmp: getClosureSafeProperty });\nconst NG_DIR_DEF = getClosureSafeProperty({ ɵdir: getClosureSafeProperty });\nconst NG_PIPE_DEF = getClosureSafeProperty({ ɵpipe: getClosureSafeProperty });\nconst NG_MOD_DEF = getClosureSafeProperty({ ɵmod: getClosureSafeProperty });\nconst NG_FACTORY_DEF = getClosureSafeProperty({ ɵfac: getClosureSafeProperty });\n/**\n * If a directive is diPublic, bloomAdd sets a property on the type with this constant as\n * the key and the directive's unique ID as the value. This allows us to map directives to their\n * bloom filter bit for DI.\n */\n// TODO(misko): This is wrong. The NG_ELEMENT_ID should never be minified.\nconst NG_ELEMENT_ID = getClosureSafeProperty({ __NG_ELEMENT_ID__: getClosureSafeProperty });\n/**\n * The `NG_ENV_ID` field on a DI token indicates special processing in the `EnvironmentInjector`:\n * getting such tokens from the `EnvironmentInjector` will bypass the standard DI resolution\n * strategy and instead will return implementation produced by the `NG_ENV_ID` factory function.\n *\n * This particular retrieval of DI tokens is mostly done to eliminate circular dependencies and\n * improve tree-shaking.\n */\nconst NG_ENV_ID = getClosureSafeProperty({ __NG_ENV_ID__: getClosureSafeProperty });\n\n/**\n * Used for stringify render output in Ivy.\n * Important! This function is very performance-sensitive and we should\n * be extra careful not to introduce megamorphic reads in it.\n * Check `core/test/render3/perf/render_stringify` for benchmarks and alternate implementations.\n */\nfunction renderStringify(value) {\n if (typeof value === 'string')\n return value;\n if (value == null)\n return '';\n // Use `String` so that it invokes the `toString` method of the value. Note that this\n // appears to be faster than calling `value.toString` (see `render_stringify` benchmark).\n return String(value);\n}\n/**\n * Used to stringify a value so that it can be displayed in an error message.\n *\n * Important! This function contains a megamorphic read and should only be\n * used for error messages.\n */\nfunction stringifyForError(value) {\n if (typeof value === 'function')\n return value.name || value.toString();\n if (typeof value === 'object' && value != null && typeof value.type === 'function') {\n return value.type.name || value.type.toString();\n }\n return renderStringify(value);\n}\n/**\n * Used to stringify a `Type` and including the file path and line number in which it is defined, if\n * possible, for better debugging experience.\n *\n * Important! This function contains a megamorphic read and should only be used for error messages.\n */\nfunction debugStringifyTypeForError(type) {\n // TODO(pmvald): Do some refactoring so that we can use getComponentDef here without creating\n // circular deps.\n let componentDef = type[NG_COMP_DEF] || null;\n if (componentDef !== null && componentDef.debugInfo) {\n return stringifyTypeFromDebugInfo(componentDef.debugInfo);\n }\n return stringifyForError(type);\n}\n// TODO(pmvald): Do some refactoring so that we can use the type ClassDebugInfo for the param\n// debugInfo here without creating circular deps.\nfunction stringifyTypeFromDebugInfo(debugInfo) {\n if (!debugInfo.filePath || !debugInfo.lineNumber) {\n return debugInfo.className;\n }\n else {\n return `${debugInfo.className} (at ${debugInfo.filePath}:${debugInfo.lineNumber})`;\n }\n}\n\n/** Called when directives inject each other (creating a circular dependency) */\nfunction throwCyclicDependencyError(token, path) {\n const depPath = path ? `. Dependency path: ${path.join(' > ')} > ${token}` : '';\n throw new RuntimeError(-200 /* RuntimeErrorCode.CYCLIC_DI_DEPENDENCY */, ngDevMode ? `Circular dependency in DI detected for ${token}${depPath}` : token);\n}\nfunction throwMixedMultiProviderError() {\n throw new Error(`Cannot mix multi providers and regular providers`);\n}\nfunction throwInvalidProviderError(ngModuleType, providers, provider) {\n if (ngModuleType && providers) {\n const providerDetail = providers.map(v => v == provider ? '?' + provider + '?' : '...');\n throw new Error(`Invalid provider for the NgModule '${stringify(ngModuleType)}' - only instances of Provider and Type are allowed, got: [${providerDetail.join(', ')}]`);\n }\n else if (isEnvironmentProviders(provider)) {\n if (provider.ɵfromNgModule) {\n throw new RuntimeError(207 /* RuntimeErrorCode.PROVIDER_IN_WRONG_CONTEXT */, `Invalid providers from 'importProvidersFrom' present in a non-environment injector. 'importProvidersFrom' can't be used for component providers.`);\n }\n else {\n throw new RuntimeError(207 /* RuntimeErrorCode.PROVIDER_IN_WRONG_CONTEXT */, `Invalid providers present in a non-environment injector. 'EnvironmentProviders' can't be used for component providers.`);\n }\n }\n else {\n throw new Error('Invalid provider');\n }\n}\n/** Throws an error when a token is not found in DI. */\nfunction throwProviderNotFoundError(token, injectorName) {\n const errorMessage = ngDevMode &&\n `No provider for ${stringifyForError(token)} found${injectorName ? ` in ${injectorName}` : ''}`;\n throw new RuntimeError(-201 /* RuntimeErrorCode.PROVIDER_NOT_FOUND */, errorMessage);\n}\n\n/**\n * Injection flags for DI.\n *\n * @publicApi\n * @deprecated use an options object for [`inject`](api/core/inject) instead.\n */\nvar InjectFlags;\n(function (InjectFlags) {\n // TODO(alxhub): make this 'const' (and remove `InternalInjectFlags` enum) when ngc no longer\n // writes exports of it into ngfactory files.\n /** Check self and check parent injector if needed */\n InjectFlags[InjectFlags[\"Default\"] = 0] = \"Default\";\n /**\n * Specifies that an injector should retrieve a dependency from any injector until reaching the\n * host element of the current component. (Only used with Element Injector)\n */\n InjectFlags[InjectFlags[\"Host\"] = 1] = \"Host\";\n /** Don't ascend to ancestors of the node requesting injection. */\n InjectFlags[InjectFlags[\"Self\"] = 2] = \"Self\";\n /** Skip the node that is requesting injection. */\n InjectFlags[InjectFlags[\"SkipSelf\"] = 4] = \"SkipSelf\";\n /** Inject `defaultValue` instead if token not found. */\n InjectFlags[InjectFlags[\"Optional\"] = 8] = \"Optional\";\n})(InjectFlags || (InjectFlags = {}));\n\n/**\n * Current implementation of inject.\n *\n * By default, it is `injectInjectorOnly`, which makes it `Injector`-only aware. It can be changed\n * to `directiveInject`, which brings in the `NodeInjector` system of ivy. It is designed this\n * way for two reasons:\n * 1. `Injector` should not depend on ivy logic.\n * 2. To maintain tree shake-ability we don't want to bring in unnecessary code.\n */\nlet _injectImplementation;\nfunction getInjectImplementation() {\n return _injectImplementation;\n}\n/**\n * Sets the current inject implementation.\n */\nfunction setInjectImplementation(impl) {\n const previous = _injectImplementation;\n _injectImplementation = impl;\n return previous;\n}\n/**\n * Injects `root` tokens in limp mode.\n *\n * If no injector exists, we can still inject tree-shakable providers which have `providedIn` set to\n * `\"root\"`. This is known as the limp mode injection. In such case the value is stored in the\n * injectable definition.\n */\nfunction injectRootLimpMode(token, notFoundValue, flags) {\n const injectableDef = getInjectableDef(token);\n if (injectableDef && injectableDef.providedIn == 'root') {\n return injectableDef.value === undefined ? injectableDef.value = injectableDef.factory() :\n injectableDef.value;\n }\n if (flags & InjectFlags.Optional)\n return null;\n if (notFoundValue !== undefined)\n return notFoundValue;\n throwProviderNotFoundError(token, 'Injector');\n}\n/**\n * Assert that `_injectImplementation` is not `fn`.\n *\n * This is useful, to prevent infinite recursion.\n *\n * @param fn Function which it should not equal to\n */\nfunction assertInjectImplementationNotEqual(fn) {\n ngDevMode &&\n assertNotEqual(_injectImplementation, fn, 'Calling ɵɵinject would cause infinite recursion');\n}\n\nconst _THROW_IF_NOT_FOUND = {};\nconst THROW_IF_NOT_FOUND = _THROW_IF_NOT_FOUND;\n/*\n * Name of a property (that we patch onto DI decorator), which is used as an annotation of which\n * InjectFlag this decorator represents. This allows to avoid direct references to the DI decorators\n * in the code, thus making them tree-shakable.\n */\nconst DI_DECORATOR_FLAG = '__NG_DI_FLAG__';\nconst NG_TEMP_TOKEN_PATH = 'ngTempTokenPath';\nconst NG_TOKEN_PATH = 'ngTokenPath';\nconst NEW_LINE = /\\n/gm;\nconst NO_NEW_LINE = 'ɵ';\nconst SOURCE = '__source';\n/**\n * Current injector value used by `inject`.\n * - `undefined`: it is an error to call `inject`\n * - `null`: `inject` can be called but there is no injector (limp-mode).\n * - Injector instance: Use the injector for resolution.\n */\nlet _currentInjector = undefined;\nfunction getCurrentInjector() {\n return _currentInjector;\n}\nfunction setCurrentInjector(injector) {\n const former = _currentInjector;\n _currentInjector = injector;\n return former;\n}\nfunction injectInjectorOnly(token, flags = InjectFlags.Default) {\n if (_currentInjector === undefined) {\n throw new RuntimeError(-203 /* RuntimeErrorCode.MISSING_INJECTION_CONTEXT */, ngDevMode &&\n `inject() must be called from an injection context such as a constructor, a factory function, a field initializer, or a function used with \\`runInInjectionContext\\`.`);\n }\n else if (_currentInjector === null) {\n return injectRootLimpMode(token, undefined, flags);\n }\n else {\n const value = _currentInjector.get(token, flags & InjectFlags.Optional ? null : undefined, flags);\n ngDevMode && emitInjectEvent(token, value, flags);\n return value;\n }\n}\nfunction ɵɵinject(token, flags = InjectFlags.Default) {\n return (getInjectImplementation() || injectInjectorOnly)(resolveForwardRef(token), flags);\n}\n/**\n * Throws an error indicating that a factory function could not be generated by the compiler for a\n * particular class.\n *\n * The name of the class is not mentioned here, but will be in the generated factory function name\n * and thus in the stack trace.\n *\n * @codeGenApi\n */\nfunction ɵɵinvalidFactoryDep(index) {\n throw new RuntimeError(202 /* RuntimeErrorCode.INVALID_FACTORY_DEPENDENCY */, ngDevMode &&\n `This constructor is not compatible with Angular Dependency Injection because its dependency at index ${index} of the parameter list is invalid.\nThis can happen if the dependency type is a primitive like a string or if an ancestor of this class is missing an Angular decorator.\n\nPlease check that 1) the type for the parameter at index ${index} is correct and 2) the correct Angular decorators are defined for this class and its ancestors.`);\n}\n/**\n * Injects a token from the currently active injector.\n * `inject` is only supported in an [injection context](/guide/dependency-injection-context). It can\n * be used during:\n * - Construction (via the `constructor`) of a class being instantiated by the DI system, such\n * as an `@Injectable` or `@Component`.\n * - In the initializer for fields of such classes.\n * - In the factory function specified for `useFactory` of a `Provider` or an `@Injectable`.\n * - In the `factory` function specified for an `InjectionToken`.\n * - In a stackframe of a function call in a DI context\n *\n * @param token A token that represents a dependency that should be injected.\n * @param flags Optional flags that control how injection is executed.\n * The flags correspond to injection strategies that can be specified with\n * parameter decorators `@Host`, `@Self`, `@SkipSelf`, and `@Optional`.\n * @returns the injected value if operation is successful, `null` otherwise.\n * @throws if called outside of a supported context.\n *\n * @usageNotes\n * In practice the `inject()` calls are allowed in a constructor, a constructor parameter and a\n * field initializer:\n *\n * ```typescript\n * @Injectable({providedIn: 'root'})\n * export class Car {\n * radio: Radio|undefined;\n * // OK: field initializer\n * spareTyre = inject(Tyre);\n *\n * constructor() {\n * // OK: constructor body\n * this.radio = inject(Radio);\n * }\n * }\n * ```\n *\n * It is also legal to call `inject` from a provider's factory:\n *\n * ```typescript\n * providers: [\n * {provide: Car, useFactory: () => {\n * // OK: a class factory\n * const engine = inject(Engine);\n * return new Car(engine);\n * }}\n * ]\n * ```\n *\n * Calls to the `inject()` function outside of the class creation context will result in error. Most\n * notably, calls to `inject()` are disallowed after a class instance was created, in methods\n * (including lifecycle hooks):\n *\n * ```typescript\n * @Component({ ... })\n * export class CarComponent {\n * ngOnInit() {\n * // ERROR: too late, the component instance was already created\n * const engine = inject(Engine);\n * engine.start();\n * }\n * }\n * ```\n *\n * @publicApi\n */\nfunction inject(token, flags = InjectFlags.Default) {\n // The `as any` here _shouldn't_ be necessary, but without it JSCompiler\n // throws a disambiguation error due to the multiple signatures.\n return ɵɵinject(token, convertToBitFlags(flags));\n}\n// Converts object-based DI flags (`InjectOptions`) to bit flags (`InjectFlags`).\nfunction convertToBitFlags(flags) {\n if (typeof flags === 'undefined' || typeof flags === 'number') {\n return flags;\n }\n // While TypeScript doesn't accept it without a cast, bitwise OR with false-y values in\n // JavaScript is a no-op. We can use that for a very codesize-efficient conversion from\n // `InjectOptions` to `InjectFlags`.\n return (0 /* InternalInjectFlags.Default */ | // comment to force a line break in the formatter\n (flags.optional && 8 /* InternalInjectFlags.Optional */) |\n (flags.host && 1 /* InternalInjectFlags.Host */) |\n (flags.self && 2 /* InternalInjectFlags.Self */) |\n (flags.skipSelf && 4 /* InternalInjectFlags.SkipSelf */));\n}\nfunction injectArgs(types) {\n const args = [];\n for (let i = 0; i < types.length; i++) {\n const arg = resolveForwardRef(types[i]);\n if (Array.isArray(arg)) {\n if (arg.length === 0) {\n throw new RuntimeError(900 /* RuntimeErrorCode.INVALID_DIFFER_INPUT */, ngDevMode && 'Arguments array must have arguments.');\n }\n let type = undefined;\n let flags = InjectFlags.Default;\n for (let j = 0; j < arg.length; j++) {\n const meta = arg[j];\n const flag = getInjectFlag(meta);\n if (typeof flag === 'number') {\n // Special case when we handle @Inject decorator.\n if (flag === -1 /* DecoratorFlags.Inject */) {\n type = meta.token;\n }\n else {\n flags |= flag;\n }\n }\n else {\n type = meta;\n }\n }\n args.push(ɵɵinject(type, flags));\n }\n else {\n args.push(ɵɵinject(arg));\n }\n }\n return args;\n}\n/**\n * Attaches a given InjectFlag to a given decorator using monkey-patching.\n * Since DI decorators can be used in providers `deps` array (when provider is configured using\n * `useFactory`) without initialization (e.g. `Host`) and as an instance (e.g. `new Host()`), we\n * attach the flag to make it available both as a static property and as a field on decorator\n * instance.\n *\n * @param decorator Provided DI decorator.\n * @param flag InjectFlag that should be applied.\n */\nfunction attachInjectFlag(decorator, flag) {\n decorator[DI_DECORATOR_FLAG] = flag;\n decorator.prototype[DI_DECORATOR_FLAG] = flag;\n return decorator;\n}\n/**\n * Reads monkey-patched property that contains InjectFlag attached to a decorator.\n *\n * @param token Token that may contain monkey-patched DI flags property.\n */\nfunction getInjectFlag(token) {\n return token[DI_DECORATOR_FLAG];\n}\nfunction catchInjectorError(e, token, injectorErrorName, source) {\n const tokenPath = e[NG_TEMP_TOKEN_PATH];\n if (token[SOURCE]) {\n tokenPath.unshift(token[SOURCE]);\n }\n e.message = formatError('\\n' + e.message, tokenPath, injectorErrorName, source);\n e[NG_TOKEN_PATH] = tokenPath;\n e[NG_TEMP_TOKEN_PATH] = null;\n throw e;\n}\nfunction formatError(text, obj, injectorErrorName, source = null) {\n text = text && text.charAt(0) === '\\n' && text.charAt(1) == NO_NEW_LINE ? text.slice(2) : text;\n let context = stringify(obj);\n if (Array.isArray(obj)) {\n context = obj.map(stringify).join(' -> ');\n }\n else if (typeof obj === 'object') {\n let parts = [];\n for (let key in obj) {\n if (obj.hasOwnProperty(key)) {\n let value = obj[key];\n parts.push(key + ':' + (typeof value === 'string' ? JSON.stringify(value) : stringify(value)));\n }\n }\n context = `{${parts.join(', ')}}`;\n }\n return `${injectorErrorName}${source ? '(' + source + ')' : ''}[${context}]: ${text.replace(NEW_LINE, '\\n ')}`;\n}\n\n/**\n * Inject decorator and metadata.\n *\n * @Annotation\n * @publicApi\n */\nconst Inject = attachInjectFlag(\n// Disable tslint because `DecoratorFlags` is a const enum which gets inlined.\n// tslint:disable-next-line: no-toplevel-property-access\nmakeParamDecorator('Inject', (token) => ({ token })), -1 /* DecoratorFlags.Inject */);\n/**\n * Optional decorator and metadata.\n *\n * @Annotation\n * @publicApi\n */\nconst Optional = \n// Disable tslint because `InternalInjectFlags` is a const enum which gets inlined.\n// tslint:disable-next-line: no-toplevel-property-access\nattachInjectFlag(makeParamDecorator('Optional'), 8 /* InternalInjectFlags.Optional */);\n/**\n * Self decorator and metadata.\n *\n * @Annotation\n * @publicApi\n */\nconst Self = \n// Disable tslint because `InternalInjectFlags` is a const enum which gets inlined.\n// tslint:disable-next-line: no-toplevel-property-access\nattachInjectFlag(makeParamDecorator('Self'), 2 /* InternalInjectFlags.Self */);\n/**\n * `SkipSelf` decorator and metadata.\n *\n * @Annotation\n * @publicApi\n */\nconst SkipSelf = \n// Disable tslint because `InternalInjectFlags` is a const enum which gets inlined.\n// tslint:disable-next-line: no-toplevel-property-access\nattachInjectFlag(makeParamDecorator('SkipSelf'), 4 /* InternalInjectFlags.SkipSelf */);\n/**\n * Host decorator and metadata.\n *\n * @Annotation\n * @publicApi\n */\nconst Host = \n// Disable tslint because `InternalInjectFlags` is a const enum which gets inlined.\n// tslint:disable-next-line: no-toplevel-property-access\nattachInjectFlag(makeParamDecorator('Host'), 1 /* InternalInjectFlags.Host */);\n\nfunction getFactoryDef(type, throwNotFound) {\n const hasFactoryDef = type.hasOwnProperty(NG_FACTORY_DEF);\n if (!hasFactoryDef && throwNotFound === true && ngDevMode) {\n throw new Error(`Type ${stringify(type)} does not have 'ɵfac' property.`);\n }\n return hasFactoryDef ? type[NG_FACTORY_DEF] : null;\n}\n\n/**\n * Determines if the contents of two arrays is identical\n *\n * @param a first array\n * @param b second array\n * @param identityAccessor Optional function for extracting stable object identity from a value in\n * the array.\n */\nfunction arrayEquals(a, b, identityAccessor) {\n if (a.length !== b.length)\n return false;\n for (let i = 0; i < a.length; i++) {\n let valueA = a[i];\n let valueB = b[i];\n if (identityAccessor) {\n valueA = identityAccessor(valueA);\n valueB = identityAccessor(valueB);\n }\n if (valueB !== valueA) {\n return false;\n }\n }\n return true;\n}\n/**\n * Flattens an array.\n */\nfunction flatten(list) {\n return list.flat(Number.POSITIVE_INFINITY);\n}\nfunction deepForEach(input, fn) {\n input.forEach(value => Array.isArray(value) ? deepForEach(value, fn) : fn(value));\n}\nfunction addToArray(arr, index, value) {\n // perf: array.push is faster than array.splice!\n if (index >= arr.length) {\n arr.push(value);\n }\n else {\n arr.splice(index, 0, value);\n }\n}\nfunction removeFromArray(arr, index) {\n // perf: array.pop is faster than array.splice!\n if (index >= arr.length - 1) {\n return arr.pop();\n }\n else {\n return arr.splice(index, 1)[0];\n }\n}\nfunction newArray(size, value) {\n const list = [];\n for (let i = 0; i < size; i++) {\n list.push(value);\n }\n return list;\n}\n/**\n * Remove item from array (Same as `Array.splice()` but faster.)\n *\n * `Array.splice()` is not as fast because it has to allocate an array for the elements which were\n * removed. This causes memory pressure and slows down code when most of the time we don't\n * care about the deleted items array.\n *\n * https://jsperf.com/fast-array-splice (About 20x faster)\n *\n * @param array Array to splice\n * @param index Index of element in array to remove.\n * @param count Number of items to remove.\n */\nfunction arraySplice(array, index, count) {\n const length = array.length - count;\n while (index < length) {\n array[index] = array[index + count];\n index++;\n }\n while (count--) {\n array.pop(); // shrink the array\n }\n}\n/**\n * Same as `Array.splice(index, 0, value)` but faster.\n *\n * `Array.splice()` is not fast because it has to allocate an array for the elements which were\n * removed. This causes memory pressure and slows down code when most of the time we don't\n * care about the deleted items array.\n *\n * @param array Array to splice.\n * @param index Index in array where the `value` should be added.\n * @param value Value to add to array.\n */\nfunction arrayInsert(array, index, value) {\n ngDevMode && assertLessThanOrEqual(index, array.length, 'Can\\'t insert past array end.');\n let end = array.length;\n while (end > index) {\n const previousEnd = end - 1;\n array[end] = array[previousEnd];\n end = previousEnd;\n }\n array[index] = value;\n}\n/**\n * Same as `Array.splice2(index, 0, value1, value2)` but faster.\n *\n * `Array.splice()` is not fast because it has to allocate an array for the elements which were\n * removed. This causes memory pressure and slows down code when most of the time we don't\n * care about the deleted items array.\n *\n * @param array Array to splice.\n * @param index Index in array where the `value` should be added.\n * @param value1 Value to add to array.\n * @param value2 Value to add to array.\n */\nfunction arrayInsert2(array, index, value1, value2) {\n ngDevMode && assertLessThanOrEqual(index, array.length, 'Can\\'t insert past array end.');\n let end = array.length;\n if (end == index) {\n // inserting at the end.\n array.push(value1, value2);\n }\n else if (end === 1) {\n // corner case when we have less items in array than we have items to insert.\n array.push(value2, array[0]);\n array[0] = value1;\n }\n else {\n end--;\n array.push(array[end - 1], array[end]);\n while (end > index) {\n const previousEnd = end - 2;\n array[end] = array[previousEnd];\n end--;\n }\n array[index] = value1;\n array[index + 1] = value2;\n }\n}\n/**\n * Get an index of an `value` in a sorted `array`.\n *\n * NOTE:\n * - This uses binary search algorithm for fast removals.\n *\n * @param array A sorted array to binary search.\n * @param value The value to look for.\n * @returns index of the value.\n * - positive index if value found.\n * - negative index if value not found. (`~index` to get the value where it should have been\n * located)\n */\nfunction arrayIndexOfSorted(array, value) {\n return _arrayIndexOfSorted(array, value, 0);\n}\n/**\n * Set a `value` for a `key`.\n *\n * @param keyValueArray to modify.\n * @param key The key to locate or create.\n * @param value The value to set for a `key`.\n * @returns index (always even) of where the value vas set.\n */\nfunction keyValueArraySet(keyValueArray, key, value) {\n let index = keyValueArrayIndexOf(keyValueArray, key);\n if (index >= 0) {\n // if we found it set it.\n keyValueArray[index | 1] = value;\n }\n else {\n index = ~index;\n arrayInsert2(keyValueArray, index, key, value);\n }\n return index;\n}\n/**\n * Retrieve a `value` for a `key` (on `undefined` if not found.)\n *\n * @param keyValueArray to search.\n * @param key The key to locate.\n * @return The `value` stored at the `key` location or `undefined if not found.\n */\nfunction keyValueArrayGet(keyValueArray, key) {\n const index = keyValueArrayIndexOf(keyValueArray, key);\n if (index >= 0) {\n // if we found it retrieve it.\n return keyValueArray[index | 1];\n }\n return undefined;\n}\n/**\n * Retrieve a `key` index value in the array or `-1` if not found.\n *\n * @param keyValueArray to search.\n * @param key The key to locate.\n * @returns index of where the key is (or should have been.)\n * - positive (even) index if key found.\n * - negative index if key not found. (`~index` (even) to get the index where it should have\n * been inserted.)\n */\nfunction keyValueArrayIndexOf(keyValueArray, key) {\n return _arrayIndexOfSorted(keyValueArray, key, 1);\n}\n/**\n * Delete a `key` (and `value`) from the `KeyValueArray`.\n *\n * @param keyValueArray to modify.\n * @param key The key to locate or delete (if exist).\n * @returns index of where the key was (or should have been.)\n * - positive (even) index if key found and deleted.\n * - negative index if key not found. (`~index` (even) to get the index where it should have\n * been.)\n */\nfunction keyValueArrayDelete(keyValueArray, key) {\n const index = keyValueArrayIndexOf(keyValueArray, key);\n if (index >= 0) {\n // if we found it remove it.\n arraySplice(keyValueArray, index, 2);\n }\n return index;\n}\n/**\n * INTERNAL: Get an index of an `value` in a sorted `array` by grouping search by `shift`.\n *\n * NOTE:\n * - This uses binary search algorithm for fast removals.\n *\n * @param array A sorted array to binary search.\n * @param value The value to look for.\n * @param shift grouping shift.\n * - `0` means look at every location\n * - `1` means only look at every other (even) location (the odd locations are to be ignored as\n * they are values.)\n * @returns index of the value.\n * - positive index if value found.\n * - negative index if value not found. (`~index` to get the value where it should have been\n * inserted)\n */\nfunction _arrayIndexOfSorted(array, value, shift) {\n ngDevMode && assertEqual(Array.isArray(array), true, 'Expecting an array');\n let start = 0;\n let end = array.length >> shift;\n while (end !== start) {\n const middle = start + ((end - start) >> 1); // find the middle.\n const current = array[middle << shift];\n if (value === current) {\n return (middle << shift);\n }\n else if (current > value) {\n end = middle;\n }\n else {\n start = middle + 1; // We already searched middle so make it non-inclusive by adding 1\n }\n }\n return ~(end << shift);\n}\n\n/**\n * This file contains reuseable \"empty\" symbols that can be used as default return values\n * in different parts of the rendering code. Because the same symbols are returned, this\n * allows for identity checks against these values to be consistently used by the framework\n * code.\n */\nconst EMPTY_OBJ = {};\nconst EMPTY_ARRAY = [];\n// freezing the values prevents any code from accidentally inserting new values in\nif ((typeof ngDevMode === 'undefined' || ngDevMode) && initNgDevMode()) {\n // These property accesses can be ignored because ngDevMode will be set to false\n // when optimizing code and the whole if statement will be dropped.\n // tslint:disable-next-line:no-toplevel-property-access\n Object.freeze(EMPTY_OBJ);\n // tslint:disable-next-line:no-toplevel-property-access\n Object.freeze(EMPTY_ARRAY);\n}\n\n/**\n * A multi-provider token for initialization functions that will run upon construction of an\n * environment injector.\n *\n * @publicApi\n */\nconst ENVIRONMENT_INITIALIZER = new InjectionToken(ngDevMode ? 'ENVIRONMENT_INITIALIZER' : '');\n\n/**\n * An InjectionToken that gets the current `Injector` for `createInjector()`-style injectors.\n *\n * Requesting this token instead of `Injector` allows `StaticInjector` to be tree-shaken from a\n * project.\n *\n * @publicApi\n */\nconst INJECTOR$1 = new InjectionToken(ngDevMode ? 'INJECTOR' : '', \n// Disable tslint because this is const enum which gets inlined not top level prop access.\n// tslint:disable-next-line: no-toplevel-property-access\n-1 /* InjectorMarkers.Injector */);\n\nconst INJECTOR_DEF_TYPES = new InjectionToken(ngDevMode ? 'INJECTOR_DEF_TYPES' : '');\n\nclass NullInjector {\n get(token, notFoundValue = THROW_IF_NOT_FOUND) {\n if (notFoundValue === THROW_IF_NOT_FOUND) {\n const error = new Error(`NullInjectorError: No provider for ${stringify(token)}!`);\n error.name = 'NullInjectorError';\n throw error;\n }\n return notFoundValue;\n }\n}\n\n/**\n * The strategy that the default change detector uses to detect changes.\n * When set, takes effect the next time change detection is triggered.\n *\n * @see {@link ChangeDetectorRef#usage-notes Change detection usage}\n *\n * @publicApi\n */\nvar ChangeDetectionStrategy;\n(function (ChangeDetectionStrategy) {\n /**\n * Use the `CheckOnce` strategy, meaning that automatic change detection is deactivated\n * until reactivated by setting the strategy to `Default` (`CheckAlways`).\n * Change detection can still be explicitly invoked.\n * This strategy applies to all child directives and cannot be overridden.\n */\n ChangeDetectionStrategy[ChangeDetectionStrategy[\"OnPush\"] = 0] = \"OnPush\";\n /**\n * Use the default `CheckAlways` strategy, in which change detection is automatic until\n * explicitly deactivated.\n */\n ChangeDetectionStrategy[ChangeDetectionStrategy[\"Default\"] = 1] = \"Default\";\n})(ChangeDetectionStrategy || (ChangeDetectionStrategy = {}));\n\n/**\n * Defines the CSS styles encapsulation policies for the {@link Component} decorator's\n * `encapsulation` option.\n *\n * See {@link Component#encapsulation encapsulation}.\n *\n * @usageNotes\n * ### Example\n *\n * {@example core/ts/metadata/encapsulation.ts region='longform'}\n *\n * @publicApi\n */\nvar ViewEncapsulation$1;\n(function (ViewEncapsulation) {\n // TODO: consider making `ViewEncapsulation` a `const enum` instead. See\n // https://github.com/angular/angular/issues/44119 for additional information.\n /**\n * Emulates a native Shadow DOM encapsulation behavior by adding a specific attribute to the\n * component's host element and applying the same attribute to all the CSS selectors provided\n * via {@link Component#styles styles} or {@link Component#styleUrls styleUrls}.\n *\n * This is the default option.\n */\n ViewEncapsulation[ViewEncapsulation[\"Emulated\"] = 0] = \"Emulated\";\n // Historically the 1 value was for `Native` encapsulation which has been removed as of v11.\n /**\n * Doesn't provide any sort of CSS style encapsulation, meaning that all the styles provided\n * via {@link Component#styles styles} or {@link Component#styleUrls styleUrls} are applicable\n * to any HTML element of the application regardless of their host Component.\n */\n ViewEncapsulation[ViewEncapsulation[\"None\"] = 2] = \"None\";\n /**\n * Uses the browser's native Shadow DOM API to encapsulate CSS styles, meaning that it creates\n * a ShadowRoot for the component's host element which is then used to encapsulate\n * all the Component's styling.\n */\n ViewEncapsulation[ViewEncapsulation[\"ShadowDom\"] = 3] = \"ShadowDom\";\n})(ViewEncapsulation$1 || (ViewEncapsulation$1 = {}));\n\n/** Flags describing an input for a directive. */\nvar InputFlags;\n(function (InputFlags) {\n InputFlags[InputFlags[\"None\"] = 0] = \"None\";\n InputFlags[InputFlags[\"SignalBased\"] = 1] = \"SignalBased\";\n InputFlags[InputFlags[\"HasDecoratorInputTransform\"] = 2] = \"HasDecoratorInputTransform\";\n})(InputFlags || (InputFlags = {}));\n\n/**\n * Returns an index of `classToSearch` in `className` taking token boundaries into account.\n *\n * `classIndexOf('AB A', 'A', 0)` will be 3 (not 0 since `AB!==A`)\n *\n * @param className A string containing classes (whitespace separated)\n * @param classToSearch A class name to locate\n * @param startingIndex Starting location of search\n * @returns an index of the located class (or -1 if not found)\n */\nfunction classIndexOf(className, classToSearch, startingIndex) {\n ngDevMode && assertNotEqual(classToSearch, '', 'can not look for \"\" string.');\n let end = className.length;\n while (true) {\n const foundIndex = className.indexOf(classToSearch, startingIndex);\n if (foundIndex === -1)\n return foundIndex;\n if (foundIndex === 0 || className.charCodeAt(foundIndex - 1) <= 32 /* CharCode.SPACE */) {\n // Ensure that it has leading whitespace\n const length = classToSearch.length;\n if (foundIndex + length === end ||\n className.charCodeAt(foundIndex + length) <= 32 /* CharCode.SPACE */) {\n // Ensure that it has trailing whitespace\n return foundIndex;\n }\n }\n // False positive, keep searching from where we left off.\n startingIndex = foundIndex + 1;\n }\n}\n\n/**\n * Assigns all attribute values to the provided element via the inferred renderer.\n *\n * This function accepts two forms of attribute entries:\n *\n * default: (key, value):\n * attrs = [key1, value1, key2, value2]\n *\n * namespaced: (NAMESPACE_MARKER, uri, name, value)\n * attrs = [NAMESPACE_MARKER, uri, name, value, NAMESPACE_MARKER, uri, name, value]\n *\n * The `attrs` array can contain a mix of both the default and namespaced entries.\n * The \"default\" values are set without a marker, but if the function comes across\n * a marker value then it will attempt to set a namespaced value. If the marker is\n * not of a namespaced value then the function will quit and return the index value\n * where it stopped during the iteration of the attrs array.\n *\n * See [AttributeMarker] to understand what the namespace marker value is.\n *\n * Note that this instruction does not support assigning style and class values to\n * an element. See `elementStart` and `elementHostAttrs` to learn how styling values\n * are applied to an element.\n * @param renderer The renderer to be used\n * @param native The element that the attributes will be assigned to\n * @param attrs The attribute array of values that will be assigned to the element\n * @returns the index value that was last accessed in the attributes array\n */\nfunction setUpAttributes(renderer, native, attrs) {\n let i = 0;\n while (i < attrs.length) {\n const value = attrs[i];\n if (typeof value === 'number') {\n // only namespaces are supported. Other value types (such as style/class\n // entries) are not supported in this function.\n if (value !== 0 /* AttributeMarker.NamespaceURI */) {\n break;\n }\n // we just landed on the marker value ... therefore\n // we should skip to the next entry\n i++;\n const namespaceURI = attrs[i++];\n const attrName = attrs[i++];\n const attrVal = attrs[i++];\n ngDevMode && ngDevMode.rendererSetAttribute++;\n renderer.setAttribute(native, attrName, attrVal, namespaceURI);\n }\n else {\n // attrName is string;\n const attrName = value;\n const attrVal = attrs[++i];\n // Standard attributes\n ngDevMode && ngDevMode.rendererSetAttribute++;\n if (isAnimationProp(attrName)) {\n renderer.setProperty(native, attrName, attrVal);\n }\n else {\n renderer.setAttribute(native, attrName, attrVal);\n }\n i++;\n }\n }\n // another piece of code may iterate over the same attributes array. Therefore\n // it may be helpful to return the exact spot where the attributes array exited\n // whether by running into an unsupported marker or if all the static values were\n // iterated over.\n return i;\n}\n/**\n * Test whether the given value is a marker that indicates that the following\n * attribute values in a `TAttributes` array are only the names of attributes,\n * and not name-value pairs.\n * @param marker The attribute marker to test.\n * @returns true if the marker is a \"name-only\" marker (e.g. `Bindings`, `Template` or `I18n`).\n */\nfunction isNameOnlyAttributeMarker(marker) {\n return marker === 3 /* AttributeMarker.Bindings */ || marker === 4 /* AttributeMarker.Template */ ||\n marker === 6 /* AttributeMarker.I18n */;\n}\nfunction isAnimationProp(name) {\n // Perf note: accessing charCodeAt to check for the first character of a string is faster as\n // compared to accessing a character at index 0 (ex. name[0]). The main reason for this is that\n // charCodeAt doesn't allocate memory to return a substring.\n return name.charCodeAt(0) === 64 /* CharCode.AT_SIGN */;\n}\n/**\n * Merges `src` `TAttributes` into `dst` `TAttributes` removing any duplicates in the process.\n *\n * This merge function keeps the order of attrs same.\n *\n * @param dst Location of where the merged `TAttributes` should end up.\n * @param src `TAttributes` which should be appended to `dst`\n */\nfunction mergeHostAttrs(dst, src) {\n if (src === null || src.length === 0) {\n // do nothing\n }\n else if (dst === null || dst.length === 0) {\n // We have source, but dst is empty, just make a copy.\n dst = src.slice();\n }\n else {\n let srcMarker = -1 /* AttributeMarker.ImplicitAttributes */;\n for (let i = 0; i < src.length; i++) {\n const item = src[i];\n if (typeof item === 'number') {\n srcMarker = item;\n }\n else {\n if (srcMarker === 0 /* AttributeMarker.NamespaceURI */) {\n // Case where we need to consume `key1`, `key2`, `value` items.\n }\n else if (srcMarker === -1 /* AttributeMarker.ImplicitAttributes */ ||\n srcMarker === 2 /* AttributeMarker.Styles */) {\n // Case where we have to consume `key1` and `value` only.\n mergeHostAttribute(dst, srcMarker, item, null, src[++i]);\n }\n else {\n // Case where we have to consume `key1` only.\n mergeHostAttribute(dst, srcMarker, item, null, null);\n }\n }\n }\n }\n return dst;\n}\n/**\n * Append `key`/`value` to existing `TAttributes` taking region marker and duplicates into account.\n *\n * @param dst `TAttributes` to append to.\n * @param marker Region where the `key`/`value` should be added.\n * @param key1 Key to add to `TAttributes`\n * @param key2 Key to add to `TAttributes` (in case of `AttributeMarker.NamespaceURI`)\n * @param value Value to add or to overwrite to `TAttributes` Only used if `marker` is not Class.\n */\nfunction mergeHostAttribute(dst, marker, key1, key2, value) {\n let i = 0;\n // Assume that new markers will be inserted at the end.\n let markerInsertPosition = dst.length;\n // scan until correct type.\n if (marker === -1 /* AttributeMarker.ImplicitAttributes */) {\n markerInsertPosition = -1;\n }\n else {\n while (i < dst.length) {\n const dstValue = dst[i++];\n if (typeof dstValue === 'number') {\n if (dstValue === marker) {\n markerInsertPosition = -1;\n break;\n }\n else if (dstValue > marker) {\n // We need to save this as we want the markers to be inserted in specific order.\n markerInsertPosition = i - 1;\n break;\n }\n }\n }\n }\n // search until you find place of insertion\n while (i < dst.length) {\n const item = dst[i];\n if (typeof item === 'number') {\n // since `i` started as the index after the marker, we did not find it if we are at the next\n // marker\n break;\n }\n else if (item === key1) {\n // We already have same token\n if (key2 === null) {\n if (value !== null) {\n dst[i + 1] = value;\n }\n return;\n }\n else if (key2 === dst[i + 1]) {\n dst[i + 2] = value;\n return;\n }\n }\n // Increment counter.\n i++;\n if (key2 !== null)\n i++;\n if (value !== null)\n i++;\n }\n // insert at location.\n if (markerInsertPosition !== -1) {\n dst.splice(markerInsertPosition, 0, marker);\n i = markerInsertPosition + 1;\n }\n dst.splice(i++, 0, key1);\n if (key2 !== null) {\n dst.splice(i++, 0, key2);\n }\n if (value !== null) {\n dst.splice(i++, 0, value);\n }\n}\n\nconst NG_TEMPLATE_SELECTOR = 'ng-template';\n/**\n * Search the `TAttributes` to see if it contains `cssClassToMatch` (case insensitive)\n *\n * @param tNode static data of the node to match\n * @param attrs `TAttributes` to search through.\n * @param cssClassToMatch class to match (lowercase)\n * @param isProjectionMode Whether or not class matching should look into the attribute `class` in\n * addition to the `AttributeMarker.Classes`.\n */\nfunction isCssClassMatching(tNode, attrs, cssClassToMatch, isProjectionMode) {\n ngDevMode &&\n assertEqual(cssClassToMatch, cssClassToMatch.toLowerCase(), 'Class name expected to be lowercase.');\n let i = 0;\n if (isProjectionMode) {\n for (; i < attrs.length && typeof attrs[i] === 'string'; i += 2) {\n // Search for an implicit `class` attribute and check if its value matches `cssClassToMatch`.\n if (attrs[i] === 'class' &&\n classIndexOf(attrs[i + 1].toLowerCase(), cssClassToMatch, 0) !== -1) {\n return true;\n }\n }\n }\n else if (isInlineTemplate(tNode)) {\n // Matching directives (i.e. when not matching for projection mode) should not consider the\n // class bindings that are present on inline templates, as those class bindings only target\n // the root node of the template, not the template itself.\n return false;\n }\n // Resume the search for classes after the `Classes` marker.\n i = attrs.indexOf(1 /* AttributeMarker.Classes */, i);\n if (i > -1) {\n // We found the classes section. Start searching for the class.\n let item;\n while (++i < attrs.length && typeof (item = attrs[i]) === 'string') {\n if (item.toLowerCase() === cssClassToMatch) {\n return true;\n }\n }\n }\n return false;\n}\n/**\n * Checks whether the `tNode` represents an inline template (e.g. `*ngFor`).\n *\n * @param tNode current TNode\n */\nfunction isInlineTemplate(tNode) {\n return tNode.type === 4 /* TNodeType.Container */ && tNode.value !== NG_TEMPLATE_SELECTOR;\n}\n/**\n * Function that checks whether a given tNode matches tag-based selector and has a valid type.\n *\n * Matching can be performed in 2 modes: projection mode (when we project nodes) and regular\n * directive matching mode:\n * - in the \"directive matching\" mode we do _not_ take TContainer's tagName into account if it is\n * different from NG_TEMPLATE_SELECTOR (value different from NG_TEMPLATE_SELECTOR indicates that a\n * tag name was extracted from * syntax so we would match the same directive twice);\n * - in the \"projection\" mode, we use a tag name potentially extracted from the * syntax processing\n * (applicable to TNodeType.Container only).\n */\nfunction hasTagAndTypeMatch(tNode, currentSelector, isProjectionMode) {\n const tagNameToCompare = tNode.type === 4 /* TNodeType.Container */ && !isProjectionMode ? NG_TEMPLATE_SELECTOR : tNode.value;\n return currentSelector === tagNameToCompare;\n}\n/**\n * A utility function to match an Ivy node static data against a simple CSS selector\n *\n * @param tNode static data of the node to match\n * @param selector The selector to try matching against the node.\n * @param isProjectionMode if `true` we are matching for content projection, otherwise we are doing\n * directive matching.\n * @returns true if node matches the selector.\n */\nfunction isNodeMatchingSelector(tNode, selector, isProjectionMode) {\n ngDevMode && assertDefined(selector[0], 'Selector should have a tag name');\n let mode = 4 /* SelectorFlags.ELEMENT */;\n const nodeAttrs = tNode.attrs;\n // Find the index of first attribute that has no value, only a name.\n const nameOnlyMarkerIdx = nodeAttrs !== null ? getNameOnlyMarkerIndex(nodeAttrs) : 0;\n // When processing \":not\" selectors, we skip to the next \":not\" if the\n // current one doesn't match\n let skipToNextSelector = false;\n for (let i = 0; i < selector.length; i++) {\n const current = selector[i];\n if (typeof current === 'number') {\n // If we finish processing a :not selector and it hasn't failed, return false\n if (!skipToNextSelector && !isPositive(mode) && !isPositive(current)) {\n return false;\n }\n // If we are skipping to the next :not() and this mode flag is positive,\n // it's a part of the current :not() selector, and we should keep skipping\n if (skipToNextSelector && isPositive(current))\n continue;\n skipToNextSelector = false;\n mode = current | (mode & 1 /* SelectorFlags.NOT */);\n continue;\n }\n if (skipToNextSelector)\n continue;\n if (mode & 4 /* SelectorFlags.ELEMENT */) {\n mode = 2 /* SelectorFlags.ATTRIBUTE */ | mode & 1 /* SelectorFlags.NOT */;\n if (current !== '' && !hasTagAndTypeMatch(tNode, current, isProjectionMode) ||\n current === '' && selector.length === 1) {\n if (isPositive(mode))\n return false;\n skipToNextSelector = true;\n }\n }\n else if (mode & 8 /* SelectorFlags.CLASS */) {\n if (nodeAttrs === null || !isCssClassMatching(tNode, nodeAttrs, current, isProjectionMode)) {\n if (isPositive(mode))\n return false;\n skipToNextSelector = true;\n }\n }\n else {\n const selectorAttrValue = selector[++i];\n const attrIndexInNode = findAttrIndexInNode(current, nodeAttrs, isInlineTemplate(tNode), isProjectionMode);\n if (attrIndexInNode === -1) {\n if (isPositive(mode))\n return false;\n skipToNextSelector = true;\n continue;\n }\n if (selectorAttrValue !== '') {\n let nodeAttrValue;\n if (attrIndexInNode > nameOnlyMarkerIdx) {\n nodeAttrValue = '';\n }\n else {\n ngDevMode &&\n assertNotEqual(nodeAttrs[attrIndexInNode], 0 /* AttributeMarker.NamespaceURI */, 'We do not match directives on namespaced attributes');\n // we lowercase the attribute value to be able to match\n // selectors without case-sensitivity\n // (selectors are already in lowercase when generated)\n nodeAttrValue = nodeAttrs[attrIndexInNode + 1].toLowerCase();\n }\n if (mode & 2 /* SelectorFlags.ATTRIBUTE */ && selectorAttrValue !== nodeAttrValue) {\n if (isPositive(mode))\n return false;\n skipToNextSelector = true;\n }\n }\n }\n }\n return isPositive(mode) || skipToNextSelector;\n}\nfunction isPositive(mode) {\n return (mode & 1 /* SelectorFlags.NOT */) === 0;\n}\n/**\n * Examines the attribute's definition array for a node to find the index of the\n * attribute that matches the given `name`.\n *\n * NOTE: This will not match namespaced attributes.\n *\n * Attribute matching depends upon `isInlineTemplate` and `isProjectionMode`.\n * The following table summarizes which types of attributes we attempt to match:\n *\n * ===========================================================================================================\n * Modes | Normal Attributes | Bindings Attributes | Template Attributes | I18n\n * Attributes\n * ===========================================================================================================\n * Inline + Projection | YES | YES | NO | YES\n * -----------------------------------------------------------------------------------------------------------\n * Inline + Directive | NO | NO | YES | NO\n * -----------------------------------------------------------------------------------------------------------\n * Non-inline + Projection | YES | YES | NO | YES\n * -----------------------------------------------------------------------------------------------------------\n * Non-inline + Directive | YES | YES | NO | YES\n * ===========================================================================================================\n *\n * @param name the name of the attribute to find\n * @param attrs the attribute array to examine\n * @param isInlineTemplate true if the node being matched is an inline template (e.g. `*ngFor`)\n * rather than a manually expanded template node (e.g ``).\n * @param isProjectionMode true if we are matching against content projection otherwise we are\n * matching against directives.\n */\nfunction findAttrIndexInNode(name, attrs, isInlineTemplate, isProjectionMode) {\n if (attrs === null)\n return -1;\n let i = 0;\n if (isProjectionMode || !isInlineTemplate) {\n let bindingsMode = false;\n while (i < attrs.length) {\n const maybeAttrName = attrs[i];\n if (maybeAttrName === name) {\n return i;\n }\n else if (maybeAttrName === 3 /* AttributeMarker.Bindings */ || maybeAttrName === 6 /* AttributeMarker.I18n */) {\n bindingsMode = true;\n }\n else if (maybeAttrName === 1 /* AttributeMarker.Classes */ || maybeAttrName === 2 /* AttributeMarker.Styles */) {\n let value = attrs[++i];\n // We should skip classes here because we have a separate mechanism for\n // matching classes in projection mode.\n while (typeof value === 'string') {\n value = attrs[++i];\n }\n continue;\n }\n else if (maybeAttrName === 4 /* AttributeMarker.Template */) {\n // We do not care about Template attributes in this scenario.\n break;\n }\n else if (maybeAttrName === 0 /* AttributeMarker.NamespaceURI */) {\n // Skip the whole namespaced attribute and value. This is by design.\n i += 4;\n continue;\n }\n // In binding mode there are only names, rather than name-value pairs.\n i += bindingsMode ? 1 : 2;\n }\n // We did not match the attribute\n return -1;\n }\n else {\n return matchTemplateAttribute(attrs, name);\n }\n}\nfunction isNodeMatchingSelectorList(tNode, selector, isProjectionMode = false) {\n for (let i = 0; i < selector.length; i++) {\n if (isNodeMatchingSelector(tNode, selector[i], isProjectionMode)) {\n return true;\n }\n }\n return false;\n}\nfunction getProjectAsAttrValue(tNode) {\n const nodeAttrs = tNode.attrs;\n if (nodeAttrs != null) {\n const ngProjectAsAttrIdx = nodeAttrs.indexOf(5 /* AttributeMarker.ProjectAs */);\n // only check for ngProjectAs in attribute names, don't accidentally match attribute's value\n // (attribute names are stored at even indexes)\n if ((ngProjectAsAttrIdx & 1) === 0) {\n return nodeAttrs[ngProjectAsAttrIdx + 1];\n }\n }\n return null;\n}\nfunction getNameOnlyMarkerIndex(nodeAttrs) {\n for (let i = 0; i < nodeAttrs.length; i++) {\n const nodeAttr = nodeAttrs[i];\n if (isNameOnlyAttributeMarker(nodeAttr)) {\n return i;\n }\n }\n return nodeAttrs.length;\n}\nfunction matchTemplateAttribute(attrs, name) {\n let i = attrs.indexOf(4 /* AttributeMarker.Template */);\n if (i > -1) {\n i++;\n while (i < attrs.length) {\n const attr = attrs[i];\n // Return in case we checked all template attrs and are switching to the next section in the\n // attrs array (that starts with a number that represents an attribute marker).\n if (typeof attr === 'number')\n return -1;\n if (attr === name)\n return i;\n i++;\n }\n }\n return -1;\n}\n/**\n * Checks whether a selector is inside a CssSelectorList\n * @param selector Selector to be checked.\n * @param list List in which to look for the selector.\n */\nfunction isSelectorInSelectorList(selector, list) {\n selectorListLoop: for (let i = 0; i < list.length; i++) {\n const currentSelectorInList = list[i];\n if (selector.length !== currentSelectorInList.length) {\n continue;\n }\n for (let j = 0; j < selector.length; j++) {\n if (selector[j] !== currentSelectorInList[j]) {\n continue selectorListLoop;\n }\n }\n return true;\n }\n return false;\n}\nfunction maybeWrapInNotSelector(isNegativeMode, chunk) {\n return isNegativeMode ? ':not(' + chunk.trim() + ')' : chunk;\n}\nfunction stringifyCSSSelector(selector) {\n let result = selector[0];\n let i = 1;\n let mode = 2 /* SelectorFlags.ATTRIBUTE */;\n let currentChunk = '';\n let isNegativeMode = false;\n while (i < selector.length) {\n let valueOrMarker = selector[i];\n if (typeof valueOrMarker === 'string') {\n if (mode & 2 /* SelectorFlags.ATTRIBUTE */) {\n const attrValue = selector[++i];\n currentChunk +=\n '[' + valueOrMarker + (attrValue.length > 0 ? '=\"' + attrValue + '\"' : '') + ']';\n }\n else if (mode & 8 /* SelectorFlags.CLASS */) {\n currentChunk += '.' + valueOrMarker;\n }\n else if (mode & 4 /* SelectorFlags.ELEMENT */) {\n currentChunk += ' ' + valueOrMarker;\n }\n }\n else {\n //\n // Append current chunk to the final result in case we come across SelectorFlag, which\n // indicates that the previous section of a selector is over. We need to accumulate content\n // between flags to make sure we wrap the chunk later in :not() selector if needed, e.g.\n // ```\n // ['', Flags.CLASS, '.classA', Flags.CLASS | Flags.NOT, '.classB', '.classC']\n // ```\n // should be transformed to `.classA :not(.classB .classC)`.\n //\n // Note: for negative selector part, we accumulate content between flags until we find the\n // next negative flag. This is needed to support a case where `:not()` rule contains more than\n // one chunk, e.g. the following selector:\n // ```\n // ['', Flags.ELEMENT | Flags.NOT, 'p', Flags.CLASS, 'foo', Flags.CLASS | Flags.NOT, 'bar']\n // ```\n // should be stringified to `:not(p.foo) :not(.bar)`\n //\n if (currentChunk !== '' && !isPositive(valueOrMarker)) {\n result += maybeWrapInNotSelector(isNegativeMode, currentChunk);\n currentChunk = '';\n }\n mode = valueOrMarker;\n // According to CssSelector spec, once we come across `SelectorFlags.NOT` flag, the negative\n // mode is maintained for remaining chunks of a selector.\n isNegativeMode = isNegativeMode || !isPositive(mode);\n }\n i++;\n }\n if (currentChunk !== '') {\n result += maybeWrapInNotSelector(isNegativeMode, currentChunk);\n }\n return result;\n}\n/**\n * Generates string representation of CSS selector in parsed form.\n *\n * ComponentDef and DirectiveDef are generated with the selector in parsed form to avoid doing\n * additional parsing at runtime (for example, for directive matching). However in some cases (for\n * example, while bootstrapping a component), a string version of the selector is required to query\n * for the host element on the page. This function takes the parsed form of a selector and returns\n * its string representation.\n *\n * @param selectorList selector in parsed form\n * @returns string representation of a given selector\n */\nfunction stringifyCSSSelectorList(selectorList) {\n return selectorList.map(stringifyCSSSelector).join(',');\n}\n/**\n * Extracts attributes and classes information from a given CSS selector.\n *\n * This function is used while creating a component dynamically. In this case, the host element\n * (that is created dynamically) should contain attributes and classes specified in component's CSS\n * selector.\n *\n * @param selector CSS selector in parsed form (in a form of array)\n * @returns object with `attrs` and `classes` fields that contain extracted information\n */\nfunction extractAttrsAndClassesFromSelector(selector) {\n const attrs = [];\n const classes = [];\n let i = 1;\n let mode = 2 /* SelectorFlags.ATTRIBUTE */;\n while (i < selector.length) {\n let valueOrMarker = selector[i];\n if (typeof valueOrMarker === 'string') {\n if (mode === 2 /* SelectorFlags.ATTRIBUTE */) {\n if (valueOrMarker !== '') {\n attrs.push(valueOrMarker, selector[++i]);\n }\n }\n else if (mode === 8 /* SelectorFlags.CLASS */) {\n classes.push(valueOrMarker);\n }\n }\n else {\n // According to CssSelector spec, once we come across `SelectorFlags.NOT` flag, the negative\n // mode is maintained for remaining chunks of a selector. Since attributes and classes are\n // extracted only for \"positive\" part of the selector, we can stop here.\n if (!isPositive(mode))\n break;\n mode = valueOrMarker;\n }\n i++;\n }\n return { attrs, classes };\n}\n\n/**\n * Create a component definition object.\n *\n *\n * # Example\n * ```\n * class MyComponent {\n * // Generated by Angular Template Compiler\n * // [Symbol] syntax will not be supported by TypeScript until v2.7\n * static ɵcmp = defineComponent({\n * ...\n * });\n * }\n * ```\n * @codeGenApi\n */\nfunction ɵɵdefineComponent(componentDefinition) {\n return noSideEffects(() => {\n // Initialize ngDevMode. This must be the first statement in ɵɵdefineComponent.\n // See the `initNgDevMode` docstring for more information.\n (typeof ngDevMode === 'undefined' || ngDevMode) && initNgDevMode();\n const baseDef = getNgDirectiveDef(componentDefinition);\n const def = {\n ...baseDef,\n decls: componentDefinition.decls,\n vars: componentDefinition.vars,\n template: componentDefinition.template,\n consts: componentDefinition.consts || null,\n ngContentSelectors: componentDefinition.ngContentSelectors,\n onPush: componentDefinition.changeDetection === ChangeDetectionStrategy.OnPush,\n directiveDefs: null, // assigned in noSideEffects\n pipeDefs: null, // assigned in noSideEffects\n dependencies: baseDef.standalone && componentDefinition.dependencies || null,\n getStandaloneInjector: null,\n signals: componentDefinition.signals ?? false,\n data: componentDefinition.data || {},\n encapsulation: componentDefinition.encapsulation || ViewEncapsulation$1.Emulated,\n styles: componentDefinition.styles || EMPTY_ARRAY,\n _: null,\n schemas: componentDefinition.schemas || null,\n tView: null,\n id: '',\n };\n initFeatures(def);\n const dependencies = componentDefinition.dependencies;\n def.directiveDefs = extractDefListOrFactory(dependencies, /* pipeDef */ false);\n def.pipeDefs = extractDefListOrFactory(dependencies, /* pipeDef */ true);\n def.id = getComponentId(def);\n return def;\n });\n}\nfunction extractDirectiveDef(type) {\n return getComponentDef(type) || getDirectiveDef(type);\n}\nfunction nonNull(value) {\n return value !== null;\n}\n/**\n * @codeGenApi\n */\nfunction ɵɵdefineNgModule(def) {\n return noSideEffects(() => {\n const res = {\n type: def.type,\n bootstrap: def.bootstrap || EMPTY_ARRAY,\n declarations: def.declarations || EMPTY_ARRAY,\n imports: def.imports || EMPTY_ARRAY,\n exports: def.exports || EMPTY_ARRAY,\n transitiveCompileScopes: null,\n schemas: def.schemas || null,\n id: def.id || null,\n };\n return res;\n });\n}\nfunction parseAndConvertBindingsForDefinition(obj, declaredInputs) {\n if (obj == null)\n return EMPTY_OBJ;\n const newLookup = {};\n for (const minifiedKey in obj) {\n if (obj.hasOwnProperty(minifiedKey)) {\n const value = obj[minifiedKey];\n let publicName;\n let declaredName;\n let inputFlags = InputFlags.None;\n if (Array.isArray(value)) {\n inputFlags = value[0];\n publicName = value[1];\n declaredName = value[2] ?? publicName; // declared name might not be set to save bytes.\n }\n else {\n publicName = value;\n declaredName = value;\n }\n // For inputs, capture the declared name, or if some flags are set.\n if (declaredInputs) {\n // Perf note: An array is only allocated for the input if there are flags.\n newLookup[publicName] =\n inputFlags !== InputFlags.None ? [minifiedKey, inputFlags] : minifiedKey;\n declaredInputs[publicName] = declaredName;\n }\n else {\n newLookup[publicName] = minifiedKey;\n }\n }\n }\n return newLookup;\n}\n/**\n * Create a directive definition object.\n *\n * # Example\n * ```ts\n * class MyDirective {\n * // Generated by Angular Template Compiler\n * // [Symbol] syntax will not be supported by TypeScript until v2.7\n * static ɵdir = ɵɵdefineDirective({\n * ...\n * });\n * }\n * ```\n *\n * @codeGenApi\n */\nfunction ɵɵdefineDirective(directiveDefinition) {\n return noSideEffects(() => {\n const def = getNgDirectiveDef(directiveDefinition);\n initFeatures(def);\n return def;\n });\n}\n/**\n * Create a pipe definition object.\n *\n * # Example\n * ```\n * class MyPipe implements PipeTransform {\n * // Generated by Angular Template Compiler\n * static ɵpipe = definePipe({\n * ...\n * });\n * }\n * ```\n * @param pipeDef Pipe definition generated by the compiler\n *\n * @codeGenApi\n */\nfunction ɵɵdefinePipe(pipeDef) {\n return {\n type: pipeDef.type,\n name: pipeDef.name,\n factory: null,\n pure: pipeDef.pure !== false,\n standalone: pipeDef.standalone === true,\n onDestroy: pipeDef.type.prototype.ngOnDestroy || null\n };\n}\n/**\n * The following getter methods retrieve the definition from the type. Currently the retrieval\n * honors inheritance, but in the future we may change the rule to require that definitions are\n * explicit. This would require some sort of migration strategy.\n */\nfunction getComponentDef(type) {\n return type[NG_COMP_DEF] || null;\n}\nfunction getDirectiveDef(type) {\n return type[NG_DIR_DEF] || null;\n}\nfunction getPipeDef$1(type) {\n return type[NG_PIPE_DEF] || null;\n}\n/**\n * Checks whether a given Component, Directive or Pipe is marked as standalone.\n * This will return false if passed anything other than a Component, Directive, or Pipe class\n * See [this guide](/guide/standalone-components) for additional information:\n *\n * @param type A reference to a Component, Directive or Pipe.\n * @publicApi\n */\nfunction isStandalone(type) {\n const def = getComponentDef(type) || getDirectiveDef(type) || getPipeDef$1(type);\n return def !== null ? def.standalone : false;\n}\nfunction getNgModuleDef(type, throwNotFound) {\n const ngModuleDef = type[NG_MOD_DEF] || null;\n if (!ngModuleDef && throwNotFound === true) {\n throw new Error(`Type ${stringify(type)} does not have 'ɵmod' property.`);\n }\n return ngModuleDef;\n}\nfunction getNgDirectiveDef(directiveDefinition) {\n const declaredInputs = {};\n return {\n type: directiveDefinition.type,\n providersResolver: null,\n factory: null,\n hostBindings: directiveDefinition.hostBindings || null,\n hostVars: directiveDefinition.hostVars || 0,\n hostAttrs: directiveDefinition.hostAttrs || null,\n contentQueries: directiveDefinition.contentQueries || null,\n declaredInputs: declaredInputs,\n inputTransforms: null,\n inputConfig: directiveDefinition.inputs || EMPTY_OBJ,\n exportAs: directiveDefinition.exportAs || null,\n standalone: directiveDefinition.standalone === true,\n signals: directiveDefinition.signals === true,\n selectors: directiveDefinition.selectors || EMPTY_ARRAY,\n viewQuery: directiveDefinition.viewQuery || null,\n features: directiveDefinition.features || null,\n setInput: null,\n findHostDirectiveDefs: null,\n hostDirectives: null,\n inputs: parseAndConvertBindingsForDefinition(directiveDefinition.inputs, declaredInputs),\n outputs: parseAndConvertBindingsForDefinition(directiveDefinition.outputs),\n debugInfo: null,\n };\n}\nfunction initFeatures(definition) {\n definition.features?.forEach((fn) => fn(definition));\n}\nfunction extractDefListOrFactory(dependencies, pipeDef) {\n if (!dependencies) {\n return null;\n }\n const defExtractor = pipeDef ? getPipeDef$1 : extractDirectiveDef;\n return () => (typeof dependencies === 'function' ? dependencies() : dependencies)\n .map(dep => defExtractor(dep))\n .filter(nonNull);\n}\n/**\n * A map that contains the generated component IDs and type.\n */\nconst GENERATED_COMP_IDS = new Map();\n/**\n * A method can returns a component ID from the component definition using a variant of DJB2 hash\n * algorithm.\n */\nfunction getComponentId(componentDef) {\n let hash = 0;\n // We cannot rely solely on the component selector as the same selector can be used in different\n // modules.\n //\n // `componentDef.style` is not used, due to it causing inconsistencies. Ex: when server\n // component styles has no sourcemaps and browsers do.\n //\n // Example:\n // https://github.com/angular/components/blob/d9f82c8f95309e77a6d82fd574c65871e91354c2/src/material/core/option/option.ts#L248\n // https://github.com/angular/components/blob/285f46dc2b4c5b127d356cb7c4714b221f03ce50/src/material/legacy-core/option/option.ts#L32\n const hashSelectors = [\n componentDef.selectors,\n componentDef.ngContentSelectors,\n componentDef.hostVars,\n componentDef.hostAttrs,\n componentDef.consts,\n componentDef.vars,\n componentDef.decls,\n componentDef.encapsulation,\n componentDef.standalone,\n componentDef.signals,\n componentDef.exportAs,\n JSON.stringify(componentDef.inputs),\n JSON.stringify(componentDef.outputs),\n // We cannot use 'componentDef.type.name' as the name of the symbol will change and will not\n // match in the server and browser bundles.\n Object.getOwnPropertyNames(componentDef.type.prototype),\n !!componentDef.contentQueries,\n !!componentDef.viewQuery,\n ].join('|');\n for (const char of hashSelectors) {\n hash = Math.imul(31, hash) + char.charCodeAt(0) << 0;\n }\n // Force positive number hash.\n // 2147483647 = equivalent of Integer.MAX_VALUE.\n hash += 2147483647 + 1;\n const compId = 'c' + hash;\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (GENERATED_COMP_IDS.has(compId)) {\n const previousCompDefType = GENERATED_COMP_IDS.get(compId);\n if (previousCompDefType !== componentDef.type) {\n console.warn(formatRuntimeError(-912 /* RuntimeErrorCode.COMPONENT_ID_COLLISION */, `Component ID generation collision detected. Components '${previousCompDefType.name}' and '${componentDef.type.name}' with selector '${stringifyCSSSelectorList(componentDef\n .selectors)}' generated the same component ID. To fix this, you can change the selector of one of those components or add an extra host attribute to force a different ID.`));\n }\n }\n else {\n GENERATED_COMP_IDS.set(compId, componentDef.type);\n }\n }\n return compId;\n}\n\n/**\n * Wrap an array of `Provider`s into `EnvironmentProviders`, preventing them from being accidentally\n * referenced in `@Component` in a component injector.\n */\nfunction makeEnvironmentProviders(providers) {\n return {\n ɵproviders: providers,\n };\n}\n/**\n * Collects providers from all NgModules and standalone components, including transitively imported\n * ones.\n *\n * Providers extracted via `importProvidersFrom` are only usable in an application injector or\n * another environment injector (such as a route injector). They should not be used in component\n * providers.\n *\n * More information about standalone components can be found in [this\n * guide](guide/standalone-components).\n *\n * @usageNotes\n * The results of the `importProvidersFrom` call can be used in the `bootstrapApplication` call:\n *\n * ```typescript\n * await bootstrapApplication(RootComponent, {\n * providers: [\n * importProvidersFrom(NgModuleOne, NgModuleTwo)\n * ]\n * });\n * ```\n *\n * You can also use the `importProvidersFrom` results in the `providers` field of a route, when a\n * standalone component is used:\n *\n * ```typescript\n * export const ROUTES: Route[] = [\n * {\n * path: 'foo',\n * providers: [\n * importProvidersFrom(NgModuleOne, NgModuleTwo)\n * ],\n * component: YourStandaloneComponent\n * }\n * ];\n * ```\n *\n * @returns Collected providers from the specified list of types.\n * @publicApi\n */\nfunction importProvidersFrom(...sources) {\n return {\n ɵproviders: internalImportProvidersFrom(true, sources),\n ɵfromNgModule: true,\n };\n}\nfunction internalImportProvidersFrom(checkForStandaloneCmp, ...sources) {\n const providersOut = [];\n const dedup = new Set(); // already seen types\n let injectorTypesWithProviders;\n const collectProviders = (provider) => {\n providersOut.push(provider);\n };\n deepForEach(sources, source => {\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && checkForStandaloneCmp) {\n const cmpDef = getComponentDef(source);\n if (cmpDef?.standalone) {\n throw new RuntimeError(800 /* RuntimeErrorCode.IMPORT_PROVIDERS_FROM_STANDALONE */, `Importing providers supports NgModule or ModuleWithProviders but got a standalone component \"${stringifyForError(source)}\"`);\n }\n }\n // Narrow `source` to access the internal type analogue for `ModuleWithProviders`.\n const internalSource = source;\n if (walkProviderTree(internalSource, collectProviders, [], dedup)) {\n injectorTypesWithProviders ||= [];\n injectorTypesWithProviders.push(internalSource);\n }\n });\n // Collect all providers from `ModuleWithProviders` types.\n if (injectorTypesWithProviders !== undefined) {\n processInjectorTypesWithProviders(injectorTypesWithProviders, collectProviders);\n }\n return providersOut;\n}\n/**\n * Collects all providers from the list of `ModuleWithProviders` and appends them to the provided\n * array.\n */\nfunction processInjectorTypesWithProviders(typesWithProviders, visitor) {\n for (let i = 0; i < typesWithProviders.length; i++) {\n const { ngModule, providers } = typesWithProviders[i];\n deepForEachProvider(providers, provider => {\n ngDevMode && validateProvider(provider, providers || EMPTY_ARRAY, ngModule);\n visitor(provider, ngModule);\n });\n }\n}\n/**\n * The logic visits an `InjectorType`, an `InjectorTypeWithProviders`, or a standalone\n * `ComponentType`, and all of its transitive providers and collects providers.\n *\n * If an `InjectorTypeWithProviders` that declares providers besides the type is specified,\n * the function will return \"true\" to indicate that the providers of the type definition need\n * to be processed. This allows us to process providers of injector types after all imports of\n * an injector definition are processed. (following View Engine semantics: see FW-1349)\n */\nfunction walkProviderTree(container, visitor, parents, dedup) {\n container = resolveForwardRef(container);\n if (!container)\n return false;\n // The actual type which had the definition. Usually `container`, but may be an unwrapped type\n // from `InjectorTypeWithProviders`.\n let defType = null;\n let injDef = getInjectorDef(container);\n const cmpDef = !injDef && getComponentDef(container);\n if (!injDef && !cmpDef) {\n // `container` is not an injector type or a component type. It might be:\n // * An `InjectorTypeWithProviders` that wraps an injector type.\n // * A standalone directive or pipe that got pulled in from a standalone component's\n // dependencies.\n // Try to unwrap it as an `InjectorTypeWithProviders` first.\n const ngModule = container.ngModule;\n injDef = getInjectorDef(ngModule);\n if (injDef) {\n defType = ngModule;\n }\n else {\n // Not a component or injector type, so ignore it.\n return false;\n }\n }\n else if (cmpDef && !cmpDef.standalone) {\n return false;\n }\n else {\n defType = container;\n }\n // Check for circular dependencies.\n if (ngDevMode && parents.indexOf(defType) !== -1) {\n const defName = stringify(defType);\n const path = parents.map(stringify);\n throwCyclicDependencyError(defName, path);\n }\n // Check for multiple imports of the same module\n const isDuplicate = dedup.has(defType);\n if (cmpDef) {\n if (isDuplicate) {\n // This component definition has already been processed.\n return false;\n }\n dedup.add(defType);\n if (cmpDef.dependencies) {\n const deps = typeof cmpDef.dependencies === 'function' ? cmpDef.dependencies() : cmpDef.dependencies;\n for (const dep of deps) {\n walkProviderTree(dep, visitor, parents, dedup);\n }\n }\n }\n else if (injDef) {\n // First, include providers from any imports.\n if (injDef.imports != null && !isDuplicate) {\n // Before processing defType's imports, add it to the set of parents. This way, if it ends\n // up deeply importing itself, this can be detected.\n ngDevMode && parents.push(defType);\n // Add it to the set of dedups. This way we can detect multiple imports of the same module\n dedup.add(defType);\n let importTypesWithProviders;\n try {\n deepForEach(injDef.imports, imported => {\n if (walkProviderTree(imported, visitor, parents, dedup)) {\n importTypesWithProviders ||= [];\n // If the processed import is an injector type with providers, we store it in the\n // list of import types with providers, so that we can process those afterwards.\n importTypesWithProviders.push(imported);\n }\n });\n }\n finally {\n // Remove it from the parents set when finished.\n ngDevMode && parents.pop();\n }\n // Imports which are declared with providers (TypeWithProviders) need to be processed\n // after all imported modules are processed. This is similar to how View Engine\n // processes/merges module imports in the metadata resolver. See: FW-1349.\n if (importTypesWithProviders !== undefined) {\n processInjectorTypesWithProviders(importTypesWithProviders, visitor);\n }\n }\n if (!isDuplicate) {\n // Track the InjectorType and add a provider for it.\n // It's important that this is done after the def's imports.\n const factory = getFactoryDef(defType) || (() => new defType());\n // Append extra providers to make more info available for consumers (to retrieve an injector\n // type), as well as internally (to calculate an injection scope correctly and eagerly\n // instantiate a `defType` when an injector is created).\n // Provider to create `defType` using its factory.\n visitor({ provide: defType, useFactory: factory, deps: EMPTY_ARRAY }, defType);\n // Make this `defType` available to an internal logic that calculates injector scope.\n visitor({ provide: INJECTOR_DEF_TYPES, useValue: defType, multi: true }, defType);\n // Provider to eagerly instantiate `defType` via `INJECTOR_INITIALIZER`.\n visitor({ provide: ENVIRONMENT_INITIALIZER, useValue: () => ɵɵinject(defType), multi: true }, defType);\n }\n // Next, include providers listed on the definition itself.\n const defProviders = injDef.providers;\n if (defProviders != null && !isDuplicate) {\n const injectorType = container;\n deepForEachProvider(defProviders, provider => {\n ngDevMode && validateProvider(provider, defProviders, injectorType);\n visitor(provider, injectorType);\n });\n }\n }\n else {\n // Should not happen, but just in case.\n return false;\n }\n return (defType !== container &&\n container.providers !== undefined);\n}\nfunction validateProvider(provider, providers, containerType) {\n if (isTypeProvider(provider) || isValueProvider(provider) || isFactoryProvider(provider) ||\n isExistingProvider(provider)) {\n return;\n }\n // Here we expect the provider to be a `useClass` provider (by elimination).\n const classRef = resolveForwardRef(provider && (provider.useClass || provider.provide));\n if (!classRef) {\n throwInvalidProviderError(containerType, providers, provider);\n }\n}\nfunction deepForEachProvider(providers, fn) {\n for (let provider of providers) {\n if (isEnvironmentProviders(provider)) {\n provider = provider.ɵproviders;\n }\n if (Array.isArray(provider)) {\n deepForEachProvider(provider, fn);\n }\n else {\n fn(provider);\n }\n }\n}\nconst USE_VALUE$1 = getClosureSafeProperty({ provide: String, useValue: getClosureSafeProperty });\nfunction isValueProvider(value) {\n return value !== null && typeof value == 'object' && USE_VALUE$1 in value;\n}\nfunction isExistingProvider(value) {\n return !!(value && value.useExisting);\n}\nfunction isFactoryProvider(value) {\n return !!(value && value.useFactory);\n}\nfunction isTypeProvider(value) {\n return typeof value === 'function';\n}\nfunction isClassProvider(value) {\n return !!value.useClass;\n}\n\n/**\n * An internal token whose presence in an injector indicates that the injector should treat itself\n * as a root scoped injector when processing requests for unknown tokens which may indicate\n * they are provided in the root scope.\n */\nconst INJECTOR_SCOPE = new InjectionToken(ngDevMode ? 'Set Injector scope.' : '');\n\n/**\n * Marker which indicates that a value has not yet been created from the factory function.\n */\nconst NOT_YET = {};\n/**\n * Marker which indicates that the factory function for a token is in the process of being called.\n *\n * If the injector is asked to inject a token with its value set to CIRCULAR, that indicates\n * injection of a dependency has recursively attempted to inject the original token, and there is\n * a circular dependency among the providers.\n */\nconst CIRCULAR = {};\n/**\n * A lazily initialized NullInjector.\n */\nlet NULL_INJECTOR = undefined;\nfunction getNullInjector() {\n if (NULL_INJECTOR === undefined) {\n NULL_INJECTOR = new NullInjector();\n }\n return NULL_INJECTOR;\n}\n/**\n * An `Injector` that's part of the environment injector hierarchy, which exists outside of the\n * component tree.\n */\nclass EnvironmentInjector {\n}\nclass R3Injector extends EnvironmentInjector {\n /**\n * Flag indicating that this injector was previously destroyed.\n */\n get destroyed() {\n return this._destroyed;\n }\n constructor(providers, parent, source, scopes) {\n super();\n this.parent = parent;\n this.source = source;\n this.scopes = scopes;\n /**\n * Map of tokens to records which contain the instances of those tokens.\n * - `null` value implies that we don't have the record. Used by tree-shakable injectors\n * to prevent further searches.\n */\n this.records = new Map();\n /**\n * Set of values instantiated by this injector which contain `ngOnDestroy` lifecycle hooks.\n */\n this._ngOnDestroyHooks = new Set();\n this._onDestroyHooks = [];\n this._destroyed = false;\n // Start off by creating Records for every provider.\n forEachSingleProvider(providers, provider => this.processProvider(provider));\n // Make sure the INJECTOR token provides this injector.\n this.records.set(INJECTOR$1, makeRecord(undefined, this));\n // And `EnvironmentInjector` if the current injector is supposed to be env-scoped.\n if (scopes.has('environment')) {\n this.records.set(EnvironmentInjector, makeRecord(undefined, this));\n }\n // Detect whether this injector has the APP_ROOT_SCOPE token and thus should provide\n // any injectable scoped to APP_ROOT_SCOPE.\n const record = this.records.get(INJECTOR_SCOPE);\n if (record != null && typeof record.value === 'string') {\n this.scopes.add(record.value);\n }\n this.injectorDefTypes = new Set(this.get(INJECTOR_DEF_TYPES, EMPTY_ARRAY, InjectFlags.Self));\n }\n /**\n * Destroy the injector and release references to every instance or provider associated with it.\n *\n * Also calls the `OnDestroy` lifecycle hooks of every instance that was created for which a\n * hook was found.\n */\n destroy() {\n this.assertNotDestroyed();\n // Set destroyed = true first, in case lifecycle hooks re-enter destroy().\n this._destroyed = true;\n const prevConsumer = setActiveConsumer$1(null);\n try {\n // Call all the lifecycle hooks.\n for (const service of this._ngOnDestroyHooks) {\n service.ngOnDestroy();\n }\n const onDestroyHooks = this._onDestroyHooks;\n // Reset the _onDestroyHooks array before iterating over it to prevent hooks that unregister\n // themselves from mutating the array during iteration.\n this._onDestroyHooks = [];\n for (const hook of onDestroyHooks) {\n hook();\n }\n }\n finally {\n // Release all references.\n this.records.clear();\n this._ngOnDestroyHooks.clear();\n this.injectorDefTypes.clear();\n setActiveConsumer$1(prevConsumer);\n }\n }\n onDestroy(callback) {\n this.assertNotDestroyed();\n this._onDestroyHooks.push(callback);\n return () => this.removeOnDestroy(callback);\n }\n runInContext(fn) {\n this.assertNotDestroyed();\n const previousInjector = setCurrentInjector(this);\n const previousInjectImplementation = setInjectImplementation(undefined);\n let prevInjectContext;\n if (ngDevMode) {\n prevInjectContext = setInjectorProfilerContext({ injector: this, token: null });\n }\n try {\n return fn();\n }\n finally {\n setCurrentInjector(previousInjector);\n setInjectImplementation(previousInjectImplementation);\n ngDevMode && setInjectorProfilerContext(prevInjectContext);\n }\n }\n get(token, notFoundValue = THROW_IF_NOT_FOUND, flags = InjectFlags.Default) {\n this.assertNotDestroyed();\n if (token.hasOwnProperty(NG_ENV_ID)) {\n return token[NG_ENV_ID](this);\n }\n flags = convertToBitFlags(flags);\n // Set the injection context.\n let prevInjectContext;\n if (ngDevMode) {\n prevInjectContext = setInjectorProfilerContext({ injector: this, token: token });\n }\n const previousInjector = setCurrentInjector(this);\n const previousInjectImplementation = setInjectImplementation(undefined);\n try {\n // Check for the SkipSelf flag.\n if (!(flags & InjectFlags.SkipSelf)) {\n // SkipSelf isn't set, check if the record belongs to this injector.\n let record = this.records.get(token);\n if (record === undefined) {\n // No record, but maybe the token is scoped to this injector. Look for an injectable\n // def with a scope matching this injector.\n const def = couldBeInjectableType(token) && getInjectableDef(token);\n if (def && this.injectableDefInScope(def)) {\n // Found an injectable def and it's scoped to this injector. Pretend as if it was here\n // all along.\n if (ngDevMode) {\n runInInjectorProfilerContext(this, token, () => {\n emitProviderConfiguredEvent(token);\n });\n }\n record = makeRecord(injectableDefOrInjectorDefFactory(token), NOT_YET);\n }\n else {\n record = null;\n }\n this.records.set(token, record);\n }\n // If a record was found, get the instance for it and return it.\n if (record != null /* NOT null || undefined */) {\n return this.hydrate(token, record);\n }\n }\n // Select the next injector based on the Self flag - if self is set, the next injector is\n // the NullInjector, otherwise it's the parent.\n const nextInjector = !(flags & InjectFlags.Self) ? this.parent : getNullInjector();\n // Set the notFoundValue based on the Optional flag - if optional is set and notFoundValue\n // is undefined, the value is null, otherwise it's the notFoundValue.\n notFoundValue = (flags & InjectFlags.Optional) && notFoundValue === THROW_IF_NOT_FOUND ?\n null :\n notFoundValue;\n return nextInjector.get(token, notFoundValue);\n }\n catch (e) {\n if (e.name === 'NullInjectorError') {\n const path = e[NG_TEMP_TOKEN_PATH] = e[NG_TEMP_TOKEN_PATH] || [];\n path.unshift(stringify(token));\n if (previousInjector) {\n // We still have a parent injector, keep throwing\n throw e;\n }\n else {\n // Format & throw the final error message when we don't have any previous injector\n return catchInjectorError(e, token, 'R3InjectorError', this.source);\n }\n }\n else {\n throw e;\n }\n }\n finally {\n // Lastly, restore the previous injection context.\n setInjectImplementation(previousInjectImplementation);\n setCurrentInjector(previousInjector);\n ngDevMode && setInjectorProfilerContext(prevInjectContext);\n }\n }\n /** @internal */\n resolveInjectorInitializers() {\n const prevConsumer = setActiveConsumer$1(null);\n const previousInjector = setCurrentInjector(this);\n const previousInjectImplementation = setInjectImplementation(undefined);\n let prevInjectContext;\n if (ngDevMode) {\n prevInjectContext = setInjectorProfilerContext({ injector: this, token: null });\n }\n try {\n const initializers = this.get(ENVIRONMENT_INITIALIZER, EMPTY_ARRAY, InjectFlags.Self);\n if (ngDevMode && !Array.isArray(initializers)) {\n throw new RuntimeError(-209 /* RuntimeErrorCode.INVALID_MULTI_PROVIDER */, 'Unexpected type of the `ENVIRONMENT_INITIALIZER` token value ' +\n `(expected an array, but got ${typeof initializers}). ` +\n 'Please check that the `ENVIRONMENT_INITIALIZER` token is configured as a ' +\n '`multi: true` provider.');\n }\n for (const initializer of initializers) {\n initializer();\n }\n }\n finally {\n setCurrentInjector(previousInjector);\n setInjectImplementation(previousInjectImplementation);\n ngDevMode && setInjectorProfilerContext(prevInjectContext);\n setActiveConsumer$1(prevConsumer);\n }\n }\n toString() {\n const tokens = [];\n const records = this.records;\n for (const token of records.keys()) {\n tokens.push(stringify(token));\n }\n return `R3Injector[${tokens.join(', ')}]`;\n }\n assertNotDestroyed() {\n if (this._destroyed) {\n throw new RuntimeError(205 /* RuntimeErrorCode.INJECTOR_ALREADY_DESTROYED */, ngDevMode && 'Injector has already been destroyed.');\n }\n }\n /**\n * Process a `SingleProvider` and add it.\n */\n processProvider(provider) {\n // Determine the token from the provider. Either it's its own token, or has a {provide: ...}\n // property.\n provider = resolveForwardRef(provider);\n let token = isTypeProvider(provider) ? provider : resolveForwardRef(provider && provider.provide);\n // Construct a `Record` for the provider.\n const record = providerToRecord(provider);\n if (ngDevMode) {\n runInInjectorProfilerContext(this, token, () => {\n // Emit InjectorProfilerEventType.Create if provider is a value provider because\n // these are the only providers that do not go through the value hydration logic\n // where this event would normally be emitted from.\n if (isValueProvider(provider)) {\n emitInstanceCreatedByInjectorEvent(provider.useValue);\n }\n emitProviderConfiguredEvent(provider);\n });\n }\n if (!isTypeProvider(provider) && provider.multi === true) {\n // If the provider indicates that it's a multi-provider, process it specially.\n // First check whether it's been defined already.\n let multiRecord = this.records.get(token);\n if (multiRecord) {\n // It has. Throw a nice error if\n if (ngDevMode && multiRecord.multi === undefined) {\n throwMixedMultiProviderError();\n }\n }\n else {\n multiRecord = makeRecord(undefined, NOT_YET, true);\n multiRecord.factory = () => injectArgs(multiRecord.multi);\n this.records.set(token, multiRecord);\n }\n token = provider;\n multiRecord.multi.push(provider);\n }\n else {\n if (ngDevMode) {\n const existing = this.records.get(token);\n if (existing && existing.multi !== undefined) {\n throwMixedMultiProviderError();\n }\n }\n }\n this.records.set(token, record);\n }\n hydrate(token, record) {\n const prevConsumer = setActiveConsumer$1(null);\n try {\n if (ngDevMode && record.value === CIRCULAR) {\n throwCyclicDependencyError(stringify(token));\n }\n else if (record.value === NOT_YET) {\n record.value = CIRCULAR;\n if (ngDevMode) {\n runInInjectorProfilerContext(this, token, () => {\n record.value = record.factory();\n emitInstanceCreatedByInjectorEvent(record.value);\n });\n }\n else {\n record.value = record.factory();\n }\n }\n if (typeof record.value === 'object' && record.value && hasOnDestroy(record.value)) {\n this._ngOnDestroyHooks.add(record.value);\n }\n return record.value;\n }\n finally {\n setActiveConsumer$1(prevConsumer);\n }\n }\n injectableDefInScope(def) {\n if (!def.providedIn) {\n return false;\n }\n const providedIn = resolveForwardRef(def.providedIn);\n if (typeof providedIn === 'string') {\n return providedIn === 'any' || (this.scopes.has(providedIn));\n }\n else {\n return this.injectorDefTypes.has(providedIn);\n }\n }\n removeOnDestroy(callback) {\n const destroyCBIdx = this._onDestroyHooks.indexOf(callback);\n if (destroyCBIdx !== -1) {\n this._onDestroyHooks.splice(destroyCBIdx, 1);\n }\n }\n}\nfunction injectableDefOrInjectorDefFactory(token) {\n // Most tokens will have an injectable def directly on them, which specifies a factory directly.\n const injectableDef = getInjectableDef(token);\n const factory = injectableDef !== null ? injectableDef.factory : getFactoryDef(token);\n if (factory !== null) {\n return factory;\n }\n // InjectionTokens should have an injectable def (ɵprov) and thus should be handled above.\n // If it's missing that, it's an error.\n if (token instanceof InjectionToken) {\n throw new RuntimeError(204 /* RuntimeErrorCode.INVALID_INJECTION_TOKEN */, ngDevMode && `Token ${stringify(token)} is missing a ɵprov definition.`);\n }\n // Undecorated types can sometimes be created if they have no constructor arguments.\n if (token instanceof Function) {\n return getUndecoratedInjectableFactory(token);\n }\n // There was no way to resolve a factory for this token.\n throw new RuntimeError(204 /* RuntimeErrorCode.INVALID_INJECTION_TOKEN */, ngDevMode && 'unreachable');\n}\nfunction getUndecoratedInjectableFactory(token) {\n // If the token has parameters then it has dependencies that we cannot resolve implicitly.\n const paramLength = token.length;\n if (paramLength > 0) {\n throw new RuntimeError(204 /* RuntimeErrorCode.INVALID_INJECTION_TOKEN */, ngDevMode &&\n `Can't resolve all parameters for ${stringify(token)}: (${newArray(paramLength, '?').join(', ')}).`);\n }\n // The constructor function appears to have no parameters.\n // This might be because it inherits from a super-class. In which case, use an injectable\n // def from an ancestor if there is one.\n // Otherwise this really is a simple class with no dependencies, so return a factory that\n // just instantiates the zero-arg constructor.\n const inheritedInjectableDef = getInheritedInjectableDef(token);\n if (inheritedInjectableDef !== null) {\n return () => inheritedInjectableDef.factory(token);\n }\n else {\n return () => new token();\n }\n}\nfunction providerToRecord(provider) {\n if (isValueProvider(provider)) {\n return makeRecord(undefined, provider.useValue);\n }\n else {\n const factory = providerToFactory(provider);\n return makeRecord(factory, NOT_YET);\n }\n}\n/**\n * Converts a `SingleProvider` into a factory function.\n *\n * @param provider provider to convert to factory\n */\nfunction providerToFactory(provider, ngModuleType, providers) {\n let factory = undefined;\n if (ngDevMode && isEnvironmentProviders(provider)) {\n throwInvalidProviderError(undefined, providers, provider);\n }\n if (isTypeProvider(provider)) {\n const unwrappedProvider = resolveForwardRef(provider);\n return getFactoryDef(unwrappedProvider) || injectableDefOrInjectorDefFactory(unwrappedProvider);\n }\n else {\n if (isValueProvider(provider)) {\n factory = () => resolveForwardRef(provider.useValue);\n }\n else if (isFactoryProvider(provider)) {\n factory = () => provider.useFactory(...injectArgs(provider.deps || []));\n }\n else if (isExistingProvider(provider)) {\n factory = () => ɵɵinject(resolveForwardRef(provider.useExisting));\n }\n else {\n const classRef = resolveForwardRef(provider &&\n (provider.useClass || provider.provide));\n if (ngDevMode && !classRef) {\n throwInvalidProviderError(ngModuleType, providers, provider);\n }\n if (hasDeps(provider)) {\n factory = () => new (classRef)(...injectArgs(provider.deps));\n }\n else {\n return getFactoryDef(classRef) || injectableDefOrInjectorDefFactory(classRef);\n }\n }\n }\n return factory;\n}\nfunction makeRecord(factory, value, multi = false) {\n return {\n factory: factory,\n value: value,\n multi: multi ? [] : undefined,\n };\n}\nfunction hasDeps(value) {\n return !!value.deps;\n}\nfunction hasOnDestroy(value) {\n return value !== null && typeof value === 'object' &&\n typeof value.ngOnDestroy === 'function';\n}\nfunction couldBeInjectableType(value) {\n return (typeof value === 'function') ||\n (typeof value === 'object' && value instanceof InjectionToken);\n}\nfunction forEachSingleProvider(providers, fn) {\n for (const provider of providers) {\n if (Array.isArray(provider)) {\n forEachSingleProvider(provider, fn);\n }\n else if (provider && isEnvironmentProviders(provider)) {\n forEachSingleProvider(provider.ɵproviders, fn);\n }\n else {\n fn(provider);\n }\n }\n}\n\n/**\n * Runs the given function in the [context](guide/dependency-injection-context) of the given\n * `Injector`.\n *\n * Within the function's stack frame, [`inject`](api/core/inject) can be used to inject dependencies\n * from the given `Injector`. Note that `inject` is only usable synchronously, and cannot be used in\n * any asynchronous callbacks or after any `await` points.\n *\n * @param injector the injector which will satisfy calls to [`inject`](api/core/inject) while `fn`\n * is executing\n * @param fn the closure to be run in the context of `injector`\n * @returns the return value of the function, if any\n * @publicApi\n */\nfunction runInInjectionContext(injector, fn) {\n if (injector instanceof R3Injector) {\n injector.assertNotDestroyed();\n }\n let prevInjectorProfilerContext;\n if (ngDevMode) {\n prevInjectorProfilerContext = setInjectorProfilerContext({ injector, token: null });\n }\n const prevInjector = setCurrentInjector(injector);\n const previousInjectImplementation = setInjectImplementation(undefined);\n try {\n return fn();\n }\n finally {\n setCurrentInjector(prevInjector);\n ngDevMode && setInjectorProfilerContext(prevInjectorProfilerContext);\n setInjectImplementation(previousInjectImplementation);\n }\n}\n/**\n * Whether the current stack frame is inside an injection context.\n */\nfunction isInInjectionContext() {\n return getInjectImplementation() !== undefined || getCurrentInjector() != null;\n}\n/**\n * Asserts that the current stack frame is within an [injection\n * context](guide/dependency-injection-context) and has access to `inject`.\n *\n * @param debugFn a reference to the function making the assertion (used for the error message).\n *\n * @publicApi\n */\nfunction assertInInjectionContext(debugFn) {\n // Taking a `Function` instead of a string name here prevents the unminified name of the function\n // from being retained in the bundle regardless of minification.\n if (!isInInjectionContext()) {\n throw new RuntimeError(-203 /* RuntimeErrorCode.MISSING_INJECTION_CONTEXT */, ngDevMode &&\n (debugFn.name +\n '() can only be used within an injection context such as a constructor, a factory function, a field initializer, or a function used with `runInInjectionContext`'));\n }\n}\n\nvar FactoryTarget;\n(function (FactoryTarget) {\n FactoryTarget[FactoryTarget[\"Directive\"] = 0] = \"Directive\";\n FactoryTarget[FactoryTarget[\"Component\"] = 1] = \"Component\";\n FactoryTarget[FactoryTarget[\"Injectable\"] = 2] = \"Injectable\";\n FactoryTarget[FactoryTarget[\"Pipe\"] = 3] = \"Pipe\";\n FactoryTarget[FactoryTarget[\"NgModule\"] = 4] = \"NgModule\";\n})(FactoryTarget || (FactoryTarget = {}));\nvar R3TemplateDependencyKind;\n(function (R3TemplateDependencyKind) {\n R3TemplateDependencyKind[R3TemplateDependencyKind[\"Directive\"] = 0] = \"Directive\";\n R3TemplateDependencyKind[R3TemplateDependencyKind[\"Pipe\"] = 1] = \"Pipe\";\n R3TemplateDependencyKind[R3TemplateDependencyKind[\"NgModule\"] = 2] = \"NgModule\";\n})(R3TemplateDependencyKind || (R3TemplateDependencyKind = {}));\nvar ViewEncapsulation;\n(function (ViewEncapsulation) {\n ViewEncapsulation[ViewEncapsulation[\"Emulated\"] = 0] = \"Emulated\";\n // Historically the 1 value was for `Native` encapsulation which has been removed as of v11.\n ViewEncapsulation[ViewEncapsulation[\"None\"] = 2] = \"None\";\n ViewEncapsulation[ViewEncapsulation[\"ShadowDom\"] = 3] = \"ShadowDom\";\n})(ViewEncapsulation || (ViewEncapsulation = {}));\n\nfunction getCompilerFacade(request) {\n const globalNg = _global['ng'];\n if (globalNg && globalNg.ɵcompilerFacade) {\n return globalNg.ɵcompilerFacade;\n }\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n // Log the type as an error so that a developer can easily navigate to the type from the\n // console.\n console.error(`JIT compilation failed for ${request.kind}`, request.type);\n let message = `The ${request.kind} '${request\n .type.name}' needs to be compiled using the JIT compiler, but '@angular/compiler' is not available.\\n\\n`;\n if (request.usage === 1 /* JitCompilerUsage.PartialDeclaration */) {\n message += `The ${request.kind} is part of a library that has been partially compiled.\\n`;\n message +=\n `However, the Angular Linker has not processed the library such that JIT compilation is used as fallback.\\n`;\n message += '\\n';\n message +=\n `Ideally, the library is processed using the Angular Linker to become fully AOT compiled.\\n`;\n }\n else {\n message +=\n `JIT compilation is discouraged for production use-cases! Consider using AOT mode instead.\\n`;\n }\n message +=\n `Alternatively, the JIT compiler should be loaded by bootstrapping using '@angular/platform-browser-dynamic' or '@angular/platform-server',\\n`;\n message +=\n `or manually provide the compiler with 'import \"@angular/compiler\";' before bootstrapping.`;\n throw new Error(message);\n }\n else {\n throw new Error('JIT compiler unavailable');\n }\n}\n\n/**\n * A mapping of the @angular/core API surface used in generated expressions to the actual symbols.\n *\n * This should be kept up to date with the public exports of @angular/core.\n */\nconst angularCoreDiEnv = {\n 'ɵɵdefineInjectable': ɵɵdefineInjectable,\n 'ɵɵdefineInjector': ɵɵdefineInjector,\n 'ɵɵinject': ɵɵinject,\n 'ɵɵinvalidFactoryDep': ɵɵinvalidFactoryDep,\n 'resolveForwardRef': resolveForwardRef,\n};\n\n/**\n * @description\n *\n * Represents a type that a Component or other object is instances of.\n *\n * An example of a `Type` is `MyCustomComponent` class, which in JavaScript is represented by\n * the `MyCustomComponent` constructor function.\n *\n * @publicApi\n */\nconst Type = Function;\nfunction isType(v) {\n return typeof v === 'function';\n}\n\n/*\n * #########################\n * Attention: These Regular expressions have to hold even if the code is minified!\n * ##########################\n */\n/**\n * Regular expression that detects pass-through constructors for ES5 output. This Regex\n * intends to capture the common delegation pattern emitted by TypeScript and Babel. Also\n * it intends to capture the pattern where existing constructors have been downleveled from\n * ES2015 to ES5 using TypeScript w/ downlevel iteration. e.g.\n *\n * ```\n * function MyClass() {\n * var _this = _super.apply(this, arguments) || this;\n * ```\n *\n * downleveled to ES5 with `downlevelIteration` for TypeScript < 4.2:\n * ```\n * function MyClass() {\n * var _this = _super.apply(this, __spread(arguments)) || this;\n * ```\n *\n * or downleveled to ES5 with `downlevelIteration` for TypeScript >= 4.2:\n * ```\n * function MyClass() {\n * var _this = _super.apply(this, __spreadArray([], __read(arguments), false)) || this;\n * ```\n *\n * More details can be found in: https://github.com/angular/angular/issues/38453.\n */\nconst ES5_DELEGATE_CTOR = /^function\\s+\\S+\\(\\)\\s*{[\\s\\S]+\\.apply\\(this,\\s*(arguments|(?:[^()]+\\(\\[\\],)?[^()]+\\(arguments\\).*)\\)/;\n/** Regular expression that detects ES2015 classes which extend from other classes. */\nconst ES2015_INHERITED_CLASS = /^class\\s+[A-Za-z\\d$_]*\\s*extends\\s+[^{]+{/;\n/**\n * Regular expression that detects ES2015 classes which extend from other classes and\n * have an explicit constructor defined.\n */\nconst ES2015_INHERITED_CLASS_WITH_CTOR = /^class\\s+[A-Za-z\\d$_]*\\s*extends\\s+[^{]+{[\\s\\S]*constructor\\s*\\(/;\n/**\n * Regular expression that detects ES2015 classes which extend from other classes\n * and inherit a constructor.\n */\nconst ES2015_INHERITED_CLASS_WITH_DELEGATE_CTOR = /^class\\s+[A-Za-z\\d$_]*\\s*extends\\s+[^{]+{[\\s\\S]*constructor\\s*\\(\\)\\s*{[^}]*super\\(\\.\\.\\.arguments\\)/;\n/**\n * Determine whether a stringified type is a class which delegates its constructor\n * to its parent.\n *\n * This is not trivial since compiled code can actually contain a constructor function\n * even if the original source code did not. For instance, when the child class contains\n * an initialized instance property.\n */\nfunction isDelegateCtor(typeStr) {\n return ES5_DELEGATE_CTOR.test(typeStr) ||\n ES2015_INHERITED_CLASS_WITH_DELEGATE_CTOR.test(typeStr) ||\n (ES2015_INHERITED_CLASS.test(typeStr) && !ES2015_INHERITED_CLASS_WITH_CTOR.test(typeStr));\n}\nclass ReflectionCapabilities {\n constructor(reflect) {\n this._reflect = reflect || _global['Reflect'];\n }\n factory(t) {\n return (...args) => new t(...args);\n }\n /** @internal */\n _zipTypesAndAnnotations(paramTypes, paramAnnotations) {\n let result;\n if (typeof paramTypes === 'undefined') {\n result = newArray(paramAnnotations.length);\n }\n else {\n result = newArray(paramTypes.length);\n }\n for (let i = 0; i < result.length; i++) {\n // TS outputs Object for parameters without types, while Traceur omits\n // the annotations. For now we preserve the Traceur behavior to aid\n // migration, but this can be revisited.\n if (typeof paramTypes === 'undefined') {\n result[i] = [];\n }\n else if (paramTypes[i] && paramTypes[i] != Object) {\n result[i] = [paramTypes[i]];\n }\n else {\n result[i] = [];\n }\n if (paramAnnotations && paramAnnotations[i] != null) {\n result[i] = result[i].concat(paramAnnotations[i]);\n }\n }\n return result;\n }\n _ownParameters(type, parentCtor) {\n const typeStr = type.toString();\n // If we have no decorators, we only have function.length as metadata.\n // In that case, to detect whether a child class declared an own constructor or not,\n // we need to look inside of that constructor to check whether it is\n // just calling the parent.\n // This also helps to work around for https://github.com/Microsoft/TypeScript/issues/12439\n // that sets 'design:paramtypes' to []\n // if a class inherits from another class but has no ctor declared itself.\n if (isDelegateCtor(typeStr)) {\n return null;\n }\n // Prefer the direct API.\n if (type.parameters && type.parameters !== parentCtor.parameters) {\n return type.parameters;\n }\n // API of tsickle for lowering decorators to properties on the class.\n const tsickleCtorParams = type.ctorParameters;\n if (tsickleCtorParams && tsickleCtorParams !== parentCtor.ctorParameters) {\n // Newer tsickle uses a function closure\n // Retain the non-function case for compatibility with older tsickle\n const ctorParameters = typeof tsickleCtorParams === 'function' ? tsickleCtorParams() : tsickleCtorParams;\n const paramTypes = ctorParameters.map((ctorParam) => ctorParam && ctorParam.type);\n const paramAnnotations = ctorParameters.map((ctorParam) => ctorParam && convertTsickleDecoratorIntoMetadata(ctorParam.decorators));\n return this._zipTypesAndAnnotations(paramTypes, paramAnnotations);\n }\n // API for metadata created by invoking the decorators.\n const paramAnnotations = type.hasOwnProperty(PARAMETERS) && type[PARAMETERS];\n const paramTypes = this._reflect && this._reflect.getOwnMetadata &&\n this._reflect.getOwnMetadata('design:paramtypes', type);\n if (paramTypes || paramAnnotations) {\n return this._zipTypesAndAnnotations(paramTypes, paramAnnotations);\n }\n // If a class has no decorators, at least create metadata\n // based on function.length.\n // Note: We know that this is a real constructor as we checked\n // the content of the constructor above.\n return newArray(type.length);\n }\n parameters(type) {\n // Note: only report metadata if we have at least one class decorator\n // to stay in sync with the static reflector.\n if (!isType(type)) {\n return [];\n }\n const parentCtor = getParentCtor(type);\n let parameters = this._ownParameters(type, parentCtor);\n if (!parameters && parentCtor !== Object) {\n parameters = this.parameters(parentCtor);\n }\n return parameters || [];\n }\n _ownAnnotations(typeOrFunc, parentCtor) {\n // Prefer the direct API.\n if (typeOrFunc.annotations && typeOrFunc.annotations !== parentCtor.annotations) {\n let annotations = typeOrFunc.annotations;\n if (typeof annotations === 'function' && annotations.annotations) {\n annotations = annotations.annotations;\n }\n return annotations;\n }\n // API of tsickle for lowering decorators to properties on the class.\n if (typeOrFunc.decorators && typeOrFunc.decorators !== parentCtor.decorators) {\n return convertTsickleDecoratorIntoMetadata(typeOrFunc.decorators);\n }\n // API for metadata created by invoking the decorators.\n if (typeOrFunc.hasOwnProperty(ANNOTATIONS)) {\n return typeOrFunc[ANNOTATIONS];\n }\n return null;\n }\n annotations(typeOrFunc) {\n if (!isType(typeOrFunc)) {\n return [];\n }\n const parentCtor = getParentCtor(typeOrFunc);\n const ownAnnotations = this._ownAnnotations(typeOrFunc, parentCtor) || [];\n const parentAnnotations = parentCtor !== Object ? this.annotations(parentCtor) : [];\n return parentAnnotations.concat(ownAnnotations);\n }\n _ownPropMetadata(typeOrFunc, parentCtor) {\n // Prefer the direct API.\n if (typeOrFunc.propMetadata &&\n typeOrFunc.propMetadata !== parentCtor.propMetadata) {\n let propMetadata = typeOrFunc.propMetadata;\n if (typeof propMetadata === 'function' && propMetadata.propMetadata) {\n propMetadata = propMetadata.propMetadata;\n }\n return propMetadata;\n }\n // API of tsickle for lowering decorators to properties on the class.\n if (typeOrFunc.propDecorators &&\n typeOrFunc.propDecorators !== parentCtor.propDecorators) {\n const propDecorators = typeOrFunc.propDecorators;\n const propMetadata = {};\n Object.keys(propDecorators).forEach(prop => {\n propMetadata[prop] = convertTsickleDecoratorIntoMetadata(propDecorators[prop]);\n });\n return propMetadata;\n }\n // API for metadata created by invoking the decorators.\n if (typeOrFunc.hasOwnProperty(PROP_METADATA)) {\n return typeOrFunc[PROP_METADATA];\n }\n return null;\n }\n propMetadata(typeOrFunc) {\n if (!isType(typeOrFunc)) {\n return {};\n }\n const parentCtor = getParentCtor(typeOrFunc);\n const propMetadata = {};\n if (parentCtor !== Object) {\n const parentPropMetadata = this.propMetadata(parentCtor);\n Object.keys(parentPropMetadata).forEach((propName) => {\n propMetadata[propName] = parentPropMetadata[propName];\n });\n }\n const ownPropMetadata = this._ownPropMetadata(typeOrFunc, parentCtor);\n if (ownPropMetadata) {\n Object.keys(ownPropMetadata).forEach((propName) => {\n const decorators = [];\n if (propMetadata.hasOwnProperty(propName)) {\n decorators.push(...propMetadata[propName]);\n }\n decorators.push(...ownPropMetadata[propName]);\n propMetadata[propName] = decorators;\n });\n }\n return propMetadata;\n }\n ownPropMetadata(typeOrFunc) {\n if (!isType(typeOrFunc)) {\n return {};\n }\n return this._ownPropMetadata(typeOrFunc, getParentCtor(typeOrFunc)) || {};\n }\n hasLifecycleHook(type, lcProperty) {\n return type instanceof Type && lcProperty in type.prototype;\n }\n}\nfunction convertTsickleDecoratorIntoMetadata(decoratorInvocations) {\n if (!decoratorInvocations) {\n return [];\n }\n return decoratorInvocations.map(decoratorInvocation => {\n const decoratorType = decoratorInvocation.type;\n const annotationCls = decoratorType.annotationCls;\n const annotationArgs = decoratorInvocation.args ? decoratorInvocation.args : [];\n return new annotationCls(...annotationArgs);\n });\n}\nfunction getParentCtor(ctor) {\n const parentProto = ctor.prototype ? Object.getPrototypeOf(ctor.prototype) : null;\n const parentCtor = parentProto ? parentProto.constructor : null;\n // Note: We always use `Object` as the null value\n // to simplify checking later on.\n return parentCtor || Object;\n}\n\n// Below are constants for LView indices to help us look up LView members\n// without having to remember the specific indices.\n// Uglify will inline these when minifying so there shouldn't be a cost.\nconst HOST = 0;\nconst TVIEW = 1;\n// Shared with LContainer\nconst FLAGS = 2;\nconst PARENT = 3;\nconst NEXT = 4;\nconst T_HOST = 5;\n// End shared with LContainer\nconst HYDRATION = 6;\nconst CLEANUP = 7;\nconst CONTEXT = 8;\nconst INJECTOR = 9;\nconst ENVIRONMENT = 10;\nconst RENDERER = 11;\nconst CHILD_HEAD = 12;\nconst CHILD_TAIL = 13;\n// FIXME(misko): Investigate if the three declarations aren't all same thing.\nconst DECLARATION_VIEW = 14;\nconst DECLARATION_COMPONENT_VIEW = 15;\nconst DECLARATION_LCONTAINER = 16;\nconst PREORDER_HOOK_FLAGS = 17;\nconst QUERIES = 18;\nconst ID = 19;\nconst EMBEDDED_VIEW_INJECTOR = 20;\nconst ON_DESTROY_HOOKS = 21;\nconst EFFECTS_TO_SCHEDULE = 22;\nconst REACTIVE_TEMPLATE_CONSUMER = 23;\n/**\n * Size of LView's header. Necessary to adjust for it when setting slots.\n *\n * IMPORTANT: `HEADER_OFFSET` should only be referred to the in the `ɵɵ*` instructions to translate\n * instruction index into `LView` index. All other indexes should be in the `LView` index space and\n * there should be no need to refer to `HEADER_OFFSET` anywhere else.\n */\nconst HEADER_OFFSET = 25;\n\n/**\n * Special location which allows easy identification of type. If we have an array which was\n * retrieved from the `LView` and that array has `true` at `TYPE` location, we know it is\n * `LContainer`.\n */\nconst TYPE = 1;\n/**\n * Below are constants for LContainer indices to help us look up LContainer members\n * without having to remember the specific indices.\n * Uglify will inline these when minifying so there shouldn't be a cost.\n */\n// FLAGS, PARENT, NEXT, and T_HOST are indices 2, 3, 4, and 5\n// As we already have these constants in LView, we don't need to re-create them.\nconst DEHYDRATED_VIEWS = 6;\nconst NATIVE = 7;\nconst VIEW_REFS = 8;\nconst MOVED_VIEWS = 9;\n/**\n * Size of LContainer's header. Represents the index after which all views in the\n * container will be inserted. We need to keep a record of current views so we know\n * which views are already in the DOM (and don't need to be re-added) and so we can\n * remove views from the DOM when they are no longer required.\n */\nconst CONTAINER_HEADER_OFFSET = 10;\n/** Flags associated with an LContainer (saved in LContainer[FLAGS]) */\nvar LContainerFlags;\n(function (LContainerFlags) {\n LContainerFlags[LContainerFlags[\"None\"] = 0] = \"None\";\n /**\n * Flag to signify that this `LContainer` may have transplanted views which need to be change\n * detected. (see: `LView[DECLARATION_COMPONENT_VIEW])`.\n *\n * This flag, once set, is never unset for the `LContainer`.\n */\n LContainerFlags[LContainerFlags[\"HasTransplantedViews\"] = 2] = \"HasTransplantedViews\";\n})(LContainerFlags || (LContainerFlags = {}));\n\n/**\n * True if `value` is `LView`.\n * @param value wrapped value of `RNode`, `LView`, `LContainer`\n */\nfunction isLView(value) {\n return Array.isArray(value) && typeof value[TYPE] === 'object';\n}\n/**\n * True if `value` is `LContainer`.\n * @param value wrapped value of `RNode`, `LView`, `LContainer`\n */\nfunction isLContainer(value) {\n return Array.isArray(value) && value[TYPE] === true;\n}\nfunction isContentQueryHost(tNode) {\n return (tNode.flags & 4 /* TNodeFlags.hasContentQuery */) !== 0;\n}\nfunction isComponentHost(tNode) {\n return tNode.componentOffset > -1;\n}\nfunction isDirectiveHost(tNode) {\n return (tNode.flags & 1 /* TNodeFlags.isDirectiveHost */) === 1 /* TNodeFlags.isDirectiveHost */;\n}\nfunction isComponentDef(def) {\n return !!def.template;\n}\nfunction isRootView(target) {\n return (target[FLAGS] & 512 /* LViewFlags.IsRoot */) !== 0;\n}\nfunction isProjectionTNode(tNode) {\n return (tNode.type & 16 /* TNodeType.Projection */) === 16 /* TNodeType.Projection */;\n}\nfunction hasI18n(lView) {\n return (lView[FLAGS] & 32 /* LViewFlags.HasI18n */) === 32 /* LViewFlags.HasI18n */;\n}\nfunction isDestroyed(lView) {\n return (lView[FLAGS] & 256 /* LViewFlags.Destroyed */) === 256 /* LViewFlags.Destroyed */;\n}\n\n// [Assert functions do not constraint type when they are guarded by a truthy\n// expression.](https://github.com/microsoft/TypeScript/issues/37295)\nfunction assertTNodeForLView(tNode, lView) {\n assertTNodeForTView(tNode, lView[TVIEW]);\n}\nfunction assertTNodeForTView(tNode, tView) {\n assertTNode(tNode);\n const tData = tView.data;\n for (let i = HEADER_OFFSET; i < tData.length; i++) {\n if (tData[i] === tNode) {\n return;\n }\n }\n throwError('This TNode does not belong to this TView.');\n}\nfunction assertTNode(tNode) {\n assertDefined(tNode, 'TNode must be defined');\n if (!(tNode && typeof tNode === 'object' && tNode.hasOwnProperty('directiveStylingLast'))) {\n throwError('Not of type TNode, got: ' + tNode);\n }\n}\nfunction assertTIcu(tIcu) {\n assertDefined(tIcu, 'Expected TIcu to be defined');\n if (!(typeof tIcu.currentCaseLViewIndex === 'number')) {\n throwError('Object is not of TIcu type.');\n }\n}\nfunction assertComponentType(actual, msg = 'Type passed in is not ComponentType, it does not have \\'ɵcmp\\' property.') {\n if (!getComponentDef(actual)) {\n throwError(msg);\n }\n}\nfunction assertNgModuleType(actual, msg = 'Type passed in is not NgModuleType, it does not have \\'ɵmod\\' property.') {\n if (!getNgModuleDef(actual)) {\n throwError(msg);\n }\n}\nfunction assertCurrentTNodeIsParent(isParent) {\n assertEqual(isParent, true, 'currentTNode should be a parent');\n}\nfunction assertHasParent(tNode) {\n assertDefined(tNode, 'currentTNode should exist!');\n assertDefined(tNode.parent, 'currentTNode should have a parent');\n}\nfunction assertLContainer(value) {\n assertDefined(value, 'LContainer must be defined');\n assertEqual(isLContainer(value), true, 'Expecting LContainer');\n}\nfunction assertLViewOrUndefined(value) {\n value && assertEqual(isLView(value), true, 'Expecting LView or undefined or null');\n}\nfunction assertLView(value) {\n assertDefined(value, 'LView must be defined');\n assertEqual(isLView(value), true, 'Expecting LView');\n}\nfunction assertFirstCreatePass(tView, errMessage) {\n assertEqual(tView.firstCreatePass, true, errMessage || 'Should only be called in first create pass.');\n}\nfunction assertFirstUpdatePass(tView, errMessage) {\n assertEqual(tView.firstUpdatePass, true, errMessage || 'Should only be called in first update pass.');\n}\n/**\n * This is a basic sanity check that an object is probably a directive def. DirectiveDef is\n * an interface, so we can't do a direct instanceof check.\n */\nfunction assertDirectiveDef(obj) {\n if (obj.type === undefined || obj.selectors == undefined || obj.inputs === undefined) {\n throwError(`Expected a DirectiveDef/ComponentDef and this object does not seem to have the expected shape.`);\n }\n}\nfunction assertIndexInDeclRange(tView, index) {\n assertBetween(HEADER_OFFSET, tView.bindingStartIndex, index);\n}\nfunction assertIndexInExpandoRange(lView, index) {\n const tView = lView[1];\n assertBetween(tView.expandoStartIndex, lView.length, index);\n}\nfunction assertBetween(lower, upper, index) {\n if (!(lower <= index && index < upper)) {\n throwError(`Index out of range (expecting ${lower} <= ${index} < ${upper})`);\n }\n}\nfunction assertProjectionSlots(lView, errMessage) {\n assertDefined(lView[DECLARATION_COMPONENT_VIEW], 'Component views should exist.');\n assertDefined(lView[DECLARATION_COMPONENT_VIEW][T_HOST].projection, errMessage ||\n 'Components with projection nodes () must have projection slots defined.');\n}\nfunction assertParentView(lView, errMessage) {\n assertDefined(lView, errMessage || 'Component views should always have a parent view (component\\'s host view)');\n}\nfunction assertNoDuplicateDirectives(directives) {\n // The array needs at least two elements in order to have duplicates.\n if (directives.length < 2) {\n return;\n }\n const seenDirectives = new Set();\n for (const current of directives) {\n if (seenDirectives.has(current)) {\n throw new RuntimeError(309 /* RuntimeErrorCode.DUPLICATE_DIRECTIVE */, `Directive ${current.type.name} matches multiple times on the same element. ` +\n `Directives can only match an element once.`);\n }\n seenDirectives.add(current);\n }\n}\n/**\n * This is a basic sanity check that the `injectorIndex` seems to point to what looks like a\n * NodeInjector data structure.\n *\n * @param lView `LView` which should be checked.\n * @param injectorIndex index into the `LView` where the `NodeInjector` is expected.\n */\nfunction assertNodeInjector(lView, injectorIndex) {\n assertIndexInExpandoRange(lView, injectorIndex);\n assertIndexInExpandoRange(lView, injectorIndex + 8 /* NodeInjectorOffset.PARENT */);\n assertNumber(lView[injectorIndex + 0], 'injectorIndex should point to a bloom filter');\n assertNumber(lView[injectorIndex + 1], 'injectorIndex should point to a bloom filter');\n assertNumber(lView[injectorIndex + 2], 'injectorIndex should point to a bloom filter');\n assertNumber(lView[injectorIndex + 3], 'injectorIndex should point to a bloom filter');\n assertNumber(lView[injectorIndex + 4], 'injectorIndex should point to a bloom filter');\n assertNumber(lView[injectorIndex + 5], 'injectorIndex should point to a bloom filter');\n assertNumber(lView[injectorIndex + 6], 'injectorIndex should point to a bloom filter');\n assertNumber(lView[injectorIndex + 7], 'injectorIndex should point to a bloom filter');\n assertNumber(lView[injectorIndex + 8 /* NodeInjectorOffset.PARENT */], 'injectorIndex should point to parent injector');\n}\n\n/**\n * Represents a basic change from a previous to a new value for a single\n * property on a directive instance. Passed as a value in a\n * {@link SimpleChanges} object to the `ngOnChanges` hook.\n *\n * @see {@link OnChanges}\n *\n * @publicApi\n */\nclass SimpleChange {\n constructor(previousValue, currentValue, firstChange) {\n this.previousValue = previousValue;\n this.currentValue = currentValue;\n this.firstChange = firstChange;\n }\n /**\n * Check whether the new value is the first value assigned.\n */\n isFirstChange() {\n return this.firstChange;\n }\n}\n\nfunction applyValueToInputField(instance, inputSignalNode, privateName, value) {\n if (inputSignalNode !== null) {\n inputSignalNode.applyValueToInputSignal(inputSignalNode, value);\n }\n else {\n instance[privateName] = value;\n }\n}\n\n/**\n * The NgOnChangesFeature decorates a component with support for the ngOnChanges\n * lifecycle hook, so it should be included in any component that implements\n * that hook.\n *\n * If the component or directive uses inheritance, the NgOnChangesFeature MUST\n * be included as a feature AFTER {@link InheritDefinitionFeature}, otherwise\n * inherited properties will not be propagated to the ngOnChanges lifecycle\n * hook.\n *\n * Example usage:\n *\n * ```\n * static ɵcmp = defineComponent({\n * ...\n * inputs: {name: 'publicName'},\n * features: [NgOnChangesFeature]\n * });\n * ```\n *\n * @codeGenApi\n */\nfunction ɵɵNgOnChangesFeature() {\n return NgOnChangesFeatureImpl;\n}\nfunction NgOnChangesFeatureImpl(definition) {\n if (definition.type.prototype.ngOnChanges) {\n definition.setInput = ngOnChangesSetInput;\n }\n return rememberChangeHistoryAndInvokeOnChangesHook;\n}\n// This option ensures that the ngOnChanges lifecycle hook will be inherited\n// from superclasses (in InheritDefinitionFeature).\n/** @nocollapse */\n// tslint:disable-next-line:no-toplevel-property-access\nɵɵNgOnChangesFeature.ngInherit = true;\n/**\n * This is a synthetic lifecycle hook which gets inserted into `TView.preOrderHooks` to simulate\n * `ngOnChanges`.\n *\n * The hook reads the `NgSimpleChangesStore` data from the component instance and if changes are\n * found it invokes `ngOnChanges` on the component instance.\n *\n * @param this Component instance. Because this function gets inserted into `TView.preOrderHooks`,\n * it is guaranteed to be called with component instance.\n */\nfunction rememberChangeHistoryAndInvokeOnChangesHook() {\n const simpleChangesStore = getSimpleChangesStore(this);\n const current = simpleChangesStore?.current;\n if (current) {\n const previous = simpleChangesStore.previous;\n if (previous === EMPTY_OBJ) {\n simpleChangesStore.previous = current;\n }\n else {\n // New changes are copied to the previous store, so that we don't lose history for inputs\n // which were not changed this time\n for (let key in current) {\n previous[key] = current[key];\n }\n }\n simpleChangesStore.current = null;\n this.ngOnChanges(current);\n }\n}\nfunction ngOnChangesSetInput(instance, inputSignalNode, value, publicName, privateName) {\n const declaredName = this.declaredInputs[publicName];\n ngDevMode && assertString(declaredName, 'Name of input in ngOnChanges has to be a string');\n const simpleChangesStore = getSimpleChangesStore(instance) ||\n setSimpleChangesStore(instance, { previous: EMPTY_OBJ, current: null });\n const current = simpleChangesStore.current || (simpleChangesStore.current = {});\n const previous = simpleChangesStore.previous;\n const previousChange = previous[declaredName];\n current[declaredName] = new SimpleChange(previousChange && previousChange.currentValue, value, previous === EMPTY_OBJ);\n applyValueToInputField(instance, inputSignalNode, privateName, value);\n}\nconst SIMPLE_CHANGES_STORE = '__ngSimpleChanges__';\nfunction getSimpleChangesStore(instance) {\n return instance[SIMPLE_CHANGES_STORE] || null;\n}\nfunction setSimpleChangesStore(instance, store) {\n return instance[SIMPLE_CHANGES_STORE] = store;\n}\n\nlet profilerCallback = null;\n/**\n * Sets the callback function which will be invoked before and after performing certain actions at\n * runtime (for example, before and after running change detection).\n *\n * Warning: this function is *INTERNAL* and should not be relied upon in application's code.\n * The contract of the function might be changed in any release and/or the function can be removed\n * completely.\n *\n * @param profiler function provided by the caller or null value to disable profiling.\n */\nconst setProfiler = (profiler) => {\n profilerCallback = profiler;\n};\n/**\n * Profiler function which wraps user code executed by the runtime.\n *\n * @param event ProfilerEvent corresponding to the execution context\n * @param instance component instance\n * @param hookOrListener lifecycle hook function or output listener. The value depends on the\n * execution context\n * @returns\n */\nconst profiler = function (event, instance, hookOrListener) {\n if (profilerCallback != null /* both `null` and `undefined` */) {\n profilerCallback(event, instance, hookOrListener);\n }\n};\n\nconst SVG_NAMESPACE = 'svg';\nconst MATH_ML_NAMESPACE = 'math';\n\n// TODO(atscott): flip default internally ASAP and externally for v18 (#52928)\nlet _ensureDirtyViewsAreAlwaysReachable = false;\nfunction getEnsureDirtyViewsAreAlwaysReachable() {\n return _ensureDirtyViewsAreAlwaysReachable;\n}\nfunction setEnsureDirtyViewsAreAlwaysReachable(v) {\n _ensureDirtyViewsAreAlwaysReachable = v;\n}\n\n/**\n * For efficiency reasons we often put several different data types (`RNode`, `LView`, `LContainer`)\n * in same location in `LView`. This is because we don't want to pre-allocate space for it\n * because the storage is sparse. This file contains utilities for dealing with such data types.\n *\n * How do we know what is stored at a given location in `LView`.\n * - `Array.isArray(value) === false` => `RNode` (The normal storage value)\n * - `Array.isArray(value) === true` => then the `value[0]` represents the wrapped value.\n * - `typeof value[TYPE] === 'object'` => `LView`\n * - This happens when we have a component at a given location\n * - `typeof value[TYPE] === true` => `LContainer`\n * - This happens when we have `LContainer` binding at a given location.\n *\n *\n * NOTE: it is assumed that `Array.isArray` and `typeof` operations are very efficient.\n */\n/**\n * Returns `RNode`.\n * @param value wrapped value of `RNode`, `LView`, `LContainer`\n */\nfunction unwrapRNode(value) {\n while (Array.isArray(value)) {\n value = value[HOST];\n }\n return value;\n}\n/**\n * Returns `LView` or `null` if not found.\n * @param value wrapped value of `RNode`, `LView`, `LContainer`\n */\nfunction unwrapLView(value) {\n while (Array.isArray(value)) {\n // This check is same as `isLView()` but we don't call at as we don't want to call\n // `Array.isArray()` twice and give JITer more work for inlining.\n if (typeof value[TYPE] === 'object')\n return value;\n value = value[HOST];\n }\n return null;\n}\n/**\n * Retrieves an element value from the provided `viewData`, by unwrapping\n * from any containers, component views, or style contexts.\n */\nfunction getNativeByIndex(index, lView) {\n ngDevMode && assertIndexInRange(lView, index);\n ngDevMode && assertGreaterThanOrEqual(index, HEADER_OFFSET, 'Expected to be past HEADER_OFFSET');\n return unwrapRNode(lView[index]);\n}\n/**\n * Retrieve an `RNode` for a given `TNode` and `LView`.\n *\n * This function guarantees in dev mode to retrieve a non-null `RNode`.\n *\n * @param tNode\n * @param lView\n */\nfunction getNativeByTNode(tNode, lView) {\n ngDevMode && assertTNodeForLView(tNode, lView);\n ngDevMode && assertIndexInRange(lView, tNode.index);\n const node = unwrapRNode(lView[tNode.index]);\n return node;\n}\n/**\n * Retrieve an `RNode` or `null` for a given `TNode` and `LView`.\n *\n * Some `TNode`s don't have associated `RNode`s. For example `Projection`\n *\n * @param tNode\n * @param lView\n */\nfunction getNativeByTNodeOrNull(tNode, lView) {\n const index = tNode === null ? -1 : tNode.index;\n if (index !== -1) {\n ngDevMode && assertTNodeForLView(tNode, lView);\n const node = unwrapRNode(lView[index]);\n return node;\n }\n return null;\n}\n// fixme(misko): The return Type should be `TNode|null`\nfunction getTNode(tView, index) {\n ngDevMode && assertGreaterThan(index, -1, 'wrong index for TNode');\n ngDevMode && assertLessThan(index, tView.data.length, 'wrong index for TNode');\n const tNode = tView.data[index];\n ngDevMode && tNode !== null && assertTNode(tNode);\n return tNode;\n}\n/** Retrieves a value from any `LView` or `TData`. */\nfunction load(view, index) {\n ngDevMode && assertIndexInRange(view, index);\n return view[index];\n}\nfunction getComponentLViewByIndex(nodeIndex, hostView) {\n // Could be an LView or an LContainer. If LContainer, unwrap to find LView.\n ngDevMode && assertIndexInRange(hostView, nodeIndex);\n const slotValue = hostView[nodeIndex];\n const lView = isLView(slotValue) ? slotValue : slotValue[HOST];\n return lView;\n}\n/** Checks whether a given view is in creation mode */\nfunction isCreationMode(view) {\n return (view[FLAGS] & 4 /* LViewFlags.CreationMode */) === 4 /* LViewFlags.CreationMode */;\n}\n/**\n * Returns a boolean for whether the view is attached to the change detection tree.\n *\n * Note: This determines whether a view should be checked, not whether it's inserted\n * into a container. For that, you'll want `viewAttachedToContainer` below.\n */\nfunction viewAttachedToChangeDetector(view) {\n return (view[FLAGS] & 128 /* LViewFlags.Attached */) === 128 /* LViewFlags.Attached */;\n}\n/** Returns a boolean for whether the view is attached to a container. */\nfunction viewAttachedToContainer(view) {\n return isLContainer(view[PARENT]);\n}\nfunction getConstant(consts, index) {\n if (index === null || index === undefined)\n return null;\n ngDevMode && assertIndexInRange(consts, index);\n return consts[index];\n}\n/**\n * Resets the pre-order hook flags of the view.\n * @param lView the LView on which the flags are reset\n */\nfunction resetPreOrderHookFlags(lView) {\n lView[PREORDER_HOOK_FLAGS] = 0;\n}\n/**\n * Adds the `RefreshView` flag from the lView and updates HAS_CHILD_VIEWS_TO_REFRESH flag of\n * parents.\n */\nfunction markViewForRefresh(lView) {\n if (lView[FLAGS] & 1024 /* LViewFlags.RefreshView */) {\n return;\n }\n lView[FLAGS] |= 1024 /* LViewFlags.RefreshView */;\n if (viewAttachedToChangeDetector(lView)) {\n markAncestorsForTraversal(lView);\n }\n}\n/**\n * Walks up the LView hierarchy.\n * @param nestingLevel Number of times to walk up in hierarchy.\n * @param currentView View from which to start the lookup.\n */\nfunction walkUpViews(nestingLevel, currentView) {\n while (nestingLevel > 0) {\n ngDevMode &&\n assertDefined(currentView[DECLARATION_VIEW], 'Declaration view should be defined if nesting level is greater than 0.');\n currentView = currentView[DECLARATION_VIEW];\n nestingLevel--;\n }\n return currentView;\n}\nfunction requiresRefreshOrTraversal(lView) {\n return !!(lView[FLAGS] & (1024 /* LViewFlags.RefreshView */ | 8192 /* LViewFlags.HasChildViewsToRefresh */) ||\n lView[REACTIVE_TEMPLATE_CONSUMER]?.dirty);\n}\n/**\n * Updates the `HasChildViewsToRefresh` flag on the parents of the `LView` as well as the\n * parents above.\n */\nfunction updateAncestorTraversalFlagsOnAttach(lView) {\n lView[ENVIRONMENT].changeDetectionScheduler?.notify(1 /* NotificationType.AfterRenderHooks */);\n // TODO(atscott): Simplify if...else cases once getEnsureDirtyViewsAreAlwaysReachable is always\n // `true`. When we attach a view that's marked `Dirty`, we should ensure that it is reached during\n // the next CD traversal so we add the `RefreshView` flag and mark ancestors accordingly.\n if (requiresRefreshOrTraversal(lView)) {\n markAncestorsForTraversal(lView);\n }\n else if (lView[FLAGS] & 64 /* LViewFlags.Dirty */) {\n if (getEnsureDirtyViewsAreAlwaysReachable()) {\n lView[FLAGS] |= 1024 /* LViewFlags.RefreshView */;\n markAncestorsForTraversal(lView);\n }\n else {\n lView[ENVIRONMENT].changeDetectionScheduler?.notify();\n }\n }\n}\n/**\n * Ensures views above the given `lView` are traversed during change detection even when they are\n * not dirty.\n *\n * This is done by setting the `HAS_CHILD_VIEWS_TO_REFRESH` flag up to the root, stopping when the\n * flag is already `true` or the `lView` is detached.\n */\nfunction markAncestorsForTraversal(lView) {\n lView[ENVIRONMENT].changeDetectionScheduler?.notify();\n let parent = getLViewParent(lView);\n while (parent !== null) {\n // We stop adding markers to the ancestors once we reach one that already has the marker. This\n // is to avoid needlessly traversing all the way to the root when the marker already exists.\n if (parent[FLAGS] & 8192 /* LViewFlags.HasChildViewsToRefresh */) {\n break;\n }\n parent[FLAGS] |= 8192 /* LViewFlags.HasChildViewsToRefresh */;\n if (!viewAttachedToChangeDetector(parent)) {\n break;\n }\n parent = getLViewParent(parent);\n }\n}\n/**\n * Stores a LView-specific destroy callback.\n */\nfunction storeLViewOnDestroy(lView, onDestroyCallback) {\n if ((lView[FLAGS] & 256 /* LViewFlags.Destroyed */) === 256 /* LViewFlags.Destroyed */) {\n throw new RuntimeError(911 /* RuntimeErrorCode.VIEW_ALREADY_DESTROYED */, ngDevMode && 'View has already been destroyed.');\n }\n if (lView[ON_DESTROY_HOOKS] === null) {\n lView[ON_DESTROY_HOOKS] = [];\n }\n lView[ON_DESTROY_HOOKS].push(onDestroyCallback);\n}\n/**\n * Removes previously registered LView-specific destroy callback.\n */\nfunction removeLViewOnDestroy(lView, onDestroyCallback) {\n if (lView[ON_DESTROY_HOOKS] === null)\n return;\n const destroyCBIdx = lView[ON_DESTROY_HOOKS].indexOf(onDestroyCallback);\n if (destroyCBIdx !== -1) {\n lView[ON_DESTROY_HOOKS].splice(destroyCBIdx, 1);\n }\n}\n/**\n * Gets the parent LView of the passed LView, if the PARENT is an LContainer, will get the parent of\n * that LContainer, which is an LView\n * @param lView the lView whose parent to get\n */\nfunction getLViewParent(lView) {\n ngDevMode && assertLView(lView);\n const parent = lView[PARENT];\n return isLContainer(parent) ? parent[PARENT] : parent;\n}\n\nconst instructionState = {\n lFrame: createLFrame(null),\n bindingsEnabled: true,\n skipHydrationRootTNode: null,\n};\n/**\n * In this mode, any changes in bindings will throw an ExpressionChangedAfterChecked error.\n *\n * Necessary to support ChangeDetectorRef.checkNoChanges().\n *\n * The `checkNoChanges` function is invoked only in ngDevMode=true and verifies that no unintended\n * changes exist in the change detector or its children.\n */\nlet _isInCheckNoChangesMode = false;\n/**\n * Returns true if the instruction state stack is empty.\n *\n * Intended to be called from tests only (tree shaken otherwise).\n */\nfunction specOnlyIsInstructionStateEmpty() {\n return instructionState.lFrame.parent === null;\n}\nfunction getElementDepthCount() {\n return instructionState.lFrame.elementDepthCount;\n}\nfunction increaseElementDepthCount() {\n instructionState.lFrame.elementDepthCount++;\n}\nfunction decreaseElementDepthCount() {\n instructionState.lFrame.elementDepthCount--;\n}\nfunction getBindingsEnabled() {\n return instructionState.bindingsEnabled;\n}\n/**\n * Returns true if currently inside a skip hydration block.\n * @returns boolean\n */\nfunction isInSkipHydrationBlock$1() {\n return instructionState.skipHydrationRootTNode !== null;\n}\n/**\n * Returns true if this is the root TNode of the skip hydration block.\n * @param tNode the current TNode\n * @returns boolean\n */\nfunction isSkipHydrationRootTNode(tNode) {\n return instructionState.skipHydrationRootTNode === tNode;\n}\n/**\n * Enables directive matching on elements.\n *\n * * Example:\n * ```\n * \n * Should match component / directive.\n * \n *
\n * \n * \n * Should not match component / directive because we are in ngNonBindable.\n * \n * \n *
\n * ```\n *\n * @codeGenApi\n */\nfunction ɵɵenableBindings() {\n instructionState.bindingsEnabled = true;\n}\n/**\n * Sets a flag to specify that the TNode is in a skip hydration block.\n * @param tNode the current TNode\n */\nfunction enterSkipHydrationBlock(tNode) {\n instructionState.skipHydrationRootTNode = tNode;\n}\n/**\n * Disables directive matching on element.\n *\n * * Example:\n * ```\n * \n * Should match component / directive.\n * \n *
\n * \n * \n * Should not match component / directive because we are in ngNonBindable.\n * \n * \n *
\n * ```\n *\n * @codeGenApi\n */\nfunction ɵɵdisableBindings() {\n instructionState.bindingsEnabled = false;\n}\n/**\n * Clears the root skip hydration node when leaving a skip hydration block.\n */\nfunction leaveSkipHydrationBlock() {\n instructionState.skipHydrationRootTNode = null;\n}\n/**\n * Return the current `LView`.\n */\nfunction getLView() {\n return instructionState.lFrame.lView;\n}\n/**\n * Return the current `TView`.\n */\nfunction getTView() {\n return instructionState.lFrame.tView;\n}\n/**\n * Restores `contextViewData` to the given OpaqueViewState instance.\n *\n * Used in conjunction with the getCurrentView() instruction to save a snapshot\n * of the current view and restore it when listeners are invoked. This allows\n * walking the declaration view tree in listeners to get vars from parent views.\n *\n * @param viewToRestore The OpaqueViewState instance to restore.\n * @returns Context of the restored OpaqueViewState instance.\n *\n * @codeGenApi\n */\nfunction ɵɵrestoreView(viewToRestore) {\n instructionState.lFrame.contextLView = viewToRestore;\n return viewToRestore[CONTEXT];\n}\n/**\n * Clears the view set in `ɵɵrestoreView` from memory. Returns the passed in\n * value so that it can be used as a return value of an instruction.\n *\n * @codeGenApi\n */\nfunction ɵɵresetView(value) {\n instructionState.lFrame.contextLView = null;\n return value;\n}\nfunction getCurrentTNode() {\n let currentTNode = getCurrentTNodePlaceholderOk();\n while (currentTNode !== null && currentTNode.type === 64 /* TNodeType.Placeholder */) {\n currentTNode = currentTNode.parent;\n }\n return currentTNode;\n}\nfunction getCurrentTNodePlaceholderOk() {\n return instructionState.lFrame.currentTNode;\n}\nfunction getCurrentParentTNode() {\n const lFrame = instructionState.lFrame;\n const currentTNode = lFrame.currentTNode;\n return lFrame.isParent ? currentTNode : currentTNode.parent;\n}\nfunction setCurrentTNode(tNode, isParent) {\n ngDevMode && tNode && assertTNodeForTView(tNode, instructionState.lFrame.tView);\n const lFrame = instructionState.lFrame;\n lFrame.currentTNode = tNode;\n lFrame.isParent = isParent;\n}\nfunction isCurrentTNodeParent() {\n return instructionState.lFrame.isParent;\n}\nfunction setCurrentTNodeAsNotParent() {\n instructionState.lFrame.isParent = false;\n}\nfunction getContextLView() {\n const contextLView = instructionState.lFrame.contextLView;\n ngDevMode && assertDefined(contextLView, 'contextLView must be defined.');\n return contextLView;\n}\nfunction isInCheckNoChangesMode() {\n !ngDevMode && throwError('Must never be called in production mode');\n return _isInCheckNoChangesMode;\n}\nfunction setIsInCheckNoChangesMode(mode) {\n !ngDevMode && throwError('Must never be called in production mode');\n _isInCheckNoChangesMode = mode;\n}\n// top level variables should not be exported for performance reasons (PERF_NOTES.md)\nfunction getBindingRoot() {\n const lFrame = instructionState.lFrame;\n let index = lFrame.bindingRootIndex;\n if (index === -1) {\n index = lFrame.bindingRootIndex = lFrame.tView.bindingStartIndex;\n }\n return index;\n}\nfunction getBindingIndex() {\n return instructionState.lFrame.bindingIndex;\n}\nfunction setBindingIndex(value) {\n return instructionState.lFrame.bindingIndex = value;\n}\nfunction nextBindingIndex() {\n return instructionState.lFrame.bindingIndex++;\n}\nfunction incrementBindingIndex(count) {\n const lFrame = instructionState.lFrame;\n const index = lFrame.bindingIndex;\n lFrame.bindingIndex = lFrame.bindingIndex + count;\n return index;\n}\nfunction isInI18nBlock() {\n return instructionState.lFrame.inI18n;\n}\nfunction setInI18nBlock(isInI18nBlock) {\n instructionState.lFrame.inI18n = isInI18nBlock;\n}\n/**\n * Set a new binding root index so that host template functions can execute.\n *\n * Bindings inside the host template are 0 index. But because we don't know ahead of time\n * how many host bindings we have we can't pre-compute them. For this reason they are all\n * 0 index and we just shift the root so that they match next available location in the LView.\n *\n * @param bindingRootIndex Root index for `hostBindings`\n * @param currentDirectiveIndex `TData[currentDirectiveIndex]` will point to the current directive\n * whose `hostBindings` are being processed.\n */\nfunction setBindingRootForHostBindings(bindingRootIndex, currentDirectiveIndex) {\n const lFrame = instructionState.lFrame;\n lFrame.bindingIndex = lFrame.bindingRootIndex = bindingRootIndex;\n setCurrentDirectiveIndex(currentDirectiveIndex);\n}\n/**\n * When host binding is executing this points to the directive index.\n * `TView.data[getCurrentDirectiveIndex()]` is `DirectiveDef`\n * `LView[getCurrentDirectiveIndex()]` is directive instance.\n */\nfunction getCurrentDirectiveIndex() {\n return instructionState.lFrame.currentDirectiveIndex;\n}\n/**\n * Sets an index of a directive whose `hostBindings` are being processed.\n *\n * @param currentDirectiveIndex `TData` index where current directive instance can be found.\n */\nfunction setCurrentDirectiveIndex(currentDirectiveIndex) {\n instructionState.lFrame.currentDirectiveIndex = currentDirectiveIndex;\n}\n/**\n * Retrieve the current `DirectiveDef` which is active when `hostBindings` instruction is being\n * executed.\n *\n * @param tData Current `TData` where the `DirectiveDef` will be looked up at.\n */\nfunction getCurrentDirectiveDef(tData) {\n const currentDirectiveIndex = instructionState.lFrame.currentDirectiveIndex;\n return currentDirectiveIndex === -1 ? null : tData[currentDirectiveIndex];\n}\nfunction getCurrentQueryIndex() {\n return instructionState.lFrame.currentQueryIndex;\n}\nfunction setCurrentQueryIndex(value) {\n instructionState.lFrame.currentQueryIndex = value;\n}\n/**\n * Returns a `TNode` of the location where the current `LView` is declared at.\n *\n * @param lView an `LView` that we want to find parent `TNode` for.\n */\nfunction getDeclarationTNode(lView) {\n const tView = lView[TVIEW];\n // Return the declaration parent for embedded views\n if (tView.type === 2 /* TViewType.Embedded */) {\n ngDevMode && assertDefined(tView.declTNode, 'Embedded TNodes should have declaration parents.');\n return tView.declTNode;\n }\n // Components don't have `TView.declTNode` because each instance of component could be\n // inserted in different location, hence `TView.declTNode` is meaningless.\n // Falling back to `T_HOST` in case we cross component boundary.\n if (tView.type === 1 /* TViewType.Component */) {\n return lView[T_HOST];\n }\n // Remaining TNode type is `TViewType.Root` which doesn't have a parent TNode.\n return null;\n}\n/**\n * This is a light weight version of the `enterView` which is needed by the DI system.\n *\n * @param lView `LView` location of the DI context.\n * @param tNode `TNode` for DI context\n * @param flags DI context flags. if `SkipSelf` flag is set than we walk up the declaration\n * tree from `tNode` until we find parent declared `TElementNode`.\n * @returns `true` if we have successfully entered DI associated with `tNode` (or with declared\n * `TNode` if `flags` has `SkipSelf`). Failing to enter DI implies that no associated\n * `NodeInjector` can be found and we should instead use `ModuleInjector`.\n * - If `true` than this call must be fallowed by `leaveDI`\n * - If `false` than this call failed and we should NOT call `leaveDI`\n */\nfunction enterDI(lView, tNode, flags) {\n ngDevMode && assertLViewOrUndefined(lView);\n if (flags & InjectFlags.SkipSelf) {\n ngDevMode && assertTNodeForTView(tNode, lView[TVIEW]);\n let parentTNode = tNode;\n let parentLView = lView;\n while (true) {\n ngDevMode && assertDefined(parentTNode, 'Parent TNode should be defined');\n parentTNode = parentTNode.parent;\n if (parentTNode === null && !(flags & InjectFlags.Host)) {\n parentTNode = getDeclarationTNode(parentLView);\n if (parentTNode === null)\n break;\n // In this case, a parent exists and is definitely an element. So it will definitely\n // have an existing lView as the declaration view, which is why we can assume it's defined.\n ngDevMode && assertDefined(parentLView, 'Parent LView should be defined');\n parentLView = parentLView[DECLARATION_VIEW];\n // In Ivy there are Comment nodes that correspond to ngIf and NgFor embedded directives\n // We want to skip those and look only at Elements and ElementContainers to ensure\n // we're looking at true parent nodes, and not content or other types.\n if (parentTNode.type & (2 /* TNodeType.Element */ | 8 /* TNodeType.ElementContainer */)) {\n break;\n }\n }\n else {\n break;\n }\n }\n if (parentTNode === null) {\n // If we failed to find a parent TNode this means that we should use module injector.\n return false;\n }\n else {\n tNode = parentTNode;\n lView = parentLView;\n }\n }\n ngDevMode && assertTNodeForLView(tNode, lView);\n const lFrame = instructionState.lFrame = allocLFrame();\n lFrame.currentTNode = tNode;\n lFrame.lView = lView;\n return true;\n}\n/**\n * Swap the current lView with a new lView.\n *\n * For performance reasons we store the lView in the top level of the module.\n * This way we minimize the number of properties to read. Whenever a new view\n * is entered we have to store the lView for later, and when the view is\n * exited the state has to be restored\n *\n * @param newView New lView to become active\n * @returns the previously active lView;\n */\nfunction enterView(newView) {\n ngDevMode && assertNotEqual(newView[0], newView[1], '????');\n ngDevMode && assertLViewOrUndefined(newView);\n const newLFrame = allocLFrame();\n if (ngDevMode) {\n assertEqual(newLFrame.isParent, true, 'Expected clean LFrame');\n assertEqual(newLFrame.lView, null, 'Expected clean LFrame');\n assertEqual(newLFrame.tView, null, 'Expected clean LFrame');\n assertEqual(newLFrame.selectedIndex, -1, 'Expected clean LFrame');\n assertEqual(newLFrame.elementDepthCount, 0, 'Expected clean LFrame');\n assertEqual(newLFrame.currentDirectiveIndex, -1, 'Expected clean LFrame');\n assertEqual(newLFrame.currentNamespace, null, 'Expected clean LFrame');\n assertEqual(newLFrame.bindingRootIndex, -1, 'Expected clean LFrame');\n assertEqual(newLFrame.currentQueryIndex, 0, 'Expected clean LFrame');\n }\n const tView = newView[TVIEW];\n instructionState.lFrame = newLFrame;\n ngDevMode && tView.firstChild && assertTNodeForTView(tView.firstChild, tView);\n newLFrame.currentTNode = tView.firstChild;\n newLFrame.lView = newView;\n newLFrame.tView = tView;\n newLFrame.contextLView = newView;\n newLFrame.bindingIndex = tView.bindingStartIndex;\n newLFrame.inI18n = false;\n}\n/**\n * Allocates next free LFrame. This function tries to reuse the `LFrame`s to lower memory pressure.\n */\nfunction allocLFrame() {\n const currentLFrame = instructionState.lFrame;\n const childLFrame = currentLFrame === null ? null : currentLFrame.child;\n const newLFrame = childLFrame === null ? createLFrame(currentLFrame) : childLFrame;\n return newLFrame;\n}\nfunction createLFrame(parent) {\n const lFrame = {\n currentTNode: null,\n isParent: true,\n lView: null,\n tView: null,\n selectedIndex: -1,\n contextLView: null,\n elementDepthCount: 0,\n currentNamespace: null,\n currentDirectiveIndex: -1,\n bindingRootIndex: -1,\n bindingIndex: -1,\n currentQueryIndex: 0,\n parent: parent,\n child: null,\n inI18n: false,\n };\n parent !== null && (parent.child = lFrame); // link the new LFrame for reuse.\n return lFrame;\n}\n/**\n * A lightweight version of leave which is used with DI.\n *\n * This function only resets `currentTNode` and `LView` as those are the only properties\n * used with DI (`enterDI()`).\n *\n * NOTE: This function is reexported as `leaveDI`. However `leaveDI` has return type of `void` where\n * as `leaveViewLight` has `LFrame`. This is so that `leaveViewLight` can be used in `leaveView`.\n */\nfunction leaveViewLight() {\n const oldLFrame = instructionState.lFrame;\n instructionState.lFrame = oldLFrame.parent;\n oldLFrame.currentTNode = null;\n oldLFrame.lView = null;\n return oldLFrame;\n}\n/**\n * This is a lightweight version of the `leaveView` which is needed by the DI system.\n *\n * NOTE: this function is an alias so that we can change the type of the function to have `void`\n * return type.\n */\nconst leaveDI = leaveViewLight;\n/**\n * Leave the current `LView`\n *\n * This pops the `LFrame` with the associated `LView` from the stack.\n *\n * IMPORTANT: We must zero out the `LFrame` values here otherwise they will be retained. This is\n * because for performance reasons we don't release `LFrame` but rather keep it for next use.\n */\nfunction leaveView() {\n const oldLFrame = leaveViewLight();\n oldLFrame.isParent = true;\n oldLFrame.tView = null;\n oldLFrame.selectedIndex = -1;\n oldLFrame.contextLView = null;\n oldLFrame.elementDepthCount = 0;\n oldLFrame.currentDirectiveIndex = -1;\n oldLFrame.currentNamespace = null;\n oldLFrame.bindingRootIndex = -1;\n oldLFrame.bindingIndex = -1;\n oldLFrame.currentQueryIndex = 0;\n}\nfunction nextContextImpl(level) {\n const contextLView = instructionState.lFrame.contextLView =\n walkUpViews(level, instructionState.lFrame.contextLView);\n return contextLView[CONTEXT];\n}\n/**\n * Gets the currently selected element index.\n *\n * Used with {@link property} instruction (and more in the future) to identify the index in the\n * current `LView` to act on.\n */\nfunction getSelectedIndex() {\n return instructionState.lFrame.selectedIndex;\n}\n/**\n * Sets the most recent index passed to {@link select}\n *\n * Used with {@link property} instruction (and more in the future) to identify the index in the\n * current `LView` to act on.\n *\n * (Note that if an \"exit function\" was set earlier (via `setElementExitFn()`) then that will be\n * run if and when the provided `index` value is different from the current selected index value.)\n */\nfunction setSelectedIndex(index) {\n ngDevMode && index !== -1 &&\n assertGreaterThanOrEqual(index, HEADER_OFFSET, 'Index must be past HEADER_OFFSET (or -1).');\n ngDevMode &&\n assertLessThan(index, instructionState.lFrame.lView.length, 'Can\\'t set index passed end of LView');\n instructionState.lFrame.selectedIndex = index;\n}\n/**\n * Gets the `tNode` that represents currently selected element.\n */\nfunction getSelectedTNode() {\n const lFrame = instructionState.lFrame;\n return getTNode(lFrame.tView, lFrame.selectedIndex);\n}\n/**\n * Sets the namespace used to create elements to `'http://www.w3.org/2000/svg'` in global state.\n *\n * @codeGenApi\n */\nfunction ɵɵnamespaceSVG() {\n instructionState.lFrame.currentNamespace = SVG_NAMESPACE;\n}\n/**\n * Sets the namespace used to create elements to `'http://www.w3.org/1998/MathML/'` in global state.\n *\n * @codeGenApi\n */\nfunction ɵɵnamespaceMathML() {\n instructionState.lFrame.currentNamespace = MATH_ML_NAMESPACE;\n}\n/**\n * Sets the namespace used to create elements to `null`, which forces element creation to use\n * `createElement` rather than `createElementNS`.\n *\n * @codeGenApi\n */\nfunction ɵɵnamespaceHTML() {\n namespaceHTMLInternal();\n}\n/**\n * Sets the namespace used to create elements to `null`, which forces element creation to use\n * `createElement` rather than `createElementNS`.\n */\nfunction namespaceHTMLInternal() {\n instructionState.lFrame.currentNamespace = null;\n}\nfunction getNamespace$1() {\n return instructionState.lFrame.currentNamespace;\n}\nlet _wasLastNodeCreated = true;\n/**\n * Retrieves a global flag that indicates whether the most recent DOM node\n * was created or hydrated.\n */\nfunction wasLastNodeCreated() {\n return _wasLastNodeCreated;\n}\n/**\n * Sets a global flag to indicate whether the most recent DOM node\n * was created or hydrated.\n */\nfunction lastNodeWasCreated(flag) {\n _wasLastNodeCreated = flag;\n}\n\n/**\n * Adds all directive lifecycle hooks from the given `DirectiveDef` to the given `TView`.\n *\n * Must be run *only* on the first template pass.\n *\n * Sets up the pre-order hooks on the provided `tView`,\n * see {@link HookData} for details about the data structure.\n *\n * @param directiveIndex The index of the directive in LView\n * @param directiveDef The definition containing the hooks to setup in tView\n * @param tView The current TView\n */\nfunction registerPreOrderHooks(directiveIndex, directiveDef, tView) {\n ngDevMode && assertFirstCreatePass(tView);\n const { ngOnChanges, ngOnInit, ngDoCheck } = directiveDef.type.prototype;\n if (ngOnChanges) {\n const wrappedOnChanges = NgOnChangesFeatureImpl(directiveDef);\n (tView.preOrderHooks ??= []).push(directiveIndex, wrappedOnChanges);\n (tView.preOrderCheckHooks ??= []).push(directiveIndex, wrappedOnChanges);\n }\n if (ngOnInit) {\n (tView.preOrderHooks ??= []).push(0 - directiveIndex, ngOnInit);\n }\n if (ngDoCheck) {\n (tView.preOrderHooks ??= []).push(directiveIndex, ngDoCheck);\n (tView.preOrderCheckHooks ??= []).push(directiveIndex, ngDoCheck);\n }\n}\n/**\n *\n * Loops through the directives on the provided `tNode` and queues hooks to be\n * run that are not initialization hooks.\n *\n * Should be executed during `elementEnd()` and similar to\n * preserve hook execution order. Content, view, and destroy hooks for projected\n * components and directives must be called *before* their hosts.\n *\n * Sets up the content, view, and destroy hooks on the provided `tView`,\n * see {@link HookData} for details about the data structure.\n *\n * NOTE: This does not set up `onChanges`, `onInit` or `doCheck`, those are set up\n * separately at `elementStart`.\n *\n * @param tView The current TView\n * @param tNode The TNode whose directives are to be searched for hooks to queue\n */\nfunction registerPostOrderHooks(tView, tNode) {\n ngDevMode && assertFirstCreatePass(tView);\n // It's necessary to loop through the directives at elementEnd() (rather than processing in\n // directiveCreate) so we can preserve the current hook order. Content, view, and destroy\n // hooks for projected components and directives must be called *before* their hosts.\n for (let i = tNode.directiveStart, end = tNode.directiveEnd; i < end; i++) {\n const directiveDef = tView.data[i];\n ngDevMode && assertDefined(directiveDef, 'Expecting DirectiveDef');\n const lifecycleHooks = directiveDef.type.prototype;\n const { ngAfterContentInit, ngAfterContentChecked, ngAfterViewInit, ngAfterViewChecked, ngOnDestroy } = lifecycleHooks;\n if (ngAfterContentInit) {\n (tView.contentHooks ??= []).push(-i, ngAfterContentInit);\n }\n if (ngAfterContentChecked) {\n (tView.contentHooks ??= []).push(i, ngAfterContentChecked);\n (tView.contentCheckHooks ??= []).push(i, ngAfterContentChecked);\n }\n if (ngAfterViewInit) {\n (tView.viewHooks ??= []).push(-i, ngAfterViewInit);\n }\n if (ngAfterViewChecked) {\n (tView.viewHooks ??= []).push(i, ngAfterViewChecked);\n (tView.viewCheckHooks ??= []).push(i, ngAfterViewChecked);\n }\n if (ngOnDestroy != null) {\n (tView.destroyHooks ??= []).push(i, ngOnDestroy);\n }\n }\n}\n/**\n * Executing hooks requires complex logic as we need to deal with 2 constraints.\n *\n * 1. Init hooks (ngOnInit, ngAfterContentInit, ngAfterViewInit) must all be executed once and only\n * once, across many change detection cycles. This must be true even if some hooks throw, or if\n * some recursively trigger a change detection cycle.\n * To solve that, it is required to track the state of the execution of these init hooks.\n * This is done by storing and maintaining flags in the view: the {@link InitPhaseState},\n * and the index within that phase. They can be seen as a cursor in the following structure:\n * [[onInit1, onInit2], [afterContentInit1], [afterViewInit1, afterViewInit2, afterViewInit3]]\n * They are stored as flags in LView[FLAGS].\n *\n * 2. Pre-order hooks can be executed in batches, because of the select instruction.\n * To be able to pause and resume their execution, we also need some state about the hook's array\n * that is being processed:\n * - the index of the next hook to be executed\n * - the number of init hooks already found in the processed part of the array\n * They are stored as flags in LView[PREORDER_HOOK_FLAGS].\n */\n/**\n * Executes pre-order check hooks ( OnChanges, DoChanges) given a view where all the init hooks were\n * executed once. This is a light version of executeInitAndCheckPreOrderHooks where we can skip read\n * / write of the init-hooks related flags.\n * @param lView The LView where hooks are defined\n * @param hooks Hooks to be run\n * @param nodeIndex 3 cases depending on the value:\n * - undefined: all hooks from the array should be executed (post-order case)\n * - null: execute hooks only from the saved index until the end of the array (pre-order case, when\n * flushing the remaining hooks)\n * - number: execute hooks only from the saved index until that node index exclusive (pre-order\n * case, when executing select(number))\n */\nfunction executeCheckHooks(lView, hooks, nodeIndex) {\n callHooks(lView, hooks, 3 /* InitPhaseState.InitPhaseCompleted */, nodeIndex);\n}\n/**\n * Executes post-order init and check hooks (one of AfterContentInit, AfterContentChecked,\n * AfterViewInit, AfterViewChecked) given a view where there are pending init hooks to be executed.\n * @param lView The LView where hooks are defined\n * @param hooks Hooks to be run\n * @param initPhase A phase for which hooks should be run\n * @param nodeIndex 3 cases depending on the value:\n * - undefined: all hooks from the array should be executed (post-order case)\n * - null: execute hooks only from the saved index until the end of the array (pre-order case, when\n * flushing the remaining hooks)\n * - number: execute hooks only from the saved index until that node index exclusive (pre-order\n * case, when executing select(number))\n */\nfunction executeInitAndCheckHooks(lView, hooks, initPhase, nodeIndex) {\n ngDevMode &&\n assertNotEqual(initPhase, 3 /* InitPhaseState.InitPhaseCompleted */, 'Init pre-order hooks should not be called more than once');\n if ((lView[FLAGS] & 3 /* LViewFlags.InitPhaseStateMask */) === initPhase) {\n callHooks(lView, hooks, initPhase, nodeIndex);\n }\n}\nfunction incrementInitPhaseFlags(lView, initPhase) {\n ngDevMode &&\n assertNotEqual(initPhase, 3 /* InitPhaseState.InitPhaseCompleted */, 'Init hooks phase should not be incremented after all init hooks have been run.');\n let flags = lView[FLAGS];\n if ((flags & 3 /* LViewFlags.InitPhaseStateMask */) === initPhase) {\n flags &= 16383 /* LViewFlags.IndexWithinInitPhaseReset */;\n flags += 1 /* LViewFlags.InitPhaseStateIncrementer */;\n lView[FLAGS] = flags;\n }\n}\n/**\n * Calls lifecycle hooks with their contexts, skipping init hooks if it's not\n * the first LView pass\n *\n * @param currentView The current view\n * @param arr The array in which the hooks are found\n * @param initPhaseState the current state of the init phase\n * @param currentNodeIndex 3 cases depending on the value:\n * - undefined: all hooks from the array should be executed (post-order case)\n * - null: execute hooks only from the saved index until the end of the array (pre-order case, when\n * flushing the remaining hooks)\n * - number: execute hooks only from the saved index until that node index exclusive (pre-order\n * case, when executing select(number))\n */\nfunction callHooks(currentView, arr, initPhase, currentNodeIndex) {\n ngDevMode &&\n assertEqual(isInCheckNoChangesMode(), false, 'Hooks should never be run when in check no changes mode.');\n const startIndex = currentNodeIndex !== undefined ?\n (currentView[PREORDER_HOOK_FLAGS] & 65535 /* PreOrderHookFlags.IndexOfTheNextPreOrderHookMaskMask */) :\n 0;\n const nodeIndexLimit = currentNodeIndex != null ? currentNodeIndex : -1;\n const max = arr.length - 1; // Stop the loop at length - 1, because we look for the hook at i + 1\n let lastNodeIndexFound = 0;\n for (let i = startIndex; i < max; i++) {\n const hook = arr[i + 1];\n if (typeof hook === 'number') {\n lastNodeIndexFound = arr[i];\n if (currentNodeIndex != null && lastNodeIndexFound >= currentNodeIndex) {\n break;\n }\n }\n else {\n const isInitHook = arr[i] < 0;\n if (isInitHook) {\n currentView[PREORDER_HOOK_FLAGS] += 65536 /* PreOrderHookFlags.NumberOfInitHooksCalledIncrementer */;\n }\n if (lastNodeIndexFound < nodeIndexLimit || nodeIndexLimit == -1) {\n callHook(currentView, initPhase, arr, i);\n currentView[PREORDER_HOOK_FLAGS] =\n (currentView[PREORDER_HOOK_FLAGS] & 4294901760 /* PreOrderHookFlags.NumberOfInitHooksCalledMask */) + i +\n 2;\n }\n i++;\n }\n }\n}\n/**\n * Executes a single lifecycle hook, making sure that:\n * - it is called in the non-reactive context;\n * - profiling data are registered.\n */\nfunction callHookInternal(directive, hook) {\n profiler(4 /* ProfilerEvent.LifecycleHookStart */, directive, hook);\n const prevConsumer = setActiveConsumer$1(null);\n try {\n hook.call(directive);\n }\n finally {\n setActiveConsumer$1(prevConsumer);\n profiler(5 /* ProfilerEvent.LifecycleHookEnd */, directive, hook);\n }\n}\n/**\n * Execute one hook against the current `LView`.\n *\n * @param currentView The current view\n * @param initPhaseState the current state of the init phase\n * @param arr The array in which the hooks are found\n * @param i The current index within the hook data array\n */\nfunction callHook(currentView, initPhase, arr, i) {\n const isInitHook = arr[i] < 0;\n const hook = arr[i + 1];\n const directiveIndex = isInitHook ? -arr[i] : arr[i];\n const directive = currentView[directiveIndex];\n if (isInitHook) {\n const indexWithintInitPhase = currentView[FLAGS] >> 14 /* LViewFlags.IndexWithinInitPhaseShift */;\n // The init phase state must be always checked here as it may have been recursively updated.\n if (indexWithintInitPhase <\n (currentView[PREORDER_HOOK_FLAGS] >> 16 /* PreOrderHookFlags.NumberOfInitHooksCalledShift */) &&\n (currentView[FLAGS] & 3 /* LViewFlags.InitPhaseStateMask */) === initPhase) {\n currentView[FLAGS] += 16384 /* LViewFlags.IndexWithinInitPhaseIncrementer */;\n callHookInternal(directive, hook);\n }\n }\n else {\n callHookInternal(directive, hook);\n }\n}\n\nconst NO_PARENT_INJECTOR = -1;\n/**\n * Each injector is saved in 9 contiguous slots in `LView` and 9 contiguous slots in\n * `TView.data`. This allows us to store information about the current node's tokens (which\n * can be shared in `TView`) as well as the tokens of its ancestor nodes (which cannot be\n * shared, so they live in `LView`).\n *\n * Each of these slots (aside from the last slot) contains a bloom filter. This bloom filter\n * determines whether a directive is available on the associated node or not. This prevents us\n * from searching the directives array at this level unless it's probable the directive is in it.\n *\n * See: https://en.wikipedia.org/wiki/Bloom_filter for more about bloom filters.\n *\n * Because all injectors have been flattened into `LView` and `TViewData`, they cannot typed\n * using interfaces as they were previously. The start index of each `LInjector` and `TInjector`\n * will differ based on where it is flattened into the main array, so it's not possible to know\n * the indices ahead of time and save their types here. The interfaces are still included here\n * for documentation purposes.\n *\n * export interface LInjector extends Array {\n *\n * // Cumulative bloom for directive IDs 0-31 (IDs are % BLOOM_SIZE)\n * [0]: number;\n *\n * // Cumulative bloom for directive IDs 32-63\n * [1]: number;\n *\n * // Cumulative bloom for directive IDs 64-95\n * [2]: number;\n *\n * // Cumulative bloom for directive IDs 96-127\n * [3]: number;\n *\n * // Cumulative bloom for directive IDs 128-159\n * [4]: number;\n *\n * // Cumulative bloom for directive IDs 160 - 191\n * [5]: number;\n *\n * // Cumulative bloom for directive IDs 192 - 223\n * [6]: number;\n *\n * // Cumulative bloom for directive IDs 224 - 255\n * [7]: number;\n *\n * // We need to store a reference to the injector's parent so DI can keep looking up\n * // the injector tree until it finds the dependency it's looking for.\n * [PARENT_INJECTOR]: number;\n * }\n *\n * export interface TInjector extends Array {\n *\n * // Shared node bloom for directive IDs 0-31 (IDs are % BLOOM_SIZE)\n * [0]: number;\n *\n * // Shared node bloom for directive IDs 32-63\n * [1]: number;\n *\n * // Shared node bloom for directive IDs 64-95\n * [2]: number;\n *\n * // Shared node bloom for directive IDs 96-127\n * [3]: number;\n *\n * // Shared node bloom for directive IDs 128-159\n * [4]: number;\n *\n * // Shared node bloom for directive IDs 160 - 191\n * [5]: number;\n *\n * // Shared node bloom for directive IDs 192 - 223\n * [6]: number;\n *\n * // Shared node bloom for directive IDs 224 - 255\n * [7]: number;\n *\n * // Necessary to find directive indices for a particular node.\n * [TNODE]: TElementNode|TElementContainerNode|TContainerNode;\n * }\n */\n/**\n * Factory for creating instances of injectors in the NodeInjector.\n *\n * This factory is complicated by the fact that it can resolve `multi` factories as well.\n *\n * NOTE: Some of the fields are optional which means that this class has two hidden classes.\n * - One without `multi` support (most common)\n * - One with `multi` values, (rare).\n *\n * Since VMs can cache up to 4 inline hidden classes this is OK.\n *\n * - Single factory: Only `resolving` and `factory` is defined.\n * - `providers` factory: `componentProviders` is a number and `index = -1`.\n * - `viewProviders` factory: `componentProviders` is a number and `index` points to `providers`.\n */\nclass NodeInjectorFactory {\n constructor(\n /**\n * Factory to invoke in order to create a new instance.\n */\n factory, \n /**\n * Set to `true` if the token is declared in `viewProviders` (or if it is component).\n */\n isViewProvider, injectImplementation) {\n this.factory = factory;\n /**\n * Marker set to true during factory invocation to see if we get into recursive loop.\n * Recursive loop causes an error to be displayed.\n */\n this.resolving = false;\n ngDevMode && assertDefined(factory, 'Factory not specified');\n ngDevMode && assertEqual(typeof factory, 'function', 'Expected factory function.');\n this.canSeeViewProviders = isViewProvider;\n this.injectImpl = injectImplementation;\n }\n}\nfunction isFactory(obj) {\n return obj instanceof NodeInjectorFactory;\n}\n\n/**\n * Converts `TNodeType` into human readable text.\n * Make sure this matches with `TNodeType`\n */\nfunction toTNodeTypeAsString(tNodeType) {\n let text = '';\n (tNodeType & 1 /* TNodeType.Text */) && (text += '|Text');\n (tNodeType & 2 /* TNodeType.Element */) && (text += '|Element');\n (tNodeType & 4 /* TNodeType.Container */) && (text += '|Container');\n (tNodeType & 8 /* TNodeType.ElementContainer */) && (text += '|ElementContainer');\n (tNodeType & 16 /* TNodeType.Projection */) && (text += '|Projection');\n (tNodeType & 32 /* TNodeType.Icu */) && (text += '|IcuContainer');\n (tNodeType & 64 /* TNodeType.Placeholder */) && (text += '|Placeholder');\n return text.length > 0 ? text.substring(1) : text;\n}\n/**\n * Helper function to detect if a given value matches a `TNode` shape.\n *\n * The logic uses the `insertBeforeIndex` and its possible values as\n * a way to differentiate a TNode shape from other types of objects\n * within the `TView.data`. This is not a perfect check, but it can\n * be a reasonable differentiator, since we control the shapes of objects\n * within `TView.data`.\n */\nfunction isTNodeShape(value) {\n return value != null && typeof value === 'object' &&\n (value.insertBeforeIndex === null ||\n typeof value.insertBeforeIndex === 'number' ||\n Array.isArray(value.insertBeforeIndex));\n}\n/**\n * Returns `true` if the `TNode` has a directive which has `@Input()` for `class` binding.\n *\n * ```\n *
\n * ```\n * and\n * ```\n * @Directive({\n * })\n * class MyDirective {\n * @Input()\n * class: string;\n * }\n * ```\n *\n * In the above case it is necessary to write the reconciled styling information into the\n * directive's input.\n *\n * @param tNode\n */\nfunction hasClassInput(tNode) {\n return (tNode.flags & 8 /* TNodeFlags.hasClassInput */) !== 0;\n}\n/**\n * Returns `true` if the `TNode` has a directive which has `@Input()` for `style` binding.\n *\n * ```\n *
\n * ```\n * and\n * ```\n * @Directive({\n * })\n * class MyDirective {\n * @Input()\n * class: string;\n * }\n * ```\n *\n * In the above case it is necessary to write the reconciled styling information into the\n * directive's input.\n *\n * @param tNode\n */\nfunction hasStyleInput(tNode) {\n return (tNode.flags & 16 /* TNodeFlags.hasStyleInput */) !== 0;\n}\n\nfunction assertTNodeType(tNode, expectedTypes, message) {\n assertDefined(tNode, 'should be called with a TNode');\n if ((tNode.type & expectedTypes) === 0) {\n throwError(message ||\n `Expected [${toTNodeTypeAsString(expectedTypes)}] but got ${toTNodeTypeAsString(tNode.type)}.`);\n }\n}\nfunction assertPureTNodeType(type) {\n if (!(type === 2 /* TNodeType.Element */ || //\n type === 1 /* TNodeType.Text */ || //\n type === 4 /* TNodeType.Container */ || //\n type === 8 /* TNodeType.ElementContainer */ || //\n type === 32 /* TNodeType.Icu */ || //\n type === 16 /* TNodeType.Projection */ || //\n type === 64 /* TNodeType.Placeholder */)) {\n throwError(`Expected TNodeType to have only a single type selected, but got ${toTNodeTypeAsString(type)}.`);\n }\n}\n\n/// Parent Injector Utils ///////////////////////////////////////////////////////////////\nfunction hasParentInjector(parentLocation) {\n return parentLocation !== NO_PARENT_INJECTOR;\n}\nfunction getParentInjectorIndex(parentLocation) {\n if (ngDevMode) {\n assertNumber(parentLocation, 'Number expected');\n assertNotEqual(parentLocation, -1, 'Not a valid state.');\n const parentInjectorIndex = parentLocation & 32767 /* RelativeInjectorLocationFlags.InjectorIndexMask */;\n assertGreaterThan(parentInjectorIndex, HEADER_OFFSET, 'Parent injector must be pointing past HEADER_OFFSET.');\n }\n return parentLocation & 32767 /* RelativeInjectorLocationFlags.InjectorIndexMask */;\n}\nfunction getParentInjectorViewOffset(parentLocation) {\n return parentLocation >> 16 /* RelativeInjectorLocationFlags.ViewOffsetShift */;\n}\n/**\n * Unwraps a parent injector location number to find the view offset from the current injector,\n * then walks up the declaration view tree until the view is found that contains the parent\n * injector.\n *\n * @param location The location of the parent injector, which contains the view offset\n * @param startView The LView instance from which to start walking up the view tree\n * @returns The LView instance that contains the parent injector\n */\nfunction getParentInjectorView(location, startView) {\n let viewOffset = getParentInjectorViewOffset(location);\n let parentView = startView;\n // For most cases, the parent injector can be found on the host node (e.g. for component\n // or container), but we must keep the loop here to support the rarer case of deeply nested\n // tags or inline views, where the parent injector might live many views\n // above the child injector.\n while (viewOffset > 0) {\n parentView = parentView[DECLARATION_VIEW];\n viewOffset--;\n }\n return parentView;\n}\n\n/**\n * Defines if the call to `inject` should include `viewProviders` in its resolution.\n *\n * This is set to true when we try to instantiate a component. This value is reset in\n * `getNodeInjectable` to a value which matches the declaration location of the token about to be\n * instantiated. This is done so that if we are injecting a token which was declared outside of\n * `viewProviders` we don't accidentally pull `viewProviders` in.\n *\n * Example:\n *\n * ```\n * @Injectable()\n * class MyService {\n * constructor(public value: String) {}\n * }\n *\n * @Component({\n * providers: [\n * MyService,\n * {provide: String, value: 'providers' }\n * ]\n * viewProviders: [\n * {provide: String, value: 'viewProviders'}\n * ]\n * })\n * class MyComponent {\n * constructor(myService: MyService, value: String) {\n * // We expect that Component can see into `viewProviders`.\n * expect(value).toEqual('viewProviders');\n * // `MyService` was not declared in `viewProviders` hence it can't see it.\n * expect(myService.value).toEqual('providers');\n * }\n * }\n *\n * ```\n */\nlet includeViewProviders = true;\nfunction setIncludeViewProviders(v) {\n const oldValue = includeViewProviders;\n includeViewProviders = v;\n return oldValue;\n}\n/**\n * The number of slots in each bloom filter (used by DI). The larger this number, the fewer\n * directives that will share slots, and thus, the fewer false positives when checking for\n * the existence of a directive.\n */\nconst BLOOM_SIZE = 256;\nconst BLOOM_MASK = BLOOM_SIZE - 1;\n/**\n * The number of bits that is represented by a single bloom bucket. JS bit operations are 32 bits,\n * so each bucket represents 32 distinct tokens which accounts for log2(32) = 5 bits of a bloom hash\n * number.\n */\nconst BLOOM_BUCKET_BITS = 5;\n/** Counter used to generate unique IDs for directives. */\nlet nextNgElementId = 0;\n/** Value used when something wasn't found by an injector. */\nconst NOT_FOUND = {};\n/**\n * Registers this directive as present in its node's injector by flipping the directive's\n * corresponding bit in the injector's bloom filter.\n *\n * @param injectorIndex The index of the node injector where this token should be registered\n * @param tView The TView for the injector's bloom filters\n * @param type The directive token to register\n */\nfunction bloomAdd(injectorIndex, tView, type) {\n ngDevMode && assertEqual(tView.firstCreatePass, true, 'expected firstCreatePass to be true');\n let id;\n if (typeof type === 'string') {\n id = type.charCodeAt(0) || 0;\n }\n else if (type.hasOwnProperty(NG_ELEMENT_ID)) {\n id = type[NG_ELEMENT_ID];\n }\n // Set a unique ID on the directive type, so if something tries to inject the directive,\n // we can easily retrieve the ID and hash it into the bloom bit that should be checked.\n if (id == null) {\n id = type[NG_ELEMENT_ID] = nextNgElementId++;\n }\n // We only have BLOOM_SIZE (256) slots in our bloom filter (8 buckets * 32 bits each),\n // so all unique IDs must be modulo-ed into a number from 0 - 255 to fit into the filter.\n const bloomHash = id & BLOOM_MASK;\n // Create a mask that targets the specific bit associated with the directive.\n // JS bit operations are 32 bits, so this will be a number between 2^0 and 2^31, corresponding\n // to bit positions 0 - 31 in a 32 bit integer.\n const mask = 1 << bloomHash;\n // Each bloom bucket in `tData` represents `BLOOM_BUCKET_BITS` number of bits of `bloomHash`.\n // Any bits in `bloomHash` beyond `BLOOM_BUCKET_BITS` indicate the bucket offset that the mask\n // should be written to.\n tView.data[injectorIndex + (bloomHash >> BLOOM_BUCKET_BITS)] |= mask;\n}\n/**\n * Creates (or gets an existing) injector for a given element or container.\n *\n * @param tNode for which an injector should be retrieved / created.\n * @param lView View where the node is stored\n * @returns Node injector\n */\nfunction getOrCreateNodeInjectorForNode(tNode, lView) {\n const existingInjectorIndex = getInjectorIndex(tNode, lView);\n if (existingInjectorIndex !== -1) {\n return existingInjectorIndex;\n }\n const tView = lView[TVIEW];\n if (tView.firstCreatePass) {\n tNode.injectorIndex = lView.length;\n insertBloom(tView.data, tNode); // foundation for node bloom\n insertBloom(lView, null); // foundation for cumulative bloom\n insertBloom(tView.blueprint, null);\n }\n const parentLoc = getParentInjectorLocation(tNode, lView);\n const injectorIndex = tNode.injectorIndex;\n // If a parent injector can't be found, its location is set to -1.\n // In that case, we don't need to set up a cumulative bloom\n if (hasParentInjector(parentLoc)) {\n const parentIndex = getParentInjectorIndex(parentLoc);\n const parentLView = getParentInjectorView(parentLoc, lView);\n const parentData = parentLView[TVIEW].data;\n // Creates a cumulative bloom filter that merges the parent's bloom filter\n // and its own cumulative bloom (which contains tokens for all ancestors)\n for (let i = 0; i < 8 /* NodeInjectorOffset.BLOOM_SIZE */; i++) {\n lView[injectorIndex + i] = parentLView[parentIndex + i] | parentData[parentIndex + i];\n }\n }\n lView[injectorIndex + 8 /* NodeInjectorOffset.PARENT */] = parentLoc;\n return injectorIndex;\n}\nfunction insertBloom(arr, footer) {\n arr.push(0, 0, 0, 0, 0, 0, 0, 0, footer);\n}\nfunction getInjectorIndex(tNode, lView) {\n if (tNode.injectorIndex === -1 ||\n // If the injector index is the same as its parent's injector index, then the index has been\n // copied down from the parent node. No injector has been created yet on this node.\n (tNode.parent && tNode.parent.injectorIndex === tNode.injectorIndex) ||\n // After the first template pass, the injector index might exist but the parent values\n // might not have been calculated yet for this instance\n lView[tNode.injectorIndex + 8 /* NodeInjectorOffset.PARENT */] === null) {\n return -1;\n }\n else {\n ngDevMode && assertIndexInRange(lView, tNode.injectorIndex);\n return tNode.injectorIndex;\n }\n}\n/**\n * Finds the index of the parent injector, with a view offset if applicable. Used to set the\n * parent injector initially.\n *\n * @returns Returns a number that is the combination of the number of LViews that we have to go up\n * to find the LView containing the parent inject AND the index of the injector within that LView.\n */\nfunction getParentInjectorLocation(tNode, lView) {\n if (tNode.parent && tNode.parent.injectorIndex !== -1) {\n // If we have a parent `TNode` and there is an injector associated with it we are done, because\n // the parent injector is within the current `LView`.\n return tNode.parent.injectorIndex; // ViewOffset is 0\n }\n // When parent injector location is computed it may be outside of the current view. (ie it could\n // be pointing to a declared parent location). This variable stores number of declaration parents\n // we need to walk up in order to find the parent injector location.\n let declarationViewOffset = 0;\n let parentTNode = null;\n let lViewCursor = lView;\n // The parent injector is not in the current `LView`. We will have to walk the declared parent\n // `LView` hierarchy and look for it. If we walk of the top, that means that there is no parent\n // `NodeInjector`.\n while (lViewCursor !== null) {\n parentTNode = getTNodeFromLView(lViewCursor);\n if (parentTNode === null) {\n // If we have no parent, than we are done.\n return NO_PARENT_INJECTOR;\n }\n ngDevMode && parentTNode && assertTNodeForLView(parentTNode, lViewCursor[DECLARATION_VIEW]);\n // Every iteration of the loop requires that we go to the declared parent.\n declarationViewOffset++;\n lViewCursor = lViewCursor[DECLARATION_VIEW];\n if (parentTNode.injectorIndex !== -1) {\n // We found a NodeInjector which points to something.\n return (parentTNode.injectorIndex |\n (declarationViewOffset << 16 /* RelativeInjectorLocationFlags.ViewOffsetShift */));\n }\n }\n return NO_PARENT_INJECTOR;\n}\n/**\n * Makes a type or an injection token public to the DI system by adding it to an\n * injector's bloom filter.\n *\n * @param di The node injector in which a directive will be added\n * @param token The type or the injection token to be made public\n */\nfunction diPublicInInjector(injectorIndex, tView, token) {\n bloomAdd(injectorIndex, tView, token);\n}\n/**\n * Inject static attribute value into directive constructor.\n *\n * This method is used with `factory` functions which are generated as part of\n * `defineDirective` or `defineComponent`. The method retrieves the static value\n * of an attribute. (Dynamic attributes are not supported since they are not resolved\n * at the time of injection and can change over time.)\n *\n * # Example\n * Given:\n * ```\n * @Component(...)\n * class MyComponent {\n * constructor(@Attribute('title') title: string) { ... }\n * }\n * ```\n * When instantiated with\n * ```\n * \n * ```\n *\n * Then factory method generated is:\n * ```\n * MyComponent.ɵcmp = defineComponent({\n * factory: () => new MyComponent(injectAttribute('title'))\n * ...\n * })\n * ```\n *\n * @publicApi\n */\nfunction injectAttributeImpl(tNode, attrNameToInject) {\n ngDevMode && assertTNodeType(tNode, 12 /* TNodeType.AnyContainer */ | 3 /* TNodeType.AnyRNode */);\n ngDevMode && assertDefined(tNode, 'expecting tNode');\n if (attrNameToInject === 'class') {\n return tNode.classes;\n }\n if (attrNameToInject === 'style') {\n return tNode.styles;\n }\n const attrs = tNode.attrs;\n if (attrs) {\n const attrsLength = attrs.length;\n let i = 0;\n while (i < attrsLength) {\n const value = attrs[i];\n // If we hit a `Bindings` or `Template` marker then we are done.\n if (isNameOnlyAttributeMarker(value))\n break;\n // Skip namespaced attributes\n if (value === 0 /* AttributeMarker.NamespaceURI */) {\n // we skip the next two values\n // as namespaced attributes looks like\n // [..., AttributeMarker.NamespaceURI, 'http://someuri.com/test', 'test:exist',\n // 'existValue', ...]\n i = i + 2;\n }\n else if (typeof value === 'number') {\n // Skip to the first value of the marked attribute.\n i++;\n while (i < attrsLength && typeof attrs[i] === 'string') {\n i++;\n }\n }\n else if (value === attrNameToInject) {\n return attrs[i + 1];\n }\n else {\n i = i + 2;\n }\n }\n }\n return null;\n}\nfunction notFoundValueOrThrow(notFoundValue, token, flags) {\n if ((flags & InjectFlags.Optional) || notFoundValue !== undefined) {\n return notFoundValue;\n }\n else {\n throwProviderNotFoundError(token, 'NodeInjector');\n }\n}\n/**\n * Returns the value associated to the given token from the ModuleInjector or throws exception\n *\n * @param lView The `LView` that contains the `tNode`\n * @param token The token to look for\n * @param flags Injection flags\n * @param notFoundValue The value to return when the injection flags is `InjectFlags.Optional`\n * @returns the value from the injector or throws an exception\n */\nfunction lookupTokenUsingModuleInjector(lView, token, flags, notFoundValue) {\n if ((flags & InjectFlags.Optional) && notFoundValue === undefined) {\n // This must be set or the NullInjector will throw for optional deps\n notFoundValue = null;\n }\n if ((flags & (InjectFlags.Self | InjectFlags.Host)) === 0) {\n const moduleInjector = lView[INJECTOR];\n // switch to `injectInjectorOnly` implementation for module injector, since module injector\n // should not have access to Component/Directive DI scope (that may happen through\n // `directiveInject` implementation)\n const previousInjectImplementation = setInjectImplementation(undefined);\n try {\n if (moduleInjector) {\n return moduleInjector.get(token, notFoundValue, flags & InjectFlags.Optional);\n }\n else {\n return injectRootLimpMode(token, notFoundValue, flags & InjectFlags.Optional);\n }\n }\n finally {\n setInjectImplementation(previousInjectImplementation);\n }\n }\n return notFoundValueOrThrow(notFoundValue, token, flags);\n}\n/**\n * Returns the value associated to the given token from the NodeInjectors => ModuleInjector.\n *\n * Look for the injector providing the token by walking up the node injector tree and then\n * the module injector tree.\n *\n * This function patches `token` with `__NG_ELEMENT_ID__` which contains the id for the bloom\n * filter. `-1` is reserved for injecting `Injector` (implemented by `NodeInjector`)\n *\n * @param tNode The Node where the search for the injector should start\n * @param lView The `LView` that contains the `tNode`\n * @param token The token to look for\n * @param flags Injection flags\n * @param notFoundValue The value to return when the injection flags is `InjectFlags.Optional`\n * @returns the value from the injector, `null` when not found, or `notFoundValue` if provided\n */\nfunction getOrCreateInjectable(tNode, lView, token, flags = InjectFlags.Default, notFoundValue) {\n if (tNode !== null) {\n // If the view or any of its ancestors have an embedded\n // view injector, we have to look it up there first.\n if (lView[FLAGS] & 2048 /* LViewFlags.HasEmbeddedViewInjector */ &&\n // The token must be present on the current node injector when the `Self`\n // flag is set, so the lookup on embedded view injector(s) can be skipped.\n !(flags & InjectFlags.Self)) {\n const embeddedInjectorValue = lookupTokenUsingEmbeddedInjector(tNode, lView, token, flags, NOT_FOUND);\n if (embeddedInjectorValue !== NOT_FOUND) {\n return embeddedInjectorValue;\n }\n }\n // Otherwise try the node injector.\n const value = lookupTokenUsingNodeInjector(tNode, lView, token, flags, NOT_FOUND);\n if (value !== NOT_FOUND) {\n return value;\n }\n }\n // Finally, fall back to the module injector.\n return lookupTokenUsingModuleInjector(lView, token, flags, notFoundValue);\n}\n/**\n * Returns the value associated to the given token from the node injector.\n *\n * @param tNode The Node where the search for the injector should start\n * @param lView The `LView` that contains the `tNode`\n * @param token The token to look for\n * @param flags Injection flags\n * @param notFoundValue The value to return when the injection flags is `InjectFlags.Optional`\n * @returns the value from the injector, `null` when not found, or `notFoundValue` if provided\n */\nfunction lookupTokenUsingNodeInjector(tNode, lView, token, flags, notFoundValue) {\n const bloomHash = bloomHashBitOrFactory(token);\n // If the ID stored here is a function, this is a special object like ElementRef or TemplateRef\n // so just call the factory function to create it.\n if (typeof bloomHash === 'function') {\n if (!enterDI(lView, tNode, flags)) {\n // Failed to enter DI, try module injector instead. If a token is injected with the @Host\n // flag, the module injector is not searched for that token in Ivy.\n return (flags & InjectFlags.Host) ?\n notFoundValueOrThrow(notFoundValue, token, flags) :\n lookupTokenUsingModuleInjector(lView, token, flags, notFoundValue);\n }\n try {\n let value;\n if (ngDevMode) {\n runInInjectorProfilerContext(new NodeInjector(getCurrentTNode(), getLView()), token, () => {\n value = bloomHash(flags);\n if (value != null) {\n emitInstanceCreatedByInjectorEvent(value);\n }\n });\n }\n else {\n value = bloomHash(flags);\n }\n if (value == null && !(flags & InjectFlags.Optional)) {\n throwProviderNotFoundError(token);\n }\n else {\n return value;\n }\n }\n finally {\n leaveDI();\n }\n }\n else if (typeof bloomHash === 'number') {\n // A reference to the previous injector TView that was found while climbing the element\n // injector tree. This is used to know if viewProviders can be accessed on the current\n // injector.\n let previousTView = null;\n let injectorIndex = getInjectorIndex(tNode, lView);\n let parentLocation = NO_PARENT_INJECTOR;\n let hostTElementNode = flags & InjectFlags.Host ? lView[DECLARATION_COMPONENT_VIEW][T_HOST] : null;\n // If we should skip this injector, or if there is no injector on this node, start by\n // searching the parent injector.\n if (injectorIndex === -1 || flags & InjectFlags.SkipSelf) {\n parentLocation = injectorIndex === -1 ? getParentInjectorLocation(tNode, lView) :\n lView[injectorIndex + 8 /* NodeInjectorOffset.PARENT */];\n if (parentLocation === NO_PARENT_INJECTOR || !shouldSearchParent(flags, false)) {\n injectorIndex = -1;\n }\n else {\n previousTView = lView[TVIEW];\n injectorIndex = getParentInjectorIndex(parentLocation);\n lView = getParentInjectorView(parentLocation, lView);\n }\n }\n // Traverse up the injector tree until we find a potential match or until we know there\n // *isn't* a match.\n while (injectorIndex !== -1) {\n ngDevMode && assertNodeInjector(lView, injectorIndex);\n // Check the current injector. If it matches, see if it contains token.\n const tView = lView[TVIEW];\n ngDevMode &&\n assertTNodeForLView(tView.data[injectorIndex + 8 /* NodeInjectorOffset.TNODE */], lView);\n if (bloomHasToken(bloomHash, injectorIndex, tView.data)) {\n // At this point, we have an injector which *may* contain the token, so we step through\n // the providers and directives associated with the injector's corresponding node to get\n // the instance.\n const instance = searchTokensOnInjector(injectorIndex, lView, token, previousTView, flags, hostTElementNode);\n if (instance !== NOT_FOUND) {\n return instance;\n }\n }\n parentLocation = lView[injectorIndex + 8 /* NodeInjectorOffset.PARENT */];\n if (parentLocation !== NO_PARENT_INJECTOR &&\n shouldSearchParent(flags, lView[TVIEW].data[injectorIndex + 8 /* NodeInjectorOffset.TNODE */] === hostTElementNode) &&\n bloomHasToken(bloomHash, injectorIndex, lView)) {\n // The def wasn't found anywhere on this node, so it was a false positive.\n // Traverse up the tree and continue searching.\n previousTView = tView;\n injectorIndex = getParentInjectorIndex(parentLocation);\n lView = getParentInjectorView(parentLocation, lView);\n }\n else {\n // If we should not search parent OR If the ancestor bloom filter value does not have the\n // bit corresponding to the directive we can give up on traversing up to find the specific\n // injector.\n injectorIndex = -1;\n }\n }\n }\n return notFoundValue;\n}\nfunction searchTokensOnInjector(injectorIndex, lView, token, previousTView, flags, hostTElementNode) {\n const currentTView = lView[TVIEW];\n const tNode = currentTView.data[injectorIndex + 8 /* NodeInjectorOffset.TNODE */];\n // First, we need to determine if view providers can be accessed by the starting element.\n // There are two possibilities\n const canAccessViewProviders = previousTView == null ?\n // 1) This is the first invocation `previousTView == null` which means that we are at the\n // `TNode` of where injector is starting to look. In such a case the only time we are allowed\n // to look into the ViewProviders is if:\n // - we are on a component\n // - AND the injector set `includeViewProviders` to true (implying that the token can see\n // ViewProviders because it is the Component or a Service which itself was declared in\n // ViewProviders)\n (isComponentHost(tNode) && includeViewProviders) :\n // 2) `previousTView != null` which means that we are now walking across the parent nodes.\n // In such a case we are only allowed to look into the ViewProviders if:\n // - We just crossed from child View to Parent View `previousTView != currentTView`\n // - AND the parent TNode is an Element.\n // This means that we just came from the Component's View and therefore are allowed to see\n // into the ViewProviders.\n (previousTView != currentTView && ((tNode.type & 3 /* TNodeType.AnyRNode */) !== 0));\n // This special case happens when there is a @host on the inject and when we are searching\n // on the host element node.\n const isHostSpecialCase = (flags & InjectFlags.Host) && hostTElementNode === tNode;\n const injectableIdx = locateDirectiveOrProvider(tNode, currentTView, token, canAccessViewProviders, isHostSpecialCase);\n if (injectableIdx !== null) {\n return getNodeInjectable(lView, currentTView, injectableIdx, tNode);\n }\n else {\n return NOT_FOUND;\n }\n}\n/**\n * Searches for the given token among the node's directives and providers.\n *\n * @param tNode TNode on which directives are present.\n * @param tView The tView we are currently processing\n * @param token Provider token or type of a directive to look for.\n * @param canAccessViewProviders Whether view providers should be considered.\n * @param isHostSpecialCase Whether the host special case applies.\n * @returns Index of a found directive or provider, or null when none found.\n */\nfunction locateDirectiveOrProvider(tNode, tView, token, canAccessViewProviders, isHostSpecialCase) {\n const nodeProviderIndexes = tNode.providerIndexes;\n const tInjectables = tView.data;\n const injectablesStart = nodeProviderIndexes & 1048575 /* TNodeProviderIndexes.ProvidersStartIndexMask */;\n const directivesStart = tNode.directiveStart;\n const directiveEnd = tNode.directiveEnd;\n const cptViewProvidersCount = nodeProviderIndexes >> 20 /* TNodeProviderIndexes.CptViewProvidersCountShift */;\n const startingIndex = canAccessViewProviders ? injectablesStart : injectablesStart + cptViewProvidersCount;\n // When the host special case applies, only the viewProviders and the component are visible\n const endIndex = isHostSpecialCase ? injectablesStart + cptViewProvidersCount : directiveEnd;\n for (let i = startingIndex; i < endIndex; i++) {\n const providerTokenOrDef = tInjectables[i];\n if (i < directivesStart && token === providerTokenOrDef ||\n i >= directivesStart && providerTokenOrDef.type === token) {\n return i;\n }\n }\n if (isHostSpecialCase) {\n const dirDef = tInjectables[directivesStart];\n if (dirDef && isComponentDef(dirDef) && dirDef.type === token) {\n return directivesStart;\n }\n }\n return null;\n}\n/**\n * Retrieve or instantiate the injectable from the `LView` at particular `index`.\n *\n * This function checks to see if the value has already been instantiated and if so returns the\n * cached `injectable`. Otherwise if it detects that the value is still a factory it\n * instantiates the `injectable` and caches the value.\n */\nfunction getNodeInjectable(lView, tView, index, tNode) {\n let value = lView[index];\n const tData = tView.data;\n if (isFactory(value)) {\n const factory = value;\n if (factory.resolving) {\n throwCyclicDependencyError(stringifyForError(tData[index]));\n }\n const previousIncludeViewProviders = setIncludeViewProviders(factory.canSeeViewProviders);\n factory.resolving = true;\n let prevInjectContext;\n if (ngDevMode) {\n // tData indexes mirror the concrete instances in its corresponding LView.\n // lView[index] here is either the injectable instace itself or a factory,\n // therefore tData[index] is the constructor of that injectable or a\n // definition object that contains the constructor in a `.type` field.\n const token = tData[index].type || tData[index];\n const injector = new NodeInjector(tNode, lView);\n prevInjectContext = setInjectorProfilerContext({ injector, token });\n }\n const previousInjectImplementation = factory.injectImpl ? setInjectImplementation(factory.injectImpl) : null;\n const success = enterDI(lView, tNode, InjectFlags.Default);\n ngDevMode &&\n assertEqual(success, true, 'Because flags do not contain \\`SkipSelf\\' we expect this to always succeed.');\n try {\n value = lView[index] = factory.factory(undefined, tData, lView, tNode);\n ngDevMode && emitInstanceCreatedByInjectorEvent(value);\n // This code path is hit for both directives and providers.\n // For perf reasons, we want to avoid searching for hooks on providers.\n // It does no harm to try (the hooks just won't exist), but the extra\n // checks are unnecessary and this is a hot path. So we check to see\n // if the index of the dependency is in the directive range for this\n // tNode. If it's not, we know it's a provider and skip hook registration.\n if (tView.firstCreatePass && index >= tNode.directiveStart) {\n ngDevMode && assertDirectiveDef(tData[index]);\n registerPreOrderHooks(index, tData[index], tView);\n }\n }\n finally {\n ngDevMode && setInjectorProfilerContext(prevInjectContext);\n previousInjectImplementation !== null &&\n setInjectImplementation(previousInjectImplementation);\n setIncludeViewProviders(previousIncludeViewProviders);\n factory.resolving = false;\n leaveDI();\n }\n }\n return value;\n}\n/**\n * Returns the bit in an injector's bloom filter that should be used to determine whether or not\n * the directive might be provided by the injector.\n *\n * When a directive is public, it is added to the bloom filter and given a unique ID that can be\n * retrieved on the Type. When the directive isn't public or the token is not a directive `null`\n * is returned as the node injector can not possibly provide that token.\n *\n * @param token the injection token\n * @returns the matching bit to check in the bloom filter or `null` if the token is not known.\n * When the returned value is negative then it represents special values such as `Injector`.\n */\nfunction bloomHashBitOrFactory(token) {\n ngDevMode && assertDefined(token, 'token must be defined');\n if (typeof token === 'string') {\n return token.charCodeAt(0) || 0;\n }\n const tokenId = \n // First check with `hasOwnProperty` so we don't get an inherited ID.\n token.hasOwnProperty(NG_ELEMENT_ID) ? token[NG_ELEMENT_ID] : undefined;\n // Negative token IDs are used for special objects such as `Injector`\n if (typeof tokenId === 'number') {\n if (tokenId >= 0) {\n return tokenId & BLOOM_MASK;\n }\n else {\n ngDevMode &&\n assertEqual(tokenId, -1 /* InjectorMarkers.Injector */, 'Expecting to get Special Injector Id');\n return createNodeInjector;\n }\n }\n else {\n return tokenId;\n }\n}\nfunction bloomHasToken(bloomHash, injectorIndex, injectorView) {\n // Create a mask that targets the specific bit associated with the directive we're looking for.\n // JS bit operations are 32 bits, so this will be a number between 2^0 and 2^31, corresponding\n // to bit positions 0 - 31 in a 32 bit integer.\n const mask = 1 << bloomHash;\n // Each bloom bucket in `injectorView` represents `BLOOM_BUCKET_BITS` number of bits of\n // `bloomHash`. Any bits in `bloomHash` beyond `BLOOM_BUCKET_BITS` indicate the bucket offset\n // that should be used.\n const value = injectorView[injectorIndex + (bloomHash >> BLOOM_BUCKET_BITS)];\n // If the bloom filter value has the bit corresponding to the directive's bloomBit flipped on,\n // this injector is a potential match.\n return !!(value & mask);\n}\n/** Returns true if flags prevent parent injector from being searched for tokens */\nfunction shouldSearchParent(flags, isFirstHostTNode) {\n return !(flags & InjectFlags.Self) && !(flags & InjectFlags.Host && isFirstHostTNode);\n}\nfunction getNodeInjectorLView(nodeInjector) {\n return nodeInjector._lView;\n}\nfunction getNodeInjectorTNode(nodeInjector) {\n return nodeInjector._tNode;\n}\nclass NodeInjector {\n constructor(_tNode, _lView) {\n this._tNode = _tNode;\n this._lView = _lView;\n }\n get(token, notFoundValue, flags) {\n return getOrCreateInjectable(this._tNode, this._lView, token, convertToBitFlags(flags), notFoundValue);\n }\n}\n/** Creates a `NodeInjector` for the current node. */\nfunction createNodeInjector() {\n return new NodeInjector(getCurrentTNode(), getLView());\n}\n/**\n * @codeGenApi\n */\nfunction ɵɵgetInheritedFactory(type) {\n return noSideEffects(() => {\n const ownConstructor = type.prototype.constructor;\n const ownFactory = ownConstructor[NG_FACTORY_DEF] || getFactoryOf(ownConstructor);\n const objectPrototype = Object.prototype;\n let parent = Object.getPrototypeOf(type.prototype).constructor;\n // Go up the prototype until we hit `Object`.\n while (parent && parent !== objectPrototype) {\n const factory = parent[NG_FACTORY_DEF] || getFactoryOf(parent);\n // If we hit something that has a factory and the factory isn't the same as the type,\n // we've found the inherited factory. Note the check that the factory isn't the type's\n // own factory is redundant in most cases, but if the user has custom decorators on the\n // class, this lookup will start one level down in the prototype chain, causing us to\n // find the own factory first and potentially triggering an infinite loop downstream.\n if (factory && factory !== ownFactory) {\n return factory;\n }\n parent = Object.getPrototypeOf(parent);\n }\n // There is no factory defined. Either this was improper usage of inheritance\n // (no Angular decorator on the superclass) or there is no constructor at all\n // in the inheritance chain. Since the two cases cannot be distinguished, the\n // latter has to be assumed.\n return (t) => new t();\n });\n}\nfunction getFactoryOf(type) {\n if (isForwardRef(type)) {\n return () => {\n const factory = getFactoryOf(resolveForwardRef(type));\n return factory && factory();\n };\n }\n return getFactoryDef(type);\n}\n/**\n * Returns a value from the closest embedded or node injector.\n *\n * @param tNode The Node where the search for the injector should start\n * @param lView The `LView` that contains the `tNode`\n * @param token The token to look for\n * @param flags Injection flags\n * @param notFoundValue The value to return when the injection flags is `InjectFlags.Optional`\n * @returns the value from the injector, `null` when not found, or `notFoundValue` if provided\n */\nfunction lookupTokenUsingEmbeddedInjector(tNode, lView, token, flags, notFoundValue) {\n let currentTNode = tNode;\n let currentLView = lView;\n // When an LView with an embedded view injector is inserted, it'll likely be interlaced with\n // nodes who may have injectors (e.g. node injector -> embedded view injector -> node injector).\n // Since the bloom filters for the node injectors have already been constructed and we don't\n // have a way of extracting the records from an injector, the only way to maintain the correct\n // hierarchy when resolving the value is to walk it node-by-node while attempting to resolve\n // the token at each level.\n while (currentTNode !== null && currentLView !== null &&\n (currentLView[FLAGS] & 2048 /* LViewFlags.HasEmbeddedViewInjector */) &&\n !(currentLView[FLAGS] & 512 /* LViewFlags.IsRoot */)) {\n ngDevMode && assertTNodeForLView(currentTNode, currentLView);\n // Note that this lookup on the node injector is using the `Self` flag, because\n // we don't want the node injector to look at any parent injectors since we\n // may hit the embedded view injector first.\n const nodeInjectorValue = lookupTokenUsingNodeInjector(currentTNode, currentLView, token, flags | InjectFlags.Self, NOT_FOUND);\n if (nodeInjectorValue !== NOT_FOUND) {\n return nodeInjectorValue;\n }\n // Has an explicit type due to a TS bug: https://github.com/microsoft/TypeScript/issues/33191\n let parentTNode = currentTNode.parent;\n // `TNode.parent` includes the parent within the current view only. If it doesn't exist,\n // it means that we've hit the view boundary and we need to go up to the next view.\n if (!parentTNode) {\n // Before we go to the next LView, check if the token exists on the current embedded injector.\n const embeddedViewInjector = currentLView[EMBEDDED_VIEW_INJECTOR];\n if (embeddedViewInjector) {\n const embeddedViewInjectorValue = embeddedViewInjector.get(token, NOT_FOUND, flags);\n if (embeddedViewInjectorValue !== NOT_FOUND) {\n return embeddedViewInjectorValue;\n }\n }\n // Otherwise keep going up the tree.\n parentTNode = getTNodeFromLView(currentLView);\n currentLView = currentLView[DECLARATION_VIEW];\n }\n currentTNode = parentTNode;\n }\n return notFoundValue;\n}\n/** Gets the TNode associated with an LView inside of the declaration view. */\nfunction getTNodeFromLView(lView) {\n const tView = lView[TVIEW];\n const tViewType = tView.type;\n // The parent pointer differs based on `TView.type`.\n if (tViewType === 2 /* TViewType.Embedded */) {\n ngDevMode && assertDefined(tView.declTNode, 'Embedded TNodes should have declaration parents.');\n return tView.declTNode;\n }\n else if (tViewType === 1 /* TViewType.Component */) {\n // Components don't have `TView.declTNode` because each instance of component could be\n // inserted in different location, hence `TView.declTNode` is meaningless.\n return lView[T_HOST];\n }\n return null;\n}\n\n/**\n * Facade for the attribute injection from DI.\n *\n * @codeGenApi\n */\nfunction ɵɵinjectAttribute(attrNameToInject) {\n return injectAttributeImpl(getCurrentTNode(), attrNameToInject);\n}\n\n/**\n * Attribute decorator and metadata.\n *\n * @Annotation\n * @publicApi\n */\nconst Attribute = makeParamDecorator('Attribute', (attributeName) => ({ attributeName, __NG_ELEMENT_ID__: () => ɵɵinjectAttribute(attributeName) }));\n\nlet _reflect = null;\nfunction getReflect() {\n return (_reflect = _reflect || new ReflectionCapabilities());\n}\nfunction reflectDependencies(type) {\n return convertDependencies(getReflect().parameters(type));\n}\nfunction convertDependencies(deps) {\n return deps.map(dep => reflectDependency(dep));\n}\nfunction reflectDependency(dep) {\n const meta = {\n token: null,\n attribute: null,\n host: false,\n optional: false,\n self: false,\n skipSelf: false,\n };\n if (Array.isArray(dep) && dep.length > 0) {\n for (let j = 0; j < dep.length; j++) {\n const param = dep[j];\n if (param === undefined) {\n // param may be undefined if type of dep is not set by ngtsc\n continue;\n }\n const proto = Object.getPrototypeOf(param);\n if (param instanceof Optional || proto.ngMetadataName === 'Optional') {\n meta.optional = true;\n }\n else if (param instanceof SkipSelf || proto.ngMetadataName === 'SkipSelf') {\n meta.skipSelf = true;\n }\n else if (param instanceof Self || proto.ngMetadataName === 'Self') {\n meta.self = true;\n }\n else if (param instanceof Host || proto.ngMetadataName === 'Host') {\n meta.host = true;\n }\n else if (param instanceof Inject) {\n meta.token = param.token;\n }\n else if (param instanceof Attribute) {\n if (param.attributeName === undefined) {\n throw new RuntimeError(204 /* RuntimeErrorCode.INVALID_INJECTION_TOKEN */, ngDevMode && `Attribute name must be defined.`);\n }\n meta.attribute = param.attributeName;\n }\n else {\n meta.token = param;\n }\n }\n }\n else if (dep === undefined || (Array.isArray(dep) && dep.length === 0)) {\n meta.token = null;\n }\n else {\n meta.token = dep;\n }\n return meta;\n}\n\n/**\n * Compile an Angular injectable according to its `Injectable` metadata, and patch the resulting\n * injectable def (`ɵprov`) onto the injectable type.\n */\nfunction compileInjectable(type, meta) {\n let ngInjectableDef = null;\n let ngFactoryDef = null;\n // if NG_PROV_DEF is already defined on this class then don't overwrite it\n if (!type.hasOwnProperty(NG_PROV_DEF)) {\n Object.defineProperty(type, NG_PROV_DEF, {\n get: () => {\n if (ngInjectableDef === null) {\n const compiler = getCompilerFacade({ usage: 0 /* JitCompilerUsage.Decorator */, kind: 'injectable', type });\n ngInjectableDef = compiler.compileInjectable(angularCoreDiEnv, `ng:///${type.name}/ɵprov.js`, getInjectableMetadata(type, meta));\n }\n return ngInjectableDef;\n },\n });\n }\n // if NG_FACTORY_DEF is already defined on this class then don't overwrite it\n if (!type.hasOwnProperty(NG_FACTORY_DEF)) {\n Object.defineProperty(type, NG_FACTORY_DEF, {\n get: () => {\n if (ngFactoryDef === null) {\n const compiler = getCompilerFacade({ usage: 0 /* JitCompilerUsage.Decorator */, kind: 'injectable', type });\n ngFactoryDef = compiler.compileFactory(angularCoreDiEnv, `ng:///${type.name}/ɵfac.js`, {\n name: type.name,\n type,\n typeArgumentCount: 0, // In JIT mode types are not available nor used.\n deps: reflectDependencies(type),\n target: compiler.FactoryTarget.Injectable\n });\n }\n return ngFactoryDef;\n },\n // Leave this configurable so that the factories from directives or pipes can take precedence.\n configurable: true\n });\n }\n}\nconst USE_VALUE = getClosureSafeProperty({ provide: String, useValue: getClosureSafeProperty });\nfunction isUseClassProvider(meta) {\n return meta.useClass !== undefined;\n}\nfunction isUseValueProvider(meta) {\n return USE_VALUE in meta;\n}\nfunction isUseFactoryProvider(meta) {\n return meta.useFactory !== undefined;\n}\nfunction isUseExistingProvider(meta) {\n return meta.useExisting !== undefined;\n}\nfunction getInjectableMetadata(type, srcMeta) {\n // Allow the compilation of a class with a `@Injectable()` decorator without parameters\n const meta = srcMeta || { providedIn: null };\n const compilerMeta = {\n name: type.name,\n type: type,\n typeArgumentCount: 0,\n providedIn: meta.providedIn,\n };\n if ((isUseClassProvider(meta) || isUseFactoryProvider(meta)) && meta.deps !== undefined) {\n compilerMeta.deps = convertDependencies(meta.deps);\n }\n // Check to see if the user explicitly provided a `useXxxx` property.\n if (isUseClassProvider(meta)) {\n compilerMeta.useClass = meta.useClass;\n }\n else if (isUseValueProvider(meta)) {\n compilerMeta.useValue = meta.useValue;\n }\n else if (isUseFactoryProvider(meta)) {\n compilerMeta.useFactory = meta.useFactory;\n }\n else if (isUseExistingProvider(meta)) {\n compilerMeta.useExisting = meta.useExisting;\n }\n return compilerMeta;\n}\n\n/**\n * Injectable decorator and metadata.\n *\n * @Annotation\n * @publicApi\n */\nconst Injectable = makeDecorator('Injectable', undefined, undefined, undefined, (type, meta) => compileInjectable(type, meta));\n\n/**\n * Create a new `Injector` which is configured using a `defType` of `InjectorType`s.\n */\nfunction createInjector(defType, parent = null, additionalProviders = null, name) {\n const injector = createInjectorWithoutInjectorInstances(defType, parent, additionalProviders, name);\n injector.resolveInjectorInitializers();\n return injector;\n}\n/**\n * Creates a new injector without eagerly resolving its injector types. Can be used in places\n * where resolving the injector types immediately can lead to an infinite loop. The injector types\n * should be resolved at a later point by calling `_resolveInjectorDefTypes`.\n */\nfunction createInjectorWithoutInjectorInstances(defType, parent = null, additionalProviders = null, name, scopes = new Set()) {\n const providers = [\n additionalProviders || EMPTY_ARRAY,\n importProvidersFrom(defType),\n ];\n name = name || (typeof defType === 'object' ? undefined : stringify(defType));\n return new R3Injector(providers, parent || getNullInjector(), name || null, scopes);\n}\n\n/**\n * Concrete injectors implement this interface. Injectors are configured\n * with [providers](guide/dependency-injection-providers) that associate\n * dependencies of various types with [injection tokens](guide/dependency-injection-providers).\n *\n * @see [DI Providers](guide/dependency-injection-providers).\n * @see {@link StaticProvider}\n *\n * @usageNotes\n *\n * The following example creates a service injector instance.\n *\n * {@example core/di/ts/provider_spec.ts region='ConstructorProvider'}\n *\n * ### Usage example\n *\n * {@example core/di/ts/injector_spec.ts region='Injector'}\n *\n * `Injector` returns itself when given `Injector` as a token:\n *\n * {@example core/di/ts/injector_spec.ts region='injectInjector'}\n *\n * @publicApi\n */\nclass Injector {\n static { this.THROW_IF_NOT_FOUND = THROW_IF_NOT_FOUND; }\n static { this.NULL = ( /* @__PURE__ */new NullInjector()); }\n static create(options, parent) {\n if (Array.isArray(options)) {\n return createInjector({ name: '' }, parent, options, '');\n }\n else {\n const name = options.name ?? '';\n return createInjector({ name }, options.parent, options.providers, name);\n }\n }\n /** @nocollapse */\n static { this.ɵprov = ɵɵdefineInjectable({\n token: Injector,\n providedIn: 'any',\n factory: () => ɵɵinject(INJECTOR$1),\n }); }\n /**\n * @internal\n * @nocollapse\n */\n static { this.__NG_ELEMENT_ID__ = -1 /* InjectorMarkers.Injector */; }\n}\n\n/*!\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Creates a token that can be used to inject static attributes of the host node.\n *\n * @usageNotes\n * ### Injecting an attribute that is known to exist\n * ```typescript\n * @Directive()\n * class MyDir {\n * attr: string = inject(new HostAttributeToken('some-attr'));\n * }\n * ```\n *\n * ### Optionally injecting an attribute\n * ```typescript\n * @Directive()\n * class MyDir {\n * attr: string | null = inject(new HostAttributeToken('some-attr'), {optional: true});\n * }\n * ```\n * @publicApi\n */\nclass HostAttributeToken {\n constructor(attributeName) {\n this.attributeName = attributeName;\n /** @internal */\n this.__NG_ELEMENT_ID__ = () => ɵɵinjectAttribute(this.attributeName);\n }\n toString() {\n return `HostAttributeToken ${this.attributeName}`;\n }\n}\n\n/**\n * @module\n * @description\n * The `di` module provides dependency injection container services.\n */\n\n/**\n * This file should not be necessary because node resolution should just default to `./di/index`!\n *\n * However it does not seem to work and it breaks:\n * - //packages/animations/browser/test:test_web_chromium-local\n * - //packages/compiler-cli/test:extract_i18n\n * - //packages/compiler-cli/test:ngc\n * - //packages/compiler-cli/test:perform_watch\n * - //packages/compiler-cli/test/diagnostics:check_types\n * - //packages/compiler-cli/test/transformers:test\n * - //packages/compiler/test:test\n * - //tools/public_api_guard:core_api\n *\n * Remove this file once the above is solved or wait until `ngc` is deleted and then it should be\n * safe to delete this file.\n */\n\nconst ERROR_ORIGINAL_ERROR = 'ngOriginalError';\nfunction wrappedError(message, originalError) {\n const msg = `${message} caused by: ${originalError instanceof Error ? originalError.message : originalError}`;\n const error = Error(msg);\n error[ERROR_ORIGINAL_ERROR] = originalError;\n return error;\n}\nfunction getOriginalError(error) {\n return error[ERROR_ORIGINAL_ERROR];\n}\n\n/**\n * Provides a hook for centralized exception handling.\n *\n * The default implementation of `ErrorHandler` prints error messages to the `console`. To\n * intercept error handling, write a custom exception handler that replaces this default as\n * appropriate for your app.\n *\n * @usageNotes\n * ### Example\n *\n * ```\n * class MyErrorHandler implements ErrorHandler {\n * handleError(error) {\n * // do something with the exception\n * }\n * }\n *\n * @NgModule({\n * providers: [{provide: ErrorHandler, useClass: MyErrorHandler}]\n * })\n * class MyModule {}\n * ```\n *\n * @publicApi\n */\nclass ErrorHandler {\n constructor() {\n /**\n * @internal\n */\n this._console = console;\n }\n handleError(error) {\n const originalError = this._findOriginalError(error);\n this._console.error('ERROR', error);\n if (originalError) {\n this._console.error('ORIGINAL ERROR', originalError);\n }\n }\n /** @internal */\n _findOriginalError(error) {\n let e = error && getOriginalError(error);\n while (e && getOriginalError(e)) {\n e = getOriginalError(e);\n }\n return e || null;\n }\n}\n/**\n * `InjectionToken` used to configure how to call the `ErrorHandler`.\n *\n * `NgZone` is provided by default today so the default (and only) implementation for this\n * is calling `ErrorHandler.handleError` outside of the Angular zone.\n */\nconst INTERNAL_APPLICATION_ERROR_HANDLER = new InjectionToken((typeof ngDevMode === 'undefined' || ngDevMode) ? 'internal error handler' : '', {\n providedIn: 'root',\n factory: () => {\n const userErrorHandler = inject(ErrorHandler);\n return userErrorHandler.handleError.bind(undefined);\n }\n});\n\n/**\n * `DestroyRef` lets you set callbacks to run for any cleanup or destruction behavior.\n * The scope of this destruction depends on where `DestroyRef` is injected. If `DestroyRef`\n * is injected in a component or directive, the callbacks run when that component or\n * directive is destroyed. Otherwise the callbacks run when a corresponding injector is destroyed.\n *\n * @publicApi\n */\nclass DestroyRef {\n /**\n * @internal\n * @nocollapse\n */\n static { this.__NG_ELEMENT_ID__ = injectDestroyRef; }\n /**\n * @internal\n * @nocollapse\n */\n static { this.__NG_ENV_ID__ = (injector) => injector; }\n}\nclass NodeInjectorDestroyRef extends DestroyRef {\n constructor(_lView) {\n super();\n this._lView = _lView;\n }\n onDestroy(callback) {\n storeLViewOnDestroy(this._lView, callback);\n return () => removeLViewOnDestroy(this._lView, callback);\n }\n}\nfunction injectDestroyRef() {\n return new NodeInjectorDestroyRef(getLView());\n}\n\n/**\n * An `OutputEmitterRef` is created by the `output()` function and can be\n * used to emit values to consumers of your directive or component.\n *\n * Consumers of your directive/component can bind to the output and\n * subscribe to changes via the bound event syntax. For example:\n *\n * ```html\n * \n * ```\n *\n * @developerPreview\n */\nclass OutputEmitterRef {\n constructor() {\n this.destroyed = false;\n this.listeners = null;\n this.errorHandler = inject(ErrorHandler, { optional: true });\n /** @internal */\n this.destroyRef = inject(DestroyRef);\n // Clean-up all listeners and mark as destroyed upon destroy.\n this.destroyRef.onDestroy(() => {\n this.destroyed = true;\n this.listeners = null;\n });\n }\n subscribe(callback) {\n if (this.destroyed) {\n throw new RuntimeError(953 /* RuntimeErrorCode.OUTPUT_REF_DESTROYED */, ngDevMode &&\n 'Unexpected subscription to destroyed `OutputRef`. ' +\n 'The owning directive/component is destroyed.');\n }\n (this.listeners ??= []).push(callback);\n return {\n unsubscribe: () => {\n const idx = this.listeners?.indexOf(callback);\n if (idx !== undefined && idx !== -1) {\n this.listeners?.splice(idx, 1);\n }\n }\n };\n }\n /** Emits a new value to the output. */\n emit(value) {\n if (this.destroyed) {\n throw new RuntimeError(953 /* RuntimeErrorCode.OUTPUT_REF_DESTROYED */, ngDevMode &&\n 'Unexpected emit for destroyed `OutputRef`. ' +\n 'The owning directive/component is destroyed.');\n }\n if (this.listeners === null) {\n return;\n }\n const previousConsumer = setActiveConsumer$1(null);\n try {\n for (const listenerFn of this.listeners) {\n try {\n listenerFn(value);\n }\n catch (err) {\n this.errorHandler?.handleError(err);\n }\n }\n }\n finally {\n setActiveConsumer$1(previousConsumer);\n }\n }\n}\n/** Gets the owning `DestroyRef` for the given output. */\nfunction getOutputDestroyRef(ref) {\n return ref.destroyRef;\n}\n\n/**\n * The `output` function allows declaration of outputs in directives and\n * components.\n *\n * Initializes an output that can emit values to consumers of your\n * directive/component.\n *\n * @usageNotes\n * Initialize an output in your directive by declaring a\n * class field and initializing it with the `output()` function.\n *\n * ```ts\n * @Directive({..})\n * export class MyDir {\n * nameChange = output(); // OutputEmitterRef\n * onClick = output(); // OutputEmitterRef\n * }\n * ```\n *\n * @developerPreview\n */\nfunction output(opts) {\n ngDevMode && assertInInjectionContext(output);\n return new OutputEmitterRef();\n}\n\nfunction inputFunction(initialValue, opts) {\n ngDevMode && assertInInjectionContext(input);\n return createInputSignal(initialValue, opts);\n}\nfunction inputRequiredFunction(opts) {\n ngDevMode && assertInInjectionContext(input);\n return createInputSignal(REQUIRED_UNSET_VALUE, opts);\n}\n/**\n * The `input` function allows declaration of inputs in directives and\n * components.\n *\n * Initializes an input with an initial value. If no explicit value\n * is specified, Angular will use `undefined`.\n *\n * Consider using `input.required` for inputs that don't need an\n * initial value.\n *\n * @usageNotes\n * Initialize an input in your directive or component by declaring a\n * class field and initializing it with the `input()` function.\n *\n * ```ts\n * @Directive({..})\n * export class MyDir {\n * firstName = input(); // string|undefined\n * lastName = input.required(); // string\n * age = input(0); // number\n * }\n * ```\n *\n * @developerPreview\n */\nconst input = (() => {\n // Note: This may be considered a side-effect, but nothing will depend on\n // this assignment, unless this `input` constant export is accessed. It's a\n // self-contained side effect that is local to the user facing`input` export.\n inputFunction.required = inputRequiredFunction;\n return inputFunction;\n})();\n\n/**\n * Creates an ElementRef from the most recent node.\n *\n * @returns The ElementRef instance to use\n */\nfunction injectElementRef() {\n return createElementRef(getCurrentTNode(), getLView());\n}\n/**\n * Creates an ElementRef given a node.\n *\n * @param tNode The node for which you'd like an ElementRef\n * @param lView The view to which the node belongs\n * @returns The ElementRef instance to use\n */\nfunction createElementRef(tNode, lView) {\n return new ElementRef(getNativeByTNode(tNode, lView));\n}\n/**\n * A wrapper around a native element inside of a View.\n *\n * An `ElementRef` is backed by a render-specific element. In the browser, this is usually a DOM\n * element.\n *\n * @security Permitting direct access to the DOM can make your application more vulnerable to\n * XSS attacks. Carefully review any use of `ElementRef` in your code. For more detail, see the\n * [Security Guide](https://g.co/ng/security).\n *\n * @publicApi\n */\n// Note: We don't expose things like `Injector`, `ViewContainer`, ... here,\n// i.e. users have to ask for what they need. With that, we can build better analysis tools\n// and could do better codegen in the future.\nclass ElementRef {\n constructor(nativeElement) {\n this.nativeElement = nativeElement;\n }\n /**\n * @internal\n * @nocollapse\n */\n static { this.__NG_ELEMENT_ID__ = injectElementRef; }\n}\n/**\n * Unwraps `ElementRef` and return the `nativeElement`.\n *\n * @param value value to unwrap\n * @returns `nativeElement` if `ElementRef` otherwise returns value as is.\n */\nfunction unwrapElementRef(value) {\n return value instanceof ElementRef ? value.nativeElement : value;\n}\n\nclass EventEmitter_ extends Subject {\n constructor(isAsync = false) {\n super();\n this.destroyRef = undefined;\n this.__isAsync = isAsync;\n // Attempt to retrieve a `DestroyRef` optionally.\n // For backwards compatibility reasons, this cannot be required\n if (isInInjectionContext()) {\n this.destroyRef = inject(DestroyRef, { optional: true }) ?? undefined;\n }\n }\n emit(value) {\n const prevConsumer = setActiveConsumer$1(null);\n try {\n super.next(value);\n }\n finally {\n setActiveConsumer$1(prevConsumer);\n }\n }\n subscribe(observerOrNext, error, complete) {\n let nextFn = observerOrNext;\n let errorFn = error || (() => null);\n let completeFn = complete;\n if (observerOrNext && typeof observerOrNext === 'object') {\n const observer = observerOrNext;\n nextFn = observer.next?.bind(observer);\n errorFn = observer.error?.bind(observer);\n completeFn = observer.complete?.bind(observer);\n }\n if (this.__isAsync) {\n errorFn = _wrapInTimeout(errorFn);\n if (nextFn) {\n nextFn = _wrapInTimeout(nextFn);\n }\n if (completeFn) {\n completeFn = _wrapInTimeout(completeFn);\n }\n }\n const sink = super.subscribe({ next: nextFn, error: errorFn, complete: completeFn });\n if (observerOrNext instanceof Subscription) {\n observerOrNext.add(sink);\n }\n return sink;\n }\n}\nfunction _wrapInTimeout(fn) {\n return (value) => {\n setTimeout(fn, undefined, value);\n };\n}\n/**\n * @publicApi\n */\nconst EventEmitter = EventEmitter_;\n\nfunction symbolIterator() {\n // @ts-expect-error accessing a private member\n return this._results[Symbol.iterator]();\n}\n/**\n * An unmodifiable list of items that Angular keeps up to date when the state\n * of the application changes.\n *\n * The type of object that {@link ViewChildren}, {@link ContentChildren}, and {@link QueryList}\n * provide.\n *\n * Implements an iterable interface, therefore it can be used in both ES6\n * javascript `for (var i of items)` loops as well as in Angular templates with\n * `*ngFor=\"let i of myList\"`.\n *\n * Changes can be observed by subscribing to the changes `Observable`.\n *\n * NOTE: In the future this class will implement an `Observable` interface.\n *\n * @usageNotes\n * ### Example\n * ```typescript\n * @Component({...})\n * class Container {\n * @ViewChildren(Item) items:QueryList;\n * }\n * ```\n *\n * @publicApi\n */\nclass QueryList {\n static { Symbol.iterator; }\n /**\n * Returns `Observable` of `QueryList` notifying the subscriber of changes.\n */\n get changes() {\n return this._changes ??= new EventEmitter();\n }\n /**\n * @param emitDistinctChangesOnly Whether `QueryList.changes` should fire only when actual change\n * has occurred. Or if it should fire when query is recomputed. (recomputing could resolve in\n * the same result)\n */\n constructor(_emitDistinctChangesOnly = false) {\n this._emitDistinctChangesOnly = _emitDistinctChangesOnly;\n this.dirty = true;\n this._onDirty = undefined;\n this._results = [];\n this._changesDetected = false;\n this._changes = undefined;\n this.length = 0;\n this.first = undefined;\n this.last = undefined;\n // This function should be declared on the prototype, but doing so there will cause the class\n // declaration to have side-effects and become not tree-shakable. For this reason we do it in\n // the constructor.\n // [Symbol.iterator](): Iterator { ... }\n const proto = QueryList.prototype;\n if (!proto[Symbol.iterator])\n proto[Symbol.iterator] = symbolIterator;\n }\n /**\n * Returns the QueryList entry at `index`.\n */\n get(index) {\n return this._results[index];\n }\n /**\n * See\n * [Array.map](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map)\n */\n map(fn) {\n return this._results.map(fn);\n }\n filter(fn) {\n return this._results.filter(fn);\n }\n /**\n * See\n * [Array.find](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find)\n */\n find(fn) {\n return this._results.find(fn);\n }\n /**\n * See\n * [Array.reduce](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce)\n */\n reduce(fn, init) {\n return this._results.reduce(fn, init);\n }\n /**\n * See\n * [Array.forEach](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach)\n */\n forEach(fn) {\n this._results.forEach(fn);\n }\n /**\n * See\n * [Array.some](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/some)\n */\n some(fn) {\n return this._results.some(fn);\n }\n /**\n * Returns a copy of the internal results list as an Array.\n */\n toArray() {\n return this._results.slice();\n }\n toString() {\n return this._results.toString();\n }\n /**\n * Updates the stored data of the query list, and resets the `dirty` flag to `false`, so that\n * on change detection, it will not notify of changes to the queries, unless a new change\n * occurs.\n *\n * @param resultsTree The query results to store\n * @param identityAccessor Optional function for extracting stable object identity from a value\n * in the array. This function is executed for each element of the query result list while\n * comparing current query list with the new one (provided as a first argument of the `reset`\n * function) to detect if the lists are different. If the function is not provided, elements\n * are compared as is (without any pre-processing).\n */\n reset(resultsTree, identityAccessor) {\n this.dirty = false;\n const newResultFlat = flatten(resultsTree);\n if (this._changesDetected = !arrayEquals(this._results, newResultFlat, identityAccessor)) {\n this._results = newResultFlat;\n this.length = newResultFlat.length;\n this.last = newResultFlat[this.length - 1];\n this.first = newResultFlat[0];\n }\n }\n /**\n * Triggers a change event by emitting on the `changes` {@link EventEmitter}.\n */\n notifyOnChanges() {\n if (this._changes !== undefined && (this._changesDetected || !this._emitDistinctChangesOnly))\n this._changes.emit(this);\n }\n /** @internal */\n onDirty(cb) {\n this._onDirty = cb;\n }\n /** internal */\n setDirty() {\n this.dirty = true;\n this._onDirty?.();\n }\n /** internal */\n destroy() {\n if (this._changes !== undefined) {\n this._changes.complete();\n this._changes.unsubscribe();\n }\n }\n}\n\n/**\n * The name of an attribute that can be added to the hydration boundary node\n * (component host node) to disable hydration for the content within that boundary.\n */\nconst SKIP_HYDRATION_ATTR_NAME = 'ngSkipHydration';\n/** Lowercase name of the `ngSkipHydration` attribute used for case-insensitive comparisons. */\nconst SKIP_HYDRATION_ATTR_NAME_LOWER_CASE = 'ngskiphydration';\n/**\n * Helper function to check if a given TNode has the 'ngSkipHydration' attribute.\n */\nfunction hasSkipHydrationAttrOnTNode(tNode) {\n const attrs = tNode.mergedAttrs;\n if (attrs === null)\n return false;\n // only ever look at the attribute name and skip the values\n for (let i = 0; i < attrs.length; i += 2) {\n const value = attrs[i];\n // This is a marker, which means that the static attributes section is over,\n // so we can exit early.\n if (typeof value === 'number')\n return false;\n if (typeof value === 'string' && value.toLowerCase() === SKIP_HYDRATION_ATTR_NAME_LOWER_CASE) {\n return true;\n }\n }\n return false;\n}\n/**\n * Helper function to check if a given RElement has the 'ngSkipHydration' attribute.\n */\nfunction hasSkipHydrationAttrOnRElement(rNode) {\n return rNode.hasAttribute(SKIP_HYDRATION_ATTR_NAME);\n}\n/**\n * Checks whether a TNode has a flag to indicate that it's a part of\n * a skip hydration block.\n */\nfunction hasInSkipHydrationBlockFlag(tNode) {\n return (tNode.flags & 128 /* TNodeFlags.inSkipHydrationBlock */) === 128 /* TNodeFlags.inSkipHydrationBlock */;\n}\n/**\n * Helper function that determines if a given node is within a skip hydration block\n * by navigating up the TNode tree to see if any parent nodes have skip hydration\n * attribute.\n */\nfunction isInSkipHydrationBlock(tNode) {\n if (hasInSkipHydrationBlockFlag(tNode)) {\n return true;\n }\n let currentTNode = tNode.parent;\n while (currentTNode) {\n if (hasInSkipHydrationBlockFlag(tNode) || hasSkipHydrationAttrOnTNode(currentTNode)) {\n return true;\n }\n currentTNode = currentTNode.parent;\n }\n return false;\n}\n\n// Keeps track of the currently-active LViews.\nconst TRACKED_LVIEWS = new Map();\n// Used for generating unique IDs for LViews.\nlet uniqueIdCounter = 0;\n/** Gets a unique ID that can be assigned to an LView. */\nfunction getUniqueLViewId() {\n return uniqueIdCounter++;\n}\n/** Starts tracking an LView. */\nfunction registerLView(lView) {\n ngDevMode && assertNumber(lView[ID], 'LView must have an ID in order to be registered');\n TRACKED_LVIEWS.set(lView[ID], lView);\n}\n/** Gets an LView by its unique ID. */\nfunction getLViewById(id) {\n ngDevMode && assertNumber(id, 'ID used for LView lookup must be a number');\n return TRACKED_LVIEWS.get(id) || null;\n}\n/** Stops tracking an LView. */\nfunction unregisterLView(lView) {\n ngDevMode && assertNumber(lView[ID], 'Cannot stop tracking an LView that does not have an ID');\n TRACKED_LVIEWS.delete(lView[ID]);\n}\n\n/**\n * The internal view context which is specific to a given DOM element, directive or\n * component instance. Each value in here (besides the LView and element node details)\n * can be present, null or undefined. If undefined then it implies the value has not been\n * looked up yet, otherwise, if null, then a lookup was executed and nothing was found.\n *\n * Each value will get filled when the respective value is examined within the getContext\n * function. The component, element and each directive instance will share the same instance\n * of the context.\n */\nclass LContext {\n /** Component's parent view data. */\n get lView() {\n return getLViewById(this.lViewId);\n }\n constructor(\n /**\n * ID of the component's parent view data.\n */\n lViewId, \n /**\n * The index instance of the node.\n */\n nodeIndex, \n /**\n * The instance of the DOM node that is attached to the lNode.\n */\n native) {\n this.lViewId = lViewId;\n this.nodeIndex = nodeIndex;\n this.native = native;\n }\n}\n\n/**\n * Returns the matching `LContext` data for a given DOM node, directive or component instance.\n *\n * This function will examine the provided DOM element, component, or directive instance\\'s\n * monkey-patched property to derive the `LContext` data. Once called then the monkey-patched\n * value will be that of the newly created `LContext`.\n *\n * If the monkey-patched value is the `LView` instance then the context value for that\n * target will be created and the monkey-patch reference will be updated. Therefore when this\n * function is called it may mutate the provided element\\'s, component\\'s or any of the associated\n * directive\\'s monkey-patch values.\n *\n * If the monkey-patch value is not detected then the code will walk up the DOM until an element\n * is found which contains a monkey-patch reference. When that occurs then the provided element\n * will be updated with a new context (which is then returned). If the monkey-patch value is not\n * detected for a component/directive instance then it will throw an error (all components and\n * directives should be automatically monkey-patched by ivy).\n *\n * @param target Component, Directive or DOM Node.\n */\nfunction getLContext(target) {\n let mpValue = readPatchedData(target);\n if (mpValue) {\n // only when it's an array is it considered an LView instance\n // ... otherwise it's an already constructed LContext instance\n if (isLView(mpValue)) {\n const lView = mpValue;\n let nodeIndex;\n let component = undefined;\n let directives = undefined;\n if (isComponentInstance(target)) {\n nodeIndex = findViaComponent(lView, target);\n if (nodeIndex == -1) {\n throw new Error('The provided component was not found in the application');\n }\n component = target;\n }\n else if (isDirectiveInstance(target)) {\n nodeIndex = findViaDirective(lView, target);\n if (nodeIndex == -1) {\n throw new Error('The provided directive was not found in the application');\n }\n directives = getDirectivesAtNodeIndex(nodeIndex, lView);\n }\n else {\n nodeIndex = findViaNativeElement(lView, target);\n if (nodeIndex == -1) {\n return null;\n }\n }\n // the goal is not to fill the entire context full of data because the lookups\n // are expensive. Instead, only the target data (the element, component, container, ICU\n // expression or directive details) are filled into the context. If called multiple times\n // with different target values then the missing target data will be filled in.\n const native = unwrapRNode(lView[nodeIndex]);\n const existingCtx = readPatchedData(native);\n const context = (existingCtx && !Array.isArray(existingCtx)) ?\n existingCtx :\n createLContext(lView, nodeIndex, native);\n // only when the component has been discovered then update the monkey-patch\n if (component && context.component === undefined) {\n context.component = component;\n attachPatchData(context.component, context);\n }\n // only when the directives have been discovered then update the monkey-patch\n if (directives && context.directives === undefined) {\n context.directives = directives;\n for (let i = 0; i < directives.length; i++) {\n attachPatchData(directives[i], context);\n }\n }\n attachPatchData(context.native, context);\n mpValue = context;\n }\n }\n else {\n const rElement = target;\n ngDevMode && assertDomNode(rElement);\n // if the context is not found then we need to traverse upwards up the DOM\n // to find the nearest element that has already been monkey patched with data\n let parent = rElement;\n while (parent = parent.parentNode) {\n const parentContext = readPatchedData(parent);\n if (parentContext) {\n const lView = Array.isArray(parentContext) ? parentContext : parentContext.lView;\n // the edge of the app was also reached here through another means\n // (maybe because the DOM was changed manually).\n if (!lView) {\n return null;\n }\n const index = findViaNativeElement(lView, rElement);\n if (index >= 0) {\n const native = unwrapRNode(lView[index]);\n const context = createLContext(lView, index, native);\n attachPatchData(native, context);\n mpValue = context;\n break;\n }\n }\n }\n }\n return mpValue || null;\n}\n/**\n * Creates an empty instance of a `LContext` context\n */\nfunction createLContext(lView, nodeIndex, native) {\n return new LContext(lView[ID], nodeIndex, native);\n}\n/**\n * Takes a component instance and returns the view for that component.\n *\n * @param componentInstance\n * @returns The component's view\n */\nfunction getComponentViewByInstance(componentInstance) {\n let patchedData = readPatchedData(componentInstance);\n let lView;\n if (isLView(patchedData)) {\n const contextLView = patchedData;\n const nodeIndex = findViaComponent(contextLView, componentInstance);\n lView = getComponentLViewByIndex(nodeIndex, contextLView);\n const context = createLContext(contextLView, nodeIndex, lView[HOST]);\n context.component = componentInstance;\n attachPatchData(componentInstance, context);\n attachPatchData(context.native, context);\n }\n else {\n const context = patchedData;\n const contextLView = context.lView;\n ngDevMode && assertLView(contextLView);\n lView = getComponentLViewByIndex(context.nodeIndex, contextLView);\n }\n return lView;\n}\n/**\n * This property will be monkey-patched on elements, components and directives.\n */\nconst MONKEY_PATCH_KEY_NAME = '__ngContext__';\n/**\n * Assigns the given data to the given target (which could be a component,\n * directive or DOM node instance) using monkey-patching.\n */\nfunction attachPatchData(target, data) {\n ngDevMode && assertDefined(target, 'Target expected');\n // Only attach the ID of the view in order to avoid memory leaks (see #41047). We only do this\n // for `LView`, because we have control over when an `LView` is created and destroyed, whereas\n // we can't know when to remove an `LContext`.\n if (isLView(data)) {\n target[MONKEY_PATCH_KEY_NAME] = data[ID];\n registerLView(data);\n }\n else {\n target[MONKEY_PATCH_KEY_NAME] = data;\n }\n}\n/**\n * Returns the monkey-patch value data present on the target (which could be\n * a component, directive or a DOM node).\n */\nfunction readPatchedData(target) {\n ngDevMode && assertDefined(target, 'Target expected');\n const data = target[MONKEY_PATCH_KEY_NAME];\n return (typeof data === 'number') ? getLViewById(data) : data || null;\n}\nfunction readPatchedLView(target) {\n const value = readPatchedData(target);\n if (value) {\n return (isLView(value) ? value : value.lView);\n }\n return null;\n}\nfunction isComponentInstance(instance) {\n return instance && instance.constructor && instance.constructor.ɵcmp;\n}\nfunction isDirectiveInstance(instance) {\n return instance && instance.constructor && instance.constructor.ɵdir;\n}\n/**\n * Locates the element within the given LView and returns the matching index\n */\nfunction findViaNativeElement(lView, target) {\n const tView = lView[TVIEW];\n for (let i = HEADER_OFFSET; i < tView.bindingStartIndex; i++) {\n if (unwrapRNode(lView[i]) === target) {\n return i;\n }\n }\n return -1;\n}\n/**\n * Locates the next tNode (child, sibling or parent).\n */\nfunction traverseNextElement(tNode) {\n if (tNode.child) {\n return tNode.child;\n }\n else if (tNode.next) {\n return tNode.next;\n }\n else {\n // Let's take the following template:
text
\n // After checking the text node, we need to find the next parent that has a \"next\" TNode,\n // in this case the parent `div`, so that we can find the component.\n while (tNode.parent && !tNode.parent.next) {\n tNode = tNode.parent;\n }\n return tNode.parent && tNode.parent.next;\n }\n}\n/**\n * Locates the component within the given LView and returns the matching index\n */\nfunction findViaComponent(lView, componentInstance) {\n const componentIndices = lView[TVIEW].components;\n if (componentIndices) {\n for (let i = 0; i < componentIndices.length; i++) {\n const elementComponentIndex = componentIndices[i];\n const componentView = getComponentLViewByIndex(elementComponentIndex, lView);\n if (componentView[CONTEXT] === componentInstance) {\n return elementComponentIndex;\n }\n }\n }\n else {\n const rootComponentView = getComponentLViewByIndex(HEADER_OFFSET, lView);\n const rootComponent = rootComponentView[CONTEXT];\n if (rootComponent === componentInstance) {\n // we are dealing with the root element here therefore we know that the\n // element is the very first element after the HEADER data in the lView\n return HEADER_OFFSET;\n }\n }\n return -1;\n}\n/**\n * Locates the directive within the given LView and returns the matching index\n */\nfunction findViaDirective(lView, directiveInstance) {\n // if a directive is monkey patched then it will (by default)\n // have a reference to the LView of the current view. The\n // element bound to the directive being search lives somewhere\n // in the view data. We loop through the nodes and check their\n // list of directives for the instance.\n let tNode = lView[TVIEW].firstChild;\n while (tNode) {\n const directiveIndexStart = tNode.directiveStart;\n const directiveIndexEnd = tNode.directiveEnd;\n for (let i = directiveIndexStart; i < directiveIndexEnd; i++) {\n if (lView[i] === directiveInstance) {\n return tNode.index;\n }\n }\n tNode = traverseNextElement(tNode);\n }\n return -1;\n}\n/**\n * Returns a list of directives applied to a node at a specific index. The list includes\n * directives matched by selector and any host directives, but it excludes components.\n * Use `getComponentAtNodeIndex` to find the component applied to a node.\n *\n * @param nodeIndex The node index\n * @param lView The target view data\n */\nfunction getDirectivesAtNodeIndex(nodeIndex, lView) {\n const tNode = lView[TVIEW].data[nodeIndex];\n if (tNode.directiveStart === 0)\n return EMPTY_ARRAY;\n const results = [];\n for (let i = tNode.directiveStart; i < tNode.directiveEnd; i++) {\n const directiveInstance = lView[i];\n if (!isComponentInstance(directiveInstance)) {\n results.push(directiveInstance);\n }\n }\n return results;\n}\nfunction getComponentAtNodeIndex(nodeIndex, lView) {\n const tNode = lView[TVIEW].data[nodeIndex];\n const { directiveStart, componentOffset } = tNode;\n return componentOffset > -1 ? lView[directiveStart + componentOffset] : null;\n}\n/**\n * Returns a map of local references (local reference name => element or directive instance) that\n * exist on a given element.\n */\nfunction discoverLocalRefs(lView, nodeIndex) {\n const tNode = lView[TVIEW].data[nodeIndex];\n if (tNode && tNode.localNames) {\n const result = {};\n let localIndex = tNode.index + 1;\n for (let i = 0; i < tNode.localNames.length; i += 2) {\n result[tNode.localNames[i]] = lView[localIndex];\n localIndex++;\n }\n return result;\n }\n return null;\n}\n\n/**\n * Retrieve the root view from any component or `LView` by walking the parent `LView` until\n * reaching the root `LView`.\n *\n * @param componentOrLView any component or `LView`\n */\nfunction getRootView(componentOrLView) {\n ngDevMode && assertDefined(componentOrLView, 'component');\n let lView = isLView(componentOrLView) ? componentOrLView : readPatchedLView(componentOrLView);\n while (lView && !(lView[FLAGS] & 512 /* LViewFlags.IsRoot */)) {\n lView = getLViewParent(lView);\n }\n ngDevMode && assertLView(lView);\n return lView;\n}\n/**\n * Returns the context information associated with the application where the target is situated. It\n * does this by walking the parent views until it gets to the root view, then getting the context\n * off of that.\n *\n * @param viewOrComponent the `LView` or component to get the root context for.\n */\nfunction getRootContext(viewOrComponent) {\n const rootView = getRootView(viewOrComponent);\n ngDevMode &&\n assertDefined(rootView[CONTEXT], 'Root view has no context. Perhaps it is disconnected?');\n return rootView[CONTEXT];\n}\n/**\n * Gets the first `LContainer` in the LView or `null` if none exists.\n */\nfunction getFirstLContainer(lView) {\n return getNearestLContainer(lView[CHILD_HEAD]);\n}\n/**\n * Gets the next `LContainer` that is a sibling of the given container.\n */\nfunction getNextLContainer(container) {\n return getNearestLContainer(container[NEXT]);\n}\nfunction getNearestLContainer(viewOrContainer) {\n while (viewOrContainer !== null && !isLContainer(viewOrContainer)) {\n viewOrContainer = viewOrContainer[NEXT];\n }\n return viewOrContainer;\n}\n\n/**\n * Retrieves the component instance associated with a given DOM element.\n *\n * @usageNotes\n * Given the following DOM structure:\n *\n * ```html\n * \n *
\n * \n *
\n *
\n * ```\n *\n * Calling `getComponent` on `` will return the instance of `ChildComponent`\n * associated with this DOM element.\n *\n * Calling the function on `` will return the `MyApp` instance.\n *\n *\n * @param element DOM element from which the component should be retrieved.\n * @returns Component instance associated with the element or `null` if there\n * is no component associated with it.\n *\n * @publicApi\n * @globalApi ng\n */\nfunction getComponent$1(element) {\n ngDevMode && assertDomElement(element);\n const context = getLContext(element);\n if (context === null)\n return null;\n if (context.component === undefined) {\n const lView = context.lView;\n if (lView === null) {\n return null;\n }\n context.component = getComponentAtNodeIndex(context.nodeIndex, lView);\n }\n return context.component;\n}\n/**\n * If inside an embedded view (e.g. `*ngIf` or `*ngFor`), retrieves the context of the embedded\n * view that the element is part of. Otherwise retrieves the instance of the component whose view\n * owns the element (in this case, the result is the same as calling `getOwningComponent`).\n *\n * @param element Element for which to get the surrounding component instance.\n * @returns Instance of the component that is around the element or null if the element isn't\n * inside any component.\n *\n * @publicApi\n * @globalApi ng\n */\nfunction getContext(element) {\n assertDomElement(element);\n const context = getLContext(element);\n const lView = context ? context.lView : null;\n return lView === null ? null : lView[CONTEXT];\n}\n/**\n * Retrieves the component instance whose view contains the DOM element.\n *\n * For example, if `` is used in the template of ``\n * (i.e. a `ViewChild` of ``), calling `getOwningComponent` on ``\n * would return ``.\n *\n * @param elementOrDir DOM element, component or directive instance\n * for which to retrieve the root components.\n * @returns Component instance whose view owns the DOM element or null if the element is not\n * part of a component view.\n *\n * @publicApi\n * @globalApi ng\n */\nfunction getOwningComponent(elementOrDir) {\n const context = getLContext(elementOrDir);\n let lView = context ? context.lView : null;\n if (lView === null)\n return null;\n let parent;\n while (lView[TVIEW].type === 2 /* TViewType.Embedded */ && (parent = getLViewParent(lView))) {\n lView = parent;\n }\n return lView[FLAGS] & 512 /* LViewFlags.IsRoot */ ? null : lView[CONTEXT];\n}\n/**\n * Retrieves all root components associated with a DOM element, directive or component instance.\n * Root components are those which have been bootstrapped by Angular.\n *\n * @param elementOrDir DOM element, component or directive instance\n * for which to retrieve the root components.\n * @returns Root components associated with the target object.\n *\n * @publicApi\n * @globalApi ng\n */\nfunction getRootComponents(elementOrDir) {\n const lView = readPatchedLView(elementOrDir);\n return lView !== null ? [getRootContext(lView)] : [];\n}\n/**\n * Retrieves an `Injector` associated with an element, component or directive instance.\n *\n * @param elementOrDir DOM element, component or directive instance for which to\n * retrieve the injector.\n * @returns Injector associated with the element, component or directive instance.\n *\n * @publicApi\n * @globalApi ng\n */\nfunction getInjector(elementOrDir) {\n const context = getLContext(elementOrDir);\n const lView = context ? context.lView : null;\n if (lView === null)\n return Injector.NULL;\n const tNode = lView[TVIEW].data[context.nodeIndex];\n return new NodeInjector(tNode, lView);\n}\n/**\n * Retrieve a set of injection tokens at a given DOM node.\n *\n * @param element Element for which the injection tokens should be retrieved.\n */\nfunction getInjectionTokens(element) {\n const context = getLContext(element);\n const lView = context ? context.lView : null;\n if (lView === null)\n return [];\n const tView = lView[TVIEW];\n const tNode = tView.data[context.nodeIndex];\n const providerTokens = [];\n const startIndex = tNode.providerIndexes & 1048575 /* TNodeProviderIndexes.ProvidersStartIndexMask */;\n const endIndex = tNode.directiveEnd;\n for (let i = startIndex; i < endIndex; i++) {\n let value = tView.data[i];\n if (isDirectiveDefHack(value)) {\n // The fact that we sometimes store Type and sometimes DirectiveDef in this location is a\n // design flaw. We should always store same type so that we can be monomorphic. The issue\n // is that for Components/Directives we store the def instead the type. The correct behavior\n // is that we should always be storing injectable type in this location.\n value = value.type;\n }\n providerTokens.push(value);\n }\n return providerTokens;\n}\n/**\n * Retrieves directive instances associated with a given DOM node. Does not include\n * component instances.\n *\n * @usageNotes\n * Given the following DOM structure:\n *\n * ```html\n * \n * \n * \n * \n * ```\n *\n * Calling `getDirectives` on `